Google
 

Trailing-Edge - PDP-10 Archives - BB-BT99U-BB_1990 - 10,7/feload/feload.lst
There are 4 other files named feload.lst in the archive. Click here to see a list.
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58
FELOAD.P11    30-JAN-89 14:33		TABLE OF CONTENTS

    74		UNIVERSALS -- F11HOM - Format of the FILES-11 home block, offsets as seen from 11
   113	 UNIVERSALS -- T10HOM - Format of TOPS10 home block, as seen from 11 side
   143	 UNIVERSALS -- F11HED - format of FILES-11 file header block, as seen from 11
   193	 UNIVERSALS -- IOBITS - words and bits in the I/O page, seen from the 11
   349	 UNIVERSALS -- IOBITS - Basic CPU
   (1)	 UNIVERSALS -- IOBITS - DL11 console terminal
   (1)	 UNIVERSALS -- IOBITS - RH11/RP06 bit definitions
   351	 UNIVERSALS -- KLDHED - Format of entry in KLDCP directory
   380		DEFINITIONS - "helper" macros
   402		BLOCK 0 booting code
   601		END OF BLOCK 0 CODE
   606	000776	000002				.PRINT	1000-.;LOCATIONS LEFT IN BLOCK 0 BOOT
   608		START OF BLOCK 4-7 CODE
   625		BOOT IN AND START 20F FRONT END
  1041		END OF 2ND PART
  1045	007404	000374				.PRINT	10000-.;	BYTES REMAINING IN 2ND PART OF BOOT
  1047		IMPURE NON-INITIALIZED DATA
  1089	011226	011226				.PRINT .;END OF IMPURE AREA
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 1
FELOAD.P11    30-JAN-89 14:33

     1						.TITLE	FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89
     2
     3					;COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1989.  ALL RIGHTS RESERVED.
     4					;
     5					;
     6					;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
     7					;ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
     8					;INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
     9					;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
    10					;OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
    11					;TRANSFERRED.
    12					;
    13					;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
    14					;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 THAT IS NOT SUPPLIED BY DIGITAL.
    19
    20					;ORIGINAL PROGRAM SUPPLIED BY JEFF GUENTHER, ADP NETWORK SERVICES,
    21					;ANN ARBOR, MICHIGAN.
    22
    23					;EDIT HISTORY
    24					;
    25					;EDIT	DESCRIPTION
    26					;----	-----------
    27					;1	MODIFY SENSE OF LEFTMOST SWITCH-REGISTER BIT
    28					;	TEST SO THAT '1' MEANS LOAD KLDCP AND '0' MEANS
    29					;	LOAD RSX-20F.  ADD TITLE, COPYRIGHT STATEMENT.
    30					;	28-JAN-88/JJF
    31					;
    32					;2	CHANGE "LOADING CORIMG.SYS" TO "LOADING RSX-20F".  ALSO CHANGE
    33					;	ALL TEXT MESSAGES TO MAKE THEM MORE MEANINGFUL; ADD PREFIX 
    34					;	QUESTION-MARK BEFORE ALL ERROR MESSAGES TO FIT INTO TOPS STANDARDS.
    35					;	05-FEB-88/JJF
    36					;
    37					;3	EXTEND TABLE OF .STDTB VALUES TO INCLUDE THE ONE FOR VERSION
    38					;	16-00 OF RSX-20F.
    39					;	10-FEB-88 /JJF
    40					;
    41					;4	FIX BUG WHERE THE MESSAGES WERE TOO LONG AND THE CODE WOULDN'T
    42					;	ASSEMBLE BECAUSE IT WAS TOO BIG TO FIT IN BLOCKS 4 TO 7.
    43					;	12-MAY-88 /JJF
    44					;
    45					;5	EXTEND .STDTB TABLE TO INCLUDE VALUE FOR RSX-20F VERSION 16-01.
    46					;	30-JAN-89 /JJF
    47					;
    48					;[END OF EDIT HISTORY]
    49
    50					;;	FELOAD IS A SMALL PROGRAM USED TO LOAD THE "FRONT END" PROGRAM.
    51					;;	TAKING CUES FROM THE PDP11 SWITCH REGISTER AND THE OPERATOR
    52					;;	CONSOLE TELETYPE, IT DECIDES WHICH FRONT END SYSTEM (IE: RSX20F
    53					;;	OR KLDCP) TO RUN, SEARCHES THE APPROPRIATE FRONT END DIRECTORY
    54					;;	AND LOADS THE CORRECT BOOT FOR THE SYSTEM AND STARTS IT BY
    55					;;	BRANCHING TO LOCATION 0.
    56
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 1-1
FELOAD.P11    30-JAN-89 14:33

    57						.ENABL	ABS,LC
    58						.ENABL	LC		;REALLY LOWER CASE
    59
    60
    61					;;	If FELOAD is started at it's "starting address", rather than 0
    62					;;	then it will load rsx20f unconditionally.  This is to support
    63					;;	booting from KLDCP into RSX20F via the .P 20F or >. RSX commands.
    64
    65					;	First, the BM873YJ rom reads our block 0 code into physical core
    66					;	block 0.  Then we read in blocks 4-7 into physical locations 4000-7777.
    67					;	We always use 10000-10777 as impure data storage.
    68					;	Then if we are booting rsx20f we move ourselves to 130000 and above.
    69
    70
    71		130000			NEWADR=	130000	;RELOCATION IF WE NEED TO LOAD 20F
    72		012000			KLDIR=	12000	;BUILD KLDCP DIRECTORY HERE UPWARDS
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 2
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- F11HOM - FORMAT OF THE FILES-11 HOME BLOCK, OFFSETS AS SEEN FROM 11

    74					.SBTTL	UNIVERSALS -- F11HOM - Format of the FILES-11 home block, offsets as seen from 1
    75
    76					.MACRO	BSYM	.name,.value	;;MACRO TO DEFINE SYMBOLS
    77						W.'.name'=.offset	;;define name as current offset
    78						.offset=.offset+'.value'.;;redefine offset for next symbol
    79					.ENDM	BSYM
    80
    81					.MACRO	F11HOM	;;ALL OFFSETS BELOW ARE GIVEN IN DECIMAL
    82						.offset=0	;;	START OFF AT 0
    83						BSYM	IBSZ,2	;;	OFFSET TO INDEX-BIT-MAP SIZE
    84								;;	# OF BLOCKS IN THE "SAT" PORTION ONLY
    85								;;	SO THE FILE INDEXF.SYS IS ALWAYS LARGER
    86								;;	SINCE IT INCLUDES THE FILE HEADERS ("RIB"S)
    87								;;	AS WELL AS THE SAT.
    88						BSYM	IBLB,4	;;	DISK ADDRESS (LBN) OF THE INDEX-BIT-MAP
    89						BSYM	FMAX,2	;;	# OF FILES ALLOWED
    90						BSYM	SBCL,2	;;	STORAGE-BIT-MAP CLUSTER SIZE
    91						BSYM	DVTY,2	;;	DISK-DEVICE TYPE
    92						BSYM	VLEV,2	;;	STRUCTURE LEVEL
    93						BSYM	VNAM,12	;;	12 ASCII CHARACTERS "VOLUME NAME"
    94						BSYM	RES1,4	;;	"RESERVED"
    95						BSYM	VOWN,2	;;	VOLUME OWNERS
    96						BSYM	VPRO,2	;;	VOLUME PROTECTION
    97						BSYM	VCHA,2	;;	VOLUME CHARACTERISTICS
    98						BSYM	DFPR,2	;;	DEFAULT PROTECTION
    99						BSYM	RES2,6	;;	"RESERVED"
   100						BSYM	WISZ,1	;;	DEFAULT NUMBER OF RETRIEVAL POINTERS IN A WINDOW
   101						BSYM	FIEX,1	;;	DEFAULT NUMBER OF BLOCKS TO EXTEND FILES
   102						BSYM	LRUC,1	;;	NUMBER OF ENTRIES IN DIRECTORY LRU
   103						BSYM	AVAL,11	;;	"AVAILABLE SPACE"
   104						BSYM	CHK1,2	;;	CHECKSUM OF WORDS 0-28.
   105						BSYM	VDAT,14	;;	CREATION DATE AND TIME
   106						BSYM	VHL,100	;;	VOLUME-HEADER LABEL
   107						BSYM	SYSI,82	;;	SYSTEM-SPECIFIC INFORMATION
   108						BSYM	RVOL,254;;	RELATIVE VOLUME TABLE
   109						BSYM	CHK2,2	;;	CHECKSUM OF HOME BLOCK WORDS 0 THRU 255
   110					.ENDM	F11HOM
   111	000000					F11HOM
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 3
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- T10HOM - FORMAT OF TOPS10 HOME BLOCK, AS SEEN FROM 11 SIDE

   113					.SBTTL UNIVERSALS -- T10HOM - Format of TOPS10 home block, as seen from 11 side
   114
   115					.MACRO	WSYM	.NAME,.VALUE
   116						'.NAME'='.VALUE'.
   117					.ENDM	WSYM
   118
   119					.MACRO	T10HOM
   120					;	This stuff defines the "PDP11 WORD NUMBER" of each thing
   121					WSYM	HOMNA0,0	;;OFFSET CONTAINING SIXBIT .HOM. (TRUNCATED TO 16 BITS)
   122						SIXHOM=105755	;;TOPS10 SIXBIT "HOM" TRUNCATED TO 16 BITS
   123					WSYM	HOMNA1,1	;;2ND HALF OF SIXBIT .HOM. (ALWAYS 0)
   124
   125					;;	HERE ARE THE KLDCP POINTERS
   126					WSYM	HOMKV1,98	;;CONTAINS .RAD50 /KL / IF KLDCP VERSION 1
   127					WSYM	HOMKV2,106	;;CONTAINS .RAD50 /KLA/ IF KLDCP VERSION 2
   128					WSYM	HOMKV3,107	;;CONTAINS .RAD50 /D10/ IF KLDCP VERSION 2
   129					WSYM	HOMKCY,108	;;CONTAINS CYLINDER OF KLADFE.SYS
   130					WSYM	HOMKTS,109	;;CONTAINS TRACK/SECTOR OF KLADFE.SYS
   131					WSYM	HOMKLN,110	;;CONTAINS LENGTH OF KLADFE.SYS
   132
   133					;;	HERE ARE THE FILES11 POINTERS
   134					WSYM	HOMFEV,98	;;CONTAINS 100000 IF FILES11 VALID
   135						VALID=100000	;;BIT ON IF FILES11 VALID
   136					WSYM	HOMFE0,99	;;CONTAINS LBN OF FILES11 FILE SYSTEM
   137					WSYM	HOMFLN,101	;;LENGTH OF CONTIGUOUS FILES11 FILE SYSTEM
   138					.ENDM	T10HOM
   139
   140	000000					T10HOM		;;FORCE DEFAULT DEFINITIONS
   141
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 4
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- F11HED - FORMAT OF FILES-11 FILE HEADER BLOCK, AS SEEN FROM 11

   143					.SBTTL UNIVERSALS -- F11HED - format of FILES-11 file header block, as seen from 11
   144
   145					.MACRO	BSYM	.name,.value
   146						W.'.name'=.offset
   147						.offset=.offset+'.value'.
   148					.ENDM	BSYM
   149
   150					.MACRO	F11HED
   151						.offset=0
   152						BSYM	IDOF,1	;;	OFFSET INTO THE ID AREA
   153						BSYM	MPOF,1	;;	OFFSET INTO THE MAP AREA (FROM THE ID AREA)
   154						BSYM	FNUM,2	;;	FILE NUMBER
   155						BSYM	FSEQ,2	;;	FILE SEQUENCE
   156						BSYM	FLEV,2	;;	STRUCTURE LEVEL AND SYSTEM NUMBER
   157						BSYM	PROG,1	;;	MEMBER NUMBER
   158						BSYM	PROJ,1	;;	GROUP NUMBER
   159						BSYM	FPRO,2	;;	FILE-PROTECTION CODE
   160						BSYM	UCHA,1	;;	USER CONTROLLER FILE CHARACTERISTICS
   161					.ENDM	F11HED
   162	000000					F11HED
   163
   164					.MACRO	F11FID	;; DEFINE ID AREA
   165						.offset=0	;; OFFSET FROM THE START OF THE ID AREA
   166						BSYM	FNAM,6	;; 6 BYTES OF RAD50, 3 CHARS PER 2 BYTES
   167						BSYM	FTYP,2	;; 2 BYTES OF FILE TYPE IN RAD50
   168						BSYM	FVER,2	;; FILE VERSION # IN BINARY
   169						BSYM	RVNO,2	;; REVISION # IN BINARY
   170						BSYM	RVDT,7	;; REVISION DATE IN ASCII ddmmmyy FORMAT
   171						BSYM	RVTI,6	;; REVISION TIME IN ASCII hhmmss FORMAT
   172						BSYM	CRDT,7	;; CREATION DATE IN ASCII ddmmmyy FORMAT
   173						BSYM	CRTI,6	;; CREATE TIME IN hhmmss FORMAT
   174						BSYM	EXDT,7	;; EXPIRE DATE IN ASCII ddmmmyy FORMAT
   175						.ENDM	F11FID
   176	000000					F11FID		;;INCARNATE THE SYMBOLS
   177
   178					.MACRO	F11MAP		;; DEFINE THE MAPPING AREA TOO
   179						.offset=0
   180						BSYM	ESQN,1	;; EXTENSION SEGMENT NUMBER
   181						BSYM	ERVN,1	;; EXTENSION RELATIVE VOLUME NUMBER (NEVER USED)
   182						BSYM	EFNU,2	;; EXTENSION FILE NUMBER
   183						BSYM	EFSQ,2	;; EXTENSION SEQUENCE NUMBER
   184						BSYM	CTSZ,1	;; # OF BYTES IN A "BLOCK-COUNT FIELD" - ALWAYS 1
   185						BSYM	LBSZ,1	;; # BYTES IN "LOGICAL BLOCK NUMBER FIELD" - ALWAYS 3
   186						BSYM	USE,1	;; # RETRIEVAL POINTERS
   187						BSYM	MAX,1	;; MAX # RETRIEVAL SLOTS IN THIS MAP
   188						BSYM	RTRV,0	;; OFFSET TO RETRIEVAL POINTERS
   189					.ENDM	F11MAP
   190	000000					F11MAP		;;INCARNATE THE SYMBOLS
   191
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 5
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11

   193					.SBTTL UNIVERSALS -- IOBITS - words and bits in the I/O page, seen from the 11
   194
   195					.MACRO	IOBITS
   196					.SBTTL UNIVERSALS -- IOBITS - Basic CPU
   197
   198					V.CPU=	004	;CPU errors VECTOR
   199					V.ILL=	010	;Illegal instruction VECTOR
   200					V.RES=	010	;Reserved instruction VECTOR
   201					V.BPT=	014	;BPT, breakpoint trap VECTOR
   202					V.IOT=	020	;IOT, input/output trap VECTOR
   203					V.PWF=	024	;Power Fail trap VECTOR
   204					V.EMT=	030	;EMT, emulator trap VECTOR
   205					V.TRP=	034	;TRAP instruction
   206
   207
   208					PS=	177776	;Processor Status word (IE: PS)
   209					R.SL=	177774	;Stack limit register
   210
   211					R.R7=	177707	;R7
   212					R.PC=	R.R7	;Another name
   213					R.R6=	177706	;R6
   214					R.SP=	R.R6	;Another name
   215
   216					R.R5=	177705	;R5
   217					R.R4=	177704	;R4
   218					R.R3=	177703	;R3
   219					R.R2=	177702	;R2
   220					R.R1=	177701	;R1
   221					R.R0=	177700	;R0
   222
   223					R.SWR=	177570	;Switch register
   224					SWR=R.SWR	;Another name
   225					R.DSP=	R.SWR	;Display register
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 6
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11

   227					.SBTTL UNIVERSALS -- IOBITS - DL11 console terminal
   228
   229					V.DLI=	060	;CONSOLE TERMINAL KEYBOARD VECTOR
   230					V.DLO=	064	;CONSOLE TERMINAL PRINTER VECTOR
   231
   232					DL.RSR=	177560	;RECEIVER STATUS REGISTER
   233					  DLDSCH=100000	;R/O DATASET STATUS CHANGE. REQUEST DATASET INTERRUPT.
   234					  DLRNGI=40000	;R/O RING INDICATOR. IF RING COMES ON, SETS DLDSCH.
   235					  DLCTS=20000	;R/O CLEAR TO SEND. IF CTS CHANGES, SETS DLDSCH
   236					  DLCD=10000	;R/O CARRIER DETECT. IF CD CHANGES, SETS DLDSCH.
   237					  DLRA=4000	;R/O RECEIVER ACTIVE. SET IF UART IS ASSEMBLING A CHARACTER.
   238					  DLSRD=2000	;R/O SECONDARY RECEIVED DATA. IF SRD CHANGES, SETS DLDSCH.
   239					  DLRD=200	;R/O RECEIVER DONE.  SET IF COMPLETE CHARACTER IS READY TO READ.
   240					  DLRIE=100	;R/W RECEIVER INTERRUPT ENABLE.  DO INTERRUPT IF DLRD TURNS ON.
   241					  DLDIE=40	;R/W DATASET INTERRUPT ENABLE. DO INTERRUPT IF DLDSCH TURNS ON
   242					  DLSTD=10	;R/W SECONDARY TRANSMITTED DATA. IF SET, SIGNAL GOES ON.
   243					  DLRTS=4	;R/W REQUEST TO SEND. IF SET, SIGNAL GOES ON.
   244					  DLDTR=2	;R/W DATA TERMINAL READY.  IF SET, SIGNAL GOES ON.
   245					  DLRDRE=1	;W/O READER ENABLE.  ADVANCE ASR PTR ONE FRAME IF AUTOMATIC.
   246
   247					DL.RBF=	177562	;RECEIVER BUFFER
   248					  DLRERR=100000	;R/O RECEIVER ERROR.  LOGICAL OR OF (DLROVR,DLRFRM,DLRPAR)
   249					  DLROVR=40000	;R/O RECEIVER OVERRUN.  THE OLD CHARACTER IS REPLACED WITH NEW.
   250					  DLRFRM=20000	;R/O RECEIVER FRAMING ERROR.
   251					  DLRPAR=10000	;R/O RECEIVER DATA PARITY ERROR.
   252					  DLRDAT=377	;R/O RECEIVER DATA. THE CHARACTER READ.
   253
   254					DL.XSR=	177564	;XMITTER STATUS
   255					  DLXRDY=200	;R/O TRANSMITTER READY. REQUESTS TRANSMITTER INTRP.
   256					  DLXIE=100	;R/W TRANSMITTER INTERRUPT ENABLED. DO INTERRUPT IF DLXRDY SET.
   257					  DLXMNT=4	;R/W TRANSMITTER MAINTENENCE.  CAUSES OUTPUT TO INPUT LOOP.
   258					  DLXBRK=1	;R/W TRANSMITTER BREAK.  FORCE BREAK SIGNAL UNTIL CLEARED.
   259
   260					DL.XBF=	177566	;XMITTER BUFFER
   261					  DLXDAT=377	;W/O TRANSMIT DATA. CHARACTER TO TYPE.
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 7
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11

   263					.SBTTL UNIVERSALS -- IOBITS - RH11/RP06 bit definitions
   264
   265
   266					V.RH11=	254	;RH11 INTERRUPT VECTOR
   267
   268					RP.CS1=	176700	;;CONTROL AND STATUS REGISTER 1
   269					  RPSC=100000	;;R/O SPECIAL CONDITION. LOGICAL OR OF "RPTRE","RPATTN","RPMCPE"
   270					  RPTRE=40000	;;R/O TRANSFER ERROR.  LOR OF DLT,WCE,UPE,NED,NEM,PGE,
   271							;;MXF, MDPE, OR A DRIVE ERROR DURING DATA XFER.
   272					  RPCPE=20000	;;R/O CONTROL BUS PARITY ERROR (DURING REMOTE REGISTER READ)
   273					  RPDVA=4000	;;R/O DRIVE AVAILABLE. 1=NOT BUSY ON OTHER PORT.
   274					  RPPSEL=2000	;;R/W PORT SELECT. 1=DO DATA TRANSFER VIA UNIBUS B.
   275					  RPAD17=1000	;;R/W UNIBUS ADDRESS BIT 17.
   276					  RPAD16=400	;;R/W UNIBUS ADDRESS BIT 16.
   277					  RPRDY=200	;;R/O READY. 1=DATA TRANSFER IN PROGRESS. 0=DONE.
   278					  RPIE=100	;;R/W INTERRUPT ENABLE. DO INTERUPT IF RPRDY OR RPATTN GET SET.
   279					  RPFUNC=77	;;R/W FUNCTION AND GO BITS.
   280					    RPOPNP=0	;  NO OPERATION
   281					    RPOPUL=2	;  UNLOAD/STANDBY
   282					    RPOPRC=6	;  RECALIBRATE
   283					    RPOPDC=10	;  DRIVE CLEAR
   284					    RPOPRP=12	;  RELEASE PORT
   285					    RPOPSR=30	;  SEARCH COMMAND
   286					    RPOPWC=50	;  WRITE CHECK DATA
   287					    RPOPWH=52	;  WRITE CHECK HEADER & DATA
   288					    RPOPWD=60	;  WRITE DATA
   289					    RPOPWF=62	;  WRITE FORMAT (HEADER & DATA)
   290					    RPOPRD=70	;  READ DATA
   291					    RPOPRF=72	;  READ FORMAT (HEADER & DATA)
   292					    RPOPSK=4	;  SEEK
   293					    RPOPOF=14	;  OFFSET
   294					    RPOPCL=16	;  (RETURN TO) CENTERLINE
   295					    RPOPPA=22	;  PACK ACKNOWLEDGE
   296					    RPOPRI=20	;  READ-IN PRESET
   297					      RPGO=1	;;R/W GO. REQUEST DRIVE TO DO FUNCTION. CLEARED WHEN DONE.
   298
   299					RP.WC=	176702	;;R/W WORD COUNT REGISTER. 2s COMPLEMENT WORD COUNT FOR XFER.
   300
   301					RP.BA=	176704	;;R/W UNIBUS ADDRESS REGISTER. LOW 15 BITS OF XFER ADDRESS.
   302
   303					RP.DA=	176706	;;DESIRED SECTOR/TRACK ADDRESS REGISTER
   304					  RPTRKA=017400	;;R/W TRACK ADDRESS - HIGH BYTE OF WORD IS TRACK ADDRESS
   305					  RPSCTA=37	;;R/W SECTOR ADDRESS - LOW BYTE OF WORD IS SECTOR ADDRESS
   306
   307					RP.CS2=	176710	;;CONTROL AND STATUS 2 REGISTER
   308					  RPDLT=100000	;;R/O DATA LATE. CAUSES RPTRE TO GET SET.
   309					  RPWCE=40000	;;R/O WRITE CHECK ERROR. MISMATCH DURING WRITE. SETS RPTRE.
   310
   311					RP.DS=	176712	;;DRIVE STATUS REGISTER
   312					  RPATA=100000	;;R/O ATTENTION.
   313					  RPERR=40000	;;R/O SET IF RP.ER1,RP.ER2,RP.ER3 GET SET. ONLY RPOPDC CAN CLR.
   314
   315					RP.ER1=	176714	;;ERROR REGISTER 01
   316					  RPDCK=100000	;;R/W DATA CHECK (IE: CORRECTABLE)
   317					  RPUNS=40000	;;R/W UNSAVE (LOGICAL OR OF ALL UNSAFE BITS IN RPER2&RPER3)
   318					  RPOPI=20000	;;R/W OPERATION INCOMPLETE
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 7-1
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11

   319					  RPDTE=10000	;;R/W DRIVE TIMING ERROR
   320					  RPWLE=4000	;;R/W WRITE LOCK ERROR
   321					  RPIAE=2000	;;R/W INVALID ADDRESS ERROR (DISK ADDRESS, NOT CORE ADDRESS)
   322					  RPAOE=1000	;;R/W ADDRESS OVERFLOW ERROR (CYLINDER REGISTER OVERFLOWED)
   323					  RPHCRF=400	;;R/W HEADER CRC ERROR
   324					  RPHCE=200	;;R/W HEADER COMPARE ERROR
   325					  RPECH=100	;;R/W ECC HARD ERROR
   326					  RPWCF=40	;;R/W WRITE CLOCK FAIL
   327					  RPFER=20	;;R/W FORMAT ERROR (OFFSET FMT DOESN'T MATCH DATA ON DISK)
   328					  RPPAR=10	;;R/W PARITY ERROR
   329					  RPRMR=4	;;R/W REGISTER MODIFICATION REFUSED
   330					  RPILR=2	;;R/W ILLEGAL REGISTER
   331					  RPILF=1	;;R/W ILLEGAL FUNCTION CODE
   332
   333					RP.OF=	176732	;;OFFSET REGISTER
   334					  RPSCG=100000	;;R/W SIGN CHANGE (FLIPS IF HEAD IS OVER TRUE TRACK'S CENTERLINE
   335					  RPFMT2=10000	;;R/W 1 WHEN 16BIT/WORD FORMAT, 0 WHEN 18BIT/WORD FORMAT
   336					  RPECI=4000	;;R/W 1 TO DISABLE ECC ERROR CORRECTION
   337					  RPHCI=2000	;;R/W 1 TO DISABLE "HEADER COMPARE"
   338					  RPOFSD=377	;;R/W OFFSET INFORMATION
   339
   340					RP.DC=	176734	;;DESIRED CYLINDER
   341					  RPCYLA=777	;;R/W CYLINDER ADDRESS.
   342
   343					RP.EC1=	176744	;;ECC POSITION
   344							;;R/O
   345
   346					RP.EC2=	176746	;;ECC PATTERN
   347							;;R/O
   348					.ENDM	IOBITS
   349	000000					IOBITS
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 8
FELOAD.P11    30-JAN-89 14:33		UNIVERSALS -- KLDHED - FORMAT OF ENTRY IN KLDCP DIRECTORY

   351					.SBTTL UNIVERSALS -- KLDHED - Format of entry in KLDCP directory
   352
   353					.MACRO	WSYM	.NAME
   354						W.'.NAME'=.OFFSET
   355						.OFFSET=.OFFSET+2
   356					.ENDM	WSYM
   357		000000			.OFFSET=0
   358
   359					.MACRO	KLDHED
   360					WSYM	KFL0	;FIRST HALF OF KLDCP FILE NAME
   361					WSYM	KFL1	;SECOND HALF OF KLDCP FILE NAME
   362					WSYM	KEXT	;EXT OF KLDCP FILE NAME
   363					WSYM	KCRE	;CREATION DATA
   364					WSYM	KCYL	;CYLINDER OF FILE
   365					WSYM	KTS	;TRACK/SECTOR
   366					WSYM	KWAH	;WORDS ALLOCATED (HIGH)
   367					WSYM	KWAL	;WORDS ALLOCATED (LOW)
   368					WSYM	K1LA	;PDP11 LOAD ADDDRESS
   369					WSYM	K1SA	;PDP11 START ADDRESS
   370					WSYM	KTYP	;FILE TYPE & FILE STATUS
   371					WSYM	KCHK	;CHECK SUM
   372					WSYM	KRS1	;RESERVED (0)
   373					WSYM	KRS2	;RESERVED (0)
   374					WSYM	KCPH	;CURRENT POSITION (HIGH)
   375					WSYM	KCPL	;CURRENT POSITION (LOW)
   376					FDESIZ=.OFFSET	;SIZE OF AN ENTRY
   377					.ENDM	KLDHED
   378	000000					KLDHED
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 9
FELOAD.P11    30-JAN-89 14:33		DEFINITIONS - "HELPER" MACROS

   380						.SBTTL	DEFINITIONS - "helper" macros
   381
   382					.MACRO	TYPE	.string	;;MACRO TO TYPE A STRING ON THE CONSOLE
   383						.ENABL	LC
   384						CALL	STYPE
   385						.ASCIZ	@'.string'@<15><12>
   386						.EVEN
   387					.ENDM	TYPE
   388
   389					.MACRO	ABORT	.string	;;MACRO TO TYPE A STRING AND THEN HALT
   390						TYPE	<'.string'>
   391						HALT
   392					.ENDM	ABORT
   393
   394					.MACRO	CALL	.dest
   395						JSR	PC,.dest
   396					.ENDM	CALL
   397
   398					.MACRO	RETURN
   399						RTS	PC
   400					.ENDM	RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 10
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   402						.SBTTL	BLOCK 0 booting code
   403		000000				.=0			;LOAD INTO LOCATION 0
   404
   405					;	THIS CODES RESIDES IN PHYSICAL DISK BLOCK 0; THE ROM LOADS IT
   406	000000	010067	011134		FELOAD:	MOV	R0,INITR0
   407	000004	012700	011142			MOV	#INITR1,R0
   408	000010	010120				MOV	R1,(R0)+			;SAVE R1
   409	000012	010220				MOV	R2,(R0)+			;SAVE R2
   410	000014	010320				MOV	R3,(R0)+			;SAVE R3
   411	000016	010420				MOV	R4,(R0)+			;SAVE R4
   412	000020	010520				MOV	R5,(R0)+			;SAVE R5
   413					;	MOV	SP,(R0)+			;SAVE SP
   414	000022	010105				MOV	R1,R5				;PRESERVE CSR ADDRESS IN R5
   415	000024	016567	000010	011130		MOV	RP.CS2-RP.CS1(R5),RPUNIT	;SAVE UNIT NUMBER
   416
   417					;	NOW READ IN 2ND PART OF BOOT
   418	000032	012700	004000			MOV	#PROMPT,R0		;UNIBUS ADDRESS OF 2ND PART
   419	000036	005001				CLR	R1			;HIGH ORDER LBN=0
   420	000040	012702	000004			MOV	#4,R2			;LOW ORDER LBN=4
   421	000044	010203				MOV	R2,R3			;REQUEST 4 BLOCK READ
   422	000046	012706	010120			MOV	#STAK,SP		;INIT THE STACK POINTER
   423	000052					CALL	REDBLK			;READ THAT BLOCK FROM RP04
   424	000056	103402				BCS	2$			;BRANCH IF CAN'T READ 2ND PART
   425	000060	000167	003714		1$:	JMP	PROMPT		;JOIN "2nD PART CODE"
   426
   427	000064				2$:	ABORT	<?Can't get FELOAD part 2>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 11
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   429
   430					;	ROUTINE TO TYPE A CHARACTER ON THE CONSOLE TERMINAL
   431	000126	010037	177566		TYO:	MOV	R0,@#DL.XBF		;TYPE THE CHARACTER
   432	000132	105737	177564		TYO1:	TSTB	@#DL.XSR			;WAIT FOR "DONE" TO APPEAR
   433	000136	002375				BGE	TYO1			;LOOP UNTIL IT TURNS ON
   434	000140	000207				RTS	PC
   435
   436					;	ROUTINE TO TYPE A STRING
   437	000142	012601			STYPE:	MOV	(SP)+,R1		;PICK UP ADDRESS OF STRING
   438	000144	112100			STYPE1:	MOVB	(R1)+,R0		;PICK UP A BYTE
   439	000146	001403				BEQ	STYPE2			;EXIT IF WE PICK UP A ZERO
   440	000150					CALL	TYO			;OTHERWISE TYPE IT
   441	000154	000773				BR	STYPE1			;LOOP TILL WE FIND THE 0
   442	000156	005201			STYPE2:	INC	R1			;ADVANCE ONE BYTE
   443	000160	042701	000001			BIC	#1,R1			;TURN OFF ODD BIT
   444	000164	000111				JMP	@R1			;RETURN TO CALLER
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 12
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   446					;	ROUTINE TO ROTATE THE 3 WORDS @R1 (R3) BITS LEFT
   447					;	(USED TO DO ECC CORRECTION)
   448	000166	006311			PROL36:	ASL	(R1)
   449	000170	006161	000002			ROL	2(R1)
   450	000174	006161	000004			ROL	4(R1)
   451	000200	005303				DEC	R3
   452	000202	001371				BNE	PROL36
   453	000204					RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 13
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   455					;	ROUTINE TO READ RP04/RP05/RP06 DISK BLOCKS
   456					;ENTER:
   457					;	R0/	UNIBUS AADRESS OF 1ST WORD TO XFER
   458					;	R1/	HIGH ORDER WORD OF LBN
   459					;	R2/	LOW ORDER WORD OF LBN
   460					;	R3/	# OF BLOCKS TO READ CONTIGUOUSLY, 0 MEANS 1
   461					;	R5/	ADDRESS OF RPCS1
   462
   463	000206	010067	010746		REDBLK:	MOV	R0,SAVUBA	;SAVE UNIBUS ADDRESS
   464	000212	010367	010752			MOV	R3,SAVCNT	;SAVE COUNT OF BLOCKS
   465	000216	010167	010742		REDBL0:	MOV	R1,SAVHLB	;SAVE HIGH LBN
   466	000222	010267	010740			MOV	R2,SAVLLB	;SAVE LOW LBN
   467
   468					;	HERE TO READ A BLOCK
   469	000226	012704	000020			MOV	#16.,R4		;TRY UP TO 16 TIMES
   470	000232	016765	010724	000010	REDBL1:	MOV	RPUNIT,RP.CS2-RP.CS1(R5)	;SETUP UNIT FIELD
   471	000240	016765	010714	000004		MOV	SAVUBA,RP.BA-RP.CS1(R5)	;SET THE UNIBUS ADDRESS
   472	000246	012765	177400	000002		MOV	#-400,RP.WC-RP.CS1(R5)	;SET THE WORD COUNT FOR 1 BLOCK
   473	000254	005003				CLR	R3			;START OFF WITH 0 ANSWER
   474	000256	005203			1$:	INC	R3			;COUNT A SUBTRACTION
   475	000260	162702	000574			SUB	#380.,R2		;USE A SUBTRACT LOOP ...
   476	000264	005601				SBC	R1			;...TO CALCULATE "LBN / BPC"
   477	000266	100373				BPL	1$			;...TO GET DESIRED CYLINDER ADDRESS
   478	000270	005303				DEC	R3			;FORGET THE LAST SUBTRACTION
   479	000272	062702	000574			ADD	#380.,R2		;PUT BACK THE LAST CYLINDER'S BLOCKS
   480	000276	005501				ADC	R1			;...
   481					; NOW R3=DESIRED CYLINDER ADDRESS
   482	000300	010365	000034			MOV	R3,RP.DC-RP.CS1(R5)	;SPECIFY THE DESIRED CYLINDER
   483
   484	000304	005003				CLR	R3			;CLEAR RESULT
   485	000306	005203			2$:	INC	R3			;COUNT FIRST ONE
   486	000310	162702	000024			SUB	#20.,R2
   487	000314	005601				SBC	R1			;TAKE CARE OF CARRY (IF ANY)
   488	000316	100373				BPL	2$			;LOOP UNTIL WE GO TOO FAR
   489	000320	062702	000024			ADD	#20.,R2			;RETURN IT
   490	000324	005501				ADC	R1			;FIX FINAL CARRY
   491	000326	005303				DEC	R3			;ONE LESS THAN WE THOUGHT
   492
   493	000330	000303				SWAB	R3			;TRACK IN LH
   494	000332	050302				BIS	R3,R2			;INSERT SECTOR
   495	000334	010265	000006			MOV	R2,RP.DA-RP.CS1(R5)	;TELL DRIVE TRACK/SECTOR
   496
   497	000340	005065	000032			CLR	RP.OF-RP.CS1(R5)	;CLEAR OFFSET
   498	000344	020427	000010			CMP	R4,#8.		;2ND 8 TRIES?
   499	000350	003003				BGT	3$			;NO
   500	000352	012765	002000	000032		MOV	#RPHCI,RP.OF-RP.CS1(R5)	;YES, TRY TURNING ON HEADER INHIBIT
   501	000360	012765	000071	000000	3$:	MOV	#71,RP.CS1-RP.CS1(R5)	;TELL KONTROLLER TO DO THE READ
   502	000366	005000				CLR	R0			;CLEAR TIMEOUT COUNT
   503	000370	005200			4$:	INC	R0			;COUNT UP TIMER
   504	000372	001404				BEQ	5$			;BRANCH IF XFER TIMED OUT
   505	000374	032765	060200	000000		BIT	#RPTRE!RPCPE!RPRDY,RP.CS1-RP.CS1(R5)	;TEST FOR DONE
   506	000402	001772				BEQ	4$			;LOOP TILL ONE COMES ON
   507
   508	000404	005304			5$:	DEC	R4			;CHECK RETRY COUNT
   509	000406	100434				BMI	GIVEUP			;GIVE UP IF NO MORE POSSIBLE
   510	000410	005700				TST	R0			;TEST TIMEOUT COUNT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 13-1
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   511	000412	001425				BEQ	RETRY			;IT TIMED OUT, TRY IT ALL OVER AGAIN
   512	000414	032765	060000	000000		BIT	#RPCPE!RPTRE,RP.CS1-RP.CS1(R5);CHECK CONTROL BUS PARITY ERROR
   513	000422	001021				BNE	RETRY			;RETRY ENTIRE OPERATION
   514	000424	032765	140000	000012		BIT	#RPATA!RPERR,RP.DS-RP.CS1(R5)	;CHECK DISK ERRORS
   515	000432	001024				BNE	TRYECC			;GO CONSIDER CORRECTABLE ERROR
   516
   517					;IF WE GET HERE, THE XFER WAS APPARENTLY ERROR-FREE
   518	000434	016702	010526		REDAOK:	MOV	SAVLLB,R2		;RESTORE LOW LBN
   519	000440	016701	010520			MOV	SAVHLB,R1		;RESTORE HIGH LBN
   520	000444	005202				INC	R2			;ADD 1 TO LBN
   521	000446	005501				ADC	R1			;ADD POSSIBLE CARRY
   522	000450	062767	001000	010502		ADD	#1000,SAVUBA		;STEP TO NEXT BLOCK ADDRESS
   523	000456	005367	010506			DEC	SAVCNT
   524	000462	003255				BGT	REDBL0			;READ ANOTHER
   525					;	ADD TO SAVUBA WILL NEVER "OVERFLOW" 16 BIT ADDRESS
   526					;	CLC				;CLEAR ERROR
   527	000464					RETURN
   528
   529					;HERE TO RETRY THE XFER
   530	000466	016701	010472		RETRY:	MOV	SAVHLB,R1		;RESTORE THE LBN TO XFER
   531	000472	016702	010470			MOV	SAVLLB,R2		;...
   532	000476	000655				BR	REDBL1			;GO DO THE OPERATION AGAIN
   533					;WE DID OUR BEST, GIVE UP
   534	000500	000261			GIVEUP:	SEC
   535	000502					RETURN
   536
   537					;HERE IF READ FAILED, TRY AGAIN
   538	000504	032765	077777	000014	TRYECC:	BIT	#77777,RP.ER1-RP.CS1(R5)	;CHECK FOR ANY ERROR, 'CEPT ECC DATA
   539	000512	001365				BNE	RETRY			;IF NOT ECC ERR, TRY VIA HARD RE-READ
   540	000514	016502	000044			MOV	RP.EC1-RP.CS1(R5),R2	;GET ECC POSITION
   541	000520	001762				BEQ	RETRY			;GIVE UP IF POS=0
   542
   543	000522	005067	010452			CLR	ECWRD0
   544	000526	005067	010450			CLR	ECWRD0+2
   545	000532	005067	010446			CLR	ECWRD0+4
   546	000536	005067	010444			CLR	ECWRD0+6
   547	000542	005067	010442			CLR	ECWRD0+10
   548	000546	005067	010440			CLR	ECWRD0+12
   549
   550	000552	016567	000046	010426		MOV	RP.EC2-RP.CS1(R5),ECMSK0;GET ECC CORRECTION
   551
   552	000560	005302				DEC	R2			;DIVIDE POSITION BY 18.
   553	000562	005003				CLR	R3
   554	000564	162702	000022		61$:	SUB	#18.,R2			;
   555	000570	002402				BLT	62$			;
   556	000572	005203				INC	R3			;
   557	000574	000773				BR	61$			;
   558
   559	000576	062702	000022		62$:	ADD	#18.,R2			;DONE, R3=WORD, R2=SHIFTS
   560	000602	006303				ASL	R3			;DOUBLE WORD POSITION, 11 ADR IN BYTES
   561	000604	066703	010350			ADD	SAVUBA,R3
   562	000610	010367	010400			MOV	R3,ECADR0		;SETUP 1ST BAD WORD ADDRESS
   563
   564	000614	005723				TST	(R3)+
   565	000616	010367	010374			MOV	R3,ECADR1		;SETUP 2ND BAD WORD ADDRESS
   566					;	MOV	#ECWRD0,R1
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 13-2
FELOAD.P11    30-JAN-89 14:33		BLOCK 0 BOOTING CODE

   567	000622	011367	010352			MOV	(R3),ECWRD0		;SETUP 2ND BAD WORD
   568	000626	011367	010370			MOV	(R3),ECBAD1		;SAVE 2ND BAD WORD
   569	000632					CALL	PROL36			;POSITION 2ND WORD INTO UPPER 18 BITS
   570
   571	000636	017767	010352	010334		MOV	@ECADR0,ECWRD0		;SETUP 1ST BAD WORD
   572	000644	016767	010330	010346		MOV	ECWRD0,ECBAD0		;SAVE 1ST BAD WORD
   573
   574					;	MOV	#ECMSK0,R1
   575	000652	010203				MOV	R2,R3
   576	000654					CALL	PROL36			;POSITION ECC CORRECTION WORD
   577
   578	000660	016746	010322			MOV	ECMSK0,-(SP)		;CORRECT BITS 0-16
   579	000664	046716	010310			BIC	ECWRD0,(SP)		;
   580	000670	046767	010312	010302		BIC	ECMSK0,ECWRD0
   581	000676	052667	010276			BIS	(SP)+,ECWRD0
   582
   583	000702	016746	010302			MOV	ECMSK0+2,-(SP)		;CORRECT BITS 17-32
   584	000706	046716	010270			BIC	ECWRD1,(SP)		;
   585	000712	046767	010272	010262		BIC	ECMSK0+2,ECWRD1
   586	000720	052667	010256			BIS	(SP)+,ECWRD1
   587
   588	000724	016766	010262	177777		MOV	ECMSK0+4,-1(SP)		;CORRECT BITS 33-36
   589	000732	046716	010246			BIC	ECWRD2,(SP)
   590	000736	046767	010250	010240		BIC	ECMSK0+4,ECWRD2
   591	000744	052667	010234			BIS	(SP)+,ECWRD2
   592
   593					;	MOV	#ECWRD0,R1
   594	000750	016777	010224	010236		MOV	ECWRD0,@ECADR0		;PUT 1ST CORRECT WORD BACK IN CORE
   595
   596	000756	012703	000016			MOV	#14.,R3
   597	000762					CALL	PROL36
   598	000766	016777	010212	010222		MOV	ECWRD2,@ECADR1		;PUT 2ND WORD BACK IN CORE
   599	000774	000617				BR	REDAOK			;NOW GO TO NEXT BLOCK
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 14
FELOAD.P11    30-JAN-89 14:33		END OF BLOCK 0 CODE

   601						.SBTTL	END OF BLOCK 0 CODE
   602
   603		000776				.DEPHASE
   604		000776				.=.
   605		000377			B0WRDS=./2		;# OF WORDS USED IN BLOCK 0 (NOT BYTES)
   606	000776	000002				.PRINT	1000-.;LOCATIONS LEFT IN BLOCK 0 BOOT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 15
FELOAD.P11    30-JAN-89 14:33		START OF BLOCK 4-7 CODE

   608						.SBTTL	START OF BLOCK 4-7 CODE
   609
   610		004000				.=4000				;THIS GOES INTO BLOCK 4 (THRU 7)
   611
   612	004000	032767	000001	005144	PROMPT:	BIT	#1,INITR5		;READ "SWR" BUTTON PUSHED?
   613	004006	001032				BNE	SWRFOO			;YES, GO DO THAT
   614
   615	004010	105767	005136			TSTB	INITR5			;TEST THE "DISK" BIT
   616	004014	100427				BMI	DISK			;BRANCH IF DISK SET
   617					;N.B.: HE PUSHED DTA/FLOPPY BUTTON - AND WE COULDN'T HAVE GOTTEN HERE!
   618	004016					ABORT	<?FELOAD cannot boot DECtape or floppy>
   619
   620	004074				SWRFOO:
   621	004074	032737	100000	177570	DISK:	BIT	#100000,@#SWR		;IS THE HIGH ORDER BIT SET?
   622	004102	001033				BNE	GETKLD			;YES, GET KLDCP
   623	004104	000412				BR	GETRSX			;NO, GET RSX20F
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 16
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   625						.SBTTl	BOOT IN AND START 20F FRONT END
   626
   627	004106	012767	100207	005036	USERSX:	MOV	#100207,INITR5
   628	004114	012767	176700	005020		MOV	#176700,INITR1
   629	004122	012705	176700			MOV	#176700,R5
   630	004126	012706	010120			MOV	#STAK,SP
   631	004132				GETRSX:	CALL	MOVEME			;GO TO NEW HOME
   632	004136					CALL	GETHOM			;GET THE TOPS10 HOME BLOCKS
   633	004142					CALL	GETH11			;GET THE FILES11 HOME BLOCK
   634	004146					CALL	FND550			;GO FIND FHB FOR 5,5,0 (CORIMG.SYS)
   635	004152					CALL	RED550			;GO READ IN CORIMG.SYS INTO CORE
   636	004156					CALL	FNDACP			;GO FIND F11ACP.TSK
   637	004162					CALL	POK20F			;GO POKE SOME MAGIC VALUES INTO
   638										;THE RESIDENT IMAGE OF THE 20F MONITOR
   639	004166	000167	002662			JMP	RESACS			;RESTORE ACS AND START RSX20F
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 17
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   641					;	HERE TO LOAD AND START KLDCP FRONT END
   642	004172				GETKLD:	CALL	GETHOM		;GET TOPS10 HOME BLOCK(S)
   643	004176					CALL	VRFKLD		;VERIFY THIS IS A KLAD PACK
   644	004202					CALL	FNDDIR		;FIND THE DIRECTORY LOCATION AND SIZE
   645	004206					CALL	REDDIR		;GO READ KLAD10 DIRECTORY
   646	004212					CALL	FNDKLD		;GO FIND KLDCP.BIN IN THE DIRECTORY
   647	004216					CALL	LODKLD		;GO LOAD KLDCP.BIN
   648
   649	004222	000167	002626			JMP	RESACS		;GO START KLDCP
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 18
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   651	004226	012702	000001		GETHOM:	MOV	#1,R2
   652	004232					CALL	GETH10
   653	004236	103401				BCS	2$
   654	004240				1$:	RETURN
   655
   656	004242	012702	000012		2$:	MOV	#12,R2
   657	004246					CALL	GETH10
   658	004252	103372				BCC	1$
   659	004254					ABORT	<?Unable to read HOME.SYS>
   660
   661					;	ROUTINE TO READ A TOPS-10 HOME BLOCK
   662
   663	004316	016700	003060		GETH10:	MOV	DBA,R0			;ADDRESS OF DISK BUFFER
   664	004322	005001				CLR	R1			;HIGH ORDER LBN OF HOME BLOCKS ALWAYS 0
   665	004324	005003				CLR	R3			;ALWAYS JUST ONE BLOCK TO READ
   666	004326					CALL	REDBLK			;READ THE HOME BLOCK
   667	004332	103002				BCC	2$			;BRANCH IF NO ERRORS
   668	004334	000261			1$:	SEC				;SET CARRY SO CALLER SEES ERROR
   669	004336	000207				RTS	PC			;RETURN WITH CARRY SET
   670
   671					;HERE IF READ OF BLOCK SUCCEEDED
   672	004340	022767	105755	003554	2$:	CMP	#105755,DB		;MAKE SURE LH OF PDP10 WORD #0='HOM'
   673	004346	001372				BNE	1$			;GIVE ERROR RETURN IF NOT
   674	004350	005767	003550			TST	DB+2			;MAKE SURE RH OF PDP10 WORD#0 IS ZERO
   675	004354	001367				BNE	1$			;GIVE ERROR RETURN IF NOT
   676
   677	004356	000241				CLC				;CLEAR CARRY
   678	004360	000207				RTS	PC			;GIVE GOOD RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 19
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   680					;	ROUTINE TO READ IN THE FILES11 HOME BLOCK
   681					;	ENTER WITH GOOD TOPS10 HOME BLOCK IN DB
   682	004362	016701	004040		GETH11:	MOV	DB+<HOMFE0*2>-2,R1	;GET "HIGH" LBN OF HOME BLOCK
   683	004366	100431				BMI	1$			;BRANCH IFF VALID BIT IS SET
   684	004370					ABORT	<?VALID bit not set in TOPS-10 home block>
   685
   686					;	HERE IF TOPS10 HOME BLOCK SAYS WE HAVE AN RSX20F FILE AREA
   687					;	READ IN THE FILES11 HOME BLOCK
   688	004452	110101			1$:	MOVB	R1,R1			;ISOLATE LOWBYTE (OF HIGH WORD)
   689	004454	016702	003750			MOV	DB+<HOMFE0*2>,R2	;GET LOW WORD OF HOME BLOCK LBN
   690	004460	105002				CLRB	R2			;CLEAR LOW BYTE
   691	004462	062702	000400			ADD	#400,R2			;STEP TO MULTIPLE OF 400 SECTORS
   692	004466	005003				CLR	R3			;SETUP TO READ 0 BLOCKS (=1 BLOCK)
   693	004470	016700	002706			MOV	DBA,R0			;SETUP TO READ INTO DISK BUFFER
   694
   695	004474					CALL	REDBLK			;READ WHAT OUGHT TO BE FILE11 HOME BLOCK
   696	004500	103026				BCC	2$			;
   697	004502					ABORT	<?Unable to read FILES-11 home block>
   698	004556				2$:	RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 20
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   700					;	ROUTINE TO "FIND" THE FHB FOR CORIMG.SYS.
   701					;	CORIMG.SYS IS "KNOWN" FILE 5,5,0 SO LOOKUP THE QUICK WAY.
   702					;	ENTER WITH GOOD FILES11 HOME BLOCK IN DB
   703	004560	016701	003340		FND550:	MOV	DB+W.IBLB,R1		;GET HIGH ORDER INDEX BIT MAP LBN
   704	004564	016702	003336			MOV	DB+W.IBLB+2,R2		;GET LOW ORDER LBN
   705	004570	066702	003326			ADD	DB+W.IBSZ,R2		;ADD SIZE OF BIT MAP TO GET LBN OF 1,1,0
   706	004574	005501				ADC	R1			;ADD THE OVERFLOW OF THE LOW ORDER ADD
   707	004576	062702	000004			ADD	#5-1,R2			;COMPUTE ADDRESS OF (5,5,0)
   708	004602	005501				ADC	R1			;...
   709	004604	010167	004312			MOV	R1,SAVR1		;SAVE R1 OF FHB FOR CORIMG
   710	004610	010267	004310			MOV	R2,SAVR2		;SAVE R2 OF FHB FOR CORIMG
   711	004614	005003				CLR	R3			;SPECIFY 0 BLOCKS (=1 BLOCK)
   712	004616	016700	002560			MOV	DBA,R0			;READ INTO DISK BUFFER
   713	004622					CALL	REDBLK			;READ WHAT OUGHT TO BE THE RIB OF
   714										;(5,5,0), IE: CORIMG.SYS
   715	004626	103033				BCC	3$
   716	004630					ABORT	<?Can't read FHB of CORIMG.SYS to load RSX-20F>
   717
   718					;	HERE WHEN WE HAVE (APPARENTLY) READ IN THE FHB FOR CORIMG.SYS.
   719					;	DO SOME (CASUAL) VERIFICATION THAT IT REALLY...
   720					;	...IS A GOOD FHB FOR CORIMG.SYS(5,5,0).
   721	004716	016701	003202		3$:	MOV	DB+W.FNUM,R1		;GET FILE NUMBER
   722	004722	016702	003200			MOV	DB+W.FSEQ,R2		;GET FILE SEQUENCE NUMBER
   723	004726	020102				CMP	R1,R2			;THE SAME?
   724	004730	001433				BEQ	5$			;BRANCH AHEAD IF FILSEQ=FILNUM
   725	004732					ABORT	<?Sequence # of CORIMG.SYS not equal to file #>
   726
   727	005020	020127	000005		5$:	CMP	R1,#5			;SHOULD BE FILE (5,5,0)
   728	005024	001430				BEQ	6$			;
   729	005026					ABORT	<?File ID for CORIMG.SYS is not (5,5,0)>
   730
   731	005106				6$:	RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 21
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   733					;	ROUTINE TO READ CORIMG.SYS INTO CORE IN THE PROPER PLACE (0-127777)
   734					;	ENTER WITH GOOD FHB FOR CORIMG.SYS IN DB
   735	005110				RED550:	TYPE	<[Loading RSX-20F]>
   736	005140	116702	002757			MOVB	DB+W.MPOF,R2		;GET OFFSET OF ID AREA
   737	005144	060202				ADD	R2,R2			;COMPUTE SIZE IN BYTES
   738	005146	066702	002230			ADD	DBA,R2			;COMPUTE R2= ADDRESS OF MAP AREA
   739	005152	116201	000012			MOVB	W.RTRV(R2),R1		;GET HIGH LBN BYTE
   740	005156	016202	000014			MOV	W.RTRV+2(R2),R2		;GET LOW LBN WORD
   741	005162	005000				CLR	R0			;READ INTO LOCATION 0
   742	005164	012703	000130			MOV	#130,R3			;READ 130 BLOCKS (IE: ALL OF CORIMG.SYS)
   743	005170					CALL	REDBLK			;READ A BLOCK (IE: BLOCK 0 OF CORIMG.SYS)
   744	005174	103035				BCC	1$
   745	005176					  ABORT	<Error reading CORIMG.SYS -- RSX-20F load aborted>
   746	005270				1$:	RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 22
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   748					;	ROUTINE TO FIND THE LOWEST FILE#'D FILE WITH NAME OF F11ACP.TSK
   749					;	WE'LL USE THIS FILE'S LBN ADDRESS TO TELL THE INCORE RSX20F WHERE
   750					;	IT'S PRINCIPLE ACP FOR THE BOOT DEVICE IS
   751					;	ENTER WITH SAVR1/SAVR2 BEING THE LBN OF FHB FOR CORIMG.SYS
   752	005272	000074			FHBMAX:	60.				;READ NO MORE THAN 60 FHBS
   753	005274	025167	003310	000000	F11ACP:	.RAD50	/F11ACP   TSK/
	005302	100003
   754
   755	005304	005367	177762		FNDACP:	DEC	FHBMAX			;BUMP COUNT DOWN
   756	005310	100451				BMI	1$			;BRANCH IF WE'RE NEVER FOUND IT
   757	005312	005267	003606			INC	SAVR2			;STEP TO NEXT BLOCK
   758	005316	005767	003602			TST	SAVR2			;DID IT JUST OVERFLOW?
   759	005322	001002				BNE	2$			;NO, SKIP UPDATE
   760	005324	005267	003572			INC	SAVR1			;
   761	005330	016700	002046		2$:	MOV	DBA,R0			;READ NEXT FHB INTO DB
   762	005334	016701	003562			MOV	SAVR1,R1		;GET FHB LBN ADR
   763	005340	016702	003560			MOV	SAVR2,R2		;...
   764	005344	005003				CLR	R3			;1 BLOCK ONLY
   765	005346					CALL	REDBLK			;READ IN AN FHB
   766	005352	103754				BCS	FNDACP			;GO ON TO NEXT FHB IF WE CAN'T READ THIS
   767	005354	116702	002542			MOVB	DB+W.IDOF,R2		;GET OFFSET TO ID AREA IN WORDS
   768	005360	060202				ADD	R2,R2			;COMPUTE OFFSET IN WORDS
   769	005362	066702	002014			ADD	DBA,R2			;LOAD R2=ADDRESS OF ID AREA
   770	005366	026267	000000	177700		CMP	W.FNAM(R2),F11ACP	;DOES THIS LOOK AS IF IT IS F11ACP?
   771	005374	001343				BNE	FNDACP			;GO TO NEXT FHB IF FILE DOESN'T MATCH
   772	005376	026267	000002	177672		CMP	W.FNAM+2(R2),F11ACP+2	;...?
   773	005404	001337				BNE	FNDACP			;GO TO NEXT FHB IF FILE DOESN'T MATCH
   774	005406	005762	000004			TST	W.FNAM+4(R2)		;...
   775	005412	001334				BNE	FNDACP			;GO TO NEXT FHB IF FILE DOESN'T MATCH
   776	005414	026267	000006	177660		CMP	W.FTYP(R2),F11ACP+6.	;CHECK FOR .TSK EXTENSION
   777	005422	001330				BNE	FNDACP			;GO TO NEXT FHB IF TYPE DOESN'T MATCH
   778	005424	016267	000010	003572		MOV	W.FVER(R2),LEVELV	;STORE THE VERSION OF THE ACP
   779	005432					RETURN
   780
   781	005434	000261			1$:	SEC
   782	005436					RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 23
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   784					;	ROUTINE TO POKE MAGIC VALUES INTO THE 20F CORE IMAGE
   785					;	  TO COMPENSATE FOR THE FACT WE DIDN'T BOOT THIS VIA "SAVE"S RPBOOT.
   786					;	ENTER WITH GOOD FHB FOR F11ACP IN DB.
   787
   788					;*** THE CONSTANTS DEFINED HERE NEED TO BE REDEFINED AS NEEDED
   789		000032			S.DL=32	;; THIS OFFSET IS START OF 2 WORD ENTRY CONTAINING DISK ADDRESS
   790						;; OF THE LOAD IMAGE FOR THIS TASK. OFFSET INTO STD BLOCK.
   791		007664			RPBOOT=7664	;; ADDRESS OF RPBOOT, TAKE FROM LISTING OF SAV TASK
   792		007772			RPRESU==7772	;; ADDRESS OF LINE SAYING "BOOTSTRAP COMPLETE", FROM SAV LISTING
   793					;*** THE CONSTANTS ABOVE MAY NEED TO BE UPDATED, BUT NOTE THAT
   794					;*** THIS IS NOT COMMON SINCE S.DL MAY NEVER CHANGE AND RPRESU-RPBOOT
   795					;*** WILL PROBABLY REMAIN A CONSTANT EVEN IF RPRESU OR RPBOOT CHANGES
   796	005440	116702	002457		POK20F:	MOVB	DB+W.MPOF,R2		;GET OFFSET TO MAP AREA
   797	005444	060202				ADD	R2,R2			;CONVERT TO BYTE OFFSET
   798	005446	066702	001730			ADD	DBA,R2			;ADD NEW BUFFER ADR
   799	005452	116201	000012			MOVB	W.RTRV(R2),R1		;GET HIGH LBN BYTE OF F11ACP.TSK
   800	005456	016202	000014			MOV	W.RTRV+2(R2),R2	;GET LOW LBN WORD OF F11ACP.TSK
   801	005462	062702	000002			ADD	#2,R2			;ADD 2 TO GET AT SKIP TASK HEADER INFO
   802	005466	005501				ADC	R1			;...
   803	005470					CALL	GETSTD		;FIND VALUE OF .STDTB BASED ON 20F VERSION
   804	005474	005700				TST	R0		;CHECK TO MAKE SURE WE GOT IT
   805	005476	001415				BEQ	1$
   806	005500	062700	000010			ADD	#<4*2>,R0	;COMPUTE ADDRESS OF F11ACP ENTRY
   807	005504	011000				MOV	@R0,R0		;LOAD R0 WITH STD FOR F11ACP
   808	005506	001411				BEQ	1$		;BRANCH IF WE FAILED
   809	005510	010160	000032			MOV	R1,S.DL+0(R0)	;INSERT HIGH ORDER LBN INTO STD BLOCK
   810	005514	010260	000034			MOV	R2,S.DL+2(R0)	;INSERT LOW ORDER LBN INTO STD BLOCK
   811
   812	005520	012767	000106	003430		MOV	#<RPRESU-RPBOOT>,NEWPC	;NEW PC INSIDE "RPBOOT" IN THE SAV TASK
   813
   814					;	Force RSX20F to believe that we used "SW/REG" rather than "DISK"
   815					;	even if we didn't!
   816					;[JJF %1(4) Maybe we really don't want it to believe it!]
   817					;	BIS	#200!1,INITR5		;TURN ON "DISK=200" AND "SW=1"
   818	005526	000167	001322			JMP	RESACS			;RESTORE ACS AND START BOOT
   819
   820	005532				1$:	ABORT	<?STD address of F11ACP within CORIMG.SYS incorrect>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 24
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   822					;	ROUTINE TO SEARCH TABLES TO FIND THE VALUE OF .STDTB
   823					;	RETURN CURRENT 20F'S VALUE OF .STDTB IN R0
   824
   825	005626	012700	135742		GETSTD:	MOV	#VERTAB+NEWADR,R0	;LOAD ADDRESS OF TABLE
   826	005632	005710			1$:	TST	@R0			;CHECK FOR END OF TABLE
   827	005634	001404				BEQ	2$			;BRANCH IF END OF TABLE
   828	005636	022067	003362			CMP	(R0)+,LEVELV		;COMPARE WITH 20F VERSION
   829	005642	001434				BEQ	GOTSTD			;BRANCH IF WE FIND SAME VERSION#
   830	005644	000772				BR	1$
   831	005646				2$:	ABORT	<?Unable to determine F11ACP.TSK file version>
   832	005734	016000	000010		GOTSTD:	MOV	VALTAB-VERTAB-2(R0),R0	;LOAD STD ADDRESS
   833	005740					RETURN
   834
   835
   836					;*** NOTE THAT NEWER VERSIONS OF 20F WILL NEED TO HAVE ENTRIES IN THE DTBX MACRO
   837					;*** SIMPLY LOOK AT THE NEW RSX20F MAP FOR THE VALUE OF .STDTB.
   838						.MACRO	DTBX	;;LIST OF .STDTB VALUES
   839					XP	1506,6350	;VERSION 1506
   840					XP	1550,6372	;VERSION 1550
   841					XP	1600,6372	;VERSION 1600
   842					XP	1601,6372	;VERSION 1601
   843						.ENDM
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 25
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   845					;	MACROS TO EXPAND THE VERSION NUMBER INFO FOR 20F
   846					.MACRO XP	a,b
   847					.WORD	a
   848					.ENDM
   849	005742				VERTAB:	DTBX
   850	005752	000000				0
   851
   852					.MACRO XP	a,b
   853					.WORD	b
   854					.ENDM
   855	005754				VALTAB:	DTBX
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 26
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   857					;	ROUTINE TO MOVE THE INCORE IMAGE 0-7777 TO NEWHOM-<NEWHOM+7777>
   858
   859	005764	012767	140122	001410	MOVEME:	MOV	#DB+NEWADR,DBA		;SETUP NEW DB ADDR
   860	005772	012700	130000			MOV	#NEWADR,R0		;SETUP DESTINATION
   861	005776	005001				CLR	R1			;SETUP ORIGIN
   862	006000	012702	004513			MOV	#ENDING/2,R2		;SETUP # WORDS TO MOVE
   863	006004	012120			1$:	MOV	(R1)+,(R0)+		;MOVE A WORD TO NEW HOME
   864	006006	077202				SOB	R2,1$			;KEEP DOING IT
   865
   866	006010	062706	130000			ADD	#NEWADR,SP		;RELOCATE THE STACK
   867	006014	062716	130000			ADD	#NEWADR,(SP)		;ADJUST RETURN ADDRESS
   868	006020	000207				RTS	PC			;RETURN TO SAME PLACE IN NEW HOME
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 27
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   870					;	ROUTINE TO VERIFY THAT THIS IS A GOOD KLAD10 PACK
   871					;	ENTER WITH TOPS10 HOME BLOCK IN DB.
   872	006022	026727	002420	043241	VRFKLD:	CMP	DB+<HOMKV2*2>,#043241	;CHECK FOR "KLAD10" IN RAD50
   873	006030	001004				BNE	1$		;BRANCH IF NOT THERE
   874	006032	026727	002412	016766		CMP	DB+<HOMKV3*2>,#016766	;CHECK 2ND HALF
   875	006040	001420				BEQ	2$		;BRANCH IF "KLAD10" THERE
   876	006042				1$:	ABORT	<?RAD50 "KLAD10" missing>
   877
   878	006102	000207			2$:	RTS	PC			;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 28
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   880					;	ROUTINE TO LOCATE THE SIZE AND POSITION OF THE KLDCP DIRECTORY.
   881					;	ENTER WITH GOOD TOPS10 HOME BLOCK IN DB.
   882	006104	005067	003064		FNDDIR:	CLR	LBNL		;CLEAR BLOCK NUMBER SUM
   883	006110	005067	003056			CLR	LBNH		;CLEAR BLOCK NUMBER SUM HIGH ORDER
   884	006114	012701	000574			MOV	#19.*20.,R1	;GET MULTIPLIER
   885
   886	006120	066767	002326	003046	3$:	ADD	DB+<HOMKCY*2>,LBNL
   887	006126	005567	003040			ADC	LBNH		;ADD IN CARRY
   888	006132	077106				SOB	R1,3$		;LOOP
   889
   890	006134	012701	000024			MOV	#20.,R1		;GET MULTIPLIER
   891	006140	116704	002311			MOVB	DB+<HOMKTS*2>+1,R4	;GET TRACK
   892	006144	060467	003024		4$:	ADD	R4,LBNL		;ADD IN A TRACK OF BLOCKS
   893	006150	005567	003016			ADC	LBNH		;ADD IN CARRY
   894	006154	077105				SOB	R1,4$		;ACCOUNT FOR ALL TRACKS
   895
   896	006156	116704	002272			MOVB	DB+<HOMKTS*2>,R4	;GET SECTOR
   897	006162	060467	003006			ADD	R4,LBNL		;ADD IN SECTOR COUNT
   898	006166	005567	003000			ADC	LBNH		;FIX UP THE CARRY
   899	006172	016767	002260	002776		MOV	DB+<HOMKLN*2>,KLDLEN;REMEMBER SIZE OF DIRECTORY
   900	006200	000207				RTS	PC		;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 29
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   902	006202	012700	012000		REDDIR:	MOV	#KLDIR,R0	;SETUP ADDRESS OF DIRECTORY
   903	006206	016701	002760			MOV	LBNH,R1		;SETUP HIGH LBN
   904	006212	016702	002756			MOV	LBNL,R2		;SETUP LOW LBN OF DIRECTORY
   905	006216	016703	002754			MOV	KLDLEN,R3	;RECALL SIZE OF DIRECTORY
   906	006222					CALL	REDBLK		;READ IN THE DIRECTORY
   907	006226	103401				BCS	8$		;DIE IF CAN'T READ DIRECTORY
   908	006230	000207				RTS	PC		;RETURN
   909	006232				8$:	ABORT	<?I/O error reading KLADFE.DIR>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 30
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   911	006300	012704	012000		FNDKLD:	MOV	#KLDIR,R4	;POINT R4 AT DIRECTORY BUFFER
   912
   913	006304	005001				CLR	R1		;CLEAR SUM (WILL BECOME COUNT OF ENTRIES)
   914	006306	016702	002664			MOV	KLDLEN,R2	;GET MULTIPLIER
   915	006312	062701	000020		5$:	ADD	#1000/FDESIZ,R1	;COMPUTE # ENTRIES PER BLOCK
   916	006316	077203				SOB	R2,5$		;COMPUTE # OF ENTRIES
   917
   918
   919	006320	026467	000000	000256	6$:	CMP	W.KFL0(R4),W.KFL0+KLDCP
   920	006326	001010				BNE	7$		;BRANCH IF NOT EQUAL IN 1ST HALF OF FILE NAME
   921	006330	026467	000002	000250		CMP	W.KFL1(R4),W.KFL1+KLDCP
   922	006336	001004				BNE	7$		;BRANCH IF NOT CORRECT 2ND HALF OF FILE NAME
   923	006340	026467	000004	000242		CMP	W.KEXT(R4),W.KEXT+KLDCP
   924	006346	001423				BEQ	FOUNDK		;BRANCH IF FILE NAMES AND EXT ALL MATCH
   925
   926					; HERE IF SOME PART OF FILE NAME OR EXTENSION DOES NOT MATCH
   927	006350	062704	000040		7$:	ADD	#FDESIZ,R4	;STEP TO NEXT ENTRY
   928	006354	077117				SOB	R1,6$		;LOOP FOR NEXT ENTRY
   929	006356					ABORT	<?Cannot find KLDCP.BIN>
   930
   931					;FOUND KLDCP.BIN, CONVERT CYL/TRACK/SECTOR TO LOGICAL BLOCK NUMBER
   932	006416	005067	002550		FOUNDK:	CLR	LBNH		;CLEAR LBN HIGH
   933	006422	005067	002546			CLR	LBNL		;CLEAR LBN LOW
   934	006426	016400	000010			MOV	W.KCYL(R4),R0	;GET CYL#
   935	006432	001406				BEQ	2$		;SKIP IT IF ON CYLINDER 0
   936	006434	062767	000574	002532	1$:	ADD	#380.,LBNL	;ADD IN A CYLINDER WORTH OF BLOCKS
   937	006442	005567	002524			ADC	LBNH		;	(TAKE CARE OF CARRY, IF ANY)
   938	006446	077006				SOB	R0,1$		;...FOR EVERY CYLINDER THERE
   939	006450	116400	000013		2$:	MOVB	W.KTS+1(R4),R0	;GET TRACK # (NEVER .GT. 20, IGNORE SIGN EXTEND)
   940	006454	001406				BEQ	4$		;DON'T IF ON TRACK 0
   941	006456	062767	000024	002510	3$:	ADD	#20.,LBNL	;ADD IN A TRACK'S WORTH OF BLOCKS
   942	006464	005567	002502			ADC	LBNH		;	(TAKE CARE OF CARRY, IF ANY)
   943	006470	077006				SOB	R0,3$		;...FOR EVERY TRACK INVOLVED
   944	006472	116400	000012		4$:	MOVB	W.KTS(R4),R0	;GET SECTOR #
   945	006476	060067	002472			ADD	R0,LBNL		;ADD SECTOR NUMBER AS FINAL OFFSET
   946	006502	005567	002464			ADC	LBNH		;AND TAKE CARE OF FINAL CARRY
   947
   948					;CONVERT THE WORD COUNT TO A BLOCK COUNT
   949	006506	012700	000010		FIXWCK:	MOV	#8.,R0		;GET #POSITIONS TO SHIFT
   950	006512	006264	000014		1$:	ASR	W.KWAH(R4)	;SHIFT TO THE RIGHT
   951	006516	006064	000016			ROR	W.KWAL(R4)	;THE WORD COUNT RIGHT
   952	006522	077005				SOB	R0,1$		;TO CONVERT TO A BLOCK COUNT
   953	006524	005764	000014			TST	W.KWAH(R4)	;TEST HIGH ORDER (BLOCK) COUNT
   954	006530	001424				BEQ	2$
   955	006532					ABORT	<?KLDCP.BIN is too large to load>
   956	006602	000207			2$:	RTS	PC		;RETURN
   957
   958	006604	043244	012500	006766	KLDCP:	.RAD50	/KLDCP BIN/
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 31
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   960	006612	005067	002320		LODKLD:	CLR	FCOUNT		;INITIALIZE "DVFRAM" (AND DVWORD)
   961	006616					TYPE	<[Loading KLDCP.BIN]>
   962	006650	016467	000016	002250		MOV	W.KWAL(R4),BLKCNT
   963	006656	005067	002250		LDBIN1:	CLR	$CKS11		;INITIALIZE THE CHECKSUM
   964	006662					CALL	DVFRAM		;GET A FRAME INTO R0
   965	006666	105300				DECB	R0		;CHECK FOR "BLOCK START"
   966	006670	001372				BNE	LDBIN1		;LOOP AND WAIT FOR BLOCK START CODE (IE: 1)
   967
   968	006672					CALL	DVFRAM		;READ ANOTHER FRAME (AND FORGET IT)
   969
   970	006676					CALL	DVWORD		;GET A FULL WORD, THE BYTE COUNT
   971	006702	010067	002222			MOV	R0,LBC		;SAVE BYTE COUNT
   972	006706	162767	000006	002214		SUB	#6,LBC		;CHECK FOR XFER BLOCK
   973	006714	001445				BEQ	LJMP		;IF BYTE COUNT = 6, THIS IS AN XFER BLOCK
   974	006716					CALL	DVWORD		;GET A FULL WORD, THE LOAD ADDRESS
   975	006722	010004				MOV	R0,R4		;SAVE LOAD ADDRESS
   976
   977	006724				LDBIN2:	CALL	DVFRAM		;GET A DATA BYTE
   978	006730	005367	002174			DEC	LBC		;DECREMENT BYTE COUNT
   979	006734	002033				BGE	LDBIN3		;BRANCH IF INSIDE DATA PART OF PACKET
   980	006736	105767	002170			TSTB	$CKS11		;IF BYTE COUNT EXPIRES, CHECK CHECKSUM
   981	006742	001745				BEQ	LDBIN1		;START ANOTHER BLOCK IF CHECKSUM WAS OK
   982	006744				BADCHK:	ABORT	<?Checksum error while loading KLDCP.BIN>
   983
   984	007024				LDBIN3:				;
   985	007024	110024			10$:	MOVB	R0,(R4)+	;SAVE THE BYTE INTO CORE
   986	007026	000736			12$:	BR	LDBIN2		;LOOP FOR MORE DATA
   987
   988	007030				LJMP:	CALL	DVWORD		;GET (POSSIBEL) XFER ADDRESS
   989	007034	010067	002116			MOV	R0,NEWPC		;REMEMBER XFER ADDRESS
   990	007040					CALL	DVFRAM		;GET A FRAME
   991	007044	105767	002062			TSTB	$CKS11		;CHECK CHECKSUM
   992	007050	001335				BNE	BADCHK
   993	007052	000207				RTS	PC		;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 32
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

   995	007054	016700	002060		RESACS:	MOV	INITR0,R0	;RESTORE R0
   996	007060	016701	002056			MOV	INITR1,R1	;RESTORE R1
   997	007064	016702	002054			MOV	INITR2,R2	;RESTORE R2
   998	007070	016703	002052			MOV	INITR3,R3	;RESTORE R3
   999	007074	016704	002050			MOV	INITR4,R4	;RESTORE R4
  1000	007100	016705	002046			MOV	INITR5,R5	;RESTORE R5
  1001	007104	016706	002044			MOV	INITSP,SP	;RESTORE SP
  1002	007110	000177	002042			JMP	@NEWPC		;START AT NEWLY LOADED CODE
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 33
FELOAD.P11    30-JAN-89 14:33		BOOT IN AND START 20F FRONT END

  1004					;	ROUTINE TO READ A FRAME
  1005	007114	005367	002016		DVFRAM:	DEC	FCOUNT		;ANY FRAMES LEFT?
  1006	007120	100421				BMI	DVFMOR		;NO, GO GET MORE
  1007	007122	117700	002006			MOVB	@FPOINT,R0	;YES, GET IT
  1008	007126	042700	177400			BIC	#^C377,R0	;CLEAR UPPER BYTE
  1009	007132	060067	001774			ADD	R0,$CKS11	;COMPUTE CHECKSUM
  1010	007136	005267	001772			INC	FPOINT		;UPDATE POINTER
  1011	007142					RETURN			;RETURN
  1012
  1013	007144				DVWORD:	CALL	DVFRAM		;GET A FRAME
  1014	007150	010046				MOV	R0,-(SP)	;SAVE THE 1ST BYTE
  1015	007152					CALL	DVFRAM		;GET ANOTHER FRAME
  1016	007156	000300				SWAB	R0		;MAKE IT THE "HIGH" FRAME
  1017	007160	052600				BIS	(SP)+,R0	;COMBINE WITH 1ST BYTE
  1018	007162					RETURN			;RETURN
  1019
  1020	007164	005367	001736		DVFMOR:	DEC	BLKCNT		;COUNT ANOTHER BLOCK AS READ
  1021	007170	100454				BMI	2$		;COMPLAIN IF PREMATURE EOF
  1022	007172	016700	000204			MOV	DBA,R0		;BUFFER ADDRESS
  1023	007176	016701	001770			MOV	LBNH,R1		;GET DISK ADDRESS
  1024	007202	016702	001766			MOV	LBNL,R2		;GET DISK ADDRESS, LOW PART
  1025	007206	005003				CLR	R3		;GET 1 BLOCK ONLY
  1026	007210	010446				MOV	R4,-(SP)	;SAVE R4 (BYTE POINTER)
  1027	007212					CALL	REDBLK		;READ ANOTHER BLOCK
  1028	007216	103414				BCS	1$		;REMARK ON ERROR
  1029	007220	012604				MOV	(SP)+,R4	;RESTORE BYTE POINTER
  1030	007222	012767	001000	001706		MOV	#1000,FCOUNT	;1000 FRAMES NOW AVAILABLE
  1031	007230	016767	000146	001676		MOV	DBA,FPOINT	;STARTING AT DB
  1032	007236	005267	001732			INC	LBNL		;START TO READ NEXT BLOCK
  1033	007242	005567	001724			ADC	LBNH		;...
  1034	007246	000722				BR	DVFRAM
  1035
  1036	007250	012604			1$:	MOV	(SP)+,R4	;RESTORE BYTE POINTER
  1037	007252					ABORT	<?Input error reading KLDCP.BIN>
  1038
  1039	007322				2$:	ABORT	<?Premature EOF while reading KLDCP.BIN>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 34
FELOAD.P11    30-JAN-89 14:33		END OF 2ND PART

  1041						.SBTTL	END OF 2ND PART
  1042
  1043	007402	010122			DBA:	.WORD	DB
  1044		007404				.=.
  1045	007404	000374				.PRINT	10000-.;	BYTES REMAINING IN 2ND PART OF BOOT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 35
FELOAD.P11    30-JAN-89 14:33		IMPURE NON-INITIALIZED DATA

  1047						.SBTTL	IMPURE NON-INITIALIZED DATA
  1048
  1049		010000				.=10000
  1050	010000	000050				.BLKW	50
  1051	010120	000001			STAK:	.BLKW	1
  1052	010122	000400			DB:	.BLKW	400			;DISK I/O BUFFER
  1053	011122	000001			SAVR1:	.BLKW	1		;R1 (HIGH ORDER LBN OF CORIMG.SYS'S FHB)
  1054	011124	000001			SAVR2:	.BLKW	1		;R2 (LOW ORDER LBN OF CORIMG.SYS'S FHB)
  1055	011126	000001			BLKCNT:	.BLKW	1		;BLOCK COUNT FOR READING .BIN FILES
  1056	011130	000001			LBC:	.BLKW	1			;BYTE COUNT OF CURRENT .BIN PACKET
  1057	011132	000001			$CKS11:	.BLKw	1		;THE .BIN FILE CHECKSUM WORD
  1058	011134	000001			FPOINT:	.BLKW	1			;POINTER TO CURRENT FRAME
  1059	011136	000001			FCOUNT:	.BLKW	1			;COUNT OF FRAMES IN CURRENT DISK BUFFER
  1060
  1061	011140	000001			INITR0:	.BLKW	1			;THE R0 WE GOT FROM THE ROM
  1062	011142	000001			INITR1:	.BLKW	1			;THE R1 WE GOT FROM THE ROM
  1063	011144	000001			INITR2:	.BLKW	1			;THE R2 WE GOT FROM THE ROM
  1064	011146	000001			INITR3:	.BLKW	1			;THE R3 WE GOT FROM THE ROM
  1065	011150	000001			INITR4:	.BLKW	1			;THE R4 WE GOT FROM THE ROM
  1066	011152	000001			INITR5:	.BLKW	1			;THE R5 WE GOT FROM THE ROM
  1067	011154	000001			INITSP:	.BLKW	1			;THE SP WE GOT FROM THE ROM
  1068	011156	000001			NEWPC:	.BLKW	1		;THE R7 WE WANT TO START PROGRAM WITH
  1069	011160	000001			SAVUBA:	.BLKW	1			;THE UNIBUS ADDRESS
  1070	011162	000001			RPUNIT:	.BLKW	1			;COPY OF RPCS2 TO SAVE UNIT #
  1071	011164	000001			SAVHLB:	.BLKW	1			;HIGH WORD OF LBN FOR NEXT XFER
  1072	011166	000001			SAVLLB:	.BLKW	1			;LOW WORD OF LBN FOR NEXT XFER
  1073	011170	000001			SAVCNT:	.BLKW	1			;# OF BLOCKS TO XFER, 0 COUNTED AS 1
  1074	011172	000001			LBNH:	.BLKW	1			;LBN HIGH
  1075	011174	000001			LBNL:	.BLKW	1			;LBN LOW
  1076	011176	000001			KLDLEN:	.BLKW	1			;LENGTH OF KLDCP DIRECTORY
  1077	011200	000001			ECWRD0:	.BLKW	1
  1078	011202	000001			ECWRD1:	.BLKW	1
  1079	011204	000001			ECWRD2:	.BLKW	1
  1080	011206	000001			ECMSK0:	.BLKW	1
  1081	011210	000001			ECMSK1:	.BLKW	1
  1082	011212	000001			ECMSK2:	.BLKW	1
  1083	011214	000001			ECADR0:	.BLKW	1
  1084	011216	000001			ECADR1:	.BLKW	1
  1085	011220	000001			ECBAD0:	.BLKW	1
  1086	011222	000001			ECBAD1:	.BLKW	1
  1087	011224	000001			LEVELV:	.BLKW	1	;VERSION # OF 20F FROM F11ACP.TSK FILE
  1088
  1089	011226	011226				.PRINT .;END OF IMPURE AREA
  1090
  1091		011226			ENDING=.
  1092		004106				.END	USERSX			;GIVE USERSX FOR KLDCP
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

BADCHK  006744        	  982#	  992
BLKCNT  011126        	  962*	 1020*	 1055#
B0WRDS= 000377        	  605#
DB      010122        	  672	  674	  682	  689	  703	  704	  705	  721	  722	  736	  767	  796	  859
			  872	  874	  886	  891	  896	  899	 1043	 1052#
DBA     007402        	  663	  693	  712	  738	  761	  769	  798	  859*	 1022	 1031	 1043#
DISK    004074        	  616	  621#
DLCD  = 010000        	  349#
DLCTS = 020000        	  349#
DLDIE = 000040        	  349#
DLDSCH= 100000        	  349#
DLDTR = 000002        	  349#
DLRA  = 004000        	  349#
DLRD  = 000200        	  349#
DLRDAT= 000377        	  349#
DLRDRE= 000001        	  349#
DLRERR= 100000        	  349#
DLRFRM= 020000        	  349#
DLRIE = 000100        	  349#
DLRNGI= 040000        	  349#
DLROVR= 040000        	  349#
DLRPAR= 010000        	  349#
DLRTS = 000004        	  349#
DLSRD = 002000        	  349#
DLSTD = 000010        	  349#
DLXBRK= 000001        	  349#
DLXDAT= 000377        	  349#
DLXIE = 000100        	  349#
DLXMNT= 000004        	  349#
DLXRDY= 000200        	  349#
DL.RBF= 177562        	  349#
DL.RSR= 177560        	  349#
DL.XBF= 177566        	  349#	  431*
DL.XSR= 177564        	  349#	  432
DVFMOR  007164        	 1006	 1020#
DVFRAM  007114        	  964	  968	  977	  990	 1005#	 1013	 1015	 1034
DVWORD  007144        	  970	  974	  988	 1013#
ECADR0  011214        	  562*	  571	  594*	 1083#
ECADR1  011216        	  565*	  598*	 1084#
ECBAD0  011220        	  572*	 1085#
ECBAD1  011222        	  568*	 1086#
ECMSK0  011206        	  550*	  578	  580	  583	  585	  588	  590	 1080#
ECMSK1  011210        	 1081#
ECMSK2  011212        	 1082#
ECWRD0  011200        	  543*	  544*	  545*	  546*	  547*	  548*	  567*	  571*	  572	  579	  580*	  581*	  594
			 1077#
ECWRD1  011202        	  584	  585*	  586*	 1078#
ECWRD2  011204        	  589	  590*	  591*	  598	 1079#
ENDING= 011226        	  862	 1091#
FCOUNT  011136        	  960*	 1005*	 1030*	 1059#
FDESIZ= 000040        	  378#	  915	  927
FELOAD  000000        	  406#
FHBMAX  005272        	  752#	  755*
FIXWCK  006506        	  949#
FNDACP  005304        	  636	  755#	  766	  771	  773	  775	  777
FNDDIR  006104        	  644	  882#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36-1
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

FNDKLD  006300        	  646	  911#
FND550  004560        	  634	  703#
FOUNDK  006416        	  924	  932#
FPOINT  011134        	 1007	 1010*	 1031*	 1058#
F11ACP  005274        	  753#	  770	  772	  776
GETHOM  004226        	  632	  642	  651#
GETH10  004316        	  652	  657	  663#
GETH11  004362        	  633	  682#
GETKLD  004172        	  622	  642#
GETRSX  004132        	  623	  631#
GETSTD  005626        	  803	  825#
GIVEUP  000500        	  509	  534#
GOTSTD  005734        	  829	  832#
HOMFEV= 000142        	  140#
HOMFE0= 000143        	  140#	  682	  689
HOMFLN= 000145        	  140#
HOMKCY= 000154        	  140#	  886
HOMKLN= 000156        	  140#	  899
HOMKTS= 000155        	  140#	  891	  896
HOMKV1= 000142        	  140#
HOMKV2= 000152        	  140#	  872
HOMKV3= 000153        	  140#	  874
HOMNA0= 000000        	  140#
HOMNA1= 000001        	  140#
INITR0  011140        	  406*	  995	 1061#
INITR1  011142        	  407	  628*	  996	 1062#
INITR2  011144        	  997	 1063#
INITR3  011146        	  998	 1064#
INITR4  011150        	  999	 1065#
INITR5  011152        	  612	  615	  627*	 1000	 1066#
INITSP  011154        	 1001	 1067#
KLDCP   006604        	  919	  921	  923	  958#
KLDIR = 012000        	   72#	  902	  911
KLDLEN  011176        	  899*	  905	  914	 1076#
LBC     011130        	  971*	  972*	  978*	 1056#
LBNH    011172        	  883*	  887*	  893*	  898*	  903	  932*	  937*	  942*	  946*	 1023	 1033*	 1074#
LBNL    011174        	  882*	  886*	  892*	  897*	  904	  933*	  936*	  941*	  945*	 1024	 1032*	 1075#
LDBIN1  006656        	  963#	  966	  981
LDBIN2  006724        	  977#	  986
LDBIN3  007024        	  979	  984#
LEVELV  011224        	  778*	  828	 1087#
LJMP    007030        	  973	  988#
LODKLD  006612        	  647	  960#
MOVEME  005764        	  631	  859#
NEWADR= 130000        	   71#	  825	  859	  860	  866	  867
NEWPC   011156        	  812*	  989*	 1002	 1068#
POK20F  005440        	  637	  796#
PROL36  000166        	  448#	  452	  569	  576	  597
PROMPT  004000        	  418	  425	  612#
PS    = 177776        	  349#
REDAOK  000434        	  518#	  599
REDBLK  000206        	  423	  463#	  666	  695	  713	  743	  765	  906	 1027
REDBL0  000216        	  465#	  524
REDBL1  000232        	  470#	  532
REDDIR  006202        	  645	  902#
RED550  005110        	  635	  735#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36-2
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

RESACS  007054        	  639	  649	  818	  995#
RETRY   000466        	  511	  513	  530#	  539	  541
RPAD16= 000400        	  349#
RPAD17= 001000        	  349#
RPAOE = 001000        	  349#
RPATA = 100000        	  349#	  514
RPBOOT= 007664        	  791#	  812
RPCPE = 020000        	  349#	  505	  512
RPCYLA= 000777        	  349#
RPDCK = 100000        	  349#
RPDLT = 100000        	  349#
RPDTE = 010000        	  349#
RPDVA = 004000        	  349#
RPECH = 000100        	  349#
RPECI = 004000        	  349#
RPERR = 040000        	  349#	  514
RPFER = 000020        	  349#
RPFMT2= 010000        	  349#
RPFUNC= 000077        	  349#
RPGO  = 000001        	  349#
RPHCE = 000200        	  349#
RPHCI = 002000        	  349#	  500
RPHCRF= 000400        	  349#
RPIAE = 002000        	  349#
RPIE  = 000100        	  349#
RPILF = 000001        	  349#
RPILR = 000002        	  349#
RPOFSD= 000377        	  349#
RPOPCL= 000016        	  349#
RPOPDC= 000010        	  349#
RPOPI = 020000        	  349#
RPOPNP= 000000        	  349#
RPOPOF= 000014        	  349#
RPOPPA= 000022        	  349#
RPOPRC= 000006        	  349#
RPOPRD= 000070        	  349#
RPOPRF= 000072        	  349#
RPOPRI= 000020        	  349#
RPOPRP= 000012        	  349#
RPOPSK= 000004        	  349#
RPOPSR= 000030        	  349#
RPOPUL= 000002        	  349#
RPOPWC= 000050        	  349#
RPOPWD= 000060        	  349#
RPOPWF= 000062        	  349#
RPOPWH= 000052        	  349#
RPPAR = 000010        	  349#
RPPSEL= 002000        	  349#
RPRDY = 000200        	  349#	  505
RPRESU= 007772 G      	  792#	  812
RPRMR = 000004        	  349#
RPSC  = 100000        	  349#
RPSCG = 100000        	  349#
RPSCTA= 000037        	  349#
RPTRE = 040000        	  349#	  505	  512
RPTRKA= 017400        	  349#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36-3
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

RPUNIT  011162        	  415*	  470	 1070#
RPUNS = 040000        	  349#
RPWCE = 040000        	  349#
RPWCF = 000040        	  349#
RPWLE = 004000        	  349#
RP.BA = 176704        	  349#	  471*
RP.CS1= 176700        	  349#	  415	  470*	  471*	  472*	  482*	  495*	  497*	  500*	  501*	  505	  512	  514
			  538	  540	  550
RP.CS2= 176710        	  349#	  415	  470*
RP.DA = 176706        	  349#	  495*
RP.DC = 176734        	  349#	  482*
RP.DS = 176712        	  349#	  514
RP.EC1= 176744        	  349#	  540
RP.EC2= 176746        	  349#	  550
RP.ER1= 176714        	  349#	  538
RP.OF = 176732        	  349#	  497*	  500*
RP.WC = 176702        	  349#	  472*
R.DSP = 177570        	  349#
R.PC  = 177707        	  349#
R.R0  = 177700        	  349#
R.R1  = 177701        	  349#
R.R2  = 177702        	  349#
R.R3  = 177703        	  349#
R.R4  = 177704        	  349#
R.R5  = 177705        	  349#
R.R6  = 177706        	  349#
R.R7  = 177707        	  349#
R.SL  = 177774        	  349#
R.SP  = 177706        	  349#
R.SWR = 177570        	  349#
SAVCNT  011170        	  464*	  523*	 1073#
SAVHLB  011164        	  465*	  519	  530	 1071#
SAVLLB  011166        	  466*	  518	  531	 1072#
SAVR1   011122        	  709*	  760*	  762	 1053#
SAVR2   011124        	  710*	  757*	  758	  763	 1054#
SAVUBA  011160        	  463*	  471	  522*	  561	 1069#
SIXHOM= 105755        	  140#
STAK    010120        	  422	  630	 1051#
STYPE   000142        	  427	  437#	  618	  659	  684	  697	  716	  725	  729	  735	  745	  820	  831
			  876	  909	  929	  955	  961	  982	 1037	 1039
STYPE1  000144        	  438#	  441
STYPE2  000156        	  439	  442#
SWR   = 177570        	  349#	  621
SWRFOO  004074        	  613	  620#
S.DL  = 000032        	  789#	  809*	  810*
TRYECC  000504        	  515	  538#
TYO     000126        	  431#	  440
TYO1    000132        	  432#	  433
USERSX  004106        	  627#	 1092
VALID = 100000        	  140#
VALTAB  005754        	  832	  855#
VERTAB  005742        	  825	  832	  849#
VRFKLD  006022        	  643	  872#
V.BPT = 000014        	  349#
V.CPU = 000004        	  349#
V.DLI = 000060        	  349#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36-4
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

V.DLO = 000064        	  349#
V.EMT = 000030        	  349#
V.ILL = 000010        	  349#
V.IOT = 000020        	  349#
V.PWF = 000024        	  349#
V.RES = 000010        	  349#
V.RH11= 000254        	  349#
V.TRP = 000034        	  349#
W.AVAL= 000057        	  111#
W.CHK1= 000072        	  111#
W.CHK2= 000776        	  111#
W.CRDT= 000031        	  176#
W.CRTI= 000040        	  176#
W.CTSZ= 000006        	  190#
W.DFPR= 000044        	  111#
W.DVTY= 000012        	  111#
W.EFNU= 000002        	  190#
W.EFSQ= 000004        	  190#
W.ERVN= 000001        	  190#
W.ESQN= 000000        	  190#
W.EXDT= 000046        	  176#
W.FIEX= 000055        	  111#
W.FLEV= 000006        	  162#
W.FMAX= 000006        	  111#
W.FNAM= 000000        	  176#	  770	  772	  774
W.FNUM= 000002        	  162#	  721
W.FPRO= 000012        	  162#
W.FSEQ= 000004        	  162#	  722
W.FTYP= 000006        	  176#	  776
W.FVER= 000010        	  176#	  778
W.IBLB= 000002        	  111#	  703	  704
W.IBSZ= 000000        	  111#	  705
W.IDOF= 000000        	  162#	  767
W.KCHK= 000026        	  378#
W.KCPH= 000034        	  378#
W.KCPL= 000036        	  378#
W.KCRE= 000006        	  378#
W.KCYL= 000010        	  378#	  934
W.KEXT= 000004        	  378#	  923
W.KFL0= 000000        	  378#	  919
W.KFL1= 000002        	  378#	  921
W.KRS1= 000030        	  378#
W.KRS2= 000032        	  378#
W.KTS = 000012        	  378#	  939	  944
W.KTYP= 000024        	  378#
W.KWAH= 000014        	  378#	  950*	  953
W.KWAL= 000016        	  378#	  951*	  962
W.K1LA= 000020        	  378#
W.K1SA= 000022        	  378#
W.LBSZ= 000007        	  190#
W.LRUC= 000056        	  111#
W.MAX = 000011        	  190#
W.MPOF= 000001        	  162#	  736	  796
W.PROG= 000010        	  162#
W.PROJ= 000011        	  162#
W.RES1= 000032        	  111#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 36-5
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- USER SYMBOLS

W.RES2= 000046        	  111#
W.RTRV= 000012        	  190#	  739	  740	  799	  800
W.RVDT= 000014        	  176#
W.RVNO= 000012        	  176#
W.RVOL= 000400        	  111#
W.RVTI= 000023        	  176#
W.SBCL= 000010        	  111#
W.SYSI= 000256        	  111#
W.UCHA= 000014        	  162#
W.USE = 000010        	  190#
W.VCHA= 000042        	  111#
W.VDAT= 000074        	  111#
W.VHL = 000112        	  111#
W.VLEV= 000014        	  111#
W.VNAM= 000016        	  111#
W.VOWN= 000036        	  111#
W.VPRO= 000040        	  111#
W.WISZ= 000054        	  111#
$CKS11  011132        	  963*	  980	  991	 1009*	 1057#
.     = 011226        	  403#	  427#	  603#	  604#	  605	  606	  610#	  659#	  684#	  729#	  745#	  820#	  831#
			  929#	 1037#	 1039#	 1044#	 1045	 1049#	 1050#	 1051#	 1052#	 1053#	 1054#	 1055#	 1056#
			 1057#	 1058#	 1059#	 1061#	 1062#	 1063#	 1064#	 1065#	 1066#	 1067#	 1068#	 1069#	 1070#
			 1071#	 1072#	 1073#	 1074#	 1075#	 1076#	 1077#	 1078#	 1079#	 1080#	 1081#	 1082#	 1083#
			 1084#	 1085#	 1086#	 1087#	 1089	 1091
.OFFSE= 000040        	  111#	  162#	  176#	  190#	  357#	  378#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(5) 30-JAN-89	MACDLX V31  23-JUL-90  10:58  PAGE 37
FELOAD.P11    30-JAN-89 14:33		CROSS REFERENCE TABLE -- MACRO NAMES

ABORT	  389#	  427	  618	  659	  684	  697	  716	  725	  729	  745	  820	  831	  876	  909	  929
	  955	  982	 1037	 1039
BSYM	   76#	  111	  145#	  162	  176	  190
CALL	  394#	  423	  427	  440	  569	  576	  597	  618	  631	  632	  633	  634	  635	  636	  637
	  642	  643	  644	  645	  646	  647	  652	  657	  659	  666	  684	  695	  697	  713	  716
	  725	  729	  735	  743	  745	  765	  803	  820	  831	  876	  906	  909	  929	  955	  961
	  964	  968	  970	  974	  977	  982	  988	  990	 1013	 1015	 1027	 1037	 1039
DTBX	  838#	  849	  855
F11FID	  164#	  176
F11HED	  150#	  162
F11HOM	   81#	  111
F11MAP	  178#	  190
IOBITS	  195#	  349
KLDHED	  359#	  378
RETURN	  398#	  453	  527	  535	  654	  698	  731	  746	  779	  782	  833	 1011	 1018
TYPE	  382#	  427	  618	  659	  684	  697	  716	  725	  729	  735	  745	  820	  831	  876	  909
	  929	  955	  961	  982	 1037	 1039
T10HOM	  119#	  140
WSYM	  115#	  140	  353#	  378
XP	  846#	  849	  852#	  855


. ABS.  011226     000


 ERRORS DETECTED:  0

 FELOAD,FELOAD/CRF/NL:TTM=FELOAD
 RUN-TIME: 1 2 .4 SECONDS
 RUN-TIME RATIO: 20/5=3.8
 CORE USED:  7K  (13 PAGES)