Trailing-Edge
-
PDP-10 Archives
-
cuspbinsrc_2of2_bb-fp63b-sb
-
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(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28
FELOAD.P11 02-MAY-88 11:28 TABLE OF CONTENTS
67 UNIVERSALS -- F11HOM - Format of the FILES-11 home block, offsets as seen from 11
106 UNIVERSALS -- T10HOM - Format of TOPS10 home block, as seen from 11 side
136 UNIVERSALS -- F11HED - format of FILES-11 file header block, as seen from 11
186 UNIVERSALS -- IOBITS - words and bits in the I/O page, seen from the 11
342 UNIVERSALS -- IOBITS - Basic CPU
(1) UNIVERSALS -- IOBITS - DL11 console terminal
(1) UNIVERSALS -- IOBITS - RH11/RP06 bit definitions
344 UNIVERSALS -- KLDHED - Format of entry in KLDCP directory
373 DEFINITIONS - "helper" macros
395 BLOCK 0 booting code
594 END OF BLOCK 0 CODE
599 000776 000002 .PRINT 1000-.;LOCATIONS LEFT IN BLOCK 0 BOOT
601 START OF BLOCK 4-7 CODE
618 BOOT IN AND START 20F FRONT END
1033 END OF 2ND PART
1037 007402 000376 .PRINT 10000-.; BYTES REMAINING IN 2ND PART OF BOOT
1039 IMPURE NON-INITIALIZED DATA
1081 011226 011226 .PRINT .;END OF IMPURE AREA
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 1
FELOAD.P11 02-MAY-88 11:28
1 .TITLE FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88
2
3 ;COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1988. 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 ;[END OF EDIT HISTORY]
42
43 ;; FELOAD IS A SMALL PROGRAM USED TO LOAD THE "FRONT END" PROGRAM.
44 ;; TAKING CUES FROM THE PDP11 SWITCH REGISTER AND THE OPERATOR
45 ;; CONSOLE TELETYPE, IT DECIDES WHICH FRONT END SYSTEM (IE: RSX20F
46 ;; OR KLDCP) TO RUN, SEARCHES THE APPROPRIATE FRONT END DIRECTORY
47 ;; AND LOADS THE CORRECT BOOT FOR THE SYSTEM AND STARTS IT BY
48 ;; BRANCHING TO LOCATION 0.
49
50 .ENABL ABS,LC
51 .ENABL LC ;REALLY LOWER CASE
52
53
54 ;; If FELOAD is started at it's "starting address", rather than 0
55 ;; then it will load rsx20f unconditionally. This is to support
56 ;; booting from KLDCP into RSX20F via the .P 20F or >. RSX commands.
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 1-1
FELOAD.P11 02-MAY-88 11:28
57
58 ; First, the BM873YJ rom reads our block 0 code into physical core
59 ; block 0. Then we read in blocks 4-7 into physical locations 4000-7777.
60 ; We always use 10000-10777 as impure data storage.
61 ; Then if we are booting rsx20f we move ourselves to 130000 and above.
62
63
64 130000 NEWADR= 130000 ;RELOCATION IF WE NEED TO LOAD 20F
65 012000 KLDIR= 12000 ;BUILD KLDCP DIRECTORY HERE UPWARDS
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 2
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- F11HOM - FORMAT OF THE FILES-11 HOME BLOCK, OFFSETS AS SEEN FROM 11
67 .SBTTL UNIVERSALS -- F11HOM - Format of the FILES-11 home block, offsets as seen from 1
68
69 .MACRO BSYM .name,.value ;;MACRO TO DEFINE SYMBOLS
70 W.'.name'=.offset ;;define name as current offset
71 .offset=.offset+'.value'.;;redefine offset for next symbol
72 .ENDM BSYM
73
74 .MACRO F11HOM ;;ALL OFFSETS BELOW ARE GIVEN IN DECIMAL
75 .offset=0 ;; START OFF AT 0
76 BSYM IBSZ,2 ;; OFFSET TO INDEX-BIT-MAP SIZE
77 ;; # OF BLOCKS IN THE "SAT" PORTION ONLY
78 ;; SO THE FILE INDEXF.SYS IS ALWAYS LARGER
79 ;; SINCE IT INCLUDES THE FILE HEADERS ("RIB"S)
80 ;; AS WELL AS THE SAT.
81 BSYM IBLB,4 ;; DISK ADDRESS (LBN) OF THE INDEX-BIT-MAP
82 BSYM FMAX,2 ;; # OF FILES ALLOWED
83 BSYM SBCL,2 ;; STORAGE-BIT-MAP CLUSTER SIZE
84 BSYM DVTY,2 ;; DISK-DEVICE TYPE
85 BSYM VLEV,2 ;; STRUCTURE LEVEL
86 BSYM VNAM,12 ;; 12 ASCII CHARACTERS "VOLUME NAME"
87 BSYM RES1,4 ;; "RESERVED"
88 BSYM VOWN,2 ;; VOLUME OWNERS
89 BSYM VPRO,2 ;; VOLUME PROTECTION
90 BSYM VCHA,2 ;; VOLUME CHARACTERISTICS
91 BSYM DFPR,2 ;; DEFAULT PROTECTION
92 BSYM RES2,6 ;; "RESERVED"
93 BSYM WISZ,1 ;; DEFAULT NUMBER OF RETRIEVAL POINTERS IN A WINDOW
94 BSYM FIEX,1 ;; DEFAULT NUMBER OF BLOCKS TO EXTEND FILES
95 BSYM LRUC,1 ;; NUMBER OF ENTRIES IN DIRECTORY LRU
96 BSYM AVAL,11 ;; "AVAILABLE SPACE"
97 BSYM CHK1,2 ;; CHECKSUM OF WORDS 0-28.
98 BSYM VDAT,14 ;; CREATION DATE AND TIME
99 BSYM VHL,100 ;; VOLUME-HEADER LABEL
100 BSYM SYSI,82 ;; SYSTEM-SPECIFIC INFORMATION
101 BSYM RVOL,254;; RELATIVE VOLUME TABLE
102 BSYM CHK2,2 ;; CHECKSUM OF HOME BLOCK WORDS 0 THRU 255
103 .ENDM F11HOM
104 000000 F11HOM
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 3
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- T10HOM - FORMAT OF TOPS10 HOME BLOCK, AS SEEN FROM 11 SIDE
106 .SBTTL UNIVERSALS -- T10HOM - Format of TOPS10 home block, as seen from 11 side
107
108 .MACRO WSYM .NAME,.VALUE
109 '.NAME'='.VALUE'.
110 .ENDM WSYM
111
112 .MACRO T10HOM
113 ; This stuff defines the "PDP11 WORD NUMBER" of each thing
114 WSYM HOMNA0,0 ;;OFFSET CONTAINING SIXBIT .HOM. (TRUNCATED TO 16 BITS)
115 SIXHOM=105755 ;;TOPS10 SIXBIT "HOM" TRUNCATED TO 16 BITS
116 WSYM HOMNA1,1 ;;2ND HALF OF SIXBIT .HOM. (ALWAYS 0)
117
118 ;; HERE ARE THE KLDCP POINTERS
119 WSYM HOMKV1,98 ;;CONTAINS .RAD50 /KL / IF KLDCP VERSION 1
120 WSYM HOMKV2,106 ;;CONTAINS .RAD50 /KLA/ IF KLDCP VERSION 2
121 WSYM HOMKV3,107 ;;CONTAINS .RAD50 /D10/ IF KLDCP VERSION 2
122 WSYM HOMKCY,108 ;;CONTAINS CYLINDER OF KLADFE.SYS
123 WSYM HOMKTS,109 ;;CONTAINS TRACK/SECTOR OF KLADFE.SYS
124 WSYM HOMKLN,110 ;;CONTAINS LENGTH OF KLADFE.SYS
125
126 ;; HERE ARE THE FILES11 POINTERS
127 WSYM HOMFEV,98 ;;CONTAINS 100000 IF FILES11 VALID
128 VALID=100000 ;;BIT ON IF FILES11 VALID
129 WSYM HOMFE0,99 ;;CONTAINS LBN OF FILES11 FILE SYSTEM
130 WSYM HOMFLN,101 ;;LENGTH OF CONTIGUOUS FILES11 FILE SYSTEM
131 .ENDM T10HOM
132
133 000000 T10HOM ;;FORCE DEFAULT DEFINITIONS
134
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 4
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- F11HED - FORMAT OF FILES-11 FILE HEADER BLOCK, AS SEEN FROM 11
136 .SBTTL UNIVERSALS -- F11HED - format of FILES-11 file header block, as seen from 11
137
138 .MACRO BSYM .name,.value
139 W.'.name'=.offset
140 .offset=.offset+'.value'.
141 .ENDM BSYM
142
143 .MACRO F11HED
144 .offset=0
145 BSYM IDOF,1 ;; OFFSET INTO THE ID AREA
146 BSYM MPOF,1 ;; OFFSET INTO THE MAP AREA (FROM THE ID AREA)
147 BSYM FNUM,2 ;; FILE NUMBER
148 BSYM FSEQ,2 ;; FILE SEQUENCE
149 BSYM FLEV,2 ;; STRUCTURE LEVEL AND SYSTEM NUMBER
150 BSYM PROG,1 ;; MEMBER NUMBER
151 BSYM PROJ,1 ;; GROUP NUMBER
152 BSYM FPRO,2 ;; FILE-PROTECTION CODE
153 BSYM UCHA,1 ;; USER CONTROLLER FILE CHARACTERISTICS
154 .ENDM F11HED
155 000000 F11HED
156
157 .MACRO F11FID ;; DEFINE ID AREA
158 .offset=0 ;; OFFSET FROM THE START OF THE ID AREA
159 BSYM FNAM,6 ;; 6 BYTES OF RAD50, 3 CHARS PER 2 BYTES
160 BSYM FTYP,2 ;; 2 BYTES OF FILE TYPE IN RAD50
161 BSYM FVER,2 ;; FILE VERSION # IN BINARY
162 BSYM RVNO,2 ;; REVISION # IN BINARY
163 BSYM RVDT,7 ;; REVISION DATE IN ASCII ddmmmyy FORMAT
164 BSYM RVTI,6 ;; REVISION TIME IN ASCII hhmmss FORMAT
165 BSYM CRDT,7 ;; CREATION DATE IN ASCII ddmmmyy FORMAT
166 BSYM CRTI,6 ;; CREATE TIME IN hhmmss FORMAT
167 BSYM EXDT,7 ;; EXPIRE DATE IN ASCII ddmmmyy FORMAT
168 .ENDM F11FID
169 000000 F11FID ;;INCARNATE THE SYMBOLS
170
171 .MACRO F11MAP ;; DEFINE THE MAPPING AREA TOO
172 .offset=0
173 BSYM ESQN,1 ;; EXTENSION SEGMENT NUMBER
174 BSYM ERVN,1 ;; EXTENSION RELATIVE VOLUME NUMBER (NEVER USED)
175 BSYM EFNU,2 ;; EXTENSION FILE NUMBER
176 BSYM EFSQ,2 ;; EXTENSION SEQUENCE NUMBER
177 BSYM CTSZ,1 ;; # OF BYTES IN A "BLOCK-COUNT FIELD" - ALWAYS 1
178 BSYM LBSZ,1 ;; # BYTES IN "LOGICAL BLOCK NUMBER FIELD" - ALWAYS 3
179 BSYM USE,1 ;; # RETRIEVAL POINTERS
180 BSYM MAX,1 ;; MAX # RETRIEVAL SLOTS IN THIS MAP
181 BSYM RTRV,0 ;; OFFSET TO RETRIEVAL POINTERS
182 .ENDM F11MAP
183 000000 F11MAP ;;INCARNATE THE SYMBOLS
184
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 5
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11
186 .SBTTL UNIVERSALS -- IOBITS - words and bits in the I/O page, seen from the 11
187
188 .MACRO IOBITS
189 .SBTTL UNIVERSALS -- IOBITS - Basic CPU
190
191 V.CPU= 004 ;CPU errors VECTOR
192 V.ILL= 010 ;Illegal instruction VECTOR
193 V.RES= 010 ;Reserved instruction VECTOR
194 V.BPT= 014 ;BPT, breakpoint trap VECTOR
195 V.IOT= 020 ;IOT, input/output trap VECTOR
196 V.PWF= 024 ;Power Fail trap VECTOR
197 V.EMT= 030 ;EMT, emulator trap VECTOR
198 V.TRP= 034 ;TRAP instruction
199
200
201 PS= 177776 ;Processor Status word (IE: PS)
202 R.SL= 177774 ;Stack limit register
203
204 R.R7= 177707 ;R7
205 R.PC= R.R7 ;Another name
206 R.R6= 177706 ;R6
207 R.SP= R.R6 ;Another name
208
209 R.R5= 177705 ;R5
210 R.R4= 177704 ;R4
211 R.R3= 177703 ;R3
212 R.R2= 177702 ;R2
213 R.R1= 177701 ;R1
214 R.R0= 177700 ;R0
215
216 R.SWR= 177570 ;Switch register
217 SWR=R.SWR ;Another name
218 R.DSP= R.SWR ;Display register
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 6
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11
220 .SBTTL UNIVERSALS -- IOBITS - DL11 console terminal
221
222 V.DLI= 060 ;CONSOLE TERMINAL KEYBOARD VECTOR
223 V.DLO= 064 ;CONSOLE TERMINAL PRINTER VECTOR
224
225 DL.RSR= 177560 ;RECEIVER STATUS REGISTER
226 DLDSCH=100000 ;R/O DATASET STATUS CHANGE. REQUEST DATASET INTERRUPT.
227 DLRNGI=40000 ;R/O RING INDICATOR. IF RING COMES ON, SETS DLDSCH.
228 DLCTS=20000 ;R/O CLEAR TO SEND. IF CTS CHANGES, SETS DLDSCH
229 DLCD=10000 ;R/O CARRIER DETECT. IF CD CHANGES, SETS DLDSCH.
230 DLRA=4000 ;R/O RECEIVER ACTIVE. SET IF UART IS ASSEMBLING A CHARACTER.
231 DLSRD=2000 ;R/O SECONDARY RECEIVED DATA. IF SRD CHANGES, SETS DLDSCH.
232 DLRD=200 ;R/O RECEIVER DONE. SET IF COMPLETE CHARACTER IS READY TO READ.
233 DLRIE=100 ;R/W RECEIVER INTERRUPT ENABLE. DO INTERRUPT IF DLRD TURNS ON.
234 DLDIE=40 ;R/W DATASET INTERRUPT ENABLE. DO INTERRUPT IF DLDSCH TURNS ON
235 DLSTD=10 ;R/W SECONDARY TRANSMITTED DATA. IF SET, SIGNAL GOES ON.
236 DLRTS=4 ;R/W REQUEST TO SEND. IF SET, SIGNAL GOES ON.
237 DLDTR=2 ;R/W DATA TERMINAL READY. IF SET, SIGNAL GOES ON.
238 DLRDRE=1 ;W/O READER ENABLE. ADVANCE ASR PTR ONE FRAME IF AUTOMATIC.
239
240 DL.RBF= 177562 ;RECEIVER BUFFER
241 DLRERR=100000 ;R/O RECEIVER ERROR. LOGICAL OR OF (DLROVR,DLRFRM,DLRPAR)
242 DLROVR=40000 ;R/O RECEIVER OVERRUN. THE OLD CHARACTER IS REPLACED WITH NEW.
243 DLRFRM=20000 ;R/O RECEIVER FRAMING ERROR.
244 DLRPAR=10000 ;R/O RECEIVER DATA PARITY ERROR.
245 DLRDAT=377 ;R/O RECEIVER DATA. THE CHARACTER READ.
246
247 DL.XSR= 177564 ;XMITTER STATUS
248 DLXRDY=200 ;R/O TRANSMITTER READY. REQUESTS TRANSMITTER INTRP.
249 DLXIE=100 ;R/W TRANSMITTER INTERRUPT ENABLED. DO INTERRUPT IF DLXRDY SET.
250 DLXMNT=4 ;R/W TRANSMITTER MAINTENENCE. CAUSES OUTPUT TO INPUT LOOP.
251 DLXBRK=1 ;R/W TRANSMITTER BREAK. FORCE BREAK SIGNAL UNTIL CLEARED.
252
253 DL.XBF= 177566 ;XMITTER BUFFER
254 DLXDAT=377 ;W/O TRANSMIT DATA. CHARACTER TO TYPE.
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 7
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11
256 .SBTTL UNIVERSALS -- IOBITS - RH11/RP06 bit definitions
257
258
259 V.RH11= 254 ;RH11 INTERRUPT VECTOR
260
261 RP.CS1= 176700 ;;CONTROL AND STATUS REGISTER 1
262 RPSC=100000 ;;R/O SPECIAL CONDITION. LOGICAL OR OF "RPTRE","RPATTN","RPMCPE"
263 RPTRE=40000 ;;R/O TRANSFER ERROR. LOR OF DLT,WCE,UPE,NED,NEM,PGE,
264 ;;MXF, MDPE, OR A DRIVE ERROR DURING DATA XFER.
265 RPCPE=20000 ;;R/O CONTROL BUS PARITY ERROR (DURING REMOTE REGISTER READ)
266 RPDVA=4000 ;;R/O DRIVE AVAILABLE. 1=NOT BUSY ON OTHER PORT.
267 RPPSEL=2000 ;;R/W PORT SELECT. 1=DO DATA TRANSFER VIA UNIBUS B.
268 RPAD17=1000 ;;R/W UNIBUS ADDRESS BIT 17.
269 RPAD16=400 ;;R/W UNIBUS ADDRESS BIT 16.
270 RPRDY=200 ;;R/O READY. 1=DATA TRANSFER IN PROGRESS. 0=DONE.
271 RPIE=100 ;;R/W INTERRUPT ENABLE. DO INTERUPT IF RPRDY OR RPATTN GET SET.
272 RPFUNC=77 ;;R/W FUNCTION AND GO BITS.
273 RPOPNP=0 ; NO OPERATION
274 RPOPUL=2 ; UNLOAD/STANDBY
275 RPOPRC=6 ; RECALIBRATE
276 RPOPDC=10 ; DRIVE CLEAR
277 RPOPRP=12 ; RELEASE PORT
278 RPOPSR=30 ; SEARCH COMMAND
279 RPOPWC=50 ; WRITE CHECK DATA
280 RPOPWH=52 ; WRITE CHECK HEADER & DATA
281 RPOPWD=60 ; WRITE DATA
282 RPOPWF=62 ; WRITE FORMAT (HEADER & DATA)
283 RPOPRD=70 ; READ DATA
284 RPOPRF=72 ; READ FORMAT (HEADER & DATA)
285 RPOPSK=4 ; SEEK
286 RPOPOF=14 ; OFFSET
287 RPOPCL=16 ; (RETURN TO) CENTERLINE
288 RPOPPA=22 ; PACK ACKNOWLEDGE
289 RPOPRI=20 ; READ-IN PRESET
290 RPGO=1 ;;R/W GO. REQUEST DRIVE TO DO FUNCTION. CLEARED WHEN DONE.
291
292 RP.WC= 176702 ;;R/W WORD COUNT REGISTER. 2s COMPLEMENT WORD COUNT FOR XFER.
293
294 RP.BA= 176704 ;;R/W UNIBUS ADDRESS REGISTER. LOW 15 BITS OF XFER ADDRESS.
295
296 RP.DA= 176706 ;;DESIRED SECTOR/TRACK ADDRESS REGISTER
297 RPTRKA=017400 ;;R/W TRACK ADDRESS - HIGH BYTE OF WORD IS TRACK ADDRESS
298 RPSCTA=37 ;;R/W SECTOR ADDRESS - LOW BYTE OF WORD IS SECTOR ADDRESS
299
300 RP.CS2= 176710 ;;CONTROL AND STATUS 2 REGISTER
301 RPDLT=100000 ;;R/O DATA LATE. CAUSES RPTRE TO GET SET.
302 RPWCE=40000 ;;R/O WRITE CHECK ERROR. MISMATCH DURING WRITE. SETS RPTRE.
303
304 RP.DS= 176712 ;;DRIVE STATUS REGISTER
305 RPATA=100000 ;;R/O ATTENTION.
306 RPERR=40000 ;;R/O SET IF RP.ER1,RP.ER2,RP.ER3 GET SET. ONLY RPOPDC CAN CLR.
307
308 RP.ER1= 176714 ;;ERROR REGISTER 01
309 RPDCK=100000 ;;R/W DATA CHECK (IE: CORRECTABLE)
310 RPUNS=40000 ;;R/W UNSAVE (LOGICAL OR OF ALL UNSAFE BITS IN RPER2&RPER3)
311 RPOPI=20000 ;;R/W OPERATION INCOMPLETE
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 7-1
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- IOBITS - WORDS AND BITS IN THE I/O PAGE, SEEN FROM THE 11
312 RPDTE=10000 ;;R/W DRIVE TIMING ERROR
313 RPWLE=4000 ;;R/W WRITE LOCK ERROR
314 RPIAE=2000 ;;R/W INVALID ADDRESS ERROR (DISK ADDRESS, NOT CORE ADDRESS)
315 RPAOE=1000 ;;R/W ADDRESS OVERFLOW ERROR (CYLINDER REGISTER OVERFLOWED)
316 RPHCRF=400 ;;R/W HEADER CRC ERROR
317 RPHCE=200 ;;R/W HEADER COMPARE ERROR
318 RPECH=100 ;;R/W ECC HARD ERROR
319 RPWCF=40 ;;R/W WRITE CLOCK FAIL
320 RPFER=20 ;;R/W FORMAT ERROR (OFFSET FMT DOESN'T MATCH DATA ON DISK)
321 RPPAR=10 ;;R/W PARITY ERROR
322 RPRMR=4 ;;R/W REGISTER MODIFICATION REFUSED
323 RPILR=2 ;;R/W ILLEGAL REGISTER
324 RPILF=1 ;;R/W ILLEGAL FUNCTION CODE
325
326 RP.OF= 176732 ;;OFFSET REGISTER
327 RPSCG=100000 ;;R/W SIGN CHANGE (FLIPS IF HEAD IS OVER TRUE TRACK'S CENTERLINE
328 RPFMT2=10000 ;;R/W 1 WHEN 16BIT/WORD FORMAT, 0 WHEN 18BIT/WORD FORMAT
329 RPECI=4000 ;;R/W 1 TO DISABLE ECC ERROR CORRECTION
330 RPHCI=2000 ;;R/W 1 TO DISABLE "HEADER COMPARE"
331 RPOFSD=377 ;;R/W OFFSET INFORMATION
332
333 RP.DC= 176734 ;;DESIRED CYLINDER
334 RPCYLA=777 ;;R/W CYLINDER ADDRESS.
335
336 RP.EC1= 176744 ;;ECC POSITION
337 ;;R/O
338
339 RP.EC2= 176746 ;;ECC PATTERN
340 ;;R/O
341 .ENDM IOBITS
342 000000 IOBITS
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 8
FELOAD.P11 02-MAY-88 11:28 UNIVERSALS -- KLDHED - FORMAT OF ENTRY IN KLDCP DIRECTORY
344 .SBTTL UNIVERSALS -- KLDHED - Format of entry in KLDCP directory
345
346 .MACRO WSYM .NAME
347 W.'.NAME'=.OFFSET
348 .OFFSET=.OFFSET+2
349 .ENDM WSYM
350 000000 .OFFSET=0
351
352 .MACRO KLDHED
353 WSYM KFL0 ;FIRST HALF OF KLDCP FILE NAME
354 WSYM KFL1 ;SECOND HALF OF KLDCP FILE NAME
355 WSYM KEXT ;EXT OF KLDCP FILE NAME
356 WSYM KCRE ;CREATION DATA
357 WSYM KCYL ;CYLINDER OF FILE
358 WSYM KTS ;TRACK/SECTOR
359 WSYM KWAH ;WORDS ALLOCATED (HIGH)
360 WSYM KWAL ;WORDS ALLOCATED (LOW)
361 WSYM K1LA ;PDP11 LOAD ADDDRESS
362 WSYM K1SA ;PDP11 START ADDRESS
363 WSYM KTYP ;FILE TYPE & FILE STATUS
364 WSYM KCHK ;CHECK SUM
365 WSYM KRS1 ;RESERVED (0)
366 WSYM KRS2 ;RESERVED (0)
367 WSYM KCPH ;CURRENT POSITION (HIGH)
368 WSYM KCPL ;CURRENT POSITION (LOW)
369 FDESIZ=.OFFSET ;SIZE OF AN ENTRY
370 .ENDM KLDHED
371 000000 KLDHED
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 9
FELOAD.P11 02-MAY-88 11:28 DEFINITIONS - "HELPER" MACROS
373 .SBTTL DEFINITIONS - "helper" macros
374
375 .MACRO TYPE .string ;;MACRO TO TYPE A STRING ON THE CONSOLE
376 .ENABL LC
377 CALL STYPE
378 .ASCIZ @'.string'@<15><12>
379 .EVEN
380 .ENDM TYPE
381
382 .MACRO ABORT .string ;;MACRO TO TYPE A STRING AND THEN HALT
383 TYPE <'.string'>
384 HALT
385 .ENDM ABORT
386
387 .MACRO CALL .dest
388 JSR PC,.dest
389 .ENDM CALL
390
391 .MACRO RETURN
392 RTS PC
393 .ENDM RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 10
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
395 .SBTTL BLOCK 0 booting code
396 000000 .=0 ;LOAD INTO LOCATION 0
397
398 ; THIS CODES RESIDES IN PHYSICAL DISK BLOCK 0; THE ROM LOADS IT
399 000000 010067 011134 FELOAD: MOV R0,INITR0
400 000004 012700 011142 MOV #INITR1,R0
401 000010 010120 MOV R1,(R0)+ ;SAVE R1
402 000012 010220 MOV R2,(R0)+ ;SAVE R2
403 000014 010320 MOV R3,(R0)+ ;SAVE R3
404 000016 010420 MOV R4,(R0)+ ;SAVE R4
405 000020 010520 MOV R5,(R0)+ ;SAVE R5
406 ; MOV SP,(R0)+ ;SAVE SP
407 000022 010105 MOV R1,R5 ;PRESERVE CSR ADDRESS IN R5
408 000024 016567 000010 011130 MOV RP.CS2-RP.CS1(R5),RPUNIT ;SAVE UNIT NUMBER
409
410 ; NOW READ IN 2ND PART OF BOOT
411 000032 012700 004000 MOV #PROMPT,R0 ;UNIBUS ADDRESS OF 2ND PART
412 000036 005001 CLR R1 ;HIGH ORDER LBN=0
413 000040 012702 000004 MOV #4,R2 ;LOW ORDER LBN=4
414 000044 010203 MOV R2,R3 ;REQUEST 4 BLOCK READ
415 000046 012706 010120 MOV #STAK,SP ;INIT THE STACK POINTER
416 000052 CALL REDBLK ;READ THAT BLOCK FROM RP04
417 000056 103402 BCS 2$ ;BRANCH IF CAN'T READ 2ND PART
418 000060 000167 003714 1$: JMP PROMPT ;JOIN "2nD PART CODE"
419
420 000064 2$: ABORT <?Can't get FELOAD part 2>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 11
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
422
423 ; ROUTINE TO TYPE A CHARACTER ON THE CONSOLE TERMINAL
424 000126 010037 177566 TYO: MOV R0,@#DL.XBF ;TYPE THE CHARACTER
425 000132 105737 177564 TYO1: TSTB @#DL.XSR ;WAIT FOR "DONE" TO APPEAR
426 000136 002375 BGE TYO1 ;LOOP UNTIL IT TURNS ON
427 000140 000207 RTS PC
428
429 ; ROUTINE TO TYPE A STRING
430 000142 012601 STYPE: MOV (SP)+,R1 ;PICK UP ADDRESS OF STRING
431 000144 112100 STYPE1: MOVB (R1)+,R0 ;PICK UP A BYTE
432 000146 001403 BEQ STYPE2 ;EXIT IF WE PICK UP A ZERO
433 000150 CALL TYO ;OTHERWISE TYPE IT
434 000154 000773 BR STYPE1 ;LOOP TILL WE FIND THE 0
435 000156 005201 STYPE2: INC R1 ;ADVANCE ONE BYTE
436 000160 042701 000001 BIC #1,R1 ;TURN OFF ODD BIT
437 000164 000111 JMP @R1 ;RETURN TO CALLER
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 12
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
439 ; ROUTINE TO ROTATE THE 3 WORDS @R1 (R3) BITS LEFT
440 ; (USED TO DO ECC CORRECTION)
441 000166 006311 PROL36: ASL (R1)
442 000170 006161 000002 ROL 2(R1)
443 000174 006161 000004 ROL 4(R1)
444 000200 005303 DEC R3
445 000202 001371 BNE PROL36
446 000204 RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 13
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
448 ; ROUTINE TO READ RP04/RP05/RP06 DISK BLOCKS
449 ;ENTER:
450 ; R0/ UNIBUS AADRESS OF 1ST WORD TO XFER
451 ; R1/ HIGH ORDER WORD OF LBN
452 ; R2/ LOW ORDER WORD OF LBN
453 ; R3/ # OF BLOCKS TO READ CONTIGUOUSLY, 0 MEANS 1
454 ; R5/ ADDRESS OF RPCS1
455
456 000206 010067 010746 REDBLK: MOV R0,SAVUBA ;SAVE UNIBUS ADDRESS
457 000212 010367 010752 MOV R3,SAVCNT ;SAVE COUNT OF BLOCKS
458 000216 010167 010742 REDBL0: MOV R1,SAVHLB ;SAVE HIGH LBN
459 000222 010267 010740 MOV R2,SAVLLB ;SAVE LOW LBN
460
461 ; HERE TO READ A BLOCK
462 000226 012704 000020 MOV #16.,R4 ;TRY UP TO 16 TIMES
463 000232 016765 010724 000010 REDBL1: MOV RPUNIT,RP.CS2-RP.CS1(R5) ;SETUP UNIT FIELD
464 000240 016765 010714 000004 MOV SAVUBA,RP.BA-RP.CS1(R5) ;SET THE UNIBUS ADDRESS
465 000246 012765 177400 000002 MOV #-400,RP.WC-RP.CS1(R5) ;SET THE WORD COUNT FOR 1 BLOCK
466 000254 005003 CLR R3 ;START OFF WITH 0 ANSWER
467 000256 005203 1$: INC R3 ;COUNT A SUBTRACTION
468 000260 162702 000574 SUB #380.,R2 ;USE A SUBTRACT LOOP ...
469 000264 005601 SBC R1 ;...TO CALCULATE "LBN / BPC"
470 000266 100373 BPL 1$ ;...TO GET DESIRED CYLINDER ADDRESS
471 000270 005303 DEC R3 ;FORGET THE LAST SUBTRACTION
472 000272 062702 000574 ADD #380.,R2 ;PUT BACK THE LAST CYLINDER'S BLOCKS
473 000276 005501 ADC R1 ;...
474 ; NOW R3=DESIRED CYLINDER ADDRESS
475 000300 010365 000034 MOV R3,RP.DC-RP.CS1(R5) ;SPECIFY THE DESIRED CYLINDER
476
477 000304 005003 CLR R3 ;CLEAR RESULT
478 000306 005203 2$: INC R3 ;COUNT FIRST ONE
479 000310 162702 000024 SUB #20.,R2
480 000314 005601 SBC R1 ;TAKE CARE OF CARRY (IF ANY)
481 000316 100373 BPL 2$ ;LOOP UNTIL WE GO TOO FAR
482 000320 062702 000024 ADD #20.,R2 ;RETURN IT
483 000324 005501 ADC R1 ;FIX FINAL CARRY
484 000326 005303 DEC R3 ;ONE LESS THAN WE THOUGHT
485
486 000330 000303 SWAB R3 ;TRACK IN LH
487 000332 050302 BIS R3,R2 ;INSERT SECTOR
488 000334 010265 000006 MOV R2,RP.DA-RP.CS1(R5) ;TELL DRIVE TRACK/SECTOR
489
490 000340 005065 000032 CLR RP.OF-RP.CS1(R5) ;CLEAR OFFSET
491 000344 020427 000010 CMP R4,#8. ;2ND 8 TRIES?
492 000350 003003 BGT 3$ ;NO
493 000352 012765 002000 000032 MOV #RPHCI,RP.OF-RP.CS1(R5) ;YES, TRY TURNING ON HEADER INHIBIT
494 000360 012765 000071 000000 3$: MOV #71,RP.CS1-RP.CS1(R5) ;TELL KONTROLLER TO DO THE READ
495 000366 005000 CLR R0 ;CLEAR TIMEOUT COUNT
496 000370 005200 4$: INC R0 ;COUNT UP TIMER
497 000372 001404 BEQ 5$ ;BRANCH IF XFER TIMED OUT
498 000374 032765 060200 000000 BIT #RPTRE!RPCPE!RPRDY,RP.CS1-RP.CS1(R5) ;TEST FOR DONE
499 000402 001772 BEQ 4$ ;LOOP TILL ONE COMES ON
500
501 000404 005304 5$: DEC R4 ;CHECK RETRY COUNT
502 000406 100434 BMI GIVEUP ;GIVE UP IF NO MORE POSSIBLE
503 000410 005700 TST R0 ;TEST TIMEOUT COUNT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 13-1
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
504 000412 001425 BEQ RETRY ;IT TIMED OUT, TRY IT ALL OVER AGAIN
505 000414 032765 060000 000000 BIT #RPCPE!RPTRE,RP.CS1-RP.CS1(R5);CHECK CONTROL BUS PARITY ERROR
506 000422 001021 BNE RETRY ;RETRY ENTIRE OPERATION
507 000424 032765 140000 000012 BIT #RPATA!RPERR,RP.DS-RP.CS1(R5) ;CHECK DISK ERRORS
508 000432 001024 BNE TRYECC ;GO CONSIDER CORRECTABLE ERROR
509
510 ;IF WE GET HERE, THE XFER WAS APPARENTLY ERROR-FREE
511 000434 016702 010526 REDAOK: MOV SAVLLB,R2 ;RESTORE LOW LBN
512 000440 016701 010520 MOV SAVHLB,R1 ;RESTORE HIGH LBN
513 000444 005202 INC R2 ;ADD 1 TO LBN
514 000446 005501 ADC R1 ;ADD POSSIBLE CARRY
515 000450 062767 001000 010502 ADD #1000,SAVUBA ;STEP TO NEXT BLOCK ADDRESS
516 000456 005367 010506 DEC SAVCNT
517 000462 003255 BGT REDBL0 ;READ ANOTHER
518 ; ADD TO SAVUBA WILL NEVER "OVERFLOW" 16 BIT ADDRESS
519 ; CLC ;CLEAR ERROR
520 000464 RETURN
521
522 ;HERE TO RETRY THE XFER
523 000466 016701 010472 RETRY: MOV SAVHLB,R1 ;RESTORE THE LBN TO XFER
524 000472 016702 010470 MOV SAVLLB,R2 ;...
525 000476 000655 BR REDBL1 ;GO DO THE OPERATION AGAIN
526 ;WE DID OUR BEST, GIVE UP
527 000500 000261 GIVEUP: SEC
528 000502 RETURN
529
530 ;HERE IF READ FAILED, TRY AGAIN
531 000504 032765 077777 000014 TRYECC: BIT #77777,RP.ER1-RP.CS1(R5) ;CHECK FOR ANY ERROR, 'CEPT ECC DATA
532 000512 001365 BNE RETRY ;IF NOT ECC ERR, TRY VIA HARD RE-READ
533 000514 016502 000044 MOV RP.EC1-RP.CS1(R5),R2 ;GET ECC POSITION
534 000520 001762 BEQ RETRY ;GIVE UP IF POS=0
535
536 000522 005067 010452 CLR ECWRD0
537 000526 005067 010450 CLR ECWRD0+2
538 000532 005067 010446 CLR ECWRD0+4
539 000536 005067 010444 CLR ECWRD0+6
540 000542 005067 010442 CLR ECWRD0+10
541 000546 005067 010440 CLR ECWRD0+12
542
543 000552 016567 000046 010426 MOV RP.EC2-RP.CS1(R5),ECMSK0;GET ECC CORRECTION
544
545 000560 005302 DEC R2 ;DIVIDE POSITION BY 18.
546 000562 005003 CLR R3
547 000564 162702 000022 61$: SUB #18.,R2 ;
548 000570 002402 BLT 62$ ;
549 000572 005203 INC R3 ;
550 000574 000773 BR 61$ ;
551
552 000576 062702 000022 62$: ADD #18.,R2 ;DONE, R3=WORD, R2=SHIFTS
553 000602 006303 ASL R3 ;DOUBLE WORD POSITION, 11 ADR IN BYTES
554 000604 066703 010350 ADD SAVUBA,R3
555 000610 010367 010400 MOV R3,ECADR0 ;SETUP 1ST BAD WORD ADDRESS
556
557 000614 005723 TST (R3)+
558 000616 010367 010374 MOV R3,ECADR1 ;SETUP 2ND BAD WORD ADDRESS
559 ; MOV #ECWRD0,R1
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 13-2
FELOAD.P11 02-MAY-88 11:28 BLOCK 0 BOOTING CODE
560 000622 011367 010352 MOV (R3),ECWRD0 ;SETUP 2ND BAD WORD
561 000626 011367 010370 MOV (R3),ECBAD1 ;SAVE 2ND BAD WORD
562 000632 CALL PROL36 ;POSITION 2ND WORD INTO UPPER 18 BITS
563
564 000636 017767 010352 010334 MOV @ECADR0,ECWRD0 ;SETUP 1ST BAD WORD
565 000644 016767 010330 010346 MOV ECWRD0,ECBAD0 ;SAVE 1ST BAD WORD
566
567 ; MOV #ECMSK0,R1
568 000652 010203 MOV R2,R3
569 000654 CALL PROL36 ;POSITION ECC CORRECTION WORD
570
571 000660 016746 010322 MOV ECMSK0,-(SP) ;CORRECT BITS 0-16
572 000664 046716 010310 BIC ECWRD0,(SP) ;
573 000670 046767 010312 010302 BIC ECMSK0,ECWRD0
574 000676 052667 010276 BIS (SP)+,ECWRD0
575
576 000702 016746 010302 MOV ECMSK0+2,-(SP) ;CORRECT BITS 17-32
577 000706 046716 010270 BIC ECWRD1,(SP) ;
578 000712 046767 010272 010262 BIC ECMSK0+2,ECWRD1
579 000720 052667 010256 BIS (SP)+,ECWRD1
580
581 000724 016766 010262 177777 MOV ECMSK0+4,-1(SP) ;CORRECT BITS 33-36
582 000732 046716 010246 BIC ECWRD2,(SP)
583 000736 046767 010250 010240 BIC ECMSK0+4,ECWRD2
584 000744 052667 010234 BIS (SP)+,ECWRD2
585
586 ; MOV #ECWRD0,R1
587 000750 016777 010224 010236 MOV ECWRD0,@ECADR0 ;PUT 1ST CORRECT WORD BACK IN CORE
588
589 000756 012703 000016 MOV #14.,R3
590 000762 CALL PROL36
591 000766 016777 010212 010222 MOV ECWRD2,@ECADR1 ;PUT 2ND WORD BACK IN CORE
592 000774 000617 BR REDAOK ;NOW GO TO NEXT BLOCK
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 14
FELOAD.P11 02-MAY-88 11:28 END OF BLOCK 0 CODE
594 .SBTTL END OF BLOCK 0 CODE
595
596 000776 .DEPHASE
597 000776 .=.
598 000377 B0WRDS=./2 ;# OF WORDS USED IN BLOCK 0 (NOT BYTES)
599 000776 000002 .PRINT 1000-.;LOCATIONS LEFT IN BLOCK 0 BOOT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 15
FELOAD.P11 02-MAY-88 11:28 START OF BLOCK 4-7 CODE
601 .SBTTL START OF BLOCK 4-7 CODE
602
603 004000 .=4000 ;THIS GOES INTO BLOCK 4 (THRU 7)
604
605 004000 032767 000001 005144 PROMPT: BIT #1,INITR5 ;READ "SWR" BUTTON PUSHED?
606 004006 001032 BNE SWRFOO ;YES, GO DO THAT
607
608 004010 105767 005136 TSTB INITR5 ;TEST THE "DISK" BIT
609 004014 100427 BMI DISK ;BRANCH IF DISK SET
610 ;N.B.: HE PUSHED DTA/FLOPPY BUTTON - AND WE COULDN'T HAVE GOTTEN HERE!
611 004016 ABORT <?FELOAD cannot boot DECtape or floppy>
612
613 004074 SWRFOO:
614 004074 032737 100000 177570 DISK: BIT #100000,@#SWR ;IS THE HIGH ORDER BIT SET?
615 004102 001033 BNE GETKLD ;YES, GET KLDCP
616 004104 000412 BR GETRSX ;NO, GET RSX20F
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 16
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
618 .SBTTl BOOT IN AND START 20F FRONT END
619
620 004106 012767 100207 005036 USERSX: MOV #100207,INITR5
621 004114 012767 176700 005020 MOV #176700,INITR1
622 004122 012705 176700 MOV #176700,R5
623 004126 012706 010120 MOV #STAK,SP
624 004132 GETRSX: CALL MOVEME ;GO TO NEW HOME
625 004136 CALL GETHOM ;GET THE TOPS10 HOME BLOCKS
626 004142 CALL GETH11 ;GET THE FILES11 HOME BLOCK
627 004146 CALL FND550 ;GO FIND FHB FOR 5,5,0 (CORIMG.SYS)
628 004152 CALL RED550 ;GO READ IN CORIMG.SYS INTO CORE
629 004156 CALL FNDACP ;GO FIND F11ACP.TSK
630 004162 CALL POK20F ;GO POKE SOME MAGIC VALUES INTO
631 ;THE RESIDENT IMAGE OF THE 20F MONITOR
632 004166 000167 002660 JMP RESACS ;RESTORE ACS AND START RSX20F
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 17
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
634 ; HERE TO LOAD AND START KLDCP FRONT END
635 004172 GETKLD: CALL GETHOM ;GET TOPS10 HOME BLOCK(S)
636 004176 CALL VRFKLD ;VERIFY THIS IS A KLAD PACK
637 004202 CALL FNDDIR ;FIND THE DIRECTORY LOCATION AND SIZE
638 004206 CALL REDDIR ;GO READ KLAD10 DIRECTORY
639 004212 CALL FNDKLD ;GO FIND KLDCP.BIN IN THE DIRECTORY
640 004216 CALL LODKLD ;GO LOAD KLDCP.BIN
641
642 004222 000167 002624 JMP RESACS ;GO START KLDCP
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 18
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
644 004226 012702 000001 GETHOM: MOV #1,R2
645 004232 CALL GETH10
646 004236 103401 BCS 2$
647 004240 1$: RETURN
648
649 004242 012702 000012 2$: MOV #12,R2
650 004246 CALL GETH10
651 004252 103372 BCC 1$
652 004254 ABORT <?Unable to read HOME.SYS>
653
654 ; ROUTINE TO READ A TOPS-10 HOME BLOCK
655
656 004316 016700 003056 GETH10: MOV DBA,R0 ;ADDRESS OF DISK BUFFER
657 004322 005001 CLR R1 ;HIGH ORDER LBN OF HOME BLOCKS ALWAYS 0
658 004324 005003 CLR R3 ;ALWAYS JUST ONE BLOCK TO READ
659 004326 CALL REDBLK ;READ THE HOME BLOCK
660 004332 103002 BCC 2$ ;BRANCH IF NO ERRORS
661 004334 000261 1$: SEC ;SET CARRY SO CALLER SEES ERROR
662 004336 000207 RTS PC ;RETURN WITH CARRY SET
663
664 ;HERE IF READ OF BLOCK SUCCEEDED
665 004340 022767 105755 003554 2$: CMP #105755,DB ;MAKE SURE LH OF PDP10 WORD #0='HOM'
666 004346 001372 BNE 1$ ;GIVE ERROR RETURN IF NOT
667 004350 005767 003550 TST DB+2 ;MAKE SURE RH OF PDP10 WORD#0 IS ZERO
668 004354 001367 BNE 1$ ;GIVE ERROR RETURN IF NOT
669
670 004356 000241 CLC ;CLEAR CARRY
671 004360 000207 RTS PC ;GIVE GOOD RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 19
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
673 ; ROUTINE TO READ IN THE FILES11 HOME BLOCK
674 ; ENTER WITH GOOD TOPS10 HOME BLOCK IN DB
675 004362 016701 004040 GETH11: MOV DB+<HOMFE0*2>-2,R1 ;GET "HIGH" LBN OF HOME BLOCK
676 004366 100431 BMI 1$ ;BRANCH IFF VALID BIT IS SET
677 004370 ABORT <?VALID bit not set in TOPS-10 home block>
678
679 ; HERE IF TOPS10 HOME BLOCK SAYS WE HAVE AN RSX20F FILE AREA
680 ; READ IN THE FILES11 HOME BLOCK
681 004452 110101 1$: MOVB R1,R1 ;ISOLATE LOWBYTE (OF HIGH WORD)
682 004454 016702 003750 MOV DB+<HOMFE0*2>,R2 ;GET LOW WORD OF HOME BLOCK LBN
683 004460 105002 CLRB R2 ;CLEAR LOW BYTE
684 004462 062702 000400 ADD #400,R2 ;STEP TO MULTIPLE OF 400 SECTORS
685 004466 005003 CLR R3 ;SETUP TO READ 0 BLOCKS (=1 BLOCK)
686 004470 016700 002704 MOV DBA,R0 ;SETUP TO READ INTO DISK BUFFER
687
688 004474 CALL REDBLK ;READ WHAT OUGHT TO BE FILE11 HOME BLOCK
689 004500 103026 BCC 2$ ;
690 004502 ABORT <?Unable to read FILES-11 home block>
691 004556 2$: RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 20
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
693 ; ROUTINE TO "FIND" THE FHB FOR CORIMG.SYS.
694 ; CORIMG.SYS IS "KNOWN" FILE 5,5,0 SO LOOKUP THE QUICK WAY.
695 ; ENTER WITH GOOD FILES11 HOME BLOCK IN DB
696 004560 016701 003340 FND550: MOV DB+W.IBLB,R1 ;GET HIGH ORDER INDEX BIT MAP LBN
697 004564 016702 003336 MOV DB+W.IBLB+2,R2 ;GET LOW ORDER LBN
698 004570 066702 003326 ADD DB+W.IBSZ,R2 ;ADD SIZE OF BIT MAP TO GET LBN OF 1,1,0
699 004574 005501 ADC R1 ;ADD THE OVERFLOW OF THE LOW ORDER ADD
700 004576 062702 000004 ADD #5-1,R2 ;COMPUTE ADDRESS OF (5,5,0)
701 004602 005501 ADC R1 ;...
702 004604 010167 004312 MOV R1,SAVR1 ;SAVE R1 OF FHB FOR CORIMG
703 004610 010267 004310 MOV R2,SAVR2 ;SAVE R2 OF FHB FOR CORIMG
704 004614 005003 CLR R3 ;SPECIFY 0 BLOCKS (=1 BLOCK)
705 004616 016700 002556 MOV DBA,R0 ;READ INTO DISK BUFFER
706 004622 CALL REDBLK ;READ WHAT OUGHT TO BE THE RIB OF
707 ;(5,5,0), IE: CORIMG.SYS
708 004626 103033 BCC 3$
709 004630 ABORT <?Can't read FHB of CORIMG.SYS to load RSX-20F>
710
711 ; HERE WHEN WE HAVE (APPARENTLY) READ IN THE FHB FOR CORIMG.SYS.
712 ; DO SOME (CASUAL) VERIFICATION THAT IT REALLY...
713 ; ...IS A GOOD FHB FOR CORIMG.SYS(5,5,0).
714 004716 016701 003202 3$: MOV DB+W.FNUM,R1 ;GET FILE NUMBER
715 004722 016702 003200 MOV DB+W.FSEQ,R2 ;GET FILE SEQUENCE NUMBER
716 004726 020102 CMP R1,R2 ;THE SAME?
717 004730 001433 BEQ 5$ ;BRANCH AHEAD IF FILSEQ=FILNUM
718 004732 ABORT <?Sequence # of CORIMG.SYS not equal to file #>
719
720 005020 020127 000005 5$: CMP R1,#5 ;SHOULD BE FILE (5,5,0)
721 005024 001430 BEQ 6$ ;
722 005026 ABORT <?File ID for CORIMG.SYS is not (5,5,0)>
723
724 005106 6$: RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 21
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
726 ; ROUTINE TO READ CORIMG.SYS INTO CORE IN THE PROPER PLACE (0-127777)
727 ; ENTER WITH GOOD FHB FOR CORIMG.SYS IN DB
728 005110 RED550: TYPE <[Loading RSX-20F]>
729 005140 116702 002757 MOVB DB+W.MPOF,R2 ;GET OFFSET OF ID AREA
730 005144 060202 ADD R2,R2 ;COMPUTE SIZE IN BYTES
731 005146 066702 002226 ADD DBA,R2 ;COMPUTE R2= ADDRESS OF MAP AREA
732 005152 116201 000012 MOVB W.RTRV(R2),R1 ;GET HIGH LBN BYTE
733 005156 016202 000014 MOV W.RTRV+2(R2),R2 ;GET LOW LBN WORD
734 005162 005000 CLR R0 ;READ INTO LOCATION 0
735 005164 012703 000130 MOV #130,R3 ;READ 130 BLOCKS (IE: ALL OF CORIMG.SYS)
736 005170 CALL REDBLK ;READ A BLOCK (IE: BLOCK 0 OF CORIMG.SYS)
737 005174 103035 BCC 1$
738 005176 ABORT <Error reading CORIMG.SYS -- RSX-20F load aborted>
739 005270 1$: RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 22
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
741 ; ROUTINE TO FIND THE LOWEST FILE#'D FILE WITH NAME OF F11ACP.TSK
742 ; WE'LL USE THIS FILE'S LBN ADDRESS TO TELL THE INCORE RSX20F WHERE
743 ; IT'S PRINCIPLE ACP FOR THE BOOT DEVICE IS
744 ; ENTER WITH SAVR1/SAVR2 BEING THE LBN OF FHB FOR CORIMG.SYS
745 005272 000074 FHBMAX: 60. ;READ NO MORE THAN 60 FHBS
746 005274 025167 003310 000000 F11ACP: .RAD50 /F11ACP TSK/
005302 100003
747
748 005304 005367 177762 FNDACP: DEC FHBMAX ;BUMP COUNT DOWN
749 005310 100451 BMI 1$ ;BRANCH IF WE'RE NEVER FOUND IT
750 005312 005267 003606 INC SAVR2 ;STEP TO NEXT BLOCK
751 005316 005767 003602 TST SAVR2 ;DID IT JUST OVERFLOW?
752 005322 001002 BNE 2$ ;NO, SKIP UPDATE
753 005324 005267 003572 INC SAVR1 ;
754 005330 016700 002044 2$: MOV DBA,R0 ;READ NEXT FHB INTO DB
755 005334 016701 003562 MOV SAVR1,R1 ;GET FHB LBN ADR
756 005340 016702 003560 MOV SAVR2,R2 ;...
757 005344 005003 CLR R3 ;1 BLOCK ONLY
758 005346 CALL REDBLK ;READ IN AN FHB
759 005352 103754 BCS FNDACP ;GO ON TO NEXT FHB IF WE CAN'T READ THIS
760 005354 116702 002542 MOVB DB+W.IDOF,R2 ;GET OFFSET TO ID AREA IN WORDS
761 005360 060202 ADD R2,R2 ;COMPUTE OFFSET IN WORDS
762 005362 066702 002012 ADD DBA,R2 ;LOAD R2=ADDRESS OF ID AREA
763 005366 026267 000000 177700 CMP W.FNAM(R2),F11ACP ;DOES THIS LOOK AS IF IT IS F11ACP?
764 005374 001343 BNE FNDACP ;GO TO NEXT FHB IF FILE DOESN'T MATCH
765 005376 026267 000002 177672 CMP W.FNAM+2(R2),F11ACP+2 ;...?
766 005404 001337 BNE FNDACP ;GO TO NEXT FHB IF FILE DOESN'T MATCH
767 005406 005762 000004 TST W.FNAM+4(R2) ;...
768 005412 001334 BNE FNDACP ;GO TO NEXT FHB IF FILE DOESN'T MATCH
769 005414 026267 000006 177660 CMP W.FTYP(R2),F11ACP+6. ;CHECK FOR .TSK EXTENSION
770 005422 001330 BNE FNDACP ;GO TO NEXT FHB IF TYPE DOESN'T MATCH
771 005424 016267 000010 003572 MOV W.FVER(R2),LEVELV ;STORE THE VERSION OF THE ACP
772 005432 RETURN
773
774 005434 000261 1$: SEC
775 005436 RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 23
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
777 ; ROUTINE TO POKE MAGIC VALUES INTO THE 20F CORE IMAGE
778 ; TO COMPENSATE FOR THE FACT WE DIDN'T BOOT THIS VIA "SAVE"S RPBOOT.
779 ; ENTER WITH GOOD FHB FOR F11ACP IN DB.
780
781 ;*** THE CONSTANTS DEFINED HERE NEED TO BE REDEFINED AS NEEDED
782 000032 S.DL=32 ;; THIS OFFSET IS START OF 2 WORD ENTRY CONTAINING DISK ADDRESS
783 ;; OF THE LOAD IMAGE FOR THIS TASK. OFFSET INTO STD BLOCK.
784 007664 RPBOOT=7664 ;; ADDRESS OF RPBOOT, TAKE FROM LISTING OF SAV TASK
785 007772 RPRESU==7772 ;; ADDRESS OF LINE SAYING "BOOTSTRAP COMPLETE", FROM SAV LISTING
786 ;*** THE CONSTANTS ABOVE MAY NEED TO BE UPDATED, BUT NOTE THAT
787 ;*** THIS IS NOT COMMON SINCE S.DL MAY NEVER CHANGE AND RPRESU-RPBOOT
788 ;*** WILL PROBABLY REMAIN A CONSTANT EVEN IF RPRESU OR RPBOOT CHANGES
789 005440 116702 002457 POK20F: MOVB DB+W.MPOF,R2 ;GET OFFSET TO MAP AREA
790 005444 060202 ADD R2,R2 ;CONVERT TO BYTE OFFSET
791 005446 066702 001726 ADD DBA,R2 ;ADD NEW BUFFER ADR
792 005452 116201 000012 MOVB W.RTRV(R2),R1 ;GET HIGH LBN BYTE OF F11ACP.TSK
793 005456 016202 000014 MOV W.RTRV+2(R2),R2 ;GET LOW LBN WORD OF F11ACP.TSK
794 005462 062702 000002 ADD #2,R2 ;ADD 2 TO GET AT SKIP TASK HEADER INFO
795 005466 005501 ADC R1 ;...
796 005470 CALL GETSTD ;FIND VALUE OF .STDTB BASED ON 20F VERSION
797 005474 005700 TST R0 ;CHECK TO MAKE SURE WE GOT IT
798 005476 001415 BEQ 1$
799 005500 062700 000010 ADD #<4*2>,R0 ;COMPUTE ADDRESS OF F11ACP ENTRY
800 005504 011000 MOV @R0,R0 ;LOAD R0 WITH STD FOR F11ACP
801 005506 001411 BEQ 1$ ;BRANCH IF WE FAILED
802 005510 010160 000032 MOV R1,S.DL+0(R0) ;INSERT HIGH ORDER LBN INTO STD BLOCK
803 005514 010260 000034 MOV R2,S.DL+2(R0) ;INSERT LOW ORDER LBN INTO STD BLOCK
804
805 005520 012767 000106 003430 MOV #<RPRESU-RPBOOT>,NEWPC ;NEW PC INSIDE "RPBOOT" IN THE SAV TASK
806
807 ; Force RSX20F to believe that we used "SW/REG" rather than "DISK"
808 ; even if we didn't!
809 ;[JJF %1(4) Maybe we really don't want it to believe it!]
810 ; BIS #200!1,INITR5 ;TURN ON "DISK=200" AND "SW=1"
811 005526 000167 001320 JMP RESACS ;RESTORE ACS AND START BOOT
812
813 005532 1$: ABORT <?STD address of F11ACP within CORIMG.SYS incorrect>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 24
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
815 ; ROUTINE TO SEARCH TABLES TO FIND THE VALUE OF .STDTB
816 ; RETURN CURRENT 20F'S VALUE OF .STDTB IN R0
817
818 005626 012700 135744 GETSTD: MOV #VERTAB+NEWADR,R0 ;LOAD ADDRESS OF TABLE
819 005632 005710 1$: TST @R0 ;CHECK FOR END OF TABLE
820 005634 001404 BEQ 2$ ;BRANCH IF END OF TABLE
821 005636 022067 003362 CMP (R0)+,LEVELV ;COMPARE WITH 20F VERSION
822 005642 001435 BEQ GOTSTD ;BRANCH IF WE FIND SAME VERSION#
823 005644 000772 BR 1$
824 005646 2$: ABORT <?Unable to determine version of F11ACP.TSK file>
825 005736 016000 000006 GOTSTD: MOV VALTAB-VERTAB-2(R0),R0 ;LOAD STD ADDRESS
826 005742 RETURN
827
828
829 ;*** NOTE THAT NEWER VERSIONS OF 20F WILL NEED TO HAVE ENTRIES IN THE DTBX MACRO
830 ;*** SIMPLY LOOK AT THE NEW RSX20F MAP FOR THE VALUE OF .STDTB.
831 .MACRO DTBX ;;LIST OF .STDTB VALUES
832 XP 1506,6350 ;VERSION 1506
833 XP 1550,6372 ;VERSION 1550
834 XP 1600,6372 ;VERSION 1600
835 .ENDM
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 25
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
837 ; MACROS TO EXPAND THE VERSION NUMBER INFO FOR 20F
838 .MACRO XP a,b
839 .WORD a
840 .ENDM
841 005744 VERTAB: DTBX
842 005752 000000 0
843
844 .MACRO XP a,b
845 .WORD b
846 .ENDM
847 005754 VALTAB: DTBX
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 26
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
849 ; ROUTINE TO MOVE THE INCORE IMAGE 0-7777 TO NEWHOM-<NEWHOM+7777>
850
851 005762 012767 140122 001410 MOVEME: MOV #DB+NEWADR,DBA ;SETUP NEW DB ADDR
852 005770 012700 130000 MOV #NEWADR,R0 ;SETUP DESTINATION
853 005774 005001 CLR R1 ;SETUP ORIGIN
854 005776 012702 004513 MOV #ENDING/2,R2 ;SETUP # WORDS TO MOVE
855 006002 012120 1$: MOV (R1)+,(R0)+ ;MOVE A WORD TO NEW HOME
856 006004 077202 SOB R2,1$ ;KEEP DOING IT
857
858 006006 062706 130000 ADD #NEWADR,SP ;RELOCATE THE STACK
859 006012 062716 130000 ADD #NEWADR,(SP) ;ADJUST RETURN ADDRESS
860 006016 000207 RTS PC ;RETURN TO SAME PLACE IN NEW HOME
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 27
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
862 ; ROUTINE TO VERIFY THAT THIS IS A GOOD KLAD10 PACK
863 ; ENTER WITH TOPS10 HOME BLOCK IN DB.
864 006020 026727 002422 043241 VRFKLD: CMP DB+<HOMKV2*2>,#043241 ;CHECK FOR "KLAD10" IN RAD50
865 006026 001004 BNE 1$ ;BRANCH IF NOT THERE
866 006030 026727 002414 016766 CMP DB+<HOMKV3*2>,#016766 ;CHECK 2ND HALF
867 006036 001420 BEQ 2$ ;BRANCH IF "KLAD10" THERE
868 006040 1$: ABORT <?RAD50 "KLAD10" missing>
869
870 006100 000207 2$: RTS PC ;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 28
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
872 ; ROUTINE TO LOCATE THE SIZE AND POSITION OF THE KLDCP DIRECTORY.
873 ; ENTER WITH GOOD TOPS10 HOME BLOCK IN DB.
874 006102 005067 003066 FNDDIR: CLR LBNL ;CLEAR BLOCK NUMBER SUM
875 006106 005067 003060 CLR LBNH ;CLEAR BLOCK NUMBER SUM HIGH ORDER
876 006112 012701 000574 MOV #19.*20.,R1 ;GET MULTIPLIER
877
878 006116 066767 002330 003050 3$: ADD DB+<HOMKCY*2>,LBNL
879 006124 005567 003042 ADC LBNH ;ADD IN CARRY
880 006130 077106 SOB R1,3$ ;LOOP
881
882 006132 012701 000024 MOV #20.,R1 ;GET MULTIPLIER
883 006136 116704 002313 MOVB DB+<HOMKTS*2>+1,R4 ;GET TRACK
884 006142 060467 003026 4$: ADD R4,LBNL ;ADD IN A TRACK OF BLOCKS
885 006146 005567 003020 ADC LBNH ;ADD IN CARRY
886 006152 077105 SOB R1,4$ ;ACCOUNT FOR ALL TRACKS
887
888 006154 116704 002274 MOVB DB+<HOMKTS*2>,R4 ;GET SECTOR
889 006160 060467 003010 ADD R4,LBNL ;ADD IN SECTOR COUNT
890 006164 005567 003002 ADC LBNH ;FIX UP THE CARRY
891 006170 016767 002262 003000 MOV DB+<HOMKLN*2>,KLDLEN;REMEMBER SIZE OF DIRECTORY
892 006176 000207 RTS PC ;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 29
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
894 006200 012700 012000 REDDIR: MOV #KLDIR,R0 ;SETUP ADDRESS OF DIRECTORY
895 006204 016701 002762 MOV LBNH,R1 ;SETUP HIGH LBN
896 006210 016702 002760 MOV LBNL,R2 ;SETUP LOW LBN OF DIRECTORY
897 006214 016703 002756 MOV KLDLEN,R3 ;RECALL SIZE OF DIRECTORY
898 006220 CALL REDBLK ;READ IN THE DIRECTORY
899 006224 103401 BCS 8$ ;DIE IF CAN'T READ DIRECTORY
900 006226 000207 RTS PC ;RETURN
901 006230 8$: ABORT <?I/O error reading KLADFE.DIR>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 30
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
903 006276 012704 012000 FNDKLD: MOV #KLDIR,R4 ;POINT R4 AT DIRECTORY BUFFER
904
905 006302 005001 CLR R1 ;CLEAR SUM (WILL BECOME COUNT OF ENTRIES)
906 006304 016702 002666 MOV KLDLEN,R2 ;GET MULTIPLIER
907 006310 062701 000020 5$: ADD #1000/FDESIZ,R1 ;COMPUTE # ENTRIES PER BLOCK
908 006314 077203 SOB R2,5$ ;COMPUTE # OF ENTRIES
909
910
911 006316 026467 000000 000256 6$: CMP W.KFL0(R4),W.KFL0+KLDCP
912 006324 001010 BNE 7$ ;BRANCH IF NOT EQUAL IN 1ST HALF OF FILE NAME
913 006326 026467 000002 000250 CMP W.KFL1(R4),W.KFL1+KLDCP
914 006334 001004 BNE 7$ ;BRANCH IF NOT CORRECT 2ND HALF OF FILE NAME
915 006336 026467 000004 000242 CMP W.KEXT(R4),W.KEXT+KLDCP
916 006344 001423 BEQ FOUNDK ;BRANCH IF FILE NAMES AND EXT ALL MATCH
917
918 ; HERE IF SOME PART OF FILE NAME OR EXTENSION DOES NOT MATCH
919 006346 062704 000040 7$: ADD #FDESIZ,R4 ;STEP TO NEXT ENTRY
920 006352 077117 SOB R1,6$ ;LOOP FOR NEXT ENTRY
921 006354 ABORT <?Cannot find KLDCP.BIN>
922
923 ;FOUND KLDCP.BIN, CONVERT CYL/TRACK/SECTOR TO LOGICAL BLOCK NUMBER
924 006414 005067 002552 FOUNDK: CLR LBNH ;CLEAR LBN HIGH
925 006420 005067 002550 CLR LBNL ;CLEAR LBN LOW
926 006424 016400 000010 MOV W.KCYL(R4),R0 ;GET CYL#
927 006430 001406 BEQ 2$ ;SKIP IT IF ON CYLINDER 0
928 006432 062767 000574 002534 1$: ADD #380.,LBNL ;ADD IN A CYLINDER WORTH OF BLOCKS
929 006440 005567 002526 ADC LBNH ; (TAKE CARE OF CARRY, IF ANY)
930 006444 077006 SOB R0,1$ ;...FOR EVERY CYLINDER THERE
931 006446 116400 000013 2$: MOVB W.KTS+1(R4),R0 ;GET TRACK # (NEVER .GT. 20, IGNORE SIGN EXTEND)
932 006452 001406 BEQ 4$ ;DON'T IF ON TRACK 0
933 006454 062767 000024 002512 3$: ADD #20.,LBNL ;ADD IN A TRACK'S WORTH OF BLOCKS
934 006462 005567 002504 ADC LBNH ; (TAKE CARE OF CARRY, IF ANY)
935 006466 077006 SOB R0,3$ ;...FOR EVERY TRACK INVOLVED
936 006470 116400 000012 4$: MOVB W.KTS(R4),R0 ;GET SECTOR #
937 006474 060067 002474 ADD R0,LBNL ;ADD SECTOR NUMBER AS FINAL OFFSET
938 006500 005567 002466 ADC LBNH ;AND TAKE CARE OF FINAL CARRY
939
940 ;CONVERT THE WORD COUNT TO A BLOCK COUNT
941 006504 012700 000010 FIXWCK: MOV #8.,R0 ;GET #POSITIONS TO SHIFT
942 006510 006264 000014 1$: ASR W.KWAH(R4) ;SHIFT TO THE RIGHT
943 006514 006064 000016 ROR W.KWAL(R4) ;THE WORD COUNT RIGHT
944 006520 077005 SOB R0,1$ ;TO CONVERT TO A BLOCK COUNT
945 006522 005764 000014 TST W.KWAH(R4) ;TEST HIGH ORDER (BLOCK) COUNT
946 006526 001424 BEQ 2$
947 006530 ABORT <?KLDCP.BIN is too large to load>
948 006600 000207 2$: RTS PC ;RETURN
949
950 006602 043244 012500 006766 KLDCP: .RAD50 /KLDCP BIN/
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 31
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
952 006610 005067 002322 LODKLD: CLR FCOUNT ;INITIALIZE "DVFRAM" (AND DVWORD)
953 006614 TYPE <[Loading KLDCP.BIN]>
954 006646 016467 000016 002252 MOV W.KWAL(R4),BLKCNT
955 006654 005067 002252 LDBIN1: CLR $CKS11 ;INITIALIZE THE CHECKSUM
956 006660 CALL DVFRAM ;GET A FRAME INTO R0
957 006664 105300 DECB R0 ;CHECK FOR "BLOCK START"
958 006666 001372 BNE LDBIN1 ;LOOP AND WAIT FOR BLOCK START CODE (IE: 1)
959
960 006670 CALL DVFRAM ;READ ANOTHER FRAME (AND FORGET IT)
961
962 006674 CALL DVWORD ;GET A FULL WORD, THE BYTE COUNT
963 006700 010067 002224 MOV R0,LBC ;SAVE BYTE COUNT
964 006704 162767 000006 002216 SUB #6,LBC ;CHECK FOR XFER BLOCK
965 006712 001445 BEQ LJMP ;IF BYTE COUNT = 6, THIS IS AN XFER BLOCK
966 006714 CALL DVWORD ;GET A FULL WORD, THE LOAD ADDRESS
967 006720 010004 MOV R0,R4 ;SAVE LOAD ADDRESS
968
969 006722 LDBIN2: CALL DVFRAM ;GET A DATA BYTE
970 006726 005367 002176 DEC LBC ;DECREMENT BYTE COUNT
971 006732 002033 BGE LDBIN3 ;BRANCH IF INSIDE DATA PART OF PACKET
972 006734 105767 002172 TSTB $CKS11 ;IF BYTE COUNT EXPIRES, CHECK CHECKSUM
973 006740 001745 BEQ LDBIN1 ;START ANOTHER BLOCK IF CHECKSUM WAS OK
974 006742 BADCHK: ABORT <?Checksum error while loading KLDCP.BIN>
975
976 007022 LDBIN3: ;
977 007022 110024 10$: MOVB R0,(R4)+ ;SAVE THE BYTE INTO CORE
978 007024 000736 12$: BR LDBIN2 ;LOOP FOR MORE DATA
979
980 007026 LJMP: CALL DVWORD ;GET (POSSIBEL) XFER ADDRESS
981 007032 010067 002120 MOV R0,NEWPC ;REMEMBER XFER ADDRESS
982 007036 CALL DVFRAM ;GET A FRAME
983 007042 105767 002064 TSTB $CKS11 ;CHECK CHECKSUM
984 007046 001335 BNE BADCHK
985 007050 000207 RTS PC ;RETURN
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 32
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
987 007052 016700 002062 RESACS: MOV INITR0,R0 ;RESTORE R0
988 007056 016701 002060 MOV INITR1,R1 ;RESTORE R1
989 007062 016702 002056 MOV INITR2,R2 ;RESTORE R2
990 007066 016703 002054 MOV INITR3,R3 ;RESTORE R3
991 007072 016704 002052 MOV INITR4,R4 ;RESTORE R4
992 007076 016705 002050 MOV INITR5,R5 ;RESTORE R5
993 007102 016706 002046 MOV INITSP,SP ;RESTORE SP
994 007106 000177 002044 JMP @NEWPC ;START AT NEWLY LOADED CODE
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 33
FELOAD.P11 02-MAY-88 11:28 BOOT IN AND START 20F FRONT END
996 ; ROUTINE TO READ A FRAME
997 007112 005367 002020 DVFRAM: DEC FCOUNT ;ANY FRAMES LEFT?
998 007116 100421 BMI DVFMOR ;NO, GO GET MORE
999 007120 117700 002010 MOVB @FPOINT,R0 ;YES, GET IT
1000 007124 042700 177400 BIC #^C377,R0 ;CLEAR UPPER BYTE
1001 007130 060067 001776 ADD R0,$CKS11 ;COMPUTE CHECKSUM
1002 007134 005267 001774 INC FPOINT ;UPDATE POINTER
1003 007140 RETURN ;RETURN
1004
1005 007142 DVWORD: CALL DVFRAM ;GET A FRAME
1006 007146 010046 MOV R0,-(SP) ;SAVE THE 1ST BYTE
1007 007150 CALL DVFRAM ;GET ANOTHER FRAME
1008 007154 000300 SWAB R0 ;MAKE IT THE "HIGH" FRAME
1009 007156 052600 BIS (SP)+,R0 ;COMBINE WITH 1ST BYTE
1010 007160 RETURN ;RETURN
1011
1012 007162 005367 001740 DVFMOR: DEC BLKCNT ;COUNT ANOTHER BLOCK AS READ
1013 007166 100454 BMI 2$ ;COMPLAIN IF PREMATURE EOF
1014 007170 016700 000204 MOV DBA,R0 ;BUFFER ADDRESS
1015 007174 016701 001772 MOV LBNH,R1 ;GET DISK ADDRESS
1016 007200 016702 001770 MOV LBNL,R2 ;GET DISK ADDRESS, LOW PART
1017 007204 005003 CLR R3 ;GET 1 BLOCK ONLY
1018 007206 010446 MOV R4,-(SP) ;SAVE R4 (BYTE POINTER)
1019 007210 CALL REDBLK ;READ ANOTHER BLOCK
1020 007214 103414 BCS 1$ ;REMARK ON ERROR
1021 007216 012604 MOV (SP)+,R4 ;RESTORE BYTE POINTER
1022 007220 012767 001000 001710 MOV #1000,FCOUNT ;1000 FRAMES NOW AVAILABLE
1023 007226 016767 000146 001700 MOV DBA,FPOINT ;STARTING AT DB
1024 007234 005267 001734 INC LBNL ;START TO READ NEXT BLOCK
1025 007240 005567 001726 ADC LBNH ;...
1026 007244 000722 BR DVFRAM
1027
1028 007246 012604 1$: MOV (SP)+,R4 ;RESTORE BYTE POINTER
1029 007250 ABORT <?Input error reading KLDCP.BIN>
1030
1031 007320 2$: ABORT <?Premature EOF while reading KLDCP.BIN>
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 34
FELOAD.P11 02-MAY-88 11:28 END OF 2ND PART
1033 .SBTTL END OF 2ND PART
1034
1035 007400 010122 DBA: .WORD DB
1036 007402 .=.
1037 007402 000376 .PRINT 10000-.; BYTES REMAINING IN 2ND PART OF BOOT
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 35
FELOAD.P11 02-MAY-88 11:28 IMPURE NON-INITIALIZED DATA
1039 .SBTTL IMPURE NON-INITIALIZED DATA
1040
1041 010000 .=10000
1042 010000 000050 .BLKW 50
1043 010120 000001 STAK: .BLKW 1
1044 010122 000400 DB: .BLKW 400 ;DISK I/O BUFFER
1045 011122 000001 SAVR1: .BLKW 1 ;R1 (HIGH ORDER LBN OF CORIMG.SYS'S FHB)
1046 011124 000001 SAVR2: .BLKW 1 ;R2 (LOW ORDER LBN OF CORIMG.SYS'S FHB)
1047 011126 000001 BLKCNT: .BLKW 1 ;BLOCK COUNT FOR READING .BIN FILES
1048 011130 000001 LBC: .BLKW 1 ;BYTE COUNT OF CURRENT .BIN PACKET
1049 011132 000001 $CKS11: .BLKw 1 ;THE .BIN FILE CHECKSUM WORD
1050 011134 000001 FPOINT: .BLKW 1 ;POINTER TO CURRENT FRAME
1051 011136 000001 FCOUNT: .BLKW 1 ;COUNT OF FRAMES IN CURRENT DISK BUFFER
1052
1053 011140 000001 INITR0: .BLKW 1 ;THE R0 WE GOT FROM THE ROM
1054 011142 000001 INITR1: .BLKW 1 ;THE R1 WE GOT FROM THE ROM
1055 011144 000001 INITR2: .BLKW 1 ;THE R2 WE GOT FROM THE ROM
1056 011146 000001 INITR3: .BLKW 1 ;THE R3 WE GOT FROM THE ROM
1057 011150 000001 INITR4: .BLKW 1 ;THE R4 WE GOT FROM THE ROM
1058 011152 000001 INITR5: .BLKW 1 ;THE R5 WE GOT FROM THE ROM
1059 011154 000001 INITSP: .BLKW 1 ;THE SP WE GOT FROM THE ROM
1060 011156 000001 NEWPC: .BLKW 1 ;THE R7 WE WANT TO START PROGRAM WITH
1061 011160 000001 SAVUBA: .BLKW 1 ;THE UNIBUS ADDRESS
1062 011162 000001 RPUNIT: .BLKW 1 ;COPY OF RPCS2 TO SAVE UNIT #
1063 011164 000001 SAVHLB: .BLKW 1 ;HIGH WORD OF LBN FOR NEXT XFER
1064 011166 000001 SAVLLB: .BLKW 1 ;LOW WORD OF LBN FOR NEXT XFER
1065 011170 000001 SAVCNT: .BLKW 1 ;# OF BLOCKS TO XFER, 0 COUNTED AS 1
1066 011172 000001 LBNH: .BLKW 1 ;LBN HIGH
1067 011174 000001 LBNL: .BLKW 1 ;LBN LOW
1068 011176 000001 KLDLEN: .BLKW 1 ;LENGTH OF KLDCP DIRECTORY
1069 011200 000001 ECWRD0: .BLKW 1
1070 011202 000001 ECWRD1: .BLKW 1
1071 011204 000001 ECWRD2: .BLKW 1
1072 011206 000001 ECMSK0: .BLKW 1
1073 011210 000001 ECMSK1: .BLKW 1
1074 011212 000001 ECMSK2: .BLKW 1
1075 011214 000001 ECADR0: .BLKW 1
1076 011216 000001 ECADR1: .BLKW 1
1077 011220 000001 ECBAD0: .BLKW 1
1078 011222 000001 ECBAD1: .BLKW 1
1079 011224 000001 LEVELV: .BLKW 1 ;VERSION # OF 20F FROM F11ACP.TSK FILE
1080
1081 011226 011226 .PRINT .;END OF IMPURE AREA
1082
1083 011226 ENDING=.
1084 004106 .END USERSX ;GIVE USERSX FOR KLDCP
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
BADCHK 006742 974# 984
BLKCNT 011126 954* 1012* 1047#
B0WRDS= 000377 598#
DB 010122 665 667 675 682 696 697 698 714 715 729 760 789 851
864 866 878 883 888 891 1035 1044#
DBA 007400 656 686 705 731 754 762 791 851* 1014 1023 1035#
DISK 004074 609 614#
DLCD = 010000 342#
DLCTS = 020000 342#
DLDIE = 000040 342#
DLDSCH= 100000 342#
DLDTR = 000002 342#
DLRA = 004000 342#
DLRD = 000200 342#
DLRDAT= 000377 342#
DLRDRE= 000001 342#
DLRERR= 100000 342#
DLRFRM= 020000 342#
DLRIE = 000100 342#
DLRNGI= 040000 342#
DLROVR= 040000 342#
DLRPAR= 010000 342#
DLRTS = 000004 342#
DLSRD = 002000 342#
DLSTD = 000010 342#
DLXBRK= 000001 342#
DLXDAT= 000377 342#
DLXIE = 000100 342#
DLXMNT= 000004 342#
DLXRDY= 000200 342#
DL.RBF= 177562 342#
DL.RSR= 177560 342#
DL.XBF= 177566 342# 424*
DL.XSR= 177564 342# 425
DVFMOR 007162 998 1012#
DVFRAM 007112 956 960 969 982 997# 1005 1007 1026
DVWORD 007142 962 966 980 1005#
ECADR0 011214 555* 564 587* 1075#
ECADR1 011216 558* 591* 1076#
ECBAD0 011220 565* 1077#
ECBAD1 011222 561* 1078#
ECMSK0 011206 543* 571 573 576 578 581 583 1072#
ECMSK1 011210 1073#
ECMSK2 011212 1074#
ECWRD0 011200 536* 537* 538* 539* 540* 541* 560* 564* 565 572 573* 574* 587
1069#
ECWRD1 011202 577 578* 579* 1070#
ECWRD2 011204 582 583* 584* 591 1071#
ENDING= 011226 854 1083#
FCOUNT 011136 952* 997* 1022* 1051#
FDESIZ= 000040 371# 907 919
FELOAD 000000 399#
FHBMAX 005272 745# 748*
FIXWCK 006504 941#
FNDACP 005304 629 748# 759 764 766 768 770
FNDDIR 006102 637 874#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36-1
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
FNDKLD 006276 639 903#
FND550 004560 627 696#
FOUNDK 006414 916 924#
FPOINT 011134 999 1002* 1023* 1050#
F11ACP 005274 746# 763 765 769
GETHOM 004226 625 635 644#
GETH10 004316 645 650 656#
GETH11 004362 626 675#
GETKLD 004172 615 635#
GETRSX 004132 616 624#
GETSTD 005626 796 818#
GIVEUP 000500 502 527#
GOTSTD 005736 822 825#
HOMFEV= 000142 133#
HOMFE0= 000143 133# 675 682
HOMFLN= 000145 133#
HOMKCY= 000154 133# 878
HOMKLN= 000156 133# 891
HOMKTS= 000155 133# 883 888
HOMKV1= 000142 133#
HOMKV2= 000152 133# 864
HOMKV3= 000153 133# 866
HOMNA0= 000000 133#
HOMNA1= 000001 133#
INITR0 011140 399* 987 1053#
INITR1 011142 400 621* 988 1054#
INITR2 011144 989 1055#
INITR3 011146 990 1056#
INITR4 011150 991 1057#
INITR5 011152 605 608 620* 992 1058#
INITSP 011154 993 1059#
KLDCP 006602 911 913 915 950#
KLDIR = 012000 65# 894 903
KLDLEN 011176 891* 897 906 1068#
LBC 011130 963* 964* 970* 1048#
LBNH 011172 875* 879* 885* 890* 895 924* 929* 934* 938* 1015 1025* 1066#
LBNL 011174 874* 878* 884* 889* 896 925* 928* 933* 937* 1016 1024* 1067#
LDBIN1 006654 955# 958 973
LDBIN2 006722 969# 978
LDBIN3 007022 971 976#
LEVELV 011224 771* 821 1079#
LJMP 007026 965 980#
LODKLD 006610 640 952#
MOVEME 005762 624 851#
NEWADR= 130000 64# 818 851 852 858 859
NEWPC 011156 805* 981* 994 1060#
POK20F 005440 630 789#
PROL36 000166 441# 445 562 569 590
PROMPT 004000 411 418 605#
PS = 177776 342#
REDAOK 000434 511# 592
REDBLK 000206 416 456# 659 688 706 736 758 898 1019
REDBL0 000216 458# 517
REDBL1 000232 463# 525
REDDIR 006200 638 894#
RED550 005110 628 728#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36-2
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
RESACS 007052 632 642 811 987#
RETRY 000466 504 506 523# 532 534
RPAD16= 000400 342#
RPAD17= 001000 342#
RPAOE = 001000 342#
RPATA = 100000 342# 507
RPBOOT= 007664 784# 805
RPCPE = 020000 342# 498 505
RPCYLA= 000777 342#
RPDCK = 100000 342#
RPDLT = 100000 342#
RPDTE = 010000 342#
RPDVA = 004000 342#
RPECH = 000100 342#
RPECI = 004000 342#
RPERR = 040000 342# 507
RPFER = 000020 342#
RPFMT2= 010000 342#
RPFUNC= 000077 342#
RPGO = 000001 342#
RPHCE = 000200 342#
RPHCI = 002000 342# 493
RPHCRF= 000400 342#
RPIAE = 002000 342#
RPIE = 000100 342#
RPILF = 000001 342#
RPILR = 000002 342#
RPOFSD= 000377 342#
RPOPCL= 000016 342#
RPOPDC= 000010 342#
RPOPI = 020000 342#
RPOPNP= 000000 342#
RPOPOF= 000014 342#
RPOPPA= 000022 342#
RPOPRC= 000006 342#
RPOPRD= 000070 342#
RPOPRF= 000072 342#
RPOPRI= 000020 342#
RPOPRP= 000012 342#
RPOPSK= 000004 342#
RPOPSR= 000030 342#
RPOPUL= 000002 342#
RPOPWC= 000050 342#
RPOPWD= 000060 342#
RPOPWF= 000062 342#
RPOPWH= 000052 342#
RPPAR = 000010 342#
RPPSEL= 002000 342#
RPRDY = 000200 342# 498
RPRESU= 007772 G 785# 805
RPRMR = 000004 342#
RPSC = 100000 342#
RPSCG = 100000 342#
RPSCTA= 000037 342#
RPTRE = 040000 342# 498 505
RPTRKA= 017400 342#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36-3
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
RPUNIT 011162 408* 463 1062#
RPUNS = 040000 342#
RPWCE = 040000 342#
RPWCF = 000040 342#
RPWLE = 004000 342#
RP.BA = 176704 342# 464*
RP.CS1= 176700 342# 408 463* 464* 465* 475* 488* 490* 493* 494* 498 505 507
531 533 543
RP.CS2= 176710 342# 408 463*
RP.DA = 176706 342# 488*
RP.DC = 176734 342# 475*
RP.DS = 176712 342# 507
RP.EC1= 176744 342# 533
RP.EC2= 176746 342# 543
RP.ER1= 176714 342# 531
RP.OF = 176732 342# 490* 493*
RP.WC = 176702 342# 465*
R.DSP = 177570 342#
R.PC = 177707 342#
R.R0 = 177700 342#
R.R1 = 177701 342#
R.R2 = 177702 342#
R.R3 = 177703 342#
R.R4 = 177704 342#
R.R5 = 177705 342#
R.R6 = 177706 342#
R.R7 = 177707 342#
R.SL = 177774 342#
R.SP = 177706 342#
R.SWR = 177570 342#
SAVCNT 011170 457* 516* 1065#
SAVHLB 011164 458* 512 523 1063#
SAVLLB 011166 459* 511 524 1064#
SAVR1 011122 702* 753* 755 1045#
SAVR2 011124 703* 750* 751 756 1046#
SAVUBA 011160 456* 464 515* 554 1061#
SIXHOM= 105755 133#
STAK 010120 415 623 1043#
STYPE 000142 420 430# 611 652 677 690 709 718 722 728 738 813 824
868 901 921 947 953 974 1029 1031
STYPE1 000144 431# 434
STYPE2 000156 432 435#
SWR = 177570 342# 614
SWRFOO 004074 606 613#
S.DL = 000032 782# 802* 803*
TRYECC 000504 508 531#
TYO 000126 424# 433
TYO1 000132 425# 426
USERSX 004106 620# 1084
VALID = 100000 133#
VALTAB 005754 825 847#
VERTAB 005744 818 825 841#
VRFKLD 006020 636 864#
V.BPT = 000014 342#
V.CPU = 000004 342#
V.DLI = 000060 342#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36-4
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
V.DLO = 000064 342#
V.EMT = 000030 342#
V.ILL = 000010 342#
V.IOT = 000020 342#
V.PWF = 000024 342#
V.RES = 000010 342#
V.RH11= 000254 342#
V.TRP = 000034 342#
W.AVAL= 000057 104#
W.CHK1= 000072 104#
W.CHK2= 000776 104#
W.CRDT= 000031 169#
W.CRTI= 000040 169#
W.CTSZ= 000006 183#
W.DFPR= 000044 104#
W.DVTY= 000012 104#
W.EFNU= 000002 183#
W.EFSQ= 000004 183#
W.ERVN= 000001 183#
W.ESQN= 000000 183#
W.EXDT= 000046 169#
W.FIEX= 000055 104#
W.FLEV= 000006 155#
W.FMAX= 000006 104#
W.FNAM= 000000 169# 763 765 767
W.FNUM= 000002 155# 714
W.FPRO= 000012 155#
W.FSEQ= 000004 155# 715
W.FTYP= 000006 169# 769
W.FVER= 000010 169# 771
W.IBLB= 000002 104# 696 697
W.IBSZ= 000000 104# 698
W.IDOF= 000000 155# 760
W.KCHK= 000026 371#
W.KCPH= 000034 371#
W.KCPL= 000036 371#
W.KCRE= 000006 371#
W.KCYL= 000010 371# 926
W.KEXT= 000004 371# 915
W.KFL0= 000000 371# 911
W.KFL1= 000002 371# 913
W.KRS1= 000030 371#
W.KRS2= 000032 371#
W.KTS = 000012 371# 931 936
W.KTYP= 000024 371#
W.KWAH= 000014 371# 942* 945
W.KWAL= 000016 371# 943* 954
W.K1LA= 000020 371#
W.K1SA= 000022 371#
W.LBSZ= 000007 183#
W.LRUC= 000056 104#
W.MAX = 000011 183#
W.MPOF= 000001 155# 729 789
W.PROG= 000010 155#
W.PROJ= 000011 155#
W.RES1= 000032 104#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 36-5
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- USER SYMBOLS
W.RES2= 000046 104#
W.RTRV= 000012 183# 732 733 792 793
W.RVDT= 000014 169#
W.RVNO= 000012 169#
W.RVOL= 000400 104#
W.RVTI= 000023 169#
W.SBCL= 000010 104#
W.SYSI= 000256 104#
W.UCHA= 000014 155#
W.USE = 000010 183#
W.VCHA= 000042 104#
W.VDAT= 000074 104#
W.VHL = 000112 104#
W.VLEV= 000014 104#
W.VNAM= 000016 104#
W.VOWN= 000036 104#
W.VPRO= 000040 104#
W.WISZ= 000054 104#
$CKS11 011132 955* 972 983 1001* 1049#
. = 011226 396# 420# 596# 597# 598 599 603# 652# 677# 722# 738# 813# 921#
1029# 1031# 1036# 1037 1041# 1042# 1043# 1044# 1045# 1046# 1047# 1048# 1049#
1050# 1051# 1053# 1054# 1055# 1056# 1057# 1058# 1059# 1060# 1061# 1062# 1063#
1064# 1065# 1066# 1067# 1068# 1069# 1070# 1071# 1072# 1073# 1074# 1075# 1076#
1077# 1078# 1079# 1081 1083
.OFFSE= 000040 104# 155# 169# 183# 350# 371#
FELOAD -- BOOT PROGRAM TO FIND & LOAD RSX20F V1(4) 10-FEB-88 MACDLX V31 02-MAY-88 11:28 PAGE 37
FELOAD.P11 02-MAY-88 11:28 CROSS REFERENCE TABLE -- MACRO NAMES
ABORT 382# 420 611 652 677 690 709 718 722 738 813 824 868 901 921
947 974 1029 1031
BSYM 69# 104 138# 155 169 183
CALL 387# 416 420 433 562 569 590 611 624 625 626 627 628 629 630
635 636 637 638 639 640 645 650 652 659 677 688 690 706 709
718 722 728 736 738 758 796 813 824 868 898 901 921 947 953
956 960 962 966 969 974 980 982 1005 1007 1019 1029 1031
DTBX 831# 841 847
F11FID 157# 169
F11HED 143# 155
F11HOM 74# 104
F11MAP 171# 183
IOBITS 188# 342
KLDHED 352# 371
RETURN 391# 446 520 528 647 691 724 739 772 775 826 1003 1010
TYPE 375# 420 611 652 677 690 709 718 722 728 738 813 824 868 901
921 947 953 974 1029 1031
T10HOM 112# 133
WSYM 108# 133 346# 371
XP 838# 841 844# 847
. ABS. 011226 000
ERRORS DETECTED: 0
FELOAD,FELOAD/CRF/NL:TTM=FELOAD
RUN-TIME: 1 2 .4 SECONDS
RUN-TIME RATIO: 19/5=3.7
CORE USED: 7K (13 PAGES)