Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /10 OS/8 RK8 SYSTEM HANDLER V3D |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/SYSTEM HANDLER ALSO HAS RESIDENT THE NONSYSTEM HANDLER RKA1: | |
46 | ||
47 | / SOFSET=7747 | |
48 | ||
49 | RKVERSION="D&77 | |
50 | ||
51 | DLDA=6731 /LOAD DISK ADDRESS (MAINT ONLY) | |
52 | DLDC=6732 /LOAD COMMAND REGISTER | |
53 | /0: ENABLE CHANGE IN INTERRUPT STATUS | |
54 | /1: ENABLE PROGRAM INTERRUPT ON TRANSFER DONE | |
55 | /2: ENABLE INTERRUPT ON ERROR | |
56 | /3: UNUSED | |
57 | /4: SEEK TRACK AND SURFACE ONLY | |
58 | /5: ENABLE READ/WRITE OF 2 HEADER WORDS | |
59 | /6-8: EXTENDED MEMORY ADDRESS | |
60 | /9-10: DISK FILE NUMBER | |
61 | /11: UNUSED | |
62 | DLDR=6733 /LOAD DISK ADDRESS AND READ, THEN CLEAR AC | |
63 | /0-7: TRACK ADDRESS | |
64 | /8: SURFACE BIT | |
65 | /9-11: SECTOR ADDRESS | |
66 | DRDA=6734 /READ DISK ADDRESS | |
67 | DLDW=6735 /LOAD DISK ADDRESS AND WRITE, THEN CLEAR AC | |
68 | DRDC=6736 /READ DISK COMMAND REGISTER | |
69 | DCHP=6737 /LOAD DISK ADDRESS AND CHECK PARITY | |
70 | DRDS=6741 /READ DISK STATUS REGISTER | |
71 | /0: ERROR | |
72 | /1: TRANSFER DONE | |
73 | /2: CONTROL BUSY ERROR | |
74 | /3: TIME OUT ERROR | |
75 | /4: PARITY OR TIMING ERROR | |
76 | /5: DATA RATE ERROR | |
77 | /6: TRACK ADDRESS ERROR | |
78 | /7: SECTOR NO GOOD ERROR | |
79 | /8: WRITE LOCK ERROR | |
80 | /9: TRACK CAPACITY EXCEEDED ERROR | |
81 | /10: SELECT ERROR | |
82 | /11: BUSY | |
83 | DCLS=6742 /CLEAR STATUS REGISTER | |
84 | DMNT=6743 /LOAD MAINTENANCE REGISTER | |
85 | /SEE PAGE 7-145 IN 1972 SMALL COMPUTER HANDBOOK | |
86 | DSKD=6745 /SKIP ON DISK DONE | |
87 | DSKE=6747 /SKIP ON DISK ERROR | |
88 | DCLA=6751 /CLEAR ALL | |
89 | DRWC=6752 /READ WORD COUNT REGISTER | |
90 | DLWC=6753 /LOAD WORD COUNT REGISTER | |
91 | DLCA=6755 /LOAD CURRENT ADDRESS REGISTER | |
92 | DRCA=6757 /READ CURRENT ADDRESS REGISTER | |
93 | \f *0 | |
94 | ||
95 | -3 | |
96 | DEVICE RK8;DEVICE SYS;4051;2007;0;6260 | |
97 | DEVICE RK8;DEVICE RKA0;4051;1007;0;6260 | |
98 | DEVICE RK8;DEVICE RKA1;4051;RKA1&177+1000;0;6260 | |
99 | ||
100 | /V3D CHANGES: | |
101 | ||
102 | /FIXED BUG CONCERNING RETRY COUNT IF LINK SET ON CALL | |
103 | /REMOVED 'SOFSET' | |
104 | \f BOOT-ENDB-1 | |
105 | ||
106 | NOPUNC | |
107 | *1 | |
108 | ENPUNC | |
109 | ||
110 | BOOT, TAD I BOOTX1 | |
111 | DCA I BOOTX2 | |
112 | TAD I BOOTX3 | |
113 | CDF 10 | |
114 | DCA I BOOTX4 | |
115 | CDF 0 | |
116 | TAD BOOTX2 | |
117 | SZA CLA | |
118 | JMP BOOT | |
119 | JMP BGETUT | |
120 | BOOTX1, 200 | |
121 | BOOTX2, 7577 | |
122 | BOOTX3, 47 | |
123 | BOOTX4, 7646 | |
124 | BGETUT, DRDC | |
125 | RAR | |
126 | AND BOOT3 | |
127 | DCA I BOOTUT | |
128 | JMP I B7605 | |
129 | BOOT3, 3 | |
130 | BOOTUT, DEFUNIT | |
131 | ZBLOCK 27-. | |
132 | B7605, 7605 | |
133 | DSKD /MUST LOAD OVER LOC. 30 | |
134 | JMP .-1 /MUST LOAD OVER 31 | |
135 | ENDB, JMP BOOT | |
136 | \f /THE BOOTSTRAP FOR THE RK8 IS AS FOLLOWS: (UNIT 0) | |
137 | ||
138 | / LOCATION CONTENTS | |
139 | / 30 6733 | |
140 | / 31 5031 | |
141 | ||
142 | /LOAD ADDRESS 30 AND START | |
143 | ||
144 | /THE BOOTSTRAP FOR OTHER UNITS IS AS FOLLOWS: | |
145 | ||
146 | / 26 7604 | |
147 | / 27 6732 | |
148 | / 30 6733 | |
149 | / 31 5031 | |
150 | ||
151 | /LOAD ADDRESS 26, PUT UNIT NUMBER IN SWITCH REGISTER BITS 9-10, | |
152 | /CLEAR, CONTINUE | |
153 | \f *200 | |
154 | ||
155 | NOPUNCH;*7600;ENPUNCH | |
156 | ||
157 | ZBLOCK 7 | |
158 | RK8, RKVERSION | |
159 | CLA | |
160 | TAD DEFUNIT /USE DEFAULT UNIT FOR SYSTEM HANDLER | |
161 | JMP COMN | |
162 | DEFUNIT,0 | |
163 | RKBAD, STL CLA RAR /4000 | |
164 | SKP | |
165 | RKOVER, ISZ RK8 /POINT TO GOOD RETURN | |
166 | SFIELD, HLT /CONTAINS CIF CDF TO USER'S FIELD | |
167 | JMP I RK8 /RETURN | |
168 | IFNZRO .&177-21 <BADLOC,XXXX> | |
169 | RKA1, RKVERSION | |
170 | CLA | |
171 | TAD RKA1 | |
172 | DCA RK8 | |
173 | CLA IAC | |
174 | COMN, DCA RKANO | |
175 | CLL STA RTL /V3D | |
176 | DCA RKCNT /SET # OF RETRIES ON AN ERROR TO 3 | |
177 | RDF | |
178 | TAD LCIFCDF /CALLING FIELD FOR RETURN | |
179 | DCA SFIELD | |
180 | RKRETRY,TAD I RK8 /GET FN WORD | |
181 | AND L70 /ISOLATE FIELD OF BUFFER | |
182 | TAD RKANO | |
183 | TAD RKANO /INCLUDE UNIT # (TIMES 2) | |
184 | DLDC /SET FIELD | |
185 | TAD I RK8 /GET FN WORD BACK | |
186 | RAL /MOVE R/W BIT TO LINK | |
187 | AND L7600 /ISOLATE # OF WORDS TO READ | |
188 | SZA | |
189 | CIA /NEGATE | |
190 | DLWC /LOAD WORD COUNT THEN CLEAR AC | |
191 | RTL /MOVE R/W BIT TO AC 10 | |
192 | TAD LDLDR | |
193 | DCA RKINST /CREATE READ (6733) OR WRITE (6735) | |
194 | ISZ RK8 /POINT TO BUFFER ADDRESS | |
195 | STA | |
196 | TAD I RK8 /GET CURRENT ADDRESS-1 | |
197 | DLCA /LOAD CURENT ADDRESS AND CLEAR AC | |
198 | ISZ RK8 /POINT TO BLOCK # | |
199 | DCLS /CLEAR STATUS REGISTER | |
200 | DSKE /CHECK FOR NON-EXISTENT DISK ERROR | |
201 | L7760, SMA SZA SNL CLA /OK, BUT SKIP ALWAYS | |
202 | JMP RKBAD /IT'S BAD | |
203 | /V3D TAD RKANO /! CAN'T HAVE OFFSETS ON OTHER UNITS THAN 0 | |
204 | /V3D SNA CLA | |
205 | /V3D TAD SOFSET | |
206 | TAD I RK8 /GET BACK # | |
207 | ISZ RK8 /POINT TO ERROR RETURN | |
208 | RKINST, HLT /GO (EITHER 6733 OR 6735) | |
209 | SZA CLA /CHECK FOR NO DISK AT ALL | |
210 | JMP RKBAD /IOT DIDN'T CLEAR AC | |
211 | /THE ABOVE TWO LINES ARE USELESS. HOW DID HE BOOTSTRAP IF DISK WASN'T THERE? | |
212 | DSKD /WAIT FOR DONE | |
213 | JMP .-1 | |
214 | DSKE | |
215 | JMP RKOVER /NO ERROR | |
216 | L70, 70 | |
217 | L20, 20 | |
218 | L7600, 7600 | |
219 | L4, 4 | |
220 | SKP CLA | |
221 | IFNZRO .-7701 <NZERR,XXX> | |
222 | HLT /SAFETY HALT AT 7701 | |
223 | DRDS /READ STATUS REGISTER | |
224 | AND L4 /CHECK FOR TRACK OVERFLOW | |
225 | SZA CLA | |
226 | JMP RKTKOV | |
227 | ISZ RKCNT /SOME OTHER ERROR - BADNESS [SIC] | |
228 | JMP RKOK /TRY AGAIN | |
229 | JMP RKBAD /3 TRIES IS ENOUGH | |
230 | RKOK, DRDS /READ STATUS REGISTER | |
231 | AND L40 /TRACK SEEK ERROR? | |
232 | DCLS /CLEAR STATUS REGISTER | |
233 | SNA CLA | |
234 | JMP RKBACK | |
235 | DCLA /YES - RECALIBRATE | |
236 | DSKD /WAIT 'TILL DONE | |
237 | JMP .-1 | |
238 | RKBACK, CLL STA RTL /-3 | |
239 | TAD RK8 | |
240 | DCA RK8 /POINT BACK TO FUNCTION WORD | |
241 | JMP RKRETRY /GO TRY AGAIN | |
242 | ||
243 | RKTKOV, DCLS /CLEAR STATUS REGISTER | |
244 | DRDA /READ TRACK ADDRESS STUFF | |
245 | AND L7760 /ISOLATE JUST TRACK (NEEDED ??) | |
246 | TAD L20 /BUMP TRACK NUMBER BY 1 | |
247 | JMP RKINST /GO BACK AND CONTINUE TRANSFER | |
248 | LCIFCDF,CIF CDF 0 | |
249 | LDLDR, DLDR | |
250 | L40, 40 | |
251 | RKCNT, 0 | |
252 | RKANO, 0 | |
253 | / MUST NOT GO INTO LOCATION 7744 | |
254 | IFZERO .&177-145&4000 <TOOBIG,XXXX> | |
255 | $ |