comparison level1/modules/rbf.asm @ 0:6641a883d6b0

Initial revision
author boisy
date Thu, 04 Apr 2002 16:34:12 +0000
parents
children 668388823050
comparison
equal deleted inserted replaced
-1:000000000000 0:6641a883d6b0
1 ********************************************************************
2 * RBF - Disk file manager
3 *
4 * $Id$
5 *
6 * Ed. Comments Who YY/MM/DD
7 * ------------------------------------------------------------------
8 * 24 Tandy/Microware original version
9
10 nam RBF
11 ttl Disk file manager
12
13 * Disassembled 98/08/23 18:26:52 by Disasm v1.6 (C) 1988 by RML
14
15 ifp1
16 use defsfile
17 use rbfdefs
18 endc
19
20 tylg set FlMgr+Objct
21 atrv set ReEnt+rev
22 rev set $01
23 edition set $18
24
25 mod eom,name,tylg,atrv,start,size
26
27 u0000 rmb 0
28 size equ .
29
30 name fcs /RBF/
31 fcb edition
32 L0011 fcb $26
33
34 * All routines are entered with
35 * (Y) = Path descriptor pointer
36 * (U) = Caller's register stack pointer
37 start lbra Create
38 lbra Open
39 lbra MakDir
40 lbra ChgDir
41 lbra Delete
42 lbra Seek
43 lbra Read
44 lbra Write
45 lbra ReadLn
46 lbra WriteLn
47 lbra GetStat
48 lbra SetStat
49 lbra Close
50
51 Create pshs y
52 leas -$05,s make room on the stack
53 lda R$B,u get perms
54 anda #^DIR. mask off dir bit
55 sta R$B,u save perms back
56 lbsr L061D
57 bcs L004A
58 ldb #$DA
59 L004A cmpb #$D8
60 bne L0072
61 cmpa #PDELIM
62 beq L0072
63 pshs x
64 ldx PD.RGS,y
65 stu R$X,x
66 ldb <PD.SBP,y
67 ldx <PD.SBP+1,y
68 lda <PD.SSZ,y
69 ldu <PD.SSZ+1,y
70 pshs u,x,b,a
71 clra
72 ldb #$01
73 lbsr L0966
74 bcc L0077
75 leas $06,s
76 L0070 leas $02,s
77 L0072 leas $05,s
78 lbra L027F
79 L0077 std $0B,s
80 ldb <PD.SBP,y
81 ldx <PD.SBP+1,y
82 stb $08,s
83 stx $09,s
84 puls u,x,b,a
85 stb <PD.SBP,y
86 stx <PD.SBP+1,y
87 sta <PD.SSZ,y
88 stu <PD.SSZ+1,y
89 ldd <PD.DCP,y
90 std $0B,y
91 ldd <PD.DCP+2,y
92 std $0D,y
93 lbsr L079C
94 bcs L00A9
95 L00A0 tst ,x
96 beq L00BB
97 lbsr L0787
98 bcc L00A0
99 L00A9 cmpb #$D3
100 bne L0070
101 ldd #$0020
102 lbsr L04C0
103 bcs L0070
104 lbsr L0243
105 lbsr L079C
106 L00BB leau ,x
107 lbsr L015C
108 puls x
109 os9 F$PrsNam
110 bcs L0072
111 cmpb #$1D
112 bls L00CD
113 ldb #$1D
114 L00CD clra
115 tfr d,y
116 lbsr L04F2
117 tfr y,d
118 ldy $05,s
119 decb
120 lda b,u
121 ora #$80
122 sta b,u
123 ldb ,s
124 ldx $01,s
125 stb <$1D,u
126 stx <$1E,u
127 lbsr L0D40
128 bcs L0144
129 ldu $08,y
130 bsr L0163
131 lda #$04
132 sta $0A,y
133 ldx $06,y
134 lda $02,x
135 sta ,u
136 ldx <$004B
137 ldd $09,x
138 std $01,u
139 lbsr L0290
140 ldd $03,u
141 std $0D,u
142 ldb $05,u
143 stb $0F,u
144 ldb #$01
145 stb $08,u
146 ldd $03,s
147 subd #$0001
148 beq L012A
149 leax <$10,u
150 std $03,x
151 ldd $01,s
152 addd #$0001
153 std $01,x
154 ldb ,s
155 adcb #$00
156 stb ,x
157 L012A ldb ,s
158 ldx $01,s
159 lbsr L0D42
160 bcs L0144
161 lbsr L0837
162 stb <$34,y
163 stx <$35,y
164 lbsr L082B
165 leas $05,s
166 lbra L01C4
167 L0144 puls u,x,a
168 sta <$16,y
169 stx <$17,y
170 clr <$19,y
171 stu <$1A,y
172 pshs b
173 lbsr L0B6E
174 puls b
175 L0159 lbra L027F
176 L015C pshs u,x,b,a
177 leau <$20,u
178 bra L0169
179 L0163 pshs u,x,b,a
180 leau >$0100,u
181 L0169 clra
182 clrb
183 tfr d,x
184 L016D pshu x,b,a
185 cmpu $04,s
186 bhi L016D
187 puls pc,u,x,b,a
188
189 Open pshs y
190 lbsr L061D
191 bcs L0159
192 ldu PD.RGS,y
193 stx R$X,u
194 ldd <PD.FD+1,y
195 bne L01B3
196 lda <PD.FD,y
197 bne L01B3
198 ldb PD.MOD,y
199 andb #DIR.
200 lbne L027D
201 std <PD.SBP,y
202 sta <PD.SBP+2,y
203 std <PD.SBL,y
204 sta <PD.SBL+2,y
205 ldx <PD.DTB,y
206 lda V$STAT,x
207 std <PD.SIZ+2,y
208 sta <PD.SSZ+2,y
209 ldd V$DRIV,x
210 std PD.SIZ,y
211 std <PD.SSZ,y
212 puls pc,y
213
214 L01B3 lda PD.MOD,y
215 lbsr L07F1
216 bcs L0159
217 bita #$02
218 beq L01C4
219 lbsr L0290
220 lbsr L0D38
221 L01C4 puls y
222 L01C6 clra
223 clrb
224 std $0B,y
225 std $0D,y
226 std <$13,y
227 sta <$15,y
228 sta <$19,y
229 lda ,u
230 sta <$33,y
231 ldd <$10,u
232 std <$16,y
233 lda <$12,u
234 sta <$18,y
235 ldd <$13,u
236 std <$1A,y
237 ldd $09,u
238 ldx $0B,u
239 std $0F,y
240 stx <$11,y
241 clr $0A,y
242 rts
243
244 MakDir lbsr Create
245 bcs L0241
246 ldd #$0040
247 std <$11,y
248 bsr L0253
249 bcs L0241
250 lbsr L0854
251 bcs L0241
252 lbsr L0CD4
253 ldu $08,y
254 lda ,u
255 ora #$80
256 sta ,u
257 bsr L0246
258 bcs L0241
259 lbsr L0163
260 ldd #$2EAE
261 std ,u
262 stb <$20,u
263 lda <$37,y
264 sta <$1D,u
265 ldd <$38,y
266 std <$1E,u
267 lda <$34,y
268 sta <$3D,u
269 ldd <$35,y
270 std <$3E,u
271 lbsr L0D40
272 L0241 bra L0282
273 L0243 lbsr L0CD4
274 L0246 ldx $08,y
275 ldd $0F,y
276 std $09,x
277 ldd <$11,y
278 std $0B,x
279 clr $0A,y
280 L0253 lbra L0D38
281
282 Close clra
283 tst $02,y
284 bne L027C
285 lbsr L0D72
286 bcs L0282
287 ldb $01,y
288 bitb #$02
289 beq L0282
290 ldd <$34,y
291 bne L0270
292 lda <$36,y
293 beq L0282
294 L0270 bsr L0243
295 lbsr L0529
296 bcc L0282
297 lbsr L0AAF
298 bra L0282
299 L027C rts
300 L027D ldb #$D6
301 L027F coma
302 L0280 puls y
303 L0282 pshs b,cc
304 ldu $08,y
305 beq L028E
306 ldd #$0100
307 os9 F$SRtMem
308 L028E puls pc,b,cc
309 L0290 lbsr L0CD4
310 ldu $08,y
311 lda $08,u
312 pshs a
313 leax $03,u
314 os9 F$Time
315 puls a
316 sta $08,u
317 rts
318
319 ChgDir pshs y
320 lda $01,y
321 ora #$80
322 sta $01,y
323 lbsr Open
324 bcs L0280
325 ldx <$004B
326 ldu <$35,y
327 ldb $01,y
328 bitb #$03
329 beq L02C4
330 ldb <$34,y
331 stb <$1D,x
332 stu <$1E,x
333 L02C4 ldb $01,y
334 bitb #$04
335 beq L02D3
336 ldb <$34,y
337 stb <$23,x
338 stu <$24,x
339 L02D3 clrb
340 bra L0280
341
342 Delete pshs y
343 lbsr L061D
344 bcs L0280
345 ldd <$35,y
346 bne L02E9
347 tst <$34,y
348 lbeq L027D
349 L02E9 lda #$42
350 lbsr L07F1
351 bcs L035F
352 ldu $06,y
353 stx $04,u
354 lbsr L0CD4
355 bcs L035F
356 ldx $08,y
357 dec $08,x
358 beq L0304
359 lbsr L0D38
360 bra L032A
361 L0304 clra
362 clrb
363 std $0F,y
364 std <$11,y
365 lbsr L0AAF
366 bcs L035F
367 ldb <$34,y
368 ldx <$35,y
369 stb <$16,y
370 stx <$17,y
371 ldx $08,y
372 ldd <$13,x
373 addd #$0001
374 std <$1A,y
375 lbsr L0B6E
376 L032A bcs L035F
377 lbsr L0D72
378 lbsr L0837
379 lda <$37,y
380 sta <$34,y
381 ldd <$38,y
382 std <$35,y
383 lbsr L0CD4
384 bcs L035F
385 lbsr L082B
386 ldu $08,y
387 lbsr L01C6
388 ldd <$3A,y
389 std $0B,y
390 ldd <$3C,y
391 std $0D,y
392 lbsr L079C
393 bcs L035F
394 clr ,x
395 lbsr L0D40
396 L035F lbra L0280
397
398 Seek ldb $0A,y
399 bitb #$02
400 beq L037B
401 lda $05,u
402 ldb $08,u
403 subd $0C,y
404 bne L0376
405 lda $04,u
406 sbca $0B,y
407 beq L037F
408 L0376 lbsr L0D72
409 bcs L0383
410 L037B ldd $04,u
411 std $0B,y
412 L037F ldd $08,u
413 std $0D,y
414 L0383 rts
415
416 ReadLn bsr L03C4
417 beq L03AA
418 bsr L03AB
419 pshs u,y,x,b,a
420 exg x,u
421 ldy #$0000
422 lda #$0D
423 L0394 leay $01,y
424 cmpa ,x+
425 beq L039D
426 decb
427 bne L0394
428 L039D ldx $06,s
429 bsr L03F4
430 sty $0A,s
431 puls u,y,x,b,a
432 ldd $02,s
433 leax d,x
434 L03AA rts
435 L03AB lbsr L0414
436 lda ,-x
437 cmpa #$0D
438 beq L03BA
439 ldd $02,s
440 lbne L041A
441 L03BA ldu $06,y
442 ldd $06,u
443 subd $02,s
444 std $06,u
445 bra L040E
446 L03C4 ldd $06,u
447 bsr L03CD
448 bcs L03F1
449 std $06,u
450 rts
451 L03CD pshs b,a
452 ldd <$11,y
453 subd $0D,y
454 tfr d,x
455 ldd $0F,y
456 sbcb $0C,y
457 sbca $0B,y
458 bcs L03EE
459 bne L03EB
460 tstb
461 bne L03EB
462 cmpx ,s
463 bcc L03EB
464 stx ,s
465 beq L03EE
466 L03EB clrb
467 puls pc,b,a
468 L03EE comb
469 ldb #E$EOF
470 L03F1 leas $02,s
471 rts
472 L03F4 lbra L04F2
473
474 Read bsr L03C4
475 beq L0409
476 bsr L040A
477 L03FD pshs u,y,x,b,a
478 exg x,u
479 tfr d,y
480 bsr L03F4
481 puls u,y,x,b,a
482 leax d,x
483 L0409 rts
484 L040A bsr L0414
485 bne L041A
486 L040E clrb
487 L040F leas -$02,s
488 L0411 leas $0A,s
489 rts
490 L0414 ldd $04,u
491 ldx $06,u
492 pshs x,b,a
493 L041A lda $0A,y
494 bita #$02
495 bne L043A
496 tst $0E,y
497 bne L0435
498 tst $02,s
499 beq L0435
500 leax >L04A4,pcr
501 cmpx $06,s
502 bne L0435
503 lbsr L0C49
504 bra L0438
505 L0435 lbsr L0D91
506 L0438 bcs L040F
507 L043A ldu $08,y
508 clra
509 ldb $0E,y
510 leau d,u
511 negb
512 sbca #$FF
513 ldx ,s
514 cmpd $02,s
515 bls L044D
516 ldd $02,s
517 L044D pshs b,a
518 jsr [<$08,s]
519 stx $02,s
520 lda $0A,y
521 anda #$BF
522 sta $0A,y
523 ldb $01,s
524 addb $0E,y
525 stb $0E,y
526 bne L0471
527 lbsr L0D72
528 inc $0D,y
529 bne L046F
530 inc $0C,y
531 bne L046F
532 inc $0B,y
533 L046F bcs L0411
534 L0471 ldd $04,s
535 subd ,s++
536 std $02,s
537 jmp [<$04,s]
538
539 WriteLn pshs y
540 clrb
541 ldy $06,u
542 beq L0498
543 ldx $04,u
544 L0484 leay -$01,y
545 beq L0498
546 lda ,x+
547 cmpa #$0D
548 bne L0484
549 tfr y,d
550 nega
551 negb
552 sbca #$00
553 addd $06,u
554 std $06,u
555 L0498 puls y
556
557 Write ldd $06,u
558 beq L04BE
559 bsr L04C0
560 bcs L04BF
561 bsr L04B5
562 L04A4 pshs y,b,a
563 tfr d,y
564 bsr L04F2
565 puls y,b,a
566 leax d,x
567 lda $0A,y
568 ora #$03
569 sta $0A,y
570 rts
571 L04B5 lbsr L0414
572 lbne L041A
573 leas $08,s
574 L04BE clrb
575 L04BF rts
576 L04C0 addd $0D,y
577 tfr d,x
578 ldd $0B,y
579 adcb #$00
580 adca #$00
581 L04CA cmpd $0F,y
582 bcs L04BE
583 bhi L04D6
584 cmpx <$11,y
585 bls L04BE
586 L04D6 pshs u
587 ldu <$11,y
588 stx <$11,y
589 ldx $0F,y
590 std $0F,y
591 pshs u,x
592 lbsr L0854
593 puls u,x
594 bcc L04F0
595 stx $0F,y
596 stu <$11,y
597 L04F0 puls pc,u
598 L04F2 pshs u,y,x
599 ldd $02,s
600 beq L051B
601 leay d,u
602 lsrb
603 bcc L0501
604 lda ,x+
605 sta ,u+
606 L0501 lsrb
607 bcc L0508
608 ldd ,x++
609 std ,u++
610 L0508 pshs y
611 exg x,u
612 bra L0515
613 L050E pulu y,b,a
614 std ,x++
615 sty ,x++
616 L0515 cmpx ,s
617 bcs L050E
618 leas $02,s
619 L051B puls pc,u,y,x
620
621 GetSTat ldb $02,u
622 cmpb #$00
623 beq L0543
624 cmpb #$06
625 bne L052F
626 clr $02,u
627 L0529 clra
628 ldb #$01
629 lbra L03CD
630 L052F cmpb #$01
631 bne L0536
632 clr $02,u
633 rts
634 L0536 cmpb #$02
635 bne L0544
636 ldd $0F,y
637 std $04,u
638 ldd <$11,y
639 std $08,u
640 L0543 rts
641 L0544 cmpb #$05
642 bne L0551
643 ldd $0B,y
644 std $04,u
645 ldd $0D,y
646 std $08,u
647 rts
648 L0551 cmpb #$0F
649 bne L056B
650 lbsr L0CD4
651 bcs L0543
652 ldu $06,y
653 ldd $06,u
654 tsta
655 beq L0564
656 ldd #$0100
657 L0564 ldx $04,u
658 ldu $08,y
659 lbra L03FD
660 L056B lda #$09
661 lbra L0CED
662
663 SetStat ldb R$B,u
664 cmpb #SS.OPT
665 bne L0584
666 ldx R$X,u
667 leax $02,x
668 leau <PD.STP,y
669 ldy #$000D
670 lbra L04F2
671 L0584 cmpb #SS.Size
672 bne L05C6
673 ldd <PD.FD+1,y
674 bne L0594
675 tst <PD.FD,y
676 lbeq L0619
677 L0594 lda PD.MOD,y
678 bita #WRITE.
679 beq L05C2
680 ldd R$X,u
681 ldx R$U,u
682 cmpd $0F,y
683 bcs L05AD
684 bne L05AA
685 cmpx <PD.SIZ+2,y
686 bcs L05AD
687 L05AA lbra L04CA
688 L05AD std PD.SIZ,y
689 stx <PD.SIZ+2,y
690 ldd PD.CP,y
691 ldx PD.CP+2,y
692 pshs x,b,a
693 lbsr L0AAF
694 puls u,x
695 stx PD.CP,y
696 stu PD.CP+2,y
697 rts
698 L05C2 comb
699 ldb #E$BMode
700 rts
701 L05C6 cmpb #$0F
702 bne L0604
703 lda $01,y
704 bita #$02
705 beq L05C2
706 lbsr L0CD4
707 bcs L061C
708 pshs y
709 ldx $04,u
710 ldu $08,y
711 ldy <$004B
712 ldd $09,y
713 bne L05E7
714 ldd #$0102
715 bsr L05F6
716 L05E7 ldd #$0305
717 bsr L05F6
718 ldd #$0D03
719 bsr L05F6
720 puls y
721 lbra L0D38
722 L05F6 pshs u,x
723 leax a,x
724 leau a,u
725 clra
726 tfr d,y
727 lbsr L04F2
728 puls pc,u,x
729 L0604 cmpb #$1E
730 bne L0614
731 ldx <$1E,y
732 lda $05,u
733 sta <$1E,x
734 clr <$1D,x
735 rts
736 L0614 lda #$0C
737 lbra L0CED
738 L0619 comb
739 ldb #E$UnkSvc
740 L061C rts
741
742 L061D ldd #256
743 stb PD.BUF+2,y
744 os9 F$SRqMem
745 bcs L061C
746 stu PD.BUF,y
747 ldx PD.RGS,y
748 ldx R$X,x
749 pshs u,y,x
750 leas -$04,s
751 clra
752 clrb
753 sta <PD.FD,y
754 std <PD.FD+1,y
755 std <PD.DSK,y
756 lda ,x
757 sta ,s
758 cmpa #PDELIM
759 bne L0654
760 lbsr L07BC
761 sta ,s
762 lbcs L0752
763 leax ,y
764 ldy $06,s
765 bra L0677
766 L0654 anda #$7F strip hi bit
767 cmpa #PENTIR raw?
768 beq L0677 branch if so
769 lda #PDELIM
770 sta ,s
771 leax -$01,x
772 lda $01,y
773 ldu <$004B
774 leau <$1A,u
775 bita #$24
776 beq L066D
777 leau $06,u
778 L066D ldb $03,u
779 stb <PD.FD,y
780 ldd $04,u
781 std <PD.FD+1,y
782 L0677 ldu $03,y
783 stu <PD.DVT,y
784 lda <PD.DRV,y
785 ldb >L0011,pcr
786 mul
787 addd $02,u
788 addd #$000F
789 std <PD.DTB,y
790 lda ,s
791 anda #$7F
792 cmpa #PENTIR
793 bne L0698
794 leax $01,x
795 bra L06BA
796 L0698 lbsr L0CC1
797 lbcs L075A
798 ldu PD.BUF,y
799 ldd $0E,u
800 std <PD.DSK,y
801 ldd <PD.FD+1,y
802 bne L06BA
803 lda <PD.FD,y
804 bne L06BA
805 lda $08,u
806 sta <PD.FD,y
807 ldd $09,u
808 std <PD.FD+1,y
809 L06BA stx $04,s
810 stx $08,s
811 L06BE lbsr L0D72
812 lbcs L075A
813 lda ,s
814 anda #$7F
815 cmpa #PENTIR
816 beq L06D4
817 lbsr L0CD4
818 lbcs L075A
819 L06D4 lbsr L082B
820 lda ,s
821 cmpa #PDELIM
822 bne L0734
823 clr $02,s
824 clr $03,s
825 lda $01,y
826 ora #$80
827 lbsr L07F1
828 bcs L0752
829 lbsr L01C6
830 ldx $08,s
831 leax $01,x
832 lbsr L07BC
833 std ,s
834 stx $04,s
835 sty $08,s
836 ldy $06,s
837 bcs L0752
838 lbsr L079C
839 bra L070A
840 L0705 bsr L075D
841 L0707 lbsr L0787
842 L070A bcs L0752
843 tst ,x
844 beq L0705
845 clra
846 ldb $01,s
847 leay ,x
848 ldx $04,s
849 os9 F$CmpNam
850 ldx $06,s
851 exg x,y
852 bcs L0707
853 bsr L076B
854 lda <$1D,x
855 sta <PD.FD,y
856 ldd <$1E,x
857 std <PD.FD+1,y
858 lbsr L0837
859 lbra L06BE
860 L0734 ldx $08,s
861 tsta
862 bmi L0741
863 os9 F$PrsNam
864 leax ,y
865 ldy $06,s
866 L0741 stx $04,s
867 clra
868 L0744 lda ,s
869 leas $04,s
870 pshs b,a,cc
871 lda $0A,y
872 anda #$BF
873 sta $0A,y
874 puls pc,u,y,x,b,a,cc
875 L0752 cmpb #$D3
876 bne L075A
877 bsr L075D
878 ldb #$D8
879 L075A coma
880 bra L0744
881 L075D pshs b,a
882 lda $04,s
883 cmpa #$2F
884 beq L0785
885 ldd $06,s
886 bne L0785
887 puls b,a
888 L076B pshs b,a
889 stx $06,s
890 lda <PD.FD,y
891 sta <PD.DFD,y
892 ldd <PD.FD+1,y
893 std <PD.DFD+1,y
894 ldd $0B,y
895 std <PD.DCP,y
896 ldd $0D,y
897 std <PD.DCP+2,y
898 L0785 puls pc,b,a
899
900 L0787 ldb $0E,y
901 addb #$20
902 stb $0E,y
903 bcc L079C
904 lbsr L0D72
905 inc $0D,y
906 bne L079C
907 inc $0C,y
908 bne L079C
909 inc $0B,y
910 L079C ldd #$0020
911 lbsr L03CD
912 bcs L07BB
913 lda $0A,y
914 bita #$02
915 bne L07B4
916 lbsr L0C49
917 bcs L07BB
918 lbsr L0D91
919 bcs L07BB
920 L07B4 ldb $0E,y
921 lda $08,y
922 tfr d,x
923 clrb
924 L07BB rts
925
926 L07BC os9 F$PrsNam
927 pshs x
928 bcc L07E9
929 clrb
930 L07C4 pshs a
931 anda #$7F
932 cmpa #PDIR
933 puls a
934 bne L07DF
935 incb
936 leax $01,x
937 tsta
938 bmi L07DF
939 lda ,x
940 cmpb #$03
941 bcs L07C4
942 lda #PDELIM
943 decb
944 leax -$03,x
945 L07DF tstb
946 bne L07E7
947 L07E2 comb
948 ldb #E$BPNam
949 puls pc,x
950 L07E7 leay ,x
951 L07E9 cmpb #$20
952 bhi L07E2
953 andcc #^Carry
954 puls pc,x
955
956 * A = PD.MOD (mode byte)
957 L07F1 tfr a,b
958 anda #$07
959 andb #$C0
960 pshs x,b,a
961 lbsr L0CD4
962 bcs L0820
963 ldu $08,y
964 ldx <$004B
965 ldd $09,x
966 beq L0809
967 cmpd $01,u
968 L0809 puls a
969 beq L0810
970 lsla
971 lsla
972 lsla
973 L0810 ora ,s
974 anda #$BF
975 pshs a
976 ora #$80
977 anda ,u
978 cmpa ,s
979 beq L0829
980 ldb #$D6
981 L0820 leas $02,s
982 coma
983 puls pc,x
984 ldb #$FD
985 bra L0820
986 L0829 puls pc,x,b,a
987 L082B clra
988 clrb
989 std $0B,y
990 std $0D,y
991 sta <$19,y
992 std <$1A,y
993 L0837 rts
994 L0838 pshs y,x,b,a
995 ldx <D.Proc
996 lda <P$IOQN,x
997 beq L0851
998 clr <P$IOQN,x
999 ldb #S$Wake
1000 os9 F$Send
1001 ldx <D.PrcDBT
1002 os9 F$Find64
1003 clr <P$IOQP,y
1004 L0851 clrb
1005 puls pc,y,x,b,a
1006 L0854 pshs u,x
1007 L0856 bsr L08B2
1008 bne L0866
1009 cmpx <$1A,y
1010 bcs L08AD
1011 bne L0866
1012 lda <$12,y
1013 beq L08AD
1014 L0866 lbsr L0CD4
1015 bcs L08AA
1016 ldx $0B,y
1017 ldu $0D,y
1018 pshs u,x
1019 ldd $0F,y
1020 std $0B,y
1021 ldd <$11,y
1022 std $0D,y
1023 lbsr L0C63
1024 puls u,x
1025 stx $0B,y
1026 stu $0D,y
1027 bcc L08AD
1028 cmpb #$D5
1029 bne L08AA
1030 bsr L08B2
1031 bne L0896
1032 tst <$12,y
1033 beq L0899
1034 leax $01,x
1035 bne L0899
1036 L0896 ldx #$FFFF
1037 L0899 tfr x,d
1038 tsta
1039 bne L08A6
1040 cmpb <$2E,y
1041 bcc L08A6
1042 ldb <$2E,y
1043 L08A6 bsr L08C0
1044 bcc L0856
1045 L08AA coma
1046 puls pc,u,x
1047 L08AD lbsr L0C49
1048 puls pc,u,x
1049 L08B2 ldd <$10,y
1050 subd <$14,y
1051 tfr d,x
1052 ldb $0F,y
1053 sbcb <$13,y
1054 rts
1055 L08C0 pshs u,x
1056 lbsr L0966
1057 bcs L08FF
1058 lbsr L0CD4
1059 bcs L08FF
1060 ldu $08,y
1061 clra
1062 clrb
1063 std $09,u
1064 std $0B,u
1065 leax <$10,u
1066 ldd $03,x
1067 beq L0947
1068 ldd $08,y
1069 inca
1070 pshs b,a
1071 bra L08EF
1072 L08E2 clrb
1073 ldd -$02,x
1074 beq L08FB
1075 addd $0A,u
1076 std $0A,u
1077 bcc L08EF
1078 inc $09,u
1079 L08EF leax $05,x
1080 cmpx ,s
1081 bcs L08E2
1082 lbsr L0B6E
1083 comb
1084 ldb #E$SLF
1085 L08FB leas $02,s
1086 leax -$05,x
1087 L08FF bcs L0964
1088 ldd -$04,x
1089 addd -$02,x
1090 pshs b,a
1091 ldb -$05,x
1092 adcb #$00
1093 cmpb <$16,y
1094 puls b,a
1095 bne L0947
1096 cmpd <$17,y
1097 bne L0947
1098 ldu <$1E,y
1099 ldd $06,u
1100 ldu $08,y
1101 subd #$0001
1102 coma
1103 comb
1104 pshs b,a
1105 ldd -$05,x
1106 eora <$16,y
1107 eorb <$17,y
1108 lsra
1109 rorb
1110 lsra
1111 rorb
1112 lsra
1113 rorb
1114 anda ,s+
1115 andb ,s+
1116 std -$02,s
1117 bne L0947
1118 ldd -$02,x
1119 addd <$1A,y
1120 bcs L0947
1121 std -$02,x
1122 bra L0956
1123 L0947 ldd <$16,y
1124 std ,x
1125 lda <$18,y
1126 sta $02,x
1127 ldd <$1A,y
1128 std $03,x
1129 L0956 ldd $0A,u
1130 addd <$1A,y
1131 std $0A,u
1132 bcc L0961
1133 inc $09,u
1134 L0961 lbsr L0D38
1135 L0964 puls pc,u,x
1136 L0966 pshs u,y,x,b,a
1137 ldb #$0C
1138 L096A clr ,-s
1139 decb
1140 bne L096A
1141 ldx <$1E,y
1142 ldd $04,x
1143 std $04,s
1144 ldd $06,x
1145 std $02,s
1146 std $0A,s
1147 ldx $03,y
1148 ldx $04,x
1149 leax <$12,x
1150 subd #$0001
1151 addb $0E,x
1152 adca #$00
1153 bra L098E
1154 L098C lsra
1155 rorb
1156 L098E lsr $0A,s
1157 ror $0B,s
1158 bcc L098C
1159 std ,s
1160 ldd $02,s
1161 std $0A,s
1162 subd #$0001
1163 addd $0C,s
1164 bcc L09A8
1165 ldd #$FFFF
1166 bra L09A8
1167 L09A6 lsra
1168 rorb
1169 L09A8 lsr $0A,s
1170 ror $0B,s
1171 bcc L09A6
1172 cmpa #$08
1173 bcs L09B5
1174 ldd #$0800
1175 L09B5 std $0C,s
1176 lbsr L0BD8
1177 lbcs L0AA3
1178 ldx <$1E,y
1179 ldd <$1A,x
1180 cmpd $0E,x
1181 bne L09D7
1182 lda <$1C,x
1183 cmpa $04,x
1184 bne L09D7
1185 ldb <$1D,x
1186 cmpb $04,x
1187 bcs L09E5
1188 L09D7 ldd $0E,x
1189 std <$1A,x
1190 lda $04,x
1191 sta <$1C,x
1192 clrb
1193 stb <$1D,x
1194 L09E5 incb
1195 stb $06,s
1196 ldx <$1E,y
1197 cmpb <$1E,x
1198 beq L0A21
1199 lbsr L0C33
1200 lbcs L0AA3
1201 ldb $06,s
1202 cmpb $04,s
1203 bls L0A02
1204 clra
1205 ldb $05,s
1206 bra L0A05
1207 L0A02 ldd #$0100
1208 L0A05 ldx $08,y
1209 leau d,x
1210 ldy $0C,s
1211 clra
1212 clrb
1213 os9 F$SchBit
1214 bcc L0A4E
1215 cmpy $08,s
1216 bls L0A21
1217 sty $08,s
1218 std $0A,s
1219 lda $06,s
1220 sta $07,s
1221 L0A21 ldy <$10,s
1222 ldb $06,s
1223 cmpb $04,s
1224 bcs L0A32
1225 bhi L0A31
1226 tst $05,s
1227 bne L0A32
1228 L0A31 clrb
1229 L0A32 ldx <$1E,y
1230 cmpb <$1D,x
1231 bne L09E5
1232 ldb $07,s
1233 beq L0AA1
1234 cmpb $06,s
1235 beq L0A47
1236 stb $06,s
1237 lbsr L0C33
1238 L0A47 ldx $08,y
1239 ldd $0A,s
1240 ldy $08,s
1241 L0A4E std $0A,s
1242 sty $08,s
1243 os9 F$AllBit
1244 ldy <$10,s
1245 ldb $06,s
1246 lbsr L0C0B
1247 bcs L0AA3
1248 ldx <$1E,y
1249 lda $06,s
1250 deca
1251 sta <$1D,x
1252 clrb
1253 lsla
1254 rolb
1255 lsla
1256 rolb
1257 lsla
1258 rolb
1259 stb <$16,y
1260 ora $0A,s
1261 ldb $0B,s
1262 ldx $08,s
1263 ldy <$10,s
1264 std <$17,y
1265 stx <$1A,y
1266 ldd $02,s
1267 bra L0A97
1268 L0A88 lsl <$18,y
1269 rol <$17,y
1270 rol <$16,y
1271 lsl <$1B,y
1272 rol <$1A,y
1273 L0A97 lsra
1274 rorb
1275 bcc L0A88
1276 clrb
1277 ldd <$1A,y
1278 bra L0AAB
1279 L0AA1 ldb #$F8
1280 L0AA3 ldy <$10,s
1281 lbsr L0C12
1282 coma
1283 L0AAB leas $0E,s
1284 puls pc,u,y,x
1285 L0AAF clra
1286 lda $01,y
1287 bita #$80
1288 bne L0B11
1289 ldd $0F,y
1290 std $0B,y
1291 ldd <$11,y
1292 std $0D,y
1293 lbsr L0C63
1294 bcc L0AC8
1295 cmpb #$D5
1296 bra L0B09
1297 L0AC8 ldd <$14,y
1298 subd $0C,y
1299 addd <$1A,y
1300 tst $0E,y
1301 beq L0AD7
1302 subd #$0001
1303 L0AD7 pshs b,a
1304 ldu <$1E,y
1305 ldd $06,u
1306 subd #$0001
1307 coma
1308 comb
1309 anda ,s+
1310 andb ,s+
1311 ldu <$1A,y
1312 std <$1A,y
1313 beq L0B0B
1314 tfr u,d
1315 subd <$1A,y
1316 pshs x,b,a
1317 addd <$17,y
1318 std <$17,y
1319 bcc L0B01
1320 inc <$16,y
1321 L0B01 bsr L0B6E
1322 bcc L0B12
1323 leas $04,s
1324 cmpb #$DB
1325 L0B09 bne L0B10
1326 L0B0B lbsr L0CD4
1327 bcc L0B1B
1328 L0B10 coma
1329 L0B11 rts
1330 L0B12 lbsr L0CD4
1331 bcs L0B6B
1332 puls x,b,a
1333 std $03,x
1334 L0B1B ldu $08,y
1335 ldd <$11,y
1336 std $0B,u
1337 ldd $0F,y
1338 std $09,u
1339 tfr x,d
1340 clrb
1341 inca
1342 leax $05,x
1343 pshs x,b,a
1344 bra L0B56
1345 L0B30 ldd -$02,x
1346 beq L0B63
1347 std <$1A,y
1348 ldd -$05,x
1349 std <$16,y
1350 lda -$03,x
1351 sta <$18,y
1352 bsr L0B6E
1353 bcs L0B6B
1354 stx $02,s
1355 lbsr L0CD4
1356 bcs L0B6B
1357 ldx $02,s
1358 clra
1359 clrb
1360 std -$05,x
1361 sta -$03,x
1362 std -$02,x
1363 L0B56 lbsr L0D38
1364 bcs L0B6B
1365 ldx $02,s
1366 leax $05,x
1367 cmpx ,s
1368 bcs L0B30
1369 L0B63 clra
1370 clrb
1371 sta <$19,y
1372 std <$1A,y
1373 L0B6B leas $04,s
1374 rts
1375 L0B6E pshs u,y,x,a
1376 ldx <$1E,y
1377 ldd $06,x
1378 subd #$0001
1379 addd <$17,y
1380 std <$17,y
1381 ldd $06,x
1382 bcc L0B96
1383 inc <$16,y
1384 bra L0B96
1385 L0B87 lsr <$16,y
1386 ror <$17,y
1387 ror <$18,y
1388 lsr <$1A,y
1389 ror <$1B,y
1390 L0B96 lsra
1391 rorb
1392 bcc L0B87
1393 clrb
1394 ldd <$1A,y
1395 beq L0BD6
1396 ldd <$16,y
1397 lsra
1398 rorb
1399 lsra
1400 rorb
1401 lsra
1402 rorb
1403 tfr b,a
1404 ldb #$DB
1405 cmpa $04,x
1406 bhi L0BD5
1407 inca
1408 sta ,s
1409 L0BB4 bsr L0BD8
1410 bcs L0BB4
1411 ldb ,s
1412 bsr L0C33
1413 bcs L0BD5
1414 ldx $08,y
1415 ldd <$17,y
1416 anda #$07
1417 ldy <$1A,y
1418 os9 F$DelBit
1419 ldy $03,s
1420 ldb ,s
1421 bsr L0C0B
1422 bcc L0BD6
1423 L0BD5 coma
1424 L0BD6 puls pc,u,y,x,a
1425 L0BD8 lbsr L0D72
1426 bra L0BE5
1427 L0BDD lbsr L0838
1428 os9 F$IOQu
1429 bsr L0BF5
1430 L0BE5 bcs L0BF4
1431 ldx <$1E,y
1432 lda <$17,x
1433 bne L0BDD
1434 lda $05,y
1435 sta <$17,x
1436 L0BF4 rts
1437 L0BF5 ldu <$004B
1438 ldb <$36,u
1439 cmpb #$01
1440 bls L0C02
1441 cmpb #$03
1442 bls L0C09
1443 L0C02 clra
1444 lda $0D,u
1445 bita #$02
1446 beq L0C0A
1447 L0C09 coma
1448 L0C0A rts
1449 L0C0B clra
1450 tfr d,x
1451 clrb
1452 lbsr L0D42
1453 L0C12 pshs cc
1454 ldx <$1E,y
1455 lda $05,y
1456 cmpa <$17,x
1457 bne L0C31
1458 clr <$17,x
1459 ldx <$004B
1460 lda <$11,x
1461 beq L0C31
1462 lbsr L0838
1463 ldx #$0001
1464 os9 F$Sleep
1465 L0C31 puls pc,cc
1466 L0C33 clra
1467 tfr d,x
1468 clrb
1469 lbra L0CEB
1470 pshs u,x
1471 lbsr L0D40
1472 bcs L0C47
1473 lda $0A,y
1474 anda #$FE
1475 sta $0A,y
1476 L0C47 puls pc,u,x
1477 L0C49 ldd $0C,y
1478 subd <$14,y
1479 tfr d,x
1480 ldb $0B,y
1481 sbcb <$13,y
1482 cmpb <$19,y
1483 bcs L0C61
1484 bhi L0C63
1485 cmpx <$1A,y
1486 bcc L0C63
1487 L0C61 clrb
1488 L0C62 rts
1489 L0C63 pshs u
1490 bsr L0CD4
1491 bcs L0CBF
1492 clra
1493 clrb
1494 std <$13,y
1495 stb <$15,y
1496 ldu $08,y
1497 leax <$10,u
1498 lda $08,y
1499 ldb #$FC
1500 pshs b,a
1501 L0C7C ldd $03,x
1502 beq L0CA1
1503 addd <$14,y
1504 tfr d,u
1505 ldb <$13,y
1506 adcb #$00
1507 cmpb $0B,y
1508 bhi L0CAE
1509 bne L0C95
1510 cmpu $0C,y
1511 bhi L0CAE
1512 L0C95 stb <$13,y
1513 stu <$14,y
1514 leax $05,x
1515 cmpx ,s
1516 bcs L0C7C
1517 L0CA1 clra
1518 clrb
1519 sta <$19,y
1520 std <$1A,y
1521 comb
1522 ldb #E$NES
1523 bra L0CBD
1524 L0CAE ldd ,x
1525 std <$16,y
1526 lda $02,x
1527 sta <$18,y
1528 ldd $03,x
1529 std <$1A,y
1530 L0CBD leas $02,s
1531 L0CBF puls pc,u
1532 L0CC1 pshs x,b
1533 lbsr L0D72
1534 bcs L0CD0
1535 clrb
1536 ldx #$0000
1537 bsr L0CEB
1538 bcc L0CD2
1539 L0CD0 stb ,s
1540 L0CD2 puls pc,x,b
1541 L0CD4 ldb $0A,y
1542 bitb #$04
1543 bne L0C61
1544 lbsr L0D72
1545 bcs L0C62
1546 ldb $0A,y
1547 orb #$04
1548 stb $0A,y
1549 ldb <$34,y
1550 ldx <$35,y
1551 L0CEB lda #$03
1552 L0CED pshs u,y,x,b,a
1553 lda $0A,y
1554 ora #$20
1555 sta $0A,y
1556 ldu $03,y
1557 ldu $02,u
1558 bra L0D01
1559 L0CFB lbsr L0838
1560 os9 F$IOQu
1561 L0D01 lda $04,u
1562 bne L0CFB
1563 lda $05,y
1564 sta $04,u
1565 ldd ,s
1566 ldx $02,s
1567 pshs u
1568 bsr L0D26
1569 puls u
1570 ldy $04,s
1571 pshs cc
1572 bcc L0D1C
1573 stb $02,s
1574 L0D1C lda $0A,y
1575 anda #$DF
1576 sta $0A,y
1577 clr $04,u
1578 puls pc,u,y,x,b,a,cc
1579 L0D26 pshs pc,x,b,a
1580 ldx $03,y
1581 ldd ,x
1582 ldx ,x
1583 addd $09,x
1584 addb ,s
1585 adca #$00
1586 std $04,s
1587 puls pc,x,b,a
1588 L0D38 ldb <$34,y
1589 ldx <$35,y
1590 bra L0D42
1591 L0D40 bsr L0D5B
1592 L0D42 lda #$06
1593 pshs x,b,a
1594 ldd <$1C,y
1595 beq L0D51
1596 ldx <$1E,y
1597 cmpd $0E,x
1598 L0D51 puls x,b,a
1599 lbeq L0CED
1600 comb
1601 ldb #E$DIDC
1602 rts
1603 L0D5B ldd $0C,y
1604 subd <$14,y
1605 tfr d,x
1606 ldb $0B,y
1607 sbcb <$13,y
1608 exg d,x
1609 addd <$17,y
1610 exg d,x
1611 adcb <$16,y
1612 rts
1613 L0D72 clrb
1614 pshs u,x
1615 ldb $0A,y
1616 andb #$46
1617 beq L0D8F
1618 tfr b,a
1619 eorb $0A,y
1620 stb $0A,y
1621 andb #$01
1622 beq L0D8F
1623 eorb $0A,y
1624 stb $0A,y
1625 bita #$02
1626 beq L0D8F
1627 bsr L0D40
1628 L0D8F puls pc,u,x
1629 L0D91 pshs u,x
1630 lbsr L0C49
1631 bcs L0DAA
1632 bsr L0D72
1633 bcs L0DAA
1634 lbsr L0D5B
1635 lbsr L0CEB
1636 bcs L0DAA
1637 lda $0A,y
1638 ora #$42
1639 sta $0A,y
1640 L0DAA puls pc,u,x
1641
1642 emod
1643 eom equ *
1644 end
1645