Initial commit
[pdp8.git] / sw / speed8 / pdp8 / speed8.pal
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 $