928
|
1 * Disassembly by Dynamite+ of cc3disk
|
|
2 *
|
|
3
|
|
4 * ======================================================
|
|
5 * Layout of SC-II registers:
|
|
6 *
|
|
7 * $FF74 RW.Dat --- R/W Buffer data #1
|
|
8 * $FF75 mirror of $FF74
|
|
9 * $FF76 RW.Ctrl --- Write D0 = 0 FDC Write Op #2
|
|
10 * = 1 FDC Read Op #2
|
|
11 * D1 = 0 Normal Mode
|
|
12 * = 1 Buffered I/O Mode
|
|
13 * D2 = 0 Normal NMI
|
|
14 * = 1 Masked NMI
|
|
15 * D3 = 0 No FIRQ (Masked)
|
|
16 * = 1 Enabled FIRQ
|
|
17 * Read D7 = FDC INT Status (Inverted)
|
|
18 * $FF77 mirror of $FF76
|
|
19 * #1: any write to $FF76-$FF77 clears Buffer counter
|
|
20 * #2: in buffered mode only
|
|
21 * =========================================================
|
|
22
|
|
23 nam CC3Disk.irq
|
|
24 ttl Disto version: patched to remove F$IRQ on TERM
|
|
25
|
|
26 Level equ 2
|
|
27
|
|
28 ifp1
|
|
29 use defsfile
|
|
30 use rbfdefs
|
|
31 endc
|
|
32
|
|
33 TyLan equ Drivr+Objct
|
|
34 AttRev equ ReEnt+3
|
|
35 Edition set 163
|
|
36 ForcInt equ $d0
|
|
37 WrtSct equ $a0
|
|
38
|
|
39 mod dlen,dnam,TyLan,AttRev,dexec,datsiz
|
|
40
|
|
41 RG.Ctrl equ $ff40
|
|
42 RG.Stat equ $ff48
|
|
43 RG.Trk equ $ff49
|
|
44 RG.Sect equ $ff4a
|
|
45 RG.Data equ $ff4b
|
|
46 * I *THINK* Disto manual was backwards
|
|
47 * This looks better in code
|
|
48 RW.Dat equ $ff74
|
|
49 RW.Ctrl equ $ff76
|
|
50 MPICtrl equ $ff7f
|
|
51 *IRQENR equ $ff92
|
|
52
|
|
53 * OS-9 data area definitions
|
|
54
|
|
55 org DRVBEG+4*DRVMEM
|
|
56 tl equ .
|
|
57 LstDrv rmb 1
|
|
58 DrivMsk rmb 1
|
|
59 ChgFlg rmb 1
|
|
60 d00aa rmb 1
|
|
61 d00ab rmb 1
|
|
62 DskOfst rmb 3
|
|
63 DisCode rmb 2
|
|
64 VIRQPak rmb 5
|
|
65 rmb 1
|
|
66 Lsn rmb 3
|
|
67 WtrkBuf rmb 2
|
|
68 MPISlot rmb 1
|
|
69 MPISav rmb 1
|
|
70 datsiz equ .
|
|
71
|
|
72 fcb $ff
|
|
73 dnam fcs "CC3Disk"
|
|
74 fcb Edition
|
|
75
|
|
76 dexec lbra INIT
|
|
77 lbra READ
|
|
78 lbra WRITE
|
|
79 lbra GETSTA
|
|
80 lbra PUTSTA
|
|
81
|
|
82 TERM ldx #0
|
|
83 leau LstDrv,u
|
|
84 leay VIRQPak-tl,u
|
|
85 os9 F$VIRQ
|
|
86 leay IRQSvc,pcr
|
|
87 os9 F$IRQ
|
|
88 leay SC2vec,pcr
|
|
89 os9 F$IRQ
|
|
90 clrb
|
|
91 stb RG.Ctrl
|
|
92 stb D.MotOn
|
|
93 rts
|
|
94
|
|
95 * F$IRQ arrays: Flip byte, Mask byte, priority
|
|
96 videfs fcb 0,Vi.IFlag,9
|
|
97 SC2stts fcb $80,$80,16
|
|
98
|
|
99 ********************
|
|
100 * INIT: entry: U= Static Mem, Y= Device Descr
|
|
101
|
|
102 INIT clr RW.Ctrl
|
|
103 clr D.MotOn
|
|
104 ldx #RG.Stat
|
|
105 lda #ForcInt
|
|
106 sta ,x Send cmd to FDC
|
|
107 lbsr tdelay Wait
|
|
108 lda ,x Clear FDC register
|
|
109 lda #$ff Init "last drive accessed"
|
|
110 sta LstDrv,u to impossible #
|
|
111 ldb #4
|
|
112 leax DRVBEG,u
|
|
113 l0067 sta ,x
|
|
114 sta DD.BT,x
|
|
115 leax DRVMEM,x
|
|
116 decb
|
|
117 bne l0067
|
|
118 leax NMIvec,pcr
|
|
119 stx D.NMI
|
|
120 pshs u
|
|
121 leau LstDrv,u
|
|
122 leay VIRQPak+VI.Stat-tl,u
|
|
123 tfr y,d
|
|
124 leay IRQSvc,pcr
|
|
125 leax >videfs,pcr
|
|
126 os9 F$IRQ
|
|
127 puls u
|
|
128 bcs ret010
|
|
129 lda MPICtrl
|
|
130 sta MPISlot,u
|
|
131 ldd #RW.Ctrl
|
|
132 leay SC2vec,pcr
|
|
133 leax >SC2stts,pcr
|
|
134 os9 F$IRQ
|
|
135 bcs ret010
|
|
136 pshs cc
|
|
137 orcc #IntMasks
|
|
138 lda $FF23
|
|
139 * disable FIRQ from cart. set flag on falling edge of CART
|
|
140 anda #$fc
|
|
141 sta $FF23
|
|
142 lda $FF22
|
|
143 lda D.IRQER
|
|
144 ora #1 Enable CART IRQ
|
|
145 sta D.IRQER ..save in IRQENR shadow
|
|
146 sta IRQENR .. and actual register
|
|
147 puls cc
|
|
148
|
|
149 ***************
|
|
150 * GetSta : no op
|
|
151
|
|
152 GETSTA clrb
|
|
153 ret010 rts
|
|
154
|
|
155 *******************
|
|
156 * READ entry: U= device Mem Y= Path Descr
|
|
157 * B,X= LSN
|
|
158
|
|
159 READ lbsr trkcmput
|
|
160 clr d00aa-tl,u
|
|
161 ldd Lsn-tl,u
|
|
162 bne l0118
|
|
163 bsr l0118
|
|
164 bcs ret010
|
|
165 lda PD.TYP,y
|
|
166 bita #$40
|
|
167 lbne t0set
|
|
168 ldx PD.BUF,y
|
|
169 pshs x,y
|
|
170 ldy PD.DTB,y
|
|
171 ldb #$14
|
|
172 l00e5 lda b,x
|
|
173 sta b,y
|
|
174 decb
|
|
175 bpl l00e5
|
|
176 lda DD.FMT,y
|
|
177 ldy 2,s
|
|
178 ldb PD.DNS,y
|
|
179 bita #2
|
|
180 beq l00fd
|
|
181 bitb #1
|
|
182 beq badtyp
|
|
183 l00fd bita #4
|
|
184 beq l0105
|
|
185 bitb #2
|
|
186 beq badtyp
|
|
187 l0105 bita #1
|
|
188 beq ret025
|
|
189 lda PD.SID,y
|
|
190 suba #2
|
|
191 bcs badtyp
|
|
192 ret025 clrb
|
|
193 puls x,y,pc
|
|
194 badtyp comb
|
|
195 ldb #E$BTyp
|
|
196 puls x,y,pc
|
|
197 l0118 lbsr l02d6
|
|
198 bcs ret010
|
|
199 ldb #$80
|
|
200 lda #7
|
|
201 bsr l019c
|
|
202 lbcs E.Read
|
|
203 ldx PD.BUF,y
|
|
204 ldb #$80
|
|
205 tst d00aa-tl,u
|
|
206 bne l013c
|
|
207 pshs b
|
|
208 * Move data from SC2 buffer to RBF buffer
|
|
209 getdat ldd RW.Dat
|
|
210 std ,x++
|
|
211 dec ,s
|
|
212 bne getdat
|
|
213 puls b
|
|
214 l013c andcc #^Carry
|
|
215 rts
|
|
216
|
|
217 * ******************
|
|
218 * WRITE entry: U= Device static Mem Y= Path Descr
|
|
219 * B,X= LSN
|
|
220
|
|
221 WRITE lbsr trkcmput
|
|
222 l0142 bsr l0151
|
|
223 bcs ret040
|
|
224 tst PD.VFY,y
|
|
225 bne ret030
|
|
226 bsr verify
|
|
227 bcs l0142
|
|
228 ret030 clrb
|
|
229 ret040 rts
|
|
230 l0151 lbsr l02d6
|
|
231 bcs ret040
|
|
232 ldx PD.BUF,y
|
|
233 lda #4
|
|
234 sta RW.Ctrl
|
|
235 ldb #$80
|
|
236 pshs b
|
|
237 putdat ldd ,x++
|
|
238 std RW.Dat
|
|
239 dec ,s
|
|
240 bne putdat
|
|
241 puls b
|
|
242 ldb #WrtSct
|
|
243 lda #6
|
|
244 bsr l019c
|
|
245 lbra l0243
|
|
246
|
|
247 verify lda d00ab-tl,u
|
|
248 pshs a
|
|
249 clr d00ab-tl,u
|
|
250 lda #$ff
|
|
251 sta d00aa-tl,u
|
|
252 bsr l0118
|
|
253 bcs l0197
|
|
254 pshs b
|
|
255 l0185 ldd RW.Dat
|
|
256 cmpd ,x++
|
|
257 bne l0193
|
|
258 dec ,s
|
|
259 bne l0185
|
|
260 bra l0195
|
|
261 l0193 orcc #Carry
|
|
262 l0195 puls b
|
|
263 l0197 puls a
|
|
264 sta d00ab-tl,u
|
|
265 rts
|
|
266 l019c std DisCode-tl,u Save both ctrlr cmds
|
|
267 l019e ldd DisCode-tl,u Load both ctrlr cmds
|
|
268 bsr sendcmd
|
|
269 lbsr l0243
|
|
270 bcc ret01ba
|
|
271 lda RG.Stat
|
|
272 bita #$40
|
|
273 bne err01b9
|
|
274 lsr d00ab-tl,u
|
|
275 beq err01b9
|
|
276 bcc l019e
|
|
277 lbsr ssrset
|
|
278 bra l019e
|
|
279 err01b9 coma
|
|
280 ret01ba rts
|
|
281
|
|
282 * sendcmd: entry: A=No-halt buffer cmd mask
|
|
283 * B=WD ctrlr cmd code
|
|
284
|
|
285 sendcmd pshs a
|
|
286 lda D.Proc
|
|
287 sta V.WAKE-tl,u
|
|
288 puls a
|
|
289 stb RG.Stat
|
|
290 ora #8
|
|
291 sta RW.Ctrl
|
|
292 ldb #$28
|
|
293 orb DrivMsk-tl,u
|
|
294 stb RG.Ctrl
|
|
295 pshs x
|
|
296 bra l01e8
|
|
297 l01d8 ldx D.Proc
|
|
298 lda P$State,x
|
|
299 ora #Suspend
|
|
300 sta P$State,x
|
|
301 andcc #^IntMasks
|
|
302 ldx #1
|
|
303 lbsr l0424
|
|
304 l01e8 orcc #IntMasks
|
|
305 lda V.WAKE-tl,u
|
|
306 bne l01d8
|
|
307 clrb
|
|
308 ldb #4
|
|
309 stb RW.Ctrl
|
|
310 andcc #^IntMasks
|
|
311 puls x,pc
|
|
312 SC2vec lda V.WAKE,u
|
|
313 beq err0236
|
|
314 ldb MPICtrl
|
|
315 stb MPISav,u
|
|
316 ldb MPISlot,u
|
|
317 stb MPICtrl
|
|
318 ldb #ForcInt
|
|
319 stb RG.Stat
|
|
320 ldb #4
|
|
321 stb RW.Ctrl
|
|
322 * The Bruce Isted patch. Not needed???
|
|
323 ldb D.IRQS
|
|
324 andb #$fe
|
|
325 stb D.IRQS
|
|
326 ldb D.IRQER
|
|
327 andb #$fe
|
|
328 stb IRQENR
|
|
329 orb #1
|
|
330 stb IRQENR
|
|
331 * End of Bruce Isted patch *
|
|
332 clrb
|
|
333 stb V.WAKE,u
|
|
334 tfr d,x A=V.WAKE??? B=0
|
|
335 lda P$State,x
|
|
336 anda #^Suspend
|
|
337 sta P$State,x
|
|
338 clrb
|
|
339 bra ret0237
|
|
340 err0236 comb
|
|
341 ret0237 lda MPISav,u
|
|
342 sta MPICtrl
|
|
343 rts
|
|
344
|
|
345 NMIvec leas R$Size,s Pull RTI stack
|
|
346 puls cc,y
|
|
347 l0243 ldb RG.Stat Get error status
|
|
348 clr RW.Ctrl
|
|
349 andb #$f8 mask off non-error bits
|
|
350 beq done
|
|
351 pshs x
|
|
352 leax <errtbl-1,pcr
|
|
353 l0252 leax 1,x
|
|
354 rolb
|
|
355 bcc l0252
|
|
356 ldb ,x
|
|
357 puls x,pc
|
|
358 done clrb
|
|
359 rts
|
|
360
|
|
361 errtbl fcb E$NotRdy,E$WP,E$Write,E$Seek
|
|
362 fcb E$CRC
|
|
363 E.Read comb
|
|
364 ldb #E$Read
|
|
365 rts
|
|
366
|
|
367 trkcmput leau LstDrv,u
|
|
368 clr DskOfst+2-tl,u
|
|
369 lda #$91
|
|
370 sta d00ab-tl,u
|
|
371 tstb MMsb of sector
|
|
372 bne E.Sect always 0 for CoCo floppies
|
|
373 tfr x,d
|
|
374 std Lsn-tl,u Save lsn
|
|
375 beq l02a4
|
|
376 ldx PD.DTB,y
|
|
377 cmpd DD.TOT+1,x Req'd lsn > max?
|
|
378 bcs l0288 no, continue
|
|
379 E.Sect comb
|
|
380 ldb #E$Sect
|
|
381 leas 2,s
|
|
382 rts
|
|
383
|
|
384 l0288 clr ,-s
|
|
385 bra l028e
|
|
386 l028c inc ,s
|
|
387 l028e subd DD.SPT,x
|
|
388 bcc l028c
|
|
389 addd DD.SPT,x
|
|
390 lda DD.FMT,x
|
|
391 lsra
|
|
392 bcc l02a2
|
|
393 lsr ,s
|
|
394 bcc l02a2
|
|
395 inc DskOfst+2-tl,u
|
|
396 l02a2 puls a
|
|
397 l02a4 std DskOfst-tl,u
|
|
398 clrb
|
|
399 rts
|
|
400 setdrv clr ChgFlg-tl,u
|
|
401 lda PD.DRV,y
|
|
402 cmpa #4
|
|
403 bcs l02b5
|
|
404 comb
|
|
405 ldb #E$Unit
|
|
406 rts
|
|
407 l02b5 pshs a,b,x
|
|
408 cmpa LstDrv-tl,u
|
|
409 beq l02bd
|
|
410 com ChgFlg-tl,u
|
|
411 l02bd sta LstDrv-tl,u
|
|
412 leax <drvmsks,pcr
|
|
413 ldb a,x
|
|
414 stb DrivMsk-tl,u
|
|
415 lbsr mtron
|
|
416 puls a,b,x,pc
|
|
417
|
|
418 drvmsks fcb $01,$02,$04,$40
|
|
419
|
|
420 l02cf pshs a
|
|
421 ldb DD.BT,x
|
|
422 bra l030c
|
|
423 l02d6 bsr setdrv
|
|
424 bcs l032f
|
|
425 ldd DskOfst-tl,u
|
|
426 pshs a
|
|
427 lda DskOfst+2-tl,u
|
|
428 beq l02e8
|
|
429 lda DrivMsk-tl,u
|
|
430 ora #$40
|
|
431 sta DrivMsk-tl,u
|
|
432 l02e8 lda PD.TYP,y
|
|
433 bita #2
|
|
434 bne l02f0
|
|
435 incb
|
|
436 l02f0 stb RG.Sect
|
|
437 ldx PD.DTB,y
|
|
438 ldb DD.BT,x
|
|
439 lda DD.FMT,x
|
|
440 lsra
|
|
441 eora PD.DNS,y
|
|
442 anda #2
|
|
443 pshs a
|
|
444 lda 1,s
|
|
445 tst ,s+
|
|
446 beq l030c
|
|
447 asla
|
|
448 aslb
|
|
449 l030c stb RG.Trk
|
|
450 tst ChgFlg-tl,u
|
|
451 bne seek
|
|
452 ldb ,s
|
|
453 cmpb DD.BT,x
|
|
454 beq l0326
|
|
455 seek sta RG.Data
|
|
456 ldb PD.STP,y
|
|
457 andb #3
|
|
458 eorb #$1b
|
|
459 bsr l0330
|
|
460 l0326 puls a
|
|
461 sta DD.BT,x
|
|
462 sta RG.Trk
|
|
463 clrb
|
|
464 l032f rts
|
|
465
|
|
466 l0330 lda #4
|
|
467 lbsr sendcmd
|
|
468 lda RG.Stat
|
|
469 clr RW.Ctrl
|
|
470 rts
|
|
471
|
|
472 tdelay clr 18,u
|
|
473 inc 18,u
|
|
474 l0342 rol 18,u
|
|
475 bpl l0342
|
|
476 rts
|
|
477
|
|
478 * Restore to LSN0
|
|
479 ssrset pshs b,x
|
|
480 lbsr setdrv
|
|
481 bcs l0370
|
|
482 ldx PD.DTB,y
|
|
483 clr DD.BT,x
|
|
484 lda #4
|
|
485 stepIN ldb PD.STP,y
|
|
486 andb #3
|
|
487 eorb #$4b Step In
|
|
488 pshs a
|
|
489 bsr l0330
|
|
490 puls a
|
|
491 deca
|
|
492 bne stepIN
|
|
493 ldb PD.STP,y
|
|
494 andb #3
|
|
495 eorb #$0b Restore
|
|
496 bsr l0330
|
|
497 l0370 puls b,x,pc
|
|
498
|
|
499 *********************
|
|
500 * PUTSTA U= Device Static Mem Y= Path Descr
|
|
501 * A= Status Call
|
|
502
|
|
503 PUTSTA leau LstDrv,u
|
|
504 ldx PD.RGS,y
|
|
505 ldb R$B,x SS.xx call
|
|
506 cmpb #SS.WTrk
|
|
507 beq wtrak
|
|
508 cmpb #SS.Reset
|
|
509 beq ssrset
|
|
510 comb
|
|
511 ldb #E$UnkSvc
|
|
512 rts
|
|
513
|
|
514 * SS.WTRK call
|
|
515 wtrak pshs y,u
|
|
516 * request buffer memory
|
|
517 ldd #$1a00
|
|
518 os9 F$SRqMem
|
|
519 bcs ret080
|
|
520 ldx 2,s
|
|
521 stu WtrkBuf-tl,x
|
|
522 ldx D.Proc
|
|
523 lda P$Task,x
|
|
524 ldb D.SysTsk
|
|
525 ldy ,s
|
|
526 ldx PD.RGS,y
|
|
527 ldx R$X,x
|
|
528 ldy #$1a00
|
|
529 os9 F$Move
|
|
530 bcs l03d3
|
|
531 puls y,u
|
|
532 pshs y,u
|
|
533 lbsr setdrv
|
|
534 bcs l03d3
|
|
535 ldx PD.RGS,y
|
|
536 ldb R$Y+1,x
|
|
537 bitb #1
|
|
538 beq l03c4
|
|
539 lda DrivMsk-tl,u
|
|
540 ora #$40
|
|
541 sta DrivMsk-tl,u
|
|
542 sta DskOfst+2-tl,u
|
|
543 l03c4 lda R$U+1,x
|
|
544 ldx PD.DTB,y
|
|
545 lbsr l02cf
|
|
546 bcs l03d3
|
|
547 ldx WtrkBuf-tl,u
|
|
548 bsr l03e4
|
|
549 l03d3 ldu 2,s Original U (Static storage)
|
|
550 pshs cc,b
|
|
551 ldu WtrkBuf-tl,u Return WTrk buffer
|
|
552 ldd #$1a00 ... to sys
|
|
553 os9 F$SRtMem
|
|
554 puls cc,b
|
|
555 ret080 puls y,u,pc
|
|
556
|
|
557 l03e4 pshs cc,y
|
|
558 orcc #IntMasks
|
|
559 ldb #$f0
|
|
560 stb RG.Stat
|
|
561 ldy #$ffff
|
|
562 ldb #$28
|
|
563 orb DrivMsk-tl,u
|
|
564 stb RG.Ctrl
|
|
565 orb #$a8
|
|
566 lda #2
|
|
567 lbsr tdelay
|
|
568 l03ff bita RG.Stat
|
|
569 bne sctwrt
|
|
570 leay -1,y
|
|
571 bne l03ff
|
|
572 lda DrivMsk-tl,u
|
|
573 ora #8
|
|
574 sta RG.Ctrl
|
|
575 lda #ForcInt
|
|
576 sta RG.Stat
|
|
577 puls cc,y
|
|
578 comb
|
|
579 ldb #E$Write
|
|
580 rts
|
|
581 * NMI-type Block mode write
|
|
582 sctwrt lda ,x+
|
|
583 sta RG.Data
|
|
584 stb RG.Ctrl
|
|
585 bra sctwrt Loop till sector written
|
|
586
|
|
587 * Pause and timeout routines
|
|
588 l0424 pshs a,b
|
|
589 ldd D.Proc
|
|
590 cmpd D.SysPrc
|
|
591 puls a,b
|
|
592 beq wait
|
|
593 os9 F$Sleep
|
|
594 rts
|
|
595 wait ldx #$a000
|
|
596 wait1 nop
|
|
597 nop
|
|
598 nop
|
|
599 leax -1,x
|
|
600 bne wait1
|
|
601 rts
|
|
602
|
|
603 mtron pshs a,b,x,y
|
|
604 ldd #$00f0 Reset Drive timeout
|
|
605 std VIRQPak-tl,u
|
|
606 lda DrivMsk-tl,u
|
|
607 ora #8 Motor-on
|
|
608 sta RG.Ctrl
|
|
609 ldx #$0028
|
|
610 lda D.MotOn Result of last motoron attempt
|
|
611 bmi svirq If error previously
|
|
612 beq l0469
|
|
613 tst ChgFlg-tl,u Different drive from last?
|
|
614 beq ret090 No, no need to wait
|
|
615 lda PD.TYP,y
|
|
616 bita #$10 All motors not turned on?
|
|
617 beq ret090 Yes, skip
|
|
618 bsr l0424
|
|
619 ldd #$00f0
|
|
620 std VIRQPak-tl,u
|
|
621 bra ret090
|
|
622
|
|
623 l0469 bsr l0424
|
|
624 svirq bsr setVIRQ
|
|
625 ret090 clrb
|
|
626 puls a,b,x,y,pc
|
|
627 setVIRQ lda #1
|
|
628 sta D.MotOn
|
|
629 ldx #1
|
|
630 leay VIRQPak-tl,u
|
|
631 clr Vi.Stat,y
|
|
632 ldd #$00f0
|
|
633 os9 F$VIRQ
|
|
634 bcc ret100
|
|
635 lda #$80
|
|
636 sta D.MotOn
|
|
637 ret100 clra
|
|
638 rts
|
|
639
|
|
640 * IRQ service routine. CC3Disk comes here on NMI
|
|
641 IRQSvc pshs a
|
|
642 lda V.WAKE-tl,u
|
|
643 beq l049f
|
|
644 ldb #$0c
|
|
645 stb RW.Ctrl
|
|
646 lda #$d8
|
|
647 sta RG.Stat
|
|
648 clr d00ab-tl,u
|
|
649 bra l04a3
|
|
650
|
|
651 l049f lda D.DMAReq
|
|
652 beq l04a7
|
|
653 l04a3 bsr setVIRQ
|
|
654 bra ret110
|
|
655
|
|
656 l04a7 sta RG.Ctrl
|
|
657 clr VIRQPak+Vi.Stat-tl,u
|
|
658 clr D.MotOn
|
|
659 ret110 puls a,pc
|
|
660
|
|
661 t0set ldx PD.DTB,y
|
|
662 ldb #$14
|
|
663 t0set1 clr b,x
|
|
664 decb
|
|
665 bpl t0set1
|
|
666 ldb PD.CYL+1,y
|
|
667 lda PD.SID,y
|
|
668 mul
|
|
669 subd #1
|
|
670 lda PD.SCT+1,y
|
|
671 sta DD.TKS,x
|
|
672 sta DD.SPT+1,x
|
|
673 mul
|
|
674 addd PD.T0S,y
|
|
675 std DD.TOT+1,x
|
|
676 lda #7
|
|
677 sta DD.ATT,x
|
|
678 lda PD.DNS,y
|
|
679 asla
|
|
680 pshs a
|
|
681 lda PD.SID,y
|
|
682 deca
|
|
683 ora ,s+
|
|
684 sta DD.FMT,x
|
|
685 clrb
|
|
686 rts
|
|
687
|
|
688 emod
|
|
689
|
|
690 dlen equ *
|
|
691
|
|
692 end
|