Google
 

Trailing-Edge - PDP-10 Archives - tops10_tools_bb-fp64b-sb - 10,7/rsx20f/rsxtol/klinit.l10
There are 3 other files named klinit.l10 in the archive. Click here to see a list.
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00
Table of contents

     8-  439	MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
    12-  572	DMBMCP -- DTE-20 OPERATION MACROS
    32- 1165	REGISTER SAVE/RESTORE TRANSLATION MACROS
    52- 1785	$LDNGO	-- LOAD AC BLOCKS AND GO
    53- 1842	$ZERAC	-- ZERO AC SETS 0 TO 6
    54- 1873	$XCDT	-- INSTRUCTION EXECUTER
    56- 1988	$SETCA	-- CONFIGURE CACHE
    60- 2220	$MCBLD	-- LOAD THE RAMS
    63- 2363	RDMCV - READ MICROCODE VERSION/EDIT LEVEL
    69- 2755	$FILE	-- WRITE THE CONFIGURATION FILE
    71- 3029	$FILE	-- WRITE BOOTSTRAP RECORD
    72- 3068	$FILE	-- WRITE END-OF-FILE RECORD
    73- 3084	$FILE	-- WRITE MEMORY CONTROLLER RECORDS
    74- 3119	$FILE	-- WRITE CACHE RECORDS
    75- 3151	$FILE -- WRITE MICROCODE RECORDS
    76- 3177	$FILE	-- WRITE PAGE TABLE SELECTION
    78- 3245	$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
    80- 3558	$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
    81- 3687	$CHKMM -- CHECK MOS MEMORY CONFIGURATION
    83- 3837	$CONFG -- EDITOR DISPATCH
    84- 3873	CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
    85- 3948	CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
    86- 3989	CFGMOS -- MOS CONFIGURATION EDITOR
    87- 4049	$MAPMM -- MAP MOS CONTROLLER BLOCKS
    89- 4113	$SWEEP	-- SWEEP AND INVALIDATE THE CACHE
    91- 4187	$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
    93- 4314	$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES
    98- 4515	$DELETE	-- DELETE A FILE
    99- 4545	$SETFN	-- SET FILE NAME IN FILE NAME BLOCK
   101- 4615	$IOERR	-- REPORT I/O ERROR
   104- 4733	$LOOKUP	-- LOOK UP AN EXISTING FILE
   106- 4822	$ENTER	-- ENTER A NEW FILE
   108- 4908	$PURGE	-- PURGE FILES CURRENTLY OPEN
   110- 4973	$READC	-- START READING A RECORD
   111- 5001	$READS	-- SKIP THE CURRENT RECORD
   112- 5025	$READW	-- READ A WORD
   113- 5058	$READB	-- READ A BYTE
   114- 5088	$READ	-- READ NEXT VIRTUAL BLOCK
   116- 5161	$WRITC	-- START WRITING A RECORD
   117- 5188	$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK
   118- 5218	$WRITW	-- WRITE A WORD
   119- 5252	$WRITB	-- WRITE A BYTE
   120- 5278	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   122- 5351	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   124- 5420	$WCRAM	-- WRITE C-RAM WORD
   125- 5489	$RCRAM	-- READ C-RAM WORD
   126- 5588	$ACRAM	-- ADDRESS C-RAM WORD
   128- 5662	$WDRAM	-- WRITE D-RAM WORD
   129- 5715	$RDRAM	-- READ D-RAM WORD
   130- 5771	$ADRAM	-- ADDRESS D-RAM WORD
   132- 5863	$DPOS	-- DEPOSIT KL MEMORY ROUTINE
   133- 5900	$EXAM	-- EXAMINE KL MEMORY ROUTINE
   136- 6021	$DFRD	-- DIAGNOSTIC READ FUNCTION
   138- 6099	$DFWR	-- DIAGNOSTIC WRITE FUNCTION
   141- 6199	$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION
   143- 6275	$GETCA	-- SET CACHE CONFIGURATION TABLES
   146- 6377	$GETMM	-- SET UP MEMORY CONFIGURATION TABLES
KLIGP -- GET PAGE TABLE SELECTI	MACRO V05.04  Monday 16-May-88 16:00
Table of contents

   149- 6508	$GETPA	-- GET PAGE TABLE SELECTION
   151- 6607	$GETTF -- READ MF20 TIMING FILE DATA
   155- 6858	$KLMR	-- DO A MASTER RESET ON THE KL
   155- 6923	$KLSR	-- SOFT RESET FOR RAM LOADERS
   157- 7026	$INIT	-- PROGRAM INITIALIZATION
   158- 7136	$DFPC -- KL PC READ SUBROUTINE 7510.21
   161- 7266	$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED
   162- 7333	$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
   163- 7382	LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
   165- 7476	$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED
   166- 7510	LQCCM	-- ASK WHICH CACHES TO CONFIGURE
   168- 7585	$DLGEX	-- ASK WHERE TO EXIT
   171- 7685	$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY
   173- 7838	$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER
   175- 8007	$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED
   176- 8193	$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED
   184- 8614	$POWER	-- POWER FAILURE RESTART
   186- 8702	$WRMRS	-- WARM RESTART (FAULT CONTINUATION)
   191- 8941	GLOBAL DATA STORAGE
   195- 9223	$START	-- MAIN PROGRAM FLOW CONTROL
   196- 9340	$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
   197- 9381	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   198- 9395	$ASCIZ	-- TRANSFER ASCII STRING
   199- 9416	$TRACK	-- SPECIAL TRACK ROUTINE
   200- 9570	$TENST	-- START KL BOOT
   202- 9700	$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME
   203- 9739	$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY
   205- 9811	$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII
   206- 9862	$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD
   208- 9956	$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
   209-10020	$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
   210-10096	TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
   212-10154	$TENAD	-- DISPLAY KL ADDRESS/16K
   214-10236	$WRD22	-- DISPLAY 22 BIT KL WORD
   215-10264	$WRD36	-- DISPLAY 36 BIT KL WORD
   218-10384	$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII
   219-10437	$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
   221-10513	$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD
   222-10559	$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII
   224-10678	$TTRD	-- READ A LINE FROM THE CONSOLE TTY
   226-10805	$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY
   227-10856	$TTWR	-- WRITE A LINE TO THE CONSOLE TTY
   228-10886	$ECHO	-- ECHO CTY OUTPUT TO LP
   229-10973	$EXBLD	-- LOAD THE BOOT
   233-11205	$EXCT	-- EXECUTE KL INSTRUCTION
   234-11236	$STRKL	-- START THE KL PROCESSOR
   235-11292	$WTKL	-- WAIT FOR KL PROGRAM TO HALT
   236-11321	$LDAR	-- LOAD THE AR REGISTER
   237-11346	STPKL	-- HALT THE KL CPU
   238-11403	$MBPHS	-- PHASE THE KL CLOCKS
   239-11455	$BURST	-- BURST THE M-BOX CLOCK
RSXFC	-- RSX20F PARAMETER FIL	MACRO V05.04  Monday 16-May-88 16:00  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 V05.04  Monday 16-May-88 16:00  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 V05.04  Monday 16-May-88 16:00  Page 2


     65
     66						.TITLE	KLINIT - KL CPU INITIALIZATION PROGRAM
     67						.IDENT	/016000/
     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: 16-00
     90					;
     91					; ALAN D. PECKHAM  29-MAR-77
     92					;
     93					; MODIFIED BY:
     94					;
     95					;	A. Puchrik	27-Jan-88	Change version to 16
     96					;
     97					;	M. RUDENKO	09-FEB-84	CHANGE VERSION TO 15
     98					;					ADD MG20 CONFIGURATION
     99					;					ADD MCA25 PAGE TABLE SELECTION
    100					;
    101					;	D. WEAVER	02-AUG-83	CHANGE VERSION TO 13
    102					;					WARM RESTART CODE
    103					;
    104					;	S. LEAPLINE	06-MAR-80	FIX RACE CONDITION IN BOOT
    105					;					TCO 4.1.1100
    106					;
    107					;	K. LEFEBVRE	25-JAN-80	LOG RAM ERRORS TO ERROR FILE
    108					;					TCO 4.1.1073
    109					;
    110					;	R.  BELANGER	22-OCT-79	ADD CACHE SWEEP ON RELOAD OR BOOT
    111					;					TCO 5.1013
    112					;
    113					;	K. LEFEBVRE	19-SEP-79	ADD LP SUPPORT FOR TRACK FEATURE
    114					;					TCO 5.1005
    115					;
    116					;	R. BELANGER	16-JUL-79	ADD ENVIRONMENTAL REPORTING
    117					;					TCO 4.2333
    118					;
    119					;	R. BELANGER	11-JUL-79	ADD FORCE MEMORY CONFIGURATION OPTION.
    120					;					ADD FORCE DBE SCAN ON MF-20 POWERFAIL.
    121					;					TCO 4.2322
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 2-1


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


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


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


    251						.ENDM	IDENT$
    252
    253						.MACRO	CALL	X,Y
    254						.NTYPE	$$,X
    255						.IF	EQ,$$&70
    256						 JSR	X,Y
    257						.IFF
    258						 JSR	PC,X
    259						.ENDC
    260						.ENDM	CALL
    261
    262						.MACRO	CALLR	X
    263						 JMP	X
    264						.ENDM	CALLR
    265
    266						.MACRO	RETURN	X
    267						.IF	NB,<X>
    268						 RTS	X
    269						.IFF
    270						 RTS	PC
    271						.ENDC
    272						.ENDM	RETURN
    273
    274						.MACRO	PUSH	LOCS
    275						.IRP	L,<LOCS>
    276						 MOV	L,-(SP)
    277						.ENDR
    278						.ENDM	PUSH
    279
    280						.MACRO	POP	LOCS
    281						.IRP	L,<LOCS>
    282						 MOV	(SP)+,L
    283						.ENDR
    284						.ENDM	POP
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 5


    286					;
    287					; SHIFT MACROS
    288					;
    289						.MACRO	SL	R,N
    290						.IF	GT,N-7
    291						 SWAB	R
    292						.REPT	N-10
    293						 ASL	R
    294						.ENDR
    295						.IFF
    296						.REPT	N
    297						 ASL	R
    298						.ENDR
    299						.ENDC
    300						.ENDM	SL
    301
    302						.MACRO	SR	R,N
    303						.IF	GT,N-7
    304						 SWAB	R
    305						.REPT	N-10
    306						 ASR	R
    307						.ENDR
    308						.IFF
    309						.REPT	N
    310						 ASR	R
    311						.ENDR
    312						.ENDC
    313						.ENDM	SR
    314
    315						.MACRO	ERROR$	CODE
    316						MOV	#^R'CODE,$LGERR
    317						SEC
    318						RETURN
    319						.ENDM	ERROR$
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 6


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


    378						 BY$$4=<BY$$4*10&010>+<BY$$3/40&007>
    379						 BY$$3=<BY$$3*10&370>+<BY$$2/40&007>
    380						 BY$$2=<BY$$2*10&340>+<AD1*4>
    381						.ENDM
    382						.IRPC	AD1,RH
    383						 BY$$2=<BY$$2&374>+<BY$$1/40&003>
    384						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    385						 BY$$0=<BY$$0*10&370>+<AD1>
    386						.ENDM
    387						 .BYTE	BY$$0,BY$$1,BY$$2
    388						 .BYTE	BY$$3,BY$$4
    389						.ENDM	WD36$
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 7


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

    946					;+
    947					; DFSCLK -- DAGNOSTIC SINGLE STEP CLOCK TRANSLATION MACRO
    948					;
    949					; DFSCLK TRANSALTES A DIAGNOSTIC EMT 122 INTO A "DFXCT SSCLK"
    950					;
    951					; SEE "DFXCT" FOR DETAILS
    952					;-
    953
    954					.MACRO DFSCLK
    955						DFXCT	SSCLK
    956					.ENDM	; DFSCLK
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 23
DMBMCP -- DTE-20 OPERATION MACROS

    958					;+
    959					; DFPC -- DIAGNOSTIC PC READ TRANSLATION MACRO
    960					;
    961					; DFPC RETURNS THE KL10 PC IN A TRIPLET POINTED TO BY R0
    962					;-
    963
    964					.MACRO	DFPC	ADDR
    965					.IF	NB,ADDR
    966						 MOV	#ADDR,R0	; ** BUFFER POINTER TO R0
    967					.ENDC	; .IF NB,ADDR
    968						 JSR	PC,$DFPC	; ** READ THE KL10 PC
    969					.ENDM	; DFPC
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 24
DMBMCP -- DTE-20 OPERATION MACROS

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

   1001					;+
   1002					; DTEBAS -- RETURN DTE-20 BASE ADDRESS TRANSLATION MACRO
   1003					;
   1004					; DTEBAS RETURNS THE THE BASE ADDRESS OF THE PRIVILEGED DTE-20 FROM
   1005					; ".PRDTE" IN THE REGISTER SPECIFIED
   1006					;-
   1007
   1008					.MACRO	DTEBAS	REG
   1009					.IF 	NB,REG
   1010						 MOV	.PRDTE,REG	; ** DTE-20 BASE ADDRESS TO REG
   1011					.IFF
   1012						MOV	.PRDTE,R0	; ** DTE-20 BASE ADDRESS TO R0
   1013					.ENDC	; .IF NB,REG
   1014					.ENDM	; DTEBAS
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 26
DMBMCP -- DTE-20 OPERATION MACROS

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

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

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

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

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

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

   1202					;+
   1203					; VARIOUS PRINT MACROS
   1204					;
   1205					; PFORCE -- NOOP
   1206					; PNORML -- NOOP
   1207					; PNTBAK -- NOOP
   1208					;
   1209					; CHARACTERISTICS:
   1210					;
   1211					;	OBVIOUS
   1212					;-
   1213
   1214					.MACRO	PFORCE
   1215					.ENDM	; PFORCE
   1216
   1217					.MACRO	PNORML
   1218					.ENDM	; PNORML
   1219
   1220					.MACRO	PNTBAK
   1221					.ENDM	; PNTBAK
KLINIT - KL CPU INITIALIZATION 	MACRO V05.04  Monday 16-May-88 16:00  Page 34
REGISTER SAVE/RESTORE TRANSLATION MACROS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   1839	000106	000241 			80$:	CLC			; END OF LOAD.
   1840	000110				90$:	RETURN
	000110	000207 				 RTS	PC
KLIAC	-- AC PROGRAM CONTROL	MACRO V05.04  Monday 16-May-88 16:00  Page 53
$ZERAC	-- ZERO AC SETS 0 TO 6

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

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

	000352	000137 	013760'			 JMP	$DFXC
KLIAC	-- AC PROGRAM CONTROL	MACRO V05.04  Monday 16-May-88 16:00  Page 55
$XCDT	-- INSTRUCTION EXECUTER

   1923
   1924
   1925						.TITLE	KLICA -- LOAD CACHE REFILL RAM
   1926	000356					IDENT$	5,1
						.IDENT	/005010/
   1927					;
   1928					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   1929					; ALL RIGHTS RESERVED.
   1930					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   1931					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   1932					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   1933					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   1934					;
   1935					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1936					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1937					; EQUIPMENT CORPORATION.
   1938					;
   1939					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   1940					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   1941					;
   1942					; VERSION 05-01
   1943					;
   1944					; ALAN D. PECKHAM  8-APR-77
   1945					;
   1946					; MODIFIED BY:
   1947					;
   1948					; FUNCTION: COMPUTE THE REFILL ALGORITHM FOR THE GIVEN CACHE CONFIGURATION
   1949					;  AND WRITE IT TO THE CACHE REFILL RAM.
   1950					;
   1952					; EQUATED SYMBOLS
   1953					;
   1954		000000 			APR	=	0		; KL DEVICE.
   1955		000002 			BLKO	=	2		; KL I/O SUBFUNCTION CODE.
   1956		000014 			CCA	=	14		; KL DEVICE.
   1957		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   1958		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   1959		000540 			HRR	=	540		; KL INSTRUCTION CODE.
   1960		000254 			JRST	=	254		; KL INSTRUCTION CODE.
   1961		000322 			JUMPE	=	322		; KL INSTRUCTION CODE.
   1962		000010 			PAG	=	10		; KL DEVICE.
   1963		000400 			SETZ	=	400		; KL INSTRUCTION CODE.
   1964					;
   1965					; LOCAL DATA
   1966					;
   1967	000022					.PSECT	DATA,D
   1968						.ODD			; DCAWRF MUST BE ON EVEN BOUNDRY.
   1969	000023	   000 	   000 	   010 	DCAPGM:	.BYTE	0,0,10		; LOAD AC0-AC7 OF AC SET 0.
   1970	000026					WD36$	0 0		; AC0
	000026	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000031	   000 	   000 			 .BYTE	BY$$3,BY$$4
   1971	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
   1972	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
   1973	000045					I10$	JUMPE 0,,3	; AC3
KLICA -- LOAD CACHE REFILL RAM	MACRO V05.04  Monday 16-May-88 16:00  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
   1974	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
   1975	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
   1976	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
   1977	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
   1978	000076	   000 	   001 	   377 		.BYTE	0,1,-1		; START AT AC1 OF AC SET 0.
   1979	000101				DCARFL:	.BLKB	5		; WORK TABLE.
   1980						.EVEN
   1981	000000					.PSECT	TEXT,D
   1982	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
   1983	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
   1984	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
   1985	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
   1986	000356					.PSECT
KLICA -- LOAD CACHE REFILL RAM	MACRO V05.04  Monday 16-May-88 16:00  Page 56
$SETCA	-- CONFIGURE CACHE

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

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

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

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

   2177	000172	000000 	000000 	000000 	DCBDBF:	.WORD	0,0,0		; D-RAM WORD HOLDING AREA.
   2178						.EVEN			; DCBBF MUST BE ON A WORD BOUNDRY.
   2179					;DCBBF:	WD36$	0 0		; APRID RESULT.
   2180					;DCBA17:	WD22$	17		; AC17 ADDRESS.
   2181					;DCBAPR:	IO10$	BLKI APR,,17	; APRID INSTRUCTION.
   2182	000200	   113 	   114 	   111 	TTTPR:	.ASCIZ	/KLI -- /			;[4.2209]
	000203	   040 	   055 	   055
	000206	   040 	   000
   2183						.EVEN
   2184	000117					.PSECT	TEXT,D
   2185	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
   2186	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
   2187	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
   2188	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
   2189	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 V05.04  Monday 16-May-88 16:00  Page 58-2
$SETCA	-- CONFIGURE CACHE

	000312	   104 	   000
   2190	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
   2191	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
   2192	000424				TCBBAD:	MESSAGE	<BAD  >					; [4.2209]
	000424	   102 	   101 	   104 		 .ASCIZ	\BAD  \
	000427	   040 	   040 	   000
   2193	000432				TCBGOD:	MESSAGE	<GOOD >					; [4.2209]
	000432	   107 	   117 	   117 		 .ASCIZ	\GOOD \
	000435	   104 	   040 	   000
   2194	000440				TCBXOR:	MESSAGE	<XOR  >					; [4.2209]
	000440	   130 	   117 	   122 		 .ASCIZ	\XOR  \
	000443	   040 	   040 	   000
   2195	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 V05.04  Monday 16-May-88 16:00  Page 58-3
$SETCA	-- CONFIGURE CACHE

   2196	001066					.PSECT
KLICB -- LOAD THE MICROCODE	MACRO V05.04  Monday 16-May-88 16:00  Page 59
$SETCA	-- CONFIGURE CACHE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   2716					;
   2717					; EQUATED SYMBOLS
   2718					;
   2719		000005 			MXTYP	=	5		; LARGEST RECORD TYPE WE HANDLE.
   2720					;
   2721					; LOCAL DATA
   2722					;
   2723	000210					.PSECT	DATA,D
   2724	000210				DCFCFN:
   2725	000210	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000216	011667
   2726	000220	000000 				.WORD	0		;CREATE NEXT VERSION.
   2727	000222	   005 	   005 			.BYTE	5,5
   2728	000224	054523 	000000 			.WORD	"SY,0
   2729	000230				DCFLFN:
   2730	000230	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000236	011667
   2731	000240	177777 				.WORD	-1		;DELETE LOWEST VERSION.
   2732	000242	   005 	   005 			.BYTE	5,5
   2733	000244	054523 	000000 			.WORD	"SY,0
   2734	000250				DCFRJT:
   2735	000250	003314'				.WORD	LCFREF		; 0 - EOF RECORD
   2736	000252	003176'				.WORD	LCFRMM		; 1 - CONTROLLER RECORD
   2738	000254	003276'				.WORD	LCFRCA		; 2 - CACHE RECORD
   2742	000256	003256'				.WORD	LCFRBF		; 3 - BOOTSTRAP RECORD
   2743	000260	003516'				.WORD	LCFRMC		; 4 - MICROCODE RECORD
   2744	000262	003266'				.WORD	LCFRPA		; [**] 5 - CACHE PAGER RECORD
   2748	000536					.PSECT	TEXT,D
   2749	000536				TCFCFA:
   2750	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
   2751	000571				TCFCFE:
   2752	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
   2753	003036					.PSECT
KLICF -- CREATE NEW CONFIGURATI	MACRO V05.04  Monday 16-May-88 16:00  Page 69
$FILE	-- WRITE THE CONFIGURATION FILE

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

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

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

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

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

   3020	003502					PRINT	#TCFCFE		; TELL OPERATOR
	003502	012700 	000571'			 MOV	#TCFCFE,R0
	003506	004737 	027634'			 JSR	PC,$TTMSG
   3021	003512	000261 				SEC
   3022	003514					RETURN			; AND GO AWAY.
	003514	000207 				 RTS	PC
   3023
   3024	003516				LCFRMC:
   3025	003516	105737 	000025'			TSTB	.MCBSW		; FILENAME SPECIFIED ??
   3026	003522	001630 				BEQ	LCFCPY		; NO, SKIP THIS RECORD
   3027	003524	000667 				BR	LCFSKP		; YES, SKIP IT
KLICF -- CREATE NEW CONFIGURATI	MACRO V05.04  Monday 16-May-88 16:00  Page 71
$FILE	-- WRITE BOOTSTRAP RECORD

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

   3068						.SBTTL	$FILE	-- WRITE END-OF-FILE RECORD
   3069
   3070					;
   3071					; WRITE END-OF-FILE RECORD
   3072					;
   3073
   3074	003642				LCFWEF:
   3075	003642	012700 	000002 			MOV	#2,R0		; WRITE EOF RECORD.
   3076	003646					CALL	$WRITC
	003646	004737 	010624'			 JSR	PC,$WRITC
   3077	003652	103403 				BCS	10$
   3078	003654	005000 				CLR	R0
   3079	003656					CALLR	$WRITW
	003656	000137 	010736'			 JMP	$WRITW
   3080						;
   3081	003662				10$:
   3082	003662					RETURN
	003662	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO V05.04  Monday 16-May-88 16:00  Page 73
$FILE	-- WRITE MEMORY CONTROLLER RECORDS

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

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

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

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

   3195
   3196						.TITLE	KLICI -- INTERNAL AND MOS DIALOGUE
   3197	004200					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3198					;
   3199					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3200					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3201					;			ALL RIGHTS RESERVED.
   3202					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3203					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3204					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3205					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3206					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3207					;
   3208					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3209					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3210					;       CORPORATION.
   3211					;
   3212					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3213					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3214					;
   3215					;
   3216					;	MODULE: INTERNAL AND MOS DIALOGUE
   3217					;
   3218					;	VERSION:  10-00
   3219					;
   3220					;	DATE: 25-JUL-78
   3221					;
   3222					;	AUTHOR: R. BELANGER
   3223					;
   3224					;	MODIFICATIONS:
   3225					;
   3226					;	NO.	DATE		PROGRAMMER	REASON
   3227					;	---	----		----------	------
   3228					;
   3229					;			LOCAL DATA
   3230					;
   3231
   3232	000632					.PSECT	TEXT,D
   3233	000632				CFIMQ1:
   3234	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
   3235	000707				CFMMQ1:
KLICI -- INTERNAL AND MOS DIALO	MACRO V05.04  Monday 16-May-88 16:00  Page 77-1
$FILE	-- WRITE PAGE TABLE SELECTION

   3236	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
   3237	000752				CFIMQ2:
   3238	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
   3239	001024				CFIMQ3:
   3240	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
   3241	001051				CFIMQ4:
   3242	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 V05.04  Monday 16-May-88 16:00  Page 77-2
$FILE	-- WRITE PAGE TABLE SELECTION

	001134	   077 	   000
   3243	004200					.PSECT
KLICI -- INTERNAL AND MOS DIALO	MACRO V05.04  Monday 16-May-88 16:00  Page 78
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

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

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

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

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

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

   3505	005044					PRINT	#COMCSE		; ERROR MESSAGE
	005044	012700 	005552'			 MOV	#COMCSE,R0
	005050	004737 	027634'			 JSR	PC,$TTMSG
   3506	005054	000725 				BR	20$		; TRY AGAIN
   3507						;
KLICI -- INTERNAL AND MOS DIALO	MACRO V05.04  Monday 16-May-88 16:00  Page 79
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3509
   3510
   3511						.TITLE	KLICM -- CHECK INTERNAL MEMORY CONFIGURATION
   3512	005056					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3513					;
   3514					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3515					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3516					;			ALL RIGHTS RESERVED.
   3517					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3518					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3519					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3520					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3521					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3522					;
   3523					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3524					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3525					;       CORPORATION.
   3526					;
   3527					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3528					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3529					;
   3530					;
   3531					;	MODULE: INTERNAL CONFIGURATION CHECK
   3532					;
   3533					;	VERSION: 10-00
   3534					;
   3535					;	DATE: 25-JUL-78
   3536					;
   3537					;	AUTHOR: R. BELANGER
   3538					;
   3539					;	MODIFICATIONS:
   3540					;
   3541					;	NO.	DATE		PROGRAMMER	REASON
   3542					;	---	----		----------	------
   3543					;
   3544					;			LOCAL DATA
   3545					;
   3546	000264					.PSECT	DATA,D
   3547	000264				SETIMF:
   3548	000264	   000 				.BYTE	0
   3549	000265				SETMMF:
   3550	000265	   000 				.BYTE	0
   3551	001136					.PSECT	TEXT,D
   3552	001136				CIMNXC:
   3553	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
   3554	001167				CIMNXM:
   3555	001167					ERROR	<NONEXISTENT MODULE/BLOCK>
KLICM -- CHECK INTERNAL MEMORY 	MACRO V05.04  Monday 16-May-88 16:00  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
   3556	005056					.PSECT
KLICM -- CHECK INTERNAL MEMORY 	MACRO V05.04  Monday 16-May-88 16:00  Page 80
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

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

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

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

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

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

   3788
   3789						.TITLE	KLICO -- CONFIGURATION EDITOR
   3790	005514					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3791					;
   3792					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   3793					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3794					;			ALL RIGHTS RESERVED.
   3795					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3796					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3797					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3798					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3799					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3800					;
   3801					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3802					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3803					;       CORPORATION.
   3804					;
   3805					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3806					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3807					;
   3808					;
   3809					;	MODULE: CONFIGURATION EDITOR
   3810					;
   3811					;	VERSION: 10-00
   3812					;
   3813					;	DATE: 25-JUL-78
   3814					;
   3815					;	AUTHOR: R. BELANGER
   3816					;
   3817					;	MODIFICATIONS:
   3818					;
   3819					;	NO.	DATE		PROGRAMMER	REASON
   3820					;	---	----		----------	------
   3821					;
   3822					;
   3823					;
   3824					;			LOCAL DATA
   3825					;
   3826	001222					.PSECT	TEXT,D
   3827	001222				CFGINM:
   3828	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 V05.04  Monday 16-May-88 16:00  Page 82-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

	001277	   040 	   106 	   111
	001302	   114 	   105 	   000
   3829	001305				CFGXNM:
   3830	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
   3831	001370				CFGMNM:
   3832	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
   3833	001441				CFGMAC:
   3834	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
   3835	005514					.PSECT
KLICO -- CONFIGURATION EDITOR	MACRO V05.04  Monday 16-May-88 16:00  Page 83
$CONFG -- EDITOR DISPATCH

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

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

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

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

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

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

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

   4070
   4071
   4072						.TITLE	KLICS -- SWEEP CACHE
   4073	006502					IDENT$	5,1
						.IDENT	/005010/
   4074					;
   4075					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4076					; ALL RIGHTS RESERVED.
   4077					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4078					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4079					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4080					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4081					;
   4082					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4083					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4084					; EQUIPMENT CORPORATION.
   4085					;
   4086					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4087					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4088					;
   4089					; VERSION 05-01
   4090					;
   4091					; ALAN D. PECKHAM  8-APR-77
   4092					;
   4093					; MODIFIED BY:
   4094					;
   4095					; FUNCTION: SWEEP AND INVALIDATE THE KL CACHE.
   4096					;
   4098					; EQUATED SYMBOLS
   4099					;
   4100		000014 			CCA	=	14		; KL DEVICE.
   4101		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   4102		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   4103		000010 			PAG	=	10		; KL DEVICE.
   4104					;
   4105					; LOCAL DATA
   4106					;
   4107	000266					.PSECT	DATA,D
   4108	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
   4109	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
   4110						.EVEN
   4111	006502					.PSECT
KLICS -- SWEEP CACHE	MACRO V05.04  Monday 16-May-88 16:00  Page 89
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

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

   4140
   4141						.TITLE	KLICX -- EXTERNAL MEMORY CONFIGURATION DIALOG
   4142	006544					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   4143					;
   4144					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   4145					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4146					;			ALL RIGHTS RESERVED.
   4147					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4148					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4149					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4150					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4151					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4152					;
   4153					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4154					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4155					;       CORPORATION.
   4156					;
   4157					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4158					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4159					;
   4160					;
   4161					;	MODULE: EXTERNAL MEMORY CONFIGURATION DIALOG
   4162					;
   4163					;	VERSION: 10-00
   4164					;
   4165					;	DATE: 25-JUL-78
   4166					;
   4167					;	AUTHOR: R. BELANGER
   4168					;
   4169					;	MODIFICATIONS:
   4170					;
   4171					;	NO.	DATE		PROGRAMMER	REASON
   4172					;	---	----		----------	------
   4173					;
   4174					;			LOCAL DATA
   4175					;
   4176	001504					.PSECT	TEXT,D
   4177	001504				CXMDOL:
   4178	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
   4179	001547				CFXMQ1:
   4180	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 V05.04  Monday 16-May-88 16:00  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
   4181	001620				CFXMQ2:
   4182	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
   4183	001677				CXMIBM:
   4184	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
   4185	006544					.PSECT
KLICX -- EXTERNAL MEMORY CONFIG	MACRO V05.04  Monday 16-May-88 16:00  Page 91
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

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

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

   4267
   4268
   4269						.TITLE	KLIDC -- FILE CLOSE ROUTINE
   4270	007056					IDENT$	5,0
						.IDENT	/005000/
   4271					;
   4272					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4273					; ALL RIGHTS RESERVED.
   4274					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4275					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4276					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4277					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4278					;
   4279					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4280					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4281					; EQUIPMENT CORPORATION.
   4282					;
   4283					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4284					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4285					;
   4286					; VERSION 05-00
   4287					;
   4288					; ALAN D. PECKHAM  15-APR-77
   4289					;
   4290					; MODIFIED BY:
   4291					;
   4292					; FUNCTION: THIS ROUTINE CLOSES THE FILE CURRENTLY OPEN. IF IT IS
   4293					;  AND OUTPUT FILE, THE LAST BLOCK IS WRITTEN OUT AND
   4294					;  THE ATTRIBUTES ARE WRITTEN.
   4295					;
   4296					; LOCAL MACROS
   4297					;
   4298						.MCALL	QIOW$
   4299					;
   4300					; LOCAL DATA
   4301					;
   4302	000300					.PSECT	DATA,D
   4303	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	000532'				.WORD	.SYSTA
	000312	000000 				.WORD
   4304	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	000532'				.WORD	.SYSTA
	000326	000000 				.WORD
	000330	000000 				.WORD
	000332	000334'				.WORD	DDCWAT
   4305	000334	   004 	   016 		DDCWAT:	.BYTE	4,16		; ATTRIBUTES INFO
   4306	000336	002656'				.WORD	.SYATT
   4307	000340	   005 	   012 			.BYTE	5,12		; FILENAME INFO
   4308	000342	001600'				.WORD	.SYOFN+00
KLIDC -- FILE CLOSE ROUTINE	MACRO V05.04  Monday 16-May-88 16:00  Page 92-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4309	000344	   001 	   002 			.BYTE	1,2		; AND OWNER'S UIC
   4310	000346	001612'				.WORD	.SYOFN+12
   4311	000350	   000 	   000 			.BYTE	0,0		; END OF CONTROL WORDS.
   4312	007056					.PSECT
KLIDC -- FILE CLOSE ROUTINE	MACRO V05.04  Monday 16-May-88 16:00  Page 93
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

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

   4355
   4356
   4357						.TITLE	KLIDD -- DELETE A FILE
   4358	007214					IDENT$	5,0
						.IDENT	/005000/
   4359					;
   4360					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4361					; ALL RIGHTS RESERVED.
   4362					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4363					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4364					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4365					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4366					;
   4367					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4368					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4369					; EQUIPMENT CORPORATION.
   4370					;
   4371					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4372					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4373					;
   4374					; VERSION 05-00
   4375					;
   4376					; ALAN D. PECKHAM  15-APR-77
   4377					;
   4378					; MODIFIED BY:
   4379					;
   4380					; FUNCTION: THIS ROUTINE DELETES THE FILE SPECIFIED BY THE FILE NAME
   4381					;  POINTED TO BY R0.
   4382					;
   4383					; LOCAL MACROS
   4384					;
   4385						.MCALL	QIOW$
   4386					;
   4387					; LOCAL DATA
   4388					;
   4389	000352					.PSECT	DATA,D
   4390	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	000532'				.WORD	.SYSTA
	000364	000000 				.WORD
	000366	000000 				.WORD
	000370	000000 				.WORD
	000372	000000 				.WORD
	000374	000000 				.WORD
	000376	000000 				.WORD
	000400	002624'				.WORD	.SYFNB
   4391	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	000532'				.WORD	.SYSTA
	000414	000000 				.WORD
	000416	002624'				.WORD	.SYFID
KLIDD -- DELETE A FILE	MACRO V05.04  Monday 16-May-88 16:00  Page 94-1
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4392	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	000532'				.WORD	.SYSTA
	000432	000000 				.WORD
	000434	000000 				.WORD
	000436	000000 				.WORD
	000440	000000 				.WORD
	000442	000000 				.WORD
	000444	000000 				.WORD
	000446	002624'				.WORD	.SYFNB
   4393	007214					.PSECT
KLIDD -- DELETE A FILE	MACRO V05.04  Monday 16-May-88 16:00  Page 95
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

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

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

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

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

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

   4578
   4579						.TITLE	KLIDE -- PRINT I/O ERROR MESSAGE
   4580	007346					IDENT$	5,1								; ADP01
						.IDENT	/005010/
   4581					;
   4582					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4583					; ALL RIGHTS RESERVED.
   4584					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4585					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4586					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4587					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4588					;
   4589					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4590					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4591					; EQUIPMENT CORPORATION.
   4592					;
   4593					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4594					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4595					;
   4596					; VERSION 05-01									; ADP01
   4597					;
   4598					; ALAN D. PECKHAM  15-APR-77
   4599					;
   4600					; MODIFIED BY:
   4601					;
   4602					; FUNCTION: THIS ROUTINE IS CALLED TO PRINT OUT THE ERROR CODE
   4603					;  IN CASE OF I/O ERROR. IT ALSO PRINTS THE DEVICE AND
   4604					;  FILE NAME ASSOCIATED TO THE ERROR.
   4605					;
   4606					; LOCAL DATA
   4607					;
   4608	001722					.PSECT	TEXT,D
   4609	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
   4610	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 V05.04  Monday 16-May-88 16:00  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
   4611	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
   4612	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
   4613	007346					.PSECT
KLIDE -- PRINT I/O ERROR MESSAG	MACRO V05.04  Monday 16-May-88 16:00  Page 101
$IOERR	-- REPORT I/O ERROR

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

	007534	000207 				 RTS	PC
KLIDE -- PRINT I/O ERROR MESSAG	MACRO V05.04  Monday 16-May-88 16:00  Page 102
$IOERR	-- REPORT I/O ERROR

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

   4687
   4688
   4689						.TITLE	KLIDL -- LOOKUP AN EXISTING FILE FOR INPUT
   4690	007562					IDENT$	5,0
						.IDENT	/005000/
   4691					;
   4692					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4693					; ALL RIGHTS RESERVED.
   4694					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4695					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4696					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4697					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4698					;
   4699					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4700					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4701					; EQUIPMENT CORPORATION.
   4702					;
   4703					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4704					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4705					;
   4706					; VERSION 05-00
   4707					;
   4708					; ALAN D. PECKHAM  15-APR-77
   4709					;
   4710					; MODIFIED BY:
   4711					;
   4712					; FUNCTION: THIS ROUTINE FINDS THE FILE WITH THE NAME POINTED TO BY R0
   4713					;  AND ACCESSES IT FOR READ.
   4714					;
   4715					; LOCAL MACROS
   4716					;
   4717						.MCALL	GLUN$,QIOW$
   4718					;
   4719					; LOCAL DATA
   4720					;
   4721	000450					.PSECT	DATA,D
   4722	000450				DDLGLN:	GLUN$	SYILUN,.SYIBF
	000450	   005 	   003 			.BYTE	5,3
	000452	000004 				.WORD	SYILUN
	000454	000572'				.WORD	.SYIBF
   4723	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	000532'				.WORD	.SYSTA
	000470	000000 				.WORD
	000472	000000 				.WORD
	000474	000000 				.WORD
	000476	000000 				.WORD
	000500	000000 				.WORD
	000502	000000 				.WORD
	000504	002624'				.WORD	.SYFNB
   4724	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 V05.04  Monday 16-May-88 16:00  Page 103-1
$IOERR	-- REPORT I/O ERROR

	000514	   001 	   000 			.BYTE	1,
	000516	000532'				.WORD	.SYSTA
	000520	000000 				.WORD
	000522	002624'				.WORD	.SYFID
	000524	000564'				.WORD	DDLRAT
	000526	000000 				.WORD
	000530	000000 				.WORD
	000532	100000 				.WORD	BIT15
   4725	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	002624'				.WORD	.SYFNB
   4726	000564	   373 	   012 		DDLRAT:	.BYTE	-5,12		; READ FILE NAME
   4727	000566	000546'				.WORD	.SYIFN+00
   4728	000570	   377 	   002 			.BYTE	-1,2		; READ OWNER'S UIC
   4729	000572	000560'				.WORD	.SYIFN+12
   4730	000574	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4731	007562					.PSECT
KLIDL -- LOOKUP AN EXISTING FIL	MACRO V05.04  Monday 16-May-88 16:00  Page 104
$LOOKUP	-- LOOK UP AN EXISTING FILE

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

   4775
   4776
   4777						.TITLE	KLIDN -- ENTER A FILE FOR OUTPUT
   4778	007734					IDENT$	5,0
						.IDENT	/005000/
   4779					;
   4780					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4781					; ALL RIGHTS RESERVED.
   4782					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4783					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4784					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4785					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4786					;
   4787					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4788					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4789					; EQUIPMENT CORPORATION.
   4790					;
   4791					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4792					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4793					;
   4794					; VERSION 05-00
   4795					;
   4796					; ALAN D. PECKHAM  15-APR-77
   4797					;
   4798					; MODIFIED BY:
   4799					;
   4800					; FUNCTION: THIS ROUTINE CREATES A FILE AND ACCESSES IT FOR EXTENDING.
   4801					;  THE FILE IS ALLOCATED 1 BLOCK INITIALLY.
   4802					;
   4803					; LOCAL MACROS
   4804					;
   4805						.MCALL	GLUN$,QIOW$
   4806					;
   4807					; LOCAL DATA
   4808					;
   4809	000576					.PSECT	DATA,D
   4810	000576				DDNGLN:	GLUN$	SYOLUN,.SYOBF
	000576	   005 	   003 			.BYTE	5,3
	000600	000005 				.WORD	SYOLUN
	000602	001624'				.WORD	.SYOBF
   4811	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	000532'				.WORD	.SYSTA
	000616	000000 				.WORD
	000620	002624'				.WORD	.SYFID
	000622	000000 				.WORD
	000624	100000 				.WORD	BIT15
	000626	000001 				.WORD	1
   4812	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	000532'				.WORD	.SYSTA
KLIDN -- ENTER A FILE FOR OUTPU	MACRO V05.04  Monday 16-May-88 16:00  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	002624'				.WORD	.SYFNB
   4813	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	000532'				.WORD	.SYSTA
	000672	000000 				.WORD
	000674	002624'				.WORD	.SYFID
	000676	000722'				.WORD	DDNRAT
	000700	000000 				.WORD
	000702	000000 				.WORD
	000704	100000 				.WORD	BIT15
   4814	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
   4815	000722	   373 	   012 		DDNRAT:	.BYTE	-5,12		; READ FILE NAME
   4816	000724	001600'				.WORD	.SYOFN+00
   4817	000726	   377 	   002 			.BYTE	-1,2		; AND OWNER'S UIC
   4818	000730	001612'				.WORD	.SYOFN+12
   4819	000732	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4820	007734					.PSECT
KLIDN -- ENTER A FILE FOR OUTPU	MACRO V05.04  Monday 16-May-88 16:00  Page 106
$ENTER	-- ENTER A NEW FILE

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

   4865
   4866
   4867						.TITLE	KLIDP -- FILE PURGE ROUTINE
   4868	010124					IDENT$	5,0
						.IDENT	/005000/
   4869					;
   4870					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4871					; ALL RIGHTS RESERVED.
   4872					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4873					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4874					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4875					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4876					;
   4877					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4878					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4879					; EQUIPMENT CORPORATION.
   4880					;
   4881					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4882					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4883					;
   4884					; VERSION 05-00
   4885					;
   4886					; ALAN D. PECKHAM  15-APR-77
   4887					;
   4888					; MODIFIED BY:
   4889					;
   4890					; FUNCTION: THIS ROUTINE PURGES THE FILE CURRENTLY OPEN. THE
   4891					;  OUTPUT FILE IS MARKED FOR DELETION AND ITS FILE NAME
   4892					;  IS REMOVED FROM THE DIRECTORY.
   4893					;
   4894					; LOCAL MACROS
   4895					;
   4896						.MCALL	QIOW$
   4897					;
   4898					; LOCAL DATA
   4899					;
   4900	000734					.PSECT	DATA,D
   4901	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
   4902	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
   4903	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 V05.04  Monday 16-May-88 16:00  Page 107-1
$ENTER	-- ENTER A NEW FILE

	000776	000000 				.WORD
   4904	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	002624'				.WORD	.SYFNB
   4905									; REMOVE OUTPUT FILENAME FROM DIRECTORY.
   4906	010124					.PSECT
KLIDP -- FILE PURGE ROUTINE	MACRO V05.04  Monday 16-May-88 16:00  Page 108
$PURGE	-- PURGE FILES CURRENTLY OPEN

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

   4932
   4933						.TITLE	KLIDR -- RECORD READ ROUTINES
   4934	010216					IDENT$	5,0
						.IDENT	/005000/
   4935					;
   4936					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4937					; ALL RIGHTS RESERVED.
   4938					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4939					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4940					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4941					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4942					;
   4943					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4944					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4945					; EQUIPMENT CORPORATION.
   4946					;
   4947					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4948					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4949					;
   4950					; VERSION 05-00
   4951					;
   4952					; ALAN D. PECKHAM  15-APR-77
   4953					;
   4954					; MODIFIED BY:
   4955					;
   4956					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   4957					;  READING OF RSX-BINARY RECORDS FROM THE CURRENTLY
   4958					;  OPEN FILE.
   4959					;
   4960					; LOCAL MACROS
   4961					;
   4962						.MCALL	QIOW$S
   4963					;
   4964					; LOCAL DATA
   4965					;
   4966	002201					.PSECT	TEXT,D
   4967	002201				TDRRDE:
   4968	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
   4969	002216				TDRRLE:
   4970	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
   4971	010216					.PSECT
KLIDR -- RECORD READ ROUTINES	MACRO V05.04  Monday 16-May-88 16:00  Page 110
$READC	-- START READING A RECORD

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

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

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

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

   5088						.SBTTL	$READ	-- READ NEXT VIRTUAL BLOCK
   5089					;+
   5090					; READ THE NEXT BLOCK FROM THE SYSTEM DEVICE AND RESET BUFFER PARAMETERS.
   5091					;
   5092					; NO INPUTS
   5093					;
   5094					; OUTPUTS:
   5095					;	.SYIBA	- POINTS TO THE BEGINING OF THE BUFFER READ.
   5096					;	.SYIBC	- COUNT OF BYTES READ.
   5097					;	CARRY IS SET ON READ ERROR AND MESSAGE IS DISPLAYED.
   5098					;-
   5099
   5100	010474				$READ::
   5101	010474	062737 	000001 	000570'		ADD	#1,.SYIVB+2	; GET NEXT BLOCK.
   5102	010502	005537 	000566'			ADC	.SYIVB
   5103
   5104					;	READ VIRTUAL BLOCK
   5105
   5106	010506					QIOW$S	#IO.RVB,#SYILUN,#1,,#.SYSTA,,<#.SYIBF,#S.YIL,,.SYIVB,.SYIVB+2>
	010506	013746 	000570'			MOV	.SYIVB+2,-(SP)
	010512	013746 	000566'			MOV	.SYIVB,-(SP)
	010516	005046 				CLR	-(SP)
	010520	012746 	001000 			MOV	#S.YIL,-(SP)
	010524	012746 	000572'			MOV	#.SYIBF,-(SP)
	010530	005046 				CLR	-(SP)
	010532	012746 	000532'			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
   5107	010562	103412 				BCS	10$
   5108	010564	105737 	000532'			TSTB	.SYSTA
   5109	010570	002407 				BLT	10$		; READ FAILED.
   5110	010572	012737 	000572'	000542'		MOV	#.SYIBF,.SYIBA	; SAVE BUFFER ADR
   5111	010600	013737 	000534'	000544'		MOV	.SYSTA+2,.SYIBC	; AND BYTE COUNT
   5112	010606					RETURN
	010606	000207 				 RTS	PC
   5113
   5114	010610				10$:
   5115	010610					PRINT	#TDRRDE		; PRINT ERROR MESSAGE.
	010610	012700 	002201'			 MOV	#TDRRDE,R0
	010614	004737 	027634'			 JSR	PC,$TTMSG
   5116	010620	000261 				SEC
   5117	010622					RETURN
	010622	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO V05.04  Monday 16-May-88 16:00  Page 115
$READ	-- READ NEXT VIRTUAL BLOCK

   5119
   5120
   5121						.TITLE	KLIDW -- RECORD WRITE ROUTINES
   5122	010624					IDENT$	5,0
						.IDENT	/005000/
   5123					;
   5124					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5125					; ALL RIGHTS RESERVED.
   5126					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5127					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5128					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5129					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5130					;
   5131					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5132					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5133					; EQUIPMENT CORPORATION.
   5134					;
   5135					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5136					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5137					;
   5138					; VERSION 05-00
   5139					;
   5140					; ALAN D. PECKHAM  15-APR-77
   5141					;
   5142					; MODIFIED BY:
   5143					;
   5144					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   5145					;  WRITING OF RSX-BINARY RECORDS TO THE CURRENTLY
   5146					;  OPEN FILE.
   5147					;
   5148					; LOCAL MACROS
   5149					;
   5150						.MCALL	QIOW$S
   5151					;
   5152					; LOCAL DATA
   5153					;
   5154	002252					.PSECT	TEXT,D
   5155	002252				TDWWRE:
   5156	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
   5157	002270				TDWRLE:
   5158	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
   5159	010624					.PSECT
KLIDW -- RECORD WRITE ROUTINES	MACRO V05.04  Monday 16-May-88 16:00  Page 116
$WRITC	-- START WRITING A RECORD

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

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

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

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

   5278						.SBTTL	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   5279					;+
   5280					; WRITE THE NEXT BLOCK TO THE OUTPUT FILE. IF END-OF-FILE, THEN
   5281					; EXTEND THE FILE AND TRY TO WRITE THE BLOCK AGAIN.
   5282					;
   5283					; INPUTS:
   5284					;	.SYOBF	- BLOCK OF "S.YOL" BYTES TO WRITE.
   5285					;
   5286					; OUTPUTS:
   5287					;	.SYOBA	- ADDRESS OF NEW BUFFER TO FILL
   5288					;	.SYOBC	- SIZE OF BUFFER IN BYTES.
   5289					;	CARRY IS SET ON WRITE OR EXTEND ERROR AND MESSAGE IS DISPLAYED.
   5290					;-
   5291
   5292	011072				$WRITE::
   5293	011072					QIOW$S	#IO.WVB,#SYOLUN,#1,,#.SYSTA,,<#.SYOBF,#S.YOL,,.SYOVB,.SYOVB+2>
	011072	013746 	001622'			MOV	.SYOVB+2,-(SP)
	011076	013746 	001620'			MOV	.SYOVB,-(SP)
	011102	005046 				CLR	-(SP)
	011104	012746 	001000 			MOV	#S.YOL,-(SP)
	011110	012746 	001624'			MOV	#.SYOBF,-(SP)
	011114	005046 				CLR	-(SP)
	011116	012746 	000532'			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
   5294	011146	103427 				BCS	20$
   5295	011150	105737 	000532'			TSTB	.SYSTA
   5296	011154	002414 				BLT	10$		; WRITE FAILED.
   5297	011156	062737 	000001 	001622'		ADD	#1,.SYOVB+2	; SET UP FOR NEXT BLOCK.
   5298	011164	005537 	001620'			ADC	.SYOVB		; (CARRY SHOULD BE CLEAR)
   5299	011170	012737 	001624'	001574'		MOV	#.SYOBF,.SYOBA	; RESET BUFFER ADDRESS
   5300	011176	012737 	001000 	001576'		MOV	#S.YOL,.SYOBC	; AND BYTE COUNT.
   5301	011204					RETURN
	011204	000207 				 RTS	PC
   5302	011206				10$:
   5303	011206	122737 	000000G	000532'		CMPB	#IE.EOF,.SYSTA	; IS THE FILE TOO SMALL ?
   5304	011214	001004 				BNE	20$		; NO, THIS IS TRULY AN ERROR.
   5305	011216					CALL	$EXTEND		; OTHERWISE EXTEND THE FILE
	011216	004737 	011242'			 JSR	PC,$EXTEND
   5306	011222	103323 				BCC	$WRITE		; AND WRITE THE BLOCK AGAIN.
   5307	011224					RETURN
	011224	000207 				 RTS	PC
   5308	011226				20$:
   5309	011226					PRINT	#TDWWRE		; PRINT IT.
	011226	012700 	002252'			 MOV	#TDWWRE,R0
	011232	004737 	027634'			 JSR	PC,$TTMSG
   5310	011236	000261 				SEC
   5311	011240					RETURN
	011240	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO V05.04  Monday 16-May-88 16:00  Page 121
$WRITE	-- WRITE NEXT VIRTUAL BLOCK

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

   5351						.SBTTL	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   5352					;+
   5353					; EXTEND THE OUTPUT FILE BY ONE BLOCK.
   5354					;
   5355					; NO INPUTS
   5356					;
   5357					; OUTPUTS:
   5358					;	CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   5359					;-
   5360
   5361	011242				$EXTEND::DIR$	#DDXEXT		; EXTEND THE FILE.
	011242	012746 	001030'			MOV	#DDXEXT,-(SP)
	011246	104375 				EMT	375
   5362	011250	103411 				BCS	10$
   5363	011252	105737 	000532'			TSTB	.SYSTA
   5364	011256	002406 				BLT	10$
   5365	011260	062737 	000001 	002664'		ADD	#1,.SYATT+6	; ONE MORE BLOCK ALLOCATED.
   5366	011266	005537 	002662'			ADC	.SYATT+4	; (CARRY SHOULD BE CLEAR)
   5367	011272					RETURN
	011272	000207 				 RTS	PC
   5368
   5369	011274	012700 	001600'		10$:	MOV	#.SYOFN,R0	; EXTEND FAILED.
   5370	011300					CALLR	$IOERR
	011300	000137 	007346'			 JMP	$IOERR
KLIDX -- EXTEND AN OUTPUT FILE 	MACRO V05.04  Monday 16-May-88 16:00  Page 123
$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK

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

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

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

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

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

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

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

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

   5707	012450					POP	R1
	012450	012601 				 MOV	(SP)+,R1
   5708	012452	103757 				BCS	10$		; ERROR
   5709	012454	000301 				SWAB	R1		; GOT A & B
   5710	012456	010300 				MOV	R3,R0		; GOT CORRECT DIAG FUNC & WRITE
   5711	012460	110137 	001112'		LFDWFN:	MOVB	R1,DFDDBF+2	; R1 HAS THE DATA
   5712	012464	012701 	001110'			MOV	#DFDDBF,R1	; DATA ADR
   5713	012470					CALLR	$DFWR		; WRITE IT
	012470	000137 	013556'			 JMP	$DFWR
KLIFD -- D-RAM READ/WRITE	MACRO V05.04  Monday 16-May-88 16:00  Page 129
$RDRAM	-- READ D-RAM WORD

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

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

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

   5816
   5817
   5818						.TITLE	KLIFE -- DEPOSIT/EXAMINE KL MEMORY
   5819	013056					IDENT$	5,1
						.IDENT	/005010/
   5820					;
   5821					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5822					; ALL RIGHTS RESERVED.
   5823					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5824					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5825					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5826					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5827					;
   5828					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5829					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5830					; EQUIPMENT CORPORATION.
   5831					;
   5832					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5833					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5834					;
   5835					; VERSION 05-01
   5836					;
   5837					; ALAN D. PECKHAM  29-MAR-77
   5838					;
   5839					; MODIFIED BY:
   5840					;
   5841					;	R. BELANGER	24-AUG-78	FIX CROCK IN ".DESW" MAINTENANCE
   5842					;
   5843					; FUNCTION: ROUTINES TO ACCESS KL MEMORY.
   5844					;
   5845					; LOCAL MACROS
   5846					;
   5847						.MCALL	PREX$,PRDP$
   5848					;
   5849					; LOCAL DATA
   5850					;
   5851	001122					.PSECT	DATA,D
   5852	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
   5853	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
   5854	001146				DFEAD:	WD22$	0		; ADDRESS OF MEMORY ACCESS.
	001146	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   5855						.EVEN
   5856	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
   5857						.EVEN
   5858	002325					.PSECT	TEXT,D
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO V05.04  Monday 16-May-88 16:00  Page 131-1
$ADRAM	-- ADDRESS D-RAM WORD

   5859	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
   5860	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
   5861	013056					.PSECT
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO V05.04  Monday 16-May-88 16:00  Page 132
$DPOS	-- DEPOSIT KL MEMORY ROUTINE

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

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

   5943	013312					RETURN
	013312	000207 				 RTS	PC
   5944	013314				90$:	PRINT	#TFEEFL		; INFORM OPERATOR OF ERROR.
	013314	012700 	002346'			 MOV	#TFEEFL,R0
	013320	004737 	027634'			 JSR	PC,$TTMSG
   5945	013324	000261 				SEC
   5946	013326					RETURN
	013326	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO V05.04  Monday 16-May-88 16:00  Page 134
$EXAM	-- EXAMINE KL MEMORY ROUTINE

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

   5982
   5983						.TITLE	KLIFR -- PERFORM DIAGNOSTIC FUNCTION READ
   5984	013440					IDENT$	5,0
						.IDENT	/005000/
   5985					;
   5986					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5987					; ALL RIGHTS RESERVED.
   5988					; THIS SOFTWARE IS FURNISHED TOPURCHASER UNDER A LICENSE FOR USE
   5989					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5990					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5991					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5992					;
   5993					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5994					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5995					; EQUIPMENT CORPORATION.
   5996					;
   5997					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5998					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5999					;
   6000					; VERSION 05-00
   6001					;
   6002					; ALAN D. PECKHAM  29-MAR-77
   6003					;
   6004					; MODIFIED BY:
   6005					;
   6006					; FUNCTION: DO A FUNCTION READ TO THE DTE20.
   6007					;
   6008					; LOCAL MACROS
   6009					;
   6010						.MCALL	KLDR$
   6011					;
   6012					; LOCAL DATA
   6013					;
   6014	001160					.PSECT	DATA,D
   6015	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
   6016						.EVEN
   6017	002367					.PSECT	TEXT,D
   6018	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
   6019	013440					.PSECT
KLIFR -- PERFORM DIAGNOSTIC FUN	MACRO V05.04  Monday 16-May-88 16:00  Page 136
$DFRD	-- DIAGNOSTIC READ FUNCTION

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

   6058
   6059						.TITLE	KLIFW -- PERFORM DIAGNOSTIC FUNCTION WRITE
   6060	013552					IDENT$	5,0
						.IDENT	/005000/
   6061					;
   6062					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6063					; ALL RIGTHS RESERVED.
   6064					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6065					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6066					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6067					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6068					;
   6069					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6070					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6071					; EQUIPMENT CORPORATION.
   6072					;
   6073					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6074					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6075					;
   6076					; VERSION 05-00
   6077					;
   6078					; ALAN D. PECKHAM  29-MAR-77
   6079					;
   6080					; MODIFIED BY:
   6081					;
   6082					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   6083					;
   6084					; LOCAL MACROS
   6085					;
   6086						.MCALL	KLDW$,PREX$
   6087					;
   6088					; LOCAL DATA
   6089					;
   6090	001172					.PSECT	DATA,D
   6091	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
   6092	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
   6093	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
   6094						.EVEN
   6095	002410					.PSECT	TEXT,D
   6096	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 V05.04  Monday 16-May-88 16:00  Page 137-1
$DFRD	-- DIAGNOSTIC READ FUNCTION

	002427	   105 	   104 	   000
   6097	013552					.PSECT
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO V05.04  Monday 16-May-88 16:00  Page 138
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

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

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

   6158
   6159						.TITLE	KLIFX -- PERFORM DIAGNOSTIC FUNCTION EXECUTE
   6160	013754					IDENT$	5,1
						.IDENT	/005010/
   6161					;
   6162					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6163					; ALL RIGHTS RESERVED.
   6164					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6165					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6166					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6167					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6168					;
   6169					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6170					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6171					; EQUIPMENT CORPORATION.
   6172					;
   6173					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6174					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6175					;
   6176					; VERSION 05-01
   6177					;
   6178					; ALAN D. PECKHAM  29-MAR-77
   6179					;
   6180					; MODIFIED BY:
   6181					;
   6182					;	R. BELANGER	24-AUG-77	FIX CROCK IN ".DESW" MAINTENANCE
   6183					;
   6184					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   6185					;
   6186					; LOCAL MACROS
   6187					;
   6188						.MCALL	KLDX$
   6189					;
   6190					; LOCAL VARIABLES
   6191					;
   6192	001224					.PSECT	DATA,D
   6193	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
   6194						.EVEN
   6195	002432					.PSECT	TEXT,D
   6196	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
   6197	013754					.PSECT
KLIFX -- PERFORM DIAGNOSTIC FUN	MACRO V05.04  Monday 16-May-88 16:00  Page 141
$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION

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

   6235
   6236
   6237						.TITLE	KLIGC -- SET CACHE CONFIGURATION TABLES
   6238	014112					IDENT$	5,0
						.IDENT	/005000/
   6239					;
   6240					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6241					; ALL RIGHTS RESERVED.
   6242					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6243					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6244					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6245					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6246					;
   6247					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6248					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6249					; EQUIPMENT CORPORATION.
   6250					;
   6251					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6252					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6253					;
   6254					; VERSION 05-00
   6255					;
   6256					; ALAN D. PECKHAM  12-APR-77
   6257					;
   6258					; MODIFIED BY:
   6259					;
   6260					; FUNCTION: THIS MODULE SETS UP THE CACHE CONFIGURATION TABLES
   6261					;  EITHER FROM THE CONFIGURATION FILE OR FOR ALL CACHES.
   6262					;
   6264					; LOCAL DATA
   6265					;
   6266	001236					.PSECT	DATA,D
   6267	001236	043240 	000000 	000000 	DGCFNM:	.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001244	011667
   6268	001246	000000 				.WORD	0		; GET LATEST VERSION.
   6269	001250	   005 	   005 			.BYTE	5,5
   6270	001252	054523 	000000 			.WORD	"SY,0
   6271	002456					.PSECT	TEXT,D
   6272	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
   6273	014112					.PSECT
KLIGC -- SET CACHE CONFIGURATIO	MACRO V05.04  Monday 16-May-88 16:00  Page 143
$GETCA	-- SET CACHE CONFIGURATION TABLES

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

   6323	014266	110021 				MOVB	R0,(R1)+	; AND CACHE NUMBERS.
   6324	014270	077205 				SOB	R2,70$
   6325	014272	110437 	000064'		80$:	MOVB	R4,.NCACH	; SET THE NUMBER OF CACHES
   6326	014276					CALLR	$CLOSE		; AND ALL FINISHED.
	014276	000137 	007056'			 JMP	$CLOSE
   6327	014302				90$:	CALL	$PURGE		; ERROR EXIT.
	014302	004737 	010124'			 JSR	PC,$PURGE
   6328	014306	000261 				SEC
   6329	014310					RETURN
	014310	000207 				 RTS	PC
KLIGC -- SET CACHE CONFIGURATIO	MACRO V05.04  Monday 16-May-88 16:00  Page 144
$GETCA	-- SET CACHE CONFIGURATION TABLES

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

   6363					;
   6364					; LOCAL DATA
   6365					;
   6366	001256					.PSECT	DATA,D
   6367	001256				DGMFNM:
   6368	001256	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001264	011667
   6369	001266	000000 				.WORD	0		; GET LATEST VERSION.
   6370	001270	   005 	   005 			.BYTE	5,5
   6371	001272	054523 	000000 			.WORD	"SY,0
   6372	002525					.PSECT	TEXT,D
   6373	002525				TGMNFL:
   6374	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
   6375	014312					.PSECT
KLIGM -- SET UP MEMORY CONFIGUR	MACRO V05.04  Monday 16-May-88 16:00  Page 146
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

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

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

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

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

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

   6555	014702	000261 				SEC			; SO RETURN WITH ERROR.
   6556	014704					RETURN
	014704	000207 				 RTS	PC
KLIGP -- GET PAGE TABLE SELECTI	MACRO V05.04  Monday 16-May-88 16:00  Page 150
$GETPA	-- GET PAGE TABLE SELECTION

   6558
   6559
   6560
   6561
   6562
   6563					.TITLE	KLIGT -- READ MF20 TIMING FILE DATA
   6564	014706					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   6565					;
   6566					;                             COPYRIGHT (C) 1975, 1984, 1985 BY
   6567					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6568					;			ALL RIGHTS RESERVED.
   6569					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6570					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6571					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6572					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6573					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6574					;
   6575					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6576					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6577					;       CORPORATION.
   6578					;
   6579					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6580					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6581					;
   6582					;
   6583					;	MODULE: MF20 TIMING FILE INPUT
   6584					;
   6585					;	VERSION: 10-00
   6586					;
   6587					;	DATE: 22-MAY-78
   6588					;
   6589					;	AUTHOR: R. BELANGER
   6590					;
   6591					;	MODIFICATIONS:
   6592					;
   6593					;	NO.	DATE		PROGRAMMER	REASON
   6594					;	---	----		----------	------
   6595
   6596	002607					.PSECT	TEXT,D
   6597	002607				TGTCKE:
   6598	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
   6599	002651				TGTNFL:
   6600	002651					ERROR	<NO MF20 TIMING FILE>
	002651	   077 	   040 	   116 		 .ASCIZ	\? NO MF20 TIMING FILE\
KLIGT -- READ MF20 TIMING FILE 	MACRO V05.04  Monday 16-May-88 16:00  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
   6601	002677				TGTIFF:
   6602	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
   6603	002741				TGTRFE:
   6604	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
   6605	014706					.PSECT
KLIGT -- READ MF20 TIMING FILE 	MACRO V05.04  Monday 16-May-88 16:00  Page 151
$GETTF -- READ MF20 TIMING FILE DATA

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

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

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

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

   6779	015220	052601 				BIS	(SP)+,R1	; SET THE NEW BYTE IN THE WORD
   6780	015222	077321 				SOB	R3,20$		; AND TRY AGAIN
   6781	015224				30$:
   6782	015224	060105 				ADD	R1,R5		; UPDATE CHECKSUM
   6783	015226	000241 				CLC			; INSURE CC-C IS CLEAR
   6784	015230					RETURN			; TO CALLER
	015230	000207 				 RTS	PC
   6785
   6786						.DSABL	LSB
KLIGT -- READ MF20 TIMING FILE 	MACRO V05.04  Monday 16-May-88 16:00  Page 153
$GETTF -- READ MF20 TIMING FILE DATA

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

   6817					;
   6818					; LOCAL DATA
   6819					;
   6820	001316					.PSECT	DATA,D
   6821	001316	035000 	001446'			.WORD	72*400,DMRKW2	; SELECT KW20/22 FOR MOS SYSTEMS
   6822	001322	022000 	000000'		DMRMRT:	.WORD	.LDSEL/2,.ZERO	; CLOCK LOAD FUNC #44
   6823	001326	100000 				.WORD	.STPCL/2+BIT15	; STOP THE CLOCK
   6824	001330	103400 				.WORD	.SETMR/2+BIT15	; SET RESET
   6825	001332	023000 	000000'			.WORD	.LDCK1/2,.ZERO	; LOAD CLK PARITY CHECK & FS CHECK
   6826	001336	023400 	000000'			.WORD	.LDCK2/2,.ZERO	; LOAD CLK MBOX CYCLE DISABLES,
   6827									; PARITY CHECK, ERROR STOP ENABLE
   6828	001342	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6829	001346	021400 	000000'			.WORD	.LDBRL/2,.ZERO	; LOAD BURST COUNTER (128,64,32,16)
   6830	001352	022400 	000000'			.WORD	.LDDIS/2,.ZERO	; LOAD EBOX CLOCK DISABLE
   6831	001356	100400 				.WORD	.STRCL/2+BIT15	; START THE CLOCK
   6832	001360	034000 	000000'			.WORD	.INICL/2,.ZERO	; INIT CHANNELS
   6833	001364	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6834	001370	000000 				.WORD	0
   6835	001372	102000 				.WORD	.CECLK/2+BIT15	; CONDITIONAL SINGLE STEP
   6836	001374	103000 				.WORD	.CLRMR/2+BIT15	; CLEAR RESET
   6837	001376	033400 	000000'			.WORD	.EIOJA/2,.ZERO	; ENABLE KL STL DECODING OF CODES & AC'S
   6838	001402	037000 	000000'			.WORD	.MEMRS/2,.ZERO	; SET KL10 MEM RESET FLOP
   6839	001406	034400 	001414'			.WORD	.WRMBX/2,DMRMMR	; WRITE M-BOX
   6840	001412	000000 				.WORD	0
   6841	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
   6842						.EVEN
   6843
   6844	001422	007000 			DMRSRT:	.WORD	.SETMR		; SET RESET.
   6845	001424	001000 				.WORD	.STRCL		; START THE CLOCK.
   6846	001426	000000 				.WORD	.STPCL		; STOP THE CLOCK.
   6847	001430	004000 				.WORD	.CECLK		; CONDITIONAL SINGLE STEP.
   6848	001432	006000 				.WORD	.CLRMR		; CLEAR RESET.
   6849		000005 			DMRSRL	=	.-DMRSRT/2	; LENGTH OF TABLE.
   6850	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
   6851	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
   6852	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
   6853						.EVEN
   6854	002777					.PSECT	TEXT,D
   6855	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
   6856	015232					.PSECT
KLIMR -- KL RESET ROUTINES	MACRO V05.04  Monday 16-May-88 16:00  Page 155
$KLMR	-- DO A MASTER RESET ON THE KL

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

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

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

   6992						MESSAGE	<VERSION \<KEY><FRM>\0'VER'-0'EDT'\<200>\ RUNNING>
   6993						.ENDC
   6994						.ENDC
   6995						.ENDC
   6996						.ENDM	KLIVR$
   6997					;
   6998					; LOCAL DATA
   6999					;
   7000	001454					.PSECT	DATA,D
   7001	001454				DNITTI:
   7002	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
   7003	001464				DNITTO:
   7004	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
   7006	001474				DNILPO:
   7007	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
   7009	001504				DNISYI::
   7010	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
   7011	001514				DNISYO::
   7012	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
   7013	001524				DNISYF::
   7014	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
   7015	003025					.PSECT	TEXT,D
   7016	003025				TNINDV:
   7017	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 V05.04  Monday 16-May-88 16:00  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
   7018	003052				TNIN55:
   7019	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
   7020	003110				TNIPRI:
   7021	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
   7022	003174				TNIVER:
   7023	003174					KLIVR$	KLI$$K,KLI$$F,KLI$$V,KLI$$E
	003174	   126 	   105 	   122 		 .ASCIZ	\VERSION \<126><101>\16-00\<200>\ RUNNING\
	003177	   123 	   111 	   117
	003202	   116 	   040 	   126
	003205	   101 	   061 	   066
	003210	   055 	   060 	   060
	003213	   200 	   040 	   122
	003216	   125 	   116 	   116
	003221	   111 	   116 	   107
	003224	   000
   7024	015564					.PSECT
KLINI -- PROGRAM INITIALIZATION	MACRO V05.04  Monday 16-May-88 16:00  Page 157
$INIT	-- PROGRAM INITIALIZATION

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

   7068					;-
   7069	015720				40$:
   7070	015720					QIOW$S	#IO.FNA,#SYILUN,#1,,#.SYSTA,,<,,,,,#.SYFNB>
	015720	012746 	002624'			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 	000532'			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
   7071	015770	103403 				BCS	50$
   7072	015772	105737 	000532'			TSTB	.SYSTA
   7073	015776	002007 				BGE	60$
   7074	016000				50$:
   7075	016000					PRINT	#TNIN55		; NO DIRECTORY...
	016000	012700 	003052'			 MOV	#TNIN55,R0
	016004	004737 	027634'			 JSR	PC,$TTMSG
   7076	016010					EXIT$S
	016010	012746 				MOV	(PC)+,-(SP)
	016012	   063 	   001 			.BYTE	51.,1
	016014	104375 				EMT	375
   7077	016016				60$:
   7078	016016	013737 	002624'	002650'		MOV	.SYFNB+0,.SYFNB+24 ; MOVE UP DIRECTORY FID.
   7079	016024	013737 	002626'	002652'		MOV	.SYFNB+2,.SYFNB+26
   7080	016032	013737 	002630'	002654'		MOV	.SYFNB+4,.SYFNB+30
   7081					;+
   7082					;	MAKE SURE SECONDARY PROTOCOL IS RUNNING
   7083					;-
   7084	016040	105737 	000024'			TSTB	.DLGSW		; IF NOT INTERNAL REQUEST
   7085	016044	002416 				BLT	70$
   7086	016046	032737 	000000G	000002G		BIT	#EF.PR1,.COMEF+2 ; CHECK CURRENT PROTOCOL.
   7087	016054	001412 				BEQ	70$		; IF PRIMARY,
   7088	016056	032737 	000006 	000000G		BIT	#6,.FEMOD	; AND CONSOLE IS IN
   7089	016064	001006 				BNE	70$		; OPERATOR MODE, THEN
   7090	016066					PRINT	#TNIPRI		; REPRIMAND OPERATOR
	016066	012700 	003110'			 MOV	#TNIPRI,R0
	016072	004737 	027634'			 JSR	PC,$TTMSG
   7091	016076	000137 	024022'			JMP	$EXIT		; AND DIE.
   7092						;
   7093	016102				70$:
   7094	016102	052737 	000000G	000002G		BIS	#EF.CRI,.COMEF+2 ; DECLARE COMM REGION INVALID
   7095	016110	013737 	000000G	000062'		MOV	.CPUSN,.SNSAV	; [4.2333] SAVE OLD SERIAL NUMBER
   7096	016116	005037 	000000G			CLR	.CPUSN		; [4.2333] ALLOW ENVRIONMENT READ
   7097	016122					PRINT	#TNIVER		; HELLO, OPERATOR !
	016122	012700 	003174'			 MOV	#TNIVER,R0
	016126	004737 	027634'			 JSR	PC,$TTMSG
   7098	016132				80$:				; [4.2107]
   7099	016132					RETURN
	016132	000207 				 RTS	PC
KLINI -- PROGRAM INITIALIZATION	MACRO V05.04  Monday 16-May-88 16:00  Page 157-2
$INIT	-- PROGRAM INITIALIZATION

   7100
   7101					.TITLE	KLIPC -- KL PC READ FUNCTION MODULE 7603.30
   7102
   7103						.IDENT	"001010"
   7104
   7105					;	COPYRIGHT (C) 1976, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7106					;	ALL RIGHTS RESERVED.
   7107					;	THE MATERIAL INCLUDED IN THIS FUNCTIONAL  SPECIFICATION,  INCLUDING  BUT
   7108					;	NOT   LIMITED   TO,  INSTRUCTION  TIMES  AND  OPERATING  SPEEDS  IS  FOR
   7109					;	INFORMATION PURPOSES ONLY.  ALL  SUCH  MATERIAL  IS  SUBJECT  TO  CHANGE
   7110					;	WITHOUT NOTICE.  CONSEQUENTLY DEC MAKES NO CLAIM AND SHALL NOT BE LIABLE
   7111					;	FOR ITS ACCURACY.
   7112					;
   7113					;	DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE
   7114					;	ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7115					;
   7116					;
   7117					;		MODULE: KL VMA BOARD READ FUNCTION
   7118					;
   7119					;		VERSION: 01-01
   7120					;
   7121					;		AUTHOR: R. BELANGER
   7122					;
   7123					;		DATE: 7603.30
   7124					;
   7125					;	THIS MODULE CONTAINS:
   7126					;
   7127					;	1) KL PC READ CODE
   7128					;
   7129					;	LOCAL DATA
   7130					;
   7131	003225					.PSECT	TEXT,D
   7132	003225				PCERRM:
   7133	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
   7134	016134				.PSECT
KLIPC -- KL PC READ FUNCTION MO	MACRO V05.04  Monday 16-May-88 16:00  Page 158
$DFPC -- KL PC READ SUBROUTINE 7510.21

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

   7189	016252					RETURN			; RETURN TO CALLER
	016252	000207 				 RTS	PC
   7190	016254				30$:
   7191	016254					PRINT	#PCERRM		; TELL OPERATOR ABOUT ERROR
	016254	012700 	003225'			 MOV	#PCERRM,R0
	016260	004737 	027634'			 JSR	PC,$TTMSG
   7192	016264	000261 				SEC			; SET ERROR FLAG
   7193	016266	000770 				BR	20$		; AND EXIT
   7194						;
KLIPC -- KL PC READ FUNCTION MO	MACRO V05.04  Monday 16-May-88 16:00  Page 159
$DFPC -- KL PC READ SUBROUTINE 7510.21

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

   7221
   7222
   7223						.TITLE	KLIQB -- ASK BOOT LOAD QUESTIONS
   7224	016334					IDENT$	12,27								; ADP01
						.IDENT	/012270/
   7225					;
   7226					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7227					; ALL RIGHTS RESERVED.
   7228					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7229					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7230					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7231					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7232					;
   7233					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7234					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7235					; EQUIPMENT CORPORATION.
   7236					;
   7237					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7238					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7239					;
   7240					; VERSION 12-27
   7241					;
   7242					; ALAN D. PECKHAM  12-APR-77
   7243					;
   7244					; MODIFIED BY:
   7245					;
   7246					; FUNCTION: THIS MODULE DETERMINES WHETHER THE BOOT IS TO BE LOADED
   7247					;  AND WHAT BOOT IS TO BE USED.
   7248					;
   7249					; LOCAL DATA
   7250					;
   7251	003246					.PSECT	TEXT,D
   7252	003246				TQBOOT:
   7253	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
   7254	003320				TQBWCF:
   7255	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 V05.04  Monday 16-May-88 16:00  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
   7256	003363				TQBNFL:
   7257	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
   7258	001534					.PSECT	DATA,D
   7259	001534				DQBFNM::
   7260	001534	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME
	001542	011667
   7261	001544	000000 				.WORD	0
   7262	001546	   005 	   005 			.BYTE	5,5
   7263	001550	054523 	000000 			.WORD	"SY,0
   7264	016334					.PSECT
KLIQB -- ASK BOOT LOAD QUESTION	MACRO V05.04  Monday 16-May-88 16:00  Page 161
$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED

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

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

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

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

   7430	017044	077105 				SOB	R1,60$		; UNTIL DONE
   7431	017046	105237 	000026'			INCB	.UFNSW		; INDICATE FILE NAME SPECIFIED
   7432	017052				70$:
   7433	017052					CALLR	$CLOSE		; CLOSE THE FILE AND EXIT
	017052	000137 	007056'			 JMP	$CLOSE
   7434						;
   7435	017056				80$:
   7436	017056					CALL	$PURGE		; ERROR -- PURGE FILE
	017056	004737 	010124'			 JSR	PC,$PURGE
   7437	017062	000261 				SEC			; SET ERROR FLAG
   7438	017064				90$:
   7439	017064					RETURN			; TO CALLER
	017064	000207 				 RTS	PC
KLIQB -- ASK BOOT LOAD QUESTION	MACRO V05.04  Monday 16-May-88 16:00  Page 164
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

   7441
   7442						.TITLE	KLIQC -- ASK CACHE QUESTIONS
   7443	017066					IDENT$	5,0
						.IDENT	/005000/
   7444					;
   7445					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7446					; ALL RIGHTS RESERVED.
   7447					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7448					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7449					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7450					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7451					;
   7452					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7453					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7454					; EQUIPMENT CORPORATION.
   7455					;
   7456					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7457					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7458					;
   7459					; VERSION 05-00
   7460					;
   7461					; ALAN D. PECKHAM  14-APR-77
   7462					;
   7463					; MODIFIED BY:
   7464					;
   7465					; FUNCTION: IF THERE IS CACHE, THIS MODULE DETERMINES HOW IT IS TO BE
   7466					;  LOADED AND WHETHER IT IS TO BE ENABLED.
   7467					;
   7469					; LOCAL DATA
   7470					;
   7471	003421					.PSECT	TEXT,D
   7472	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
   7473	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 V05.04  Monday 16-May-88 16:00  Page 164-1
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG

	003527	   135 	   077 	   000
   7474	017066					.PSECT
KLIQC -- ASK CACHE QUESTIONS	MACRO V05.04  Monday 16-May-88 16:00  Page 165
$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED

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

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

   7549
   7550
   7551						.TITLE	KLIQE --  ASK EXIT QUESTIONS
   7552	017422					IDENT$	11,0,KLI$$F
						.IDENT	/A11000/
   7553					;
   7554					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7555					; ALL RIGHTS RESERVED.
   7556					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7557					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7558					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7559					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7560					;
   7561					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7562					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7563					; EQUIPMENT CORPORATION.
   7564					;
   7565					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7566					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7567					;
   7568					; VERSION 11-00
   7569					;
   7570					; ALAN D. PECKHAM  12-APR-77
   7571					;
   7572					; MODIFIED BY:
   7573					;
   7574					; FUNCTION: THIS MODULE ALLOWS THE OPERATOR TO RESTART THE DIALOG
   7575					;  OR EXIT FROM KLINIT. IT ALSO DISPATHES INTERNAL REQUESTS FOR
   7576					;  SPECIAL KL RESTARTS SUCH AS POWER FAIL.
   7577					;
   7578					; LOCAL DATA
   7579					;
   7580	003532					.PSECT	TEXT,D
   7581	003532				TQEXIT:
   7582	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
   7583	017422					.PSECT
KLIQE --  ASK EXIT QUESTIONS	MACRO V05.04  Monday 16-May-88 16:00  Page 168
$DLGEX	-- ASK WHERE TO EXIT

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

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

   7671					;
   7672					; LOCAL DATA
   7673					;
   7674	003556					.PSECT	TEXT,D
   7675	003556				TQMCF0:
   7676	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
   7677	003635				TQMCF1:
   7678	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
   7679	003722				TQMNM0:
   7680	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
   7681	003757				TQMPCA:
   7682	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 V05.04  Monday 16-May-88 16:00  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
   7683	017556					.PSECT
KLIQM -- ASK MEMORY QUESTIONS	MACRO V05.04  Monday 16-May-88 16:00  Page 171
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

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

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

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

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

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

   7876
   7877
   7878						.TITLE	KLIQP -- MCA25 CACHE PAGER SELECT
   7879	020410					IDENT$	1,0
						.IDENT	/001000/
   7880					; COPYRIGHT (C) 1984, 1985 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
   7881					; ALL RIGHTS RESERVED.
   7882					; VERSION 1-00
   7883					;
   7884					; M. RUDENKO	16-FEB-84
   7885					;
   7886					; FUNCTION: CHECKS FOR EXISTENCE OF MCA25 CACHE PAGE UPGRAGE, AND ALLOWS
   7887					;  OPERATOR TO SELECT WHICH PAGE TABLE TO USE.
   7888					;
   7889					; LOCAL DATA
   7890					;
   7891	004064					.PSECT TEXT,D
   7892	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
   7893
   7894	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
   7895	004165				TXBOTH:	MESSAGE <BOTH>
	004165	   102 	   117 	   124 		 .ASCIZ	\BOTH\
	004170	   110 	   000
   7896
   7897	020410					.PSECT
   7898	020410				$DLGPA::
   7899	020410	105037 	000034'			CLRB	.PTSW		; [**] RESET PAGE TABLE MODIFIED SWITCH
   7900	020414	005037 	000530'			CLR	.PTSEL		; [**] INITIALIZE PAGE TABLE SELECTED
   7901	020420	105037 	000304'			CLRB	.TTIBF		; [**] CLEAR BUFFER TO ECHO POSSIBLE DEFAULT
   7902	020424	105737 	000024'			TSTB	.DLGSW		; [**] TEST DIALOG SWITCH
   7903	020430	001043 				BNE	55$		; [**] TAKE DEFAULT PATH
   7904	020432				10$:
   7905	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 V05.04  Monday 16-May-88 16:00  Page 174-1
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

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

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

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

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

   8116					;  WANTS TO GO THROUGH THE DIALOG QUESTIONS OR FOLLOW
   8117					;  THE DEFAULT PATH BY ASSUMING THE DEFAULT ANSWER TO
   8118					;  ALL QUESTIONS.
   8119					;
   8120					; EQUATED SYMBOLS
   8121					;
   8122		000014 				CCA = 14		; [5.1013] KL INTERNAL CACHE DEVICE
   8123		000002 				BLKO = 2		; [5.1013] KL OPCODE
   8124					;
   8125					; LOCAL MACROS
   8126					;
   8127						.MCALL	MRKT$,CLEF$S,WTSE$S,DIR$
   8128					;
   8129					; LOCAL VARIABLES
   8130					;
   8131
   8132	001554					.PSECT	DATA,D
   8133
   8134	001554				DQSP0::
   8135	001554	000002 	000420 	070400 		.WORD	2,420,70400,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TABLE 0
	001562	020000 	000000 	000010
   8136	001570				DQSP1::
   8137	001570	000000 	000420 	071400 		.WORD	0,420,71400,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TABLE 1
	001576	020000 	000000 	000010
   8138	001604				DQSP01::
   8139	001604	000000 	000420 	070000 		.WORD	0,420,70000,20000,0,10  ;[**] C-RAM WORD TO SELECT PAGE TBL 0&1
	001612	020000 	000000 	000010
   8140	001620				DQSCSW:
   8141	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
   8142						.EVEN
   8143	001626				DQSMKT:
   8144	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
   8145	001640				DQSCBF:
   8146	001640	000000 	000000 	000000 		.WORD	0,0,0,0,0,0	;HOLDING AREA FOR C-RAM WORD ZERO.
	001646	000000 	000000 	000000
   8147	001654				DQSCF3:
   8148	001654	000000 	000460 	000000 		.WORD	0,460,0,0,0,0	;C-RAM WORD WITH COND FIELD = 3.
	001662	000000 	000000 	000000
   8149	001670				DQSAPR:
   8150	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
   8151						.EVEN
   8152	001676				DQSHWT:
   8153	001676	004402'				.WORD	TQSMCA		;[**] MCA25 REPORT ADDRESS
   8154	001700	004435'				.WORD	TQSMMO
   8155	001702	004474'				.WORD	TQSEXT
   8156	001704	004531'				.WORD	TQSCHN
   8157	001706	004564'				.WORD	TQSCAC
   8158	001710	000000 				.WORD	0
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO V05.04  Monday 16-May-88 16:00  Page 175-3
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8159
   8160	004240					.PSECT	TEXT,D
   8161
   8162	004240				TQSDLG:
   8163	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
   8164	004301				TQSKSN:
   8165	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
   8166	004324				TQSMDL:
   8167	004324					MESSAGE <., MODEL _>
	004324	   056 	   054 	   040 		 .ASCIZ	\., MODEL _\
	004327	   115 	   117 	   104
	004332	   105 	   114 	   040
	004335	   137 	   000
   8168	004337				TQSHRZ:
   8169	004337	   040 	   110 	   105 		.ASCIZ / HERTZ\/
	004342	   122 	   124 	   132
	004345	   134 	   000
   8170	004347				TQSHWP:
   8171	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
   8172	004402				TQSMCA:
   8173	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
   8174	004435				TQSMMO:
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO V05.04  Monday 16-May-88 16:00  Page 175-4
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   8175	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
   8176	004474				TQSEXT:
   8177	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
   8178	004531				TQSCHN:
   8179	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
   8180	004564				TQSCAC:
   8181	004564	   040 	   040 	   040 		.ASCIZ /        CACHE\/
	004567	   040 	   040 	   040
	004572	   040 	   040 	   103
	004575	   101 	   103 	   110
	004600	   105 	   134 	   000
   8182	004603				TQSCDH:
   8183	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
   8184	004657				TQSWRN:
   8185	004657					WARNING <PROCEED AT YOUR OWN RISK>
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO V05.04  Monday 16-May-88 16:00  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
   8186	004712				TQSABO:
   8187	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
   8188	004745				TQSMMA:
   8189	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
   8190
   8191	021170					.PSECT
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO V05.04  Monday 16-May-88 16:00  Page 176
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

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

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

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

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

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

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

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

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

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

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

   8544
   8545						.TITLE	KLIRS -- SPECIAL KL RESTARTS
   8546	022540					IDENT$	13,06,KLI$$F
						.IDENT	/A13060/
   8547					;
   8548					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8549					; ALL RIGHTS RESERVED.
   8550					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8551					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8552					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8553					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8554					;
   8555					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8556					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8557					; EQUIPMENT CORPORATION.
   8558					;
   8559					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8560					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8561					;
   8562					; VERSION 13-04
   8563					;
   8564					; ALAN D. PECKHAM  7-APR-77
   8565					;
   8566					; MODIFICATIONS:
   8567					;
   8568					;01-Aug-83  TCO 6.1675	D. Weaver
   8569					;	Move code to do warm restart to this module from KLIST.
   8570					;
   8571					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES FOR SPECIAL KL RESTARTS:
   8572					;
   8573					;  POWER FAIL RESTART AT 70.
   8574					;  WARM RESTART AT 72.
   8575					;  SYSTEM CRASH RECOVER AT 407.
   8576					;
   8577					; EQUATED SYMBOLS
   8578					;
   8579		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   8580		000010 			PAG	=	10		; KL DEVICE.
   8581					;
   8582					; LOCAL MACROS
   8583					;
   8584						.MCALL	MRKT$S,WTSE$S,WSIG$S
   8585					;
   8586					; LOCAL DATA
   8587					;
   8588	001712					.PSECT	DATA,D
   8589						.EVEN
   8590	001712	000000 			DRSDBL::.WORD	0		; DOORBELL COUNT
   8592	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
   8594	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
   8595	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 V05.04  Monday 16-May-88 16:00  Page 183-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   8596	001733				DRSPFR:	WD22$	70		; KL POWER FAIL RESTART ADDRESS.
	001733	   070 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8597	001736				DRSFCR:	WD22$	72		; FAULT CONTINUATION RESTART ADDRESS.
	001736	   072 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8598	001741				DRSSCR:	WD22$	407		; TOPS10 KL CRASH RESTART ADDRESS.
	001741	   007 	   001 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   8599						.EVEN
   8600	005023					.PSECT	TEXT,D
   8601	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
   8602	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
   8603	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
   8604	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
   8605	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 V05.04  Monday 16-May-88 16:00  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
   8606	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
   8607	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
   8608	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
   8609	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
   8610	005444				TRSSEF:	ERROR	<SYSTEM ERROR DURING FAULT CONTINUATION>
	005444	   077 	   040 	   123 		 .ASCIZ	\? SYSTEM ERROR DURING FAULT CONTINUATION\
KLIRS -- SPECIAL KL RESTARTS	MACRO V05.04  Monday 16-May-88 16:00  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
   8611	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
   8612	022540					.PSECT
KLIRS -- SPECIAL KL RESTARTS	MACRO V05.04  Monday 16-May-88 16:00  Page 184
$POWER	-- POWER FAILURE RESTART

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

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

	022772	004737 	027634'			 JSR	PC,$TTMSG
   8694	022776				50$:
   8695	022776	000137 	024012'			JMP	$ERROR		; ERROR EXIT.
   8696	023002				60$:
   8697	023002	005037 	000000G			CLR	.NOERR		; ALLOW KL ERRORS TO OCCUR,
   8698	023006					PRINT	#TRSRSM		; TELL OPERATOR "KL RESTARTED"
	023006	012700 	005252'			 MOV	#TRSRSM,R0
	023012	004737 	027634'			 JSR	PC,$TTMSG
   8699	023016	000137 	024022'			JMP	$EXIT		; AND EXIT NORMALLY.
   8700						.DSABL	LSB
KLIRS -- SPECIAL KL RESTARTS	MACRO V05.04  Monday 16-May-88 16:00  Page 186
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

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

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

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

   8827					;+
   8828					; WAIT FOR 1 SECOND
   8829					;
   8830					; NO INPUTS
   8831					;
   8832					; OUTPUTS:
   8833					;	CARRY SET IF ERROR OCCURRS.
   8834					;-
   8835
   8836	023430				WAIT1S:
   8837	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
   8838	023452	103011 				BCC	10$
   8839	023454	122737 	000000G	000000G		CMPB	#IE.UPN,$DSW	; IF INSUFFICIENT MEMORY,
   8840	023462	001013 				BNE	20$		; THEN
   8841	023464					WSIG$S			; RSX IS CROWDED.
	023464	012746 				MOV	(PC)+,-(SP)
	023466	   061 	   001 			.BYTE	49.,1
	023470	104375 				EMT	375
   8842	023472	103356 				BCC	WAIT1S		; TRY AGAIN
   8843	023474	000406 				BR	20$		; USELESS, GIVE UP
   8844	023476				10$:
   8845	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
   8846	023510	103001 				BCC	30$
   8847	023512				20$:
   8848	023512	000261 				SEC			; FLAG ERROR
   8849	023514				30$:
   8850	023514					RETURN			; EXIT
	023514	000207 				 RTS	PC
KLIRS -- SPECIAL KL RESTARTS	MACRO V05.04  Monday 16-May-88 16:00  Page 189
$WRMRS	-- WARM RESTART (FAULT CONTINUATION)

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

   8898					;
   8899					; EQUATED SYMBOLS
   8900					;
   8901		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
   8902		000012 			LF	=	12		; LINE FEED CHARACTER.
   8903		000040 			SPC	=	40		; SPACE CHARACTER.
   8904		000011 			TAB	=	11		; TAB CHARACTER.
   8905					;
   8906		000256 			XCT	=	256		;  [4.2107] KL10 "XCT" OPCODE
   8907					;
   8908					; LOCAL MACROS
   8909						.MCALL	QIOW$,EXIT$S
   8910					;
   8911					; LOCAL DATA
   8912					;
   8913	001744					.PSECT	DATA,D
   8914	001744				DRTX71:
   8915	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
   8916						.EVEN
   8918	001752				DRTWLB:
   8919	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
   8920	001774				DRTSTA:
   8921	001774	000000 	000000 			.WORD	0,0		; I/O STATUS.
   8922	002000				DRTBUF:
   8923	002000					.BLKB	72.		; TRACK OUTPUT BUFFER.
   8924	002110				DRTBF:
   8925	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
   8926						.EVEN
   8928	005552					.PSECT	TEXT,D
   8929	005552				COMCSE::
   8930	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
   8931	005577				TRTMMF:
   8932	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 V05.04  Monday 16-May-88 16:00  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
   8933	005635				TRTBTF:
   8934	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
   8935	005665				TRTFME:
   8936	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
   8937	005742				TRTEND:
   8938	005742	   042 	   000 			.ASCIZ	/"/
   8939	023516					.PSECT
KLIRT -- ROOT SECTION	MACRO V05.04  Monday 16-May-88 16:00  Page 191
GLOBAL DATA STORAGE

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

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

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

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

   9144	000522				.BTADR::
   9145	000522	000000 	000000 	000000 		.WORD	0,0,0		; KL BOOT ADDRESS.
   9146	000530				.PTSEL::
   9147	000530	000000 				.WORD	0		; [**] MCA25 PAGE TABLE SELECTED
KLIRT -- ROOT SECTION	MACRO V05.04  Monday 16-May-88 16:00  Page 194
GLOBAL DATA STORAGE

   9149					;+
   9150					; SYSTEM DEVICE WORK AREAS
   9151					;-
   9152
   9153	000532				.SYSTA::
   9154	000532	000000 	000000 			.WORD	0,0		; OPERATION STATUS.
   9155	000536				.SYISW::
   9156	000536	   000 				.BYTE	0		; INPUT FILE OPEN SWITCH.
   9157	000537				.SYOSW::
   9158	000537	   000 				.BYTE	0		; OUTPUT FILE OPEN SWITCH.
   9159
   9160		001000 			S.YIL	==	1000
   9161	000540				.SYIRC::
   9162	000540	000000 				.WORD	0		; RECORD COUNT.
   9163	000542				.SYIBA::
   9164	000542	000572'				.WORD	.SYIBF		; BUFFER POSITION.
   9165	000544				.SYIBC::
   9166	000544	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   9167	000546				.SYIFN::
   9168	000546	000000 	000000 	000000 		.WORD	0,0,0,0,0	; INPUT FILE NAME.
	000554	000000 	000000
   9169	000560	   005 	   005 			.BYTE	5,5
   9170	000562	054523 	000000 			.WORD	"SY,0
   9171	000566				.SYIVB::
   9172	000566	000000 	000000 			.WORD	0,0		; CURRENT INPUT BLOCK NUMBER.
   9173	000572				.SYIBF::
   9174	000572					.BLKW	S.YIL/2		; SYSTEM DEVICE INPUT BUFFER.
   9175
   9176		001000 			S.YOL	==	1000
   9177	001572				.SYORC::
   9178	001572	000000 				.WORD	0		; RECORD COUNT.
   9179	001574				.SYOBA::
   9180	001574	000572'				.WORD	.SYIBF		; BUFFER POSITION.
   9181	001576				.SYOBC::
   9182	001576	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   9183	001600				.SYOFN::
   9184	001600	000000 	000000 	000000 		.WORD	0,0,0,0,0	; OUTPUT FILE NAME.
	001606	000000 	000000
   9185	001612	   005 	   005 			.BYTE	5,5
   9186	001614	054523 	000000 			.WORD	"SY,0
   9187	001620				.SYOVB::
   9188	001620	000000 	000000 			.WORD	0,0		; CURRENT OUTPUT BLOCK NUMBER.
   9189	001624				.SYOBF::
   9190	001624					.BLKW	S.YOL/2		; SYSTEM DEVICE OUTPUT BUFFER.
   9191
   9192					;+
   9193					; FILE NAME BLOCK (SET UP TO GET DIRECTORY)
   9194					;-
   9195
   9196	002624				.SYFNB::
   9197	002624	000000 	000000 	000000 		.WORD	0,0,0		; N.FID
   9198	002632	140123 	140123 	000000 		.RAD50	/005005   /	; N.FNAM
   9199	002640	015172 				.RAD50	/DIR/		; N.FTYP
   9200	002642	000000 				.WORD	0		; N.FVER
   9201	002644	000000 				.WORD	0		; N.STAT
   9202	002646	000000 				.WORD	0		; N.NEXT
   9203	002650	177777 	177777 			.WORD	-1,-1		; DIRECTORY FID.
KLIRT -- ROOT SECTION	MACRO V05.04  Monday 16-May-88 16:00  Page 194-1
GLOBAL DATA STORAGE

   9204	002654	   005 	   005 			.BYTE	5,5		; OWNER
   9205		002624'			.SYFID	==	.SYFNB		; FILE ID IS IN FIRST TWO WORDS OF FNB
   9206		002632'			.SYFNM	==	.SYFNB+6	; FILENAME.
   9207
   9208					;+
   9209					; THESE ARE THE USER FILE ATTRIBUTES FOR THE CURRENTLY
   9210					; OPEN OUTPUT FILE.
   9211					;-
   9212
   9213	002656				.SYATT::
   9214	002656	   002 				.BYTE	2		; VARIABLE LENGTH RECORDS.
   9215	002657	   000 				.BYTE	0		; NO RECORD ATTRIBUTES.
   9216	002660	000000 				.WORD	0		; LARGEST RECORD IN FILE.
   9217	002662	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK ALLOCATED.
   9218	002666	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK USED.
   9219	002672	000000 				.WORD	0		; TO NEXT FREE BYTE IN LAST BLOCK.
   9220
   9221						.EVEN
KLIRT -- ROOT SECTION	MACRO V05.04  Monday 16-May-88 16:00  Page 195
$START	-- MAIN PROGRAM FLOW CONTROL

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

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

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

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

   9381						.SBTTL	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   9382					;+
   9383					; THIS ROUTINE SAVES ALL REGISTERS ON THE STACK AND PUSHES
   9384					; A RETURN ROUTINE ADDRESS ALSO, SO THAT WHEN THE USER RETURNS
   9385					; THE REGISTERS ARE AUTOMATICALLY RESTORED. THE RETURNED
   9386					; REGISTERS CAN BE MODIFIED: 2(SP)=R0, 4(SP)=R1, ETC.
   9387					;-
   9388
   9389	024204				$RSAVE::
   9390	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)
   9391	024216	004715 				JSR	PC,(R5)
   9392	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
   9393	024234	000207 				RTS	PC
KLIRT -- ROOT SECTION	MACRO V05.04  Monday 16-May-88 16:00  Page 198
$ASCIZ	-- TRANSFER ASCII STRING

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

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

   9471	024430				50$:
   9472	024430					CALL	$WRD36
	024430	004737 	026266'			 JSR	PC,$WRD36
   9473	024434				60$:
   9474	024434	112725 	000015 			MOVB	#CR,(R5)+	; TERMINATE LINE
   9475	024440	112725 	000012 			MOVB	#LF,(R5)+	; AND
   9476	024444	162705 	002000'			SUB	#DRTBUF,R5	; (LENGTH OF LINE)
   9477	024450	010537 	001770'			MOV	R5,DRTWLB+Q.IOPL+2 ; PUT IN DPB
   9478	024454	105737 	000040'			TSTB	.TRKLP		; [5.1005] TRACK ON LP?
   9479	024460	001406 				BEQ	65$		; [5.1005] NO -- CHECK TT
   9480	024462	012737 	000003 	001756'		MOV	#LPOLUN,DRTWLB+Q.IOLU	; [5.1005] YES -- SET LUN
   9481	024470					DIR$	#DRTWLB		; [5.1005] SEND IT
	024470	012746 	001752'			MOV	#DRTWLB,-(SP)
	024474	104375 				EMT	375
   9482	024476	105737 	000037'		65$:	TSTB	.TRKTT		; [5.1005] TRACK ON TT?
   9483	024502	001406 				BEQ	70$		; [5.1005] NO -- EXIT
   9484	024504	012737 	000002 	001756'		MOV	#TTOLUN,DRTWLB+Q.IOLU	; [5.1005] YES -- SET LUN
   9485	024512					DIR$	#DRTWLB		; AND SEND IT.
	024512	012746 	001752'			MOV	#DRTWLB,-(SP)
	024516	104375 				EMT	375
   9486	024520				70$:
   9487	024520	006126 				ROL	(SP)+		; RESTORE THE CARRY.
   9488	024522					RETURN
	024522	000207 				 RTS	PC
   9490						.TITLE	KLIST -- START THE KL BOOT
   9491	024524					IDENT$	13,04,KLI$$F
						.IDENT	/A13040/
   9492					;
   9493					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9494					; ALL RIGHTS RESERVED.
   9495					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9496					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9497					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9498					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9499					;
   9500					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9501					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9502					; EQUIPMENT CORPORATION.
   9503					;
   9504					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9505					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9506					;
   9507					; VERSION 13-04
   9508					;
   9509					; ALAN D. PECKHAM  7-APR-77
   9510					;
   9511					; MODIFIED BY:
   9512					;
   9513					;19-Jan-83  TCO 6.1508	D. Weaver
   9514					;	Get the CPU number of the KL we are running on from .KLCPU so we
   9515					;	can do warm restart on SMP systems (used by KLINIT)
   9516					;17-Jun-83  TCO 6.1675	D. Weaver
   9517					;	More changes for warm restart resulting from the separate .CMD files
   9518					;	being executed based on error code.  Error code is now in .ERRCD along
   9519					;	with the KL flags.  PC (23 bits) is in .ERRPC.  Note that .ERRCD will
   9520					;	be seen by the KL as <FLAGS,,ERRCD> in loc 101, 103, 105, etc... based
   9521					;	on the CPU number.
KLIST -- START THE KL BOOT	MACRO V05.04  Monday 16-May-88 16:00  Page 199-2
$TRACK	-- SPECIAL TRACK ROUTINE

   9522					;
   9523					; FUNCTION: THIS ROUTINE CLEANS UP THE CPU AND STARTS UP THE BOOT
   9524					;  WITH SPECIFIED FUNCTIONS IN AC0.
   9525					;
   9526						.MCALL	MRKT$S,WTSE$S
   9527					; EQUATED SYMBOLS
   9528					;
   9529		000020 			AAX	=	BIT4		; AR/ARX PARITY ENABLE BIT.
   9530		000000 			APR	=	0		; KL DEVICE.
   9531		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   9532		000004 			CM	=	BIT2		; CRAM PARITY ENABLE BIT.
   9533		000003 			DATAO	=	3		; KL I/O SUB-FUNCTION CODE.
   9534		000002 			DM	=	BIT1		; DRAM PARITY ENABLE BIT.
   9535		000010 			FM	=	BIT3		; FM PARITY ENABLE BIT.
   9536		000001 			FS	=	BIT0		; FS PARITY ENABLE BIT.
   9537		000010 			PAG	=	10		; KL DEVICE.
   9538		000004 			PI	=	4		; KL DEVICE.
   9539					;
   9540					; LOCAL DATA
   9541					;
   9542
   9543	002116					.PSECT	DATA,D
   9544	002116				DSTRT:
   9545	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
   9546	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
   9547	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
   9548	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
   9549		000004 			DSTRTL=.-DSTRT/I.10L
   9551	002142				DSTCEN:
   9552	002142					IO10$	CONO PAG,,600000
	002142	   000 	   000 	   003 		 .BYTE	BY$$0,BY$$1,BY$$2
	002145	   012 	   016 			 .BYTE	BY$$3,BY$$4
   9554	002147				DST1B0:
   9555	002147					WD36$	400000 0	;1B0
	002147	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002152	   000 	   010 			 .BYTE	BY$$3,BY$$4
   9556	002154				DST1B1:
   9557	002154					WD36$	200000 0	;1B1
	002154	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002157	   000 	   004 			 .BYTE	BY$$3,BY$$4
   9558	002161				DST3B1:
   9559	002161					WD36$	600000 0	;3B1
	002161	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002164	   000 	   014 			 .BYTE	BY$$3,BY$$4
   9560						.EVEN			; DSTBF NUST START ON EVEN BOUNDRY.
   9561	002166				DSTBF:
   9562	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 V05.04  Monday 16-May-88 16:00  Page 199-3
$TRACK	-- SPECIAL TRACK ROUTINE

   9563						.EVEN
   9564
   9565	005744					.PSECT	TEXT,D
   9566	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
   9567						.EVEN
   9568	024524					.PSECT
KLIST -- START THE KL BOOT	MACRO V05.04  Monday 16-May-88 16:00  Page 200
$TENST	-- START KL BOOT

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

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

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

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

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

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

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

	025400	000207 				 RTS	PC
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO V05.04  Monday 16-May-88 16:00  Page 206
$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD

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

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

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

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

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

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

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

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

  10154						.SBTTL	$TENAD	-- DISPLAY KL ADDRESS/16K
  10155					;+
  10156					; INSERT THE 22 BIT ASCII REPRESENTATION OF THE ADDRESS/16K CONTAINED
  10157					; IN R0. THE PATTERN IS "XXXXXXXX" WHERE X IS AN OCTAL DIGIT.
  10158					;
  10159					; INPUTS:
  10160					;	R5	- POINTER TO WHERE TO INSERT THE ASCII STRING.
  10161					;	R0	- NUMBER OF 16K MEMORY BANK.
  10162					;
  10163					; OUTPUTS:
  10164					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
  10165					;	CHARACTERS.
  10166					;-
  10167
KLITN -- ASCII-KL WORD TRANSLAT	MACRO V05.04  Monday 16-May-88 16:00  Page 214
$WRD22	-- DISPLAY 22 BIT KL WORD

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

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

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

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

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

  10432	026550	006301 				ASL	R1		; FINISHED WITH WORD ?
  10433	026552	103360 				BCC	10$		; NO - CONTINUE, OTHERWISE
  10434	026554					POP	<R1,R2>
	026554	012601 				 MOV	(SP)+,R1
	026556	012602 				 MOV	(SP)+,R2
  10435	026560					RETURN			; WE ARE FINISHED.
	026560	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO V05.04  Monday 16-May-88 16:00  Page 219
$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD

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

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

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

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

  10612	027114	110025 				MOVB	R0,(R5)+
  10613	027116				90$:	POP	R0
	027116	012600 				 MOV	(SP)+,R0
  10614	027120	077225 				SOB	R2,30$
  10615	027122					POP	<R1,R2>
	027122	012601 				 MOV	(SP)+,R1
	027124	012602 				 MOV	(SP)+,R2
  10616	027126					RETURN
	027126	000207 				 RTS	PC
KLITR -- ASCII-RAD50 CONVERSION	MACRO V05.04  Monday 16-May-88 16:00  Page 223
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

  10618
  10619						.TITLE	KLITT -- TTY I/O FUNCTIONS
  10620	027130					IDENT$	5,1
						.IDENT	/005010/
  10621					;
  10622					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10623					; ALL RIGHTS RESERVED.
  10624					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10625					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10626					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10627					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10628					;
  10629					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10630					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10631					; EQUIPMENT CORPORATION.
  10632					;
  10633					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10634					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10635					;
  10636					; VERSION 05-00
  10637					;
  10638					; ALAN D. PECKHAM  15-APR-77
  10639					;
  10640					; MODIFIED BY:
  10641					;
  10642					; FUNCTION: ALL ROUTINES ACCESS THE CONSOLE THROUGH THIS MODULE
  10643					;  TO PROVIDE A UNIFORM INTERFACE TO THE OPERATOR.
  10644					;
  10645					; EQUATED SYMBOLS
  10646					;
  10647		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
  10648		000012 			LF	=	12		; LINE FEED CHARACTER.
  10649					;
  10650					; LOCAL MACROS
  10651					;
  10652						.MCALL	QIOW$,WTSE$S,EXIT$S
  10653					;
  10654					; LOCAL DATA
  10655					;
  10656	002244					.PSECT	DATA,D
  10657	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
  10658	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 V05.04  Monday 16-May-88 16:00  Page 223-1
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

	002302	000000 				.WORD	0
	002304	000000 				.WORD	0
  10659	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
  10660	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
  10661	002336	000000 	000000 		DTTSTA:	.WORD	0,0
  10662	002342	000000 	000000 	000000 	TMPLOG:	.WORD	0,0,0
  10664	002350	000000 			SAVMSG:	.WORD	0
  10665	002352	000000 			SAVLEN:	.WORD	0
  10667	006002					.PSECT	TEXT,D
  10668	006002	   040 			TTSPC:	.ASCII	/ /
  10669	006003	   011 			TTTAB:	.ASCII	/	/
  10670	006004	   057 			TTSLS:	.ASCII	%/%
  10671	006005	   007 			TTBEL:	.BYTE	7
  10672	006006	   015 	   012 		TTTNLN:	.ASCII	<CR><LF>
  10673	006010	   113 	   114 	   111 	TTTPRP:	.ASCII	/KLI>/
	006013	   076
  10674	006014	   113 	   114 	   111 	TTTPRE:	.ASCIZ	/KLI -- /
	006017	   040 	   055 	   055
	006022	   040 	   000
  10675						.EVEN
  10676	027130					.PSECT
KLITT -- TTY I/O FUNCTIONS	MACRO V05.04  Monday 16-May-88 16:00  Page 224
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

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

  10738	027344	105237 	000036'		45$:	INCB	.TRKSW		; [5.1005]TURN ON TRACK AND
  10739	027350	000677 				BR	10$		; GET ANOTHER LINE.
  10740	027352	105037 	000037'		50$:	CLRB	.TRKTT		; TURN OFF TRACK AND
  10741	027356	000432 				BR	95$		; [5.1005]CHECK FOR CLEARING .TRKSW
  10742	027360	105737 	000040'		80$:	TSTB	.TRKLP		; [5.1005]IS LP ON?
  10743	027364	001271 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10744	027366	105237 	000040'			INCB	.TRKLP		; [5.1005]TURN ON LP
  10745	027372					DIR$	#ATLST		; [5.1005]ATTACH LP
	027372	012746 	002306'			MOV	#ATLST,-(SP)
	027376	104375 				EMT	375
  10746	027400	103411 				BCS	90$		; [5.1005]ERROR, CLEAR LP TRACK
  10747	027402	013737 	002350'	002300'		MOV	SAVMSG,DTTWLB+Q.IOPL+0	; [5.1005]QUESTION MESSAGE
  10748	027410	013737 	002352'	002302'		MOV	SAVLEN,DTTWLB+Q.IOPL+2	; [5.1005]QUESTION LENGTH
  10749	027416					CALL	$ECHO1		; [5.1005]ECHO MESSAGE
	027416	004737 	030020'			 JSR	PC,$ECHO1
  10750	027422	000750 				BR	45$		; TURN ON TRACK
  10751	027424	105737 	000040'		90$:	TSTB	.TRKLP		; [5.1005]IS LP OFF?
  10752	027430	001647 				BEQ	10$		; [5.1005]YES, GET ANOTHER LINE
  10753	027432	105037 	000040'			CLRB	.TRKLP		; [5.1005]TURN OFF LP
  10754	027436					DIR$	#DTLST		; [5.1005]DETATCH LP
	027436	012746 	002322'			MOV	#DTLST,-(SP)
	027442	104375 				EMT	375
  10755	027444	105737 	000040'		95$:	TSTB	.TRKLP		; [5.1005]LP ON ?
  10756	027450	001237 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10757	027452	105737 	000037'			TSTB	.TRKTT		; [5.1005]TT ON ?
  10758	027456	001234 				BNE	10$		; [5.1005]YES, GET ANOTHER LINE
  10759	027460	105037 	000036'			CLRB	.TRKSW		; [5.1005]NOTHING ON, CLEAR TRACK
  10760	027464	000631 				BR	10$		; [5.1005]GET ANOTHER LINE
  10762	027466	000137 	024012'		60$:	JMP	$ERROR		; AND RESTART DIALOG.
  10763	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 V05.04  Monday 16-May-88 16:00  Page 225
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

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

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

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

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

  10940		000777 			PGBTS	=	PAGE-1		; PAGE BITS USED IN MASK.
  10941					;
  10942					; LOCAL DATA
  10943					;
  10944						.MCALL	ALUN$
  10945
  10946	002354					.PSECT	DATA,D
  10947	002354	   007 	   004 		DNIBOO:	.BYTE	7,4
  10948	002356	000004 				.WORD SYILUN
  10949	002360	   104 				.ASCII /D/
  10951	002361	   124 				.ASCII /T/
  10955	002362	000001 				.WORD 1
  10956	002364				DXBFNM:
  10957	002364	007347 	076400 	000000 		.RAD50	/BOOT     EXB/	; BOOT DEFAULT FILE NAME.
	002372	021402
  10958	002374	000000 				.WORD	0		; GET LATEST VERSION.
  10959	002376	   005 	   005 			.BYTE	5,5
  10960	002400	054523 	000000 		DXBLOC:	.WORD	"SY,0
  10961	002404				DXBADR:
  10962	002404	000000 	000000 			.WORD	0,0		; CURRENT DEPOSIT ADDRESS.
  10963	002410				DXBDAT:
  10964	002410	000000 	000000 	000000 		.WORD	0,0,0		; DATA WORD TO DEPOSIT.
  10965	002416				DXBCNM:
  10966	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
  10967						.EVEN
  10968	006024					.PSECT	TEXT,D
  10969	006024				TXBIMM:
  10970	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
  10971	030052					.PSECT
KLIXB -- LOAD THE KL BOOT	MACRO V05.04  Monday 16-May-88 16:00  Page 229
$EXBLD	-- LOAD THE BOOT

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

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

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

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

  11158
  11159						.TITLE	KLIXC -- KL INSTRUCTION EXECUTION
  11160	030636					IDENT$	5,0
						.IDENT	/005000/
  11161					;
  11162					; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  11163					; ALL RIGHTS RESERVED.
  11164					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  11165					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  11166					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  11167					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  11168					;
  11169					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  11170					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  11171					; EQUIPMENT CORPORATION.
  11172					;
  11173					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  11174					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  11175					;
  11176					; VERSION 05-00
  11177					;
  11178					; ALAN D. PECKHAM  30-MAR-77
  11179					;
  11180					; MODIFIED BY:
  11181					;
  11182					; R. BELANGER	06-DEC-78	NEW KEEP-ALIVE ERROR PROCESSING
  11183					;					TCO 4.2107
  11184					;
  11185					; FUNCTION: THIS MODULE CONTAINS ROUTINES TO ALLOW EXECUTION OF
  11186					;  SINGLE KL INSTRUCTIONS OR THE STARTING OF KL PROGRAMS.
  11187					;
  11188					; LOCAL DATA
  11189					;
  11190	002424					.PSECT	DATA,D
  11191	002424				DXCAD:
  11192	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
  11193	002431				DXCBF:
  11194	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
  11195	002436				DXCBRC:
  11196	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
  11197						.EVEN
  11198	006070					.PSECT	TEXT,D
  11199	006070				TXCHLE:
  11200	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 V05.04  Monday 16-May-88 16:00  Page 232-1
$EXBLD	-- LOAD THE BOOT

	006115	   117 	   120 	   000
  11201	006120				TXCSFL:
  11202	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
  11203	030636					.PSECT
KLIXC -- KL INSTRUCTION EXECUTI	MACRO V05.04  Monday 16-May-88 16:00  Page 233
$EXCT	-- EXECUTE KL INSTRUCTION

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

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

  11282	031070	001404 				BEQ	80$		; NO -- COMPLAIN
  11283	031072	012700 	001000 			MOV	#.STRCL,R0	; YES -- START THE CLOCK
  11284	031076					CALLR	$DFXC		; AND EXIT.
	031076	000137 	013760'			 JMP	$DFXC
  11285						;
  11286	031102				80$:
  11287	031102					PRINT	#TXCSFL		; NO -- PRINT ERROR MESSAGE
	031102	012700 	006120'			 MOV	#TXCSFL,R0
	031106	004737 	027634'			 JSR	PC,$TTMSG
  11288	031112	000261 				SEC
  11289	031114				90$:
  11290	031114					RETURN			; AND EXIT
	031114	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO V05.04  Monday 16-May-88 16:00  Page 235
$WTKL	-- WAIT FOR KL PROGRAM TO HALT

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

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

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

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

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

  11453						;
KLIXC -- KL INSTRUCTION EXECUTI	MACRO V05.04  Monday 16-May-88 16:00  Page 239
$BURST	-- BURST THE M-BOX CLOCK

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

  11502	031772	012700 	005000 			MOV	#.BRCLK,R0
  11503	031776					CALLR	$DFXC
	031776	000137 	013760'			 JMP	$DFXC
  11504						;
  11505	032002				90$:
  11506	032002					RETURN
	032002	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO V05.04  Monday 16-May-88 16:00  Page 240
$BURST	-- BURST THE M-BOX CLOCK

  11508
  11509		023516'				.END	$START
KLIXC -- KL INSTRUCTION EXECUTI	MACRO V05.04  Monday 16-May-88 16:00  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 V05.04  Monday 16-May-88 16:00  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= 000000   	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= 000016   	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 V05.04  Monday 16-May-88 16:00  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 = 000115 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  000522RG    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 V05.04  Monday 16-May-88 16:00  Page 240-4
Symbol table

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


. ABS.	000000    000	(RW,I,GBL,ABS,OVR)
      	032004    001	(RW,I,LCL,REL,CON)
DATA  	002444    002	(RW,D,LCL,REL,CON)
TEXT  	006142    003	(RW,D,LCL,REL,CON)
GLBL  	002674    004	(RW,D,GBL,REL,CON)
Errors detected:  0

*** Assembler statistics


Work  file  reads: 54
Work  file writes: 58
Size of work file: 20030 Words  ( 79 Pages)
Size of core pool: 19292 Words  ( 74 Pages)
Operating  system: RSX-11M/PLUS

Elapsed time: 00:07:09.59
,[50,20]KLIMON/CR/-SP=[50,30]KLIMON.TMP
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

AAX   	= 000020	#199-9529  
APR   	= 000000	 11-568    #55-1954    55-1976    55-1976   #58-2159   #199-9530   199-9545   199-9545  #228-10937 
                         228-10966  228-10966 
ATLST 	  002306 R	#223-10659  224-10745 
A.LULU	= 000002	#156-7002  #156-7004  #156-7007  #156-7010  #156-7012  #156-7014  
A.LUNA	= 000004	#156-7002  #156-7004  #156-7007  #156-7010  #156-7012  #156-7014  
A.LUNU	= 000006	#156-7002  #156-7004  #156-7007  #156-7010  #156-7012  #156-7014  
BAF0  	= ******  GX	 81-3720    81-3720    87-4057    87-4057   
BITTBL	= ******  GX	 78-3414    80-3649    81-3755    87-4061   
BIT0  	= 000001	#4-198     #8-474      178-8365   199-9536  
BIT1  	= 000002	#4-198     #8-474      199-9534  
BIT10 	= 002000	#4-198     #8-474     
BIT11 	= 004000	#4-198     #8-474     
BIT12 	= 010000	#4-198     #8-474     
BIT13 	= 020000	#4-198     #8-474     
BIT14 	= 040000	#4-198     #8-474     
BIT15 	= 100000	#4-198     #8-474      62-2346    78-3331    78-3394    80-3639    81-3740    84-3897    85-3961   
                         86-4013    91-4218    103-4724   105-4811   105-4813   121-5348   146-6395   154-6823   154-6824  
                         154-6831   154-6835   154-6836   173-7845  
BIT2  	= 000004	#4-198     #8-474      199-9532  
BIT3  	= 000010	#4-198     #8-474      199-9535  
BIT4  	= 000020	#4-198     #8-474      199-9529  
BIT5  	= 000040	#4-198     #8-474     
BIT6  	= 000100	#4-198     #8-474     
BIT7  	= 000200	#4-198     #8-474     
BIT8  	= 000400	#4-198     #8-474     
BIT9  	= 001000	#4-198     #8-474     
BLKI  	= 000000	 11-567     11-569    #58-2160   
BLKO  	= 000002	 11-565    #55-1955    55-1976    55-1976   #175-8123   175-8141   175-8141  
BMMSTB	  000236 RG	 85-3971    91-4251   #192-9084  
BPARER	= 000020	#4-198     #8-474     
BRCLK 	= 000005	#11-560    
BY$$0 	= 000000	#51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778   #51-1779    51-1779    51-1779   #51-1779    51-1779   #51-1780    51-1780   
                         51-1780   #51-1780    51-1780   #51-1781    51-1781    51-1781   #51-1781    51-1781   #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   #55-1976    55-1976    55-1976   #55-1976    55-1976   #55-1977    55-1977   
                         55-1977   #55-1977    55-1977   #88-4108    88-4108    88-4108   #88-4108    88-4108   #88-4109   
                         88-4109    88-4109   #88-4109    88-4109   #123-5413   123-5413   123-5413  #123-5413   123-5413  
                        #123-5416   123-5416   123-5416  #123-5416   123-5416  #127-5657   127-5657   127-5657  #127-5657  
                         127-5657  #127-5658   127-5658   127-5658  #127-5658   127-5658  #131-5854   131-5854   131-5854  
                        #131-5854   131-5854  #131-5856   131-5856   131-5856  #131-5856   131-5856  #137-6093   137-6093  
                         137-6093  #137-6093   137-6093  #154-6841   154-6841   154-6841  #154-6841   154-6841   154-6841  
                        #154-6841   154-6841  #154-6850   154-6850   154-6850  #154-6850   154-6850  #154-6851   154-6851  
                         154-6851  #154-6851   154-6851   154-6851  #154-6851   154-6851  #154-6852   154-6852   154-6852  
                        #154-6852   154-6852  #175-8141   175-8141   175-8141  #175-8141   175-8141  #175-8150   175-8150  
                         175-8150  #175-8150   175-8150  #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  
                        #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  
                        #183-8592   183-8592   183-8592  #183-8592   183-8592  #183-8594   183-8594   183-8594  #183-8594  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         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-8597  
                         183-8597   183-8597  #183-8597   183-8597   183-8597  #183-8597   183-8597  #183-8598   183-8598  
                         183-8598  #183-8598   183-8598   183-8598  #183-8598   183-8598   183-8598  #183-8598   183-8598  
                        #190-8915   190-8915   190-8915  #190-8915   190-8915   190-8915  #190-8915   190-8915  #190-8925  
                         190-8925   190-8925  #190-8925   190-8925  #199-9545   199-9545   199-9545  #199-9545   199-9545  
                         199-9545  #199-9545   199-9545   199-9545  #199-9545   199-9545   199-9545  #199-9545   199-9545  
                         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-9546   199-9546   199-9546  #199-9546   199-9546   199-9546  
                        #199-9546   199-9546   199-9546  #199-9546   199-9546  #199-9547   199-9547   199-9547  #199-9547  
                         199-9547  #199-9548   199-9548   199-9548  #199-9548   199-9548  #199-9552   199-9552   199-9552  
                        #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  
                        #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  #199-9552   199-9552  #199-9555  
                         199-9555   199-9555  #199-9555   199-9555  #199-9557   199-9557   199-9557  #199-9557   199-9557  
                        #199-9559   199-9559   199-9559  #199-9559   199-9559  #199-9562   199-9562   199-9562  #199-9562  
                         199-9562  #228-10966  228-10966  228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966 
                         228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966 
                        #232-11192  232-11192  232-11192 #232-11192  232-11192 #232-11194  232-11194  232-11194 #232-11194 
                         232-11194 #232-11196  232-11196  232-11196 #232-11196  232-11196 
BY$$1 	= 000000	#51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778   #51-1779    51-1779    51-1779   #51-1779    51-1779   #51-1780    51-1780   
                         51-1780   #51-1780    51-1780   #51-1781    51-1781    51-1781   #51-1781    51-1781   #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   #55-1976    55-1976    55-1976   #55-1976    55-1976   #55-1977    55-1977   
                         55-1977   #55-1977    55-1977   #88-4108    88-4108    88-4108   #88-4108    88-4108   #88-4109   
                         88-4109    88-4109   #88-4109    88-4109   #123-5413   123-5413   123-5413  #123-5413   123-5413  
                        #123-5416   123-5416   123-5416  #123-5416   123-5416  #127-5657   127-5657   127-5657  #127-5657  
                         127-5657  #127-5658   127-5658   127-5658  #127-5658   127-5658  #131-5854   131-5854   131-5854  
                        #131-5854   131-5854  #131-5856   131-5856   131-5856  #131-5856   131-5856  #137-6093   137-6093  
                         137-6093  #137-6093   137-6093  #154-6841   154-6841   154-6841  #154-6841   154-6841   154-6841  
                        #154-6841   154-6841  #154-6850   154-6850   154-6850  #154-6850   154-6850  #154-6851   154-6851  
                         154-6851  #154-6851   154-6851   154-6851  #154-6851   154-6851  #154-6852   154-6852   154-6852  
                        #154-6852   154-6852  #175-8141   175-8141   175-8141  #175-8141   175-8141  #175-8150   175-8150  
                         175-8150  #175-8150   175-8150  #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  
                        #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  #183-8592   183-8592   183-8592  
                        #183-8592   183-8592   183-8592  #183-8592   183-8592  #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-8597  
                         183-8597   183-8597  #183-8597   183-8597   183-8597  #183-8597   183-8597  #183-8598   183-8598  
                         183-8598  #183-8598   183-8598   183-8598  #183-8598   183-8598   183-8598  #183-8598   183-8598  
                        #190-8915   190-8915   190-8915  #190-8915   190-8915   190-8915  #190-8915   190-8915  #190-8925  
                         190-8925   190-8925  #190-8925   190-8925  #199-9545   199-9545   199-9545  #199-9545   199-9545  
                         199-9545  #199-9545   199-9545   199-9545  #199-9545   199-9545   199-9545  #199-9545   199-9545  
                         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-9546   199-9546   199-9546  #199-9546   199-9546   199-9546  
                        #199-9546   199-9546   199-9546  #199-9546   199-9546  #199-9547   199-9547   199-9547  #199-9547  
                         199-9547  #199-9548   199-9548   199-9548  #199-9548   199-9548  #199-9552   199-9552   199-9552  
                        #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  
                        #199-9552   199-9552   199-9552  #199-9552   199-9552   199-9552  #199-9552   199-9552  #199-9555  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         199-9555   199-9555  #199-9555   199-9555  #199-9557   199-9557   199-9557  #199-9557   199-9557  
                        #199-9559   199-9559   199-9559  #199-9559   199-9559  #199-9562   199-9562   199-9562  #199-9562  
                         199-9562  #228-10966  228-10966  228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966 
                         228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966  228-10966 #228-10966  228-10966 
                        #232-11192  232-11192  232-11192 #232-11192  232-11192 #232-11194  232-11194  232-11194 #232-11194 
                         232-11194 #232-11196  232-11196  232-11196 #232-11196  232-11196 
BY$$2 	= 000000	#51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1778   
                         51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1779    51-1779   #51-1779    51-1779   
                        #51-1779    51-1779   #51-1780    51-1780   #51-1780    51-1780   #51-1781    51-1781    51-1781   
                        #51-1781    51-1781   #51-1781    51-1781   #55-1970    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   #55-1976    55-1976   #55-1976    55-1976   
                        #55-1976    55-1976   #55-1977    55-1977   #55-1977    55-1977   #55-1977    55-1977   #88-4108   
                         88-4108   #88-4108    88-4108   #88-4108    88-4108   #88-4109    88-4109   #88-4109    88-4109   
                        #88-4109    88-4109   #123-5413   123-5413   123-5413  #123-5413   123-5413  #123-5413   123-5413  
                        #123-5416   123-5416   123-5416  #123-5416   123-5416  #123-5416   123-5416  #127-5657   127-5657  
                         127-5657  #127-5657   127-5657  #127-5657   127-5657  #127-5658   127-5658   127-5658  #127-5658  
                         127-5658  #127-5658   127-5658  #131-5854   131-5854  #131-5854   131-5854  #131-5856   131-5856  
                         131-5856  #131-5856   131-5856  #131-5856   131-5856  #137-6093   137-6093   137-6093  #137-6093  
                         137-6093  #137-6093   137-6093  #154-6841   154-6841   154-6841  #154-6841   154-6841  #154-6841  
                         154-6841  #154-6841   154-6841  #154-6850   154-6850   154-6850  #154-6850   154-6850  #154-6850  
                         154-6850  #154-6851   154-6851   154-6851  #154-6851   154-6851  #154-6851   154-6851  #154-6851  
                         154-6851  #154-6852   154-6852   154-6852  #154-6852   154-6852  #154-6852   154-6852  #175-8141  
                         175-8141  #175-8141   175-8141  #175-8141   175-8141  #175-8150   175-8150   175-8150  #175-8150  
                         175-8150  #175-8150   175-8150  #183-8592   183-8592  #183-8592   183-8592  #183-8592   183-8592  
                        #183-8592   183-8592  #183-8592   183-8592  #183-8592   183-8592  #183-8592   183-8592  #183-8592  
                         183-8592  #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-8595  #183-8596  
                         183-8596  #183-8596   183-8596  #183-8596   183-8596  #183-8597   183-8597  #183-8597   183-8597  
                        #183-8597   183-8597  #183-8598   183-8598  #183-8598   183-8598  #183-8598   183-8598  #183-8598  
                         183-8598  #190-8915   190-8915  #190-8915   190-8915  #190-8915   190-8915  #190-8915   190-8915  
                        #190-8925   190-8925   190-8925  #190-8925   190-8925  #190-8925   190-8925  #199-9545   199-9545  
                        #199-9545   199-9545  #199-9545   199-9545  #199-9545   199-9545  #199-9545   199-9545  #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-9546   199-9546  #199-9546   199-9546  #199-9546   199-9546  #199-9546  
                         199-9546  #199-9547   199-9547  #199-9547   199-9547  #199-9547   199-9547  #199-9548   199-9548  
                        #199-9548   199-9548  #199-9548   199-9548  #199-9552   199-9552  #199-9552   199-9552  #199-9552  
                         199-9552  #199-9552   199-9552  #199-9552   199-9552  #199-9552   199-9552  #199-9552   199-9552  
                        #199-9552   199-9552  #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-9559   199-9559   199-9559  #199-9559   199-9559   199-9559  #199-9559   199-9559  
                         199-9559  #199-9559   199-9559   199-9559  #199-9559   199-9559   199-9559  #199-9559   199-9559  
                         199-9559  #199-9559   199-9559  #199-9559   199-9559  #199-9562   199-9562   199-9562  #199-9562  
                         199-9562  #199-9562   199-9562  #228-10966  228-10966 #228-10966  228-10966 #228-10966  228-10966 
                        #228-10966  228-10966 #228-10966  228-10966 #228-10966  228-10966 #228-10966  228-10966 #232-11192 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         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 #232-11196  232-11196  232-11196 #232-11196  232-11196 
                        #232-11196  232-11196 
BY$$3 	= 000000	#51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   #51-1778    51-1778    51-1778   
                        #51-1778    51-1778   #51-1779    51-1779   #51-1781    51-1781    51-1781   #51-1781    51-1781   
                        #55-1970    55-1970    55-1970   #55-1970    55-1970   #55-1971    55-1971   #55-1972    55-1972   
                        #55-1973    55-1973   #55-1974    55-1974   #55-1975    55-1975   #55-1976    55-1976   #55-1977   
                         55-1977   #88-4108    88-4108   #88-4109    88-4109   #123-5413   123-5413   123-5413  #123-5413  
                         123-5413  #123-5416   123-5416   123-5416  #123-5416   123-5416  #127-5657   127-5657   127-5657  
                        #127-5657   127-5657  #127-5658   127-5658   127-5658  #127-5658   127-5658  #131-5856   131-5856  
                         131-5856  #131-5856   131-5856  #137-6093   137-6093   137-6093  #137-6093   137-6093  #154-6841  
                         154-6841   154-6841  #154-6841   154-6841  #154-6850   154-6850   154-6850  #154-6850   154-6850  
                        #154-6851   154-6851   154-6851  #154-6851   154-6851  #154-6852   154-6852   154-6852  #154-6852  
                         154-6852  #175-8141   175-8141  #175-8150   175-8150   175-8150  #175-8150   175-8150  #183-8592  
                         183-8592  #183-8594   183-8594   183-8594  #183-8594   183-8594  #183-8595   183-8595   183-8595  
                        #183-8595   183-8595  #190-8915   190-8915  #190-8925   190-8925   190-8925  #190-8925   190-8925  
                        #199-9545   199-9545  #199-9546   199-9546  #199-9547   199-9547  #199-9548   199-9548  #199-9552  
                         199-9552  #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-9559   199-9559   199-9559  #199-9559  
                         199-9559   199-9559  #199-9559   199-9559   199-9559  #199-9559   199-9559   199-9559  #199-9559  
                         199-9559   199-9559  #199-9559   199-9559   199-9559  #199-9559   199-9559  #199-9562   199-9562  
                         199-9562  #199-9562   199-9562  #228-10966  228-10966 #232-11192  232-11192  232-11192 #232-11192 
                         232-11192 #232-11194  232-11194  232-11194 #232-11194  232-11194 #232-11196  232-11196  232-11196 
                        #232-11196  232-11196 
BY$$4 	= 000000	#51-1778    51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1778   
                         51-1778   #51-1778    51-1778   #51-1778    51-1778   #51-1779    51-1779   #51-1781    51-1781   
                        #51-1781    51-1781   #55-1970    55-1970   #55-1970    55-1970   #55-1971    55-1971   #55-1972   
                         55-1972   #55-1973    55-1973   #55-1974    55-1974   #55-1975    55-1975   #55-1976    55-1976   
                        #55-1977    55-1977   #88-4108    88-4108   #88-4109    88-4109   #123-5413   123-5413  #123-5413  
                         123-5413  #123-5416   123-5416  #123-5416   123-5416  #127-5657   127-5657  #127-5657   127-5657  
                        #127-5658   127-5658  #127-5658   127-5658  #131-5856   131-5856  #131-5856   131-5856  #137-6093  
                         137-6093  #137-6093   137-6093  #154-6841   154-6841  #154-6841   154-6841  #154-6850   154-6850  
                        #154-6850   154-6850  #154-6851   154-6851  #154-6851   154-6851  #154-6852   154-6852  #154-6852  
                         154-6852  #175-8141   175-8141  #175-8150   175-8150  #175-8150   175-8150  #183-8592   183-8592  
                        #183-8594   183-8594  #183-8594   183-8594  #183-8595   183-8595  #183-8595   183-8595  #190-8915  
                         190-8915  #190-8925   190-8925  #190-8925   190-8925  #199-9545   199-9545  #199-9546   199-9546  
                        #199-9547   199-9547  #199-9548   199-9548  #199-9552   199-9552  #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-9559   199-9559  
                        #199-9559   199-9559  #199-9559   199-9559  #199-9559   199-9559  #199-9559   199-9559  #199-9559  
                         199-9559  #199-9559   199-9559  #199-9562   199-9562  #199-9562   199-9562  #228-10966  228-10966 
                        #232-11192  232-11192 #232-11192  232-11192 #232-11194  232-11194 #232-11194  232-11194 #232-11196 
                         232-11196 #232-11196  232-11196 
CCA   	= 000014	#55-1956    55-1971    55-1971   #88-4100    88-4108    88-4108   #175-8122   175-8141   175-8141  
CCFAIL	= ******  GX	 172-7800   172-7808  
CDD   	= 000020	#4-198     #8-474     
CECLK 	= 000004	#11-557    
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

CFGEXT	  006076 R	 83-3851    83-3851   #85-3950   
CFGINM	  001222 R	#82-3827    84-3936   
CFGINT	  005624 R	 83-3846    83-3846   #84-3875   
CFGMAC	  001441 R	#82-3833    86-4000   
CFGMNM	  001370 R	#82-3831    86-4038   
CFGMOS	  006234 R	 83-3857    83-3857   #86-3991   
CFGXMC	  004270 R	 78-3266   #78-3289   
CFGXNM	  001305 R	#82-3829    85-3974   
CFIMIL	  004702 R	 78-3439   #78-3461   
CFIMQ1	  000632 R	#77-3233    78-3283    78-3450   
CFIMQ2	  000752 R	#77-3237    78-3364   
CFIMQ3	  001024 R	#77-3239    78-3368   
CFIMQ4	  001051 R	#77-3241    78-3473   
CFMMQ1	  000707 R	#77-3235    78-3265    78-3453   
CFXMQ1	  001547 R	#90-4179    91-4200   
CFXMQ2	  001620 R	#90-4181    91-4229   
CHKIMC	  005070 R	 80-3594   #80-3605   
CHKMMC	  005314 R	 81-3694   #81-3707   
CHNPNT	= 000001	#4-198     #8-474     
CIMNXC	  001136 R	#79-3552    80-3613    81-3713   
CIMNXM	  001167 R	#79-3554    80-3658    81-3760   
CLRMR 	= 000006	#11-558    
CM    	= 000004	#199-9532   200-9642  
CNUPE 	= 000002	#4-198     #8-474     
CNVCHK	  015146 R	 151-6714   151-6714  #152-6758  
CNVWRD	  015154 R	 151-6692   151-6692   151-6699   151-6699   151-6705   151-6705  #152-6762  
COMCSE	  005552 RG	 78-3317    78-3446    78-3505    91-4211    91-4258    161-7326   162-7363   165-7499   166-7545  
                         168-7603   171-7723   174-7965   175-8030   176-8221  #190-8929  
CONBUT	= 000012	#11-562    
CONFGR	= ******  GX	*171-7755  *172-7792  
CONFIG	= ******  GX	 172-7829   172-7829  
CONO  	= 000004	#55-1957    55-1972    55-1972   #88-4101    88-4109    88-4109   #183-8579   183-8592   183-8592  
                        #199-9531   199-9545   199-9545   199-9546   199-9546   199-9547   199-9547   199-9552   199-9552  
                        #228-10938  228-10966  228-10966 
CONTI 	= ******  GX	 80-3620    80-3673   *80-3678    84-3907    86-3998   
CPUNUM	= 000002	#4-198     #8-474     
CR    	= 000015	#190-8901   199-9474  #223-10647  223-10672  226-10847 
CS.EXP	= 177670	#4-198     #8-474     
CTLS  	= 000040	#8-438      73-3114    146-6391   173-7841   192-9076   192-9080  
CXMDOL	  001504 R	#90-4177    91-4194   
CXMIBM	  001677 R	#90-4183    91-4254   
C.ACHE	= 000000	#3-188      55-1951    68-2737    70-2864    70-2942    70-2958    70-3004    74-3125    88-4097   
                         142-6263   164-7468   171-7726   175-8046   183-8591   187-8807   191-8968   191-8994   191-9025  
                         192-9047   195-9258   199-9550   200-9601   229-11016 
DACAB 	  000000 R	#51-1778   *52-1817    52-1820   *52-1822    52-1824   *53-1855    53-1856   
DACAD 	  000012 R	#51-1780    52-1827    53-1862   
DACBF 	  000015 R	#51-1781    54-1901   
DACBI 	  000005 R	#51-1779    52-1823    53-1857   
DATAI 	= 000001	#55-1958    55-1971    55-1971   #88-4102    88-4108    88-4108   
DATAO 	= 000003	#51-1772    51-1779    51-1779   #199-9533   199-9548   199-9548  
DBEFRC	= ******  GX	*171-7746  *172-7810  
DCAPGM	  000023 R	#55-1969    56-2001   
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

DCARCA	  000040 R	#55-1972   
DCARFL	  000101 R	#55-1979    56-2023    56-2050    56-2052    56-2054    56-2056   
DCASIA	  000033 R	#55-1971   
DCAWRF	  000064 R	#55-1976    56-2006    56-2064   
DCBADR	  000134 R	#58-2172   *62-2343   *62-2346    62-2351    64-2430    64-2438    65-2514   *65-2537    65-2547   
                         65-2570   
DCBCBF	  000156 R	#58-2176    63-2384    64-2444    64-2475    64-2482    64-2488   
DCBCNT	  000152 R	#58-2174   *60-2251    62-2352   *64-2459   *65-2535   *66-2600    66-2601   
DCBDAT	  000136 R	#58-2173    60-2252   
DCBDBF	  000172 R	#58-2177    65-2521    65-2552    65-2558    65-2564   
DCBFIX	  000154 R	#58-2175   *64-2427    64-2457   *64-2460    64-2466   *64-2498   *65-2511    65-2533   *65-2536   
                         65-2542   *65-2574   
DCBFNM	  000114 R	#58-2168    60-2239   
DCFCFN	  000210 R	#68-2724    70-2876    70-2883   
DCFLFN	  000230 R	#68-2729    70-2998   
DCFRJT	  000250 R	#68-2734    68-2745    70-2898   
DCOMST	= 000001	#4-198     #8-474     
DCSRCA	  000273 R	#88-4109    89-4131   
DCSSIA	  000266 R	#88-4108    89-4128   
DDCDAI	  000300 R	#92-4303    93-4327   
DDCDAO	  000314 R	#92-4304    93-4343   
DDCWAT	  000334 R	 92-4304   #92-4305   
DDDDEL	  000402 R	#94-4391    98-4532   
DDDFNA	  000352 R	#94-4390    98-4528   
DDDRNA	  000420 R	#94-4392    98-4537   
DDLACR	  000506 R	#103-4724   104-4755  
DDLFNA	  000456 R	#103-4723   104-4751  
DDLGLN	  000450 R	#103-4722   104-4747  
DDLRAT	  000564 R	 103-4724  #103-4726  
DDLRNA	  000534 R	#103-4725   104-4767  
DDNACE	  000660 R	#105-4813   106-4847  
DDNCRE	  000604 R	#105-4811   106-4839  
DDNDEL	  000706 R	#105-4814   106-4861  
DDNENA	  000630 R	#105-4812   106-4843  
DDNGLN	  000576 R	#105-4810   106-4835  
DDNRAT	  000722 R	 105-4813  #105-4815  
DDPDAI	  000734 R	#107-4901   108-4918  
DDPDAO	  000764 R	#107-4903   108-4923  
DDPDEL	  000750 R	#107-4902   108-4922  
DDPRNA	  001000 R	#107-4904   108-4928  
DDXEXT	  001030 R	#121-5348   122-5361  
DEP   	= 010000	#4-198     #8-474     
DEX   	= 000400	#4-198     #8-474     
DEXDON	= 000004	#4-198     #8-474     
DEXWD1	= 174406	#4-198     #8-474     
DEXWD2	= 174404	#4-198     #8-474     
DEXWD3	= 174402	#4-198     #8-474     
DFCABF	  001103 R	#123-5416   126-5603  *126-5619  *126-5621  
DFCBF 	  001074 R	#123-5413   124-5440   124-5448  *124-5454   124-5455   124-5456  *124-5456  *124-5471  *124-5472  
                         124-5474  *124-5479  *124-5480  *124-5481  *124-5482  *124-5483   124-5484   125-5513   125-5517  
                         125-5518  *125-5537  *125-5538   125-5539   125-5563   125-5564   125-5568  
DFCFL2	  001101 R	#123-5414   125-5541  *125-5545  *125-5566  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

DFCFL3	  001102 R	#123-5415   125-5559  *125-5561  *125-5565  
DFCRFL	  001054 R	#123-5404   125-5511  
DFCWFL	  001064 R	#123-5408   124-5473  
DFDABF	  001115 R	#127-5658   130-5784   130-5785   130-5808  
DFDDBF	  001110 R	#127-5657  *128-5711   128-5712   129-5738  
DFEAD 	  001146 R	 131-5852   131-5853  #131-5854   132-5893   133-5936   134-5952   134-5957  
DFEBF 	  001152 R	 131-5852   131-5853  #131-5856   132-5888   132-5893   133-5936   133-5939  
DFEDPB	  001122 R	#131-5852   132-5894  
DFEEXB	  001134 R	#131-5853   133-5935  
DFRRDB	  001160 R	#135-6015  *136-6040   136-6041   136-6042  
DFUNC 	= 000200	#4-198     #8-474     
DFWBF 	  001216 R	 137-6092  #137-6093  
DFWEDB	  001204 R	#137-6092   139-6147  
DFWWDB	  001172 R	#137-6091  *138-6119   138-6129   138-6130  
DFXXDB	  001224 R	#140-6193  *141-6225   141-6226   141-6227  
DF.DMG	= 000004	#4-198     #8-474     
DF.DMN	= 000007	#4-198     #8-474     
DF.DOR	= 000001	#4-198     #8-474     
DF.EHG	= 000010	#4-198     #8-474     
DF.EHM	= 000011	#4-198     #8-474     
DF.EMG	= 000005	#4-198     #8-474     
DF.EMN	= 000006	#4-198     #8-474     
DF.KLR	= 000012	#4-198     #8-474      135-6015  
DF.KLW	= 000013	#4-198     #8-474      137-6091  
DF.KLX	= 000014	#4-198     #8-474      140-6193  
DF.OFF	= 000002	#4-198     #8-474     
DF.ON 	= 000003	#4-198     #8-474     
DF.PDP	= 000016	#4-198     #8-474      131-5852  
DF.PEX	= 000015	#4-198     #8-474      131-5853   137-6092  
DGCFNM	  001236 R	#142-6267   143-6290  
DGMFNM	  001256 R	#145-6367   146-6399  
DGPFNM	  001276 R	#148-6498   149-6518  
DIAG1 	= 174430	#4-198     #8-474     
DIAG2 	= 174432	#4-198     #8-474     
DIAG3 	= 174436	#4-198     #8-474     
DIKL10	= 000010	#4-198     #8-474     
DLYCNT	= 174400	#4-198     #8-474     
DM    	= 000002	#199-9534   200-9642  
DMABM 	= ******  GX	*85-3985   
DMANXM	= ******  GX	 85-3971    91-4252   
DMA2TS	= ******  GX	 85-3965    91-4192   
DMA20 	= ******  GX	 83-3849    91-4190    173-7866  
DMRBF 	  001434 R	#154-6850   155-6888  
DMRKW2	  001446 R	 154-6821  #154-6852  
DMRMMR	  001414 R	 154-6839  #154-6841  
DMRMOS	  001441 R	#154-6851   155-6915  
DMRMRT	  001322 R	#154-6822   155-6880  
DMRSRL	= 000005	#154-6849   155-6927  
DMRSRT	  001422 R	#154-6844   154-6849   155-6928  
DNIBOO	  002354 R	#228-10947  229-11043 *229-11044  229-11045 *229-11046  229-11047 
DNILPO	  001474 R	#156-7006   157-7052  
DNISYF	  001524 RG	#156-7013   157-7061   231-11155 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 8

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

DNISYI	  001504 RG	#156-7009   157-7057   231-11153 
DNISYO	  001514 RG	#156-7011   157-7059   231-11154 
DNITTI	  001454 R	#156-7001   157-7047  
DNITTO	  001464 R	#156-7003   157-7049  
DON10C	= 040000	#4-198     #8-474      155-6876  
DON10S	= 100000	#4-198     #8-474     
DON11C	= 000100	#4-198     #8-474      155-6876  
DON11S	= 000200	#4-198     #8-474     
DPS4  	= 040000	#4-198     #8-474     
DQBFNM	  001534 RG	 62-2293   #160-7259   163-7386  
DQSAPR	  001670 R	#175-8149   179-8408   179-8411   179-8414   179-8418  
DQSCBF	  001640 R	#175-8145   181-8481   181-8503  
DQSCF3	  001654 R	#175-8147   181-8485  
DQSCSW	  001620 R	#175-8140   182-8527  
DQSHWT	  001676 R	#175-8152   178-8366  
DQSMKT	  001626 R	#175-8143   182-8538  
DQSP0 	  001554 RG	 174-7927  #175-8134  
DQSP01	  001604 RG	 174-7941  #175-8138  
DQSP1 	  001570 RG	 174-7930  #175-8136  
DRESET	= 000100	#4-198     #8-474      155-6873  
DRSCEN	  001714 R	#183-8592   187-8813  
DRSDBL	  001712 RG	#183-8590  *184-8638  *185-8668   185-8684  *186-8756   186-8772  
DRSFCR	  001736 R	#183-8597   186-8758  
DRSPEN	  001726 R	#183-8595   187-8820  
DRSPFR	  001733 R	#183-8596   184-8640  
DRSPLD	  001721 R	#183-8594   187-8817  
DRSSCR	  001741 R	#183-8598   185-8670  
DRTBF 	  002110 R	#190-8924   199-9450   199-9461  
DRTBUF	  002000 R	 190-8919  #190-8922   199-9433   199-9439   199-9476  
DRTDTE	  024150 R	 196-9359   196-9363   196-9367  #196-9371  
DRTSTA	  001774 R	 190-8919  #190-8920  
DRTWLB	  001752 R	#190-8918  *199-9477  *199-9480   199-9481  *199-9484   199-9485  
DRTX71	  001744 R	#190-8914   195-9237  
DR.DTE	= 000011	#4-198     #8-474      131-5852   131-5853   135-6015   137-6091   137-6092   140-6193  
DSEND 	= 000004	#4-198     #8-474     
DSTBF 	  002166 R	#199-9561   200-9637  
DSTCEN	  002142 R	#199-9551  
DSTRT 	  002116 R	#199-9544   199-9549   200-9595  
DSTRTL	= 000004	#199-9549   200-9594  
DST1B0	  002147 R	#199-9554   200-9617  
DST1B1	  002154 R	#199-9556   200-9631  
DST3B1	  002161 R	#199-9558   200-9621  
DS04  	= 004000	#4-198     #8-474      185-8679   186-8767  
DS05  	= 002000	#4-198     #8-474      234-11281 
DS06  	= 001000	#4-198     #8-474      134-5974   185-8682   186-8770   234-11275  235-11312  237-11374 
DTECMD	= 000451	#4-198     #8-474     
DTEFLG	= 000444	#4-198     #8-474     
DTEF11	= 000450	#4-198     #8-474     
DTEMTD	= 000455	#4-198     #8-474     
DTEMTI	= 000456	#4-198     #8-474     
DTLST 	  002322 R	#223-10660  224-10754 
DTNRB 	  002236 R	#211-10151  216-10310 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 9

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

DTNXP 	  002230 R	#211-10150 
DTTRLB	  002244 R	#223-10657  224-10704 
DTTSTA	  002336 R	 223-10657  223-10658 #223-10661  224-10705  224-10706  228-10899 
DTTWLB	  002264 R	#223-10658  224-10695  224-10696 *224-10698 *224-10699  224-10700 *224-10714 *224-10715  224-10716 
                        *224-10747 *224-10748 *226-10851 *226-10852 *227-10867 *227-10868  227-10869  227-10876  227-10877 
                        *228-10898 *228-10899 *228-10903  228-10904 *228-10905 
DUPE  	= 000020	#4-198     #8-474     
DURE  	= 000004	#4-198     #8-474     
DXBADR	  002404 R	#228-10961  229-11030 
DXBCNM	  002416 R	#228-10965  229-11033 
DXBDAT	  002410 R	#228-10963  229-11029 
DXBFNM	  002364 R	#228-10956  229-11019 
DXBLOC	  002400 R	#228-10960 *229-11049 *229-11053 *231-11151 *231-11152 
DXCAD 	  002424 R	#232-11191  234-11254  234-11259 
DXCBF 	  002431 R	#232-11193  238-11419 
DXCBRC	  002436 R	#232-11195  239-11472 
DXWRD1	= 002000	#4-198     #8-474     
D$$H11	= 000010	#1-44      
D1011 	= 000040	#4-198     #8-474     
EBSEL 	= 000100	#4-198     #8-474     
EBUSPC	= 000020	#4-198     #8-474     
EBUSPS	= 000004	#4-198     #8-474     
EDONES	= 040000	#4-198     #8-474     
ED.PHY	= 000200	#8-430      131-5852   131-5853   137-6092  
EF.CRI	= ******  GX	 157-7094  
EF.PR1	= ******  GX	 157-7086  
EPTR  	= 000000	#4-198     #8-474     
ERRORX	  020314 R	 172-7786   172-7826  #172-7834  
ERR10C	= 010000	#4-198     #8-474      155-6876  
ERR10S	= 020000	#4-198     #8-474     
ERR11C	= 000001	#4-198     #8-474      155-6876  
ERR11S	= 000002	#4-198     #8-474     
E.FFIL	= 000006	#8-429     
FITMEM	= ******  GX	 172-7819   172-7819  
FM    	= 000010	#199-9535   200-9642  
FMRECN	= ******  GX	*172-7771  *172-7790  
FORPRO	= 000020	#4-198     #8-474     
FS    	= 000001	#199-9536  
FTKLI 	= 000001	#3-192     
F.TRCK	= 000001	#3-190      124-5434   125-5503   126-5600   128-5676   129-5729   130-5783   132-5893   133-5936  
                         136-6042   138-6130   141-6226   155-6869   155-6926   156-7005   157-7051   190-8917   191-8982  
                         198-9414   223-10663  224-10683  224-10694  224-10701  224-10711  224-10717  224-10725  227-10870 
                         228-10885  233-11221  234-11253  235-11306  237-11359 
GAPCNT	= ******  GX	 172-7821  
GAPTAB	= ******  GX	 172-7823  
G.LUBA	= 000004	#103-4722  #105-4810  
G.LULU	= 000002	#103-4722  #105-4810  
G.LUNA	= 000000	 103-4722   105-4810  
HDTAB 	  002200 R	#207-9945   209-10064 
HIBYTE	= 177400	#4-198     #8-474     
HLTNOE	  022266 R	 176-8275   176-8275   178-8327   178-8327  #180-8452  
HRR   	= 000540	#55-1959    55-1974    55-1974   
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 10

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

H.KCAC	= ******  GX	 179-8424  
H.KEXT	= ******  GX	 179-8440  
H.KMOS	= ******  GX	 179-8434  
H.KPWR	= ******  GX	 178-8357   178-8368  
H.KUDF	= ******  GX	 179-8429  
IE.DFU	= ******  GX	 101-4641  
IE.EBX	= ******  GX	 139-6149  
IE.EOF	= ******  GX	 120-5303   224-10708 
IE.NSF	= ******  GX	 60-2258    70-2879    101-4637   104-4764   104-4768   143-6293   146-6402   149-6521   151-6635  
                         163-7389   229-11041 
IE.UPN	= ******  GX	 188-8839  
IFLOP 	= 100000	#4-198     #8-474     
INIDMA	= ******  GX	 85-3956   
INTMOD	= ******  GX	*84-3925   
INTROF	= 000010	#4-198     #8-474     
INTRON	= 000040	#4-198     #8-474     
INTSON	= 000001	#4-198     #8-474     
INT10S	= 000400	#4-198     #8-474     
INT11C	= 002000	#4-198     #8-474      155-6876  
INT11S	= 004000	#4-198     #8-474     
IO.ACE	= ******  GX	 105-4813  
IO.ACR	= ******  GX	 103-4724  
IO.ATT	= ******  GX	 223-10659 
IO.CRE	= ******  GX	 105-4811  
IO.DAC	= ******  GX	 92-4303    92-4304    107-4901   107-4903  
IO.DEL	= ******  GX	 94-4391    105-4814   107-4902  
IO.DET	= ******  GX	 223-10660 
IO.ENA	= ******  GX	 105-4812  
IO.EXT	= ******  GX	 121-5348  
IO.FNA	= ******  GX	 94-4390    103-4723   157-7070  
IO.RLB	= ******  GX	 223-10657 
IO.RNA	= ******  GX	 94-4392    103-4725   107-4904  
IO.RVB	= ******  GX	 114-5106  
IO.WLB	= ******  GX	 190-8919   223-10658 
IO.WVB	= ******  GX	 120-5293  
IS.CR 	= ******  GX	 224-10722 
IS.ESC	= ******  GX	 224-10720 
I.10L 	= 000005	#6-324      199-9549   200-9599  
JCOMM 	  002174 R	#207-9943  *209-10056  209-10075 
JRST  	= 000254	#55-1960    55-1977    55-1977   
JUMPE 	= 000322	#55-1961    55-1973    55-1973   
KEEPBB	= ******  GX	*171-7693  
KLI$$E	= 000000	#2-156      156-7023  
KLI$$F	= 000101	#3-181      58-2126    77-3197    79-3512    82-3790    90-4142    144-6334   150-6564   156-6939  
                         156-7023   167-7552   169-7634   183-8546   189-8856   199-9491  
KLI$$K	= 000126	#2-159      156-7023  
KLI$$V	= 000016	#2-155      156-7023  
KLPWRF	= 000010	#4-198     #8-474     
KL.ABO	= ******  GX	 195-9228  
KL.CFL	= ******  GX	 165-7505   171-7759  
KL.CFM	= ******  GX	 171-7741  
KL.DEF	= ******  GX	 175-8040  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 11

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

KL.KAC	= ******  GX	 157-7055   195-9234   237-11377 
KL.LCA	= ******  GX	 165-7502  
KL.LRM	= ******  GX	 175-8038   176-8235  
KL.LVB	= ******  GX	 163-7393   172-7806   229-11013 
KL.SPF	= ******  GX	 168-7613   171-7691   172-7805   175-8040  
KL.SSC	= ******  GX	 168-7616  
KL.VBD	= ******  GX	 172-7805   200-9615   200-9625  
KL.VBN	= ******  GX	 172-7806   200-9613  
KS.FCF	= ******  GX	 186-8781  
LCARPT	  000754 R	 56-2089   #57-2098   
LCBCRM	  001630 R	 62-2348   #64-2427   
LCBDRM	  002172 R	 62-2345   #65-2511    65-2539   
LCBFL 	  002636 R	 60-2261    62-2361    64-2500    65-2576   #66-2633   
LCBRC 	  001372 R	 60-2255   #62-2341    64-2464    65-2540   
LCBRME	  002516 R	 64-2473    64-2473    65-2549    65-2549   #66-2590   
LCBVFY	  002572 R	 64-2478    64-2478    64-2481    64-2481    64-2491    64-2491    65-2554    65-2554    65-2557   
                         65-2557    65-2567    65-2567   #66-2616   
LCBVR 	  002674 R	 62-2360   #67-2647   
LCB3W 	  001216 R	#61-2274    65-2512    65-2512   
LCB6W 	  001224 R	#61-2276    64-2439    64-2439   
LCFCPY	  003204 R	 70-2896   #70-2909    70-2931    70-2939    70-2948    70-3026   
LCFERR	  003502 R	 70-2880    70-2885   #70-3019   
LCFNXT	  003152 R	#70-2891    70-2919    70-2956   
LCFPRG	  003476 R	 70-2893    70-2913    70-2916    70-2921    70-2923    70-2955    70-2966    70-2975    70-2980   
                         70-2985    70-2990    70-2993    70-2995   #70-3017   
LCFRBF	  003256 R	 68-2742   #70-2929   
LCFRCA	  003276 R	 68-2738   #70-2946   
LCFREF	  003314 R	 68-2735    70-2887   #70-2962   
LCFRMC	  003516 R	 68-2743   #70-3024   
LCFRMM	  003176 R	 68-2736   #70-2903   
LCFRPA	  003266 R	 68-2744   #70-2937   
LCFRTN	  003474 R	 70-2859    70-2873   #70-3012   
LCFSKP	  003304 R	 70-2905    70-2932    70-2940   #70-2953    70-3027   
LCFWBF	  003526 R	 70-2979    70-2979   #71-3039   
LCFWCA	  003772 R	 70-2965    70-2965   #74-3127   
LCFWEF	  003642 R	 70-2992    70-2992   #72-3074   
LCFWMC	  004060 R	 70-2984    70-2984   #75-3157   
LCFWMM	  003664 R	 70-2974    70-2974   #73-3090   
LCFWPA	  004142 R	 70-2989    70-2989   #76-3183   
LDAR  	= 000077	#11-563    
LDEIDV	  007536 R	 101-4663   101-4663  #102-4680  
LDRER 	  010460 R	 110-4989   112-5045   113-5071  #113-5083  
LDWER 	  010722 R	 116-5176   117-5202  #117-5213   118-5239   119-5266  
LF    	= 000012	#190-8902   199-9475  #223-10648  223-10672  226-10848 
LFCSAB	  012274 R	 126-5604   126-5604   126-5612   126-5612  #126-5618  
LFDWFN	  012460 R	 128-5696   128-5706   128-5706  #128-5711  
LFECKN	  013354 R	 132-5886   132-5886   133-5933   133-5933  #134-5964  
LFEMVA	  013330 R	 132-5885   132-5885   133-5932   133-5932  #134-5952  
LFWCKF	  013676 R	 138-6116   138-6116  #139-6143  
LMRDFN	  015430 R	 155-6885   155-6885   155-6898   155-6898  #155-6904  
LOAD11	= 000004	#4-198     #8-474     
LOGLUN	= 000006	#8-437     
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 12

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

LPOLUN	= 000003	#8-433      156-7007   190-8919   199-9480   223-10659  223-10660  228-10903 
LQBRBF	  016656 RG	 161-7303   161-7303  #163-7384   176-8274   176-8274  
LQCCM 	  017244 R	 165-7494  #166-7512   166-7546  
LQMRFN	  001246 R	 60-2236    60-2236   #62-2292   
LQRBPS	  021144 R	 175-8052   175-8052  #175-8070   175-8073  
LQSBPS	  021532 R	 176-8261   176-8261  #177-8308   177-8312  
LQSCHE	  022052 R	 176-8279   176-8279   178-8330   178-8332  #178-8394  
LQSCHO	  022026 R	 176-8283   176-8283   178-8336  #178-8385  
LQSCSW	  022434 R	 176-8237   176-8237   176-8276   176-8276  #182-8524  
LQSHDW	  022072 R	 176-8277   176-8277   178-8331   178-8331  #179-8407  
LQSHWE	  021556 R	 176-8242   176-8242  #178-8327  
LQSHWO	  022312 RG	 174-7946   174-7946   179-8409   179-8409  #181-8477  
LRSTKL	  023332 R	 184-8639   184-8639   185-8669   185-8669   186-8757   186-8757  #187-8806  
LTNCHR	  026434 R	 214-10258  214-10258  215-10285  215-10285  215-10292  215-10292 #216-10348 
LTNMV 	  026374 R	 214-10252  214-10252  215-10280  215-10280 #216-10309 
LTNROL	  026420 R	 214-10256  214-10256  215-10283  215-10283  215-10290  215-10290 #216-10328  216-10332 
LTTDIR	  027724 R	 226-10853 #227-10869 
LXBRC 	  030274 R	 229-11035 #230-11078  231-11145 
LXB5B 	  030252 R	#229-11063  231-11135  231-11135 
L$$P20	= 000002	#1-38      
MABRD 	= ******  GX	*84-3929   
MAJVER	  000106 R	#58-2165   *63-2411    67-2658   
MA20  	= ******  GX	 78-3275    83-3841    173-7869  
MBINI 	= ******  GX	 171-7690   171-7690  
MB20  	= ******  GX	 78-3277    83-3843    173-7871  
MF20  	= ******  GX	 78-3260    83-3855    172-7798  
MPE11 	= 001000	#4-198     #8-474     
MXTYP 	= 000005	#68-2719    68-2745    70-2895   
M.KTAE	= 000010	#175-8144  
M.KTEF	= 000002	#175-8144  
M.KTMG	= 000004	#175-8144  
M.KTUN	= 000006	#175-8144  
NULSTP	= 000040	#4-198     #8-474     
NUPE  	= 000002	#4-198     #8-474     
PAG   	= 000010	#51-1773    51-1779    51-1779   #55-1962    55-1972    55-1972   #88-4103    88-4109    88-4109   
                        #183-8580   183-8592   183-8592  #199-9537   199-9547   199-9547   199-9548   199-9548   199-9552  
                         199-9552  
PAGE  	= 001000	#228-10939  228-10940 
PCERRM	  003225 R	#157-7132   158-7191  
PERCLR	= 001000	#4-198     #8-474      155-6876  
PGBTS 	= 000777	#228-10940  230-11092  231-11118  231-11122 
PHYS  	= 100000	#4-198     #8-474     
PI    	= 000004	 11-566     11-570    #199-9538   199-9546   199-9546  
PIDENT	= 000000	#4-198     #8-474     
PRI7  	= 000340	#4-198     #8-474     
PROPNT	= 000021	#4-198     #8-474     
PRTOFF	= 004000	#4-198     #8-474     
PR0   	= 000000	#4-198     #8-474     
PR1   	= 000040	#4-198     #8-474     
PR2   	= 000100	#4-198     #8-474     
PR3   	= 000140	#4-198     #8-474     
PR4   	= 000200	#4-198     #8-474     
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 13

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

PR5   	= 000240	#4-198     #8-474     
PR6   	= 000300	#4-198     #8-474     
PR7   	= 000340	#4-198     #8-474     
PS    	= 177776	#4-198     #8-474     
PSWW1 	= 000005	#4-198     #8-474     
PSWW10	= 000014	#4-198     #8-474     
PSWW11	= 000015	#4-198     #8-474     
PSWW12	= 000016	#4-198     #8-474     
PSWW13	= 000017	#4-198     #8-474     
PSWW2 	= 000006	#4-198     #8-474     
PSWW3 	= 000007	#4-198     #8-474     
PSWW4 	= 000010	#4-198     #8-474     
PSWW5 	= 000011	#4-198     #8-474     
PSWW6 	= 000012	#4-198     #8-474     
PSWW7 	= 000013	#4-198     #8-474     
PULSE 	= 000020	#4-198     #8-474     
QSIZE 	= 000023	#4-198     #8-474     
Q.IOAE	= 000012	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        #223-10657 #223-10658 #223-10659 #223-10660 
Q.IOEF	= 000006	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        #223-10657 #223-10658 #223-10659 #223-10660 
Q.IOFN	= 000002	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        #223-10657 #223-10658 #223-10659 #223-10660 
Q.IOLU	= 000004	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        *199-9480  *199-9484  #223-10657 #223-10658 #223-10659 #223-10660 *228-10903 *228-10905 
Q.IOPL	= 000014	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        *199-9477  #223-10657 #223-10658 #223-10659 #223-10660  224-10695  224-10696 *224-10698 *224-10699 
                        *224-10714 *224-10715 *224-10747 *224-10748 *226-10851 *226-10852 *227-10867 *227-10868  227-10876 
                         227-10877 *228-10898 *228-10899 
Q.IOPR	= 000007	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        #223-10657 #223-10658 #223-10659 #223-10660 
Q.IOSB	= 000010	#92-4303   #92-4304   #94-4390   #94-4391   #94-4392   #103-4723  #103-4724  #103-4725  #105-4811  
                        #105-4812  #105-4813  #105-4814  #107-4901  #107-4902  #107-4903  #107-4904  #121-5348  #190-8919  
                        #223-10657 #223-10658 #223-10659 #223-10660 
RAMIS0	= 010000	#4-198     #8-474     
RDATIM	  014706 RG	#151-6625  
RDDONE	= ******  GX	*84-3930   
RDMCV 	  001502 R	 62-2349    62-2349   #63-2383   
REDOSY	  030600 R	 229-11037  229-11037  230-11110  230-11110  231-11147  231-11147 #231-11150 
REPCON	= ******  GX	 172-7773   172-7773  
REPFIT	= ******  GX	 172-7820   172-7820  
RESDET	= ******  GX	 172-7772   172-7772   172-7793   172-7793   172-7811   172-7811   172-7818   172-7818  
RFMAD0	= 100000	#4-198     #8-474     
RFMAD1	= 040000	#4-198     #8-474     
RFMAD2	= 020000	#4-198     #8-474     
RFMAD3	= 010000	#4-198     #8-474     
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 14

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

RM    	= 000010	#4-198     #8-474     
RTFERR	  015126 R	 151-6666   151-6680  #152-6731   152-6768  
RTFERX	  015136 R	 151-6673   151-6719  #152-6736  
RTFXIT	  015142 R	 151-6638   151-6693   151-6700   151-6706   151-6715  #152-6738  
R$$11D	= 000001	#1-47      
SAVLEN	  002352 R	#223-10665 *224-10696  224-10748 
SAVMSG	  002350 R	#223-10664 *224-10695  224-10747 
SCD   	= 000040	#4-198     #8-474     
SECLK 	= 000003	#11-556    
SETIMF	  000264 R	#79-3547   *80-3593   *80-3601    80-3640    80-3676   
SETMMF	  000265 R	#79-3549   *81-3693   *81-3700    81-3741    81-3771   
SETMR 	= 000007	#11-559    
SETRUN	= 000011	#11-561    
SETZ  	= 000400	#55-1963    55-1975    55-1975   
SPC   	= 000040	#190-8903   199-9438  
SSCLK 	= 000002	#11-555    
STAT  	= 174434	#4-198     #8-474     
STATUS	= 000022	#4-198     #8-474     
STPCLK	= 000000	#11-553    
STPKL 	  031232 R	 236-11335  236-11335 #237-11358 
STRCLK	= 000001	#11-554    
SUBVER	  000110 R	#58-2166   *63-2407    67-2665   
SWITCH	  002176 R	#207-9944  *209-10057  209-10089 *209-10091 
SWR   	= 177570	#4-198     #8-474     
SWSLLT	= 100000	#4-198     #8-474     
SYFLUN	= 000006	#8-436      94-4390    94-4391    94-4392    103-4723   103-4725   105-4811   105-4812   107-4904  
                         156-7014  
SYILUN	= 000004	#8-434      92-4303    103-4722   103-4724   107-4901   114-5106   156-7010   157-7070   228-10948 
SYOLUN	= 000005	#8-435      92-4304    105-4810   105-4813   105-4814   107-4902   107-4903   120-5293   121-5348  
                         156-7012  
S.YIL 	= 001000  G	 114-5106  #194-9160   194-9166   194-9174   194-9182  
S.YOL 	= 001000  G	 106-4855   117-5204   120-5293   120-5300  #194-9176   194-9190  
TAB   	= 000011	#190-8904   199-9435  
TCAACD	  000077 R	#55-1985    57-2098   
TCAACE	  000026 R	#55-1983    57-2101   
TCACEF	  000000 R	#55-1982    56-2090   
TCASCE	  000051 R	#55-1984    57-2104   
TCBBAD	  000424 R	#58-2192    64-2476    65-2553   
TCBDCW	  000117 R	#58-2185    64-2472   
TCBDDW	  000151 R	#58-2186    65-2548   
TCBFXF	  000265 R	#58-2189    64-2468    65-2544   
TCBGOD	  000432 R	#58-2193    64-2480    65-2556   
TCBMLF	  000203 R	#58-2187    66-2634   
TCBMRE	  000446 R	#58-2195    60-2238   
TCBMVF	  000233 R	#58-2188    66-2637   
TCBMVL	  000314 R	#58-2190    67-2649   
TCBMVV	  000357 R	#58-2191    67-2651   
TCBXOR	  000440 R	#58-2194    64-2489    65-2565   
TCFCFA	  000536 R	#68-2749    70-3001   
TCFCFE	  000571 R	#68-2751    70-3020   
TDEDFU	  002154 R	#100-4612   101-4639  
TDEDR 	  001722 R	#100-4609   101-4630  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 15

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

TDEIO 	  002014 R	#100-4610   101-4643  
TDENSF	  002100 R	#100-4611   101-4635  
TDRRDE	  002201 R	#109-4967   114-5115  
TDRRLE	  002216 R	#109-4969   113-5084  
TDWRLE	  002270 R	#115-5157   117-5214  
TDWWRE	  002252 R	#115-5155   120-5309  
TENAD1	= 174410	#4-198     #8-474     
TENAD2	= 174412	#4-198     #8-474     
TFEDFL	  002325 R	#131-5859   132-5896  
TFEEFL	  002346 R	#131-5860   133-5944  
TFREMS	  002367 R	#135-6018   136-6053  
TFWEMS	  002410 R	#137-6096   138-6132  
TFXEMS	  002432 R	#140-6196   141-6230  
TGCNFL	  002456 R	#142-6272   143-6295  
TGMNFL	  002525 R	#145-6373   146-6404  
TGPNFL	  002575 R	#148-6504   149-6523  
TGTCKE	  002607 R	#150-6597   151-6718  
TGTIFF	  002677 R	#150-6601   151-6672  
TGTNFL	  002651 R	#150-6599   151-6637  
TGTRFE	  002741 R	#150-6603   152-6732  
TMFLNM	= ******  GX	 151-6627  
TMPLOG	  002342 R	#223-10662 
TMRMFL	  002777 R	#154-6855   155-6900  
TNINDV	  003025 R	#156-7016   157-7064  
TNIN55	  003052 R	#156-7018   157-7075  
TNIPRI	  003110 R	#156-7020   157-7090  
TNIVER	  003174 R	#156-7022   157-7097  
TOBM  	= 000004	#4-198     #8-474     
TOIP  	= 000002	#4-198     #8-474     
TOIT  	= 000001	#4-198     #8-474     
TO10  	= 000200	#4-198     #8-474     
TO10AD	= 174420	#4-198     #8-474     
TO10BC	= 174414	#4-198     #8-474     
TO10BM	= 000001	#4-198     #8-474     
TO10DB	= 000400	#4-198     #8-474     
TO10DN	= 100000	#4-198     #8-474     
TO10DT	= 174424	#4-198     #8-474     
TO10ER	= 020000	#4-198     #8-474     
TO11  	= 000100	#4-198     #8-474     
TO11AD	= 174422	#4-198     #8-474     
TO11BC	= 174416	#4-198     #8-474     
TO11BM	= 020000	#4-198     #8-474     
TO11DB	= 004000	#4-198     #8-474     
TO11DN	= 000200	#4-198     #8-474     
TO11DT	= 174426	#4-198     #8-474     
TO11ER	= 000002	#4-198     #8-474     
TQBNFL	  003363 R	#160-7256   163-7396  
TQBOOT	  003246 R	#160-7252   161-7287  
TQBWCF	  003320 R	#160-7254   162-7352  
TQCACH	  003421 R	#164-7472   165-7484  
TQCCEN	  003466 R	#164-7473   166-7512  
TQEXIT	  003532 R	#167-7581   168-7592  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 16

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

TQMCF0	  003556 R	#170-7675   171-7699  
TQMCF1	  003635 R	#170-7677   171-7702  
TQMNM0	  003722 R	#170-7679   172-7825  
TQMPCA	  003757 R	#170-7681   172-7807  
TQRLMC	  004172 R	#174-8004   175-8015  
TQSABO	  004712 R	#175-8186   176-8294  
TQSCAC	  004564 R	 175-8157  #175-8180  
TQSCDH	  004603 R	#175-8182   178-8395  
TQSCHN	  004531 R	 175-8156  #175-8178  
TQSDLG	  004240 R	#175-8162   176-8204  
TQSEXT	  004474 R	 175-8155  #175-8176  
TQSHRZ	  004337 R	#175-8168   178-8362  
TQSHWP	  004347 R	#175-8170   178-8364  
TQSKSN	  004301 R	#175-8164   178-8338  
TQSMCA	  004402 R	 175-8153  #175-8172  
TQSMDL	  004324 R	#175-8166   178-8342  
TQSMMA	  004745 R	#175-8188   178-8390  
TQSMMO	  004435 R	 175-8154  #175-8174  
TQSPT 	  004064 R	#174-7892   174-7905  
TQSWRN	  004657 R	#175-8184   176-8246   176-8286  
TROCT 	  026074 R	 208-9997   208-9997   208-10000  208-10000  208-10013  208-10013  208-10014  208-10014  209-10069 
                         209-10069  209-10084  209-10084 #210-10110 
TRSCEF	  005323 R	#183-8608   186-8766  
TRSCES	  005057 R	#183-8602   185-8678  
TRSDER	  005211 R	#183-8605   185-8664   185-8675   185-8686  
TRSFCF	  005267 R	#183-8607   186-8739  
TRSFCS	  005515 R	#183-8611   186-8793  
TRSFHL	  005400 R	#183-8609   186-8769  
TRSHLT	  005124 R	#183-8603   185-8681  
TRSPRF	  005023 R	#183-8601   184-8634  
TRSRSM	  005252 R	#183-8606   185-8698  
TRSSEF	  005444 R	#183-8610   186-8763   186-8774  
TRSTMO	  005155 R	#183-8604   185-8691  
TRTBTF	  005635 R	#190-8933   195-9313  
TRTEND	  005742 R	#190-8937   195-9331  
TRTFME	  005665 R	#190-8935   195-9326  
TRTMMF	  005577 R	#190-8931   195-9286  
TSTBSM	  005744 R	#199-9566   200-9657  
TTA   	  002210 R	 207-9948  #207-9949  
TTB   	  002214 R	 207-9947  #207-9950  
TTBEL 	  006005 R	#223-10671  225-10774 
TTILUN	= 000001	#8-431      156-7002   223-10657 
TTJ   	  002224 R	 207-9945  #207-9952  
TTOLUN	= 000002	#8-432      156-7004   199-9484   223-10658  228-10905 
TTP   	  002220 R	 207-9946  #207-9951  
TTSLS 	  006004 R	#223-10670 
TTSPC 	  006002 R	#223-10668  225-10769 
TTTAB 	  006003 R	#223-10669  225-10786 
TTTNLN	  006006 R	#223-10672  224-10714  225-10791 
TTTPR 	  000200 R	#58-2182    66-2617   
TTTPRE	  006014 R	#223-10674  226-10843 
TTTPRP	  006010 R	#223-10673  224-10698 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 17

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

TXBIMM	  006024 R	#228-10969  230-11109 
TXBOTH	  004165 R	#174-7895   174-7954  
TXCHLE	  006070 R	#232-11199  237-11398 
TXCSFL	  006120 R	#232-11201  234-11287 
TXPTS 	  004127 R	#174-7894   174-7950  
TYPNUM	= ******  GX	 78-3346    78-3362    80-3609    80-3611   *80-3642    81-3711   *81-3748    84-3884    84-3886   
                         84-3895    84-3902    85-3954    85-3959    86-4006    86-4011    173-7844  
T.TIL 	= 000040  G	#193-9122   193-9124   223-10657 
T.TOL 	= 000115  G	#193-9125   193-9127  
UEDIT 	  000112 R	#58-2167   *63-2403    67-2668   
UNASG1	= 000032	#4-198     #8-474     
UNASG2	= 000033	#4-198     #8-474     
UNASG3	= 000034	#4-198     #8-474     
UNASG4	= 000035	#4-198     #8-474     
UNASG5	= 000036	#4-198     #8-474     
UNASG6	= 000037	#4-198     #8-474     
WAIT1S	  023430 R	 184-8636   184-8636   185-8666   185-8666   185-8688   185-8688   186-8754   186-8754   186-8776  
                         186-8776  #188-8836   188-8842  
WEP   	= 000010	#4-198     #8-474     
W.10L 	= 000005	#6-325     
XCONMP	= ******  GX	 172-7802  
XCT   	= 000256	#190-8906   190-8915   190-8915  
XCT71 	  023554 RG	#195-9236  
ZSTOP 	= 040000	#4-198     #8-474     
$ACRAM	  012166 RG	 62-2354    62-2354    124-5436   124-5436   125-5504   125-5504  #126-5599  
$ADRAM	  012704 RG	 128-5681   128-5681   129-5733   129-5733  #130-5782  
$APRID	= 000000	#11-567    
$ASCIZ	  024240 RG	#198-9407   198-9409   226-10844  226-10844  226-10846  226-10846 
$BURST	  031612 RG	 54-1898    54-1898    237-11370  237-11370  238-11452 #239-11467 
$CD11 	= 000001	#1-39      
$CFGBT	  023714 RG	 162-7379   176-8288  #195-9292  
$CFGCA	  023640 RG	 165-7508   166-7542   166-7544  #195-9265  
$CFGMM	  020060 RG	 171-7764  #172-7782  
$CFGRM	  023626 RG	 175-8064  #195-9255  
$CFGXX	  020232 RG	 78-3269    78-3440   #172-7815  
$CFIMD	  004232 RG	#78-3274    78-3502    173-7851  
$CFMMD	  004200 RG	#78-3259    173-7857  
$CFXMD	  006544 RG	#91-4189    173-7854  
$CHKIM	  005064 RG	 78-3426    78-3426   #80-3600   
$CHKMM	  005310 RG	 78-3431    78-3431   #81-3699   
$CLLOG	= ******  GX	 62-2359    62-2359    66-2633    66-2633    227-10882  227-10882 
$CLOSE	  007056 RG	 62-2306    62-2306    62-2358    62-2358    70-2994    70-2994   #93-4325    143-6313   143-6313  
                         143-6326   146-6421   146-6421   146-6457   149-6542   149-6542   149-6552   151-6725   152-6737  
                         152-6737   163-7408   163-7408   163-7433   230-11107  230-11107 
$CONFG	  005514 RG	#83-3839    172-7816   172-7816  
$DBDTE	= 000001	#1-45      
$DDFRD	  013440 RG	#136-6034  
$DDFWR	  013552 RG	#138-6111  
$DDFXC	  013754 RG	#141-6210  
$DELET	  007214 RG	 70-2999    70-2999   #98-4527   
$DFPC 	  016134 RG	#158-7157  
$DFRD 	  013444 RG	 54-1903    54-1903    125-5514   125-5514   125-5569   125-5569   129-5740   129-5740   129-5748  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 18

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         129-5748   129-5761   129-5761  #136-6037   155-6890   155-6890   158-7172   158-7172   181-8501  
                         181-8501   230-11103  230-11103  238-11422  238-11422  238-11427  238-11427  238-11432  238-11432 
                         238-11447  238-11447 
$DFWR 	  013556 RG	 54-1918    54-1918    124-5475   124-5475   124-5486   126-5606   126-5606   126-5614   126-5614  
                         128-5713   130-5810   130-5810  #138-6114   155-6917   155-6917   187-8819   187-8819   187-8822  
                         187-8822   200-9640   200-9640   200-9644   200-9644   236-11341  239-11478  239-11478  239-11481 
                         239-11481  239-11494  239-11494  239-11500  239-11500 
$DFXC 	  013760 RG	 54-1895    54-1895    54-1908    54-1908    54-1914    54-1914    54-1921    62-2357    62-2357   
                         125-5507   125-5507   129-5736   129-5736   130-5813   134-5969   134-5969   139-6154   139-6154  
                        #141-6213   155-6871   155-6871   155-6895   155-6895   155-6907   155-6907   155-6930   155-6930  
                         180-8456   180-8456   181-8493   181-8493   181-8495   181-8495   182-8531   182-8531   182-8534  
                         182-8534   187-8824   195-9241   195-9241   195-9244   195-9244   200-9647   200-9647   233-11225 
                         233-11225  233-11228  233-11228  234-11263  234-11263  234-11266  234-11266  234-11271  234-11271 
                         234-11284  237-11362  237-11362  237-11382  237-11382  237-11389  237-11389  237-11392  237-11392 
                         238-11438  238-11438  239-11470  239-11470  239-11484  239-11484  239-11503 
$DH11 	= 000001	#1-43      
$DLGBT	  016334 RG	#161-7280   162-7362   195-9280  
$DLGBV	  023670 RG	 171-7750  #195-9279  
$DLGCA	  017066 RG	#165-7478   166-7523   175-8047   195-9260  
$DLGCT	  020320 RG	 172-7774   172-7814  #173-7840  
$DLGCV	  023634 RG	 171-7730  #195-9259  
$DLGEN	  021170 RG	 168-7610   174-7968   175-8036  #176-8195   195-9250   195-9317  
$DLGEX	  017422 RG	 162-7376  #168-7587   195-9309  
$DLGIM	  020344 RG	#173-7850   173-7870   173-7872  
$DLGMB	  020360 RG	 78-3308   #173-7859   173-7873  
$DLGMF	  020354 RG	 91-4264   #173-7856  
$DLGMM	  017556 RG	 165-7504  #171-7687   173-7860   195-9275   195-9337  
$DLGMV	  023662 RG	 161-7300  #195-9274  
$DLGMX	  023666 RG	 172-7832  #195-9277  
$DLGPA	  020410 RG	#174-7898   175-8034   176-8250  
$DLGRM	  020700 RG	 165-7501   174-7963  #175-8009   176-8252   195-9283  
$DLGRV	  023674 RG	 171-7733  #195-9282  
$DLGXM	  020350 RG	 78-3279    78-3499   #173-7853   173-7867  
$DLMB1	  020364 RG	 78-3311   #173-7865  
$DLMB2	  020372 RG	 91-4215   #173-7868  
$DLWCF	  016530 RG	 161-7323  #162-7347   168-7607  
$DPOS 	  013074 RG	 52-1832    52-1832    53-1864    53-1864    56-2074    56-2074    132-5879   132-5879  #132-5883  
                         200-9634   200-9634   230-11096  230-11096  231-11127  231-11127  231-11139  231-11139 
$DPOST	  013056 RG	#132-5875   186-8744   186-8744   186-8751   186-8751  
$DSPPT	  020040 RG	 171-7756  #172-7770  
$DSW  	= ******  GX	 101-4632   106-4860  *106-4862   139-6149   188-8839  
$DTA  	= 000001	#1-55       228-10950  229-11048 
$DTE  	= 000001	#1-46      
$DTRWS	  024132 RG	 155-6878   155-6878  #196-9365  
$DTRW1	  024114 RG	 134-5972   134-5972   185-8676   185-8676   186-8764   186-8764  #196-9357   234-11273  234-11273 
                         235-11310  235-11310  237-11372  237-11372 
$DTRW2	  024122 RG	 155-6874   155-6874  #196-9361  
$DTRW3	  024142 RG	#196-9369  
$ECHO 	  030004 RG	 224-10712  224-10712 #228-10897 
$ECHO1	  030020 RG	 224-10702  224-10702  224-10718  224-10718  224-10749  224-10749  227-10871  227-10871 #228-10900 
$ENTER	  007734 RG	 70-2884    70-2884   #106-4834  
$ERROR	  024012 RG	 84-3943    85-3978    86-4046    161-7330   172-7835   185-8695   195-9257   195-9269   195-9272  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 19

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         195-9287   195-9298   195-9302  #195-9315   195-9321   200-9663   224-10762 
$EXAM 	  013224 RG	 133-5918   133-5918   133-5923   133-5923  #133-5930  
$EXAMD	  013214 RG	#133-5922  
$EXAMT	  013176 RG	#133-5914  
$EXBLD	  030052 RG	 195-9305   195-9305  #229-11010 
$EXCT 	  030636 RG	 89-4129    89-4129    89-4132    89-4132    187-8814   187-8814   195-9238   195-9238   200-9597  
                         200-9597   200-9606   200-9606   229-11034  229-11034 #233-11219 
$EXIT 	  024022 RG	 157-7091   168-7620   176-8300   185-8699   195-9308  #195-9319  
$EXIT1	  024030 RG	 186-8784   186-8794   195-9231   195-9247  #195-9322   200-9666  
$EXTEN	  011242 RG	 120-5305   120-5305  #122-5361  
$FATAL	  024036 RG	#195-9325  
$FE   	= 000001	#1-41      
$FILE 	  003036 RG	#70-2856    184-8631   184-8631   185-8662   185-8662   195-9320   195-9320   200-9589   200-9589  
$F11  	= 000001	#1-42      
$GETCA	  014112 RG	#143-6288   195-9268   195-9268   195-9297   195-9297  
$GETMM	  014312 RG	#146-6389   172-7785   172-7785  
$GETPA	  014562 RG	#149-6517   174-7935   174-7935  
$GETTF	  014706 RG	#151-6624  
$INIT 	  015564 RG	#157-7031   195-9233   195-9233  
$IOERR	  007346 RG	 60-2260    60-2260    93-4353    98-4543   #101-4628   104-4773   106-4863   122-5370   151-6641  
                         229-11056 
$KLMR 	  015232 RG	 60-2254    60-2254    134-5966   134-5966   139-6151  #155-6868   179-8437   179-8437   181-8479  
                         181-8479   187-8806   187-8806   237-11379  237-11379 
$KLSR 	  015504 RG	 126-5601   126-5601   130-5806   130-5806  #155-6925  
$LDAR 	  031176 RG	 54-1892    54-1892    182-8528   182-8528   233-11222  233-11222  234-11260  234-11260 #236-11333 
$LDNGO	  000000 RG	#52-1815    56-2002    56-2002   
$LGERR	  000054 RG	#191-9015   227-10880 
$LGOPN	  000056 RG	#191-9017   227-10873 
$LOG  	  000052 RG	#191-9013  
$LOOKU	  007562 RG	 60-2249    60-2249    62-2294    62-2294    70-2877    70-2877   #104-4746   143-6291   143-6291  
                         146-6400   146-6400   149-6519   149-6519   151-6633   151-6633   163-7387   163-7387   229-11027 
                         229-11027  229-11054  229-11054 
$LP20 	= 000001	#1-37      
$MAPMM	  006436 RG	 86-4018    86-4018   #87-4051   
$MBPHS	  031444 RG	 236-11337  236-11337 #238-11416 
$MCBLD	  001066 RG	#60-2233    195-9256   195-9256  
$OPLOG	= ******  GX	 64-2465    64-2465    65-2541    65-2541   
$POWER	  022540 RG	 168-7623  #184-8631  
$PURGE	  010124 RG	 62-2326    62-2326    66-2639    66-2639    70-3018    70-3018   #108-4916   143-6327   143-6327  
                         146-6460   146-6460   149-6554   149-6554   163-7436   163-7436   195-9312   195-9312  
$RCRAM	  011564 RG	 63-2387    63-2387    64-2445    64-2445   #125-5502   181-8483   181-8483  
$RDERA	= 000000	#11-569    
$RDRAM	  012474 RG	 65-2522    65-2522   #129-5728  
$READ 	  010474 RG	 104-4763   111-5016   111-5016   112-5048   112-5048   113-5074   113-5074  #114-5100  
$READB	  010420 RG	 62-2313    62-2313    70-2920    70-2920   #113-5069   143-6315   143-6315   143-6321   143-6321  
                         146-6428   146-6428   146-6431   146-6431   152-6767   152-6767   163-7417   163-7417   163-7420  
                         163-7420   229-11067  229-11067 
$READC	  010216 RG	 62-2299    62-2299    62-2341    62-2341    70-2892    70-2892   #110-4987   143-6307   143-6307  
                         146-6416   146-6416   146-6452   146-6452   149-6536   149-6536   151-6664   151-6664   163-7402  
                         163-7402   230-11078  230-11078 
$READS	  010254 RG	 62-2309    62-2309    70-2954    70-2954   #111-5012   111-5017   143-6305   143-6305   146-6413  
                         146-6413   146-6449   146-6449   149-6533   149-6533   151-6679   151-6679   163-7412   163-7412  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 20

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

$READW	  010324 RG	 61-2278    61-2278    62-2320    62-2320    110-4992   110-4992   110-4996  #112-5037   146-6434  
                         146-6434   149-6549   149-6549   163-7427   163-7427   230-11081  230-11081 
$RP04 	= 000001	#1-40      
$RSAVE	  024204 RG	 52-1815    53-1852    54-1890    63-2383    66-2590    101-4628   124-5433   125-5502   128-5675  
                         129-5728   130-5782   132-5884   133-5931   151-6626   155-6868   158-7158  #197-9389   199-9429  
                         208-9990   209-10050  224-10693  226-10821  226-10838  233-11220  234-11252  236-11334  238-11417 
                         239-11467 
$RSTRT	  022622 RG	 168-7627  #185-8660  
$SBDIA	= 000002	#11-565    
$SETCA	  000356 RG	#56-2001    195-9271   195-9271   195-9301   195-9301  
$SETFN	  007304 RG	 98-4527    98-4527    98-4536    98-4536   #99-4563    104-4746   104-4746   104-4766   104-4766  
                         106-4834   106-4834   108-4926   108-4926  
$SETIM	  005056 RG	#80-3592    84-3890    84-3890    84-3912    84-3912   
$SETMM	  005302 RG	#81-3692    86-4026    86-4026   
$START	  023516 RG	#195-9227   240-11509 
$STRKL	  030726 RG	 52-1838    184-8641   184-8641   185-8671   185-8671   186-8759   186-8759   200-9654   200-9654  
                        #234-11251 
$SWEEP	  006502 RG	#89-4124    229-11017  229-11017 
$TCRLF	  027530 RG	 66-2626    66-2626    78-3370    78-3370    174-7961   174-7961   178-8380   178-8380   195-9334  
                         195-9334  #225-10789 
$TDB2C	  026466 RG	 205-9833  #218-10406 
$TDB2I	  025264 RG	 174-7959   174-7959   178-8341   178-8341   178-8361   178-8361  #205-9828  
$TDB2O	  026450 RG	 78-3367    78-3367   #218-10401 
$TDI2B	  025402 RG	#206-9877  
$TENST	  024524 RG	#200-9588   230-11108 
$TENS1	  024532 RG	 162-7375   162-7375  #200-9591  
$TOP10	= 000001	#1-35       1-53       3-176      3-180      168-7615   168-7625   191-9031  
$TOP20	= ******	 1-61       3-176      3-184     
$TRACK	  024252 RG	 124-5434   125-5503   126-5600   128-5676   129-5729   130-5783   132-5893   133-5936   136-6042  
                         138-6130   141-6226   155-6869   155-6926  #199-9428   233-11221  234-11253  235-11306  237-11359 
$TRB2F	  025044 RG	 101-4656   101-4656  #202-9717  
$TRB2I	  025306 RG	 205-9832   205-9832  #205-9836   206-9881   206-9881  
$TRB2O	  026500 RG	 66-2597    66-2597    67-2659    67-2659    67-2666    67-2666    67-2669    67-2669    101-4648  
                         101-4648   199-9444   199-9444   202-9735   202-9735   218-10405  218-10405 #218-10411 
$TRB2R	  026744 RG	 202-9725   202-9725   202-9727   202-9727   202-9729   202-9729   202-9732   202-9732  #222-10575 
$TRCRM	  025512 RG	 66-2625    66-2625   #208-9989  
$TRDRM	  025656 RG	 66-2623    66-2623   #209-10049 
$TRF2B	  025146 RG	 151-6631   151-6631   161-7316   161-7316   175-8058   175-8058   176-8267   176-8267  #203-9754  
$TRI2B	  025424 RG	 78-3481    78-3481    91-4239    91-4239    166-7524   166-7524   174-7919   174-7919  #206-9885  
$TRO2B	  026562 RG	 78-3409    78-3409    203-9777   203-9777  #219-10462 
$TRR2B	  026636 RG	 203-9759   203-9759   203-9761   203-9761   203-9763   203-9763   203-9770   203-9770  #221-10532 
$TTBEL	  027510 RG	#225-10772 
$TTDMS	  027566 RG	 66-2618    66-2618    66-2620    66-2620    78-3365    78-3365    78-3369    78-3369    174-7951  
                         174-7951   174-7955   174-7955   178-8339   178-8339   178-8343   178-8343   178-8363   178-8363  
                         178-8375   178-8375   195-9327   195-9327   209-10065  209-10065 #226-10820 
$TTDWR	  027700 RG	 214-10246  214-10246  215-10274  215-10274  218-10407  218-10407  226-10826 #226-10849 
$TTMSG	  027634 RG	 56-2090    57-2118    60-2238    64-2469    64-2469    65-2545    65-2545    66-2599    66-2638   
                         67-2674    70-3001    70-3020    78-3293    78-3293    78-3317    78-3446    78-3473    78-3505   
                         80-3613    80-3658    81-3713    81-3760    84-3936    85-3974    86-4000    86-4038    91-4194   
                         91-4200    91-4211    91-4229    91-4254    91-4258    101-4664   113-5084   114-5115   117-5214  
                         120-5309   132-5896   133-5944   136-6053   138-6132   141-6230   143-6295   146-6404   149-6523  
                         151-6637   151-6672   151-6718   152-6732   155-6900   157-7064   157-7075   157-7090   157-7097  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 21

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         158-7191   161-7287   161-7326   162-7352   162-7363   163-7396   165-7484   165-7499   166-7512  
                         166-7545   168-7592   168-7603   171-7704   171-7704   171-7723   172-7807   172-7825   174-7905  
                         174-7965   175-8015   175-8030   176-8204   176-8221   176-8246   176-8286   176-8294   178-8364  
                         178-8390   178-8395   185-8693   185-8698   186-8786   186-8793   195-9286   195-9313   200-9657  
                        #226-10837  230-11109  234-11287  237-11398 
$TTRD 	  027130 RG	 78-3294    78-3294    78-3371    78-3371    78-3474    78-3474    91-4201    91-4201    91-4230   
                         91-4230    161-7288   161-7288   162-7353   162-7353   165-7485   165-7485   166-7513   166-7513  
                         168-7593   168-7593   171-7705   171-7705   174-7906   174-7906   175-8016   175-8016   176-8205  
                         176-8205   206-9880   206-9880  #224-10693 
$TTSPC	  027500 RG	 178-8355   178-8355  #225-10767 
$TTTAB	  027520 RG	#225-10784 
$TTWR 	  027714 RG	 178-8351   178-8351   178-8353   178-8353   195-9330   195-9330   195-9333   195-9333   208-10005 
                         208-10005  208-10017  208-10017  209-10072  209-10072  209-10088  209-10088  225-10799  225-10799 
                        #227-10867 
$T1091	= ******	 1-49       1-54      
$WCRAM	  011304 RG	 64-2434    64-2434    64-2455    64-2455    64-2496    64-2496   #124-5433   181-8490   181-8490  
                         181-8505  
$WDD22	  026124 RG	#214-10241 
$WDD36	  026236 RG	#215-10269 
$WDRAM	  012314 RG	 65-2518    65-2518    65-2572    65-2572   #128-5675  
$WRD22	  026154 RG	 199-9457   199-9457   214-10245  214-10245 #214-10250 
$WRD36	  026266 RG	 199-9472   199-9472   215-10273  215-10273 #215-10278 
$WRITB	  011032 RG	 70-2922    70-2922    71-3051    71-3051    71-3054    71-3054    73-3102    73-3102    73-3105   
                         73-3105    74-3137    74-3137    74-3144    74-3144    75-3165    75-3165    117-5208   117-5208  
                        #119-5264  
$WRITC	  010624 RG	 70-2912    70-2912    71-3045    71-3045    72-3076    72-3076    73-3096    73-3096    74-3131   
                         74-3131    75-3159    75-3159    76-3185    76-3185   #116-5174  
$WRITE	  011072 RG	 118-5242   118-5242   119-5269   119-5269  #120-5292   120-5306  
$WRITS	  010666 RG	 93-4341    93-4341   #117-5200  
$WRITW	  010736 RG	 70-2915    70-2915    71-3048    71-3048    71-3062    71-3062    72-3079    73-3099    73-3099   
                         73-3110    73-3110    74-3134    74-3134    75-3162    75-3162    75-3171    75-3171    76-3188   
                         76-3188    76-3191    76-3191    116-5182   116-5182  #118-5231  
$WRMRS	  023022 RG	 185-8661   185-8661  #186-8732   195-9304   195-9304  
$WTKL 	  031116 RG	 233-11231 #235-11305  237-11365  237-11365  237-11385  237-11385 
$XCDT 	  000206 RG	 52-1825    52-1825    53-1858    53-1858   #54-1890   
$ZERAC	  000112 RG	#53-1852    184-8633   184-8633   200-9592   200-9592  
$$    	= 000037	#52-1825    52-1825   #52-1832    52-1832   #53-1858    53-1858   #53-1864    53-1864   #54-1892   
                         54-1892   #54-1895    54-1895   #54-1898    54-1898   #54-1903    54-1903   #54-1908    54-1908   
                        #54-1914    54-1914   #54-1918    54-1918   #56-2002    56-2002   #56-2074    56-2074   #60-2236   
                         60-2236   #60-2249    60-2249   #60-2254    60-2254   #60-2260    60-2260   #61-2278    61-2278   
                        #62-2294    62-2294   #62-2299    62-2299   #62-2306    62-2306   #62-2309    62-2309   #62-2313   
                         62-2313   #62-2320    62-2320   #62-2326    62-2326   #62-2341    62-2341   #62-2349    62-2349   
                        #62-2354    62-2354   #62-2357    62-2357   #62-2358    62-2358   #62-2359    62-2359   #63-2387   
                         63-2387   #64-2434    64-2434   #64-2439    64-2439   #64-2445    64-2445   #64-2455    64-2455   
                        #64-2465    64-2465   #64-2469    64-2469   #64-2473    64-2473   #64-2478    64-2478   #64-2481   
                         64-2481   #64-2491    64-2491   #64-2496    64-2496   #65-2512    65-2512   #65-2518    65-2518   
                        #65-2522    65-2522   #65-2541    65-2541   #65-2545    65-2545   #65-2549    65-2549   #65-2554   
                         65-2554   #65-2557    65-2557   #65-2567    65-2567   #65-2572    65-2572   #66-2597    66-2597   
                        #66-2618    66-2618   #66-2620    66-2620   #66-2623    66-2623   #66-2625    66-2625   #66-2626   
                         66-2626   #66-2633    66-2633   #66-2639    66-2639   #67-2659    67-2659   #67-2666    67-2666   
                        #67-2669    67-2669   #70-2877    70-2877   #70-2884    70-2884   #70-2892    70-2892   #70-2912   
                         70-2912   #70-2915    70-2915   #70-2920    70-2920   #70-2922    70-2922   #70-2954    70-2954   
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 22

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                        #70-2965    70-2965   #70-2974    70-2974   #70-2979    70-2979   #70-2984    70-2984   #70-2989   
                         70-2989   #70-2992    70-2992   #70-2994    70-2994   #70-2999    70-2999   #70-3018    70-3018   
                        #71-3045    71-3045   #71-3048    71-3048   #71-3051    71-3051   #71-3054    71-3054   #71-3062   
                         71-3062   #72-3076    72-3076   #73-3096    73-3096   #73-3099    73-3099   #73-3102    73-3102   
                        #73-3105    73-3105   #73-3110    73-3110   #74-3131    74-3131   #74-3134    74-3134   #74-3137   
                         74-3137   #74-3144    74-3144   #75-3159    75-3159   #75-3162    75-3162   #75-3165    75-3165   
                        #75-3171    75-3171   #76-3185    76-3185   #76-3188    76-3188   #76-3191    76-3191   #78-3293   
                         78-3293   #78-3294    78-3294   #78-3365    78-3365   #78-3367    78-3367   #78-3369    78-3369   
                        #78-3370    78-3370   #78-3371    78-3371   #78-3409    78-3409   #78-3426    78-3426   #78-3431   
                         78-3431   #78-3474    78-3474   #78-3481    78-3481   #81-3720    81-3720   #83-3846    83-3846   
                        #83-3851    83-3851   #83-3857    83-3857   #84-3888    84-3888   #84-3890    84-3890   #84-3898   
                         84-3898   #84-3904    84-3904   #84-3912    84-3912   #84-3916    84-3916   #86-4014    86-4014   
                        #86-4018    86-4018   #86-4026    86-4026   #86-4028    86-4028   #87-4057    87-4057   #89-4129   
                         89-4129   #89-4132    89-4132   #91-4201    91-4201   #91-4230    91-4230   #91-4239    91-4239   
                        #93-4341    93-4341   #98-4527    98-4527   #98-4536    98-4536   #101-4648   101-4648  #101-4656  
                         101-4656  #101-4663   101-4663  #104-4746   104-4746  #104-4766   104-4766  #106-4834   106-4834  
                        #108-4926   108-4926  #110-4992   110-4992  #111-5016   111-5016  #112-5048   112-5048  #113-5074  
                         113-5074  #116-5182   116-5182  #117-5208   117-5208  #118-5242   118-5242  #119-5269   119-5269  
                        #120-5305   120-5305  #124-5436   124-5436  #124-5475   124-5475  #125-5504   125-5504  #125-5507  
                         125-5507  #125-5514   125-5514  #125-5569   125-5569  #126-5601   126-5601  #126-5604   126-5604  
                        #126-5606   126-5606  #126-5612   126-5612  #126-5614   126-5614  #128-5681   128-5681  #128-5684  
                         128-5684  #128-5687   128-5687  #128-5706   128-5706  #129-5733   129-5733  #129-5736   129-5736  
                        #129-5740   129-5740  #129-5748   129-5748  #129-5761   129-5761  #130-5806   130-5806  #130-5810  
                         130-5810  #132-5879   132-5879  #132-5885   132-5885  #132-5886   132-5886  #133-5918   133-5918  
                        #133-5923   133-5923  #133-5932   133-5932  #133-5933   133-5933  #134-5966   134-5966  #134-5969  
                         134-5969  #134-5972   134-5972  #138-6116   138-6116  #139-6154   139-6154  #143-6291   143-6291  
                        #143-6305   143-6305  #143-6307   143-6307  #143-6313   143-6313  #143-6315   143-6315  #143-6321  
                         143-6321  #143-6327   143-6327  #146-6400   146-6400  #146-6413   146-6413  #146-6416   146-6416  
                        #146-6421   146-6421  #146-6428   146-6428  #146-6431   146-6431  #146-6434   146-6434  #146-6449  
                         146-6449  #146-6452   146-6452  #146-6460   146-6460  #149-6519   149-6519  #149-6533   149-6533  
                        #149-6536   149-6536  #149-6542   149-6542  #149-6549   149-6549  #149-6554   149-6554  #151-6626  
                         151-6626  #151-6631   151-6631  #151-6633   151-6633  #151-6664   151-6664  #151-6679   151-6679  
                        #151-6692   151-6692  #151-6699   151-6699  #151-6705   151-6705  #151-6714   151-6714  #152-6737  
                         152-6737  #152-6767   152-6767  #155-6871   155-6871  #155-6874   155-6874  #155-6878   155-6878  
                        #155-6885   155-6885  #155-6890   155-6890  #155-6895   155-6895  #155-6898   155-6898  #155-6907  
                         155-6907  #155-6917   155-6917  #155-6930   155-6930  #158-7158   158-7158  #158-7172   158-7172  
                        #158-7179   158-7179  #161-7288   161-7288  #161-7303   161-7303  #161-7316   161-7316  #162-7353  
                         162-7353  #162-7375   162-7375  #163-7387   163-7387  #163-7402   163-7402  #163-7408   163-7408  
                        #163-7412   163-7412  #163-7417   163-7417  #163-7420   163-7420  #163-7427   163-7427  #163-7436  
                         163-7436  #165-7485   165-7485  #166-7513   166-7513  #166-7524   166-7524  #168-7593   168-7593  
                        #171-7690   171-7690  #171-7704   171-7704  #171-7705   171-7705  #172-7772   172-7772  #172-7773  
                         172-7773  #172-7785   172-7785  #172-7793   172-7793  #172-7811   172-7811  #172-7816   172-7816  
                        #172-7818   172-7818  #172-7819   172-7819  #172-7820   172-7820  #172-7829   172-7829  #174-7906  
                         174-7906  #174-7919   174-7919  #174-7935   174-7935  #174-7946   174-7946  #174-7951   174-7951  
                        #174-7955   174-7955  #174-7959   174-7959  #174-7961   174-7961  #175-8016   175-8016  #175-8052  
                         175-8052  #175-8058   175-8058  #176-8205   176-8205  #176-8237   176-8237  #176-8242   176-8242  
                        #176-8261   176-8261  #176-8267   176-8267  #176-8274   176-8274  #176-8275   176-8275  #176-8276  
                         176-8276  #176-8277   176-8277  #176-8279   176-8279  #176-8283   176-8283  #178-8327   178-8327  
                        #178-8331   178-8331  #178-8339   178-8339  #178-8341   178-8341  #178-8343   178-8343  #178-8351  
                         178-8351  #178-8353   178-8353  #178-8355   178-8355  #178-8361   178-8361  #178-8363   178-8363  
                        #178-8375   178-8375  #178-8380   178-8380  #179-8409   179-8409  #179-8437   179-8437  #180-8454  
                         180-8454  #180-8456   180-8456  #181-8479   181-8479  #181-8483   181-8483  #181-8490   181-8490  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 23

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                        #181-8493   181-8493  #181-8495   181-8495  #181-8501   181-8501  #182-8528   182-8528  #182-8531  
                         182-8531  #182-8534   182-8534  #184-8631   184-8631  #184-8633   184-8633  #184-8635   184-8635  
                        #184-8636   184-8636  #184-8639   184-8639  #184-8641   184-8641  #185-8661   185-8661  #185-8662  
                         185-8662  #185-8665   185-8665  #185-8666   185-8666  #185-8669   185-8669  #185-8671   185-8671  
                        #185-8676   185-8676  #185-8688   185-8688  #186-8744   186-8744  #186-8751   186-8751  #186-8753  
                         186-8753  #186-8754   186-8754  #186-8757   186-8757  #186-8759   186-8759  #186-8764   186-8764  
                        #186-8776   186-8776  #186-8782   186-8782  #187-8806   187-8806  #187-8814   187-8814  #187-8819  
                         187-8819  #187-8822   187-8822  #195-9233   195-9233  #195-9238   195-9238  #195-9241   195-9241  
                        #195-9244   195-9244  #195-9256   195-9256  #195-9268   195-9268  #195-9271   195-9271  #195-9297  
                         195-9297  #195-9301   195-9301  #195-9304   195-9304  #195-9305   195-9305  #195-9312   195-9312  
                        #195-9320   195-9320  #195-9327   195-9327  #195-9330   195-9330  #195-9333   195-9333  #195-9334  
                         195-9334  #199-9444   199-9444  #199-9457   199-9457  #199-9472   199-9472  #200-9589   200-9589  
                        #200-9592   200-9592  #200-9597   200-9597  #200-9606   200-9606  #200-9634   200-9634  #200-9640  
                         200-9640  #200-9644   200-9644  #200-9647   200-9647  #200-9654   200-9654  #200-9658   200-9658  
                        #202-9725   202-9725  #202-9727   202-9727  #202-9729   202-9729  #202-9732   202-9732  #202-9735  
                         202-9735  #203-9759   203-9759  #203-9761   203-9761  #203-9763   203-9763  #203-9770   203-9770  
                        #203-9777   203-9777  #205-9832   205-9832  #206-9880   206-9880  #206-9881   206-9881  #208-9990  
                         208-9990  #208-9997   208-9997  #208-10000  208-10000 #208-10005  208-10005 #208-10013  208-10013 
                        #208-10014  208-10014 #208-10017  208-10017 #209-10050  209-10050 #209-10065  209-10065 #209-10069 
                         209-10069 #209-10072  209-10072 #209-10084  209-10084 #209-10088  209-10088 #214-10245  214-10245 
                        #214-10246  214-10246 #214-10252  214-10252 #214-10256  214-10256 #214-10258  214-10258 #215-10273 
                         215-10273 #215-10274  215-10274 #215-10280  215-10280 #215-10283  215-10283 #215-10285  215-10285 
                        #215-10290  215-10290 #215-10292  215-10292 #218-10405  218-10405 #218-10407  218-10407 #224-10702 
                         224-10702 #224-10712  224-10712 #224-10718  224-10718 #224-10749  224-10749 #225-10799  225-10799 
                        #226-10821  226-10821 #226-10844  226-10844 #226-10846  226-10846 #227-10871  227-10871 #227-10878 
                         227-10878 #227-10882  227-10882 #229-11017  229-11017 #229-11027  229-11027 #229-11034  229-11034 
                        #229-11037  229-11037 #229-11054  229-11054 #229-11067  229-11067 #230-11078  230-11078 #230-11081 
                         230-11081 #230-11096  230-11096 #230-11103  230-11103 #230-11107  230-11107 #230-11110  230-11110 
                        #231-11127  231-11127 #231-11135  231-11135 #231-11139  231-11139 #231-11147  231-11147 #233-11222 
                         233-11222 #233-11225  233-11225 #233-11228  233-11228 #234-11260  234-11260 #234-11263  234-11263 
                        #234-11266  234-11266 #234-11271  234-11271 #234-11273  234-11273 #235-11310  235-11310 #236-11335 
                         236-11335 #236-11337  236-11337 #237-11362  237-11362 #237-11365  237-11365 #237-11370  237-11370 
                        #237-11372  237-11372 #237-11379  237-11379 #237-11382  237-11382 #237-11385  237-11385 #237-11389 
                         237-11389 #237-11392  237-11392 #238-11422  238-11422 #238-11427  238-11427 #238-11432  238-11432 
                        #238-11438  238-11438 #238-11447  238-11447 #239-11470  239-11470 #239-11478  239-11478 #239-11481 
                         239-11481 #239-11484  239-11484 #239-11494  239-11494 #239-11500  239-11500 
$$APRI	= 000000	#11-568    
$$RDER	= 000004	#11-570    
$$SBDI	= 000004	#11-566    
$$$ARG	= 000006	#92-4303    92-4303   #92-4304    92-4304   #92-4304    92-4304   #92-4304    92-4304   #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-4391    94-4391   #94-4391    94-4391   #94-4392   
                         94-4392   #94-4392    94-4392   #94-4392    94-4392   #94-4392    94-4392   #94-4392    94-4392   
                        #94-4392    94-4392   #94-4392    94-4392   #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-4724   103-4724  #103-4724   103-4724  #103-4724   103-4724  #103-4724   103-4724  #103-4724  
                         103-4724  #103-4724   103-4724  #103-4725   103-4725  #103-4725   103-4725  #103-4725   103-4725  
                        #103-4725   103-4725  #103-4725   103-4725  #103-4725   103-4725  #103-4725   103-4725  #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-4813   105-4813  #105-4813   105-4813  
                        #105-4813   105-4813  #105-4813   105-4813  #105-4813   105-4813  #105-4813   105-4813  #105-4814  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 24

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         105-4814  #107-4901   107-4901  #107-4902   107-4902  #107-4903   107-4903  #107-4904   107-4904  
                        #107-4904   107-4904  #107-4904   107-4904  #107-4904   107-4904  #107-4904   107-4904  #107-4904  
                         107-4904  #107-4904   107-4904  #114-5106   114-5106   114-5106   114-5106   114-5106   114-5106  
                         114-5106   114-5106   114-5106   114-5106   114-5106   114-5106  #120-5293   120-5293   120-5293  
                         120-5293   120-5293   120-5293   120-5293   120-5293   120-5293   120-5293   120-5293   120-5293  
                        #121-5348   121-5348  #121-5348   121-5348  #121-5348   121-5348  #121-5348   121-5348  #121-5348  
                         121-5348  #156-7002   156-7002  #156-7002   156-7002  #156-7002   156-7002  #156-7004   156-7004  
                        #156-7004   156-7004  #156-7004   156-7004  #156-7007   156-7007  #156-7007   156-7007  #156-7007  
                         156-7007  #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-7014   156-7014  #156-7014   156-7014  #156-7014  
                         156-7014  #157-7070   157-7070   157-7070   157-7070   157-7070   157-7070   157-7070   157-7070  
                         157-7070   157-7070   157-7070   157-7070  #188-8837   188-8837   188-8837   188-8837   188-8837  
                         188-8837   188-8837   188-8837   188-8837   188-8837   188-8837  #190-8919   190-8919  #190-8919  
                         190-8919  #190-8919   190-8919  #190-8919   190-8919  #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-10659  223-10659 #223-10660  223-10660 
$$$GLB	= ******	 92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4304   
                         92-4304    92-4304    92-4304    92-4304    92-4304    92-4304    92-4304    94-4390    94-4390   
                         94-4390    94-4390    94-4390    94-4390    94-4390    94-4390    94-4391    94-4391    94-4391   
                         94-4391    94-4391    94-4391    94-4391    94-4391    94-4392    94-4392    94-4392    94-4392   
                         94-4392    94-4392    94-4392    94-4392    103-4722   103-4722   103-4722   103-4723   103-4723  
                         103-4723   103-4723   103-4723   103-4723   103-4723   103-4723   103-4724   103-4724   103-4724  
                         103-4724   103-4724   103-4724   103-4724   103-4724   103-4725   103-4725   103-4725   103-4725  
                         103-4725   103-4725   103-4725   103-4725   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   105-4813   105-4813   105-4813   105-4813  
                         105-4813   105-4813   105-4813   105-4813   105-4814   105-4814   105-4814   105-4814   105-4814  
                         105-4814   105-4814   105-4814   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-4903   107-4903   107-4903   107-4903   107-4903   107-4903   107-4903   107-4903  
                         107-4904   107-4904   107-4904   107-4904   107-4904   107-4904   107-4904   107-4904   121-5348  
                         121-5348   121-5348   121-5348   121-5348   121-5348   121-5348   121-5348   156-7002   156-7002  
                         156-7002   156-7002   156-7004   156-7004   156-7004   156-7004   156-7007   156-7007   156-7007  
                         156-7007   156-7010   156-7010   156-7010   156-7010   156-7012   156-7012   156-7012   156-7012  
                         156-7014   156-7014   156-7014   156-7014   175-8144   175-8144   175-8144   175-8144   175-8144  
                         190-8919   190-8919   190-8919   190-8919   190-8919   190-8919   190-8919   190-8919   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-10659  223-10659  223-10659 
                         223-10659  223-10659  223-10659  223-10659  223-10659  223-10660  223-10660  223-10660  223-10660 
                         223-10660  223-10660  223-10660  223-10660 
$$$OST	= 000014	#92-4303    92-4303    92-4303   #92-4303    92-4303    92-4303   #92-4303    92-4303    92-4303   
                        #92-4303    92-4303    92-4303   #92-4303    92-4303    92-4303   #92-4303    92-4303    92-4303   
                        #92-4303    92-4303   #92-4304    92-4304    92-4304   #92-4304    92-4304    92-4304   #92-4304   
                         92-4304    92-4304   #92-4304    92-4304    92-4304   #92-4304    92-4304    92-4304   #92-4304   
                         92-4304    92-4304   #92-4304    92-4304   #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   #94-4391    94-4391    94-4391   
                        #94-4391    94-4391    94-4391   #94-4391    94-4391    94-4391   #94-4391    94-4391    94-4391   
                        #94-4391    94-4391    94-4391   #94-4391    94-4391    94-4391   #94-4391    94-4391   #94-4392   
                         94-4392    94-4392   #94-4392    94-4392    94-4392   #94-4392    94-4392    94-4392   #94-4392   
                         94-4392    94-4392   #94-4392    94-4392    94-4392   #94-4392    94-4392    94-4392   #94-4392   
                         94-4392   #103-4722   103-4722   103-4722  #103-4722   103-4722   103-4722  #103-4722  #103-4723  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 25

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         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-4724   103-4724   103-4724  #103-4724   103-4724   103-4724  #103-4724   103-4724  
                         103-4724  #103-4724   103-4724   103-4724  #103-4724   103-4724   103-4724  #103-4724   103-4724  
                         103-4724  #103-4724   103-4724  #103-4725   103-4725   103-4725  #103-4725   103-4725   103-4725  
                        #103-4725   103-4725   103-4725  #103-4725   103-4725   103-4725  #103-4725   103-4725   103-4725  
                        #103-4725   103-4725   103-4725  #103-4725   103-4725  #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  #105-4813   105-4813  
                         105-4813  #105-4813   105-4813   105-4813  #105-4813   105-4813   105-4813  #105-4813   105-4813  
                         105-4813  #105-4813   105-4813   105-4813  #105-4813   105-4813   105-4813  #105-4813   105-4813  
                        #105-4814   105-4814   105-4814  #105-4814   105-4814   105-4814  #105-4814   105-4814   105-4814  
                        #105-4814   105-4814   105-4814  #105-4814   105-4814   105-4814  #105-4814   105-4814   105-4814  
                        #105-4814   105-4814  #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  #107-4903   107-4903   107-4903  
                        #107-4903   107-4903   107-4903  #107-4903   107-4903   107-4903  #107-4903   107-4903   107-4903  
                        #107-4903   107-4903   107-4903  #107-4903   107-4903   107-4903  #107-4903   107-4903  #107-4904  
                         107-4904   107-4904  #107-4904   107-4904   107-4904  #107-4904   107-4904   107-4904  #107-4904  
                         107-4904   107-4904  #107-4904   107-4904   107-4904  #107-4904   107-4904   107-4904  #107-4904  
                         107-4904  #121-5348   121-5348   121-5348  #121-5348   121-5348   121-5348  #121-5348   121-5348  
                         121-5348  #121-5348   121-5348   121-5348  #121-5348   121-5348   121-5348  #121-5348   121-5348  
                         121-5348  #121-5348   121-5348  #156-7002   156-7002   156-7002  #156-7002   156-7002   156-7002  
                        #156-7002   156-7002   156-7002  #156-7002  #156-7004   156-7004   156-7004  #156-7004   156-7004  
                         156-7004  #156-7004   156-7004   156-7004  #156-7004  #156-7007   156-7007   156-7007  #156-7007  
                         156-7007   156-7007  #156-7007   156-7007   156-7007  #156-7007  #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  #156-7014  
                         156-7014   156-7014  #156-7014   156-7014   156-7014  #156-7014   156-7014   156-7014  #156-7014  
                        #175-8144   175-8144   175-8144  #175-8144   175-8144   175-8144  #175-8144   175-8144   175-8144  
                        #175-8144   175-8144   175-8144  #175-8144  #190-8919   190-8919   190-8919  #190-8919   190-8919  
                         190-8919  #190-8919   190-8919   190-8919  #190-8919   190-8919   190-8919  #190-8919   190-8919  
                         190-8919  #190-8919   190-8919   190-8919  #190-8919   190-8919  #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 #223-10659  223-10659  223-10659 #223-10659  223-10659  223-10659 #223-10659  223-10659 
                         223-10659 #223-10659  223-10659  223-10659 #223-10659  223-10659  223-10659 #223-10659  223-10659 
                         223-10659 #223-10659  223-10659 #223-10660  223-10660  223-10660 #223-10660  223-10660  223-10660 
                        #223-10660  223-10660  223-10660 #223-10660  223-10660  223-10660 #223-10660  223-10660  223-10660 
                        #223-10660  223-10660  223-10660 #223-10660  223-10660 
$$$T1 	= 000014	#114-5106   114-5106  #120-5293   120-5293  #156-7002   156-7002   156-7002  #156-7002   156-7002  
                         156-7002  #156-7002   156-7002   156-7002  #156-7004   156-7004   156-7004  #156-7004   156-7004  
                         156-7004  #156-7004   156-7004   156-7004  #156-7007   156-7007   156-7007  #156-7007   156-7007  
                         156-7007  #156-7007   156-7007   156-7007  #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  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 26

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

                         156-7012  #156-7012   156-7012   156-7012  #156-7014   156-7014   156-7014  #156-7014   156-7014  
                         156-7014  #156-7014   156-7014   156-7014  #157-7070   157-7070  
.BRCLK	= 005000	#4-198     #8-474      239-11483  239-11502 
.BTADR	  000522 RG	#193-9144   200-9651  *230-11080 *230-11083  231-11120  231-11121  231-11123  231-11131  231-11133 
.BTSW 	  000050 RG	 70-2860    70-2930    70-2977   *70-3002    71-3050   *161-7281  *161-7308  *161-7321   162-7373  
                        *163-7398  *163-7419  #191-9006   200-9610   200-9649  
.CACHN	  000065 RG	 56-2010    56-2057    57-2110    74-3141    143-6297   143-6320   166-7528  #192-9054  
.CASW 	  000043 RG	 89-4125    165-7478   171-7728  *179-8423  *179-8426   187-8809  #191-8995   195-9293   200-9602  
.CECLK	= 004000	#4-198     #8-474      54-1913    154-6835   154-6847   237-11391 
.CFGTB	  000134 RG	 73-3108   *78-3350    78-3464    78-3491   *80-3681   *81-3781    84-3882   *84-3897   *84-3915   
                         85-3952   *85-3961    86-4004   *86-4013   *86-4029   *91-4224   *91-4262    146-6392  *146-6437  
                         173-7842  #192-9079  
.CFMRV	  000234 RG	*171-7689  *171-7753   171-7755   172-7792  #192-9081  
.CKSW 	  000041 RG	 139-6144  *141-6219  *141-6222  *141-6229  #191-8990  
.CLRMR	= 006000	#4-198     #8-474      154-6836   154-6848  
.CLRUN	= 010000	#4-198     #8-474      155-6870   180-8455   237-11361 
.COMEF	= ******  GX	 157-7086  *157-7094  
.CONBT	= 012000	#4-198     #8-474      54-1894    182-8530   195-9243   233-11224  234-11265 
.CPUSN	= ******  GX	 157-7095  *157-7096  *176-8299   178-8328   178-8340  *178-8396   179-8420  
.CSDN 	  000030 RG	*182-8525  #191-8969  
.CSHRG	= 164000	#4-198     #8-474     
.CTLTP	  000072 RG	 73-3093    73-3104    84-3886    84-3902   *146-6393  *146-6396  *146-6433   146-6440  *173-7844  
                        #192-9075  
.DATE3	= ******  GX	 178-8335  
.DBSW 	  000033 RG	*161-7282  *176-8258  #191-8976  
.DCSW 	  000031 RG	 70-2865    70-2947    70-2963   *70-3005    143-6288  *143-6296  *165-7480  *165-7507  *166-7541  
                        *166-7543  #191-8971   195-9266  
.DESW 	  000042 RG	 134-5964  *134-5979  *139-6143  *141-6220  *141-6223  #191-8992  
.DFBLK	  000256 RG	 135-6015   137-6091   140-6193  #193-9100  
.DFRBK	  000264 RG	 136-6042   136-6044   158-7174  #193-9103  
.DFRG1	  000272 RG	#193-9106  
.DFRG2	  000274 RG	#193-9108  
.DFRG3	  000300 RG	#193-9112  
.DFSTA	  000276 RG	#193-9110  
.DFWBK	  000256 RG	 138-6120   138-6130  #193-9101  
.DLGSW	  000024 RG	 83-3862    84-3941    85-3976    86-4042   *157-7032  *157-7040   157-7084   161-7284   162-7349  
                         163-7391   165-7481   168-7588   171-7695   172-7794   174-7902   175-8011   176-8197  *176-8199  
                        *176-8228   176-8244   178-8333  #191-8960   195-9307  *195-9316  *195-9336   229-11011 
.DMSW 	  000032 RG	 70-2867    70-2904    70-2968   *70-3007    78-3291    78-3462   *83-3840    83-3860   *83-3861   
                        *83-3867   *84-3940   *85-3975   *86-4041    91-4198    91-4227   *146-6406  *171-7688  *171-7762  
                         172-7783   172-7787   172-7813  #191-8974  
.DREG 	  000272 RG	 135-6015   137-6091   140-6193   193-9097  #193-9105  *196-9373   196-9377  
.DRLTC	= 015000	#4-198     #8-474      129-5735  
.DRSW 	  000027 RG	 64-2428    64-2442    64-2492    65-2515    65-2568    66-2635    67-2647   *175-8009  *175-8063  
                        #191-8966  
.DSACF	= 066000	#4-198     #8-474     
.DSIOJ	= 065000	#4-198     #8-474     
.DTEDT	  000302 RG	*155-6873  *155-6876   193-9096  #193-9115   196-9372  *196-9376  
.EASW 	  000044 RG	 60-2242    125-5578   178-8347   178-8386  *179-8439  *179-8442  #191-8998  
.EIOJA	= 067000	#4-198     #8-474      154-6837  
.ERRCD	= ******  GX	 186-8735   186-8743  *186-8783  *186-8788  *186-8791  
.ERRPC	= ******  GX	 186-8750  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 27

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

.FEMOD	= ******  GX	 157-7088  
.FILSW	  000047 RG	 70-2857   *162-7348  *162-7367  *162-7371  *176-8196  *176-8259  #191-9004  
.GFNR 	= 102000	#4-198     #8-474     
.HRDWR	= ******  GX	 178-8357   178-8367  
.INICL	= 070000	#4-198     #8-474      154-6832  
.IRLTC	= 014000	#4-198     #8-474      130-5812  
.KLCPU	= ******  GX	 186-8737   186-8746  
.KLFCF	= ******  GX	 186-8733  
.KLISV	  000060 RG	*157-7033   157-7055   163-7393   165-7502   165-7505   168-7613   168-7616   171-7691   171-7741  
                         171-7759  *172-7805  *172-7806   175-8038   175-8040   176-8235  #191-9042   195-9234   200-9612  
                         229-11013  237-11377 
.KLITK	= ******  GX	*186-8781  
.KLIWD	= ******  GX	 157-7033  *157-7039   195-9228  *195-9230  
.KLREG	  000244 RG	#193-9093  *196-9358  *196-9362  *196-9366  *196-9370  *196-9372   196-9374  
.LCRDL	= 052000	#4-198     #8-474      126-5605  
.LCRDR	= 051000	#4-198     #8-474      126-5613  
.LCRM1	= 057000	#4-198     #8-474      123-5408  
.LCRM2	= 056000	#4-198     #8-474      123-5409  
.LCRM3	= 055000	#4-198     #8-474      123-5410  
.LCRM4	= 054000	#4-198     #8-474      123-5411  
.LCRM5	= 053000	#4-198     #8-474      124-5485  
.LDAR 	= 077000	#4-198     #8-474      54-1917    130-5809   236-11340 
.LDBRL	= 043000	#4-198     #8-474      154-6829   239-11480  239-11499 
.LDBRR	= 042000	#4-198     #8-474      154-6828   154-6833   239-11477  239-11493 
.LDCK1	= 046000	#4-198     #8-474      154-6825   187-8821   200-9643  
.LDCK2	= 047000	#4-198     #8-474      154-6826   187-8818   200-9639  
.LDDIS	= 045000	#4-198     #8-474      154-6830  
.LDRJD	= 064000	#4-198     #8-474      128-5699  
.LDRJV	= 063000	#4-198     #8-474      128-5702  
.LDRM1	= 060000	#4-198     #8-474      128-5701  
.LDRM2	= 061000	#4-198     #8-474      128-5698  
.LDRM3	= 062000	#4-198     #8-474      128-5693  
.LDSEL	= 044000	#4-198     #8-474      154-6822   155-6911  
.MCA25	  000035 RG	 175-8032   176-8248  *179-8428  *179-8431  #191-8980  
.MCBFN	  000462 RG	 60-2248    62-2318    75-3168    175-8054  #193-9134  
.MCBSW	  000025 RG	 60-2234    60-2246   *62-2315    70-2862    70-2982   *70-3003    70-3025    75-3164   *175-8010  
                        *175-8062  #191-8962  
.MCSW 	  000051 RG	*174-7945  *174-7947   181-8486   181-8497  #191-9008  
.MEMRS	= 076000	#4-198     #8-474      154-6838  
.MFCT 	  000046 RG	*146-6390  *146-6442   172-7796  #191-9002  
.MFSW 	  000045 RG	 155-6881   155-6913   171-7700   178-8388  *179-8433  *179-8436  #191-9000  
.NCACH	  000064 RG	 56-2004    56-2019    56-2058    57-2099    74-3128   *143-6303  *143-6325  *166-7540   187-8811  
                        #192-9052   195-9295   195-9299   200-9604  *229-11040 
.NOERR	= ******  GX	*180-8453  *185-8697  *186-8779  *186-8792  *195-9236  *195-9246  *200-9656  *200-9665  
.PCAB1	= 150000	#4-198     #8-474     
.PCAB2	= 151000	#4-198     #8-474     
.PCAB3	= 152000	#4-198     #8-474     
.PCAB4	= 153000	#4-198     #8-474     
.PRDCT	= ******  GX	 184-8638   185-8668   185-8684   186-8756   186-8772  
.PTSEL	  000530 RG	 76-3190   *174-7900  *174-7931  *174-7942   174-7952   174-7958  #193-9146  
.PTSW 	  000034 RG	 70-2872    70-2938    70-2987   *70-3008   *149-6526  *174-7899  *174-7934  *174-7944  #191-8978  
.RCRM1	= 147000	#4-198     #8-474      123-5404  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 28

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

.RCRM2	= 146000	#4-198     #8-474      123-5405  
.RCRM3	= 145000	#4-198     #8-474      123-5406  
.RCRM4	= 144000	#4-198     #8-474      123-5407  
.RCSPF	= 141000	#4-198     #8-474      125-5567  
.RDJ14	= 134000	#4-198     #8-474      129-5760  
.RDJ71	= 135000	#4-198     #8-474      129-5739  
.RDMAB	= 133000	#4-198     #8-474      129-5747  
.SECLK	= 003000	#4-198     #8-474      125-5506   181-8492  
.SETMR	= 007000	#4-198     #8-474      141-6217   154-6824   154-6844  
.SETRN	= 011000	#4-198     #8-474      195-9240   234-11262 
.SNSAV	  000062 RG	*157-7095   176-8299  #191-9044  
.SPSAV	  000022 RG	#191-8958  *195-9232   195-9335  
.SSCLK	= 002000	#4-198     #8-474      54-1907    155-6894   234-11270  238-11437 
.STPCL	= 000000	#4-198     #8-474      139-6153   154-6823   154-6846   237-11388  239-11469 
.STRCL	= 001000	#4-198     #8-474      54-1920    62-2356    134-5968   141-6215   154-6831   154-6845   182-8533  
                         187-8823   200-9646   233-11227  234-11283  237-11381 
.SYATT	  002656 RG	 92-4306   *93-4337   *93-4338   *93-4339   *93-4340   *106-4857   116-5177  *116-5179  *122-5365  
                        *122-5366  #194-9213  
.SYFID	= 002624 RG	 94-4391    103-4724   105-4811   105-4813  #194-9205  
.SYFNB	  002624 RG	 94-4390    94-4392    99-4564    103-4723   103-4725   105-4812   107-4904   157-7070   157-7078  
                        *157-7078   157-7079  *157-7079   157-7080  *157-7080  #194-9196   194-9205   194-9206  
.SYFNM	= 002632 RG	#194-9206  
.SYIBA	  000542 RG	*111-5020   112-5038  *112-5041   112-5051  *112-5052   113-5077  *113-5078  *114-5110  #194-9163  
.SYIBC	  000544 RG	 111-5013   111-5015  *111-5021  *112-5042   112-5046  *112-5053   113-5072  *113-5079  *114-5111  
                        #194-9165  
.SYIBF	  000572 RG	 103-4722   104-4749   104-4750   114-5106   114-5110   194-9164  #194-9173   194-9180  
.SYIFN	  000546 RG	 93-4350    103-4727   103-4729  *104-4749  *104-4750  #194-9167  
.SYIRC	  000540 RG	 62-2347    64-2462    65-2538    70-2910    70-2918   *104-4762   110-4988  *110-4991  *110-4994  
                         111-5013  *111-5015   111-5020   111-5021  *111-5022  *112-5040  *112-5044  *113-5070   152-6759  
                        #194-9161   230-11084  231-11143 
.SYISW	  000536 RG	 93-4325   *93-4331   *104-4759   108-4916  *108-4919  #194-9155  
.SYIVB	  000566 RG	*104-4760  *104-4761  *114-5101  *114-5102   114-5106   114-5106  #194-9171  
.SYOBA	  001574 RG	 93-4339   *106-4854   118-5232  *118-5235   118-5245  *118-5246   119-5272  *119-5273  *120-5299  
                        #194-9179  
.SYOBC	  001576 RG	*106-4855   117-5204  *118-5236   118-5240  *118-5247   119-5267  *119-5274  *120-5300  #194-9181  
.SYOBF	  001624 RG	 93-4340    105-4810   106-4837   106-4838   106-4854   120-5293   120-5299  #194-9189  
.SYOFN	  001600 RG	 92-4308    92-4310    93-4352    105-4816   105-4818  *106-4837  *106-4838   108-4925   122-5369  
                        #194-9183  
.SYORC	  001572 RG	 71-3056   *106-4856   116-5175  *116-5181  *116-5184   117-5201  *117-5206  *118-5234  *118-5238  
                        *119-5265  #194-9177  
.SYOSW	  000537 RG	 93-4332   *93-4347   *106-4851   108-4920  *108-4929  #194-9157  
.SYOVB	  001620 RG	 93-4337    93-4338   *106-4852  *106-4853   120-5293   120-5293  *120-5297  *120-5298  #194-9187  
.SYSTA	  000532 RG	 60-2258    70-2879    92-4303    92-4304    93-4329    93-4345    94-4390    94-4391    94-4392   
                         98-4530    98-4534    98-4539    101-4634   103-4723   103-4724   104-4753   104-4757   104-4764  
                         104-4768   105-4811   105-4812   105-4813   106-4841   106-4845   106-4849   114-5106   114-5108  
                         114-5111   120-5293   120-5295   120-5303   121-5348   122-5363   143-6293   146-6402   149-6521  
                         151-6635   157-7070   157-7072   163-7389  #194-9153   229-11041 
.TKTN 	= ******  GX	*186-8780  
.TPSHI	  016270 RG	 158-7179   158-7179  #159-7196  
.TRKLP	  000040 RG	#191-8987   199-9478   224-10742 *224-10744  224-10751 *224-10753  224-10755  228-10901 
.TRKSW	  000036 RG	#191-8983   199-9431  *224-10738 *224-10759 
.TRKTT	  000037 RG	#191-8985   199-9482  *224-10737 *224-10740  224-10757 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 29

SYMBOL CROSS REFERENCE                                  CREF   04.00 

SYMBOL	VALUE		REFERENCES

.TTIBF	  000304 RG	 78-3295    78-3372    78-3475    91-4202    91-4232    161-7289   162-7354   165-7486   166-7514  
                         168-7594   171-7706  *174-7901   174-7907   175-8017   176-8206  #193-9123   206-9879   223-10657 
                        *224-10724  224-10726  224-10728  224-10730  224-10732  228-10898 
.TTOBF	  000344 RG	#193-9126   205-9830   208-9995   208-10003  208-10012  208-10015  209-10068  209-10070  209-10083 
                         209-10086  214-10243  215-10271  218-10403  226-10822  226-10840 
.UFNSW	  000026 RG	 71-3041    71-3053   *161-7283  *161-7319  *163-7385  *163-7422  *163-7431  *176-8260  *176-8271  
                        #191-8964   229-11023 
.USRFN	  000502 RG	 71-3059    151-6629   161-7312   163-7425   176-8263  #193-9139   229-11025 
.WORK 	  000014 RG	#191-8951  
.WRITR	= ******  GX	 227-10878  227-10878 
.WRMBX	= 071000	#4-198     #8-474      154-6839  
.ZERO 	  000000 RG	 53-1861    56-2073    64-2432    137-6092   154-6822   154-6825   154-6826   154-6828   154-6829  
                         154-6830   154-6832   154-6833   154-6837   154-6838  #191-8948   200-9627   200-9633   230-11094 
                         231-11125 
..DSEV	= ******  GX	 186-8782   186-8782  
..DTP2	= ******  GX	 184-8635   184-8635   185-8665   185-8665   186-8753   186-8753   200-9658   200-9658  
..DTSP	= ******  GX	 180-8454   180-8454  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 30

MACRO CROSS REFERENCE                                   CREF   04.00 

MACRO NAME	REFERENCES

ALUN$ 		#156-6972   156-7002   156-7004   156-7007   156-7010   156-7012   156-7014  #228-10944 
BURST 		#24-994    
CALL  		#4-253     #9-476      52-1825    52-1832    53-1858    53-1864    54-1892    54-1895    54-1898    54-1903   
                 54-1908    54-1914    54-1918    56-2002    56-2074    60-2236    60-2249    60-2254    60-2260    61-2278   
                 62-2294    62-2299    62-2306    62-2309    62-2313    62-2320    62-2326    62-2341    62-2349    62-2354   
                 62-2357    62-2358    62-2359    63-2387    64-2434    64-2439    64-2445    64-2455    64-2465    64-2469   
                 64-2473    64-2478    64-2481    64-2491    64-2496    65-2512    65-2518    65-2522    65-2541    65-2545   
                 65-2549    65-2554    65-2557    65-2567    65-2572    66-2597    66-2618    66-2620    66-2623    66-2625   
                 66-2626    66-2633    66-2639    67-2659    67-2666    67-2669    70-2877    70-2884    70-2892    70-2912   
                 70-2915    70-2920    70-2922    70-2954    70-2965    70-2974    70-2979    70-2984    70-2989    70-2992   
                 70-2994    70-2999    70-3018    71-3045    71-3048    71-3051    71-3054    71-3062    72-3076    73-3096   
                 73-3099    73-3102    73-3105    73-3110    74-3131    74-3134    74-3137    74-3144    75-3159    75-3162   
                 75-3165    75-3171    76-3185    76-3188    76-3191    78-3293    78-3294    78-3365    78-3367    78-3369   
                 78-3370    78-3371    78-3409    78-3426    78-3431    78-3474    78-3481    81-3720    83-3846    83-3851   
                 83-3857    84-3888    84-3890    84-3898    84-3904    84-3912    84-3916    86-4014    86-4018    86-4026   
                 86-4028    87-4057    89-4129    89-4132    91-4201    91-4230    91-4239    93-4341    98-4527    98-4536   
                 101-4648   101-4656   101-4663   104-4746   104-4766   106-4834   108-4926   110-4992   111-5016   112-5048  
                 113-5074   116-5182   117-5208   118-5242   119-5269   120-5305   124-5436   124-5475   125-5504   125-5507  
                 125-5514   125-5569   126-5601   126-5604   126-5606   126-5612   126-5614   128-5681   128-5684   128-5687  
                 128-5706   129-5733   129-5736   129-5740   129-5748   129-5761   130-5806   130-5810   132-5879   132-5885  
                 132-5886   133-5918   133-5923   133-5932   133-5933   134-5966   134-5969   134-5972   138-6116   139-6154  
                 143-6291   143-6305   143-6307   143-6313   143-6315   143-6321   143-6327   146-6400   146-6413   146-6416  
                 146-6421   146-6428   146-6431   146-6434   146-6449   146-6452   146-6460   149-6519   149-6533   149-6536  
                 149-6542   149-6549   149-6554   151-6626   151-6631   151-6633   151-6664   151-6679   151-6692   151-6699  
                 151-6705   151-6714   152-6737   152-6767   155-6871   155-6874   155-6878   155-6885   155-6890   155-6895  
                 155-6898   155-6907   155-6917   155-6930   158-7158   158-7172   158-7179   161-7288   161-7303   161-7316  
                 162-7353   162-7375   163-7387   163-7402   163-7408   163-7412   163-7417   163-7420   163-7427   163-7436  
                 165-7485   166-7513   166-7524   168-7593   171-7690   171-7704   171-7705   172-7772   172-7773   172-7785  
                 172-7793   172-7811   172-7816   172-7818   172-7819   172-7820   172-7829   174-7906   174-7919   174-7935  
                 174-7946   174-7951   174-7955   174-7959   174-7961   175-8016   175-8052   175-8058   176-8205   176-8237  
                 176-8242   176-8261   176-8267   176-8274   176-8275   176-8276   176-8277   176-8279   176-8283   178-8327  
                 178-8331   178-8339   178-8341   178-8343   178-8351   178-8353   178-8355   178-8361   178-8363   178-8375  
                 178-8380   179-8409   179-8437   180-8454   180-8456   181-8479   181-8483   181-8490   181-8493   181-8495  
                 181-8501   182-8528   182-8531   182-8534   184-8631   184-8633   184-8635   184-8636   184-8639   184-8641  
                 185-8661   185-8662   185-8665   185-8666   185-8669   185-8671   185-8676   185-8688   186-8744   186-8751  
                 186-8753   186-8754   186-8757   186-8759   186-8764   186-8776   186-8782   187-8806   187-8814   187-8819  
                 187-8822   195-9233   195-9238   195-9241   195-9244   195-9256   195-9268   195-9271   195-9297   195-9301  
                 195-9304   195-9305   195-9312   195-9320   195-9327   195-9330   195-9333   195-9334   199-9444   199-9457  
                 199-9472   200-9589   200-9592   200-9597   200-9606   200-9634   200-9640   200-9644   200-9647   200-9654  
                 200-9658   202-9725   202-9727   202-9729   202-9732   202-9735   203-9759   203-9761   203-9763   203-9770  
                 203-9777   205-9832   206-9880   206-9881   208-9990   208-9997   208-10000  208-10005  208-10013  208-10014 
                 208-10017  209-10050  209-10065  209-10069  209-10072  209-10084  209-10088  214-10245  214-10246  214-10252 
                 214-10256  214-10258  215-10273  215-10274  215-10280  215-10283  215-10285  215-10290  215-10292  218-10405 
                 218-10407  224-10702  224-10712  224-10718  224-10749  225-10799  226-10821  226-10844  226-10846  227-10871 
                 227-10878  227-10882  229-11017  229-11027  229-11034  229-11037  229-11054  229-11067  230-11078  230-11081 
                 230-11096  230-11103  230-11107  230-11110  231-11127  231-11135  231-11139  231-11147  233-11222  233-11225 
                 233-11228  234-11260  234-11263  234-11266  234-11271  234-11273  235-11310  236-11335  236-11337  237-11362 
                 237-11365  237-11370  237-11372  237-11379  237-11382  237-11385  237-11389  237-11392  238-11422  238-11427 
                 238-11432  238-11438  238-11447  239-11470  239-11478  239-11481  239-11484  239-11494  239-11500 
CALLR 		#4-262     #9-485      52-1838    54-1921    56-2089    72-3079    78-3269    78-3279    78-3308    78-3311   
                 78-3440    78-3499    78-3502    85-3956    91-4215    91-4264    93-4353    98-4543    104-4763   104-4773  
                 106-4863   110-4996   122-5370   124-5486   128-5713   130-5813   139-6151   143-6326   146-6457   149-6552  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 31

MACRO CROSS REFERENCE                                   CREF   04.00 

MACRO NAME	REFERENCES

                 151-6641   151-6725   163-7433   172-7832   173-7851   173-7854   173-7857   173-7860   181-8505   187-8824  
                 205-9833   229-11056  233-11231  234-11284  236-11341  238-11452  239-11503 
CLEF$S		#156-6972  #175-8127   182-8536  
DFPC  		#23-964    
DFRD  		#12-601    
DFRDT 		#13-622    
DFSCLK		#22-954    
DFWRT 		#14-663    
DFWRTT		#15-703    
DFXCT 		#16-742    
DFXCTT		#17-774    
DIR$  		#4-197      93-4327    93-4343    98-4528    98-4532    98-4537    104-4747   104-4751   104-4755   104-4767  
                 106-4835   106-4839   106-4843   106-4847   106-4861   108-4918   108-4922   108-4923   108-4928  #114-5106  
                 114-5106  #120-5293   120-5293   122-5361   132-5894   133-5935   136-6041   138-6129   139-6147   141-6227  
                 157-7047   157-7049   157-7052   157-7057   157-7059   157-7061  #157-7065   157-7065  #157-7070   157-7070  
                #157-7076   157-7076  #175-8127  #182-8536   182-8536   182-8538  #182-8540   182-8540  #188-8837   188-8837  
                #188-8841   188-8841  #188-8845   188-8845  #195-9323   195-9323   196-9374   199-9481   199-9485   224-10700 
                 224-10704  224-10716  224-10745  224-10754 #224-10763  224-10763  227-10869  228-10904  229-11043  229-11045 
                 229-11047  231-11153  231-11154  231-11155 
DPOS  		#18-807    
DPOST 		#19-847    
DTEBAS		#25-1008   
ERROR 		#7-402      55-1982    58-2185    58-2186    58-2187    58-2188    58-2189    68-2752    79-3553    79-3555   
                 90-4184    100-4609   100-4610   100-4611   100-4612   109-4968   109-4970   115-5156   115-5158   131-5859  
                 131-5860   135-6018   137-6096   140-6196   150-6598   150-6600   150-6602   150-6604   154-6855   156-7017  
                 156-7019   156-7021   157-7133   170-7680   175-8183   175-8189   183-8601   183-8602   183-8603   183-8604  
                 183-8605   183-8607   183-8608   183-8609   183-8610   190-8932   190-8934   190-8936   228-10970  232-11200 
                 232-11202 
ERROR$		#5-315     
ERR$  		#93-4327   #93-4343   #98-4528   #98-4532   #98-4537   #104-4747  #104-4751  #104-4755  #104-4767  #106-4835  
                #106-4839  #106-4843  #106-4847  #106-4861  #108-4918  #108-4922  #108-4923  #108-4928  #114-5106  #120-5293  
                #122-5361  #132-5894  #133-5935  #136-6041  #138-6129  #139-6147  #141-6227  #157-7047  #157-7049  #157-7052  
                #157-7057  #157-7059  #157-7061  #157-7065  #157-7070  #157-7076  #182-8536  #182-8538  #182-8540  #188-8837  
                #188-8841  #188-8845  #195-9323  #196-9374  #199-9481  #199-9485  #224-10700 #224-10704 #224-10716 #224-10745 
                #224-10754 #224-10763 #227-10869 #228-10904 #229-11043 #229-11045 #229-11047 #231-11153 #231-11154 #231-11155 
EXAM  		#20-886    
EXAMT 		#21-932    
EXCT  		#28-1070   
EXIT$S		#156-6972   157-7065   157-7076  #190-8909   195-9323  #223-10652  224-10763 
EXOR  		#10-537    
FATAL 		#50-1729   
GLUN$ 		#103-4717   103-4722  #105-4805   105-4810  
IDENT$		#4-212      51-1743    51-1743    55-1926    55-1926    58-2126    58-2126    67-2681    67-2681    77-3197   
                 77-3197    79-3512    79-3512    82-3790    82-3790    88-4073    88-4073    90-4142    90-4142    92-4270   
                 92-4270    94-4358    94-4358    100-4580   100-4580   103-4690   103-4690   105-4778   105-4778   107-4868  
                 107-4868   109-4934   109-4934   115-5122   115-5122   121-5316   121-5316   123-5375   123-5375   127-5627  
                 127-5627   131-5819   131-5819   135-5984   135-5984   137-6060   137-6060   140-6160   140-6160   142-6238  
                 142-6238   144-6334   144-6334   147-6466   147-6466   150-6564   150-6564   153-6791   153-6791   156-6939  
                 156-6939   160-7224   160-7224   164-7443   164-7443   167-7552   167-7552   169-7634   169-7634   174-7879  
                 174-7879   174-7971   174-7971   175-8079   175-8079   183-8546   183-8546   189-8856   189-8856   199-9491  
                 199-9491   201-9673   201-9673   204-9784   204-9784   207-9912   207-9912   211-10122  211-10122  217-10356 
                 217-10356  220-10486  220-10486  223-10620  223-10620  228-10910  228-10910  232-11160  232-11160 
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 32

MACRO CROSS REFERENCE                                   CREF   04.00 

MACRO NAME	REFERENCES

IO10$ 		#6-343      51-1779    55-1971    55-1972    55-1976    88-4108    88-4109    175-8141   183-8592   199-9545  
                 199-9546   199-9547   199-9548   199-9552   228-10966 
I10$  		#6-327      55-1973    55-1974    55-1975    55-1977    190-8915  
KLDR$ 		#135-6010   135-6015  
KLDW$ 		#137-6086   137-6091  
KLDX$ 		#140-6188   140-6193  
KLIVR$		#156-6973   156-7023   156-7023  
LODAR 		#26-1039   
MESSAG		#7-394      55-1983    55-1984    55-1985    58-2190    58-2191    58-2192    58-2193    58-2194    68-2750   
                 77-3234    77-3236    77-3238    77-3240    77-3242    156-7023   160-7253   160-7255   164-7472   164-7473  
                 167-7582   170-7676   170-7678   174-7892   174-7894   174-7895   174-8004   175-8163   175-8165   175-8167  
                 175-8171   183-8606   183-8611   190-8930   199-9566  
MOV$  		#114-5106  #114-5106   114-5106   114-5106   114-5106   114-5106   114-5106   114-5106   114-5106   114-5106  
                 114-5106  #120-5293  #120-5293   120-5293   120-5293   120-5293   120-5293   120-5293   120-5293   120-5293  
                 120-5293   120-5293  #157-7070  #157-7070   157-7070   157-7070   157-7070   157-7070   157-7070   157-7070  
                 157-7070   157-7070   157-7070   157-7070  #182-8536   182-8536  #182-8540   182-8540  #188-8837   188-8837  
                 188-8837   188-8837   188-8837  #188-8845   188-8845  
MRESET		#31-1161   
MRKT$ 		#175-8127   175-8144  
MRKT$S		#183-8584   188-8837  #199-9526  
MVB$  		#114-5106   114-5106  #120-5293   120-5293  #157-7070   157-7070  
NBL$  		#156-7002   156-7002  #156-7004   156-7004  #156-7007   156-7007  #156-7010   156-7010  #156-7012   156-7012  
                #156-7014   156-7014  
OFF$  		#92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4303    92-4303   #92-4304   
                 92-4304    92-4304    92-4304    92-4304    92-4304    92-4304    92-4304    92-4304   #94-4390    94-4390   
                 94-4390    94-4390    94-4390    94-4390    94-4390    94-4390    94-4390   #94-4391    94-4391    94-4391   
                 94-4391    94-4391    94-4391    94-4391    94-4391    94-4391   #94-4392    94-4392    94-4392    94-4392   
                 94-4392    94-4392    94-4392    94-4392    94-4392   #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-4724   103-4724  
                 103-4724   103-4724   103-4724   103-4724   103-4724   103-4724   103-4724  #103-4725   103-4725   103-4725  
                 103-4725   103-4725   103-4725   103-4725   103-4725   103-4725  #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  #105-4813   105-4813  
                 105-4813   105-4813   105-4813   105-4813   105-4813   105-4813   105-4813  #105-4814   105-4814   105-4814  
                 105-4814   105-4814   105-4814   105-4814   105-4814   105-4814  #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-4903   107-4903   107-4903   107-4903   107-4903   107-4903  
                 107-4903   107-4903   107-4903  #107-4904   107-4904   107-4904   107-4904   107-4904   107-4904   107-4904  
                 107-4904   107-4904  #121-5348   121-5348   121-5348   121-5348   121-5348   121-5348   121-5348   121-5348  
                 121-5348  #156-7002   156-7002   156-7002   156-7002   156-7002  #156-7004   156-7004   156-7004   156-7004  
                 156-7004  #156-7007   156-7007   156-7007   156-7007   156-7007  #156-7010   156-7010   156-7010   156-7010  
                 156-7010  #156-7012   156-7012   156-7012   156-7012   156-7012  #156-7014   156-7014   156-7014   156-7014  
                 156-7014  #175-8144   175-8144   175-8144   175-8144   175-8144   175-8144  #190-8919   190-8919   190-8919  
                 190-8919   190-8919   190-8919   190-8919   190-8919   190-8919  #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-10659  223-10659  223-10659  223-10659  223-10659  223-10659 
                 223-10659  223-10659  223-10659 #223-10660  223-10660  223-10660  223-10660  223-10660  223-10660  223-10660 
                 223-10660  223-10660 
PBELL 		#45-1588   
PCRLF 		#45-1596   
PFORCE		#33-1214   
PMSG  		#42-1497   
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 33

MACRO CROSS REFERENCE                                   CREF   04.00 

MACRO NAME	REFERENCES

PNORML		#33-1217   
PNTADR		#35-1272   
PNTAL 		#43-1528   
PNTBAK		#33-1220   
PNTDEC		#40-1418   
PNTNBR		#36-1299   
PNTOCS		#39-1386   
PNTOCT		#38-1354   
PNTODT		#41-1451   
PNT36 		#34-1244   
PNT36B		#37-1327   
POP   		#4-280     #9-503      66-2619    80-3683    80-3684    81-3783    81-3784    81-3785    84-3913    84-3937   
                 87-4065    87-4066    87-4067    89-4134    99-4575    106-4862   108-4927   126-5615   128-5707   136-6055  
                 138-6134   139-6155   141-6232   151-6632   155-6933   159-7218   197-9392   202-9736   203-9779   205-9859  
                 206-9882   206-9907   210-10117  214-10247  214-10261  215-10275  215-10295  218-10408  218-10434  219-10480 
                 221-10556  222-10613  222-10615  225-10800  227-10879  235-11318  237-11394 
PRDP$ 		#131-5847   131-5852  
PREX$ 		#131-5847   131-5853  #137-6086   137-6092  
PRINT 		#7-406      56-2090    57-2118    60-2238    66-2599    66-2638    67-2674    70-3001    70-3020    78-3317   
                 78-3446    78-3473    78-3505    80-3613    80-3658    81-3713    81-3760    84-3936    85-3974    86-4000   
                 86-4038    91-4194    91-4200    91-4211    91-4229    91-4254    91-4258    101-4664   113-5084   114-5115  
                 117-5214   120-5309   132-5896   133-5944   136-6053   138-6132   141-6230   143-6295   146-6404   149-6523  
                 151-6637   151-6672   151-6718   152-6732   155-6900   157-7064   157-7075   157-7090   157-7097   158-7191  
                 161-7287   161-7326   162-7352   162-7363   163-7396   165-7484   165-7499   166-7512   166-7545   168-7592  
                 168-7603   171-7723   172-7807   172-7825   174-7905   174-7965   175-8015   175-8030   176-8204   176-8221  
                 176-8246   176-8286   176-8294   178-8364   178-8390   178-8395   185-8693   185-8698   186-8786   186-8793  
                 195-9286   195-9313   200-9657   230-11109  234-11287  237-11398 
PSLASH		#45-1584   
PSPACE		#45-1580   
PTAB  		#45-1592   
PUSH  		#4-274     #9-497      66-2616    80-3606    80-3607    81-3708    81-3709    81-3710    84-3911    84-3935   
                 87-4052    87-4053    89-4127    99-4563    106-4860   108-4924   126-5599   128-5705   132-5877   133-5916  
                 136-6038   138-6115   139-6152   141-6214   151-6630   152-6771   155-6925   158-7163   159-7197   197-9390  
                 202-9717   203-9754   205-9829   206-9878   206-9886   210-10110  214-10242  214-10251  215-10270  215-10279 
                 218-10402  218-10412  219-10463  221-10532  222-10575  222-10577  225-10768  225-10773  225-10785  225-10790 
                 225-10796  227-10875  235-11307  237-11360 
QDPB$ 		#92-4303    92-4303   #92-4304    92-4304   #94-4390    94-4390   #94-4391    94-4391   #94-4392    94-4392   
                #103-4723   103-4723  #103-4724   103-4724  #103-4725   103-4725  #105-4811   105-4811  #105-4812   105-4812  
                #105-4813   105-4813  #105-4814   105-4814  #107-4901   107-4901  #107-4902   107-4902  #107-4903   107-4903  
                #107-4904   107-4904  #121-5348   121-5348  #190-8919   190-8919  #223-10657  223-10657 #223-10658  223-10658 
                #223-10659  223-10659 #223-10660  223-10660 
QDPB$S		#114-5106   114-5106  #120-5293   120-5293  #157-7070   157-7070  
QIOW$ 		#92-4298    92-4303    92-4304   #94-4385    94-4390    94-4391    94-4392   #103-4717   103-4723   103-4724  
                 103-4725  #105-4805   105-4811   105-4812   105-4813   105-4814  #107-4896   107-4901   107-4902   107-4903  
                 107-4904  #121-5343   121-5348  #190-8909   190-8919  #223-10652  223-10657  223-10658  223-10659  223-10660 
QIOW$S		#109-4962   114-5106  #115-5150   120-5293  #156-6972   157-7070  
REGRST		#32-1198   
REGSAV		#32-1194   
RETURN		#4-266     #9-489      52-1840    53-1871    54-1912    56-2092    57-2120    60-2256    61-2282    62-2329   
                 63-2412    66-2602    66-2627    66-2641    67-2678    70-3013    70-3022    71-3066    72-3082    73-3117   
                 74-3148    75-3175    76-3193    80-3685    81-3786    83-3871    84-3931    84-3946    85-3987    86-4034   
                 86-4044    87-4068    89-4136    93-4348    98-4541    99-4576    101-4666   102-4685   104-4771   106-4858  
KLIMON     CREATED BY  MACRO  ON 16-MAY-88 AT 16:03	PAGE 34

MACRO CROSS REFERENCE                                   CREF   04.00 

MACRO NAME	REFERENCES

                 108-4930   110-4999   111-5018   111-5023   112-5056   113-5081   113-5086   114-5112   114-5117   116-5186  
                 117-5211   117-5216   118-5250   119-5276   120-5301   120-5307   120-5311   122-5367   124-5487   125-5586  
                 126-5616   126-5622   128-5697   129-5769   130-5814   132-5881   132-5898   133-5926   133-5943   133-5946  
                 134-5958   134-5978   134-5980   136-6056   138-6135   139-6156   141-6233   143-6304   143-6329   146-6408  
                 146-6462   149-6528   149-6556   152-6740   152-6784   155-6902   155-6921   155-6934   157-7099   158-7189  
                 159-7219   163-7439   175-8077   177-8318   178-8399   179-8446   180-8457   181-8507   182-8542   186-8789  
                 187-8825   188-8850   196-9379   199-9488   200-9660   202-9737   203-9780   205-9860   206-9883   206-9908  
                 208-10018  209-10094  210-10118  214-10248  214-10262  215-10276  215-10296  216-10315  216-10333  216-10351 
                 218-10409  218-10435  219-10481  221-10557  222-10616  224-10735  225-10801  227-10883  228-10906  229-11038 
                 229-11072  230-11112  231-11148  231-11156  233-11234  234-11290  235-11319  236-11344  237-11395  238-11444 
                 239-11506 
RVP$  		#114-5106   114-5106  #120-5293   120-5293  #157-7070   157-7070  #188-8837   188-8837  
SL    		#5-289     #10-509     179-8413  
SM    		#29-1100   
SR    		#5-302     #10-523     179-8416   239-11496 
TRACK 		#7-415      124-5434   125-5503   126-5600   128-5676   129-5729   130-5783   132-5893   133-5936   136-6042  
                 138-6130   141-6226   155-6869   155-6926   233-11221  234-11253  235-11306  237-11359 
TTIDEC		#47-1652   
TTILIN		#48-1678   
TTILNW		#49-1704   
TTIOCT		#46-1624   
WARNIN		#7-398      58-2195    82-3828    82-3830    82-3832    82-3834    90-4178    142-6272   145-6374   148-6505  
                 160-7257   170-7682   175-8185   175-8187  
WD22$ 		#6-359      51-1780    131-5854   183-8596   183-8597   183-8598  
WD36$ 		#6-371      51-1778    51-1781    55-1970    123-5413   123-5416   127-5657   127-5658   131-5856   137-6093  
                 154-6841   154-6850   154-6851   154-6852   175-8150   183-8594   183-8595   190-8925   199-9555   199-9557  
                 199-9559   199-9562   232-11192  232-11194  232-11196 
WSIG$S		#183-8584   188-8841  
WTSE$S		#175-8127   182-8540  #183-8584   188-8845  #199-9526  #223-10652 
WWADR 		#30-1129   
$DEF  		#4-197      4-198     #8-472      8-474     
$PMSG 		#44-1549