Google
 

Trailing-Edge - PDP-10 Archives - BB-H311B-RM - rsx20f-swskit/listings/klinit.l91
There are 3 other files named klinit.l91 in the archive. Click here to see a list.
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14
TABLE OF CONTENTS

     8-  410	MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
    12-  543	DMBMCP -- DTE-20 OPERATION MACROS
    32- 1136	REGISTER SAVE/RESTORE TRANSLATION MACROS
    52- 1754	$LDNGO	-- LOAD AC BLOCKS AND GO
    53- 1811	$ZERAC	-- ZERO AC SETS 0 TO 6
    54- 1842	$XCDT	-- INSTRUCTION EXECUTER
    56- 1955	$SETCA	-- CONFIGURE CACHE
    60- 2179	$MCBLD	-- LOAD THE RAMS
    68- 2609	$FILE	-- WRITE THE CONFIGURATION FILE
    70- 2827	$FILE	-- WRITE BOOTSTRAP RECORD
    71- 2866	$FILE	-- WRITE END-OF-FILE RECORD
    72- 2882	$FILE	-- WRITE MEMORY CONTROLLER RECORDS
    73- 2917	$FILE	-- WRITE CACHE RECORDS
    75- 2998	$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
    77- 3309	$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
    78- 3438	$CHKMM -- CHECK MOS MEMORY CONFIGURATION
    80- 3587	$CONFG -- EDITOR DISPATCH
    81- 3622	CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
    82- 3697	CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
    83- 3738	CFGMOS -- MOS CONFIGURATION EDITOR
    84- 3798	$MAPMM -- MAP MOS CONTROLLER BLOCKS
    86- 3860	$SWEEP	-- SWEEP AND INVALIDATE THE CACHE
    88- 3933	$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
    90- 4058	$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES
    95- 4257	$DELETE	-- DELETE A FILE
    96- 4287	$SETFN	-- SET FILE NAME IN FILE NAME BLOCK
    98- 4356	$IOERR	-- REPORT I/O ERROR
   101- 4472	$LOOKUP	-- LOOK UP AN EXISTING FILE
   103- 4559	$ENTER	-- ENTER A NEW FILE
   105- 4643	$PURGE	-- PURGE FILES CURRENTLY OPEN
   107- 4707	$READC	-- START READING A RECORD
   108- 4735	$READS	-- SKIP THE CURRENT RECORD
   109- 4759	$READW	-- READ A WORD
   110- 4792	$READB	-- READ A BYTE
   111- 4822	$READ	-- READ NEXT VIRTUAL BLOCK
   113- 4893	$WRITC	-- START WRITING A RECORD
   114- 4920	$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK
   115- 4950	$WRITW	-- WRITE A WORD
   116- 4984	$WRITB	-- WRITE A BYTE
   117- 5010	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   119- 5081	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   121- 5148	$WCRAM	-- WRITE C-RAM WORD
   122- 5217	$RCRAM	-- READ C-RAM WORD
   123- 5316	$ACRAM	-- ADDRESS C-RAM WORD
   125- 5388	$WDRAM	-- WRITE D-RAM WORD
   126- 5441	$RDRAM	-- READ D-RAM WORD
   127- 5497	$ADRAM	-- ADDRESS D-RAM WORD
   129- 5587	$DPOS	-- DEPOSIT KL MEMORY ROUTINE
   130- 5624	$EXAM	-- EXAMINE KL MEMORY ROUTINE
   133- 5744	$DFRD	-- DIAGNOSTIC READ FUNCTION
   135- 5821	$DFWR	-- DIAGNOSTIC WRITE FUNCTION
   138- 5920	$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION
   140- 5994	$GETCA	-- SET CACHE CONFIGURATION TABLES
   143- 6095	$GETMM	-- SET UP MEMORY CONFIGURATION TABLES
   145- 6226	$GETTF -- READ MF20 TIMING FILE DATA
   149- 6475	$KLMR	-- DO A MASTER RESET ON THE KL
   149- 6540	$KLSR	-- SOFT RESET FOR RAM LOADERS
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14
TABLE OF CONTENTS

   151- 6641	$INIT	-- PROGRAM INITIALIZATION
   153- 6751	$DFPC -- KL PC READ SUBROUTINE 7510.21
   156- 6879	$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED
   157- 6946	$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
   158- 6995	LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
   160- 7086	$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED
   161- 7120	LQCCM	-- ASK WHICH CACHES TO CONFIGURE
   163- 7193	$DLGEX	-- ASK WHERE TO EXIT
   166- 7288	$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY
   168- 7441	$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER
   170- 7514	$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED
   172- 7664	$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED
   177- 8007	$POWER	-- POWER FAILURE RESTART
   178- 8032	$RSTRT	-- SYSTEM CRASH RESTART
   182- 8197	GLOBAL DATA STORAGE
   186- 8450	$START	-- MAIN PROGRAM FLOW CONTROL
   187- 8558	$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
   188- 8599	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   188- 8613	$ASCII	-- TRANSFER ASCII STRING
   189- 8634	$TRACK	-- SPECIAL TRACK ROUTINE
   191- 8774	$TENST	-- START KL BOOT
   193- 8900	$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME
   194- 8939	$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY
   196- 9010	$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII
   197- 9061	$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD
   199- 9154	$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
   200- 9218	$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
   201- 9294	TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
   203- 9351	$TENAD	-- DISPLAY KL ADDRESS/16K
   205- 9433	$WRD22	-- DISPLAY 22 BIT KL WORD
   206- 9461	$WRD36	-- DISPLAY 36 BIT KL WORD
   209- 9579	$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII
   210- 9632	$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
   212- 9707	$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD
   213- 9753	$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII
   215- 9864	$TTRD	-- READ A LINE FROM THE CONSOLE TTY
   217- 9953	$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY
   218-10004	$TTWR	-- WRITE A LINE TO THE CONSOLE TTY
   220-10073	$EXBLD	-- LOAD THE BOOT
   224-10278	$EXCT	-- EXECUTE KL INSTRUCTION
   225-10309	$STRKL	-- START THE KL PROCESSOR
   226-10365	$WTKL	-- WAIT FOR KL PROGRAM TO HALT
   227-10394	$LDAR	-- LOAD THE AR REGISTER
   228-10419	STPKL	-- HALT THE KL CPU
   229-10476	$MBPHS	-- PHASE THE KL CLOCKS
   230-10528	$BURST	-- BURST THE M-BOX CLOCK
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1110  15-OCT-79 14:14  PAGE 1


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


     58		000001 				$RX11	=1	; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
     59					.ENDC			; $T1091
     60					.ENDC			; $TOP10
     61
     62					.IF DF	$TOP20
     63						$RX11	=1	; INCLUDE FLOPPY DRIVER
     64					.ENDC			; $TOP20
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 2


     66						.TITLE	KLINIT - KL CPU INITIALIZATION PROGRAM
     67						.IDENT	/012120/
     68						.ENABL	AMA
     69						.LIST	MEB
     70						.NLIST	CND
     71
     72					;
     73					;                             COPYRIGHT (C) 1975, 1978 BY
     74					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
     75					;
     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: 12-12
     90					;
     91					; ALAN D. PECKHAM  29-MAR-77
     92					;
     93					; MODIFIED BY:
     94					;
     95					;	R. BELANGER	16-JUL-79	ADD ENVIRONMENTAL REPORTING
     96					;					TCO 4.2333
     97					;
     98					;	R. BELANGER	11-JUL-79	ADD FORCE MEMORY CONFIGURATION OPTION.
     99					;					ADD FORCE DBE SCAN ON MF-20 POWERFAIL.
    100					;					TCO 4.2322
    101					;
    102					;	K. LEFEBVRE	13-MAR-79	ADD EXPANDED CRAM/DRAM ERROR REPORT
    103					;					TCO 4.2209
    104					;
    105					;	K. LEFEBVRE	01-MAR-79	ADD PERMANENT TRACK FEATURE
    106					;					TCO 4.2210
    107					;
    108					;	R. BELANGER	01-MAR-79	ADD REVERSE MEMORY CONFIGURATION
    109					;					TCO 4.2204
    110					;
    111					;	R. BELANGER	06-DEC-78	ADD NEW KEEP-ALIVE-CEASE PROCESSING
    112					;					TCO 4.2107
    113					;
    114					;	R. BELANGER	16-NOV-78	ADD TOPS-10 SMP FEATURES
    115					;					CHANGE VERSION TO 11
    116					;
    117					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
    118					;					CHANGE VERSION TO 10
    119					;
    120					;	R. BELANGER	27-JAN-78	CHANGE VERSION TO 7
    121					;					REMOVE "$ARPA" CONDITIONALS
    122					;					ADD "$RV" CONDITIONAL
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 2-1


    123					;					REMOVE "SXCT" CODE FOR REV. 10 MACHINES
    124					;
    125					;	R. BELANGER	10-SEP-77	CHANGE VERSION TO 6
    126					;					INCLUDE INTERNAL AND EXTERNAL
    127					;					MEMORY CONFIGURATORS
    128					;
    129					; THIS MODULE CONTAINS SYMBOLS AND MACROS USED GENERALLY BY ALL KLINIT
    130					;  MODULES.
    131					;
    132					; SET VERSION OF KLINIT HERE
    133					;
    134		000012 			KLI$$V	=	12		; VERSION 12
    135		000012 			KLI$$E	=	12		; EDIT 12
    136					;
    137					; THIS KLINIT IS RELEASED
    138					;
    139		000126 			KLI$$K	=	'V		; KEY FOR RELEASE
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 3


    141					;+
    142					; NOW SET THE SWITCHES WHICH WILL DETERMINE WHAT KLINIT WILL
    143					; INTERFACE TO.
    144					;
    145					;	C.ACHE	IF DEFINED WILL ALLOW KLINIT TO HANDLE CACHES
    146					;
    147					;	F.TRCK	IF DEFINED WILL INCLUDE CODING TO ALLOW TRACKING OF FUNCTIONS
    148					;		BEING DONE ON THE KL CPU
    149					;
    150					;	F.PTCH	IF DEFINED WILL INCLUDE A FREE AREA LABELED "PATCH" IN WHICH
    151					;		TO INSERT CODING PATCHES DURING PROGRAM DEBUGGING
    152					;
    153					; DEFINITIONS MADE HERE:
    154					;-
    155
    159
    161		000101 			KLI$$F	=	'A		; TOPS10 REV 10 FORM OF KLINIT.
    163
    167
    168		000000 			C.ACHE	=	0		; SYSTEM HAS CACHE
    169
    170		000000 			F.TRCK	=	0		; [TCO 4.2210] INCLUDE FUNCTION TRACK
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 4


    172					;
    173					; GLOBAL MACROS
    174					;
    175						.MCALL	$DEF,DIR$
    176	000000					$DEF
    177
    178					;
    179					; LOCAL MACROS
    180					;
    181					;+
    182					; MACRO TO SET IDENT FOR KLINIT MODULES.
    183					; FORMAT OF CALL IS:
    184					;	IDENT$	VERSION,EDIT
    185					; OR
    186					;	IDENT$	VERSION,EDIT,KLI$$F
    187					; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
    188					;-
    189
    190						.MACRO	IDENT$ VER,EDT,FRM,XA,XB,XC,NUM
    191						.IF	B,NUM
    192						.IF	B,FRM
    193						IDENT$	\VER,\EDT,0,,,,0
    194						.IFF
    195						.IF	EQ,<FRM-'A>
    196						IDENT$	\VER,\EDT,A,,,,0
    197						.IFF
    198						.IF	EQ,<FRM-'B>
    199						IDENT$	\VER,\EDT,B,,,,0
    200						.IFF
    201						IDENT$	\VER,\EDT,C,,,,0
    202						.ENDC
    203						.ENDC
    204						.ENDC
    205						.MEXIT
    206						.IFF
    207						.IF	GE,VER-10
    208						.IF	GE,EDT-10
    209						.LIST
    210						.IDENT	/'FRM'VER'EDT'0/
    211						.NLIST
    212						.IFF
    213						.LIST
    214						.IDENT	/'FRM'VER'0'EDT'0/
    215						.NLIST
    216						.ENDC
    217						.IFF
    218						.IF	GE,EDT-10
    219						.LIST
    220						.IDENT	/'FRM'0'VER'EDT'0/
    221						.NLIST
    222						.IFF
    223						.LIST
    224						.IDENT	/'FRM'0'VER'0'EDT'0/
    225						.NLIST
    226						.ENDC
    227						.ENDC
    228						.ENDC
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 4-1


    229						.ENDM	IDENT$
    230
    231						.MACRO	CALL	X,Y
    232						.NTYPE	$$,X
    233						.IF	EQ,$$&70
    234						 JSR	X,Y
    235						.IFF
    236						 JSR	PC,X
    237						.ENDC
    238						.ENDM	CALL
    239
    240						.MACRO	CALLR	X
    241						 JMP	X
    242						.ENDM	CALLR
    243
    244						.MACRO	RETURN	X
    245						.IF	NB,<X>
    246						 RTS	X
    247						.IFF
    248						 RTS	PC
    249						.ENDC
    250						.ENDM	RETURN
    251
    252						.MACRO	PUSH	LOCS
    253						.IRP	L,<LOCS>
    254						 MOV	L,-(SP)
    255						.ENDR
    256						.ENDM	PUSH
    257
    258						.MACRO	POP	LOCS
    259						.IRP	L,<LOCS>
    260						 MOV	(SP)+,L
    261						.ENDR
    262						.ENDM	POP
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 5


    264					;
    265					; SHIFT MACROS
    266					;
    267						.MACRO	SL	R,N
    268						.IF	GT,N-7
    269						 SWAB	R
    270						.REPT	N-10
    271						 ASL	R
    272						.ENDR
    273						.IFF
    274						.REPT	N
    275						 ASL	R
    276						.ENDR
    277						.ENDC
    278						.ENDM	SL
    279
    280						.MACRO	SR	R,N
    281						.IF	GT,N-7
    282						 SWAB	R
    283						.REPT	N-10
    284						 ASR	R
    285						.ENDR
    286						.IFF
    287						.REPT	N
    288						 ASR	R
    289						.ENDR
    290						.ENDC
    291						.ENDM	SR
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 6


    293					;
    294					; KL INSTRUCTION AND DATA CREATION MACROS
    295					;
    296		000005 			I.10L	=	5		; KL INSTRUCTIONS TAKE 5 -11 BYTES !!!!
    297		000005 			W.10L	=	5		; KL WORDS TAKE 5 BYTES ALSO.
    298
    299						.MACRO	I10$	OP,AC,I,AD,XR
    300						 BY$$0=0
    301						 BY$$1=0
    302						 BY$$2=0
    303						.IRPC	AD1,AD
    304						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    305						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    306						 BY$$0=<BY$$0*10&370>+<AD1>
    307						.ENDM
    308						 BY$$2=<AC+0&1*200>+<I+0&1*100>+<XR+0&17*4>+BY$$2
    309						 BY$$3=<OP&37*10>+<AC+0/2&7>
    310						 BY$$4=<OP/40>
    311						 .BYTE	BY$$0,BY$$1,BY$$2
    312						 .BYTE	BY$$3,BY$$4
    313						.ENDM	I10$
    314
    315						.MACRO	IO10$	OP,DV,I,AD,XR
    316						 BY$$0=0
    317						 BY$$1=0
    318						 BY$$2=0
    319						.IRPC	AD1,AD
    320						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    321						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    322						 BY$$0=<BY$$0*10&370>+<AD1>
    323						.ENDM
    324						 BY$$2=<OP&1*200>+<I+0&1*100>+<XR+0&17+0*4>+BY$$2
    325						 BY$$3=<DV&374>+<OP/2&3>
    326						 BY$$4=16+<DV/400&1>
    327						 .BYTE	BY$$0,BY$$1,BY$$2
    328						 .BYTE	BY$$3,BY$$4
    329						.ENDM	IO10$
    330
    331						.MACRO	WD22$	AD
    332						 BY$$0=0
    333						 BY$$1=0
    334						 BY$$2=0
    335						.IRPC	AD1,AD
    336						 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
    337						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    338						 BY$$0=<BY$$0*10&370>+<AD1>
    339						.ENDM
    340						 .BYTE	BY$$0,BY$$1,BY$$2
    341						.ENDM	WD22$
    342
    343						.MACRO	WD36$	LH,RH
    344						 BY$$0=0
    345						 BY$$1=0
    346						 BY$$2=0
    347						 BY$$3=0
    348						 BY$$4=0
    349						.IRPC	AD1,LH
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 6-1


    350						 BY$$4=<BY$$4*10&010>+<BY$$3/40&007>
    351						 BY$$3=<BY$$3*10&370>+<BY$$2/40&007>
    352						 BY$$2=<BY$$2*10&340>+<AD1*4>
    353						.ENDM
    354						.IRPC	AD1,RH
    355						 BY$$2=<BY$$2&374>+<BY$$1/40&003>
    356						 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
    357						 BY$$0=<BY$$0*10&370>+<AD1>
    358						.ENDM
    359						 .BYTE	BY$$0,BY$$1,BY$$2
    360						 .BYTE	BY$$3,BY$$4
    361						.ENDM	WD36$
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 7


    363					;
    364					; MESSAGE FORMATING AND PRINT MACROS
    365					;
    366						.MACRO	MESSAGE	MSG
    367						 .ASCIZ	\'MSG'\
    368						.ENDM	MESSAGE
    369
    370						.MACRO	WARNING	MSG
    371						 .ASCIZ	\% 'MSG'\
    372						.ENDM	WARNING
    373
    374						.MACRO	ERROR	MSG
    375						 .ASCIZ	\? 'MSG'\
    376						.ENDM	ERROR
    377
    378						.MACRO	PRINT	ADR
    379						.IF	NB,<ADR>
    380						 MOV	ADR,R0
    381						.ENDC
    382						 JSR	PC,$TTMSG
    383						.ENDM	PRINT
    384
    385					;---	SPECIAL TRACK MACRO
    386
    387						.MACRO	TRACK	FN,ADR1,ADR2,?A1
    388						.IF	DF,F.TRCK
    389						 JSR	R0,A1
    390						 .WORD	"FN
    391						 .WORD	ADR1
    392						 .WORD	ADR2
    393					A1:	 JSR	PC,$TRACK
    394						 MOV	(SP)+,R0
    395						.ENDC
    396						.ENDM	TRACK
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 8


    398					;
    399					; EQUATED SYMBOLS
    400					;
    401		000200 			ED.PHY	=	200
    402		000001 			TTILUN	=	1		; TT: INPUT LOGICAL UNIT
    403		000002 			TTOLUN	=	2		; TT: OUTPUT LOGICAL UNIT
    404		000003 			LPOLUN	=	3		; LP: OUTPUT LOGICAL UNIT
    405		000004 			SYILUN	=	4		; SY: INPUT LOGICAL UNIT
    406		000005 			SYOLUN	=	5		; SY: OUTPUT LOGICAL UNIT
    407		000006 			SYFLUN	=	6		; SY: GENERAL FUNCTION LOGICAL UNIT
    408		000040 			CTLS	=	40		; MAXIMUM NUMBER OF CONTROLLERS.
    409		000037 			LCTL	=	CTLS-1		; LAST CONTROLLER NUMBER.
    410						.SBTTL	MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
    411
    412						.IDENT	/001020/
    413
    414					;                            COPYRIGHT (C) 1975, 1978 BY
    415					;                    DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
    416					;
    417					;      THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
    418					;      ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
    419					;      OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
    420					;      OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
    421					;      NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
    422					;
    423					;      THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
    424					;      NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
    425					;      CORPORATION.
    426					;
    427					;      DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
    428					;      SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
    429					;
    430					;	VERSION:	01-02
    431					;
    432					;	AUTHOR:		R. BELANGER
    433					;
    434					;	DATE:		11-AUG-78
    435					;
    436					;	MODIFICATIONS:
    437					;
    438					;	EDIT	PROGRAMMER		REASON
    439					;	----	----------		------
    440					;	001	R. BELANGER		FIX BUG IN "PMSG"
    441					;     4.2218	K. LEFEBVRE		FIX BUG IN "EXAM"
    442
    443						.MCALL	$DEF
    444
    445	000000					$DEF
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 9
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    447						.MACRO	CALL	X,Y
    448						.NTYPE	$$,X
    449						.IF	EQ,$$&70
    450						 JSR	X,Y
    451						.IFF
    452						 JSR	PC,X
    453						.ENDC
    454						.ENDM	CALL
    455
    456						.MACRO	CALLR	X
    457						 JMP	X
    458						.ENDM	CALLR
    459
    460						.MACRO	RETURN	X
    461						.IF	NB,<X>
    462						 RTS	X
    463						.IFF
    464						 RTS	PC
    465						.ENDC
    466						.ENDM	RETURN
    467
    468						.MACRO	PUSH	LOCS
    469						.IRP	L,<LOCS>
    470						 MOV	L,-(SP)
    471						.ENDR
    472						.ENDM	PUSH
    473
    474						.MACRO	POP	LOCS
    475						.IRP	L,<LOCS>
    476						 MOV	(SP)+,L
    477						.ENDR
    478						.ENDM	POP
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 10
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    480					.MACRO	SL	REG,NUM
    481							.IF	GT,NUM-7
    482							.IFT
    483						  SWAB	REG
    484							.REPT	NUM-^D8
    485						  ASL	REG
    486							.ENDR
    487							.IFF
    488							.REPT	NUM
    489						  ASL	REG
    490							.ENDR
    491							.ENDC
    492					.ENDM
    493
    494					.MACRO	SR	REG,NUM
    495							.IF	GT,NUM-7
    496							.IFT
    497						  SWAB	REG
    498							.REPT	NUM-^D8
    499						  ASR	REG
    500							.ENDR
    501							.IFF
    502							.REPT	NUM
    503						  ASR	REG
    504							.ENDR
    505							.ENDC
    506					.ENDM
    507
    508					.MACRO	EXOR	REG,DESTIN,SCRTCH
    509							.IF	NB,SCRTCH
    510							.IFT
    511						  MOV	REG,SCRTCH
    512						  BIC	DESTIN,SCRTCH
    513						  BIC	REG,DESTIN
    514						  BIS	SCRTCH,DESTIN
    515							.IFF
    516						  MOV	REG,-(SP)
    517						  BIC	DESTIN,(SP)
    518						  BIC	REG,DESTIN
    519						  BIS	(SP)+,DESTIN
    520							.ENDC
    521					.ENDM
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 11
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE

    523
    524		000000 			STPCLK=	000	; STOP CLOCK
    525		000001 			STRCLK=	001	; START CLOCK
    526		000002 			SSCLK=	002	; SINGLE STEP THE MBOX CLOCK
    527		000003 			SECLK=	003	; SINGLE STEP EBOX CLOCK
    528		000004 			CECLK=	004	; CONDITIONAL EBOX CLOCK
    529		000006 			CLRMR=	006	; CLEAR MR RESET
    530		000007 			SETMR=	007	; SET MR RESET
    531		000005 			BRCLK=	005	; BURST THE CLOCK
    532		000011 			SETRUN=	011	; SET THE RUN FLOP
    533		000012 			CONBUT=	012	; SET THE CONTINUE BUTTON
    534		000077 			LDAR=	077	; LOAD THE AR REGISTER
    535
    536		000002 			$SBDIAG=BLKO
    537		000004 			$$SBDIAG=PI
    538		000000 			$APRID=BLKI
    539		000000 			$$APRID=APR
    540		000000 			$RDERA=BLKI
    541		000004 			$$RDERA=PI
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 12
DMBMCP -- DTE-20 OPERATION MACROS

    543					.SBTTL	DMBMCP -- DTE-20 OPERATION MACROS
    544
    545					;+
    546					; DFRD -- DIAGNOSTIC FUNCTION READ TRANSLATION MACRO
    547					;
    548					; DFRD TRANSLATES THE DIAGNOSTIC EMT 116 IN TO A CALL TO "$DDFRD"
    549					;
    550					; SEQUENCE OF OPERATION:
    551					;
    552					;	1. R1 IS SAVED ON THE STACK
    553					;	2. R1 IS SET POINTING TO STORAGE
    554					;	3. CALL TO "$DDFRD" IS MADE
    555					;
    556					; ERROR RETURN -- CC-C SET
    557					;
    558					; SUCCESS RETURN -- CC-C CLEAR
    559					;
    560					;	R0 -- POINTS TO DEXWDS IN ".DFRBK"
    561					;
    562					; STACK SUMMARY:
    563					;
    564					;	STACK IS UNAFFECTED
    565					;
    566					; CALLER'S RESPONSIBILITIES:
    567					;
    568					;	NONE
    569					;
    570					;-
    571
    572					.MACRO	DFRD	FUNC,ADDR
    573					.IF	NB,FUNC
    574						 MOV	#FUNC,R0	; ** FUNCTION READ CODE TO R0
    575					.ENDC	; .IF NB,FUNC
    576						 MOV	R1,-(SP)	; ** SAVE R1
    577					.IF	NB,ADDR
    578						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    579					.IFF
    580						 CLR	R1		; ** NO DATA BUFFER
    581					.IFTF
    582						 JSR	PC,$DDFRD	; ** EXECUTE THE FUNCTION READ
    583						 MOV	(SP)+,R1	; ** RESTORE R1
    584					.ENDC	; .IF NB,ADDR
    585					.ENDM	; DFRD
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 13
DMBMCP -- DTE-20 OPERATION MACROS

    587					;+
    588					; DFRDT -- DIAGNOSTIC FUNCTION READ (TRAILING) TRANSLATION MACRO
    589					;
    590					; DFRDT TRANSLATES THE DIAGNOSTIC EMT 140 INTO A "DFRD" MACRO (Q.V.)
    591					;-
    592
    593					.MACRO	DFRDT	FUNC,ADDR
    594					.IF	NB,FUNC
    595						 MOV	#FUNC,R0	; ** FUNCTION READ CODE TO R0
    596					.ENDC	; .IF NB,FUNC
    597						 MOV	R1,-(SP)	; ** SAVE R1
    598					.IF	NB,ADDR
    599						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    600					.IFF
    601						 CLR	R1		; ** NO DATA BUFFER
    602					.IFTF
    603						 JSR	PC,$DDFRD	; ** EXECUTE THE FUNCTION READ
    604						 MOV	(SP)+,R1	; ** RESTORE R1
    605					.ENDC	; .IF NB,ADDR
    606					.ENDM	; DFRDT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 14
DMBMCP -- DTE-20 OPERATION MACROS

    608					;+
    609					; DFWRT -- DIAGNOSTIC FUNCTION WRITE TRANSTATION MACRO
    610					;
    611					; DFWRT  TRANSLATES A DIAGNOSTIC EMT 141 IN TO A CALL TO "$DDFWR"
    612					;
    613					; SEQUENCE OF OPERATION:
    614					;
    615					;	1. DATA POINTER IS LOADED INTO R1
    616					;	2. FUNCTION CODE IS LOADED INTO R0
    617					;	3. CALL IS MADE TO "$DFWR"
    618					;
    619					; ERROR RETURN -- CC-C SET
    620					;
    621					; SUCCESS RETURN -- CC-C CLEAR
    622					;
    623					;	R0, R1 -- UNCHANGED
    624					;
    625					; STACK SUMMARY:
    626					;
    627					;	STACK IS UNAFFECTED
    628					;
    629					; CALLER'S REPONSIBILITIES:
    630					;
    631					;	NONE
    632					;-
    633
    634					.MACRO	DFWRT	ADDR,FUNC
    635					.IF	NB,FUNC
    636						 MOV	#FUNC,R0	; ** FUNCTION WRITE CODE TO R0
    637					.ENDC	; .IF NB,FUNC
    638					.IF	NB,ADDR
    639						 MOV	R1,-(SP)	; ** SAVE R1
    640						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    641					.IFTF
    642						 JSR	PC,$DDFWR	; ** EXECUTE THE FUNCTION WRITE
    643					.IFT
    644						 MOV	(SP)+,R1	; ** RESTORE R1
    645					.ENDC	; .IF NB,ADDR
    646					.ENDM	; DFWRT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 15
DMBMCP -- DTE-20 OPERATION MACROS

    648					;+
    649					; DFWRTT -- DIAGNOSIC FUNCTION WRITE (TRAILING) TRANSLATION MACRO
    650					;
    651					; DFWRT TRANSLATES A DIAGNOSTIC EMT 140 INTO A CALL TO "$DDFWR"
    652					;
    653					; SEQUENCE OF OPERATION:
    654					;
    655					;	1. DATA POINTER IS LOADED INTO R1
    656					;	2. FUNCTION CODE IS LOADED INTO R0
    657					;	3. CALL IS MADE TO "$DDFWR"
    658					;
    659					; ERROR RETURN -- CC-C SET
    660					;
    661					; SUCCESS RETURN -- CC-C CLEAR
    662					;
    663					;	R0, R1 -- UNCHANGED
    664					;
    665					; STACK SUMMARY:
    666					;
    667					;	STACK IS UNAFFECTED
    668					;
    669					; CALLER'S REPONSIBILITIES:
    670					;
    671					;	NONE
    672					;-
    673
    674					.MACRO	DFWRTT	ADDR,FUNC
    675					.IF	NB,FUNC
    676						 MOV	#FUNC,R0	; ** FUNCTION WRITE CODE TO R0
    677					.ENDC	; .IF NB,FUNC
    678					.IF	NB,ADDR
    679						 MOV	R1,-(SP)	; ** SAVE R1
    680						 MOV	#ADDR,R1	; ** BUFFER POINTER TO R1
    681					.IFTF
    682						 JSR	PC,$DDFWR	; ** EXECUTE THE FUNCTION WRITE
    683					.IFT
    684						 MOV	(SP)+,R1	; ** RESTORE R1
    685					.ENDC	; .IF NB,ADDR
    686					.ENDM	; DFWRTT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 16
DMBMCP -- DTE-20 OPERATION MACROS

    688					;+
    689					; DFXCT -- DIAGNOSTIC FUNCTION EXECUTE MACRO
    690					;
    691					; DFXCT TRANSLATES A DIAGNOSTIC EMT 114 IN TO A CALL TO "$DDFXC"
    692					;
    693					; SEQUENCE OF OPERATION:
    694					;
    695					;	1. FUNCTION CODE IS LOADED INTO R0
    696					;	2. CALL IS MADE TO "$DDFXC"
    697					;
    698					; ERROR RETURN -- CC-C SET
    699					;
    700					; SUCCESS RETURN -- CC-C CLEAR
    701					;
    702					;	R0, R1 -- UNCHANGED
    703					;
    704					; STACK SUMMARY:
    705					;
    706					;	STACK IS UNAFFECTED
    707					;
    708					; CALLER'S REPONSIBILITIES:
    709					;
    710					;	NONE
    711					;-
    712
    713					.MACRO	DFXCT	FUNC
    714					.IF	NB,FUNC
    715						 MOV	#FUNC,R0	; ** FUNCTION CODE TO R0
    716					.ENDC	; .IF NB,FUNC
    717						 JSR	PC,$DDFXC	; ** EXECUTE THE FUNCTION EXECUTE
    718					.ENDM	; DFXCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 17
DMBMCP -- DTE-20 OPERATION MACROS

    720					;+
    721					; DFXCTT -- DIAGNOSIC FUNCTION EXECUTE (TRAILING) TRANSLATION MACRO
    722					;
    723					; DFXCTT TRANSLATES A DIAGNOSTIC EMT 115 INTO A CALL TO "$DDFXC"
    724					;
    725					; SEQUENCE OF OPERATION:
    726					;
    727					;	1. FUNCTION CODE IS LOADED INTO R0
    728					;	2. CALL IS MADE TO "$DDFXC"
    729					;
    730					; ERROR RETURN -- CC-C SET
    731					;
    732					; SUCCESS RETURN -- CC-C CLEAR
    733					;
    734					;	R0, R1 -- UNCHANGED
    735					;
    736					; STACK SUMMARY:
    737					;
    738					;	STACK IS UNAFFECTED
    739					;
    740					; CALLER'S REPONSIBILITIES:
    741					;
    742					;	NONE
    743					;-
    744
    745					.MACRO	DFXCTT	FUNC
    746					.IF	NB,FUNC
    747						 MOV	#FUNC,R0	; ** FUNCTION CODE TO R0
    748					.ENDC	; .IF NB,FUNC
    749						 JSR	PC,$DDFXC	; ** EXECUTE THE FUNCTION EXECUTE
    750					.ENDM	; DFXCTT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 18
DMBMCP -- DTE-20 OPERATION MACROS

    752					;+
    753					; DPOS -- DIAGNOSTIC KL10 DEPOSIT MACRO
    754					;
    755					; DPOS TRANSLATES THE DIAGNOSTIC EMT 105 INTO A CALL TO "$DPOS"
    756					;
    757					; SEQUENCE OF OPERATION:
    758					;
    759					;	1. DATA POINTER IS LOADED INTO R0
    760					;	2. KL10 ADDRESS POINTER IS LOADED INTO R1
    761					;	3. THE CALL TO "$DPOS" IS EXECUTED
    762					;
    763					; ERROR RETURN -- CC-C IS SET
    764					;
    765					; SUCCESS RETURN - CC-C IS CLEAR
    766					;
    767					;	R0 AND R1 ARE UNCHANGED
    768					;
    769					; STACK SUMMARY:
    770					;
    771					;	STACK IS UNAFFECTED
    772					;
    773					; CALLER'S RESPONSIBILITIES:
    774					;
    775					;	NONE
    776					;-
    777
    778					.MACRO	DPOS	ADDR,DATA
    779					.IF	NB,DATA
    780						 MOV	#DATA,R0	; ** DATA POINTER TO R0
    781					.ENDC	; .IF NB,DATA
    782					.IF	NB,	ADDR
    783						 MOV	R1,-(SP)	; ** SAVE R1
    784						 MOV	#ADDR,R1	; ** ADDRESS POINTER TO R1
    785					.IFTF
    786						 JSR	PC,$DPOS	; ** EXECUTE THE DEPOSIT
    787					.IFT
    788						 MOV	(SP)+,R1	; ** RESTORE R1
    789					.ENDC	; .IF NB,ADDR
    790					.ENDM	; DPOS
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 19
DMBMCP -- DTE-20 OPERATION MACROS

    792					;+
    793					; DPOST -- DIAGNOSTIC KL10 DEPOSIT (TRAILING) MACRO
    794					;
    795					; DPOST TRANSLATES THE DIAGNOSTIC EMT 106 INTO A CALL TO "$DPOST"
    796					;
    797					; SEQUENCE OF OPERATION:
    798					;
    799					;	1. DATA POINTER IS LOADED INTO R0
    800					;	2. KL10 ADDRESS POINTER IS LOADED INTO R1
    801					;	3. THE CALL TO "$DPOS" IS EXECUTED
    802					;
    803					; ERROR RETURN -- CC-C IS SET
    804					;
    805					; SUCESS RETURN - CC-C IS CLEAR
    806					;
    807					;	R0 AND R1 ARE UNCHANGED
    808					;
    809					; STACK SUMMARY:
    810					;
    811					;	STACK IS UNAFFECTED
    812					;
    813					; CALLERS RESPONSIBILITIES:
    814					;
    815					;	NONE
    816					;-
    817
    818					.MACRO	DPOST	ADDR,DATA
    819					.IF	NB,	ADDR
    820						 MOV	#ADDR,R0	; ** ADDRESS TO R0
    821					.ENDC	; .IF NB,ADDR
    822					.IF	NB,DATA
    823						 MOV	R1,-(SP)	; ** SAVE R1
    824						 MOV	#DATA,R1	; ** DATA POINTER TO R1
    825					.IFTF
    826						 JSR	PC,$DPOST	; ** EXECUTE THE DEPOSIT
    827					.IFT
    828						 MOV	(SP)+,R1	; ** RESTORE R1
    829					.ENDC	; .IF NB,DATA
    830					.ENDM	; DPOST
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 20
DMBMCP -- DTE-20 OPERATION MACROS

    832					;+
    833					; EXAM -- DIAGNOSTIC KL10 EXAMINE TRANSLATION MACRO
    834					;
    835					; EXAM TRANSLATES A DIAGNOSTIC EMT 103 INTO A CALL TO "$EXAM"
    836					;
    837					; SEQUENCE OF OPERATION
    838					;
    839					;	1. R0 POINTS TO THE KL10 ADDRESS
    840					;	2. THE CALL TO "$EXAM" IS EXECUTED
    841					;	3. R0 POINTS TO RETURNED DATA BUFFER
    842					;
    843					; ERROR RETURN -- CC-C IS SET
    844					;
    845					; SUCCESS RETURN -- CC-C CLEAR
    846					;
    847					;
    848					; STACK SUMMARY:
    849					;
    850					;	STACK IS UNAFFECTED
    851					;
    852					; CALLER'S RESPONSIBILITIES:
    853					;
    854					;	NONE
    855					;-
    856
    857					.MACRO	EXAM	ADDR,DATA
    858					.IF	NB,ADDR
    859						 MOV	#ADDR,R0	; ** ADDRESS POINTER TO R0
    860					.ENDC	; .IF NB,ADDR
    861					.IF	NB,DATA
    862						 MOV	R1,-(SP)	; ** SAVE R1
    863						 MOV	#DATA,R1	; ** DATA BUFFER POINTER TO R1
    864					.IFF
    865						MOV	R1,-(SP)	; [4.2218] SAVE R1
    866						MOV	#.WORK,R1	; [4.2218] WORK SPACE
    867					.IFTF
    868						 JSR	PC,$EXAMD	; ** EXECUTE THE KL10 EXAMINE
    869					.IFT
    870						 MOV	(SP)+,R1	; ** RESTORE R1
    871					.IFF
    872						MOV	#.WORK,R0	; [4.2218] PTR TO 36 BIT DATA
    873						MOV	(SP)+,R1	; [4.2218] RESTORE R1
    874					.ENDC	; .IF NB,DATA
    875					.ENDM	; EXAM
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 21
DMBMCP -- DTE-20 OPERATION MACROS

    877					;+
    878					; EXAMT -- DIAGNOSTIC KL10 EXAMINE (TRAILING) TRANSLATION MACRO
    879					;
    880					; EXAMT TRANSLATES A DIAGNOSTIC EMT 104 INTO A CALL TO "$EXAM"
    881					;
    882					; SEQUENCE OF OPERATION
    883					;
    884					;	1. R1 POINTS TO THE RETURNED DATA BUFFER
    885					;	2. R0 POINTS TO THE KL10 ADDRESS
    886					;	3. THE CALL TO "$EXAM" IS EXECUTED
    887					;
    888					; ERROR RETURN -- CC-C IS SET
    889					;
    890					; SUCCESS RETURN -- CC-C CLEAR
    891					;
    892					;	R1 IS MOVED TO R0 TO MAINTAIN COMPATABILITY
    893					;
    894					; STACK SUMMARY:
    895					;
    896					;	STACK IS UNAFFECTED
    897					;
    898					; CALLER'S RESPONSIBILITIES:
    899					;
    900					;	NONE
    901					;-
    902
    903					.MACRO	EXAMT	ADDR,DATA
    904					.IF	NB,ADDR
    905						 MOV	#ADDR,R0	; ** ADDRESS POINTER TO R0
    906					.ENDC	; .IF NB,ADDR
    907					.IF	NB,DATA
    908						 MOV	R1,-(SP)	; ** SAVE R1
    909						 MOV	#DATA,R1	; ** DATA BUFFER POINTER TO R1
    910					.IFTF
    911						 JSR	PC,$EXAMT	; ** EXECUTE THE KL10 EXAMINE
    912					.IFT
    913						 MOV	(SP)+,R1	; ** RESTORE R1
    914					.ENDC	; .IF NB,DATA
    915					.ENDM	; EXAMT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 22
DMBMCP -- DTE-20 OPERATION MACROS

    917					;+
    918					; DFSCLK -- DAGNOSTIC SINGLE STEP CLOCK TRANSLATION MACRO
    919					;
    920					; DFSCLK TRANSALTES A DIAGNOSTIC EMT 122 INTO A "DFXCT SSCLK"
    921					;
    922					; SEE "DFXCT" FOR DETAILS
    923					;-
    924
    925					.MACRO DFSCLK
    926						DFXCT	SSCLK
    927					.ENDM	; DFSCLK
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 23
DMBMCP -- DTE-20 OPERATION MACROS

    929					;+
    930					; DFPC -- DIAGNOSTIC PC READ TRANSLATION MACRO
    931					;
    932					; DFPC RETURNS THE KL10 PC IN A TRIPLET POINTED TO BY R0
    933					;-
    934
    935					.MACRO	DFPC	ADDR
    936					.IF	NB,ADDR
    937						 MOV	#ADDR,R0	; ** BUFFER POINTER TO R0
    938					.ENDC	; .IF NB,ADDR
    939						 JSR	PC,$DFPC	; ** READ THE KL10 PC
    940					.ENDM	; DFPC
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 24
DMBMCP -- DTE-20 OPERATION MACROS

    942					;+
    943					; BURST -- BURST MBOX CLOCK TRANSLATION MACRO
    944					;
    945					; BURST TRANSLATES A DIAGNOSTIC EMT 131 INTO A CALL TO "$BURST"
    946					;
    947					; SEQUENCE OF OPERATION:
    948					;
    949					;	1. THE MBOX CLOCK BURST COUNT IS LOADED INTO R0
    950					;	2. THE CALL TO "$BURST" IS MADE
    951					;
    952					; ERROR RETURN -- CC-C SET
    953					;
    954					; SUCCESS RETURN -- CC-C CLEAR
    955					;
    956					; STACK SUMMARY:
    957					;
    958					;	STACK IS UNAFFECTED
    959					;
    960					; CALLER'S RESPONSIBILITIES:
    961					;
    962					;	NONE
    963					;-
    964
    965					.MACRO	BURST ARG
    966					.IF	NB,ARG
    967						 MOV	#ARG,R0		; ** BURST COUNT TO R0
    968					.ENDC	; .IF NB,ARG
    969						 JSR	PC,$BURST	; ** BURST THE MBOX CLOCK
    970					.ENDM	; BURST
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 25
DMBMCP -- DTE-20 OPERATION MACROS

    972					;+
    973					; DTEBAS -- RETURN DTE-20 BASE ADDRESS TRANSLATION MACRO
    974					;
    975					; DTEBAS RETURNS THE THE BASE ADDRESS OF THE PRIVILEGED DTE-20 FROM
    976					; ".PRDTE" IN THE REGISTER SPECIFIED
    977					;-
    978
    979					.MACRO	DTEBAS	REG
    980					.IF 	NB,REG
    981						 MOV	.PRDTE,REG	; ** DTE-20 BASE ADDRESS TO REG
    982					.IFF
    983						MOV	.PRDTE,R0	; ** DTE-20 BASE ADDRESS TO R0
    984					.ENDC	; .IF NB,REG
    985					.ENDM	; DTEBAS
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 26
DMBMCP -- DTE-20 OPERATION MACROS

    987					;+
    988					; LODAR -- DIAGNOSTIC KL10 AR LOAD TRANSLATION MACRO
    989					;
    990					; LODAR TRANSLATES A DIAGNOSTIC EMT 102 INTO A CALL TO "$LDAR"
    991					;
    992					; SEQUENCE OF OPERATION:
    993					;
    994					;	1. R0 POINTS TO THE DATA TO BE LOADED INTO THE KL10 AR REGISTER
    995					;	2. THE CALL TO "$LDAR" IS MADE
    996					;
    997					; ERROR RETURN -- CC-C SET
    998					;
    999					; SUCCESS RETURN -- CC-C CLEAR
   1000					;
   1001					; STACK SUMMARY:
   1002					;
   1003					;	STACK IS UNAFFECTED
   1004					;
   1005					; CALLER'S RESPONSIBILITIES:
   1006					;
   1007					;	NONE
   1008					;-
   1009
   1010					.MACRO	LODAR	DATA
   1011					.IF	NB,DATA
   1012						 MOV	#DATA,R0	; ** DATA POINTER TO R0
   1013					.ENDC	; .IF NB,DATA
   1014						 JSR	PC,$LDAR	; ** LOAD THE KL10 AR REGISTER
   1015					.ENDM	; LODAR
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 28
DMBMCP -- DTE-20 OPERATION MACROS

   1018					;+
   1019					; EXCT -- DIAGNOSTIC KL10 INSTRUCTION EXECUTE TRANSLATION MACRO
   1020					;
   1021					; EXCT TRANSLATES A DIAGNOSTIC EMT 101 INTO A CALL TO "$EXCT"
   1022					;
   1023					; SEQUENCE OF OPERATION:
   1024					;
   1025					;	1. POINTER TO KL10 INSTRUCTION IS LOADED INTO R0
   1026					;	2. CALL TO "$EXCT" IS MADE
   1027					;
   1028					; ERROR RETURN -- CC-C SET
   1029					;
   1030					; SUCCESS RETURN -- CC-C CLEAR
   1031					;
   1032					; STACK SUMMARY:
   1033					;
   1034					;	STACK IS UNAFFECTED
   1035					;
   1036					; CALLER'S RESPONSIBILITIES:
   1037					;
   1038					;	NONE
   1039					;-
   1040
   1041					.MACRO	EXCT	INST
   1042					.IF	NB,INST
   1043						 MOV	#INST,R0	; ** KL10 INSTRUCTION POINTER TO R0
   1044					.ENDC	; .IF NB,INST
   1045						 JSR	PC,$EXCT	; ** EXECUTE IT
   1046					.ENDM	; $EXCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 29
DMBMCP -- DTE-20 OPERATION MACROS

   1048					;+
   1049					; SM -- DIAGNOSTIC START MICROCODE TRANSLATION MACRO
   1050					;
   1051					; SM TRANSLATES A DIAGNOSTIC EMT 100 INTO A "MASTER RESET/ START CLOCK" SEQUENCE
   1052					;
   1053					; SEQUENCE:
   1054					;
   1055					;	1. A KL10 MASTER RESET SEQUENCE IS EXECUTED
   1056					;	2. THE KL10 CLOCK IS STARTED
   1057					;
   1058					; ERROR RETURN -- CC-C SET
   1059					;
   1060					; SUCCESS RETURN -- CC-C CLEAR
   1061					;
   1062					; STACK SUMMARY:
   1063					;
   1064					;	STACK IS UNAFFECTED
   1065					;
   1066					; CALLER'S RESPONSIBILITIES:
   1067					;
   1068					;	NONE
   1069					;-
   1070
   1071					.MACRO	SM
   1072						 JSR	PC,$KLMR	; ** MASTER RESET THE KL10
   1073						 MOV	#STRCLK,R0	; ** START CLOCK FUNCTION CODE TO R0
   1074						 JSR	PC,$DDFXC	; ** START THE KL10 CLOCK
   1075					.ENDM	; SM
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 30
DMBMCP -- DTE-20 OPERATION MACROS

   1077					;+
   1078					; WWADR -- DIAGNOSTIC CRAM ADDRESS LOAD TRANSLATION MACRO
   1079					;
   1080					; WWADR TRANSLATES A DIAGNOSTIC EMT 075 INTO A CALL TO "$ACRAM"
   1081					;
   1082					; SEQUENCE OF OPERATION
   1083					;
   1084					;	1. CRAM ADDRESS IS LOADED INTO R0
   1085					;	2. CALL TO "$ACRAM" IS MADE
   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	WWADR	ADDR
   1101					.IF	NB,ADDR
   1102						 MOV	#ADDR,R0	; ** CRAM ADDRESS TO R0
   1103					.ENDC	; .IF NB,ADDR
   1104						 MOV	R0,-(SP)	; ** SAVE R0
   1105						 JSR	PC,$KLMR	; ** RESET THE KL10
   1106						 MOV	(SP)+,R0	; ** RESTORE R0
   1107						 JSR	PC,$ACRAM	; ** LOAD THE CRAM ADDRESS REGISTER
   1108					.ENDM	; WWADR
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 31
DMBMCP -- DTE-20 OPERATION MACROS

   1110					;+
   1111					; MRESET -- DIAGNOSTIC KL10 MASTER RESET TRANSLATION MACRO
   1112					;
   1113					; MRESET TRANSLATES A DIAGNOSTIC EMT 076 INTO A CALL TO "$KLMR"
   1114					;
   1115					; SEQUENCE OF OPERATION:
   1116					;
   1117					;	1. THE CALL TO "$KLMR" IS EXECUTED
   1118					;
   1119					; ERROR RETURN -- CC-C SET
   1120					;
   1121					; SUCCESS RETURN -- CC-C CLEAR
   1122					;
   1123					; STACK SUMMARY:
   1124					;
   1125					;	STACK IS UNAFFECTED
   1126					;
   1127					; CALLER'S RESPONSIBILITIES:
   1128					;
   1129					;	NONE
   1130					;-
   1131
   1132					.MACRO	MRESET
   1133						 JSR	PC,$KLMR	; ** MASTER RESET THE KL10
   1134					.ENDM	; MRESET
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 32
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1136					.SBTTL REGISTER SAVE/RESTORE TRANSLATION MACROS
   1137
   1138					;+
   1139					; REGSAV -- R1 - R5 SAVE TRANSLATION MACRO
   1140					; REGRST -- R1 - R5 RESTORE TRANSLATION MACRO
   1141					;
   1142					; SEQUENCE OF OPERATION:
   1143					;
   1144					;	1. REGSAV -- R1 - R5 ARE SAVED ON THE STACK
   1145					;	2. REGRST -- R1 - R5 ARE RESTORED FROM THE STACK
   1146					;
   1147					; ALWAYS RETURNS SUCCESS
   1148					;
   1149					; STACK SUMMARY:
   1150					;
   1151					;	SP+00 ==> SAVED R1
   1152					;	SP+02 ==> SAVED R2
   1153					;	SP+04 ==> SAVED R3
   1154					;	SP+06 ==> SAVED R4
   1155					;	SP+10 ==> SAVED R5
   1156					;	SP+12 ==> SUBROUTINE RETURN PC
   1157					;
   1158					; CALLER'S RESPONSIBILITIES
   1159					;
   1160					;	CALLS TO THESE ROUTINES MUST BE PARALLEL AND SYMMETRIC
   1161					;	A ROUTINE WHICH CALLS REGSAV UPON ENTRY MAY RESTORE R0 - R5 AND EXIT
   1162					;	TO ITS CALLER VIA A SIMPLE "RTS PC"
   1163					;-
   1164
   1165					.MACRO	REGSAV
   1166						 JSR	PC,SAV.5	; ** SAVE R1 - R5 ON THE STACK
   1167					.ENDM	; REGSAV
   1168
   1169					.MACRO	REGRST
   1170						 JSR	PC,RST.5	; ** RESTORE R1 - R5 AND RETURN
   1171					.ENDM	; REGRST
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 33
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1173					;+
   1174					; VARIOUS PRINT MACROS
   1175					;
   1176					; PFORCE -- NOOP
   1177					; PNORML -- NOOP
   1178					; PNTBAK -- NOOP
   1179					;
   1180					; CHARACTERISTICS:
   1181					;
   1182					;	OBVIOUS
   1183					;-
   1184
   1185					.MACRO	PFORCE
   1186					.ENDM	; PFORCE
   1187
   1188					.MACRO	PNORML
   1189					.ENDM	; PNORML
   1190
   1191					.MACRO	PNTBAK
   1192					.ENDM	; PNTBAK
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 34
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1194					;+
   1195					; PNT36 -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
   1196					;
   1197					; PNT36 TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD36"
   1198					;
   1199					; SEQUENCE OF OPERATION:
   1200					;
   1201					;	1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
   1202					;	2. THE CALL TO "$WDD36" IS MADE
   1203					;
   1204					; ALWAYS RETURNS SUCCESS
   1205					;
   1206					; STACK SUMMARY:
   1207					;
   1208					;	STACK IS UNAFFECTED
   1209					;
   1210					; CALLER'S RESPONSIBILITIES:
   1211					;
   1212					;	NONE
   1213					;-
   1214
   1215					.MACRO	PNT36	ADDR
   1216					.IF	NB,ADDR
   1217						 MOV	#ADDR,R0	; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
   1218					.ENDC	; .IF NB,ADDR
   1219						 JSR	PC,$WDD36	; ** CALL TO PRINT ROUTINE
   1220					.ENDM	; PNT36
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 35
REGISTER SAVE/RESTORE TRANSLATION MACROS

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

   1250					;+
   1251					; PNTNBR -- NUMERIC PRINT TRANSLATION MACRO
   1252					;
   1253					; PNTNBR TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TDB2O"
   1254					;
   1255					; SEQUENCE OF OPERATION:
   1256					;
   1257					;	"$TDB2O" IS CALLED
   1258					;
   1259					; ALWAYS RETURNS SUCCESS
   1260					;
   1261					; STACK SUMMARY:
   1262					;
   1263					;	STACK IS UNAFFECTED
   1264					;
   1265					; CALLER'S RESPONSIBILITIES:
   1266					;
   1267					;	NONE
   1268					;-
   1269
   1270					.MACRO	PNTNBR
   1271						 MOV	R0,-(SP)	; ** SAVE R0
   1272						 BIC	#^C777,R0	; ** MASK OFF UNWANTED BITS
   1273						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1274						 MOV	(SP)+,R0	; ** RESTORE R0
   1275					.ENDM	; PNTNBR
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 37
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1277					;+
   1278					; PNT36B -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
   1279					;
   1280					; PNT36B TRANSLATES A DIAGNOSTIC EMT 134 INTO A CALL TO "$WDD36"
   1281					;
   1282					; SEQUENCE OF OPERATION:
   1283					;
   1284					;	1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
   1285					;	2. THE CALL TO "$WDD36" IS MADE
   1286					;
   1287					; ALWAYS RETURNS SUCCESS
   1288					;
   1289					; STACK SUMMARY:
   1290					;
   1291					;	STACK IS UNAFFECTED
   1292					;
   1293					; CALLER'S RESPONSIBILITIES:
   1294					;
   1295					;	NONE
   1296					;-
   1297
   1298					.MACRO	PNT36B	ADDR
   1299					.IF	NB,ADDR
   1300						 MOV	#ADDR,R0	; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
   1301					.ENDC	; .IF NB,ADDR
   1302						 JSR	PC,$WDD36	; ** CALL TO PRINT ROUTINE
   1303					.ENDM	; PNT36B
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 38
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1305					;+ PNTOCT -- PRINT OCTAL NUMBER TRANSLATION MACRO
   1306					;
   1307					; PNTOCT TRANSLATES A DIAGNOSTIC EMT 035 INTO A CALL TO "$TDB2O"
   1308					;
   1309					; SEQUENCE OF OPERATION
   1310					;
   1311					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1312					;	2. THE CALL IS MADE TO "$TDB2O"
   1313					;
   1314					; ALWAYS RETURNS SUCCESS
   1315					;
   1316					; STACK SUMMARY:
   1317					;
   1318					;	STACK IS UNAFFECTED
   1319					;
   1320					; CALLER'S RESPONSIBILITIES:
   1321					;
   1322					;	NONE
   1323					;-
   1324
   1325					.MACRO	PNTOCT	NUMB
   1326					.IF	NB,NUMB
   1327						.NTYPE	$$T$$,NUMB
   1328					.IF	EQ,$$T$$&70
   1329						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1330					.IFF
   1331						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1332					.ENDC	; .IF EQ,$$T$$&70
   1333					.ENDC	; .IF NB,NUMB
   1334						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1335					.ENDM	; PNTOCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 39
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1337					;+ PNTOCS -- PRINT OCTAL NUMBER TRANSLATION MACRO
   1338					;
   1339					; PNTOCS TRANSLATES A DIAGNOSTIC EMT 036 INTO A CALL TO "$TDB2O"
   1340					;
   1341					; SEQUENCE OF OPERATION
   1342					;
   1343					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1344					;	2. THE CALL IS MADE TO "$TDB2O"
   1345					;
   1346					; ALWAYS RETURNS SUCCESS
   1347					;
   1348					; STACK SUMMARY:
   1349					;
   1350					;	STACK IS UNAFFECTED
   1351					;
   1352					; CALLER'S RESPONSIBILITIES:
   1353					;
   1354					;	NONE
   1355					;-
   1356
   1357					.MACRO	PNTOCS	NUMB
   1358					.IF	NB,NUMB
   1359						.NTYPE	$$T$$,NUMB
   1360					.IF	EQ,$$T$$&70
   1361						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1362					.IFF
   1363						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1364					.ENDC	; .IF EQ,$$T$$&70
   1365					.ENDC	; .IF NB,NUMB
   1366						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1367					.ENDM	; PNTOCS
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 40
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1369					;+ PNTDEC -- PRINT DECIMAL NUMBER TRANSLATION MACRO
   1370					;
   1371					; PNTDEC TRANSLATES A DIAGNOSTIC EMT 037 INTO A CALL TO "$TDB2I"
   1372					;
   1373					; SEQUENCE OF OPERATION
   1374					;
   1375					;	1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
   1376					;	2. THE CALL IS MADE TO "$TDB2I"
   1377					;
   1378					; ALWAYS RETURNS SUCCESS
   1379					;
   1380					; STACK SUMMARY:
   1381					;
   1382					;	STACK IS UNAFFECTED
   1383					;
   1384					; CALLER'S RESPONSIBILITIES:
   1385					;
   1386					;	NONE
   1387					;-
   1388
   1389					.MACRO	PNTDEC	NUMB
   1390					.IF	NB,NUMB
   1391						.NTYPE	$$T$$,NUMB
   1392					.IF	EQ,$$T$$&70
   1393						 MOV	NUMB,R0		; ** GET THE NUMBER INTO R0
   1394					.IFF
   1395						 MOV	#NUMB,R0	; ** GET THE NUMBER INTO R0
   1396					.ENDC	; .IF EQ,$$T$$&70
   1397					.ENDC	; .IF NB,NUMB
   1398						 JSR	PC,$TDB2I	; ** PRINT THE NUMBER
   1399					.ENDM	; PNTDEC
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 41
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1401					;+
   1402					; PNTODT -- FORMATTED OCTAL PRINT TRANSLATION MACRO
   1403					;
   1404					; PNTODT TRANSLATES A DIAGNOSTIC EMT 047 INTO A CALL TO "$TDB2O"
   1405					;
   1406					; SEQUENCE OF OPERATION:
   1407					;
   1408					;	1. THE NUMBER IN R0 IS MASKED TO THE PROPER WIDTH
   1409					;	2. THE CALL TO "$TDB2O" IS MADE
   1410					;
   1411					; ALWAYS RETURNS SUCCESS
   1412					;
   1413					; STACK SUMMARY:
   1414					;
   1415					;	STACK IS UNAFFECTED
   1416					;
   1417					; CALLER'S RESPONSIBILITIES:
   1418					;
   1419					;	NONE
   1420					;-
   1421
   1422					.MACRO	PNTODT	ARG
   1423					.IF	NB,ARG
   1424						 MOV	R0,-(SP)	; ** SAVE R0
   1425					.IF	EQ,ARG-1
   1426						 BIC	#^C7,R0		; ** MASK OUT UNWANTED BITS
   1427					.ENDC	; .IF EQ, ARG-1
   1428					.IF	EQ,ARG-2
   1429						 BIC	#^C77,R0	; ** MASK OUT UNWANTED BITS
   1430					.ENDC	; .IF EQ, ARG-2
   1431					.IF	EQ,ARG-3
   1432						 BIC	#^C777,R0	; ** MASK OUT UNWANTED BITS
   1433					.ENDC	; .IF EQ, ARG-3
   1434					.IF	EQ,ARG-4
   1435						 BIC	#^C7777,R0	; ** MASK OUT UNWANTED BITS
   1436					.ENDC	; .IF EQ, ARG-4
   1437					.IF	EQ,ARG-5
   1438						 BIC	#^C77777,R0	; ** MASK OUT UNWANTED BITS
   1439					.ENDC	; .IF EQ, ARG-5
   1440					.IFTF
   1441						 JSR	PC,$TDB2O	; ** PRINT THE NUMBER
   1442					.IFT
   1443						 MOV	(SP)+,R0	; ** RESTORE R0
   1444					.ENDC	;.IF NB,ARG
   1445					.ENDM	; PNTODT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 42
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1447					;+
   1448					; PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
   1449					;
   1450					; PMSG TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO  "$TTDMS"
   1451					;
   1452					; SEQUENCE OF OPERATION:
   1453					;
   1454					;	1. A POINTER TO THE MESSAGE IS LOADED INTO R0
   1455					;	2. THE CALL TO "$TTDMS" IS MADE
   1456					;
   1457					; ALWAYS RETURNS SUCCESS
   1458					;
   1459					; STACK SUMMARY:
   1460					;
   1461					;	STACK IS UNAFFECTED
   1462					;
   1463					; CALLER'S RESPONSIBILITIES
   1464					;
   1465					;	NONE
   1466					;-
   1467
   1468					.MACRO	PMSG	MSG,?L1,?L2
   1469						 MOV	#L1,R0		; ** MESSAGE POINTER TO R0
   1470						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1471						 BR	L2		; ** BRANCH AROUND TEXT
   1472						 ;
   1473					L1:	 .ASCIZ	%MSG%
   1474						 .EVEN
   1475					L2:
   1476					.ENDM	; PMSG
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 43
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1478					;+
   1479					; PNTAL -- DIAGNOSTIC PRINT ASCII LINE TRANSLATION MACRO
   1480					;
   1481					; PNTAL TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO  "$TTDMS"
   1482					;
   1483					; SEQUENCE OF OPERATION:
   1484					;
   1485					;	1. A POINTER TO THE MESSAGE IS LOADED INTO R0
   1486					;	2. THE CALL TO "$TTDMS" IS MADE
   1487					;
   1488					; ALWAYS RETURNS SUCCESS
   1489					;
   1490					; STACK SUMMARY:
   1491					;
   1492					;	STACK IS UNAFFECTED
   1493					;
   1494					; CALLER'S RESPONSIBILITIES
   1495					;
   1496					;	NONE
   1497					;-
   1498
   1499					.MACRO	PNTAL
   1500						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1501					.ENDM	; PNTAL
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 44
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1503					;+
   1504					; $PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
   1505					;
   1506					; $PMSG TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TTDMS"
   1507					;
   1508					; SEQUENCE OF OPERATION
   1509					;
   1510					;	1. MESSAGE POINTER IS LOADED INTO R0
   1511					;	2. CALL IS MADE TO "$TTDMS"
   1512					;
   1513					; ALWAYS RETURNS SUCCESS
   1514					;
   1515					; STACK SUMMARY:
   1516					;
   1517					;	STACK IS UNAFFECTED
   1518					;-
   1519
   1520					.MACRO	$PMSG	ARG
   1521					.IF	NB,ARG
   1522						 MOV	#ARG,R0		; ** TEXT POINTER TO R0
   1523					.ENDC	; .IF NB,ARG
   1524						 JSR	PC,$TTDMS	; ** OUTPUT THE MESSAGE
   1525					.ENDM	; $PMSG
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 45
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1527					;+
   1528					; PSPACE ET. AL. -- VARIOUS PRINT MACROS
   1529					;
   1530					; PSPACE PRINTS A <SPACE>
   1531					; PTAB PRINTS A <TAB>
   1532					; PSLASH PRINTS A <SLASH>
   1533					; PBELL PRINTS A <BELL>
   1534					; PCRLF PRINTS A <CR><LF>
   1535					;
   1536					; SEQUENCE OF OPERATION:
   1537					;
   1538					;	THE APPROPRIATE CALL IS MADE
   1539					;
   1540					; ALWAYS RETURNS SUCCESS
   1541					;
   1542					; STACK SUMMARY:
   1543					;
   1544					;	STACK IS UNAFFECTED
   1545					;
   1546					; CALLER'S RESPONSIBILITIES:
   1547					;
   1548					;	NONE
   1549					;-
   1550
   1551					.MACRO	PSPACE
   1552						 JSR	PC,$TTSPC	; ** PRINT A <SPACE>
   1553					.ENDM	; PSPACE
   1554
   1555					.MACRO	PSLASH
   1556						 JSR	PC,$TTSLS	; ** PRINT A <SLASH>
   1557					.ENDM	; PSLASH
   1558
   1559					.MACRO	PBELL
   1560						 JSR	PC,$TTBEL	; ** PRINT A <BELL>
   1561					.ENDM	; PBELL
   1562
   1563					.MACRO	PTAB
   1564						 JSR	PC,$TTTAB	; ** PRINT A <TAB>
   1565					.ENDM	; PTAB
   1566
   1567					.MACRO	PCRLF
   1568						 JSR	PC,$TCRLF	; ** PRINT A <CR><LF>
   1569					.ENDM	; PCRLF
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 46
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1571					;+
   1572					; TTIOCT -- DIAGNOSTIC OCTAL INPUT TRANSLATION MACRO
   1573					;
   1574					; TTIOCT TRANSLATES A DIAGNOSTIC OCTAL INPUT EMT INTO A CALL TO "$TDO2B"
   1575					;
   1576					; SEQUENCE OF OPERATION:
   1577					;
   1578					;	THE CALL TO "$TDO2B" IS EXECUTED
   1579					;
   1580					; SUCCESS RETURN -- CC-C CLEAR
   1581					;
   1582					; ERROR RETURN -- CC-C SET
   1583					;
   1584					;	NUMBER IN R0 IN EITHER CASE
   1585					;
   1586					; STACK SUMMARY:
   1587					;
   1588					;	STACK IS UNAFFECTED
   1589					;
   1590					; CALLER'S RESPONSIBILITIES:
   1591					;
   1592					;	NONE
   1593					;-
   1594
   1595					.MACRO	TTIOCT
   1596						 JSR	PC,$TDO2B	; ** READ OCTAL NUMBER
   1597					.ENDM	; TTIOCT
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 47
REGISTER SAVE/RESTORE TRANSLATION MACROS

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

   1627					;+
   1628					; TTILIN -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
   1629					;
   1630					; TTILIN TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
   1631					;
   1632					; SEQUENCE OF OPERATION:
   1633					;
   1634					;	THE CALL TO "$TTRD" IS EXECUTED
   1635					;
   1636					; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
   1637					;
   1638					; ESCAPES THROUGH "$ERROR" ON ERROR
   1639					;
   1640					; STACK SUMMARY:
   1641					;
   1642					;	STACK IS UNAFFECTED
   1643					;
   1644					; CALLER'S RESPONSIBILITIES:
   1645					;
   1646					;	NONE
   1647					;-
   1648
   1649					.MACRO	TTILIN
   1650						 JSR	PC,$TTRD	; ** READ TERMINAL INPUT
   1651					.ENDM	; TTILIN
KLINIT - KL CPU INITIALIZATION 	MACRO M1110  15-OCT-79 14:14  PAGE 49
REGISTER SAVE/RESTORE TRANSLATION MACROS

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

   1679					;+
   1680					; FATAL -- MEMORY BOOT ERROR CALL TRANSLATION MACRO
   1681					;
   1682					; FATAL EXECUTES A CALL TO "$FATAL" WHERE THE MEMORY BOOT IS ABORTED
   1683					; AFTER THE ERROR CODE IS PRINTED
   1684					;
   1685					; SEQUENCE OF OPERATION:
   1686					;
   1687					;	THE CALL TO "$FATAL" IS EXECUTED
   1688					;
   1689					; NEVER RETURNS (GUARANTEED ESCAPE)
   1690					;
   1691					; STACK SUMMARY:
   1692					;
   1693					;	POINTER TO ERROR TEXT IS ON TOP OF THE STACK
   1694					;
   1695					; CALLER'S RESPONSIBILITIES:
   1696					;
   1697					;	NONE
   1698					;-
   1699
   1700					.MACRO	FATAL	TXT
   1701					.IF NB,	<TXT>
   1702					ER$'TXT==.
   1703						 JSR	PC,$FATAL	; ** FATAL "TXT" ERROR
   1704						 .ASCIZ	%TXT%
   1705						.EVEN
   1706					.IFF
   1707						.ERROR			; ** UNDEFINED ERROR TRAP!!
   1708					.ENDC	; .IF NB, <TXT>
   1709					.ENDM	; FATAL
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 51
REGISTER SAVE/RESTORE TRANSLATION MACROS

   1711						.TITLE	KLIAC	-- AC PROGRAM CONTROL
   1712	000000					IDENT$	5,3								; ADP02
						.IDENT	/005030/
   1713
   1714					;
   1715					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   1716					;
   1717					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   1718					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   1719					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   1720					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   1721					;
   1722					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1723					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1724					; EQUIPMENT CORPORATION.
   1725					;
   1726					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   1727					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   1728					;
   1729					; VERSION 05-03									; ADP02
   1730					;
   1731					; ALAN D. PECKHAM  29-MAR-77
   1732					;
   1733					; MODIFIED BY:
   1734					;
   1735					;	R. BELANGER	24-AUG-78	CLEAR ALL EIGHT (0 - 7) AC BLOCKS.
   1736					;
   1737					; FUNCTION: KL AC MANIPULATION.
   1738					;
   1739					; EQUATED SYMBOLS
   1740					;
   1741		000003 			DATAO	=	3		; KL I/O SUBFUNCTION CODE.
   1742		000010 			PAG	=	10		; KL DEVICE.
   1743					;
   1744					; LOCAL DATA
   1745					;
   1746	000000					.PSECT	DATA,D
   1747	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
   1748	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
   1749	000012				DACAD:	WD22$	0		; BUCKET FOR AC ADDRESSES.
	000012	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   1750	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
   1751						.EVEN
   1752	000000					.PSECT
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 52
$LDNGO	-- LOAD AC BLOCKS AND GO

   1754						.SBTTL	$LDNGO	-- LOAD AC BLOCKS AND GO
   1755					;+
   1756					; LOAD THE SPECIFIED AC BLOCKS WITH INSTRUCTIONS AND DATA AND
   1757					; CONDITIONALLY START THE KL AT A GIVEN LOCATION. THE LOADING IS DRIVEN
   1758					; BY A LIST WHICH IS POINTED TO BY R0. THE ENTRIES ARE:
   1759					;
   1760					;  CHOOSE AC BLOCK AND LOAD N ACS STARTING WITH M
   1761					;
   1762					;	.BYTE	ACBLK*10,M,N	; WHERE AND HOW MUCH
   1763					;	.BLKB	N*5		; WORDS TO LOAD
   1764					;
   1765					;  START KL AT AC M AND RETURN
   1766					;
   1767					;	.BYTE	ACBLK*10,M,-1	; WHERE TO START
   1768					;
   1769					;  RETURN WITHOUT STARTING KL
   1770					;
   1771					;	.BYTE	-1		; END OF LOAD LIST
   1772					;
   1773					;  A PREVIOUS CONTEXT AC BLOCK MAY BE SPECIFIED IN THE BOTTOM 3 BITS
   1774					;  OF THE AC BLOCK BYTE. IF LEFT ZERO, THE PREVIOUS CONTEXT WILL BE
   1775					;  AC BLOCK ZERO.
   1776					;
   1777					; INPUTS:
   1778					;	R0	- POINTER TO AC LOAD LIST.
   1779					;
   1780					; OUTPUTS:
   1781					;	CARRY IS SET IF ERROR OCCURRED DURING LOAD OR START.
   1782					;-
   1783
   1784	000000	004537 	022242'		$LDNGO::JSR	R5,$RSAVE	; SAVE MY REGISTERS.
   1785	000004	010005 				MOV	R0,R5		; COPY LOAD LIST.
   1786	000006	105137 	000003'			COMB	DACAB+3		; INVALIDATE THE CURRENT AC BLOCK.		; ADP02
   1787	000012	112500 			10$:	MOVB	(R5)+,R0	; NEXT AC BLOCK NUMBER
   1788	000014	100434 				BMI	80$		; STOP IF NEGATIVE.
   1789	000016	123700 	000003'			CMPB	DACAB+3,R0	; IF THE SAME AS LAST TIME
   1790	000022	001411 				BEQ	30$		; THEN DON'T CHANGE AC BLOCK
   1791	000024	110037 	000003'			MOVB	R0,DACAB+3	; OTHERWISE GET BLOCK AND
   1792	000030	012700 	000005'			MOV	#DACBI,R0	; EXECUTE DATAO PAG
   1793	000034	012701 	000000'			MOV	#DACAB,R1	; WITH OUR DATA.
   1794	000040					CALL	$XCDT		; AVOID USING AN AC.
	000040	004737 	000206'			 JSR	PC,$XCDT
   1795	000044	103421 				BCS	90$
   1796	000046	012700 	000012'		30$:	MOV	#DACAD,R0	; GET PLACE FOR
   1797	000052	112510 				MOVB	(R5)+,(R0)	; THE NEXT AC ADDRESS
   1798	000054	112502 				MOVB	(R5)+,R2	; AND GET NUMBER OF ACS.
   1799	000056	100411 				BMI	50$		; IF NEG, START AT AC.
   1800	000060	010501 			40$:	MOV	R5,R1		; GET ADDRESS OF DATA
   1801	000062					CALL	$DPOS		; AND STORE IT.
	000062	004737 	012336'			 JSR	PC,$DPOS
   1802	000066	103410 				BCS	90$
   1803	000070	105210 				INCB	(R0)		; INCREMENT ADDRESS
   1804	000072	062705 	000005 			ADD	#5,R5		; AND LIST POINTER
   1805	000076	077210 				SOB	R2,40$		; AND GO BACK IF MORE.
   1806	000100	000744 				BR	10$		; OTHERWISE GET NEXT DIRECTION.
   1807	000102				50$:	CALLR	$STRKL		; START KL AT ADDRESS.
	000102	000137 	026264'			 JMP	$STRKL
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 52-1
$LDNGO	-- LOAD AC BLOCKS AND GO

   1808	000106	000241 			80$:	CLC			; END OF LOAD.
   1809	000110				90$:	RETURN
	000110	000207 				 RTS	PC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 53
$ZERAC	-- ZERO AC SETS 0 TO 6

   1811						.SBTTL	$ZERAC	-- ZERO AC SETS 0 TO 6
   1812					;+
   1813					; ZERO ALL ACS INCLUDING SET 7 WHICH BELONGS TO THE MICROCODE.
   1814					;
   1815					; NO INPUTS
   1816					;
   1817					; OUTPUTS:
   1818					;	CARRY IS SET ON ERROR.
   1819					;-
   1820
   1821	000112	004537 	022242'		$ZERAC::JSR	R5,$RSAVE	; SAVE HIS REGISTERS.
   1822	000116	012703 	000070 			MOV	#70,R3		; ZERO AC SET 6 TO 0.				; ADP02
   1823
   1824	000122	110337 	000003'		10$:	MOVB	R3,DACAB+3	; NEXT AC BLOCK.				;**-1
   1825	000126	012701 	000000'			MOV	#DACAB,R1	; GET DATA FOR
   1826	000132	012700 	000005'			MOV	#DACBI,R0	; DATAO PAG TO
   1827	000136					CALL	$XCDT		; SET THE CURRENT AC SET.
	000136	004737 	000206'			 JSR	PC,$XCDT
   1828	000142	103420 				BCS	90$
   1829	000144	012702 	000020 			MOV	#20,R2		; ZERO 20 ACS.
   1830	000150	012701 	000000'			MOV	#.ZERO,R1	; (DATA TO DEPOSIT)
   1831	000154	012700 	000012'			MOV	#DACAD,R0	; GET POINTER TO ADDRESS
   1832	000160	105010 				CLRB	(R0)		; AND START AT ZERO.
   1833	000162				20$:	CALL	$DPOS		; CLEAR THE AC.
	000162	004737 	012336'			 JSR	PC,$DPOS
   1834	000166	103406 				BCS	90$
   1835	000170	105210 				INCB	(R0)		; GO ON
   1836	000172	077205 				SOB	R2,20$		; TO THE NEXT ONE.
   1837	000174	162703 	000010 			SUB	#10,R3		; IF ANOTHER AC SET TO DO			; ADP01
   1838	000200	002350 				BGE	10$		; THEN DO IT.					; ADP01
   1839	000202	000241 				CLC			; (MAKE SURE CARRY IS CLEAR)			; ADP01
   1840	000204				90$:	RETURN
	000204	000207 				 RTS	PC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 54
$XCDT	-- INSTRUCTION EXECUTER

   1842						.SBTTL	$XCDT	-- INSTRUCTION EXECUTER
   1843					;+
   1844					; EXECUTE AN INSTRUCTION AND SUBSTITUTE THE GIVEN DATA INTO THE AR
   1845					; AFTER THE AR FETCH. THIS IS DONE BY LOADING THE INSTRUCTION AND
   1846					; STEPPING THE CLOCK UNTIL "CON AR LOADED H" IS UP. THE DATA IS THEN
   1847					; WRITTEN INTO THE AR OVER THE PREVIOUS FETCHED DATA AND THE INSTRUCTION
   1848					; IS ALLOWED TO FINISH. NOTE THAT THIS ASSUMES THAT THE FETCH IS
   1849					; SUCCESSFUL.
   1850					;
   1851					; INPUTS:
   1852					;	R0	- ADDRESS OF KL INSTRUCTION TO EXECUTE.
   1853					;	R1	- ADDRESS OF 36 BIT DATA WORD TO SUBSTITUTE.
   1854					;
   1855					; OUTPUTS:
   1856					;	CARRY IS SET IF ERROR OCCURS.
   1857					;-
   1858
   1859	000206	004537 	022242'		$XCDT::	JSR	R5,$RSAVE	; SAVE THE REGISTERS AND
   1860	000212	010103 				MOV	R1,R3		; COPY THE POINTER TO THE DATA.
   1861	000214					CALL	$LDAR		; LOAD THE INSTRUCTION
	000214	004737 	026534'			 JSR	PC,$LDAR
   1862	000220	103436 				BCS	90$		; AND
   1863	000222	012700 	012000 			MOV	#.CONBT,R0	; PUSH THE CONTINUE BUTTON.
   1864	000226					CALL	$DFXC
	000226	004737 	013222'			 JSR	PC,$DFXC
   1865	000232	103431 				BCS	90$
   1866	000234	012700 	000022 			MOV	#18.,R0		; GIVE THE CLOCK
   1867	000240					CALL	$BURST		; AN 18. TICK LEAD.
	000240	004737 	027150'			 JSR	PC,$BURST
   1868	000244	103424 				BCS	90$
   1869	000246	012702 	000144 			MOV	#100.,R2	; LIMIT THE CLOCK TO 100. TICKS
   1870	000252	012701 	000015'			MOV	#DACBF,R1	; AND GET SCRATCH BUFFER.
   1871	000256	012700 	132000 		20$:	MOV	#<132*1000>,R0	; NOW READ
   1872	000262					CALL	$DFRD		; A DIAGNOSTIC REGISTER AND
	000262	004737 	012706'			 JSR	PC,$DFRD
   1873	000266	103413 				BCS	90$
   1874	000270	132761 	000020 	000001 		BITB	#20,1(R1)	; IF "CON AR LOADED H"
   1875	000276	001010 				BNE	30$		; IS NOT UP,
   1876	000300	012700 	002000 			MOV	#.SSCLK,R0	; STEP THE CLOCK
   1877	000304					CALL	$DFXC
	000304	004737 	013222'			 JSR	PC,$DFXC
   1878	000310	103402 				BCS	90$
   1879	000312	077217 				SOB	R2,20$		; AND LOOK AGAIN.
   1880	000314	000261 				SEC			; THIS TOOK TOO LONG.
   1881	000316				90$:	RETURN
	000316	000207 				 RTS	PC
   1882	000320	012700 	004000 		30$:	MOV	#.CECLK,R0	; THE AR IS RIPE TO LOAD, SO
   1883	000324					CALL	$DFXC		; PHASE THE CLOCKS
	000324	004737 	013222'			 JSR	PC,$DFXC
   1884	000330	103772 				BCS	90$
   1885	000332	010301 				MOV	R3,R1		; GET THE SUBSTITUTE WORD
   1886	000334	012700 	077000 			MOV	#.LDAR,R0	; AND LOAD IT
   1887	000340					CALL	$DFWR		; INTO THE AR.
	000340	004737 	013020'			 JSR	PC,$DFWR
   1888	000344	103764 				BCS	90$
   1889	000346	012700 	001000 			MOV	#.STRCL,R0	; LET THE INSTRUCTION COMPLETE.
   1890	000352					CALLR	$DFXC
KLIAC	-- AC PROGRAM CONTROL	MACRO M1110  15-OCT-79 14:14  PAGE 54-1
$XCDT	-- INSTRUCTION EXECUTER

	000352	000137 	013222'			 JMP	$DFXC
KLICA -- LOAD CACHE REFILL RAM	MACRO M1110  15-OCT-79 14:14  PAGE 55
$XCDT	-- INSTRUCTION EXECUTER

   1892						.TITLE	KLICA -- LOAD CACHE REFILL RAM
   1893	000356					IDENT$	5,1
						.IDENT	/005010/
   1894					;
   1895					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   1896					;
   1897					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   1898					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   1899					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   1900					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   1901					;
   1902					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1903					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1904					; EQUIPMENT CORPORATION.
   1905					;
   1906					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   1907					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   1908					;
   1909					; VERSION 05-01
   1910					;
   1911					; ALAN D. PECKHAM  8-APR-77
   1912					;
   1913					; MODIFIED BY:
   1914					;
   1915					; FUNCTION: COMPUTE THE REFILL ALGORITHM FOR THE GIVEN CACHE CONFIGURATION
   1916					;  AND WRITE IT TO THE CACHE REFILL RAM.
   1917					;
   1919					; EQUATED SYMBOLS
   1920					;
   1921		000000 			APR	=	0		; KL DEVICE.
   1922		000002 			BLKO	=	2		; KL I/O SUBFUNCTION CODE.
   1923		000014 			CCA	=	14		; KL DEVICE.
   1924		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   1925		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   1926		000540 			HRR	=	540		; KL INSTRUCTION CODE.
   1927		000254 			JRST	=	254		; KL INSTRUCTION CODE.
   1928		000322 			JUMPE	=	322		; KL INSTRUCTION CODE.
   1929		000010 			PAG	=	10		; KL DEVICE.
   1930		000400 			SETZ	=	400		; KL INSTRUCTION CODE.
   1931					;
   1932					; LOCAL DATA
   1933					;
   1934	000022					.PSECT	DATA,D
   1935						.ODD			; DCAWRF MUST BE ON EVEN BOUNDRY.
   1936	000023	   000 	   000 	   010 	DCAPGM:	.BYTE	0,0,10		; LOAD AC0-AC7 OF AC SET 0.
   1937	000026					WD36$	0 0		; AC0
	000026	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000031	   000 	   000 			 .BYTE	BY$$3,BY$$4
   1938	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
   1939	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
   1940	000045					I10$	JUMPE 0,,3	; AC3
	000045	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000050	   220 	   006 			 .BYTE	BY$$3,BY$$4
KLICA -- LOAD CACHE REFILL RAM	MACRO M1110  15-OCT-79 14:14  PAGE 55-1
$XCDT	-- INSTRUCTION EXECUTER

   1941	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
   1942	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
   1943	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
   1944	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
   1945	000076	   000 	   001 	   377 		.BYTE	0,1,-1		; START AT AC1 OF AC SET 0.
   1946	000101				DCARFL:	.BLKB	5		; WORK TABLE.
   1947						.EVEN
   1948	000000					.PSECT	TEXT,D
   1949	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
   1950	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
   1951	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
   1952	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
   1953	000356					.PSECT
KLICA -- LOAD CACHE REFILL RAM	MACRO M1110  15-OCT-79 14:14  PAGE 56
$SETCA	-- CONFIGURE CACHE

   1955						.SBTTL	$SETCA	-- CONFIGURE CACHE
   1956					;+
   1957					; INITIALIZE THE CACHE REFILL RAM IF CACHE IS TO BE TURNED ON AND
   1958					; REPORT THE CACHE STATUS.
   1959					;
   1960					; INPUTS:
   1961					;	.NCACH	- NUMBER OF CACHES TO BE USED.
   1962					;	.CACHN	- NUMBERS OF THE CACHES TO BE USED.
   1963					;
   1964					; OUTPUTS:
   1965					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   1966					;-
   1967
   1968	000356	012700 	000023'		$SETCA::MOV	#DCAPGM,R0	; GET OUR KL PROGRAM
   1969	000362					CALL	$LDNGO		; LOAD AND START IT.
	000362	004737 	000000'			 JSR	PC,$LDNGO
   1970	000366	103564 				BCS	200$
   1971	000370	105737 	000050'			TSTB	.NCACH		; IF NO CACHES WERE REQUESTED
   1972	000374	003557 				BLE	190$		; THEN NO ACTION NECESSARY.
   1973	000376	012701 	000066'			MOV	#DCAWRF+2,R1	; GET DATA AREA AND
   1974	000402	042711 	000003 			BIC	#3,(R1)		; CLEAR IT OUT.
   1975	000406	005041 				CLR	-(R1)
   1976	000410	005005 				CLR	R5		; +++001 R5 >MUST< INITIALLY BE CLEAR!!!
   1977	000412	113700 	000051'			MOVB	.CACHN,R0	; SET LRU IN CASE OF SINGLE CACHE.
   1978	000416	006200 				ASR	R0		; SHIFT LOW ORDER BIT
   1979	000420	103002 				BCC	20$		; INTO KL INSTRUCTION -
   1980	000422	052711 	100000 			BIS	#100000,(R1)	; (KIND OF A HACK....)
   1981	000426	050061 	000002 		20$:	BIS	R0,2(R1)	; INSTALL REST.
   1982									; INITIALIZE COUNTERS:
   1983	000432	105003 				CLRB	R3		; NEW CACHE NUMBER.
   1984	000434	105004 			30$:	CLRB	R4		; MRU CACHE.
   1985	000436	105005 			40$:	CLRB	R5		; LRU CACHE
   1986	000440	122737 	000001 	000050'	50$:	CMPB	#1,.NCACH	; ONLY ONE CACHE ?
   1987	000446	001504 				BEQ	180$		; YES, BYPASS THIS STUFF.
   1988	000450	042721 	100000 			BIC	#100000,(R1)+	; CLEAR OUT DATA BITS.
   1989	000454	042711 	000003 			BIC	#000003,(R1)
   1990	000460	012702 	000101'			MOV	#DCARFL,R2	; INITIALIZE TABLE.
   1991	000464	110522 				MOVB	R5,(R2)+	; LRU CACHE
   1992	000466	005000 				CLR	R0		; FIND LOW CACHE NUMBER
   1993	000470	000401 				BR	70$
   1994	000472	005200 			60$:	INC	R0
   1995	000474	120005 			70$:	CMPB	R0,R5
   1996	000476	001775 				BEQ	60$
   1997	000500	120004 				CMPB	R0,R4
   1998	000502	001773 				BEQ	60$
   1999	000504	012701 	000003 			MOV	#3,R1		; AND HIGH CACHE NUMBER
   2000	000510	000401 				BR	90$
   2001	000512	005301 			80$:	DEC	R1
   2002	000514	120105 			90$:	CMPB	R1,R5
   2003	000516	001775 				BEQ	80$
   2004	000520	120104 				CMPB	R1,R4
   2005	000522	001773 				BEQ	80$
   2006	000524	005705 				TST	R5		; AND INSTALL IN TABLE
   2007	000526	100003 				BPL	100$		; AS INTERMEDIATE CACHES.
   2008	000530	110022 				MOVB	R0,(R2)+
   2009	000532	110122 				MOVB	R1,(R2)+
   2010	000534	000402 				BR	110$
KLICA -- LOAD CACHE REFILL RAM	MACRO M1110  15-OCT-79 14:14  PAGE 56-1
$SETCA	-- CONFIGURE CACHE

   2011	000536	110122 			100$:	MOVB	R1,(R2)+
   2012	000540	110022 				MOVB	R0,(R2)+
   2013	000542	110422 			110$:	MOVB	R4,(R2)+	; MRU CACHE
   2014	000544	110312 				MOVB	R3,(R2)		; NEW CACHE.
   2015	000546	120342 			120$:	CMPB	R3,-(R2)	; ADJUST LIST TO REFLECT
   2016	000550	001376 				BNE	120$		; NEW CACHE IN USE.
   2017	000552	022702 	000101'			CMP	#DCARFL,R2
   2018	000556	003402 				BLE	130$
   2019	000560	012702 	000101'			MOV	#DCARFL,R2
   2020	000564	116222 	000001 		130$:	MOVB	1(R2),(R2)+
   2021	000570	022702 	000105'			CMP	#DCARFL+4,R2
   2022	000574	003373 				BGT	130$
   2023	000576	012702 	000101'			MOV	#DCARFL,R2	; NOW, SCREEN OUT
   2024	000602	012701 	000051'		140$:	MOV	#.CACHN,R1	; UNWANTED LRUS.
   2025	000606	113700 	000050'			MOVB	.NCACH,R0
   2026	000612	122112 			150$:	CMPB	(R1)+,(R2)
   2027	000614	001403 				BEQ	160$
   2028	000616	077003 				SOB	R0,150$
   2029	000620	005202 				INC	R2
   2030	000622	000767 				BR	140$
   2031	000624	012701 	000064'		160$:	MOV	#DCAWRF,R1
   2032	000630	112200 				MOVB	(R2)+,R0	; GET LRU AND
   2033	000632	006200 				ASR	R0		; SHIFT LOW ORDER BIT
   2034	000634	103002 				BCC	170$		; INTO KL INSTRUCTION -
   2035	000636	052711 	100000 			BIS	#100000,(R1)	; (KIND OF A HACK....)
   2036	000642	050061 	000002 		170$:	BIS	R0,2(R1)	; INSTALL REST OF LRU.
   2037	000646	122212 				CMPB	(R2)+,(R2)	; CHECK ORDER AND
   2038	000650	003003 				BGT	180$
   2039	000652	052761 	000002 	000002 		BIS	#000002,2(R1)	; AND INSTALL IT.
   2040	000660	012700 	000000'		180$:	MOV	#.ZERO,R0	; GIVE THE DATA TO THE AC PROGRAM
   2041	000664					CALL	$DPOS		; TO STORE IN THE REFILL RAM.
	000664	004737 	012336'			 JSR	PC,$DPOS
   2042	000670	103423 				BCS	200$
   2043	000672	062711 	000004 			ADD	#4,(R1)		; INCREMENT THE COUNTS
   2044	000676	105205 				INCB	R5
   2045	000700	122705 	000003 			CMPB	#3,R5
   2046	000704	002255 				BGE	50$		; TO LOOP.
   2047	000706	105105 				COMB	R5
   2048	000710	005105 				COM	R5
   2049	000712	100651 				BMI	40$
   2050	000714	105204 				INCB	R4
   2051	000716	122704 	000003 			CMPB	#3,R4
   2052	000722	002245 				BGE	40$
   2053	000724	105203 				INCB	R3
   2054	000726	122703 	000003 			CMPB	#3,R3
   2055	000732	002240 				BGE	30$
   2056	000734				190$:	CALLR	LCARPT		; REPORT WHAT CACHES ENABLED.
	000734	000137 	000754'			 JMP	LCARPT
   2057	000740				200$:	PRINT	#TCACEF		; CACHE ENABLE FAILED.
	000740	012700 	000000'			 MOV	#TCACEF,R0
	000744	004737 	025442'			 JSR	PC,$TTMSG
   2058	000750	000261 				SEC
   2059	000752					RETURN
	000752	000207 				 RTS	PC
KLICA -- LOAD CACHE REFILL RAM	MACRO M1110  15-OCT-79 14:14  PAGE 57
$SETCA	-- CONFIGURE CACHE

   2061					;+
   2062					; REPORT THE CACHE CONFIGURATION
   2063					;-
   2064
   2065	000754	012701 	000077'		LCARPT:	MOV	#TCAACD,R1	; GET MESSAGE FOR NO CACHE
   2066	000760	113702 	000050'			MOVB	.NCACH,R2	; AND IF NONE,
   2067	000764	003433 				BLE	80$		; PRINT THE MESSAGE.
   2068	000766	012701 	000026'			MOV	#TCAACE,R1	; USE ALL CACHE MESSAGE IF
   2069	000772	022702 	000004 			CMP	#4,R2		; ALL CACHES ARE BEING USED.
   2070	000776	003426 				BLE	80$
   2071	001000	012701 	000051'			MOV	#TCASCE,R1	; MUST BE A PARTIAL CONFIGURATION.
   2072	001004	010105 				MOV	R1,R5
   2073	001006	122725 	000123 		10$:	CMPB	#'S,(R5)+	; LOOK FOR PLACE TO
   2074	001012	001375 				BNE	10$
   2075	001014	122725 	000040 			CMPB	#' ,(R5)+	; INSERT CACHE NUMBERS.
   2076	001020	001372 				BNE	10$
   2077	001022	012703 	000051'			MOV	#.CACHN,R3
   2078	001026	112315 			20$:	MOVB	(R3)+,(R5)	; GET NEXT NUMBER
   2079	001030	152725 	000060 			BISB	#'0,(R5)+	; AND MAKE PRINTABLE.
   2080	001034	112725 	000054 			MOVB	#',,(R5)+
   2081	001040	077206 				SOB	R2,20$		; DO FOR ALL NUMBERS.
   2082	001042	111765 	177777 		30$:	MOVB	(PC),-1(R5)	; NOW CLEAN UP
   2083	001046	122725 	000040 			CMPB	#' ,(R5)+
   2084	001052	001373 				BNE	30$
   2085	001054				80$:	PRINT	R1
	001054	010100 				 MOV	R1,R0
	001056	004737 	025442'			 JSR	PC,$TTMSG
   2086	001062	000241 				CLC
   2087	001064				90$:	RETURN
	001064	000207 				 RTS	PC
   2088
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 58
$SETCA	-- CONFIGURE CACHE

   2091						.TITLE	KLICB -- LOAD THE MICROCODE
   2092	001066					IDENT$	5,1,KLI$$F
						.IDENT	/A05010/
   2093					;
   2094					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   2095					;
   2096					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   2097					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   2098					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   2099					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   2100					;
   2101					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   2102					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   2103					; EQUIPMENT CORPORATION.
   2104					;
   2105					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   2106					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   2107					;
   2108					; VERSION 05-01
   2109					;
   2110					; ALAN D. PECKHAM  11-APR-77
   2111					;
   2112					; MODIFICATIONS:
   2113					;
   2114					;	K. LEFEBVRE	13-MAR-79	EXPANDED CRAM/DRAM ERROR REPORT
   2115					;					TCO 4.2209
   2116					;
   2117					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL
   2118					;  MICROCODE FROM THE FILE 'KL.MCB'.
   2119					;
   2120					; EQUATED SYMBOLS
   2121					;
   2122		000000 			APR	=	0		; KL DEVICE.
   2123		000000 			BLKI	=	0		; KL I/O SUBFUNCTION CODE.
   2124					;
   2125					; LOCAL DATA
   2126					;
   2127	000106					.PSECT	DATA,D
   2128	000106	043240 	000000 	000000 	DCBFNM:	.RAD50	/KL       MCB/	; MICROCODE FILE NAME.
	000114	050672
   2129	000116	000000 				.WORD	0		; GET LATEST VERSION.
   2130	000120	   005 	   005 			.BYTE	5,5
   2131	000122	054523 	000000 			.WORD	"SY,0
   2132	000126	000000 			DCBADR:	.WORD	0		; RAM ADDRESS FROM RECORD.
   2133	000130	000000 	000000 	000000 	DCBDAT:	.WORD	0,0,0,0,0,0	; RAM DATA WORK AREA.
	000136	000000 	000000 	000000
   2134	000144	000000 			DCBCNT:	.WORD	0		; VERIFY DIFFERENCE COUNT.
   2135	000146	000000 			DCBFIX:	.WORD	0		; [4.2209] MICROCODE FIX FLAG
   2136	000150	000000 	000000 	000000 	DCBCBF:	.WORD	0,0,0,0,0,0	; HOLDING AREA FOR C-RAM WORD.
	000156	000000 	000000 	000000
   2137	000164	000000 	000000 	000000 	DCBDBF:	.WORD	0,0,0		; D-RAM WORD HOLDING AREA.
   2138						.EVEN			; DCBBF MUST BE ON A WORD BOUNDRY.
   2139	000172				DCBBF:	WD36$	0 0		; APRID RESULT.
	000172	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000175	   000 	   000 			 .BYTE	BY$$3,BY$$4
   2140	000177				DCBA17:	WD22$	17		; AC17 ADDRESS.
	000177	   017 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 58-1
$SETCA	-- CONFIGURE CACHE

   2141	000202				DCBAPR:	IO10$	BLKI APR,,17	; APRID INSTRUCTION.
	000202	   017 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000205	   000 	   016 			 .BYTE	BY$$3,BY$$4
   2142	000207	   113 	   114 	   111 	TTTPR:	.ASCIZ	/KLI -- /			;[4.2209]
	000212	   040 	   055 	   055
	000215	   040 	   000
   2143						.EVEN
   2144	000117					.PSECT	TEXT,D
   2145	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
   2146	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
   2147	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
   2148	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
   2149	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
	000312	   104 	   000
   2150	000314				TCBMVL:	MESSAGE	<MICROCODE VERSION XXX LOADED>
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 58-2
$SETCA	-- CONFIGURE CACHE

	000314	   115 	   111 	   103 		 .ASCIZ	\MICROCODE VERSION 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 	   130
	000341	   040 	   114 	   117
	000344	   101 	   104 	   105
	000347	   104 	   000
   2151	000351				TCBMVV:	MESSAGE	<MICROCODE VERSION XXX VERIFIED>
	000351	   115 	   111 	   103 		 .ASCIZ	\MICROCODE VERSION XXX VERIFIED\
	000354	   122 	   117 	   103
	000357	   117 	   104 	   105
	000362	   040 	   126 	   105
	000365	   122 	   123 	   111
	000370	   117 	   116 	   040
	000373	   130 	   130 	   130
	000376	   040 	   126 	   105
	000401	   122 	   111 	   106
	000404	   111 	   105 	   104
	000407	   000
   2152	000410				TCBBAD:	MESSAGE	<BAD  >					; [4.2209]
	000410	   102 	   101 	   104 		 .ASCIZ	\BAD  \
	000413	   040 	   040 	   000
   2153	000416				TCBGOD:	MESSAGE	<GOOD >					; [4.2209]
	000416	   107 	   117 	   117 		 .ASCIZ	\GOOD \
	000421	   104 	   040 	   000
   2154	000424				TCBXOR:	MESSAGE	<XOR  >					; [4.2209]
	000424	   130 	   117 	   122 		 .ASCIZ	\XOR  \
	000427	   040 	   040 	   000
   2155	001066					.PSECT
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 59
$SETCA	-- CONFIGURE CACHE

   2157					;+
   2158					; LOAD THE BINARY RAM FILE INTO THE KL OR USE THE FILE TO
   2159					; VERIFY THE RAM CODE.
   2160					; THE RAM BINARY FILE HAS THREE RECORD TYPES.
   2161					;	*D-RAM RECORDS:
   2162					;	.WORD	2+<6*N>		; BYTE COUNT RECORD LENGTH.
   2163					;	.WORD	ADR		; D-RAM ADDRESS (SHOULD BE EVEN).
   2164					;	.BLKW	3*N		; D-RAM CODE WORDS.
   2165					;	*C-RAM RECORDS:
   2166					;	.WORD	2+<14*N>	; BYTE COUNT RECORD LENGTH.
   2167					;	.WORD	100000+ADR	; C-RAM ADDRESS.
   2168					;	.BLKW	6*N		; C-RAM CODE WORDS.
   2169					;	*END OF FILE:
   2170					;	.WORD	2		; BYTE COUNT RECORD LENGTH.
   2171					;	.WORD	100000!ADR	; C-RAM STARTING ADDRESS
   2172					;				; (NORMALLY ZERO).
   2173					;
   2174					; THE C-RAM RECORDS MUST BE SORTED IN ASCENDING ORDER BY ADDRESS
   2175					; SO THAT UNUSED WORDS MAY BE CLEARED WITHOUT HAVING TO CLEAR ALL
   2176					; THE C-RAM LOCATIONS.
   2177					;-
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 60
$MCBLD	-- LOAD THE RAMS

   2179						.SBTTL	$MCBLD	-- LOAD THE RAMS
   2180					;+
   2181					; LOAD OR VERIFY THE C&D-RAMS AND REPORT THE VERSION.
   2182					;
   2183					; INPUTS:
   2184					;	.DRSW	- IF NON-ZERO, LOAD RAMS, OTHERWISE VERIFY.
   2185					;
   2186					; OUTPUTS:
   2187					;	CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   2188					;+
   2189					; GET THE FILE AND INITIALIZE THE KL FOR MICROCODE OPERATIONS.
   2190					;-
   2191
   2192	001066	012700 	000106'		$MCBLD::MOV	#DCBFNM,R0	; GET UCODE FILE NAME AND
   2193	001072	012710 				MOV	(PC)+,(R0)	; ASSUME MODEL A MICROCODE
   2195	001074	101550 				.RAD50	/UA/		; FOR MODEL A CPU.
   2199	001076	105737 	000036'			TSTB	.EASW		; IF
   2200	001102	003402 				BLE	10$		; MODEL B THEN
   2201	001104	012710 				MOV	(PC)+,(R0)	; CHOOSE
   2203	001106	101620 				.RAD50	/UB/		; MODEL B MICROCODE
   2207	001110	105737 	000025'		10$:	TSTB	.UFNSW		; IF FILE NAME SPECIFIED
   2208	001114	003402 				BLE	20$		; BY OPERATOR
   2209	001116	012700 	000442'			MOV	#.USRFN,R0	; THEN USE HIS.
   2210	001122				20$:	CALL	$LOOKUP		; AND OPEN IT.
	001122	004737 	007024'			 JSR	PC,$LOOKUP
   2211	001126	103411 				BCS	40$
   2212	001130	005037 	000144'			CLR	DCBCNT		; INITIALIZE RAM DIFFERENCE COUNT.
   2213	001134	012703 	000130'			MOV	#DCBDAT,R3	; DATA AREA AND
   2214	001140	005002 				CLR	R2		; NEXT C-RAM ADDRESS TO DEPOSIT.
   2215	001142					CALL	$KLMR		; RESET THE WORLD.
	001142	004737 	014350'			 JSR	PC,$KLMR
   2216	001146	103025 				BCC	LCBRC
   2217	001150				30$:	RETURN
	001150	000207 				 RTS	PC
   2218
   2219	001152	122737 	000000G	000470'	40$:	CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND
   2220	001160	001373 				BNE	30$
   2221	001162					CALL	$IOERR		; DECLARE THE ERROR.
	001162	004737 	006610'			 JSR	PC,$IOERR
   2222	001166	000137 	002312'			JMP	LCBFL		; REPORT OPERATION FAILED.
   2223
   2224					;+
   2225					; READ 3 OR 6 WORDS FROM THE MICROCODE FILE.
   2226					;
   2227					; INPUTS:
   2228					;	R3	- POINTER TO AREA TO RECIEVE DATA.
   2229					;
   2230					; OUTPUTS:
   2231					;	CARRY SET IF ERROR. R0, R4 & R5 ARE DESTROYED.
   2232					;-
   2233
   2234						.ENABL	LSB
   2235	001172	012705 	000003 		LCB3W:	MOV	#3,R5		; GET 3 WORDS.
   2236	001176	000402 				BR	10$
   2237	001200	012705 	000006 		LCB6W:	MOV	#6,R5		; GET 6 WORDS.
   2238	001204	010304 			10$:	MOV	R3,R4
   2239	001206				20$:	CALL	$READW
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 60-1
$MCBLD	-- LOAD THE RAMS

	001206	004737 	007566'			 JSR	PC,$READW
   2240	001212	103402 				BCS	30$
   2241	001214	010024 				MOV	R0,(R4)+
   2242	001216	077505 				SOB	R5,20$
   2243	001220				30$:	RETURN
	001220	000207 				 RTS	PC
   2244						.DSABL	LSB
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 61
$MCBLD	-- LOAD THE RAMS

   2246					;+
   2247					; IDENTIFY A RECORD AND DISPATCH ON RECORD TYPE.
   2248					; END-OF-FILE IS HANDLED HERE - THE C-RAM STARTING ADDRESS IS
   2249					; USED TO START THE MICROCODE, THE FILE IS CLOSED, AND WE GO
   2250					; TO IDENTIFY THE MICROCODE VERSION.
   2251					;
   2252					; NECESSARY EVILS:
   2253					;	.SYIRC	- THE NUMBER OF BYTES LEFT IN THE CURRENT RECORD.
   2254					;-
   2255
   2256	001222				LCBRC:	CALL	$READC		; GET ADDRESS.
	001222	004737 	007460'			 JSR	PC,$READC
   2257	001226	103433 				BCS	10$
   2258	001230	010037 	000126'			MOV	R0,DCBADR
   2259	001234	100402 				BMI	5$		; C-RAM RECORD OR END OF FILE
   2260	001236	000137 	001652'			JMP	LCBDRM		; D-RAM RECORD
   2261	001242	042737 	100000 	000126'	5$:	BIC	#BIT15,DCBADR	; (REMOVE FLAG)
   2262	001250	005737 	000476'			TST	.SYIRC
   2263	001254	003022 				BGT	LCBCRM		; C-RAM RECORD OR
   2264	001256	013700 	000126'			MOV	DCBADR,R0	; C-RAM START ADDRESS.
   2265	001262	005737 	000144'			TST	DCBCNT		; IF VERIFY AND DIFFERENCE FOUND
   2266	001266	001013 				BNE	10$		; SIGNAL ERROR.
   2267	001270					CALL	$ACRAM		; SET C-RAM STARTING ADDRESS
	001270	004737 	011430'			 JSR	PC,$ACRAM
   2268	001274	103410 				BCS	10$		; AND
   2269	001276	012700 	001000 			MOV	#.STRCL,R0
   2270	001302					CALL	$DFXC		; START THE CLOCK.
	001302	004737 	013222'			 JSR	PC,$DFXC
   2271	001306					CALL	$CLOSE		; CLOSE THE FILE
	001306	004737 	006320'			 JSR	PC,$CLOSE
   2272	001312	000137 	002344'			JMP	LCBVR		; IDENTIFY RAM VERSION.
   2273	001316	000137 	002312'		10$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 62
$MCBLD	-- LOAD THE RAMS

   2275					;+
   2276					; PROCESS C-RAM RECORD.
   2277					;
   2278					; NECESSARY EVILS:
   2279					;	R3	- POINTS TO THE CURRENT C-RAM WORD FROM THE FILE.
   2280					;	R2	- CONTAINS THE NEXT EXPECTED C-RAM ADDRESS TO BE
   2281					;		  WRITTEN.
   2282					;	DCBADR	- CONTAINS THE ADDRESS FOR THE C-RAM WORD READ
   2283					;		  FROM THE FILE.
   2284					;	.DRSW	- IF NON-ZERO, THEN VERIFY.
   2285					;	.SYIRC	- COUNT OF BYTES LEFT IN CURRENT RECORD.
   2286					;-
   2287
   2288	001322	005037 	000146'		LCBCRM:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2289	001326	105737 	000026'			TSTB	.DRSW		; TEST FUNCTION...
   2290	001332	001013 				BNE	20$		; IF WE ARE LOADING,
   2291	001334	020237 	000126'		10$:	CMP	R2,DCBADR	; AND WORDS ARE BEING SKIPPED
   2292	001340	001412 				BEQ	30$
   2293	001342	012701 	000000'			MOV	#.ZERO,R1	; THEN ZERO THE WORDS OUT.
   2294	001346	010200 				MOV	R2,R0
   2295	001350					CALL	$WCRAM
	001350	004737 	010546'			 JSR	PC,$WCRAM
   2296	001354	103534 				BCS	80$
   2297	001356	005202 				INC	R2
   2298	001360	000765 				BR	10$
   2299	001362	013702 	000126'		20$:	MOV	DCBADR,R2
   2300	001366				30$:	CALL	LCB6W		; GET THE C-RAM WORD AND
	001366	004737 	001200'			 JSR	PC,LCB6W
   2301	001372	103525 				BCS	80$
   2302	001374	010200 			35$:	MOV	R2,R0		; SET UP POINTER.
   2303	001376	105737 	000026'			TSTB	.DRSW		; IF WE VERIFY,
   2304	001402	001414 				BEQ	50$
   2305	001404	012701 	000150'			MOV	#DCBCBF,R1	; GET HOLDING AREA,
   2306	001410					CALL	$RCRAM		; READ IT IN
	001410	004737 	011026'			 JSR	PC,$RCRAM
   2307	001414	103514 				BCS	80$
   2308	001416	012705 	000006 			MOV	#6,R5		; AND COMPARE 6 WORDS
   2309	001422	010300 				MOV	R3,R0
   2310	001424	022021 			40$:	CMP	(R0)+,(R1)+
   2311	001426	001023 				BNE	70$
   2312	001430	077503 				SOB	R5,40$
   2313	001432	000404 				BR	60$		; OTHERWISE
   2314	001434	010301 			50$:	MOV	R3,R1		; GET THE WORD ADDRESS
   2315	001436					CALL	$WCRAM		; AND WRITE INTO THE RAM.
	001436	004737 	010546'			 JSR	PC,$WCRAM
   2316	001442	103501 				BCS	80$
   2317	001444	005737 	000146'		60$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2318	001450	001402 				BEQ	65$		; [4.2209] NO-- CONTINUE
   2319	001452	005337 	000144'			DEC	DCBCNT		; [4.2209] YES-- DECREMENT ERROR COUNT
   2320	001456	005037 	000146'		65$:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2321	001462	005202 				INC	R2		; BUMP C-RAM ADDRESS AND
   2322	001464	005737 	000476'			TST	.SYIRC		; IF MORE DATA, THEN
   2323	001470	001336 				BNE	30$		; GET NEXT WORD OR
   2324	001472	000137 	001222'			JMP	LCBRC		; GET NEW RECORD.
   2325	001476	005737 	000146'		70$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2326	001502	001405 				BEQ	72$		; [4.2209] NO-- CONTINUE
   2327	001504	012700 	000265'			MOV	#TCBFXF,R0	; [4.2209] YES-- TYPE MESSAGE
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 62-1
$MCBLD	-- LOAD THE RAMS

   2328	001510					CALL	$TTMSG		; [4.2209] TYPE IT
	001510	004737 	025442'			 JSR	PC,$TTMSG
   2329	001514	000760 				BR	65$		; [4.2209] TRY NEXT WORD
   2330	001516	010200 			72$:	MOV	R2,R0		; ERROR - PUT ADDRESS
   2331	001520	012701 	000117'			MOV	#TCBDCW,R1	; INTO ERROR MESSAGE
   2332	001524					CALL	LCBRME		; AND INFORM OPERATOR.
	001524	004737 	002172'			 JSR	PC,LCBRME
   2333	001530	103446 				BCS	80$		; FIVE UNFIXED ERRORS.
   2334	001532	012701 	000150'			MOV	#DCBCBF,R1	; [4.2209] BAD BUFFER TO TYPE
   2335	001536	012700 	000410'			MOV	#TCBBAD,R0	; [4.2209] HEADER TO TYPE
   2336	001542	005004 				CLR	R4		; [4.2209] CRAM TYPE OUT SWITCH
   2337	001544					CALL	LCBVFY		; [4.2209] TYPE BAD DATA
	001544	004737 	002246'			 JSR	PC,LCBVFY
   2338	001550	010301 				MOV	R3,R1		; [4.2209] GOOD BUFFER TO TYPE
   2339	001552	012700 	000416'			MOV	#TCBGOD,R0	; [4.2209] HEADER TO TYPE
   2340	001556					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
	001556	004737 	002246'			 JSR	PC,LCBVFY
   2341	001562	012700 	000150'			MOV	#DCBCBF,R0	; [4.2209] BAD DATA PTR
   2342	001566	010301 				MOV	R3,R1		; [4.2209] GOOD DATA PTR
   2343	001570	012705 	000006 			MOV	#6,R5		; [4.2209] NUMBER OF WORDS
   2344	001574	012104 			75$:	MOV	(R1)+,R4	; [4.2209] GET GOOD DATA
   2345	001576	074420 				XOR	R4,(R0)+	; [4.2209] GET DIFFERENCES
   2346	001600	077503 				SOB	R5,75$		; [4.2209] DONE?
   2347	001602	012701 	000150'			MOV	#DCBCBF,R1	; [4.2209] YES-- XOR DATA TO TYPE
   2348	001606	012700 	000424'			MOV	#TCBXOR,R0	; [4.2209] HEADER TO TYPE
   2349	001612	005004 				CLR	R4		; [4.2209] CRAM TYPE OUT SWITCH
   2350	001614					CALL	LCBVFY		; [4.2209] TYPE XOR DATA
	001614	004737 	002246'			 JSR	PC,LCBVFY
   2351	001620	105737 	000026'			TSTB	.DRSW		; [4.2209] YES-- TRY TO FIX?
   2352	001624	002307 				BGE	60$		; [4.2209] NO-- EXIT
   2353	001626	010301 				MOV	R3,R1		; [4.2209] YES-- SET UP GOOD DATA
   2354	001630	010200 				MOV	R2,R0		; [4.2209] ADDR TO WRITE
   2355	001632					CALL	$WCRAM		; [4.2209] WRITE DATA
	001632	004737 	010546'			 JSR	PC,$WCRAM
   2356	001636	103403 				BCS	80$		; [4.2209] WRITE FAILED
   2357	001640	005237 	000146'			INC	DCBFIX		; [4.2209] SET FIXED FLAG
   2358	001644	000653 				BR	35$		; [4.2209] VERIFY FIX
   2359	001646	000137 	002312'		80$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 63
$MCBLD	-- LOAD THE RAMS

   2361					;+
   2362					; PROCESS D-RAM RECORD.
   2363					;
   2364					; NECESSARY EVILS:
   2365					;	R3	- POINTS TO D-RAM WORD READ FROM FILE.
   2366					;	DCBADR	- ADDRESS FOR D-RAM WORD FROM FILE.
   2367					;	.DRSW	- IF NON-ZERO, THEN VERIFY.
   2368					;-
   2369
   2370	001652	005037 	000146'		LCBDRM:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2371	001656					CALL	LCB3W		; READ D-RAM WORD AND
	001656	004737 	001172'			 JSR	PC,LCB3W
   2372	001662	103541 				BCS	40$
   2373	001664	013700 	000126'			MOV	DCBADR,R0	; SET UP POINTERS.
   2374	001670	105737 	000026'			TSTB	.DRSW		; TEST FUNCTION...
   2375	001674	001005 				BNE	10$
   2376	001676	010301 				MOV	R3,R1		; GET THE WORD AND
   2377	001700					CALL	$WDRAM		; WRITE IT OUT.
	001700	004737 	011556'			 JSR	PC,$WDRAM
   2378	001704	103021 				BCC	20$
   2379	001706	000527 				BR	40$
   2380	001710	012701 	000164'		10$:	MOV	#DCBDBF,R1	; GET A HOLDING AREA
   2381	001714					CALL	$RDRAM		; AND READ IT IN
	001714	004737 	011736'			 JSR	PC,$RDRAM
   2382	001720	103522 				BCS	40$
   2383	001722	010300 				MOV	R3,R0
   2384	001724	042711 	000020 			BIC	#20,(R1)	; CLEAR PARITY BITS
   2385	001730	022120 				CMP	(R1)+,(R0)+	; AND COMPARE.
   2386	001732	001025 				BNE	30$
   2387	001734	042711 	000020 			BIC	#20,(R1)
   2388	001740	022120 				CMP	(R1)+,(R0)+
   2389	001742	001021 				BNE	30$
   2390	001744	021110 				CMP	(R1),(R0)
   2391	001746	001017 				BNE	30$
   2392	001750	005737 	000146'		20$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2393	001754	001402 				BEQ	25$		; [4.2209] NO-- CONTINUE
   2394	001756	005337 	000144'			DEC	DCBCNT		; [4.2209] YES-- DECREMENT ERROR COUNT
   2395	001762	005037 	000146'		25$:	CLR	DCBFIX		; [4.2209] CLEAR FIX FLAG
   2396	001766	062737 	000002 	000126'		ADD	#2,DCBADR	; BUMP D-RAM ADDRESS.
   2397	001774	005737 	000476'			TST	.SYIRC		; END OF RECORD ?
   2398	002000	001324 				BNE	LCBDRM		; NO, STILL GOING,
   2399	002002	000137 	001222'			JMP	LCBRC		; OTHERWISE GET NEW RECORD.
   2400	002006	005737 	000146'		30$:	TST	DCBFIX		; [4.2209] FIXED FLAG SET?
   2401	002012	001405 				BEQ	32$		; [4.2209] NO-- CONTINUE
   2402	002014	012700 	000265'			MOV	#TCBFXF,R0	; [4.2209] YES-- TYPE MESSAGE
   2403	002020					CALL	$TTMSG		; [4.2209] TYPE IT
	002020	004737 	025442'			 JSR	PC,$TTMSG
   2404	002024	000756 				BR	25$		; [4.2209] TRY NEXT WORD
   2405	002026	013700 	000126'		32$:	MOV	DCBADR,R0	; ERROR - PUT ADDRESS
   2406	002032	012701 	000151'			MOV	#TCBDDW,R1	; IN ERROR MESSAGE
   2407	002036					CALL	LCBRME		; AND INFORM OPERATOR.
	002036	004737 	002172'			 JSR	PC,LCBRME
   2408	002042	103451 				BCS	40$		; FIVE UNFIXED ERRORS
   2409	002044	012704 	000001 			MOV	#1,R4		; [4.2209] DRAM TYPE OUT SWITCH
   2410	002050	012701 	000164'			MOV	#DCBDBF,R1	; [4.2209] BAD BUFFER
   2411	002054	012700 	000410'			MOV	#TCBBAD,R0	; [4.2209] HEADER
   2412	002060					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 63-1
$MCBLD	-- LOAD THE RAMS

	002060	004737 	002246'			 JSR	PC,LCBVFY
   2413	002064	010301 				MOV	R3,R1		; [4.2209] GOOD BUFFER
   2414	002066	012700 	000416'			MOV	#TCBGOD,R0	; [4.2209] HEADER
   2415	002072					CALL	LCBVFY		; [4.2209] TYPE GOOD DATA
	002072	004737 	002246'			 JSR	PC,LCBVFY
   2416	002076	012700 	000164'			MOV	#DCBDBF,R0	; [4.2209] BAD BUFFER
   2417	002102	010301 				MOV	R3,R1		; [4.2209] GOOD DATA
   2418	002104	012705 	000003 			MOV	#3,R5		; [4.2209] NUMBER OF WORDS
   2419	002110	012104 			35$:	MOV	(R1)+,R4	; [4.2209] GET GOOD DATA
   2420	002112	074420 				XOR	R4,(R0)+	; [4.2209] GET DIFFERENCES
   2421	002114	077503 				SOB	R5,35$		; [4.2209] DONE?
   2422	002116	012701 	000164'			MOV	#DCBDBF,R1	; [4.2209] YES-- XOR BUFFER
   2423	002122	012700 	000424'			MOV	#TCBXOR,R0	; [4.2209] HEADER
   2424	002126	012704 	000001 			MOV	#1,R4		; [4.2209] DRAM TYPE OUT HEADER
   2425	002132					CALL	LCBVFY		; [4.2209] TYPE XOR DATA
	002132	004737 	002246'			 JSR	PC,LCBVFY
   2426	002136	105737 	000026'			TSTB	.DRSW		; [4.2209] TRY TO FIX?
   2427	002142	002302 				BGE	20$		; [4.2209] NO-- NEXT WORD
   2428	002144	013700 	000126'			MOV	DCBADR,R0	; [4.2209] YES-- SET UP ADDRESS
   2429	002150	010301 				MOV	R3,R1		; [4.2209] SET UP DATA
   2430	002152					CALL	$WDRAM		; [4.2209] WRITE IT
	002152	004737 	011556'			 JSR	PC,$WDRAM
   2431	002156	103403 				BCS	40$		; [4.2209] WRITE FAILED
   2432	002160	005237 	000146'			INC	DCBFIX		; [4.2209] SET FIXED FLAG
   2433	002164	000651 				BR	10$		; [4.2209] VERIFY FIX
   2434	002166	000137 	002312'		40$:	JMP	LCBFL		; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 64
$MCBLD	-- LOAD THE RAMS

   2436					;+
   2437					; INSERT RAM ADDRESS IN ERROR MESSAGE AND PRINT IT. BUMP ERROR COUNT
   2438					; AND IF TOO HIGH, SO INDICATE.
   2439					;
   2440					; INPUTS:
   2441					;	R1	- ADDRESS OF MESSAGE TO DISPLAY.
   2442					;	R0	- RAM ADDRESS TO DISPLAY IN OCTAL AFTER "AT ".
   2443					;
   2444					; OUTPUT:
   2445					;	CARRY SET IF TOO MANY ERRORS.
   2446					;-
   2447
   2448	002172	004537 	022242'		LCBRME:	JSR	R5,$RSAVE
   2449	002176	010105 				MOV	R1,R5		; GET MESSAGE ADDRESS
   2450	002200	122725 	000101 		10$:	CMPB	#'A,(R5)+	; AND LOOK FOR "AT"
   2451	002204	001375 				BNE	10$
   2452	002206	122725 	000124 			CMPB	#'T,(R5)+
   2453	002212	001372 				BNE	10$
   2454	002214	005205 				INC	R5		; PASS BY SPACE
   2455	002216					CALL	$TRB2O		; AND INSERT RAM ADDRESS.
	002216	004737 	024470'			 JSR	PC,$TRB2O
   2456	002222	105015 				CLRB	(R5)		; THIS IS THE END OF THE MESSAGE.
   2457	002224					PRINT	R1		; TYPE OUT OFFENDING ADDRESS.
	002224	010100 				 MOV	R1,R0
	002226	004737 	025442'			 JSR	PC,$TTMSG
   2458	002232	005237 	000144'			INC	DCBCNT		; ONE MORE DIFFERENCE.
   2459	002236	022737 	000005 	000144'		CMP	#5,DCBCNT	; LAST STRAW ?
   2460	002244					RETURN			; SETS CARRY IF MCBCNT>5.
	002244	000207 				 RTS	PC
   2461
   2462					;+
   2463					; TYPE MESSAGE HEADER THEN A SPECIFIED NUMBER OF WORDS AS BINARY VALUES.
   2464					;
   2465					; INPUTS:
   2466					;	R0-	MESSAGE HEADER.
   2467					;	R1-	DATA BUFFER TO TYPE AS BINARY DIGITS.
   2468					;	R4-	CRAM/DRAM TYPE OUT SWITCH
   2469					;
   2470					; OUTPUTS:
   2471					;	NONE-	NO REGISTERS AFFECTED
   2472					;-
   2473
   2474	002246				LCBVFY:	PUSH	<R0>		; [4.2209] SAVE R0
	002246	010046 				 MOV	R0,-(SP)
   2475	002250	012700 	000207'			MOV	#TTTPR,R0	; [4.2209] PREFIX HEADER
   2476	002254					CALL	$TTDMS		; [4.2209] TYPE PREFIX HEADER
	002254	004737 	025374'			 JSR	PC,$TTDMS
   2477	002260					POP	<R0>		; [4.2209] RESTORE R0
	002260	012600 				 MOV	(SP)+,R0
   2478	002262					CALL	$TTDMS		; [4.2209] TYPE MESSAGE HEADER
	002262	004737 	025374'			 JSR	PC,$TTDMS
   2479	002266	005704 				TST	R4		; [4.2209] TEST SWITCH
   2480	002270	001403 				BEQ	5$		; [4.2209] CRAM
   2481	002272					CALL	$TRDRM		; [4.2209] TYPE DRAM
	002272	004737 	023646'			 JSR	PC,$TRDRM
   2482	002276	000402 				BR	7$		; [4.2209] CONTINUE
   2483	002300				5$:	CALL	$TRCRM		; [4.2209] TYPE CRAM
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 64-1
$MCBLD	-- LOAD THE RAMS

	002300	004737 	023502'			 JSR	PC,$TRCRM
   2484	002304				7$:	CALL	$TCRLF		; [4.2209] TYPE CR-LF
	002304	004737 	025336'			 JSR	PC,$TCRLF
   2485	002310					RETURN			; [4.2209] DONE
	002310	000207 				 RTS	PC
   2486
   2487					;+
   2488					; OPERATION FAILED - NOTIFY OPERATOR.
   2489					;-
   2490
   2491	002312	012700 	000203'		LCBFL:	MOV	#TCBMLF,R0	; ASSUME LOAD
   2492	002316	105737 	000026'			TSTB	.DRSW		; AND IF VERIFY,
   2493	002322	001402 				BEQ	10$
   2494	002324	012700 	000233'			MOV	#TCBMVF,R0	; GET VERIFY MESSAGE.
   2495	002330				10$:	PRINT
	002330	004737 	025442'			 JSR	PC,$TTMSG
   2496	002334					CALL	$PURGE
	002334	004737 	007366'			 JSR	PC,$PURGE
   2497	002340	000261 				SEC
   2498	002342					RETURN
	002342	000207 				 RTS	PC
KLICB -- LOAD THE MICROCODE	MACRO M1110  15-OCT-79 14:14  PAGE 65
$MCBLD	-- LOAD THE RAMS

   2500					;+
   2501					; IDENTIFY THE MICROCODE VERSION NUMBER.
   2502					;-
   2503
   2504	002344	105737 	000026'		LCBVR: TSTB	.DRSW		; GET MESSAGE:
   2505	002350	001003 				BNE	10$
   2506	002352	012702 	000314'			MOV	#TCBMVL,R2	; MICROCODE LOADED OR
   2507	002356	000402 				BR	20$
   2508	002360	012702 	000351'		10$:	MOV	#TCBMVV,R2	; MICROCODE VERIFIED.
   2509	002364	010205 			20$:	MOV	R2,R5		; GET POSITION TO INSERT
   2510	002366	122725 	000117 		30$:	CMPB	#'O,(R5)+	; MICROCODE VERSION.
   2511	002372	001375 				BNE	30$
   2512	002374	122725 	000116 			CMPB	#'N,(R5)+
   2513	002400	001372 				BNE	30$
   2514	002402	005205 				INC	R5
   2515	002404	012700 	000202'			MOV	#DCBAPR,R0
   2516	002410					CALL	$EXCT		; DO AN APRID
	002410	004737 	026174'			 JSR	PC,$EXCT
   2517	002414	103425 				BCS	50$
   2518	002416	012701 	000172'			MOV	#DCBBF,R1	; AND GET RESULT
   2519	002422	012700 	000177'			MOV	#DCBA17,R0	; FROM AC17.
   2520	002426					CALL	$EXAM
	002426	004737 	012466'			 JSR	PC,$EXAM
   2521	002432	103416 				BCS	50$
   2522	002434	016100 	000002 			MOV	2(R1),R0	; EXTRACT MICROCODE VERSION
   2523	002440					SR	R0,2		; FROM BITS 9-17
	002440	006200 				  ASR	R0
	002442	006200 				  ASR	R0
   2524	002444	042700 	177000 			BIC	#^C777,R0	; AND ONLY THESE BITS.
   2525	002450					CALL	$TRB2O
	002450	004737 	024470'			 JSR	PC,$TRB2O
   2526	002454	122715 	000040 		40$:	CMPB	#' ,(R5)	; ZAP OUT REST OF FIELD.
   2527	002460	001410 				BEQ	60$
   2528	002462	112725 	177777 			MOVB	#-1,(R5)+
   2529	002466	000772 				BR	40$
   2530	002470	112715 	000077 		50$:	MOVB	#'?,(R5)	; VERSION UNKNOWN.
   2531	002474	112515 				MOVB	(R5)+,(R5)
   2532	002476	112525 				MOVB	(R5)+,(R5)+
   2533	002500	005005 				CLR	R5		; INDICATE LOAD WAS A FLOP.
   2534	002502				60$:	PRINT	R2		; PRINT THE MESSAGE.
	002502	010200 				 MOV	R2,R0
	002504	004737 	025442'			 JSR	PC,$TTMSG
   2535	002510	005705 				TST	R5		; HOW DID IT TURN OUT ?
   2536	002512	001001 				BNE	70$
   2537	002514	000261 				SEC			; BADLY.....
   2538	002516				70$:	RETURN
	002516	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 66
$MCBLD	-- LOAD THE RAMS

   2540						.TITLE	KLICF -- CREATE NEW CONFIGURATION IN FILE
   2541	002520					IDENT$	11,4
						.IDENT	/011040/
   2542					;
   2543					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   2544					;
   2545					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   2546					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   2547					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   2548					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   2549					;
   2550					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   2551					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   2552					; EQUIPMENT CORPORATION.
   2553					;
   2554					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   2555					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   2556					;
   2557					; VERSION 11-04
   2558					;
   2559					; ALAN D. PECKHAM  11-APR-77
   2560					;
   2561					; MODIFIED BY:
   2562					;
   2563					;	R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   2564					;					TCO 4.2204
   2565					;	R. BELANGER	16-NOV-78	INTEGRATE TOPS-10 SMP FEATURES
   2566					;					TCO 4.2093
   2567					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
   2568					;
   2569					; FUNCTION: THIS MODULE WRITES OUT THE NEW CONFIGURATION TO
   2570					;  KL.CFG IF THE CONFIGURATION HAS BEEN CHANGED.
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 67
$MCBLD	-- LOAD THE RAMS

   2572					;
   2573					; EQUATED SYMBOLS
   2574					;
   2575		000003 			MXTYP	=	3		; LARGEST RECORD TYPE WE HANDLE.
   2576					;
   2577					; LOCAL DATA
   2578					;
   2579	000220					.PSECT	DATA,D
   2580	000220				DCFCFN:
   2581	000220	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000226	011667
   2582	000230	000000 				.WORD	0		;CREATE NEXT VERSION.
   2583	000232	   005 	   005 			.BYTE	5,5
   2584	000234	054523 	000000 			.WORD	"SY,0
   2585	000240				DCFLFN:
   2586	000240	043240 	000000 	000000 		.RAD50	/KL       CFG/	;CONFIGURATION FILE NAME.
	000246	011667
   2587	000250	177777 				.WORD	-1		;DELETE LOWEST VERSION.
   2588	000252	   005 	   005 			.BYTE	5,5
   2589	000254	054523 	000000 			.WORD	"SY,0
   2590	000260				DCFRJT:
   2591	000260	002746'				.WORD	LCFREF		; 0 - EOF RECORD
   2592	000262	002640'				.WORD	LCFRMM		; 1 - CONTROLLER RECORD
   2594	000264	002730'				.WORD	LCFRCA		; 2 - CACHE RECORD
   2598	000266	002720'				.WORD	LCFRBF		; 3 - BOOTSTRAP RECORD
   2602	000432					.PSECT	TEXT,D
   2603	000432				TCFCFA:
   2604	000432					MESSAGE	<CONFIGURATION FILE WRITTEN>		;[TCO 4.2251]
	000432	   103 	   117 	   116 		 .ASCIZ	\CONFIGURATION FILE WRITTEN\
	000435	   106 	   111 	   107
	000440	   125 	   122 	   101
	000443	   124 	   111 	   117
	000446	   116 	   040 	   106
	000451	   111 	   114 	   105
	000454	   040 	   127 	   122
	000457	   111 	   124 	   124
	000462	   105 	   116 	   000
   2605	000465				TCFCFE:
   2606	000465					ERROR	<CONFIGURATION FILE NOT CHANGED>
	000465	   077 	   040 	   103 		 .ASCIZ	\? CONFIGURATION FILE NOT CHANGED\
	000470	   117 	   116 	   106
	000473	   111 	   107 	   125
	000476	   122 	   101 	   124
	000501	   111 	   117 	   116
	000504	   040 	   106 	   111
	000507	   114 	   105 	   040
	000512	   116 	   117 	   124
	000515	   040 	   103 	   110
	000520	   101 	   116 	   107
	000523	   105 	   104 	   000
   2607	002520					.PSECT
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 68
$FILE	-- WRITE THE CONFIGURATION FILE

   2609						.SBTTL	$FILE	-- WRITE THE CONFIGURATION FILE
   2610
   2611					;+
   2612					; CONFIGURATION FILE FORMAT:
   2613					;
   2614					; GENERAL --
   2615					;
   2616					;	RECORDS IN THE CONFIGURATION FILE HAVE THE FOLLOWING GENERAL FORMAT:
   2617					;
   2618					;		+-----------+
   2619					;		!  .WORD N  !
   2620					;		+-----------+
   2621					;		! RECORD ID !
   2622					;		+-----------+
   2623					;		! .BLKB N-2 !
   2624					;		+-----------+
   2625					;
   2626					; END-OF-FILE RECORD:
   2627					;
   2628					;	THE END-OF FILE RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
   2629					;
   2630					;		+-----------+
   2631					;		!  .WORD 2  !
   2632					;		+-----------+
   2633					;		!  .WORD 0  !
   2634					;		+-----------+
   2635					;
   2636					; MEMORY CONTROLLER RECORD:
   2637					;
   2638					;	A MEMORY CONTROLLER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
   2639					;
   2640					;		+-----------+
   2641					;		!  .WORD 6  !
   2642					;		+-----------+
   2643					;		!  .WORD 1  !
   2644					;		+-----------+
   2645					;		!  .BLKB 4  !
   2646					;		+-----------+
   2647					;
   2648					; CACHE RECORD:
   2649					;
   2650					;	A CACHE RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
   2651					;
   2652					;		+-----------+
   2653					;		!  .WORD X  !	(X = .NCACH + 3)
   2654					;		+-----------+
   2655					;		!  .WORD 2  !
   2656					;		+-----------+
   2657					;		!  .BLKB Y  !	(Y = .NCACH)
   2658					;		+-----------+
   2659					;
   2660					; BOOTSTRAP RECORD:
   2661					;
   2662					;	THE BOOTSTRAP RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
   2663					;
   2664					;		+-----------+
   2665					;		!  .WORD N  !	(N >= 4)
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 68-1
$FILE	-- WRITE THE CONFIGURATION FILE

   2666					;		+-----------+
   2667					;		!  .WORD 3  !
   2668					;		+-----------+
   2669					;		!  .BLKB 1  !
   2670					;		+-----------+
   2671					;		!  .BLKB 1  !
   2672					;		+-----------+
   2673					;		!  .BLKW 4  !
   2674					;		+-----------+
   2675					;
   2676					;	THE FIRST TWO BYTES IN THE RECORD ARE ".BTSW" AND ".UFNSW".  IF
   2677					;	THE USER SPECIFIED A FILENAME FOR THE BOOTSTRAP, THE FILENAME IS
   2678					;	SAVED IN THE LAST FOUR WORDS OF THE BOOTSTRAP RECORD.
   2679					;
   2680					;	A NON EXISTENT RECORD IN THE FILE IMPLIES THE DEFAULT, ALL, OR YES
   2681					;	OPTION IS TO BE TAKEN
   2682					;-
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 69
$FILE	-- WRITE THE CONFIGURATION FILE

   2684	002520				$FILE::
   2685	002520	105737 	000041'			TSTB	.FILSW		; WRITE CONFIGURATION FILE??
   2686	002524	100560 				BMI	LCFRTN		; NO -- JUST EXIT
   2687	002526	105737 	000042'			TSTB	.BTSW		; YES -- BOOTSTRAP MODIFIED??
   2688	002532	001006 				BNE	10$		; YES -- WRITE THE  FILE
   2690	002534	105737 	000027'			TSTB	.DCSW		; IF NO CACHE OR
   2691	002540	001003 				BNE	10$
   2692	002542	105737 	000030'			TSTB	.DMSW		; MEMORY MODIFICATION,
   2696	002546	001547 				BEQ	LCFRTN		; LEAVE THE FILE ALONE.
   2697	002550				10$:
   2698	002550	005004 				CLR	R4		; SET INPUT FILE SWITCH.
   2699	002552	012700 	000220'			MOV	#DCFCFN,R0	; FIRST, FIND OLD FILE
   2700	002556					CALL	$LOOKUP
	002556	004737 	007024'			 JSR	PC,$LOOKUP
   2701	002562	103005 				BCC	20$
   2702	002564	122737 	000000G	000470'		CMPB	#IE.NSF,.SYSTA	; IF NOT THERE
   2703	002572	001140 				BNE	LCFERR
   2704	002574	005304 				DEC	R4		; SET INDICATOR.
   2705	002576				20$:
   2706	002576	012700 	000220'			MOV	#DCFCFN,R0	; OPEN 'KL.CFG'
   2707	002602					CALL	$ENTER		; FOR OUTPUT.
	002602	004737 	007176'			 JSR	PC,$ENTER
   2708	002606	103532 				BCS	LCFERR
   2709	002610	005704 				TST	R4		; IF NO INPUT FILE
   2710	002612	002455 				BLT	LCFREF		; THEN DON'T READ IT.
   2711					;
   2712					; READ THE NEXT RECORD FROM THE FILE AND DISPATCH ON ITS RECORD TYPE
   2713					;
   2714	002614				LCFNXT:
   2715	002614					CALL	$READC		; READ NEXT RECORD
	002614	004737 	007460'			 JSR	PC,$READC
   2716	002620	103523 				BCS	LCFPRG
   2717	002622	010001 				MOV	R0,R1		; AND SAVE ID.
   2718	002624	022701 	000003 			CMP	#MXTYP,R1	; IS IT MY RECORD ?
   2719	002630	002406 				BLT	LCFCPY		; NO, JUST TRANSFER.
   2720	002632	006300 				ASL	R0
   2721	002634	000170 	000260'			JMP	@DCFRJT(R0)	; PROCESS THE RECORD.
   2722						;
   2723					;
   2724					; PROCESS MEMORY CONTROLLER RECORDS
   2725					;
   2726	002640				LCFRMM:
   2727	002640	105737 	000030'			TSTB	.DMSW		; IF MEMORY CONFIGURATION IS CHANGED
   2728	002644	001034 				BNE	LCFSKP		; THEN SKIP RECORD, OTHERWISE
   2729					;
   2730					; COPY A RECORD FROM THE INPUT FILE TO THE OUTPUT FILE
   2731					;
   2732	002646				LCFCPY:
   2733	002646	013700 	000476'			MOV	.SYIRC,R0	; TRANSFER RECORD TO OUTPUT FILE.
   2734	002652	062700 	000002 			ADD	#2,R0
   2735	002656					CALL	$WRITC		; (BYTE COUNT)
	002656	004737 	010066'			 JSR	PC,$WRITC
   2736	002662	103502 				BCS	LCFPRG
   2737	002664	010100 				MOV	R1,R0
   2738	002666					CALL	$WRITW		; (ID #)
	002666	004737 	010200'			 JSR	PC,$WRITW
   2739	002672	103476 				BCS	LCFPRG
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 69-1
$FILE	-- WRITE THE CONFIGURATION FILE

   2740	002674				10$:
   2741	002674	005737 	000476'			TST	.SYIRC		; ANY MORE STUFF ?
   2742	002700	003745 				BLE	LCFNXT		; NO, WE ARE FINISHED.
   2743	002702					CALL	$READB
	002702	004737 	007662'			 JSR	PC,$READB
   2744	002706	103470 				BCS	LCFPRG
   2745	002710					CALL	$WRITB
	002710	004737 	010274'			 JSR	PC,$WRITB
   2746	002714	103465 				BCS	LCFPRG
   2747	002716	000766 				BR	10$		; LOOP UNTIL WE RUN OUT OF BYTES.
   2748						;
   2749					;
   2750					; PROCESS THE BOOTSTRAP RECORD
   2751					;
   2752	002720				LCFRBF:
   2753	002720	105737 	000042'			TSTB	.BTSW		; BOOTSTRAP FLAG MODIFIED??
   2754	002724	001750 				BEQ	LCFCPY		; NO -- COPY RECORD
   2755	002726	000403 				BR	LCFSKP		; YES --SKIP RECORD
   2756						;
   2758					;
   2759					; PROCESS THE CACHE RECORD
   2760					;
   2761	002730				LCFRCA:
   2762	002730	105737 	000027'			TSTB	.DCSW		; IF CACHE IS NOT CHANGED
   2763	002734	001744 				BEQ	LCFCPY		; THEN COPY CACHE RECORD, OTHERWISE
   2765					;
   2766					; SKIP AN INPUT RECORD
   2767					;
   2768	002736				LCFSKP:
   2769	002736					CALL	$READS		; SKIP THIS RECORD.
	002736	004737 	007516'			 JSR	PC,$READS
   2770	002742	103452 				BCS	LCFPRG
   2771	002744	000723 				BR	LCFNXT		; GET A NEW RECORD.
   2772						;
   2774					;
   2775					; HERE ON END-OF-FILE RECORD
   2776					;
   2777	002746				LCFREF:
   2778	002746	105737 	000027'			TSTB	.DCSW		; IF CACHE WAS CHANGED
   2779	002752	001403 				BEQ	10$
   2780	002754					CALL	LCFWCA		; THEN WRITE THE CACHE RECORD.
	002754	004737 	003354'			 JSR	PC,LCFWCA
   2781	002760	103443 				BCS	LCFPRG
   2782	002762				10$:
   2783	002762	105737 	000030'			TSTB	.DMSW		; IF THE MEMORY CONFIGURATION
   2788	002766	001403 				BEQ	20$		; WAS CHANGED, THEN
   2789	002770					CALL	LCFWMM		; WRITE THE CONTROLLER RECORDS.
	002770	004737 	003246'			 JSR	PC,LCFWMM
   2790	002774	103435 				BCS	LCFPRG
   2791	002776				20$:
   2792	002776	105737 	000042'			TSTB	.BTSW		; BOOT FLAG CHANGED??
   2793	003002	001403 				BEQ	30$		; NO -- GO ON
   2794	003004					CALL	LCFWBF		; YES -- WRITE BOOT RECORD
	003004	004737 	003110'			 JSR	PC,LCFWBF
   2795	003010	103427 				BCS	LCFPRG		;ERROF CC-C IS SET
   2796	003012				30$:
   2797	003012					CALL	LCFWEF		; NOW WRITE END OF FILE.
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 69-2
$FILE	-- WRITE THE CONFIGURATION FILE

	003012	004737 	003224'			 JSR	PC,LCFWEF
   2798	003016	103424 				BCS	LCFPRG
   2799	003020					CALL	$CLOSE		; CLOSE THE FILE AND
	003020	004737 	006320'			 JSR	PC,$CLOSE
   2800	003024	103421 				BCS	LCFPRG
   2801	003026	005704 				TST	R4		; DELETE THE OLD VERSION
   2802	003030	002404 				BLT	90$		; IF THERE IS ONE.
   2803	003032	012700 	000240'			MOV	#DCFLFN,R0
   2804	003036					CALL	$DELETE
	003036	004737 	006456'			 JSR	PC,$DELETE
   2805	003042				90$:
   2806	003042					PRINT	#TCFCFA		; INFORM THE OPERATOR.
	003042	012700 	000432'			 MOV	#TCFCFA,R0
	003046	004737 	025442'			 JSR	PC,$TTMSG
   2807	003052	105037 	000042'			CLRB	.BTSW		; RESET THE BOOTSTRAP SWITCH
   2809	003056	105037 	000027'			CLRB	.DCSW
   2811	003062	105037 	000030'			CLRB	.DMSW		; FILE NOW CORRESPONDS
   2812					;
   2813					; NORMAL EXIT
   2814					;
   2815	003066				LCFRTN:
   2816	003066					RETURN			; TO NEW CONFIGURATION.
	003066	000207 				 RTS	PC
   2817					;
   2818					; ERROR EXIT
   2819					;
   2820	003070				LCFPRG:
   2821	003070					CALL	$PURGE		; ERROR !  PURGE FILE
	003070	004737 	007366'			 JSR	PC,$PURGE
   2822	003074				LCFERR:
   2823	003074					PRINT	#TCFCFE		; TELL OPERATOR
	003074	012700 	000465'			 MOV	#TCFCFE,R0
	003100	004737 	025442'			 JSR	PC,$TTMSG
   2824	003104	000261 				SEC
   2825	003106					RETURN			; AND GO AWAY.
	003106	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 70
$FILE	-- WRITE BOOTSTRAP RECORD

   2827						.SBTTL	$FILE	-- WRITE BOOTSTRAP RECORD
   2828
   2829					;+
   2830					; ROUTINES TO WRITE THE INDIVIDUAL RECORDS
   2831					;-
   2832
   2833					;
   2834					; WRITE THE BOOTSTRAP RECORD
   2835					;
   2836
   2837	003110				LCFWBF:
   2838	003110	012700 	000004 			MOV	#4,R0		; WRITE BOOTSTRAP RECORD
   2839	003114	105737 	000025'			TSTB	.UFNSW		; DID HE SPECIFY A FILE-NAME??
   2840	003120	001402 				BEQ	10$		; NO -- GO ON
   2841	003122	062700 	000010 			ADD	#10,R0		; YES -- ALLOW FOR IT
   2842	003126				10$:
   2843	003126					CALL	$WRITC		; WRITE THE RECORD HEADER
	003126	004737 	010066'			 JSR	PC,$WRITC
   2844	003132	103433 				BCS	30$		; ERROR IF CC-C IS SET
   2845	003134	012700 	000003 			MOV	#3,R0		; RECORD ID
   2846	003140					CALL	$WRITW		; WRITE IT
	003140	004737 	010200'			 JSR	PC,$WRITW
   2847	003144	103426 				BCS	30$		; ERROR IF CC-C IS SET
   2848	003146	113700 	000042'			MOVB	.BTSW,R0	; BOOTSTRAP SWITCH TO R0
   2849	003152					CALL	$WRITB		; WRITE IT
	003152	004737 	010274'			 JSR	PC,$WRITB
   2850	003156	103421 				BCS	30$		; ERROR IF CC-C IS SET
   2851	003160	113700 	000025'			MOVB	.UFNSW,R0	; FILE-NAME SWITCH TO R0
   2852	003164					CALL	$WRITB		; WRITE IT
	003164	004737 	010274'			 JSR	PC,$WRITB
   2853	003170	103414 				BCS	30$		; ERROR IF CC-C IS SET
   2854	003172	005737 	001530'			TST	.SYORC		; ARE WE DONE??
   2855	003176	001411 				BEQ	30$		; YES -- EXIT
   2856	003200	012701 	000004 			MOV	#4,R1		; NO -- SET UP TO WRITE FILE-NAME
   2857	003204	012702 	000442'			MOV	#.USRFN,R2	; POINT TO THE FILE-NAME
   2858	003210				20$:
   2859	003210	012200 				MOV	(R2)+,R0	; GET ONE WORD AT A TIME
   2860	003212					CALL	$WRITW		; WRITE IT
	003212	004737 	010200'			 JSR	PC,$WRITW
   2861	003216	103401 				BCS	30$		; ERROR IF CC-C IS SET
   2862	003220	077105 				SOB	R1,20$		; DO ALL 4 ELEMENTS
   2863	003222				30$:
   2864	003222					RETURN			; EXIT
	003222	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 71
$FILE	-- WRITE END-OF-FILE RECORD

   2866						.SBTTL	$FILE	-- WRITE END-OF-FILE RECORD
   2867
   2868					;
   2869					; WRITE END-OF-FILE RECORD
   2870					;
   2871
   2872	003224				LCFWEF:
   2873	003224	012700 	000002 			MOV	#2,R0		; WRITE EOF RECORD.
   2874	003230					CALL	$WRITC
	003230	004737 	010066'			 JSR	PC,$WRITC
   2875	003234	103403 				BCS	10$
   2876	003236	005000 				CLR	R0
   2877	003240					CALLR	$WRITW
	003240	000137 	010200'			 JMP	$WRITW
   2878						;
   2879	003244				10$:
   2880	003244					RETURN
	003244	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 72
$FILE	-- WRITE MEMORY CONTROLLER RECORDS

   2882						.SBTTL	$FILE	-- WRITE MEMORY CONTROLLER RECORDS
   2883
   2884					;
   2885					; WRITE MEMORY CONTROLLER RECORD(S)
   2886					;
   2887
   2888	003246				LCFWMM:
   2889	003246	005002 				CLR	R2		; WRITE OUT MEMORY RECORDS.
   2890	003250				10$:
   2891	003250	105762 	000056'			TSTB	.CTLTP(R2)	; CHECK IF CONTROLLER USED.
   2892	003254	001432 				BEQ	20$		; NOT USED -- TRY FOR THE NEXT CONTROLLER
   2893	003256	012700 	000006 			MOV	#6,R0		; OK - INCLUDE IN FILE.
   2894	003262					CALL	$WRITC		; (LENGTH)
	003262	004737 	010066'			 JSR	PC,$WRITC
   2895	003266	103431 				BCS	30$
   2896	003270	012700 	000001 			MOV	#1,R0
   2897	003274					CALL	$WRITW		; (ID #)
	003274	004737 	010200'			 JSR	PC,$WRITW
   2898	003300	103424 				BCS	30$
   2899	003302	010200 				MOV	R2,R0
   2900	003304					CALL	$WRITB		; (CONTROLLER #)
	003304	004737 	010274'			 JSR	PC,$WRITB
   2901	003310	103420 				BCS	30$
   2902	003312	116200 	000056'			MOVB	.CTLTP(R2),R0
   2903	003316					CALL	$WRITB		; (TYPE)
	003316	004737 	010274'			 JSR	PC,$WRITB
   2904	003322	103413 				BCS	30$
   2905	003324	006302 				ASL	R2		; WORD INDEX
   2906	003326	016200 	000120'			MOV	.CFGTB(R2),R0
   2907	003332	006202 				ASR	R2		; BACK TO BYTE INDEX
   2908	003334					CALL	$WRITW		; (MODULES/BLOCKS/INTERLEAVE/BUS-MODE)
	003334	004737 	010200'			 JSR	PC,$WRITW
   2909	003340	103404 				BCS	30$
   2910	003342				20$:
   2911	003342	005202 				INC	R2		; CHECK ALL CONTROLLERS.
   2912	003344	022702 	000041 			CMP	#CTLS+1,R2	; [TC0 4.2204] AND REVERSE CONFIGURATION FLAG
   2913	003350	003337 				BGT	10$
   2914	003352				30$:
   2915	003352					RETURN
	003352	000207 				 RTS	PC
KLICF -- CREATE NEW CONFIGURATI	MACRO M1110  15-OCT-79 14:14  PAGE 73
$FILE	-- WRITE CACHE RECORDS

   2917						.SBTTL	$FILE	-- WRITE CACHE RECORDS
   2918
   2919
   2920					;
   2921					; WRITE CACHE RECORD(S)
   2922					;
   2924
   2925	003354				LCFWCA:
   2926	003354	113700 	000050'			MOVB	.NCACH,R0	; WRITE OUT CACHE RECORD.
   2927	003360	010001 				MOV	R0,R1
   2928	003362	062700 	000003 			ADD	#3,R0
   2929	003366					CALL	$WRITC		; (LENGTH)
	003366	004737 	010066'			 JSR	PC,$WRITC
   2930	003372	103422 				BCS	20$
   2931	003374	012700 	000002 			MOV	#2,R0
   2932	003400					CALL	$WRITW		; (ID #)
	003400	004737 	010200'			 JSR	PC,$WRITW
   2933	003404	103415 				BCS	20$
   2934	003406	110100 				MOVB	R1,R0
   2935	003410					CALL	$WRITB		; (# CACHES)
	003410	004737 	010274'			 JSR	PC,$WRITB
   2936	003414	103411 				BCS	20$
   2937	003416	005701 				TST	R1
   2938	003420	001407 				BEQ	20$
   2939	003422	012702 	000051'			MOV	#.CACHN,R2
   2940	003426				10$:
   2941	003426	112200 				MOVB	(R2)+,R0
   2942	003430					CALL	$WRITB		; (CACHE #S)
	003430	004737 	010274'			 JSR	PC,$WRITB
   2943	003434	103401 				BCS	20$
   2944	003436	077105 				SOB	R1,10$
   2945	003440				20$:
   2946	003440					RETURN
	003440	000207 				 RTS	PC
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 74
$FILE	-- WRITE CACHE RECORDS

   2949						.TITLE	KLICI -- INTERNAL AND MOS DIALOGUE
   2950	003442					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   2951					;
   2952					;                             COPYRIGHT (C) 1975, 1978 BY
   2953					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   2954					;
   2955					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   2956					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   2957					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   2958					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   2959					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   2960					;
   2961					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   2962					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   2963					;       CORPORATION.
   2964					;
   2965					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   2966					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   2967					;
   2968					;
   2969					;	MODULE: INTERNAL AND MOS DIALOGUE
   2970					;
   2971					;	VERSION:  10-00
   2972					;
   2973					;	DATE: 25-JUL-78
   2974					;
   2975					;	AUTHOR: R. BELANGER
   2976					;
   2977					;	MODIFICATIONS:
   2978					;
   2979					;	NO.	DATE		PROGRAMMER	REASON
   2980					;	---	----		----------	------
   2981					;
   2982					;			LOCAL DATA
   2983					;
   2984
   2985	000526					.PSECT	TEXT,D
   2986	000526				CFIMQ1:
   2987	000526					MESSAGE	<CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?>
	000526	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?\
	000531	   106 	   111 	   107
	000534	   125 	   122 	   105
	000537	   040 	   111 	   116
	000542	   124 	   105 	   122
	000545	   116 	   101 	   114
	000550	   040 	   103 	   117
	000553	   122 	   105 	   040
	000556	   115 	   105 	   115
	000561	   117 	   122 	   131
	000564	   040 	   133 	   101
	000567	   114 	   114 	   054
	000572	   131 	   105 	   123
	000575	   054 	   116 	   117
	000600	   135 	   077 	   000
   2988	000603				CFMMQ1:
   2989	000603					MESSAGE	<CONFIGURE MOS MEMORY [ALL,YES,NO]?>
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 74-1
$FILE	-- WRITE CACHE RECORDS

	000603	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE MOS MEMORY [ALL,YES,NO]?\
	000606	   106 	   111 	   107
	000611	   125 	   122 	   105
	000614	   040 	   115 	   117
	000617	   123 	   040 	   115
	000622	   105 	   115 	   117
	000625	   122 	   131 	   040
	000630	   133 	   101 	   114
	000633	   114 	   054 	   131
	000636	   105 	   123 	   054
	000641	   116 	   117 	   135
	000644	   077 	   000
   2990	000646				CFIMQ2:
   2991	000646					MESSAGE	<KLI -- MODULES/BLOCKS WITHIN CONTROLLER _>
	000646	   113 	   114 	   111 		 .ASCIZ	\KLI -- MODULES/BLOCKS WITHIN CONTROLLER _\
	000651	   040 	   055 	   055
	000654	   040 	   115 	   117
	000657	   104 	   125 	   114
	000662	   105 	   123 	   057
	000665	   102 	   114 	   117
	000670	   103 	   113 	   123
	000673	   040 	   127 	   111
	000676	   124 	   110 	   111
	000701	   116 	   040 	   103
	000704	   117 	   116 	   124
	000707	   122 	   117 	   114
	000712	   114 	   105 	   122
	000715	   040 	   137 	   000
   2992	000720				CFIMQ3:
   2993	000720					MESSAGE	< [ALL,NONE,SPECIFY]?>
	000720	   040 	   133 	   101 		 .ASCIZ	\ [ALL,NONE,SPECIFY]?\
	000723	   114 	   114 	   054
	000726	   116 	   117 	   116
	000731	   105 	   054 	   123
	000734	   120 	   105 	   103
	000737	   111 	   106 	   131
	000742	   135 	   077 	   000
   2994	000745				CFIMQ4:
   2995	000745					MESSAGE	<INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?>
	000745	   111 	   116 	   124 		 .ASCIZ	\INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?\
	000750	   105 	   122 	   116
	000753	   101 	   114 	   040
	000756	   103 	   117 	   122
	000761	   105 	   040 	   115
	000764	   105 	   115 	   117
	000767	   122 	   131 	   040
	000772	   111 	   116 	   124
	000775	   105 	   122 	   114
	001000	   105 	   101 	   126
	001003	   105 	   040 	   125
	001006	   120 	   120 	   105
	001011	   122 	   040 	   114
	001014	   111 	   115 	   111
	001017	   124 	   040 	   133
	001022	   064 	   054 	   062
	001025	   054 	   061 	   135
	001030	   077 	   000
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 74-2
$FILE	-- WRITE CACHE RECORDS

   2996	003442					.PSECT
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   2998					.SBTTL	$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
   2999
   3000					;+
   3001					; $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
   3002					;
   3003					; $CFIMD SETS UP THE INTERNAL MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
   3004					; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
   3005					;
   3006					; $CFMMD -- SET UP MOS MEMORY CONFIGURATION TABLES
   3007					;
   3008					; $CFMMD SETS UP THE MOS MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
   3009					; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
   3010					;-
   3011
   3012	003442				$CFMMD::
   3013	003442	105737 	000000G			TSTB	MF20		; DO WE HAVE MOS MEMORY??
   3014	003446	001410 				BEQ	10$		; NO -- JUST EXIT
   3015	003450	012703 	000013 			MOV	#13,R3		; YES -- MAX LEGAL BLOCK NUMBER TO R3
   3016	003454	012704 	000010 			MOV	#10,R4		; ITERATION COUNT TO R4
   3017	003460	010402 				MOV	R4,R2		; IS ALSO BASE CONTROLLER NUMBER
   3018	003462	012700 	000603'			MOV	#CFMMQ1,R0	; MESSAGE POINTER TO R0
   3019	003466	000421 				BR	CFGXMC		; GO TO COMMON CODE
   3020						;
   3021	003470				10$:
   3022	003470					CALLR	$CFGXX		; EXIT TO CONFIGURE MEMORY
	003470	000137 	017344'			 JMP	$CFGXX
   3023						;
   3024
   3025						.ENABL	LSB
   3026
   3027	003474				$CFIMD::
   3028	003474	105737 	000000G			TSTB	MA20		; DO WE HAVE INTERNAL MEMORY??
   3029	003500	001005 				BNE	5$		; YES -- GO ON
   3030	003502	105737 	000000G			TSTB	MB20		; NO -- HOW ABOUT MB20'S??
   3031	003506	001002 				BNE	5$		; YES -- GO ON
   3032	003510					CALLR	$DLGXM		; NO -- TRY FOR EXTERNAL MEMORY
	003510	000137 	017462'			 JMP	$DLGXM
   3033						;
   3034	003514				5$:
   3035	003514	012703 	000003 			MOV	#3,R3		; YES -- MAX LEGAL BLOCK NUMBER TO R3
   3036	003520	012700 	000526'			MOV	#CFIMQ1,R0	; MESSAGE POINTER TO R0
   3037	003524	005002 				CLR	R2		; INIT COUNTER
   3038	003526	012704 	000004 			MOV	#4,R4		; MAXIMUM OF FOUR INTERNAL CONTROLLERS
   3039					;
   3040					; ASK THE TOP-LEVEL QUESTION
   3041					;
   3042	003532				CFGXMC:
   3043	003532				10$:
   3044	003532	105737 	000030'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3045	003536	002440 				BLT	20$		; NO -- TAKE DEFAULT PATH
   3046	003540					CALL	$TTMSG		; YES -- ASK THE FIRST QUESTION
	003540	004737 	025442'			 JSR	PC,$TTMSG
   3047	003544					CALL	$TTRD		; READ THE RESPONSE
	003544	004737 	025120'			 JSR	PC,$TTRD
   3048	003550	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO THE INPUT BUFFER
   3049	003554	105715 				TSTB	(R5)		; DEFAULT??
   3050	003556	001430 				BEQ	20$		; YES -- DO "ALL"
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3051	003560	022715 	046101 			CMP	#"AL,(R5)	; "ALL"??
   3052	003564	001425 				BEQ	20$		; YES -- DO ALL
   3053	003566	022715 	047516 			CMP	#"NO,(R5)	; "NO"??
   3054	003572	001424 				BEQ	30$		; YES  -- DO NONE
   3055	003574	022715 	042531 			CMP	#"YE,(R5)	; "YES"??
   3056	003600	001435 				BEQ	50$		; YES --  FIND OUT WHAT
   3057	003602	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3058	003606	001007 				BNE	15$		; NO -- ERROR
   3059	003610	022703 	000003 			CMP	#3,R3		; YES -- IS THIS INTERNAL MEMORY??
   3060	003614	001002 				BNE	14$		; NO -- GO THOUGH VECTORS
   3061	003616					CALLR	$DLGMB		; YES -- BACK UP ONE
	003616	000137 	017472'			 JMP	$DLGMB
   3062						;
   3063	003622				14$:
   3064	003622					CALLR	$DLMB1		; BACK UP THRU VECTORS
	003622	000137 	017476'			 JMP	$DLMB1
   3065						;
   3066					;
   3067					; UNRECOGNIZED COMMAND
   3068					;
   3069	003626				15$:
   3070	003626					PRINT	#COMCSE		; COMMAND SYNTAX ERROR
	003626	012700 	004754'			 MOV	#COMCSE,R0
	003632	004737 	025442'			 JSR	PC,$TTMSG
   3071	003636	000531 				BR	150$		; TRY AGAIN
   3072						;
   3073					;
   3074					; ENTRY FOR "ALL" CONTROLLERS <DEFAULT PATH>
   3075					;
   3076	003640				20$:
   3077	003640	005001 				CLR	R1		; SET R1 TO SAY "ALL"
   3078	003642	000402 				BR	40$		; DO COMMON CODE
   3079						;
   3080					;
   3081					; ENTRY FOR "NO(NE)" CONTROLLERS
   3082					;
   3083	003644				30$:
   3084	003644	012701 	100000 			MOV	#BIT15,R1	; SET R1 TO SAY "NO(NE)"
   3085					;
   3086					; COMMON CODE FOR "ALL" OR "NO(NE)" CONTROLLERS
   3087					;
   3088					; WHAT'S WHERE:
   3089					;
   3090					;	R0 -- CONTROLLER NUMBER PASSED TO CHECK ROUTINE
   3091					;	R1 -- ALLOCATION FLAG
   3092					;		0 = ALL CONTROLLERS
   3093					;		100000 = NO CONTROLLERS
   3094					;	R2 -- CONTROLLER NUMBER
   3095					;	R3 -- MODULE/BLOCK NUMBER LIMIT
   3096					;	R4 -- ITERATION COUNT
   3097					;
   3098	003650				40$:
   3099	003650	105762 	000000G			TSTB	TYPNUM(R2)	; DOES THIS CONTROLLER EXIST??
   3100	003654	001404 				BEQ	45$		; NO -- TRY FOR THE NEXT ONE
   3101	003656	010200 				MOV	R2,R0		; YES -- CONTROLLER NUMBER TO R0
   3102	003660	006300 				ASL	R0		; WORD INDEX
   3103	003662	010160 	000120'			MOV	R1,.CFGTB(R0)	; SET ALLOCATION OR DELETION REQUEST
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75-2
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3104	003666				45$:
   3105	003666	105722 				TSTB	(R2)+		; ADVANCE CONTROLLER INDEX
   3106	003670	077411 				SOB	R4,40$		; DO THIS FOR ALL
   3107	003672	000501 				BR	130$		; AND EXIT
   3108						;
   3109					;
   3110					; ENTRY FOR "YES" (LONG DIALOGUE)
   3111					;
   3112	003674				50$:
   3113	003674	005001 				CLR	R1		; INIT BIT-MASK
   3114	003676				60$:
   3115	003676	105762 	000000G			TSTB	TYPNUM(R2)	; IS THIS CONTROLLER HERE??
   3116	003702	001472 				BEQ	120$		; NO -- TRY THE NEXT ONE
   3117	003704	012700 	000646'			MOV	#CFIMQ2,R0	; YES -- MESSAGE POINTER TO R0
   3118	003710					CALL	$TTDMS		; TYPE PREAMBLE
	003710	004737 	025374'			 JSR	PC,$TTDMS
   3119	003714	010200 				MOV	R2,R0		; CONTROLLER NUMBER TO R0
   3120	003716					CALL	$TDB2O		; CONVERT TO OCTAL ASCII
	003716	004737 	024440'			 JSR	PC,$TDB2O
   3121	003722	012700 	000720'			MOV	#CFIMQ3,R0	; MESSAGE POINTER TO R0
   3122	003726					CALL	$TTDMS		; END THE QUESTION
	003726	004737 	025374'			 JSR	PC,$TTDMS
   3123	003732					CALL	$TCRLF		; AND THE LINE
	003732	004737 	025336'			 JSR	PC,$TCRLF
   3124	003736					CALL	$TTRD		; READ RESPONSE
	003736	004737 	025120'			 JSR	PC,$TTRD
   3125	003742	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   3126	003746	105715 				TSTB	(R5)		; DEFAULT??
   3127	003750	001412 				BEQ	70$		; YES -- DO "ALL"
   3128	003752	022715 	046101 			CMP	#"AL,(R5)	; "ALL"??
   3129	003756	001407 				BEQ	70$		; YES -- DO IT
   3130	003760	022715 	047516 			CMP	#"NO,(R5)	; "NONE"??
   3131	003764	001406 				BEQ	80$		; YES -- DO IT
   3132	003766	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3133	003772	001006 				BNE	90$		; NO -- HOPE ITS NUMERIC...
   3134	003774	000452 				BR	150$		; YES -- GO DO IT
   3135						;
   3136					;
   3137					; "ALL" MODULES/BLOCKS THIS CONTROLLER
   3138					;
   3139	003776				70$:
   3140	003776	005001 				CLR	R1		; SET R1 TO "ALL"
   3141	004000	000420 				BR	100$		; AND DO IT
   3142						;
   3143					;
   3144					; "NO(NE)" MODULES/BLOCKS THIS CONTROLLER
   3145					;
   3146	004002				80$:
   3147	004002	012701 	100000 			MOV	#BIT15,R1	; SET R1 TO "NONE"
   3148	004006	000415 				BR	100$
   3149						;
   3150					;
   3151					; HERE TO SPECIFY MODULES/BLOCKS WITHIN THIS CONTROLLER
   3152					;
   3153					; WHAT'S WHERE:
   3154					;
   3155					;	R0 -- PASSED CONTROLLER NUMBER
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75-3
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3156					;	R1 -- ALLOCATION MASK
   3157					;	R2 -- CONTROLLER NUMBER
   3158					;	R3 -- MODULE/BLOCK NUMBER LIMIT
   3159					;	R4 -- ITERATION COUNT
   3160					;
   3161	004010				90$:
   3162	004010					CALL	$TRO2B		; CONVERT TO OCTAL NUMERIC
	004010	004737 	024552'			 JSR	PC,$TRO2B
   3163	004014	103435 				BCS	140$		; FIDDLE FINGERS!
   3164	004016	020300 				CMP	R3,R0		; IN RANGE??
   3165	004020	002433 				BLT	140$		; NO -- COMPLAIN
   3166	004022	006300 				ASL	R0		; YES -- GET WORD INDEX
   3167	004024	056001 	000000G			BIS	BITTBL(R0),R1	; LIGHT THE BIT
   3168	004030	122725 	000054 			CMPB	#',,(R5)+	; CONTINUE??
   3169	004034	001765 				BEQ	90$		; YES -- CONTINUE
   3170	004036	105745 				TSTB	-(R5)		; NO -- TERMINATE OK??
   3171	004040	001272 				BNE	15$		; NO -- COMPLAIN
   3172					;
   3173					; COMMON CODE FOR "ALL", "NO(NE)", OR SPECIFIC MODULES/BLOCKS THIS CONTROLLER
   3174					;
   3175	004042				100$:
   3176	004042	010200 				MOV	R2,R0		; YES -- CONTROLLER NUMBER TO R0
   3177	004044	022703 	000003 			CMP	#3,R3		; IS THIS INTERNAL MEMORY??
   3178	004050	001004 				BNE	110$		; NO -- MOS MEMORY
   3179	004052					CALL	$CHKIM		; YES -- CHECK INTERNAL CONFIGURATION
	004052	004737 	004326'			 JSR	PC,$CHKIM
   3180	004056	103706 				BCS	50$		; OOPS!
   3181	004060	000403 				BR	120$		; ALL OK -- GO ON
   3182						;
   3183	004062				110$:
   3184	004062					CALL	$CHKMM		; CHECK MOS CONFIGURATION
	004062	004737 	004552'			 JSR	PC,$CHKMM
   3185	004066	103702 				BCS	50$		; BAD NEWS...
   3186	004070				120$:
   3187	004070	105722 				TSTB	(R2)+		; ADVANCE CONTROLLER COUNTER
   3188	004072	005304 				DEC	R4		; DECREMENT ITERATION COUNT
   3189	004074	001277 				BNE	50$		; LOOP THROUGH ALL CONTROLLERS
   3190	004076				130$:
   3191	004076	022703 	000003 			CMP	#3,R3		; DONE -- IS THIS INTERNAL MEMORY??
   3192	004102	001420 				BEQ	CFIMIL		; YES -- GO GET INTERLEAVE FACTOR
   3193	004104					CALLR	$CFGXX		; NO -- GO CONFIGURE THE MEMORY
	004104	000137 	017344'			 JMP	$CFGXX
   3194						;
   3195					;
   3196					; ERROR PROCESSING
   3197					;
   3198	004110				140$:
   3199	004110					PRINT	#COMCSE		; ERROR MESSAGE
	004110	012700 	004754'			 MOV	#COMCSE,R0
	004114	004737 	025442'			 JSR	PC,$TTMSG
   3200	004120	000666 				BR	60$		; TRY AGAIN
   3201						;
   3202	004122				150$:
   3203	004122	012700 	000526'			MOV	#CFIMQ1,R0	; YES -- ASSUME INTERNAL MEMORY
   3204	004126	022703 	000003 			CMP	#3,R3		; IS IT REALLY??
   3205	004132	001402 				BEQ	160$		; YES -- GO ON
   3206	004134	012700 	000603'			MOV	#CFMMQ1,R0	; NO -- SET MOS MESSAGE
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75-4
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3207	004140				160$:
   3208	004140	000137 	003532'			JMP	10$		; AND BACK UP
   3209						;
   3210						.DSABL	LSB
   3211					;
   3212					; HERE TO GET INTERNAL CORE MEMORY INTERLEAVE FACTOR
   3213					;
   3214	004144				CFIMIL:
   3215	004144	105737 	000030'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3216	004150	002452 				BLT	50$		; NO -- TAKE DEFAULT PATH
   3217	004152	012700 	000120'			MOV	#.CFGTB,R0	; YES -- POINT TO CONFIGURATION TABLE
   3218	004156	012704 	000004 			MOV	#4,R4		; ITERATION COUNT TO R4
   3219	004162				10$:
   3220	004162	005720 				TST	(R0)+		; IS THIS ONE CONFIGURABLE??
   3221	004164	100002 				BPL	20$		; YES -- GO ON
   3222	004166	077403 				SOB	R4,10$		; NO -- TRY FOR THE NEXT ONE
   3223	004170	000442 				BR	50$		; NO INTERNAL MEMORY -- EXIT
   3224						;
   3225	004172				20$:
   3226	004172					PRINT	#CFIMQ4		; ASK THE QUESTION
	004172	012700 	000745'			 MOV	#CFIMQ4,R0
	004176	004737 	025442'			 JSR	PC,$TTMSG
   3227	004202					CALL	$TTRD		; READ THE RESPONSE
	004202	004737 	025120'			 JSR	PC,$TTRD
   3228	004206	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   3229	004212	005000 				CLR	R0		; INIT DEFAULT
   3230	004214	022715 	040502 			CMP	#"BA,(R5)	; "BACK"??
   3231	004220	001430 				BEQ	60$		; YES -- DO IT
   3232	004222	105715 				TSTB	(R5)		; NO -- DEFAULT??
   3233	004224	001413 				BEQ	25$		; YES -- SET IT
   3234	004226					CALL	$TRI2B		; NO -- CONVERT TO NUMERIC
	004226	004737 	023414'			 JSR	PC,$TRI2B
   3235	004232	103425 				BCS	70$		; OOPS!
   3236	004234	005700 				TST	R0		; DID HE TYPE ANYTHING??
   3237	004236	001423 				BEQ	70$		; NO -- NOT ALLOWED
   3238	004240	022700 	000003 			CMP	#3,R0		; YES -- DID HE SAY "3"??
   3239	004244	001420 				BEQ	70$		; YES -- NOT ALLOWED
   3240	004246	022700 	000004 			CMP	#4,R0		; NO -- IN RANGE??
   3241	004252	002415 				BLT	70$		; NO -- COMPLAIN
   3242	004254				25$:
   3243	004254	012704 	000004 			MOV	#4,R4		; YES -- ITERATION COUNT TO R4
   3244	004260	012701 	000130'			MOV	#.CFGTB+8.,R1	; POINT TO END OF INTERNAL CONTROLLERS+1
   3245	004264				30$:
   3246	004264	005741 				TST	-(R1)		; BACK UP OVER NEXT ENTRY
   3247	004266	100402 				BMI	40$		; NOT THERE IF NEGATIVE
   3248	004270	110061 	000001 			MOVB	R0,1(R1)	; SET THE BUS-MODE IN HIGH BYTE
   3249	004274				40$:
   3250	004274	077405 				SOB	R4,30$		; LOOP TILL DONE
   3251	004276				50$:
   3252	004276					CALLR	$DLGXM		; DONE -- TRY EXTERNAL MEMORY
	004276	000137 	017462'			 JMP	$DLGXM
   3253						;
   3254	004302				60$:
   3255	004302					CALLR	$CFIMD		; BACK UP
	004302	000137 	003474'			 JMP	$CFIMD
   3256						;
   3257	004306				70$:
KLICI -- INTERNAL AND MOS DIALO	MACRO M1110  15-OCT-79 14:14  PAGE 75-5
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3258	004306					PRINT	#COMCSE		; ERROR MESSAGE
	004306	012700 	004754'			 MOV	#COMCSE,R0
	004312	004737 	025442'			 JSR	PC,$TTMSG
   3259	004316	000725 				BR	20$		; TRY AGAIN
   3260						;
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 76
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

   3262						.TITLE	KLICM -- CHECK INTERNAL MEMORY CONFIGURATION
   3263	004320					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3264					;
   3265					;                             COPYRIGHT (C) 1975, 1978 BY
   3266					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3267					;
   3268					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3269					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3270					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3271					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3272					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3273					;
   3274					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3275					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3276					;       CORPORATION.
   3277					;
   3278					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3279					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3280					;
   3281					;
   3282					;	MODULE: INTERNAL CONFIGURATION CHECK
   3283					;
   3284					;	VERSION: 10-00
   3285					;
   3286					;	DATE: 25-JUL-78
   3287					;
   3288					;	AUTHOR: R. BELANGER
   3289					;
   3290					;	MODIFICATIONS:
   3291					;
   3292					;	NO.	DATE		PROGRAMMER	REASON
   3293					;	---	----		----------	------
   3294					;
   3295					;			LOCAL DATA
   3296					;
   3297	000270					.PSECT	DATA,D
   3298	000270				SETIMF:
   3299	000270	   000 				.BYTE	0
   3300	000271				SETMMF:
   3301	000271	   000 				.BYTE	0
   3302	001032					.PSECT	TEXT,D
   3303	001032				CIMNXC:
   3304	001032					ERROR	<NONEXISTENT CONTROLLER>
	001032	   077 	   040 	   116 		 .ASCIZ	\? NONEXISTENT CONTROLLER\
	001035	   117 	   116 	   105
	001040	   130 	   111 	   123
	001043	   124 	   105 	   116
	001046	   124 	   040 	   103
	001051	   117 	   116 	   124
	001054	   122 	   117 	   114
	001057	   114 	   105 	   122
	001062	   000
   3305	001063				CIMNXM:
   3306	001063					ERROR	<NONEXISTENT MODULE/BLOCK>
	001063	   077 	   040 	   116 		 .ASCIZ	\? NONEXISTENT MODULE/BLOCK\
	001066	   117 	   116 	   105
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 76-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES

	001071	   130 	   111 	   123
	001074	   124 	   105 	   116
	001077	   124 	   040 	   115
	001102	   117 	   104 	   125
	001105	   114 	   105 	   057
	001110	   102 	   114 	   117
	001113	   103 	   113 	   000
   3307	004320					.PSECT
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 77
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3309					.SBTTL	$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
   3310
   3311					;+
   3312					; $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
   3313					;
   3314					; $CHKIM WILL VERIFY THAT THE MASK WORD FOR INTERNAL CORE MEMORY CONFIGURATION
   3315					; IS VALID IN THAT THE MODULE SPECIFIED DOES EXIST IN THE PHYSICAL RESOURCES.
   3316					;
   3317					; INPUT ARGUMENTS:
   3318					;
   3319					;	R0 -- CONTROLLER NUMBER
   3320					;	R1 -- MODULE SELECTION BIT-MASK
   3321					;	CONTI(R0) -- BIT-MASK OF AVAILABLE MODULES
   3322					;	TYPNUM(R0) -- CONTROLLER AVAILABILITY FLAG WORD
   3323					;
   3324					; OUTPUT ARGUMENTS:
   3325					;
   3326					;	R0,R1 -- UNDEFINED
   3327					;	.CFGTB+0(R0) -- EDITED MODULE SELECTION BIT-MASK
   3328					;	CONTI(R0) -- EDITED MODULE SELECTION BIT-MASK
   3329					;
   3330					; SUCCESS RETURN:
   3331					;
   3332					;	CC-C CLEAR
   3333					;
   3334					; ERROR RETURN:
   3335					;
   3336					;	CC-C SET AND CONTI(R0) UNCHANGED.
   3337					;-
   3338
   3339					;
   3340					; HERE TO ACTUALLY SET THE SPECIFIED CONFIGURATION
   3341					;
   3342
   3343	004320				$SETIM::
   3344	004320	105237 	000270'			INCB	SETIMF		; SAY "SET"
   3345	004324	000402 				BR	CHKIMC		; DO COMMON CODE
   3346						;
   3347					;
   3348					; HERE TO SIMPLY CHECK THE DESIRED CONFIGURATION
   3349					;
   3350
   3351	004326				$CHKIM::
   3352	004326	105037 	000270'			CLRB	SETIMF		; SAY "CHECK"
   3353					;
   3354					; COMMON SET/CHECK CODE
   3355					;
   3356	004332				CHKIMC:
   3357	004332					PUSH	R2		; SAVE R2
	004332	010246 				 MOV	R2,-(SP)
   3358	004334					PUSH	R3		; AND R3
	004334	010346 				 MOV	R3,-(SP)
   3359	004336	005046 				CLR	-(SP)		; GET A BUFFER FOR BIT MASK
   3360	004340	122760 	000001 	000000G		CMPB	#1,TYPNUM(R0)	; IS THIS AN MA20??
   3361	004346	001411 				BEQ	10$		; YES -- GO ON
   3362	004350	122760 	000003 	000000G		CMPB	#3,TYPNUM(R0)	; NO -- IS IT AN MB20??
   3363	004356	001405 				BEQ	10$		; YES -- GO ON
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 77-1
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3364	004360					PRINT	#CIMNXC		; NO -- COMPLAIN
	004360	012700 	001032'			 MOV	#CIMNXC,R0
	004364	004737 	025442'			 JSR	PC,$TTMSG
   3365	004370	000434 				BR	50$		; AND EXIT
   3366						;
   3367	004372				10$:
   3368	004372	005701 				TST	R1		; DOES HE WANT ALL MODULES??
   3369	004374	001442 				BEQ	70$		; YES -- GIVE IT TO HIM
   3370	004376	100404 				BMI	20$		; NO -- DOES HE WANT SOME??
   3371	004400	116016 	000000G			MOVB	CONTI(R0),(SP)	; YES -- PHYSICAL BIT-MAP TO STACK
   3372	004404	005002 				CLR	R2		; INIT BIT-MASK INDEX
   3373	004406	000410 				BR	30$		; CHECK WHAT HE WANTS
   3374						;
   3375					;
   3376					; WHAT'S WHERE:
   3377					;
   3378					;	R0 -- CONTROLLER NUMBER
   3379					;	R1 -- ALLOCATION BIT MASK
   3380					;		.LT. 0 -- DELETE ENTIRE CONTROLLER
   3381					;		.EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
   3382					;		.GT. 0 -- ALLOCATE SOME MUDULES IN CONTROLLER
   3383					;	R2 -- BIT MASK INDEX
   3384					;	R3 -- CURRENT BIT MASK
   3385					;	(SP) -- BIT MASK TO/FROM MEMORY BOOT
   3386					;
   3387					; HERE TO DELETE AN ENTIRE CONTROLLER
   3388					;
   3389	004410				20$:
   3390	004410	012716 	100000 			MOV	#BIT15,(SP)	; FLAG NONE FOR SAVE/RESTORE
   3391	004414	105737 	000270'			TSTB	SETIMF		; IS THIS A SET??
   3392	004420	001430 				BEQ	70$		; NO -- JUST EXIT
   3393	004422	105060 	000000G			CLRB	TYPNUM(R0)	; YES -- CLEAR CONTROLLER FLAG
   3394	004426	000425 				BR	70$		; AND EXIT
   3395						;
   3396					;
   3397					; HERE TO ALLOCATE MODULES WITHIN A CONTROLLER
   3398					;
   3399	004430				30$:
   3400	004430	016203 	000000G			MOV	BITTBL(R2),R3	; GET MASK FOR TARGET MODULE
   3401	004434	030301 				BIT	R3,R1		; DOES HE WANT THIS ONE??
   3402	004436	001002 				BNE	40$		; YES -- GO ON
   3403	004440	140316 				BICB	R3,(SP)		; NO -- GET RID OF IT
   3404	004442	000411 				BR	60$		; AND GO ON
   3405						;
   3406	004444				40$:
   3407	004444	130316 				BITB	R3,(SP)		; WANTS THIS ONE -- IS IT THERE??
   3408	004446	001007 				BNE	60$		; YES -- GO ON
   3409	004450					PRINT	#CIMNXM		; NO -- COMPLAIN
	004450	012700 	001063'			 MOV	#CIMNXM,R0
	004454	004737 	025442'			 JSR	PC,$TTMSG
   3410	004460	005726 				TST	(SP)+		; FLUSH STACK
   3411	004462				50$:
   3412	004462	000261 				SEC			; SET ERROR FLAG
   3413	004464	000424 				BR	90$		; AND EXIT
   3414						;
   3415	004466				60$:
   3416	004466	005722 				TST	(R2)+		; POINT TO NEXT MASK BIT
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 77-2
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD

   3417	004470	022702 	000010 			CMP	#10,R2		; ARE WE DONE??
   3418	004474	003355 				BGT	30$		; NO -- CONTINUE
   3419	004476	005716 				TST	(SP)		; YES -- DID HE DELETE THEM ALL??
   3420	004500	001743 				BEQ	20$		; YES -- DELETE THE CONTROLLER TOO
   3421	004502				70$:
   3422	004502	012602 				MOV	(SP)+,R2	; NO -- EDITED MASK TO R2
   3423	004504	001411 				BEQ	80$		; ZERO BIT MASK IS ONE FLAVOR OF ALL
   3424	004506	120260 	000000G			CMPB	R2,CONTI(R0)	; HAS ANYTHING CHANGED??
   3425	004512	001406 				BEQ	80$		; NO -- GO ON
   3426	004514	010201 				MOV	R2,R1		; YES -- COPY WORD TO R1
   3427	004516	105737 	000270'			TSTB	SETIMF		; IS THIS A SET??
   3428	004522	001402 				BEQ	80$		; NO -- GO ON
   3429	004524	110260 	000000G			MOVB	R2,CONTI(R0)	; YES -- EDITED MASK TO PHYSICAL TABLE
   3430	004530				80$:
   3431	004530	006300 				ASL	R0		; WORD INDEX
   3432	004532	010160 	000120'			MOV	R1,.CFGTB(R0)	; SET WORD INTO CONFIGURATION TABLE
   3433	004536				90$:
   3434	004536					POP	R3		; RESTORE REGISTERS
	004536	012603 				 MOV	(SP)+,R3
   3435	004540					POP	R2		; SO
	004540	012602 				 MOV	(SP)+,R2
   3436	004542					RETURN			; TO CALLER
	004542	000207 				 RTS	PC
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 78
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3438					.SBTTL	$CHKMM -- CHECK MOS MEMORY CONFIGURATION
   3439
   3440					;
   3441					; HERE TO SET THE CONFIGURATION FOR AN MF20 CONTROLLER
   3442					;
   3443	004544				$SETMM::
   3444	004544	105237 	000271'			INCB	SETMMF		; SAY "SET"
   3445	004550	000402 				BR	CHKMMC		; DO COMMON CODE
   3446						;
   3447					;
   3448					; HERE TO CHECK THE CONFIGURATION FOR AN MF20 CONTROLLER
   3449					;
   3450	004552				$CHKMM::
   3451	004552	105037 	000271'			CLRB	SETMMF		; SAY "CHECK"
   3452					;
   3453					; COMMON CHECK/SET CODE
   3454					;
   3455					;	R0 -- CONTROLLER NUMBER
   3456					;	R1 -- ALLOCATION MASK
   3457					;
   3458	004556				CHKMMC:
   3459	004556					PUSH	R2		; SAVE R2
	004556	010246 				 MOV	R2,-(SP)
   3460	004560					PUSH	R3		; AND R3
	004560	010346 				 MOV	R3,-(SP)
   3461	004562					PUSH	R4		; R4 TOO
	004562	010446 				 MOV	R4,-(SP)
   3462	004564	122760 	000005 	000000G		CMPB	#5,TYPNUM(R0)	; IS THIS AN MF20??
   3463	004572	001405 				BEQ	10$		; YES  -- GO ON
   3464	004574					PRINT	#CIMNXC		; NO -- COMPLAIN
	004574	012700 	001032'			 MOV	#CIMNXC,R0
	004600	004737 	025442'			 JSR	PC,$TTMSG
   3465	004604	000440 				BR	40$		; AND EXIT
   3466						;
   3467	004606				10$:
   3468	004606	005002 				CLR	R2		; INIT BIT-MASK INDEX
   3469	004610	005046 				CLR	-(SP)		; INIT BIT-MASK
   3470	004612	010004 				MOV	R0,R4		; COPY CONTROLLER NUMBER TO R4
   3471	004614					CALL	BAF0		; FIND BASE OF THIS MF20 TABLE
	004614	004737 	000000G			 JSR	PC,BAF0
   3472	004620	005701 				TST	R1		; WHAT DOES HE WANT??
   3473	004622	001446 				BEQ	80$		; ALL
   3474	004624	100015 				BPL	30$		; SOMETHING
   3475					;
   3476					; WHAT'S WHERE:
   3477					;
   3478					;	R0 -- POINTS TO MF20 BLOCK TABLE
   3479					;	R1 -- ALLOCATION MASK
   3480					;		.LT. 0 -- DELETE ENTIRE CONTROLLER
   3481					;		.EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
   3482					;		.GT. 0 -- DELETE SOME BLOCKS WITHIN CONTROLLER
   3483					;	R2 -- BIT MASK INDEX
   3484					;	R3 -- CURRENT BIT MASK
   3485					;	R4 -- CONTROLLER NUMBER
   3486					;	(SP) -- ACCUMULATED ALLOCATION MASK FOR RETURN
   3487					;
   3488					; HERE TO DELETE AN ENTIRE CONTROLLER
KLICM -- CHECK INTERNAL MEMORY 	MACRO M1110  15-OCT-79 14:14  PAGE 78-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3489					;
   3490	004626				20$:
   3491	004626	012716 	100000 			MOV	#BIT15,(SP)	; MARK DELETION DONE
   3492	004632	105737 	000271'			TSTB	SETMMF		; IS THIS A SET??
   3493	004636	001440 				BEQ	80$		; NO -- JUST EXIT
   3494	004640				25$:
   3495	004640	105020 				CLRB	(R0)+		; YES -- MARK THAT WE DON'T WANT THIS BLOCK
   3496	004642	005202 				INC	R2		; ADVANCE COUNTER
   3497	004644	022702 	000014 			CMP	#14,R2		; ARE WE DONE??
   3498	004650	003373 				BGT	25$		; NO -- CONTINUE DELETING
   3499	004652	105064 	000000G			CLRB	TYPNUM(R4)	; DONE -- DELETE THE CONTROLLER
   3500	004656	000430 				BR	80$		; AND EXIT
   3501						;
   3502					;
   3503					; HERE TO ALLOCATE/DELETE BLOCKS TO/FROM A CONTROLLER
   3504					;
   3505	004660				30$:
   3506	004660	016203 	000000G			MOV	BITTBL(R2),R3	; GET MASK BIT INTO R3
   3507	004664	030301 				BIT	R3,R1		; DOES HE WANT THIS ONE??
   3508	004666	001413 				BEQ	60$		; NO -- GO DELETE IT
   3509	004670	105710 				TSTB	(R0)		; YES -- DOES IT EXIST??
   3510	004672	001007 				BNE	50$		; YES -- ALLOCATE IT
   3511	004674					PRINT	#CIMNXM		; NO -- COMPLAIN
	004674	012700 	001063'			 MOV	#CIMNXM,R0
	004700	004737 	025442'			 JSR	PC,$TTMSG
   3512	004704	005726 				TST	(SP)+		; FLUSH STACK
   3513	004706				40$:
   3514	004706	000261 				SEC			; SET ERROR FLAG
   3515	004710	000416 				BR	90$		; AND EXIT
   3516						;
   3517	004712				50$:
   3518	004712	050316 				BIS	R3,(SP)		; MARK DESIRED BLOCK
   3519	004714	000404 				BR	70$		; AND TRY FOR NEXT
   3520						;
   3521	004716				60$:
   3522	004716	105737 	000271'			TSTB	SETMMF		; IS THIS A SET??
   3523	004722	001401 				BEQ	70$		; NO -- GO ON
   3524	004724	105010 				CLRB	(R0)		; YES -- DELETE BLOCK FROM PHYSICAL TABLE
   3525	004726				70$:
   3526	004726	005200 				INC	R0		; STEP POINTER
   3527	004730	005722 				TST	(R2)+		; ADVANCE TO NEXT BLOCK
   3528	004732	022702 	000030 			CMP	#30,R2		; DONE??
   3529	004736	003350 				BGT	30$		; NO -- CONTINUE TESTING
   3530	004740				80$:
   3531	004740	006304 				ASL	R4		; YES -- CONVERT TO WORD INDEX
   3532	004742	012664 	000120'			MOV	(SP)+,.CFGTB(R4) ; SET CONFIGURATION MASK IN TABLE
   3533	004746				90$:
   3534	004746					POP	R4		; RESTORE REGISTERS
	004746	012604 				 MOV	(SP)+,R4
   3535	004750					POP	R3
	004750	012603 				 MOV	(SP)+,R3
   3536	004752					POP	R2
	004752	012602 				 MOV	(SP)+,R2
   3537	004754					RETURN			; TO CALLER
	004754	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 79
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

   3539						.TITLE	KLICO -- CONFIGURATION EDITOR
   3540	004756					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3541					;
   3542					;                             COPYRIGHT (C) 1975, 1978 BY
   3543					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3544					;
   3545					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3546					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3547					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3548					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3549					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3550					;
   3551					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3552					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3553					;       CORPORATION.
   3554					;
   3555					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3556					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3557					;
   3558					;
   3559					;	MODULE: CONFIGURATION EDITOR
   3560					;
   3561					;	VERSION: 10-00
   3562					;
   3563					;	DATE: 25-JUL-78
   3564					;
   3565					;	AUTHOR: R. BELANGER
   3566					;
   3567					;	MODIFICATIONS:
   3568					;
   3569					;	NO.	DATE		PROGRAMMER	REASON
   3570					;	---	----		----------	------
   3571					;
   3572					;
   3573					;
   3574					;			LOCAL DATA
   3575					;
   3576	001116					.PSECT	TEXT,D
   3577	001116				CFGINM:
   3578	001116					WARNING <INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
	001116	   045 	   040 	   111 		 .ASCIZ	\% INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
	001121	   116 	   124 	   105
	001124	   122 	   116 	   101
	001127	   114 	   040 	   103
	001132	   117 	   122 	   105
	001135	   040 	   115 	   105
	001140	   115 	   117 	   122
	001143	   131 	   040 	   122
	001146	   105 	   123 	   117
	001151	   125 	   122 	   103
	001154	   105 	   123 	   040
	001157	   104 	   117 	   040
	001162	   116 	   117 	   124
	001165	   040 	   115 	   101
	001170	   124 	   103 	   110
	001173	   040 	   106 	   111
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 79-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION

	001176	   114 	   105 	   000
   3579	001201				CFGXNM:
   3580	001201					WARNING <EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
	001201	   045 	   040 	   105 		 .ASCIZ	\% EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
	001204	   130 	   124 	   105
	001207	   122 	   116 	   101
	001212	   114 	   040 	   103
	001215	   117 	   122 	   105
	001220	   040 	   115 	   105
	001223	   115 	   117 	   122
	001226	   131 	   040 	   122
	001231	   105 	   123 	   117
	001234	   125 	   122 	   103
	001237	   105 	   123 	   040
	001242	   104 	   117 	   040
	001245	   116 	   117 	   124
	001250	   040 	   115 	   101
	001253	   124 	   103 	   110
	001256	   040 	   106 	   111
	001261	   114 	   105 	   000
   3581	001264				CFGMNM:
   3582	001264					WARNING <MOS MEMORY RESOURCES DO NOT MATCH FILE>
	001264	   045 	   040 	   115 		 .ASCIZ	\% MOS MEMORY RESOURCES DO NOT MATCH FILE\
	001267	   117 	   123 	   040
	001272	   115 	   105 	   115
	001275	   117 	   122 	   131
	001300	   040 	   122 	   105
	001303	   123 	   117 	   125
	001306	   122 	   103 	   105
	001311	   123 	   040 	   104
	001314	   117 	   040 	   116
	001317	   117 	   124 	   040
	001322	   115 	   101 	   124
	001325	   103 	   110 	   040
	001330	   106 	   111 	   114
	001333	   105 	   000
   3583	001335				CFGMAC:
   3584	001335					WARNING <MOS MEMORY IS ALREADY CONFIGURED>
	001335	   045 	   040 	   115 		 .ASCIZ	\% MOS MEMORY IS ALREADY CONFIGURED\
	001340	   117 	   123 	   040
	001343	   115 	   105 	   115
	001346	   117 	   122 	   131
	001351	   040 	   111 	   123
	001354	   040 	   101 	   114
	001357	   122 	   105 	   101
	001362	   104 	   131 	   040
	001365	   103 	   117 	   116
	001370	   106 	   111 	   107
	001373	   125 	   122 	   105
	001376	   104 	   000
   3585	004756					.PSECT
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 80
$CONFG -- EDITOR DISPATCH

   3587						.SBTTL	$CONFG -- EDITOR DISPATCH
   3588
   3589	004756				$CONFG::
   3590	004756	105037 	000030'			CLRB	.DMSW		; RESET FLAG
   3591	004762	105737 	000000G			TSTB	MA20		; DO WE HAVE INTERNAL MEMORY??
   3592	004766	001003 				BNE	10$		; YES -- CONFIGURE IT
   3593	004770	105737 	000000G			TSTB	MB20		; NO -- HOW ABOUT MB20'S
   3594	004774	001403 				BEQ	20$		; NO -- GO ON
   3595	004776				10$:
   3596	004776					CALL	CFGINT		; YES -- CONFIGURE IT
	004776	004737 	005066'			 JSR	PC,CFGINT
   3597	005002	103430 				BCS	70$		; ERROR IF CC-C SET
   3598	005004				20$:
   3599	005004	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   3600	005010	001403 				BEQ	30$		; NO -- GO ON
   3601	005012					CALL	CFGEXT		; YES -- CONFIGURE IT
	005012	004737 	005340'			 JSR	PC,CFGEXT
   3602	005016	103422 				BCS	70$		; ERROR IF CC-C SET
   3603	005020				30$:
   3604	005020	105737 	000000G			TSTB	MF20		; DO WE HAVE MOS MEMORY??
   3605	005024	001403 				BEQ	40$		; NO -- GO ON
   3606	005026					CALL	CFGMOS		; YES CONFIGURE IT
	005026	004737 	005476'			 JSR	PC,CFGMOS
   3607	005032	103414 				BCS	70$		; ERROR IF CC-C SET
   3608	005034				40$:
   3609	005034	113746 	000030'			MOVB	.DMSW,-(SP)	; DONE -- SAVE FLAG
   3610	005040	105037 	000030'			CLRB	.DMSW		; INIT FOR RETURN
   3611	005044	105737 	000024'			TSTB	.DLGSW		; ARE WE BEING TOLD WHAT TO DO??
   3612	005050	001402 				BEQ	50$		; YES -- SET FLAG TO WRITE FILE
   3613	005052	105716 				TSTB	(SP)		; NO -- DID ANYTHING CHANGE??
   3614	005054	001402 				BEQ	60$		; NO -- JUST EXIT
   3615	005056				50$:
   3616	005056	105237 	000030'			INCB	.DMSW		; YES -- FLAG FILE WRITE
   3617	005062				60$:
   3618	005062	005726 				TST	(SP)+		; CLEAR STACK
   3619	005064				70$:
   3620	005064					RETURN			; TO CALLER
	005064	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 81
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR

   3622						.SBTTL	CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
   3623
   3624	005066				CFGINT:
   3625	005066	012704 	000004 			MOV	#4,R4		; INIT ITERATION COUNTER
   3626	005072	005002 				CLR	R2		; INIT CONTROLER NUMBER
   3627	005074	005003 				CLR	R3		; RESET ERROR FLAG
   3628	005076				10$:
   3629	005076	010200 				MOV	R2,R0		; CONTROLLER NUMBER TO R0
   3630	005100	006200 				ASR	R0		; BYTE INDEX
   3631	005102	016201 	000120'			MOV	.CFGTB(R2),R1	; EDITED CONFIGURATION MASK
   3632	005106	100015 				BPL	20$		; WANTS IT CONFIGURED
   3633	005110	105760 	000000G			TSTB	TYPNUM(R0)	; THIS CONTROLLER EXIST??
   3634	005114	001461 				BEQ	60$		; NO -- DON'T BOTHER DELETING
   3635	005116	126060 	000000G	000056'		CMPB	TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
   3636	005124	001402 				BEQ	15$		; YES -- GO ON
   3637	005126					CALL	70$		; NO -- WARN HIM
	005126	004737 	005276'			 JSR	PC,70$
   3638	005132				15$:
   3639	005132					CALL	$SETIM		; AND DELETE IT
	005132	004737 	004320'			 JSR	PC,$SETIM
   3640	005136	103477 				BCS	90$		; ERROR IF CC-C SET
   3641	005140	000447 				BR	60$		; AND TRY FOR NEXT
   3642						;
   3643	005142				20$:
   3644	005142	105760 	000000G			TSTB	TYPNUM(R0)	; DOES THIS CONTROLLER EXIST??
   3645	005146	001006 				BNE	30$		; YES -- GO ON
   3646	005150	012762 	100000 	000120'		MOV	#BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
   3647	005156					CALL	70$		; WARN OPERATOR
	005156	004737 	005276'			 JSR	PC,70$
   3648	005162	000436 				BR	60$		; GO AROUND AGAIN
   3649						;
   3650	005164				30$:
   3651	005164	126060 	000000G	000056'		CMPB	TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
   3652	005172	001403 				BEQ	35$		; YES -- GO ON
   3653	005174					CALL	70$		; NO -- WARN OPERATOR
	005174	004737 	005276'			 JSR	PC,70$
   3654	005200	105001 				CLRB	R1		; SAY "ALL"
   3655	005202				35$:
   3656	005202	120160 	000000G			CMPB	R1,CONTI(R0)	; ARE THESE THE SAME??
   3657	005206	001414 				BEQ	40$		; YES -- GO ON
   3658	005210	105701 				TSTB	R1		; IS IT "ALL"??
   3659	005212	001412 				BEQ	40$		; YES -- SAME DIFFERENCE
   3660	005214					PUSH	R1		; SAVE R1
	005214	010146 				 MOV	R1,-(SP)
   3661	005216					CALL	$SETIM		; DELETE THE MODULES
	005216	004737 	004320'			 JSR	PC,$SETIM
   3662	005222					POP	R1		; RESTORE R1
	005222	012601 				 MOV	(SP)+,R1
   3663	005224	103005 				BCC	40$		; ALL OK IF CC-C IS CLEAR
   3664	005226	105060 	000120'			CLRB	.CFGTB(R0)	; SET TO "ALL"
   3665	005232					CALL	70$		; WARN OPERATOR OR EXIT
	005232	004737 	005276'			 JSR	PC,70$
   3666	005236	000410 				BR	60$		; GO ON TO NEXT CONTROLLER
   3667						;
   3668	005240				40$:
   3669	005240	000301 				SWAB	R1		; SWAP THE BYTES
   3670	005242	042701 	177774 			BIC	#^C3,R1		; FLUSH JUNK
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 81-1
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR

   3671	005246	001002 				BNE	50$		; GO ON IF .NE.
   3672	005250	012701 	000003 			MOV	#3,R1		; (0 V 4) => 3
   3673	005254				50$:
   3674	005254	110137 	000000G			MOVB	R1,INTMOD	; SET THE INTERLEAVE MODE
   3675	005260				60$:
   3676	005260	005722 				TST	(R2)+		; ADVANCE CONTROLLER INDEX
   3677	005262	077473 				SOB	R4,10$		; LOOP TILL DONE
   3678	005264	105037 	000000G			CLRB	MABRD		; DONE -- RESET FLAGS
   3679	005270	105037 	000000G			CLRB	RDDONE		; SO
   3680	005274					RETURN			; TO CALLER
	005274	000207 				 RTS	PC
   3681	005276				70$:
   3682	005276	005703 				TST	R3		; ALREADY PRINTED??
   3683	005300	001006 				BNE	80$		; YES -- GO ON
   3684	005302					PUSH	R0		; NO -- SAVE R0
	005302	010046 				 MOV	R0,-(SP)
   3685	005304					PRINT	#CFGINM		; TELL HIM
	005304	012700 	001116'			 MOV	#CFGINM,R0
	005310	004737 	025442'			 JSR	PC,$TTMSG
   3686	005314					POP	R0		; RESTORE R0
	005314	012600 				 MOV	(SP)+,R0
   3687	005316				80$:
   3688	005316	005203 				INC	R3		; FLAG PRINT
   3689	005320	105237 	000030'			INCB	.DMSW		; AND CONTROL
   3690	005324	105737 	000024'			TSTB	.DLGSW		; IS HE TALKING TO US??
   3691	005330	001002 				BNE	90$		; NO -- GO ON
   3692	005332	000137 	022050'			JMP	$ERROR		; YES -- QUIT NOW
   3693						;
   3694	005336				90$:
   3695	005336					RETURN			; TO CALLER
	005336	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 82
CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR

   3697						.SBTTL	CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
   3698
   3699	005340				CFGEXT:
   3700	005340	012700 	000004 			MOV	#4,R0		; CONTROLLER NUMBER 4
   3701	005344	013701 	000130'			MOV	.CFGTB+10,R1	; ALLOCATION DATA TO R1
   3702	005350	100005 				BPL	10$		; HE WANTS IT
   3703	005352	105737 	000004G			TSTB	TYPNUM+4	; IS IT THERE??
   3704	005356	001446 				BEQ	50$		; NO -- SO DON'T BOTHER
   3705	005360					CALLR	INIDMA		; YES -- SO DELETE IT
	005360	000137 	000000G			 JMP	INIDMA
   3706						;
   3707	005364				10$:
   3708	005364	105737 	000004G			TSTB	TYPNUM+4	; IS IT THERE??
   3709	005370	001004 				BNE	20$		; YES -- ALLOCATE IT
   3710	005372	012737 	100000 	000130'		MOV	#BIT15,.CFGTB+10 ; NO -- LOGICALLY DELETE IT
   3711	005400	000414 				BR	30$		; PRINT THE MESSAGE AND EXIT
   3712						;
   3713	005402				20$:
   3714	005402	005737 	000000G			TST	DMA2TS		; IS IT REALLY THERE??
   3715	005406	003411 				BLE	30$		; NO -- COMPLAIN
   3716	005410	110100 				MOVB	R1,R0		; YES -- GET THE INTERLEAVE MODE INTO R0
   3717	005412	001430 				BEQ	50$		; EXIT NOW IF OPTIMAL
   3718	005414	042700 	177774 			BIC	#^C3,R0		; FLUSH JUNK
   3719	005420	006300 				ASL	R0		; WORD INDEX
   3720	005422	036037 	000222'	000000G		BIT	BMMSTB(R0),DMANXM ; IS IT OK??
   3721	005430	001413 				BEQ	40$		; YES -- GO ON
   3722	005432				30$:
   3723	005432					PRINT	#CFGXNM		; NO -- COMPLAIN
	005432	012700 	001201'			 MOV	#CFGXNM,R0
	005436	004737 	025442'			 JSR	PC,$TTMSG
   3724	005442	105237 	000030'			INCB	.DMSW		; FLAG CONTROL
   3725	005446	105737 	000024'			TSTB	.DLGSW		; IS SOMEONE TALKING TO US??
   3726	005452	001010 				BNE	50$		; NO -- JUST EXIT
   3727	005454	000137 	022050'			JMP	$ERROR		; YES -- BAIL OUT NOW
   3728						;
   3729	005460				40$:
   3730	005460	005701 				TST	R1		; IS MODE NOW ZERO??
   3731	005462	001002 				BNE	45$		; NO -- GO ON
   3732	005464	012701 	000003 			MOV	#3,R1		; YES -- MAKE IT 4-WAY
   3733	005470				45$:
   3734	005470	110137 	000000G			MOVB	R1,DMABM	; SET THE BUS MODE
   3735	005474				50$:
   3736	005474					RETURN			; TO CALLER
	005474	000207 				 RTS	PC
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 83
CFGMOS -- MOS CONFIGURATION EDITOR

   3738						.SBTTL	CFGMOS -- MOS CONFIGURATION EDITOR
   3739
   3740	005476				CFGMOS:
   3741	005476	012704 	000010 			MOV	#10,R4		; INIT ITERATION COUNTER
   3742	005502	012702 	000020 			MOV	#20,R2		; ALSO BASE CONTROLLER NUMBER
   3743	005506	005003 				CLR	R3		; INIT FLAG
   3744	005510				10$:
   3745	005510	010200 				MOV	R2,R0		; CONTROLER NUMBER TO R0
   3746	005512	006200 				ASR	R0		; REAL CONTROLLER NUMBER
   3747	005514	122760 	000002 	000000G		CMPB	#2,CONTI(R0)	; WHAT STATE ARE WE IN??
   3748	005522	003005 				BGT	15$		; OK TO CONFIGURE
   3749	005524					PRINT	#CFGMAC		; ALREADY CONFIGURED
	005524	012700 	001335'			 MOV	#CFGMAC,R0
	005530	004737 	025442'			 JSR	PC,$TTMSG
   3750	005534	000441 				BR	45$		; NEXT...
   3751						;
   3752	005536				15$:
   3753	005536	016201 	000120'			MOV	.CFGTB(R2),R1	; CONFIGURATION MASK
   3754	005542	002004 				BGE	20$		; WANTS IT IF .GE. 0
   3755	005544	105760 	000000G			TSTB	TYPNUM(R0)	; IS CONTROLLER THERE??
   3756	005550	001022 				BNE	35$		; YES -- DELETE IT
   3757	005552	000430 				BR	40$		; NO -- TRY FOR NEXT CONTROLLER
   3758						;
   3759	005554				20$:
   3760	005554	105760 	000000G			TSTB	TYPNUM(R0)	; IS THE CONTROLLER THERE??
   3761	005560	003006 				BGT	30$		; YES -- GO ON
   3762	005562	012762 	100000 	000120'		MOV	#BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
   3763	005570					CALL	50$		; WARN OPERATOR
	005570	004737 	005642'			 JSR	PC,50$
   3764	005574	000417 				BR	40$		; AND GO ON
   3765						;
   3766	005576				30$:
   3767	005576					CALL	$MAPMM		; GET THE MOS MAP FOR THIS CONTROLLER
	005576	004737 	005700'			 JSR	PC,$MAPMM
   3768	005602	020100 				CMP	R1,R0		; ARE THE MASKS THE SAME??
   3769	005604	001413 				BEQ	40$		; YES -- DON'T DELETE MODULES
   3770	005606	005701 				TST	R1		; NO -- DID HE MEAN ALL??
   3771	005610	001411 				BEQ	40$		; YES -- GO ON
   3772	005612	010200 				MOV	R2,R0		; NO -- GET CONTROLLER NUMBER
   3773	005614	006200 				ASR	R0		; RIGHT
   3774	005616				35$:
   3775	005616					CALL	$SETMM		; AND SET IT
	005616	004737 	004544'			 JSR	PC,$SETMM
   3776	005622	103004 				BCC	40$		; ALL OK IF CC-C IS CLEAR
   3777	005624					CALL	50$		; WARN OPERATOR OR EXIT
	005624	004737 	005642'			 JSR	PC,50$
   3778	005630	005062 	000120'			CLR	.CFGTB(R2)	; SET TABLE TO "ALL"
   3779	005634				40$:
   3780	005634	005722 				TST	(R2)+		; NEXT CONTROLLER
   3781	005636	077454 				SOB	R4,10$		; LOOP TILL DONE
   3782	005640				45$:
   3783	005640					RETURN			; TO CALLER
	005640	000207 				 RTS	PC
   3784	005642				50$:
   3785	005642	005703 				TST	R3		; ALREADY PRINTED??
   3786	005644	001004 				BNE	60$		; YES -- GO ON
   3787	005646					PRINT	#CFGMNM		; NO PRINT IT
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 83-1
CFGMOS -- MOS CONFIGURATION EDITOR

	005646	012700 	001264'			 MOV	#CFGMNM,R0
	005652	004737 	025442'			 JSR	PC,$TTMSG
   3788	005656				60$:
   3789	005656	005203 				INC	R3		; FLAG PRINT
   3790	005660	105237 	000030'			INCB	.DMSW		; HERE TOO
   3791	005664	105737 	000024'			TSTB	.DLGSW		; SOMEONE OUT THERE??
   3792	005670	001401 				BEQ	70$		; YES
   3793	005672					RETURN			; NO -- RETURN
	005672	000207 				 RTS	PC
   3794	005674				70$:
   3795	005674	000137 	022050'			JMP	$ERROR		; BAIL OUT NOW...
   3796						;
KLICO -- CONFIGURATION EDITOR	MACRO M1110  15-OCT-79 14:14  PAGE 84
$MAPMM -- MAP MOS CONTROLLER BLOCKS

   3798						.SBTTL	$MAPMM -- MAP MOS CONTROLLER BLOCKS
   3799
   3800	005700				$MAPMM::
   3801	005700					PUSH	R2		; SAVE R2
	005700	010246 				 MOV	R2,-(SP)
   3802	005702					PUSH	R4		; AND R4
	005702	010446 				 MOV	R4,-(SP)
   3803	005704	005046 				CLR	-(SP)		; BUFFER
   3804	005706	012704 	000014 			MOV	#14,R4		; ITERATION COUNTER
   3805	005712	005002 				CLR	R2		; INIT INDEX
   3806	005714					CALL	BAF0		; FIND BASE ADDRESS THIS CONTROLLER
	005714	004737 	000000G			 JSR	PC,BAF0
   3807	005720				10$:
   3808	005720	105720 				TSTB	(R0)+		; IS THE BLOCK THERE??
   3809	005722	001402 				BEQ	20$		; NO -- GO ON
   3810	005724	056216 	000000G			BIS	BITTBL(R2),(SP)	; YES -- LIGHT A BIT
   3811	005730				20$:
   3812	005730	005722 				TST	(R2)+		; AND NEXT BIT
   3813	005732	077406 				SOB	R4,10$		; LOOP TILL DONE
   3814	005734					POP	R0		; BIT MASK TO R0
	005734	012600 				 MOV	(SP)+,R0
   3815	005736					POP	R4		; RESTORE R4
	005736	012604 				 MOV	(SP)+,R4
   3816	005740					POP	R2		; RESTORE R2
	005740	012602 				 MOV	(SP)+,R2
   3817	005742					RETURN			; TO CALLER
	005742	000207 				 RTS	PC
KLICS -- SWEEP CACHE	MACRO M1110  15-OCT-79 14:14  PAGE 85
$MAPMM -- MAP MOS CONTROLLER BLOCKS

   3819						.TITLE	KLICS -- SWEEP CACHE
   3820	005744					IDENT$	5,1
						.IDENT	/005010/
   3821					;
   3822					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   3823					;
   3824					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   3825					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   3826					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   3827					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   3828					;
   3829					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   3830					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   3831					; EQUIPMENT CORPORATION.
   3832					;
   3833					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   3834					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   3835					;
   3836					; VERSION 05-01
   3837					;
   3838					; ALAN D. PECKHAM  8-APR-77
   3839					;
   3840					; MODIFIED BY:
   3841					;
   3842					; FUNCTION: SWEEP AND INVALIDATE THE KL CACHE.
   3843					;
   3845					; EQUATED SYMBOLS
   3846					;
   3847		000014 			CCA	=	14		; KL DEVICE.
   3848		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
   3849		000001 			DATAI	=	1		; KL I/O SUBFUNCTION CODE.
   3850		000010 			PAG	=	10		; KL DEVICE.
   3851					;
   3852					; LOCAL DATA
   3853					;
   3854	000272					.PSECT	DATA,D
   3855	000272				DCSSIA:	IO10$	DATAI CCA,,0	; SWPIA INSTRUCTION.
	000272	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
	000275	   014 	   016 			 .BYTE	BY$$3,BY$$4
   3856	000277				DCSRCA:	IO10$	CONO PAG,,0	; RESET CACHE & PAGING STATUS.
	000277	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	000302	   012 	   016 			 .BYTE	BY$$3,BY$$4
   3857						.EVEN
   3858	005744					.PSECT
KLICS -- SWEEP CACHE	MACRO M1110  15-OCT-79 14:14  PAGE 86
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

   3860						.SBTTL	$SWEEP	-- SWEEP AND INVALIDATE THE CACHE
   3861					;+
   3862					; SWEEP THE CACHE OUT AND TURN IT OFF.
   3863					;
   3864					; INPUTS:
   3865					;	.NCACH	- NUMBER OF CACHES CONFIGURED.
   3866					;	.CACHN	- NUMBERS OF THE CACHES ENABLED.
   3867					;
   3868					; NO OUTPUTS
   3869					;-
   3870
   3871	005744				$SWEEP::
   3872	005744	105737 	000035'			TSTB	.CASW		; CHECK CACHE CONDITION AND
   3873	005750	003415 				BLE	90$		; RETURN IF NO CACHE.
   3874	005752					PUSH	<R1,R0>
	005752	010146 				 MOV	R1,-(SP)
	005754	010046 				 MOV	R0,-(SP)
   3875	005756	012700 	000272'			MOV	#DCSSIA,R0	; FIRST, INVALIDATE THE CACHE
   3876	005762					CALL	$EXCT		; WITH A SWPIA.
	005762	004737 	026174'			 JSR	PC,$EXCT
   3877	005766	103404 				BCS	80$
   3878	005770	012700 	000277'			MOV	#DCSRCA,R0	; THEN TURN OFF CACHE LOOK & LOAD
   3879	005774					CALL	$EXCT		; WITH A CONO PAG,,0.
	005774	004737 	026174'			 JSR	PC,$EXCT
   3880	006000				80$:
   3881	006000					POP	<R0,R1>
	006000	012600 				 MOV	(SP)+,R0
	006002	012601 				 MOV	(SP)+,R1
   3882	006004				90$:
   3883	006004					RETURN
	006004	000207 				 RTS	PC
   3884
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1110  15-OCT-79 14:14  PAGE 87
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

   3887						.TITLE	KLICX -- EXTERNAL MEMORY CONFIGURATION DIALOG
   3888	006006					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   3889					;
   3890					;                             COPYRIGHT (C) 1975, 1978 BY
   3891					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3892					;
   3893					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3894					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3895					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3896					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3897					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3898					;
   3899					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3900					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3901					;       CORPORATION.
   3902					;
   3903					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3904					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3905					;
   3906					;
   3907					;	MODULE: EXTERNAL MEMORY CONFIGURATION DIALOG
   3908					;
   3909					;	VERSION: 10-00
   3910					;
   3911					;	DATE: 25-JUL-78
   3912					;
   3913					;	AUTHOR: R. BELANGER
   3914					;
   3915					;	MODIFICATIONS:
   3916					;
   3917					;	NO.	DATE		PROGRAMMER	REASON
   3918					;	---	----		----------	------
   3919					;
   3920					;			LOCAL DATA
   3921					;
   3922	001400					.PSECT	TEXT,D
   3923	001400				CXMDOL:
   3924	001400					WARNING <EXTERNAL CORE MEMORY IS OFF-LINE>
	001400	   045 	   040 	   105 		 .ASCIZ	\% EXTERNAL CORE MEMORY IS OFF-LINE\
	001403	   130 	   124 	   105
	001406	   122 	   116 	   101
	001411	   114 	   040 	   103
	001414	   117 	   122 	   105
	001417	   040 	   115 	   105
	001422	   115 	   117 	   122
	001425	   131 	   040 	   111
	001430	   123 	   040 	   117
	001433	   106 	   106 	   055
	001436	   114 	   111 	   116
	001441	   105 	   000
   3925	001443				CFXMQ1:
   3926	001443	   103 	   117 	   116 		.ASCIZ	/CONFIGURE EXTERNAL CORE MEMORY [YES,NO]?/
	001446	   106 	   111 	   107
	001451	   125 	   122 	   105
	001454	   040 	   105 	   130
	001457	   124 	   105 	   122
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1110  15-OCT-79 14:14  PAGE 87-1
$SWEEP	-- SWEEP AND INVALIDATE THE CACHE

	001462	   116 	   101 	   114
	001465	   040 	   103 	   117
	001470	   122 	   105 	   040
	001473	   115 	   105 	   115
	001476	   117 	   122 	   131
	001501	   040 	   133 	   131
	001504	   105 	   123 	   054
	001507	   116 	   117 	   135
	001512	   077 	   000
   3927	001514				CFXMQ2:
   3928	001514	   105 	   130 	   124 		.ASCIZ	/EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]?/
	001517	   105 	   122 	   116
	001522	   101 	   114 	   040
	001525	   103 	   117 	   122
	001530	   105 	   040 	   115
	001533	   105 	   115 	   117
	001536	   122 	   131 	   040
	001541	   102 	   125 	   123
	001544	   055 	   115 	   117
	001547	   104 	   105 	   040
	001552	   133 	   117 	   120
	001555	   124 	   111 	   115
	001560	   101 	   114 	   054
	001563	   061 	   054 	   062
	001566	   054 	   064 	   135
	001571	   077 	   000
   3929	001573				CXMIBM:
   3930	001573					ERROR	<ILLEGAL BUS-MODE>
	001573	   077 	   040 	   111 		 .ASCIZ	\? ILLEGAL BUS-MODE\
	001576	   114 	   114 	   105
	001601	   107 	   101 	   114
	001604	   040 	   102 	   125
	001607	   123 	   055 	   115
	001612	   117 	   104 	   105
	001615	   000
   3931	006006					.PSECT
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1110  15-OCT-79 14:14  PAGE 88
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   3933						.SBTTL	$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
   3934
   3935	006006				$CFXMD::
   3936	006006	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   3937	006012	001540 				BEQ	100$		; NO -- GO ON TO NEXT SECTION
   3938	006014	005737 	000000G			TST	DMA2TS		; YES -- IS IT ON-LINE??
   3939	006020	003005 				BGT	10$		; YES -- GO ON
   3940	006022					PRINT	#CXMDOL		; NO -- SAY SO
	006022	012700 	001400'			 MOV	#CXMDOL,R0
	006026	004737 	025442'			 JSR	PC,$TTMSG
   3941	006032	000530 				BR	100$		; AND EXIT
   3942						;
   3943	006034				10$:
   3944	006034	105737 	000030'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3945	006040	002435 				BLT	40$		; NO -- TAKE DEFAULT PATH
   3946	006042					PRINT	#CFXMQ1		; YES -- ASK THE FIRST QUESTION
	006042	012700 	001443'			 MOV	#CFXMQ1,R0
	006046	004737 	025442'			 JSR	PC,$TTMSG
   3947	006052					CALL	$TTRD		; READ THE RESPONSE
	006052	004737 	025120'			 JSR	PC,$TTRD
   3948	006056	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   3949	006062	105715 				TSTB	(R5)		; DEFAULT??
   3950	006064	001423 				BEQ	40$		; YES -- DO IT
   3951	006066	022715 	042531 			CMP	#"YE,(R5)	; NO -- IS IT "YES"??
   3952	006072	001420 				BEQ	40$		; YES -- DO IT
   3953	006074	022715 	047516 			CMP	#"NO,(R5)	; NO -- IS IT "NO"??
   3954	006100	001412 				BEQ	30$		; YES -- DO IT
   3955	006102	022715 	040502 			CMP	#"BA,(R5)	; NO -- IS IT "BACK"??
   3956	006106	001405 				BEQ	20$		; YES -- BACK UP ONE
   3957	006110					PRINT	#COMCSE		; NO -- ERROR
	006110	012700 	004754'			 MOV	#COMCSE,R0
	006114	004737 	025442'			 JSR	PC,$TTMSG
   3958	006120	000745 				BR	10$
   3959						;
   3960	006122				20$:
   3961	006122					CALLR	$DLMB2		; BACK UP TO PREVIOUS QUESTION
	006122	000137 	017504'			 JMP	$DLMB2
   3962						;
   3963	006126				30$:
   3964	006126	012701 	100000 			MOV	#BIT15,R1	; MAKE R1 SAY "NO"
   3965	006132	000401 				BR	50$		; DO COMMON CODE
   3966						;
   3967	006134				40$:
   3968	006134	005001 				CLR	R1		; MAKE R1 SAY "YES" <DEFAULT PATH>
   3969	006136				50$:
   3970	006136	010137 	000130'			MOV	R1,.CFGTB+10	; SET IT IN CONFIGURATION TABLE
   3971	006142	100464 				BMI	100$		; DONE IF DELETE...
   3972	006144				60$:
   3973	006144	105737 	000030'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   3974	006150	002461 				BLT	100$		; NO -- JUST EXIT
   3975	006152					PRINT	#CFXMQ2		; YES -- ASK THE SECOND QUESTION
	006152	012700 	001514'			 MOV	#CFXMQ2,R0
	006156	004737 	025442'			 JSR	PC,$TTMSG
   3976	006162					CALL	$TTRD		; READ THE RESPONSE
	006162	004737 	025120'			 JSR	PC,$TTRD
   3977	006166	005000 				CLR	R0		; INIT DEFAULT BUS-MODE
   3978	006170	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
KLICX -- EXTERNAL MEMORY CONFIG	MACRO M1110  15-OCT-79 14:14  PAGE 88-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   3979	006174	105715 				TSTB	(R5)		; DEFAULT??
   3980	006176	001444 				BEQ	90$		; YES -- GO ON
   3981	006200	022715 	050117 			CMP	#"OP,(R5)	; NO -- "OPTIMAL"??
   3982	006204	001441 				BEQ	90$		; YES -- GO ON
   3983	006206	022715 	040502 			CMP	#"BA,(R5)	; NO -- "BACK"??
   3984	006212	001710 				BEQ	10$		; YES -- BACK UP ONE
   3985	006214					CALL	$TRI2B		; NO -- HAD BETTER BE NUMERIC
	006214	004737 	023414'			 JSR	PC,$TRI2B
   3986	006220	103426 				BCS	80$		; OOPS!
   3987	006222	005700 				TST	R0		; DID HE TYPE ZERO??
   3988	006224	001424 				BEQ	80$		; YES -- NOT ALLOWED
   3989	006226	022700 	000004 			CMP	#4,R0		; NO -- IN RANGE??
   3990	006232	002421 				BLT	80$		; NO -- COMPLAIN
   3991	006234	022700 	000003 			CMP	#3,R0		; YES -- IS IT "3"??
   3992	006240	001416 				BEQ	80$		; YES -- NOT ALLOWED
   3993	006242				70$:
   3994	006242	010001 				MOV	R0,R1		; NO -- ALL OK
   3995	006244	042701 	177774 			BIC	#^C3,R1		; FLUSH JUNK
   3996	006250	006301 				ASL	R1		; WORD INDEX
   3997	006252	016101 	000222'			MOV	BMMSTB(R1),R1	; BIT MASK TO R1
   3998	006256	030137 	000000G			BIT	R1,DMANXM	; IS THIS BUS-MODE LEGAL??
   3999	006262	001412 				BEQ	90$		; YES -- GO ON
   4000	006264					PRINT	#CXMIBM		; NO -- COMPLAIN
	006264	012700 	001573'			 MOV	#CXMIBM,R0
	006270	004737 	025442'			 JSR	PC,$TTMSG
   4001	006274	000723 				BR	60$		; AND TRY AGAIN
   4002						;
   4003	006276				80$:
   4004	006276					PRINT	#COMCSE		; ERROR MESSAGE
	006276	012700 	004754'			 MOV	#COMCSE,R0
	006302	004737 	025442'			 JSR	PC,$TTMSG
   4005	006306	000716 				BR	60$		; TRY AGAIN
   4006						;
   4007	006310				90$:
   4008	006310	010037 	000130'			MOV	R0,.CFGTB+10
   4009	006314				100$:
   4010	006314					CALLR	$DLGMF		; CONFIGURE MOS MEMORY
	006314	000137 	017466'			 JMP	$DLGMF
   4011						;
KLIDC -- FILE CLOSE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 89
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4013						.TITLE	KLIDC -- FILE CLOSE ROUTINE
   4014	006320					IDENT$	5,0
						.IDENT	/005000/
   4015					;
   4016					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4017					;
   4018					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4019					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4020					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4021					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4022					;
   4023					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4024					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4025					; EQUIPMENT CORPORATION.
   4026					;
   4027					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4028					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4029					;
   4030					; VERSION 05-00
   4031					;
   4032					; ALAN D. PECKHAM  15-APR-77
   4033					;
   4034					; MODIFIED BY:
   4035					;
   4036					; FUNCTION: THIS ROUTINE CLOSES THE FILE CURRENTLY OPEN. IF IT IS
   4037					;  AND OUTPUT FILE, THE LAST BLOCK IS WRITTEN OUT AND
   4038					;  THE ATTRIBUTES ARE WRITTEN.
   4039					;
   4040					; LOCAL MACROS
   4041					;
   4042						.MCALL	QIOW$
   4043					;
   4044					; LOCAL DATA
   4045					;
   4046	000304					.PSECT	DATA,D
   4047	000304				DDCDAI:	QIOW$	IO.DAC,SYILUN,1,,.SYSTA
	000304	   003 	   006 			.BYTE	3,$$$ARG
	000306	000000G				.WORD	IO.DAC
	000310	000004 				.WORD	SYILUN
	000312	   001 	   000 			.BYTE	1,
	000314	000470'				.WORD	.SYSTA
	000316	000000 				.WORD
   4048	000320				DDCDAO:	QIOW$	IO.DAC,SYOLUN,1,,.SYSTA,,<,DDCWAT>
	000320	   003 	   010 			.BYTE	3,$$$ARG
	000322	000000G				.WORD	IO.DAC
	000324	000005 				.WORD	SYOLUN
	000326	   001 	   000 			.BYTE	1,
	000330	000470'				.WORD	.SYSTA
	000332	000000 				.WORD
	000334	000000 				.WORD
	000336	000340'				.WORD	DDCWAT
   4049	000340	   004 	   016 		DDCWAT:	.BYTE	4,16		; ATTRIBUTES INFO
   4050	000342	002614'				.WORD	.SYATT
   4051	000344	   005 	   012 			.BYTE	5,12		; FILENAME INFO
   4052	000346	001536'				.WORD	.SYOFN+00
   4053	000350	   001 	   002 			.BYTE	1,2		; AND OWNER'S UIC
   4054	000352	001550'				.WORD	.SYOFN+12
KLIDC -- FILE CLOSE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 89-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG

   4055	000354	   000 	   000 			.BYTE	0,0		; END OF CONTROL WORDS.
   4056	006320					.PSECT
KLIDC -- FILE CLOSE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 90
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4058						.SBTTL	$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES
   4059					;+
   4060					; CLOSE THE INPUT AND OUTPUT FILES.
   4061					;
   4062					; NO INPUTS
   4063					;
   4064					; OUTPUTS:
   4065					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   4066					;	R0 IS DESTROYED IF ERROR.
   4067					;-
   4068
   4069	006320	105737 	000474'		$CLOSE::TSTB	.SYISW		; IF INPUT FILE NOT OPEN
   4070	006324	001411 				BEQ	10$		; LEAVE IT ALONE.
   4071	006326					DIR$	#DDCDAI		; DE-ACCESS THE INPUT FILE.
	006326	012746 	000304'			MOV	#DDCDAI,-(SP)
	006332	104375 				EMT	375
   4072	006334	103441 				BCS	30$
   4073	006336	105737 	000470'			TSTB	.SYSTA
   4074	006342	002436 				BLT	30$
   4075	006344	105037 	000474'			CLRB	.SYISW		; INPUT FILE NOW CLOSED.
   4076	006350	105737 	000475'		10$:	TSTB	.SYOSW		; IF OUTPUT FILE NO OPEN
   4077	006354	001430 				BEQ	20$		; LEAVE IT ALONE.
   4078
   4079					; COLLECT OUT STATISTICS
   4080
   4081	006356	013737 	001556'	002624'		MOV	.SYOVB,.SYATT+10 ; RECORD TOP
   4082	006364	013737 	001560'	002626'		MOV	.SYOVB+2,.SYATT+12 ; BLOCK USED AND
   4083	006372	013737 	001532'	002630'		MOV	.SYOBA,.SYATT+14 ; DISPLACEMENT TO
   4084	006400	162737 	001562'	002630'		SUB	#.SYOBF,.SYATT+14 ; NEXT AVAILABLE BYTE.
   4085	006406					CALL	$WRITS		; WRITE OUT REST OF
	006406	004737 	010130'			 JSR	PC,$WRITS
   4086	006412	103411 				BCS	20$		; THE CURRENT BLOCK.
   4087	006414					DIR$	#DDCDAO		; DE-ACCESS THE OUTPUT FILE.
	006414	012746 	000320'			MOV	#DDCDAO,-(SP)
	006420	104375 				EMT	375
   4088	006422	103411 				BCS	40$
   4089	006424	105737 	000470'			TSTB	.SYSTA
   4090	006430	002406 				BLT	40$
   4091	006432	105037 	000475'			CLRB	.SYOSW		; OUTPUT FILE NOW CLOSED.
   4092	006436				20$:	RETURN
	006436	000207 				 RTS	PC
   4093
   4094	006440	012700 	000504'		30$:	MOV	#.SYIFN,R0	; CLOSE FAILED.
   4095	006444	000402 				BR	50$
   4096	006446	012700 	001536'		40$:	MOV	#.SYOFN,R0
   4097	006452				50$:	CALLR	$IOERR
	006452	000137 	006610'			 JMP	$IOERR
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 91
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4099						.TITLE	KLIDD -- DELETE A FILE
   4100	006456					IDENT$	5,0
						.IDENT	/005000/
   4101					;
   4102					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4103					;
   4104					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4105					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4106					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4107					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4108					;
   4109					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4110					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4111					; EQUIPMENT CORPORATION.
   4112					;
   4113					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4114					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4115					;
   4116					; VERSION 05-00
   4117					;
   4118					; ALAN D. PECKHAM  15-APR-77
   4119					;
   4120					; MODIFIED BY:
   4121					;
   4122					; FUNCTION: THIS ROUTINE DELETES THE FILE SPECIFIED BY THE FILE NAME
   4123					;  POINTED TO BY R0.
   4124					;
   4125					; LOCAL MACROS
   4126					;
   4127						.MCALL	QIOW$
   4128					;
   4129					; LOCAL DATA
   4130					;
   4131	000356					.PSECT	DATA,D
   4132	000356				DDDFNA:	QIOW$	IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000356	   003 	   014 			.BYTE	3,$$$ARG
	000360	000000G				.WORD	IO.FNA
	000362	000006 				.WORD	SYFLUN
	000364	   001 	   000 			.BYTE	1,
	000366	000470'				.WORD	.SYSTA
	000370	000000 				.WORD
	000372	000000 				.WORD
	000374	000000 				.WORD
	000376	000000 				.WORD
	000400	000000 				.WORD
	000402	000000 				.WORD
	000404	002562'				.WORD	.SYFNB
   4133	000406				DDDDEL:	QIOW$	IO.DEL,SYFLUN,1,,.SYSTA,,<.SYFID>
	000406	   003 	   007 			.BYTE	3,$$$ARG
	000410	000000G				.WORD	IO.DEL
	000412	000006 				.WORD	SYFLUN
	000414	   001 	   000 			.BYTE	1,
	000416	000470'				.WORD	.SYSTA
	000420	000000 				.WORD
	000422	002562'				.WORD	.SYFID
   4134	000424				DDDRNA:	QIOW$	IO.RNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000424	   003 	   014 			.BYTE	3,$$$ARG
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 91-1
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

	000426	000000G				.WORD	IO.RNA
	000430	000006 				.WORD	SYFLUN
	000432	   001 	   000 			.BYTE	1,
	000434	000470'				.WORD	.SYSTA
	000436	000000 				.WORD
	000440	000000 				.WORD
	000442	000000 				.WORD
	000444	000000 				.WORD
	000446	000000 				.WORD
	000450	000000 				.WORD
	000452	002562'				.WORD	.SYFNB
   4135	006456					.PSECT
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 92
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4137					;+
   4138					; THIS PROGRAM USES THE RSX FILE PRIMITIVES TO DO ITS I/O
   4139					; IN ORDER TO AVOID THE INCLUSION OF THE FILES-11 PACKAGE WHICH IS
   4140					; SOME 2K IN SIZE, AND NOT OVERLAYABLE. THIS HAS A RISK IN THAT
   4141					; THE FILE PRIMITIVES ARE NOT DOCUMENTED, BUT THE INFORMATION IS
   4142					; AVAILABLE TO THOSE WHO WANT TO WADE THROUGH THE LISTINGS. THE
   4143					; FOLLOWING INFORMATION HOPEFULLY WILL BE OF AID TO THE READER
   4144					; OF THIS LISTING.
   4145					;
   4146					; FILES UNDER RSX ARE ACCESSED BY AN INTERNAL 'FILE ID' (FID) WHICH
   4147					; IS ASSOCIATED WITH THE USER'S FILE NAME THROUGH THE DIRECTORY.
   4148					; THUS, UNDER RSX, ACCESSING A FILE NAME IS SEPERATE FROM ACCESSING
   4149					; THE ACTUAL FILE. THE 3 PRIMITIVES IO.FNA, IO.RNA, IO.ENA ARE
   4150					; PROVIDED FOR FINDING, REMOVING, AND ENTERING A FILE NAME. THESE
   4151					; USE THE FILE NAME BLOCK (FNB) ONLY. IN ACCESSING THE DIRECTORY,
   4152					; THE FID OF THE DIRECTORY MUST BE FIRST FOUND WITHIN THE MASTER
   4153					; FILE DIRECTORY, WHICH HAS A FID OF -1,-1.
   4154					;
   4155					; ONCE THE DESIRED FID HAS BEEN FOUND, THE FILE CAN BE ACCESSED
   4156					; FOR THE TYPE OF I/O TO BE DONE: IO.ACR TO READ, IO.ACW TO
   4157					; READ/WRITE, IO.ACE TO READ/WRITE/EXTEND. THE FILE CAN THEN BE
   4158					; WORKED ON THROUGH IO.RVB AND IO.WVB (VIRTUAL BLOCKS START AT 1).
   4159					; WHEN FINISHED, THE USER SHOULD DO AN IO.DAC TO CLOSE THE FILE.
   4160					; THE PRIMITIVES IO.ACR,ACW,ACE USE THE FID AND ACCESS PARAMETERS,
   4161					; WHILE IO.DAC USES THE FID AND MAY SET THE FILE ATTRIBUTES IF
   4162					; ACCESS INCLUDES WRITING.
   4163					;
   4164					; FILES ARE MANIPULATED BY IO.CRE, IO.EXT, IO.DEL WHICH CREATE,
   4165					; EXTEND, OR DELETE A FILE. A DELETE WITH AN EXTEND PARAMETER WILL
   4166					; TRUNCATE A FILE.
   4167					;
   4168					; THE ATTRIBUTES MAY BE ACCESSED ON AN ACCESSED FILE THROUGH
   4169					; IO.RAT TO READ THE ATTRIBUTES AND IO.WAT TO WRITE.
   4170					;
   4171					; CARE MUST BE TAKEN NOT TO LOSE A FILE BY CREATING AND NOT HAVING
   4172					; IT IN SOME DIRECTORY.
   4173					;-
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 93
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4175					;+
   4176					; THE QIO PARAMETER BLOCK IS ORGANIZED AS FOLLOWS:
   4177					;
   4178					;	.WORD	0		;ADDRESS OF FID BLOCK.
   4179					;	.WORD	0		;ADDRESS OF ATTRIBUTE CONTROL LIST.
   4180					;	.WORD	0,0		;EXTEND PARAMETERS.
   4181					;	.WORD	0		;ACCESS PARAMETERS.
   4182					;	.WORD	0		;ADDRESS OF FILE NAME BLOCK.
   4183					;
   4184					; ANY UNUSED UNUSED PARAMETERS ARE TO BE ZERO.
   4185					;
   4186					; THE PARAMETERS THAT MAY BE USED FOR PRIMITIVES ARE:
   4187					;
   4188					;	FUNC.		FID	ACL	EXT	ACC	FNB
   4189					;	IO.FNA		-	-	-	-	M
   4190					;	IO.RNA		-	-	-	-	M
   4191					;	IO.ENA		-	-	-	-	M
   4192					;	IO.ACR		M	OR	-	M	-
   4193					;	IO.ACW		M	OR	-	M	-
   4194					;	IO.ACE		M	OR	-	M	-
   4195					;	IO.DAC		O	OW	-	-	-
   4196					;	IO.EXT		O	-	M	-	-
   4197					;	IO.CRE		M	OW	O	-	-
   4198					;	IO.DEL		O	-	OT	-	-
   4199					;	IO.RAT		O	OR	-	-	-
   4200					;	IO.WAT		O	OW	-	-	-
   4201					;
   4202					;	M - MANDATORY  O - OPTIONAL  '-' - MUST BE ZERO
   4203					;	R - READ ATTRIBUTES  W - WRITE ATTRIBUTES  T - TRUNCATE FILE
   4204					;-
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 94
$CLOSE	-- CLOSE FILES AND WRITE ATTRIBUTES

   4206					;+
   4207					; THE FILE ID BLOCK IS A TWO WORD HOLDING AREA AND IS USUALLY
   4208					; THE FIRST TWO WORDS OF THE FNB, AS THAT IS WHERE THE FID IS
   4209					; RETURNED FROM A DIRECTORY OPERATION.
   4210					;
   4211					; THE FILE ATTRIBUTES ARE ACCESSED IN PIECES THROUGH A CONTROL
   4212					; LIST. ENTRIES IN THIS LIST ARE TWO WORDS LONG AND ARE TERMINATED
   4213					; BY A NULL BYTE:
   4214					;	.BYTE	0		;ATTRIBUTE # - POSITIVE TO WRITE ATTRIBUTE
   4215					;				;	       NEGATIVE TO READ ATTRIBUTE.
   4216					;	.BYTE	0		;LENGTH IN BYTES TO TRANSFER - IF ZERO
   4217					;				;THEN 1000 BYTES IS IMPLIED. THIS MUST
   4218					;				;BE <=MXLN (THE MAXIMUM LENGTH).
   4219					;	.WORD	0		;ADDRESS OF SENDING/RECIEVING AREA.
   4220					;
   4221					;	ATTR#	MXLN	DESCRIPTION
   4222					;	1	5	OWNERS UIC (MAY INCL 2&3)
   4223					;	2	3	FILE PROTECTION (MAY INCL 3)
   4224					;	3	1	USER CONTROLLED FILE CHARACTERISTICS
   4225					;	4	40	USER FILE ATTRIBUTES
   4226					;	5	12	FILE NAME (MAY INCL 6&7)
   4227					;	6	4	FILE TYPE (MAY INCL 7)
   4228					;	7	2	FILE VERSION
   4229					;	10	7	EXPIRATION DATE
   4230					;	11	12	STATISTICS BLOCK (READ ONLY)
   4231					;	12	0	COMPLETE FILE HEADER (READ ONLY)
   4232					;
   4233					; THE USER FILE ATTRIBUTES ARE DESCRIBED IN THE RSX-11 I/O
   4234					; OPERATIONS MANUAL IN APPENDIX A AS THE FIRST 20 BYTES OF
   4235					; THE FDB. THE STATISTICS BLOCK IS DESCRIBED IN APPENDIX H.
   4236					; THE FULL HEADER BLOCK IS DESCRIBED IN APPENDIX F.
   4237					;
   4238					; THE EXTEND PARAMETER IS A TWO WORD INDICATOR OF THE SIZE OF THE
   4239					; EXTEND:
   4240					;	.BYTE	0		;EXTENSION SIZE HIGH
   4241					;	.BYTE	400		;EXTENSION PARAMETER ENABLE. IF 410
   4242					;				;THEN EXTEND BY SYSTEM DEFAULT.
   4243					;	.WORD	0		;EXTENSION SIZE LOW.
   4244					; THE EXTENSION HIGH & LOW COMBINED PROVIDE A 24 BIT NUMBER OF
   4245					; BLOCKS TO EXTEND THE FILE BY. IF USED IN IO.DEL, ALL 31 BITS
   4246					; EXCLUDING THE ENABLE BIT (SIGN BIT) PARTICIPATE IN A FILE SIZE
   4247					; TO TRUNCATE TO.
   4248					;
   4249					; THE ACCESS PARAMETER SPECIFIES THE FILE WINDOW SIZE:
   4250					;	.BYTE	0		;WINDOW SIZE (NORMALLY ZERO)
   4251					;	.BYTE	400		;ACCESS PARAMETER ENABLE.
   4252					;
   4253					; THE FILE NAME BLOCK IS DESCRIBED IN THE RSX-11 I/O OPERATIONS
   4254					; REFERENCE MANUAL APPENDIX B. THE LAST FOUR BYTES ARE NOT USED.
   4255					;-
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 95
$DELETE	-- DELETE A FILE

   4257						.SBTTL	$DELETE	-- DELETE A FILE
   4258					;+
   4259					; DELETE THE GIVEN FILE FROM THE SYSTEM DEVICE
   4260					;
   4261					; INPUTS:
   4262					;	R0	- POINTER TO FILE NAME.
   4263					;
   4264					; OUTPUTS:
   4265					;	CARRY IS SET IF DELETE FAILED AND MESSAGE IS TYPED.
   4266					;	R0 IS DESTROYED IF ERROR OCCURS.
   4267					;-
   4268
   4269	006456				$DELETE::CALL	$SETFN		; GET FILE NAME.
	006456	004737 	006546'			 JSR	PC,$SETFN
   4270	006462					DIR$	#DDDFNA		; FIND FILE IN DIRECTORY
	006462	012746 	000356'			MOV	#DDDFNA,-(SP)
	006466	104375 				EMT	375
   4271	006470	103424 				BCS	10$
   4272	006472	105737 	000470'			TSTB	.SYSTA
   4273	006476	002421 				BLT	10$
   4274	006500					DIR$	#DDDDEL		; MARK IT FOR DELETION
	006500	012746 	000406'			MOV	#DDDDEL,-(SP)
	006504	104375 				EMT	375
   4275	006506	103415 				BCS	10$
   4276	006510	105737 	000470'			TSTB	.SYSTA
   4277	006514	002412 				BLT	10$
   4278	006516					CALL	$SETFN		; RESET FNB AND
	006516	004737 	006546'			 JSR	PC,$SETFN
   4279	006522					DIR$	#DDDRNA		; REMOVE NAME FROM DIRECTORY.
	006522	012746 	000424'			MOV	#DDDRNA,-(SP)
	006526	104375 				EMT	375
   4280	006530	103404 				BCS	10$
   4281	006532	105737 	000470'			TSTB	.SYSTA
   4282	006536	002401 				BLT	10$
   4283	006540					RETURN
	006540	000207 				 RTS	PC
   4284
   4285	006542				10$:	CALLR	$IOERR		; DELETE FAILED.
	006542	000137 	006610'			 JMP	$IOERR
KLIDD -- DELETE A FILE	MACRO M1110  15-OCT-79 14:14  PAGE 96
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

   4287						.SBTTL	$SETFN	-- SET FILE NAME IN FILE NAME BLOCK
   4288					;+
   4289					; PUT FILE NAME IN FILE NAME BLOCK AND SET UP
   4290					; DPB TO FIND THE FILE. THE FILENAME IS POINTED TO BY R0.
   4291					;
   4292					; INPUTS:
   4293					;	R0	- ADDRESS OF FILE NAME TO USE:
   4294					;		  .RAD50	/FILENAME /	;(THREE WORDS)
   4295					;		  .RAD50	/TYP/		;(ONE WORD)
   4296					;		  .WORD		VERSION
   4297					;		  .WORD		UIC
   4298					;		  .ASCII	/DEVICE/	;(ONE WORD)
   4299					;		  .WORD		UNIT
   4300					;
   4301					; OUTPUTS:
   4302					;	.SYFNB	- IS SET UP FOR USE WITH THE GIVEN FILE NAME.
   4303					;-
   4304
   4305	006546				$SETFN::PUSH	<R1,R0>
	006546	010146 				 MOV	R1,-(SP)
	006550	010046 				 MOV	R0,-(SP)
   4306	006552	012701 	002562'			MOV	#.SYFNB,R1	; GET FNB ADDRESS
   4307	006556	005021 				CLR	(R1)+		; AND CLEAR FID
   4308	006560	005021 				CLR	(R1)+
   4309	006562	005021 				CLR	(R1)+
   4310	006564	012021 				MOV	(R0)+,(R1)+	; MOVE IN FILENAME
   4311	006566	012021 				MOV	(R0)+,(R1)+
   4312	006570	012021 				MOV	(R0)+,(R1)+
   4313	006572	012021 				MOV	(R0)+,(R1)+	; FILE TYPE
   4314	006574	011021 				MOV	(R0),(R1)+	; VERSION
   4315	006576	005021 				CLR	(R1)+		; STATUS AND
   4316	006600	005011 				CLR	(R1)		; NEXT POINTER.
   4317	006602					POP	<R0,R1>
	006602	012600 				 MOV	(SP)+,R0
	006604	012601 				 MOV	(SP)+,R1
   4318	006606					RETURN
	006606	000207 				 RTS	PC
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1110  15-OCT-79 14:14  PAGE 97
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

   4320						.TITLE	KLIDE -- PRINT I/O ERROR MESSAGE
   4321	006610					IDENT$	5,1								; ADP01
						.IDENT	/005010/
   4322					;
   4323					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4324					;
   4325					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4326					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4327					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4328					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4329					;
   4330					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4331					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4332					; EQUIPMENT CORPORATION.
   4333					;
   4334					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4335					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4336					;
   4337					; VERSION 05-01									; ADP01
   4338					;
   4339					; ALAN D. PECKHAM  15-APR-77
   4340					;
   4341					; MODIFIED BY:
   4342					;
   4343					; FUNCTION: THIS ROUTINE IS CALLED TO PRINT OUT THE ERROR CODE
   4344					;  IN CASE OF I/O ERROR. IT ALSO PRINTS THE DEVICE AND
   4345					;  FILE NAME ASSOCIATED TO THE ERROR.
   4346					;
   4347					; LOCAL DATA
   4348					;
   4349	001616					.PSECT	TEXT,D
   4350	001616				TDEDR:	ERROR	<DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'>	; ADP01
	001616	   077 	   040 	   104 		 .ASCIZ	\? DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
	001621	   111 	   122 	   105
	001624	   103 	   124 	   111
	001627	   126 	   105 	   040
	001632	   105 	   122 	   122
	001635	   117 	   122 	   040
	001640	   055 	   130 	   130
	001643	   130 	   040 	   117
	001646	   116 	   040 	   106
	001651	   111 	   114 	   105
	001654	   040 	   047 	   130
	001657	   130 	   130 	   072
	001662	   130 	   130 	   130
	001665	   130 	   130 	   130
	001670	   130 	   130 	   130
	001673	   056 	   130 	   130
	001676	   130 	   073 	   130
	001701	   130 	   130 	   130
	001704	   130 	   130 	   047
	001707	   000
   4351	001710				TDEIO:	ERROR	<I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'>		; ADP01
	001710	   077 	   040 	   111 		 .ASCIZ	\? I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
	001713	   057 	   117 	   040
	001716	   105 	   122 	   122
	001721	   117 	   122 	   040
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1110  15-OCT-79 14:14  PAGE 97-1
$SETFN	-- SET FILE NAME IN FILE NAME BLOCK

	001724	   055 	   130 	   130
	001727	   130 	   040 	   117
	001732	   116 	   040 	   106
	001735	   111 	   114 	   105
	001740	   040 	   047 	   130
	001743	   130 	   130 	   072
	001746	   130 	   130 	   130
	001751	   130 	   130 	   130
	001754	   130 	   130 	   130
	001757	   056 	   130 	   130
	001762	   130 	   073 	   130
	001765	   130 	   130 	   130
	001770	   130 	   130 	   047
	001773	   000
   4352	001774				TDENSF:	ERROR	<FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND>			; ADP01
	001774	   077 	   040 	   106 		 .ASCIZ	\? FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND\
	001777	   111 	   114 	   105
	002002	   040 	   047 	   130
	002005	   130 	   130 	   072
	002010	   130 	   130 	   130
	002013	   130 	   130 	   130
	002016	   130 	   130 	   130
	002021	   056 	   130 	   130
	002024	   130 	   073 	   130
	002027	   130 	   130 	   130
	002032	   130 	   130 	   047
	002035	   040 	   116 	   117
	002040	   124 	   040 	   106
	002043	   117 	   125 	   116
	002046	   104 	   000
   4353	002050				TDEDFU:	ERROR	<DEVICE 'XXX:' FULL>
	002050	   077 	   040 	   104 		 .ASCIZ	\? DEVICE 'XXX:' FULL\
	002053	   105 	   126 	   111
	002056	   103 	   105 	   040
	002061	   047 	   130 	   130
	002064	   130 	   072 	   047
	002067	   040 	   106 	   125
	002072	   114 	   114 	   000
   4354	006610					.PSECT
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1110  15-OCT-79 14:14  PAGE 98
$IOERR	-- REPORT I/O ERROR

   4356						.SBTTL	$IOERR	-- REPORT I/O ERROR
   4357					;+
   4358					; DISPLAY AN ERROR MESSAGE ACCORDING TO THE CODES FROM THE LAST
   4359					; I/O OPERATION AND RETURN WITH THE CARRY SET.
   4360					;
   4361					; INPUTS:
   4362					;	$DSW	- DIRECTIVE ERROR CODE OR SUCCESS CODE.
   4363					;	.SYSTA	- I/O OPERATION ERROR CODE.
   4364					;
   4365					; OUTPUT:
   4366					;	THE CARRY IS SET.
   4367					;-
   4368
   4369	006610	004537 	022242'		$IOERR::JSR	R5,$RSAVE
   4370	006614	010002 				MOV	R0,R2		; SAVE FILE NAME.
   4371	006616	012701 	001616'			MOV	#TDEDR,R1	; DIRECTIVE ERROR
   4372	006622	010105 				MOV	R1,R5
   4373	006624	113700 	000000G			MOVB	$DSW,R0
   4374	006630	100421 				BMI	10$		; OR
   4375	006632	113700 	000470'			MOVB	.SYSTA,R0
   4376	006636	012701 	001774'			MOV	#TDENSF,R1	; FILE NOT FOUND
   4377	006642	010105 				MOV	R1,R5
   4378	006644	122700 	000000G			CMPB	#IE.NSF,R0
   4379	006650	001425 				BEQ	30$		; OR
   4380	006652	012701 	002050'			MOV	#TDEDFU,R1	; DEVICE FULL
   4381	006656	010105 				MOV	R1,R5
   4382	006660	122700 	000000G			CMPB	#IE.DFU,R0
   4383	006664	001433 				BEQ	50$		; OR
   4384	006666	012701 	001710'			MOV	#TDEIO,R1	; OPERATION ERROR.
   4385	006672	010105 				MOV	R1,R5
   4386	006674	122725 	000055 		10$:	CMPB	#'-,(R5)+	; FIND POSITION FOR
   4387	006700	001375 				BNE	10$		; ERROR CODE
   4388	006702	005400 				NEG	R0		; AND
   4389	006704					CALL	$TRB2O		; INSERT IN OCTAL.
	006704	004737 	024470'			 JSR	PC,$TRB2O
   4390	006710	122715 	000040 		20$:	CMPB	#' ,(R5)	; ZAP REST OF FIELD.
   4391	006714	001403 				BEQ	30$
   4392	006716	112725 	177777 			MOVB	#-1,(R5)+
   4393	006722	000772 				BR	20$
   4394	006724	122725 	000047 		30$:	CMPB	#'',(R5)+	; NOW FIND
   4395	006730	001375 				BNE	30$		; FILENAME POSITION,
   4396	006732	010200 				MOV	R2,R0		; GET FILENAME BLOCK,				; ADP01
   4397	006734					CALL	$TRB2F		; AND INSERT FILE NAME.				; ADP01
	006734	004737 	023034'			 JSR	PC,$TRB2F
   4398	006740	122725 	000047 		40$:	CMPB	#'',(R5)+	; ZAP REST OF FIELD.
   4399	006744	001410 				BEQ	80$
   4400	006746	111765 	177777 			MOVB	(PC),-1(R5)
   4401	006752	000772 				BR	40$
   4402	006754	122725 	000047 		50$:	CMPB	#'',(R5)+
   4403	006760	001375 				BNE	50$
   4404	006762					CALL	LDEIDV
	006762	004737 	007000'			 JSR	PC,LDEIDV
   4405	006766				80$:	PRINT	R1		; DISPLAY MESSAGE
	006766	010100 				 MOV	R1,R0
	006770	004737 	025442'			 JSR	PC,$TTMSG
   4406	006774	000261 				SEC			; AND RETURN WITH SHAME.
   4407	006776					RETURN
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1110  15-OCT-79 14:14  PAGE 98-1
$IOERR	-- REPORT I/O ERROR

	006776	000207 				 RTS	PC
KLIDE -- PRINT I/O ERROR MESSAG	MACRO M1110  15-OCT-79 14:14  PAGE 99
$IOERR	-- REPORT I/O ERROR

   4409					;+
   4410					; INSERT DEVICE NAME AT AREA POINTED TO BY R5.
   4411					;
   4412					; INPUTS:
   4413					;	R5	- POINTER TO BYTES TO RECIEVE STRING.
   4414					;	R2	- POINTER TO FILE NAME.
   4415					;
   4416					; OUTPUTS:
   4417					;	A 3 CHARACTER STRING IS INSERTED AND R5 IS ADVANCED BY 4 TO
   4418					;	PASS BY THE ":".
   4419					;-
   4420
   4421	007000	116225 	000014 		LDEIDV:	MOVB	14(R2),(R5)+	; INSERT DEVICE NAME
   4422	007004	116225 	000015 			MOVB	15(R2),(R5)+
   4423	007010	116215 	000016 			MOVB	16(R2),(R5)	; DEVICE UNIT
   4424	007014	152725 	000060 			BISB	#'0,(R5)+
   4425	007020	005205 				INC	R5
   4426	007022					RETURN
	007022	000207 				 RTS	PC
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1110  15-OCT-79 14:14  PAGE 100
$IOERR	-- REPORT I/O ERROR

   4428						.TITLE	KLIDL -- LOOKUP AN EXISTING FILE FOR INPUT
   4429	007024					IDENT$	5,0
						.IDENT	/005000/
   4430					;
   4431					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4432					;
   4433					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4434					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4435					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4436					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4437					;
   4438					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4439					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4440					; EQUIPMENT CORPORATION.
   4441					;
   4442					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4443					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4444					;
   4445					; VERSION 05-00
   4446					;
   4447					; ALAN D. PECKHAM  15-APR-77
   4448					;
   4449					; MODIFIED BY:
   4450					;
   4451					; FUNCTION: THIS ROUTINE FINDS THE FILE WITH THE NAME POINTED TO BY R0
   4452					;  AND ACCESSES IT FOR READ.
   4453					;
   4454					; LOCAL MACROS
   4455					;
   4456						.MCALL	GLUN$,QIOW$
   4457					;
   4458					; LOCAL DATA
   4459					;
   4460	000454					.PSECT	DATA,D
   4461	000454				DDLGLN:	GLUN$	SYILUN,.SYIBF
	000454	   005 	   003 			.BYTE	5,3
	000456	000004 				.WORD	SYILUN
	000460	000530'				.WORD	.SYIBF
   4462	000462				DDLFNA:	QIOW$	IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000462	   003 	   014 			.BYTE	3,$$$ARG
	000464	000000G				.WORD	IO.FNA
	000466	000006 				.WORD	SYFLUN
	000470	   001 	   000 			.BYTE	1,
	000472	000470'				.WORD	.SYSTA
	000474	000000 				.WORD
	000476	000000 				.WORD
	000500	000000 				.WORD
	000502	000000 				.WORD
	000504	000000 				.WORD
	000506	000000 				.WORD
	000510	002562'				.WORD	.SYFNB
   4463	000512				DDLACR:	QIOW$	IO.ACR,SYILUN,1,,.SYSTA,,<.SYFID,DDLRAT,,,BIT15>
	000512	   003 	   013 			.BYTE	3,$$$ARG
	000514	000000G				.WORD	IO.ACR
	000516	000004 				.WORD	SYILUN
	000520	   001 	   000 			.BYTE	1,
	000522	000470'				.WORD	.SYSTA
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1110  15-OCT-79 14:14  PAGE 100-1
$IOERR	-- REPORT I/O ERROR

	000524	000000 				.WORD
	000526	002562'				.WORD	.SYFID
	000530	000570'				.WORD	DDLRAT
	000532	000000 				.WORD
	000534	000000 				.WORD
	000536	100000 				.WORD	BIT15
   4464	000540				DDLRNA:	QIOW$	IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
	000540	   003 	   014 			.BYTE	3,$$$ARG
	000542	000000G				.WORD	IO.RNA
	000544	000006 				.WORD	SYFLUN
	000546	   001 	   000 			.BYTE	1,
	000550	000000 				.WORD
	000552	000000 				.WORD
	000554	000000 				.WORD
	000556	000000 				.WORD
	000560	000000 				.WORD
	000562	000000 				.WORD
	000564	000000 				.WORD
	000566	002562'				.WORD	.SYFNB
   4465	000570	   373 	   012 		DDLRAT:	.BYTE	-5,12		; READ FILE NAME
   4466	000572	000504'				.WORD	.SYIFN+00
   4467	000574	   377 	   002 			.BYTE	-1,2		; READ OWNER'S UIC
   4468	000576	000516'				.WORD	.SYIFN+12
   4469	000600	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4470	007024					.PSECT
KLIDL -- LOOKUP AN EXISTING FIL	MACRO M1110  15-OCT-79 14:14  PAGE 101
$LOOKUP	-- LOOK UP AN EXISTING FILE

   4472						.SBTTL	$LOOKUP	-- LOOK UP AN EXISTING FILE
   4473					;+
   4474					; FIND AN EXISTING FILE ON THE SYSTEM DEVICE AND OPEN IT FOR INPUT.
   4475					; IF THE FILE NAME IS IN THE DIRECTORY BUT THERE IS NO FILE, THE FILE
   4476					; NAME IS DELETED.
   4477					;
   4478					; INPUTS:
   4479					;	R0	- POINTER TO FILE NAME.
   4480					;
   4481					; OUTPUTS:
   4482					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   4483					;-
   4484
   4485	007024				$LOOKUP::CALL	$SETFN		; TRANSFER FILE NAME AND
	007024	004737 	006546'			 JSR	PC,$SETFN
   4486	007030					DIR$	#DDLGLN		; GET DEVICE NAME
	007030	012746 	000454'			MOV	#DDLGLN,-(SP)
	007034	104375 				EMT	375
   4487	007036	103455 				BCS	30$		; AND
   4488	007040	013737 	000530'	000520'		MOV	.SYIBF+0,.SYIFN+14 ; PUT IN OUR
   4489	007046	113737 	000532'	000522'		MOVB	.SYIBF+2,.SYIFN+16 ; FILENAME BLOCK.
   4490	007054					DIR$	#DDLFNA		; FIND FILE IN DIRECTORY.
	007054	012746 	000462'			MOV	#DDLFNA,-(SP)
	007060	104375 				EMT	375
   4491	007062	103443 				BCS	30$
   4492	007064	105737 	000470'			TSTB	.SYSTA
   4493	007070	002432 				BLT	20$
   4494	007072					DIR$	#DDLACR		; ACCESS FILE TO READ.
	007072	012746 	000512'			MOV	#DDLACR,-(SP)
	007076	104375 				EMT	375
   4495	007100	103434 				BCS	30$
   4496	007102	105737 	000470'			TSTB	.SYSTA
   4497	007106	002412 				BLT	10$		; FILE CAN'T BE READ
   4498	007110	105237 	000474'			INCB	.SYISW		; INPUT FILE IS NOW OPEN.
   4499	007114	005037 	000526'			CLR	.SYIVB+2	; NO BLOCK OR
   4500	007120	005037 	000524'			CLR	.SYIVB
   4501	007124	005037 	000476'			CLR	.SYIRC		; RECORD READ YET.
   4502	007130					CALLR	$READ		; READ FIRST BLOCK.
	007130	000137 	007736'			 JMP	$READ
   4503	007134	122737 	000000G	000470'	10$:	CMPB	#IE.NSF,.SYSTA	; IF FILENAME EXISTS BUT
   4504	007142	001013 				BNE	30$		; FILE DOESN'T, THEN
   4505	007144					CALL	$SETFN		; RESET FILE NAME BLOCK AND
	007144	004737 	006546'			 JSR	PC,$SETFN
   4506	007150					DIR$	#DDLRNA		; DELETE FILE NAME FROM DIRECTORY.
	007150	012746 	000540'			MOV	#DDLRNA,-(SP)
	007154	104375 				EMT	375
   4507	007156	122737 	000000G	000470'	20$:	CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND,
   4508	007164	001002 				BNE	30$		; LEAVE ERROR REPORT
   4509	007166	000261 				SEC			; TO CALLER.
   4510	007170					RETURN
	007170	000207 				 RTS	PC
   4511
   4512	007172				30$:	CALLR	$IOERR		; LOOKUP FAILED.
	007172	000137 	006610'			 JMP	$IOERR
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1110  15-OCT-79 14:14  PAGE 102
$LOOKUP	-- LOOK UP AN EXISTING FILE

   4514						.TITLE	KLIDN -- ENTER A FILE FOR OUTPUT
   4515	007176					IDENT$	5,0
						.IDENT	/005000/
   4516					;
   4517					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4518					;
   4519					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4520					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4521					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4522					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4523					;
   4524					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4525					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4526					; EQUIPMENT CORPORATION.
   4527					;
   4528					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4529					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4530					;
   4531					; VERSION 05-00
   4532					;
   4533					; ALAN D. PECKHAM  15-APR-77
   4534					;
   4535					; MODIFIED BY:
   4536					;
   4537					; FUNCTION: THIS ROUTINE CREATES A FILE AND ACCESSES IT FOR EXTENDING.
   4538					;  THE FILE IS ALLOCATED 1 BLOCK INITIALLY.
   4539					;
   4540					; LOCAL MACROS
   4541					;
   4542						.MCALL	GLUN$,QIOW$
   4543					;
   4544					; LOCAL DATA
   4545					;
   4546	000602					.PSECT	DATA,D
   4547	000602				DDNGLN:	GLUN$	SYOLUN,.SYOBF
	000602	   005 	   003 			.BYTE	5,3
	000604	000005 				.WORD	SYOLUN
	000606	001562'				.WORD	.SYOBF
   4548	000610				DDNCRE:	QIOW$	IO.CRE,SYFLUN,1,,.SYSTA,,<.SYFID,,BIT15,1>
	000610	   003 	   012 			.BYTE	3,$$$ARG
	000612	000000G				.WORD	IO.CRE
	000614	000006 				.WORD	SYFLUN
	000616	   001 	   000 			.BYTE	1,
	000620	000470'				.WORD	.SYSTA
	000622	000000 				.WORD
	000624	002562'				.WORD	.SYFID
	000626	000000 				.WORD
	000630	100000 				.WORD	BIT15
	000632	000001 				.WORD	1
   4549	000634				DDNENA:	QIOW$	IO.ENA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
	000634	   003 	   014 			.BYTE	3,$$$ARG
	000636	000000G				.WORD	IO.ENA
	000640	000006 				.WORD	SYFLUN
	000642	   001 	   000 			.BYTE	1,
	000644	000470'				.WORD	.SYSTA
	000646	000000 				.WORD
	000650	000000 				.WORD
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1110  15-OCT-79 14:14  PAGE 102-1
$LOOKUP	-- LOOK UP AN EXISTING FILE

	000652	000000 				.WORD
	000654	000000 				.WORD
	000656	000000 				.WORD
	000660	000000 				.WORD
	000662	002562'				.WORD	.SYFNB
   4550	000664				DDNACE:	QIOW$	IO.ACE,SYOLUN,1,,.SYSTA,,<.SYFID,DDNRAT,,,BIT15>
	000664	   003 	   013 			.BYTE	3,$$$ARG
	000666	000000G				.WORD	IO.ACE
	000670	000005 				.WORD	SYOLUN
	000672	   001 	   000 			.BYTE	1,
	000674	000470'				.WORD	.SYSTA
	000676	000000 				.WORD
	000700	002562'				.WORD	.SYFID
	000702	000726'				.WORD	DDNRAT
	000704	000000 				.WORD
	000706	000000 				.WORD
	000710	100000 				.WORD	BIT15
   4551	000712				DDNDEL:	QIOW$	IO.DEL,SYOLUN,1
	000712	   003 	   006 			.BYTE	3,$$$ARG
	000714	000000G				.WORD	IO.DEL
	000716	000005 				.WORD	SYOLUN
	000720	   001 	   000 			.BYTE	1,
	000722	000000 				.WORD
	000724	000000 				.WORD
   4552	000726	   373 	   012 		DDNRAT:	.BYTE	-5,12		; READ FILE NAME
   4553	000730	001536'				.WORD	.SYOFN+00
   4554	000732	   377 	   002 			.BYTE	-1,2		; AND OWNER'S UIC
   4555	000734	001550'				.WORD	.SYOFN+12
   4556	000736	   000 	   000 			.BYTE	0,0		; END OF CONTROL LIST.
   4557	007176					.PSECT
KLIDN -- ENTER A FILE FOR OUTPU	MACRO M1110  15-OCT-79 14:14  PAGE 103
$ENTER	-- ENTER A NEW FILE

   4559						.SBTTL	$ENTER	-- ENTER A NEW FILE
   4560					;+
   4561					; ENTER A NEW FILE ONTO THE SYSTEM DEVICE AND OPEN IT FOR OUTPUT.
   4562					;
   4563					; INPUTS:
   4564					;	R0	- POINTER TO FILE NAME.
   4565					;
   4566					; OUTPUTS:
   4567					;	CARRY IS SET IF FILE WAS NOT CREATED AND MESSAGE IS DISPLAYED.
   4568					;	R0 IS DESTROYED IF ERROR OCCURS.
   4569					;-
   4570
   4571	007176				$ENTER::CALL	$SETFN		; TRANSFER FILE NAME.
	007176	004737 	006546'			 JSR	PC,$SETFN
   4572	007202					DIR$	#DDNGLN		; GET DEVICE NAME
	007202	012746 	000602'			MOV	#DDNGLN,-(SP)
	007206	104375 				EMT	375
   4573	007210	103464 				BCS	20$		; AND
   4574	007212	013737 	001562'	001552'		MOV	.SYOBF+0,.SYOFN+14 ; INSERT IT INTO
   4575	007220	113737 	001564'	001554'		MOVB	.SYOBF+2,.SYOFN+16 ; OUR OWN FILENAME BLOCK.
   4576	007226					DIR$	#DDNCRE		; CREATE NEW FILE AND ALLOCATE ONE BLOCK.
	007226	012746 	000610'			MOV	#DDNCRE,-(SP)
	007232	104375 				EMT	375
   4577	007234	103452 				BCS	20$		; IF SUCCESSFUL
   4578	007236	105737 	000470'			TSTB	.SYSTA
   4579	007242	002447 				BLT	20$
   4580	007244					DIR$	#DDNENA		; ENTER NAME IN DIRECTORY.
	007244	012746 	000634'			MOV	#DDNENA,-(SP)
	007250	104375 				EMT	375
   4581	007252	103434 				BCS	10$		; IF DIRECTORY OPERATION FAILED
   4582	007254	105737 	000470'			TSTB	.SYSTA		; WE MUST
   4583	007260	002431 				BLT	10$		; RELEASE THE FILE.
   4584	007262					DIR$	#DDNACE		; ACCESS THE FILE FOR EXTEND.
	007262	012746 	000664'			MOV	#DDNACE,-(SP)
	007266	104375 				EMT	375
   4585	007270	103434 				BCS	20$
   4586	007272	105737 	000470'			TSTB	.SYSTA
   4587	007276	002431 				BLT	20$
   4588	007300	105237 	000475'			INCB	.SYOSW		; OUTPUT FILE IS NOW OPEN.
   4589	007304	012737 	000001 	001560'		MOV	#1,.SYOVB+2	; WORKING ON FIRST BLOCK.
   4590	007312	005037 	001556'			CLR	.SYOVB
   4591	007316	012737 	001562'	001532'		MOV	#.SYOBF,.SYOBA	; INITIALIZE BLOCK
   4592	007324	012737 	001000 	001534'		MOV	#S.YOL,.SYOBC
   4593	007332	005037 	001530'			CLR	.SYORC		; AND RECORD COUNTS,
   4594	007336	005037 	002616'			CLR	.SYATT+2	; PLUS LARGEST RECORD SIZE.
   4595	007342					RETURN
	007342	000207 				 RTS	PC
   4596
   4597	007344				10$:	PUSH	$DSW
	007344	013746 	000000G			 MOV	$DSW,-(SP)
   4598	007350					DIR$	#DDNDEL		; DELETE FILE (NOT IN DIRECTORY).
	007350	012746 	000712'			MOV	#DDNDEL,-(SP)
	007354	104375 				EMT	375
   4599	007356					POP	$DSW
	007356	012637 	000000G			 MOV	(SP)+,$DSW
   4600	007362				20$:	CALLR	$IOERR		; ENTER FAILED.
	007362	000137 	006610'			 JMP	$IOERR
KLIDP -- FILE PURGE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 104
$ENTER	-- ENTER A NEW FILE

   4602						.TITLE	KLIDP -- FILE PURGE ROUTINE
   4603	007366					IDENT$	5,0
						.IDENT	/005000/
   4604					;
   4605					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4606					;
   4607					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4608					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4609					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4610					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4611					;
   4612					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4613					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4614					; EQUIPMENT CORPORATION.
   4615					;
   4616					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4617					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4618					;
   4619					; VERSION 05-00
   4620					;
   4621					; ALAN D. PECKHAM  15-APR-77
   4622					;
   4623					; MODIFIED BY:
   4624					;
   4625					; FUNCTION: THIS ROUTINE PURGES THE FILE CURRENTLY OPEN. THE
   4626					;  OUTPUT FILE IS MARKED FOR DELETION AND ITS FILE NAME
   4627					;  IS REMOVED FROM THE DIRECTORY.
   4628					;
   4629					; LOCAL MACROS
   4630					;
   4631						.MCALL	QIOW$
   4632					;
   4633					; LOCAL DATA
   4634					;
   4635	000740					.PSECT	DATA,D
   4636	000740				DDPDAI:	QIOW$	IO.DAC,SYILUN,1	; DE-ACCESS INPUT FILE.
	000740	   003 	   006 			.BYTE	3,$$$ARG
	000742	000000G				.WORD	IO.DAC
	000744	000004 				.WORD	SYILUN
	000746	   001 	   000 			.BYTE	1,
	000750	000000 				.WORD
	000752	000000 				.WORD
   4637	000754				DDPDEL:	QIOW$	IO.DEL,SYOLUN,1	; MARK OUTPUT FILE FOR DELETE.
	000754	   003 	   006 			.BYTE	3,$$$ARG
	000756	000000G				.WORD	IO.DEL
	000760	000005 				.WORD	SYOLUN
	000762	   001 	   000 			.BYTE	1,
	000764	000000 				.WORD
	000766	000000 				.WORD
   4638	000770				DDPDAO:	QIOW$	IO.DAC,SYOLUN,1	; DE-ACCESS OUTPUT FILE.
	000770	   003 	   006 			.BYTE	3,$$$ARG
	000772	000000G				.WORD	IO.DAC
	000774	000005 				.WORD	SYOLUN
	000776	   001 	   000 			.BYTE	1,
	001000	000000 				.WORD
	001002	000000 				.WORD
   4639	001004				DDPRNA:	QIOW$	IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
KLIDP -- FILE PURGE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 104-1
$ENTER	-- ENTER A NEW FILE

	001004	   003 	   014 			.BYTE	3,$$$ARG
	001006	000000G				.WORD	IO.RNA
	001010	000006 				.WORD	SYFLUN
	001012	   001 	   000 			.BYTE	1,
	001014	000000 				.WORD
	001016	000000 				.WORD
	001020	000000 				.WORD
	001022	000000 				.WORD
	001024	000000 				.WORD
	001026	000000 				.WORD
	001030	000000 				.WORD
	001032	002562'				.WORD	.SYFNB
   4640									; REMOVE OUTPUT FILENAME FROM DIRECTORY.
   4641	007366					.PSECT
KLIDP -- FILE PURGE ROUTINE	MACRO M1110  15-OCT-79 14:14  PAGE 105
$PURGE	-- PURGE FILES CURRENTLY OPEN

   4643						.SBTTL	$PURGE	-- PURGE FILES CURRENTLY OPEN
   4644					;+
   4645					; CLOSE THE INPUT FILE AND DELETE THE CURRENT OUTPUT FILE.
   4646					; ALL ERRORS ARE IGNORED AND THE LUNS ARE ASSUMED FREED.
   4647					;
   4648					; NO INPUTS OR OUTPUTS
   4649					;-
   4650
   4651	007366	105737 	000474'		$PURGE::TSTB	.SYISW		; IF INPUT FILE NOT OPEN
   4652	007372	001405 				BEQ	10$		; LEAVE IT ALONE.
   4653	007374					DIR$	#DDPDAI		; DE-ACCESS THE INPUT FILE.
	007374	012746 	000740'			MOV	#DDPDAI,-(SP)
	007400	104375 				EMT	375
   4654	007402	105037 	000474'			CLRB	.SYISW		; INPUT FILE NOW CLOSED.
   4655	007406	105737 	000475'		10$:	TSTB	.SYOSW		; IF OUTPUT FILE NO OPEN
   4656	007412	001421 				BEQ	20$		; LEAVE IT ALONE.
   4657	007414					DIR$	#DDPDEL		; MARK FOR DELETION AND
	007414	012746 	000754'			MOV	#DDPDEL,-(SP)
	007420	104375 				EMT	375
   4658	007422					DIR$	#DDPDAO		; DE-ACCESS THE OUTPUT FILE.
	007422	012746 	000770'			MOV	#DDPDAO,-(SP)
	007426	104375 				EMT	375
   4659	007430					PUSH	R0
	007430	010046 				 MOV	R0,-(SP)
   4660	007432	012700 	001536'			MOV	#.SYOFN,R0	; GET THE FILE NAME
   4661	007436					CALL	$SETFN		; AND
	007436	004737 	006546'			 JSR	PC,$SETFN
   4662	007442					POP	R0
	007442	012600 				 MOV	(SP)+,R0
   4663	007444					DIR$	#DDPRNA		; REMOVE FROM THE DIRECTORY.
	007444	012746 	001004'			MOV	#DDPRNA,-(SP)
	007450	104375 				EMT	375
   4664	007452	105037 	000475'			CLRB	.SYOSW		; OUTPUT FILE NOW CLOSED.
   4665	007456				20$:	RETURN
	007456	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 106
$PURGE	-- PURGE FILES CURRENTLY OPEN

   4667						.TITLE	KLIDR -- RECORD READ ROUTINES
   4668	007460					IDENT$	5,0
						.IDENT	/005000/
   4669					;
   4670					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4671					;
   4672					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4673					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4674					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4675					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4676					;
   4677					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4678					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4679					; EQUIPMENT CORPORATION.
   4680					;
   4681					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4682					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4683					;
   4684					; VERSION 05-00
   4685					;
   4686					; ALAN D. PECKHAM  15-APR-77
   4687					;
   4688					; MODIFIED BY:
   4689					;
   4690					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   4691					;  READING OF RSX-BINARY RECORDS FROM THE CURRENTLY
   4692					;  OPEN FILE.
   4693					;
   4694					; LOCAL MACROS
   4695					;
   4696						.MCALL	QIOW$S
   4697					;
   4698					; LOCAL DATA
   4699					;
   4700	002075					.PSECT	TEXT,D
   4701	002075				TDRRDE:
   4702	002075					ERROR	<READ ERROR>
	002075	   077 	   040 	   122 		 .ASCIZ	\? READ ERROR\
	002100	   105 	   101 	   104
	002103	   040 	   105 	   122
	002106	   122 	   117 	   122
	002111	   000
   4703	002112				TDRRLE:
   4704	002112					ERROR	<INPUT RECORD LENGTH ERROR>
	002112	   077 	   040 	   111 		 .ASCIZ	\? INPUT RECORD LENGTH ERROR\
	002115	   116 	   120 	   125
	002120	   124 	   040 	   122
	002123	   105 	   103 	   117
	002126	   122 	   104 	   040
	002131	   114 	   105 	   116
	002134	   107 	   124 	   110
	002137	   040 	   105 	   122
	002142	   122 	   117 	   122
	002145	   000
   4705	007460					.PSECT
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 107
$READC	-- START READING A RECORD

   4707						.SBTTL	$READC	-- START READING A RECORD
   4708					;+
   4709					; READ THE RECORD TYPE FOR THE NEXT RECORD. IF THE PREVIOUS RECORD
   4710					; HAS NOT BEEN TOTALLY READ IN, SIGNAL ERROR. SAVE THE BYTE COUNT
   4711					; TO KEEP TRACK OF HOW MANY BYTES OF THE RECORD HAVE BEEN READ.
   4712					;
   4713					; NO INPUTS:
   4714					;
   4715					; OUTPUTS:
   4716					;	R0	- TYPE CODE OF NEW RECORD.
   4717					;	.SYIRC	- COUNT OF BYTES REMAINING IN RECORD.
   4718					;	CARRY IS SET IF LENGTH OR READ ERROR AND MESSAGE IS DISPLAYED.
   4719					;-
   4720
   4721	007460				$READC::
   4722	007460	005737 	000476'			TST	.SYIRC		; IF LAST RECORD IS NOT FINISHED,
   4723	007464	001116 				BNE	LDRER		; THEN ERROR.
   4724	007466				10$:
   4725	007466	012737 	000003 	000476'		MOV	#3,.SYIRC	; SET UP DUMMY COUNT AND
   4726	007474					CALL	$READW		; READ IN BYTE COUNT FOR NEXT RECORD.
	007474	004737 	007566'			 JSR	PC,$READW
   4727	007500	103405 				BCS	20$
   4728	007502	010037 	000476'			MOV	R0,.SYIRC	; STORE BYTE COUNT AND
   4729	007506	001767 				BEQ	10$		; (NULL RECORD)
   4730	007510					CALLR	$READW		; READ IN NEXT WORD.
	007510	000137 	007566'			 JMP	$READW
   4731						;
   4732	007514				20$:
   4733	007514					RETURN
	007514	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 108
$READS	-- SKIP THE CURRENT RECORD

   4735						.SBTTL	$READS	-- SKIP THE CURRENT RECORD
   4736					;+
   4737					; SKIP OVER THE REST OF THE CURRENT AND POSITION TO THE NEXT RECORD.
   4738					; IF NO RECORD IS BEING PROCESSED (RECORD COUNT=0), NO ACTION IS TAKEN.
   4739					;
   4740					; NO INPUTS
   4741					;
   4742					; OUTPUTS:
   4743					;	CARRY IS SET IF ERROR DURING READ AND MESSAGE IS DISPLAYED.
   4744					;-
   4745
   4746	007516				$READS::
   4747	007516	023737 	000476'	000502'		CMP	.SYIRC,.SYIBC	; IF RECORD IS WITHIN BLOCK
   4748	007524	003407 				BLE	10$		; THEN GO PAST IT,
   4749	007526	163737 	000502'	000476'		SUB	.SYIBC,.SYIRC	; OTHERWISE PASS PART OF THE RECORD,
   4750	007534					CALL	$READ		; GET NEXT BLOCK,
	007534	004737 	007736'			 JSR	PC,$READ
   4751	007540	103366 				BCC	$READS		; AND SEE IF RECORD IS DEPLETED.
   4752	007542					RETURN
	007542	000207 				 RTS	PC
   4753	007544				10$:
   4754	007544	063737 	000476'	000500'		ADD	.SYIRC,.SYIBA	; PUSH POINTERS PAST RECORD.
   4755	007552	163737 	000476'	000502'		SUB	.SYIRC,.SYIBC
   4756	007560	005037 	000476'			CLR	.SYIRC		; NO MORE RECORD !
   4757	007564					RETURN
	007564	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 109
$READW	-- READ A WORD

   4759						.SBTTL	$READW	-- READ A WORD
   4760					;+
   4761					; READ THE NEXT WORD FROM THE CURRENT RECORD. IF CURRENTLY ON
   4762					; AN ODD BOUNDARY, SKIP OVER THE CURRENT BYTE TO MAKE IT EVEN.
   4763					;
   4764					; NO INPUTS
   4765					;
   4766					; OUTPUTS:
   4767					;	R0	- THE WORD READ.
   4768					;	CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND MESSAGE IS DISPLAYED.
   4769					;-
   4770
   4771	007566				$READW::
   4772	007566	032737 	000001 	000500'		BIT	#1,.SYIBA	; MAKE SURE WE ARE
   4773	007574	001406 				BEQ	10$		; ON A WORD BOUNDARY.
   4774	007576	005337 	000476'			DEC	.SYIRC
   4775	007602	005237 	000500'			INC	.SYIBA
   4776	007606	005337 	000502'			DEC	.SYIBC
   4777	007612				10$:
   4778	007612	162737 	000002 	000476'		SUB	#2,.SYIRC	; UPDATE RECORD COUNT AND
   4779	007620	002440 				BLT	LDRER		; IF IT BOTTOMS, ERROR.
   4780	007622	005737 	000502'			TST	.SYIBC		; IF WE ARE AT THE END
   4781	007626	003003 				BGT	20$		; OF THE BUFFER
   4782	007630					CALL	$READ		; THEN READ ANOTHER ONE.
	007630	004737 	007736'			 JSR	PC,$READ
   4783	007634	103411 				BCS	30$
   4784	007636				20$:
   4785	007636	017700 	000500'			MOV	@.SYIBA,R0	; PICK UP WORD
   4786	007642	062737 	000002 	000500'		ADD	#2,.SYIBA	; BUMP ADDRESS
   4787	007650	162737 	000002 	000502'		SUB	#2,.SYIBC	; AND BYTE COUNT.
   4788	007656	000241 				CLC
   4789	007660				30$:
   4790	007660					RETURN
	007660	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 110
$READB	-- READ A BYTE

   4792						.SBTTL	$READB	-- READ A BYTE
   4793					;+
   4794					; READ THE NEXT BYTE FROM THE CURRENT RECORD.
   4795					;
   4796					; NO INPUTS
   4797					;
   4798					; OUTPUTS:
   4799					;	R0	- THE BYTE READ.
   4800					;	CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND A MESSAGE IS DISPLAYED.
   4801					;-
   4802
   4803	007662				$READB::
   4804	007662	005337 	000476'			DEC	.SYIRC		; UPDATE RECORD COUNT AND
   4805	007666	002415 				BLT	LDRER		; IF IT BOTTOMS, ERROR.
   4806	007670	005737 	000502'			TST	.SYIBC		; IF WE ARE AT THE END
   4807	007674	003003 				BGT	10$		; OF THE BUFFER
   4808	007676					CALL	$READ		; THEN READ ANOTHER ONE.
	007676	004737 	007736'			 JSR	PC,$READ
   4809	007702	103406 				BCS	20$
   4810	007704				10$:
   4811	007704	117700 	000500'			MOVB	@.SYIBA,R0	; PICK UP BYTE
   4812	007710	005237 	000500'			INC	.SYIBA		; BUMP ADDRESS
   4813	007714	005337 	000502'			DEC	.SYIBC		; AND BYTE COUNT.
   4814	007720				20$:
   4815	007720					RETURN
	007720	000207 				 RTS	PC
   4816
   4817	007722				LDRER:
   4818	007722					PRINT	#TDRRLE		; RECORD OVERRUN OR UNDERRUN.
	007722	012700 	002112'			 MOV	#TDRRLE,R0
	007726	004737 	025442'			 JSR	PC,$TTMSG
   4819	007732	000261 				SEC
   4820	007734					RETURN
	007734	000207 				 RTS	PC
KLIDR -- RECORD READ ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 111
$READ	-- READ NEXT VIRTUAL BLOCK

   4822						.SBTTL	$READ	-- READ NEXT VIRTUAL BLOCK
   4823					;+
   4824					; READ THE NEXT BLOCK FROM THE SYSTEM DEVICE AND RESET BUFFER PARAMETERS.
   4825					;
   4826					; NO INPUTS
   4827					;
   4828					; OUTPUTS:
   4829					;	.SYIBA	- POINTS TO THE BEGINING OF THE BUFFER READ.
   4830					;	.SYIBC	- COUNT OF BYTES READ.
   4831					;	CARRY IS SET ON READ ERROR AND MESSAGE IS DISPLAYED.
   4832					;-
   4833
   4834	007736				$READ::
   4835	007736	062737 	000001 	000526'		ADD	#1,.SYIVB+2	; GET NEXT BLOCK.
   4836	007744	005537 	000524'			ADC	.SYIVB
   4837
   4838					;	READ VIRTUAL BLOCK
   4839
   4840	007750					QIOW$S	#IO.RVB,#SYILUN,#1,,#.SYSTA,,<#.SYIBF,#S.YIL,,.SYIVB,.SYIVB+2>
	007750	013746 	000526'			MOV	.SYIVB+2,-(SP)
	007754	013746 	000524'			MOV	.SYIVB,-(SP)
	007760	005046 				CLR	-(SP)
	007762	012746 	001000 			MOV	#S.YIL,-(SP)
	007766	012746 	000530'			MOV	#.SYIBF,-(SP)
	007772	005046 				CLR	-(SP)
	007774	012746 	000470'			MOV	#.SYSTA,-(SP)
	010000	005046 				CLR	-(SP)
	010002	112716 	000001 			MOVB	#1,(SP)
	010006	012746 	000004 			MOV	#SYILUN,-(SP)
	010012	012746 	000000G			MOV	#IO.RVB,-(SP)
	010016	012746 				MOV	(PC)+,-(SP)
	010020	   003 	   013 			.BYTE	3,$$$T1
	010022	104375 				EMT	375
   4841	010024	103412 				BCS	10$
   4842	010026	105737 	000470'			TSTB	.SYSTA
   4843	010032	002407 				BLT	10$		; READ FAILED.
   4844	010034	012737 	000530'	000500'		MOV	#.SYIBF,.SYIBA	; SAVE BUFFER ADR
   4845	010042	013737 	000472'	000502'		MOV	.SYSTA+2,.SYIBC	; AND BYTE COUNT
   4846	010050					RETURN
	010050	000207 				 RTS	PC
   4847
   4848	010052				10$:
   4849	010052					PRINT	#TDRRDE		; PRINT ERROR MESSAGE.
	010052	012700 	002075'			 MOV	#TDRRDE,R0
	010056	004737 	025442'			 JSR	PC,$TTMSG
   4850	010062	000261 				SEC
   4851	010064					RETURN
	010064	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 112
$READ	-- READ NEXT VIRTUAL BLOCK

   4853						.TITLE	KLIDW -- RECORD WRITE ROUTINES
   4854	010066					IDENT$	5,0
						.IDENT	/005000/
   4855					;
   4856					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   4857					;
   4858					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   4859					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   4860					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   4861					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   4862					;
   4863					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   4864					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   4865					; EQUIPMENT CORPORATION.
   4866					;
   4867					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   4868					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   4869					;
   4870					; VERSION 05-00
   4871					;
   4872					; ALAN D. PECKHAM  15-APR-77
   4873					;
   4874					; MODIFIED BY:
   4875					;
   4876					; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
   4877					;  WRITING OF RSX-BINARY RECORDS TO THE CURRENTLY
   4878					;  OPEN FILE.
   4879					;
   4880					; LOCAL MACROS
   4881					;
   4882						.MCALL	QIOW$S
   4883					;
   4884					; LOCAL DATA
   4885					;
   4886	002146					.PSECT	TEXT,D
   4887	002146				TDWWRE:
   4888	002146					ERROR	<WRITE ERROR>
	002146	   077 	   040 	   127 		 .ASCIZ	\? WRITE ERROR\
	002151	   122 	   111 	   124
	002154	   105 	   040 	   105
	002157	   122 	   122 	   117
	002162	   122 	   000
   4889	002164				TDWRLE:
   4890	002164					ERROR	<OUTPUT RECORD LENGTH ERROR>
	002164	   077 	   040 	   117 		 .ASCIZ	\? OUTPUT RECORD LENGTH ERROR\
	002167	   125 	   124 	   120
	002172	   125 	   124 	   040
	002175	   122 	   105 	   103
	002200	   117 	   122 	   104
	002203	   040 	   114 	   105
	002206	   116 	   107 	   124
	002211	   110 	   040 	   105
	002214	   122 	   122 	   117
	002217	   122 	   000
   4891	010066					.PSECT
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 113
$WRITC	-- START WRITING A RECORD

   4893						.SBTTL	$WRITC	-- START WRITING A RECORD
   4894					;+
   4895					; START WRITING A RECORD OF GIVEN LENGTH. IF PREVIOUS RECORD UNFINISHED
   4896					; THE SIGNAL ERROR.
   4897					;
   4898					; INPUTS:
   4899					;	R0	- LENGTH OF RECORD TO BE WRITTEN.
   4900					;
   4901					; OUTPUTS:
   4902					;	CARRY SET IF LAST RECORD UNFINISHED OR WRITE ERROR AND MESSAGE
   4903					;	IS DISPLAYED.
   4904					;-
   4905
   4906	010066				$WRITC::
   4907	010066	005737 	001530'			TST	.SYORC		; IF LAST RECORD NOT FINISHED
   4908	010072	001034 				BNE	LDWER		; SIGNAL ERROR.
   4909	010074	020037 	002616'			CMP	R0,.SYATT+2	; CHECK IF LARGEST RECORD WRITTEN
   4910	010100	101402 				BLOS	10$		; AND
   4911	010102	010037 	002616'			MOV	R0,.SYATT+2	; RECORD IF LARGER.
   4912	010106				10$:
   4913	010106	012737 	000003 	001530'		MOV	#3,.SYORC	; SET UP DUMMY COUNT,
   4914	010114					CALL	$WRITW		; WRITE IN BYTE COUNT FOR NEXT RECORD,
	010114	004737 	010200'			 JSR	PC,$WRITW
   4915	010120	103402 				BCS	20$
   4916	010122	010037 	001530'			MOV	R0,.SYORC	; AND SAVE FOR RECORD COUNT.
   4917	010126				20$:
   4918	010126					RETURN
	010126	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 114
$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK

   4920						.SBTTL	$WRITS	-- ZERO REMAINDER OF CURRENT BLOCK
   4921					;+
   4922					; CLEAR OUT THE REST OF THE CURRENT BLOCK AND WRITE IT. THIS ROUTINE IS
   4923					; USED TO WRITE OUT THE LAST RECORD INTO THE OUTPUT FILE.
   4924					;
   4925					; NO INPUTS
   4926					;
   4927					; OUTPUTS:
   4928					;	CARRY IS SET IF LAST RECORD IS UNFINISHED OR WRITE ERROR AND
   4929					;	MESSAGE IS DISPLAYED.
   4930					;-
   4931
   4932	010130				$WRITS::
   4933	010130	005737 	001530'			TST	.SYORC		; IF RECORD NOT FINISHED
   4934	010134	001013 				BNE	LDWER		; THEN THERE IS PROBLEM.
   4935	010136				10$:
   4936	010136	022737 	000777 	001534'		CMP	#S.YOL-1,.SYOBC	; ARE WE AT NEW PAGE ?
   4937	010144	003406 				BLE	20$		; YES, QUIT (CARRY IS CLEAR)
   4938	010146	005237 	001530'			INC	.SYORC		; SET UP DUMMY COUNT
   4939	010152	005000 				CLR	R0		; AND WRITE A ZERO
   4940	010154					CALL	$WRITB
	010154	004737 	010274'			 JSR	PC,$WRITB
   4941	010160	103366 				BCC	10$		; AND CHECK AGAIN.
   4942	010162				20$:
   4943	010162					RETURN
	010162	000207 				 RTS	PC
   4944
   4945	010164				LDWER:
   4946	010164					PRINT	#TDWRLE		; RECORD OVERRUN OR UNDERRUN.
	010164	012700 	002164'			 MOV	#TDWRLE,R0
	010170	004737 	025442'			 JSR	PC,$TTMSG
   4947	010174	000261 				SEC
   4948	010176					RETURN
	010176	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 115
$WRITW	-- WRITE A WORD

   4950						.SBTTL	$WRITW	-- WRITE A WORD
   4951					;+
   4952					; WRITE THE NEXT WORD INTO THE OUTPUT RECORD. IF ON AN ODD BOUNDRY
   4953					; THE SKIP A BYTE TO WRITE THE WORD ON AN EVEN WORD. SIGNAL ERROR
   4954					; IF RECORD OVERFLOW.
   4955					;
   4956					; INPUTS:
   4957					;	R0	- THE WORD TO WRITE.
   4958					;
   4959					; OUTPUTS:
   4960					;	CARRY IS SET IF WRITE ERROR AND MESSAGE IS DISPLAYED.
   4961					;-
   4962
   4963	010200				$WRITW::
   4964	010200	032737 	000001 	001532'		BIT	#1,.SYOBA	; MAKE SURE WE ARE
   4965	010206	001406 				BEQ	10$		; ON A WORD BOUNDRY.
   4966	010210	005337 	001530'			DEC	.SYORC
   4967	010214	005237 	001532'			INC	.SYOBA
   4968	010220	005337 	001534'			DEC	.SYOBC
   4969	010224				10$:
   4970	010224	162737 	000002 	001530'		SUB	#2,.SYORC	; UPDATE RECORD COUNT AND
   4971	010232	002754 				BLT	LDWER		; IF IT BOTTOMS, ERROR.
   4972	010234	005737 	001534'			TST	.SYOBC		; IF WE ARE AT THE END
   4973	010240	003003 				BGT	20$		; OF THE BUFFER
   4974	010242					CALL	$WRITE		; THEN WRITE IT.
	010242	004737 	010334'			 JSR	PC,$WRITE
   4975	010246	103411 				BCS	30$
   4976	010250				20$:
   4977	010250	010077 	001532'			MOV	R0,@.SYOBA	; STICK IN WORD
   4978	010254	062737 	000002 	001532'		ADD	#2,.SYOBA	; BUMP ADDRESS
   4979	010262	162737 	000002 	001534'		SUB	#2,.SYOBC	; AND BYTE COUNT.
   4980	010270	000241 				CLC
   4981	010272				30$:
   4982	010272					RETURN
	010272	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 116
$WRITB	-- WRITE A BYTE

   4984						.SBTTL	$WRITB	-- WRITE A BYTE
   4985					;+
   4986					; WRITE A BYTE INTO THE CURRENT RECORD. SIGNAL ERROR IF RECORD OVERFLOW.
   4987					;
   4988					; INPUTS:
   4989					;	R0	- BYTE TO WRITE.
   4990					;
   4991					; OUTPUTS:
   4992					;	CARRY IS SET IF RECORD OVERFLOW OR WRITE ERROR AND MESSAGE
   4993					;	IS DISPLAYED.
   4994					;-
   4995
   4996	010274				$WRITB::
   4997	010274	005337 	001530'			DEC	.SYORC		; UPDATE RECORD COUNT AND
   4998	010300	002731 				BLT	LDWER		; IF IT BOTTOMS, ERROR.
   4999	010302	005737 	001534'			TST	.SYOBC		; IF WE ARE AT THE END
   5000	010306	003003 				BGT	10$		; OF THE BUFFER
   5001	010310					CALL	$WRITE		; THEN WRITE IT.
	010310	004737 	010334'			 JSR	PC,$WRITE
   5002	010314	103406 				BCS	20$
   5003	010316				10$:
   5004	010316	110077 	001532'			MOVB	R0,@.SYOBA	; STICK IN BYTE
   5005	010322	005237 	001532'			INC	.SYOBA		; BUMP ADDRESS
   5006	010326	005337 	001534'			DEC	.SYOBC		; AND BYTE COUNT.
   5007	010332				20$:
   5008	010332					RETURN
	010332	000207 				 RTS	PC
KLIDW -- RECORD WRITE ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 117
$WRITE	-- WRITE NEXT VIRTUAL BLOCK

   5010						.SBTTL	$WRITE	-- WRITE NEXT VIRTUAL BLOCK
   5011					;+
   5012					; WRITE THE NEXT BLOCK TO THE OUTPUT FILE. IF END-OF-FILE, THEN
   5013					; EXTEND THE FILE AND TRY TO WRITE THE BLOCK AGAIN.
   5014					;
   5015					; INPUTS:
   5016					;	.SYOBF	- BLOCK OF "S.YOL" BYTES TO WRITE.
   5017					;
   5018					; OUTPUTS:
   5019					;	.SYOBA	- ADDRESS OF NEW BUFFER TO FILL
   5020					;	.SYOBC	- SIZE OF BUFFER IN BYTES.
   5021					;	CARRY IS SET ON WRITE OR EXTEND ERROR AND MESSAGE IS DISPLAYED.
   5022					;-
   5023
   5024	010334				$WRITE::
   5025	010334					QIOW$S	#IO.WVB,#SYOLUN,#1,,#.SYSTA,,<#.SYOBF,#S.YOL,,.SYOVB,.SYOVB+2>
	010334	013746 	001560'			MOV	.SYOVB+2,-(SP)
	010340	013746 	001556'			MOV	.SYOVB,-(SP)
	010344	005046 				CLR	-(SP)
	010346	012746 	001000 			MOV	#S.YOL,-(SP)
	010352	012746 	001562'			MOV	#.SYOBF,-(SP)
	010356	005046 				CLR	-(SP)
	010360	012746 	000470'			MOV	#.SYSTA,-(SP)
	010364	005046 				CLR	-(SP)
	010366	112716 	000001 			MOVB	#1,(SP)
	010372	012746 	000005 			MOV	#SYOLUN,-(SP)
	010376	012746 	000000G			MOV	#IO.WVB,-(SP)
	010402	012746 				MOV	(PC)+,-(SP)
	010404	   003 	   013 			.BYTE	3,$$$T1
	010406	104375 				EMT	375
   5026	010410	103427 				BCS	20$
   5027	010412	105737 	000470'			TSTB	.SYSTA
   5028	010416	002414 				BLT	10$		; WRITE FAILED.
   5029	010420	062737 	000001 	001560'		ADD	#1,.SYOVB+2	; SET UP FOR NEXT BLOCK.
   5030	010426	005537 	001556'			ADC	.SYOVB		; (CARRY SHOULD BE CLEAR)
   5031	010432	012737 	001562'	001532'		MOV	#.SYOBF,.SYOBA	; RESET BUFFER ADDRESS
   5032	010440	012737 	001000 	001534'		MOV	#S.YOL,.SYOBC	; AND BYTE COUNT.
   5033	010446					RETURN
	010446	000207 				 RTS	PC
   5034	010450				10$:
   5035	010450	122737 	000000G	000470'		CMPB	#IE.EOF,.SYSTA	; IS THE FILE TOO SMALL ?
   5036	010456	001004 				BNE	20$		; NO, THIS IS TRULY AN ERROR.
   5037	010460					CALL	$EXTEND		; OTHERWISE EXTEND THE FILE
	010460	004737 	010504'			 JSR	PC,$EXTEND
   5038	010464	103323 				BCC	$WRITE		; AND WRITE THE BLOCK AGAIN.
   5039	010466					RETURN
	010466	000207 				 RTS	PC
   5040	010470				20$:
   5041	010470					PRINT	#TDWWRE		; PRINT IT.
	010470	012700 	002146'			 MOV	#TDWWRE,R0
	010474	004737 	025442'			 JSR	PC,$TTMSG
   5042	010500	000261 				SEC
   5043	010502					RETURN
	010502	000207 				 RTS	PC
KLIDX -- EXTEND AN OUTPUT FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 118
$WRITE	-- WRITE NEXT VIRTUAL BLOCK

   5045						.TITLE	KLIDX -- EXTEND AN OUTPUT FILE BY ONE BLOCK
   5046	010504					IDENT$	5,0
						.IDENT	/005000/
   5047					;
   5048					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5049					;
   5050					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5051					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5052					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5053					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5054					;
   5055					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5056					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5057					; EQUIPMENT CORPORATION.
   5058					;
   5059					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5060					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5061					;
   5062					; VERSION 05-00
   5063					;
   5064					; ALAN D. PECKHAM  15-APR-77
   5065					;
   5066					; MODIFIED BY:
   5067					;
   5068					; FUNCTION: THIS ROUTINE EXTENDS THE ALLOCATION OF THE CURRENTLY OPEN
   5069					;  FILE BY ONE BLOCK.
   5070					;
   5071					; LOCAL MACROS
   5072					;
   5073						.MCALL	QIOW$
   5074					;
   5075					; LOCAL DATA
   5076					;
   5077	001034					.PSECT	DATA,D
   5078	001034				DDXEXT:	QIOW$	IO.EXT,SYOLUN,1,,.SYSTA,,<,,BIT15,1>
	001034	   003 	   012 			.BYTE	3,$$$ARG
	001036	000000G				.WORD	IO.EXT
	001040	000005 				.WORD	SYOLUN
	001042	   001 	   000 			.BYTE	1,
	001044	000470'				.WORD	.SYSTA
	001046	000000 				.WORD
	001050	000000 				.WORD
	001052	000000 				.WORD
	001054	100000 				.WORD	BIT15
	001056	000001 				.WORD	1
   5079	010504					.PSECT
KLIDX -- EXTEND AN OUTPUT FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 119
$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK

   5081						.SBTTL	$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK
   5082					;+
   5083					; EXTEND THE OUTPUT FILE BY ONE BLOCK.
   5084					;
   5085					; NO INPUTS
   5086					;
   5087					; OUTPUTS:
   5088					;	CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
   5089					;-
   5090
   5091	010504				$EXTEND::DIR$	#DDXEXT		; EXTEND THE FILE.
	010504	012746 	001034'			MOV	#DDXEXT,-(SP)
	010510	104375 				EMT	375
   5092	010512	103411 				BCS	10$
   5093	010514	105737 	000470'			TSTB	.SYSTA
   5094	010520	002406 				BLT	10$
   5095	010522	062737 	000001 	002622'		ADD	#1,.SYATT+6	; ONE MORE BLOCK ALLOCATED.
   5096	010530	005537 	002620'			ADC	.SYATT+4	; (CARRY SHOULD BE CLEAR)
   5097	010534					RETURN
	010534	000207 				 RTS	PC
   5098
   5099	010536	012700 	001536'		10$:	MOV	#.SYOFN,R0	; EXTEND FAILED.
   5100	010542					CALLR	$IOERR
	010542	000137 	006610'			 JMP	$IOERR
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 120
$EXTEND	-- EXTEND OUTPUT FILE BY ONE BLOCK

   5102						.TITLE	KLIFC -- C-RAM READ/WRITE
   5103	010546					IDENT$	5,0
						.IDENT	/005000/
   5104					;
   5105					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5106					;
   5107					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5108					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5109					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5110					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5111					;
   5112					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5113					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5114					; EQUIPMENT CORPORATION.
   5115					;
   5116					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5117					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5118					;
   5119					; VERSION 05-00
   5120					;
   5121					; ALAN D. PECKHAM  11-APR-77
   5122					;
   5123					; MODIFIED BY:
   5124					;
   5125					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK ON THE C-RAMS.
   5126					;  THE C-RAM DATA IS WORKED WITH IN 6-WORD COMPRESSED FORMAT, AS
   5127					;  SPECIFIED IN THE KLDCP DOCUMENTATION.
   5128					;
   5129					; LOCAL DATA
   5130					;
   5131	001060					.PSECT	DATA,D
   5132	001060	147000 			DFCRFL:	.WORD	.RCRM1		; READ C-RAM BITS 0-19
   5133	001062	146000 				.WORD	.RCRM2		; READ C-RAM BITS 20-39
   5134	001064	145000 				.WORD	.RCRM3		; READ C-RAM BITS 40-59
   5135	001066	144000 				.WORD	.RCRM4		; READ C-RAM BITS 60-79
   5136	001070	057000 			DFCWFL:	.WORD	.LCRM1		; C-RAM WRITE FUNCTION LIST.
   5137	001072	056000 				.WORD	.LCRM2
   5138	001074	055000 				.WORD	.LCRM3
   5139	001076	054000 				.WORD	.LCRM4
   5140						.EVEN			; DFCBF MUST BE ON A WORD BOUNDRY.
   5141	001100				DFCBF:	WD36$	0 0		; DATA BUFFER.
	001100	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001103	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5142	001105	   000 			DFCFL2:	.BYTE	0
   5143	001106	   000 			DFCFL3:	.BYTE	0
   5144	001107				DFCABF:	WD36$	0 0		; WORK AREA.
	001107	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001112	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5145						.EVEN
   5146	010546					.PSECT
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 121
$WCRAM	-- WRITE C-RAM WORD

   5148						.SBTTL	$WCRAM	-- WRITE C-RAM WORD
   5149					;+
   5150					; WRITE COMPRESSED C-RAM WORD POINTED TO BY R1 TO C-RAM LOCATION
   5151					; ADDRESSED BY R0.
   5152					;
   5153					; INPUTS:
   5154					;	R1	- POINTER TO 6 WORDS OF DATA TO WRITE.
   5155					;	R0	- C-RAM ADDRESS TO WRITE TO.
   5156					;
   5157					; OUTPUT:
   5158					;	CARRY IS SET IF ERROR OCCURS.
   5159					;-
   5160
   5161	010546	004537 	022242'		$WCRAM::JSR	R5,$RSAVE
   5162	010552					TRACK	CW
	010552	004037 	010564'			 JSR	R0,64$
	010556	053503 				 .WORD	"CW
	010560	000000 				 .WORD
	010562	000000 				 .WORD
	010564	004737 	022310'		64$:	 JSR	PC,$TRACK
	010570	012600 				 MOV	(SP)+,R0
   5163	010572	010102 				MOV	R1,R2		; GET DATA ADDRESS
   5164	010574					CALL	$ACRAM		; WRITE C-RAM ADDRESS
	010574	004737 	011430'			 JSR	PC,$ACRAM
   5165	010600	103511 				BCS	70$		; RAM ERROR
   5166	010602	012704 	000006 			MOV	#6,R4		; 4 LOOPS PER C-RAM WORD
   5167	010606	005003 				CLR	R3		; CLEAR BOUNDRY FLAG
   5168	010610	012701 	001100'		10$:	MOV	#DFCBF,R1	; SET UP WORK AREA
   5169	010614	112221 				MOVB	(R2)+,(R1)+	; REAL DATA TO WORK AREA
   5170	010616	112221 				MOVB	(R2)+,(R1)+
   5171	010620	111221 				MOVB	@R2,(R1)+
   5172	010622	005703 				TST	R3		; SEE IF BITS ON WORD BOUNDARY
   5173	010624	001411 				BEQ	30$		; YES
   5174	010626	005202 				INC	R2		; INCREASE DTA ADR PTR
   5175	010630	012705 	000004 			MOV	#4,R5		; # OF SHIFTS REQUIRED
   5176	010634	012701 	001103'		20$:	MOV	#DFCBF+3,R1	; POINT TO TOP OF WORK AREA
   5177	010640	106041 				RORB	-(R1)		; RIGHT SHIFT ONE BYTE
   5178	010642	106041 				RORB	-(R1)
   5179	010644	106041 				RORB	-(R1)
   5180	010646	077506 				SOB	R5,20$		; LOOP BACK IF NOT DONE
   5181	010650	005103 			30$:	COM	R3		; CHANGE BOUNDARY FLAG
   5182	010652	042737 	177760 	001102'		BIC	#177760,DFCBF+2	; ONLY FOUR BITS COUNT
   5183	010660	013700 	001100'			MOV	DFCBF,R0	; GET UNPACED DATA
   5184	010664	113737 	001102'	001103'		MOVB	DFCBF+2,DFCBF+3	; PUT C-RAM 0-3 BITS INTO CORRECT CORE
   5185	010672	005001 				CLR	R1		; INIT R1
   5186	010674	000261 				SEC			; C-BIT IS SET AS A FLAG
   5187	010676	012705 	000005 		40$:	MOV	#5,R5		; 4 SHIFTS BETWEEN BALNKS
   5188	010702	006001 			50$:	ROR	R1		; NEW DATA LEFT END OF DESTINATION
   5189	010704	103406 				BCS	60$		; IF FLAG FALLS OUT, DONE
   5190	010706	006000 				ROR	R0		; ROTATE SOURCE BITS RIGHT
   5191	010710	077504 				SOB	R5,50$		; SHIFT 4 TIMES?
   5192	010712	006100 				ROL	R0		; REPAIR ANY DAMAGE
   5193	010714	000241 				CLC			; CLEAR C-BIT AS FLAG
   5194	010716	006001 				ROR	R1		; AND ROLL ZEROES
   5195	010720	000766 				BR	40$		; CONTINUE
   5196	010722	000241 			60$:	CLC			; CLEAR C-BIT AS FLAG
   5197	010724	006100 				ROL	R0		; BITS 4-7
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 121-1
$WCRAM	-- WRITE C-RAM WORD

   5198	010726	006100 				ROL	R0		; MUST BE CORRECTED
   5199	010730	010137 	001100'			MOV	R1,DFCBF	; BITS 8-19 INTO CORE
   5200	010734	110037 	001102'			MOVB	R0,DFCBF+2	; BITS 4-7 INTO CORE
   5201	010740	016400 	001070'			MOV	DFCWFL(R4),R0	; GET WRITE FUNCTION LIST
   5202	010744	012701 	001100'			MOV	#DFCBF,R1	; ADDRESS OF DATA
   5203	010750					CALL	$DFWR		; WRITE TO C-RAM
	010750	004737 	013020'			 JSR	PC,$DFWR
   5204	010754	103423 				BCS	70$		; TIME OUT ERROR
   5205	010756	162704 	000002 			SUB	#2,R4		; ENTIRE RAM WORD DONE?
   5206	010762	002312 				BGE	10$		; NOT YET
   5207	010764	111237 	001104'			MOVB	@R2,DFCBF+4	; GET DATA FOR DEPOSIT
   5208	010770	106237 	001104'			ASRB	DFCBF+4		; SHIFT DATA
   5209	010774	106037 	001103'			RORB	DFCBF+3		; TO EBUS BITS
   5210	011000	106237 	001104'			ASRB	DFCBF+4
   5211	011004	106037 	001103'			RORB	DFCBF+3
   5212	011010	012701 	001100'			MOV	#DFCBF,R1	; DATA ADDRESS IN R1
   5213	011014	012700 	053000 			MOV	#.LCRM5,R0	; DISP 00-04
   5214	011020					CALLR	$DFWR
	011020	000137 	013020'			 JMP	$DFWR
   5215	011024				70$:	RETURN
	011024	000207 				 RTS	PC
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 122
$RCRAM	-- READ C-RAM WORD

   5217						.SBTTL	$RCRAM	-- READ C-RAM WORD
   5218					;+
   5219					; READ C-RAM WORD ADDRESSED BY R0 AND COMPRESS IT INTO AREA POINTED
   5220					; TO BY R1.
   5221					;
   5222					; INPUTS:
   5223					;	R1	- 6 WORD BUFFER TO RECIEVE COMPRESSED C-RAM WORD.
   5224					;	R0	- C-RAM ADDRESS OF WORD TO READ.
   5225					;
   5226					; OUTPUT:
   5227					;	CARRY SET IF ERROR OCCURS.
   5228					;-
   5229
   5230	011026	004537 	022242'		$RCRAM::JSR	R5,$RSAVE
   5231	011032					TRACK	CR
	011032	004037 	011044'			 JSR	R0,64$
	011036	051103 				 .WORD	"CR
	011040	000000 				 .WORD
	011042	000000 				 .WORD
	011044	004737 	022310'		64$:	 JSR	PC,$TRACK
	011050	012600 				 MOV	(SP)+,R0
   5232	011052					CALL	$ACRAM		; SET EBOX TO C-RAM ADDRESS ZERO.
	011052	004737 	011430'			 JSR	PC,$ACRAM
   5233	011056	103421 				BCS	30$		; ERROR
   5234	011060	012700 	003000 			MOV	#.SECLK,R0	; SINGLE STEP EBUS CLOCK
   5235	011064					CALL	$DFXC
	011064	004737 	013222'			 JSR	PC,$DFXC
   5236	011070	103414 				BCS	30$		; ERROR
   5237	011072	016603 	000004 		10$:	MOV	4(SP),R3	; GET BUF ADR FOR C-RAM CONTENTS
   5238	011076	062703 	000012 			ADD	#12,R3		; POINT TO END.
   5239	011102	012704 	001060'			MOV	#DFCRFL,R4
   5240	011106	012400 			20$:	MOV	(R4)+,R0	; DIAG FUNCTIONS
   5241	011110	012701 	001100'			MOV	#DFCBF,R1	; DATA HOLDING AREA
   5242	011114					CALL	$DFRD		; READ DATA
	011114	004737 	012706'			 JSR	PC,$DFRD
   5243	011120	103002 				BCC	40$		; OK
   5244	011122	000137 	011426'		30$:	JMP	140$		; READ ERORR
   5245	011126	013701 	001100'		40$:	MOV	DFCBF,R1	; GET STRETCHED BITS 8-19
   5246	011132	013702 	001102'			MOV	DFCBF+2,R2	; GET STRETCHED BITS 0-7
   5247	011136	005000 				CLR	R0		; USE R0  AS WORK REG
   5248	011140	000261 				SEC			; SET C-BIT AS DONE BIT
   5249	011142	006000 				ROR	R0		; AND ROLL IT INTO R0
   5250	011144	012705 	000004 		50$:	MOV	#4,R5		; FOUR BITS PER GROUP
   5251	011150	005305 			60$:	DEC	R5		; DONE A GROUP?
   5252	011152	002405 				BLT	70$		; NO
   5253	011154	006202 				ASR	R2		; ROTATE SOURCE BITS RIGHT 1 PLACE
   5254	011156	006001 				ROR	R1		; ALL 20 OF THEM
   5255	011160	006000 				ROR	R0		; BEGIN WITH 1ST FLAG INTO R0
   5256	011162	103406 				BCS	80$		; IF C-BIT DETECTED, DONE
   5257	011164	000771 				BR	60$
   5258	011166	006202 			70$:	ASR	R2		; HERE TO SHIFT AWAY
   5259	011170	006001 				ROR	R1		; THE PAIR
   5260	011172	006202 				ASR	R2		; OF BLANKS HIDDEN
   5261	011174	006001 				ROR	R1		; AMIDST THE REAL DATA
   5262	011176	000762 				BR	50$		; AND CONTINUE
   5263	011200	006201 			80$:	ASR	R1		; MAKE LAST BLANKS TO GO AWAY
   5264	011202	006201 				ASR	R1
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 122-1
$RCRAM	-- READ C-RAM WORD

   5265	011204	010037 	001100'			MOV	R0,DFCBF
   5266	011210	010137 	001102'			MOV	R1,DFCBF+2	; STORE RESULTS IN CORE
   5267	011214	012700 	001103'			MOV	#DFCBF+3,R0	; ADDRESS OF DATA JUST READ
   5268	011220	114043 				MOVB	-(R0),-(R3)	; BITS 16-19 TO BUFFER
   5269	011222	105737 	001105'			TSTB	DFCFL2		; CHECK IF BOUNDARY IS RIGHT
   5270	011226	001005 				BNE	100$		; YES, GO FIX BOUNDARY
   5271	011230	114043 			90$:	MOVB	-(R0),-(R3)	; BITS 20-27 TO WORK AREA
   5272	011232	114043 				MOVB	-(R0),-(R3)	; BITS 28-35 TO WORK AREA
   5273	011234	105137 	001105'			COMB	DFCFL2		; CHANGE SIGNAL
   5274	011240	000722 				BR	20$		; GET MORE DATA
   5275	011242	106313 			100$:	ASLB	@R3		; FIX A HALF-BYTE
   5276	011244	106313 				ASLB	@R3
   5277	011246	106313 				ASLB	@R3
   5278	011250	106313 				ASLB	@R3
   5279	011252	012705 	000004 			MOV	#4,R5
   5280	011256	010302 			110$:	MOV	R3,R2		; ADDR OF DATA TO R2
   5281	011260	106122 				ROLB	(R2)+		; SHIFT INCLUDING C-BIT
   5282	011262	106122 				ROLB	(R2)+
   5283	011264	106122 				ROLB	(R2)+
   5284	011266	106122 				ROLB	(R2)+
   5285	011270	077506 				SOB	R5,110$		; ASSEMBLED COMPLETE HALF-BYTE
   5286	011272	105723 				TSTB	(R3)+		; FIX HOLDING AREA ADR
   5287	011274	105737 	001106'			TSTB	DFCFL3		; CHECK SIGNAL
   5288	011300	001003 				BNE	120$		; DONE IF MINUS
   5289	011302	105137 	001106'			COMB	DFCFL3
   5290	011306	000750 				BR	90$		; CONTINUE
   5291	011310	113743 	001101'		120$:	MOVB	DFCBF+1,-(R3)	; ENDING UP
   5292	011314	113743 	001100'			MOVB	DFCBF,-(R3)	; C-RAM BITS 0-15 TO BUFFER
   5293	011320	105037 	001106'			CLRB	DFCFL3		; RESET DFCFL3 TO ZERO
   5294	011324	105037 	001105'			CLRB	DFCFL2		; SAME TO DFCFL2
   5295	011330	012700 	141000 			MOV	#.RCSPF,R0	; READ SPEC FIELD FUNC
   5296	011334	012701 	001100'			MOV	#DFCBF,R1
   5297	011340					CALL	$DFRD		; READ DATA
	011340	004737 	012706'			 JSR	PC,$DFRD
   5298	011344	103430 				BCS	140$
   5299	011346	016100 	000004 			MOV	4(R1),R0	; GET DISP 00-02 - DEXWD1
   5300	011352	016101 	000002 			MOV	2(R1),R1	; GET DISP 03-04 - DEXWD2
   5301	011356	006101 				ROL	R1
   5302	011360	006100 				ROL	R0
   5303	011362	006101 				ROL	R1
   5304	011364	006100 				ROL	R0		; JUSTIFY IN R0
   5305	011366	042700 	177700 			BIC	#^C77,R0	; CLEAR TRASH
   5306	011372	105737 	000036'			TSTB	.EASW		; AND IF MODEL A CPU,
   5307	011376	003002 				BGT	130$
   5308	011400	042700 	177740 			BIC	#^C37,R0	; CLEAR MORE TRASH.
   5309	011404	016601 	000004 		130$:	MOV	4(SP),R1	; GET RECIEVING ADDRESS BACK.
   5310	011410	110061 	000012 			MOVB	R0,12(R1)	; SAVE IN BUFFER
   5311	011414	042721 	052525 			BIC	#052525,(R1)+	; CLEAR PARITY BITS
   5312	011420	042711 	000005 			BIC	#000005,(R1)
   5313	011424	000241 				CLC
   5314	011426				140$:	RETURN
	011426	000207 				 RTS	PC
KLIFC -- C-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 123
$ACRAM	-- ADDRESS C-RAM WORD

   5316						.SBTTL	$ACRAM	-- ADDRESS C-RAM WORD
   5317					;+
   5318					; SET THE M-BOX TO THE C-RAM ADDRESS SPECIFIED BY R0.
   5319					;
   5320					; INPUT:
   5321					;	R0	- ADDRESS OF C-RAM WORD TO ACCESS.
   5322					;
   5323					; OUTPUT:
   5324					;	CARRY SET IF ERROR OCCURS.
   5325					;-
   5326
   5327	011430				$ACRAM::PUSH	<R1,R0>
	011430	010146 				 MOV	R1,-(SP)
	011432	010046 				 MOV	R0,-(SP)
   5328	011434					TRACK	CA
	011434	004037 	011446'			 JSR	R0,64$
	011440	040503 				 .WORD	"CA
	011442	000000 				 .WORD
	011444	000000 				 .WORD
	011446	004737 	022310'		64$:	 JSR	PC,$TRACK
	011452	012600 				 MOV	(SP)+,R0
   5329	011454					CALL	$KLSR		; DO A SOFT RESET
	011454	004737 	014622'			 JSR	PC,$KLSR
   5330	011460	103423 				BCS	9$		; ERROR
   5331	011462	012701 	001107'			MOV	#DFCABF,R1
   5332	011466					CALL	LFCSAB		; LOAD EBUS BITS 00-05
	011466	004737 	011536'			 JSR	PC,LFCSAB
   5333	011472	012700 	052000 			MOV	#.LCRDL,R0	; CRAM DIAG ADR 00-04
   5334	011476					CALL	$DFWR		; DO A WRITE
	011476	004737 	013020'			 JSR	PC,$DFWR
   5335	011502	011600 				MOV	(SP),R0		; RESTORE C-RAM ADR
   5336	011504	103411 				BCS	9$		; ERROR
   5337	011506	000300 				SWAB	R0		; GET BITS 00-04
   5338	011510	006200 				ASR	R0		; TO LOW-ORDER BITS OF R0
   5339	011512	006200 				ASR	R0
   5340	011514					CALL	LFCSAB		; LOAD EBUS BITS 00-05
	011514	004737 	011536'			 JSR	PC,LFCSAB
   5341	011520	012700 	051000 			MOV	#.LCRDR,R0	; CRAM DIAG ADR 05-10
   5342	011524					CALL	$DFWR		; DO ANOTHER WRITE
	011524	004737 	013020'			 JSR	PC,$DFWR
   5343	011530				9$:	POP	<R0,R1>
	011530	012600 				 MOV	(SP)+,R0
	011532	012601 				 MOV	(SP)+,R1
   5344	011534					RETURN
	011534	000207 				 RTS	PC
   5345
   5346	011536	042700 	000077 		LFCSAB:	BIC	#77,R0		; DEAL ONLY WITH 6 BITS
   5347	011542	110037 	001112'			MOVB	R0,DFCABF+3	; TO EBUS BITS 4 & 5
   5348	011546	000300 				SWAB	R0
   5349	011550	110037 	001113'			MOVB	R0,DFCABF+4	; TO EBUS BITS 0,1,2, AND 3
   5350	011554					RETURN
	011554	000207 				 RTS	PC
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 124
$ACRAM	-- ADDRESS C-RAM WORD

   5352						.TITLE	KLIFD -- D-RAM READ/WRITE
   5353	011556					IDENT$	5,0
						.IDENT	/005000/
   5354					;
   5355					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5356					;
   5357					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5358					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5359					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5360					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5361					;
   5362					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5363					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5364					; EQUIPMENT CORPORATION.
   5365					;
   5366					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5367					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5368					;
   5369					; VERSION 05-00
   5370					;
   5371					; ALAN D. PECKHAM  11-APR-77
   5372					;
   5373					; MODIFIED BY:
   5374					;
   5375					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK WITH THE D-RAMS.
   5376					;  THE D-RAM DATA IS PASSED IN THE 3-WORD COMPRESSED FORMAT SPECIFIED
   5377					;  IN THE DOCUMENTATION FOR KLDCP.
   5378					;
   5379					; LOCAL DATA
   5380					;
   5381	001114					.PSECT	DATA,D
   5382						.EVEN			; DFDDBF MUST BE ON AN EVEN BOUNDRY.
   5383	001114				DFDDBF:	WD36$	0 0		; DATA WORK AREA.
	001114	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001117	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5384	001121				DFDABF:	WD36$	0 0		; ADDRESS WORK AREA.
	001121	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001124	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5385						.EVEN
   5386	011556					.PSECT
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 125
$WDRAM	-- WRITE D-RAM WORD

   5388						.SBTTL	$WDRAM	-- WRITE D-RAM WORD
   5389					;+
   5390					; WRITE THE COMPRESSED D-RAM WORD POINTED TO BY R1 INTO THE D-RAM ADDRESS
   5391					; POINTED TO BY R0.
   5392					;
   5393					; INPUTS:
   5394					;	R1	- POINTER TO COMPRESSED D-RAM DATA WORD
   5395					;	R0	- D-RAM ADDRESS TO WRITE DATA INTO.
   5396					;
   5397					; OUTPUTS:
   5398					;	CARRY IS SET IF ERROR OCCURS.
   5399					;-
   5400
   5401	011556	004537 	022242'		$WDRAM::JSR	R5,$RSAVE
   5402	011562					TRACK	DW
	011562	004037 	011574'			 JSR	R0,64$
	011566	053504 				 .WORD	"DW
	011570	000000 				 .WORD
	011572	000000 				 .WORD
	011574	004737 	022310'		64$:	 JSR	PC,$TRACK
	011600	012600 				 MOV	(SP)+,R0
   5403	011602	006000 				ROR	R0		; CHECK IF EVEN OR ODD
   5404	011604	103423 				BCS	10$		; C-BIT NOT SET MEANS EVEN
   5405	011606	006100 				ROL	R0		; RESTORE ADR
   5406	011610	010104 				MOV	R1,R4		; SAVE DATA POINTER
   5407	011612					CALL	$ADRAM		; WRITE D-RAM ADDRESS
	011612	004737 	012146'			 JSR	PC,$ADRAM
   5408	011616	103416 				BCS	10$		; ERROR
   5409	011620	012401 				MOV	(R4)+,R1
   5410	011622					CALL	30$		; WRITE EVEN DATA
	011622	004737 	011670'			 JSR	PC,30$
   5411	011626	103412 				BCS	10$
   5412	011630	012401 				MOV	(R4)+,R1	; MORE DATA TO R1
   5413	011632					CALL	20$		; WRITE ODD DATA
	011632	004737 	011656'			 JSR	PC,20$
   5414	011636	103406 				BCS	10$
   5415	011640	011401 				MOV	(R4),R1
   5416					;
   5417					;	COMMON PART OF LOADING OF THE D-RAM
   5418					;
   5419	011642	012700 	062000 			MOV	#.LDRM3,R0	; COMMON J01-04
   5420	011646	006301 				ASL	R1
   5421	011650	006301 				ASL	R1		; JUSTIFY DATA FOR EBUS
   5422	011652	000423 				BR	LFDWFN
   5423	011654				10$:	RETURN
	011654	000207 				 RTS	PC
   5424	011656	012703 	061000 		20$:	MOV	#.LDRM2,R3	; DRAM FUNC FOR J-FIELD A & B
   5425	011662	012700 	064000 			MOV	#.LDRJD,R0	; J-FIELD ODD
   5426	011666	000404 				BR	40$
   5427	011670	012703 	060000 		30$:	MOV	#.LDRM1,R3	; DRAM FUNC FOR J-FILED
   5428	011674	012700 	063000 			MOV	#.LDRJV,R0	; J-FILED EVEN
   5429	011700	006301 			40$:	ASL	R1		; JUSTIFY J-FIELD DATA
   5430	011702	006301 				ASL	R1
   5431	011704					PUSH	R1
	011704	010146 				 MOV	R1,-(SP)
   5432	011706					CALL	LFDWFN		; WRITE J-DATA
	011706	004737 	011722'			 JSR	PC,LFDWFN
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 125-1
$WDRAM	-- WRITE D-RAM WORD

   5433	011712					POP	R1
	011712	012601 				 MOV	(SP)+,R1
   5434	011714	103757 				BCS	10$		; ERROR
   5435	011716	000301 				SWAB	R1		; GOT A & B
   5436	011720	010300 				MOV	R3,R0		; GOT CORRECT DIAG FUNC & WRITE
   5437	011722	110137 	001116'		LFDWFN:	MOVB	R1,DFDDBF+2	; R1 HAS THE DATA
   5438	011726	012701 	001114'			MOV	#DFDDBF,R1	; DATA ADR
   5439	011732					CALLR	$DFWR		; WRITE IT
	011732	000137 	013020'			 JMP	$DFWR
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 126
$RDRAM	-- READ D-RAM WORD

   5441						.SBTTL	$RDRAM	-- READ D-RAM WORD
   5442					;+
   5443					; READ THE D-RAM WORD ADDRESSED BY R0 INTO THE DATA BUFFER POINTED TO
   5444					; BY R1. THE DATA IS COMPRESSED DURING THE READ.
   5445					;
   5446					; INPUTS:
   5447					;	R1	- POINTER TO BUFFER TO RECIEVE D-RAM WORD.
   5448					;	R0	- D-RAM ADDRESS TO READ DATA FROM.
   5449					;
   5450					; OUTPUTS:
   5451					;	CARRY IS SET IF ERROR OCCURS.
   5452					;-
   5453
   5454	011736	004537 	022242'		$RDRAM::JSR	R5,$RSAVE
   5455	011742					TRACK	DR
	011742	004037 	011754'			 JSR	R0,64$
	011746	051104 				 .WORD	"DR
	011750	000000 				 .WORD
	011752	000000 				 .WORD
	011754	004737 	022310'		64$:	 JSR	PC,$TRACK
	011760	012600 				 MOV	(SP)+,R0
   5456	011762	010104 				MOV	R1,R4		; SAVE RECIEVING ADDRESS.
   5457	011764	010103 				MOV	R1,R3
   5458	011766	005002 				CLR	R2		; CLEAR LOOP SWITCH.
   5459	011770				10$:	CALL	$ADRAM		; WRITE D-RAM ADR
	011770	004737 	012146'			 JSR	PC,$ADRAM
   5460	011774	103463 				BCS	30$
   5461	011776	012700 	015000 			MOV	#.DRLTC,R0	; UNLATCH THE DRAM REG
   5462	012002					CALL	$DFXC
	012002	004737 	013222'			 JSR	PC,$DFXC
   5463	012006	103456 				BCS	30$
   5464	012010	012701 	001114'			MOV	#DFDDBF,R1
   5465	012014	012700 	135000 			MOV	#.RDJ71,R0	; FUNC TO READ J07-10
   5466	012020					CALL	$DFRD		; READ DATA
	012020	004737 	012706'			 JSR	PC,$DFRD
   5467	012024	103447 				BCS	30$		; TIMEOUT ERROR
   5468	012026	016100 	000002 			MOV	2(R1),R0	; GET DATA J07-10 - DEXWD2
   5469	012032	006200 				ASR	R0
   5470	012034	006200 				ASR	R0		; RIGHT JUSTIFIED J-DATA
   5471	012036	042700 	177700 			BIC	#^C77,R0	; CLEAR TRASH
   5472	012042	110023 				MOVB	R0,(R3)+	; SAVE IT IN CORE
   5473	012044	012700 	133000 			MOV	#.RDMAB,R0	; FUNC TO READ A & B FIELD
   5474	012050					CALL	$DFRD		; READ DATA
	012050	004737 	012706'			 JSR	PC,$DFRD
   5475	012054	103433 				BCS	30$
   5476	012056	016100 	000002 			MOV	2(R1),R0	; GET A & B DATA - DEXWD2
   5477	012062	006200 				ASR	R0
   5478	012064	006200 				ASR	R0		; RIGHT JUSTIFIED DATA
   5479	012066	042700 	177700 			BIC	#^C77,R0	; CLEAR EXTRA
   5480	012072	110023 				MOVB	R0,(R3)+	; SAVE IT IN CORE
   5481	012074	005102 				COM	R2		; IS THIS THE SECOND TIME ?
   5482	012076	001404 				BEQ	20$		; GET OUT IF YES
   5483	012100	016600 	000002 			MOV	2(SP),R0	; GET DRAM ADR
   5484	012104	005200 				INC	R0		; GET ODD HALF OF EVEN/ODD PAIR
   5485	012106	000730 				BR	10$		; LOOP AGAIN
   5486	012110	012700 	134000 		20$:	MOV	#.RDJ14,R0	; FUNC TO READ J01-04
   5487	012114					CALL	$DFRD		; READ DATA
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 126-1
$RDRAM	-- READ D-RAM WORD

	012114	004737 	012706'			 JSR	PC,$DFRD
   5488	012120	103411 				BCS	30$
   5489	012122	016100 	000002 			MOV	2(R1),R0	; GET J01-04 DATA - DEXWD2
   5490	012126	006200 				ASR	R0
   5491	012130	006200 				ASR	R0		; RIGHT JUSTIFIED DATA
   5492	012132	042700 	177760 			BIC	#^C17,R0	; CLEAR EXTRA
   5493	012136	110064 	000004 			MOVB	R0,4(R4)	; BIT SET TO CORE
   5494	012142	000241 				CLC
   5495	012144				30$:	RETURN
	012144	000207 				 RTS	PC
KLIFD -- D-RAM READ/WRITE	MACRO M1110  15-OCT-79 14:14  PAGE 127
$ADRAM	-- ADDRESS D-RAM WORD

   5497						.SBTTL	$ADRAM	-- ADDRESS D-RAM WORD
   5498					;+
   5499					; SET E-BOX TO SPECIFIED D-RAM ADDRESS FOR WRITTING OR READING.
   5500					;
   5501					; INPUT:
   5502					;	R0	- ADDRESS TO ACCESS.
   5503					;
   5504					; OUTPUT:
   5505					;	CARRY IS SET IF ERROR OCCURS.
   5506					;-
   5507
   5508	012146	004537 	022242'		$ADRAM::JSR	R5,$RSAVE
   5509	012152					TRACK	DA
	012152	004037 	012164'			 JSR	R0,64$
	012156	040504 				 .WORD	"DA
	012160	000000 				 .WORD
	012162	000000 				 .WORD
	012164	004737 	022310'		64$:	 JSR	PC,$TRACK
	012170	012600 				 MOV	(SP)+,R0
   5510	012172	012704 	001123'			MOV	#DFDABF+2,R4
   5511	012176	012703 	001121'			MOV	#DFDABF,R3	;GET ADR OF EBUS DATA
   5512	012202	010002 				MOV	R0,R2		;DRAM ADR IN R2
   5513	012204	005100 				COM	R0		;READY TO TEST ADR BITS 0-2
   5514	012206	032700 	000700 			BIT	#700,R0		;TESTING!
   5515	012212	001410 				BEQ	10$		;BR IF ADR IS 7XX
   5516	012214	006302 				ASL	R2
   5517	012216	006302 				ASL	R2
   5518	012220	006302 				ASL	R2		;LEFT SHIFT 3 POSITIONS
   5519	012222	105024 				CLRB	(R4)+		;INCREMENT TO DFDABF+3
   5520	012224	110224 				MOVB	R2,(R4)+	;MOVE ADR BITS 4-8 TO EBUS DATA
   5521	012226	000302 				SWAB	R2
   5522	012230	110214 				MOVB	R2,@R4		;MOVE ADR BITS 0-3 TO EBUS DATA
   5523	012232	000413 				BR	40$
   5524	012234	006002 			10$:	ROR	R2		;BIT1 TO C-BIT
   5525	012236	103402 				BCS	20$		;C BIT SET MEANS IR BIT 12 MUST BE 1
   5526	012240	105024 				CLRB	(R4)+		;NO C-BIT MEANS IR BIT 12 MUST BE 0
   5527	012242	000402 				BR	30$		;MOVE ADR TO EBUS DATA
   5528	012244	112724 	000200 		20$:	MOVB	#200,(R4)+	;SET IR BIT 12=1
   5529	012250	042702 	000340 		30$:	BIC	#340,R2
   5530	012254	110224 				MOVB	R2,(R4)+	;MOVE D-RAM ADR TO EBUS BIT POSITION 7-11
   5531	012256	112714 	000016 			MOVB	#16,@R4		;SET THE 7 FROM 7XX IN EBUS DATA
   5532	012262				40$:	CALL	$KLSR		;DO A SOFT RESET
	012262	004737 	014622'			 JSR	PC,$KLSR
   5533	012266	103413 				BCS	50$
   5534	012270	012701 	001121'			MOV	#DFDABF,R1	;EBUS DATA ADR
   5535	012274	012700 	077000 			MOV	#.LDAR,R0	;LOAD THE AR FROM EBUS 0-35
   5536	012300					CALL	$DFWR		;DO THE ACTUAL WRITE
	012300	004737 	013020'			 JSR	PC,$DFWR
   5537	012304	103404 				BCS	50$
   5538	012306	012700 	014000 			MOV	#.IRLTC,R0	;UNLATCH IR AND LOAD IT FROM AD
   5539	012312					CALLR	$DFXC		;EXECUTE IT
	012312	000137 	013222'			 JMP	$DFXC
   5540	012316				50$:	RETURN
	012316	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 128
$ADRAM	-- ADDRESS D-RAM WORD

   5542						.TITLE	KLIFE -- DEPOSIT/EXAMINE KL MEMORY
   5543	012320					IDENT$	5,1
						.IDENT	/005010/
   5544					;
   5545					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5546					;
   5547					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5548					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5549					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5550					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5551					;
   5552					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5553					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5554					; EQUIPMENT CORPORATION.
   5555					;
   5556					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5557					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5558					;
   5559					; VERSION 05-01
   5560					;
   5561					; ALAN D. PECKHAM  29-MAR-77
   5562					;
   5563					; MODIFIED BY:
   5564					;
   5565					;	R. BELANGER	24-AUG-78	FIX CROCK IN ".DESW" MAINTENANCE
   5566					;
   5567					; FUNCTION: ROUTINES TO ACCESS KL MEMORY.
   5568					;
   5569					; LOCAL MACROS
   5570					;
   5571						.MCALL	PREX$,PRDP$
   5572					;
   5573					; LOCAL DATA
   5574					;
   5575	001126					.PSECT	DATA,D
   5576	001126				DFEDPB:	PRDP$	0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED DEPOSIT.
	001126	   011 	   005 			.BYTE	DR.DTE,5
	001130	   016 	   200 			.BYTE	DF.PDP,ED.PHY
	001132	001152'				.WORD	DFEAD
	001134	001156'				.WORD	DFEBF
	001136	000000 				.WORD	0
   5577	001140				DFEEXB:	PREX$	0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED EXAMINE.
	001140	   011 	   005 			.BYTE	DR.DTE,5
	001142	   015 	   200 			.BYTE	DF.PEX,ED.PHY
	001144	001152'				.WORD	DFEAD
	001146	001156'				.WORD	DFEBF
	001150	000000 				.WORD	0
   5578	001152				DFEAD:	WD22$	0		; ADDRESS OF MEMORY ACCESS.
	001152	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   5579						.EVEN
   5580	001156				DFEBF:	WD36$	0 0		; DATA TO WRITE OR READ.
	001156	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001161	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5581						.EVEN
   5582	002221					.PSECT	TEXT,D
   5583	002221				TFEDFL:	ERROR	<DEPOSIT FAILED>
	002221	   077 	   040 	   104 		 .ASCIZ	\? DEPOSIT FAILED\
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 128-1
$ADRAM	-- ADDRESS D-RAM WORD

	002224	   105 	   120 	   117
	002227	   123 	   111 	   124
	002232	   040 	   106 	   101
	002235	   111 	   114 	   105
	002240	   104 	   000
   5584	002242				TFEEFL:	ERROR	<EXAMINE FAILED>
	002242	   077 	   040 	   105 		 .ASCIZ	\? EXAMINE FAILED\
	002245	   130 	   101 	   115
	002250	   111 	   116 	   105
	002253	   040 	   106 	   101
	002256	   111 	   114 	   105
	002261	   104 	   000
   5585	012320					.PSECT
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 129
$DPOS	-- DEPOSIT KL MEMORY ROUTINE

   5587						.SBTTL	$DPOS	-- DEPOSIT KL MEMORY ROUTINE
   5588					;+
   5589					; DEPOSIT GIVEN WORD INTO PHYSICAL CORE.
   5590					;
   5591					; INPUTS:
   5592					;	R1	- ADDRESS OF 36 BIT DATA WORD.
   5593					;	R0	- 22 BIT KL ADDRESS.
   5594					;
   5595					; OUTPUTS:
   5596					;	CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
   5597					;-
   5598
   5599	012320				$DPOST::
   5600	012320	005046 				CLR	-(SP)		; SET UP THE ADDRESS
   5601	012322					PUSH	R0		; SO
	012322	010046 				 MOV	R0,-(SP)
   5602	012324	010600 				MOV	SP,R0		; POINT TO ADDRESS
   5603	012326					CALL	$DPOS		; DO THE DEPOSIT
	012326	004737 	012336'			 JSR	PC,$DPOS
   5604	012332	032626 				BIT	(SP)+,(SP)+	; CLEAR STACK
   5605	012334					RETURN			; TO CALLER
	012334	000207 				 RTS	PC
   5606
   5607	012336				$DPOS::
   5608	012336	004537 	022242'			JSR	R5,$RSAVE
   5609	012342					CALL	LFEMVA		; SET UP PROPER BOUNDARY
	012342	004737 	012572'			 JSR	PC,LFEMVA
   5610	012346					CALL	LFECKN		; MAKE SURE THE CLOCK IS ON.
	012346	004737 	012616'			 JSR	PC,LFECKN
   5611	012352	103431 				BCS	90$
   5612	012354	012704 	001156'			MOV	#DFEBF,R4	; SET UP TEMPORARY WORK AREA
   5613	012360	012703 	000005 			MOV	#5,R3		; AREA COUNT
   5614	012364	112124 			10$:	MOVB	(R1)+,(R4)+	; MOVE IN -11 DATA
   5615	012366	077302 				SOB	R3,10$		; CONTINUE MOVE
   5616	012370	142744 	177760 			BICB	#^C17,-(R4)	; CLEAR HIGH BYTE
   5617	012374					TRACK	DP,DFEAD,DFEBF
	012374	004037 	012406'			 JSR	R0,64$
	012400	050104 				 .WORD	"DP
	012402	001152'				 .WORD	DFEAD
	012404	001156'				 .WORD	DFEBF
	012406	004737 	022310'		64$:	 JSR	PC,$TRACK
	012412	012600 				 MOV	(SP)+,R0
   5618	012414					DIR$	#DFEDPB		; DO DEPOSIT TO KL
	012414	012746 	001126'			MOV	#DFEDPB,-(SP)
	012420	104375 				EMT	375
   5619	012422	103005 				BCC	90$
   5620	012424					PRINT	#TFEDFL		; INFORM OF ERROR.
	012424	012700 	002221'			 MOV	#TFEDFL,R0
	012430	004737 	025442'			 JSR	PC,$TTMSG
   5621	012434	000261 				SEC
   5622	012436				90$:	RETURN
	012436	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 130
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5624						.SBTTL	$EXAM	-- EXAMINE KL MEMORY ROUTINE
   5625					;+
   5626					; EXAMINE GIVEN WORD FROM KL PHYSICAL CORE.
   5627					;
   5628					; INPUTS:
   5629					;	R1	- ADDRESS OF BUFFER TO RECIEVE DATA.
   5630					;	R0	- 22 BIT KL ADDRESS.
   5631					;
   5632					; OUTPUTS:
   5633					;	CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
   5634					;-
   5635
   5636						.ENABL	LSB
   5637
   5638	012440				$EXAMT::
   5639	012440	005046 				CLR	-(SP)		; SET UP THE ADDRESS
   5640	012442					PUSH	R0		; SO
	012442	010046 				 MOV	R0,-(SP)
   5641	012444	010600 				MOV	SP,R0		; POINT TO ADDRESS
   5642	012446					CALL	$EXAM		; DO THE EXAMINE
	012446	004737 	012466'			 JSR	PC,$EXAM
   5643	012452	032626 				BIT	(SP)+,(SP)+	; CLEAR THE STACK
   5644	012454	000402 				BR	10$		; OUT THRU COMMON EXIT
   5645						;
   5646	012456				$EXAMD::
   5647	012456					CALL	$EXAM		; DO THE EXAMINE
	012456	004737 	012466'			 JSR	PC,$EXAM
   5648	012462				10$:
   5649	012462	010100 				MOV	R1,R0		; DATA PONTER TO R0
   5650	012464					RETURN			; TO CALLER
	012464	000207 				 RTS	PC
   5651
   5652						.DSABL	LSB
   5653
   5654	012466				$EXAM::
   5655	012466	004537 	022242'			JSR	R5,$RSAVE
   5656	012472					CALL	LFEMVA
	012472	004737 	012572'			 JSR	PC,LFEMVA
   5657	012476					CALL	LFECKN		; MAKE SURE THE CLOCK IS ON.
	012476	004737 	012616'			 JSR	PC,LFECKN
   5658	012502	103425 				BCS	90$
   5659	012504					DIR$	#DFEEXB		; DO KL EXAMINE
	012504	012746 	001140'			MOV	#DFEEXB,-(SP)
	012510	104375 				EMT	375
   5660	012512					TRACK	EX,DFEAD,DFEBF
	012512	004037 	012524'			 JSR	R0,64$
	012516	054105 				 .WORD	"EX
	012520	001152'				 .WORD	DFEAD
	012522	001156'				 .WORD	DFEBF
	012524	004737 	022310'		64$:	 JSR	PC,$TRACK
	012530	012600 				 MOV	(SP)+,R0
   5661	012532	103411 				BCS	90$
   5662	012534	012702 	000005 			MOV	#5,R2
   5663	012540	012700 	001156'			MOV	#DFEBF,R0
   5664	012544	112021 			10$:	MOVB	(R0)+,(R1)+
   5665	012546	077202 				SOB	R2,10$
   5666	012550	142741 	177760 			BICB	#^C17,-(R1)
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 130-1
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5667	012554					RETURN
	012554	000207 				 RTS	PC
   5668	012556				90$:	PRINT	#TFEEFL		; INFORM OPERATOR OF ERROR.
	012556	012700 	002242'			 MOV	#TFEEFL,R0
	012562	004737 	025442'			 JSR	PC,$TTMSG
   5669	012566	000261 				SEC
   5670	012570					RETURN
	012570	000207 				 RTS	PC
KLIFE -- DEPOSIT/EXAMINE KL MEM	MACRO M1110  15-OCT-79 14:14  PAGE 131
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5672					;+
   5673					; GET 22-BIT ADDRESS AND PLACE IN WORD-ALIGNED HOLDING AREA.
   5674					;-
   5675
   5676	012572	012705 	001152'		LFEMVA:	MOV	#DFEAD,R5
   5677	012576	112025 				MOVB	(R0)+,(R5)+	; CLAIM THE CALLER'S
   5678	012600	112025 				MOVB	(R0)+,(R5)+	; KL ADDRESS
   5679	012602	111015 				MOVB	(R0),(R5)	; FOR OUR OWN.
   5680	012604	042715 	177700 			BIC	#^C77,(R5)	; 22 BITS PLEASE.
   5681	012610	012700 	001152'			MOV	#DFEAD,R0
   5682	012614					RETURN
	012614	000207 				 RTS	PC
   5683
   5684					;+
   5685					; MAKE SURE THE CLOCK IS ON
   5686					;-
   5687
   5688	012616	105737 	000034'		LFECKN:	TSTB	.DESW		; IF OUR SWITCH IS >0,
   5689	012622	003026 				BGT	90$		; THEN MICROCODE IS USEABLE.
   5690	012624					CALL	$KLMR		; OTHERWISE RESET
	012624	004737 	014350'			 JSR	PC,$KLMR
   5691	012630	103423 				BCS	90$
   5692	012632	012700 	001000 			MOV	#.STRCL,R0	; AND START CLOCK.
   5693	012636					CALL	$DFXC
	012636	004737 	013222'			 JSR	PC,$DFXC
   5694	012642	103416 				BCS	90$
   5695	012644	012702 	001750 			MOV	#1000.,R2	; WAIT FOR HALT LOOP
   5696	012650				10$:	CALL	$DTRW1		; BY READING DTE REG #1
	012650	004737 	022152'			 JSR	PC,$DTRW1
   5697	012654	103411 				BCS	90$		; AND
   5698	012656	032700 	001000 			BIT	#DS06,R0	; CHECKING HALT BIT.
   5699	012662	001003 				BNE	20$
   5700	012664	077207 				SOB	R2,10$		; IF TAKES TOO LONG
   5701	012666	000261 				SEC			; THEN WE ARE IN TROUBLE.
   5702	012670					RETURN
	012670	000207 				 RTS	PC
   5703	012672	112737 	000001 	000034'	20$:	MOVB	#1,.DESW		; OTHERWISE INDICATE
   5704	012700				90$:	RETURN			; OKAY TO USE.
	012700	000207 				 RTS	PC
KLIFR -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 132
$EXAM	-- EXAMINE KL MEMORY ROUTINE

   5706						.TITLE	KLIFR -- PERFORM DIAGNOSTIC FUNCTION READ
   5707	012702					IDENT$	5,0
						.IDENT	/005000/
   5708					;
   5709					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5710					;
   5711					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5712					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5713					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5714					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5715					;
   5716					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5717					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5718					; EQUIPMENT CORPORATION.
   5719					;
   5720					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5721					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5722					;
   5723					; VERSION 05-00
   5724					;
   5725					; ALAN D. PECKHAM  29-MAR-77
   5726					;
   5727					; MODIFIED BY:
   5728					;
   5729					; FUNCTION: DO A FUNCTION READ TO THE DTE20.
   5730					;
   5731					; LOCAL MACROS
   5732					;
   5733						.MCALL	KLDR$
   5734					;
   5735					; LOCAL DATA
   5736					;
   5737	001164					.PSECT	DATA,D
   5738	001164				DFRRDB:	KLDR$	0,.DFBLK,.DREG,0	; DPB FOR FUNCTION READ.
	001164	002411 				.WORD	400*5.+DR.DTE
	001166	   012 	   000 			.BYTE	DF.KLR,0/400
	001170	000242'				.WORD	.DFBLK
	001172	000256'				.WORD	.DREG
	001174	000000 				.WORD	0
   5739						.EVEN
   5740	002263					.PSECT	TEXT,D
   5741	002263				TFREMS:	ERROR	<DF READ FAILED> ; READ FAILED ERROR MESSAGE.
	002263	   077 	   040 	   104 		 .ASCIZ	\? DF READ FAILED\
	002266	   106 	   040 	   122
	002271	   105 	   101 	   104
	002274	   040 	   106 	   101
	002277	   111 	   114 	   105
	002302	   104 	   000
   5742	012702					.PSECT
KLIFR -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 133
$DFRD	-- DIAGNOSTIC READ FUNCTION

   5744						.SBTTL	$DFRD	-- DIAGNOSTIC READ FUNCTION
   5745					;+
   5746					; PERFORM A DIAGNOSTIC READ FUNCTION.
   5747					;
   5748					; INPUTS:
   5749					;	R1	- ADDRESS OF 36 BIT BUFFER TO RECIEVE DATA FROM READ.
   5750					;	R0	- FUNCTION CODE OF READ TO PERFORM.
   5751					;
   5752					; OUTPUTS:
   5753					;	(R1)	- DATA READ FROM DIAGNOSTIC IS SUCCESSFUL.
   5754					;	CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
   5755					;-
   5756
   5757	012702				$DDFRD::
   5758	012702	000300 				SWAB	R0		; POSITION READ CODE
   5759	012704	006300 				ASL	R0		; SO
   5760	012706				$DFRD::
   5761	012706					PUSH	<R1,R0>
	012706	010146 				 MOV	R1,-(SP)
	012710	010046 				 MOV	R0,-(SP)
   5762	012712	000300 				SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   5763	012714	110037 	001167'			MOVB	R0,DFRRDB+3	; STORE FUNCTION CODE
   5764	012720					DIR$	#DFRRDB
	012720	012746 	001164'			MOV	#DFRRDB,-(SP)
	012724	104375 				EMT	375
   5765	012726					TRACK	FR,DFRRDB+3,.DFRBK
	012726	004037 	012740'			 JSR	R0,64$
	012732	051106 				 .WORD	"FR
	012734	001167'				 .WORD	DFRRDB+3
	012736	000250'				 .WORD	.DFRBK
	012740	004737 	022310'		64$:	 JSR	PC,$TRACK
	012744	012600 				 MOV	(SP)+,R0
   5766	012746	103412 				BCS	10$
   5767	012750	012700 	000250'			MOV	#.DFRBK,R0
   5768	012754	005701 				TST	R1		; TEST R1
   5769	012756	001413 				BEQ	90$		; BYPASS LOADING
   5770	012760	112021 				MOVB	(R0)+,(R1)+	; REMOVE DATA FROM DEXWD3
   5771	012762	112021 				MOVB	(R0)+,(R1)+
   5772	012764	112021 				MOVB	(R0)+,(R1)+	; FROM DEXWD2
   5773	012766	112021 				MOVB	(R0)+,(R1)+
   5774	012770	111011 				MOVB	(R0),(R1)	; FROM DEXWD1
   5775	012772	000405 				BR	90$
   5776	012774				10$:	PRINT	#TFREMS		; INDICATE FUNC READ FAILED
	012774	012700 	002263'			 MOV	#TFREMS,R0
	013000	004737 	025442'			 JSR	PC,$TTMSG
   5777	013004	000261 				SEC
   5778	013006				90$:	POP	<R0,R1>
	013006	012600 				 MOV	(SP)+,R0
	013010	012601 				 MOV	(SP)+,R1
   5779	013012					RETURN
	013012	000207 				 RTS	PC
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 134
$DFRD	-- DIAGNOSTIC READ FUNCTION

   5781						.TITLE	KLIFW -- PERFORM DIAGNOSTIC FUNCTION WRITE
   5782	013014					IDENT$	5,0
						.IDENT	/005000/
   5783					;
   5784					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5785					;
   5786					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5787					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5788					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5789					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5790					;
   5791					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5792					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5793					; EQUIPMENT CORPORATION.
   5794					;
   5795					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5796					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5797					;
   5798					; VERSION 05-00
   5799					;
   5800					; ALAN D. PECKHAM  29-MAR-77
   5801					;
   5802					; MODIFIED BY:
   5803					;
   5804					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   5805					;
   5806					; LOCAL MACROS
   5807					;
   5808						.MCALL	KLDW$,PREX$
   5809					;
   5810					; LOCAL DATA
   5811					;
   5812	001176					.PSECT	DATA,D
   5813	001176				DFWWDB:	KLDW$	0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION WRITE.
	001176	002411 				.WORD	400*5.+DR.DTE
	001200	   013 	   000 			.BYTE	DF.KLW,0/400
	001202	000242'				.WORD	.DFBLK
	001204	000256'				.WORD	.DREG
	001206	000000 				.WORD		0
   5814	001210				DFWEDB:	PREX$	0,.ZERO,DFWBF,ED.PHY ; PRIVLEDGED EXAMINE DPB.
	001210	   011 	   005 			.BYTE	DR.DTE,5
	001212	   015 	   200 			.BYTE	DF.PEX,ED.PHY
	001214	000000'				.WORD	.ZERO
	001216	001222'				.WORD	DFWBF
	001220	000000 				.WORD	0
   5815	001222				DFWBF:	WD36$	0 0		; EXAMINE SCRATCH BUFFER.
	001222	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001225	   000 	   000 			 .BYTE	BY$$3,BY$$4
   5816						.EVEN
   5817	002304					.PSECT	TEXT,D
   5818	002304				TFWEMS:	ERROR	<DF WRITE FAILED>
	002304	   077 	   040 	   104 		 .ASCIZ	\? DF WRITE FAILED\
	002307	   106 	   040 	   127
	002312	   122 	   111 	   124
	002315	   105 	   040 	   106
	002320	   101 	   111 	   114
	002323	   105 	   104 	   000
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 134-1
$DFRD	-- DIAGNOSTIC READ FUNCTION

   5819	013014					.PSECT
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 135
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   5821						.SBTTL	$DFWR	-- DIAGNOSTIC WRITE FUNCTION
   5822					;+
   5823					; PERFORM DIAGNOSTIC WRITE FUNCTION.
   5824					;
   5825					; INPUTS:
   5826					;	R1	- ADDRESS OF 36 BIT WORD TO WRITE.
   5827					;	R0	- FUNCTION CODE OF WRITE TO PERFORM.
   5828					;
   5829					; OUTPUTS:
   5830					;	CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
   5831					;-
   5832
   5833	013014				$DDFWR::
   5834	013014	000300 				SWAB	R0		; POSITION WRITE CODE
   5835	013016	006300 				ASL	R0		; SO
   5836	013020				$DFWR::
   5837	013020					PUSH	<R1,R0>
	013020	010146 				 MOV	R1,-(SP)
	013022	010046 				 MOV	R0,-(SP)
   5838	013024					CALL	LFWCKF		; TURN OFF CLOCK
	013024	004737 	013140'			 JSR	PC,LFWCKF
   5839	013030	103440 				BCS	90$
   5840	013032	000300 				SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   5841	013034	110037 	001201'			MOVB	R0,DFWWDB+3	; SET THE FUNCTION CODE IN DPB
   5842	013040	012700 	000242'			MOV	#.DFWBK,R0	; POINT TO TOP OF 3 WORDS FOR WRITE
   5843	013044	005701 				TST	R1		; TEST R1
   5844	013046	001405 				BEQ	10$		; BYPASS LOADING
   5845	013050	112120 				MOVB	(R1)+,(R0)+	; FILL IN DATA IN DEXWD3
   5846	013052	112120 				MOVB	(R1)+,(R0)+
   5847	013054	112120 				MOVB	(R1)+,(R0)+	; IN DEXWD2
   5848	013056	112120 				MOVB	(R1)+,(R0)+
   5849	013060	111110 				MOVB	(R1),(R0)	; IN DEXWD1
   5850	013062	042760 	177760 	000004 	10$:	BIC	#^C17,4(R0)	; JUST SAVE BITS 0-3 IN DEXWD1
   5851	013070					DIR$	#DFWWDB		; DO THE FUNCTION WRITE
	013070	012746 	001176'			MOV	#DFWWDB,-(SP)
	013074	104375 				EMT	375
   5852	013076					TRACK	FW,DFWWDB+3,.DFWBK
	013076	004037 	013110'			 JSR	R0,64$
	013102	053506 				 .WORD	"FW
	013104	001201'				 .WORD	DFWWDB+3
	013106	000242'				 .WORD	.DFWBK
	013110	004737 	022310'		64$:	 JSR	PC,$TRACK
	013114	012600 				 MOV	(SP)+,R0
   5853	013116	103005 				BCC	90$		; WRITE OKAY
   5854	013120				20$:	PRINT	#TFWEMS
	013120	012700 	002304'			 MOV	#TFWEMS,R0
	013124	004737 	025442'			 JSR	PC,$TTMSG
   5855	013130	000261 				SEC
   5856	013132				90$:	POP	<R0,R1>
	013132	012600 				 MOV	(SP)+,R0
	013134	012601 				 MOV	(SP)+,R1
   5857	013136					RETURN			; ERROR
	013136	000207 				 RTS	PC
KLIFW -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 136
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   5859					;+
   5860					; MAKE SURE THE KL CLOCK IS OFF FOR FUNCTION WRITE.
   5861					;
   5862					; NO INPUTS OR OUTPUTS.
   5863					;-
   5864
   5865	013140	105037 	000034'		LFWCKF:	CLRB	.DESW		; DEP/EXAM MUST START FRESH.
   5866	013144	105737 	000033'			TSTB	.CKSW		; TEST THE CLOCK CONDITION:
   5867	013150	100421 				BMI	90$		; OFF IS OKAY.
   5868	013152	003012 				BGT	10$		; ON - TURN IT OFF.
   5869	013154					DIR$	#DFWEDB		; OTHERWISE DETERMINATE...
	013154	012746 	001210'			MOV	#DFWEDB,-(SP)
	013160	104375 				EMT	375
   5870	013162	103006 				BCC	10$		; CLOCK IS ON ! STOP IT.
   5871	013164	022737 	000000G	000000G		CMP	#IE.EBX,$DSW	; EBOX STOPPED ?
   5872	013172	001410 				BEQ	90$		; YES, WE ARE OKAY.
   5873	013174					CALLR	$KLMR		; SOME HORRIBLE STATE...
	013174	000137 	014350'			 JMP	$KLMR
   5874	013200				10$:	PUSH	R0		; CLOCK IS ON -
	013200	010046 				 MOV	R0,-(SP)
   5875	013202	012700 	000000 			MOV	#.STPCL,R0	; TURN IT OFF
   5876	013206					CALL	$DFXC
	013206	004737 	013222'			 JSR	PC,$DFXC
   5877	013212					POP	R0
	013212	012600 				 MOV	(SP)+,R0
   5878	013214				90$:	RETURN
	013214	000207 				 RTS	PC
KLIFX -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 137
$DFWR	-- DIAGNOSTIC WRITE FUNCTION

   5880						.TITLE	KLIFX -- PERFORM DIAGNOSTIC FUNCTION EXECUTE
   5881	013216					IDENT$	5,1
						.IDENT	/005010/
   5882					;
   5883					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5884					;
   5885					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5886					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5887					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5888					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5889					;
   5890					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5891					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5892					; EQUIPMENT CORPORATION.
   5893					;
   5894					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5895					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5896					;
   5897					; VERSION 05-01
   5898					;
   5899					; ALAN D. PECKHAM  29-MAR-77
   5900					;
   5901					; MODIFIED BY:
   5902					;
   5903					;	R. BELANGER	24-AUG-77	FIX CROCK IN ".DESW" MAINTENANCE
   5904					;
   5905					; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
   5906					;
   5907					; LOCAL MACROS
   5908					;
   5909						.MCALL	KLDX$
   5910					;
   5911					; LOCAL VARIABLES
   5912					;
   5913	001230					.PSECT	DATA,D
   5914	001230				DFXXDB:	KLDX$	0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION EXECUTE.
	001230	002411 				.WORD	400*5.+DR.DTE
	001232	   014 	   000 			.BYTE	DF.KLX,0/400
	001234	000242'				.WORD	.DFBLK
	001236	000256'				.WORD	.DREG
	001240	000000 				.WORD	0
   5915						.EVEN
   5916	002326					.PSECT	TEXT,D
   5917	002326				TFXEMS:	ERROR	<DF EXECUTE FAILED>
	002326	   077 	   040 	   104 		 .ASCIZ	\? DF EXECUTE FAILED\
	002331	   106 	   040 	   105
	002334	   130 	   105 	   103
	002337	   125 	   124 	   105
	002342	   040 	   106 	   101
	002345	   111 	   114 	   105
	002350	   104 	   000
   5918	013216					.PSECT
KLIFX -- PERFORM DIAGNOSTIC FUN	MACRO M1110  15-OCT-79 14:14  PAGE 138
$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION

   5920						.SBTTL	$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION
   5921					;+
   5922					; PERFORM A DIAGNOSTIC EXECUTE FUNCTION.
   5923					;
   5924					; INPUTS:
   5925					;	R0	- EXECUTE FUNCTION CODE.
   5926					;
   5927					; OUTPUTS:
   5928					;	CARRY IS SET IF OPERATION FAILS.
   5929					;-
   5930
   5931	013216				$DDFXC::
   5932	013216	000300 				SWAB	R0		; POSITION EXECUTE CODE
   5933	013220	006300 				ASL	R0		; SO
   5934	013222				$DFXC::
   5935	013222					PUSH	<R1,R0>
	013222	010146 				 MOV	R1,-(SP)
	013224	010046 				 MOV	R0,-(SP)
   5936	013226	022700 	001000 			CMP	#.STRCL,R0	; START CLOCK ?
   5937	013232	001411 				BEQ	10$
   5938	013234	022700 	007000 			CMP	#.SETMR,R0	; DOES IT STOP CLOCK ?
   5939	013240	002414 				BLT	20$
   5940	013242	112737 	177777 	000033'		MOVB	#-1,.CKSW	; INDICATE CLOCK STOPPED.
   5941	013250	105037 	000034'			CLRB	.DESW		; DEP/EXAM MUST START FRESH.
   5942	013254	000406 				BR	20$
   5943	013256	112737 	000001 	000033'	10$:	MOVB	#+1,.CKSW	; INDICATE CLOCK STARTED.
   5944	013264	112737 	000001 	000034'		MOVB	#1,.DESW
   5945	013272	000300 			20$:	SWAB	R0		; GET FUNCTION CODE TO LOW BYTE
   5946	013274	110037 	001233'			MOVB	R0,DFXXDB+3	; SET FUNCTION CODE IN DPB
   5947	013300					TRACK	FX,DFXXDB+3
	013300	004037 	013312'			 JSR	R0,64$
	013304	054106 				 .WORD	"FX
	013306	001233'				 .WORD	DFXXDB+3
	013310	000000 				 .WORD
	013312	004737 	022310'		64$:	 JSR	PC,$TRACK
	013316	012600 				 MOV	(SP)+,R0
   5948	013320					DIR$	#DFXXDB
	013320	012746 	001230'			MOV	#DFXXDB,-(SP)
	013324	104375 				EMT	375
   5949	013326	103007 				BCC	30$
   5950	013330	105037 	000033'			CLRB	.CKSW		; CLOCK STATUS INDETERMINATE.
   5951	013334					PRINT	#TFXEMS		; INDICATE FUNC EX FAILED
	013334	012700 	002326'			 MOV	#TFXEMS,R0
	013340	004737 	025442'			 JSR	PC,$TTMSG
   5952	013344	000261 				SEC
   5953	013346				30$:	POP	<R0,R1>
	013346	012600 				 MOV	(SP)+,R0
	013350	012601 				 MOV	(SP)+,R1
   5954	013352					RETURN
	013352	000207 				 RTS	PC
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1110  15-OCT-79 14:14  PAGE 139
$DFXC	-- DIAGNOSTIC EXECUTE FUNCTION

   5956						.TITLE	KLIGC -- SET CACHE CONFIGURATION TABLES
   5957	013354					IDENT$	5,0
						.IDENT	/005000/
   5958					;
   5959					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   5960					;
   5961					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   5962					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   5963					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   5964					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   5965					;
   5966					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   5967					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   5968					; EQUIPMENT CORPORATION.
   5969					;
   5970					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   5971					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   5972					;
   5973					; VERSION 05-00
   5974					;
   5975					; ALAN D. PECKHAM  12-APR-77
   5976					;
   5977					; MODIFIED BY:
   5978					;
   5979					; FUNCTION: THIS MODULE SETS UP THE CACHE CONFIGURATION TABLES
   5980					;  EITHER FROM THE CONFIGURATION FILE OR FOR ALL CACHES.
   5981					;
   5983					; LOCAL DATA
   5984					;
   5985	001242					.PSECT	DATA,D
   5986	001242	043240 	000000 	000000 	DGCFNM:	.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001250	011667
   5987	001252	000000 				.WORD	0		; GET LATEST VERSION.
   5988	001254	   005 	   005 			.BYTE	5,5
   5989	001256	054523 	000000 			.WORD	"SY,0
   5990	002352					.PSECT	TEXT,D
   5991	002352				TGCNFL:	WARNING	<NO FILE - ALL CACHE BEING CONFIGURED>
	002352	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - ALL CACHE BEING CONFIGURED\
	002355	   117 	   040 	   106
	002360	   111 	   114 	   105
	002363	   040 	   055 	   040
	002366	   101 	   114 	   114
	002371	   040 	   103 	   101
	002374	   103 	   110 	   105
	002377	   040 	   102 	   105
	002402	   111 	   116 	   107
	002405	   040 	   103 	   117
	002410	   116 	   106 	   111
	002413	   107 	   125 	   122
	002416	   105 	   104 	   000
   5992	013354					.PSECT
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1110  15-OCT-79 14:14  PAGE 140
$GETCA	-- SET CACHE CONFIGURATION TABLES

   5994						.SBTTL	$GETCA	-- SET CACHE CONFIGURATION TABLES
   5995					;+
   5996					; GET CACHES TO BE ENABLED FROM FILE OR SET TO CONFIGURE ALL CACHE.
   5997					;
   5998					; INPUTS:
   5999					;	.DCSW	- IF NON-NEGATIVE THEN USE LAST CONFIGURATION, OTHERWISE
   6000					;		  SET FOR ALL CACHE.
   6001					;
   6002					; OUTPUTS:
   6003					;	.NCACH	- NUMBER OF CACHES TO USE.
   6004					;	.CACHN	- NUMBERS OF THE CACHES TO BE USED.
   6005					;-
   6006
   6007	013354	105737 	000027'		$GETCA::TSTB	.DCSW		; IF LAST CONFIGURATION INDICATED
   6008	013360	002417 				BLT	20$
   6009	013362	012700 	001242'			MOV	#DGCFNM,R0	; THEN FIND CONFIGURATION FILE.
   6010	013366					CALL	$LOOKUP
	013366	004737 	007024'			 JSR	PC,$LOOKUP
   6011	013372	103030 				BCC	50$
   6012	013374	122737 	000000G	000470'		CMPB	#IE.NSF,.SYSTA	; IF NO FILE
   6013	013402	001060 				BNE	90$
   6014	013404					PRINT	#TGCNFL		; (NO FILE, OPERATOR !)
	013404	012700 	002352'			 MOV	#TGCNFL,R0
	013410	004737 	025442'			 JSR	PC,$TTMSG
   6015	013414	105237 	000027'		10$:	INCB	.DCSW		; THEN CONFIGURE ALL 4.
   6016	013420	012701 	000051'		20$:	MOV	#.CACHN,R1	; FIX TABLES
   6017	013424	005004 				CLR	R4
   6018	013426	110421 			30$:	MOVB	R4,(R1)+
   6019	013430	005204 				INC	R4
   6020	013432	022704 	000004 			CMP	#4,R4		; FOR FOUR CACHES.
   6021	013436	001373 				BNE	30$
   6022	013440	110437 	000050'			MOVB	R4,.NCACH
   6023	013444					RETURN
	013444	000207 				 RTS	PC
   6024	013446				40$:	CALL	$READS
	013446	004737 	007516'			 JSR	PC,$READS
   6025	013452	103434 				BCS	90$
   6026	013454				50$:	CALL	$READC		; GET A RECORD
	013454	004737 	007460'			 JSR	PC,$READC
   6027	013460	103431 				BCS	90$
   6028	013462	022700 	000002 			CMP	#2,R0		; IF IT IS THE CACHE RECORD,
   6029	013466	001405 				BEQ	60$		; THEN PROCESS IT.
   6030	013470	005700 				TST	R0		; IF NOT END-OF-FILE
   6031	013472	001365 				BNE	40$		; THEN GET NEW RECORD.
   6032	013474					CALL	$CLOSE		; OTHERWISE CLOSE FILE
	013474	004737 	006320'			 JSR	PC,$CLOSE
   6033	013500	000745 				BR	10$		; AND USE ALL CACHES.
   6034	013502				60$:	CALL	$READB		; PICK UP
	013502	004737 	007662'			 JSR	PC,$READB
   6035	013506	103416 				BCS	90$
   6036	013510	110004 				MOVB	R0,R4		; NUMBER OF CACHES
   6037	013512	001410 				BEQ	80$
   6038	013514	010002 				MOV	R0,R2		; AND
   6039	013516	012701 	000051'			MOV	#.CACHN,R1
   6040	013522				70$:	CALL	$READB
	013522	004737 	007662'			 JSR	PC,$READB
   6041	013526	103406 				BCS	90$
KLIGC -- SET CACHE CONFIGURATIO	MACRO M1110  15-OCT-79 14:14  PAGE 140-1
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6042	013530	110021 				MOVB	R0,(R1)+	; AND CACHE NUMBERS.
   6043	013532	077205 				SOB	R2,70$
   6044	013534	110437 	000050'		80$:	MOVB	R4,.NCACH	; SET THE NUMBER OF CACHES
   6045	013540					CALLR	$CLOSE		; AND ALL FINISHED.
	013540	000137 	006320'			 JMP	$CLOSE
   6046	013544				90$:	CALL	$PURGE		; ERROR EXIT.
	013544	004737 	007366'			 JSR	PC,$PURGE
   6047	013550	000261 				SEC
   6048	013552					RETURN
	013552	000207 				 RTS	PC
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1110  15-OCT-79 14:14  PAGE 141
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6051						.TITLE	KLIGM -- SET UP MEMORY CONFIGURATION TABLES
   6052	013554					IDENT$	11,04,KLI$$F
						.IDENT	/A11040/
   6053					;
   6054					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6055					;
   6056					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6057					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6058					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6059					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6060					;
   6061					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6062					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6063					; EQUIPMENT CORPORATION.
   6064					;
   6065					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6066					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6067					;
   6068					; VERSION 11-04
   6069					;
   6070					; ALAN D. PECKHAM  12-APR-77
   6071					;
   6072					; MODIFIED BY:
   6073					;
   6074					;	R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   6075					;					TCO 4.2204
   6076					;	R. BELANGER	25-JUL-78	INTEGRATE MOS CONFIGURATOR
   6077					;
   6078					; FUNCTION: THIS MODULE SETS UP THE MEMORY CONFIGURATION TABLES TO REFLECT
   6079					;  THE LAST MEMORY CONFIGURATION OR TO USE ALL MEMORY AVAILABLE.
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1110  15-OCT-79 14:14  PAGE 142
$GETCA	-- SET CACHE CONFIGURATION TABLES

   6081					;
   6082					; LOCAL DATA
   6083					;
   6084	001262					.PSECT	DATA,D
   6085	001262				DGMFNM:
   6086	001262	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME.
	001270	011667
   6087	001272	000000 				.WORD	0		; GET LATEST VERSION.
   6088	001274	   005 	   005 			.BYTE	5,5
   6089	001276	054523 	000000 			.WORD	"SY,0
   6090	002421					.PSECT	TEXT,D
   6091	002421				TGMNFL:
   6092	002421					WARNING	<NO FILE - ALL MEMORY BEING CONFIGURED>
	002421	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - ALL MEMORY BEING CONFIGURED\
	002424	   117 	   040 	   106
	002427	   111 	   114 	   105
	002432	   040 	   055 	   040
	002435	   101 	   114 	   114
	002440	   040 	   115 	   105
	002443	   115 	   117 	   122
	002446	   131 	   040 	   102
	002451	   105 	   111 	   116
	002454	   107 	   040 	   103
	002457	   117 	   116 	   106
	002462	   111 	   107 	   125
	002465	   122 	   105 	   104
	002470	   000
   6093	013554					.PSECT
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1110  15-OCT-79 14:14  PAGE 143
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6095						.SBTTL	$GETMM	-- SET UP MEMORY CONFIGURATION TABLES
   6096					;+
   6097					; GET THE LAST CONFIGURATION FROM THE CONFIGURATION FILE. IF THERE IS NO
   6098					; FILE, THEN CONFIGURE FOR ALL MEMORY.
   6099					;
   6100					; OUTPUTS:
   6101					;	.DMSW	- MADE NEGATIVE IF ALL MEMORY IS TO BE CONFIGURED (NO FILE).
   6102					;	.CTLTP	- TABLE OF DESIRED CONTROLLERS
   6103					;	.CFGTB	- TABLE OF CONFIGURATION MASKS
   6104					;	.CFMRV	- FORWARD/REVERSE CONFIGURATION INDICATOR
   6105					;-
   6106
   6107	013554				$GETMM::
   6108	013554	105037 	000040'			CLRB	.MFCT		; INIT COUNTER TO ZERO
   6109	013560	012701 	000040 			MOV	#CTLS,R1	; INIT COUNTER
   6110	013564	012700 	000120'			MOV	#.CFGTB,R0	; TABLE POINTER TO R0
   6111	013570	112761 	177777 	000056'		MOVB	#-1,.CTLTP(R1)	; [TCO 4.2204] INIT ".CFMRV" CONTROLLER TYPE TO -1
   6112	013576				10$:
   6113	013576	012720 	100000 			MOV	#BIT15,(R0)+	; INVALIDATE THE CONFIGURATION TABLE
   6114	013602	105061 	000055'			CLRB	.CTLTP-1(R1)	; AND THE CONTROLLER TABLE
   6115	013606	077105 				SOB	R1,10$		; LOOP TILL DONE
   6116	013610	005010 				CLR	(R0)		; [TCO 4.2204] INIT TO FORWARD CONFIGURATION
   6117	013612	012700 	001262'			MOV	#DGMFNM,R0	; LOOK FOR CONFIGURATION FILE
   6118	013616					CALL	$LOOKUP
	013616	004737 	007024'			 JSR	PC,$LOOKUP
   6119	013622	103016 				BCC	50$
   6120	013624	122737 	000000G	000470'		CMPB	#IE.NSF,.SYSTA	; IF NO FILE
   6121	013632	001070 				BNE	90$		; OTHER ERROR -- FATAL
   6122	013634					PRINT	#TGMNFL		; (NO FILE, OPERATOR !)
	013634	012700 	002421'			 MOV	#TGMNFL,R0
	013640	004737 	025442'			 JSR	PC,$TTMSG
   6123	013644				20$:
   6124	013644	105337 	000030'			DECB	.DMSW		; THEN USE ALL MEMORY.
   6125	013650				30$:
   6126	013650					RETURN			; TO CALLER
	013650	000207 				 RTS	PC
   6127					;
   6128					; HERE TO SKIP PRECEEDING NON-CONTROLLER RECORDS
   6129					;
   6130	013652				40$:
   6131	013652					CALL	$READS
	013652	004737 	007516'			 JSR	PC,$READS
   6132	013656	103456 				BCS	90$
   6133	013660				50$:
   6134	013660					CALL	$READC		; GET A RECORD.
	013660	004737 	007460'			 JSR	PC,$READC
   6135	013664	103453 				BCS	90$
   6136	013666	022700 	000001 			CMP	#1,R0		; IF IT A CONTROLLER RECORD
   6137	013672	001404 				BEQ	60$		; THEN PROCESS, OTHERWISE
   6138	013674	002766 				BLT	40$		; IF NOT END OF FILE, GET ANOTHER.
   6139	013676					CALL	$CLOSE		; IF NO CONTROLLER RECORDS
	013676	004737 	006320'			 JSR	PC,$CLOSE
   6140	013702	000760 				BR	20$		; THEN USE ALL MEMORY.
   6141						;
   6142					;
   6143					; HERE TO READ AND PROCESS A CONTROLLER RECORD
   6144					;
KLIGM -- SET UP MEMORY CONFIGUR	MACRO M1110  15-OCT-79 14:14  PAGE 143-1
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6145	013704				60$:
   6146	013704					CALL	$READB		; GET A CONTROLLER INDEX
	013704	004737 	007662'			 JSR	PC,$READB
   6147	013710	103441 				BCS	90$
   6148	013712	010001 				MOV	R0,R1		; COPY TO R1
   6149	013714					CALL	$READB		; GET CONTROLLER TYPE.
	013714	004737 	007662'			 JSR	PC,$READB
   6150	013720	103435 				BCS	90$
   6151	013722	110061 	000056'			MOVB	R0,.CTLTP(R1)	; SET IN TABLE
   6152	013726					CALL	$READW		; GET CONFIGURATION MASK
	013726	004737 	007566'			 JSR	PC,$READW
   6153	013732	103430 				BCS	90$
   6154	013734	006301 				ASL	R1		; WORD INDEX
   6155	013736	010061 	000120'			MOV	R0,.CFGTB(R1)	; SET THAT IN THE TABLE
   6156	013742	002413 				BLT	80$		; GO ON IF NOT DESIRED
   6157	013744	006201 				ASR	R1		; BACK TO BYTE INDEX
   6158	013746	122761 	000005 	000056'		CMPB	#5,.CTLTP(R1)	; IS THIS ONE AN MF20??
   6159	013754	001006 				BNE	80$		; NO -- GO ON
   6160	013756	105237 	000040'			INCB	.MFCT		; YES -- MARK THAT WE EXPECT AT LEAST THIS ONE
   6161	013762	000403 				BR	80$		; AND TRY FOR NEXT RECORD
   6162						;
   6163					;
   6164					; HERE TO SKIP TRAILING NON-CONTROLLER RECORDS
   6165					;
   6166	013764				70$:
   6167	013764					CALL	$READS		; BYPASS RECORD.
	013764	004737 	007516'			 JSR	PC,$READS
   6168	013770	103411 				BCS	90$
   6169	013772				80$:
   6170	013772					CALL	$READC		; GET ANOTHER RECORD
	013772	004737 	007460'			 JSR	PC,$READC
   6171	013776	103406 				BCS	90$		; AND
   6172	014000	022700 	000001 			CMP	#1,R0		; IF A CONTROLLER RECORD
   6173	014004	001737 				BEQ	60$		; THEN PROCESS, OTHERWISE
   6174	014006	002766 				BLT	70$		; REJECT RECORDS UNTIL EOF.
   6175	014010					CALLR	$CLOSE		; CLOSE FILE AND RETURN.
	014010	000137 	006320'			 JMP	$CLOSE
   6176						;
   6177	014014				90$:
   6178	014014					CALL	$PURGE
	014014	004737 	007366'			 JSR	PC,$PURGE
   6179	014020	000261 				SEC			; SO RETURN WITH ERROR.
   6180	014022					RETURN
	014022	000207 				 RTS	PC
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 144
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

   6182					.TITLE	KLIGT -- READ MF20 TIMING FILE DATA
   6183	014024					IDENT$	10,0,KLI$$F
						.IDENT	/A10000/
   6184					;
   6185					;                             COPYRIGHT (C) 1975, 1978 BY
   6186					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6187					;
   6188					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6189					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6190					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6191					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6192					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6193					;
   6194					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6195					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6196					;       CORPORATION.
   6197					;
   6198					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6199					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6200					;
   6201					;
   6202					;	MODULE: MF20 TIMING FILE INPUT
   6203					;
   6204					;	VERSION: 10-00
   6205					;
   6206					;	DATE: 22-MAY-78
   6207					;
   6208					;	AUTHOR: R. BELANGER
   6209					;
   6210					;	MODIFICATIONS:
   6211					;
   6212					;	NO.	DATE		PROGRAMMER	REASON
   6213					;	---	----		----------	------
   6214
   6215	002471					.PSECT	TEXT,D
   6216	002471				TGTCKE:
   6217	002471					ERROR	<MF20 TIMING FILE CHECKSUM ERROR>
	002471	   077 	   040 	   115 		 .ASCIZ	\? MF20 TIMING FILE CHECKSUM ERROR\
	002474	   106 	   062 	   060
	002477	   040 	   124 	   111
	002502	   115 	   111 	   116
	002505	   107 	   040 	   106
	002510	   111 	   114 	   105
	002513	   040 	   103 	   110
	002516	   105 	   103 	   113
	002521	   123 	   125 	   115
	002524	   040 	   105 	   122
	002527	   122 	   117 	   122
	002532	   000
   6218	002533				TGTNFL:
   6219	002533					ERROR	<NO MF20 TIMING FILE>
	002533	   077 	   040 	   116 		 .ASCIZ	\? NO MF20 TIMING FILE\
	002536	   117 	   040 	   115
	002541	   106 	   062 	   060
	002544	   040 	   124 	   111
	002547	   115 	   111 	   116
	002552	   107 	   040 	   106
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 144-1
$GETMM	-- SET UP MEMORY CONFIGURATION TABLES

	002555	   111 	   114 	   105
	002560	   000
   6220	002561				TGTIFF:
   6221	002561					ERROR	<ILLEGAL MF20 TIMING FILE FORMAT>
	002561	   077 	   040 	   111 		 .ASCIZ	\? ILLEGAL MF20 TIMING FILE FORMAT\
	002564	   114 	   114 	   105
	002567	   107 	   101 	   114
	002572	   040 	   115 	   106
	002575	   062 	   060 	   040
	002600	   124 	   111 	   115
	002603	   111 	   116 	   107
	002606	   040 	   106 	   111
	002611	   114 	   105 	   040
	002614	   106 	   117 	   122
	002617	   115 	   101 	   124
	002622	   000
   6222	002623				TGTRFE:
   6223	002623					ERROR	<MF20 TIMING FILE READ ERROR>
	002623	   077 	   040 	   115 		 .ASCIZ	\? MF20 TIMING FILE READ ERROR\
	002626	   106 	   062 	   060
	002631	   040 	   124 	   111
	002634	   115 	   111 	   116
	002637	   107 	   040 	   106
	002642	   111 	   114 	   105
	002645	   040 	   122 	   105
	002650	   101 	   104 	   040
	002653	   105 	   122 	   122
	002656	   117 	   122 	   000
   6224	014024					.PSECT
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 145
$GETTF -- READ MF20 TIMING FILE DATA

   6226					.SBTTL	$GETTF -- READ MF20 TIMING FILE DATA
   6227
   6228					;+
   6229					; $GETTF -- SUBROUTINE TO READ AND DEASCIIZE AN MF20 TIMING RAM DATA FILE
   6230					;
   6231					; INPUTS:
   6232					;
   6233					;	R0 -- POINTS TO CALLER'S BUFFER
   6234					;	TMFLNM -- TIMING FILE FILENAME
   6235					;
   6236					; OUTPUTS:
   6237					;
   6238					;	R0 - R5 UNCHANGED
   6239					;	DATA IS IN CALLER'S BUFFER
   6240					;	CC-C SET ON ERROR; CLEAR ON SUCCESS
   6241					;-
   6242
   6243	014024				$GETTF::
   6244	014024				RDATIM::
   6245	014024					CALL	R5,$RSAVE	; SAVE REGISTERS
	014024	004537 	022242'			 JSR	R5,$RSAVE
   6246	014030	012705 	000000G			MOV	#TMFLNM,R5	; POINT TO THE ASCII FILENAME
   6247	014034	010004 				MOV	R0,R4		; DESTINATION POINTER TO R4
   6248	014036	012700 	000442'			MOV	#.USRFN,R0	; POINT TO USER FILENAME BLOCK
   6249	014042					PUSH	R0		; SAVE R0 FOR LATER
	014042	010046 				 MOV	R0,-(SP)
   6250	014044					CALL	$TRF2B		; LOAD THE FILENAME BLOCK
	014044	004737 	023136'			 JSR	PC,$TRF2B
   6251	014050					POP	R0		; RESTORE FILNAME BLOCK POINTER
	014050	012600 				 MOV	(SP)+,R0
   6252	014052					CALL	$LOOKUP		; LOOKUP THE FILE
	014052	004737 	007024'			 JSR	PC,$LOOKUP
   6253	014056	103013 				BCC	20$		; FOUND THE FILE OK
   6254	014060	022737 	000000G	000470'		CMP	#IE.NSF,.SYSTA	; DOES THE FILE EXIST??
   6255	014066	001005 				BNE	10$		; YES -- CALL ERROR ROUTINE
   6256	014070					PRINT	#TGTNFL		; NO -- SAY SO AND QUIT
	014070	012700 	002533'			 MOV	#TGTNFL,R0
	014074	004737 	025442'			 JSR	PC,$TTMSG
   6257	014100	000467 				BR	RTFXIT		; EXIT
   6258						;
   6259	014102				10$:
   6260	014102					CALLR	$IOERR		; REPORT THE ERROR AND QUIT
	014102	000137 	006610'			 JMP	$IOERR
   6261						;
   6262					;
   6263					; MAIN CONVERSION LOOP
   6264					;
   6265					; THIS LOOP CONVERTS THE DATA IN AN ASCIIZED "A11" FORMAT FILE TO BINARY.
   6266					;
   6267					; RECORDS WHICH BEGIN WITH A SEMI-COLON (COMMENT) ARE SIMPLY SKIPPED OVER
   6268					;
   6269					; RECORDS WHICH BEGIN WITH AN "E<SPACE>" ARE CONVERTED TO BINARY AND RETURNED TO
   6270					; THE CALLER
   6271					;
   6272					; ANY OTHER FORMAT CONSTITUTES A FATAL ERROR
   6273					;
   6274					; REGISTER SUMMARY:
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 145-1
$GETTF -- READ MF20 TIMING FILE DATA

   6275					;
   6276					;	R0 -- LAST CHARACTER READ FROM FILE
   6277					;	R1 -- LAST WORD CONVERTED FROM FILE
   6278					;	R2 -- RECORD WORD COUNT
   6279					;	R4 -- TRANSFER POINTER
   6280					;	R5 -- CHECKSUM
   6281					;
   6282	014106				20$:
   6283	014106					CALL	$READC		; READ THE RECORD BYTE COUNT
	014106	004737 	007460'			 JSR	PC,$READC
   6284									; AND RETURN FIRST WORD IN R0
   6285	014112	103454 				BCS	RTFERR		; ERROR IF CC-C SET
   6286	014114	122700 	000073 			CMPB	#';,R0		; IS IT A COMMENT LINE??
   6287	014120	001410 				BEQ	40$		; YES -- GO EAT IT UP
   6288	014122	022700 	020105 			CMP	#"E ,R0		; NO -- IS IT A DATA LINE??
   6289	014126	001411 				BEQ	50$		; YES -- GO CONVERT IT
   6290	014130				30$:
   6291	014130					PRINT	#TGTIFF		; NO -- COMPLAIN
	014130	012700 	002561'			 MOV	#TGTIFF,R0
	014134	004737 	025442'			 JSR	PC,$TTMSG
   6292	014140	000445 				BR	RTFERX		; AND EXIT
   6293						;
   6294					;
   6295					; HERE TO READ AND DISCARD A COMMENT LINE
   6296					;
   6297	014142				40$:
   6298	014142					CALL	$READS		; SKIP OVER THIS RECORD
	014142	004737 	007516'			 JSR	PC,$READS
   6299	014146	103436 				BCS	RTFERR		; ERROR IF CC-C IS SET
   6300	014150	000756 				BR	20$		; GO START THE NEXT RECORD
   6301						;
   6302					;
   6303					; HERE TO READ AND CONVERT A DATA LINE
   6304					;
   6305	014152				50$:
   6306	014152	005005 				CLR	R5		; RESET THE CHECKSUM
   6307					;
   6308					; READ THE RECORD DATA WORD COUNT
   6309					; IF .EQ. 0, THEN WE ARE AT THE LOGICAL END-OF-FILE
   6310					;
   6311	014154					CALL	CNVWRD		; CONVERT THE WORD COUNT
	014154	004737 	014272'			 JSR	PC,CNVWRD
   6312	014160	103437 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6313	014162	010102 				MOV	R1,R2		; WORD COUNT TO R2
   6314	014164	001425 				BEQ	70$		; LOGICAL END-OF-FILE IF .EQ. 0
   6315					;
   6316					; CONVERT AND DISCARD THE ADDRESS POINTER (FIXED-ADDRESS FILES ONLY)
   6317					;
   6318	014166					CALL	CNVWRD		; GET OVER THE ADDRESS WORD
	014166	004737 	014272'			 JSR	PC,CNVWRD
   6319	014172	103432 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6320					;
   6321					; THIS LOOP CONVERTS ALL WORDS IN ONE RECORD
   6322					;
   6323	014174				60$:
   6324	014174					CALL	CNVWRD		; CONVERT THE DATA
	014174	004737 	014272'			 JSR	PC,CNVWRD
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 145-2
$GETTF -- READ MF20 TIMING FILE DATA

   6325	014200	103427 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6326	014202	122700 	000054 			CMPB	#',,R0		; DELIMITER OK??
   6327	014206	001350 				BNE	30$		; NO -- COMPLAIN AND DIE
   6328	014210	010124 				MOV	R1,(R4)+	; YES -- RETURN CONVERTED WORD TO CALLER
   6329	014212	077210 				SOB	R2,60$		; GET ALL WORDS FROM THIS RECORD
   6330					;
   6331					; NOW VERIFY CHECKSUM
   6332					;
   6333	014214					CALL	CNVCHK		; READ THE CHECKSUM
	014214	004737 	014264'			 JSR	PC,CNVCHK
   6334	014220	103417 				BCS	RTFXIT		; ERROR IF CC-C IS SET
   6335	014222	005705 				TST	R5		; IS THE CHECKSUM OK??
   6336	014224	001730 				BEQ	20$		; YES -- GO ON TO THE NEXT RECORD
   6337	014226					PRINT	#TGTCKE		; NO -- COMPLAIN
	014226	012700 	002471'			 MOV	#TGTCKE,R0
	014232	004737 	025442'			 JSR	PC,$TTMSG
   6338	014236	000406 				BR	RTFERX		; AND EXIT
   6339						;
   6340					;
   6341					; HERE TO CLOSE THE FILE AND RETURN SUCCESS
   6342					;
   6343	014240				70$:
   6344	014240					CALLR	$CLOSE		; CLOSE THE FILE AND EXIT
	014240	000137 	006320'			 JMP	$CLOSE
   6345						;
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 146
$GETTF -- READ MF20 TIMING FILE DATA

   6347					;
   6348					; READ ERROR ROUTINE
   6349					;
   6350	014244				RTFERR:
   6351	014244					PRINT	#TGTRFE		; ERROR MESSAGE
	014244	012700 	002623'			 MOV	#TGTRFE,R0
	014250	004737 	025442'			 JSR	PC,$TTMSG
   6352					;
   6353					; CLOSE FILE FOR ERROR RETURN
   6354					;
   6355	014254				RTFERX:
   6356	014254					CALL	$CLOSE		; CLOSE THE FILE
	014254	004737 	006320'			 JSR	PC,$CLOSE
   6357	014260				RTFXIT:
   6358	014260	000261 				SEC			; SET THE ERROR FLAG
   6359	014262					RETURN			; TO CALLER
	014262	000207 				 RTS	PC
   6360					;
   6361					; MAIN CONVERSION SUBROUTINE
   6362					;
   6363					; UP TO THREE BYTES ARE READ FROM THE FILE AND CONVERTED TO BINARY
   6364					; THE RECORD CHECKSUM IS ALSO ACCUMULATED BY THIS ROUTINE
   6365					;
   6366					; INPUTS:
   6367					;
   6368					;	NONE
   6369					;
   6370					; OUTPUTS:
   6371					;
   6372					;	R0 -- LAST CHARACTER FROM FILE
   6373					;	R1 -- CONVERTED WORD
   6374					;	R5 -- UPDATED CHECKSUM
   6375					;
   6376						.ENABL	LSB
   6377	014264				CNVCHK:
   6378	014264	013703 	000476'			MOV	.SYIRC,R3	; SYNCHRONIZE THE BYTE COUNTS
   6379	014270	000402 				BR	10$		; COMPUTE THE FINAL CHECKSUM
   6380						;
   6381	014272				CNVWRD:
   6382	014272	012703 	000004 			MOV	#4,R3		; MAXIMUM FIELD WIDTH IS 4 BYTES
   6383	014276				10$:
   6384	014276	005001 				CLR	R1		; INIT RETURNED WORD
   6385	014300				20$:
   6386	014300					CALL	$READB		; READ A BYTE FROM THE FILE
	014300	004737 	007662'			 JSR	PC,$READB
   6387	014304	103757 				BCS	RTFERR		; ERROR IF CC-C IS SET
   6388	014306	122700 	000054 			CMPB	#',,R0		; NO -- END-OF-FIELD??
   6389	014312	001413 				BEQ	30$		; YES -- EXIT
   6390	014314					PUSH	R0		; NO -- CONVERT IT
	014314	010046 				 MOV	R0,-(SP)
   6391	014316	042716 	177700 			BIC	#^C77,(SP)	; SO
   6392	014322	006301 				ASL	R1		; POSITION PREVIOUS BYTE
   6393	014324	006301 				ASL	R1		; SO
   6394	014326	006301 				ASL	R1		; ...
   6395	014330	006301 				ASL	R1		; ...
   6396	014332	006301 				ASL	R1		; ...
   6397	014334	006301 				ASL	R1		; DONE
KLIGT -- READ MF20 TIMING FILE 	MACRO M1110  15-OCT-79 14:14  PAGE 146-1
$GETTF -- READ MF20 TIMING FILE DATA

   6398	014336	052601 				BIS	(SP)+,R1	; SET THE NEW BYTE IN THE WORD
   6399	014340	077321 				SOB	R3,20$		; AND TRY AGAIN
   6400	014342				30$:
   6401	014342	060105 				ADD	R1,R5		; UPDATE CHECKSUM
   6402	014344	000241 				CLC			; INSURE CC-C IS CLEAR
   6403	014346					RETURN			; TO CALLER
	014346	000207 				 RTS	PC
   6404
   6405						.DSABL	LSB
KLIMR -- KL RESET ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 147
$GETTF -- READ MF20 TIMING FILE DATA

   6407						.TITLE	KLIMR -- KL RESET ROUTINES
   6408	014350					IDENT$	5,0
						.IDENT	/005000/
   6409					;
   6410					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6411					;
   6412					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6413					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6414					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6415					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6416					;
   6417					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6418					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6419					; EQUIPMENT CORPORATION.
   6420					;
   6421					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6422					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6423					;
   6424					; VERSION 05-00
   6425					;
   6426					; ALAN D. PECKHAM  29-MAR-77
   6427					;
   6428					; MODIFIED BY:
   6429					;
   6430					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO DO A FULL MASTER RESET
   6431					;  AND A PARTIAL RESET FOR RAM ADDRESS CLEARING.
   6432					;
KLIMR -- KL RESET ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 148
$GETTF -- READ MF20 TIMING FILE DATA

   6434					;
   6435					; LOCAL DATA
   6436					;
   6437	001302					.PSECT	DATA,D
   6438	001302	035000 	001432'			.WORD	72*400,DMRKW2	; SELECT KW20/22 FOR MOS SYSTEMS
   6439	001306	022000 	000000'		DMRMRT:	.WORD	.LDSEL/2,.ZERO	; CLOCK LOAD FUNC #44
   6440	001312	100000 				.WORD	.STPCL/2+BIT15	; STOP THE CLOCK
   6441	001314	103400 				.WORD	.SETMR/2+BIT15	; SET RESET
   6442	001316	023000 	000000'			.WORD	.LDCK1/2,.ZERO	; LOAD CLK PARITY CHECK & FS CHECK
   6443	001322	023400 	000000'			.WORD	.LDCK2/2,.ZERO	; LOAD CLK MBOX CYCLE DISABLES,
   6444									; PARITY CHECK, ERROR STOP ENABLE
   6445	001326	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6446	001332	021400 	000000'			.WORD	.LDBRL/2,.ZERO	; LOAD BURST COUNTER (128,64,32,16)
   6447	001336	022400 	000000'			.WORD	.LDDIS/2,.ZERO	; LOAD EBOX CLOCK DISABLE
   6448	001342	100400 				.WORD	.STRCL/2+BIT15	; START THE CLOCK
   6449	001344	034000 	000000'			.WORD	.INICL/2,.ZERO	; INIT CHANNELS
   6450	001350	021000 	000000'			.WORD	.LDBRR/2,.ZERO	; LOAD BURST COUNTER (8,4,2,1)
   6451	001354	000000 				.WORD	0
   6452	001356	102000 				.WORD	.CECLK/2+BIT15	; CONDITIONAL SINGLE STEP
   6453	001360	103000 				.WORD	.CLRMR/2+BIT15	; CLEAR RESET
   6454	001362	033400 	000000'			.WORD	.EIOJA/2,.ZERO	; ENABLE KL STL DECODING OF CODES & AC'S
   6455	001366	037000 	000000'			.WORD	.MEMRS/2,.ZERO	; SET KL10 MEM RESET FLOP
   6456	001372	034400 	001400'			.WORD	.WRMBX/2,DMRMMR	; WRITE M-BOX
   6457	001376	000000 				.WORD	0
   6458	001400				DMRMMR:	WD36$	0 12		; FOR MEMORY RESET
	001400	   012 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001403	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6459						.EVEN
   6460
   6461	001406	007000 			DMRSRT:	.WORD	.SETMR		; SET RESET.
   6462	001410	001000 				.WORD	.STRCL		; START THE CLOCK.
   6463	001412	000000 				.WORD	.STPCL		; STOP THE CLOCK.
   6464	001414	004000 				.WORD	.CECLK		; CONDITIONAL SINGLE STEP.
   6465	001416	006000 				.WORD	.CLRMR		; CLEAR RESET.
   6466		000005 			DMRSRL	=	.-DMRSRT/2	; LENGTH OF TABLE.
   6467	001420				DMRBF:	WD36$	0 0		; GENERAL BIT BUCKET.
	001420	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001423	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6468	001425				DMRMOS:	WD36$	0 10		; CLOCK PARAMETERS FOR MOS
	001425	   010 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001430	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6469	001432				DMRKW2:	WD36$	0 3		; KW-20/22 SELECT CODE
	001432	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001435	   000 	   000 			 .BYTE	BY$$3,BY$$4
   6470						.EVEN
   6471	002661					.PSECT	TEXT,D
   6472	002661				TMRMFL:	ERROR	<MASTER RESET FAILED>
	002661	   077 	   040 	   115 		 .ASCIZ	\? MASTER RESET FAILED\
	002664	   101 	   123 	   124
	002667	   105 	   122 	   040
	002672	   122 	   105 	   123
	002675	   105 	   124 	   040
	002700	   106 	   101 	   111
	002703	   114 	   105 	   104
	002706	   000
   6473	014350					.PSECT
KLIMR -- KL RESET ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 149
$KLMR	-- DO A MASTER RESET ON THE KL

   6475						.SBTTL	$KLMR	-- DO A MASTER RESET ON THE KL
   6476					;+
   6477					; RESET THE KL PROCESSOR.
   6478					;
   6479					; NO INPUTS
   6480					;
   6481					; OUTPUTS:
   6482					;	THE CARRY IS SET ON ANY ERROR AND AN ERROR MESSAGE IS DISPLAYED.
   6483					;-
   6484
   6485	014350	004537 	022242'		$KLMR::	JSR	R5,$RSAVE
   6486	014354					TRACK	MR
	014354	004037 	014366'			 JSR	R0,64$
	014360	051115 				 .WORD	"MR
	014362	000000 				 .WORD
	014364	000000 				 .WORD
	014366	004737 	022310'		64$:	 JSR	PC,$TRACK
	014372	012600 				 MOV	(SP)+,R0
   6487	014374	012700 	010000 			MOV	#.CLRUN,R0
   6488	014400					CALL	$DFXC		; CLEAR RUN
	014400	004737 	013222'			 JSR	PC,$DFXC
   6489	014404	103452 				BCS	80$		; TIMEOUT ERROR
   6490	014406	012737 	000100 	000266'		MOV	#DRESET,.DTEDT	; RESET BIT TO .DTEDT
   6491	014414					CALL	$DTRW2		; WRITE DTE-20 DIAG 2
	014414	004737 	022160'			 JSR	PC,$DTRW2
   6492	014420	103444 				BCS	80$		; ERROR
   6493	014422	012737 	053101 	000266'		MOV	#DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,.DTEDT
   6494									; CLEAR DTE-20 STATUS
   6495	014430					CALL	$DTRWS		; WRITE IT
	014430	004737 	022170'			 JSR	PC,$DTRWS
   6496	014434	103436 				BCS	80$
   6497	014436	012703 	001306'			MOV	#DMRMRT,R3	; SET UP TABLE AND
   6498	014442	105737 	000037'			TSTB	.MFSW		; SEE IF A MOS SYSTEM
   6499	014446	003401 				BLE	5$		; NO -- GO ON
   6500	014450	024343 				CMP	-(R3),-(R3)	; YES -- BE SURE TO SELECT KW20/22
   6501	014452				5$:
   6502	014452					CALL	LMRDFN		; DO FIRST SET OF FUNCTIONS.
	014452	004737 	014546'			 JSR	PC,LMRDFN
   6503	014456	103425 				BCS	80$
   6504	014460	012702 	000003 			MOV	#3,R2		; SET UP MAX LOOP COUNT
   6505	014464	012701 	001420'			MOV	#DMRBF,R1	; AND DIAGNOSTIC READ BUFFER.
   6506	014470	012700 	162000 		10$:	MOV	#<162*1000>,R0	; LOOK
   6507	014474					CALL	$DFRD		; FOR
	014474	004737 	012706'			 JSR	PC,$DFRD
   6508	014500	103414 				BCS	80$
   6509	014502	132711 	000010 			BITB	#10,(R1)	; "A CHANGE COMING A L"
   6510	014506	001406 				BEQ	20$
   6511	014510	012700 	002000 			MOV	#.SSCLK,R0	; SINGLE STEP THE MBOX
   6512	014514					CALL	$DFXC
	014514	004737 	013222'			 JSR	PC,$DFXC
   6513	014520	103404 				BCS	80$
   6514	014522	077216 				SOB	R2,10$		; ONLY 3 TIMES MAX.
   6515	014524				20$:	CALL	LMRDFN		; NOW FINISH THE JOB.
	014524	004737 	014546'			 JSR	PC,LMRDFN
   6516	014530	103005 				BCC	90$
   6517	014532				80$:	PRINT	#TMRMFL		; PRINT ERROR IF NEED BE.
	014532	012700 	002661'			 MOV	#TMRMFL,R0
KLIMR -- KL RESET ROUTINES	MACRO M1110  15-OCT-79 14:14  PAGE 149-1
$KLMR	-- DO A MASTER RESET ON THE KL

	014536	004737 	025442'			 JSR	PC,$TTMSG
   6518	014542	000261 				SEC
   6519	014544				90$:	RETURN
	014544	000207 				 RTS	PC
   6520
   6521	014546	012300 			LMRDFN:	MOV	(R3)+,R0	; FUNCTION TO BE PERFORMED
   6522	014550	006300 			10$:	ASL	R0		; GET ITS TYPE
   6523	014552	103004 				BCC	20$		; A WRITE OR
   6524	014554					CALL	$DFXC		; EXECUTE FUNCTION.
	014554	004737 	013222'			 JSR	PC,$DFXC
   6525	014560	103015 				BCC	30$		; SUCCESS
   6526	014562	000416 				BR	40$		; OR FAILURE.
   6527	014564	012301 			20$:	MOV	(R3)+,R1
   6528	014566	022700 	044000 			CMP	#.LDSEL,R0	; SET CLOCK PARAMETERS??
   6529	014572	001005 				BNE	25$		; NO -- GO ON
   6530	014574	105737 	000037'			TSTB	.MFSW		; YES -- MOS IN SYSTEM??
   6531	014600	003402 				BLE	25$		; NO -- GO ON
   6532	014602	012701 	001425'			MOV	#DMRMOS,R1	; YES -- POINT TO MOS DEFAULT
   6533	014606				25$:
   6534	014606					CALL	$DFWR
	014606	004737 	013020'			 JSR	PC,$DFWR
   6535	014612	103402 				BCS	40$
   6536	014614	012300 			30$:	MOV	(R3)+,R0	; IF MORE FUNCTIONS
   6537	014616	001354 				BNE	10$		; THEN CONTINUE.
   6538	014620				40$:	RETURN
	014620	000207 				 RTS	PC
   6539
   6540						.SBTTL	$KLSR	-- SOFT RESET FOR RAM LOADERS
   6541
   6542	014622				$KLSR::	PUSH	<R2,R1,R0>
	014622	010246 				 MOV	R2,-(SP)
	014624	010146 				 MOV	R1,-(SP)
	014626	010046 				 MOV	R0,-(SP)
   6543	014630					TRACK	SR
	014630	004037 	014642'			 JSR	R0,64$
	014634	051123 				 .WORD	"SR
	014636	000000 				 .WORD
	014640	000000 				 .WORD
	014642	004737 	022310'		64$:	 JSR	PC,$TRACK
	014646	012600 				 MOV	(SP)+,R0
   6544	014650	012702 	000005 			MOV	#DMRSRL,R2
   6545	014654	012701 	001406'			MOV	#DMRSRT,R1
   6546	014660	012100 			1$:	MOV	(R1)+,R0
   6547	014662					CALL	$DFXC
	014662	004737 	013222'			 JSR	PC,$DFXC
   6548	014666	103401 				BCS	9$
   6549	014670	077205 				SOB	R2,1$
   6550	014672				9$:	POP	<R0,R1,R2>
	014672	012600 				 MOV	(SP)+,R0
	014674	012601 				 MOV	(SP)+,R1
	014676	012602 				 MOV	(SP)+,R2
   6551	014700					RETURN
	014700	000207 				 RTS	PC
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14  PAGE 150
$KLSR	-- SOFT RESET FOR RAM LOADERS

   6553						.TITLE	KLINI -- PROGRAM INITIALIZATION
   6554	014702					IDENT$	12,06,KLI$$F
						.IDENT	/A12060/
   6555					;
   6556					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6557					;
   6558					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6559					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6560					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6561					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6562					;
   6563					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6564					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6565					; EQUIPMENT CORPORATION.
   6566					;
   6567					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6568					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6569					;
   6570					; VERSION 12-06
   6571					;
   6572					; ALAN D. PECKHAM  14-APR-77
   6573					;
   6574					; MODIFIED BY:
   6575					;
   6576					; R. BELANGER	16-JUL-79	ADD HARDWARE ENVIRONMENT REPORTING
   6577					;				TCO 4.2333
   6578					; R.BELANGER	06-DEC-78	MODIFY KEEP-ALIVE-CEASE HANDLING
   6579					;				TCO 4.2107
   6580					;
   6581					; FUNCTION: THIS MODULE ASSIGNS NEEDED I/O DEVICES, LOCATES THE SYSTEM
   6582					;  DIRECTORY, AND SETS DATA TO INDICATE INTERNAL
   6583					;  REQUESTS AND KL CONDITIONS.
   6584					;
   6585					; LOCAL MACROS
   6586					;
   6587						.MCALL	ALUN$,QIOW$S,EXIT$S,CLEF$S
   6588						.MACRO	KLIVR$ KEY,FRM,VER,EDT,NUM
   6589						.IF	B,NUM
   6590						.IF	NB,FRM
   6591						KLIVR$	\KEY,\FRM,\VER,\EDT,0
   6592						.IFF
   6593						KLIVR$	\KEY,200,\VER,\EDT,0
   6594						.ENDC
   6595						.MEXIT
   6596						.IFF
   6597						.IF	GE,VER-10
   6598						.IF	GE,EDT-10
   6599						MESSAGE	<VERSION \<KEY><FRM>\'VER'-'EDT'\<200>\ RUNNING>
   6600						.IFF
   6601						MESSAGE	<VERSION \<KEY><FRM>\'VER'-0'EDT'\<200>\ RUNNING>
   6602						.ENDC
   6603						.IFF
   6604						.IF	GE,EDT-10
   6605						MESSAGE	<VERSION \<KEY><FRM>\0'VER'-'EDT'\<200>\ RUNNING>
   6606						.IFF
   6607						MESSAGE	<VERSION \<KEY><FRM>\0'VER'-0'EDT'\<200>\ RUNNING>
   6608						.ENDC
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14  PAGE 150-1
$KLSR	-- SOFT RESET FOR RAM LOADERS

   6609						.ENDC
   6610						.ENDC
   6611						.ENDM	KLIVR$
   6612					;
   6613					; LOCAL DATA
   6614					;
   6615	001440					.PSECT	DATA,D
   6616	001440				DNITTI:
   6617	001440					ALUN$	TTILUN,TT,0
	001440	   007 	   004 			.BYTE	7,4
	001442	000001 				.WORD	TTILUN
	001444	   124 				.ASCII	/T/
	001445	   124 				.ASCII	/T/
	001446	000000 				.WORD	0
   6618	001450				DNITTO:
   6619	001450					ALUN$	TTOLUN,TT,0
	001450	   007 	   004 			.BYTE	7,4
	001452	000002 				.WORD	TTOLUN
	001454	   124 				.ASCII	/T/
	001455	   124 				.ASCII	/T/
	001456	000000 				.WORD	0
   6621	001460				DNILPO:
   6622	001460					ALUN$	TTOLUN,TT,0
	001460	   007 	   004 			.BYTE	7,4
	001462	000002 				.WORD	TTOLUN
	001464	   124 				.ASCII	/T/
	001465	   124 				.ASCII	/T/
	001466	000000 				.WORD	0
   6624	001470				DNISYI:
   6625	001470					ALUN$	SYILUN,SY,0
	001470	   007 	   004 			.BYTE	7,4
	001472	000004 				.WORD	SYILUN
	001474	   123 				.ASCII	/S/
	001475	   131 				.ASCII	/Y/
	001476	000000 				.WORD	0
   6626	001500				DNISYO:
   6627	001500					ALUN$	SYOLUN,SY,0
	001500	   007 	   004 			.BYTE	7,4
	001502	000005 				.WORD	SYOLUN
	001504	   123 				.ASCII	/S/
	001505	   131 				.ASCII	/Y/
	001506	000000 				.WORD	0
   6628	001510				DNISYF:
   6629	001510					ALUN$	SYFLUN,SY,0
	001510	   007 	   004 			.BYTE	7,4
	001512	000006 				.WORD	SYFLUN
	001514	   123 				.ASCII	/S/
	001515	   131 				.ASCII	/Y/
	001516	000000 				.WORD	0
   6630	002707					.PSECT	TEXT,D
   6631	002707				TNINDV:
   6632	002707					ERROR	<CANNOT GET DEVICES>
	002707	   077 	   040 	   103 		 .ASCIZ	\? CANNOT GET DEVICES\
	002712	   101 	   116 	   116
	002715	   117 	   124 	   040
	002720	   107 	   105 	   124
	002723	   040 	   104 	   105
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14  PAGE 150-2
$KLSR	-- SOFT RESET FOR RAM LOADERS

	002726	   126 	   111 	   103
	002731	   105 	   123 	   000
   6633	002734				TNIN55:
   6634	002734					ERROR	<CANNOT FIND [5,5] DIRECTORY>
	002734	   077 	   040 	   103 		 .ASCIZ	\? CANNOT FIND [5,5] DIRECTORY\
	002737	   101 	   116 	   116
	002742	   117 	   124 	   040
	002745	   106 	   111 	   116
	002750	   104 	   040 	   133
	002753	   065 	   054 	   065
	002756	   135 	   040 	   104
	002761	   111 	   122 	   105
	002764	   103 	   124 	   117
	002767	   122 	   131 	   000
   6635	002772				TNIPRI:
   6636	002772					ERROR	<CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL>
	002772	   077 	   040 	   103 		 .ASCIZ	\? CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL\
	002775	   101 	   116 	   116
	003000	   117 	   124 	   040
	003003	   122 	   125 	   116
	003006	   040 	   113 	   114
	003011	   111 	   116 	   111
	003014	   124 	   040 	   127
	003017	   110 	   111 	   114
	003022	   105 	   040 	   113
	003025	   114 	   040 	   111
	003030	   123 	   040 	   111
	003033	   116 	   040 	   120
	003036	   122 	   111 	   115
	003041	   101 	   122 	   131
	003044	   040 	   120 	   122
	003047	   117 	   124 	   117
	003052	   103 	   117 	   114
	003055	   000
   6637	003056				TNIVER:
   6638	003056					KLIVR$	KLI$$K,KLI$$F,KLI$$V,KLI$$E
	003056	   126 	   105 	   122 		 .ASCIZ	\VERSION \<126><101>\12-12\<200>\ RUNNING\
	003061	   123 	   111 	   117
	003064	   116 	   040 	   126
	003067	   101 	   061 	   062
	003072	   055 	   061 	   062
	003075	   200 	   040 	   122
	003100	   125 	   116 	   116
	003103	   111 	   116 	   107
	003106	   000
   6639	014702					.PSECT
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14  PAGE 151
$INIT	-- PROGRAM INITIALIZATION

   6641						.SBTTL	$INIT	-- PROGRAM INITIALIZATION
   6642					;+
   6643					;	GET KL FUNCTION WORD
   6644					;-
   6645
   6646	014702				$INIT::
   6647	014702	105037 	000024'			CLRB	.DLGSW		; CLEAR DIALOG SWITCH.
   6648	014706	013737 	000000G	000044'		MOV	.KLIWD,.KLISV	; SAVE .KLIWD
   6649	014714	001003 				BNE	10$
   6650	014716	005037 	000000G			CLR	.DATE3		; CLEAR .DATE3 IF .KLIWD=0
   6651	014722	000404 				BR	20$
   6652						;
   6653	014724				10$:
   6654	014724	005037 	000000G			CLR	.KLIWD		; CLEAR .KLIWD TO AVOID DOING THIS AGAIN
   6655	014730	105337 	000024'			DECB	.DLGSW		; AND INDICATE INTERNAL PATH TO BE TAKEN.
   6656
   6657					;+
   6658					;	ASSIGN LOGICAL UNIT NUMBERS (LUN) TO DEVICES
   6659					;-
   6660
   6661	014734				20$:
   6662	014734					DIR$	#DNITTI		; SET TTILUN AS TT0:
	014734	012746 	001440'			MOV	#DNITTI,-(SP)
	014740	104375 				EMT	375
   6663	014742	103430 				BCS	30$
   6664	014744					DIR$	#DNITTO		; SET TTOLUN AS TT0:
	014744	012746 	001450'			MOV	#DNITTO,-(SP)
	014750	104375 				EMT	375
   6665	014752	103424 				BCS	30$
   6667	014754					DIR$	#DNILPO		; SET LPOLUN AS LP0:
	014754	012746 	001460'			MOV	#DNILPO,-(SP)
	014760	104375 				EMT	375
   6668	014762	103420 				BCS	30$
   6670	014764	032737 	000000G	000044'		BIT	#KL.KAC,.KLISV	; [TCO 4.2107] KEEP-ALIVE ERROR??
   6671	014772	001130 				BNE	80$		; [TCO 4.2107] YES -- DON'T NEED SY:
   6672	014774					DIR$	#DNISYI		; SET SYILUN AS SY0:
	014774	012746 	001470'			MOV	#DNISYI,-(SP)
	015000	104375 				EMT	375
   6673	015002	103410 				BCS	30$
   6674	015004					DIR$	#DNISYO		; SET SYOLUN AS SY0:
	015004	012746 	001500'			MOV	#DNISYO,-(SP)
	015010	104375 				EMT	375
   6675	015012	103404 				BCS	30$
   6676	015014					DIR$	#DNISYF		; SET SYFLUN AS SY0:
	015014	012746 	001510'			MOV	#DNISYF,-(SP)
	015020	104375 				EMT	375
   6677	015022	103007 				BCC	40$
   6678	015024				30$:
   6679	015024					PRINT	#TNINDV		; CAN'T GET DEVICES
	015024	012700 	002707'			 MOV	#TNINDV,R0
	015030	004737 	025442'			 JSR	PC,$TTMSG
   6680	015034					EXIT$S			; WE'RE THROUGH.
	015034	012746 				MOV	(PC)+,-(SP)
	015036	   063 	   001 			.BYTE	51.,1
	015040	104375 				EMT	375
   6681					;+
   6682					;	FIND DIRECTORY FILE FROM MASTER FILE DIRECTORY
KLINI -- PROGRAM INITIALIZATION	MACRO M1110  15-OCT-79 14:14  PAGE 151-1
$INIT	-- PROGRAM INITIALIZATION

   6683					;-
   6684	015042				40$:
   6685	015042					QIOW$S	#IO.FNA,#SYILUN,#1,,#.SYSTA,,<,,,,,#.SYFNB>
	015042	012746 	002562'			MOV	#.SYFNB,-(SP)
	015046	005046 				CLR	-(SP)
	015050	005046 				CLR	-(SP)
	015052	005046 				CLR	-(SP)
	015054	005046 				CLR	-(SP)
	015056	005046 				CLR	-(SP)
	015060	005046 				CLR	-(SP)
	015062	012746 	000470'			MOV	#.SYSTA,-(SP)
	015066	005046 				CLR	-(SP)
	015070	112716 	000001 			MOVB	#1,(SP)
	015074	012746 	000004 			MOV	#SYILUN,-(SP)
	015100	012746 	000000G			MOV	#IO.FNA,-(SP)
	015104	012746 				MOV	(PC)+,-(SP)
	015106	   003 	   014 			.BYTE	3,$$$T1
	015110	104375 				EMT	375
   6686	015112	103403 				BCS	50$
   6687	015114	105737 	000470'			TSTB	.SYSTA
   6688	015120	002007 				BGE	60$
   6689	015122				50$:
   6690	015122					PRINT	#TNIN55		; NO DIRECTORY...
	015122	012700 	002734'			 MOV	#TNIN55,R0
	015126	004737 	025442'			 JSR	PC,$TTMSG
   6691	015132					EXIT$S
	015132	012746 				MOV	(PC)+,-(SP)
	015134	   063 	   001 			.BYTE	51.,1
	015136	104375 				EMT	375
   6692	015140				60$:
   6693	015140	013737 	002562'	002606'		MOV	.SYFNB+0,.SYFNB+24 ; MOVE UP DIRECTORY FID.
   6694	015146	013737 	002564'	002610'		MOV	.SYFNB+2,.SYFNB+26
   6695	015154	013737 	002566'	002612'		MOV	.SYFNB+4,.SYFNB+30
   6696					;+
   6697					;	MAKE SURE SECONDARY PROTOCOL IS RUNNING
   6698					;-
   6699	015162	105737 	000024'			TSTB	.DLGSW		; IF NOT INTERNAL REQUEST
   6700	015166	002416 				BLT	70$
   6701	015170	032737 	000000G	000002G		BIT	#EF.PR1,.COMEF+2 ; CHECK CURRENT PROTOCOL.
   6702	015176	001412 				BEQ	70$		; IF PRIMARY,
   6703	015200	032737 	000006 	000000G		BIT	#6,.FEMOD	; AND CONSOLE IS IN
   6704	015206	001006 				BNE	70$		; OPERATOR MODE, THEN
   6705	015210					PRINT	#TNIPRI		; REPRIMAND OPERATOR
	015210	012700 	002772'			 MOV	#TNIPRI,R0
	015214	004737 	025442'			 JSR	PC,$TTMSG
   6706	015220	000137 	022060'			JMP	$EXIT		; AND DIE.
   6707						;
   6708	015224				70$:
   6709	015224	052737 	000000G	000002G		BIS	#EF.CRI,.COMEF+2 ; DECLARE COMM REGION INVALID
   6710	015232	013737 	000000G	000046'		MOV	.CPUSN,.SNSAV	; [TCO 4.2333] SAVE OLD SERIAL NUMBER
   6711	015240	005037 	000000G			CLR	.CPUSN		; [TCO 4.2333] ALLOW ENVRIONMENT READ
   6712	015244					PRINT	#TNIVER		; HELLO, OPERATOR !
	015244	012700 	003056'			 MOV	#TNIVER,R0
	015250	004737 	025442'			 JSR	PC,$TTMSG
   6713	015254				80$:				; [TCO 4.2107]
   6714	015254					RETURN
	015254	000207 				 RTS	PC
KLIPC -- KL PC READ FUNCTION MO	MACRO M1110  15-OCT-79 14:14  PAGE 152
$INIT	-- PROGRAM INITIALIZATION

   6716					.TITLE	KLIPC -- KL PC READ FUNCTION MODULE 7603.30
   6717
   6718						.IDENT	"001010"
   6719
   6720					;	COPYRIGHT 1976, DIGITAL EQUIPMENT CORP., MARLBORO, MASSACHUSETTS  01752.
   6721					;
   6722					;	THE MATERIAL INCLUDED IN THIS FUNCTIONAL  SPECIFICATION,  INCLUDING  BUT
   6723					;	NOT   LIMITED   TO,  INSTRUCTION  TIMES  AND  OPERATING  SPEEDS  IS  FOR
   6724					;	INFORMATION PURPOSES ONLY.  ALL  SUCH  MATERIAL  IS  SUBJECT  TO  CHANGE
   6725					;	WITHOUT NOTICE.  CONSEQUENTLY DEC MAKES NO CLAIM AND SHALL NOT BE LIABLE
   6726					;	FOR ITS ACCURACY.
   6727					;
   6728					;	DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE
   6729					;	ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6730					;
   6731					;
   6732					;		MODULE: KL VMA BOARD READ FUNCTION
   6733					;
   6734					;		VERSION: 01-01
   6735					;
   6736					;		AUTHOR: R. BELANGER
   6737					;
   6738					;		DATE: 7603.30
   6739					;
   6740					;	THIS MODULE CONTAINS:
   6741					;
   6742					;	1) KL PC READ CODE
   6743					;
   6744					;	LOCAL DATA
   6745					;
   6746	003107					.PSECT	TEXT,D
   6747	003107				PCERRM:
   6748	003107					ERROR	<READ PC FAILED>
	003107	   077 	   040 	   122 		 .ASCIZ	\? READ PC FAILED\
	003112	   105 	   101 	   104
	003115	   040 	   120 	   103
	003120	   040 	   106 	   101
	003123	   111 	   114 	   105
	003126	   104 	   000
   6749	015256				.PSECT
KLIPC -- KL PC READ FUNCTION MO	MACRO M1110  15-OCT-79 14:14  PAGE 153
$DFPC -- KL PC READ SUBROUTINE 7510.21

   6751					.SBTTL	$DFPC -- KL PC READ SUBROUTINE 7510.21
   6752
   6753					;+
   6754					; $DFPC -- SUBROUTINE TO READ THE KL PROGRAM COUNTER REGISTER
   6755					;
   6756					; THESE SUBROUTINES READ AND ASSEMBLE THE DESIRED VMA BOARD REGISTER
   6757					; INTO A THREE WORD BLOCK POINTED TO BY R0 IN THE CALL.
   6758					;
   6759					; INPUT ARGUMENTS:
   6760					;
   6761					;	R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
   6762					;
   6763					; OUTPUT ARGUMENTS:
   6764					;
   6765					;	R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
   6766					;
   6767					; ERROR CODES RETURNED:
   6768					;
   6769					;	CC-C SET ON ERROR.
   6770					;-
   6771
   6772	015256				$DFPC::
   6773	015256					CALL	R5,$RSAVE	; SAVE R5 - R1 ON THE STACK
	015256	004537 	022242'			 JSR	R5,$RSAVE
   6774	015262	012705 	177776 			MOV	#-2,R5		; BASE SHIFT COUNT TO R5
   6775	015266	012704 	000004 			MOV	#^D4,R4		; ITERATION COUNT TO R4
   6776	015272	010003 				MOV	R0,R3		; USER BUFFER ADDRESS TO R3
   6777	015274	012702 	000150 			MOV	#150,R2		; FUNCTION READ BASE TO R2
   6778	015300					PUSH	#135673		; MASK WORD TO TOP OF THE STACK
	015300	012746 	135673 			 MOV	#135673,-(SP)
   6779	015304	005020 				CLR	(R0)+		; .CLEAR CALLER'S AREA
   6780	015306	005020 				CLR	(R0)+		; .SO
   6781	015310	005010 				CLR	(R0)		; .
   6782	015312				10$:
   6783	015312	010200 				MOV	R2,R0		; .SET THE FUNCTION READ NUMBER
   6784	015314	006300 				ASL	R0		; .TIMES 2
   6785	015316	000300 				SWAB	R0		; .IN THE HIGH BYTE
   6786	015320	005001 				CLR	R1		; .CLEAR R1
   6787	015322					CALL	$DFRD		; .READ IT
	015322	004737 	012706'			 JSR	PC,$DFRD
   6788	015326	103423 				BCS	30$		; .EXIT IF ERROR
   6789	015330	012700 	000250'			MOV	#.DFRBK,R0	; .BUFFER POINTER TO R0
   6790	015334	041620 				BIC	(SP),(R0)+	; .SP POINTS TO BIT MASK
   6791	015336	041610 				BIC	(SP),(R0)	; .R0 POINTS TO READ BLOCK
   6792	015340	005740 				TST	-(R0)		; .BACK THE POINTER UP
   6793	015342	010501 				MOV	R5,R1		; .SHIFT COUNT TO R1
   6794	015344					CALL	.TPSHI		; .SHIFT THE BITS INTO POSITION
	015344	004737 	015412'			 JSR	PC,.TPSHI
   6795	015350	052023 				BIS	(R0)+,(R3)+	; .SET THE BITS IN THE USER BUFFER
   6796	015352	051013 				BIS	(R0),(R3)	; .SO
   6797	015354	005743 				TST	-(R3)		; .BACK CALLER'S POINTER UP
   6798	015356	122225 				CMPB	(R2)+,(R5)+	; .INCREMENT READ NUMBER AND SHIFT COUNT
   6799	015360	077424 				SOB	R4,10$		; .DO THIS FOUR TIMES
   6800	015362	042763 	177600 	000002 		BIC	#177600,2(R3)	; .GET RID OF BITS HIGHER THAN 13
   6801	015370	000241 				CLC			; .CLEAR CC-C
   6802	015372				20$:
   6803	015372	005226 				INC	(SP)+		; CLEAR THE STACK
KLIPC -- KL PC READ FUNCTION MO	MACRO M1110  15-OCT-79 14:14  PAGE 153-1
$DFPC -- KL PC READ SUBROUTINE 7510.21

   6804	015374					RETURN			; RETURN TO CALLER
	015374	000207 				 RTS	PC
   6805	015376				30$:
   6806	015376					PRINT	#PCERRM		; TELL OPERATOR ABOUT ERROR
	015376	012700 	003107'			 MOV	#PCERRM,R0
	015402	004737 	025442'			 JSR	PC,$TTMSG
   6807	015406	000261 				SEC			; SET ERROR FLAG
   6808	015410	000770 				BR	20$		; AND EXIT
   6809						;
KLIPC -- KL PC READ FUNCTION MO	MACRO M1110  15-OCT-79 14:14  PAGE 154
$DFPC -- KL PC READ SUBROUTINE 7510.21

   6811	015412				.TPSHI::
   6812	015412					PUSH	R1		; SAVE R1 FROM DESTRUCTION
	015412	010146 				 MOV	R1,-(SP)
   6813	015414	001416 				BEQ	30$		; .ON ZERO DO NOTHING
   6814	015416	003002 				BGT	10$		; .REALLY MEANS LEFT
   6815	015420	005401 				NEG	R1		; .MEANS RIGHT, SO NEGATE
   6816	015422	000406 				BR	20$		; .AND GO RIGHT
   6817						;
   6818	015424				10$:
   6819	015424	006320 				ASL	(R0)+		; .CLEAR CC-C AND SHIFT
   6820	015426	006120 				ROL	(R0)+		; .USE CC-C AND SHIFT
   6821	015430	006110 				ROL	(R0)		; .
   6822	015432	024040 				CMP	-(R0),-(R0)	; .POINT BACK TO BEGINNING
   6823	015434	077105 				SOB	R1,10$		; .AND LOOP 'TILL DONE
   6824	015436	000405 				BR	30$		; .DONE -- EXIT
   6825						;
   6826	015440				20$:				; .HERE TO SHIFT RIGHT
   6827	015440	022020 				CMP	(R0)+,(R0)+	; .FIX POINTER TO POINT TO HIGH PART
   6828	015442	006210 				ASR	(R0)		; .SHIFT HIGH PART
   6829	015444	006040 				ROR	-(R0)		; .THEN MIDDLE PART
   6830	015446	006040 				ROR	-(R0)		; .THEN LOW PART
   6831	015450	077105 				SOB	R1,20$		; .UNTIL DONE
   6832	015452				30$:
   6833	015452					POP	R1		; .RESTORE R1
	015452	012601 				 MOV	(SP)+,R1
   6834	015454					RETURN			; AND RETURN TO CALLER
	015454	000207 				 RTS	PC
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 155
$DFPC -- KL PC READ SUBROUTINE 7510.21

   6836						.TITLE	KLIQB -- ASK BOOT LOAD QUESTIONS
   6837	015456					IDENT$	11,1								; ADP01
						.IDENT	/011010/
   6838					;
   6839					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   6840					;
   6841					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   6842					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   6843					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   6844					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   6845					;
   6846					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   6847					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   6848					; EQUIPMENT CORPORATION.
   6849					;
   6850					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   6851					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   6852					;
   6853					; VERSION 05-01									; ADP01
   6854					;
   6855					; ALAN D. PECKHAM  12-APR-77
   6856					;
   6857					; MODIFIED BY:
   6858					;
   6859					; FUNCTION: THIS MODULE DETERMINES WHETHER THE BOOT IS TO BE LOADED
   6860					;  AND WHAT BOOT IS TO BE USED.
   6861					;
   6862					; LOCAL DATA
   6863					;
   6864	003130					.PSECT	TEXT,D
   6865	003130				TQBOOT:
   6866	003130					MESSAGE	<LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?>
	003130	   114 	   117 	   101 		 .ASCIZ	\LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?\
	003133	   104 	   040 	   113
	003136	   114 	   040 	   102
	003141	   117 	   117 	   124
	003144	   123 	   124 	   122
	003147	   101 	   120 	   040
	003152	   133 	   106 	   111
	003155	   114 	   105 	   054
	003160	   131 	   105 	   123
	003163	   054 	   116 	   117
	003166	   054 	   106 	   111
	003171	   114 	   105 	   116
	003174	   101 	   115 	   105
	003177	   135 	   077 	   000
   6867	003202				TQBWCF:
   6868	003202					MESSAGE	<WRITE CONFIGURATION FILE [YES,NO]?>
	003202	   127 	   122 	   111 		 .ASCIZ	\WRITE CONFIGURATION FILE [YES,NO]?\
	003205	   124 	   105 	   040
	003210	   103 	   117 	   116
	003213	   106 	   111 	   107
	003216	   125 	   122 	   101
	003221	   124 	   111 	   117
	003224	   116 	   040 	   106
	003227	   111 	   114 	   105
	003232	   040 	   133 	   131
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 155-1
$DFPC -- KL PC READ SUBROUTINE 7510.21

	003235	   105 	   123 	   054
	003240	   116 	   117 	   135
	003243	   077 	   000
   6869	003245				TQBNFL:
   6870	003245					WARNING	<NO FILE - LOADING BOOTSTRAP>
	003245	   045 	   040 	   116 		 .ASCIZ	\% NO FILE - LOADING BOOTSTRAP\
	003250	   117 	   040 	   106
	003253	   111 	   114 	   105
	003256	   040 	   055 	   040
	003261	   114 	   117 	   101
	003264	   104 	   111 	   116
	003267	   107 	   040 	   102
	003272	   117 	   117 	   124
	003275	   123 	   124 	   122
	003300	   101 	   120 	   000
   6871	001520					.PSECT	DATA,D
   6872	001520				DQBFNM:
   6873	001520	043240 	000000 	000000 		.RAD50	/KL       CFG/	; CONFIGURATION FILE NAME
	001526	011667
   6874	001530	000000 				.WORD	0
   6875	001532	   005 	   005 			.BYTE	5,5
   6876	001534	054523 	000000 			.WORD	"SY,0
   6877	015456					.PSECT
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 156
$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED

   6879						.SBTTL	$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED
   6880
   6881					;+
   6882					; $DLGBT -- ASK WHETHER OR NOT TO LOAD THE KL BOOTSTRAP
   6883					;
   6884					; INPUTS:
   6885					;
   6886					;	NONE
   6887					;
   6888					; OUTPUTS:
   6889					;
   6890					;	NONE
   6891					;-
   6892
   6893	015456				$DLGBT::
   6894	015456	105037 	000042'			CLRB	.BTSW		; RESET BOOT SWITCH
   6895	015462	105037 	000031'			CLRB	.DBSW		; RESET FILE SOURCE
   6896	015466	105037 	000025'			CLRB	.UFNSW		; AND FILENAME SWITCH.
   6897	015472	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   6898	015476	001030 				BNE	20$		; LOAD DEFAULT BOOTSTRAP.
   6899	015500				10$:
   6900	015500					PRINT	#TQBOOT		; ASK QUESTION
	015500	012700 	003130'			 MOV	#TQBOOT,R0
	015504	004737 	025442'			 JSR	PC,$TTMSG
   6901	015510					CALL	$TTRD		; READ ANSWER
	015510	004737 	025120'			 JSR	PC,$TTRD
   6902	015514	012705 	000270'			MOV	#.TTIBF,R5
   6903	015520	105715 				TSTB	(R5)		;  CR ?
   6904	015522	001416 				BEQ	20$		; READ BOOTSTRAP SPECIFICATION FROM FILE
   6905	015524	022715 	044506 			CMP	#"FI,(R5)	;  [FILE]?
   6906	015530	001413 				BEQ	20$		; READ BOOTSTRAP SPECIFICATION FROM FILE
   6907	015532	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   6908	015536	001433 				BEQ	50$		; LOAD DEFAULT BOOTSTRAP
   6909	015540	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   6910	015544	001411 				BEQ	30$		; ASK NEXT QUESTION.
   6911	015546	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   6912	015552	001011 				BNE	40$		; NO, MUST BE FILENAME...
   6913	015554	000137 	021724'			JMP	$DLGMV		; ASK TO CONFIGURE MEMORY.
   6914						;
   6915	015560				20$:
   6916	015560					CALL	LQBRBF		; SEE IF WE SHOULD LOAD THE BOOT
	015560	004737 	016000'			 JSR	PC,LQBRBF
   6917	015564	103430 				BCS	80$		; ERROR IF CC-C IS SET
   6918	015566	000421 				BR	60$		; AND EXIT
   6919						;
   6920	015570				30$:
   6921	015570	105337 	000042'			DECB	.BTSW		; RESPONSE IS "NO"
   6922	015574	000416 				BR	60$		; ASK NEXT QUESTION.
   6923						;
   6924	015576				40$:
   6925	015576	012700 	000442'			MOV	#.USRFN,R0	; GET FILENAME BLOCK,				; ADP01
   6926	015602	012701 				MOV	(PC)+,R1
   6927	015604	021402 				.RAD50	/EXB/		; SET DEFAULT EXTENSION,
   6928	015606	010160 	000006 			MOV	R1,6(R0)
   6929	015612					CALL	$TRF2B		; AND GET FILE NAME.
	015612	004737 	023136'			 JSR	PC,$TRF2B
   6930	015616	105715 				TSTB	(R5)		; IF NOT PROPERLY TERMINATED
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 156-1
$DLGBT	-- ASK IF LOADING BOOT IS REQUIRED

   6931	015620	001005 				BNE	70$		; THEN INFORM THE OPERATOR.
   6932	015622	105237 	000025'			INCB	.UFNSW		; INDICATE FILE SPECIFIED
   6933	015626				50$:
   6934	015626	105237 	000042'			INCB	.BTSW		; SET RESPONSE TO "YES"
   6935	015632				60$:
   6936	015632	000407 				BR	$DLWCF		; ASK NEXT QUESTION
   6937						;
   6938	015634				70$:
   6939	015634					PRINT	#COMCSE		; ALL THUMBS...
	015634	012700 	004754'			 MOV	#COMCSE,R0
	015640	004737 	025442'			 JSR	PC,$TTMSG
   6940	015644	000715 				BR	10$
   6941						;
   6942	015646				80$:
   6943	015646	000137 	022050'			JMP	$ERROR		; ERROR EXIT
   6944						;
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 157
$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN

   6946						.SBTTL	$DLWCF  -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
   6947
   6948					;+
   6949					; $DLWCF -- ASK IF CONFIGURATION FILE IS THE BE WRITTEN
   6950					;
   6951					; INPUTS:
   6952					;
   6953					;	NONE
   6954					;
   6955					; OUTPUTS:
   6956					;
   6957					;	FILE WRITE SWITCH, ".FILSW", IS SET UP
   6958					;-
   6959
   6960	015652				$DLWCF::
   6961	015652	105037 	000041'			CLRB	.FILSW		; RESET FILE SWITCH
   6962	015656	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
   6963	015662	001035 				BNE	40$		; NO -- JUST EXIT
   6964	015664				10$:
   6965	015664					PRINT	#TQBWCF		; ASK THE QUESTION
	015664	012700 	003202'			 MOV	#TQBWCF,R0
	015670	004737 	025442'			 JSR	PC,$TTMSG
   6966	015674					CALL	$TTRD		; READ THE RESPONSE
	015674	004737 	025120'			 JSR	PC,$TTRD
   6967	015700	012705 	000270'			MOV	#.TTIBF,R5	; POINT TO INPUT BUFFER
   6968	015704	105715 				TSTB	(R5)		; DEFAULT??
   6969	015706	001416 				BEQ	20$		; YES -- GO ON
   6970	015710	022715 	042531 			CMP	#"YE,(R5)	; NO -- IS IT "YES"??
   6971	015714	001413 				BEQ	20$		; YES -- GO ON
   6972	015716	022715 	047516 			CMP	#"NO,(R5)	; NO -- IS IT "NO"??
   6973	015722	001413 				BEQ	30$		; YES -- GO ON
   6974	015724	022715 	040502 			CMP	#"BA,(R5)	; NO -- IS IT "BACK"??
   6975	015730	001652 				BEQ	$DLGBT		; YES -- SO BACK UP
   6976	015732					PRINT	#COMCSE		; BLEW IT..
	015732	012700 	004754'			 MOV	#COMCSE,R0
	015736	004737 	025442'			 JSR	PC,$TTMSG
   6977	015742	000750 				BR	10$		; TRY ONCE MORE
   6978						;
   6979	015744				20$:
   6980	015744	105237 	000041'			INCB	.FILSW		; SAY WRITE THE FILE
   6981	015750	000402 				BR	40$		; AND GO ON
   6982						;
   6983	015752				30$:
   6984	015752	105337 	000041'			DECB	.FILSW		; SAY DON'T WRITE THE FILE
   6985	015756				40$:
   6986	015756	105737 	000042'			TSTB	.BTSW		; EXAMINE BOOT SWITCH
   6987	015762	100004 				BPL	50$		; SAID LOAD IT
   6988	015764					CALL	$TENS1		; [TCO 4.2275] FINISH KL INIT
	015764	004737 	022532'			 JSR	PC,$TENS1
   6989	015770	000137 	016534'			JMP	$DLGEX		; SAID DON'T LOAD IT
   6990						;
   6991	015774				50$:
   6992	015774	000137 	021756'			JMP	$CFGBT		; LOAD THE BOOT
   6993						;
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 158
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG

   6995						.SBTTL	LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
   6996
   6997	016000				LQBRBF:
   6998	016000	012700 	001520'			MOV	#DQBFNM,R0	; POINT TO THE FILENAME
   6999	016004					CALL	$LOOKUP		; LOOK IT UP
	016004	004737 	007024'			 JSR	PC,$LOOKUP
   7000	016010	103022 				BCC	30$		; ALL OK IF CC-C IS CLEAR
   7001	016012	122737 	000000G	000470'		CMPB	#IE.NSF,.SYSTA	; NON-EXISTENT FILE??
   7002	016020	001061 				BNE	70$		; NO -- BIG TROUBLE
   7003	016022	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
   7004	016026	100004 				BPL	10$		; YES -- GO ON
   7005	016030	032737 	000000G	000044'		BIT	#KL.LVB,.KLISV	; NO -- DOES HE WANT THE BOOT LOADED??
   7006	016036	001457 				BEQ	90$		; NO -- JUST EXIT
   7007	016040				10$:
   7008	016040					PRINT	#TQBNFL		; YES -- WARN OPERATOR
	016040	012700 	003245'			 MOV	#TQBNFL,R0
	016044	004737 	025442'			 JSR	PC,$TTMSG
   7009	016050				20$:
   7010	016050	105237 	000042'			INCB	.BTSW		; INDICATE TO LOAD THE BOOTSTRAP
   7011	016054	000450 				BR	90$		; AND EXIT
   7012						;
   7013	016056				30$:
   7014	016056					CALL	$READC		; GET A RECORD FROM THE FILE
	016056	004737 	007460'			 JSR	PC,$READC
   7015	016062	103442 				BCS	80$		; ERROR IF CC-C IS SET
   7016	016064	022700 	000003 			CMP	#3,R0		; ONE WE'RE LOOKING FOR??
   7017	016070	001411 				BEQ	50$		; YES -- READ THE DATA
   7018	016072	005700 				TST	R0		; NO -- END-OF-FILE??
   7019	016074	001003 				BNE	40$		; NO -- SKIP THIS RECORD
   7020	016076					CALL	$CLOSE		; YES -- CLOSE THE FILE
	016076	004737 	006320'			 JSR	PC,$CLOSE
   7021	016102	000762 				BR	20$		; AND SAY LOAD THE BOOTSTRAP
   7022						;
   7023	016104				40$:
   7024	016104					CALL	$READS		; SKIP THIS RECORD
	016104	004737 	007516'			 JSR	PC,$READS
   7025	016110	103427 				BCS	80$		; ERROR IF CC-C IS SET
   7026	016112	000761 				BR	30$		; OK -- LOOK AT NEXT RECORD
   7027						;
   7028	016114				50$:
   7029	016114					CALL	$READB		; READ THE BYTE INTO R0
	016114	004737 	007662'			 JSR	PC,$READB
   7030	016120	103423 				BCS	80$		; ERROR IF CC-C IS SET
   7031	016122	110037 	000042'			MOVB	R0,.BTSW	; SAVE THE BOOT SWITCH
   7032	016126					CALL	$READB		; READ THE FILE-NAME SWITCH
	016126	004737 	007662'			 JSR	PC,$READB
   7033	016132	103416 				BCS	80$		; ERROR IF CC-C IS SET
   7034	016134	110037 	000025'			MOVB	R0,.UFNSW	; SET THE FILENAME SWITCH
   7035	016140	001411 				BEQ	70$		; EXIT IF NONE
   7036	016142	012701 	000004 			MOV	#4,R1		; SET UP TO READ FILENAME
   7037	016146	012702 	000442'			MOV	#.USRFN,R2	; POINT TO FILENAME BLOCK
   7038	016152				60$:
   7039	016152					CALL	$READW		; READ A WORD OF THE FILENAME
	016152	004737 	007566'			 JSR	PC,$READW
   7040	016156	103404 				BCS	80$		; ERROR IF CC-C IS SET
   7041	016160	010022 				MOV	R0,(R2)+	; LOAD IT INTO THE FILE-NAME BLOCK
   7042	016162	077105 				SOB	R1,60$		; UNTIL DONE
KLIQB -- ASK BOOT LOAD QUESTION	MACRO M1110  15-OCT-79 14:14  PAGE 158-1
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG

   7043	016164				70$:
   7044	016164					CALLR	$CLOSE		; CLOSE THE FILE AND EXIT
	016164	000137 	006320'			 JMP	$CLOSE
   7045						;
   7046	016170				80$:
   7047	016170					CALL	$PURGE		; ERROR -- PURGE FILE
	016170	004737 	007366'			 JSR	PC,$PURGE
   7048	016174	000261 				SEC			; SET ERROR FLAG
   7049	016176				90$:
   7050	016176					RETURN			; TO CALLER
	016176	000207 				 RTS	PC
KLIQC -- ASK CACHE QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 159
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG

   7052						.TITLE	KLIQC -- ASK CACHE QUESTIONS
   7053	016200					IDENT$	5,0
						.IDENT	/005000/
   7054					;
   7055					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7056					;
   7057					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7058					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7059					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7060					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7061					;
   7062					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7063					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7064					; EQUIPMENT CORPORATION.
   7065					;
   7066					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7067					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7068					;
   7069					; VERSION 05-00
   7070					;
   7071					; ALAN D. PECKHAM  14-APR-77
   7072					;
   7073					; MODIFIED BY:
   7074					;
   7075					; FUNCTION: IF THERE IS CACHE, THIS MODULE DETERMINES HOW IT IS TO BE
   7076					;  LOADED AND WHETHER IT IS TO BE ENABLED.
   7077					;
   7079					; LOCAL DATA
   7080					;
   7081	003303					.PSECT	TEXT,D
   7082	003303				TQCACH:	MESSAGE	<RECONFIGURE CACHE [FILE,ALL,YES,NO]?>
	003303	   122 	   105 	   103 		 .ASCIZ	\RECONFIGURE CACHE [FILE,ALL,YES,NO]?\
	003306	   117 	   116 	   106
	003311	   111 	   107 	   125
	003314	   122 	   105 	   040
	003317	   103 	   101 	   103
	003322	   110 	   105 	   040
	003325	   133 	   106 	   111
	003330	   114 	   105 	   054
	003333	   101 	   114 	   114
	003336	   054 	   131 	   105
	003341	   123 	   054 	   116
	003344	   117 	   135 	   077
	003347	   000
   7083	003350				TQCCEN:	MESSAGE	<ENABLE WHICH CACHES [ALL,NONE,0-3]?>
	003350	   105 	   116 	   101 		 .ASCIZ	\ENABLE WHICH CACHES [ALL,NONE,0-3]?\
	003353	   102 	   114 	   105
	003356	   040 	   127 	   110
	003361	   111 	   103 	   110
	003364	   040 	   103 	   101
	003367	   103 	   110 	   105
	003372	   123 	   040 	   133
	003375	   101 	   114 	   114
	003400	   054 	   116 	   117
	003403	   116 	   105 	   054
	003406	   060 	   055 	   063
	003411	   135 	   077 	   000
KLIQC -- ASK CACHE QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 159-1
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG

   7084	016200					.PSECT
KLIQC -- ASK CACHE QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 160
$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED

   7086						.SBTTL	$DLGCA	-- ASK IF CACHE IS TO BE CONFIGURED
   7087
   7088	016200	105737 	000035'		$DLGCA::TSTB	.CASW		; IF THERE IS NO CACHE
   7089	016204	002452 				BLT	40$		; THEN GO ON TO NEXT QUESTION.
   7090	016206	105037 	000027'			CLRB	.DCSW		; RESET CACHE CONTROL SWITCH.
   7091	016212	105737 	000024'			TSTB	.DLGSW		; DEFAULT PATH TO BE TAKEN ?
   7092	016216	003055 				BGT	70$		; YES, RECONFIGURE CACHE.
   7093	016220	002440 				BLT	30$		; INTERNAL PATH TO BE TAKEN.
   7094	016222				10$:	PRINT	#TQCACH		; ASK IF CACHE IS TO BE CONFIGURED
	016222	012700 	003303'			 MOV	#TQCACH,R0
	016226	004737 	025442'			 JSR	PC,$TTMSG
   7095	016232					CALL	$TTRD		; AND READ ANSWER.
	016232	004737 	025120'			 JSR	PC,$TTRD
   7096	016236	012705 	000270'			MOV	#.TTIBF,R5
   7097	016242	105715 				TSTB	(R5)		;  CR ?
   7098	016244	001442 				BEQ	70$		; GIVE HIM LAST CONFIGURATION.
   7099	016246	022715 	044506 			CMP	#"FI,(R5)	;  [FILE] ?
   7100	016252	001437 				BEQ	70$		; GIVE HIM LAST CONFIGURATION.
   7101	016254	022715 	046101 			CMP	#"AL,(R5)	;  [ALL] ?
   7102	016260	001432 				BEQ	60$		; GIVE HIM ALL CACHE.
   7103	016262	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7104	016266	001433 				BEQ	LQCCM		; GO ON TO NEXT QUESTION.
   7105	016270	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7106	016274	001416 				BEQ	40$		; IGNORE CACHE.
   7107	016276	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7108	016302	001405 				BEQ	20$		; GO TO RAM QUESTION.
   7109	016304					PRINT	#COMCSE		; MUST BE SOME MISTAKE...
	016304	012700 	004754'			 MOV	#COMCSE,R0
	016310	004737 	025442'			 JSR	PC,$TTMSG
   7110	016314	000742 				BR	10$		; ASK QUESTION AGAIN.
   7111	016316	000137 	017522'		20$:	JMP	$DLGRM		; BACK UP TO RAM QUESTION.
   7112	016322	032737 	000000G	000044'	30$:	BIT	#KL.LCA,.KLISV	; INTERNAL REQUEST MADE ?
   7113	016330	001002 				BNE	50$		; YES, RECONFIGURE CACHE.
   7114	016332	000137 	016670'		40$:	JMP	$DLGMM		; BYPASS CACHE CONFIGURATION.
   7115	016336	032737 	000000G	000044'	50$:	BIT	#KL.CFL,.KLISV	; IF NOT TO GET FROM FILE
   7116	016344	001402 				BEQ	70$		; THEN
   7117	016346	105337 	000027'		60$:	DECB	.DCSW		; INDICATE TO USE ALL CACHES AND
   7118	016352	000137 	021702'		70$:	JMP	$CFGCA		; GO TO CONFIGURE CACHE.
KLIQC -- ASK CACHE QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 161
LQCCM	-- ASK WHICH CACHES TO CONFIGURE

   7120						.SBTTL	LQCCM	-- ASK WHICH CACHES TO CONFIGURE
   7121
   7122	016356				LQCCM:	PRINT	#TQCCEN		;ASK WHICH CACHES HE WANTS
	016356	012700 	003350'			 MOV	#TQCCEN,R0
	016362	004737 	025442'			 JSR	PC,$TTMSG
   7123	016366					CALL	$TTRD		;AND GET HIS ANSWER.
	016366	004737 	025120'			 JSR	PC,$TTRD
   7124	016372	012705 	000270'			MOV	#.TTIBF,R5
   7125	016376	005004 				CLR	R4		;INITIALIZE CACHE COUNTER.
   7126	016400	105715 				TSTB	(R5)		; CR ?
   7127	016402	001443 				BEQ	7$		;GIVE HIM ALL CACHES.
   7128	016404	022715 	046101 			CMP	#"AL,(R5)	; [ALL] ?
   7129	016410	001440 				BEQ	7$		;GIVE HIM ALL CACHES.
   7130	016412	022715 	047516 			CMP	#"NO,(R5)	; [NONE] ?
   7131	016416	001427 				BEQ	6$		;DON'T TOUCH THE CACHE.
   7132	016420	022715 	040502 			CMP	#"BA,(R5)	; [BACKUP] ?
   7133	016424	001665 				BEQ	$DLGCA		;ASK LAST QUESTION.
   7134	016426				3$:	CALL	$TRI2B		;GET A NUMBER -
	016426	004737 	023414'			 JSR	PC,$TRI2B
   7135	016432	103433 				BCS	9$		;IS IT
   7136	016434	022700 	000004 			CMP	#4,R0		;WITHIN RANGE ?
   7137	016440	003430 				BLE	9$
   7138	016442	012701 	000051'			MOV	#.CACHN,R1	;YES, CHECK MODULE TABLE
   7139	016446	110403 				MOVB	R4,R3		;TO SEE IF GIVEN BEFORE.
   7140	016450	001403 				BEQ	5$		;OKAY - EMPTY TABLE.
   7141	016452	120021 			4$:	CMPB	R0,(R1)+
   7142	016454	001422 				BEQ	9$
   7143	016456	077303 				SOB	R3,4$
   7144	016460	105204 			5$:	INCB	R4		;ONE MORE MODULE -
   7145	016462	110011 				MOVB	R0,(R1)		;PUT IN TABLE.
   7146	016464	122725 	000054 			CMPB	#',,(R5)+	;LEGAL SEPERATOR ?
   7147	016470	001756 				BEQ	3$		;YES, GET ANOTHER NUMBER.
   7148	016472	105745 				TSTB	-(R5)		;END OF LINE ?
   7149	016474	001012 				BNE	9$		;NO, ASK QUESTION AGAIN.
   7150	016476	110437 	000050'		6$:	MOVB	R4,.NCACH	;SET NUMBER OF CACHES,
   7151	016502	105237 	000027'			INCB	.DCSW		;INDICATE CONFIGURATION SET AND
   7152	016506	000137 	021702'			JMP	$CFGCA		;GO TO CONFIGURE CACHE.
   7153	016512	105337 	000027'		7$:	DECB	.DCSW		;INDICATE TO USE ALL CACHES AND
   7154	016516	000137 	021702'			JMP	$CFGCA		;GO TO CONFIGURE CACHE.
   7155	016522				9$:	PRINT	#COMCSE		;MUST HAVE MIS-TYPED...
	016522	012700 	004754'			 MOV	#COMCSE,R0
	016526	004737 	025442'			 JSR	PC,$TTMSG
   7156	016532	000711 				BR	LQCCM		;ASK QUESTION AGAIN.
KLIQE --  ASK EXIT QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 162
LQCCM	-- ASK WHICH CACHES TO CONFIGURE

   7159						.TITLE	KLIQE --  ASK EXIT QUESTIONS
   7160	016534					IDENT$	11,0,KLI$$F
						.IDENT	/A11000/
   7161					;
   7162					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7163					;
   7164					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7165					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7166					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7167					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7168					;
   7169					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7170					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7171					; EQUIPMENT CORPORATION.
   7172					;
   7173					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7174					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7175					;
   7176					; VERSION 11-00
   7177					;
   7178					; ALAN D. PECKHAM  12-APR-77
   7179					;
   7180					; MODIFIED BY:
   7181					;
   7182					; FUNCTION: THIS MODULE ALLOWS THE OPERATOR TO RESTART THE DIALOG
   7183					;  OR EXIT FROM KLINIT. IT ALSO DISPATHES INTERNAL REQUESTS FOR
   7184					;  SPECIAL KL RESTARTS SUCH AS POWER FAIL.
   7185					;
   7186					; LOCAL DATA
   7187					;
   7188	003414					.PSECT	TEXT,D
   7189	003414				TQEXIT:
   7190	003414					MESSAGE	<EXIT [YES,RESTART]?>
	003414	   105 	   130 	   111 		 .ASCIZ	\EXIT [YES,RESTART]?\
	003417	   124 	   040 	   133
	003422	   131 	   105 	   123
	003425	   054 	   122 	   105
	003430	   123 	   124 	   101
	003433	   122 	   124 	   135
	003436	   077 	   000
   7191	016534					.PSECT
KLIQE --  ASK EXIT QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 163
$DLGEX	-- ASK WHERE TO EXIT

   7193						.SBTTL	$DLGEX	-- ASK WHERE TO EXIT
   7194
   7195	016534				$DLGEX::
   7196	016534	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   7197	016540	003045 				BGT	50$		; NORMAL EXIT.
   7198	016542	002434 				BLT	40$		; TAKE INTERNAL PATH.
   7199	016544				10$:
   7200	016544					PRINT	#TQEXIT		; ASK QUESTION
	016544	012700 	003414'			 MOV	#TQEXIT,R0
	016550	004737 	025442'			 JSR	PC,$TTMSG
   7201	016554					CALL	$TTRD		; READ ANSWER
	016554	004737 	025120'			 JSR	PC,$TTRD
   7202	016560	012705 	000270'			MOV	#.TTIBF,R5
   7203	016564	105715 				TSTB	(R5)		;  CR ?
   7204	016566	001432 				BEQ	50$		; NORMAL EXIT.
   7205	016570	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7206	016574	001427 				BEQ	50$		; NORMAL EXIT.
   7207	016576	022715 	042522 			CMP	#"RE,(R5)	;  [RESTART] ?
   7208	016602	001412 				BEQ	30$		; GO TO FIRST QUESTION.
   7209	016604	022715 	040502 			CMP	#"BA,(R5)	;  [BACK] ?
   7210	016610	001405 				BEQ	20$		; ASK PREVIOUS QUESTION.
   7211	016612					PRINT	#COMCSE		; FUMBLE FINGERS...
	016612	012700 	004754'			 MOV	#COMCSE,R0
	016616	004737 	025442'			 JSR	PC,$TTMSG
   7212	016622	000750 				BR	10$		; ASK QUESTION AGAIN.
   7213						;
   7214	016624				20$:
   7215	016624	000137 	015652'			JMP	$DLWCF		; ASK TO WRITE CONFIGURATION FILE.
   7216						;
   7217	016630				30$:
   7218	016630	000137 	020010'			JMP	$DLGEN		; ASK IF DIALOG NECESSARY.
   7219						;
   7220	016634				40$:
   7221	016634	032737 	000000G	000044'		BIT	#KL.SPF,.KLISV	; INTERNAL REQUEST ?
   7222	016642	001006 				BNE	60$		; START KL ON POWER FAIL.
   7224	016644	032737 	000000G	000044'		BIT	#KL.SSC,.KLISV
   7225	016652	001004 				BNE	70$		; START KL ON SYSTEM CRASH.
   7227	016654				50$:
   7228	016654	000137 	022060'			JMP	$EXIT		; NORMAL EXIT FROM KLINIT
   7229						;
   7230	016660				60$:
   7231	016660	000137 	021146'			JMP	$POWER		; START KL ON POWER FAIL.
   7232						;
   7234	016664				70$:
   7235	016664	000137 	021236'			JMP	$RSTRT		; START KL ON SYSTEM CRASH.
   7236						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 164
$DLGEX	-- ASK WHERE TO EXIT

   7239						.TITLE	KLIQM -- ASK MEMORY QUESTIONS
   7240	016670					IDENT$	12,04,KLI$$F
						.IDENT	/A12040/
   7241					;
   7242					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7243					;
   7244					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7245					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7246					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7247					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7248					;
   7249					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7250					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7251					; EQUIPMENT CORPORATION.
   7252					;
   7253					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7254					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7255					;
   7256					; VERSION 12-04
   7257					;
   7258					; ALAN D. PECKHAM  12-APR-77
   7259					;
   7260					; MODIFIED BY:
   7261					;
   7262					; R BELANGER	11-JUL-79	ADD FORCE RECONFIGURATION OPTION AND
   7263					;				FORCE RECONFIGURATION ON MF-20
   7264					;				POWER FAIL.
   7265					;				TCO 4.2322
   7266					;
   7267					; R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION OPTION
   7268					;				TCO 4.2204
   7269					; R. BELANGER	25-JUL-78	INTEGRATE WITH MOS CONFIGURATOR
   7270					;
   7271					; FUNCTION: IF REQUESTED, THIS MODULE GETS ALL INFORMATION NECESSARY TO
   7272					;  CONFIGURE THE KL MEMORY.
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 165
$DLGEX	-- ASK WHERE TO EXIT

   7274					;
   7275					; LOCAL DATA
   7276					;
   7277	003440					.PSECT	TEXT,D
   7278	003440				TQMCF0:
   7279	003440					MESSAGE	<CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?>
	003440	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?\
	003443	   106 	   111 	   107
	003446	   125 	   122 	   105
	003451	   040 	   113 	   114
	003454	   040 	   115 	   105
	003457	   115 	   117 	   122
	003462	   131 	   040 	   133
	003465	   106 	   111 	   114
	003470	   105 	   054 	   101
	003473	   114 	   114 	   054
	003476	   122 	   105 	   126
	003501	   105 	   122 	   123
	003504	   105 	   054 	   131
	003507	   105 	   123 	   054
	003512	   116 	   117 	   135
	003515	   077 	   000
   7280	003517				TQMCF1:
   7281	003517					MESSAGE	<CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?>
	003517	   103 	   117 	   116 		 .ASCIZ	\CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?\
	003522	   106 	   111 	   107
	003525	   125 	   122 	   105
	003530	   040 	   113 	   114
	003533	   040 	   115 	   105
	003536	   115 	   117 	   122
	003541	   131 	   040 	   133
	003544	   106 	   111 	   114
	003547	   105 	   054 	   101
	003552	   114 	   114 	   054
	003555	   122 	   105 	   126
	003560	   105 	   122 	   123
	003563	   105 	   054 	   106
	003566	   117 	   122 	   103
	003571	   105 	   054 	   131
	003574	   105 	   123 	   054
	003577	   116 	   117 	   135
	003602	   077 	   000
   7282	003604				TQMNM0:
   7283	003604					ERROR	<NO MEMORY AT LOCATION ZERO>
	003604	   077 	   040 	   116 		 .ASCIZ	\? NO MEMORY AT LOCATION ZERO\
	003607	   117 	   040 	   115
	003612	   105 	   115 	   117
	003615	   122 	   131 	   040
	003620	   101 	   124 	   040
	003623	   114 	   117 	   103
	003626	   101 	   124 	   111
	003631	   117 	   116 	   040
	003634	   132 	   105 	   122
	003637	   117 	   000
   7284	003641				TQMPCA:
   7285	003641					WARNING	<PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED>
	003641	   045 	   040 	   120 		 .ASCIZ	\% PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED\
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 165-1
$DLGEX	-- ASK WHERE TO EXIT

	003644	   110 	   131 	   123
	003647	   111 	   103 	   101
	003652	   114 	   040 	   115
	003655	   105 	   115 	   117
	003660	   122 	   131 	   040
	003663	   103 	   117 	   116
	003666	   106 	   111 	   107
	003671	   125 	   122 	   101
	003674	   124 	   111 	   117
	003677	   116 	   040 	   101
	003702	   114 	   124 	   105
	003705	   122 	   105 	   104
	003710	   040 	   055 	   040
	003713	   104 	   125 	   115
	003716	   120 	   040 	   117
	003721	   122 	   040 	   122
	003724	   105 	   123 	   124
	003727	   101 	   122 	   124
	003732	   040 	   123 	   125
	003735	   120 	   120 	   122
	003740	   105 	   123 	   123
	003743	   105 	   104 	   000
   7286	016670					.PSECT
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 166
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7288						.SBTTL	$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY
   7289
   7290	016670				$DLGMM::
   7291	016670	105037 	000030'			CLRB	.DMSW		; CLEAR MEMORY CONTROL.
   7292	016674	005037 	000220'			CLR	.CFMRV		; [TCO 4.2204] ASSUME NORMAL CONFIGURATION
   7293	016700					CALL	MBINI		; INIT THE MEMORY BOOT
	016700	004737 	000000G			 JSR	PC,MBINI
   7294	016704	032737 	000000G	000044'		BIT	#KL.SPF,.KLISV	; POWER-FAIL RECOVERY??
   7295	016712	001403 				BEQ	5$		; NO -- GO ON
   7296	016714	112737 	177777 	000000G		MOVB	#-1,KEEPBB	; [TCO 4.2322] YES -- KEEP BAD MF20 BLOCKS
   7297	016722				5$:
   7298	016722	105737 	000024'			TSTB	.DLGSW		; TEST CONFIGURATION SWITCH.
   7299	016726	003110 				BGT	90$		; USE LAST CONFIGURATION.
   7300	016730	002460 				BLT	40$		; TAKE INTERNAL PATH.
   7301	016732				10$:
   7302	016732	012700 	003440'			MOV	#TQMCF0,R0	; [TCO 4.2322] ASSUME NO MF-20'S
   7303	016736	105737 	000037'			TSTB	.MFSW		; [TCO 4.2322] ARE THERE ANY MF-20'S??
   7304	016742	003402 				BLE	15$		; [TCO 4.2322] NO -- GO ON
   7305	016744	012700 	003517'			MOV	#TQMCF1,R0	; [TCO 4.2322] YES -- SELECT PROPER MESSAGE
   7306	016750				15$:				; [TCO 4.2322]
   7307	016750					CALL	$TTMSG		; [TCO 4.2322] ASK THE  QUESTION
	016750	004737 	025442'			 JSR	PC,$TTMSG
   7308	016754					CALL	$TTRD		; READ ANSWER.
	016754	004737 	025120'			 JSR	PC,$TTRD
   7309	016760	012705 	000270'			MOV	#.TTIBF,R5
   7310	016764	105715 				TSTB	(R5)		;  CR ?
   7311	016766	001470 				BEQ	90$		; USE LAST CONFIGURATION.
   7312	016770	022715 	044506 			CMP	#"FI,(R5)	;  [FILE] ?
   7313	016774	001465 				BEQ	90$		; USE LAST CONFIGURATION.
   7314	016776	022715 	046101 			CMP	#"AL,(R5)	;  [ALL] ?
   7315	017002	001460 				BEQ	80$		; CONFIGURE ALL MEMORY.
   7316	017004	022715 	042522 			CMP	#"RE,(R5)	; [TCO 4.2204]  [REVERSE] ?
   7317	017010	001443 				BEQ	55$		; [TCO 4.2204] YES -- DO IT
   7318	017012	022715 	047506 			CMP	#"FO,(R5)	; [TCO 4.2322]  [FORCE] ?
   7319	017016	001432 				BEQ	45$		; [TCO 4.2322] YES -- DO IT
   7320	017020	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7321	017024	001437 				BEQ	60$		; GO ON TO NEXT QUESTION.
   7322	017026	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7323	017032	001430 				BEQ	50$		; SKIP MEMORY CONFIGURATION.
   7324	017034	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7325	017040	001405 				BEQ	20$		; ASK PREVIOUS QUESTION.
   7326	017042					PRINT	#COMCSE		; UNCOORDINATED FINGERS...
	017042	012700 	004754'			 MOV	#COMCSE,R0
	017046	004737 	025442'			 JSR	PC,$TTMSG
   7327	017052	000727 				BR	10$		; ASK QUESTION AGAIN.
   7328						;
   7330	017054				20$:
   7331	017054	105737 	000035'			TSTB	.CASW		; IS CACHE AVAILABLE ?
   7332	017060	002402 				BLT	30$		; NO, GO TO RAM QUESTION.
   7333	017062	000137 	021676'			JMP	$DLGCV		; YES, ASK ABOUT CACHE.
   7334						;
   7335	017066				30$:
   7336	017066	000137 	021736'			JMP	$DLGRV		; NO, GO TO RAM QUESTION.
   7337						;
   7343	017072				40$:
   7344	017072	032737 	000000G	000044'		BIT	#KL.CFM,.KLISV	; INTERNAL SPECIFIC REQUEST MADE ?
   7345	017100	001015 				BNE	70$		; YES -- ANALYZE FURTHER...
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 166-1
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7346	017102	000422 				BR	90$		; NO -- MAKE SURE CONFIGURATION STILL EXISTS
   7347						;
   7348	017104				45$:				; [TCO 4.2322]
   7349	017104	112737 	177777 	000000G		MOVB	#-1,DBEFRC	; [TCO 4.2322] FORCE THE DBE SCAN
   7350	017112	000404 				BR	60$		; [TCO 4.2322] AND GO ON
   7351						;
   7352	017114				50$:
   7353	017114	000137 	021732'			JMP	$DLGBV		; ASK TO LOAD BOOT.
   7354						;
   7355	017120				55$:				; [TCO 4.2204]
   7356	017120	005337 	000220'			DEC	.CFMRV		; [TCO 4.2204] SET REVERSE CONFIGURATION
   7357	017124				60$:
   7358	017124	113737 	000220'	000000G		MOVB	.CFMRV,CONFGR	; [TCO 4.2204] TELL THE MEMORY BOOT FORWARD OR REVERSE
   7359	017132	000407 				BR	$DSPPT		; DISPLAY THE PHYSICAL CONFIGURATION.
   7360						;
   7361	017134				70$:
   7362	017134	032737 	000000G	000044'		BIT	#KL.CFL,.KLISV	; IF NOT TO GET FROM FILE,
   7363	017142	001402 				BEQ	90$		; THEN
   7364	017144				80$:
   7365	017144	105337 	000030'			DECB	.DMSW		; INDICATE TO USE ALL AND
   7366	017150				90$:
   7367	017150	000410 				BR	$CFGMM		; GO TO CONFIGURE MEMORY.
   7368						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 167
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

   7370					;
   7371					; HERE FOR LONG MEMORY CONFIGURATION DIALOG
   7372					;
   7373	017152				$DSPPT::
   7374	017152	112737 	177777 	000000G		MOVB	#-1,FMRECN	; [TCO 4.2322] FORCE RECONFIGURATION
   7375	017160					CALL	RESDET		; GET PHYSICAL CONFIGURATION AND
	017160	004737 	000000G			 JSR	PC,RESDET
   7376	017164					CALL	REPCON		; DISPLAY THE MEMORY LAYOUT.
	017164	004737 	000000G			 JSR	PC,REPCON
   7377	017170	000520 				BR	$DLGCT		; ENTER CONTROLLER DIALOG.
   7378						;
   7379					;
   7380					; HERE FOR:
   7381					;
   7382					;	"FILE" IF .DMSW .EQ. 0
   7383					;	"ALL" IF .DMSW .LT. 0
   7384					;
   7385	017172				$CFGMM::
   7386	017172	105737 	000030'			TSTB	.DMSW		; ARE WE IN DIALOG MODE??
   7387	017176	001006 				BNE	10$		; YES -- GO ON
   7388	017200					CALL	$GETMM		; NO -- READ THE FILE
	017200	004737 	013554'			 JSR	PC,$GETMM
   7389	017204	103510 				BCS	ERRORX		; GIVE UP IF ERROR
   7390	017206	105737 	000030'			TSTB	.DMSW		; USE ALL??
   7391	017212	001403 				BEQ	20$		; NO -- GO ON
   7392	017214				10$:
   7393	017214	112737 	177777 	000000G		MOVB	#-1,FMRECN	; [TCO 4.2322] YES -- FORCE RECONFIGURATION
   7394	017222				20$:
   7395	017222	113737 	000220'	000000G		MOVB	.CFMRV,CONFGR	; [TCO 4.2204] SET FORWARD/REVERSE CONFIGURATION
   7396	017230					CALL	RESDET		; GET PHYSICAL CONFIGURATION
	017230	004737 	000000G			 JSR	PC,RESDET
   7397	017234	105737 	000024'			TSTB	.DLGSW		; ARE WE ON INTERNAL PATH??
   7398	017240	002036 				BGE	40$		; NO -- GO ON
   7399	017242	105737 	000000G			TSTB	MF20		; YES -- DO WE HAVE MOS MEMORY??
   7400	017246	001433 				BEQ	40$		; NO -- GO ON
   7401	017250	105737 	000040'			TSTB	.MFCT		; YES -- DO WE EXPECT ANY??
   7402	017254	001430 				BEQ	40$		; NO -- GO ON
   7403	017256	105737 	000000G			TSTB	CCFAIL		; YES -- DID THE MF20'S EVAPORATE??
   7404	017262	001003 				BNE	30$		; YES -- SET UP TO RELOAD THE KL
   7405	017264	005737 	000000G			TST	XCONMP		; NO -- DO WE HAVE ANY STATE 2 CONTROLLERS??
   7406	017270	001022 				BNE	40$		; YES -- GO ON
   7407	017272				30$:
   7408	017272	042737 	000000C	000044'		BIC	#KL.SPF!KL.VBD,.KLISV ; NO -- DON'T RESTART OR DUMP THE KL
   7409	017300	052737 	000000C	000044'		BIS	#KL.VBN!KL.LVB,.KLISV ; JUST LOAD AND START IT INSTEAD
   7410	017306					PRINT	#TQMPCA		; WARN SOMEONE ABOUT IT
	017306	012700 	003641'			 MOV	#TQMPCA,R0
	017312	004737 	025442'			 JSR	PC,$TTMSG
   7411	017316	105737 	000000G			TSTB	CCFAIL		; [TCO 4.2322] DO WE NEED A DBE SCAN??
   7412	017322	001405 				BEQ	40$		; [TCO 4.2322] NO -- GO ON
   7413	017324	112737 	177777 	000000G		MOVB	#-1,DBEFRC	; [TCO 4.2322] YES -- SET THE FLAG
   7414	017332					CALL	RESDET		; [TCO 4.2322] AND DO IT
	017332	004737 	000000G			 JSR	PC,RESDET
   7415	017336				40$:
   7416	017336	105737 	000030'			TSTB	.DMSW		; IS THIS A FILE READ??
   7417	017342	001033 				BNE	$DLGCT		; NO -- DO DEFAULT DIALOG
   7418	017344				$CFGXX::
   7419	017344					CALL	$CONFG		; YES -- EDIT THE TABLES
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 167-1
$DLGMM	-- ASK WHETHER TO CONFIGURE THE KL MEMORY

	017344	004737 	004756'			 JSR	PC,$CONFG
   7420	017350	103424 				BCS	20$		; ERROR IF CC-C IS SET
   7421	017352					CALL	RESDET		; ONE MORE TIME
	017352	004737 	000000G			 JSR	PC,RESDET
   7422	017356					CALL	FITMEM		; SET UP LOGICAL TABLE
	017356	004737 	000000G			 JSR	PC,FITMEM
   7423	017362					CALL	REPFIT		; REPORT LOGICAL CONFIGURATION
	017362	004737 	000000G			 JSR	PC,REPFIT
   7424	017366	005737 	000000G			TST	GAPCNT		; DO WE HAVE ANY GAPS??
   7425	017372	001410 				BEQ	10$		; NO -- GO ON
   7426	017374	005737 	000000G			TST	GAPTAB+0	; YES -- IS THERE A GAP AT 0??
   7427	017400	001005 				BNE	10$		; NO -- GO ON
   7428	017402					PRINT	#TQMNM0		; YES -- COMPLAIN
	017402	012700 	003604'			 MOV	#TQMNM0,R0
	017406	004737 	025442'			 JSR	PC,$TTMSG
   7429	017412	000405 				BR	ERRORX		; AND EXIT
   7430						;
   7431	017414				10$:
   7432	017414					CALL	CONFIG		; SET REQUESTED CONFIGURATION
	017414	004737 	000000G			 JSR	PC,CONFIG
   7433	017420	000241 				CLC			; INSURE CC-C IS CLEAR
   7434	017422				20$:
   7435	017422					CALLR	$DLGMX		; RETURN TO ROOT
	017422	000137 	021730'			 JMP	$DLGMX
   7436						;
   7437	017426				ERRORX:
   7438	017426	000137 	022050'			JMP	$ERROR		; ERROR EXIT
   7439						;
KLIQM -- ASK MEMORY QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 168
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7441						.SBTTL	$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER
   7442
   7443	017432				$DLGCT::
   7444	017432	012700 	000040 			MOV	#CTLS,R0	; MAX CONTROLLER NUMBER
   7445	017436	012701 	000120'			MOV	#.CFGTB,R1	; POINT TO CONFIGURATION TABLE
   7446	017442				10$:
   7447	017442	116060 	177777G	000055'		MOVB	TYPNUM-1(R0),.CTLTP-1(R0) ; SET UP OUR CONTROLLER TABLE
   7448	017450	012721 	100000 			MOV	#BIT15,(R1)+	; INVALIDATE OUR CONFIGURATION TABLE
   7449	017454	077006 				SOB	R0,10$		; LOOP TILL DONE
   7450					;
   7451					; CONFIGURATION DIALOG VECTORS
   7452					;
   7453	017456				$DLGIM::
   7454	017456					CALLR	$CFIMD		; INTERNAL MEMORY DIALOG
	017456	000137 	003474'			 JMP	$CFIMD
   7455						;
   7456	017462				$DLGXM::
   7457	017462					CALLR	$CFXMD		; EXTERNAL MEMORY DIALOG
	017462	000137 	006006'			 JMP	$CFXMD
   7458						;
   7459	017466				$DLGMF::
   7460	017466					CALLR	$CFMMD		; MOS MEMORY DIALOG
	017466	000137 	003442'			 JMP	$CFMMD
   7461						;
   7462	017472				$DLGMB::
   7463	017472					CALLR	$DLGMM		; BACK UP
	017472	000137 	016670'			 JMP	$DLGMM
   7464						;
   7465					;
   7466					; DECIDE WHERE TO GO ON "BACKUP"
   7467					;
   7468	017476				$DLMB1::			; HERE FROM MOS MEMORY DIALOG
   7469	017476	105737 	000000G			TSTB	DMA20		; DO WE HAVE EXTERNAL MEMORY??
   7470	017502	001367 				BNE	$DLGXM		; YES -- GO TO IT
   7471	017504				$DLMB2::			; HERE FROM EXTERNAL MEMORY DIALOG
   7472	017504	105737 	000000G			TSTB	MA20		; DO WE HAVE MA20'S??
   7473	017510	001362 				BNE	$DLGIM		; YES -- GO TO IT
   7474	017512	105737 	000000G			TSTB	MB20		; DO WE HAVE MB20'S??
   7475	017516	001357 				BNE	$DLGIM		; YES -- GO TO IT
   7476	017520	000764 				BR	$DLGMB		; NO -- GO ALL THE WAY TO THE TOP
   7477						;
KLIQR -- ASK RAM QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 169
$DLGCT	-- ASK FOR MEMORY CONTROLLER NUMBER

   7479						.TITLE	KLIQR -- ASK RAM QUESTIONS
   7480	017522					IDENT$	5,2								; ADP01
						.IDENT	/005020/
   7481					;
   7482					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7483					;
   7484					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7485					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7486					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7487					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7488					;
   7489					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7490					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7491					; EQUIPMENT CORPORATION.
   7492					;
   7493					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7494					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7495					;
   7496					; VERSION 05-02									; ADP01
   7497					;
   7498					; ALAN D. PECKHAM  14-APR-77
   7499					;
   7500					; MODIFIED BY:
   7501					;
   7502					;	K. LEFEBVRE	13-MAR-79	ADD EXPANDED CRAM/DRAM ERROR REPORT
   7503					;					TCO 4.2209
   7504					;
   7505					; FUNCTION: THIS MODULE DETERMINES THE OPERATIONS TO PERFORM ON THE KL
   7506					;  MICROCODE RAMS.
   7507					;
   7508					; LOCAL DATA
   7509					;
   7510	003746					.PSECT	TEXT,D
   7511	003746				TQRLMC:	MESSAGE	<RELOAD MICROCODE [YES,VERIFY,FIX,NO]?>
	003746	   122 	   105 	   114 		 .ASCIZ	\RELOAD MICROCODE [YES,VERIFY,FIX,NO]?\
	003751	   117 	   101 	   104
	003754	   040 	   115 	   111
	003757	   103 	   122 	   117
	003762	   103 	   117 	   104
	003765	   105 	   040 	   133
	003770	   131 	   105 	   123
	003773	   054 	   126 	   105
	003776	   122 	   111 	   106
	004001	   131 	   054 	   106
	004004	   111 	   130 	   054
	004007	   116 	   117 	   135
	004012	   077 	   000
   7512	017522					.PSECT
KLIQR -- ASK RAM QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 170
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   7514						.SBTTL	$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED
   7515
   7516	017522	105037 	000026'		$DLGRM::CLRB	.DRSW		; RESET CONTROL AND
   7517	017526	105037 	000025'			CLRB	.UFNSW		; FILENAME SWITCH.
   7518	017532	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG SWITCH.
   7519	017536	003110 				BGT	90$		; TAKE DIALOG DEFAULT PATH.
   7520	017540	002441 				BLT	30$		; TAKE INTERNAL PATH.
   7521	017542	005002 			10$:	CLR	R2		; USE AS VERIFY SWITCH.
   7522	017544					PRINT	#TQRLMC		; ASK QUESTION
	017544	012700 	003746'			 MOV	#TQRLMC,R0
	017550	004737 	025442'			 JSR	PC,$TTMSG
   7523	017554					CALL	$TTRD		; READ ANSWER
	017554	004737 	025120'			 JSR	PC,$TTRD
   7524	017560	012705 	000270'			MOV	#.TTIBF,R5
   7525	017564	105715 				TSTB	(R5)		;  CR ?
   7526	017566	001474 				BEQ	90$		; YES, TREAT AS [YES]
   7527	017570	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7528	017574	001443 				BEQ	60$		; LOAD THE RAMS.
   7529	017576	022715 	042526 			CMP	#"VE,(R5)	;  [VERIFY] ?
   7530	017602	001437 				BEQ	50$		; VERIFY THE RAMS.
   7531	017604	022715 	044506 			CMP	#"FI,(R5)	; [TCO 4.2209]  [FIX] ?
   7532	017610	001430 				BEQ	35$		; [TCO 4.2209] VERIFY AND FIX THE RAMS.
   7533	017612	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7534	017616	001427 				BEQ	40$		; GO ON TO NEXT QUESTION.
   7535	017620	022715 	040502 			CMP	#"BA,(R5)	;  [BACKUP] ?
   7536	017624	001005 				BNE	20$		; GO TO DIALOG QUESTION.
   7537	017626				80$:	PRINT	#COMCSE		; MUST BE SOME MISTAKE...
	017626	012700 	004754'			 MOV	#COMCSE,R0
	017632	004737 	025442'			 JSR	PC,$TTMSG
   7538	017636	000741 				BR	10$		; ASK QUESTION AGAIN.
   7539	017640	000137 	020010'		20$:	JMP	$DLGEN		; ASK IF DIALOG NECESSARY.
   7540	017644	005002 			30$:	CLR	R2		; [TCO 4.2209] CLEAR FIX FLAG
   7541	017646	032737 	000000G	000044'		BIT	#KL.LRM,.KLISV	; LOAD RAMS ?
   7542	017654	001410 				BEQ	40$		; [TCO 4.2209] NO-- NEXT QUESTION
   7543	017656	032737 	000000C	000044'		BIT	#KL.SPF!KL.DEF,.KLISV	; [TCO 4.2209] YES-- POWER FAIL?
   7544	017664	001033 				BNE	70$		; [TCO 4.2209] YES-- NO VERIFY
   7545	017666	105302 				DECB	R2		; [TCO 4.2209] YES-- VERIFY AND FIX THE RAMS.
   7546	017670	000431 				BR	70$		; [TCO 4.2209] CONTINUE.
   7547	017672	105302 			35$:	DECB	R2		; [TCO 4.2209] SET FLAG TO FIX RAMS.
   7548	017674	000403 				BR	60$		; [TCO 4.2209] CONTINUE.
   7550	017676	000137 	016200'		40$:	JMP	$DLGCA		; CHECK FOR CACHE.
   7554	017702	105202 			50$:	INCB	R2		; INDICATE VERIFICATION NECESSARY
   7555	017704				60$:	CALL	LQRBPS		; CHECK FOR OPERAND
	017704	004737 	017764'			 JSR	PC,LQRBPS
   7556	017710	001421 				BEQ	70$		; NO OPERAND IS OKAY.				; ADP01
   7557	017712	032737 	000006 	000000G		BIT	#6,.FEMOD	; IF IN OPERATOR MODE, THEN
   7558	017720	001742 				BEQ	80$		; OPERAND IS FORBIDDEN.
   7559	017722	012700 	000442'			MOV	#.USRFN,R0	; GET USER FILENAME BLOCK
   7560	017726	012701 				MOV	(PC)+,R1
   7561	017730	050672 				.RAD50	/MCB/		; SET DEFAULT FILE TYPE
   7562	017732	010160 	000006 			MOV	R1,6(R0)
   7563	017736					CALL	$TRF2B		; AND GET FILE NAME.
	017736	004737 	023136'			 JSR	PC,$TRF2B
   7564	017742	103731 				BCS	80$
   7565	017744	105715 				TSTB	(R5)		; CHECK FOR PROPER TERMINATION.
   7566	017746	001327 				BNE	80$
   7567	017750	105237 	000025'			INCB	.UFNSW		; FILE NAME HAS BEEN SPECIFIED.
KLIQR -- ASK RAM QUESTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 170-1
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   7568	017754	110237 	000026'		70$:	MOVB	R2,.DRSW	; INSERT VERIFY SWITCH.
   7569	017760	000137 	021670'		90$:	JMP	$CFGRM		; AND GO PROCESS MICROCODE.
   7570
   7571					;+
   7572					; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
   7573					;-
   7574
   7575	017764	105715 			LQRBPS:	TSTB	(R5)		; IF END OF LINE
   7576	017766	001407 				BEQ	90$		; THEN QUIT
   7577	017770	122725 	000040 			CMPB	#' ,(R5)+	; OTHERWISE LOOK
   7578	017774	001373 				BNE	LQRBPS		; FOR A SPACE.
   7579	017776	122725 	000040 		10$:	CMPB	#' ,(R5)+	; THEN BYPASS
   7580	020002	001775 				BEQ	10$		; ANY MORE THAT FOLLOW.
   7581	020004	105745 				TSTB	-(R5)		; TEST FOR END OF LINE.
   7582	020006				90$:	RETURN
	020006	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 171
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   7584						.TITLE	KLIQS -- DIALOG ENTRANCE QUESTION
   7585	020010					IDENT$	12,07
						.IDENT	/012070/
   7586
   7587					;
   7588					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7589					;
   7590					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7591					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7592					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7593					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   7594					;
   7595					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7596					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7597					; EQUIPMENT CORPORATION.
   7598					;
   7599					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7600					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7601					;
   7602					; VERSION 12-07
   7603					;
   7604					; ALAN D. PECKHAM  14-APR-77
   7605					;
   7606					; MODIFIED BY:
   7607					;
   7608					; R. BELANGER	16-JUL-79	ADD KL10 HARDWARE ENVIRONMENTAL REPORTING
   7609					;				TCO 4.2333
   7610					;
   7611					; R. BELANGER -- SET MF20 FLAG ON DETECTION OF MOS MASTER OSCILLATOR
   7612					;
   7613					; FUNCTION: THIS DIALOG QUESTION DETERMINES IF THE OPERATOR
   7614					;  WANTS TO GO THROUGH THE DIALOG QUESTIONS OR FOLLOW
   7615					;  THE DEFAULT PATH BY ASSUMING THE DEFAULT ANSWER TO
   7616					;  ALL QUESTIONS.
   7617					;
   7618					; LOCAL VARIABLES
   7619					;
   7620	001540					.PSECT	DATA,D
   7621	001540				DQSCBF:
   7622	001540	000000 	000000 	000000 		.WORD	0,0,0,0,0,0	;HOLDING AREA FOR C-RAM WORD ZERO.
	001546	000000 	000000 	000000
   7623	001554				DQSCF3:
   7624	001554	000000 	000460 	000000 		.WORD	0,460,0,0,0,0	;C-RAM WORD WITH COND FIELD = 3.
	001562	000000 	000000 	000000
   7625	001570				DQSAPR:
   7626	001570					WD36$	0 0		;HOLDING AREA FOR RH(APRID)
	001570	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001573	   000 	   000 			 .BYTE	BY$$3,BY$$4
   7627						.EVEN
   7628	001576				DQSHWT:
   7629	001576	000000 				.WORD	0
   7630	001600	004156'				.WORD	TQSMMO
   7631	001602	004206'				.WORD	TQSEXT
   7632	001604	004234'				.WORD	TQSCHN
   7633	001606	004260'				.WORD	TQSCAC
   7634	001610	000000 				.WORD	0
   7635	004014					.PSECT	TEXT,D
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 171-1
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

   7636	004014				TQSDLG:
   7637	004014					MESSAGE	<ENTER DIALOG [NO,YES,EXIT,BOOT]?>
	004014	   105 	   116 	   124 		 .ASCIZ	\ENTER DIALOG [NO,YES,EXIT,BOOT]?\
	004017	   105 	   122 	   040
	004022	   104 	   111 	   101
	004025	   114 	   117 	   107
	004030	   040 	   133 	   116
	004033	   117 	   054 	   131
	004036	   105 	   123 	   054
	004041	   105 	   130 	   111
	004044	   124 	   054 	   102
	004047	   117 	   117 	   124
	004052	   135 	   077 	   000
   7638	004055				TQSKSN:
   7639	004055					MESSAGE <KLI -- KL10 S/N: _>
	004055	   113 	   114 	   111 		 .ASCIZ	\KLI -- KL10 S/N: _\
	004060	   040 	   055 	   055
	004063	   040 	   113 	   114
	004066	   061 	   060 	   040
	004071	   123 	   057 	   116
	004074	   072 	   040 	   137
	004077	   000
   7640	004100				TQSMDL:
   7641	004100					MESSAGE <., MODEL _>
	004100	   056 	   054 	   040 		 .ASCIZ	\., MODEL _\
	004103	   115 	   117 	   104
	004106	   105 	   114 	   040
	004111	   137 	   000
   7642	004113				TQSHRZ:
   7643	004113	   040 	   110 	   105 		.ASCIZ / HERTZ\/
	004116	   122 	   124 	   132
	004121	   134 	   000
   7644	004123				TQSHWP:
   7645	004123					MESSAGE <KL10 HARDWARE ENVIRONMENT:>
	004123	   113 	   114 	   061 		 .ASCIZ	\KL10 HARDWARE ENVIRONMENT:\
	004126	   060 	   040 	   110
	004131	   101 	   122 	   104
	004134	   127 	   101 	   122
	004137	   105 	   040 	   105
	004142	   116 	   126 	   111
	004145	   122 	   117 	   116
	004150	   115 	   105 	   116
	004153	   124 	   072 	   000
   7646	004156				TQSMMO:
   7647	004156	   011 	   115 	   117 		.ASCIZ /	MOS MASTER OSCILLATOR\/
	004161	   123 	   040 	   115
	004164	   101 	   123 	   124
	004167	   105 	   122 	   040
	004172	   117 	   123 	   103
	004175	   111 	   114 	   114
	004200	   101 	   124 	   117
	004203	   122 	   134 	   000
   7648	004206				TQSEXT:
   7649	004206	   011 	   105 	   130 		.ASCIZ /	EXTENDED ADDRESSING\/
	004211	   124 	   105 	   116
	004214	   104 	   105 	   104
	004217	   040 	   101 	   104
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 171-2
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

	004222	   104 	   122 	   105
	004225	   123 	   123 	   111
	004230	   116 	   107 	   134
	004233	   000
   7650	004234				TQSCHN:
   7651	004234	   011 	   111 	   116 		.ASCIZ /	INTERNAL CHANNELS\/
	004237	   124 	   105 	   122
	004242	   116 	   101 	   114
	004245	   040 	   103 	   110
	004250	   101 	   116 	   116
	004253	   105 	   114 	   123
	004256	   134 	   000
   7652	004260				TQSCAC:
   7653	004260	   011 	   103 	   101 		.ASCIZ /	CACHE\/
	004263	   103 	   110 	   105
	004266	   134 	   000
   7654	004270				TQSCDH:
   7655	004270					ERROR	<CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT>
	004270	   077 	   040 	   103 		 .ASCIZ	\? CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT\
	004273	   101 	   116 	   047
	004276	   124 	   040 	   104
	004301	   105 	   124 	   105
	004304	   122 	   115 	   111
	004307	   116 	   105 	   040
	004312	   113 	   114 	   061
	004315	   060 	   040 	   110
	004320	   101 	   122 	   104
	004323	   127 	   101 	   122
	004326	   105 	   040 	   105
	004331	   116 	   126 	   111
	004334	   122 	   117 	   116
	004337	   115 	   105 	   116
	004342	   124 	   000
   7656	004344				TQSWRN:
   7657	004344					WARNING <PROCEED AT YOUR OWN RISK>
	004344	   045 	   040 	   120 		 .ASCIZ	\% PROCEED AT YOUR OWN RISK\
	004347	   122 	   117 	   103
	004352	   105 	   105 	   104
	004355	   040 	   101 	   124
	004360	   040 	   131 	   117
	004363	   125 	   122 	   040
	004366	   117 	   127 	   116
	004371	   040 	   122 	   111
	004374	   123 	   113 	   000
   7658	004377				TQSABO:
   7659	004377					WARNING <AUTOMATIC RELOAD ABORTED>
	004377	   045 	   040 	   101 		 .ASCIZ	\% AUTOMATIC RELOAD ABORTED\
	004402	   125 	   124 	   117
	004405	   115 	   101 	   124
	004410	   111 	   103 	   040
	004413	   122 	   105 	   114
	004416	   117 	   101 	   104
	004421	   040 	   101 	   102
	004424	   117 	   122 	   124
	004427	   105 	   104 	   000
   7660	004432				TQSMMA:
   7661	004432					ERROR	<CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU>
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 171-3
$DLGRM	-- ASK IF RELOAD MICROCODE IS REQUIRED

	004432	   077 	   040 	   103 		 .ASCIZ	\? CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU\
	004435	   101 	   116 	   047
	004440	   124 	   040 	   123
	004443	   125 	   120 	   120
	004446	   117 	   122 	   124
	004451	   040 	   115 	   117
	004454	   123 	   040 	   115
	004457	   105 	   115 	   117
	004462	   122 	   131 	   040
	004465	   117 	   116 	   040
	004470	   101 	   040 	   115
	004473	   117 	   104 	   105
	004476	   114 	   040 	   042
	004501	   101 	   042 	   040
	004504	   103 	   120 	   125
	004507	   000
   7662	020010					.PSECT
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 172
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7664						.SBTTL	$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED
   7665
   7666	020010				$DLGEN::
   7667	020010	105037 	000041'			CLRB	.FILSW		; SAY WRITE CONFIGURATION FILE
   7668	020014	105737 	000024'			TSTB	.DLGSW		; TEST DIALOG CONTROL SWITCH.
   7669	020020	002437 				BLT	40$		; TAKE INTERNAL PATH.
   7670	020022	105037 	000024'			CLRB	.DLGSW		; RESET CONTROL SWITCH.
   7671					;
   7672					; ENTER DIALOGUE
   7673					;
   7674	020026				10$:
   7675	020026					PRINT	#TQSDLG		; ASK QUESTION.
	020026	012700 	004014'			 MOV	#TQSDLG,R0
	020032	004737 	025442'			 JSR	PC,$TTMSG
   7676	020036					CALL	$TTRD		; READ ANSWER
	020036	004737 	025120'			 JSR	PC,$TTRD
   7677	020042	012705 	000270'			MOV	#.TTIBF,R5
   7678	020046	105715 				TSTB	(R5)		;  CR ?
   7679	020050	001421 				BEQ	30$		; YES, TREAT AS DEFAULT
   7680	020052	022715 	047516 			CMP	#"NO,(R5)	;  [NO] ?
   7681	020056	001416 				BEQ	30$		; TAKE DEFAULT DIALOG PATH.
   7682	020060	022715 	042531 			CMP	#"YE,(R5)	;  [YES] ?
   7683	020064	001415 				BEQ	40$		; ASK NEXT QUESTION.
   7684	020066	022715 	054105 			CMP	#"EX,(R5)	;  [EXIT] ?
   7685	020072	001477 				BEQ	120$		; EXIT FROM KLINIT.
   7686	020074	022715 	047502 			CMP	#"BO,(R5)	;  [BOOT] ?
   7687	020100	001423 				BEQ	60$		; LOAD AND START BOOT.
   7688					;
   7689					; COMMAND SYNTAX ERROR
   7690					;
   7691	020102				20$:
   7692	020102					PRINT	#COMCSE		; SOME MISTAKE....
	020102	012700 	004754'			 MOV	#COMCSE,R0
	020106	004737 	025442'			 JSR	PC,$TTMSG
   7693	020112	000745 				BR	10$		; ASK QUESTION AGAIN.
   7694						;
   7695					;
   7696					; "NO" RESPONSE
   7697					;
   7698	020114				30$:
   7699	020114	105237 	000024'			INCB	.DLGSW		; INDICATE DEFAULT PATH
   7700					;
   7701					; "YES" RESPONSE OR INTERNAL PATH
   7702					;
   7703	020120				40$:
   7704	020120					CALL	LQSHWE		; [TCO 4.2333] READ AND DESCRIBE OUR HARDWARE
	020120	004737 	020330'			 JSR	PC,LQSHWE
   7705	020124	103007 				BCC	50$		; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
   7706	020126	105737 	000024'			TSTB	.DLGSW		; [TCO 4.2333] ARE WE ON INTERNAL PATH??
   7707	020132	002453 				BLT	110$		; [TCO 4.2333] YES -- ABORT AUTOMATIC RELOAD
   7708	020134					PRINT	#TQSWRN		; [TCO 4.2333] NO -- WARN OPERATOR
	020134	012700 	004344'			 MOV	#TQSWRN,R0
	020140	004737 	025442'			 JSR	PC,$TTMSG
   7709	020144				50$:
   7710	020144	000137 	017522'			JMP	$DLGRM		; AND START DIALOGUE
   7711						;
   7712					;
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 172-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7713					; "BOOT" RESPONSE
   7714					;
   7715	020150				60$:
   7716	020150	105037 	000031'			CLRB	.DBSW
   7717	020154	105337 	000041'			DECB	.FILSW		; DISABLE CONFIGURATION FILE WRITE
   7718	020160	105037 	000025'			CLRB	.UFNSW		; USE DEFAULT FILE
   7719	020164					CALL	LQSBPS		; IF OPERAND FOLLOWS
	020164	004737 	020304'			 JSR	PC,LQSBPS
   7720	020170	001415 				BEQ	70$		; THEN
   7721	020172	012700 	000442'			MOV	#.USRFN,R0	; GET FILENAME BLOCK
   7722	020176	012701 				MOV	(PC)+,R1
   7723	020200	021402 				.RAD50	/EXB/		; SET DEFAULT EXTENSION
   7724	020202	010160 	000006 			MOV	R1,6(R0)
   7725	020206					CALL	$TRF2B		; AND PARSE OUT FILE NAME.
	020206	004737 	023136'			 JSR	PC,$TRF2B
   7726	020212	103733 				BCS	20$
   7727	020214	105715 				TSTB	(R5)		; IF NOT TERMINATED PROPERLY
   7728	020216	001331 				BNE	20$		; TELL HIM SO.
   7729	020220	105237 	000025'			INCB	.UFNSW		; INDICATED FILE NAME SPECIFIED.
   7730	020224				70$:
   7731	020224					CALL	LQSHDW		; [TCO 4.2333] READ THE HARDWARE OPTIONS
	020224	004737 	020640'			 JSR	PC,LQSHDW
   7732	020230	103003 				BCC	80$		; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
   7733	020232					CALL	LQSCHE		; [TCO 4.2333] TELL HIM WE GOT AN ERROR
	020232	004737 	020620'			 JSR	PC,LQSCHE
   7734	020236	000403 				BR	90$		; [TCO 4.2333] AND GO ON
   7735						;
   7736	020240				80$:
   7737	020240					CALL	LQSCHO		; [TCO 4.2333] MAKE SURE THAT WE ARE OK
	020240	004737 	020574'			 JSR	PC,LQSCHO
   7738	020244	103004 				BCC	100$		; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
   7739	020246				90$:
   7740	020246					PRINT	#TQSWRN		; [TCO 4.2333] WARN HIM
	020246	012700 	004344'			 MOV	#TQSWRN,R0
	020252	004737 	025442'			 JSR	PC,$TTMSG
   7741	020256				100$:
   7742	020256	000137 	021756'			JMP	$CFGBT		; AND GO LOAD BOOT.
   7743						;
   7744					;
   7745					; HERE TO ABORT AN AUTOMATIC RELOAD
   7746					;
   7747	020262				110$:
   7748	020262					PRINT	#TQSABO		; [TCO 4.2333] SAY THAT WE ARE ABORTING
	020262	012700 	004377'			 MOV	#TQSABO,R0
	020266	004737 	025442'			 JSR	PC,$TTMSG
   7749					;
   7750					; "EXIT" RESPONSE
   7751					;
   7752	020272				120$:
   7753	020272	013737 	000046'	000000G		MOV	.SNSAV,.CPUSN	; [TCO 4.2333] RESTORE SERIAL NUMBER
   7754	020300	000137 	022060'			JMP	$EXIT		; EXIT FROM KLINIT.
   7755						;
   7756
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 173
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7758					;+
   7759					; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
   7760					;-
   7761
   7762	020304				LQSBPS:
   7763	020304	105715 				TSTB	(R5)		; IF END OF LINE
   7764	020306	001407 				BEQ	20$		; THEN QUIT
   7765	020310	122725 	000040 			CMPB	#' ,(R5)+	; OTHERWISE LOOK
   7766	020314	001373 				BNE	LQSBPS		; FOR A SPACE.
   7767	020316				10$:
   7768	020316	122725 	000040 			CMPB	#' ,(R5)+	; THEN BYPASS
   7769	020322	001775 				BEQ	10$		; ANY MORE THAT FOLLOW.
   7770	020324	105745 				TSTB	-(R5)		; TEST FOR END OF LINE.
   7771	020326				20$:
   7772	020326					RETURN
	020326	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 174
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7774					;+
   7775					; THIS SUBROUTINE DISPLAYS THE HARDWARE ENVIRONMENT OF THE KL10, AND DOES
   7776					; CHECKS FOR CONFLICTING OPTIONS.
   7777					;-
   7778
   7779						.ENABL	LSB
   7780
   7781	020330				LQSHWE:
   7782	020330	005737 	000000G			TST	.CPUSN		; [TCO 4.2333] HAVE WE BEEN HERE BEFORE??
   7783	020334	003140 				BGT	60$		; [TCO 4.2333] YES -- JUST EXIT
   7784	020336	100530 				BMI	LQSCHE		; [TCO 4.2333] YES -- FAILED BEFORE, GRIPE AND EXIT
   7785	020340					CALL	LQSHDW		; [TCO 4.2333] NO -- READ THE HARDWARE OPTIONS
	020340	004737 	020640'			 JSR	PC,LQSHDW
   7786	020344	103525 				BCS	LQSCHE		; [TCO 4.2333] ERROR IF CC-C IS SET
   7787	020346	105737 	000024'			TSTB	.DLGSW		; [TCO 4.2333] ARE WE ON INTERNAL PATH??
   7788	020352	002003 				BGE	10$		; [TCO 4.2333] NO -- GO ON
   7789	020354	005737 	000000G			TST	.DATE3		; [TCO 4.2333] YES -- IS THIS A RELOAD??
   7790	020360	001105 				BNE	LQSCHO		; [TCO 4.2333] YES -- JUST CHECK OPTIONS
   7791	020362				10$:
   7792	020362	012700 	004055'			MOV	#TQSKSN,R0	; [TCO 4.2333] NO -- SERIAL NUMBER PREAMBLE TO R0
   7793	020366					CALL	$TTDMS		; [TCO 4.2333] PRINT IT
	020366	004737 	025374'			 JSR	PC,$TTDMS
   7794	020372	013700 	000000G			MOV	.CPUSN,R0	; [TCO 4.2333] AND THE SERIAL NUMBER
   7795	020376					CALL	$TDB2I		; [TCO 4.2333] PRINT THAT
	020376	004737 	023254'			 JSR	PC,$TDB2I
   7796	020402	012700 	004100'			MOV	#TQSMDL,R0	; [TCO 4.2333] MODEL TYPE PREAMBLE
   7797	020406					CALL	$TTDMS		; [TCO 4.2333] PRINT THAT
	020406	004737 	025374'			 JSR	PC,$TTDMS
   7798	020412	012746 	000102 			MOV	#'B,-(SP)	; [TCO 4.2333] ASSUME MODEL "B"
   7799	020416	010600 				MOV	SP,R0		; [TCO 4.2333] POINT TO BUFFER ON STACK
   7800	020420	012701 	000001 			MOV	#1,R1		; [TCO 4.2333] LENGTH OF 1 CHARACTER
   7801	020424	105737 	000036'			TSTB	.EASW		; [TCO 4.2333] IS IT A MODEL "B"??
   7802	020430	100001 				BPL	20$		; [TCO 4.2333] YES -- GO ON
   7803	020432	005316 				DEC	(SP)		; [TCO 4.2333] NO -- MAKE IT AN "A"
   7804	020434				20$:
   7805	020434					CALL	$TTWR		; [TCO 4.2333] AND PRINT IT
	020434	004737 	025522'			 JSR	PC,$TTWR
   7806	020440	012716 	000054 			MOV	#',,(SP)	; [TCO 4.2333] SET UP <COMMA>
   7807	020444					CALL	$TTWR		; [TCO 4.2333] AND PRINT IT
	020444	004737 	025522'			 JSR	PC,$TTWR
   7808	020450	005726 				TST	(SP)+		; [TCO 4.2333] CLEAR STACK
   7809	020452					CALL	$TTSPC		; [TCO 4.2333] PRINT A <SPACE>
	020452	004737 	025306'			 JSR	PC,$TTSPC
   7810	020456	012700 	000074 			MOV	#^D60,R0	; [TCO 4.2333] ASSUME A 60 HERTZ MACHINE
   7811	020462	032737 	000000G	000000G		BIT	#H.KPWR,.HRDWR	; [TCO 4.2333] IS IT A 60 HERTZ MACHINE??
   7812	020470	001402 				BEQ	30$		; [TCO 4.2333] YES -- GO ON
   7813	020472	012700 	000062 			MOV	#^D50,R0	; [TCO 4.2333] NO -- MAKE IT 50 HERTZ
   7814	020476				30$:
   7815	020476					CALL	$TDB2I		; [TCO 4.2333] PRINT WHATEVER
	020476	004737 	023254'			 JSR	PC,$TDB2I
   7816	020502	012700 	004113'			MOV	#TQSHRZ,R0	; [TCO 4.2333] POSTAMBLE POINTER TO R0
   7817	020506					CALL	$TTDMS		; [TCO 4.2333] AND PRINT IT
	020506	004737 	025374'			 JSR	PC,$TTDMS
   7818	020512					PRINT	#TQSHWP		; [TCO 4.2333] PRINT THE HEADER
	020512	012700 	004123'			 MOV	#TQSHWP,R0
	020516	004737 	025442'			 JSR	PC,$TTMSG
   7819	020522	012701 	000001 			MOV	#BIT0,R1	; [TCO 4.2333] BIT MASK TO R1
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 174-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7820	020526	012702 	001576'			MOV	#DQSHWT,R2	; [TCO 4.2333] TABLE POINTER TO R2
   7821	020532	013703 	000000G			MOV	.HRDWR,R3	; [TCO 4.2333] OPTION BITS TO R3
   7822	020536	042703 	000000C			BIC	#H.KUDF!H.KPWR,R3 ; [TCO 4.2333] MINUS A COUPLE
   7823	020542	012704 	000006 			MOV	#6,R4		; [TCO 4.2333] ITERATION COUNT TO R4
   7824	020546				40$:
   7825	020546	030103 				BIT	R1,R3		; [TCO 4.2333] IS THE OPTION PRESENT??
   7826	020550	001404 				BEQ	50$		; [TCO 4.2333] NO -- TRY NET OPTION
   7827	020552	011200 				MOV	(R2),R0		; [TCO 4.2333] YES -- DO WE CARE ABOUT IT AT THIS POINT??
   7828	020554	001402 				BEQ	50$		; [TCO 4.2333] NO -- GO ON
   7829	020556					CALL	$TTDMS		; [TCO 4.2333] YES -- PRINT IT
	020556	004737 	025374'			 JSR	PC,$TTDMS
   7830	020562				50$:
   7831	020562	005722 				TST	(R2)+		; [TCO 4.2333] ADVANCE MESSAGE POINTER
   7832	020564	006301 				ASL	R1		; [TCO 4.2333] ADVANCE BIT MASK
   7833	020566	077411 				SOB	R4,40$		; [TCO 4.2333] AND CONTINUE
   7834	020570					CALL	$TCRLF		; [TCO 4.2333] END THE DISPLAY
	020570	004737 	025336'			 JSR	PC,$TCRLF
   7835					;
   7836					; HERE TO CHECK FOR CONFLICTING OPTIONS
   7837					; (MODEL "A" CPU AND MOS MASTER OSCILATOR)
   7838					;
   7839	020574				LQSCHO:
   7840	020574	105737 	000036'			TSTB	.EASW		; [TCO 4.2333] IS THIS A MODEL "A" CPU??
   7841	020600	100016 				BPL	60$		; [TCO 4.2333] NO -- GO ON
   7842	020602	105737 	000037'			TSTB	.MFSW		; [TCO 4.2333] YES -- IS MOS MEMORY PRESENT??
   7843	020606	100413 				BMI	60$		; [TCO 4.2333] NO -- GO ON (FIX TEST POLARITY)
   7844	020610					PRINT	#TQSMMA		; [TCO 4.2333] YES -- COMPLAIN
	020610	012700 	004432'			 MOV	#TQSMMA,R0
	020614	004737 	025442'			 JSR	PC,$TTMSG
   7845					;
   7846					; HERE TO FLAG AND REPORT HARDWARE OPTION ERRORS
   7847					;
   7848	020620				LQSCHE:
   7849	020620					PRINT	#TQSCDH		; [TCO 4.2333] CAN'T DETERMINE HARDWARE OPTIONS
	020620	012700 	004270'			 MOV	#TQSCDH,R0
	020624	004737 	025442'			 JSR	PC,$TTMSG
   7850	020630	005337 	000000G			DEC	.CPUSN		; [TCO 4.2333] FLAG THIS FACT
   7851	020634	000261 				SEC			; [TCO 4.2333] SET ERROR RETURN
   7852	020636				60$:
   7853	020636					RETURN			; [TCO 4.2333] TO CALLER
	020636	000207 				 RTS	PC
   7854
   7855						.DSABL	LSB
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 175
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7857					;+
   7858					; THIS SUBROUTINE CLEARS PROTOCOL, HALTS THE KL, AND DETERMINES THE
   7859					; HARDWARE FEATURES OF THE KL FOR LATER REFERENCE.
   7860					;-
   7861
   7862	020640				LQSHDW:
   7863	020640	012737 	000401 	000000G		MOV	#401,.NOERR	; TELL RSX-20F NOT TO INTERRUPT
   7864	020646					CALL	..DTSP		; AND TURN OFF PROTOCOLS.
	020646	004737 	000000G			 JSR	PC,..DTSP
   7865	020652	012700 	010000 			MOV	#.CLRUN,R0	; HALT THE KL IF RUNNING
   7866	020656					CALL	$DFXC
	020656	004737 	013222'			 JSR	PC,$DFXC
   7867	020662	103466 				BCS	40$		; [TCO 4.2333]
   7868	020664	012700 	001570'			MOV	#DQSAPR,R0	; GET HARDWARE OPTIONS BY
   7869	020670					CALL	LQSHWO		; OBTAINING RH(APRID)
	020670	004737 	021042'			 JSR	PC,LQSHWO
   7870	020674	103461 				BCS	40$		; [TCO 4.2333]
   7871	020676	113746 	001572'			MOVB	DQSAPR+2,-(SP)	; [TCO 4.2333] GET HIGH PART OF HARDWARE OPTIONS
   7872	020702	042716 	177774 			BIC	#^C3,(SP)	; [TCO 4.2333] GET RID OF JUNK
   7873	020706					SL	(SP),4		; [TCO 4.2333] POSITION IT
	020706	006316 				  ASL	(SP)
	020710	006316 				  ASL	(SP)
	020712	006316 				  ASL	(SP)
	020714	006316 				  ASL	(SP)
   7874	020716	113746 	001571'			MOVB	DQSAPR+1,-(SP)	; [TCO 4.2333] NOW FOR THE LOW PART
   7875	020722	042716 	177417 			BIC	#^C360,(SP)	; [TCO 4.2333] FLUSH JUNK
   7876	020726					SR	(SP),4		; [TCO 4.2333] AND POSITION THAT
	020726	006216 				  ASR	(SP)
	020730	006216 				  ASR	(SP)
	020732	006216 				  ASR	(SP)
	020734	006216 				  ASR	(SP)
   7877	020736	052616 				BIS	(SP)+,(SP)	; [TCO 4.2333] MERGE THE HARDWARE OPTIONS
   7878	020740	013746 	001570'			MOV	DQSAPR,-(SP)	; [TCO 4.2333] NOW GET THE SERIAL NUMBER
   7879	020744	042716 	170000 			BIC	#^C7777,(SP)	; [TCO 4.2333] WITHOUT THE HANGERS-ON
   7880	020750	012700 	000000G			MOV	#.CPUSN,R0	; [TCO 4.2333] POINT TO THE SERIAL NUMBER
   7881	020754	012620 				MOV	(SP)+,(R0)+	; [TCO 4.2333] SET THE SERIAL NUMBER
   7882	020756	012610 				MOV	(SP)+,(R0)	; [TCO 4.2333] AND ITS HARDWARE OPTIONS
   7883	020760	105337 	000035'			DECB	.CASW		; ASSUME NO CACHE
   7884	020764	132710 	000000G			BITB	#H.KCAC,(R0)	; [TCO 4.2333] AND IF THERE IS
   7885	020770	001402 				BEQ	10$
   7886	020772	105437 	000035'			NEGB	.CASW		; THEN RECORD IT.
   7887	020776				10$:
   7888	020776	105337 	000037'			DECB	.MFSW		; ASSUME NO MOS MEMORY
   7889	021002	132710 	000000G			BITB	#H.KMOS,(R0)	; [TCO 4.2333] CHECK MOS MASTER OSCILLATOR
   7890	021006	001404 				BEQ	20$		; NOT PRESENT -- GO ON
   7891	021010	105437 	000037'			NEGB	.MFSW		; MOS IS IN SYSTEM
   7892	021014					CALL	$KLMR		; DO ANOTHER RESET TO SETUP CLOCKS
	021014	004737 	014350'			 JSR	PC,$KLMR
   7893	021020				20$:
   7894	021020	105337 	000036'			DECB	.EASW		; ASSUME A MODEL A CPU
   7895	021024	132710 	000000G			BITB	#H.KEXT,(R0)	; [TCO 4.2333] AND IF MODEL B
   7896	021030	001402 				BEQ	30$		; THEN
   7897	021032	105437 	000036'			NEGB	.EASW		; THERE IS EXTENDED ADDRESSING.
   7898	021036				30$:
   7899	021036	000241 				CLC			; [TCO 4.2333] INSURE SUCCESS RETURN
   7900	021040				40$:
   7901	021040					RETURN
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 175-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

	021040	000207 				 RTS	PC
KLIQS -- DIALOG ENTRANCE QUESTI	MACRO M1110  15-OCT-79 14:14  PAGE 176
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7903					;+
   7904					; SPECIAL ROUTINE TO GET LOWER HARDWARE HALF OF APRID WITHOUT
   7905					; DESTROYING REGISTERS. THIS ROUTINE IS HAIRY BECAUSE IT MODIFIES
   7906					; C-RAM LOCATION ZERO FOR A SHORT TIME AND THEN RESTORES IT TO ITS
   7907					; ORIGINAL CONTENTS.
   7908					;
   7909					; INPUTS:
   7910					;	R0	- ADDRESS OF 36 BIT BUFFER.
   7911					;
   7912					; OUTPUT:
   7913					;	(R0)	- RECIEVES RH(APRID) WORD.
   7914					;	CARRY IS SET IF ERROR OCCURS.
   7915					;-
   7916
   7917	021042				LQSHWO:
   7918	021042	010002 				MOV	R0,R2
   7919	021044					CALL	$KLMR		; CLEAR THE WORLD.
	021044	004737 	014350'			 JSR	PC,$KLMR
   7920	021050	103435 				BCS	20$
   7921	021052	012701 	001540'			MOV	#DQSCBF,R1	; HOLDING AREA FOR CONTENTS OF C-RAM 0
   7922	021056	005000 				CLR	R0		; READ C-RAM LOCATION ZERO.
   7923	021060					CALL	$RCRAM
	021060	004737 	011026'			 JSR	PC,$RCRAM
   7924	021064	103427 				BCS	20$
   7925	021066	012701 	001554'			MOV	#DQSCF3,R1	; NOW WRITE WORD WITH COND FIELD = 3
   7926	021072					CALL	$WCRAM
	021072	004737 	010546'			 JSR	PC,$WCRAM
   7927	021076	103415 				BCS	10$
   7928	021100	012700 	003000 			MOV	#.SECLK,R0	; STEP THE EBOX TWICE.
   7929	021104					CALL	$DFXC
	021104	004737 	013222'			 JSR	PC,$DFXC
   7930	021110	103410 				BCS	10$
   7931	021112					CALL	$DFXC
	021112	004737 	013222'			 JSR	PC,$DFXC
   7932	021116	103405 				BCS	10$
   7933	021120	010201 				MOV	R2,R1		; NOW READ THE AR.
   7934	021122	012700 	120000 			MOV	#<120*1000>,R0
   7935	021126					CALL	$DFRD
	021126	004737 	012706'			 JSR	PC,$DFRD
   7936	021132				10$:
   7937	021132	012701 	001540'			MOV	#DQSCBF,R1	; RESTORE C-RAM LOCATION ZERO.
   7938	021136	005000 				CLR	R0
   7939	021140					CALLR	$WCRAM
	021140	000137 	010546'			 JMP	$WCRAM
   7940	021144				20$:
   7941	021144					RETURN
	021144	000207 				 RTS	PC
   7942						.TITLE	KLIRS -- SPECIAL KL RESTARTS
   7943	021146					IDENT$	5,0,KLI$$F
						.IDENT	/A05000/
   7944					;
   7945					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   7946					;
   7947					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   7948					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   7949					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   7950					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 176-1
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

   7951					;
   7952					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   7953					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   7954					; EQUIPMENT CORPORATION.
   7955					;
   7956					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   7957					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   7958					;
   7959					; VERSION 05-00
   7960					;
   7961					; ALAN D. PECKHAM  7-APR-77
   7962					;
   7963					; MODIFICATIONS:
   7964					;
   7965					;	NO.	DATE		PROGRAMMER		REASON
   7966					;	---	----		----------		------
   7967					;
   7968					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES FOR SPECIAL KL RESTARTS:
   7969					;  POWER FAIL RESTART AT 70.
   7971					;  SYSTEM CRASH RECOVER AT 407.
   7973					;
   7974					; EQUATED SYMBOLS
   7975					;
   7976		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   7977		000010 			PAG	=	10		; KL DEVICE.
   7978					;
   7979					; LOCAL MACROS
   7980					;
   7981						.MCALL	MRKT$S,WTSE$S,WSIG$S
   7982					;
   7983					; LOCAL DATA
   7984					;
   7985	001612					.PSECT	DATA,D
   7987	001612				DRSCEN:	IO10$	CONO PAG,,600000 ; ENABLE CACHE
	001612	   000 	   000 	   003 		 .BYTE	BY$$0,BY$$1,BY$$2
	001615	   012 	   016 			 .BYTE	BY$$3,BY$$4
   7989	001617				DRSPLD:	WD36$	0 3		; LOAD AR/ARX WITH
	001617	   003 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001622	   000 	   000 			 .BYTE	BY$$3,BY$$4
   7990	001624				DRSPEN:	WD36$	0 16		; C-RAM, D-RAM, AND FS PARITIES
	001624	   016 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001627	   000 	   000 			 .BYTE	BY$$3,BY$$4
   7991	001631				DRSPFR:	WD22$	70		; KL POWER FAIL RESTART ADDRESS.
	001631	   070 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   7993	001634				DRSSCR:	WD22$	407		; KL CRASH RESTART ADDRESS.
	001634	   007 	   001 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
   7995						.EVEN
   7996	004510					.PSECT	TEXT,D
   7997	004510				TRSPRF:	ERROR	<POWER-FAIL RESTART FAILED>
	004510	   077 	   040 	   120 		 .ASCIZ	\? POWER-FAIL RESTART FAILED\
	004513	   117 	   127 	   105
	004516	   122 	   055 	   106
	004521	   101 	   111 	   114
	004524	   040 	   122 	   105
	004527	   123 	   124 	   101
	004532	   122 	   124 	   040
	004535	   106 	   101 	   111
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 176-2
$DLGEN	-- ASK IF ENTERING DIALOG IS REQUIRED

	004540	   114 	   105 	   104
	004543	   000
   7999	004544				TRSCES:	ERROR	<CLOCK ERROR STOP DURING KL RESTART>
	004544	   077 	   040 	   103 		 .ASCIZ	\? CLOCK ERROR STOP DURING KL RESTART\
	004547	   114 	   117 	   103
	004552	   113 	   040 	   105
	004555	   122 	   122 	   117
	004560	   122 	   040 	   123
	004563	   124 	   117 	   120
	004566	   040 	   104 	   125
	004571	   122 	   111 	   116
	004574	   107 	   040 	   113
	004577	   114 	   040 	   122
	004602	   105 	   123 	   124
	004605	   101 	   122 	   124
	004610	   000
   8000	004611				TRSHLT:	ERROR	<KL HALT DURING RESTART>
	004611	   077 	   040 	   113 		 .ASCIZ	\? KL HALT DURING RESTART\
	004614	   114 	   040 	   110
	004617	   101 	   114 	   124
	004622	   040 	   104 	   125
	004625	   122 	   111 	   116
	004630	   107 	   040 	   122
	004633	   105 	   123 	   124
	004636	   101 	   122 	   124
	004641	   000
   8001	004642				TRSTMO:	ERROR	<TIMEOUT DURING KL RESTART>
	004642	   077 	   040 	   124 		 .ASCIZ	\? TIMEOUT DURING KL RESTART\
	004645	   111 	   115 	   105
	004650	   117 	   125 	   124
	004653	   040 	   104 	   125
	004656	   122 	   111 	   116
	004661	   107 	   040 	   113
	004664	   114 	   040 	   122
	004667	   105 	   123 	   124
	004672	   101 	   122 	   124
	004675	   000
   8002	004676				TRSDER:	ERROR	<SYSTEM ERROR DURING KL RESTART>
	004676	   077 	   040 	   123 		 .ASCIZ	\? SYSTEM ERROR DURING KL RESTART\
	004701	   131 	   123 	   124
	004704	   105 	   115 	   040
	004707	   105 	   122 	   122
	004712	   117 	   122 	   040
	004715	   104 	   125 	   122
	004720	   111 	   116 	   107
	004723	   040 	   113 	   114
	004726	   040 	   122 	   105
	004731	   123 	   124 	   101
	004734	   122 	   124 	   000
   8004	004737				TRSRSM:	MESSAGE	<KL RESTARTED>
	004737	   113 	   114 	   040 		 .ASCIZ	\KL RESTARTED\
	004742	   122 	   105 	   123
	004745	   124 	   101 	   122
	004750	   124 	   105 	   104
	004753	   000
   8005	021146					.PSECT
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 177
$POWER	-- POWER FAILURE RESTART

   8007						.SBTTL	$POWER	-- POWER FAILURE RESTART
   8008					;+
   8009					; UPDATE THE CONFIGURATION FILE, INITIALIZE THE KL FOR EXECUTION,
   8010					; AND START THE KL CPU AT 70 FOR POWER FAIL RESTART.
   8011					;
   8012					; NO INPUTS OR OUTPUTS
   8013					;
   8014					; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
   8015					;-
   8016
   8017	021146				$POWER::CALL	$FILE		; WRITE CONFIGURATION FILE FIRST.
	021146	004737 	002520'			 JSR	PC,$FILE
   8018	021152	103427 				BCS	80$
   8019	021154					CALL	$ZERAC		; CLEAR THE ACS.
	021154	004737 	000112'			 JSR	PC,$ZERAC
   8020	021160					CALL	LRSTKL		; ENABLE KL FOR NORMAL OPERATION
	021160	004737 	021500'			 JSR	PC,LRSTKL
   8021	021164	012700 	001631'			MOV	#DRSPFR,R0	; START KL AT 70.
   8022	021170					CALL	$STRKL
	021170	004737 	026264'			 JSR	PC,$STRKL
   8023	021174	103412 				BCS	70$
   8024	021176	005037 	000000G			CLR	.NOERR		; ALLOW KL ERROR INTERCEPTION
   8025	021202					PRINT	#TRSRSM		; EVERYTHING OKAY.
	021202	012700 	004737'			 MOV	#TRSRSM,R0
	021206	004737 	025442'			 JSR	PC,$TTMSG
   8026	021212					CALL	..DTP2		; START SECONDARY PROTOCOL.
	021212	004737 	000000G			 JSR	PC,..DTP2
   8027	021216	000137 	022060'			JMP	$EXIT		; JUST EXIT FROM KLINIT
   8028	021222				70$:	PRINT	#TRSPRF		; INDICATE POWER FAILURE RESTART FAILED
	021222	012700 	004510'			 MOV	#TRSPRF,R0
	021226	004737 	025442'			 JSR	PC,$TTMSG
   8029	021232	000137 	022050'		80$:	JMP	$ERROR		; CONFIGURATION WAS NOT SAVED.
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 178
$RSTRT	-- SYSTEM CRASH RESTART

   8032						.SBTTL	$RSTRT	-- SYSTEM CRASH RESTART
   8033					;+
   8034					; A CRASH ON THE TOPS-10 MONITOR REQUIRES AN ATTEMPT TO RESTART
   8035					; AT LOCATION 407 IF POSSIBLE IN ORDER TO SAVE SYSTEM INFO.
   8036					; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
   8037					; 407 RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
   8038					; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
   8039					; WITHIN 2 MINUTES OF RESTART, OR A FATAL ERROR SUCH AS A HALT
   8040					; OR CLOCK ERROR STOP OCCURS.
   8041					;
   8042					; NO INPUTS OR OUTPUTS
   8043					;
   8044					; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
   8045					;-
   8046
   8047	021236				$RSTRT::CALL	$FILE		; WRITE CONFIGURATION FILE FIRST.
	021236	004737 	002520'			 JSR	PC,$FILE
   8048	021242	103514 				BCS	60$
   8049	021244	013702 	000000G			MOV	.PRDCT,R2	; SAVE THE DOORBELL COUNT.
   8050	021250	012705 	004676'			MOV	#TRSDER,R5	; (ERROR MESSAGE)
   8051	021254					CALL	LRSTKL		; ENABLE KL FOR NORMAL OPERATION
	021254	004737 	021500'			 JSR	PC,LRSTKL
   8052	021260	012700 	001634'			MOV	#DRSSCR,R0	; RESTART KL AT 407.
   8053	021264					CALL	$STRKL
	021264	004737 	026264'			 JSR	PC,$STRKL
   8054	021270	103464 				BCS	40$		; IF SUCCESSFUL,
   8055	021272					CALL	..DTP2		; START SECONDARY PROTOCOL.
	021272	004737 	000000G			 JSR	PC,..DTP2
   8056	021276	012704 	000036 			MOV	#60./2,R4	; ONE SECOND CHECKS FOR 1/2 MINUTE.
   8057	021302	012705 	004676'		10$:	MOV	#TRSDER,R5	; (ERROR MESSAGE)
   8058	021306					CALL	$DTRW1		; READ DTE REGISTER #1.
	021306	004737 	022152'			 JSR	PC,$DTRW1
   8059	021312	103453 				BCS	40$
   8060	021314	012705 	004544'			MOV	#TRSCES,R5	; (ERROR MESSAGE)
   8061	021320	032700 	004000 			BIT	#DS04,R0	; CLOCK ERROR STOP ?
   8062	021324	001046 				BNE	40$		; YES, TELL THE GUY.
   8063	021326	012705 	004611'			MOV	#TRSHLT,R5	; (ERROR MESSAGE)
   8064	021332	032700 	001000 			BIT	#DS06,R0	; KL HALTED ?
   8065	021336	001041 				BNE	40$		; YES...
   8066	021340	023702 	000000G			CMP	.PRDCT,R2	; IF THE DOORBELL HAS RUNG
   8067	021344	001043 				BNE	50$		; THEN WE ARE IN.
   8068	021346	012705 	004676'			MOV	#TRSDER,R5	; (ERROR MESSAGE)
   8069	021352				20$:	MRKT$S	#1,#60.,#0	; WAIT FOR ONE SECOND.
	021352	005046 				CLR	-(SP)
	021354	005046 				CLR	-(SP)
	021356	012746 	000074 			MOV	#60.,-(SP)
	021362	012746 	000001 			MOV	#1,-(SP)
	021366	012746 				MOV	(PC)+,-(SP)
	021370	   027 	   005 			.BYTE	23.,5
	021372	104375 				EMT	375
   8070	021374	103011 				BCC	30$
   8071	021376	122737 	000000G	000000G		CMPB	#IE.UPN,$DSW	; IF INSUFFICIENT MEMORY,
   8072	021404	001016 				BNE	40$		; THEN
   8073	021406					WSIG$S			; RSX IS CROWDED.
	021406	012746 				MOV	(PC)+,-(SP)
	021410	   061 	   001 			.BYTE	49.,1
	021412	104375 				EMT	375
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 178-1
$RSTRT	-- SYSTEM CRASH RESTART

   8074	021414	103356 				BCC	20$
   8075	021416	000411 				BR	40$		; WE LOST TO RSX
   8076	021420				30$:	WTSE$S	#1		; WAIT, WAIT, WAIT....
	021420	012746 	000001 			MOV	#1,-(SP)
	021424	012746 				MOV	(PC)+,-(SP)
	021426	   051 	   002 			.BYTE	41.,2
	021430	104375 				EMT	375
   8077	021432	103403 				BCS	40$
   8078	021434	077456 				SOB	R4,10$		; TRY AGAIN.
   8079	021436	012705 	004642'			MOV	#TRSTMO,R5	; KL TIMEOUT ERROR.
   8080	021442				40$:	PRINT	R5		; PRINT ERROR MESSAGE
	021442	010500 				 MOV	R5,R0
	021444	004737 	025442'			 JSR	PC,$TTMSG
   8081	021450	000137 	022050'			JMP	$ERROR		; ERROR EXIT.
   8082	021454	005037 	000000G		50$:	CLR	.NOERR		; ALLOW KL ERRORS TO OCCUR,
   8083	021460					PRINT	#TRSRSM		; TELL OPERATOR,
	021460	012700 	004737'			 MOV	#TRSRSM,R0
	021464	004737 	025442'			 JSR	PC,$TTMSG
   8084	021470	000137 	022060'			JMP	$EXIT		; AND EXIT NORMALLY.
   8085	021474	000137 	022050'		60$:	JMP	$ERROR		; CONFIGURATION WAS NOT SAVED.
KLIRS -- SPECIAL KL RESTARTS	MACRO M1110  15-OCT-79 14:14  PAGE 179
$RSTRT	-- SYSTEM CRASH RESTART

   8088					;+
   8089					; RESET THE KL CPU, ENABLE THE PARITY STOPS, AND TURN ON CACHE IF NECESSARY.
   8090					;
   8091					; NO INPUTS
   8092					;
   8093					; OUTPUTS:
   8094					;	CARRY SET IF ERROR OCCURRS.
   8095					;-
   8096
   8097	021500				LRSTKL:	CALL	$KLMR		; FORCE E-BOX INTO OBEDIENCE
	021500	004737 	014350'			 JSR	PC,$KLMR
   8099	021504	103433 				BCS	90$
   8100	021506	105737 	000035'			TSTB	.CASW		; IF CACHE IS THERE
   8101	021512	003410 				BLE	10$
   8102	021514	105737 	000050'			TSTB	.NCACH		; AND IS TO BE USED
   8103	021520	003405 				BLE	10$
   8104	021522	012700 	001612'			MOV	#DRSCEN,R0	; THEN
   8105	021526					CALL	$EXCT		; TURN IT ON
	021526	004737 	026174'			 JSR	PC,$EXCT
   8107	021532	103420 				BCS	90$
   8108	021534	012701 	001617'		10$:	MOV	#DRSPLD,R1	; DO STUFF TO
   8109	021540	012700 	047000 			MOV	#.LDCK2,R0
   8110	021544					CALL	$DFWR
	021544	004737 	013020'			 JSR	PC,$DFWR
   8111	021550	012701 	001624'			MOV	#DRSPEN,R1	; SET THE PARITIES
   8112	021554	012700 	046000 			MOV	#.LDCK1,R0
   8113	021560					CALL	$DFWR
	021560	004737 	013020'			 JSR	PC,$DFWR
   8114	021564	012700 	001000 			MOV	#.STRCL,R0	; START THE CLOCK
   8115	021570					CALLR	$DFXC
	021570	000137 	013222'			 JMP	$DFXC
   8116	021574				90$:	RETURN
	021574	000207 				 RTS	PC
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 180
$RSTRT	-- SYSTEM CRASH RESTART

   8118						.TITLE	KLIRT -- ROOT SECTION
   8119	021576					IDENT$	KLI$$V,KLI$$E,KLI$$F
						.IDENT	/A12120/
   8120					;
   8121					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8122					;
   8123					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8124					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8125					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8126					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8127					;
   8128					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8129					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8130					; EQUIPMENT CORPORATION.
   8131					;
   8132					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8133					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8134					;
   8135					; VERSION 12-05
   8136					;
   8137					; ALAN D. PECKHAM  15-APR-77
   8138					;
   8139					; MODIFIED BY:
   8140					;
   8141					; R. BELANGER	16-JUL-79	ADD KL10 ENVIRONMENTAL REPORTING
   8142					;				TCO 4.2333
   8143					; R. BELANGER	02-MAR-79	ADD REVERSE MEMORY CONFIGURATION
   8144					;				TCO 4.2204
   8145					; R. BELANGER	06-DEC-78	ADD NEW KEEP-ALIVE ERROR PROCESSING
   8146					;				TCO 4.2107
   8147					;
   8148					; R. BELANGER	25-JUL-78	INTEGRATE WITH MOS CONFIGURATOR
   8149					;
   8150					; FUNCTION: THE ROOT SECTION CONTAINS ALL THE GLOBAL DATA ITEMS
   8151					;  AND THE MAIN-LINE OVERLAY CONTROL CODE.
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 181
$RSTRT	-- SYSTEM CRASH RESTART

   8153					;
   8154					; EQUATED SYMBOLS
   8155					;
   8156		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
   8157		000012 			LF	=	12		; LINE FEED CHARACTER.
   8158		000040 			SPC	=	40		; SPACE CHARACTER.
   8159		000011 			TAB	=	11		; TAB CHARACTER.
   8160					;
   8161		000256 			XCT	=	256		;  [TCO 4.2107] KL10 "XCT" OPCODE
   8162					;
   8163					; LOCAL MACROS
   8164					;
   8165						.MCALL	QIOW$,EXIT$S
   8166					;
   8167					; LOCAL DATA
   8168					;
   8169	001640					.PSECT	DATA,D
   8170	001640				DRTX71:
   8171	001640					I10$	XCT	0,,71	; [TCO 4.2107] KL10 "XCT 71"
	001640	   071 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	001643	   160 	   005 			 .BYTE	BY$$3,BY$$4
   8172						.EVEN
   8174	001646				DRTWLB:
   8175	001646					QIOW$	IO.WLB,LPOLUN,1,,DRTSTA,,<DRTBUF,0,0>
	001646	   003 	   011 			.BYTE	3,$$$ARG
	001650	000000G				.WORD	IO.WLB
	001652	000003 				.WORD	LPOLUN
	001654	   001 	   000 			.BYTE	1,
	001656	001670'				.WORD	DRTSTA
	001660	000000 				.WORD
	001662	001674'				.WORD	DRTBUF
	001664	000000 				.WORD	0
	001666	000000 				.WORD	0
   8176	001670				DRTSTA:
   8177	001670	000000 	000000 			.WORD	0,0		; I/O STATUS.
   8178	001674				DRTBUF:
   8179	001674					.BLKB	72.		; TRACK OUTPUT BUFFER.
   8180	002004				DRTBF:
   8181	002004					WD36$	0 0		; BIT BUCKET.
	002004	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002007	   000 	   000 			 .BYTE	BY$$3,BY$$4
   8182						.EVEN
   8184	004754					.PSECT	TEXT,D
   8185	004754				COMCSE::
   8186	004754					MESSAGE	<COMMAND SYNTAX ERROR>
	004754	   103 	   117 	   115 		 .ASCIZ	\COMMAND SYNTAX ERROR\
	004757	   115 	   101 	   116
	004762	   104 	   040 	   123
	004765	   131 	   116 	   124
	004770	   101 	   130 	   040
	004773	   105 	   122 	   122
	004776	   117 	   122 	   000
   8187	005001				TRTMMF:
   8188	005001					ERROR	<MEMORY CONFIGURATION FAILED>
	005001	   077 	   040 	   115 		 .ASCIZ	\? MEMORY CONFIGURATION FAILED\
	005004	   105 	   115 	   117
	005007	   122 	   131 	   040
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 181-1
$RSTRT	-- SYSTEM CRASH RESTART

	005012	   103 	   117 	   116
	005015	   106 	   111 	   107
	005020	   125 	   122 	   101
	005023	   124 	   111 	   117
	005026	   116 	   040 	   106
	005031	   101 	   111 	   114
	005034	   105 	   104 	   000
   8189	005037				TRTBTF:
   8190	005037					ERROR	<BOOTSTRAP LOAD FAILED>
	005037	   077 	   040 	   102 		 .ASCIZ	\? BOOTSTRAP LOAD FAILED\
	005042	   117 	   117 	   124
	005045	   123 	   124 	   122
	005050	   101 	   120 	   040
	005053	   114 	   117 	   101
	005056	   104 	   040 	   106
	005061	   101 	   111 	   114
	005064	   105 	   104 	   000
   8191	005067				TRTFME:
   8192	005067					ERROR	<FATAL MEMORY CONFIGURATION ERROR - CODE "_>
	005067	   077 	   040 	   106 		 .ASCIZ	\? FATAL MEMORY CONFIGURATION ERROR - CODE "_\
	005072	   101 	   124 	   101
	005075	   114 	   040 	   115
	005100	   105 	   115 	   117
	005103	   122 	   131 	   040
	005106	   103 	   117 	   116
	005111	   106 	   111 	   107
	005114	   125 	   122 	   101
	005117	   124 	   111 	   117
	005122	   116 	   040 	   105
	005125	   122 	   122 	   117
	005130	   122 	   040 	   055
	005133	   040 	   103 	   117
	005136	   104 	   105 	   040
	005141	   042 	   137 	   000
   8193	005144				TRTEND:
   8194	005144	   042 	   000 			.ASCIZ	/"/
   8195	021576					.PSECT
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 182
GLOBAL DATA STORAGE

   8197						.SBTTL	GLOBAL DATA STORAGE
   8198	000000					.PSECT	GLBL,D,GBL
   8199
   8200					;+
   8201					; WORK AND STORAGE AREA
   8202					;-
   8203
   8204	000000				.ZERO::
   8205	000000	000000 	000000 	000000 		.WORD	0,0,0		; SOURCE OF 36-BIT ZERO
   8206	000006	000000 	000000 	000000 		.WORD	0,0,0		; PLUS EXTRAS FOR C-RAM ZERO.
   8207	000014				.WORK::
   8208	000014	000000 	000000 	000000 		.WORD	0,0,0		; COMMON WORK AREA
   8209
   8210					;+
   8211					; INFORMATION AND CONTROL SWITCHES.
   8212					;-
   8213
   8214	000022				.SPSAV::
   8215	000022	000000 				.WORD	0		; SAVE STACK POINTER HERE
   8216	000024				.DLGSW::
   8217	000024	   000 				.BYTE	0		; DIALOG CONTROL SWITCH.
   8218	000025				.UFNSW::
   8219	000025	   000 				.BYTE	0		; USER FILE SPECIFIED.
   8220	000026				.DRSW::
   8221	000026	   000 				.BYTE	0		; RAM DIALOG CONTROL.
   8223	000027				.DCSW::
   8224	000027	   000 				.BYTE	0		; CACHE DIALOG CONTROL.
   8226	000030				.DMSW::
   8227	000030	   000 				.BYTE	0		; MEMORY DIALOG CONTROL.
   8228	000031				.DBSW::
   8229	000031	   000 				.BYTE	0		; BOOT DIALOG CONTROL.
   8231	000032				.TRKSW::
   8232	000032	   000 				.BYTE	0		; TRACK CONTROL SWITCH.
   8234	000033				.CKSW::
   8235	000033	   000 				.BYTE	0		; CLOCK RUNNING FLAG.
   8236	000034				.DESW::
   8237	000034	   000 				.BYTE	0		; CLOCK RUNNING FOR EXAMINE/DEPOSIT.
   8239	000035				.CASW::
   8240	000035	   000 				.BYTE	0		; CACHE INDICATOR.
   8242	000036				.EASW::
   8243	000036	   000 				.BYTE	0		; EXTENDED ADDRESSING INDICATOR.
   8244	000037				.MFSW::
   8245	000037	   000 				.BYTE	0		; MOS MEMORY INDICATOR
   8246	000040				.MFCT::
   8247	000040	   000 				.BYTE	0		; COUNT OF MF20'S EXPECTED FROM FILE
   8248	000041				.FILSW::
   8249	000041	   000 				.BYTE	0		; WRITE CONFIG FILE SWITCH
   8250	000042				.BTSW::
   8251	000042	   000 				.BYTE	0		; LOAD BOOT SWITCH
   8252						.EVEN
   8253
   8254					;+
   8255					;	.KLIWD DEFINITIONS:
   8256					;
   8257					;	KL.KAC		KEEP-ALIVE-CEASED ERROR
   8258					;	KL.LRM		LOAD RAMS
   8260					;	KL.LCA		CONFIGURE CACHE
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 182-1
GLOBAL DATA STORAGE

   8262					;	KL.CFM		CONFIGURE MEMORY
   8263					;	KL.LVB		LOAD BOOT
   8264					;	KL.SPF		RESTART FOR KL POWER FAIL
   8266					;	KL.SSC		RESTART FOR KL SYSTEM CRASH
   8268					;	KL.CFL		CONFIGURE ALL
   8269					;			INSTEAD OF FROM CONFIGURATION FILE
   8270					;	KL.VBN		BOOT - NO PROMPT
   8271					;	KL.VBD		BOOT - DUMP MONITOR
   8272					;
   8273					;	ALL BITS ZERO IMPLIES TO ENTER DIALOG
   8274					;-
   8275
   8276	000044				.KLISV::
   8277	000044	000000 				.WORD	0		; =.KLIWD
   8278	000046				.SNSAV::
   8279	000046	000000 				.WORD	0		; [TCO 4.2333] = .CPUSN
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 183
GLOBAL DATA STORAGE

   8282					;+
   8283					; CACHE TABLES
   8284					;-
   8285
   8286	000050				.NCACH::
   8287	000050	   377 				.BYTE	-1		; NUMBER OF CACHES TO USE.
   8288	000051				.CACHN::
   8289	000051					.BLKB	4		; CACHE MODULES TO USE.
   8290						.EVEN
   8291
   8293
   8294					;+
   8295					; CONTROLLER TABLES.
   8296					; THESE TABLES ARE USED AS FOLLOWS:
   8297					;	.CTLTP	- THIS TABLE CONTAINS THE MEMORY TYPE FOR EACH CONTROLLER.
   8298					;	.CFGTB	- THIS TABLE CONTAINS THE CONFIGURATION MASK WORDS
   8299					;		<0 -- NOT TO BE USED
   8300					;		=0 -- DEFAULT (ALL BLOCKS OR MODULES TO BE USED)
   8301					;		>0 -- USE BLOCKS OR MODULES SPECIFIED IN BIT-MASK
   8302					;
   8303					; A PSEUDO-CONTROLLER IS DEFINED FOR THE FORWARD/REVERSE CONFIGURATION FLAG.
   8304					; THIS PSEUDO-CONTROLLER ALWAYS OCCUPIES THE "CTLS+1"TH POSITION IN THE TABLES,
   8305					; AND ITS CONTROLLER TYPE IS -1, SO  THAT IT MAY BE SAVED AND RESTORED FORM THE
   8306					; CONFIGURATION FILE.
   8307					;-
   8308
   8309	000056				.CTLTP::
   8310	000056					.BLKB	CTLS		; CONTROLLER TYPE FOR EACH ADDRESS.
   8311	000116	   001 				.BYTE	1		; [TCO 4.2204] PSEUDO-CONTROLLER FOR FWD/REV CONFIGURATION FLAG
   8312						.EVEN
   8313	000120				.CFGTB::
   8314	000120					.BLKW	CTLS		; ALLOCATION BIT-MASK FOR EACH CONTROLLER
   8315	000220				.CFMRV::
   8316	000220	000000 				.WORD	0		; [TCO 4.2204] FORWARD/REVERSE CONFIGURATION FLAG
   8317
   8318	000222				BMMSTB::			; BUS-MODE MASKS
   8319	000222	007400 				.WORD	7400
   8320	000224	000360 				.WORD	360
   8321	000226	000017 				.WORD	17
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 184
GLOBAL DATA STORAGE

   8323					;+
   8324					; DPB FOR READ/WRITE DTE20 REGS
   8325					;-
   8326
   8327	000230				.KLREG::
   8328	000230	002411 				.WORD	2411
   8329	000232	   017 	   000 			.BYTE	17,0
   8330	000234	000266'				.WORD	.DTEDT
   8331	000236	000256'				.WORD	.DREG
   8332	000240	000000 				.WORD	0
   8333
   8334	000242				.DFBLK::			; EBSIN
   8335	000242				.DFWBK::
   8336	000242	000000 	000000 	000000 		.WORD	0,0,0		; 3 WORDS TO BE WRITTEN TO EBUS
   8337	000250				.DFRBK::
   8338	000250	000000 	000000 	000000 		.WORD	0,0,0		; 3 WORDS TO BE READ FROM EBUS
   8339	000256				.DREG::
   8340	000256				.DFRG1::
   8341	000256	000000 				.WORD	0		; DTE20 DIAG
   8342	000260				.DFRG2::
   8343	000260	000000 				.WORD	0		; DTE20 DIAG2
   8344	000262				.DFSTA::
   8345	000262	000000 				.WORD	0		; DTE20 STATUS WORD
   8346	000264				.DFRG3::
   8347	000264	000000 				.WORD	0		; DTE20 DIAG3
   8348
   8349	000266				.DTEDT::
   8350	000266	000000 				.WORD	0		; DTE TRANSFER AREA
   8351
   8352					;+
   8353					; TTY BUFFERS
   8354					;-
   8355
   8356		000040 			T.TIL	==	32.		; (MAXIMUM IS 80. CHARACTERS)
   8357	000270				.TTIBF::
   8358	000270					.BLKB	T.TIL		; CTY INPUT BUFFER.
   8359		000111 			T.TOL	==	73.
   8360	000330				.TTOBF::
   8361	000330					.BLKB	T.TOL		; CTY OUTPUT BUFFER.
   8362						.EVEN
   8363
   8364					;+
   8365					; MISC.
   8366					;-
   8367
   8368	000442				.USRFN::
   8369	000442	000000 	000000 	000000 		.WORD	0,0,0,0		; FILE NAME ENTERED BY OPERATOR
	000450	000000
   8370	000452	000000 				.WORD	0		; VERSION NUMBER (LAST VERSION).
   8371	000454	   005 	   005 			.BYTE	5,5		; DIRECTORY UIC.
   8372	000456	054523 	000000 			.WORD	"SY,0		; DEVICE AND UNIT NUMBER.
   8373	000462				.BTADR::
   8374	000462	000000 	000000 	000000 		.WORD	0,0,0		; KL BOOT ADDRESS.
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 185
GLOBAL DATA STORAGE

   8376					;+
   8377					; SYSTEM DEVICE WORK AREAS
   8378					;-
   8379
   8380	000470				.SYSTA::
   8381	000470	000000 	000000 			.WORD	0,0		; OPERATION STATUS.
   8382	000474				.SYISW::
   8383	000474	   000 				.BYTE	0		; INPUT FILE OPEN SWITCH.
   8384	000475				.SYOSW::
   8385	000475	   000 				.BYTE	0		; OUTPUT FILE OPEN SWITCH.
   8386
   8387		001000 			S.YIL	==	1000
   8388	000476				.SYIRC::
   8389	000476	000000 				.WORD	0		; RECORD COUNT.
   8390	000500				.SYIBA::
   8391	000500	000530'				.WORD	.SYIBF		; BUFFER POSITION.
   8392	000502				.SYIBC::
   8393	000502	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   8394	000504				.SYIFN::
   8395	000504	000000 	000000 	000000 		.WORD	0,0,0,0,0	; INPUT FILE NAME.
	000512	000000 	000000
   8396	000516	   005 	   005 			.BYTE	5,5
   8397	000520	054523 	000000 			.WORD	"SY,0
   8398	000524				.SYIVB::
   8399	000524	000000 	000000 			.WORD	0,0		; CURRENT INPUT BLOCK NUMBER.
   8400	000530				.SYIBF::
   8401	000530					.BLKW	S.YIL/2		; SYSTEM DEVICE INPUT BUFFER.
   8402
   8403		001000 			S.YOL	==	1000
   8404	001530				.SYORC::
   8405	001530	000000 				.WORD	0		; RECORD COUNT.
   8406	001532				.SYOBA::
   8407	001532	000530'				.WORD	.SYIBF		; BUFFER POSITION.
   8408	001534				.SYOBC::
   8409	001534	001000 				.WORD	S.YIL		; BYTES LEFT IN BUFFER.
   8410	001536				.SYOFN::
   8411	001536	000000 	000000 	000000 		.WORD	0,0,0,0,0	; OUTPUT FILE NAME.
	001544	000000 	000000
   8412	001550	   005 	   005 			.BYTE	5,5
   8413	001552	054523 	000000 			.WORD	"SY,0
   8414	001556				.SYOVB::
   8415	001556	000000 	000000 			.WORD	0,0		; CURRENT OUTPUT BLOCK NUMBER.
   8416	001562				.SYOBF::
   8417	001562					.BLKW	S.YOL/2		; SYSTEM DEVICE OUTPUT BUFFER.
   8418
   8419					;+
   8420					; FILE NAME BLOCK (SET UP TO GET DIRECTORY)
   8421					;-
   8422
   8423	002562				.SYFNB::
   8424	002562	000000 	000000 	000000 		.WORD	0,0,0		; N.FID
   8425	002570	140123 	140123 	000000 		.RAD50	/005005   /	; N.FNAM
   8426	002576	015172 				.RAD50	/DIR/		; N.FTYP
   8427	002600	000000 				.WORD	0		; N.FVER
   8428	002602	000000 				.WORD	0		; N.STAT
   8429	002604	000000 				.WORD	0		; N.NEXT
   8430	002606	177777 	177777 			.WORD	-1,-1		; DIRECTORY FID.
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 185-1
GLOBAL DATA STORAGE

   8431	002612	   005 	   005 			.BYTE	5,5		; OWNER
   8432		002562'			.SYFID	==	.SYFNB		; FILE ID IS IN FIRST TWO WORDS OF FNB
   8433		002570'			.SYFNM	==	.SYFNB+6	; FILENAME.
   8434
   8435					;+
   8436					; THESE ARE THE USER FILE ATTRIBUTES FOR THE CURRENTLY
   8437					; OPEN OUTPUT FILE.
   8438					;-
   8439
   8440	002614				.SYATT::
   8441	002614	   002 				.BYTE	2		; VARIABLE LENGTH RECORDS.
   8442	002615	   000 				.BYTE	0		; NO RECORD ATTRIBUTES.
   8443	002616	000000 				.WORD	0		; LARGEST RECORD IN FILE.
   8444	002620	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK ALLOCATED.
   8445	002624	000000 	000000 			.WORD	0,0		; HIGHEST VIRTUAL BLOCK USED.
   8446	002630	000000 				.WORD	0		; TO NEXT FREE BYTE IN LAST BLOCK.
   8447
   8448						.EVEN
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 186
$START	-- MAIN PROGRAM FLOW CONTROL

   8450						.SBTTL	$START	-- MAIN PROGRAM FLOW CONTROL
   8451	021576					.PSECT
   8452
   8453	021576				$START::
   8454	021576	010637 	000022'			MOV	SP,.SPSAV	; SAVE THE STACK POINTER
   8455	021602					CALL	$INIT		; DO INITIALIZATION
	021602	004737 	014702'			 JSR	PC,$INIT
   8456	021606	032737 	000000G	000044'		BIT	#KL.KAC,.KLISV	; [TCO 4.2107] KEEP-ALIVE RETRY??
   8457	021614	001423 				BEQ	20$		; [TCO 4.2107] NO -- GO ON
   8458	021616	105237 	000000G			INCB	.NOERR		; [TCO 4.2107] YES -- DON'T WANT SPURIOUS CRASHES
   8459	021622	012700 	001640'			MOV	#DRTX71,R0	; [TCO 4.2107] POINT TO KL INSTRUCTION
   8460	021626					CALL	$EXCT		; [TCO 4.2107] EXECUTE IT
	021626	004737 	026174'			 JSR	PC,$EXCT
   8461	021632	103411 				BCS	10$		; [TCO 4.2107] ERROR IF CC-C IS SET
   8462	021634	012700 	011000 			MOV	#.SETRN,R0	; [TCO 4.2107] SET THE RUN FLOP
   8463	021640					CALL	$DFXC		; [TCO 4.2107] SO
	021640	004737 	013222'			 JSR	PC,$DFXC
   8464	021644	103404 				BCS	10$		; [TCO 4.2107] ERROR IF CC-C IS SET
   8465	021646	012700 	012000 			MOV	#.CONBT,R0	; [TCO 4.2107] SET THE CONTINUE BUTTON
   8466	021652					CALL	$DFXC		; [TCO 4.2107] SO
	021652	004737 	013222'			 JSR	PC,$DFXC
   8467	021656				10$:
   8468	021656	105337 	000000G			DECB	.NOERR		; [TCO 4.2107] RESET ERROR INTERLOCK
   8469	021662	000501 				BR	$EXIT1		; [TCO 4.2107] AND EXIT
   8470						;
   8471	021664				20$:				; [TCO 4.2107]
   8472	021664	000137 	020010'			JMP	$DLGEN		; ENTER DIALOG
   8473						;
   8474	021670				$CFGRM::
   8475	021670					CALL	$MCBLD		; LOAD RAMS
	021670	004737 	001066'			 JSR	PC,$MCBLD
   8476	021674	103465 				BCS	$ERROR
   8478	021676				$DLGCV::
   8479	021676	000137 	016200'			JMP	$DLGCA		; ENTER CACHE DIALOG.
   8480						;
   8481
   8482						.ENABL	LSB
   8483
   8484	021702				$CFGCA::
   8485	021702	105737 	000027'			TSTB	.DCSW		; IF CONFIGURATION INFO
   8486	021706	003003 				BGT	10$		; NOT SET UP, THEN
   8487	021710					CALL	$GETCA		; GET IT.
	021710	004737 	013354'			 JSR	PC,$GETCA
   8488	021714	103455 				BCS	$ERROR
   8489	021716				10$:
   8490	021716					CALL	$SETCA		; CONFIGURE THE CACHE.
	021716	004737 	000356'			 JSR	PC,$SETCA
   8491	021722	103452 				BCS	$ERROR
   8493	021724				$DLGMV::
   8494	021724	000137 	016670'			JMP	$DLGMM		; ENTER MEMORY DIALOG.
   8495						;
   8496	021730				$DLGMX::
   8497	021730	103404 				BCS	20$
   8498	021732				$DLGBV::
   8499	021732	000137 	015456'			JMP	$DLGBT		; ENTER BOOT DIALOG.
   8500						;
   8501	021736				$DLGRV::
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 186-1
$START	-- MAIN PROGRAM FLOW CONTROL

   8502	021736	000137 	017522'			JMP	$DLGRM		; ENTER RAM DIALOG
   8503						;
   8504	021742				20$:
   8505	021742					PRINT	#TRTMMF		; MEMORY CONFIGURATION FAILED
	021742	012700 	005001'			 MOV	#TRTMMF,R0
	021746	004737 	025442'			 JSR	PC,$TTMSG
   8506	021752	000137 	022050'			JMP	$ERROR
   8507						;
   8508
   8509						.DSABL	LSB
   8510
   8511	021756				$CFGBT::
   8512	021756	105737 	000035'			TSTB	.CASW		; IF NO CACHE, THEN
   8513	021762	002414 				BLT	10$		; LOAD THE BOOT.
   8514	021764	105737 	000050'			TSTB	.NCACH		; OTHERWISE CHECK IF
   8515	021770	002011 				BGE	10$		; CACHE HAS BEEN CONFIGURED
   8516	021772					CALL	$GETCA		; IF NOT, GET LAST CONFIGURATION
	021772	004737 	013354'			 JSR	PC,$GETCA
   8517	021776	103424 				BCS	$ERROR		; AND
   8518	022000	105737 	000050'			TSTB	.NCACH		; IF WE HAVE TO SET IT
   8519	022004	001403 				BEQ	10$
   8520	022006					CALL	$SETCA		; THEN DO SO.
	022006	004737 	000356'			 JSR	PC,$SETCA
   8521	022012	103416 				BCS	$ERROR
   8522	022014				10$:
   8523	022014					CALL	$EXBLD		; LOAD & START BOOT.
	022014	004737 	025542'			 JSR	PC,$EXBLD
   8524	022020	103405 				BCS	20$
   8525	022022	105737 	000024'			TSTB	.DLGSW		; INTERNAL PATH ?
   8526	022026	002014 				BGE	$EXIT
   8527	022030	000137 	016534'			JMP	$DLGEX		; YES, TEST FOR RESTART.
   8528						;
   8529	022034				20$:
   8530	022034					CALL	$PURGE		; PURGE BOOT FILE
	022034	004737 	007366'			 JSR	PC,$PURGE
   8531	022040					PRINT	#TRTBTF
	022040	012700 	005037'			 MOV	#TRTBTF,R0
	022044	004737 	025442'			 JSR	PC,$TTMSG
   8532
   8533	022050				$ERROR::
   8534	022050	105037 	000024'			CLRB	.DLGSW		; ALLOW DIALOG
   8535	022054	000137 	020010'			JMP	$DLGEN		; AND ENTER IT.
   8536						;
   8537	022060				$EXIT::
   8538	022060					CALL	$FILE		; CHANGE CONFIGURATION FILE AND
	022060	004737 	002520'			 JSR	PC,$FILE
   8539	022064	103771 				BCS	$ERROR
   8540	022066				$EXIT1::			; [TCO 4.2107]
   8541	022066					EXIT$S			; EXIT FROM KLINIT
	022066	012746 				MOV	(PC)+,-(SP)
	022070	   063 	   001 			.BYTE	51.,1
	022072	104375 				EMT	375
   8542						;
   8543	022074				$FATAL::
   8544	022074	012700 	005067'			MOV	#TRTFME,R0	; MESSAGE POINTER TO R0
   8545	022100					CALL	$TTDMS		; PRINT THE MESSAGE
	022100	004737 	025374'			 JSR	PC,$TTDMS
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 186-2
$START	-- MAIN PROGRAM FLOW CONTROL

   8546	022104	012600 				MOV	(SP)+,R0	; POINTER TO ERROR CODE TEXT
   8547	022106	012701 	000003 			MOV	#3,R1		; THREE CHARACTERS
   8548	022112					CALL	$TTWR		; WRITE THAT
	022112	004737 	025522'			 JSR	PC,$TTWR
   8549	022116	012700 	005144'			MOV	#TRTEND,R0	; POINTER TO END
   8550	022122	012701 	000001 			MOV	#1,R1		; LENGTH OF ONE
   8551	022126					CALL	$TTWR		; WRITE THE CHARACTER
	022126	004737 	025522'			 JSR	PC,$TTWR
   8552	022132					CALL	$TCRLF		; AND END THE LINE
	022132	004737 	025336'			 JSR	PC,$TCRLF
   8553	022136	013706 	000022'			MOV	.SPSAV,SP	; RESET THE STACK POINTER
   8554	022142	105037 	000024'			CLRB	.DLGSW		; RESET DIALOG SWITCH
   8555	022146	000137 	016670'			JMP	$DLGMM		; ENTER MEMORY BOOT DILAOG
   8556						;
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 187
$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES

   8558						.SBTTL	$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
   8559					;+
   8560					; THESE ROUTINES WILL READ OR WRITE  A DTE-20 REGISTER ACCORDING TO
   8561					; WHICH ROUTINE IS CALLED.
   8562					;
   8563					;	DTRWD1 -- READ OR WRITE DTE-20 DIAG WORD 1
   8564					;	DTRWD2 -- READ OR WRITE DTE-20 DIAG WORD 2
   8565					;	DTRWST -- READ OR WRITE DTE-20 STATUS
   8566					;	DTRWD3 -- READ OR WRITE DTE-20 DIAG WORD 3
   8567					;
   8568					; IF LOCATION "DTETMP" IS .NE. 0, IT IS TAKEN A A POINTER TO THE
   8569					; DATA TO BE WRITTEN INTO THE REGISTER. IF "DTETMP" IS .EQ. 0, THEN
   8570					; A READ OF THE REGISTER IS PERFORMED. ON EITHER A READ OR A WRITE
   8571					; THE RESULT OF THE OPERATION IS RETURNED IN R0 AND IS SAVED IN
   8572					; LOCATION "DREG", AND LOCATION "DTETMP" IS CLEARED.
   8573					;-
   8574
   8575	022152				$DTRW1::
   8576	022152	105037 	000233'			CLRB	.KLREG+3	; DIAG 1 OFFSET = 0
   8577	022156	000413 				BR	DRTDTE		; DO COMMON CODE
   8578						;
   8579	022160				$DTRW2::
   8580	022160	112737 	000002 	000233'		MOVB	#2,.KLREG+3	; DIAG 2 OFFSET = 2
   8581	022166	000407 				BR	DRTDTE		; DO COMMON CODE
   8582						;
   8583	022170				$DTRWS::
   8584	022170	112737 	000004 	000233'		MOVB	#4,.KLREG+3	; STATUS OFFSET = 4
   8585	022176	000403 				BR	DRTDTE		; DO COMMON CODE
   8586						;
   8587	022200				$DTRW3::
   8588	022200	112737 	000006 	000233'		MOVB	#6,.KLREG+3	; DIAG 3 OFFSET = 6
   8589	022206				DRTDTE:
   8590	022206	012737 	000266'	000234'		MOV	#.DTEDT,.KLREG+4 ; SET THE BUFFER POINTER FOR WRITE DATA
   8591	022214	005037 	000256'			CLR	.DREG		; CLEAR RETURN DATA BUFFER
   8592	022220					DIR$	#.KLREG		; DO THE READ OR WRITE
	022220	012746 	000230'			MOV	#.KLREG,-(SP)
	022224	104375 				EMT	375
   8593	022226	103404 				BCS	10$
   8594	022230	005037 	000266'			CLR	.DTEDT		; RESET THE DATA POINTER TO 0 (READ)
   8595	022234	013700 	000256'			MOV	.DREG,R0	; COPY THE REGISTER TO R0
   8596	022240				10$:
   8597	022240					RETURN
	022240	000207 				 RTS	PC
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 188
$RSAVE	-- SAVE REGISTERS FOR ROUTINES

   8599						.SBTTL	$RSAVE	-- SAVE REGISTERS FOR ROUTINES
   8600					;+
   8601					; THIS ROUTINE SAVES ALL REGISTERS ON THE STACK AND PUSHES
   8602					; A RETURN ROUTINE ADDRESS ALSO, SO THAT WHEN THE USER RETURNS
   8603					; THE REGISTERS ARE AUTOMATICALLY RESTORED. THE RETURNED
   8604					; REGISTERS CAN BE MODIFIED: 2(SP)=R0, 4(SP)=R1, ETC.
   8605					;-
   8606
   8607	022242				$RSAVE::
   8608	022242					PUSH	<R4,R3,R2,R1,R0>
	022242	010446 				 MOV	R4,-(SP)
	022244	010346 				 MOV	R3,-(SP)
	022246	010246 				 MOV	R2,-(SP)
	022250	010146 				 MOV	R1,-(SP)
	022252	010046 				 MOV	R0,-(SP)
   8609	022254	004715 				JSR	PC,(R5)
   8610	022256					POP	<R0,R1,R2,R3,R4,R5>
	022256	012600 				 MOV	(SP)+,R0
	022260	012601 				 MOV	(SP)+,R1
	022262	012602 				 MOV	(SP)+,R2
	022264	012603 				 MOV	(SP)+,R3
	022266	012604 				 MOV	(SP)+,R4
	022270	012605 				 MOV	(SP)+,R5
   8611	022272	000207 				RTS	PC
   8612
   8613						.SBTTL	$ASCII	-- TRANSFER ASCII STRING
   8614					;+
   8615					; SET AN ASCII STRING INTO AN OUTPUT BUFFER POINTED TO BY R5.
   8616					; THE INPUT STRING IS POINTED TO BY R0 AND MUST BE TERMINATED
   8617					; BY A NULL BYTE. ON EXIT, R0 POINTS PAST THE NULL BYTE, AND
   8618					; R5 POINTS PAST THE INSERTED STRING (NULL BYTE IS NOT INSERTED).
   8619					; EMBEDDED NEGATIVE BYTES ARE NOT COPIED.
   8620					;-
   8621
   8622						.ENABL	LSB
   8623	022274				10$:
   8624	022274	005305 				DEC	R5
   8625	022276				$ASCIZ::
   8626	022276	112025 				MOVB	(R0)+,(R5)+
   8627	022300	003376 				BGT	$ASCIZ
   8628	022302	002774 				BLT	10$
   8629	022304	005305 				DEC	R5
   8630	022306	000207 				RTS	PC
   8631						.DSABL	LSB
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 189
$TRACK	-- SPECIAL TRACK ROUTINE

   8634						.SBTTL	$TRACK	-- SPECIAL TRACK ROUTINE
   8635					;+
   8636					; THIS ROUTINE IS CALLED TO PROVIDE A VISUAL TRACE OF KLINIT'S
   8637					; ACTION. IT REPORTS WITH A 2-CHARACTER IDENTIFICATION, A FUNCTION
   8638					; CODE/OR ADDRESS, AND A SECONDARY ADDRESS (36-BIT ADDRESSES).
   8639					; AN ARGUEMENT BLOCK IS PASSED IN R0:
   8640					;	.WORD	"FN		;2-CHAR IDENTIFICATION
   8641					;	.WORD	ADR1		;ADDR OF FIRST 36-BIT OR FNC CODE
   8642					;	.WORD	ADR2		;ADDR OF SECOND 36-BIT
   8643					; ADR1 AND ADR2 MAY BE ZERO, IN WHICH CASE THE ARGS ARE NOT PRINTED.
   8644					;-
   8645
   8646	022310				$TRACK::
   8647	022310	004537 	022242'			JSR	R5,$RSAVE
   8648	022314	006046 				ROR	-(SP)		; SAVE THE CARRY.
   8649	022316	105737 	000032'			TSTB	.TRKSW		; IF TRACK IS OFF,
   8650	022322	001476 				BEQ	70$		; IGNORE REQUEST.
   8651	022324	012705 	001674'			MOV	#DRTBUF,R5	; SET UP OUT BUF ADDRESS
   8652	022330	010004 				MOV	R0,R4		; AND ARG POINTER.
   8653	022332	112725 	000011 			MOVB	#TAB,(R5)+
   8654	022336	112425 				MOVB	(R4)+,(R5)+	; GET IDENT.
   8655	022340	112425 				MOVB	(R4)+,(R5)+
   8656	022342	112725 	000040 			MOVB	#SPC,(R5)+
   8657	022346	122737 	000106 	001675'		CMPB	#'F,DRTBUF+1	; IS IT A DIAG FUNCTION ?
   8658	022354	001006 				BNE	10$
   8659	022356	005000 				CLR	R0
   8660	022360	153400 				BISB	@(R4)+,R0	; YES, GET NUMBER
   8661	022362	006200 				ASR	R0
   8662	022364					CALL	$TRB2O		; AND PRINT IT.
	022364	004737 	024470'			 JSR	PC,$TRB2O
   8663	022370	000416 				BR	30$
   8664						;
   8665	022372				10$:
   8666	022372	012401 				MOV	(R4)+,R1	; FIRST ADDRESS ?
   8667	022374	001414 				BEQ	30$		; NO, SKIP IT.
   8668	022376	012702 	002004'			MOV	#DRTBF,R2
   8669	022402	012703 	000005 			MOV	#5,R3		; TRANSFER 5 BYTES
   8670	022406	010200 				MOV	R2,R0		; TO WORK AREA
   8671	022410				20$:
   8672	022410	112122 				MOVB	(R1)+,(R2)+
   8673	022412	077302 				SOB	R3,20$
   8674	022414	042762 	177760 	177777 		BIC	#^C17,-1(R2)	; TRIM TO 36 BITS,
   8675	022422					CALL	$WRD22		; AND PRINT.
	022422	004737 	024144'			 JSR	PC,$WRD22
   8676	022426				30$:
   8677	022426	011401 				MOV	(R4),R1		; SECOND WORD ?
   8678	022430	001420 				BEQ	60$		; NO, IGNORE IT.
   8679	022432	012702 	002004'			MOV	#DRTBF,R2
   8680	022436	012703 	000005 			MOV	#5,R3		; SAME AS BEFORE...
   8681	022442	010200 				MOV	R2,R0
   8682	022444				40$:
   8683	022444	112122 				MOVB	(R1)+,(R2)+
   8684	022446	077302 				SOB	R3,40$
   8685	022450	042762 	177760 	177777 		BIC	#^C17,-1(R2)
   8686	022456	005744 				TST	-(R4)
   8687	022460	001402 				BEQ	50$
   8688	022462	112725 	000057 			MOVB	#'/,(R5)+	; EXCEPT FOR SEPERATOR.
KLIRT -- ROOT SECTION	MACRO M1110  15-OCT-79 14:14  PAGE 189-1
$TRACK	-- SPECIAL TRACK ROUTINE

   8689	022466				50$:
   8690	022466					CALL	$WRD36
	022466	004737 	024256'			 JSR	PC,$WRD36
   8691	022472				60$:
   8692	022472	112725 	000015 			MOVB	#CR,(R5)+	; TERMINATE LINE
   8693	022476	112725 	000012 			MOVB	#LF,(R5)+	; AND
   8694	022502	162705 	001674'			SUB	#DRTBUF,R5	; (LENGTH OF LINE)
   8695	022506	010537 	001664'			MOV	R5,DRTWLB+Q.IOPL+2 ; PUT IN DPB
   8696	022512					DIR$	#DRTWLB		; AND SEND IT.
	022512	012746 	001646'			MOV	#DRTWLB,-(SP)
	022516	104375 				EMT	375
   8697	022520				70$:
   8698	022520	006126 				ROL	(SP)+		; RESTORE THE CARRY.
   8699	022522					RETURN
	022522	000207 				 RTS	PC
KLIST -- START THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 190
$TRACK	-- SPECIAL TRACK ROUTINE

   8702						.TITLE	KLIST -- START THE KL BOOT
   8703	022524					IDENT$	5,0
						.IDENT	/005000/
   8704					;
   8705					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8706					;
   8707					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8708					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8709					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8710					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8711					;
   8712					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8713					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8714					; EQUIPMENT CORPORATION.
   8715					;
   8716					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8717					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8718					;
   8719					; VERSION 05-00
   8720					;
   8721					; ALAN D. PECKHAM  7-APR-77
   8722					;
   8723					; MODIFIED BY:
   8724					;
   8725					; FUNCTION: THIS ROUTINE CLEANS UP THE CPU AND STARTS UP THE BOOT
   8726					;  WITH SPECIFIED FUNCTIONS IN AC0.
   8727					;
   8728					; EQUATED SYMBOLS
   8729					;
   8730		000020 			AAX	=	BIT4		; AR/ARX PARITY ENABLE BIT.
   8731		000000 			APR	=	0		; KL DEVICE.
   8732		000004 			CONO	=	4		; KL I/O SUB-FUNCTION CODE.
   8733		000004 			CM	=	BIT2		; CRAM PARITY ENABLE BIT.
   8734		000003 			DATAO	=	3		; KL I/O SUB-FUNCTION CODE.
   8735		000002 			DM	=	BIT1		; DRAM PARITY ENABLE BIT.
   8736		000010 			FM	=	BIT3		; FM PARITY ENABLE BIT.
   8737		000001 			FS	=	BIT0		; FS PARITY ENABLE BIT.
   8738		000010 			PAG	=	10		; KL DEVICE.
   8739		000004 			PI	=	4		; KL DEVICE.
   8740					;
   8741					; LOCAL DATA
   8742					;
   8743
   8744	002012					.PSECT	DATA,D
   8745
   8746	002012				DSTRT:
   8747	002012					IO10$ CONO APR,,267760	;RESET APR
	002012	   360 	   157 	   001 		 .BYTE	BY$$0,BY$$1,BY$$2
	002015	   002 	   016 			 .BYTE	BY$$3,BY$$4
   8748	002017					IO10$ CONO PI,,10000	;RESET PI SYSTEM
	002017	   000 	   020 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002022	   006 	   016 			 .BYTE	BY$$3,BY$$4
   8749	002024					IO10$ CONO PAG,,0	;PAGING SYSTEM CLEAR
	002024	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002027	   012 	   016 			 .BYTE	BY$$3,BY$$4
   8750	002031					IO10$ DATAO PAG,,0	;USER BASE CLEAR
	002031	   000 	   000 	   200 		 .BYTE	BY$$0,BY$$1,BY$$2
KLIST -- START THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 190-1
$TRACK	-- SPECIAL TRACK ROUTINE

	002034	   011 	   016 			 .BYTE	BY$$3,BY$$4
   8751		000004 			DSTRTL=.-DSTRT/I.10L
   8753	002036				DSTCEN:
   8754	002036					IO10$	CONO PAG,,600000
	002036	   000 	   000 	   003 		 .BYTE	BY$$0,BY$$1,BY$$2
	002041	   012 	   016 			 .BYTE	BY$$3,BY$$4
   8756	002043				DST1B0:
   8757	002043					WD36$	400000 0	;1B0
	002043	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002046	   000 	   010 			 .BYTE	BY$$3,BY$$4
   8758	002050				DST1B1:
   8759	002050					WD36$	200000 0	;1B1
	002050	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002053	   000 	   004 			 .BYTE	BY$$3,BY$$4
   8760	002055				DST3B1:
   8761	002055					WD36$	600000 0	;3B1
	002055	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002060	   000 	   014 			 .BYTE	BY$$3,BY$$4
   8762						.EVEN			; DSTBF NUST START ON EVEN BOUNDRY.
   8763	002062				DSTBF:
   8764	002062					WD36$	0 0		; GENERAL BIT BUCKET.
	002062	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002065	   000 	   000 			 .BYTE	BY$$3,BY$$4
   8765						.EVEN
   8766
   8767	005146					.PSECT	TEXT,D
   8768
   8769	005146				TSTBSM:
   8770	005146					MESSAGE	<BOOTSTRAP LOADED AND STARTED>
	005146	   102 	   117 	   117 		 .ASCIZ	\BOOTSTRAP LOADED AND STARTED\
	005151	   124 	   123 	   124
	005154	   122 	   101 	   120
	005157	   040 	   114 	   117
	005162	   101 	   104 	   105
	005165	   104 	   040 	   101
	005170	   116 	   104 	   040
	005173	   123 	   124 	   101
	005176	   122 	   124 	   105
	005201	   104 	   000
   8771
   8772	022524					.PSECT
KLIST -- START THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 191
$TENST	-- START KL BOOT

   8774						.SBTTL	$TENST	-- START KL BOOT
   8775					;+
   8776					; UPDATE THE CONFIGURATION FILE AND START UP THE KL BOOTSTRAP.
   8777					; TRANSFER DUMP AND PROMPT BITS FROM .KLIWD TO AC0 FOR KL BOOT.
   8778					; 	1B0	INDICATES NO PROMPTING
   8779					; 	1B1	INDICATES TO DUMP KL
   8780					; BEGIN EXECUTION AT START+1 TO INFORM THE BOOT THAT THESE
   8781					; SWITCHES ARE SET.
   8782					;
   8783					; INPUTS:
   8784					;	.BTADR	- THE BOOT STARTING ADDRESS.
   8785					;
   8786					; NO OUTPUTS
   8787					; THE RETURN IS TO $ERROR IF UNSUCCESSFUL.
   8788					;-
   8789
   8790						.ENABL	LSB
   8791
   8792	022524				$TENST::
   8793	022524					CALL	$FILE		; CHANGE CONFIGURATION FILE FIRST.
	022524	004737 	002520'			 JSR	PC,$FILE
   8794	022530	103536 				BCS	80$
   8795	022532				$TENS1::
   8796	022532					CALL	$ZERAC		; CLEAR THE AC'S.
	022532	004737 	000112'			 JSR	PC,$ZERAC
   8797	022536	103532 				BCS	90$
   8798	022540	012701 	000004 			MOV	#DSTRTL,R1
   8799	022544	012700 	002012'			MOV	#DSTRT,R0
   8800	022550				10$:
   8801	022550					CALL	$EXCT		; RESET APR,PI,CLEAR PAGING,USER BASE
	022550	004737 	026174'			 JSR	PC,$EXCT
   8802	022554	103523 				BCS	90$
   8803	022556	062700 	000005 			ADD	#I.10L,R0
   8804	022562	077106 				SOB	R1,10$
   8806	022564	105737 	000035'			TSTB	.CASW		; IF CACHE IS THERE
   8807	022570	003406 				BLE	20$
   8808	022572	105737 	000050'			TSTB	.NCACH		; AND IS TO BE USED
   8809	022576	003403 				BLE	20$
   8810	022600					CALL	$EXCT		; THEN TURN IT ON.
	022600	004737 	026174'			 JSR	PC,$EXCT
   8811	022604	103507 				BCS	90$
   8813	022606				20$:
   8814	022606	105737 	000042'			TSTB	.BTSW		; [TCO 4.2275]BOOT KL?
   8815	022612	100433 				BMI	70$		; [TCO 4.2275] NO
   8816	022614	013700 	000044'			MOV	.KLISV,R0	; .KLIWD INTO R0.
   8817	022620	032700 	000000G			BIT	#KL.VBN,R0	; TEST .KLIWD BITS
   8818	022624	001411 				BEQ	40$		; AND PICK APPROPRIATE
   8819	022626	032700 	000000G			BIT	#KL.VBD,R0	; WORD TO INSERT
   8820	022632	001003 				BNE	30$		; IN AC0.
   8821	022634	012701 	002043'			MOV	#DST1B0,R1
   8822	022640	000413 				BR	60$
   8823						;
   8824	022642				30$:
   8825	022642	012701 	002055'			MOV	#DST3B1,R1
   8826	022646	000410 				BR	60$
   8827						;
   8828	022650				40$:
KLIST -- START THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 191-1
$TENST	-- START KL BOOT

   8829	022650	032700 	000000G			BIT	#KL.VBD,R0
   8830	022654	001003 				BNE	50$
   8831	022656	012701 	000000'			MOV	#.ZERO,R1
   8832	022662	000402 				BR	60$
   8833						;
   8834	022664				50$:
   8835	022664	012701 	002050'			MOV	#DST1B1,R1
   8836	022670				60$:
   8837	022670	012700 	000000'			MOV	#.ZERO,R0
   8838	022674					CALL	$DPOS		; PUT IT IN.
	022674	004737 	012336'			 JSR	PC,$DPOS
   8839	022700	103451 				BCS	90$
   8840	022702				70$:
   8841	022702	012701 	002062'			MOV	#DSTBF,R1
   8842	022706	012711 	000003 			MOV	#3,(R1)		; CHECK AR/ARX PARITY AND CAUSE
   8843	022712	012700 	047000 			MOV	#.LDCK2,R0	; PAGE FAIL UCODE TRAP IF ERROR
   8844	022716					CALL	$DFWR		; BIT34 IN .LDCK2
	022716	004737 	013020'			 JSR	PC,$DFWR
   8845	022722	103440 				BCS	90$
   8846	022724	012711 	000016 			MOV	#FM!CM!DM,(R1)	; ENABLE CRAM,DRAM,FS,AR/ARX PARITY
   8847	022730	012700 	046000 			MOV	#.LDCK1,R0
   8848	022734					CALL	$DFWR		; LOAD CONDITION ENABLE REG
	022734	004737 	013020'			 JSR	PC,$DFWR
   8849	022740	103431 				BCS	90$
   8850	022742	012700 	001000 			MOV	#.STRCL,R0	; [TCO 4.2275] START CLOCKS
   8851	022746					CALL	$DFXC		; [TCO 4.2275]
	022746	004737 	013222'			 JSR	PC,$DFXC
   8852	022752	103424 				BCS	90$		; [TCO 4.2275] ERROR IF CC-C IS SET
   8853	022754	105737 	000042'			TSTB	.BTSW		; [TCO 4.2275] BOOT KL ?
   8854	022760	100421 				BMI	90$		; [TCO 4.2275] NO -- JUST EXIT
   8855	022762	012700 	000462'			MOV	#.BTADR,R0	; GET BOOT ADDRESS AND
   8856	022766	062710 	000001 			ADD	#1,(R0)		; INCREMENT.
   8857	022772	005560 	000002 			ADC	2(R0)
   8858	022776					CALL	$STRKL
	022776	004737 	026264'			 JSR	PC,$STRKL
   8859	023002	103410 				BCS	90$		; IF SUCCESSFUL,
   8860	023004	005037 	000000G			CLR	.NOERR		; ALLOW ERRORS AND
   8861	023010					PRINT	#TSTBSM		; ANNOUNCE THE GOOD NEWS
	023010	012700 	005146'			 MOV	#TSTBSM,R0
	023014	004737 	025442'			 JSR	PC,$TTMSG
   8862	023020					CALL	..DTP2		; START SECONDARY PROTOCOL
	023020	004737 	000000G			 JSR	PC,..DTP2
   8863	023024				90$:
   8864	023024					RETURN
	023024	000207 				 RTS	PC
   8865	023026				80$:
   8866	023026	005726 				TST	(SP)+		; CONFIGURATION WAS NOT SAVED.
   8867	023030	000137 	022050'			JMP	$ERROR
   8868						;
   8869
   8870						.DSABL	LSB
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1110  15-OCT-79 14:14  PAGE 192
$TENST	-- START KL BOOT

   8872						.TITLE	KLITF -- ASCII FILE-NAME TRANSLATION
   8873	023034					IDENT$	5,0
						.IDENT	/005000/
   8874					;
   8875					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8876					;
   8877					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8878					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8879					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8880					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8881					;
   8882					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8883					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8884					; EQUIPMENT CORPORATION.
   8885					;
   8886					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8887					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8888					;
   8889					; VERSION 05-00
   8890					;
   8891					; ALAN D. PECKHAM  27-APR-77
   8892					;
   8893					; MODIFIED BY:
   8894					;
   8895					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   8896					;  OF FILE-NAMES TO/FROM A BINARY FILENAME BLOCK.
   8897					;
   8898	023034					.PSECT
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1110  15-OCT-79 14:14  PAGE 193
$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME

   8900						.SBTTL	$TRB2F	-- TRANSLATE BINARY TO ASCII FILENAME
   8901					;+
   8902					; THIS ROUTINE TRANSLATES A FILENAME FROM A FILENAME BLOCK
   8903					; POINTED TO BY R0 INTO AN ASCII STRING AND PUTS THIS STRING INTO
   8904					; THE AREA POINTED TO BY R5. THE PATTERN FOR THE STRING IS:
   8905					;	"DDD:FFFFFFFFF.TTT;VVVVV"
   8906					;
   8907					; INPUTS:
   8908					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
   8909					;	R0	- POINTER TO FILENAME BLOCK.
   8910					;
   8911					; OUTPUTS:
   8912					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
   8913					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
   8914					;	STRING. R0 IS DESTROYED.
   8915					;-
   8916
   8917	023034				$TRB2F::PUSH	R2		; SAVE R2 AND
	023034	010246 				 MOV	R2,-(SP)
   8918	023036	010002 				MOV	R0,R2		; POINT IT TO THE BLOCK.
   8919	023040	116225 	000014 			MOVB	14(R2),(R5)+	; INSERT THE DEVICE
   8920	023044	116225 	000015 			MOVB	15(R2),(R5)+
   8921	023050	116215 	000016 			MOVB	16(R2),(R5)	; AND THE UNIT NUMBER.
   8922	023054	152725 	000060 			BISB	#'0,(R5)+	; MAKE ASCII.
   8923	023060	112725 	000072 			MOVB	#':,(R5)+	; INSERT SEPERATOR.
   8924	023064	012200 				MOV	(R2)+,R0	; NOW INSERT FILE-NAME.
   8925	023066					CALL	$TRB2R
	023066	004737 	024734'			 JSR	PC,$TRB2R
   8926	023072	012200 				MOV	(R2)+,R0
   8927	023074					CALL	$TRB2R
	023074	004737 	024734'			 JSR	PC,$TRB2R
   8928	023100	012200 				MOV	(R2)+,R0
   8929	023102					CALL	$TRB2R
	023102	004737 	024734'			 JSR	PC,$TRB2R
   8930	023106	112725 	000056 			MOVB	#'.,(R5)+	; INSERT SEPERATOR AND
   8931	023112	012200 				MOV	(R2)+,R0	; THE FILE TYPE.
   8932	023114					CALL	$TRB2R
	023114	004737 	024734'			 JSR	PC,$TRB2R
   8933	023120	112725 	000073 			MOVB	#';,(R5)+	; NOW FOR THE
   8934	023124	011200 				MOV	(R2),R0		; VERSION NUMBER.
   8935	023126					CALL	$TRB2O
	023126	004737 	024470'			 JSR	PC,$TRB2O
   8936	023132					POP	R2
	023132	012602 				 MOV	(SP)+,R2
   8937	023134					RETURN
	023134	000207 				 RTS	PC
KLITF -- ASCII FILE-NAME TRANSL	MACRO M1110  15-OCT-79 14:14  PAGE 194
$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY

   8939						.SBTTL	$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY
   8940					;+
   8941					; THIS ROUTINE TRANSLATES AN ASCII FILE-NAME POINTED TO BY R5
   8942					; INTO A FILENAME BLOCK POINTED TO BY R0.
   8943					;
   8944					; INPUTS:
   8945					;	R5	- POINTER TO ASCII STRING TO EXTRACT FILE-NAME FROM.
   8946					;	R0	- POINTER TO BLOCK TO INSERT FILENAME DATA INTO.
   8947					;
   8948					; OUTPUTS:
   8949					;	(R0)	- FILENAME, FILETYPE, VERSION, UIC=[5,5], AND DEVICE=SY0:.
   8950					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
   8951					;	IN THE TRANSLATION. THE CARRY IS SET ON VERSION OVERFLOW.
   8952					;-
   8953
   8954	023136				$TRF2B::PUSH	R2		; SAVE R2 AND
	023136	010246 				 MOV	R2,-(SP)
   8955	023140	010002 				MOV	R0,R2		; POINT IT TO THE BLOCK.
   8956	023142	012762 	054523 	000014 		MOV	#"SY,14(R2)	; SET DEVICE,
   8957	023150	105062 	000016 			CLRB	16(R2)		; UNIT, AND
   8958	023154	012762 	002405 	000012 		MOV	#2405,12(R2)	; DIRECTORY UIC.
   8959	023162					CALL	$TRR2B		; GET FILE NAME.
	023162	004737 	024626'			 JSR	PC,$TRR2B
   8960	023166	010022 				MOV	R0,(R2)+
   8961	023170					CALL	$TRR2B
	023170	004737 	024626'			 JSR	PC,$TRR2B
   8962	023174	010022 				MOV	R0,(R2)+
   8963	023176					CALL	$TRR2B
	023176	004737 	024626'			 JSR	PC,$TRR2B
   8964	023202	010022 				MOV	R0,(R2)+
   8965	023204	122725 	000056 			CMPB	#'.,(R5)+	; IS THERE A FILE TYPE ?
   8966	023210	001403 				BEQ	10$
   8967	023212	005305 				DEC	R5		; NO FILE TYPE,
   8968	023214	005722 				TST	(R2)+		; LEAVE ALONE.
   8969	023216	000403 				BR	20$
   8970	023220				10$:	CALL	$TRR2B		; GET FILE TYPE.
	023220	004737 	024626'			 JSR	PC,$TRR2B
   8971	023224	010022 				MOV	R0,(R2)+
   8972	023226	122725 	000073 		20$:	CMPB	#';,(R5)+	; IS THERE A VERSION NUMBER ?
   8973	023232	001403 				BEQ	30$
   8974	023234	005305 				DEC	R5		; NO VERSION,
   8975	023236	005012 				CLR	(R2)		; SET FOR CURRENT ONE.
   8976	023240	000403 				BR	40$
   8977	023242				30$:	CALL	$TRO2B		; GET VERSION NUMBER.
	023242	004737 	024552'			 JSR	PC,$TRO2B
   8978	023246	010012 				MOV	R0,(R2)
   8979	023250				40$:	POP	R2
	023250	012602 				 MOV	(SP)+,R2
   8980	023252					RETURN
	023252	000207 				 RTS	PC
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 195
$TRF2B	-- TRANSLATE ASCII FILE-NAME TO BINARY

   8982						.TITLE	KLITI -- ASCII-DECIMAL TRANSLATION
   8983	023254					IDENT$	5,0
						.IDENT	/005000/
   8984					;
   8985					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   8986					;
   8987					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   8988					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   8989					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   8990					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   8991					;
   8992					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   8993					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   8994					; EQUIPMENT CORPORATION.
   8995					;
   8996					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   8997					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   8998					;
   8999					; VERSION 05-00
   9000					;
   9001					; ALAN D. PECKHAM  30-MAR-77
   9002					;
   9003					; MODIFIED BY:
   9004					;
   9005					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9006					;  TO/FROM THE ASCII REPRESENTATION OF INTEGERS.
   9007					;
   9008	023254					.PSECT
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 196
$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII

   9010						.SBTTL	$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII
   9011					;+
   9012					; THIS ROUTINE TRANSLATES A BINARY NUMBER IN R0 INTO AN ASCII
   9013					; STRING AND PUTS THIS STRING INTO THE AREA POINTED TO BY R5.
   9014					; THE NUMBER IS CONSIDERED UNSIGNED, AND THE RESULTING STRING
   9015					; IS VARIABLE IN LENGTH WITH A MAXIMUM OF 5 CHARACTERS.
   9016					;
   9017					; INPUTS:
   9018					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
   9019					;	R0	- BINARY NUMBER TO CONVERT.
   9020					;
   9021					; OUTPUTS:
   9022					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
   9023					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
   9024					;	STRING. R0 IS DESTROYED.
   9025					;-
   9026
   9027	023254				$TDB2I::
   9028	023254					PUSH	<R4,R5>		; SAVE R4 AND R5
	023254	010446 				 MOV	R4,-(SP)
	023256	010546 				 MOV	R5,-(SP)
   9029	023260	012705 	000330'			MOV	#.TTOBF,R5	; POINT TO OUTPUT BUFFER
   9030	023264	010504 				MOV	R5,R4		; COPY TO R4
   9031	023266					CALL	$TRB2I		; CONVERT TO ASCII STRING
	023266	004737 	023276'			 JSR	PC,$TRB2I
   9032	023272					CALLR	$TDB2C		; FINISH UP IN COMMON CODE
	023272	000137 	024456'			 JMP	$TDB2C
   9033						;
   9034
   9035	023276				$TRB2I::
   9036	023276	004237 	023314'			JSR	R2,10$		; SAVE R2 AND POINT TO POWER TABLE.
   9037	023302	023420 	001750 	000144 		.WORD	10000.,1000.,100.,10.,1.
	023310	000012 	000001
   9038	023314	004337 	023350'		10$:	JSR	R3,50$		; THE SAVE R3 AND SET TO
   9039
   9040	023320	022200 				CMP	(R2)+,R0	; SIGNIFICANCE CHECKER.
   9041	023322	101011 				BHI	40$		; IGNORES LEADING ZEROES.
   9042	023324	005742 				TST	-(R2)		; WHOOPS ! THIS ONE IS GOOD,
   9043	023326	010703 			20$:	MOV	PC,R3		; DIGITS ARE NOW TO BE PRINTED.
   9044
   9045	023330	112715 	000060 			MOVB	#'0,(R5)	; SET TO ZERO
   9046	023334	105215 			30$:	INCB	(R5)		; AND GO UP
   9047	023336	161200 				SUB	(R2),R0
   9048	023340	100375 				BPL	30$		; UNTIL TOO FAR,
   9049	023342	062200 				ADD	(R2)+,R0	; THEN BACK UP.
   9050	023344	105325 				DECB	(R5)+
   9051	023346	000207 			40$:	RTS	PC
   9052
   9053	023350	004713 			50$:	JSR	PC,(R3)		; MAIN PROCESSOR -
   9054	023352	004713 				JSR	PC,(R3)		; ALLOW FOR FOUR INSIGNIFICANT DIGITS,
   9055	023354	004713 				JSR	PC,(R3)
   9056	023356	004713 				JSR	PC,(R3)
   9057	023360	004737 	023326'			JSR	PC,20$		; AND THEN FORCE SIGNIFICANCE.
   9058	023364					POP	<R3,R2>		; RESTORE REGISTERS
	023364	012603 				 MOV	(SP)+,R3
	023366	012602 				 MOV	(SP)+,R2
   9059	023370					RETURN			; AND .....
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 196-1
$TRB2I	-- TRANSLATE BINARY WORD TO INTEGER ASCII

	023370	000207 				 RTS	PC
KLITI -- ASCII-DECIMAL TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 197
$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD

   9061						.SBTTL	$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD
   9062					;+
   9063					; THIS ROUTINE TRANSLATES AN ASCII INTEGER NUMBER POINTED
   9064					; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
   9065					; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
   9066					;
   9067					; INPUTS:
   9068					;	R5	- POINTER TO ASCII STRING TO EXTRACT INTEGER FROM.
   9069					;
   9070					; OUTPUTS:
   9071					;	R0	- BINARY NUMBER EXTRACTED.
   9072					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
   9073					;	IN THE TRANSLATION. THE CARRY IS SET ON SIGNED OVERFLOW.
   9074					;-
   9075
   9076	023372				$TDI2B::
   9077	023372					PUSH	R5		; SAVE R5
	023372	010546 				 MOV	R5,-(SP)
   9078	023374	012705 	000270'			MOV	#.TTIBF,R5	; INPUT BUFFER POINTER TO R5
   9079	023400					CALL	$TTRD		; PROMT AND READ NUMBER
	023400	004737 	025120'			 JSR	PC,$TTRD
   9080	023404					CALL	$TRB2I		; CONVERT TO DECIMAL NUMBER
	023404	004737 	023276'			 JSR	PC,$TRB2I
   9081	023410					POP	R5		; RESTORE R5
	023410	012605 				 MOV	(SP)+,R5
   9082	023412					RETURN			; RETURN
	023412	000207 				 RTS	PC
   9083
   9084	023414				$TRI2B::
   9085	023414					PUSH	R1
	023414	010146 				 MOV	R1,-(SP)
   9086	023416	005000 				CLR	R0
   9087	023420	112501 			10$:	MOVB	(R5)+,R1
   9088	023422	162701 	000060 			SUB	#'0,R1
   9089	023426	100420 				BMI	30$
   9090	023430	022701 	000011 			CMP	#9.,R1
   9091	023434	103415 				BLO	30$
   9092	023436	022700 	006314 			CMP	#<77777/10.>,R0
   9093	023442	103413 				BLO	40$
   9094	023444	101003 				BHI	20$
   9095	023446	022701 	000007 			CMP	#<77777-<77777/10.*10.>>,R1
   9096	023452	103407 				BLO	40$
   9097	023454	006300 			20$:	ASL	R0
   9098	023456	060001 				ADD	R0,R1
   9099	023460	006300 				ASL	R0
   9100	023462	006300 				ASL	R0
   9101	023464	060100 				ADD	R1,R0
   9102	023466	000754 				BR	10$
   9103	023470	005727 			30$:	TST	(PC)+
   9104	023472	000261 			40$:	SEC
   9105	023474	005305 				DEC	R5
   9106	023476					POP	R1
	023476	012601 				 MOV	(SP)+,R1
   9107	023500					RETURN
	023500	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 198
$TRI2B	-- TRANSLATE ASCII INTEGER TO BINARY WORD

   9109						.TITLE	KLITM -- CRAM/DRAM TRANSLATION
   9110	023502					IDENT$	1,0
						.IDENT	/001000/
   9111					;
   9112					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9113					;
   9114					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9115					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9116					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9117					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9118					;
   9119					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9120					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9121					; EQUIPMENT CORPORATION.
   9122					;
   9123					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9124					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9125					;
   9126					; VERSION 01-00
   9127					;
   9128					;	KEVIN T. LEFEBVRE	3-APR-79
   9129					;
   9130					; MODIFIED BY:
   9131					;
   9132					;
   9133					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9134					;   OF THE CRAM/DRAM FILE TO OCTAL TYPE-OUT. IT WAS WRITTEN FOR TCO
   9135					;   4.2209.
   9136					;
   9137					;
   9138					; LOCAL DATA
   9139					;
   9140	002070					.PSECT	DATA,D
   9141	002070	000000 			JCOMM:	.WORD	0
   9142	002072	000000 			SWITCH:	.WORD	0
   9143	002074	002120'			HDTAB:	.WORD	TTJ
   9144	002076	002114'				.WORD	TTP
   9145	002100	002110'				.WORD	TTB
   9146	002102	002104'				.WORD	TTA
   9147	002104	   040 	   101 	   072 	TTA:	.ASCIZ	/ A:/
	002107	   000
   9148	002110	   040 	   102 	   072 	TTB:	.ASCIZ	/ B:/
	002113	   000
   9149	002114	   040 	   120 	   072 	TTP:	.ASCIZ	/ P:/
	002117	   000
   9150	002120	   040 	   112 	   072 	TTJ:	.ASCIZ	/ J:/
	002123	   000
   9151						.EVEN
   9152	023502					.PSECT
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 199
$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL

   9154						.SBTTL	$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
   9155					;+
   9156					; TRANSLATE THE BINARY WORDS IN BUFFER POINTED TO BY R1 INTO OCTAL
   9157					; DIGITS AND TYPE THEM IN CRAM FORMAT.
   9158					;
   9159					;	FILE FORMAT:  CRAM BIT LOCATIONS
   9160					;
   9161					;	BIT                                           BIT
   9162					;	 16                                            0
   9163					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9164					;	!64!  !66!  !68!  !70!  !72!  !74!  !76!  !78!  ! WORD 1
   9165					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9166					;	!48!49!50!51!52!53!54!55!56!57!58!59!60!  !62!  ! WORD 2
   9167					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9168					;	!32!33!34!35!36!37!38!39!40!41!42!43!44!45!46!47! WORD 3
   9169					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9170					;	!16!17!18!19!20!21!22!23!24!25!26!27!28!29!30!31! WORD 4
   9171					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9172					;	! 0! 1! 2! 3! 4! 5! 6! 7! 8! 9!10!11!12!13!14!15! WORD 5
   9173					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9174					;	!  !  !  !  !  !  !  !  !  !  !80!81!82!83!84!85! WORD 6
   9175					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9176					;
   9177					; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
   9178					; TCO 4.2209
   9179					;
   9180					; INPUTS:
   9181					;	R1	-DATA BUFFER
   9182					;
   9183					; OUTPUTS:
   9184					;	NONE
   9185					;-
   9186
   9187	023502				$TRCRM::
   9188	023502					CALL	R5,$RSAVE	; SAVE REGISTERS
	023502	004537 	022242'			 JSR	R5,$RSAVE
   9189	023506	010105 				MOV	R1,R5		;BUFFER PTR
   9190	023510	062705 	000010 			ADD	#10,R5		;POINT TO CRAM 0-15
   9191	023514	012703 	000005 			MOV	#5,R3		;WORD COUNTER
   9192	023520	011502 			10$:	MOV	(R5),R2		;GET VALUE
   9193	023522	012701 	000330'			MOV	#.TTOBF,R1	;OUTPUT PTR
   9194	023526	012704 	000001 			MOV	#1,R4		;BITS TO SHIFT
   9195	023532					CALL	TROCT		;GET OCTAL DIGIT
	023532	004737 	024064'			 JSR	PC,TROCT
   9196	023536	012700 	000005 			MOV	#5,R0		;NO. OCTAL DIGITS
   9197	023542	012704 	000003 			MOV	#3,R4		;BITS PER DIGIT
   9198	023546				20$:	CALL	TROCT		;GET DIGIT
	023546	004737 	024064'			 JSR	PC,TROCT
   9199	023552	077003 				SOB	R0,20$		;DONE?
   9200	023554	112721 	000040 			MOVB	#' ,(R1)+	;YES-- END WITH SPACE
   9201	023560	012700 	000330'			MOV	#.TTOBF,R0	;OUTPUT PTR
   9202	023564	012701 	000007 			MOV	#7,R1		;NO. OF CHARACTERS TO TYPE
   9203	023570					CALL	$TTWR		;TYPE THEM
	023570	004737 	025522'			 JSR	PC,$TTWR
   9204	023574	005745 				TST	-(R5)		;NEXT VALUE
   9205	023576	077330 				SOB	R3,10$		;DONE?
   9206	023600	016502 	000014 			MOV	14(R5),R2	;YES-- GET SPEC VALUE
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 199-1
$TRCRM  -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL

   9207	023604	012700 	000012 			MOV	#10.,R0		;LEFT JUSTIFY IT
   9208	023610	006302 			30$:	ASL	R2		;SHIFT IT
   9209	023612	077002 				SOB	R0,30$		;DONE?
   9210	023614	012701 	000330'			MOV	#.TTOBF,R1	;YES-- OUTPUT BUFFER
   9211	023620					CALL	TROCT		;FIRST DIGIT
	023620	004737 	024064'			 JSR	PC,TROCT
   9212	023624					CALL	TROCT		;SECOND DIGIT
	023624	004737 	024064'			 JSR	PC,TROCT
   9213	023630	012700 	000330'			MOV	#.TTOBF,R0	;OUTPUT BUFFER
   9214	023634	012701 	000002 			MOV	#2,R1		;NO. OF DIGITS
   9215	023640					CALL	$TTWR		;TYPE THEM
	023640	004737 	025522'			 JSR	PC,$TTWR
   9216	023644					RETURN
	023644	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 200
$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL

   9218						.SBTTL	$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
   9219					;+
   9220					;  TRANSLATE THE BINARY WORDS IN THE BUFFER POINTED TO BY R1 INTO OCTAL
   9221					;  DIGITS AND TYPE THEM IN DRAM FORMAT WITH THE EVEN ADDRESS FIRST.
   9222					;
   9223					;	FILE FORMAT:  DRAM BIT LOCATIONS
   9224					;
   9225					;	BIT                                           BIT
   9226					;	 16                                            0
   9227					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9228					;	!  !  !A1!A2!A3!B1!B2!B3!  !  !PE!PC!J7!J8!J9!J0! EVEN ADDRESS
   9229					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9230					;	!  !  !A1!A2!A3!B1!B2!B3!  !  !PO!PC!J7!J8!J9!J0! ODD ADDRESS
   9231					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9232					;	!  !  !  !  !  !  !  !  !  !  !  !  !J1!J2!J3!J4! COMMON J
   9233					;	+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   9234					;
   9235					;	NOTE: J0=J10 (BIT 10 OF J FIELD)
   9236					;
   9237					;  THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
   9238					;  TCO 4.2209
   9239					;
   9240					;  INPUTS:
   9241					;	R1-	DATA BUFFER
   9242					;
   9243					;  OUTPUTS:
   9244					;	NONE
   9245					;-
   9246
   9247	023646				$TRDRM::
   9248	023646					CALL	R5,$RSAVE	;SAVE REGISTERS
	023646	004537 	022242'			 JSR	R5,$RSAVE
   9249	023652	010105 				MOV	R1,R5		;DATA BUFFER POINTER
   9250	023654	016100 	000004 			MOV	4(R1),R0	;J COMMON VALUE
   9251	023660	012702 	000006 			MOV	#6,R2		;PUT IN CORRECT POSITION
   9252	023664	006300 			10$:	ASL	R0		;SHIFT IT
   9253	023666	077202 				SOB	R2,10$		;DONE?
   9254	023670	010037 	002070'			MOV	R0,JCOMM	;YES-- SAVE IT
   9255	023674	005037 	002072'			CLR	SWITCH		;ODD/EVEN ADDRESS SWITCH
   9256	023700	012703 	000006 		20$:	MOV	#6,R3		;FIELD COUNTER
   9257	023704	012704 	000003 			MOV	#3,R4		;BIT SHIFT COUNTER
   9258	023710	011502 				MOV	(R5),R2		;VALUE
   9259	023712	042702 	000020 			BIC	#20,R2		;CLEAR COMPUTED PARITY
   9260	023716	006302 				ASL	R2		;LEFT JUSTIFY
   9261	023720	006302 				ASL	R2		;LEFT JUSTIFY
   9262	023722	016300 	002074'		30$:	MOV	HDTAB(R3),R0	;HEADER ADDRESS
   9263	023726					CALL	$TTDMS		;TYPE HEADER
	023726	004737 	025374'			 JSR	PC,$TTDMS
   9264	023732	005703 				TST	R3		;LAST HEADER?
   9265	023734	001414 				BEQ	40$		;YES-- TYPE J FIELD
   9266	023736	012701 	000330'			MOV	#.TTOBF,R1	;NO-- OUTPUT PTR
   9267	023742					CALL	TROCT		;CONVERT FIELD TO ASCII OCTAL
	023742	004737 	024064'			 JSR	PC,TROCT
   9268	023746	012700 	000330'			MOV	#.TTOBF,R0	;OUTPUT PTR
   9269	023752	012701 	000001 			MOV	#1,R1		;FIELD SIZE
   9270	023756					CALL	$TTWR		;TYPE FIELD VALUE
	023756	004737 	025522'			 JSR	PC,$TTWR
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 200-1
$TRDRM  -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL

   9271	023762	005743 				TST	-(R3)		;SUBTRACT 2 FROM HEADER POINTER
   9272	023764	000756 				BR	30$		;NEXT HEADER
   9273	023766	013702 	002070'		40$:	MOV	JCOMM,R2	;GET J COMMON VALUE
   9274	023772	011500 				MOV	(R5),R0		;GET J VALUE FOR ADDRESS
   9275	023774	042700 	177760 			BIC	#177760,R0	;CLEAR JUNK
   9276	024000	050002 				BIS	R0,R2		;GET J FIELD VALUE
   9277	024002	012700 	000004 			MOV	#4,R0		;SHIFT COUNT
   9278	024006	006302 			50$:	ASL	R2		;LEFT JUSTIFY
   9279	024010	077002 				SOB	R0,50$		;DONE?
   9280	024012	012700 	000004 			MOV	#4,R0		;YES-- J FIELD SIZE
   9281	024016	012701 	000330'			MOV	#.TTOBF,R1	;OUTPUT PTR
   9282	024022				60$:	CALL	TROCT		;GET DIGIT
	024022	004737 	024064'			 JSR	PC,TROCT
   9283	024026	077003 				SOB	R0,60$		;DONE?
   9284	024030	012700 	000330'			MOV	#.TTOBF,R0	;YES-- OUTPUT PTR
   9285	024034	012701 	000004 			MOV	#4,R1		;J FIELD SIZE
   9286	024040					CALL	$TTWR		;TYPE FIELD
	024040	004737 	025522'			 JSR	PC,$TTWR
   9287	024044	005737 	002072'			TST	SWITCH		;DONE?
   9288	024050	001004 				BNE	70$		;YES-- EXIT
   9289	024052	005237 	002072'			INC	SWITCH		;FLIP SWITCH
   9290	024056	005725 				TST	(R5)+		;POINT TO NEXT VALUE
   9291	024060	000707 				BR	20$		;TYPE OUT ODD ADDRESS FIELDS
   9292	024062				70$:	RETURN
	024062	000207 				 RTS	PC
KLITM -- CRAM/DRAM TRANSLATION	MACRO M1110  15-OCT-79 14:14  PAGE 201
TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS

   9294						.SBTTL	TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
   9295					;+
   9296					; SHIFT OUT 1 OCTAL DIGIT FROM A LEFT JUSTIFIED VALUE, MAKE ASCII
   9297					; AND STORE IN BUFFER.
   9298					;
   9299					; INPUT:
   9300					;	R2-	VALUE
   9301					;	R4-	NO. OF BITS IN OCTAL DIGIT
   9302					;	R1-	BUFFER PTR
   9303					;
   9304					; OUTPUT:
   9305					;	R1-	UPDATED
   9306					;-
   9307
   9308	024064				TROCT:	PUSH	<R3,R4>		;SAVE R3,R4
	024064	010346 				 MOV	R3,-(SP)
	024066	010446 				 MOV	R4,-(SP)
   9309	024070	005003 				CLR	R3		;TEMP
   9310	024072	006102 			10$:	ROL	R2		;SHIFT OUT BIT
   9311	024074	006103 				ROL	R3		;SHIFT IN BIT
   9312	024076	077403 				SOB	R4,10$		;DONE?
   9313	024100	062703 	000060 			ADD	#'0,R3		;YES-- MAKE ASCII
   9314	024104	110321 				MOVB	R3,(R1)+	;STORE IN BUFFER
   9315	024106					POP	<R4,R3>		;RESTORE R3,R4
	024106	012604 				 MOV	(SP)+,R4
	024110	012603 				 MOV	(SP)+,R3
   9316	024112					RETURN
	024112	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 202
TROCT  -- TRANSLATE OCTAL VALUE TO ASCII DIGITS

   9318						.TITLE	KLITN -- ASCII-KL WORD TRANSLATION
   9319	024114					IDENT$	5,0
						.IDENT	/005000/
   9320					;
   9321					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9322					;
   9323					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9324					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9325					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9326					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9327					;
   9328					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9329					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9330					; EQUIPMENT CORPORATION.
   9331					;
   9332					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9333					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9334					;
   9335					; VERSION 05-00
   9336					;
   9337					; ALAN D. PECKHAM 30-MAR-77
   9338					;
   9339					; MODIFIED BY:
   9340					;
   9341					; FUNCTION: THIS MODULE PROVIDES ROUTINES TO DISPLAY KL ADDRESSES
   9342					;  AND WORDS.
   9343					;
   9344					; LOCAL DATA
   9345					;
   9346	002124					.PSECT	DATA,D
   9347	002124	000000 	000000 	000000 	DTNXP:	.WORD	0,0,0		; WORK AREA TO EXPAND 16K BANK NUMBER.
   9348	002132	000000 	000000 	000000 	DTNRB:	.WORD	0,0,0		; WORK AREA FOR ROLLING BITS AROUND.
   9349	024114					.PSECT
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 203
$TENAD	-- DISPLAY KL ADDRESS/16K

   9351						.SBTTL	$TENAD	-- DISPLAY KL ADDRESS/16K
   9352					;+
   9353					; INSERT THE 22 BIT ASCII REPRESENTATION OF THE ADDRESS/16K CONTAINED
   9354					; IN R0. THE PATTERN IS "XXXXXXXX" WHERE X IS AN OCTAL DIGIT.
   9355					;
   9356					; INPUTS:
   9357					;	R5	- POINTER TO WHERE TO INSERT THE ASCII STRING.
   9358					;	R0	- NUMBER OF 16K MEMORY BANK.
   9359					;
   9360					; OUTPUTS:
   9361					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
   9362					;	CHARACTERS.
   9363					;-
   9364
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 205
$WRD22	-- DISPLAY 22 BIT KL WORD

   9433						.SBTTL	$WRD22	-- DISPLAY 22 BIT KL WORD
   9434					;+
   9435					; PATTERN: "XXXXXXXX"
   9436					;-
   9437
   9438	024114				$WDD22::
   9439	024114					PUSH	<R5,R4>		; SAVE R5 AND R4
	024114	010546 				 MOV	R5,-(SP)
	024116	010446 				 MOV	R4,-(SP)
   9440	024120	012705 	000330'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
   9441	024124	010504 				MOV	R5,R4		; COPY TO R4
   9442	024126					CALL	$WRD22		; CONVERT THE NUMBER
	024126	004737 	024144'			 JSR	PC,$WRD22
   9443	024132					CALL	$TTDWR		; OUTPUT THE NUMBER
	024132	004737 	025506'			 JSR	PC,$TTDWR
   9444	024136					POP	<R4,R5>		; RESTORE REGISTERS
	024136	012604 				 MOV	(SP)+,R4
	024140	012605 				 MOV	(SP)+,R5
   9445	024142					RETURN			; AND EXIT
	024142	000207 				 RTS	PC
   9446
   9447	024144				$WRD22::
   9448	024144					PUSH	<R2,R1,R0>
	024144	010246 				 MOV	R2,-(SP)
	024146	010146 				 MOV	R1,-(SP)
	024150	010046 				 MOV	R0,-(SP)
   9449	024152					CALL	LTNMV
	024152	004737 	024364'			 JSR	PC,LTNMV
   9450	024156	012702 	000010 			MOV	#8.,R2
   9451	024162	012700 	000003 			MOV	#3,R0
   9452	024166	042761 	177700 	000002 		BIC	#^C77,2(R1)
   9453	024174				10$:	CALL	LTNROL
	024174	004737 	024410'			 JSR	PC,LTNROL
   9454	024200	116100 	000003 			MOVB	3(R1),R0
   9455	024204					CALL	LTNCHR
	024204	004737 	024424'			 JSR	PC,LTNCHR
   9456	024210	012700 	000003 			MOV	#3,R0
   9457	024214	077211 				SOB	R2,10$
   9458	024216					POP	<R0,R1,R2>
	024216	012600 				 MOV	(SP)+,R0
	024220	012601 				 MOV	(SP)+,R1
	024222	012602 				 MOV	(SP)+,R2
   9459	024224					RETURN
	024224	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 206
$WRD36	-- DISPLAY 36 BIT KL WORD

   9461						.SBTTL	$WRD36	-- DISPLAY 36 BIT KL WORD
   9462					;+
   9463					; PATTERN: "XXXXXX XXXXXX"
   9464					;-
   9465
   9466	024226				$WDD36::
   9467	024226					PUSH	<R5,R4>		; SAVE R5 AND R4
	024226	010546 				 MOV	R5,-(SP)
	024230	010446 				 MOV	R4,-(SP)
   9468	024232	012705 	000330'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
   9469	024236	010504 				MOV	R5,R4		; COPY TO R4
   9470	024240					CALL	$WRD36		; CONVERT THE NUMBER
	024240	004737 	024256'			 JSR	PC,$WRD36
   9471	024244					CALL	$TTDWR		; OUTPUT THE NUMBER
	024244	004737 	025506'			 JSR	PC,$TTDWR
   9472	024250					POP	<R4,R5>		; RESTORE REGISTERS
	024250	012604 				 MOV	(SP)+,R4
	024252	012605 				 MOV	(SP)+,R5
   9473	024254					RETURN			; AND EXIT
	024254	000207 				 RTS	PC
   9474
   9475	024256				$WRD36::
   9476	024256					PUSH	<R2,R1,R0>
	024256	010246 				 MOV	R2,-(SP)
	024260	010146 				 MOV	R1,-(SP)
	024262	010046 				 MOV	R0,-(SP)
   9477	024264					CALL	LTNMV
	024264	004737 	024364'			 JSR	PC,LTNMV
   9478	024270	012702 	000006 			MOV	#6,R2
   9479	024274	012700 	000007 			MOV	#7,R0
   9480	024300				10$:	CALL	LTNROL
	024300	004737 	024410'			 JSR	PC,LTNROL
   9481	024304	116100 	000005 			MOVB	5(R1),R0
   9482	024310					CALL	LTNCHR
	024310	004737 	024424'			 JSR	PC,LTNCHR
   9483	024314	012700 	000003 			MOV	#3,R0
   9484	024320	077211 				SOB	R2,10$
   9485	024322	112725 	000040 			MOVB	#' ,(R5)+
   9486	024326	012702 	000006 			MOV	#6,R2
   9487	024332				20$:	CALL	LTNROL
	024332	004737 	024410'			 JSR	PC,LTNROL
   9488	024336	116100 	000005 			MOVB	5(R1),R0
   9489	024342					CALL	LTNCHR
	024342	004737 	024424'			 JSR	PC,LTNCHR
   9490	024346	012700 	000003 			MOV	#3,R0
   9491	024352	077211 				SOB	R2,20$
   9492	024354					POP	<R0,R1,R2>
	024354	012600 				 MOV	(SP)+,R0
	024356	012601 				 MOV	(SP)+,R1
	024360	012602 				 MOV	(SP)+,R2
   9493	024362					RETURN
	024362	000207 				 RTS	PC
KLITN -- ASCII-KL WORD TRANSLAT	MACRO M1110  15-OCT-79 14:14  PAGE 207
$WRD36	-- DISPLAY 36 BIT KL WORD

   9495					;+
   9496					; INSERT 36 BIT WORD INTO WORD-ALIGNED WORK AREA.
   9497					;
   9498					; INPUTS:
   9499					;	R0	- POINTER TO 36 BIT WORD TO COPY.
   9500					;
   9501					; OUTPUTS:
   9502					;	R1	- POINTER TO COPY OF 36 BIT WORD POINTED TO BY R0.
   9503					;	R0 AND R2 ARE DESTROYED.
   9504					;-
   9505
   9506	024364	012702 	000006 		LTNMV:	MOV	#6,R2		; MOVE 6 BYTES
   9507	024370	012701 	002132'			MOV	#DTNRB,R1
   9508	024374	112021 			10$:	MOVB	(R0)+,(R1)+	; MOVE DATA TO BE CONVERTED
   9509	024376	077202 				SOB	R2,10$
   9510	024400	042741 	177760 			BIC	#^C17,-(R1)	; ONLY 36 BITS PLEASE
   9511	024404	024141 				CMP	-(R1),-(R1)
   9512	024406					RETURN
	024406	000207 				 RTS	PC
   9513
   9514					;+
   9515					; SHIFT 3 WORDS AT R1 TO THE LEFT BY THE NUMBER OF BITS SPECIFED.
   9516					;
   9517					; INPUTS:
   9518					;	R1	- POINTER TO THE THREE WORDS TO SHIFT.
   9519					;	R0	- NUMBER OF TIMES TO SHIFT. MUST BE >0.
   9520					;
   9521					; OUTPUTS:
   9522					;	R0 IS DESTROYED.
   9523					;-
   9524
   9525	024410	006321 			LTNROL:	ASL	(R1)+
   9526	024412	006121 				ROL	(R1)+
   9527	024414	006111 				ROL	(R1)
   9528	024416	024141 				CMP	-(R1),-(R1)
   9529	024420	077005 				SOB	R0,LTNROL
   9530	024422					RETURN
	024422	000207 				 RTS	PC
   9531
   9532					;+
   9533					; INSERT 3 LEAST SIGNIFICANT BITS FROM R0 AS ASCII CHARACTER TO BYTE
   9534					; POINTED TO BY R5 AND INCREMENT R5.
   9535					;
   9536					; INPUTS:
   9537					;	R5	- POINTER TO BYTE TO RECIEVE DIGIT.
   9538					;	R0	- NUMBER TO PICK BOTTOM OCTAL DIGIT FROM.
   9539					;
   9540					; OUTPUTS:
   9541					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
   9542					;	CHARACTER. R0 IS DESTROYED.
   9543					;-
   9544
   9545	024424	042700 	177770 		LTNCHR:	BIC	#^C7,R0
   9546	024430	062700 	000060 			ADD	#'0,R0
   9547	024434	110025 				MOVB	R0,(R5)+
   9548	024436					RETURN
	024436	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1110  15-OCT-79 14:14  PAGE 208
$WRD36	-- DISPLAY 36 BIT KL WORD

   9550						.TITLE	KLITO -- ASCII-OCTAL/BINARY TRANSLATION
   9551	024440					IDENT$	5,2								; ADP01
						.IDENT	/005020/
   9552					;
   9553					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9554					;
   9555					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9556					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9557					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9558					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9559					;
   9560					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9561					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9562					; EQUIPMENT CORPORATION.
   9563					;
   9564					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9565					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9566					;
   9567					; VERSION 05-02									; ADP01
   9568					;
   9569					; ALAN D. PECKHAM  30-MAR-77
   9570					;
   9571					; MODIFIED BY:
   9572					;
   9573					;
   9574					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
   9575					;  TO/FROM THE ASCII REPRESENTATION OF OCTAL NUMBERS.
   9576					;
   9577					;
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1110  15-OCT-79 14:14  PAGE 209
$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII

   9579						.SBTTL	$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII
   9580					;+
   9581					; TRANSLATE THE UNSIGNED BINARY NUMBER IN R0 INTO AND ASCII STRING
   9582					; AND PUT IT INTO THE AREA POINTED TO BY R5. THE STRING IS VARIBLE
   9583					; IN LENGTH WITH LEADING ZERO SUPPRESSION AND A MAXIMUM LENGTH OF
   9584					; 6. R5 IS INCREMENTED PAST THE INSERTED STRING.
   9585					;
   9586					; INPUTS:
   9587					;	R5	- POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
   9588					;	R0	- BINARY NUMBER TO CONVERT.
   9589					;
   9590					; OUTPUTS:
   9591					;	THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
   9592					;	R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
   9593					;	STRING. R0 IS DESTROYED.
   9594					;-
   9595
   9596	024440				$TDB2O::
   9597	024440					PUSH	<R4,R5>		; SAVE R4 AND R5
	024440	010446 				 MOV	R4,-(SP)
	024442	010546 				 MOV	R5,-(SP)
   9598	024444	012705 	000330'			MOV	#.TTOBF,R5	; POINT TO OUTPUT BUFFER
   9599	024450	010504 				MOV	R5,R4		; COPY TO R4
   9600	024452					CALL	$TRB2O		; CONVERT TO ASCII STRING
	024452	004737 	024470'			 JSR	PC,$TRB2O
   9601	024456				$TDB2C::
   9602	024456					CALL	$TTDWR		; OUTPUT THE LINE
	024456	004737 	025506'			 JSR	PC,$TTDWR
   9603	024462					POP	<R5,R4>		; RESTORE REGISTERS
	024462	012605 				 MOV	(SP)+,R5
	024464	012604 				 MOV	(SP)+,R4
   9604	024466					RETURN			; AND EXIT
	024466	000207 				 RTS	PC
   9605
   9606	024470				$TRB2O::
   9607	024470					PUSH	<R2,R1>		; SAVE REGISTERS AND
	024470	010246 				 MOV	R2,-(SP)
	024472	010146 				 MOV	R1,-(SP)
   9608	024474	012702 	024516'			MOV	#20$,R2		; SET SIGNIFICANCE CHECKER.
   9609	024500	012701 	002200 			MOV	#2200,R1	; GET INITIAL BIT.
   9610	024504				10$:
   9611	024504	006100 				ROL	R0
   9612	024506	106101 				ROLB	R1		; ROLL BITS IN.
   9613	024510	103375 				BCC	10$		; ANY MORE ?
   9614	024512	001003 				BNE	30$		; NON-ZERO BYTE IS SIGNIFICANT.
   9615	024514	000112 				JMP	(R2)		; HAVE WE MET SIGNIFICANCE ?
   9616						;
   9617	024516				20$:
   9618	024516	005701 				TST	R1		; NO - LAST DIGIT ?
   9619	024520	100004 				BPL	40$		; NO- IGNORE.
   9620	024522				30$:
   9621	024522	010702 				MOV	PC,R2		; SIGNIFICANCE HAS BEEN REACHED.
   9622	024524	152701 	000060 			BISB	#'0,R1		; MAKE IT A DIGIT
   9623	024530	110125 				MOVB	R1,(R5)+	; AND INSERT.
   9624	024532				40$:
   9625	024532	105001 				CLRB	R1		; CLEAR OLD DIGIT
   9626	024534	152701 	000020 			BISB	#20,R1		; AND SET 3-BIT INDICATOR.
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1110  15-OCT-79 14:14  PAGE 209-1
$TRB2O	-- TRANSLATE BINARY WORD AS OCTAL ASCII

   9627	024540	006301 				ASL	R1		; FINISHED WITH WORD ?
   9628	024542	103360 				BCC	10$		; NO - CONTINUE, OTHERWISE
   9629	024544					POP	<R1,R2>
	024544	012601 				 MOV	(SP)+,R1
	024546	012602 				 MOV	(SP)+,R2
   9630	024550					RETURN			; WE ARE FINISHED.
	024550	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1110  15-OCT-79 14:14  PAGE 210
$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD

   9632						.SBTTL	$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
   9633					;+
   9634					; THIS ROUTINE TRANSLATES AN ASCII OCTAL NUMBER POINTED
   9635					; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
   9636					; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
   9637					;
   9638					; INPUTS:
   9639					;	R5	- POINTER TO ASCII STRING TO EXTRACT OCTAL NUMBER FROM.
   9640					;
   9641					; OUTPUTS:
   9642					;	R0	- BINARY NUMBER EXTRACTED.
   9643					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
   9644					;	IN THE TRANSLATION. THE CARRY IS SET ON OVERFLOW.
   9645					;-
   9646
   9656
   9657	024552				$TRO2B::
   9658	024552					PUSH	R2
	024552	010246 				 MOV	R2,-(SP)
   9659	024554	005000 				CLR	R0		; INITIALIZE RESULT.
   9660	024556	112502 			10$:	MOVB	(R5)+,R2	; GET NEXT CHARACTER				; ADP01
   9661	024560	162702 	000060 			SUB	#'0,R2		; AND MAKE BINARY
   9662	024564	100413 				BMI	20$		; WHILE CHECKING
   9663	024566	022702 	000007 			CMP	#7,R2		; IF OCTAL NUMERIC.
   9664	024572	103410 				BLO	20$		; WE ARE FINISHED IF NOT.
   9665	024574	032700 	160000 			BIT	#160000,R0	; IF RESULT WILL OVERFLOW
   9666	024600	001006 				BNE	30$		; THEN SIGNAL ERROR
   9667	024602	006300 				ASL	R0		; OTHERWISE
   9668	024604	006300 				ASL	R0		; MULTIPLY BY 8
   9669	024606	006300 				ASL	R0		; AND
   9670	024610	060200 				ADD	R2,R0		; ADD NEW DIGIT.
   9671	024612	000761 				BR	10$		; GO BACK FOR MORE.
   9672	024614	005727 			20$:	TST	(PC)+		; PROPER EXIT - CLEAR CARRY.
   9673	024616	000261 			30$:	SEC			; OVERFLOW - SET CARRY.
   9674	024620	005305 				DEC	R5		; BACK UP OVER					; ADP01
   9675	024622					POP	R2		; LAST CHARACTER CHECKED
	024622	012602 				 MOV	(SP)+,R2
   9676	024624					RETURN			; AND EXIT.
	024624	000207 				 RTS	PC
KLITO -- ASCII-OCTAL/BINARY TRA	MACRO M1110  15-OCT-79 14:14  PAGE 211
$TRO2B	-- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD

   9678
   9679						.TITLE	KLITR -- ASCII-RAD50 CONVERSION
   9680	024626					IDENT$	5,0
						.IDENT	/005000/
   9681					;
   9682					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9683					;
   9684					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9685					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9686					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9687					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9688					;
   9689					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9690					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9691					; EQUIPMENT CORPORATION.
   9692					;
   9693					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9694					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9695					;
   9696					; VERSION 05-00
   9697					;
   9698					; ALAN D. PECKHAM  30-MAR-77
   9699					;
   9700					; MODIFIED BY:
   9701					;
   9702					; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED WITH TRANSLATION
   9703					;  OF RAD50 WORDS TO/FROM ASCII STRINGS.
   9704					;
   9705	024626					.PSECT
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1110  15-OCT-79 14:14  PAGE 212
$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD

   9707						.SBTTL	$TRR2B	-- TRANSLATE ASCII TO RAD50 WORD
   9708					;+
   9709					; TRANSLATE 3 OR LESS CHARACTERS POINTED TO BY R5 INTO A RAD50 WORD
   9710					; AND PLACE IT IN R0. IF A CHARACTER IS ENCOUNTERED DURING TRANSLATION
   9711					; WHICH IS NOT ALPHANUMERIC, SPACES ARE SUBSTITUTED FOR THE REMAINING
   9712					; CHARACTERS OF THE THREE. R5 IS INCREMENTED PAST ANY CHARACTERS
   9713					; WHICH WERE ACCEPTED.
   9714					; **NOTE** THIS ROUTINE ONLY TRANSLATES ALPHANUMERIC CHARACTERS, NOT
   9715					; THE FULL RAD50 CHARACTER SET.
   9716					;
   9717					; INPUTS:
   9718					;	R5	- POINTER TO CHARACTERS TO BE USED IN TRANSLATION.
   9719					;
   9720					; OUTPUTS:
   9721					;	R0	- RAD50 WORD CONTAINING CHARACTERS TRANSLATED.
   9722					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
   9723					;	INSERTED INTO THE RAD50 WORD.
   9724					;-
   9725
   9726	024626				$TRR2B::PUSH	<R2,R1>		; SAVE REGISTERS AND
	024626	010246 				 MOV	R2,-(SP)
	024630	010146 				 MOV	R1,-(SP)
   9727	024632	005000 				CLR	R0		; INITIALIZE RETURN VALUE.
   9728	024634	012702 	000003 			MOV	#3.,R2		; GET 3 CHARACTERS.
   9729	024640	112501 			10$:	MOVB	(R5)+,R1	; PICK UP THE NEXT
   9730	024642	162701 	000100 			SUB	#100,R1		; AND CHECK FOR ALPHAMERIC.
   9731	024646	003404 				BLE	20$
   9732	024650	022701 	000032 			CMP	#32,R1		; WITHIN A-Z ?
   9733	024654	002014 				BGE	50$		; YES, STICK IT IN.
   9734	024656	000406 				BR	30$
   9735	024660	062701 	000020 		20$:	ADD	#<100-60>,R1	; CHECK FOR NUMERIC.
   9736	024664	002403 				BLT	30$
   9737	024666	022701 	000011 			CMP	#9.,R1		; WITHIN 0-9 ?
   9738	024672	002003 				BGE	40$
   9739	024674	005305 			30$:	DEC	R5		; INVALID CHARACTER, IGNORE.
   9740	024676	012701 	177742 			MOV	#-36,R1		; INSERT A NULL.
   9741	024702	062701 	000036 		40$:	ADD	#36,R1		; INCREASE FOR NUMERIC.
   9742	024706	006300 			50$:	ASL	R0		; MULTIPLY BY 50
   9743	024710	006300 				ASL	R0
   9744	024712	006300 				ASL	R0
   9745	024714	060001 				ADD	R0,R1		; WHILE ADDING IN
   9746	024716	006300 				ASL	R0
   9747	024720	006300 				ASL	R0
   9748	024722	060100 				ADD	R1,R0		; THE NEW CHARACTER.
   9749	024724	077233 				SOB	R2,10$		; DO FOR 3 CHARACTERS
   9750	024726					POP	<R1,R2>		; AND...
	024726	012601 				 MOV	(SP)+,R1
	024730	012602 				 MOV	(SP)+,R2
   9751	024732					RETURN
	024732	000207 				 RTS	PC
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1110  15-OCT-79 14:14  PAGE 213
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

   9753						.SBTTL	$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII
   9754					;+
   9755					; TRANSLATE THE RAD50 WORD IN R0 TO AN ASCIZ STRING AND INSERT THE
   9756					; STRING AT THE AREA POINTED TO BY R5. INCREMENT R5 TO POINT PAST
   9757					; THE INSERTED STRING. THE INVALID RAD50 CODE IS REPRESENTED BY
   9758					; THE UNDERLINE CHARACTER. THE BLANK CHARACTER IS NOT INSERTED.
   9759					;
   9760					; INPUTS:
   9761					;	R5	- POINTER TO BYTES TO RECIEVE ASCII STRING.
   9762					;	R0	- RAD50 WORD FROM WHICH TO EXTRACT THE CHARACTERS.
   9763					;
   9764					; OUTPUTS:
   9765					;	R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
   9766					;	INSERTED.
   9767					;-
   9768
   9769	024734				$TRB2R::PUSH	<R2,R1,R0>
	024734	010246 				 MOV	R2,-(SP)
	024736	010146 				 MOV	R1,-(SP)
	024740	010046 				 MOV	R0,-(SP)
   9770	024742	012702 	000002 			MOV	#2.,R2		; I DON'T UNDERSTAND THIS ROUTINE.
   9771	024746				10$:	PUSH	R0		; BUT IT DEFINITELY WORKS.
	024746	010046 				 MOV	R0,-(SP)
   9772	024750	005000 				CLR	R0
   9773	024752	011601 			20$:	MOV	(SP),R1
   9774	024754	152701 	000002 			BISB	#2,R1
   9775	024760	010146 				MOV	R1,-(SP)
   9776	024762	006016 				ROR	(SP)
   9777	024764	006216 				ASR	(SP)
   9778	024766	162601 				SUB	(SP)+,R1
   9779	024770	042701 	000037 			BIC	#37,R1
   9780	024774	160116 				SUB	R1,(SP)
   9781	024776	006001 				ROR	R1
   9782	025000	006001 				ROR	R1
   9783	025002	160116 				SUB	R1,(SP)
   9784	025004	060100 				ADD	R1,R0
   9785	025006	021627 	000047 			CMP	(SP),#47
   9786	025012	101357 				BHI	20$		; NOTE: CARRY IS CLEAR ON BRANCH.
   9787	025014	006200 				ASR	R0
   9788	025016	006200 				ASR	R0
   9789	025020	006200 				ASR	R0
   9790	025022	077227 				SOB	R2,10$
   9791	025024	012702 	000003 			MOV	#3.,R2
   9792	025030	022700 	000047 			CMP	#47,R0
   9793	025034	103405 				BLO	40$
   9794	025036	105700 				TSTB	R0
   9795	025040	001422 			30$:	BEQ	90$
   9796	025042	122700 	000035 			CMPB	#35,R0
   9797	025046	001002 				BNE	50$
   9798	025050	012700 	000115 		40$:	MOV	#115,R0
   9799	025054	122700 	000033 		50$:	CMPB	#33,R0
   9800	025060	001403 				BEQ	60$
   9801	025062	103404 				BLO	70$
   9802	025064	062700 	000040 			ADD	#40,R0
   9803	025070	062700 	000016 		60$:	ADD	#16,R0
   9804	025074	062700 	000011 		70$:	ADD	#11,R0
   9805	025100	062700 	000011 		80$:	ADD	#11,R0
KLITR -- ASCII-RAD50 CONVERSION	MACRO M1110  15-OCT-79 14:14  PAGE 213-1
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

   9806	025104	110025 				MOVB	R0,(R5)+
   9807	025106				90$:	POP	R0
	025106	012600 				 MOV	(SP)+,R0
   9808	025110	077225 				SOB	R2,30$
   9809	025112					POP	<R1,R2>
	025112	012601 				 MOV	(SP)+,R1
	025114	012602 				 MOV	(SP)+,R2
   9810	025116					RETURN
	025116	000207 				 RTS	PC
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 214
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

   9812						.TITLE	KLITT -- TTY I/O FUNCTIONS
   9813	025120					IDENT$	5,1
						.IDENT	/005010/
   9814					;
   9815					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
   9816					;
   9817					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
   9818					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
   9819					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
   9820					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
   9821					;
   9822					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   9823					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   9824					; EQUIPMENT CORPORATION.
   9825					;
   9826					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
   9827					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   9828					;
   9829					; VERSION 05-00
   9830					;
   9831					; ALAN D. PECKHAM  15-APR-77
   9832					;
   9833					; MODIFIED BY:
   9834					;
   9835					; FUNCTION: ALL ROUTINES ACCESS THE CONSOLE THROUGH THIS MODULE
   9836					;  TO PROVIDE A UNIFORM INTERFACE TO THE OPERATOR.
   9837					;
   9838					; EQUATED SYMBOLS
   9839					;
   9840		000015 			CR	=	15		; CARRIAGE RETURN CHARACTER.
   9841		000012 			LF	=	12		; LINE FEED CHARACTER.
   9842					;
   9843					; LOCAL MACROS
   9844					;
   9845						.MCALL	QIOW$,WTSE$S,EXIT$S
   9846					;
   9847					; LOCAL DATA
   9848					;
   9849	002140					.PSECT	DATA,D
   9850	002140				DTTRLB:	QIOW$	IO.RLB,TTILUN,1,,DTTSTA,,<.TTIBF,T.TIL>
	002140	   003 	   010 			.BYTE	3,$$$ARG
	002142	000000G				.WORD	IO.RLB
	002144	000001 				.WORD	TTILUN
	002146	   001 	   000 			.BYTE	1,
	002150	002202'				.WORD	DTTSTA
	002152	000000 				.WORD
	002154	000270'				.WORD	.TTIBF
	002156	000040 				.WORD	T.TIL
   9851	002160				DTTWLB:	QIOW$	IO.WLB,TTOLUN,1,,DTTSTA,,<0,0,0>
	002160	   003 	   011 			.BYTE	3,$$$ARG
	002162	000000G				.WORD	IO.WLB
	002164	000002 				.WORD	TTOLUN
	002166	   001 	   000 			.BYTE	1,
	002170	002202'				.WORD	DTTSTA
	002172	000000 				.WORD
	002174	000000 				.WORD	0
	002176	000000 				.WORD	0
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 214-1
$TRB2R	-- TRANSLATE RAD50 WORD TO ASCII

	002200	000000 				.WORD	0
   9852	002202	000000 	000000 		DTTSTA:	.WORD	0,0
   9853	005203					.PSECT	TEXT,D
   9854	005203	   040 			TTSPC:	.ASCII	/ /
   9855	005204	   011 			TTTAB:	.ASCII	/	/
   9856	005205	   057 			TTSLS:	.ASCII	%/%
   9857	005206	   007 			TTBEL:	.BYTE	7
   9858	005207	   015 	   012 		TTTNLN:	.ASCII	<CR><LF>
   9859	005211	   113 	   114 	   111 	TTTPRP:	.ASCII	/KLI>/
	005214	   076
   9860	005215	   113 	   114 	   111 	TTTPRE:	.ASCIZ	/KLI -- /
	005220	   040 	   055 	   055
	005223	   040 	   000
   9861						.EVEN
   9862	025120					.PSECT
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 215
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

   9864						.SBTTL	$TTRD	-- READ A LINE FROM THE CONSOLE TTY
   9865					;+
   9866					; READ A LINE INTO ".TTIBF". IF ESCAPE IS RECIEVED THE TREAT AS ERROR
   9867					; TO RESTART DIALOG. IF OTHER THAN <CR> TERMINATES THE LINE, THEN
   9868					; DO A FAST EXIT.
   9870					; IF 'T+' OR 'T-' IS RECIEVED THEN TURN ON OR OFF TRACKING RESPECTIVELY.
   9872					;
   9873					; NO INPUTS
   9874					;
   9875					; OUTPUTS:
   9876					;	.TTIBF	- CONTAINS THE CHARACTERS READ IN TERMINATED BY A ZERO BYTE.
   9877					;-
   9878
   9879	025120	004537 	022242'		$TTRD::	JSR	R5,$RSAVE
   9880	025124	012737 	005211'	002174'	10$:	MOV	#TTTPRP,DTTWLB+Q.IOPL+0 ; PROMPT WITH KLI>
   9881	025132	012737 	000004 	002176'		MOV	#4,DTTWLB+Q.IOPL+2
   9882	025140					DIR$	#DTTWLB
	025140	012746 	002160'			MOV	#DTTWLB,-(SP)
	025144	104375 				EMT	375
   9883	025146					DIR$	#DTTRLB		; PERFORM GIVEN FUNCTION
	025146	012746 	002140'			MOV	#DTTRLB,-(SP)
	025152	104375 				EMT	375
   9884	025154	013701 	002204'			MOV	DTTSTA+2,R1	; SAVE LINE LENGTH
   9885	025160	013700 	002202'			MOV	DTTSTA,R0	; AND STATUS.
   9886	025164	100003 				BPL	20$
   9887	025166	122700 	000000G			CMPB	#IE.EOF,R0	; IF CONTROL-Z
   9888	025172	001411 				BEQ	30$		; CRLF IS AUTOMATIC, OTHERWISE
   9889	025174	012737 	005207'	002174'	20$:	MOV	#TTTNLN,DTTWLB+Q.IOPL+0 ; PRINT A CRLF
   9890	025202	112737 	000002 	002176'		MOVB	#2,DTTWLB+Q.IOPL+2
   9891	025210					DIR$	#DTTWLB
	025210	012746 	002160'			MOV	#DTTWLB,-(SP)
	025214	104375 				EMT	375
   9892	025216	022700 	000000G		30$:	CMP	#IS.ESC,R0	; DID HE TYPE AN ESCAPE ?
   9893	025222	001424 				BEQ	60$		; RESTART DIALOG.
   9894	025224	022700 	000000G			CMP	#IS.CR,R0	; DID HE END WITH A CR ?
   9895	025230	001023 				BNE	70$		; NO, EXIT.
   9896	025232	105061 	000270'			CLRB	.TTIBF(R1)	; WITH A NULL BYTE.
   9898	025236	022737 	026524 	000270'		CMP	#"T-,.TTIBF	; TURN OFF TRACK ?
   9899	025244	001410 				BEQ	50$		; YES, GO DO IT.
   9900	025246	022737 	025524 	000270'		CMP	#"T+,.TTIBF	; TURN ON TRACK ?
   9901	025254	001401 				BEQ	40$		; YES, GO DO IT.
   9903	025256					RETURN
	025256	000207 				 RTS	PC
   9905	025260	105237 	000032'		40$:	INCB	.TRKSW		; TURN ON TRACK AND
   9906	025264	000717 				BR	10$		; GET ANOTHER LINE.
   9907	025266	105037 	000032'		50$:	CLRB	.TRKSW		; TURN OFF TRACK AND
   9908	025272	000714 				BR	10$		; GET ANOTHER LINE.
   9910	025274	000137 	022050'		60$:	JMP	$ERROR		; AND RESTART DIALOG.
   9911	025300				70$:	EXIT$S			; WE WANT OUT !
	025300	012746 				MOV	(PC)+,-(SP)
	025302	   063 	   001 			.BYTE	51.,1
	025304	104375 				EMT	375
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 216
$TTRD	-- READ A LINE FROM THE CONSOLE TTY

   9913						.ENABL	LSB
   9914
   9915	025306				$TTSPC::
   9916	025306					PUSH	R0		; SAVE R0
	025306	010046 				 MOV	R0,-(SP)
   9917	025310	012700 	005203'			MOV	#TTSPC,R0	; <SPACE> TO R0
   9918	025314	000417 				BR	10$		; PRINT AND RETURN
   9919						;
   9920	025316				$TTBEL::
   9921	025316					PUSH	R0		; SAVE R0
	025316	010046 				 MOV	R0,-(SP)
   9922	025320	012700 	005206'			MOV	#TTBEL,R0	; <BELL> TO R0
   9923	025324	000413 				BR	10$		; PRINT AND RETURN
   9924						;
   9932	025326				$TTTAB::
   9933	025326					PUSH	R0		; SAVE R0
	025326	010046 				 MOV	R0,-(SP)
   9934	025330	012700 	005204'			MOV	#TTTAB,R0	; <TAB> TO R0
   9935	025334	000407 				BR	10$		; PRINT AND RETURN
   9936						;
   9937	025336				$TCRLF::
   9938	025336					PUSH	<R0,R1>		; SAVE R0 AND R1
	025336	010046 				 MOV	R0,-(SP)
	025340	010146 				 MOV	R1,-(SP)
   9939	025342	012700 	005207'			MOV	#TTTNLN,R0	; <CR><LF> TO R0
   9940	025346	012701 	000002 			MOV	#2,R1		; LENGTH TO R1
   9941	025352	000403 				BR	20$		; PRINT AND RETURN
   9942						;
   9943	025354				10$:
   9944	025354					PUSH	R1		; SAVE R1
	025354	010146 				 MOV	R1,-(SP)
   9945	025356	012701 	000001 			MOV	#1,R1		; LENGTH TO R1
   9946	025362				20$:
   9947	025362					CALL	$TTWR		; PRINT THE CHARACTER(S)
	025362	004737 	025522'			 JSR	PC,$TTWR
   9948	025366					POP	<R1,R0>		; RESTORE REGISTERS
	025366	012601 				 MOV	(SP)+,R1
	025370	012600 				 MOV	(SP)+,R0
   9949	025372					RETURN			; EXIT
	025372	000207 				 RTS	PC
   9950
   9951						.DSABL	LSB
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 217
$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY

   9953						.SBTTL	$TTMSG	-- WRITE A MESSAGE TO THE CONSOLE TTY
   9954					;+
   9955					; COPY A MESSAGE INTO THE OUTPUT BUFFER WITH THE 'KLI -- ' PREFIX
   9956					; AND WRITE IT TO THE CONSOLE.
   9957					;
   9958					; "$TTDMS" WILL STRIP THE DIAGNOSTIC CARRIAGE CONTROL CHARACTERS FROM
   9959					; A TEXT STRING IN ORDER TO TRANSLATE THE MESSAGE.
   9960					;
   9961					;
   9962					; INPUTS:
   9963					;	R0	- ADDRESS OF ASCIZ MESSAGE.
   9964					;
   9965					; NO OUTPUTS
   9966					;-
   9967
   9968	025374				$TTDMS::
   9969	025374					CALL	R5,$RSAVE	; SAVE THE REGISTERS
	025374	004537 	022242'			 JSR	R5,$RSAVE
   9970	025400	012705 	000330'			MOV	#.TTOBF,R5	; OUTPUT BUFFER POINTER TO R5
   9971	025404	010504 				MOV	R5,R4		; COPY TO R4
   9972	025406				10$:
   9973	025406	112001 				MOVB	(R0)+,R1	; GET A BYTE FOM THE INPUT STRING
   9974	025410	001436 				BEQ	$TTDWR		; DONE IF <NULL>
   9975	025412	122701 	000137 			CMPB	#'_,R1		; IS IT AN <UNDERSCORE>??
   9976	025416	001773 				BEQ	10$		; YES -- THROW IT AWAY
   9977	025420	122701 	000134 			CMPB	#'\,R1		; NO -- IS IS A <BACKSLASH>??
   9978	025424	001004 				BNE	20$		; NO -- GO ON
   9979	025426	112725 	000015 			MOVB	#15,(R5)+	; YES -- SUBSTITUTE A <CR>
   9980	025432	012701 	000012 			MOV	#12,R1		; AND A <LF> FOR IT
   9981	025436				20$:
   9982	025436	110125 				MOVB	R1,(R5)+	; LOAD THIS CHARACTER
   9983	025440	000762 				BR	10$		; AND GET THE NEXT
   9984						;
   9985	025442				$TTMSG::
   9986	025442	004537 	022242'			JSR	R5,$RSAVE	;THIS ROUTINE IS SPECIAL
   9987	025446	005002 				CLR	R2		; MARK NORMAL CALL
   9988	025450	012705 	000330'			MOV	#.TTOBF,R5	;FOR THE MESSAGE MACROS.
   9989	025454	010504 				MOV	R5,R4
   9990	025456	010003 				MOV	R0,R3		;(SAVE MESSAGE ADDRESS)
   9991	025460	012700 	005215'			MOV	#TTTPRE,R0	;INSERT KLI IDENTIFIER
   9992	025464					CALL	$ASCIZ		; 'KLI -- '
	025464	004737 	022276'			 JSR	PC,$ASCIZ
   9993	025470	010300 				MOV	R3,R0		;AND THEN MESSAGE.
   9994	025472					CALL	$ASCIZ
	025472	004737 	022276'			 JSR	PC,$ASCIZ
   9995	025476	112725 	000015 			MOVB	#CR,(R5)+	;FOLLOW BY CRLF.
   9996	025502	112725 	000012 			MOVB	#LF,(R5)+
   9997	025506				$TTDWR::
   9998	025506	160405 				SUB	R4,R5		;COMPUTE LENGTH
   9999	025510	010437 	002174'			MOV	R4,DTTWLB+Q.IOPL+0 ;AND PRINT.
  10000	025514	010537 	002176'			MOV	R5,DTTWLB+Q.IOPL+2
  10001	025520	000404 				BR	LTTDIR		;DO THE WRITE.
  10002						;
KLITT -- TTY I/O FUNCTIONS	MACRO M1110  15-OCT-79 14:14  PAGE 218
$TTWR	-- WRITE A LINE TO THE CONSOLE TTY

  10004						.SBTTL	$TTWR	-- WRITE A LINE TO THE CONSOLE TTY
  10005					;+
  10006					; WRITE OUT AN ASCII STRING TO THE CONSOLE.
  10007					;
  10008					; INPUTS:
  10009					;	R1	- LENGTH OF STRING.
  10010					;	R0	- ADDRESS OF STRING.
  10011					;
  10012					; NO OUTPUTS
  10013					;-
  10014
  10015	025522	010037 	002174'		$TTWR::	MOV	R0,DTTWLB+Q.IOPL+0 ;INSERT MESSAGE ADDRESS,
  10016	025526	010137 	002176'			MOV	R1,DTTWLB+Q.IOPL+2 ;LENGTH,
  10017	025532				LTTDIR:	DIR$	#DTTWLB		;AND PRINT.
	025532	012746 	002160'			MOV	#DTTWLB,-(SP)
	025536	104375 				EMT	375
  10018	025540					RETURN
	025540	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 219
$TTWR	-- WRITE A LINE TO THE CONSOLE TTY

  10020						.TITLE	KLIXB -- LOAD THE KL BOOT
  10021	025542					IDENT$	11,1								; ADP01
						.IDENT	/011010/
  10022					;
  10023					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10024					;
  10025					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10026					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10027					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10028					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10029					;
  10030					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10031					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10032					; EQUIPMENT CORPORATION.
  10033					;
  10034					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10035					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10036					;
  10037					; VERSION 11-01									; ADP01
  10038					;
  10039					; ALAN D. PECKHAM  8-APR-77
  10040					;
  10041					; MODIFIED BY:
  10042					;
  10043					; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL BOOT
  10044					;  FROM THE FILE 'BOOT.EXB' OR AN OPERATOR SPECIFIED FILE.
  10045					;
  10046					; EQUATED SYMBOLS
  10047					;
  10048		000000 			APR	=	0		; KL DEVICE.
  10049		000004 			CONO	=	4		; KL I/O SUBFUNCTION CODE.
  10050		001000 			PAGE	=	1000		; PAGE SIZE (POWER OF 2).
  10051		000777 			PGBTS	=	PAGE-1		; PAGE BITS USED IN MASK.
  10052					;
  10053					; LOCAL DATA
  10054					;
  10055	002206					.PSECT	DATA,D
  10056	002206				DXBFNM:
  10057	002206	007347 	076400 	000000 		.RAD50	/BOOT     EXB/	; BOOT DEFAULT FILE NAME.
	002214	021402
  10058	002216	000000 				.WORD	0		; GET LATEST VERSION.
  10059	002220	   005 	   005 			.BYTE	5,5
  10060	002222	054523 	000000 			.WORD	"SY,0
  10061	002226				DXBADR:
  10062	002226	000000 	000000 			.WORD	0,0		; CURRENT DEPOSIT ADDRESS.
  10063	002232				DXBDAT:
  10064	002232	000000 	000000 	000000 		.WORD	0,0,0		; DATA WORD TO DEPOSIT.
  10065	002240				DXBCNM:
  10066	002240					IO10$	CONO APR,,22000	; TO CLEAR THE NXM BIT.
	002240	   000 	   044 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002243	   002 	   016 			 .BYTE	BY$$3,BY$$4
  10067						.EVEN
  10068	005226					.PSECT	TEXT,D
  10069	005226				TXBIMM:
  10070	005226					ERROR	<INSUFFICIENT MEMORY FOR BOOTSTRAP>
	005226	   077 	   040 	   111 		 .ASCIZ	\? INSUFFICIENT MEMORY FOR BOOTSTRAP\
	005231	   116 	   123 	   125
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 219-1
$TTWR	-- WRITE A LINE TO THE CONSOLE TTY

	005234	   106 	   106 	   111
	005237	   103 	   111 	   105
	005242	   116 	   124 	   040
	005245	   115 	   105 	   115
	005250	   117 	   122 	   131
	005253	   040 	   106 	   117
	005256	   122 	   040 	   102
	005261	   117 	   117 	   124
	005264	   123 	   124 	   122
	005267	   101 	   120 	   000
  10071	025542					.PSECT
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 220
$EXBLD	-- LOAD THE BOOT

  10073						.SBTTL	$EXBLD	-- LOAD THE BOOT
  10074					;+
  10075					; PROCESS THE KL BOOTSTRAP FILE (.EXB)
  10076					; THIS ROUTINE READS IN A FILE OF BINARY RECORDS.
  10077					; *DATA RECORDS:
  10078					; 	.WORD	4+<5*N>		; BYTE COUNT.
  10079					; 	.BLKW	2		; KL ADDRESS.
  10080					; 	.BLKB	5*N		; KL WORDS.
  10081					; THE KL WORDS WHICH ARE PLACED IN THE FIRST 36 BITS OF 5 -11 BYTES
  10082					; ARE STORED SEQUENTIALLY STARTING AT THE GIVEN ADDRESS.
  10083					; *END OF FILE:
  10084					; 	.WORD	4		; BYTE COUNT.
  10085					; 	.BLKW	2		; KL ADDRESS.
  10086					; THE ADDRESS IS THE START ADDRESS OF THE BOOTSTRAP PROGRAM.
  10087					; THE DATA RECORDS ARE ASSUMED TO BE SORTED BY ADDRESS,
  10088					; SO THAT PAGE CLEARING IS DONE PROPERLY.
  10089					;
  10090					; THE PAGE CLEARING FEATURE REQUIRES THAT ANY PAGES WHICH RECIEVE
  10091					; DATA SHOULD BE CLEARED BEFORE ANY DATA IS STORED. THE PRESENT
  10092					; ALGORITHM AVOIDS WRITING TWICE TO ANY LOCATION (CLEAR & DEPOSIT).
  10093					; A POINTER IS KEPT OF WHERE THE NEXT KL WORD WOULD BE DEPOSITED,
  10094					; AND IS USED TO DETECT GAPS IN DATA/INSTRUCTION STORAGE SO THAT
  10095					; INTERVENING WORDS MAY BE CLEARED.
  10096					;
  10097					; A CHECK IS ALSO MADE TO SEE IF ANY OF THE BOOT IS LOADED INTO
  10098					; NON-EXISTANT MEMORY BY TURNING OFF THE NXM INDICTOR BEFORE THE
  10099					; LOAD AND TESTING IT AFTER THE LOAD TO SEE IF A NXM OCCURRED.
  10100					;
  10101					; INPUTS:
  10102					;	.DBSW	- IF <>0 THEN USE USER FILE NAME.
  10103					;	.DBFNM	- POINTER TO 5 WORD USER FILE NAME.
  10104					;
  10105					; OUTPUTS:
  10106					;	CARRY IS SET IF ERROR OCCURS, OTHERWISE BOOT IS STARTED AND
  10107					;	RETURN IS TO "$EXIT".
  10108					;-
  10109
  10110	025542				$EXBLD::
  10111	025542	105737 	000024'			TSTB	.DLGSW		; ARE WE IN DIALOG MODE??
  10112	025546	100004 				BPL	10$		; YES -- GO ON
  10113	025550	032737 	000000G	000044'		BIT	#KL.LVB,.KLISV	; NO -- MUST BOOT BE LOADED??
  10114	025556	001430 				BEQ	30$		; NO -- JUST EXIT
  10115	025560				10$:
  10117	025560					CALL	$SWEEP		; CLEAR CACHE.
	025560	004737 	005744'			 JSR	PC,$SWEEP
  10118	025564	103425 				BCS	30$
  10119	025566	012700 	002206'			MOV	#DXBFNM,R0	; FILE NAME: BOOT.EXB
  10123	025572	105737 	000025'			TSTB	.UFNSW		; OR
  10124	025576	003402 				BLE	20$
  10125	025600	012700 	000442'			MOV	#.USRFN,R0	; USER FILE NAME.				; ADP01
  10126	025604				20$:
  10127	025604					CALL	$LOOKUP		; FIND THE FILE.
	025604	004737 	007024'			 JSR	PC,$LOOKUP
  10128	025610	103414 				BCS	40$
  10129	025612	012703 	002232'			MOV	#DXBDAT,R3	; INITIALIZE DATA WORD POINTER
  10130	025616	012702 	002230'			MOV	#DXBADR+2,R2	; AND NEXT WORD POINTER.
  10131	025622	005012 				CLR	(R2)		; SET TO ZERO.
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 220-1
$EXBLD	-- LOAD THE BOOT

  10132	025624	005042 				CLR	-(R2)
  10133	025626	012700 	002240'			MOV	#DXBCNM,R0	; NOW TURN OFF THE NXM BIT BY
  10134	025632					CALL	$EXCT		; DOING A CONO APR,,22000.
	025632	004737 	026174'			 JSR	PC,$EXCT
  10135	025636	103020 				BCC	LXBRC
  10136	025640				30$:
  10137	025640					RETURN
	025640	000207 				 RTS	PC
  10138	025642				40$:
  10139	025642	122737 	000000G	000470'		CMPB	#IE.NSF,.SYSTA	; IF FILE NOT FOUND
  10140	025650	001373 				BNE	30$
  10141	025652					CALLR	$IOERR		; DECLARE THE ERROR.
	025652	000137 	006610'			 JMP	$IOERR
  10142
  10143					;+
  10144					; READ 5 BYTES INTO THE AREA POINTED TO BY R3.
  10145					; R5, R4 AND R0 GET DESTROYED.
  10146					;-
  10147
  10148	025656				LXB5B:
  10149	025656	012705 	000005 			MOV	#5,R5
  10150	025662	010304 				MOV	R3,R4
  10151	025664				10$:
  10152	025664					CALL	$READB		; READ A BYTE AND
	025664	004737 	007662'			 JSR	PC,$READB
  10153	025670	103402 				BCS	20$
  10154	025672	110024 				MOVB	R0,(R4)+	; STICK IN ASSEMBLED WORD.
  10155	025674	077505 				SOB	R5,10$
  10156	025676				20$:
  10157	025676					RETURN
	025676	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 221
$EXBLD	-- LOAD THE BOOT

  10159					;+
  10160					; READ RECORD FROM FILE.
  10161					;-
  10162
  10163	025700				LXBRC:	CALL	$READC		; GET ADDRESS.
	025700	004737 	007460'			 JSR	PC,$READC
  10164	025704	103532 				BCS	90$
  10165	025706	010037 	000462'			MOV	R0,.BTADR
  10166	025712					CALL	$READW
	025712	004737 	007566'			 JSR	PC,$READW
  10167	025716	103525 				BCS	90$
  10168	025720	010037 	000464'			MOV	R0,.BTADR+2
  10169	025724	005737 	000476'			TST	.SYIRC		; IF MORE BYTES IN RECORD
  10170	025730	003070 				BGT	60$		; GO TO LOAD DATA INTO KL.
  10171
  10172					;+
  10173					; END OF FILE REACHED. CLEAR THE REST OF THE PAGE,
  10174					; DE-ACCESS THE FILE, AND START THE BOOT.
  10175					;-
  10176
  10177	025732	032712 	000777 		10$:	BIT	#PGBTS,(R2)	; MUST CLEAR REST OF PAGE.
  10178	025736	001413 				BEQ	20$
  10179	025740	012701 	000000'			MOV	#.ZERO,R1	; IF NOT AT BOUNDRY
  10180	025744	010200 				MOV	R2,R0
  10181	025746					CALL	$DPOS		; CLEAR WORD,
	025746	004737 	012336'			 JSR	PC,$DPOS
  10182	025752	103507 				BCS	90$
  10183	025754	062712 	000001 			ADD	#1,(R2)		; BUMP POINTER,
  10184	025760	005562 	000002 			ADC	2(R2)
  10185	025764	000762 				BR	10$		; AND GO FOR MORE.
  10186	025766	010301 			20$:	MOV	R3,R1
  10187	025770	012700 	110000 			MOV	#<110*1000>,R0	; GET 'APR NXM ER IN'
  10188	025774					CALL	$DFRD
	025774	004737 	012706'			 JSR	PC,$DFRD
  10189	026000	103474 				BCS	90$
  10190	026002	132761 	000020 	000003 		BITB	#20,3(R1)	; TO TEST FOR NXM.
  10191	026010	001004 				BNE	30$
  10192	026012					CALL	$CLOSE		; CLOSE BOOT FILE.
	026012	004737 	006320'			 JSR	PC,$CLOSE
  10193	026016	000137 	022524'			JMP	$TENST		; GO TO START THE BOOT.
  10194	026022				30$:	PRINT	#TXBIMM		; BOOT LOADED IN NONEXISTANT MEMORY !
	026022	012700 	005226'			 MOV	#TXBIMM,R0
	026026	004737 	025442'			 JSR	PC,$TTMSG
  10195	026032	000261 				SEC
  10196	026034					RETURN
	026034	000207 				 RTS	PC
KLIXB -- LOAD THE KL BOOT	MACRO M1110  15-OCT-79 14:14  PAGE 222
$EXBLD	-- LOAD THE BOOT

  10198					;+
  10199					; PROCESS DATA RECORD.
  10200					;-
  10201
  10202	026036	032712 	000777 		40$:	BIT	#PGBTS,(R2)	; IF ON A NEW PAGE
  10203	026042	001011 				BNE	50$
  10204	026044	013722 	000462'			MOV	.BTADR,(R2)+	; PUT US ON THE PAGE
  10205	026050	013712 	000464'			MOV	.BTADR+2,(R2)	; OF THE TARGET ADDRESS
  10206	026054	042742 	000777 			BIC	#PGBTS,-(R2)	; AT THE TOP.
  10207	026060	023712 	000462'			CMP	.BTADR,(R2)
  10208	026064	001421 				BEQ	70$
  10209	026066	012701 	000000'		50$:	MOV	#.ZERO,R1	; STORE A ZERO
  10210	026072	010200 				MOV	R2,R0
  10211	026074					CALL	$DPOS
	026074	004737 	012336'			 JSR	PC,$DPOS
  10212	026100	103434 				BCS	90$
  10213	026102	062712 	000001 			ADD	#1,(R2)		; AND BUMP ADDRESS.
  10214	026106	005562 	000002 			ADC	2(R2)
  10215	026112	023712 	000462'		60$:	CMP	.BTADR,(R2)	; WE MUST CLEAR
  10216	026116	001347 				BNE	40$		; UP TO THE
  10217	026120	023762 	000464'	000002 		CMP	.BTADR+2,2(R2)	; RECORD ADDRESS.
  10218	026126	001343 				BNE	40$
  10219	026130				70$:	CALL	LXB5B
	026130	004737 	025656'			 JSR	PC,LXB5B
  10220	026134	103416 				BCS	90$
  10221	026136	010301 				MOV	R3,R1
  10222	026140	010200 				MOV	R2,R0
  10223	026142					CALL	$DPOS		; STICK IT IN
	026142	004737 	012336'			 JSR	PC,$DPOS
  10224	026146	103411 				BCS	90$
  10225	026150	062712 	000001 			ADD	#1,(R2)		; BUMP ADDRESS AND
  10226	026154	005562 	000002 			ADC	2(R2)
  10227	026160	005737 	000476'			TST	.SYIRC
  10228	026164	001361 				BNE	70$
  10229	026166	000137 	025700'			JMP	LXBRC		; GO TO PICK UP NEW RECORD.
  10230	026172				90$:	RETURN
	026172	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 223
$EXBLD	-- LOAD THE BOOT

  10232						.TITLE	KLIXC -- KL INSTRUCTION EXECUTION
  10233	026174					IDENT$	5,0
						.IDENT	/005000/
  10234					;
  10235					; COPYRIGHT (C)  1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
  10236					;
  10237					; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
  10238					; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
  10239					; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
  10240					; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
  10241					;
  10242					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
  10243					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
  10244					; EQUIPMENT CORPORATION.
  10245					;
  10246					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
  10247					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
  10248					;
  10249					; VERSION 05-00
  10250					;
  10251					; ALAN D. PECKHAM  30-MAR-77
  10252					;
  10253					; MODIFIED BY:
  10254					;
  10255					; R. BELANGER	06-DEC-78	NEW KEEP-ALIVE ERROR PROCESSING
  10256					;					TCO 4.2107
  10257					;
  10258					; FUNCTION: THIS MODULE CONTAINS ROUTINES TO ALLOW EXECUTION OF
  10259					;  SINGLE KL INSTRUCTIONS OR THE STARTING OF KL PROGRAMS.
  10260					;
  10261					; LOCAL DATA
  10262					;
  10263	002246					.PSECT	DATA,D
  10264	002246				DXCAD:
  10265	002246					WD36$	0 0		; START ADDRESS BUFFER.
	002246	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002251	   000 	   000 			 .BYTE	BY$$3,BY$$4
  10266	002253				DXCBF:
  10267	002253					WD36$	0 0		; GENERAL BIT BUCKET.
	002253	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002256	   000 	   000 			 .BYTE	BY$$3,BY$$4
  10268	002260				DXCBRC:
  10269	002260					WD36$	0 0		; BURST COUNT BUFFER.
	002260	   000 	   000 	   000 		 .BYTE	BY$$0,BY$$1,BY$$2
	002263	   000 	   000 			 .BYTE	BY$$3,BY$$4
  10270						.EVEN
  10271	005272					.PSECT	TEXT,D
  10272	005272				TXCHLE:
  10273	005272					ERROR	<CANNOT FIND HALT LOOP>
	005272	   077 	   040 	   103 		 .ASCIZ	\? CANNOT FIND HALT LOOP\
	005275	   101 	   116 	   116
	005300	   117 	   124 	   040
	005303	   106 	   111 	   116
	005306	   104 	   040 	   110
	005311	   101 	   114 	   124
	005314	   040 	   114 	   117
	005317	   117 	   120 	   000
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 223-1
$EXBLD	-- LOAD THE BOOT

  10274	005322				TXCSFL:
  10275	005322					ERROR	<CANNOT START KL>
	005322	   077 	   040 	   103 		 .ASCIZ	\? CANNOT START KL\
	005325	   101 	   116 	   116
	005330	   117 	   124 	   040
	005333	   123 	   124 	   101
	005336	   122 	   124 	   040
	005341	   113 	   114 	   000
  10276	026174					.PSECT
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 224
$EXCT	-- EXECUTE KL INSTRUCTION

  10278						.SBTTL	$EXCT	-- EXECUTE KL INSTRUCTION
  10279					;+
  10280					; EXECUTE A SINGLE KL INSTRUCTION BY GETTING THE KL INTO THE
  10281					; HALT LOOP, LOADING THE AR WITH THE INSTRUCTION, PUSHING THE
  10282					; CONTINUE BUTTON, AND STARTING UP THE CLOCK. THE ROUTINE
  10283					; COMPLETES WHEN THE MICROCODE REACHES THE HALT LOOP AGAIN.
  10284					;
  10285					; INPUTS:
  10286					;	R0	- POINTER TO INSTRUCTION TO EXECUTE.
  10287					;
  10288					; OUTPUTS:
  10289					;	CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
  10290					;-
  10291
  10292	026174				$EXCT::
  10293	026174	004537 	022242'			JSR	R5,$RSAVE
  10294	026200					TRACK	XC
	026200	004037 	026212'			 JSR	R0,64$
	026204	041530 				 .WORD	"XC
	026206	000000 				 .WORD
	026210	000000 				 .WORD
	026212	004737 	022310'		64$:	 JSR	PC,$TRACK
	026216	012600 				 MOV	(SP)+,R0
  10295	026220					CALL	$LDAR		; LOAD THE AR WITH THE INSTRUCTION.
	026220	004737 	026534'			 JSR	PC,$LDAR
  10296	026224	103416 				BCS	90$
  10297	026226	012700 	012000 			MOV	#.CONBT,R0	; PUSH THE CONTINUE BUTTON
  10298	026232					CALL	$DFXC
	026232	004737 	013222'			 JSR	PC,$DFXC
  10299	026236	103411 				BCS	90$
  10300	026240	012700 	001000 			MOV	#.STRCL,R0	; AND START THE CLOCK
  10301	026244					CALL	$DFXC
	026244	004737 	013222'			 JSR	PC,$DFXC
  10302	026250	103404 				BCS	90$
  10303	026252	012703 	001750 			MOV	#1000.,R3
  10304	026256					CALLR	$WTKL		; WAIT FOR THE HALT LOOP.
	026256	000137 	026454'			 JMP	$WTKL
  10305						;
  10306	026262				90$:
  10307	026262					RETURN
	026262	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 225
$STRKL	-- START THE KL PROCESSOR

  10309						.SBTTL	$STRKL	-- START THE KL PROCESSOR
  10310					;+
  10311					; START THE KL AT THE 22 BIT ADDRESS POINTED TO BY R0.
  10312					; THIS IS DONE BY LOADING THE AR WITH THE ADDRESS, PUSHING
  10313					; THE RUN AND CONTINUE BUTTONS, AND STARTING THE CLOCK.
  10314					; WE STEP THE MICROCODE OUT OF THE HALT LOOP TO MAKE SURE IT
  10315					; IS RUNNING BEFORE WE LEAVE.
  10316					;
  10317					; INPUTS:
  10318					;	R0	- POINTER TO 22 BIT KL ADDRESS.
  10319					;
  10320					; OUTPUTS:
  10321					;	CARRY IS SET ON ERROR AND A MESSAGE IS DISPLAYED.
  10322					;-
  10323
  10324	026264				$STRKL::
  10325	026264	004537 	022242'			JSR	R5,$RSAVE
  10326	026270					TRACK	ST
	026270	004037 	026302'			 JSR	R0,64$
	026274	052123 				 .WORD	"ST
	026276	000000 				 .WORD
	026300	000000 				 .WORD
	026302	004737 	022310'		64$:	 JSR	PC,$TRACK
	026306	012600 				 MOV	(SP)+,R0
  10327	026310	012701 	002246'			MOV	#DXCAD,R1	; POINT TO A SCRATCH AREA
  10328	026314	112021 				MOVB	(R0)+,(R1)+	; LOAD THE ADDRESS
  10329	026316	112021 				MOVB	(R0)+,(R1)+
  10330	026320	111011 				MOVB	(R0),(R1)	; AS A PC WORD
  10331	026322	142711 	177700 			BICB	#^C77,(R1)	; ONLY 22 BITS PLEASE
  10332	026326	012700 	002246'			MOV	#DXCAD,R0	; GET OUR ADDRESS
  10333	026332					CALL	$LDAR		; AND LOAD IT INTO THE AR.
	026332	004737 	026534'			 JSR	PC,$LDAR
  10334	026336	103440 				BCS	80$
  10335	026340	012700 	011000 			MOV	#.SETRN,R0	; SET THE RUN FLOP
  10336	026344					CALL	$DFXC
	026344	004737 	013222'			 JSR	PC,$DFXC
  10337	026350	103433 				BCS	80$
  10338	026352	012700 	012000 			MOV	#.CONBT,R0	; SET THE CONTINUE BUTTON
  10339	026356					CALL	$DFXC
	026356	004737 	013222'			 JSR	PC,$DFXC
  10340	026362	103426 				BCS	80$
  10341	026364	012701 	001750 			MOV	#1000.,R1	; LOOP COUNT TO R1
  10342	026370				10$:
  10343	026370	012700 	002000 			MOV	#.SSCLK,R0	; SINGLE STEP THE M-BOX CLOCK
  10344	026374					CALL	$DFXC
	026374	004737 	013222'			 JSR	PC,$DFXC
  10345	026400	103417 				BCS	80$
  10346	026402					CALL	$DTRW1		; READ DIAG WORD 1
	026402	004737 	022152'			 JSR	PC,$DTRW1
  10347	026406	103414 				BCS	80$
  10348	026410	032700 	001000 			BIT	#DS06,R0	; STILL IN THE HALT LOOP?
  10349	026414	001402 				BEQ	20$		; NO -- GO ON
  10350	026416	077114 				SOB	R1,10$		; YES -- TRY AGAIN
  10351	026420	000407 				BR	80$		; TIMED OUT -- COMPLAIN
  10352						;
  10353	026422				20$:
  10354	026422	032700 	002000 			BIT	#DS05,R0	; OUT OF HALT LOOP -- IS RUN ON?
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 225-1
$STRKL	-- START THE KL PROCESSOR

  10355	026426	001404 				BEQ	80$		; NO -- COMPLAIN
  10356	026430	012700 	001000 			MOV	#.STRCL,R0	; YES -- START THE CLOCK
  10357	026434					CALLR	$DFXC		; AND EXIT.
	026434	000137 	013222'			 JMP	$DFXC
  10358						;
  10359	026440				80$:
  10360	026440					PRINT	#TXCSFL		; NO -- PRINT ERROR MESSAGE
	026440	012700 	005322'			 MOV	#TXCSFL,R0
	026444	004737 	025442'			 JSR	PC,$TTMSG
  10361	026450	000261 				SEC
  10362	026452				90$:
  10363	026452					RETURN			; AND EXIT
	026452	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 226
$WTKL	-- WAIT FOR KL PROGRAM TO HALT

  10365						.SBTTL	$WTKL	-- WAIT FOR KL PROGRAM TO HALT
  10366					;+
  10367					; WAIT FOR THE KL TO REENTER THE HALT LOOP.
  10368					;
  10369					; INPUTS:
  10370					;	R0	- A TIMEOUT VALUE.
  10371					;
  10372					; OUTPUTS:
  10373					;	CARRY IS SET IF THE KL DOES NOT ENTER THE HALT LOOP
  10374					;	BEFORE THE -11 HAS CHECKED THE DTE20 THE NUMBER OF TIMES
  10375					;	SPECIFIED IN R0.
  10376					;-
  10377
  10378	026454				$WTKL::
  10379	026454					TRACK	WT
	026454	004037 	026466'			 JSR	R0,64$
	026460	052127 				 .WORD	"WT
	026462	000000 				 .WORD
	026464	000000 				 .WORD
	026466	004737 	022310'		64$:	 JSR	PC,$TRACK
	026472	012600 				 MOV	(SP)+,R0
  10380	026474					PUSH	<R2,R1,R0>
	026474	010246 				 MOV	R2,-(SP)
	026476	010146 				 MOV	R1,-(SP)
	026500	010046 				 MOV	R0,-(SP)
  10381	026502	010002 				MOV	R0,R2
  10382	026504				10$:
  10383	026504					CALL	$DTRW1		; READ DTE DIAG 1
	026504	004737 	022152'			 JSR	PC,$DTRW1
  10384	026510	103404 				BCS	80$
  10385	026512	032700 	001000 			BIT	#DS06,R0	; ARE WE AT THE HALT LOOP ?
  10386	026516	001002 				BNE	90$		; YES, RETURN.
  10387	026520	077207 				SOB	R2,10$		; NO, TRY AGAIN
  10388	026522				80$:
  10389	026522	000261 				SEC			; OR GIVE UP.
  10390	026524				90$:
  10391	026524					POP	<R0,R1,R2>
	026524	012600 				 MOV	(SP)+,R0
	026526	012601 				 MOV	(SP)+,R1
	026530	012602 				 MOV	(SP)+,R2
  10392	026532					RETURN
	026532	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 227
$LDAR	-- LOAD THE AR REGISTER

  10394						.SBTTL	$LDAR	-- LOAD THE AR REGISTER
  10395					;+
  10396					; PUT THE MICROCODE INTO THE HALT LOOP, STOP IT, PHASE THE CLOCKS,
  10397					; AND LOAD THE AR REGISTER WITH AN INSTRUCTION OR STARTING ADDRESS.
  10398					;
  10399					; INPUTS:
  10400					;	R0	- ADDRESS OF 36 BIT WORD TO LOAD INTO THE AR.
  10401					;
  10402					; OUTPUTS:
  10403					;	CARRY IS SET IF ERROR OCCURS.
  10404					;-
  10405
  10406	026534				$LDAR::
  10407	026534	004537 	022242'			JSR	R5,$RSAVE	; SAVE THE REGISTERS.
  10408	026540					CALL	STPKL		; STOP THE MICROCODE.
	026540	004737 	026570'			 JSR	PC,STPKL
  10409	026544	103410 				BCS	90$
  10410	026546					CALL	$MBPHS		; PHASE THE CLOCKS FOR THE LOAD.
	026546	004737 	027002'			 JSR	PC,$MBPHS
  10411	026552	103405 				BCS	90$
  10412	026554	010001 				MOV	R0,R1		; GET DATA
  10413	026556	012700 	077000 			MOV	#.LDAR,R0	; AND
  10414	026562					CALLR	$DFWR		; STORE IN THE AR.
	026562	000137 	013020'			 JMP	$DFWR
  10415						;
  10416	026566				90$:
  10417	026566					RETURN
	026566	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 228
STPKL	-- HALT THE KL CPU

  10419						.SBTTL	 STPKL	-- HALT THE KL CPU
  10420					;+
  10421					; GET THE KL INTO THE HALT LOOP. THIS IS DONE MERCIFULLY IN CASE
  10422					; IT IS RUNNING.
  10423					;
  10424					; NO INPUTS.
  10425					;
  10426					; OUTPUTS:
  10427					;	CARRY IS SET IF UNABLE TO COMPLY, AND ERROR MESSAGE
  10428					;	IS DISPLAYED.
  10429					;-
  10430
  10431	026570				STPKL:
  10432	026570					TRACK	HA
	026570	004037 	026602'			 JSR	R0,64$
	026574	040510 				 .WORD	"HA
	026576	000000 				 .WORD
	026600	000000 				 .WORD
	026602	004737 	022310'		64$:	 JSR	PC,$TRACK
	026606	012600 				 MOV	(SP)+,R0
  10433	026610					PUSH	<R0,R1>		; SAVE R0 AND R1
	026610	010046 				 MOV	R0,-(SP)
	026612	010146 				 MOV	R1,-(SP)
  10434	026614	012700 	010000 			MOV	#.CLRUN,R0	; CLEAR RUN
  10435	026620					CALL	$DFXC		; CLEAR RUN
	026620	004737 	013222'			 JSR	PC,$DFXC
  10436	026624	103455 				BCS	90$
  10437	026626	012700 	000024 			MOV	#20.,R0		; SET A WAIT VALUE
  10438	026632					CALL	$WTKL		; AND SEE IF WE FALL
	026632	004737 	026454'			 JSR	PC,$WTKL
  10439	026636	103037 				BCC	20$		; INTO THE HALT LOOP.
  10440	026640	012701 	000024 			MOV	#^D20,R1	; LOOP COUNT TO R4
  10441	026644				10$:
  10442	026644	012700 	000310 			MOV	#^D200,R0	; BURST COUNT TO R0
  10443	026650					CALL	$BURST		; BURST THE CLOCK
	026650	004737 	027150'			 JSR	PC,$BURST
  10444	026654	103441 				BCS	90$
  10445	026656					CALL	$DTRW1		; READ DTE-20 DIAG 1
	026656	004737 	022152'			 JSR	PC,$DTRW1
  10446	026662	103436 				BCS	90$
  10447	026664	032700 	001000 			BIT	#DS06,R0	; ARE WE IN THE HALT LOOP NOW?
  10448	026670	001022 				BNE	20$		; YES -- GO ON
  10449	026672	077114 				SOB	R1,10$		; NO -- TRY AGAIN
  10450	026674	032737 	000000G	000044'		BIT	#KL.KAC,.KLISV	; [TCO 4.2107] KEEP-ALIVE RETRY??
  10451	026702	001031 				BNE	80$		; [TCO 4.2107] YES -- COMPLANI AND EXIT
  10452	026704					CALL	$KLMR		; NO -- KL IS IN TROUBLE - RESET
	026704	004737 	014350'			 JSR	PC,$KLMR
  10453	026710	103423 				BCS	90$
  10454	026712	012700 	001000 			MOV	#.STRCL,R0	; BY RESTARTING MICROCODE.
  10455	026716					CALL	$DFXC
	026716	004737 	013222'			 JSR	PC,$DFXC
  10456	026722	103416 				BCS	90$
  10457	026724	012700 	001750 			MOV	#1000.,R0	; WAIT FOR IT TO ENTER HALT LOOP
  10458	026730					CALL	$WTKL		; AND IF THIS FAILS,
	026730	004737 	026454'			 JSR	PC,$WTKL
  10459	026734	103414 				BCS	80$		; THEN DIE A MISERABLE DEATH.
  10460	026736				20$:
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 228-1
STPKL	-- HALT THE KL CPU

  10461	026736	012700 	000000 			MOV	#.STPCL,R0	; STOP THE CLOCK
  10462	026742					CALL	$DFXC
	026742	004737 	013222'			 JSR	PC,$DFXC
  10463	026746	103404 				BCS	90$
  10464	026750	012700 	004000 			MOV	#.CECLK,R0	; MAKES EBOX CLOCK FALSE
  10465	026754					CALL	$DFXC
	026754	004737 	013222'			 JSR	PC,$DFXC
  10466	026760				90$:
  10467	026760					POP	<R1,R0>		; RESTORE REGISTERS
	026760	012601 				 MOV	(SP)+,R1
	026762	012600 				 MOV	(SP)+,R0
  10468	026764					RETURN			; TO CALLER
	026764	000207 				 RTS	PC
  10469
  10470	026766				80$:
  10471	026766					PRINT	#TXCHLE		; CANNOT FIND HALT LOOP !
	026766	012700 	005272'			 MOV	#TXCHLE,R0
	026772	004737 	025442'			 JSR	PC,$TTMSG
  10472	026776	000261 				SEC
  10473	027000	000767 				BR	90$
  10474						;
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 229
$MBPHS	-- PHASE THE KL CLOCKS

  10476						.SBTTL	$MBPHS	-- PHASE THE KL CLOCKS
  10477					;+
  10478					; PHASE THE CLOCKS TO LOAD THE AR
  10479					; $MBPHS WAITS FOR THREE TEST POINTS TO MATCH UP AND
  10480					; THEN SETS UP FOR A CHANGE COMING A L. THIS MAKES
  10481					; THE AR LOA FUNCTION STRICTLY REPEATABLE.
  10482					;
  10483					; NO INPUTS
  10484					;
  10485					; OUTPUTS:
  10486					;	CARRY IS SET IF ERROR OCCURS.
  10487					;-
  10488
  10489	027002				$MBPHS::
  10490	027002	004537 	022242'			JSR	R5,$RSAVE	; SAVE THE REGISTERS.
  10491	027006	012702 	000030 			MOV	#24.,R2		; DO THIS A MAXIMUM OF 24 TIMES.
  10492	027012	012701 	002253'			MOV	#DXCBF,R1	; SET UP A READ BUFFER.
  10493	027016				10$:
  10494	027016	012700 	102000 			MOV	#<102*1000>,R0	; READ 102
  10495	027022					CALL	$DFRD
	027022	004737 	012706'			 JSR	PC,$DFRD
  10496	027026	103432 				BCS	80$
  10497	027030	132711 	000004 			BITB	#4,(R1)		; CHECK "CLK SYNCH H"
  10498	027034	001421 				BEQ	20$		; MUST BE HIGH
  10499	027036	012700 	144000 			MOV	#<144*1000>,R0	; READ 144
  10500	027042					CALL	$DFRD
	027042	004737 	012706'			 JSR	PC,$DFRD
  10501	027046	103422 				BCS	80$
  10502	027050	132761 	000100 	000003 		BITB	#100,3(R1)	; CHECK "CR ADR 10"
  10503	027056	001010 				BNE	20$		; MUST BE EVEN
  10504	027060	012700 	164000 			MOV	#<164*1000>,R0	; READ 164
  10505	027064					CALL	$DFRD
	027064	004737 	012706'			 JSR	PC,$DFRD
  10506	027070	103411 				BCS	80$
  10507	027072	132711 	000040 			BITB	#40,(R1)	; CHECK "PHASE CHANGE COMING L"
  10508	027076	001410 				BEQ	30$		; MUST BE LOW
  10509	027100				20$:
  10510	027100	012700 	002000 			MOV	#.SSCLK,R0	; STEP THE MBOX CLOCK.
  10511	027104					CALL	$DFXC
	027104	004737 	013222'			 JSR	PC,$DFXC
  10512	027110	103401 				BCS	80$
  10513	027112	077237 				SOB	R2,10$		; AVOID TRYING AD INFINITUM.
  10514	027114				80$:
  10515	027114	000261 				SEC			; ERROR....
  10516	027116				90$:
  10517	027116					RETURN
	027116	000207 				 RTS	PC
  10518	027120				30$:
  10519	027120	012700 	162000 			MOV	#<162*1000>,R0	; READ 162
  10520	027124					CALL	$DFRD
	027124	004737 	012706'			 JSR	PC,$DFRD
  10521	027130	103771 				BCS	80$
  10522	027132	132711 	000010 			BITB	#10,(R1)	; CHECK "A CHANGE COMING A L"
  10523	027136	001767 				BEQ	90$		; IF HIGH, THEN
  10524	027140	012700 	000012 			MOV	#10.,R0		; WE MUST CLOCK THE MBOX
  10525	027144					CALLR	$BURST		; 10. TIMES.
	027144	000137 	027150'			 JMP	$BURST
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 229-1
$MBPHS	-- PHASE THE KL CLOCKS

  10526						;
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 230
$BURST	-- BURST THE M-BOX CLOCK

  10528						.SBTTL	$BURST	-- BURST THE M-BOX CLOCK
  10529					;+
  10530					; STEP THE M-BOX A GIVEN NUMBER OF TICKS USING THE BURST
  10531					; DIAGNOSTIC INSTRUCTION.
  10532					;
  10533					; INPUTS:
  10534					;	R0	- NUMBER OF STEPS TO BURST.
  10535					;
  10536					; OUTPUTS:
  10537					;	CARRY IS SET IF OPERATION WAS UNSUCCESSFUL.
  10538					;-
  10539
  10540	027150	004537 	022242'		$BURST::	JSR	R5,$RSAVE
  10541	027154	010002 				MOV	R0,R2		; SAVE BURST COUNT.
  10542	027156	012700 	000000 			MOV	#.STPCL,R0	; STOP CLOCK FOR SAFETY.
  10543	027162					CALL	$DFXC
	027162	004737 	013222'			 JSR	PC,$DFXC
  10544	027166	103464 				BCS	90$
  10545	027170	012701 	002260'			MOV	#DXCBRC,R1
  10546	027174	012711 	000017 			MOV	#17,(R1)
  10547	027200	162702 	000377 			SUB	#255.,R2	; MORE THAN 255 BURSTS ?
  10548	027204	002422 				BLT	20$
  10549	027206				10$:
  10550	027206	012700 	042000 			MOV	#.LDBRR,R0	; YES, DO A BURST
  10551	027212					CALL	$DFWR
	027212	004737 	013020'			 JSR	PC,$DFWR
  10552	027216	103450 				BCS	90$
  10553	027220	012700 	043000 			MOV	#.LDBRL,R0	; WITH 255, AND
  10554	027224					CALL	$DFWR
	027224	004737 	013020'			 JSR	PC,$DFWR
  10555	027230	103443 				BCS	90$
  10556	027232	012700 	005000 			MOV	#.BRCLK,R0
  10557	027236					CALL	$DFXC
	027236	004737 	013222'			 JSR	PC,$DFXC
  10558	027242	103436 				BCS	90$
  10559	027244	162702 	000377 			SUB	#255.,R2	; COUNT DOWN UNTIL
  10560	027250	002356 				BGE	10$		; LESS THAN 255.
  10561	027252				20$:
  10562	027252	062702 	000377 			ADD	#255.,R2	; ANY LEFT TO DO ?
  10563	027256	001430 				BEQ	90$
  10564	027260	110211 				MOVB	R2,(R1)		; YES, DO LAST BURST.
  10565	027262	142711 	177760 			BICB	#^C17,(R1)
  10566	027266	012700 	042000 			MOV	#.LDBRR,R0
  10567	027272					CALL	$DFWR
	027272	004737 	013020'			 JSR	PC,$DFWR
  10568	027276	103420 				BCS	90$
  10569	027300					SR	R2,4
	027300	006202 				  ASR	R2
	027302	006202 				  ASR	R2
	027304	006202 				  ASR	R2
	027306	006202 				  ASR	R2
  10570	027310	110211 				MOVB	R2,(R1)
  10571	027312	142711 	177760 			BICB	#^C17,(R1)
  10572	027316	012700 	043000 			MOV	#.LDBRL,R0
  10573	027322					CALL	$DFWR
	027322	004737 	013020'			 JSR	PC,$DFWR
  10574	027326	103404 				BCS	90$
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 230-1
$BURST	-- BURST THE M-BOX CLOCK

  10575	027330	012700 	005000 			MOV	#.BRCLK,R0
  10576	027334					CALLR	$DFXC
	027334	000137 	013222'			 JMP	$DFXC
  10577						;
  10578	027340				90$:
  10579	027340					RETURN
	027340	000207 				 RTS	PC
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 231
$BURST	-- BURST THE M-BOX CLOCK

  10581
  10582		021576'				.END	$START
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 231-1
SYMBOL TABLE

AAX   = 000020   	CIMNXM  001063R     003	DDLRAT  000570R     002	DLYCNT= 174400   	DTEMTI= 000456
APR   = 000000   	CLRMR = 000006   	DDLRNA  000540R     002	DM    = 000002   	DTNRB   002132R     002
A.LULU= 000002   	CM    = 000004   	DDNACE  000664R     002	DMABM = ****** GX	DTNXP   002124R     002
A.LUNA= 000004   	CNUPE = 000002   	DDNCRE  000610R     002	DMANXM= ****** GX	DTTRLB  002140R     002
A.LUNU= 000006   	CNVCHK  014264R  	DDNDEL  000712R     002	DMA2TS= ****** GX	DTTSTA  002202R     002
BAF0  = ****** GX	CNVWRD  014272R  	DDNENA  000634R     002	DMA20 = ****** GX	DTTWLB  002160R     002
BITTBL= ****** GX	COMCSE  004754RG    003	DDNGLN  000602R     002	DMRBF   001420R     002	DUPE  = 000020
BIT0  = 000001   	CONBUT= 000012   	DDNRAT  000726R     002	DMRKW2  001432R     002	DURE  = 000004
BIT1  = 000002   	CONFGR= ****** GX	DDPDAI  000740R     002	DMRMMR  001400R     002	DXBADR  002226R     002
BIT10 = 002000   	CONFIG= ****** GX	DDPDAO  000770R     002	DMRMOS  001425R     002	DXBCNM  002240R     002
BIT11 = 004000   	CONO  = 000004   	DDPDEL  000754R     002	DMRMRT  001306R     002	DXBDAT  002232R     002
BIT12 = 010000   	CONTI = ****** GX	DDPRNA  001004R     002	DMRSRL= 000005   	DXBFNM  002206R     002
BIT13 = 020000   	CR    = 000015   	DDXEXT  001034R     002	DMRSRT  001406R     002	DXCAD   002246R     002
BIT14 = 040000   	CS.EXP= 177670   	DEP   = 010000   	DNILPO  001460R     002	DXCBF   002253R     002
BIT15 = 100000   	CTLS  = 000040   	DEX   = 000400   	DNISYF  001510R     002	DXCBRC  002260R     002
BIT2  = 000004   	CXMDOL  001400R     003	DEXDON= 000004   	DNISYI  001470R     002	DXWRD1= 002000
BIT3  = 000010   	CXMIBM  001573R     003	DEXWD1= 174406   	DNISYO  001500R     002	D$$H11= 000010
BIT4  = 000020   	CYCLS = 000002   	DEXWD2= 174404   	DNITTI  001440R     002	D1011 = 000040
BIT5  = 000040   	C.ACHE= 000000   	DEXWD3= 174402   	DNITTO  001450R     002	EBSEL = 000100
BIT6  = 000100   	DACAB   000000R     002	DFCABF  001107R     002	DON10C= 040000   	EBUSPC= 000020
BIT7  = 000200   	DACAD   000012R     002	DFCBF   001100R     002	DON10S= 100000   	EBUSPS= 000004
BIT8  = 000400   	DACBF   000015R     002	DFCFL2  001105R     002	DON11C= 000100   	EDONES= 040000
BIT9  = 001000   	DACBI   000005R     002	DFCFL3  001106R     002	DON11S= 000200   	ED.PHY= 000200
BLKI  = 000000   	DATAI = 000001   	DFCRFL  001060R     002	DPS4  = 040000   	EF.CRI= ****** GX
BLKO  = 000002   	DATAO = 000003   	DFCWFL  001070R     002	DQBFNM  001520R     002	EF.PR1= ****** GX
BMMSTB  000222RG    004	DATE  = 000004   	DFDABF  001121R     002	DQSAPR  001570R     002	EPTR  = 000000
BPARER= 000020   	DBEFRC= ****** GX	DFDDBF  001114R     002	DQSCBF  001540R     002	ERRORX  017426R
BRCLK = 000005   	DCAPGM  000023R     002	DFEAD   001152R     002	DQSCF3  001554R     002	ERR10C= 010000
BY$$0 = 000000   	DCARCA  000040R     002	DFEBF   001156R     002	DQSHWT  001576R     002	ERR10S= 020000
BY$$1 = 000000   	DCARFL  000101R     002	DFEDPB  001126R     002	DRESET= 000100   	ERR11C= 000001
BY$$2 = 000000   	DCASIA  000033R     002	DFEEXB  001140R     002	DRSCEN  001612R     002	ERR11S= 000002
BY$$3 = 000000   	DCAWRF  000064R     002	DFRRDB  001164R     002	DRSPEN  001624R     002	FITMEM= ****** GX
BY$$4 = 000000   	DCBADR  000126R     002	DFUNC = 000200   	DRSPFR  001631R     002	FM    = 000010
CCA   = 000014   	DCBAPR  000202R     002	DFWBF   001222R     002	DRSPLD  001617R     002	FMRECN= ****** GX
CCFAIL= ****** GX	DCBA17  000177R     002	DFWEDB  001210R     002	DRSSCR  001634R     002	FORPRO= 000020
CDD   = 000020   	DCBBF   000172R     002	DFWWDB  001176R     002	DRTBF   002004R     002	FS    = 000001
CECLK = 000004   	DCBCBF  000150R     002	DFXXDB  001230R     002	DRTBUF  001674R     002	F.TRCK= 000000
CFGEXT  005340R  	DCBCNT  000144R     002	DF.DMG= 000004   	DRTDTE  022206R  	GAPCNT= ****** GX
CFGINM  001116R     003	DCBDAT  000130R     002	DF.DMN= 000007   	DRTSTA  001670R     002	GAPTAB= ****** GX
CFGINT  005066R  	DCBDBF  000164R     002	DF.DOR= 000001   	DRTWLB  001646R     002	G.LUBA= 000004
CFGMAC  001335R     003	DCBFIX  000146R     002	DF.EHG= 000010   	DRTX71  001640R     002	G.LUCW= 000004
CFGMNM  001264R     003	DCBFNM  000106R     002	DF.EHM= 000011   	DR.DTE= 000011   	G.LUFB= 000003
CFGMOS  005476R  	DCFCFN  000220R     002	DF.EMG= 000005   	DSEND = 000004   	G.LULU= 000002
CFGXMC  003532R  	DCFLFN  000240R     002	DF.EMN= 000006   	DSTBF   002062R     002	G.LUNA= 000000
CFGXNM  001201R     003	DCFRJT  000260R     002	DF.KLR= 000012   	DSTCEN  002036R     002	G.LUNU= 000002
CFIMIL  004144R  	DCOMST= 000001   	DF.KLW= 000013   	DSTRT   002012R     002	HDTAB   002074R     002
CFIMQ1  000526R     003	DCSRCA  000277R     002	DF.KLX= 000014   	DSTRTL= 000004   	HIBYTE= 177400
CFIMQ2  000646R     003	DCSSIA  000272R     002	DF.OFF= 000002   	DST1B0  002043R     002	HRR   = 000540
CFIMQ3  000720R     003	DDCDAI  000304R     002	DF.ON = 000003   	DST1B1  002050R     002	H.KCAC= ****** GX
CFIMQ4  000745R     003	DDCDAO  000320R     002	DF.PDP= 000016   	DST3B1  002055R     002	H.KEXT= ****** GX
CFMMQ1  000603R     003	DDCWAT  000340R     002	DF.PEX= 000015   	DS04  = 004000   	H.KMOS= ****** GX
CFXMQ1  001443R     003	DDDDEL  000406R     002	DGCFNM  001242R     002	DS05  = 002000   	H.KPWR= ****** GX
CFXMQ2  001514R     003	DDDFNA  000356R     002	DGMFNM  001262R     002	DS06  = 001000   	H.KUDF= ****** GX
CHKIMC  004332R  	DDDRNA  000424R     002	DIAG1 = 174430   	DTECMD= 000451   	IE.DFU= ****** GX
CHKMMC  004556R  	DDLACR  000512R     002	DIAG2 = 174432   	DTEFLG= 000444   	IE.EBX= ****** GX
CHNPNT= 000001   	DDLFNA  000462R     002	DIAG3 = 174436   	DTEF11= 000450   	IE.EOF= ****** GX
CIMNXC  001032R     003	DDLGLN  000454R     002	DIKL10= 000010   	DTEMTD= 000455   	IE.NSF= ****** GX
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 231-2
SYMBOL TABLE

IE.UPN= ****** GX	LCFERR  003074R  	PGBTS = 000777   	SETZ  = 000400   	TNIN55  002734R     003
IFLOP = 100000   	LCFNXT  002614R  	PHYS  = 100000   	SPC   = 000040   	TNIPRI  002772R     003
INIDMA= ****** GX	LCFPRG  003070R  	PI    = 000004   	SSCLK = 000002   	TNIVER  003056R     003
INTMOD= ****** GX	LCFRBF  002720R  	PIDENT= 000000   	STAT  = 174434   	TOBM  = 000004
INTROF= 000010   	LCFRCA  002730R  	PRI7  = 000340   	STATUS= 000022   	TOD   = 000003
INTRON= 000040   	LCFREF  002746R  	PROPNT= 000021   	STPCLK= 000000   	TOIP  = 000002
INTSON= 000001   	LCFRMM  002640R  	PRTOFF= 004000   	STPKL   026570R  	TOIT  = 000001
INT10S= 000400   	LCFRTN  003066R  	PR0   = 000000   	STRCLK= 000001   	TO10  = 000200
INT11C= 002000   	LCFSKP  002736R  	PR1   = 000040   	SWITCH  002072R     002	TO10AD= 174420
INT11S= 004000   	LCFWBF  003110R  	PR2   = 000100   	SWR   = 177570   	TO10BC= 174414
IO.ACE= ****** GX	LCFWCA  003354R  	PR3   = 000140   	SWSLLT= 100000   	TO10BM= 000001
IO.ACR= ****** GX	LCFWEF  003224R  	PR4   = 000200   	SYFLUN= 000006   	TO10DB= 000400
IO.CRE= ****** GX	LCFWMM  003246R  	PR5   = 000240   	SYILUN= 000004   	TO10DN= 100000
IO.DAC= ****** GX	LCTL  = 000037   	PR6   = 000300   	SYOLUN= 000005   	TO10DT= 174424
IO.DEL= ****** GX	LDAR  = 000077   	PR7   = 000340   	S.YIL = 001000 G 	TO10ER= 020000
IO.ENA= ****** GX	LDEIDV  007000R  	PS    = 177776   	S.YOL = 001000 G 	TO11  = 000100
IO.EXT= ****** GX	LDRER   007722R  	PSWW1 = 000005   	TAB   = 000011   	TO11AD= 174422
IO.FNA= ****** GX	LDWER   010164R  	PSWW10= 000014   	TCAACD  000077R     003	TO11BC= 174416
IO.RLB= ****** GX	LF    = 000012   	PSWW11= 000015   	TCAACE  000026R     003	TO11BM= 020000
IO.RNA= ****** GX	LFCSAB  011536R  	PSWW12= 000016   	TCACEF  000000R     003	TO11DB= 004000
IO.RVB= ****** GX	LFDWFN  011722R  	PSWW13= 000017   	TCASCE  000051R     003	TO11DN= 000200
IO.WLB= ****** GX	LFECKN  012616R  	PSWW2 = 000006   	TCBBAD  000410R     003	TO11DT= 174426
IO.WVB= ****** GX	LFEMVA  012572R  	PSWW3 = 000007   	TCBDCW  000117R     003	TO11ER= 000002
IS.CR = ****** GX	LFWCKF  013140R  	PSWW4 = 000010   	TCBDDW  000151R     003	TQBNFL  003245R     003
IS.ESC= ****** GX	LMRDFN  014546R  	PSWW5 = 000011   	TCBFXF  000265R     003	TQBOOT  003130R     003
I.10L = 000005   	LOAD11= 000004   	PSWW6 = 000012   	TCBGOD  000416R     003	TQBWCF  003202R     003
JCOMM   002070R     002	LPOLUN= 000003   	PSWW7 = 000013   	TCBMLF  000203R     003	TQCACH  003303R     003
JRST  = 000254   	LQBRBF  016000R  	PULSE = 000020   	TCBMVF  000233R     003	TQCCEN  003350R     003
JUMPE = 000322   	LQCCM   016356R  	QSIZE = 000023   	TCBMVL  000314R     003	TQEXIT  003414R     003
KEEPBB= ****** GX	LQRBPS  017764R  	Q.IOAE= 000012   	TCBMVV  000351R     003	TQMCF0  003440R     003
KLI$$E= 000012   	LQSBPS  020304R  	Q.IOEF= 000006   	TCBXOR  000424R     003	TQMCF1  003517R     003
KLI$$F= 000101   	LQSCHE  020620R  	Q.IOFN= 000002   	TCFCFA  000432R     003	TQMNM0  003604R     003
KLI$$K= 000126   	LQSCHO  020574R  	Q.IOLU= 000004   	TCFCFE  000465R     003	TQMPCA  003641R     003
KLI$$V= 000012   	LQSHDW  020640R  	Q.IOPL= 000014   	TDEDFU  002050R     003	TQRLMC  003746R     003
KLPWRF= 000010   	LQSHWE  020330R  	Q.IOPR= 000007   	TDEDR   001616R     003	TQSABO  004377R     003
KL.CFL= ****** GX	LQSHWO  021042R  	Q.IOSB= 000010   	TDEIO   001710R     003	TQSCAC  004260R     003
KL.CFM= ****** GX	LRSTKL  021500R  	RAMIS0= 010000   	TDENSF  001774R     003	TQSCDH  004270R     003
KL.DEF= ****** GX	LTNCHR  024424R  	RDATIM  014024RG 	TDRRDE  002075R     003	TQSCHN  004234R     003
KL.KAC= ****** GX	LTNMV   024364R  	RDDONE= ****** GX	TDRRLE  002112R     003	TQSDLG  004014R     003
KL.LCA= ****** GX	LTNROL  024410R  	REPCON= ****** GX	TDWRLE  002164R     003	TQSEXT  004206R     003
KL.LRM= ****** GX	LTTDIR  025532R  	REPFIT= ****** GX	TDWWRE  002146R     003	TQSHRZ  004113R     003
KL.LVB= ****** GX	LXBRC   025700R  	RESDET= ****** GX	TENAD1= 174410   	TQSHWP  004123R     003
KL.SPF= ****** GX	LXB5B   025656R  	RFMAD0= 100000   	TENAD2= 174412   	TQSKSN  004055R     003
KL.SSC= ****** GX	L$$P20= 000002   	RFMAD1= 040000   	TFEDFL  002221R     003	TQSMDL  004100R     003
KL.VBD= ****** GX	MABRD = ****** GX	RFMAD2= 020000   	TFEEFL  002242R     003	TQSMMA  004432R     003
KL.VBN= ****** GX	MA20  = ****** GX	RFMAD3= 010000   	TFREMS  002263R     003	TQSMMO  004156R     003
LCARPT  000754R  	MBINI = ****** GX	RM    = 000010   	TFWEMS  002304R     003	TQSWRN  004344R     003
LCBCRM  001322R  	MB20  = ****** GX	RTFERR  014244R  	TFXEMS  002326R     003	TROCT   024064R
LCBDRM  001652R  	MF20  = ****** GX	RTFERX  014254R  	TGCNFL  002352R     003	TRSCES  004544R     003
LCBFL   002312R  	MPE11 = 001000   	RTFXIT  014260R  	TGMNFL  002421R     003	TRSDER  004676R     003
LCBRC   001222R  	MXTYP = 000003   	R$$11D= 000001   	TGTCKE  002471R     003	TRSHLT  004611R     003
LCBRME  002172R  	NULSTP= 000040   	SCD   = 000040   	TGTIFF  002561R     003	TRSPRF  004510R     003
LCBVFY  002246R  	NUPE  = 000002   	SECLK = 000003   	TGTNFL  002533R     003	TRSRSM  004737R     003
LCBVR   002344R  	PAG   = 000010   	SETIMF  000270R     002	TGTRFE  002623R     003	TRSTMO  004642R     003
LCB3W   001172R  	PAGE  = 001000   	SETMMF  000271R     002	TMFLNM= ****** GX	TRTBTF  005037R     003
LCB6W   001200R  	PCERRM  003107R     003	SETMR = 000007   	TMRMFL  002661R     003	TRTEND  005144R     003
LCFCPY  002646R  	PERCLR= 001000   	SETRUN= 000011   	TNINDV  002707R     003	TRTFME  005067R     003
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 231-3
SYMBOL TABLE

TRTMMF  005001R     003	$DFRD   012706RG 	$MAPMM  005700RG 	$WRD22  024144RG 	.HRDWR= ****** GX
TSTBSM  005146R     003	$DFWR   013020RG 	$MBPHS  027002RG 	$WRD36  024256RG 	.INICL= 070000
TTA     002104R     002	$DFXC   013222RG 	$MCBLD  001066RG 	$WRITB  010274RG 	.IRLTC= 014000
TTB     002110R     002	$DH11 = 000001   	$POWER  021146RG 	$WRITC  010066RG 	.KLISV  000044RG    004
TTBEL   005206R     003	$DLGBT  015456RG 	$PURGE  007366RG 	$WRITE  010334RG 	.KLIWD= ****** GX
TTILUN= 000001   	$DLGBV  021732RG 	$RCRAM  011026RG 	$WRITS  010130RG 	.KLREG  000230RG    004
TTJ     002120R     002	$DLGCA  016200RG 	$RDERA= 000000   	$WRITW  010200RG 	.LCRDL= 052000
TTOLUN= 000002   	$DLGCT  017432RG 	$RDRAM  011736RG 	$WTKL   026454RG 	.LCRDR= 051000
TTP     002114R     002	$DLGCV  021676RG 	$READ   007736RG 	$XCDT   000206RG 	.LCRM1= 057000
TTSLS   005205R     003	$DLGEN  020010RG 	$READB  007662RG 	$ZERAC  000112RG 	.LCRM2= 056000
TTSPC   005203R     003	$DLGEX  016534RG 	$READC  007460RG 	$$    = 000037   	.LCRM3= 055000
TTTAB   005204R     003	$DLGIM  017456RG 	$READS  007516RG 	$$APRI= 000000   	.LCRM4= 054000
TTTNLN  005207R     003	$DLGMB  017472RG 	$READW  007566RG 	$$RDER= 000004   	.LCRM5= 053000
TTTPR   000207R     002	$DLGMF  017466RG 	$RP04 = 000001   	$$SBDI= 000004   	.LDAR = 077000
TTTPRE  005215R     003	$DLGMM  016670RG 	$RSAVE  022242RG 	$$$ARG= 000011   	.LDBRL= 043000
TTTPRP  005211R     003	$DLGMV  021724RG 	$RSTRT  021236RG 	$$$OST= 000014   	.LDBRR= 042000
TXBIMM  005226R     003	$DLGMX  021730RG 	$RX11 = 000001   	$$$T1 = 000014   	.LDCK1= 046000
TXCHLE  005272R     003	$DLGRM  017522RG 	$SBDIA= 000002   	.BRCLK= 005000   	.LDCK2= 047000
TXCSFL  005322R     003	$DLGRV  021736RG 	$SETCA  000356RG 	.BTADR  000462RG    004	.LDDIS= 045000
TYPNUM= ****** GX	$DLGXM  017462RG 	$SETFN  006546RG 	.BTSW   000042RG    004	.LDRJD= 064000
T.TIL = 000040 G 	$DLMB1  017476RG 	$SETIM  004320RG 	.CACHN  000051RG    004	.LDRJV= 063000
T.TOL = 000111 G 	$DLMB2  017504RG 	$SETMM  004544RG 	.CASW   000035RG    004	.LDRM1= 060000
UNASG1= 000032   	$DLWCF  015652RG 	$START  021576RG 	.CECLK= 004000   	.LDRM2= 061000
UNASG2= 000033   	$DPOS   012336RG 	$STRKL  026264RG 	.CFGTB  000120RG    004	.LDRM3= 062000
UNASG3= 000034   	$DPOST  012320RG 	$SWEEP  005744RG 	.CFMRV  000220RG    004	.LDSEL= 044000
UNASG4= 000035   	$DSPPT  017152RG 	$TCRLF  025336RG 	.CKSW   000033RG    004	.MEMRS= 076000
UNASG5= 000036   	$DSW  = ****** GX	$TDB2C  024456RG 	.CLRMR= 006000   	.MFCT   000040RG    004
UNASG6= 000037   	$DTE  = 000001   	$TDB2I  023254RG 	.CLRUN= 010000   	.MFSW   000037RG    004
WEP   = 000010   	$DTRWS  022170RG 	$TDB2O  024440RG 	.COMEF= ****** GX	.NCACH  000050RG    004
W.10L = 000005   	$DTRW1  022152RG 	$TDI2B  023372RG 	.CONBT= 012000   	.NOERR= ****** GX
XCONMP= ****** GX	$DTRW2  022160RG 	$TENST  022524RG 	.CPUSN= ****** GX	.PCAB1= 150000
XCT   = 000256   	$DTRW3  022200RG 	$TENS1  022532RG 	.CSHRG= 164000   	.PCAB2= 151000
ZSTOP = 040000   	$ENTER  007176RG 	$TOP10= 000001   	.CTLTP  000056RG    004	.PCAB3= 152000
$ACRAM  011430RG 	$ERROR  022050RG 	$TRACK  022310RG 	.DATE3= ****** GX	.PCAB4= 153000
$ADRAM  012146RG 	$EXAM   012466RG 	$TRB2F  023034RG 	.DBSW   000031RG    004	.PRDCT= ****** GX
$APRID= 000000   	$EXAMD  012456RG 	$TRB2I  023276RG 	.DCSW   000027RG    004	.RCRM1= 147000
$ASCIZ  022276RG 	$EXAMT  012440RG 	$TRB2O  024470RG 	.DESW   000034RG    004	.RCRM2= 146000
$BURST  027150RG 	$EXBLD  025542RG 	$TRB2R  024734RG 	.DFBLK  000242RG    004	.RCRM3= 145000
$CD11 = 000001   	$EXCT   026174RG 	$TRCRM  023502RG 	.DFRBK  000250RG    004	.RCRM4= 144000
$CFGBT  021756RG 	$EXIT   022060RG 	$TRDRM  023646RG 	.DFRG1  000256RG    004	.RCSPF= 141000
$CFGCA  021702RG 	$EXIT1  022066RG 	$TRF2B  023136RG 	.DFRG2  000260RG    004	.RDJ14= 134000
$CFGMM  017172RG 	$EXTEN  010504RG 	$TRI2B  023414RG 	.DFRG3  000264RG    004	.RDJ71= 135000
$CFGRM  021670RG 	$FATAL  022074RG 	$TRO2B  024552RG 	.DFSTA  000262RG    004	.RDMAB= 133000
$CFGXX  017344RG 	$FE   = 000001   	$TRR2B  024626RG 	.DFWBK  000242RG    004	.SECLK= 003000
$CFIMD  003474RG 	$FILE   002520RG 	$TTBEL  025316RG 	.DLGSW  000024RG    004	.SETMR= 007000
$CFMMD  003442RG 	$F11  = 000001   	$TTDMS  025374RG 	.DMSW   000030RG    004	.SETRN= 011000
$CFXMD  006006RG 	$GETCA  013354RG 	$TTDWR  025506RG 	.DREG   000256RG    004	.SNSAV  000046RG    004
$CHKIM  004326RG 	$GETMM  013554RG 	$TTMSG  025442RG 	.DRLTC= 015000   	.SPSAV  000022RG    004
$CHKMM  004552RG 	$GETTF  014024RG 	$TTRD   025120RG 	.DRSW   000026RG    004	.SSCLK= 002000
$CLOSE  006320RG 	$INIT   014702RG 	$TTSPC  025306RG 	.DSACF= 066000   	.STPCL= 000000
$CONFG  004756RG 	$IOERR  006610RG 	$TTTAB  025326RG 	.DSIOJ= 065000   	.STRCL= 001000
$DBDTE= 000001   	$KLMR   014350RG 	$TTWR   025522RG 	.DTEDT  000266RG    004	.SYATT  002614RG    004
$DDFRD  012702RG 	$KLSR   014622RG 	$T1091= 000001   	.EASW   000036RG    004	.SYFID= 002562RG    004
$DDFWR  013014RG 	$LDAR   026534RG 	$WCRAM  010546RG 	.EIOJA= 067000   	.SYFNB  002562RG    004
$DDFXC  013216RG 	$LDNGO  000000RG 	$WDD22  024114RG 	.FEMOD= ****** GX	.SYFNM= 002570RG    004
$DELET  006456RG 	$LOOKU  007024RG 	$WDD36  024226RG 	.FILSW  000041RG    004	.SYIBA  000500RG    004
$DFPC   015256RG 	$LP20 = 000001   	$WDRAM  011556RG 	.GFNR = 102000   	.SYIBC  000502RG    004
KLIXC -- KL INSTRUCTION EXECUTI	MACRO M1110  15-OCT-79 14:14  PAGE 231-4
SYMBOL TABLE

.SYIBF  000530RG    004	.SYOBA  001532RG    004	.SYOSW  000475RG    004	.TTIBF  000270RG    004	.WRMBX= 071000
.SYIFN  000504RG    004	.SYOBC  001534RG    004	.SYOVB  001556RG    004	.TTOBF  000330RG    004	.ZERO   000000RG    004
.SYIRC  000476RG    004	.SYOBF  001562RG    004	.SYSTA  000470RG    004	.UFNSW  000025RG    004	..DTP2= ****** GX
.SYISW  000474RG    004	.SYOFN  001536RG    004	.TPSHI  015412RG 	.USRFN  000442RG    004	..DTSP= ****** GX
.SYIVB  000524RG    004	.SYORC  001530RG    004	.TRKSW  000032RG    004	.WORK   000014RG    004

. ABS.	000000	   000
      	027342	   001
DATA  	002266	   002
TEXT  	005344	   003
GLBL  	002632	   004
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  17482 WORDS  ( 69 PAGES)
DYNAMIC MEMORY:  18820 WORDS  ( 72 PAGES)
ELAPSED TIME:  00:12:38
,[50,20]KLIMON/CR/-SP=[50,30]KLIMON.TMP
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

AAX   	= 000020	#190-8730  
APR   	= 000000	 11-539    #55-1921    55-1943    55-1943   #58-2122    58-2141    58-2141   #190-8731   190-8747  
                         190-8747  #219-10048  219-10066  219-10066 
A.LULU	= 000002	#150-6617  #150-6619  #150-6622  #150-6625  #150-6627  #150-6629  
A.LUNA	= 000004	#150-6617  #150-6619  #150-6622  #150-6625  #150-6627  #150-6629  
A.LUNU	= 000006	#150-6617  #150-6619  #150-6622  #150-6625  #150-6627  #150-6629  
BAF0  	= ******  GX	 78-3471    78-3471    84-3806    84-3806   
BITTBL	= ******  GX	 75-3167    77-3400    78-3506    84-3810   
BIT0  	= 000001	#4-176     #8-445      174-7819   190-8737  
BIT1  	= 000002	#4-176     #8-445      190-8735  
BIT10 	= 002000	#4-176     #8-445     
BIT11 	= 004000	#4-176     #8-445     
BIT12 	= 010000	#4-176     #8-445     
BIT13 	= 020000	#4-176     #8-445     
BIT14 	= 040000	#4-176     #8-445     
BIT15 	= 100000	#4-176     #8-445      61-2261    75-3084    75-3147    77-3390    78-3491    81-3646    82-3710   
                         83-3762    88-3964    100-4463   102-4548   102-4550   118-5078   143-6113   148-6440   148-6441  
                         148-6448   148-6452   148-6453   168-7448  
BIT2  	= 000004	#4-176     #8-445      190-8733  
BIT3  	= 000010	#4-176     #8-445      190-8736  
BIT4  	= 000020	#4-176     #8-445      190-8730  
BIT5  	= 000040	#4-176     #8-445     
BIT6  	= 000100	#4-176     #8-445     
BIT7  	= 000200	#4-176     #8-445     
BIT8  	= 000400	#4-176     #8-445     
BIT9  	= 001000	#4-176     #8-445     
BLKI  	= 000000	 11-538     11-540    #58-2123    58-2141    58-2141   
BLKO  	= 000002	 11-536    #55-1922    55-1943    55-1943   
BMMSTB	  000222 RG	 82-3720    88-3997   #183-8318  
BPARER	= 000020	#4-176     #8-445     
BRCLK 	= 000005	#11-531    
BY$$0 	= 000000	#51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747   #51-1748    51-1748    51-1748   #51-1748    51-1748   #51-1749    51-1749   
                         51-1749   #51-1749    51-1749   #51-1750    51-1750    51-1750   #51-1750    51-1750   #55-1937   
                         55-1937    55-1937   #55-1937    55-1937   #55-1938    55-1938    55-1938   #55-1938    55-1938   
                        #55-1939    55-1939    55-1939   #55-1939    55-1939   #55-1940    55-1940    55-1940   #55-1940   
                         55-1940   #55-1941    55-1941    55-1941   #55-1941    55-1941   #55-1942    55-1942    55-1942   
                        #55-1942    55-1942   #55-1943    55-1943    55-1943   #55-1943    55-1943   #55-1944    55-1944   
                         55-1944   #55-1944    55-1944   #58-2139    58-2139    58-2139   #58-2139    58-2139   #58-2140   
                         58-2140    58-2140   #58-2140    58-2140    58-2140   #58-2140    58-2140   #58-2141    58-2141   
                         58-2141   #58-2141    58-2141    58-2141   #58-2141    58-2141   #85-3855    85-3855    85-3855   
                        #85-3855    85-3855   #85-3856    85-3856    85-3856   #85-3856    85-3856   #120-5141   120-5141  
                         120-5141  #120-5141   120-5141  #120-5144   120-5144   120-5144  #120-5144   120-5144  #124-5383  
                         124-5383   124-5383  #124-5383   124-5383  #124-5384   124-5384   124-5384  #124-5384   124-5384  
                        #128-5578   128-5578   128-5578  #128-5578   128-5578  #128-5580   128-5580   128-5580  #128-5580  
                         128-5580  #134-5815   134-5815   134-5815  #134-5815   134-5815  #148-6458   148-6458   148-6458  
                        #148-6458   148-6458   148-6458  #148-6458   148-6458  #148-6467   148-6467   148-6467  #148-6467  
                         148-6467  #148-6468   148-6468   148-6468  #148-6468   148-6468   148-6468  #148-6468   148-6468  
                        #148-6469   148-6469   148-6469  #148-6469   148-6469  #171-7626   171-7626   171-7626  #171-7626  
                         171-7626  #176-7987   176-7987   176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987  
                         176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         176-7987  #176-7987   176-7987  #176-7989   176-7989   176-7989  #176-7989   176-7989  #176-7990  
                         176-7990   176-7990  #176-7990   176-7990   176-7990  #176-7990   176-7990  #176-7991   176-7991  
                         176-7991  #176-7991   176-7991   176-7991  #176-7991   176-7991  #176-7993   176-7993   176-7993  
                        #176-7993   176-7993   176-7993  #176-7993   176-7993   176-7993  #176-7993   176-7993  #181-8171  
                         181-8171   181-8171  #181-8171   181-8171   181-8171  #181-8171   181-8171  #181-8181   181-8181  
                         181-8181  #181-8181   181-8181  #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  
                        #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  
                        #190-8747   190-8747   190-8747  #190-8747   190-8747  #190-8748   190-8748   190-8748  #190-8748  
                         190-8748   190-8748  #190-8748   190-8748   190-8748  #190-8748   190-8748   190-8748  #190-8748  
                         190-8748   190-8748  #190-8748   190-8748  #190-8749   190-8749   190-8749  #190-8749   190-8749  
                        #190-8750   190-8750   190-8750  #190-8750   190-8750  #190-8754   190-8754   190-8754  #190-8754  
                         190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754  
                         190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754   190-8754  #190-8757   190-8757  
                         190-8757  #190-8757   190-8757  #190-8759   190-8759   190-8759  #190-8759   190-8759  #190-8761  
                         190-8761   190-8761  #190-8761   190-8761  #190-8764   190-8764   190-8764  #190-8764   190-8764  
                        #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 
                        #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 #219-10066  219-10066 #223-10265 
                         223-10265  223-10265 #223-10265  223-10265 #223-10267  223-10267  223-10267 #223-10267  223-10267 
                        #223-10269  223-10269  223-10269 #223-10269  223-10269 
BY$$1 	= 000000	#51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747   #51-1748    51-1748    51-1748   #51-1748    51-1748   #51-1749    51-1749   
                         51-1749   #51-1749    51-1749   #51-1750    51-1750    51-1750   #51-1750    51-1750   #55-1937   
                         55-1937    55-1937   #55-1937    55-1937   #55-1938    55-1938    55-1938   #55-1938    55-1938   
                        #55-1939    55-1939    55-1939   #55-1939    55-1939   #55-1940    55-1940    55-1940   #55-1940   
                         55-1940   #55-1941    55-1941    55-1941   #55-1941    55-1941   #55-1942    55-1942    55-1942   
                        #55-1942    55-1942   #55-1943    55-1943    55-1943   #55-1943    55-1943   #55-1944    55-1944   
                         55-1944   #55-1944    55-1944   #58-2139    58-2139    58-2139   #58-2139    58-2139   #58-2140   
                         58-2140    58-2140   #58-2140    58-2140    58-2140   #58-2140    58-2140   #58-2141    58-2141   
                         58-2141   #58-2141    58-2141    58-2141   #58-2141    58-2141   #85-3855    85-3855    85-3855   
                        #85-3855    85-3855   #85-3856    85-3856    85-3856   #85-3856    85-3856   #120-5141   120-5141  
                         120-5141  #120-5141   120-5141  #120-5144   120-5144   120-5144  #120-5144   120-5144  #124-5383  
                         124-5383   124-5383  #124-5383   124-5383  #124-5384   124-5384   124-5384  #124-5384   124-5384  
                        #128-5578   128-5578   128-5578  #128-5578   128-5578  #128-5580   128-5580   128-5580  #128-5580  
                         128-5580  #134-5815   134-5815   134-5815  #134-5815   134-5815  #148-6458   148-6458   148-6458  
                        #148-6458   148-6458   148-6458  #148-6458   148-6458  #148-6467   148-6467   148-6467  #148-6467  
                         148-6467  #148-6468   148-6468   148-6468  #148-6468   148-6468   148-6468  #148-6468   148-6468  
                        #148-6469   148-6469   148-6469  #148-6469   148-6469  #171-7626   171-7626   171-7626  #171-7626  
                         171-7626  #176-7987   176-7987   176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987  
                         176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987   176-7987  #176-7987   176-7987  
                         176-7987  #176-7987   176-7987  #176-7989   176-7989   176-7989  #176-7989   176-7989  #176-7990  
                         176-7990   176-7990  #176-7990   176-7990   176-7990  #176-7990   176-7990  #176-7991   176-7991  
                         176-7991  #176-7991   176-7991   176-7991  #176-7991   176-7991  #176-7993   176-7993   176-7993  
                        #176-7993   176-7993   176-7993  #176-7993   176-7993   176-7993  #176-7993   176-7993  #181-8171  
                         181-8171   181-8171  #181-8171   181-8171   181-8171  #181-8171   181-8171  #181-8181   181-8181  
                         181-8181  #181-8181   181-8181  #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  
                        #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  #190-8747   190-8747   190-8747  
                        #190-8747   190-8747   190-8747  #190-8747   190-8747  #190-8748   190-8748   190-8748  #190-8748  
                         190-8748   190-8748  #190-8748   190-8748   190-8748  #190-8748   190-8748   190-8748  #190-8748  
                         190-8748   190-8748  #190-8748   190-8748  #190-8749   190-8749   190-8749  #190-8749   190-8749  
                        #190-8750   190-8750   190-8750  #190-8750   190-8750  #190-8754   190-8754   190-8754  #190-8754  
                         190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         190-8754   190-8754  #190-8754   190-8754   190-8754  #190-8754   190-8754  #190-8757   190-8757  
                         190-8757  #190-8757   190-8757  #190-8759   190-8759   190-8759  #190-8759   190-8759  #190-8761  
                         190-8761   190-8761  #190-8761   190-8761  #190-8764   190-8764   190-8764  #190-8764   190-8764  
                        #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 
                        #219-10066  219-10066  219-10066 #219-10066  219-10066  219-10066 #219-10066  219-10066 #223-10265 
                         223-10265  223-10265 #223-10265  223-10265 #223-10267  223-10267  223-10267 #223-10267  223-10267 
                        #223-10269  223-10269  223-10269 #223-10269  223-10269 
BY$$2 	= 000000	#51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1747   
                         51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1748    51-1748   #51-1748    51-1748   
                        #51-1748    51-1748   #51-1749    51-1749   #51-1749    51-1749   #51-1750    51-1750    51-1750   
                        #51-1750    51-1750   #51-1750    51-1750   #55-1937    55-1937    55-1937   #55-1937    55-1937   
                        #55-1937    55-1937   #55-1938    55-1938   #55-1938    55-1938   #55-1938    55-1938   #55-1939   
                         55-1939   #55-1939    55-1939   #55-1939    55-1939   #55-1940    55-1940   #55-1940    55-1940   
                        #55-1940    55-1940   #55-1941    55-1941   #55-1941    55-1941   #55-1941    55-1941   #55-1942   
                         55-1942   #55-1942    55-1942   #55-1942    55-1942   #55-1943    55-1943   #55-1943    55-1943   
                        #55-1943    55-1943   #55-1944    55-1944   #55-1944    55-1944   #55-1944    55-1944   #58-2139   
                         58-2139    58-2139   #58-2139    58-2139   #58-2139    58-2139   #58-2140    58-2140   #58-2140   
                         58-2140   #58-2140    58-2140   #58-2141    58-2141   #58-2141    58-2141   #58-2141    58-2141   
                        #58-2141    58-2141   #85-3855    85-3855   #85-3855    85-3855   #85-3855    85-3855   #85-3856   
                         85-3856   #85-3856    85-3856   #85-3856    85-3856   #120-5141   120-5141   120-5141  #120-5141  
                         120-5141  #120-5141   120-5141  #120-5144   120-5144   120-5144  #120-5144   120-5144  #120-5144  
                         120-5144  #124-5383   124-5383   124-5383  #124-5383   124-5383  #124-5383   124-5383  #124-5384  
                         124-5384   124-5384  #124-5384   124-5384  #124-5384   124-5384  #128-5578   128-5578  #128-5578  
                         128-5578  #128-5580   128-5580   128-5580  #128-5580   128-5580  #128-5580   128-5580  #134-5815  
                         134-5815   134-5815  #134-5815   134-5815  #134-5815   134-5815  #148-6458   148-6458   148-6458  
                        #148-6458   148-6458  #148-6458   148-6458  #148-6458   148-6458  #148-6467   148-6467   148-6467  
                        #148-6467   148-6467  #148-6467   148-6467  #148-6468   148-6468   148-6468  #148-6468   148-6468  
                        #148-6468   148-6468  #148-6468   148-6468  #148-6469   148-6469   148-6469  #148-6469   148-6469  
                        #148-6469   148-6469  #171-7626   171-7626   171-7626  #171-7626   171-7626  #171-7626   171-7626  
                        #176-7987   176-7987  #176-7987   176-7987  #176-7987   176-7987  #176-7987   176-7987  #176-7987  
                         176-7987  #176-7987   176-7987  #176-7987   176-7987  #176-7987   176-7987  #176-7989   176-7989  
                         176-7989  #176-7989   176-7989  #176-7989   176-7989  #176-7990   176-7990   176-7990  #176-7990  
                         176-7990  #176-7990   176-7990  #176-7990   176-7990  #176-7991   176-7991  #176-7991   176-7991  
                        #176-7991   176-7991  #176-7993   176-7993  #176-7993   176-7993  #176-7993   176-7993  #176-7993  
                         176-7993  #181-8171   181-8171  #181-8171   181-8171  #181-8171   181-8171  #181-8171   181-8171  
                        #181-8181   181-8181   181-8181  #181-8181   181-8181  #181-8181   181-8181  #190-8747   190-8747  
                        #190-8747   190-8747  #190-8747   190-8747  #190-8747   190-8747  #190-8747   190-8747  #190-8747  
                         190-8747  #190-8747   190-8747  #190-8747   190-8747  #190-8748   190-8748  #190-8748   190-8748  
                        #190-8748   190-8748  #190-8748   190-8748  #190-8748   190-8748  #190-8748   190-8748  #190-8748  
                         190-8748  #190-8749   190-8749  #190-8749   190-8749  #190-8749   190-8749  #190-8750   190-8750  
                        #190-8750   190-8750  #190-8750   190-8750  #190-8754   190-8754  #190-8754   190-8754  #190-8754  
                         190-8754  #190-8754   190-8754  #190-8754   190-8754  #190-8754   190-8754  #190-8754   190-8754  
                        #190-8754   190-8754  #190-8757   190-8757   190-8757  #190-8757   190-8757   190-8757  #190-8757  
                         190-8757   190-8757  #190-8757   190-8757   190-8757  #190-8757   190-8757   190-8757  #190-8757  
                         190-8757   190-8757  #190-8757   190-8757  #190-8757   190-8757  #190-8759   190-8759   190-8759  
                        #190-8759   190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759   190-8759   190-8759  
                        #190-8759   190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759   190-8759  #190-8759  
                         190-8759  #190-8761   190-8761   190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761  
                         190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761  
                         190-8761  #190-8761   190-8761  #190-8761   190-8761  #190-8764   190-8764   190-8764  #190-8764  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         190-8764  #190-8764   190-8764  #219-10066  219-10066 #219-10066  219-10066 #219-10066  219-10066 
                        #219-10066  219-10066 #219-10066  219-10066 #219-10066  219-10066 #219-10066  219-10066 #223-10265 
                         223-10265  223-10265 #223-10265  223-10265 #223-10265  223-10265 #223-10267  223-10267  223-10267 
                        #223-10267  223-10267 #223-10267  223-10267 #223-10269  223-10269  223-10269 #223-10269  223-10269 
                        #223-10269  223-10269 
BY$$3 	= 000000	#51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   #51-1747    51-1747    51-1747   
                        #51-1747    51-1747   #51-1748    51-1748   #51-1750    51-1750    51-1750   #51-1750    51-1750   
                        #55-1937    55-1937    55-1937   #55-1937    55-1937   #55-1938    55-1938   #55-1939    55-1939   
                        #55-1940    55-1940   #55-1941    55-1941   #55-1942    55-1942   #55-1943    55-1943   #55-1944   
                         55-1944   #58-2139    58-2139    58-2139   #58-2139    58-2139   #58-2141    58-2141   #85-3855   
                         85-3855   #85-3856    85-3856   #120-5141   120-5141   120-5141  #120-5141   120-5141  #120-5144  
                         120-5144   120-5144  #120-5144   120-5144  #124-5383   124-5383   124-5383  #124-5383   124-5383  
                        #124-5384   124-5384   124-5384  #124-5384   124-5384  #128-5580   128-5580   128-5580  #128-5580  
                         128-5580  #134-5815   134-5815   134-5815  #134-5815   134-5815  #148-6458   148-6458   148-6458  
                        #148-6458   148-6458  #148-6467   148-6467   148-6467  #148-6467   148-6467  #148-6468   148-6468  
                         148-6468  #148-6468   148-6468  #148-6469   148-6469   148-6469  #148-6469   148-6469  #171-7626  
                         171-7626   171-7626  #171-7626   171-7626  #176-7987   176-7987  #176-7989   176-7989   176-7989  
                        #176-7989   176-7989  #176-7990   176-7990   176-7990  #176-7990   176-7990  #181-8171   181-8171  
                        #181-8181   181-8181   181-8181  #181-8181   181-8181  #190-8747   190-8747  #190-8748   190-8748  
                        #190-8749   190-8749  #190-8750   190-8750  #190-8754   190-8754  #190-8757   190-8757   190-8757  
                        #190-8757   190-8757   190-8757  #190-8757   190-8757   190-8757  #190-8757   190-8757   190-8757  
                        #190-8757   190-8757   190-8757  #190-8757   190-8757   190-8757  #190-8757   190-8757  #190-8759  
                         190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759  
                         190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759   190-8759   190-8759  #190-8759  
                         190-8759  #190-8761   190-8761   190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761  
                         190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761   190-8761  #190-8761   190-8761  
                         190-8761  #190-8761   190-8761  #190-8764   190-8764   190-8764  #190-8764   190-8764  #219-10066 
                         219-10066 #223-10265  223-10265  223-10265 #223-10265  223-10265 #223-10267  223-10267  223-10267 
                        #223-10267  223-10267 #223-10269  223-10269  223-10269 #223-10269  223-10269 
BY$$4 	= 000000	#51-1747    51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1747   
                         51-1747   #51-1747    51-1747   #51-1747    51-1747   #51-1748    51-1748   #51-1750    51-1750   
                        #51-1750    51-1750   #55-1937    55-1937   #55-1937    55-1937   #55-1938    55-1938   #55-1939   
                         55-1939   #55-1940    55-1940   #55-1941    55-1941   #55-1942    55-1942   #55-1943    55-1943   
                        #55-1944    55-1944   #58-2139    58-2139   #58-2139    58-2139   #58-2141    58-2141   #85-3855   
                         85-3855   #85-3856    85-3856   #120-5141   120-5141  #120-5141   120-5141  #120-5144   120-5144  
                        #120-5144   120-5144  #124-5383   124-5383  #124-5383   124-5383  #124-5384   124-5384  #124-5384  
                         124-5384  #128-5580   128-5580  #128-5580   128-5580  #134-5815   134-5815  #134-5815   134-5815  
                        #148-6458   148-6458  #148-6458   148-6458  #148-6467   148-6467  #148-6467   148-6467  #148-6468  
                         148-6468  #148-6468   148-6468  #148-6469   148-6469  #148-6469   148-6469  #171-7626   171-7626  
                        #171-7626   171-7626  #176-7987   176-7987  #176-7989   176-7989  #176-7989   176-7989  #176-7990  
                         176-7990  #176-7990   176-7990  #181-8171   181-8171  #181-8181   181-8181  #181-8181   181-8181  
                        #190-8747   190-8747  #190-8748   190-8748  #190-8749   190-8749  #190-8750   190-8750  #190-8754  
                         190-8754  #190-8757   190-8757  #190-8757   190-8757  #190-8757   190-8757  #190-8757   190-8757  
                        #190-8757   190-8757  #190-8757   190-8757  #190-8757   190-8757  #190-8759   190-8759  #190-8759  
                         190-8759  #190-8759   190-8759  #190-8759   190-8759  #190-8759   190-8759  #190-8759   190-8759  
                        #190-8759   190-8759  #190-8761   190-8761  #190-8761   190-8761  #190-8761   190-8761  #190-8761  
                         190-8761  #190-8761   190-8761  #190-8761   190-8761  #190-8761   190-8761  #190-8764   190-8764  
                        #190-8764   190-8764  #219-10066  219-10066 #223-10265  223-10265 #223-10265  223-10265 #223-10267 
                         223-10267 #223-10267  223-10267 #223-10269  223-10269 #223-10269  223-10269 
CCA   	= 000014	#55-1923    55-1938    55-1938   #85-3847    85-3855    85-3855   
CCFAIL	= ******  GX	 167-7403   167-7411  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CDD   	= 000020	#4-176     #8-445     
CECLK 	= 000004	#11-528    
CFGEXT	  005340 R	 80-3601    80-3601   #82-3699   
CFGINM	  001116 R	#79-3577    81-3685   
CFGINT	  005066 R	 80-3596    80-3596   #81-3624   
CFGMAC	  001335 R	#79-3583    83-3749   
CFGMNM	  001264 R	#79-3581    83-3787   
CFGMOS	  005476 R	 80-3606    80-3606   #83-3740   
CFGXMC	  003532 R	 75-3019   #75-3042   
CFGXNM	  001201 R	#79-3579    82-3723   
CFIMIL	  004144 R	 75-3192   #75-3214   
CFIMQ1	  000526 R	#74-2986    75-3036    75-3203   
CFIMQ2	  000646 R	#74-2990    75-3117   
CFIMQ3	  000720 R	#74-2992    75-3121   
CFIMQ4	  000745 R	#74-2994    75-3226   
CFMMQ1	  000603 R	#74-2988    75-3018    75-3206   
CFXMQ1	  001443 R	#87-3925    88-3946   
CFXMQ2	  001514 R	#87-3927    88-3975   
CHKIMC	  004332 R	 77-3345   #77-3356   
CHKMMC	  004556 R	 78-3445   #78-3458   
CHNPNT	= 000001	#4-176     #8-445     
CIMNXC	  001032 R	#76-3303    77-3364    78-3464   
CIMNXM	  001063 R	#76-3305    77-3409    78-3511   
CLRMR 	= 000006	#11-529    
CM    	= 000004	#190-8733   191-8846  
CNUPE 	= 000002	#4-176     #8-445     
CNVCHK	  014264 R	 145-6333   145-6333  #146-6377  
CNVWRD	  014272 R	 145-6311   145-6311   145-6318   145-6318   145-6324   145-6324  #146-6381  
COMCSE	  004754 RG	 75-3070    75-3199    75-3258    88-3957    88-4004    156-6939   157-6976   160-7109   161-7155  
                         163-7211   166-7326   170-7537   172-7692  #181-8185  
CONBUT	= 000012	#11-533    
CONFGR	= ******  GX	*166-7358  *167-7395  
CONFIG	= ******  GX	 167-7432   167-7432  
CONO  	= 000004	#55-1924    55-1939    55-1939   #85-3848    85-3856    85-3856   #176-7976   176-7987   176-7987  
                        #190-8732   190-8747   190-8747   190-8748   190-8748   190-8749   190-8749   190-8754   190-8754  
                        #219-10049  219-10066  219-10066 
CONTI 	= ******  GX	 77-3371    77-3424   *77-3429    81-3656    83-3747   
CR    	= 000015	#181-8156   189-8692  #214-9840   214-9858   217-9995  
CS.EXP	= 177670	#4-176     #8-445     
CTLS  	= 000040	#8-408      8-409      72-2912    143-6109   168-7444   183-8310   183-8314  
CXMDOL	  001400 R	#87-3923    88-3940   
CXMIBM	  001573 R	#87-3929    88-4000   
CYCLS 	= 000002	#4-176     #8-445     
C.ACHE	= 000000	#3-168      55-1918    67-2593    69-2689    69-2757    69-2773    69-2808    73-2923    85-3844   
                         139-5982   159-7078   166-7329   170-7549   176-7986   179-8098   182-8222   182-8238   182-8259  
                         183-8281   186-8477   190-8752   191-8805   220-10116 
DACAB 	  000000 R	#51-1747   *52-1786    52-1789   *52-1791    52-1793   *53-1824    53-1825   
DACAD 	  000012 R	#51-1749    52-1796    53-1831   
DACBF 	  000015 R	#51-1750    54-1870   
DACBI 	  000005 R	#51-1748    52-1792    53-1826   
DATAI 	= 000001	#55-1925    55-1938    55-1938   #85-3849    85-3855    85-3855   
DATAO 	= 000003	#51-1741    51-1748    51-1748   #190-8734   190-8750   190-8750  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DATE  	= 000004	#4-176     #8-445     
DBEFRC	= ******  GX	*166-7349  *167-7413  
DCAPGM	  000023 R	#55-1936    56-1968   
DCARCA	  000040 R	#55-1939   
DCARFL	  000101 R	#55-1946    56-1990    56-2017    56-2019    56-2021    56-2023   
DCASIA	  000033 R	#55-1938   
DCAWRF	  000064 R	#55-1943    56-1973    56-2031   
DCBADR	  000126 R	#58-2132   *61-2258   *61-2261    61-2264    62-2291    62-2299    63-2373   *63-2396    63-2405   
                         63-2428   
DCBAPR	  000202 R	#58-2141    65-2515   
DCBA17	  000177 R	#58-2140    65-2519   
DCBBF 	  000172 R	#58-2139    65-2518   
DCBCBF	  000150 R	#58-2136    62-2305    62-2334    62-2341    62-2347   
DCBCNT	  000144 R	#58-2134   *60-2212    61-2265   *62-2319   *63-2394   *64-2458    64-2459   
DCBDAT	  000130 R	#58-2133    60-2213   
DCBDBF	  000164 R	#58-2137    63-2380    63-2410    63-2416    63-2422   
DCBFIX	  000146 R	#58-2135   *62-2288    62-2317   *62-2320    62-2325   *62-2357   *63-2370    63-2392   *63-2395   
                         63-2400   *63-2432   
DCBFNM	  000106 R	#58-2128    60-2192   
DCFCFN	  000220 R	#67-2580    69-2699    69-2706   
DCFLFN	  000240 R	#67-2585    69-2803   
DCFRJT	  000260 R	#67-2590    67-2599    69-2721   
DCOMST	= 000001	#4-176     #8-445     
DCSRCA	  000277 R	#85-3856    86-3878   
DCSSIA	  000272 R	#85-3855    86-3875   
DDCDAI	  000304 R	#89-4047    90-4071   
DDCDAO	  000320 R	#89-4048    90-4087   
DDCWAT	  000340 R	 89-4048   #89-4049   
DDDDEL	  000406 R	#91-4133    95-4274   
DDDFNA	  000356 R	#91-4132    95-4270   
DDDRNA	  000424 R	#91-4134    95-4279   
DDLACR	  000512 R	#100-4463   101-4494  
DDLFNA	  000462 R	#100-4462   101-4490  
DDLGLN	  000454 R	#100-4461   101-4486  
DDLRAT	  000570 R	 100-4463  #100-4465  
DDLRNA	  000540 R	#100-4464   101-4506  
DDNACE	  000664 R	#102-4550   103-4584  
DDNCRE	  000610 R	#102-4548   103-4576  
DDNDEL	  000712 R	#102-4551   103-4598  
DDNENA	  000634 R	#102-4549   103-4580  
DDNGLN	  000602 R	#102-4547   103-4572  
DDNRAT	  000726 R	 102-4550  #102-4552  
DDPDAI	  000740 R	#104-4636   105-4653  
DDPDAO	  000770 R	#104-4638   105-4658  
DDPDEL	  000754 R	#104-4637   105-4657  
DDPRNA	  001004 R	#104-4639   105-4663  
DDXEXT	  001034 R	#118-5078   119-5091  
DEP   	= 010000	#4-176     #8-445     
DEX   	= 000400	#4-176     #8-445     
DEXDON	= 000004	#4-176     #8-445     
DEXWD1	= 174406	#4-176     #8-445     
DEXWD2	= 174404	#4-176     #8-445     
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DEXWD3	= 174402	#4-176     #8-445     
DFCABF	  001107 R	#120-5144   123-5331  *123-5347  *123-5349  
DFCBF 	  001100 R	#120-5141   121-5168   121-5176  *121-5182   121-5183   121-5184  *121-5184  *121-5199  *121-5200  
                         121-5202  *121-5207  *121-5208  *121-5209  *121-5210  *121-5211   121-5212   122-5241   122-5245  
                         122-5246  *122-5265  *122-5266   122-5267   122-5291   122-5292   122-5296  
DFCFL2	  001105 R	#120-5142   122-5269  *122-5273  *122-5294  
DFCFL3	  001106 R	#120-5143   122-5287  *122-5289  *122-5293  
DFCRFL	  001060 R	#120-5132   122-5239  
DFCWFL	  001070 R	#120-5136   121-5201  
DFDABF	  001121 R	#124-5384   127-5510   127-5511   127-5534  
DFDDBF	  001114 R	#124-5383  *125-5437   125-5438   126-5464  
DFEAD 	  001152 R	 128-5576   128-5577  #128-5578   129-5617   130-5660   131-5676   131-5681  
DFEBF 	  001156 R	 128-5576   128-5577  #128-5580   129-5612   129-5617   130-5660   130-5663  
DFEDPB	  001126 R	#128-5576   129-5618  
DFEEXB	  001140 R	#128-5577   130-5659  
DFRRDB	  001164 R	#132-5738  *133-5763   133-5764   133-5765  
DFUNC 	= 000200	#4-176     #8-445     
DFWBF 	  001222 R	 134-5814  #134-5815  
DFWEDB	  001210 R	#134-5814   136-5869  
DFWWDB	  001176 R	#134-5813  *135-5841   135-5851   135-5852  
DFXXDB	  001230 R	#137-5914  *138-5946   138-5947   138-5948  
DF.DMG	= 000004	#4-176     #8-445     
DF.DMN	= 000007	#4-176     #8-445     
DF.DOR	= 000001	#4-176     #8-445     
DF.EHG	= 000010	#4-176     #8-445     
DF.EHM	= 000011	#4-176     #8-445     
DF.EMG	= 000005	#4-176     #8-445     
DF.EMN	= 000006	#4-176     #8-445     
DF.KLR	= 000012	#4-176     #8-445      132-5738  
DF.KLW	= 000013	#4-176     #8-445      134-5813  
DF.KLX	= 000014	#4-176     #8-445      137-5914  
DF.OFF	= 000002	#4-176     #8-445     
DF.ON 	= 000003	#4-176     #8-445     
DF.PDP	= 000016	#4-176     #8-445      128-5576  
DF.PEX	= 000015	#4-176     #8-445      128-5577   134-5814  
DGCFNM	  001242 R	#139-5986   140-6009  
DGMFNM	  001262 R	#142-6085   143-6117  
DIAG1 	= 174430	#4-176     #8-445     
DIAG2 	= 174432	#4-176     #8-445     
DIAG3 	= 174436	#4-176     #8-445     
DIKL10	= 000010	#4-176     #8-445     
DLYCNT	= 174400	#4-176     #8-445     
DM    	= 000002	#190-8735   191-8846  
DMABM 	= ******  GX	*82-3734   
DMANXM	= ******  GX	 82-3720    88-3998   
DMA2TS	= ******  GX	 82-3714    88-3938   
DMA20 	= ******  GX	 80-3599    88-3936    168-7469  
DMRBF 	  001420 R	#148-6467   149-6505  
DMRKW2	  001432 R	 148-6438  #148-6469  
DMRMMR	  001400 R	 148-6456  #148-6458  
DMRMOS	  001425 R	#148-6468   149-6532  
DMRMRT	  001306 R	#148-6439   149-6497  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 8

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DMRSRL	= 000005	#148-6466   149-6544  
DMRSRT	  001406 R	#148-6461   148-6466   149-6545  
DNILPO	  001460 R	#150-6621   151-6667  
DNISYF	  001510 R	#150-6628   151-6676  
DNISYI	  001470 R	#150-6624   151-6672  
DNISYO	  001500 R	#150-6626   151-6674  
DNITTI	  001440 R	#150-6616   151-6662  
DNITTO	  001450 R	#150-6618   151-6664  
DON10C	= 040000	#4-176     #8-445      149-6493  
DON10S	= 100000	#4-176     #8-445     
DON11C	= 000100	#4-176     #8-445      149-6493  
DON11S	= 000200	#4-176     #8-445     
DPS4  	= 040000	#4-176     #8-445     
DQBFNM	  001520 R	#155-6872   158-6998  
DQSAPR	  001570 R	#171-7625   175-7868   175-7871   175-7874   175-7878  
DQSCBF	  001540 R	#171-7621   176-7921   176-7937  
DQSCF3	  001554 R	#171-7623   176-7925  
DQSHWT	  001576 R	#171-7628   174-7820  
DRESET	= 000100	#4-176     #8-445      149-6490  
DRSCEN	  001612 R	#176-7987   179-8104  
DRSPEN	  001624 R	#176-7990   179-8111  
DRSPFR	  001631 R	#176-7991   177-8021  
DRSPLD	  001617 R	#176-7989   179-8108  
DRSSCR	  001634 R	#176-7993   178-8052  
DRTBF 	  002004 R	#181-8180   189-8668   189-8679  
DRTBUF	  001674 R	 181-8175  #181-8178   189-8651   189-8657   189-8694  
DRTDTE	  022206 R	 187-8577   187-8581   187-8585  #187-8589  
DRTSTA	  001670 R	 181-8175  #181-8176  
DRTWLB	  001646 R	#181-8174  *189-8695   189-8696  
DRTX71	  001640 R	#181-8170   186-8459  
DR.DTE	= 000011	#4-176     #8-445      128-5576   128-5577   132-5738   134-5813   134-5814   137-5914  
DSEND 	= 000004	#4-176     #8-445     
DSTBF 	  002062 R	#190-8763   191-8841  
DSTCEN	  002036 R	#190-8753  
DSTRT 	  002012 R	#190-8746   190-8751   191-8799  
DSTRTL	= 000004	#190-8751   191-8798  
DST1B0	  002043 R	#190-8756   191-8821  
DST1B1	  002050 R	#190-8758   191-8835  
DST3B1	  002055 R	#190-8760   191-8825  
DS04  	= 004000	#4-176     #8-445      178-8061  
DS05  	= 002000	#4-176     #8-445      225-10354 
DS06  	= 001000	#4-176     #8-445      131-5698   178-8064   225-10348  226-10385  228-10447 
DTECMD	= 000451	#4-176     #8-445     
DTEFLG	= 000444	#4-176     #8-445     
DTEF11	= 000450	#4-176     #8-445     
DTEMTD	= 000455	#4-176     #8-445     
DTEMTI	= 000456	#4-176     #8-445     
DTNRB 	  002132 R	#202-9348   207-9507  
DTNXP 	  002124 R	#202-9347  
DTTRLB	  002140 R	#214-9850   215-9883  
DTTSTA	  002202 R	 214-9850   214-9851  #214-9852   215-9884   215-9885  
DTTWLB	  002160 R	#214-9851  *215-9880  *215-9881   215-9882  *215-9889  *215-9890   215-9891  *217-9999  *217-10000 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 9

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        *218-10015 *218-10016  218-10017 
DUPE  	= 000020	#4-176     #8-445     
DURE  	= 000004	#4-176     #8-445     
DXBADR	  002226 R	#219-10061  220-10130 
DXBCNM	  002240 R	#219-10065  220-10133 
DXBDAT	  002232 R	#219-10063  220-10129 
DXBFNM	  002206 R	#219-10056  220-10119 
DXCAD 	  002246 R	#223-10264  225-10327  225-10332 
DXCBF 	  002253 R	#223-10266  229-10492 
DXCBRC	  002260 R	#223-10268  230-10545 
DXWRD1	= 002000	#4-176     #8-445     
D$$H11	= 000010	#1-45      
D1011 	= 000040	#4-176     #8-445     
EBSEL 	= 000100	#4-176     #8-445     
EBUSPC	= 000020	#4-176     #8-445     
EBUSPS	= 000004	#4-176     #8-445     
EDONES	= 040000	#4-176     #8-445     
ED.PHY	= 000200	#8-401      128-5576   128-5577   134-5814  
EF.CRI	= ******  GX	 151-6709  
EF.PR1	= ******  GX	 151-6701  
EPTR  	= 000000	#4-176     #8-445     
ERRORX	  017426 R	 167-7389   167-7429  #167-7437  
ERR10C	= 010000	#4-176     #8-445      149-6493  
ERR10S	= 020000	#4-176     #8-445     
ERR11C	= 000001	#4-176     #8-445      149-6493  
ERR11S	= 000002	#4-176     #8-445     
FITMEM	= ******  GX	 167-7422   167-7422  
FM    	= 000010	#190-8736   191-8846  
FMRECN	= ******  GX	*167-7374  *167-7393  
FORPRO	= 000020	#4-176     #8-445     
FS    	= 000001	#190-8737  
F.TRCK	= 000000	#3-170      121-5162   122-5231   123-5328   125-5402   126-5455   127-5509   129-5617   130-5660  
                         133-5765   135-5852   138-5947   149-6486   149-6543   150-6620   151-6666   181-8173   182-8230  
                         188-8632   215-9869   215-9897   224-10294  225-10326  226-10379  228-10432 
GAPCNT	= ******  GX	 167-7424  
GAPTAB	= ******  GX	 167-7426  
G.LUBA	= 000004	#100-4461  #102-4547  
G.LULU	= 000002	#100-4461  #102-4547  
G.LUNA	= 000000	 100-4461   102-4547  
HDTAB 	  002074 R	#198-9143   200-9262  
HIBYTE	= 177400	#4-176     #8-445     
HRR   	= 000540	#55-1926    55-1941    55-1941   
H.KCAC	= ******  GX	 175-7884  
H.KEXT	= ******  GX	 175-7895  
H.KMOS	= ******  GX	 175-7889  
H.KPWR	= ******  GX	 174-7811   174-7822  
H.KUDF	= ******  GX	 174-7822  
IE.DFU	= ******  GX	 98-4382   
IE.EBX	= ******  GX	 136-5871  
IE.EOF	= ******  GX	 117-5035   215-9887  
IE.NSF	= ******  GX	 60-2219    69-2702    98-4378    101-4503   101-4507   140-6012   143-6120   145-6254   158-7001  
                         220-10139 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 10

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

IE.UPN	= ******  GX	 178-8071  
IFLOP 	= 100000	#4-176     #8-445     
INIDMA	= ******  GX	 82-3705   
INTMOD	= ******  GX	*81-3674   
INTROF	= 000010	#4-176     #8-445     
INTRON	= 000040	#4-176     #8-445     
INTSON	= 000001	#4-176     #8-445     
INT10S	= 000400	#4-176     #8-445     
INT11C	= 002000	#4-176     #8-445      149-6493  
INT11S	= 004000	#4-176     #8-445     
IO.ACE	= ******  GX	 102-4550  
IO.ACR	= ******  GX	 100-4463  
IO.CRE	= ******  GX	 102-4548  
IO.DAC	= ******  GX	 89-4047    89-4048    104-4636   104-4638  
IO.DEL	= ******  GX	 91-4133    102-4551   104-4637  
IO.ENA	= ******  GX	 102-4549  
IO.EXT	= ******  GX	 118-5078  
IO.FNA	= ******  GX	 91-4132    100-4462   151-6685  
IO.RLB	= ******  GX	 214-9850  
IO.RNA	= ******  GX	 91-4134    100-4464   104-4639  
IO.RVB	= ******  GX	 111-4840  
IO.WLB	= ******  GX	 181-8175   214-9851  
IO.WVB	= ******  GX	 117-5025  
IS.CR 	= ******  GX	 215-9894  
IS.ESC	= ******  GX	 215-9892  
I.10L 	= 000005	#6-296      190-8751   191-8803  
JCOMM 	  002070 R	#198-9141  *200-9254   200-9273  
JRST  	= 000254	#55-1927    55-1944    55-1944   
JUMPE 	= 000322	#55-1928    55-1940    55-1940   
KEEPBB	= ******  GX	*166-7296  
KLI$$E	= 000012	#2-135      150-6638   180-8119  
KLI$$F	= 000101	#3-161      58-2092    74-2950    76-3263    79-3540    87-3888    141-6052   144-6183   150-6554  
                         150-6638   162-7160   164-7240   176-7943   180-8119  
KLI$$K	= 000126	#2-139      150-6638  
KLI$$V	= 000012	#2-134      150-6638   180-8119  
KLPWRF	= 000010	#4-176     #8-445     
KL.CFL	= ******  GX	 160-7115   166-7362  
KL.CFM	= ******  GX	 166-7344  
KL.DEF	= ******  GX	 170-7543  
KL.KAC	= ******  GX	 151-6670   186-8456   228-10450 
KL.LCA	= ******  GX	 160-7112  
KL.LRM	= ******  GX	 170-7541  
KL.LVB	= ******  GX	 158-7005   167-7409   220-10113 
KL.SPF	= ******  GX	 163-7221   166-7294   167-7408   170-7543  
KL.SSC	= ******  GX	 163-7224  
KL.VBD	= ******  GX	 167-7408   191-8819   191-8829  
KL.VBN	= ******  GX	 167-7409   191-8817  
LCARPT	  000754 R	 56-2056   #57-2065   
LCBCRM	  001322 R	 61-2263   #62-2288   
LCBDRM	  001652 R	 61-2260   #63-2370    63-2398   
LCBFL 	  002312 R	 60-2222    61-2273    62-2359    63-2434   #64-2491   
LCBRC 	  001222 R	 60-2216   #61-2256    62-2324    63-2399   
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 11

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LCBRME	  002172 R	 62-2332    62-2332    63-2407    63-2407   #64-2448   
LCBVFY	  002246 R	 62-2337    62-2337    62-2340    62-2340    62-2350    62-2350    63-2412    63-2412    63-2415   
                         63-2415    63-2425    63-2425   #64-2474   
LCBVR 	  002344 R	 61-2272   #65-2504   
LCB3W 	  001172 R	#60-2235    63-2371    63-2371   
LCB6W 	  001200 R	#60-2237    62-2300    62-2300   
LCFCPY	  002646 R	 69-2719   #69-2732    69-2754    69-2763   
LCFERR	  003074 R	 69-2703    69-2708   #69-2822   
LCFNXT	  002614 R	#69-2714    69-2742    69-2771   
LCFPRG	  003070 R	 69-2716    69-2736    69-2739    69-2744    69-2746    69-2770    69-2781    69-2790    69-2795   
                         69-2798    69-2800   #69-2820   
LCFRBF	  002720 R	 67-2598   #69-2752   
LCFRCA	  002730 R	 67-2594   #69-2761   
LCFREF	  002746 R	 67-2591    69-2710   #69-2777   
LCFRMM	  002640 R	 67-2592   #69-2726   
LCFRTN	  003066 R	 69-2686    69-2696   #69-2815   
LCFSKP	  002736 R	 69-2728    69-2755   #69-2768   
LCFWBF	  003110 R	 69-2794    69-2794   #70-2837   
LCFWCA	  003354 R	 69-2780    69-2780   #73-2925   
LCFWEF	  003224 R	 69-2797    69-2797   #71-2872   
LCFWMM	  003246 R	 69-2789    69-2789   #72-2888   
LCTL  	= 000037	#8-409     
LDAR  	= 000077	#11-534    
LDEIDV	  007000 R	 98-4404    98-4404   #99-4421   
LDRER 	  007722 R	 107-4723   109-4779   110-4805  #110-4817  
LDWER 	  010164 R	 113-4908   114-4934  #114-4945   115-4971   116-4998  
LF    	= 000012	#181-8157   189-8693  #214-9841   214-9858   217-9996  
LFCSAB	  011536 R	 123-5332   123-5332   123-5340   123-5340  #123-5346  
LFDWFN	  011722 R	 125-5422   125-5432   125-5432  #125-5437  
LFECKN	  012616 R	 129-5610   129-5610   130-5657   130-5657  #131-5688  
LFEMVA	  012572 R	 129-5609   129-5609   130-5656   130-5656  #131-5676  
LFWCKF	  013140 R	 135-5838   135-5838  #136-5865  
LMRDFN	  014546 R	 149-6502   149-6502   149-6515   149-6515  #149-6521  
LOAD11	= 000004	#4-176     #8-445     
LPOLUN	= 000003	#8-404      181-8175  
LQBRBF	  016000 R	 156-6916   156-6916  #158-6997  
LQCCM 	  016356 R	 160-7104  #161-7122   161-7156  
LQRBPS	  017764 R	 170-7555   170-7555  #170-7575   170-7578  
LQSBPS	  020304 R	 172-7719   172-7719  #173-7762   173-7766  
LQSCHE	  020620 R	 172-7733   172-7733   174-7784   174-7786  #174-7848  
LQSCHO	  020574 R	 172-7737   172-7737   174-7790  #174-7839  
LQSHDW	  020640 R	 172-7731   172-7731   174-7785   174-7785  #175-7862  
LQSHWE	  020330 R	 172-7704   172-7704  #174-7781  
LQSHWO	  021042 R	 175-7869   175-7869  #176-7917  
LRSTKL	  021500 R	 177-8020   177-8020   178-8051   178-8051  #179-8097  
LTNCHR	  024424 R	 205-9455   205-9455   206-9482   206-9482   206-9489   206-9489  #207-9545  
LTNMV 	  024364 R	 205-9449   205-9449   206-9477   206-9477  #207-9506  
LTNROL	  024410 R	 205-9453   205-9453   206-9480   206-9480   206-9487   206-9487  #207-9525   207-9529  
LTTDIR	  025532 R	 217-10001 #218-10017 
LXBRC 	  025700 R	 220-10135 #221-10163  222-10229 
LXB5B 	  025656 R	#220-10148  222-10219  222-10219 
L$$P20	= 000002	#1-39      
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 12

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

MABRD 	= ******  GX	*81-3678   
MA20  	= ******  GX	 75-3028    80-3591    168-7472  
MBINI 	= ******  GX	 166-7293   166-7293  
MB20  	= ******  GX	 75-3030    80-3593    168-7474  
MF20  	= ******  GX	 75-3013    80-3604    167-7399  
MPE11 	= 001000	#4-176     #8-445     
MXTYP 	= 000003	#67-2575    67-2599    69-2718   
NULSTP	= 000040	#4-176     #8-445     
NUPE  	= 000002	#4-176     #8-445     
PAG   	= 000010	#51-1742    51-1748    51-1748   #55-1929    55-1939    55-1939   #85-3850    85-3856    85-3856   
                        #176-7977   176-7987   176-7987  #190-8738   190-8749   190-8749   190-8750   190-8750   190-8754  
                         190-8754  
PAGE  	= 001000	#219-10050  219-10051 
PCERRM	  003107 R	#152-6747   153-6806  
PERCLR	= 001000	#4-176     #8-445      149-6493  
PGBTS 	= 000777	#219-10051  221-10177  222-10202  222-10206 
PHYS  	= 100000	#4-176     #8-445     
PI    	= 000004	 11-537     11-541    #190-8739   190-8748   190-8748  
PIDENT	= 000000	#4-176     #8-445     
PRI7  	= 000340	#4-176     #8-445     
PROPNT	= 000021	#4-176     #8-445     
PRTOFF	= 004000	#4-176     #8-445     
PR0   	= 000000	#4-176     #8-445     
PR1   	= 000040	#4-176     #8-445     
PR2   	= 000100	#4-176     #8-445     
PR3   	= 000140	#4-176     #8-445     
PR4   	= 000200	#4-176     #8-445     
PR5   	= 000240	#4-176     #8-445     
PR6   	= 000300	#4-176     #8-445     
PR7   	= 000340	#4-176     #8-445     
PS    	= 177776	#4-176     #8-445     
PSWW1 	= 000005	#4-176     #8-445     
PSWW10	= 000014	#4-176     #8-445     
PSWW11	= 000015	#4-176     #8-445     
PSWW12	= 000016	#4-176     #8-445     
PSWW13	= 000017	#4-176     #8-445     
PSWW2 	= 000006	#4-176     #8-445     
PSWW3 	= 000007	#4-176     #8-445     
PSWW4 	= 000010	#4-176     #8-445     
PSWW5 	= 000011	#4-176     #8-445     
PSWW6 	= 000012	#4-176     #8-445     
PSWW7 	= 000013	#4-176     #8-445     
PULSE 	= 000020	#4-176     #8-445     
QSIZE 	= 000023	#4-176     #8-445     
Q.IOAE	= 000012	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        #214-9850  #214-9851  
Q.IOEF	= 000006	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        #214-9850  #214-9851  
Q.IOFN	= 000002	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 13

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #214-9850  #214-9851  
Q.IOLU	= 000004	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        #214-9850  #214-9851  
Q.IOPL	= 000014	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        *189-8695  #214-9850  #214-9851  *215-9880  *215-9881  *215-9889  *215-9890  *217-9999  *217-10000 
                        *218-10015 *218-10016 
Q.IOPR	= 000007	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        #214-9850  #214-9851  
Q.IOSB	= 000010	#89-4047   #89-4048   #91-4132   #91-4133   #91-4134   #100-4462  #100-4463  #100-4464  #102-4548  
                        #102-4549  #102-4550  #102-4551  #104-4636  #104-4637  #104-4638  #104-4639  #118-5078  #181-8175  
                        #214-9850  #214-9851  
RAMIS0	= 010000	#4-176     #8-445     
RDATIM	  014024 RG	#145-6244  
RDDONE	= ******  GX	*81-3679   
REPCON	= ******  GX	 167-7376   167-7376  
REPFIT	= ******  GX	 167-7423   167-7423  
RESDET	= ******  GX	 167-7375   167-7375   167-7396   167-7396   167-7414   167-7414   167-7421   167-7421  
RFMAD0	= 100000	#4-176     #8-445     
RFMAD1	= 040000	#4-176     #8-445     
RFMAD2	= 020000	#4-176     #8-445     
RFMAD3	= 010000	#4-176     #8-445     
RM    	= 000010	#4-176     #8-445     
RTFERR	  014244 R	 145-6285   145-6299  #146-6350   146-6387  
RTFERX	  014254 R	 145-6292   145-6338  #146-6355  
RTFXIT	  014260 R	 145-6257   145-6312   145-6319   145-6325   145-6334  #146-6357  
R$$11D	= 000001	#1-48      
SCD   	= 000040	#4-176     #8-445     
SECLK 	= 000003	#11-527    
SETIMF	  000270 R	#76-3298   *77-3344   *77-3352    77-3391    77-3427   
SETMMF	  000271 R	#76-3300   *78-3444   *78-3451    78-3492    78-3522   
SETMR 	= 000007	#11-530    
SETRUN	= 000011	#11-532    
SETZ  	= 000400	#55-1930    55-1942    55-1942   
SPC   	= 000040	#181-8158   189-8656  
SSCLK 	= 000002	#11-526    
STAT  	= 174434	#4-176     #8-445     
STATUS	= 000022	#4-176     #8-445     
STPCLK	= 000000	#11-524    
STPKL 	  026570 R	 227-10408  227-10408 #228-10431 
STRCLK	= 000001	#11-525    
SWITCH	  002072 R	#198-9142  *200-9255   200-9287  *200-9289  
SWR   	= 177570	#4-176     #8-445     
SWSLLT	= 100000	#4-176     #8-445     
SYFLUN	= 000006	#8-407      91-4132    91-4133    91-4134    100-4462   100-4464   102-4548   102-4549   104-4639  
                         150-6629  
SYILUN	= 000004	#8-405      89-4047    100-4461   100-4463   104-4636   111-4840   150-6625   151-6685  
SYOLUN	= 000005	#8-406      89-4048    102-4547   102-4550   102-4551   104-4637   104-4638   117-5025   118-5078  
                         150-6627  
S.YIL 	= 001000  G	 111-4840  #185-8387   185-8393   185-8401   185-8409  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 14

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

S.YOL 	= 001000  G	 103-4592   114-4936   117-5025   117-5032  #185-8403   185-8417  
TAB   	= 000011	#181-8159   189-8653  
TCAACD	  000077 R	#55-1952    57-2065   
TCAACE	  000026 R	#55-1950    57-2068   
TCACEF	  000000 R	#55-1949    56-2057   
TCASCE	  000051 R	#55-1951    57-2071   
TCBBAD	  000410 R	#58-2152    62-2335    63-2411   
TCBDCW	  000117 R	#58-2145    62-2331   
TCBDDW	  000151 R	#58-2146    63-2406   
TCBFXF	  000265 R	#58-2149    62-2327    63-2402   
TCBGOD	  000416 R	#58-2153    62-2339    63-2414   
TCBMLF	  000203 R	#58-2147    64-2491   
TCBMVF	  000233 R	#58-2148    64-2494   
TCBMVL	  000314 R	#58-2150    65-2506   
TCBMVV	  000351 R	#58-2151    65-2508   
TCBXOR	  000424 R	#58-2154    62-2348    63-2423   
TCFCFA	  000432 R	#67-2603    69-2806   
TCFCFE	  000465 R	#67-2605    69-2823   
TDEDFU	  002050 R	#97-4353    98-4380   
TDEDR 	  001616 R	#97-4350    98-4371   
TDEIO 	  001710 R	#97-4351    98-4384   
TDENSF	  001774 R	#97-4352    98-4376   
TDRRDE	  002075 R	#106-4701   111-4849  
TDRRLE	  002112 R	#106-4703   110-4818  
TDWRLE	  002164 R	#112-4889   114-4946  
TDWWRE	  002146 R	#112-4887   117-5041  
TENAD1	= 174410	#4-176     #8-445     
TENAD2	= 174412	#4-176     #8-445     
TFEDFL	  002221 R	#128-5583   129-5620  
TFEEFL	  002242 R	#128-5584   130-5668  
TFREMS	  002263 R	#132-5741   133-5776  
TFWEMS	  002304 R	#134-5818   135-5854  
TFXEMS	  002326 R	#137-5917   138-5951  
TGCNFL	  002352 R	#139-5991   140-6014  
TGMNFL	  002421 R	#142-6091   143-6122  
TGTCKE	  002471 R	#144-6216   145-6337  
TGTIFF	  002561 R	#144-6220   145-6291  
TGTNFL	  002533 R	#144-6218   145-6256  
TGTRFE	  002623 R	#144-6222   146-6351  
TMFLNM	= ******  GX	 145-6246  
TMRMFL	  002661 R	#148-6472   149-6517  
TNINDV	  002707 R	#150-6631   151-6679  
TNIN55	  002734 R	#150-6633   151-6690  
TNIPRI	  002772 R	#150-6635   151-6705  
TNIVER	  003056 R	#150-6637   151-6712  
TOBM  	= 000004	#4-176     #8-445     
TOD   	= 000003	#4-176     #8-445     
TOIP  	= 000002	#4-176     #8-445     
TOIT  	= 000001	#4-176     #8-445     
TO10  	= 000200	#4-176     #8-445     
TO10AD	= 174420	#4-176     #8-445     
TO10BC	= 174414	#4-176     #8-445     
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 15

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TO10BM	= 000001	#4-176     #8-445     
TO10DB	= 000400	#4-176     #8-445     
TO10DN	= 100000	#4-176     #8-445     
TO10DT	= 174424	#4-176     #8-445     
TO10ER	= 020000	#4-176     #8-445     
TO11  	= 000100	#4-176     #8-445     
TO11AD	= 174422	#4-176     #8-445     
TO11BC	= 174416	#4-176     #8-445     
TO11BM	= 020000	#4-176     #8-445     
TO11DB	= 004000	#4-176     #8-445     
TO11DN	= 000200	#4-176     #8-445     
TO11DT	= 174426	#4-176     #8-445     
TO11ER	= 000002	#4-176     #8-445     
TQBNFL	  003245 R	#155-6869   158-7008  
TQBOOT	  003130 R	#155-6865   156-6900  
TQBWCF	  003202 R	#155-6867   157-6965  
TQCACH	  003303 R	#159-7082   160-7094  
TQCCEN	  003350 R	#159-7083   161-7122  
TQEXIT	  003414 R	#162-7189   163-7200  
TQMCF0	  003440 R	#165-7278   166-7302  
TQMCF1	  003517 R	#165-7280   166-7305  
TQMNM0	  003604 R	#165-7282   167-7428  
TQMPCA	  003641 R	#165-7284   167-7410  
TQRLMC	  003746 R	#169-7511   170-7522  
TQSABO	  004377 R	#171-7658   172-7748  
TQSCAC	  004260 R	 171-7633  #171-7652  
TQSCDH	  004270 R	#171-7654   174-7849  
TQSCHN	  004234 R	 171-7632  #171-7650  
TQSDLG	  004014 R	#171-7636   172-7675  
TQSEXT	  004206 R	 171-7631  #171-7648  
TQSHRZ	  004113 R	#171-7642   174-7816  
TQSHWP	  004123 R	#171-7644   174-7818  
TQSKSN	  004055 R	#171-7638   174-7792  
TQSMDL	  004100 R	#171-7640   174-7796  
TQSMMA	  004432 R	#171-7660   174-7844  
TQSMMO	  004156 R	 171-7630  #171-7646  
TQSWRN	  004344 R	#171-7656   172-7708   172-7740  
TROCT 	  024064 R	 199-9195   199-9195   199-9198   199-9198   199-9211   199-9211   199-9212   199-9212   200-9267  
                         200-9267   200-9282   200-9282  #201-9308  
TRSCES	  004544 R	#176-7999   178-8060  
TRSDER	  004676 R	#176-8002   178-8050   178-8057   178-8068  
TRSHLT	  004611 R	#176-8000   178-8063  
TRSPRF	  004510 R	#176-7997   177-8028  
TRSRSM	  004737 R	#176-8004   177-8025   178-8083  
TRSTMO	  004642 R	#176-8001   178-8079  
TRTBTF	  005037 R	#181-8189   186-8531  
TRTEND	  005144 R	#181-8193   186-8549  
TRTFME	  005067 R	#181-8191   186-8544  
TRTMMF	  005001 R	#181-8187   186-8505  
TSTBSM	  005146 R	#190-8769   191-8861  
TTA   	  002104 R	 198-9146  #198-9147  
TTB   	  002110 R	 198-9145  #198-9148  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 16

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TTBEL 	  005206 R	#214-9857   216-9922  
TTILUN	= 000001	#8-402      150-6617   214-9850  
TTJ   	  002120 R	 198-9143  #198-9150  
TTOLUN	= 000002	#8-403      150-6619   150-6622   214-9851  
TTP   	  002114 R	 198-9144  #198-9149  
TTSLS 	  005205 R	#214-9856  
TTSPC 	  005203 R	#214-9854   216-9917  
TTTAB 	  005204 R	#214-9855   216-9934  
TTTNLN	  005207 R	#214-9858   215-9889   216-9939  
TTTPR 	  000207 R	#58-2142    64-2475   
TTTPRE	  005215 R	#214-9860   217-9991  
TTTPRP	  005211 R	#214-9859   215-9880  
TXBIMM	  005226 R	#219-10069  221-10194 
TXCHLE	  005272 R	#223-10272  228-10471 
TXCSFL	  005322 R	#223-10274  225-10360 
TYPNUM	= ******  GX	 75-3099    75-3115    77-3360    77-3362   *77-3393    78-3462   *78-3499    81-3633    81-3635   
                         81-3644    81-3651    82-3703    82-3708    83-3755    83-3760    168-7447  
T.TIL 	= 000040  G	#184-8356   184-8358   214-9850  
T.TOL 	= 000111  G	#184-8359   184-8361  
UNASG1	= 000032	#4-176     #8-445     
UNASG2	= 000033	#4-176     #8-445     
UNASG3	= 000034	#4-176     #8-445     
UNASG4	= 000035	#4-176     #8-445     
UNASG5	= 000036	#4-176     #8-445     
UNASG6	= 000037	#4-176     #8-445     
WEP   	= 000010	#4-176     #8-445     
W.10L 	= 000005	#6-297     
XCONMP	= ******  GX	 167-7405  
XCT   	= 000256	#181-8161   181-8171   181-8171  
ZSTOP 	= 040000	#4-176     #8-445     
$ACRAM	  011430 RG	 61-2267    61-2267    121-5164   121-5164   122-5232   122-5232  #123-5327  
$ADRAM	  012146 RG	 125-5407   125-5407   126-5459   126-5459  #127-5508  
$APRID	= 000000	#11-538    
$ASCIZ	  022276 RG	#188-8625   188-8627   217-9992   217-9992   217-9994   217-9994  
$BURST	  027150 RG	 54-1867    54-1867    228-10443  228-10443  229-10525 #230-10540 
$CD11 	= 000001	#1-40      
$CFGBT	  021756 RG	 157-6992   172-7742  #186-8511  
$CFGCA	  021702 RG	 160-7118   161-7152   161-7154  #186-8484  
$CFGMM	  017172 RG	 166-7367  #167-7385  
$CFGRM	  021670 RG	 170-7569  #186-8474  
$CFGXX	  017344 RG	 75-3022    75-3193   #167-7418  
$CFIMD	  003474 RG	#75-3027    75-3255    168-7454  
$CFMMD	  003442 RG	#75-3012    168-7460  
$CFXMD	  006006 RG	#88-3935    168-7457  
$CHKIM	  004326 RG	 75-3179    75-3179   #77-3351   
$CHKMM	  004552 RG	 75-3184    75-3184   #78-3450   
$CLOSE	  006320 RG	 61-2271    61-2271    69-2799    69-2799   #90-4069    140-6032   140-6032   140-6045   143-6139  
                         143-6139   143-6175   145-6344   146-6356   146-6356   158-7020   158-7020   158-7044   221-10192 
                         221-10192 
$CONFG	  004756 RG	#80-3589    167-7419   167-7419  
$DBDTE	= 000001	#1-46      
$DDFRD	  012702 RG	#133-5757  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 17

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$DDFWR	  013014 RG	#135-5833  
$DDFXC	  013216 RG	#138-5931  
$DELET	  006456 RG	 69-2804    69-2804   #95-4269   
$DFPC 	  015256 RG	#153-6772  
$DFRD 	  012706 RG	 54-1872    54-1872    122-5242   122-5242   122-5297   122-5297   126-5466   126-5466   126-5474  
                         126-5474   126-5487   126-5487  #133-5760   149-6507   149-6507   153-6787   153-6787   176-7935  
                         176-7935   221-10188  221-10188  229-10495  229-10495  229-10500  229-10500  229-10505  229-10505 
                         229-10520  229-10520 
$DFWR 	  013020 RG	 54-1887    54-1887    121-5203   121-5203   121-5214   123-5334   123-5334   123-5342   123-5342  
                         125-5439   127-5536   127-5536  #135-5836   149-6534   149-6534   179-8110   179-8110   179-8113  
                         179-8113   191-8844   191-8844   191-8848   191-8848   227-10414  230-10551  230-10551  230-10554 
                         230-10554  230-10567  230-10567  230-10573  230-10573 
$DFXC 	  013222 RG	 54-1864    54-1864    54-1877    54-1877    54-1883    54-1883    54-1890    61-2270    61-2270   
                         122-5235   122-5235   126-5462   126-5462   127-5539   131-5693   131-5693   136-5876   136-5876  
                        #138-5934   149-6488   149-6488   149-6512   149-6512   149-6524   149-6524   149-6547   149-6547  
                         175-7866   175-7866   176-7929   176-7929   176-7931   176-7931   179-8115   186-8463   186-8463  
                         186-8466   186-8466   191-8851   191-8851   224-10298  224-10298  224-10301  224-10301  225-10336 
                         225-10336  225-10339  225-10339  225-10344  225-10344  225-10357  228-10435  228-10435  228-10455 
                         228-10455  228-10462  228-10462  228-10465  228-10465  229-10511  229-10511  230-10543  230-10543 
                         230-10557  230-10557  230-10576 
$DH11 	= 000001	#1-44      
$DLGBT	  015456 RG	#156-6893   157-6975   186-8499  
$DLGBV	  021732 RG	 166-7353  #186-8498  
$DLGCA	  016200 RG	#160-7088   161-7133   170-7550   186-8479  
$DLGCT	  017432 RG	 167-7377   167-7417  #168-7443  
$DLGCV	  021676 RG	 166-7333  #186-8478  
$DLGEN	  020010 RG	 163-7218   170-7539  #172-7666   186-8472   186-8535  
$DLGEX	  016534 RG	 157-6989  #163-7195   186-8527  
$DLGIM	  017456 RG	#168-7453   168-7473   168-7475  
$DLGMB	  017472 RG	 75-3061   #168-7462   168-7476  
$DLGMF	  017466 RG	 88-4010   #168-7459  
$DLGMM	  016670 RG	 160-7114  #166-7290   168-7463   186-8494   186-8555  
$DLGMV	  021724 RG	 156-6913  #186-8493  
$DLGMX	  021730 RG	 167-7435  #186-8496  
$DLGRM	  017522 RG	 160-7111  #170-7516   172-7710   186-8502  
$DLGRV	  021736 RG	 166-7336  #186-8501  
$DLGXM	  017462 RG	 75-3032    75-3252   #168-7456   168-7470  
$DLMB1	  017476 RG	 75-3064   #168-7468  
$DLMB2	  017504 RG	 88-3961   #168-7471  
$DLWCF	  015652 RG	 156-6936  #157-6960   163-7215  
$DPOS 	  012336 RG	 52-1801    52-1801    53-1833    53-1833    56-2041    56-2041    129-5603   129-5603  #129-5607  
                         191-8838   191-8838   221-10181  221-10181  222-10211  222-10211  222-10223  222-10223 
$DPOST	  012320 RG	#129-5599  
$DSPPT	  017152 RG	 166-7359  #167-7373  
$DSW  	= ******  GX	 98-4373    103-4597  *103-4599   136-5871   178-8071  
$DTE  	= 000001	#1-47      
$DTRWS	  022170 RG	 149-6495   149-6495  #187-8583  
$DTRW1	  022152 RG	 131-5696   131-5696   178-8058   178-8058  #187-8575   225-10346  225-10346  226-10383  226-10383 
                         228-10445  228-10445 
$DTRW2	  022160 RG	 149-6491   149-6491  #187-8579  
$DTRW3	  022200 RG	#187-8587  
$ENTER	  007176 RG	 69-2707    69-2707   #103-4571  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 18

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$ERROR	  022050 RG	 81-3692    82-3727    83-3795    156-6943   167-7438   177-8029   178-8081   178-8085   186-8476  
                         186-8488   186-8491   186-8506   186-8517   186-8521  #186-8533   186-8539   191-8867   215-9910  
$EXAM 	  012466 RG	 65-2520    65-2520    130-5642   130-5642   130-5647   130-5647  #130-5654  
$EXAMD	  012456 RG	#130-5646  
$EXAMT	  012440 RG	#130-5638  
$EXBLD	  025542 RG	 186-8523   186-8523  #220-10110 
$EXCT 	  026174 RG	 65-2516    65-2516    86-3876    86-3876    86-3879    86-3879    179-8105   179-8105   186-8460  
                         186-8460   191-8801   191-8801   191-8810   191-8810   220-10134  220-10134 #224-10292 
$EXIT 	  022060 RG	 151-6706   163-7228   172-7754   177-8027   178-8084   186-8526  #186-8537  
$EXIT1	  022066 RG	 186-8469  #186-8540  
$EXTEN	  010504 RG	 117-5037   117-5037  #119-5091  
$FATAL	  022074 RG	#186-8543  
$FE   	= 000001	#1-42      
$FILE 	  002520 RG	#69-2684    177-8017   177-8017   178-8047   178-8047   186-8538   186-8538   191-8793   191-8793  
$F11  	= 000001	#1-43      
$GETCA	  013354 RG	#140-6007   186-8487   186-8487   186-8516   186-8516  
$GETMM	  013554 RG	#143-6107   167-7388   167-7388  
$GETTF	  014024 RG	#145-6243  
$INIT 	  014702 RG	#151-6646   186-8455   186-8455  
$IOERR	  006610 RG	 60-2221    60-2221    90-4097    95-4285   #98-4369    101-4512   103-4600   119-5100   145-6260  
                         220-10141 
$KLMR 	  014350 RG	 60-2215    60-2215    131-5690   131-5690   136-5873  #149-6485   175-7892   175-7892   176-7919  
                         176-7919   179-8097   179-8097   228-10452  228-10452 
$KLSR 	  014622 RG	 123-5329   123-5329   127-5532   127-5532  #149-6542  
$LDAR 	  026534 RG	 54-1861    54-1861    224-10295  224-10295  225-10333  225-10333 #227-10406 
$LDNGO	  000000 RG	#52-1784    56-1969    56-1969   
$LOOKU	  007024 RG	 60-2210    60-2210    69-2700    69-2700   #101-4485   140-6010   140-6010   143-6118   143-6118  
                         145-6252   145-6252   158-6999   158-6999   220-10127  220-10127 
$LP20 	= 000001	#1-38      
$MAPMM	  005700 RG	 83-3767    83-3767   #84-3800   
$MBPHS	  027002 RG	 227-10410  227-10410 #229-10489 
$MCBLD	  001066 RG	#60-2192    186-8475   186-8475  
$POWER	  021146 RG	 163-7231  #177-8017  
$PURGE	  007366 RG	 64-2496    64-2496    69-2821    69-2821   #105-4651   140-6046   140-6046   143-6178   143-6178  
                         158-7047   158-7047   186-8530   186-8530  
$RCRAM	  011026 RG	 62-2306    62-2306   #122-5230   176-7923   176-7923  
$RDERA	= 000000	#11-540    
$RDRAM	  011736 RG	 63-2381    63-2381   #126-5454  
$READ 	  007736 RG	 101-4502   108-4750   108-4750   109-4782   109-4782   110-4808   110-4808  #111-4834  
$READB	  007662 RG	 69-2743    69-2743   #110-4803   140-6034   140-6034   140-6040   140-6040   143-6146   143-6146  
                         143-6149   143-6149   146-6386   146-6386   158-7029   158-7029   158-7032   158-7032   220-10152 
                         220-10152 
$READC	  007460 RG	 61-2256    61-2256    69-2715    69-2715   #107-4721   140-6026   140-6026   143-6134   143-6134  
                         143-6170   143-6170   145-6283   145-6283   158-7014   158-7014   221-10163  221-10163 
$READS	  007516 RG	 69-2769    69-2769   #108-4746   108-4751   140-6024   140-6024   143-6131   143-6131   143-6167  
                         143-6167   145-6298   145-6298   158-7024   158-7024  
$READW	  007566 RG	 60-2239    60-2239    107-4726   107-4726   107-4730  #109-4771   143-6152   143-6152   158-7039  
                         158-7039   221-10166  221-10166 
$RP04 	= 000001	#1-41      
$RSAVE	  022242 RG	 52-1784    53-1821    54-1859    64-2448    98-4369    121-5161   122-5230   125-5401   126-5454  
                         127-5508   129-5608   130-5655   145-6245   149-6485   153-6773  #188-8607   189-8647   199-9188  
                         200-9248   215-9879   217-9969   217-9986   224-10293  225-10325  227-10407  229-10490  230-10540 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 19

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$RSTRT	  021236 RG	 163-7235  #178-8047  
$RX11 	= 000001	#1-58      
$SBDIA	= 000002	#11-536    
$SETCA	  000356 RG	#56-1968    186-8490   186-8490   186-8520   186-8520  
$SETFN	  006546 RG	 95-4269    95-4269    95-4278    95-4278   #96-4305    101-4485   101-4485   101-4505   101-4505  
                         103-4571   103-4571   105-4661   105-4661  
$SETIM	  004320 RG	#77-3343    81-3639    81-3639    81-3661    81-3661   
$SETMM	  004544 RG	#78-3443    83-3775    83-3775   
$START	  021576 RG	#186-8453   231-10582 
$STRKL	  026264 RG	 52-1807    177-8022   177-8022   178-8053   178-8053   191-8858   191-8858  #225-10324 
$SWEEP	  005744 RG	#86-3871    220-10117  220-10117 
$TCRLF	  025336 RG	 64-2484    64-2484    75-3123    75-3123    174-7834   174-7834   186-8552   186-8552  #216-9937  
$TDB2C	  024456 RG	 196-9032  #209-9601  
$TDB2I	  023254 RG	 174-7795   174-7795   174-7815   174-7815  #196-9027  
$TDB2O	  024440 RG	 75-3120    75-3120   #209-9596  
$TDI2B	  023372 RG	#197-9076  
$TENST	  022524 RG	#191-8792   221-10193 
$TENS1	  022532 RG	 157-6988   157-6988  #191-8795  
$TOP10	= 000001	#1-51       1-54       3-156      3-160      60-2194    60-2202    163-7223   163-7233   176-7970  
                         176-7992   176-7998   177-8030   182-8265  
$TOP20	= ******	 1-62       3-156      3-164     
$TRACK	  022310 RG	 121-5162   122-5231   123-5328   125-5402   126-5455   127-5509   129-5617   130-5660   133-5765  
                         135-5852   138-5947   149-6486   149-6543  #189-8646   224-10294  225-10326  226-10379  228-10432 
$TRB2F	  023034 RG	 98-4397    98-4397   #193-8917  
$TRB2I	  023276 RG	 196-9031   196-9031  #196-9035   197-9080   197-9080  
$TRB2O	  024470 RG	 64-2455    64-2455    65-2525    65-2525    98-4389    98-4389    189-8662   189-8662   193-8935  
                         193-8935   209-9600   209-9600  #209-9606  
$TRB2R	  024734 RG	 193-8925   193-8925   193-8927   193-8927   193-8929   193-8929   193-8932   193-8932  #213-9769  
$TRCRM	  023502 RG	 64-2483    64-2483   #199-9187  
$TRDRM	  023646 RG	 64-2481    64-2481   #200-9247  
$TRF2B	  023136 RG	 145-6250   145-6250   156-6929   156-6929   170-7563   170-7563   172-7725   172-7725  #194-8954  
$TRI2B	  023414 RG	 75-3234    75-3234    88-3985    88-3985    161-7134   161-7134  #197-9084  
$TRO2B	  024552 RG	 75-3162    75-3162    194-8977   194-8977  #210-9657  
$TRR2B	  024626 RG	 194-8959   194-8959   194-8961   194-8961   194-8963   194-8963   194-8970   194-8970  #212-9726  
$TTBEL	  025316 RG	#216-9920  
$TTDMS	  025374 RG	 64-2476    64-2476    64-2478    64-2478    75-3118    75-3118    75-3122    75-3122    174-7793  
                         174-7793   174-7797   174-7797   174-7817   174-7817   174-7829   174-7829   186-8545   186-8545  
                         200-9263   200-9263  #217-9968  
$TTDWR	  025506 RG	 205-9443   205-9443   206-9471   206-9471   209-9602   209-9602   217-9974  #217-9997  
$TTMSG	  025442 RG	 56-2057    57-2085    62-2328    62-2328    63-2403    63-2403    64-2457    64-2495    65-2534   
                         69-2806    69-2823    75-3046    75-3046    75-3070    75-3199    75-3226    75-3258    77-3364   
                         77-3409    78-3464    78-3511    81-3685    82-3723    83-3749    83-3787    88-3940    88-3946   
                         88-3957    88-3975    88-4000    88-4004    98-4405    110-4818   111-4849   114-4946   117-5041  
                         129-5620   130-5668   133-5776   135-5854   138-5951   140-6014   143-6122   145-6256   145-6291  
                         145-6337   146-6351   149-6517   151-6679   151-6690   151-6705   151-6712   153-6806   156-6900  
                         156-6939   157-6965   157-6976   158-7008   160-7094   160-7109   161-7122   161-7155   163-7200  
                         163-7211   166-7307   166-7307   166-7326   167-7410   167-7428   170-7522   170-7537   172-7675  
                         172-7692   172-7708   172-7740   172-7748   174-7818   174-7844   174-7849   177-8025   177-8028  
                         178-8080   178-8083   186-8505   186-8531   191-8861  #217-9985   221-10194  225-10360  228-10471 
$TTRD 	  025120 RG	 75-3047    75-3047    75-3124    75-3124    75-3227    75-3227    88-3947    88-3947    88-3976   
                         88-3976    156-6901   156-6901   157-6966   157-6966   160-7095   160-7095   161-7123   161-7123  
                         163-7201   163-7201   166-7308   166-7308   170-7523   170-7523   172-7676   172-7676   197-9079  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 20

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         197-9079  #215-9879  
$TTSPC	  025306 RG	 174-7809   174-7809  #216-9915  
$TTTAB	  025326 RG	#216-9932  
$TTWR 	  025522 RG	 174-7805   174-7805   174-7807   174-7807   186-8548   186-8548   186-8551   186-8551   199-9203  
                         199-9203   199-9215   199-9215   200-9270   200-9270   200-9286   200-9286   216-9947   216-9947  
                        #218-10015 
$T1091	= 000001	#1-36       1-50       1-55      
$WCRAM	  010546 RG	 62-2295    62-2295    62-2315    62-2315    62-2355    62-2355   #121-5161   176-7926   176-7926  
                         176-7939  
$WDD22	  024114 RG	#205-9438  
$WDD36	  024226 RG	#206-9466  
$WDRAM	  011556 RG	 63-2377    63-2377    63-2430    63-2430   #125-5401  
$WRD22	  024144 RG	 189-8675   189-8675   205-9442   205-9442  #205-9447  
$WRD36	  024256 RG	 189-8690   189-8690   206-9470   206-9470  #206-9475  
$WRITB	  010274 RG	 69-2745    69-2745    70-2849    70-2849    70-2852    70-2852    72-2900    72-2900    72-2903   
                         72-2903    73-2935    73-2935    73-2942    73-2942    114-4940   114-4940  #116-4996  
$WRITC	  010066 RG	 69-2735    69-2735    70-2843    70-2843    71-2874    71-2874    72-2894    72-2894    73-2929   
                         73-2929   #113-4906  
$WRITE	  010334 RG	 115-4974   115-4974   116-5001   116-5001  #117-5024   117-5038  
$WRITS	  010130 RG	 90-4085    90-4085   #114-4932  
$WRITW	  010200 RG	 69-2738    69-2738    70-2846    70-2846    70-2860    70-2860    71-2877    72-2897    72-2897   
                         72-2908    72-2908    73-2932    73-2932    113-4914   113-4914  #115-4963  
$WTKL 	  026454 RG	 224-10304 #226-10378  228-10438  228-10438  228-10458  228-10458 
$XCDT 	  000206 RG	 52-1794    52-1794    53-1827    53-1827   #54-1859   
$ZERAC	  000112 RG	#53-1821    177-8019   177-8019   191-8796   191-8796  
$$    	= 000037	#52-1794    52-1794   #52-1801    52-1801   #53-1827    53-1827   #53-1833    53-1833   #54-1861   
                         54-1861   #54-1864    54-1864   #54-1867    54-1867   #54-1872    54-1872   #54-1877    54-1877   
                        #54-1883    54-1883   #54-1887    54-1887   #56-1969    56-1969   #56-2041    56-2041   #60-2210   
                         60-2210   #60-2215    60-2215   #60-2221    60-2221   #60-2239    60-2239   #61-2256    61-2256   
                        #61-2267    61-2267   #61-2270    61-2270   #61-2271    61-2271   #62-2295    62-2295   #62-2300   
                         62-2300   #62-2306    62-2306   #62-2315    62-2315   #62-2328    62-2328   #62-2332    62-2332   
                        #62-2337    62-2337   #62-2340    62-2340   #62-2350    62-2350   #62-2355    62-2355   #63-2371   
                         63-2371   #63-2377    63-2377   #63-2381    63-2381   #63-2403    63-2403   #63-2407    63-2407   
                        #63-2412    63-2412   #63-2415    63-2415   #63-2425    63-2425   #63-2430    63-2430   #64-2455   
                         64-2455   #64-2476    64-2476   #64-2478    64-2478   #64-2481    64-2481   #64-2483    64-2483   
                        #64-2484    64-2484   #64-2496    64-2496   #65-2516    65-2516   #65-2520    65-2520   #65-2525   
                         65-2525   #69-2700    69-2700   #69-2707    69-2707   #69-2715    69-2715   #69-2735    69-2735   
                        #69-2738    69-2738   #69-2743    69-2743   #69-2745    69-2745   #69-2769    69-2769   #69-2780   
                         69-2780   #69-2789    69-2789   #69-2794    69-2794   #69-2797    69-2797   #69-2799    69-2799   
                        #69-2804    69-2804   #69-2821    69-2821   #70-2843    70-2843   #70-2846    70-2846   #70-2849   
                         70-2849   #70-2852    70-2852   #70-2860    70-2860   #71-2874    71-2874   #72-2894    72-2894   
                        #72-2897    72-2897   #72-2900    72-2900   #72-2903    72-2903   #72-2908    72-2908   #73-2929   
                         73-2929   #73-2932    73-2932   #73-2935    73-2935   #73-2942    73-2942   #75-3046    75-3046   
                        #75-3047    75-3047   #75-3118    75-3118   #75-3120    75-3120   #75-3122    75-3122   #75-3123   
                         75-3123   #75-3124    75-3124   #75-3162    75-3162   #75-3179    75-3179   #75-3184    75-3184   
                        #75-3227    75-3227   #75-3234    75-3234   #78-3471    78-3471   #80-3596    80-3596   #80-3601   
                         80-3601   #80-3606    80-3606   #81-3637    81-3637   #81-3639    81-3639   #81-3647    81-3647   
                        #81-3653    81-3653   #81-3661    81-3661   #81-3665    81-3665   #83-3763    83-3763   #83-3767   
                         83-3767   #83-3775    83-3775   #83-3777    83-3777   #84-3806    84-3806   #86-3876    86-3876   
                        #86-3879    86-3879   #88-3947    88-3947   #88-3976    88-3976   #88-3985    88-3985   #90-4085   
                         90-4085   #95-4269    95-4269   #95-4278    95-4278   #98-4389    98-4389   #98-4397    98-4397   
                        #98-4404    98-4404   #101-4485   101-4485  #101-4505   101-4505  #103-4571   103-4571  #105-4661  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 21

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         105-4661  #107-4726   107-4726  #108-4750   108-4750  #109-4782   109-4782  #110-4808   110-4808  
                        #113-4914   113-4914  #114-4940   114-4940  #115-4974   115-4974  #116-5001   116-5001  #117-5037  
                         117-5037  #121-5164   121-5164  #121-5203   121-5203  #122-5232   122-5232  #122-5235   122-5235  
                        #122-5242   122-5242  #122-5297   122-5297  #123-5329   123-5329  #123-5332   123-5332  #123-5334  
                         123-5334  #123-5340   123-5340  #123-5342   123-5342  #125-5407   125-5407  #125-5410   125-5410  
                        #125-5413   125-5413  #125-5432   125-5432  #126-5459   126-5459  #126-5462   126-5462  #126-5466  
                         126-5466  #126-5474   126-5474  #126-5487   126-5487  #127-5532   127-5532  #127-5536   127-5536  
                        #129-5603   129-5603  #129-5609   129-5609  #129-5610   129-5610  #130-5642   130-5642  #130-5647  
                         130-5647  #130-5656   130-5656  #130-5657   130-5657  #131-5690   131-5690  #131-5693   131-5693  
                        #131-5696   131-5696  #135-5838   135-5838  #136-5876   136-5876  #140-6010   140-6010  #140-6024  
                         140-6024  #140-6026   140-6026  #140-6032   140-6032  #140-6034   140-6034  #140-6040   140-6040  
                        #140-6046   140-6046  #143-6118   143-6118  #143-6131   143-6131  #143-6134   143-6134  #143-6139  
                         143-6139  #143-6146   143-6146  #143-6149   143-6149  #143-6152   143-6152  #143-6167   143-6167  
                        #143-6170   143-6170  #143-6178   143-6178  #145-6245   145-6245  #145-6250   145-6250  #145-6252  
                         145-6252  #145-6283   145-6283  #145-6298   145-6298  #145-6311   145-6311  #145-6318   145-6318  
                        #145-6324   145-6324  #145-6333   145-6333  #146-6356   146-6356  #146-6386   146-6386  #149-6488  
                         149-6488  #149-6491   149-6491  #149-6495   149-6495  #149-6502   149-6502  #149-6507   149-6507  
                        #149-6512   149-6512  #149-6515   149-6515  #149-6524   149-6524  #149-6534   149-6534  #149-6547  
                         149-6547  #153-6773   153-6773  #153-6787   153-6787  #153-6794   153-6794  #156-6901   156-6901  
                        #156-6916   156-6916  #156-6929   156-6929  #157-6966   157-6966  #157-6988   157-6988  #158-6999  
                         158-6999  #158-7014   158-7014  #158-7020   158-7020  #158-7024   158-7024  #158-7029   158-7029  
                        #158-7032   158-7032  #158-7039   158-7039  #158-7047   158-7047  #160-7095   160-7095  #161-7123  
                         161-7123  #161-7134   161-7134  #163-7201   163-7201  #166-7293   166-7293  #166-7307   166-7307  
                        #166-7308   166-7308  #167-7375   167-7375  #167-7376   167-7376  #167-7388   167-7388  #167-7396  
                         167-7396  #167-7414   167-7414  #167-7419   167-7419  #167-7421   167-7421  #167-7422   167-7422  
                        #167-7423   167-7423  #167-7432   167-7432  #170-7523   170-7523  #170-7555   170-7555  #170-7563  
                         170-7563  #172-7676   172-7676  #172-7704   172-7704  #172-7719   172-7719  #172-7725   172-7725  
                        #172-7731   172-7731  #172-7733   172-7733  #172-7737   172-7737  #174-7785   174-7785  #174-7793  
                         174-7793  #174-7795   174-7795  #174-7797   174-7797  #174-7805   174-7805  #174-7807   174-7807  
                        #174-7809   174-7809  #174-7815   174-7815  #174-7817   174-7817  #174-7829   174-7829  #174-7834  
                         174-7834  #175-7864   175-7864  #175-7866   175-7866  #175-7869   175-7869  #175-7892   175-7892  
                        #176-7919   176-7919  #176-7923   176-7923  #176-7926   176-7926  #176-7929   176-7929  #176-7931  
                         176-7931  #176-7935   176-7935  #177-8017   177-8017  #177-8019   177-8019  #177-8020   177-8020  
                        #177-8022   177-8022  #177-8026   177-8026  #178-8047   178-8047  #178-8051   178-8051  #178-8053  
                         178-8053  #178-8055   178-8055  #178-8058   178-8058  #179-8097   179-8097  #179-8105   179-8105  
                        #179-8110   179-8110  #179-8113   179-8113  #186-8455   186-8455  #186-8460   186-8460  #186-8463  
                         186-8463  #186-8466   186-8466  #186-8475   186-8475  #186-8487   186-8487  #186-8490   186-8490  
                        #186-8516   186-8516  #186-8520   186-8520  #186-8523   186-8523  #186-8530   186-8530  #186-8538  
                         186-8538  #186-8545   186-8545  #186-8548   186-8548  #186-8551   186-8551  #186-8552   186-8552  
                        #189-8662   189-8662  #189-8675   189-8675  #189-8690   189-8690  #191-8793   191-8793  #191-8796  
                         191-8796  #191-8801   191-8801  #191-8810   191-8810  #191-8838   191-8838  #191-8844   191-8844  
                        #191-8848   191-8848  #191-8851   191-8851  #191-8858   191-8858  #191-8862   191-8862  #193-8925  
                         193-8925  #193-8927   193-8927  #193-8929   193-8929  #193-8932   193-8932  #193-8935   193-8935  
                        #194-8959   194-8959  #194-8961   194-8961  #194-8963   194-8963  #194-8970   194-8970  #194-8977  
                         194-8977  #196-9031   196-9031  #197-9079   197-9079  #197-9080   197-9080  #199-9188   199-9188  
                        #199-9195   199-9195  #199-9198   199-9198  #199-9203   199-9203  #199-9211   199-9211  #199-9212  
                         199-9212  #199-9215   199-9215  #200-9248   200-9248  #200-9263   200-9263  #200-9267   200-9267  
                        #200-9270   200-9270  #200-9282   200-9282  #200-9286   200-9286  #205-9442   205-9442  #205-9443  
                         205-9443  #205-9449   205-9449  #205-9453   205-9453  #205-9455   205-9455  #206-9470   206-9470  
                        #206-9471   206-9471  #206-9477   206-9477  #206-9480   206-9480  #206-9482   206-9482  #206-9487  
                         206-9487  #206-9489   206-9489  #209-9600   209-9600  #209-9602   209-9602  #216-9947   216-9947  
                        #217-9969   217-9969  #217-9992   217-9992  #217-9994   217-9994  #220-10117  220-10117 #220-10127 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 22

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         220-10127 #220-10134  220-10134 #220-10152  220-10152 #221-10163  221-10163 #221-10166  221-10166 
                        #221-10181  221-10181 #221-10188  221-10188 #221-10192  221-10192 #222-10211  222-10211 #222-10219 
                         222-10219 #222-10223  222-10223 #224-10295  224-10295 #224-10298  224-10298 #224-10301  224-10301 
                        #225-10333  225-10333 #225-10336  225-10336 #225-10339  225-10339 #225-10344  225-10344 #225-10346 
                         225-10346 #226-10383  226-10383 #227-10408  227-10408 #227-10410  227-10410 #228-10435  228-10435 
                        #228-10438  228-10438 #228-10443  228-10443 #228-10445  228-10445 #228-10452  228-10452 #228-10455 
                         228-10455 #228-10458  228-10458 #228-10462  228-10462 #228-10465  228-10465 #229-10495  229-10495 
                        #229-10500  229-10500 #229-10505  229-10505 #229-10511  229-10511 #229-10520  229-10520 #230-10543 
                         230-10543 #230-10551  230-10551 #230-10554  230-10554 #230-10557  230-10557 #230-10567  230-10567 
                        #230-10573  230-10573 
$$APRI	= 000000	#11-539    
$$RDER	= 000004	#11-541    
$$SBDI	= 000004	#11-537    
$$$ARG	= 000011	#89-4047    89-4047   #89-4048    89-4048   #89-4048    89-4048   #89-4048    89-4048   #91-4132   
                         91-4132   #91-4132    91-4132   #91-4132    91-4132   #91-4132    91-4132   #91-4132    91-4132   
                        #91-4132    91-4132   #91-4132    91-4132   #91-4133    91-4133   #91-4133    91-4133   #91-4134   
                         91-4134   #91-4134    91-4134   #91-4134    91-4134   #91-4134    91-4134   #91-4134    91-4134   
                        #91-4134    91-4134   #91-4134    91-4134   #100-4462   100-4462  #100-4462   100-4462  #100-4462  
                         100-4462  #100-4462   100-4462  #100-4462   100-4462  #100-4462   100-4462  #100-4462   100-4462  
                        #100-4463   100-4463  #100-4463   100-4463  #100-4463   100-4463  #100-4463   100-4463  #100-4463  
                         100-4463  #100-4463   100-4463  #100-4464   100-4464  #100-4464   100-4464  #100-4464   100-4464  
                        #100-4464   100-4464  #100-4464   100-4464  #100-4464   100-4464  #100-4464   100-4464  #102-4548  
                         102-4548  #102-4548   102-4548  #102-4548   102-4548  #102-4548   102-4548  #102-4548   102-4548  
                        #102-4549   102-4549  #102-4549   102-4549  #102-4549   102-4549  #102-4549   102-4549  #102-4549  
                         102-4549  #102-4549   102-4549  #102-4549   102-4549  #102-4550   102-4550  #102-4550   102-4550  
                        #102-4550   102-4550  #102-4550   102-4550  #102-4550   102-4550  #102-4550   102-4550  #102-4551  
                         102-4551  #104-4636   104-4636  #104-4637   104-4637  #104-4638   104-4638  #104-4639   104-4639  
                        #104-4639   104-4639  #104-4639   104-4639  #104-4639   104-4639  #104-4639   104-4639  #104-4639  
                         104-4639  #104-4639   104-4639  #111-4840   111-4840   111-4840   111-4840   111-4840   111-4840  
                         111-4840   111-4840   111-4840   111-4840   111-4840   111-4840  #117-5025   117-5025   117-5025  
                         117-5025   117-5025   117-5025   117-5025   117-5025   117-5025   117-5025   117-5025   117-5025  
                        #118-5078   118-5078  #118-5078   118-5078  #118-5078   118-5078  #118-5078   118-5078  #118-5078  
                         118-5078  #150-6617   150-6617  #150-6617   150-6617  #150-6617   150-6617  #150-6619   150-6619  
                        #150-6619   150-6619  #150-6619   150-6619  #150-6622   150-6622  #150-6622   150-6622  #150-6622  
                         150-6622  #150-6625   150-6625  #150-6625   150-6625  #150-6625   150-6625  #150-6627   150-6627  
                        #150-6627   150-6627  #150-6627   150-6627  #150-6629   150-6629  #150-6629   150-6629  #150-6629  
                         150-6629  #151-6685   151-6685   151-6685   151-6685   151-6685   151-6685   151-6685   151-6685  
                         151-6685   151-6685   151-6685   151-6685  #178-8069   178-8069   178-8069   178-8069   178-8069  
                         178-8069   178-8069   178-8069   178-8069   178-8069   178-8069  #181-8175   181-8175  #181-8175  
                         181-8175  #181-8175   181-8175  #181-8175   181-8175  #214-9850   214-9850  #214-9850   214-9850  
                        #214-9850   214-9850  #214-9851   214-9851  #214-9851   214-9851  #214-9851   214-9851  #214-9851  
                         214-9851  
$$$GLB	= ******	 89-4047    89-4047    89-4047    89-4047    89-4047    89-4047    89-4047    89-4047    89-4048   
                         89-4048    89-4048    89-4048    89-4048    89-4048    89-4048    89-4048    91-4132    91-4132   
                         91-4132    91-4132    91-4132    91-4132    91-4132    91-4132    91-4133    91-4133    91-4133   
                         91-4133    91-4133    91-4133    91-4133    91-4133    91-4134    91-4134    91-4134    91-4134   
                         91-4134    91-4134    91-4134    91-4134    100-4461   100-4461   100-4461   100-4462   100-4462  
                         100-4462   100-4462   100-4462   100-4462   100-4462   100-4462   100-4463   100-4463   100-4463  
                         100-4463   100-4463   100-4463   100-4463   100-4463   100-4464   100-4464   100-4464   100-4464  
                         100-4464   100-4464   100-4464   100-4464   102-4547   102-4547   102-4547   102-4548   102-4548  
                         102-4548   102-4548   102-4548   102-4548   102-4548   102-4548   102-4549   102-4549   102-4549  
                         102-4549   102-4549   102-4549   102-4549   102-4549   102-4550   102-4550   102-4550   102-4550  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 23

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         102-4550   102-4550   102-4550   102-4550   102-4551   102-4551   102-4551   102-4551   102-4551  
                         102-4551   102-4551   102-4551   104-4636   104-4636   104-4636   104-4636   104-4636   104-4636  
                         104-4636   104-4636   104-4637   104-4637   104-4637   104-4637   104-4637   104-4637   104-4637  
                         104-4637   104-4638   104-4638   104-4638   104-4638   104-4638   104-4638   104-4638   104-4638  
                         104-4639   104-4639   104-4639   104-4639   104-4639   104-4639   104-4639   104-4639   118-5078  
                         118-5078   118-5078   118-5078   118-5078   118-5078   118-5078   118-5078   150-6617   150-6617  
                         150-6617   150-6617   150-6619   150-6619   150-6619   150-6619   150-6622   150-6622   150-6622  
                         150-6622   150-6625   150-6625   150-6625   150-6625   150-6627   150-6627   150-6627   150-6627  
                         150-6629   150-6629   150-6629   150-6629   181-8175   181-8175   181-8175   181-8175   181-8175  
                         181-8175   181-8175   181-8175   214-9850   214-9850   214-9850   214-9850   214-9850   214-9850  
                         214-9850   214-9850   214-9851   214-9851   214-9851   214-9851   214-9851   214-9851   214-9851  
                         214-9851  
$$$OST	= 000014	#89-4047    89-4047    89-4047   #89-4047    89-4047    89-4047   #89-4047    89-4047    89-4047   
                        #89-4047    89-4047    89-4047   #89-4047    89-4047    89-4047   #89-4047    89-4047    89-4047   
                        #89-4047    89-4047   #89-4048    89-4048    89-4048   #89-4048    89-4048    89-4048   #89-4048   
                         89-4048    89-4048   #89-4048    89-4048    89-4048   #89-4048    89-4048    89-4048   #89-4048   
                         89-4048    89-4048   #89-4048    89-4048   #91-4132    91-4132    91-4132   #91-4132    91-4132   
                         91-4132   #91-4132    91-4132    91-4132   #91-4132    91-4132    91-4132   #91-4132    91-4132   
                         91-4132   #91-4132    91-4132    91-4132   #91-4132    91-4132   #91-4133    91-4133    91-4133   
                        #91-4133    91-4133    91-4133   #91-4133    91-4133    91-4133   #91-4133    91-4133    91-4133   
                        #91-4133    91-4133    91-4133   #91-4133    91-4133    91-4133   #91-4133    91-4133   #91-4134   
                         91-4134    91-4134   #91-4134    91-4134    91-4134   #91-4134    91-4134    91-4134   #91-4134   
                         91-4134    91-4134   #91-4134    91-4134    91-4134   #91-4134    91-4134    91-4134   #91-4134   
                         91-4134   #100-4461   100-4461   100-4461  #100-4461   100-4461   100-4461  #100-4461  #100-4462  
                         100-4462   100-4462  #100-4462   100-4462   100-4462  #100-4462   100-4462   100-4462  #100-4462  
                         100-4462   100-4462  #100-4462   100-4462   100-4462  #100-4462   100-4462   100-4462  #100-4462  
                         100-4462  #100-4463   100-4463   100-4463  #100-4463   100-4463   100-4463  #100-4463   100-4463  
                         100-4463  #100-4463   100-4463   100-4463  #100-4463   100-4463   100-4463  #100-4463   100-4463  
                         100-4463  #100-4463   100-4463  #100-4464   100-4464   100-4464  #100-4464   100-4464   100-4464  
                        #100-4464   100-4464   100-4464  #100-4464   100-4464   100-4464  #100-4464   100-4464   100-4464  
                        #100-4464   100-4464   100-4464  #100-4464   100-4464  #102-4547   102-4547   102-4547  #102-4547  
                         102-4547   102-4547  #102-4547  #102-4548   102-4548   102-4548  #102-4548   102-4548   102-4548  
                        #102-4548   102-4548   102-4548  #102-4548   102-4548   102-4548  #102-4548   102-4548   102-4548  
                        #102-4548   102-4548   102-4548  #102-4548   102-4548  #102-4549   102-4549   102-4549  #102-4549  
                         102-4549   102-4549  #102-4549   102-4549   102-4549  #102-4549   102-4549   102-4549  #102-4549  
                         102-4549   102-4549  #102-4549   102-4549   102-4549  #102-4549   102-4549  #102-4550   102-4550  
                         102-4550  #102-4550   102-4550   102-4550  #102-4550   102-4550   102-4550  #102-4550   102-4550  
                         102-4550  #102-4550   102-4550   102-4550  #102-4550   102-4550   102-4550  #102-4550   102-4550  
                        #102-4551   102-4551   102-4551  #102-4551   102-4551   102-4551  #102-4551   102-4551   102-4551  
                        #102-4551   102-4551   102-4551  #102-4551   102-4551   102-4551  #102-4551   102-4551   102-4551  
                        #102-4551   102-4551  #104-4636   104-4636   104-4636  #104-4636   104-4636   104-4636  #104-4636  
                         104-4636   104-4636  #104-4636   104-4636   104-4636  #104-4636   104-4636   104-4636  #104-4636  
                         104-4636   104-4636  #104-4636   104-4636  #104-4637   104-4637   104-4637  #104-4637   104-4637  
                         104-4637  #104-4637   104-4637   104-4637  #104-4637   104-4637   104-4637  #104-4637   104-4637  
                         104-4637  #104-4637   104-4637   104-4637  #104-4637   104-4637  #104-4638   104-4638   104-4638  
                        #104-4638   104-4638   104-4638  #104-4638   104-4638   104-4638  #104-4638   104-4638   104-4638  
                        #104-4638   104-4638   104-4638  #104-4638   104-4638   104-4638  #104-4638   104-4638  #104-4639  
                         104-4639   104-4639  #104-4639   104-4639   104-4639  #104-4639   104-4639   104-4639  #104-4639  
                         104-4639   104-4639  #104-4639   104-4639   104-4639  #104-4639   104-4639   104-4639  #104-4639  
                         104-4639  #118-5078   118-5078   118-5078  #118-5078   118-5078   118-5078  #118-5078   118-5078  
                         118-5078  #118-5078   118-5078   118-5078  #118-5078   118-5078   118-5078  #118-5078   118-5078  
                         118-5078  #118-5078   118-5078  #150-6617   150-6617   150-6617  #150-6617   150-6617   150-6617  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 24

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #150-6617   150-6617   150-6617  #150-6617  #150-6619   150-6619   150-6619  #150-6619   150-6619  
                         150-6619  #150-6619   150-6619   150-6619  #150-6619  #150-6622   150-6622   150-6622  #150-6622  
                         150-6622   150-6622  #150-6622   150-6622   150-6622  #150-6622  #150-6625   150-6625   150-6625  
                        #150-6625   150-6625   150-6625  #150-6625   150-6625   150-6625  #150-6625  #150-6627   150-6627  
                         150-6627  #150-6627   150-6627   150-6627  #150-6627   150-6627   150-6627  #150-6627  #150-6629  
                         150-6629   150-6629  #150-6629   150-6629   150-6629  #150-6629   150-6629   150-6629  #150-6629  
                        #181-8175   181-8175   181-8175  #181-8175   181-8175   181-8175  #181-8175   181-8175   181-8175  
                        #181-8175   181-8175   181-8175  #181-8175   181-8175   181-8175  #181-8175   181-8175   181-8175  
                        #181-8175   181-8175  #214-9850   214-9850   214-9850  #214-9850   214-9850   214-9850  #214-9850  
                         214-9850   214-9850  #214-9850   214-9850   214-9850  #214-9850   214-9850   214-9850  #214-9850  
                         214-9850   214-9850  #214-9850   214-9850  #214-9851   214-9851   214-9851  #214-9851   214-9851  
                         214-9851  #214-9851   214-9851   214-9851  #214-9851   214-9851   214-9851  #214-9851   214-9851  
                         214-9851  #214-9851   214-9851   214-9851  #214-9851   214-9851  
$$$T1 	= 000014	#111-4840   111-4840  #117-5025   117-5025  #150-6617   150-6617   150-6617  #150-6617   150-6617  
                         150-6617  #150-6617   150-6617   150-6617  #150-6619   150-6619   150-6619  #150-6619   150-6619  
                         150-6619  #150-6619   150-6619   150-6619  #150-6622   150-6622   150-6622  #150-6622   150-6622  
                         150-6622  #150-6622   150-6622   150-6622  #150-6625   150-6625   150-6625  #150-6625   150-6625  
                         150-6625  #150-6625   150-6625   150-6625  #150-6627   150-6627   150-6627  #150-6627   150-6627  
                         150-6627  #150-6627   150-6627   150-6627  #150-6629   150-6629   150-6629  #150-6629   150-6629  
                         150-6629  #150-6629   150-6629   150-6629  #151-6685   151-6685  
.BRCLK	= 005000	#4-176     #8-445      230-10556  230-10575 
.BTADR	  000462 RG	#184-8373   191-8855  *221-10165 *221-10168  222-10204  222-10205  222-10207  222-10215  222-10217 
.BTSW 	  000042 RG	 69-2687    69-2753    69-2792   *69-2807    70-2848   *156-6894  *156-6921  *156-6934   157-6986  
                        *158-7010  *158-7031  #182-8250   191-8814   191-8853  
.CACHN	  000051 RG	 56-1977    56-2024    57-2077    73-2939    140-6016   140-6039   161-7138  #183-8288  
.CASW 	  000035 RG	 86-3872    160-7088   166-7331  *175-7883  *175-7886   179-8100  #182-8239   186-8512   191-8806  
.CECLK	= 004000	#4-176     #8-445      54-1882    148-6452   148-6464   228-10464 
.CFGTB	  000120 RG	 72-2906   *75-3103    75-3217    75-3244   *77-3432   *78-3532    81-3631   *81-3646   *81-3664   
                         82-3701   *82-3710    83-3753   *83-3762   *83-3778   *88-3970   *88-4008    143-6110  *143-6155  
                         168-7445  #183-8313  
.CFMRV	  000220 RG	*166-7292  *166-7356   166-7358   167-7395  #183-8315  
.CKSW 	  000033 RG	 136-5866  *138-5940  *138-5943  *138-5950  #182-8234  
.CLRMR	= 006000	#4-176     #8-445      148-6453   148-6465  
.CLRUN	= 010000	#4-176     #8-445      149-6487   175-7865   228-10434 
.COMEF	= ******  GX	 151-6701  *151-6709  
.CONBT	= 012000	#4-176     #8-445      54-1863    186-8465   224-10297  225-10338 
.CPUSN	= ******  GX	 151-6710  *151-6711  *172-7753   174-7782   174-7794  *174-7850   175-7880  
.CSHRG	= 164000	#4-176     #8-445     
.CTLTP	  000056 RG	 72-2891    72-2902    81-3635    81-3651   *143-6111  *143-6114  *143-6151   143-6158  *168-7447  
                        #183-8309  
.DATE3	= ******  GX	*151-6650   174-7789  
.DBSW 	  000031 RG	*156-6895  *172-7716  #182-8228  
.DCSW 	  000027 RG	 69-2690    69-2762    69-2778   *69-2809    140-6007  *140-6015  *160-7090  *160-7117  *161-7151  
                        *161-7153  #182-8223   186-8485  
.DESW 	  000034 RG	 131-5688  *131-5703  *136-5865  *138-5941  *138-5944  #182-8236  
.DFBLK	  000242 RG	 132-5738   134-5813   137-5914  #184-8334  
.DFRBK	  000250 RG	 133-5765   133-5767   153-6789  #184-8337  
.DFRG1	  000256 RG	#184-8340  
.DFRG2	  000260 RG	#184-8342  
.DFRG3	  000264 RG	#184-8346  
.DFSTA	  000262 RG	#184-8344  
.DFWBK	  000242 RG	 135-5842   135-5852  #184-8335  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 25

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.DLGSW	  000024 RG	 80-3611    81-3690    82-3725    83-3791   *151-6647  *151-6655   151-6699   156-6897   157-6962  
                         158-7003   160-7091   163-7196   166-7298   167-7397   170-7518   172-7668  *172-7670  *172-7699  
                         172-7706   174-7787  #182-8216   186-8525  *186-8534  *186-8554   220-10111 
.DMSW 	  000030 RG	 69-2692    69-2727    69-2783   *69-2811    75-3044    75-3215   *80-3590    80-3609   *80-3610   
                        *80-3616   *81-3689   *82-3724   *83-3790    88-3944    88-3973   *143-6124  *166-7291  *166-7365  
                         167-7386   167-7390   167-7416  #182-8226  
.DREG 	  000256 RG	 132-5738   134-5813   137-5914   184-8331  #184-8339  *187-8591   187-8595  
.DRLTC	= 015000	#4-176     #8-445      126-5461  
.DRSW 	  000026 RG	 62-2289    62-2303    62-2351    63-2374    63-2426    64-2492    65-2504   *170-7516  *170-7568  
                        #182-8220  
.DSACF	= 066000	#4-176     #8-445     
.DSIOJ	= 065000	#4-176     #8-445     
.DTEDT	  000266 RG	*149-6490  *149-6493   184-8330  #184-8349   187-8590  *187-8594  
.EASW 	  000036 RG	 60-2199    122-5306   174-7801   174-7840  *175-7894  *175-7897  #182-8242  
.EIOJA	= 067000	#4-176     #8-445      148-6454  
.FEMOD	= ******  GX	 151-6703   170-7557  
.FILSW	  000041 RG	 69-2685   *157-6961  *157-6980  *157-6984  *172-7667  *172-7717  #182-8248  
.GFNR 	= 102000	#4-176     #8-445     
.HRDWR	= ******  GX	 174-7811   174-7821  
.INICL	= 070000	#4-176     #8-445      148-6449  
.IRLTC	= 014000	#4-176     #8-445      127-5538  
.KLISV	  000044 RG	*151-6648   151-6670   158-7005   160-7112   160-7115   163-7221   163-7224   166-7294   166-7344  
                         166-7362  *167-7408  *167-7409   170-7541   170-7543  #182-8276   186-8456   191-8816   220-10113 
                         228-10450 
.KLIWD	= ******  GX	 151-6648  *151-6654  
.KLREG	  000230 RG	#184-8327  *187-8576  *187-8580  *187-8584  *187-8588  *187-8590   187-8592  
.LCRDL	= 052000	#4-176     #8-445      123-5333  
.LCRDR	= 051000	#4-176     #8-445      123-5341  
.LCRM1	= 057000	#4-176     #8-445      120-5136  
.LCRM2	= 056000	#4-176     #8-445      120-5137  
.LCRM3	= 055000	#4-176     #8-445      120-5138  
.LCRM4	= 054000	#4-176     #8-445      120-5139  
.LCRM5	= 053000	#4-176     #8-445      121-5213  
.LDAR 	= 077000	#4-176     #8-445      54-1886    127-5535   227-10413 
.LDBRL	= 043000	#4-176     #8-445      148-6446   230-10553  230-10572 
.LDBRR	= 042000	#4-176     #8-445      148-6445   148-6450   230-10550  230-10566 
.LDCK1	= 046000	#4-176     #8-445      148-6442   179-8112   191-8847  
.LDCK2	= 047000	#4-176     #8-445      148-6443   179-8109   191-8843  
.LDDIS	= 045000	#4-176     #8-445      148-6447  
.LDRJD	= 064000	#4-176     #8-445      125-5425  
.LDRJV	= 063000	#4-176     #8-445      125-5428  
.LDRM1	= 060000	#4-176     #8-445      125-5427  
.LDRM2	= 061000	#4-176     #8-445      125-5424  
.LDRM3	= 062000	#4-176     #8-445      125-5419  
.LDSEL	= 044000	#4-176     #8-445      148-6439   149-6528  
.MEMRS	= 076000	#4-176     #8-445      148-6455  
.MFCT 	  000040 RG	*143-6108  *143-6160   167-7401  #182-8246  
.MFSW 	  000037 RG	 149-6498   149-6530   166-7303   174-7842  *175-7888  *175-7891  #182-8244  
.NCACH	  000050 RG	 56-1971    56-1986    56-2025    57-2066    73-2926   *140-6022  *140-6044  *161-7150   179-8102  
                        #183-8286   186-8514   186-8518   191-8808  
.NOERR	= ******  GX	*175-7863  *177-8024  *178-8082  *186-8458  *186-8468  *191-8860  
.PCAB1	= 150000	#4-176     #8-445     
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 26

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.PCAB2	= 151000	#4-176     #8-445     
.PCAB3	= 152000	#4-176     #8-445     
.PCAB4	= 153000	#4-176     #8-445     
.PRDCT	= ******  GX	 178-8049   178-8066  
.RCRM1	= 147000	#4-176     #8-445      120-5132  
.RCRM2	= 146000	#4-176     #8-445      120-5133  
.RCRM3	= 145000	#4-176     #8-445      120-5134  
.RCRM4	= 144000	#4-176     #8-445      120-5135  
.RCSPF	= 141000	#4-176     #8-445      122-5295  
.RDJ14	= 134000	#4-176     #8-445      126-5486  
.RDJ71	= 135000	#4-176     #8-445      126-5465  
.RDMAB	= 133000	#4-176     #8-445      126-5473  
.SECLK	= 003000	#4-176     #8-445      122-5234   176-7928  
.SETMR	= 007000	#4-176     #8-445      138-5938   148-6441   148-6461  
.SETRN	= 011000	#4-176     #8-445      186-8462   225-10335 
.SNSAV	  000046 RG	*151-6710   172-7753  #182-8278  
.SPSAV	  000022 RG	#182-8214  *186-8454   186-8553  
.SSCLK	= 002000	#4-176     #8-445      54-1876    149-6511   225-10343  229-10510 
.STPCL	= 000000	#4-176     #8-445      136-5875   148-6440   148-6463   228-10461  230-10542 
.STRCL	= 001000	#4-176     #8-445      54-1889    61-2269    131-5692   138-5936   148-6448   148-6462   179-8114  
                         191-8850   224-10300  225-10356  228-10454 
.SYATT	  002614 RG	 89-4050   *90-4081   *90-4082   *90-4083   *90-4084   *103-4594   113-4909  *113-4911  *119-5095  
                        *119-5096  #185-8440  
.SYFID	= 002562 RG	 91-4133    100-4463   102-4548   102-4550  #185-8432  
.SYFNB	  002562 RG	 91-4132    91-4134    96-4306    100-4462   100-4464   102-4549   104-4639   151-6685   151-6693  
                        *151-6693   151-6694  *151-6694   151-6695  *151-6695  #185-8423   185-8432   185-8433  
.SYFNM	= 002570 RG	#185-8433  
.SYIBA	  000500 RG	*108-4754   109-4772  *109-4775   109-4785  *109-4786   110-4811  *110-4812  *111-4844  #185-8390  
.SYIBC	  000502 RG	 108-4747   108-4749  *108-4755  *109-4776   109-4780  *109-4787   110-4806  *110-4813  *111-4845  
                        #185-8392  
.SYIBF	  000530 RG	 100-4461   101-4488   101-4489   111-4840   111-4844   185-8391  #185-8400   185-8407  
.SYIFN	  000504 RG	 90-4094    100-4466   100-4468  *101-4488  *101-4489  #185-8394  
.SYIRC	  000476 RG	 61-2262    62-2322    63-2397    69-2733    69-2741   *101-4501   107-4722  *107-4725  *107-4728  
                         108-4747  *108-4749   108-4754   108-4755  *108-4756  *109-4774  *109-4778  *110-4804   146-6378  
                        #185-8388   221-10169  222-10227 
.SYISW	  000474 RG	 90-4069   *90-4075   *101-4498   105-4651  *105-4654  #185-8382  
.SYIVB	  000524 RG	*101-4499  *101-4500  *111-4835  *111-4836   111-4840   111-4840  #185-8398  
.SYOBA	  001532 RG	 90-4083   *103-4591   115-4964  *115-4967   115-4977  *115-4978   116-5004  *116-5005  *117-5031  
                        #185-8406  
.SYOBC	  001534 RG	*103-4592   114-4936  *115-4968   115-4972  *115-4979   116-4999  *116-5006  *117-5032  #185-8408  
.SYOBF	  001562 RG	 90-4084    102-4547   103-4574   103-4575   103-4591   117-5025   117-5031  #185-8416  
.SYOFN	  001536 RG	 89-4052    89-4054    90-4096    102-4553   102-4555  *103-4574  *103-4575   105-4660   119-5099  
                        #185-8410  
.SYORC	  001530 RG	 70-2854   *103-4593   113-4907  *113-4913  *113-4916   114-4933  *114-4938  *115-4966  *115-4970  
                        *116-4997  #185-8404  
.SYOSW	  000475 RG	 90-4076   *90-4091   *103-4588   105-4655  *105-4664  #185-8384  
.SYOVB	  001556 RG	 90-4081    90-4082   *103-4589  *103-4590   117-5025   117-5025  *117-5029  *117-5030  #185-8414  
.SYSTA	  000470 RG	 60-2219    69-2702    89-4047    89-4048    90-4073    90-4089    91-4132    91-4133    91-4134   
                         95-4272    95-4276    95-4281    98-4375    100-4462   100-4463   101-4492   101-4496   101-4503  
                         101-4507   102-4548   102-4549   102-4550   103-4578   103-4582   103-4586   111-4840   111-4842  
                         111-4845   117-5025   117-5027   117-5035   118-5078   119-5093   140-6012   143-6120   145-6254  
                         151-6685   151-6687   158-7001  #185-8380   220-10139 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 27

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.TPSHI	  015412 RG	 153-6794   153-6794  #154-6811  
.TRKSW	  000032 RG	#182-8231   189-8649  *215-9905  *215-9907  
.TTIBF	  000270 RG	 75-3048    75-3125    75-3228    88-3948    88-3978    156-6902   157-6967   160-7096   161-7124  
                         163-7202   166-7309   170-7524   172-7677  #184-8357   197-9078   214-9850  *215-9896   215-9898  
                         215-9900  
.TTOBF	  000330 RG	#184-8360   196-9029   199-9193   199-9201   199-9210   199-9213   200-9266   200-9268   200-9281  
                         200-9284   205-9440   206-9468   209-9598   217-9970   217-9988  
.UFNSW	  000025 RG	 60-2207    70-2839    70-2851   *156-6896  *156-6932  *158-7034  *170-7517  *170-7567  *172-7718  
                        *172-7729  #182-8218   220-10123 
.USRFN	  000442 RG	 60-2209    70-2857    145-6248   156-6925   158-7037   170-7559   172-7721  #184-8368   220-10125 
.WORK 	  000014 RG	#182-8207  
.WRMBX	= 071000	#4-176     #8-445      148-6456  
.ZERO 	  000000 RG	 53-1830    56-2040    62-2293    134-5814   148-6439   148-6442   148-6443   148-6445   148-6446  
                         148-6447   148-6449   148-6450   148-6454   148-6455  #182-8204   191-8831   191-8837   221-10179 
                         222-10209 
..DTP2	= ******  GX	 177-8026   177-8026   178-8055   178-8055   191-8862   191-8862  
..DTSP	= ******  GX	 175-7864   175-7864  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 28

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ALUN$ 		#150-6587  #150-6617  #150-6619  #150-6622  #150-6625  #150-6627  #150-6629  
BURST 		#24-965    
CALL  		#4-231     #9-447      52-1794    52-1801    53-1827    53-1833    54-1861    54-1864    54-1867    54-1872   
                 54-1877    54-1883    54-1887    56-1969    56-2041    60-2210    60-2215    60-2221    60-2239    61-2256   
                 61-2267    61-2270    61-2271    62-2295    62-2300    62-2306    62-2315    62-2328    62-2332    62-2337   
                 62-2340    62-2350    62-2355    63-2371    63-2377    63-2381    63-2403    63-2407    63-2412    63-2415   
                 63-2425    63-2430    64-2455    64-2476    64-2478    64-2481    64-2483    64-2484    64-2496    65-2516   
                 65-2520    65-2525    69-2700    69-2707    69-2715    69-2735    69-2738    69-2743    69-2745    69-2769   
                 69-2780    69-2789    69-2794    69-2797    69-2799    69-2804    69-2821    70-2843    70-2846    70-2849   
                 70-2852    70-2860    71-2874    72-2894    72-2897    72-2900    72-2903    72-2908    73-2929    73-2932   
                 73-2935    73-2942    75-3046    75-3047    75-3118    75-3120    75-3122    75-3123    75-3124    75-3162   
                 75-3179    75-3184    75-3227    75-3234    78-3471    80-3596    80-3601    80-3606    81-3637    81-3639   
                 81-3647    81-3653    81-3661    81-3665    83-3763    83-3767    83-3775    83-3777    84-3806    86-3876   
                 86-3879    88-3947    88-3976    88-3985    90-4085    95-4269    95-4278    98-4389    98-4397    98-4404   
                 101-4485   101-4505   103-4571   105-4661   107-4726   108-4750   109-4782   110-4808   113-4914   114-4940  
                 115-4974   116-5001   117-5037   121-5164   121-5203   122-5232   122-5235   122-5242   122-5297   123-5329  
                 123-5332   123-5334   123-5340   123-5342   125-5407   125-5410   125-5413   125-5432   126-5459   126-5462  
                 126-5466   126-5474   126-5487   127-5532   127-5536   129-5603   129-5609   129-5610   130-5642   130-5647  
                 130-5656   130-5657   131-5690   131-5693   131-5696   135-5838   136-5876   140-6010   140-6024   140-6026  
                 140-6032   140-6034   140-6040   140-6046   143-6118   143-6131   143-6134   143-6139   143-6146   143-6149  
                 143-6152   143-6167   143-6170   143-6178   145-6245   145-6250   145-6252   145-6283   145-6298   145-6311  
                 145-6318   145-6324   145-6333   146-6356   146-6386   149-6488   149-6491   149-6495   149-6502   149-6507  
                 149-6512   149-6515   149-6524   149-6534   149-6547   153-6773   153-6787   153-6794   156-6901   156-6916  
                 156-6929   157-6966   157-6988   158-6999   158-7014   158-7020   158-7024   158-7029   158-7032   158-7039  
                 158-7047   160-7095   161-7123   161-7134   163-7201   166-7293   166-7307   166-7308   167-7375   167-7376  
                 167-7388   167-7396   167-7414   167-7419   167-7421   167-7422   167-7423   167-7432   170-7523   170-7555  
                 170-7563   172-7676   172-7704   172-7719   172-7725   172-7731   172-7733   172-7737   174-7785   174-7793  
                 174-7795   174-7797   174-7805   174-7807   174-7809   174-7815   174-7817   174-7829   174-7834   175-7864  
                 175-7866   175-7869   175-7892   176-7919   176-7923   176-7926   176-7929   176-7931   176-7935   177-8017  
                 177-8019   177-8020   177-8022   177-8026   178-8047   178-8051   178-8053   178-8055   178-8058   179-8097  
                 179-8105   179-8110   179-8113   186-8455   186-8460   186-8463   186-8466   186-8475   186-8487   186-8490  
                 186-8516   186-8520   186-8523   186-8530   186-8538   186-8545   186-8548   186-8551   186-8552   189-8662  
                 189-8675   189-8690   191-8793   191-8796   191-8801   191-8810   191-8838   191-8844   191-8848   191-8851  
                 191-8858   191-8862   193-8925   193-8927   193-8929   193-8932   193-8935   194-8959   194-8961   194-8963  
                 194-8970   194-8977   196-9031   197-9079   197-9080   199-9188   199-9195   199-9198   199-9203   199-9211  
                 199-9212   199-9215   200-9248   200-9263   200-9267   200-9270   200-9282   200-9286   205-9442   205-9443  
                 205-9449   205-9453   205-9455   206-9470   206-9471   206-9477   206-9480   206-9482   206-9487   206-9489  
                 209-9600   209-9602   216-9947   217-9969   217-9992   217-9994   220-10117  220-10127  220-10134  220-10152 
                 221-10163  221-10166  221-10181  221-10188  221-10192  222-10211  222-10219  222-10223  224-10295  224-10298 
                 224-10301  225-10333  225-10336  225-10339  225-10344  225-10346  226-10383  227-10408  227-10410  228-10435 
                 228-10438  228-10443  228-10445  228-10452  228-10455  228-10458  228-10462  228-10465  229-10495  229-10500 
                 229-10505  229-10511  229-10520  230-10543  230-10551  230-10554  230-10557  230-10567  230-10573 
CALLR 		#4-240     #9-456      52-1807    54-1890    56-2056    71-2877    75-3022    75-3032    75-3061    75-3064   
                 75-3193    75-3252    75-3255    82-3705    88-3961    88-4010    90-4097    95-4285    101-4502   101-4512  
                 103-4600   107-4730   119-5100   121-5214   125-5439   127-5539   136-5873   140-6045   143-6175   145-6260  
                 145-6344   158-7044   167-7435   168-7454   168-7457   168-7460   168-7463   176-7939   179-8115   196-9032  
                 220-10141  224-10304  225-10357  227-10414  229-10525  230-10576 
CLEF$S		#150-6587  
DFPC  		#23-935    
DFRD  		#12-572    
DFRDT 		#13-593    
DFSCLK		#22-925    
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 29

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

DFWRT 		#14-634    
DFWRTT		#15-674    
DFXCT 		#16-713    
DFXCTT		#17-745    
DIR$  		#4-175     #90-4071   #90-4087   #95-4270   #95-4274   #95-4279   #101-4486  #101-4490  #101-4494  #101-4506  
                #103-4572  #103-4576  #103-4580  #103-4584  #103-4598  #105-4653  #105-4657  #105-4658  #105-4663  #111-4840  
                #111-4840  #117-5025  #117-5025  #119-5091  #129-5618  #130-5659  #133-5764  #135-5851  #136-5869  #138-5948  
                #151-6662  #151-6664  #151-6667  #151-6672  #151-6674  #151-6676  #151-6680  #151-6680  #151-6685  #151-6685  
                #151-6691  #151-6691  #178-8069  #178-8069  #178-8073  #178-8073  #178-8076  #178-8076  #186-8541  #186-8541  
                #187-8592  #189-8696  #215-9882  #215-9883  #215-9891  #215-9911  #215-9911  #218-10017 
DPOS  		#18-778    
DPOST 		#19-818    
DTEBAS		#25-979    
ERROR 		#7-374     #55-1949   #58-2145   #58-2146   #58-2147   #58-2148   #58-2149   #67-2606   #76-3304   #76-3306   
                #87-3930   #97-4350   #97-4351   #97-4352   #97-4353   #106-4702  #106-4704  #112-4888  #112-4890  #128-5583  
                #128-5584  #132-5741  #134-5818  #137-5917  #144-6217  #144-6219  #144-6221  #144-6223  #148-6472  #150-6632  
                #150-6634  #150-6636  #152-6748  #165-7283  #171-7655  #171-7661  #176-7997  #176-7999  #176-8000  #176-8001  
                #176-8002  #181-8188  #181-8190  #181-8192  #219-10070 #223-10273 #223-10275 
ERR$  		#90-4071   #90-4087   #95-4270   #95-4274   #95-4279   #101-4486  #101-4490  #101-4494  #101-4506  #103-4572  
                #103-4576  #103-4580  #103-4584  #103-4598  #105-4653  #105-4657  #105-4658  #105-4663  #111-4840  #117-5025  
                #119-5091  #129-5618  #130-5659  #133-5764  #135-5851  #136-5869  #138-5948  #151-6662  #151-6664  #151-6667  
                #151-6672  #151-6674  #151-6676  #151-6680  #151-6685  #151-6691  #178-8069  #178-8073  #178-8076  #186-8541  
                #187-8592  #189-8696  #215-9882  #215-9883  #215-9891  #215-9911  #218-10017 
EXAM  		#20-857    
EXAMT 		#21-903    
EXCT  		#28-1041   
EXIT$S		#150-6587  #151-6680  #151-6691  #181-8165  #186-8541  #214-9845  #215-9911  
EXOR  		#10-508    
FATAL 		#50-1700   
GLUN$ 		#100-4456  #100-4461  #102-4542  #102-4547  
IDENT$		#4-190      51-1712    51-1712    55-1893    55-1893    58-2092    58-2092    66-2541    66-2541    74-2950   
                 74-2950    76-3263    76-3263    79-3540    79-3540    85-3820    85-3820    87-3888    87-3888    89-4014   
                 89-4014    91-4100    91-4100    97-4321    97-4321    100-4429   100-4429   102-4515   102-4515   104-4603  
                 104-4603   106-4668   106-4668   112-4854   112-4854   118-5046   118-5046   120-5103   120-5103   124-5353  
                 124-5353   128-5543   128-5543   132-5707   132-5707   134-5782   134-5782   137-5881   137-5881   139-5957  
                 139-5957   141-6052   141-6052   144-6183   144-6183   147-6408   147-6408   150-6554   150-6554   155-6837  
                 155-6837   159-7053   159-7053   162-7160   162-7160   164-7240   164-7240   169-7480   169-7480   171-7585  
                 171-7585   176-7943   176-7943   180-8119   180-8119   190-8703   190-8703   192-8873   192-8873   195-8983  
                 195-8983   198-9110   198-9110   202-9319   202-9319   208-9551   208-9551   211-9680   211-9680   214-9813  
                 214-9813   219-10021  219-10021  223-10233  223-10233 
IO10$ 		#6-315      51-1748    55-1938    55-1939    55-1943    58-2141    85-3855    85-3856    176-7987   190-8747  
                 190-8748   190-8749   190-8750   190-8754   219-10066 
I10$  		#6-299     #55-1940   #55-1941   #55-1942   #55-1944   #181-8171  
KLDR$ 		#132-5733  #132-5738  
KLDW$ 		#134-5808   134-5813  
KLDX$ 		#137-5909  #137-5914  
KLIVR$		#150-6588   150-6638   150-6638  
LODAR 		#26-1010   
MESSAG		#7-366      55-1950    55-1951    55-1952    58-2150    58-2151    58-2152    58-2153    58-2154    67-2604   
                 74-2987    74-2989    74-2991    74-2993    74-2995    150-6638   155-6866   155-6868   159-7082   159-7083  
                 162-7190   165-7279   165-7281   169-7511   171-7637   171-7639   171-7641   171-7645   176-8004   181-8186  
                 190-8770  
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 30

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

MOV$  		#111-4840  #111-4840   111-4840   111-4840   111-4840   111-4840   111-4840   111-4840   111-4840   111-4840  
                 111-4840  #117-5025  #117-5025   117-5025   117-5025   117-5025   117-5025   117-5025   117-5025   117-5025  
                 117-5025   117-5025  #151-6685  #151-6685   151-6685   151-6685   151-6685   151-6685   151-6685   151-6685  
                 151-6685   151-6685   151-6685   151-6685  #178-8069   178-8069   178-8069   178-8069   178-8069  #178-8076  
                 178-8076  
MRESET		#31-1132   
MRKT$S		#176-7981   178-8069  
MVB$  		#111-4840   111-4840  #117-5025   117-5025  #151-6685   151-6685  
NBL$  		#150-6617   150-6617  #150-6619   150-6619  #150-6622   150-6622  #150-6625   150-6625  #150-6627   150-6627  
                #150-6629   150-6629  
OFF$  		#89-4047   #89-4047   #89-4047   #89-4047   #89-4047   #89-4047   #89-4047   #89-4047   #89-4047   #89-4048   
                #89-4048   #89-4048   #89-4048   #89-4048   #89-4048   #89-4048   #89-4048   #89-4048   #91-4132   #91-4132   
                #91-4132   #91-4132   #91-4132   #91-4132   #91-4132   #91-4132   #91-4132   #91-4133   #91-4133   #91-4133   
                #91-4133   #91-4133   #91-4133   #91-4133   #91-4133   #91-4133   #91-4134   #91-4134   #91-4134   #91-4134   
                #91-4134   #91-4134   #91-4134   #91-4134   #91-4134   #100-4461  #100-4461  #100-4461  #100-4461  #100-4462  
                #100-4462  #100-4462  #100-4462  #100-4462  #100-4462  #100-4462  #100-4462  #100-4462  #100-4463  #100-4463  
                #100-4463  #100-4463  #100-4463  #100-4463  #100-4463  #100-4463  #100-4463  #100-4464  #100-4464  #100-4464  
                #100-4464  #100-4464  #100-4464  #100-4464  #100-4464  #100-4464  #102-4547  #102-4547  #102-4547  #102-4547  
                #102-4548  #102-4548  #102-4548  #102-4548  #102-4548  #102-4548  #102-4548  #102-4548  #102-4548  #102-4549  
                #102-4549  #102-4549  #102-4549  #102-4549  #102-4549  #102-4549  #102-4549  #102-4549  #102-4550  #102-4550  
                #102-4550  #102-4550  #102-4550  #102-4550  #102-4550  #102-4550  #102-4550  #102-4551  #102-4551  #102-4551  
                #102-4551  #102-4551  #102-4551  #102-4551  #102-4551  #102-4551  #104-4636  #104-4636  #104-4636  #104-4636  
                #104-4636  #104-4636  #104-4636  #104-4636  #104-4636  #104-4637  #104-4637  #104-4637  #104-4637  #104-4637  
                #104-4637  #104-4637  #104-4637  #104-4637  #104-4638  #104-4638  #104-4638  #104-4638  #104-4638  #104-4638  
                #104-4638  #104-4638  #104-4638  #104-4639  #104-4639  #104-4639  #104-4639  #104-4639  #104-4639  #104-4639  
                #104-4639  #104-4639  #118-5078  #118-5078  #118-5078  #118-5078  #118-5078  #118-5078  #118-5078  #118-5078  
                #118-5078  #150-6617  #150-6617  #150-6617  #150-6617  #150-6617  #150-6619  #150-6619  #150-6619  #150-6619  
                #150-6619  #150-6622  #150-6622  #150-6622  #150-6622  #150-6622  #150-6625  #150-6625  #150-6625  #150-6625  
                #150-6625  #150-6627  #150-6627  #150-6627  #150-6627  #150-6627  #150-6629  #150-6629  #150-6629  #150-6629  
                #150-6629  #181-8175  #181-8175  #181-8175  #181-8175  #181-8175  #181-8175  #181-8175  #181-8175  #181-8175  
                #214-9850  #214-9850  #214-9850  #214-9850  #214-9850  #214-9850  #214-9850  #214-9850  #214-9850  #214-9851  
                #214-9851  #214-9851  #214-9851  #214-9851  #214-9851  #214-9851  #214-9851  #214-9851  
PBELL 		#45-1559   
PCRLF 		#45-1567   
PFORCE		#33-1185   
PMSG  		#42-1468   
PNORML		#33-1188   
PNTADR		#35-1243   
PNTAL 		#43-1499   
PNTBAK		#33-1191   
PNTDEC		#40-1389   
PNTNBR		#36-1270   
PNTOCS		#39-1357   
PNTOCT		#38-1325   
PNTODT		#41-1422   
PNT36 		#34-1215   
PNT36B		#37-1298   
POP   		#4-258     #9-474     #64-2477   #77-3434   #77-3435   #78-3534   #78-3535   #78-3536   #81-3662   #81-3686   
                #84-3814   #84-3815   #84-3816   #86-3881   #96-4317   #103-4599  #105-4662  #123-5343  #125-5433  #133-5778  
                #135-5856  #136-5877  #138-5953  #145-6251  #149-6550  #154-6833  #188-8610  #193-8936  #194-8979  #196-9058  
                #197-9081  #197-9106  #201-9315  #205-9444  #205-9458  #206-9472  #206-9492  #209-9603  #209-9629  #210-9675  
                #212-9750  #213-9807  #213-9809  #216-9948  #226-10391 #228-10467 
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 31

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

PRDP$ 		#128-5571   128-5576  
PREX$ 		#128-5571   128-5577  #134-5808   134-5814  
PRINT 		#7-378     #56-2057   #57-2085   #64-2457   #64-2495   #65-2534   #69-2806   #69-2823   #75-3070   #75-3199   
                #75-3226   #75-3258   #77-3364   #77-3409   #78-3464   #78-3511   #81-3685   #82-3723   #83-3749   #83-3787   
                #88-3940   #88-3946   #88-3957   #88-3975   #88-4000   #88-4004   #98-4405   #110-4818  #111-4849  #114-4946  
                #117-5041  #129-5620  #130-5668  #133-5776  #135-5854  #138-5951  #140-6014  #143-6122  #145-6256  #145-6291  
                #145-6337  #146-6351  #149-6517  #151-6679  #151-6690  #151-6705  #151-6712  #153-6806  #156-6900  #156-6939  
                #157-6965  #157-6976  #158-7008  #160-7094  #160-7109  #161-7122  #161-7155  #163-7200  #163-7211  #166-7326  
                #167-7410  #167-7428  #170-7522  #170-7537  #172-7675  #172-7692  #172-7708  #172-7740  #172-7748  #174-7818  
                #174-7844  #174-7849  #177-8025  #177-8028  #178-8080  #178-8083  #186-8505  #186-8531  #191-8861  #221-10194 
                #225-10360 #228-10471 
PSLASH		#45-1555   
PSPACE		#45-1551   
PTAB  		#45-1563   
PUSH  		#4-252     #9-468     #64-2474   #77-3357   #77-3358   #78-3459   #78-3460   #78-3461   #81-3660   #81-3684   
                #84-3801   #84-3802   #86-3874   #96-4305   #103-4597  #105-4659  #123-5327  #125-5431  #129-5601  #130-5640  
                #133-5761  #135-5837  #136-5874  #138-5935  #145-6249  #146-6390  #149-6542  #153-6778  #154-6812  #188-8608  
                #193-8917  #194-8954  #196-9028  #197-9077  #197-9085  #201-9308  #205-9439  #205-9448  #206-9467  #206-9476  
                #209-9597  #209-9607  #210-9658  #212-9726  #213-9769  #213-9771  #216-9916  #216-9921  #216-9933  #216-9938  
                #216-9944  #226-10380 #228-10433 
QDPB$ 		#89-4047    89-4047   #89-4048    89-4048   #91-4132    91-4132   #91-4133    91-4133   #91-4134    91-4134   
                #100-4462   100-4462  #100-4463   100-4463  #100-4464   100-4464  #102-4548   102-4548  #102-4549   102-4549  
                #102-4550   102-4550  #102-4551   102-4551  #104-4636   104-4636  #104-4637   104-4637  #104-4638   104-4638  
                #104-4639   104-4639  #118-5078   118-5078  #181-8175   181-8175  #214-9850   214-9850  #214-9851   214-9851  
QDPB$S		#111-4840   111-4840  #117-5025   117-5025  #151-6685   151-6685  
QIOW$ 		#89-4042    89-4047    89-4048   #91-4127    91-4132    91-4133    91-4134   #100-4456   100-4462   100-4463  
                 100-4464  #102-4542   102-4548   102-4549   102-4550   102-4551  #104-4631   104-4636   104-4637   104-4638  
                 104-4639  #118-5073   118-5078  #181-8165   181-8175  #214-9845   214-9850   214-9851  
QIOW$S		#106-4696   111-4840  #112-4882   117-5025  #150-6587   151-6685  
REGRST		#32-1169   
REGSAV		#32-1165   
RETURN		#4-244     #9-460     #52-1809   #53-1840   #54-1881   #56-2059   #57-2087   #60-2217   #60-2243   #64-2460   
                #64-2485   #64-2498   #65-2538   #69-2816   #69-2825   #70-2864   #71-2880   #72-2915   #73-2946   #77-3436   
                #78-3537   #80-3620   #81-3680   #81-3695   #82-3736   #83-3783   #83-3793   #84-3817   #86-3883   #90-4092   
                #95-4283   #96-4318   #98-4407   #99-4426   #101-4510  #103-4595  #105-4665  #107-4733  #108-4752  #108-4757  
                #109-4790  #110-4815  #110-4820  #111-4846  #111-4851  #113-4918  #114-4943  #114-4948  #115-4982  #116-5008  
                #117-5033  #117-5039  #117-5043  #119-5097  #121-5215  #122-5314  #123-5344  #123-5350  #125-5423  #126-5495  
                #127-5540  #129-5605  #129-5622  #130-5650  #130-5667  #130-5670  #131-5682  #131-5702  #131-5704  #133-5779  
                #135-5857  #136-5878  #138-5954  #140-6023  #140-6048  #143-6126  #143-6180  #146-6359  #146-6403  #149-6519  
                #149-6538  #149-6551  #151-6714  #153-6804  #154-6834  #158-7050  #170-7582  #173-7772  #174-7853  #175-7901  
                #176-7941  #179-8116  #187-8597  #189-8699  #191-8864  #193-8937  #194-8980  #196-9059  #197-9082  #197-9107  
                #199-9216  #200-9292  #201-9316  #205-9445  #205-9459  #206-9473  #206-9493  #207-9512  #207-9530  #207-9548  
                #209-9604  #209-9630  #210-9676  #212-9751  #213-9810  #215-9903  #216-9949  #218-10018 #220-10137 #220-10157 
                #221-10196 #222-10230 #224-10307 #225-10363 #226-10392 #227-10417 #228-10468 #229-10517 #230-10579 
RVP$  		#111-4840  #111-4840  #117-5025  #117-5025  #151-6685  #151-6685  #178-8069  #178-8069  
SL    		#5-267     #10-480     175-7873  
SM    		#29-1071   
SR    		#5-280     #10-494     65-2523    175-7876   230-10569 
TRACK 		#7-387     #121-5162  #122-5231  #123-5328  #125-5402  #126-5455  #127-5509  #129-5617  #130-5660  #133-5765  
                #135-5852  #138-5947  #149-6486  #149-6543  #224-10294 #225-10326 #226-10379 #228-10432 
TTIDEC		#47-1623   
TTILIN		#48-1649   
KLIMON     CREATED BY  MACRO  ON 15-OCT-79 AT 14:20	PAGE 32

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

TTILNW		#49-1675   
TTIOCT		#46-1595   
WARNIN		#7-370      79-3578    79-3580    79-3582    79-3584    87-3924    139-5991   142-6092   155-6870   165-7285  
                 171-7657   171-7659  
WD22$ 		#6-331      51-1749    58-2140    128-5578   176-7991   176-7993  
WD36$ 		#6-343     #51-1747   #51-1750   #55-1937   #58-2139   #120-5141  #120-5144  #124-5383  #124-5384  #128-5580  
                #134-5815  #148-6458  #148-6467  #148-6468  #148-6469  #171-7626  #176-7989  #176-7990  #181-8181  #190-8757  
                #190-8759  #190-8761  #190-8764  #223-10265 #223-10267 #223-10269 
WSIG$S		#176-7981  #178-8073  
WTSE$S		#176-7981   178-8076  #214-9845  
WWADR 		#30-1100   
$DEF  		#4-175     #4-176     #8-443     #8-445     
$PMSG 		#44-1520