Commit | Line | Data |
---|---|---|
a6a4e5d4 PH |
1 | |
2 | / The RK fast access program | |
3 | / Needs kturbo and tturbo instructions provided by omni-usb | |
4 | ||
5 | / Communication is word-wise via the subroutines | |
6 | / RWRD and SWRD and their aliases RWORD and SWORD | |
7 | ||
8 | / All intelligence is located on the PC side :-) | |
9 | ||
10 | IDEV=400 | |
11 | ODEV=410 | |
12 | ||
13 | KTURBO=6007 IDEV | |
14 | TTURBO=6007 ODEV | |
15 | ||
16 | / Commands sent from the PC | |
17 | ATT=36 | |
18 | CMGET=1 | |
19 | CMPUT=2 | |
20 | ||
21 | /RK05 commands | |
22 | CRKGO=3 / Execute command | |
23 | CRKST=4 / Return drive status | |
24 | CRKRT=5 / Read track | |
25 | CRKWT=6 / Write track | |
26 | CRKR0=007 | |
27 | CRKR1=107 | |
28 | CRKR2=207 | |
29 | CRKR3=307 | |
30 | ||
31 | /GO BACK TO RIMLOADER | |
32 | CBOOT=04566 | |
33 | ||
34 | / RK05 commands are followed by the disk address and transfer length | |
35 | / <ATT> <CRKGO> <CA_REG> <CM_REG> <DA_REG> | |
36 | ||
37 | *7700 JMP I XSTART | |
38 | ||
39 | *10 | |
40 | AUTO0, 0 | |
41 | AUTO1, 0 | |
42 | AUTO2, 0 | |
43 | AUTO3, 0 | |
44 | AUTO4, 0 | |
45 | AUTO5, 0 | |
46 | AUTO6, 0 | |
47 | AUTO7, 0 | |
48 | ||
49 | *30 | |
50 | RKBOOT, DLAG | |
51 | JMP . | |
52 | ||
53 | *34 | |
54 | XSTART, START | |
55 | XRWRD, RWRD | |
56 | XSWRD, SWRD | |
57 | XSBUF, SBUF | |
58 | XRBUF, RBUF | |
59 | XRKGO, RKGO | |
60 | XRKST, RKST | |
61 | XRKRT, RKRT | |
62 | XRKWT, RKWT | |
63 | XRECAL, RECAL | |
64 | XEXIT, EXIT | |
65 | ||
66 | DSKP=6741 | |
67 | DCLR=6742 | |
68 | DLAG=6743 | |
69 | DLCA=6744 | |
70 | DRST=6745 | |
71 | DLDC=6746 | |
72 | ||
73 | RWORD=JMS I XRWRD | |
74 | SWORD=JMS I XSWRD | |
75 | ||
76 | *200 | |
77 | START, | |
78 | RWORD | |
79 | TAD KATT | |
80 | SZA | |
81 | JMP START | |
82 | RWORD | |
83 | DCA CMD | |
84 | TAD CMD | |
85 | TAD KCMGET | |
86 | SZA | |
87 | JMP NO1 | |
88 | JMS I XSBUF | |
89 | JMP START | |
90 | ||
91 | NO1, | |
92 | CLA | |
93 | TAD CMD | |
94 | TAD KCMPUT | |
95 | SZA | |
96 | JMP NO2 | |
97 | JMS I XRBUF | |
98 | JMP START | |
99 | ||
100 | NO2, | |
101 | CLA | |
102 | TAD CMD | |
103 | TAD KCRKGO | |
104 | SZA | |
105 | JMP NO3 | |
106 | JMS I XRKGO | |
107 | JMP START | |
108 | NO3, | |
109 | CLA | |
110 | TAD CMD | |
111 | TAD KCRKST | |
112 | SZA | |
113 | JMP NO4 | |
114 | JMS I XRKST | |
115 | JMP START | |
116 | NO4, | |
117 | CLA | |
118 | TAD CMD | |
119 | TAD KCRKRT | |
120 | SZA | |
121 | JMP NO5 | |
122 | JMS I XRKRT | |
123 | NO5, | |
124 | ||
125 | CLA | |
126 | TAD CMD | |
127 | TAD KCRKWT | |
128 | SZA | |
129 | JMP NO6 | |
130 | JMS I XRKWT | |
131 | NO6, | |
132 | ||
133 | CLA | |
134 | TAD CMD | |
135 | AND K7477 / MASK OUT DRIVE SELECT | |
136 | TAD KCRKR0 | |
137 | SZA | |
138 | JMP NO7 | |
139 | TAD CMD | |
140 | RTR | |
141 | RTR | |
142 | RAR | |
143 | AND K6 | |
144 | JMS I XRECAL | |
145 | ||
146 | NO7, | |
147 | ||
148 | JMP START | |
149 | ||
150 | K6, 6 | |
151 | K7477, 7477 | |
152 | KATT, -ATT | |
153 | KCMGET, -CMGET | |
154 | KCMPUT, -CMPUT | |
155 | KCRKGO, -CRKGO | |
156 | KCRKST, -CRKST | |
157 | KCRKRT, -CRKRT | |
158 | KCRKWT, -CRKWT | |
159 | KCRKR0, -CRKR0 | |
160 | KCRKR1, -CRKR1 | |
161 | KCRKR2, -CRKR2 | |
162 | KCRKR3, -CRKR3 | |
163 | XBOOT, 7777 | |
164 | CMD, 0 | |
165 | ||
166 | /*********************************************** | |
167 | PAGE | |
168 | /*********************************************** | |
169 | ||
170 | RKGO, 0 | |
171 | ||
172 | CLA CLL IAC / Standard read from manual | |
173 | DCLR | |
174 | ||
175 | RWORD / MEMORY ADDRESS | |
176 | DLCA | |
177 | ||
178 | RWORD / COMMAND REGISTER | |
179 | DLDC | |
180 | ||
181 | RWORD / DISK ADDRESS | |
182 | DLAG | |
183 | ||
184 | JMP I RKGO | |
185 | ||
186 | RKST, 0 | |
187 | DSKP | |
188 | JMP .-1 | |
189 | DRST | |
190 | SWORD | |
191 | JMP I RKST | |
192 | /*********************************************** | |
193 | PAGE | |
194 | ||
195 | RKRT, 0 | |
196 | CLA | |
197 | TAD K17N | |
198 | DCA CNT | |
199 | CLA CLL IAC / Standard read from manual | |
200 | DCLR | |
201 | ||
202 | CLA | |
203 | DCA TPTR | |
204 | DLCA | |
205 | ||
206 | RWORD | |
207 | DCA CMDP | |
208 | TAD CMDP | |
209 | TAD CMDR1 | |
210 | DLDC | |
211 | ||
212 | RWORD | |
213 | DCA ADR | |
214 | TAD ADR | |
215 | DLAG | |
216 | ||
217 | ||
218 | RTTL, CLA | |
219 | ISZ ADR | |
220 | TAD TPTR | |
221 | TAD K400 | |
222 | DCA TPTR | |
223 | TAD ADR | |
224 | ||
225 | DSKP | |
226 | JMP .-1 | |
227 | ||
228 | CLA CLL IAC / Standard read from manual | |
229 | DCLR | |
230 | ||
231 | TAD CMDP | |
232 | TAD CMDR2 | |
233 | DLDC | |
234 | ||
235 | TAD TPTR | |
236 | DLCA | |
237 | TAD ADR | |
238 | DLAG | |
239 | ISZ CNT | |
240 | JMP RTTL | |
241 | JMP I RKRT | |
242 | ||
243 | /********************************************** | |
244 | ||
245 | RKWT, 0 | |
246 | CLA | |
247 | TAD K17N | |
248 | DCA CNT | |
249 | CLA CLL IAC / Clear control | |
250 | DCLR | |
251 | ||
252 | CLA | |
253 | DCA TPTR | |
254 | DLCA | |
255 | ||
256 | RWORD | |
257 | DCA CMDP | |
258 | TAD CMDP | |
259 | TAD CMDW1 | |
260 | DLDC | |
261 | ||
262 | RWORD | |
263 | DCA ADR | |
264 | TAD ADR | |
265 | DLAG | |
266 | ||
267 | WTTL, CLA | |
268 | ISZ ADR | |
269 | TAD TPTR | |
270 | TAD K400 | |
271 | DCA TPTR | |
272 | TAD ADR | |
273 | ||
274 | DSKP | |
275 | JMP .-1 | |
276 | ||
277 | CLA CLL IAC / Standard read from manual | |
278 | DCLR | |
279 | ||
280 | TAD CMDP | |
281 | TAD CMDW2 | |
282 | DLDC | |
283 | CLA | |
284 | ||
285 | TAD TPTR | |
286 | DLCA | |
287 | ||
288 | TAD ADR | |
289 | DLAG | |
290 | ISZ CNT | |
291 | JMP WTTL | |
292 | JMP I RKWT | |
293 | ||
294 | K400, 400 | |
295 | TPTR, 0 | |
296 | K20N, 20 | |
297 | ADR, 0 | |
298 | CNT, 0 | |
299 | K17N, -17 | |
300 | CMDP, 0 | |
301 | CMDR1, 0010 | |
302 | CMDR2, 1010 | |
303 | CMDW1, 4010 | |
304 | CMDW2, 5010 | |
305 | /********************************************** | |
306 | ||
307 | RECAL, 0 | |
308 | DCA DRIVE / SAVE DRIVE NUMBER*2 found in AC | |
309 | CLA CLL IAC / Recal drive, clear errors and set to cyl 0 | |
310 | DCLR / From manual | |
311 | TAD DRIVE | |
312 | DLDC | |
313 | CLA CLL CML RTL | |
314 | DCLR | |
315 | DSKP | |
316 | JMP .-1 | |
317 | TAD K0200 | |
318 | TAD DRIVE | |
319 | DLDC | |
320 | JMP I RECAL | |
321 | ||
322 | K0200, 200 | |
323 | DRIVE, 0 | |
324 | ||
325 | /*********************************************** | |
326 | / Memory dump/restore routines | |
327 | ||
328 | PAGE | |
329 | ||
330 | PTR, 0 | |
331 | ||
332 | SBUF, 0 | |
333 | CLA | |
334 | DCA PTR | |
335 | CDF 10 | |
336 | SLOP, CLA | |
337 | TAD I PTR | |
338 | TTURBO | |
339 | JMP .-1 | |
340 | BSW | |
341 | TTURBO | |
342 | JMP .-1 | |
343 | ISZ PTR | |
344 | JMP SLOP | |
345 | CDF 0 | |
346 | JMP I SBUF | |
347 | ||
348 | ||
349 | RBUF, 0 | |
350 | CLA | |
351 | DCA PTR | |
352 | CDF 10 | |
353 | RLOP, KTURBO | |
354 | JMP .-1 | |
355 | BSW | |
356 | KTURBO | |
357 | JMP .-1 | |
358 | DCA I PTR | |
359 | ISZ PTR | |
360 | JMP RLOP | |
361 | CDF 0 | |
362 | JMP I RBUF | |
363 | ||
364 | RWRD, 0 | |
365 | CLA | |
366 | KTURBO | |
367 | JMP .-1 | |
368 | BSW | |
369 | KTURBO | |
370 | JMP .-1 | |
371 | JMP I RWRD | |
372 | ||
373 | SWRD, 0 | |
374 | TTURBO | |
375 | JMP .-1 | |
376 | BSW | |
377 | TTURBO | |
378 | JMP .-1 | |
379 | BSW | |
380 | JMP I SWRD | |
381 | ||
382 | ||
383 | /*********************************************** | |
384 | / What hapens on exit to 7600 | |
385 | / Relies on the fact that OS/8 won't allow overwriting here. | |
386 | ||
387 | *7600 | |
388 | EXIT, HLT | |
389 | JMP 30 | |
390 | ||
391 | ||
392 | $ |