mirror of
https://github.com/PDP-10/stacken.git
synced 2026-01-31 13:52:00 +00:00
1549 lines
75 KiB
Plaintext
1549 lines
75 KiB
Plaintext
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)
|
||
|
||
|
||
|