0
|
1 *******************************************************************
|
|
2 *
|
|
3 * Sdisk3 - floopy disk controller driver by D.P. Johnson
|
|
4 * and Sardis Technologies for the DMC no-halt controllers.
|
|
5 *
|
|
6 *******************************************************************
|
|
7
|
|
8 * Sardis DMC controller registers
|
|
9 fdcdrv equ $ff40
|
|
10 fdccmd equ $ff48
|
|
11 fdcsta equ $ff48
|
|
12 fdctrk equ $ff49
|
|
13 fdcsec equ $ff4A
|
|
14 fdcdta equ $ff4B
|
|
15 fdwrit equ $ff44
|
|
16 fdread equ $ff4c
|
|
17 disdma equ $ff44
|
|
18 fdptrh equ $ff46
|
|
19 fdptrl equ $ff42
|
|
20 buffer equ $ff4e
|
|
21
|
|
22 nam SDisk3
|
|
23 ttl os9 device driver
|
|
24
|
|
25 ifp1
|
|
26 use defsfile
|
|
27 endc
|
|
28
|
|
29 rev set $01
|
|
30
|
|
31 mod eom,name,Drivr+Objct,ReEnt+rev,start,size
|
|
32
|
|
33 org V.USER
|
|
34 u0006 rmb 9
|
|
35 drvtab rmb 35
|
|
36 u0032 rmb 24
|
|
37 u004A rmb 4
|
|
38 u004E rmb 2
|
|
39 u0050 rmb 49
|
|
40 u0081 rmb 2
|
|
41 u0083 rmb 2
|
|
42 u0085 rmb 1
|
|
43 u0086 rmb 1
|
|
44 u0087 rmb 1
|
|
45 u0088 rmb 1
|
|
46 u0089 rmb 1
|
|
47 u008A rmb 1
|
|
48 u008B rmb 1
|
|
49 u008C rmb 1
|
|
50 u008D rmb 1
|
|
51 u008E rmb 1
|
|
52 u008F rmb 2
|
|
53 u0091 rmb 1
|
|
54 u0092 rmb 1
|
|
55 u0093 rmb 1
|
|
56 u0094 rmb 1
|
|
57 u0095 rmb 1
|
|
58 u0096 rmb 2
|
|
59 u0098 rmb 1
|
|
60 u0099 rmb 1
|
|
61 virq1 rmb 4
|
|
62 u009E rmb 1
|
|
63 virq2 rmb 1
|
|
64 u00A0 rmb 1
|
|
65 u00A1 rmb 1
|
|
66 u00A2 rmb 1
|
|
67 u00A3 rmb 1
|
|
68 u00A4 rmb 1
|
|
69 u00A5 rmb 1
|
|
70 u00A6 rmb 1
|
|
71 u00A7 rmb 1
|
|
72 u00A8 rmb 1
|
|
73 u00A9 rmb 1
|
|
74 u00AA rmb 2
|
|
75 u00AC rmb 12
|
|
76 u00B8 rmb 60
|
|
77 u00F4 rmb 1
|
|
78 u00F5 rmb 299
|
|
79 u0220 rmb 3
|
|
80 size equ .
|
|
81
|
|
82 fcb $FF
|
|
83 name fcs /SDisk3/
|
|
84 fcb $01
|
|
85
|
|
86 fcb $00
|
|
87
|
|
88 L0016 fdb $00f2 drive motor on time
|
|
89 L0018 fdb $0020 motor startup delay
|
|
90 L001A fdb $0003 head settle time
|
|
91 L001C fdb $0100 default sector size
|
|
92 L001E fdb $1E00 delay-after-write before deselect
|
|
93 L0020 fcb $23,$16,$28,$28,$00,$2b write precomp table
|
|
94 L0026 fcb $01,$02,$04,$40 drive select codes
|
|
95 L002A fdb $0836
|
|
96 L002C fdb $009e timeout for restore to track 0
|
|
97 fcb $0B
|
|
98 L002F fdb $0836
|
|
99 L0031 fdb $0005 timeout for step in one track
|
|
100 fcb $4B
|
|
101 L0034 fdb $0836
|
|
102 L0036 fdb $0098 timeout value for seek
|
|
103 fcb $1B
|
|
104 L0039 fdb $084e
|
|
105 L003B fdb $005c timeout value for read sector
|
|
106 fcb $80
|
|
107 L003E fdb $083f
|
|
108 L0040 fdb $005c timeout for write sector
|
|
109 fcb $A0
|
|
110 L0043 fdb $083f
|
|
111 L0045 fdb $0020 timeout value for write track
|
|
112 fcb $F0
|
|
113 L0048 fcb $03 Multipak slot
|
|
114 * IRQ packet #1
|
|
115 L0049 fcb $00 IRQ flip byte
|
|
116 fcb $01 IRQ mask byte
|
|
117 L004B fcb $0A interupt priority for motor timer
|
|
118 * IRQ packet #2
|
|
119 L004C fcb $00 IRQ flip byte
|
|
120 fcb $01 IRQ mask byte
|
|
121 L004E fcb $14 interupt priority code
|
|
122
|
|
123 fcc /Copyright 1984,1986 D.P.Johnson & Sardis Technologies/
|
|
124 fcb $0D
|
|
125 fcc /All rights reserved/
|
|
126
|
|
127 start lbra INIT
|
|
128 lbra READ
|
|
129 lbra WRITE
|
|
130 lbra GETSTA
|
|
131 lbra SETSTA
|
|
132
|
|
133 * Terminate routine
|
|
134 ldx #$0000
|
|
135 leay >virq1,u
|
|
136 os9 F$VIRQ
|
|
137 leay >virq2,u
|
|
138 os9 F$VIRQ
|
|
139 os9 F$IRQ
|
|
140 leau 1,u
|
|
141 os9 F$IRQ
|
|
142 leau -1,u
|
|
143 clra
|
|
144 sta >$FF41
|
|
145 sta >u0087,u
|
|
146 rts
|
|
147
|
|
148 * Init routine
|
|
149 INIT lbsr L04AB
|
|
150 pshs cc
|
|
151 orcc #IntMasks
|
|
152 ldd >L0016,pc get drive motor on time
|
|
153 std >u0096,u
|
|
154 clra
|
|
155 sta >u0088,u
|
|
156 sta >u0083,u
|
|
157 sta >u0087,u
|
|
158 ldb >fdwrit
|
|
159 sta >$FF41
|
|
160 sta <D.MotOn
|
|
161 sta >u0099,u
|
|
162 inca
|
|
163 sta >u0092,u
|
|
164 sta >u0093,u
|
|
165 sta >u0094,u
|
|
166 puls cc
|
|
167 bsr L014B
|
|
168 bcs L014A
|
|
169 lbsr L0A55
|
|
170 * Setup drive tables
|
|
171 ldb #$03 get default # drives
|
|
172 stb V.NDRV,u save it
|
|
173 lda #$FF
|
|
174 leax DRVBEG,u point to drive table start
|
|
175 L0111 sta DD.TOT+1,x
|
|
176 sta <V.TRAK,x
|
|
177 leax <DRVMEM,x
|
|
178 decb
|
|
179 bne L0111
|
|
180
|
|
181 pshs u,y
|
|
182 leay >u009E,u
|
|
183 clr ,y
|
|
184 tfr y,d
|
|
185 leay >L0A2A,pcr
|
|
186 leax >L0049,pcr
|
|
187 os9 F$IRQ
|
|
188 bcs L0148
|
|
189 leay >u00A3,u
|
|
190 clr ,y
|
|
191 tfr y,d
|
|
192 leau 1,u
|
|
193 leay >L0869,pcr
|
|
194 leax >L004C,pcr
|
|
195 os9 F$IRQ
|
|
196 L0148 puls u,y
|
|
197 L014A rts
|
|
198
|
|
199 L014B ldb #$D0
|
|
200 stb >fdread
|
|
201 nop
|
|
202 ldb >fdwrit
|
|
203 clrb
|
|
204 ldx #$2710
|
|
205 L0158 lbsr L085B
|
|
206 ldb >fdccmd
|
|
207 bitb #$01
|
|
208 beq L0169
|
|
209 leax -$01,x
|
|
210 bne L0158
|
|
211 comb
|
|
212 ldb #E$NotRdy
|
|
213 L0169 rts
|
|
214
|
|
215 * Read entry point
|
|
216 READ pshs y,x
|
|
217 clra
|
|
218 lbsr L0AE2
|
|
219 pshs cc
|
|
220 bcs L01AE
|
|
221 bmi L017C
|
|
222 bne L017C
|
|
223 bsr L01D2
|
|
224 bra L0185
|
|
225 L017C lbsr L034A
|
|
226 bcs L01AE
|
|
227 bsr L01B0
|
|
228 bcs L01AE
|
|
229 L0185 lda ,s
|
|
230 bita #$08
|
|
231 bne L018F
|
|
232 ldx $01,s
|
|
233 bsr L01ED
|
|
234 L018F ldx $01,s
|
|
235 bne L01AD
|
|
236 tst >u0088,u
|
|
237 bne L01A9
|
|
238 ldx $08,y grabbing buffer address, PD.BUF?
|
|
239 ldy >u0081,u
|
|
240 ldb #$14
|
|
241 L01A2 lda b,x
|
|
242 sta b,y
|
|
243 decb
|
|
244 bpl L01A2
|
|
245 L01A9 clr >u0088,u
|
|
246 L01AD clrb
|
|
247 L01AE puls pc,y,x,a
|
|
248
|
|
249 L01B0 lda >u0095,u
|
|
250 L01B4 pshs x,a
|
|
251 bsr L01D7
|
|
252 puls x,a
|
|
253 bcc L01D2
|
|
254 cmpb #$01
|
|
255 beq L01CF
|
|
256 tsta
|
|
257 beq L01CF
|
|
258 lsra
|
|
259 bcc L01B4
|
|
260 pshs x,a
|
|
261 lbsr L0677
|
|
262 puls x,a
|
|
263 bcc L01B4
|
|
264 L01CF orcc #$01
|
|
265 rts
|
|
266
|
|
267 L01D2 lbsr L0892
|
|
268 clrb
|
|
269 rts
|
|
270
|
|
271 L01D7 lbsr L02E5
|
|
272 bcs L01EC
|
|
273 lbsr L028B
|
|
274 lbsr L0883
|
|
275 leax >L0039,pcr
|
|
276 lbsr L0711
|
|
277 lbsr L0298
|
|
278 L01EC rts
|
|
279
|
|
280 L01ED pshs y
|
|
281 ldy >u00AA,u
|
|
282 lbsr L0AB0
|
|
283 sta $02,y
|
|
284 stx ,y
|
|
285 puls pc,y
|
|
286
|
|
287 WRITE pshs x
|
|
288 lda #$01
|
|
289 lbsr L0AE2
|
|
290 pshs cc
|
|
291 bcs L021C
|
|
292 lbsr L034A
|
|
293 bcs L021C
|
|
294 bsr L021E
|
|
295 bcs L021C
|
|
296 lda ,s
|
|
297 bita #$08
|
|
298 bne L021B
|
|
299 ldx $01,s
|
|
300 bsr L01ED
|
|
301 L021B clrb
|
|
302 L021C puls pc,x,a
|
|
303
|
|
304 L021E lda >u0095,u
|
|
305 L0222 pshs x,a
|
|
306 bsr L0249
|
|
307 puls x,a
|
|
308 bcs L0233
|
|
309 tst <PD.VFY,y
|
|
310 bne L0248
|
|
311 bsr L02A8
|
|
312 bcc L0248
|
|
313 L0233 cmpb #$01
|
|
314 beq L0246
|
|
315 tsta
|
|
316 beq L0246
|
|
317 lsra
|
|
318 bcc L0222
|
|
319 pshs x,a
|
|
320 lbsr L0677
|
|
321 puls x,a
|
|
322 bcc L0222
|
|
323 L0246 orcc #$01 Set carry
|
|
324 L0248 rts
|
|
325
|
|
326 L0249 lbsr L02E5
|
|
327 bcs L0280
|
|
328 bsr L028B
|
|
329 lbsr L08B1
|
|
330 leax >L003E,pcr
|
|
331 bra L0267
|
|
332 L0259 lbsr L02E5
|
|
333 bcs L0280
|
|
334 bsr L028B
|
|
335 lbsr L08E4
|
|
336 leax >L0043,pcr
|
|
337 L0267 lbsr L070D
|
|
338 pshs b,cc
|
|
339 ldb >L001E,pcr
|
|
340 L0270 lbsr L085B
|
|
341 decb
|
|
342 bne L0270
|
|
343 puls b,cc
|
|
344 bsr L0298
|
|
345 rts
|
|
346
|
|
347 L027B leas $01,s
|
|
348 L027D comb Bad type error
|
|
349 ldb #E$BTyp
|
|
350 L0280 rts
|
|
351
|
|
352 L0281 comb Seek error
|
|
353 ldb #E$Seek
|
|
354 rts
|
|
355
|
|
356 L0285 leas $01,s
|
|
357 L0287 comb Sector error
|
|
358 ldb #E$Sect
|
|
359 rts
|
|
360
|
|
361 L028B pshs cc
|
|
362 tst >u008B,u
|
|
363 beq L02A6
|
|
364 lsr >fdctrk
|
|
365 bra L02A3
|
|
366 L0298 pshs cc
|
|
367 tst >u008B,u
|
|
368 beq L02A6
|
|
369 lsl >fdctrk
|
|
370 L02A3 lbsr L085B
|
|
371 L02A6 puls pc,cc
|
|
372
|
|
373 L02A8 pshs y,x,a
|
|
374 lbsr L01D7
|
|
375 bcs L02E3
|
|
376 lbsr L0883
|
|
377 ldx $08,y
|
|
378 ldd >u008F,u
|
|
379 tst >u0098,u
|
|
380 beq L02C8
|
|
381 ora #$C0
|
|
382 lbsr L08F6
|
|
383 tsta
|
|
384 beq L02E0
|
|
385 bra L02DD
|
|
386 L02C8 tfr x,y
|
|
387 lsra
|
|
388 rorb
|
|
389 lsra
|
|
390 rorb
|
|
391 L02CE ldx >buffer
|
|
392 cmpx ,y
|
|
393 bne L02E0
|
|
394 ldx >buffer
|
|
395 leay $04,y
|
|
396 decb
|
|
397 bne L02CE
|
|
398 L02DD clrb
|
|
399 bra L02E3
|
|
400 L02E0 comb
|
|
401 ldb #E$Write write error
|
|
402 L02E3 puls pc,y,x,a
|
|
403
|
|
404 L02E5 pshs x,cc
|
|
405 orcc #$50
|
|
406 nop
|
|
407 lda >u0087,u
|
|
408 anda #$0F
|
|
409 tst >u0085,u
|
|
410 beq L02F8
|
|
411 ora #$40
|
|
412 L02F8 tst >u0086,u
|
|
413 beq L0300
|
|
414 ora #$20
|
|
415 L0300 tst >u008C,u
|
|
416 beq L0308
|
|
417 ora #$10
|
|
418 L0308 sta >u0087,u
|
|
419 bita #$08
|
|
420 bne L0312
|
|
421 anda #$D8
|
|
422 L0312 sta >$FF41
|
|
423 puls cc
|
|
424 ldx >u0081,u
|
|
425 lda ,s
|
|
426 cmpa <$15,x
|
|
427 beq L033F
|
|
428 sta <$15,x
|
|
429 sta >fdcdta
|
|
430 lbsr L085B
|
|
431 leax >L0034,pcr
|
|
432 lbsr L0711
|
|
433 bcs L0348
|
|
434 ldx >L001A,pcr
|
|
435 beq L033F
|
|
436 lbsr L06B2
|
|
437 bcs L0348
|
|
438 L033F ldb $01,s
|
|
439 stb >$FF4A
|
|
440 lbsr L085B
|
|
441 clrb
|
|
442 L0348 puls pc,x
|
|
443
|
|
444 L034A tstb
|
|
445 lbne L0287
|
|
446 lbsr L0471
|
|
447 lbcs L0450
|
|
448 clr >u0085,u
|
|
449 clr >u0086,u
|
|
450 clr >u008B,u
|
|
451 clr >u008D,u
|
|
452 clr ,-s
|
|
453 tfr x,d
|
|
454 ldx >u0081,u
|
|
455 cmpd #$0000
|
|
456 lbeq L03FA
|
|
457 inc >u008D,u
|
|
458 cmpd $01,x
|
|
459 lbcc L0285
|
|
460 subd <PD.T0S,y
|
|
461 bcc L038B
|
|
462 addd <PD.T0S,y
|
|
463 bra L03FA
|
|
464
|
|
465 L038B pshs b,a
|
|
466 ldd <$11,x
|
|
467 subd #$0012
|
|
468 stb >u0091,u
|
|
469 ldb <$10,x
|
|
470 lsrb
|
|
471 bcc L03CC
|
|
472 ldb <PD.SID,y
|
|
473 cmpb #$01 only one side?
|
|
474 puls b,a might as well clean up
|
|
475 lbls L027B and leave now...
|
|
476 tst >u0091,u
|
|
477 bne L03BD
|
|
478 bra L03B5
|
|
479 L03B0 inc ,s
|
|
480 subd #$0090
|
|
481 L03B5 cmpa #$01
|
|
482 bcc L03B0
|
|
483 lsl ,s
|
|
484 lsl ,s
|
|
485 L03BD com >u0085,u
|
|
486 bne L03C5
|
|
487 inc ,s
|
|
488 L03C5 subd <$11,x
|
|
489 bcc L03BD
|
|
490 bra L03EC
|
|
491 L03CC puls b,a
|
|
492 tst >u0091,u
|
|
493 bne L03E5
|
|
494 bra L03DB
|
|
495 L03D6 inc ,s
|
|
496 subd #$0090
|
|
497 L03DB cmpa #$01
|
|
498 bcc L03D6
|
|
499 lsl ,s
|
|
500 lsl ,s
|
|
501 lsl ,s
|
|
502 L03E5 inc ,s
|
|
503 subd <$11,x
|
|
504 bcc L03E5
|
|
505 L03EC addd <$11,x
|
|
506 lda <$10,x
|
|
507 bita #$02
|
|
508 beq L03FA
|
|
509 com >u0086,u
|
|
510 L03FA lda <PD.TYP,y
|
|
511 bita #$20
|
|
512 beq L0405
|
|
513 dec >u0086,u
|
|
514 L0405 lda <PD.STOFF,y
|
|
515 anda #$0F
|
|
516 pshs a
|
|
517 lda <PD.STOFF,y
|
|
518 lsra
|
|
519 lsra
|
|
520 lsra
|
|
521 lsra
|
|
522 pshs a
|
|
523 addb ,s+
|
|
524 puls a
|
|
525 adda ,s
|
|
526 sta ,s
|
|
527 tst >u008D,u
|
|
528 beq L0442
|
|
529 lda <$10,x
|
|
530 lsra
|
|
531 bita #$02
|
|
532 beq L0435
|
|
533 eora <PD.DNS,y
|
|
534 bita #$02
|
|
535 beq L0442
|
|
536 lbra L027B
|
|
537 L0435 eora <PD.DNS,y
|
|
538 bita #$02
|
|
539 beq L0442
|
|
540 com >u008B,u
|
|
541 lsl ,s
|
|
542 L0442 puls a
|
|
543 cmpa <PD.CYL+1,y
|
|
544 lbcc L0281
|
|
545 tfr d,x
|
|
546 lbsr L0648
|
|
547 L0450 rts
|
|
548
|
|
549 L0451 pshs x
|
|
550 lda <PD.DRV,y Get the drive number
|
|
551 cmpa #$03 is it bigger than 3?
|
|
552 bcc L0468 yes - not possible...
|
|
553
|
|
554 * this would be where the 4th+ drive hardware mod patch would go.
|
|
555
|
|
556 leax drvtab,u drive table beginning
|
|
557 ldb #DRVMEM drive table size
|
|
558 mul
|
|
559 leax d,x compute the address
|
|
560 stx >u0081,u
|
|
561 clrb
|
|
562 puls pc,x
|
|
563
|
|
564 L0468 comb
|
|
565 ldb #E$Unit
|
|
566 puls pc,x
|
|
567
|
|
568 L046D bsr L0451
|
|
569 bcs L0450
|
|
570 L0471 pshs x
|
|
571 lbsr L09CA
|
|
572 bcs L04A9
|
|
573 pshs cc
|
|
574 orcc #$50
|
|
575 leax >L0026,pcr
|
|
576 lda <$21,y
|
|
577 ldb >u0087,u
|
|
578 andb #$F8
|
|
579 orb a,x
|
|
580 stb >u0087,u
|
|
581 puls cc
|
|
582 ldx >u0081,u
|
|
583 cmpx >u0083,u
|
|
584 beq L04A8
|
|
585 stx >u0083,u
|
|
586 lda <$15,x
|
|
587 sta >fdctrk
|
|
588 lbsr L085B
|
|
589 L04A8 clrb
|
|
590 L04A9 puls pc,x
|
|
591
|
|
592 L04AB ldd #$0100
|
|
593 std >u008F,u
|
|
594 lda #$92
|
|
595 sta >u0095,u
|
|
596 clr >u0098,u
|
|
597 rts
|
|
598
|
|
599 * GetStat entry point
|
|
600 GETSTA ldx PD.RGS,y get pointer to register stack
|
|
601 ldb R$B,x get callcode
|
|
602 clra
|
|
603 cmpb #$84 SS.SDRD system direct sector read?
|
|
604 beq L04F2
|
|
605 inca
|
|
606 cmpb #$80 SS.DWRIT direct sector write?
|
|
607 beq L04F2
|
|
608 cmpb #$86 SS.DRVCH drive cache select?
|
|
609 beq L04D3
|
|
610 comb
|
|
611 ldb #E$UnkSvc
|
|
612 rts
|
|
613
|
|
614 L04D3 lda >u00A9,u
|
|
615 sta R$A,x
|
|
616 clrb
|
|
617 rts
|
|
618
|
|
619 * Direct sector read entry point
|
|
620 L04DB bsr L0507
|
|
621 bcs L04FB
|
|
622 lda >u00A9,u
|
|
623 bmi L04ED
|
|
624 cmpa <PD.DRV,y
|
|
625 bne L04ED
|
|
626 lbsr L0A95
|
|
627 L04ED lbsr L021E
|
|
628 bra L04FB
|
|
629
|
|
630 * Direct sector write
|
|
631 L04F2 bsr L0507
|
|
632 bcs L04FB
|
|
633 lbsr L01B0
|
|
634 bcs L04FB
|
|
635 L04FB pshs b,cc
|
|
636 ldd >u0089,u
|
|
637 std PD.BUF,y
|
|
638 bsr L04AB
|
|
639 puls pc,b,cc
|
|
640
|
|
641 L0507 sta >u0098,u
|
|
642 ldd PD.BUF,y
|
|
643 std >u0089,u
|
|
644 ldd R$X,x
|
|
645 std PD.BUF,y
|
|
646 ldd R$Y,x
|
|
647 exg a,b
|
|
648 tsta
|
|
649 bpl L0522
|
|
650 clr >u0095,u
|
|
651 anda #$7F
|
|
652 L0522 lsra
|
|
653 lsra
|
|
654 lsra
|
|
655 lsra
|
|
656 andb #$FC
|
|
657 cmpd #$0000
|
|
658 bne L0532
|
|
659 ldd >L001C,pcr
|
|
660 L0532 std >u008F,u
|
|
661 lbsr L0B61
|
|
662 lbsr L0451
|
|
663 bcs L0543
|
|
664 ldx R$U,x
|
|
665 lbsr L05F3
|
|
666 L0543 rts
|
|
667
|
|
668 SETSTA ldx PD.RGS,y grab caller's register stack pointer
|
|
669 ldb R$B,x get the Stat call number
|
|
670 cmpb #SS.Reset Seek to track 0?
|
|
671 lbeq L0672 yes...
|
|
672 cmpb #SS.Wtrk direct track write?
|
|
673 lbeq L05B9 yes...
|
|
674 cmpb #SS.Frz
|
|
675 beq L0581
|
|
676 cmpb #$81 SS.UnFrz
|
|
677 beq L057E
|
|
678 clra
|
|
679 cmpb #$84 SS.SDRD
|
|
680 beq L0564
|
|
681 inca
|
|
682 cmpb #$80 SS.DREAD
|
|
683 L0564 lbeq L04DB
|
|
684 cmpb #$83 (SS.MOTIM) change drive motor-on time?
|
|
685 beq L059B
|
|
686 cmpb #$85 (SS.SLEEP) activate/deactivate sleep?
|
|
687 beq L0589
|
|
688 cmpb #$82 (SS.MOFF) shut off drive motor?
|
|
689 beq L05A8
|
|
690 cmpb #$86 (SS.DRVCHG) cache select?
|
|
691 lbeq L0A8C
|
|
692 comb
|
|
693 ldb #E$UnkSvc
|
|
694 rts
|
|
695
|
|
696 L057E clra
|
|
697 bra L0583
|
|
698 L0581 lda #$FF
|
|
699 L0583 sta >u0088,u
|
|
700 clrb
|
|
701 rts
|
|
702
|
|
703 L0589 ldx R$X,x
|
|
704 bne L0591
|
|
705 clra
|
|
706 inca
|
|
707 bra L0596
|
|
708 L0591 clra
|
|
709 sta >u0093,u
|
|
710 L0596 sta >u0094,u
|
|
711 rts
|
|
712
|
|
713 * Change drive motor time
|
|
714 L059B ldd R$X,x
|
|
715 bmi L05A2
|
|
716 addd #$0002
|
|
717 L05A2 std >u0096,u
|
|
718 clrb
|
|
719 rts
|
|
720
|
|
721 L05A8 pshs y,x,a,cc
|
|
722 orcc #$50
|
|
723 nop
|
|
724 ldd >virq1,u
|
|
725 beq L05B6
|
|
726 ldd #$0001
|
|
727 L05B6 lbra L09FC
|
|
728
|
|
729 L05B9 lda >u00A9,u Write track/format
|
|
730 lbsr L0A95
|
|
731 lbsr L0451
|
|
732 bcs L05F2
|
|
733 ldb R$Y+1,x
|
|
734 ldx R$U,x
|
|
735 pshs x
|
|
736 ldx >u0081,u
|
|
737 stb <$10,x
|
|
738 puls b,a
|
|
739 lda #$01
|
|
740 exg a,b
|
|
741 tfr d,x
|
|
742 bsr L05F3
|
|
743 bcs L05F2
|
|
744 lda #$03
|
|
745 L05E0 pshs x,a
|
|
746 lbsr L0259
|
|
747 puls x,a
|
|
748 bcc L05F2
|
|
749 cmpb #$01
|
|
750 beq L05F0
|
|
751 deca
|
|
752 bne L05E0
|
|
753 L05F0 orcc #$01
|
|
754 L05F2 rts
|
|
755
|
|
756 L05F3 lbsr L0471
|
|
757 bcs L0647
|
|
758 pshs x
|
|
759 ldx PD.RGS,y
|
|
760 lda R$Y+1,x grab low end of Y
|
|
761 clrb
|
|
762 bita #$01
|
|
763 beq L060C
|
|
764 ldb <PD.SID,y
|
|
765 cmpb #$01
|
|
766 bls L0627
|
|
767 ldb #$FF
|
|
768 L060C stb >u0085,u
|
|
769 clrb
|
|
770 bita #$02
|
|
771 beq L0616
|
|
772 comb
|
|
773 L0616 stb >u0086,u
|
|
774 clrb
|
|
775 lsra
|
|
776 bita #$02
|
|
777 beq L062C
|
|
778 eora <PD.DNS,y
|
|
779 bita #$02
|
|
780 beq L0636
|
|
781 L0627 leas $02,s
|
|
782 lbra L027D
|
|
783 L062C eora <PD.DNS,y
|
|
784 bita #$02
|
|
785 beq L0636
|
|
786 comb
|
|
787 lsl ,s
|
|
788 L0636 stb >u008B,u
|
|
789 puls x
|
|
790 tfr x,d
|
|
791 cmpa <PD.CYL+1,y
|
|
792 lbcc L0281
|
|
793 bsr L0648
|
|
794 L0647 rts
|
|
795
|
|
796 L0648 pshs x
|
|
797 clr >u008C,u
|
|
798 leax >L0020,pcr
|
|
799 ldb <PD.CYL+1,y
|
|
800 L0655 tst ,x
|
|
801 beq L0661
|
|
802 cmpb ,x
|
|
803 beq L0661
|
|
804 leax $02,x
|
|
805 bra L0655
|
|
806 L0661 cmpa $01,x
|
|
807 bcs L066F
|
|
808 tst >u0086,u
|
|
809 beq L066F
|
|
810 inc >u008C,u
|
|
811 L066F clrb
|
|
812 puls pc,x
|
|
813
|
|
814 L0672 lbsr L046D
|
|
815 bcs L06AE
|
|
816 L0677 leax >L002A,pcr
|
|
817 lbsr L0711
|
|
818 bcs L06A4
|
|
819 bsr L06AF
|
|
820 bcs L06A4
|
|
821 lda #$05
|
|
822 L0686 pshs a
|
|
823 leax >L002F,pcr
|
|
824 lbsr L0711
|
|
825 puls a
|
|
826 bcs L06A4
|
|
827 deca
|
|
828 bne L0686
|
|
829 bsr L06AF
|
|
830 bcs L06A4
|
|
831 leax >L002A,pcr
|
|
832 bsr L0711
|
|
833 bcs L06A4
|
|
834 bsr L06AF
|
|
835 L06A4 ldx >u0081,u
|
|
836 lda >fdctrk
|
|
837 sta <$15,x
|
|
838 L06AE rts
|
|
839
|
|
840 L06AF ldx #$000E
|
|
841 L06B2 pshs x,a
|
|
842 clrb
|
|
843 bra L06D4
|
|
844 L06B7 os9 F$Sleep
|
|
845 L06BA stx $01,s
|
|
846 ldx <D.Proc
|
|
847 lda P$State,x
|
|
848 bita #Condem
|
|
849 bne L0708
|
|
850 ldb <P$Signal,x
|
|
851 ldx <P$SigVec,x
|
|
852 bne L06D4
|
|
853 cmpb #S$Wake
|
|
854 bls L06D4
|
|
855 cmpb #S$Window
|
|
856 bne L0708
|
|
857 L06D4 ldx $01,s
|
|
858 beq L0705
|
|
859 pshs b,a
|
|
860 ldd <D.Proc
|
|
861 cmpd <D.SysPrc
|
|
862 puls b,a
|
|
863 beq L06F9
|
|
864 tst >u0093,u
|
|
865 bne L06ED
|
|
866 cmpb #$01
|
|
867 bls L06B7
|
|
868 L06ED lda #$EA
|
|
869 L06EF lbsr L085B
|
|
870 deca
|
|
871 bne L06EF
|
|
872 leax -$01,x
|
|
873 bra L06BA
|
|
874 L06F9 lda #$EA
|
|
875 L06FB lbsr L085B
|
|
876 deca
|
|
877 bne L06FB
|
|
878 leax -$01,x
|
|
879 bne L06F9
|
|
880 L0705 clrb
|
|
881 puls pc,x,a
|
|
882
|
|
883 L0708 comb
|
|
884 ldb #$01
|
|
885 puls pc,x,a
|
|
886 L070D lda #$01
|
|
887 bra L0712
|
|
888 L0711 clra
|
|
889 L0712 pshs y,x
|
|
890 ldb >fdccmd
|
|
891 bitb #$81
|
|
892 lbne L07ED
|
|
893 lbsr L09CA
|
|
894 lbcs L081A
|
|
895 pshs cc
|
|
896 orcc #$50
|
|
897 tsta
|
|
898 bne L0737
|
|
899 ldb $04,x
|
|
900 bmi L0732
|
|
901 eorb <PD.STP,y
|
|
902 L0732 stb >fdread
|
|
903 bra L073C
|
|
904 L0737 ldb $04,x
|
|
905 stb >fdwrit
|
|
906 L073C ldx $02,x
|
|
907 puls cc
|
|
908 ldd <D.Proc
|
|
909 cmpd <D.SysPrc
|
|
910 beq L07B2
|
|
911 tst >u0092,u
|
|
912 bne L07B2
|
|
913 tst >u0094,u
|
|
914 bne L07B2
|
|
915 clr >u0099,u
|
|
916 leay >virq2,u
|
|
917 clr PD.DEV+1,y
|
|
918 tfr x,d
|
|
919 ldx #$0001
|
|
920 os9 F$VIRQ
|
|
921 bcc L0770
|
|
922 lbra L081A
|
|
923 L076A ldx #$0001
|
|
924 os9 F$Sleep
|
|
925 L0770 ldx <D.Proc
|
|
926 lda P$State,x
|
|
927 ldb <P$Signal,x
|
|
928 ldx <P$SigVec,x
|
|
929 bne L0784
|
|
930 cmpb #S$Wake
|
|
931 bls L0784
|
|
932 cmpb #S$Window
|
|
933 bne L0788
|
|
934 L0784 bita #Condem
|
|
935 beq L0799
|
|
936 L0788 leay >virq2,u
|
|
937 ldx #$0000
|
|
938 os9 F$VIRQ
|
|
939 lbsr L081F
|
|
940 ldb #$01
|
|
941 bra L0818
|
|
942 L0799 tst >fdcdrv
|
|
943 bmi L07A6
|
|
944 tst >u0099,u
|
|
945 beq L076A
|
|
946 bra L07ED
|
|
947 L07A6 leay >virq2,u
|
|
948 ldx #$0000
|
|
949 os9 F$VIRQ
|
|
950 bra L07F3
|
|
951 L07B2 lda #$D2
|
|
952 L07B4 lbsr L085B
|
|
953 tst >fdcdrv
|
|
954 bmi L07F3
|
|
955 deca
|
|
956 bne L07B4
|
|
957 leax -$01,x
|
|
958 beq L07ED
|
|
959 ldd <u0050
|
|
960 cmpd <u004A
|
|
961 beq L07B2
|
|
962 pshs x
|
|
963 ldx <D.Proc
|
|
964 lda P$State,x
|
|
965 ldb <P$Signal,x
|
|
966 ldx <P$SigVec,x
|
|
967 puls x
|
|
968 bne L07E2
|
|
969 cmpb #$01
|
|
970 bls L07E2
|
|
971 cmpb #$04
|
|
972 bne L07E6
|
|
973 L07E2 bita #Condem
|
|
974 beq L07B2
|
|
975 L07E6 lbsr L081F
|
|
976 ldb #$01
|
|
977 bra L0818
|
|
978 L07ED bsr L081F
|
|
979 ldb #$80
|
|
980 bra L07F9
|
|
981 L07F3 lda >fdwrit
|
|
982 ldb >fdccmd
|
|
983 L07F9 stb >u008E,u
|
|
984 lbsr L09CA
|
|
985 bcs L081A
|
|
986 leax >0,pcr
|
|
987 ldd [,s]
|
|
988 leax d,x
|
|
989 ldb >u008E,u
|
|
990 L080E tst ,x
|
|
991 beq L081C
|
|
992 bitb ,x++
|
|
993 beq L080E
|
|
994 ldb ,-x
|
|
995 L0818 orcc #$01
|
|
996 L081A puls pc,y,x
|
|
997 L081C clrb
|
|
998 puls pc,y,x
|
|
999
|
|
1000 L081F pshs b,cc
|
|
1001 orcc #$50
|
|
1002 lda >fdwrit
|
|
1003 lda >u0087,u
|
|
1004 anda #$DF
|
|
1005 sta >$FF41
|
|
1006 puls cc
|
|
1007 lbsr L014B
|
|
1008 puls pc,b
|
|
1009
|
|
1010 fdb $80f6
|
|
1011 fdb $1017
|
|
1012 fdb $08f3
|
|
1013 fdb $01f6
|
|
1014 fdb $0080
|
|
1015 fdb $f640
|
|
1016 fdb $f220
|
|
1017 fdb $f510
|
|
1018 fdb $f708
|
|
1019 fdb $f304
|
|
1020 fdb $f501
|
|
1021 fdb $f600
|
|
1022 fdb $80f6
|
|
1023 fdb $20f4
|
|
1024 fdb $10f7
|
|
1025 fdb $08f3
|
|
1026 fdb $04f4
|
|
1027 fdb $01f6
|
|
1028 fcb $00
|
|
1029
|
|
1030 L085B tst >$00A0
|
|
1031 beq L0864
|
|
1032 bsr L0868
|
|
1033 bsr L0864
|
|
1034 L0864 bsr L0866
|
|
1035 L0866 bsr L0868
|
|
1036 L0868 rts
|
|
1037
|
|
1038 L0869 pshs a
|
|
1039 lda >u00A2,u
|
|
1040 bita #$01
|
|
1041 beq L0880
|
|
1042 sta >u0098,u
|
|
1043 anda #$FE
|
|
1044 sta >u00A2,u
|
|
1045 clra
|
|
1046 bra L0881
|
|
1047 L0880 coma
|
|
1048 L0881 puls pc,a
|
|
1049 L0883 ldb >u00A4,u
|
|
1050 L0887 stb >fdptrl
|
|
1051 lsrb
|
|
1052 lsrb
|
|
1053 lsrb
|
|
1054 lsrb
|
|
1055 stb >fdptrh
|
|
1056 rts
|
|
1057
|
|
1058 L0892 pshs u,dp,a
|
|
1059 bsr L08D2
|
|
1060 tst >u0098,u
|
|
1061 beq L08A2
|
|
1062 ora #$80
|
|
1063 bsr L08F6
|
|
1064 bra L08AF
|
|
1065 L08A2 bsr L08DB
|
|
1066 L08A4 ldu <u004E
|
|
1067 stu ,x++
|
|
1068 ldu <u004E
|
|
1069 stu ,x++
|
|
1070 decb
|
|
1071 bne L08A4
|
|
1072 L08AF puls pc,u,dp,a
|
|
1073
|
|
1074 L08B1 pshs u,dp,a
|
|
1075 bsr L08D2
|
|
1076 tst >u0098,u
|
|
1077 beq L08BF
|
|
1078 bsr L08F6
|
|
1079 bra L08CE
|
|
1080 L08BF bsr L08DB
|
|
1081 L08C1 ldu ,x++
|
|
1082 stu <u004E
|
|
1083 ldu ,x++
|
|
1084 stu <u004E
|
|
1085 decb
|
|
1086 bne L08C1
|
|
1087 ldu $02,s
|
|
1088 L08CE bsr L0883
|
|
1089 puls pc,u,dp,a
|
|
1090
|
|
1091 L08D2 bsr L0883
|
|
1092 ldx $08,y
|
|
1093 ldd >u008F,u
|
|
1094 rts
|
|
1095 L08DB lsra
|
|
1096 rorb
|
|
1097 lsra
|
|
1098 rorb
|
|
1099 lda #$FF
|
|
1100 tfr a,dp
|
|
1101 rts
|
|
1102
|
|
1103 L08E4 ldb #$20
|
|
1104 bsr L0887
|
|
1105 ldx PD.RGS,y
|
|
1106 ldx R$X,x
|
|
1107 ldd #$1A00
|
|
1108 bsr L08F6
|
|
1109 ldb #$20
|
|
1110 bsr L0887
|
|
1111 rts
|
|
1112
|
|
1113 L08F6 pshs u,y,x,a
|
|
1114 leas -$0C,s
|
|
1115 sta $0B,s
|
|
1116 anda #$3F
|
|
1117 std $04,s
|
|
1118 lda #$01
|
|
1119 sta $0C,s
|
|
1120 tfr x,d
|
|
1121 anda #$1F
|
|
1122 std $08,s
|
|
1123 exg x,d
|
|
1124 lsra
|
|
1125 lsra
|
|
1126 lsra
|
|
1127 lsra
|
|
1128 lsra
|
|
1129 lsla
|
|
1130 inca
|
|
1131 ldu <D.Proc
|
|
1132 ldb P$Task,u
|
|
1133 ldu <D.TskIPt
|
|
1134 lslb
|
|
1135 ldu b,u
|
|
1136 leau a,u
|
|
1137 stu $06,s
|
|
1138 ldd #$2000
|
|
1139 subd $08,s
|
|
1140 std ,s
|
|
1141 L0927 pshs cc
|
|
1142 orcc #$50
|
|
1143 ldd [>D.SysDAT]
|
|
1144 stb $0B,s
|
|
1145 ldd $05,s
|
|
1146 cmpd $01,s
|
|
1147 bls L093A
|
|
1148 ldd $01,s
|
|
1149 L093A cmpd #$0040
|
|
1150 bls L0943
|
|
1151 ldd #$0040
|
|
1152 L0943 std $03,s
|
|
1153 lsra
|
|
1154 rorb
|
|
1155 tfr d,y
|
|
1156 ldb [<$07,s]
|
|
1157 stb >$FFA0
|
|
1158 lda $0C,s
|
|
1159 bpl L098C
|
|
1160 bita #$40
|
|
1161 bne L096D
|
|
1162 bcc L0962
|
|
1163 lda >buffer
|
|
1164 sta ,x+
|
|
1165 leay ,y
|
|
1166 beq L09A0
|
|
1167 L0962 ldd >buffer
|
|
1168 std ,x++
|
|
1169 leay -$01,y
|
|
1170 bne L0962
|
|
1171 bra L09A0
|
|
1172 L096D bcc L097C
|
|
1173 lda >buffer
|
|
1174 cmpa ,x+
|
|
1175 beq L0978
|
|
1176 clr $0D,s
|
|
1177 L0978 leay ,y
|
|
1178 beq L09A0
|
|
1179 L097C ldd >buffer
|
|
1180 cmpd ,x++
|
|
1181 beq L0986
|
|
1182 clr $0D,s
|
|
1183 L0986 leay -$01,y
|
|
1184 bne L097C
|
|
1185 bra L09A0
|
|
1186 L098C bcc L0997
|
|
1187 lda ,x+
|
|
1188 sta >buffer
|
|
1189 leay ,y
|
|
1190 beq L09A0
|
|
1191 L0997 ldd ,x++
|
|
1192 std >buffer
|
|
1193 leay -$01,y
|
|
1194 bne L0997
|
|
1195 L09A0 ldb $0B,s
|
|
1196 stb >$FFA0
|
|
1197 puls cc
|
|
1198 ldd $04,s
|
|
1199 subd $02,s
|
|
1200 beq L09C6
|
|
1201 std $04,s
|
|
1202 ldd ,s
|
|
1203 subd $02,s
|
|
1204 bne L09C1
|
|
1205 tfr d,x
|
|
1206 ldd $06,s
|
|
1207 addd #$0002
|
|
1208 std $06,s
|
|
1209 ldd #$2000
|
|
1210 L09C1 std ,s
|
|
1211 lbra L0927
|
|
1212 L09C6 leas $0C,s
|
|
1213 puls pc,u,y,x,a
|
|
1214
|
|
1215 L09CA pshs y,x,a,cc
|
|
1216 orcc #$50
|
|
1217 nop
|
|
1218 lda >u0087,u
|
|
1219 bita #$08
|
|
1220 bne L09EF
|
|
1221 ora #$08
|
|
1222 sta >u0087,u
|
|
1223 anda #$D8
|
|
1224 sta >$FF41
|
|
1225 bsr L0A05
|
|
1226 puls cc
|
|
1227 ldx >L0018,pcr
|
|
1228 lbsr L06B2
|
|
1229 bra L0A03
|
|
1230 L09EF sta >$FF41
|
|
1231 tst <D.MotOn
|
|
1232 beq L09F8
|
|
1233 bsr L0A05
|
|
1234 L09F8 ldd >u0096,u
|
|
1235 L09FC std >virq1,u
|
|
1236 puls cc
|
|
1237 clrb
|
|
1238 L0A03 puls pc,y,x,a
|
|
1239
|
|
1240 L0A05 clr <D.MotOn
|
|
1241 ldd >u0096,u
|
|
1242 leay >virq1,u
|
|
1243 clr $04,y
|
|
1244 ldx #$0001
|
|
1245 os9 F$VIRQ
|
|
1246 bcc L0A1C
|
|
1247 dec <D.MotOn
|
|
1248 rts
|
|
1249 L0A1C tst >u0092,u
|
|
1250 beq L0A29
|
|
1251 clr >u0092,u
|
|
1252 lbsr L0591
|
|
1253 L0A29 rts
|
|
1254 L0A2A pshs a
|
|
1255 coma
|
|
1256 lda >u009E,u
|
|
1257 bita #$01
|
|
1258 beq L0A53
|
|
1259 tst <D.DMAReq
|
|
1260 beq L0A3E
|
|
1261 bsr L0A05
|
|
1262 clra
|
|
1263 bra L0A53
|
|
1264 L0A3E lda >u0087,u
|
|
1265 anda #$F7
|
|
1266 sta >u0087,u
|
|
1267 anda #$D8
|
|
1268 sta >$FF41
|
|
1269 clr >u009E,u
|
|
1270 clr <D.MotOn
|
|
1271 L0A53 puls pc,a
|
|
1272
|
|
1273 L0A55 pshs x,b,a
|
|
1274 lda #$BE
|
|
1275 sta >u00A8,u
|
|
1276 clra
|
|
1277 ldb #$3C
|
|
1278 lbsr L0887
|
|
1279 sta >buffer
|
|
1280 deca
|
|
1281 ldb #$7C
|
|
1282 lbsr L0887
|
|
1283 sta >buffer
|
|
1284 ldb #$3C
|
|
1285 lbsr L0887
|
|
1286 clra
|
|
1287 ldb #$7C
|
|
1288 tst >buffer
|
|
1289 beq L0A80
|
|
1290 lda #$20
|
|
1291 ldb #$1C
|
|
1292 L0A80 sta >u00A5,u
|
|
1293 stb >u00A6,u
|
|
1294 lda #$FF
|
|
1295 bra L0A9B
|
|
1296 L0A8C lda <$21,y
|
|
1297 ldx $04,x
|
|
1298 bne L0A95
|
|
1299 lda #$FF
|
|
1300 L0A95 pshs x,b,a
|
|
1301 ldb >u00A6,u
|
|
1302 L0A9B sta >u00A9,u
|
|
1303 leax >u00AC,u
|
|
1304 lda #$FF
|
|
1305 L0AA5 sta ,x+
|
|
1306 sta ,x+
|
|
1307 clr ,x+
|
|
1308 decb
|
|
1309 bne L0AA5
|
|
1310 puls pc,x,b,a
|
|
1311 L0AB0 pshs x,b
|
|
1312 lda >u00A8,u
|
|
1313 inca
|
|
1314 cmpa #$FF
|
|
1315 bne L0ADC
|
|
1316 leax >u00AC,u
|
|
1317 ldb >u00A6,u
|
|
1318 L0AC3 lda $02,x
|
|
1319 beq L0AD5
|
|
1320 cmpa #$7F
|
|
1321 bls L0ACF
|
|
1322 suba #$40
|
|
1323 bra L0AD3
|
|
1324 L0ACF lsra
|
|
1325 bne L0AD3
|
|
1326 inca
|
|
1327 L0AD3 sta $02,x
|
|
1328 L0AD5 leax $03,x
|
|
1329 decb
|
|
1330 bne L0AC3
|
|
1331 lda #$BF
|
|
1332 L0ADC sta >u00A8,u
|
|
1333 puls pc,x,b
|
|
1334
|
|
1335 L0AE2 tstb
|
|
1336 lbne L0287
|
|
1337 cmpx #$FFFF
|
|
1338 lbeq L0287
|
|
1339 pshs y,x,b,a
|
|
1340 sta >u00A7,u
|
|
1341 lbsr L0451
|
|
1342 bcs L0B37
|
|
1343 lda >u00A9,u
|
|
1344 bmi L0B63
|
|
1345 cmpa <PD.DRV,y
|
|
1346 bne L0B63
|
|
1347 cmpx #$0003
|
|
1348 bls L0B57
|
|
1349 lda #$FF
|
|
1350 ldb >u00A6,u
|
|
1351 subb #$04
|
|
1352 leay >u00B8,u
|
|
1353 L0B15 cmpx ,y
|
|
1354 beq L0B39
|
|
1355 cmpa $02,y
|
|
1356 bls L0B21
|
|
1357 lda $02,y
|
|
1358 stb ,s
|
|
1359 L0B21 leay $03,y
|
|
1360 decb
|
|
1361 bne L0B15
|
|
1362 ldb >u00A6,u
|
|
1363 subb ,s
|
|
1364 bsr L0B7C
|
|
1365 L0B2E ldd #$FFFF
|
|
1366 std ,y
|
|
1367 L0B33 clr $02,y
|
|
1368 lda #$01
|
|
1369 L0B37 puls pc,y,x,b,a
|
|
1370
|
|
1371 L0B39 sty >u00AA,u
|
|
1372 stb ,s
|
|
1373 ldb >u00A6,u
|
|
1374 subb ,s
|
|
1375 addb >u00A5,u
|
|
1376 stb >u00A4,u
|
|
1377 L0B4E tst >u00A7,u
|
|
1378 bne L0B2E
|
|
1379 clra
|
|
1380 puls pc,y,x,b,a
|
|
1381
|
|
1382 L0B57 tfr x,d
|
|
1383 bsr L0B7C
|
|
1384 tst $02,y
|
|
1385 bne L0B4E
|
|
1386 bra L0B33
|
|
1387 L0B61 pshs y,x,b,a
|
|
1388 L0B63 lda >u00A6,u
|
|
1389 adda >u00A5,u
|
|
1390 sta >u00A4,u
|
|
1391 leay >u0220,u
|
|
1392 sty >u00AA,u
|
|
1393 clra
|
|
1394 deca
|
|
1395 puls pc,y,x,b,a
|
|
1396 L0B7C tfr b,a
|
|
1397 adda >u00A5,u
|
|
1398 sta >u00A4,u
|
|
1399 lda #$03
|
|
1400 mul
|
|
1401 leay >u00AC,u
|
|
1402 leay d,y
|
|
1403 sty >u00AA,u
|
|
1404 rts
|
|
1405
|
|
1406 L0B95 fdb $0000
|
|
1407
|
|
1408 emod
|
|
1409
|
|
1410 eom equ *
|
|
1411
|