Trailing-Edge
-
PDP-10 Archives
-
BB-BT99V-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 10-OCT-90 12:16
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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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 10-OCT-90 12:16 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: 14/5=2.7
CORE USED: 7K (13 PAGES)