Mercurial > hg > Members > kono > os9 > sbc09
diff CoCoOS9/level2v3/MODULES/rbf.asm @ 31:bd2b07db8917 cocoos9lv2v3
CoCoOS9 version
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Jul 2018 15:16:13 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CoCoOS9/level2v3/MODULES/rbf.asm Sat Jul 14 15:16:13 2018 +0900 @@ -0,0 +1,2195 @@ +******************************************************************** +* RBF - Random Block file manager +* +* $Id: rbf.asm,v 1.1.1.1 2001/02/21 23:30:55 boisy Exp $ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 30 Given to me by Gene Heskett BGP 98/10/10 + + nam RBF + ttl Random Block file manager + +* Disassembled 98/08/24 22:41:27 by Disasm v1.6 (C) 1988 by RML + + ifp1 + use defsfile + endc + +tylg set FlMgr+Objct +atrv set ReEnt+rev +rev set $02 +edition set 30 + + mod eom,name,tylg,atrv,start,size +u0000 rmb 0 +size equ . + +name fcs /RBF/ + fcb 30 +L0011 fcb $26 + +start equ * + lbra L0039 + lbra L018D + lbra L0220 + lbra L02EC + lbra L031F + lbra L0407 + lbra L04B2 + lbra L0569 + lbra L0429 + lbra L0542 + lbra L05E2 + lbra L064E + lbra L0288 +L0039 pshs y + leas -$05,s + lda $02,u + anda #$7F + sta $02,u + lbsr L07B5 + bcs L004A + ldb #$DA +L004A cmpb #$D8 + bne L0082 + cmpa #$2F + beq L0082 + pshs x + ldx $06,y + stu $04,x + ldb <$16,y + ldx <$17,y + lda <$19,y + ldu <$1A,y + pshs u,x,b,a + ldx $06,y + lda $01,x + clrb + anda #$20 + beq L0071 + ldd $06,x +L0071 addd #$0001 + bcc L0079 + ldd #$FFFF +L0079 lbsr L0DBE + bcc L0087 + leas $06,s +L0080 leas $02,s +L0082 leas $05,s + lbra L02B1 +L0087 std $0B,s + ldb <$16,y + ldx <$17,y + stb $08,s + stx $09,s + puls u,x,b,a + stb <$16,y + stx <$17,y + sta <$19,y + stu <$1A,y + ldd <$3A,y + std $0B,y + ldd <$3C,y + std $0D,y + lbsr L0960 + bcs L00B9 +L00B0 tst ,x + beq L00CB + lbsr L094B + bcc L00B0 +L00B9 cmpb #$D3 + bne L0080 + ldd #$0020 + lbsr L05A2 + bcs L0080 + lbsr L0275 + lbsr L0960 +L00CB leau ,x + lbsr L0173 + puls x + os9 F$PrsNam + bcs L0082 + cmpb #$1D + bls L00DD + ldb #$1D +L00DD clra + tfr d,y + lbsr L05D4 + tfr y,d + ldy $05,s + decb + lda b,u + ora #$80 + sta b,u + ldb ,s + ldx $01,s + stb <$1D,u + stx <$1E,u + lbsr L120E + bcs L015B + ldu $08,y + bsr L017A + lda #$04 + sta $0A,y + ldx $06,y + lda $02,x + sta ,u + ldx <$0050 + ldd $08,x + std $01,u + lbsr L02D1 + ldd $03,u + std $0D,u + ldb $05,u + stb $0F,u + ldb #$01 + stb $08,u + ldd $03,s + subd #$0001 + beq L013A + leax <$10,u + std $03,x + ldd $01,s + addd #$0001 + std $01,x + ldb ,s + adcb #$00 + stb ,x +L013A ldb ,s + ldx $01,s + lbsr L1210 + bcs L015B + lbsr L0A99 + stb <$34,y + stx <$35,y + lbsr L0A33 + leas $05,s + ldx <$30,y + lda #$04 + sta $07,x + lbra L01DB +L015B puls u,x,a + sta <$16,y + stx <$17,y + clr <$19,y + stu <$1A,y + pshs b + lbsr L0FD5 + puls b +L0170 lbra L02B1 +L0173 pshs u,x,b,a + leau <$20,u + bra L0180 +L017A pshs u,x,b,a + leau >$0100,u +L0180 clra + clrb + tfr d,x +L0184 pshu x,b,a + cmpu $04,s + bhi L0184 + puls pc,u,x,b,a +L018D pshs y + lbsr L07B5 + bcs L0170 + ldu $06,y + stx $04,u + ldd <$35,y + bne L01CA + lda <$34,y + bne L01CA + ldb $01,y + andb #$80 + lbne L02AF + std <$16,y + sta <$18,y + std <$13,y + sta <$15,y + ldx <$1E,y + lda $02,x + std <$11,y + sta <$1B,y + ldd ,x + std $0F,y + std <$19,y + puls pc,y +L01CA lda $01,y + lbsr L09E6 + bcs L0170 + bita #$02 + beq L01DB + lbsr L02D1 + lbsr L1206 +L01DB puls y +L01DD clra + clrb + std $0B,y + std $0D,y + std <$13,y + sta <$15,y + sta <$19,y + lda ,u + sta <$33,y + ldd <$10,u + std <$16,y + lda <$12,u + sta <$18,y + ldd <$13,u + std <$1A,y + ldd $09,u + ldx $0B,u + ldu <$30,y + cmpu $05,u + beq L0218 + ldu $05,u + ldu $01,u + ldd $0F,u + ldx <$11,u +L0218 std $0F,y + stx <$11,y + clr $0A,y + rts +L0220 lbsr L0039 + bcs L0273 + lda <$33,y + ora #$40 + lbsr L09E6 + bcs L0273 + ldd #$0040 + std <$11,y + bsr L0285 + bcs L0273 + lbsr L0C78 + bcs L0273 + lbsr L112C + ldu $08,y + lda ,u + ora #$80 + sta ,u + bsr L0278 + bcs L0273 + lbsr L017A + ldd #$2EAE + std ,u + stb <$20,u + lda <$37,y + sta <$1D,u + ldd <$38,y + std <$1E,u + lda <$34,y + sta <$3D,u + ldd <$35,y + std <$3E,u + lbsr L120E +L0273 bra L02B4 +L0275 lbsr L112C +L0278 ldx $08,y + ldd $0F,y + std $09,x + ldd <$11,y + std $0B,x + clr $0A,y +L0285 lbra L1206 +L0288 clra + tst $02,y + bne L02AE + lbsr L1240 + bcs L02B4 + ldb $01,y + bitb #$02 + beq L02B4 + ldd <$34,y + bne L02A2 + lda <$36,y + beq L02B4 +L02A2 bsr L0275 + lbsr L05EE + bcc L02B4 + lbsr L0F07 + bra L02B4 +L02AE rts +L02AF ldb #$D6 +L02B1 coma +L02B2 puls y +L02B4 pshs b,cc + ldu $08,y + beq L02CF + ldd #$0100 + os9 F$SRtMem + ldx <$30,y + beq L02CF + lbsr L0A99 + lda ,x + ldx <$0088 + os9 F$Ret64 +L02CF puls pc,b,cc +L02D1 lbsr L112C + ldu $08,y + lda $08,u + ldx <$0050 + pshs x,a + ldx <$004A + stx <$0050 + leax $03,u + os9 F$Time + puls x,a + stx <$0050 + sta $08,u + rts +L02EC pshs y + lda $01,y + ora #$80 + sta $01,y + lbsr L018D + bcs L02B2 + ldx <$0050 + ldu <$35,y + ldb $01,y + bitb #$03 + beq L030D + ldb <$34,y + stb <$23,x + stu <$24,x +L030D ldb $01,y + bitb #$04 + beq L031C + ldb <$34,y + stb <$29,x + stu <$2A,x +L031C clrb + bra L02B2 +L031F pshs y + lbsr L07B5 + bcs L02B2 + ldd <$35,y + bne L0332 + tst <$34,y + lbeq L02AF +L0332 lda #$42 + lbsr L09E6 + lbcs L02B2 + ldu $06,y + stx $04,u + lbsr L112C + lbcs L03D7 + ldx $08,y + dec $08,x + beq L0358 + lbsr L1206 + nop + pshs u,x,b + clra + clrb + std $03,s + bra L03A2 +L0358 ldb <$34,y + ldx <$35,y + pshs u,x,b + ldd #$0100 + os9 F$SRqMem + bcc L036C + clra + clrb + bra L037A +L036C stu $03,s + ldx $08,y + clrb +L0371 lda ,x+ + sta ,u+ + decb + bne L0371 + ldd $03,s +L037A std $03,s + clra + clrb + std $0F,y + std <$11,y + lbsr L0F07 + bcs L03F7 + ldb <$34,y + ldx <$35,y + stb <$16,y + stx <$17,y + ldx $08,y + ldd <$13,x + addd #$0001 + std <$1A,y + lbsr L0FD5 +L03A2 bcs L03F7 + lbsr L1240 + lbsr L0A99 + lda <$37,y + sta <$34,y + ldd <$38,y + std <$35,y + lbsr L112C + bcs L03F7 + lbsr L0A33 + ldu $08,y + lbsr L01DD + ldd <$3A,y + std $0B,y + ldd <$3C,y + std $0D,y + lbsr L0960 + bcs L03F7 + clr ,x + lbsr L120E +L03D7 ldu $03,s + beq L0402 + ldb ,s + ldx $01,s + stb <$34,y + stx <$35,y + ldx <$08,y + stx <$01,s + stu <$08,y + lbsr L1206 + ldu <$01,s + stu <$08,y +L03F7 ldu <$03,s + beq L0402 + ldd #$0100 + os9 F$SRtMem +L0402 leas $05,s + lbra L02B2 +L0407 ldb $0A,y + bitb #$02 + beq L0420 + lda $05,u + ldb $08,u + subd $0C,y + bne L041B + lda $04,u + sbca $0B,y + beq L0424 +L041B lbsr L1240 + bcs L0428 +L0420 ldd $04,u + std $0B,y +L0424 ldd $08,u + std $0D,y +L0428 rts +L0429 bsr L046C + beq L044F + bsr L0450 + pshs u,y,x,b,a + exg x,u + ldy #$0000 + lda #$0D +L0439 leay $01,y + cmpa ,x+ + beq L0442 + decb + bne L0439 +L0442 ldx $06,s + bsr L04A4 + sty $0A,s + puls u,y,x,b,a + ldd $02,s + leax d,x +L044F rts +L0450 lbsr L04DC + leax -$01,x + lbsr L0988 + cmpa #$0D + beq L0462 + ldd $02,s + lbne L04E2 +L0462 ldu $06,y + ldd $06,u + subd $02,s + std $06,u + bra L04C9 +L046C ldd $06,u + lbsr L0B15 + bcs L04A0 + ldd $06,u + bsr L047C + bcs L04A0 + std $06,u + rts +L047C pshs b,a + ldd <$11,y + subd $0D,y + tfr d,x + ldd $0F,y + sbcb $0C,y + sbca $0B,y + bcs L049D + bne L049A + tstb + bne L049A + cmpx ,s + bcc L049A + stx ,s + beq L049D +L049A clrb + puls pc,b,a +L049D comb + ldb #$D3 +L04A0 leas $02,s + bra L04CE +L04A4 pshs x + ldx <$0050 + lda <$00D0 + ldb $06,x + puls x + os9 F$Move + rts +L04B2 bsr L046C + beq L04C4 + bsr L04C5 +L04B8 pshs u,y,x,b,a + exg x,u + tfr d,y + bsr L04A4 + puls u,y,x,b,a + leax d,x +L04C4 rts +L04C5 bsr L04DC + bne L04E2 +L04C9 clrb +L04CA leas -$02,s +L04CC leas $0A,s +L04CE pshs b,cc + lda $01,y + bita #$02 + bne L04D9 + lbsr L0B0B +L04D9 puls b,cc + rts +L04DC ldd $04,u + ldx $06,u + pshs x,b,a +L04E2 lda $0A,y + bita #$02 + bne L0502 + tst $0E,y + bne L04FD + tst $02,s + beq L04FD + leax >L057A,pcr + cmpx $06,s + bne L04FD + lbsr L10A1 + bra L0500 +L04FD lbsr L125F +L0500 bcs L04CA +L0502 ldu $08,y + clra + ldb $0E,y + leau d,u + negb + sbca #$FF + ldx ,s + cmpd $02,s + bls L0515 + ldd $02,s +L0515 pshs b,a + jsr [<$08,s] + stx $02,s + lda $0A,y + anda #$BF + sta $0A,y + ldb $01,s + addb $0E,y + stb $0E,y + bne L0539 + lbsr L1240 + inc $0D,y + bne L0537 + inc $0C,y + bne L0537 + inc $0B,y +L0537 bcs L04CC +L0539 ldd $04,s + subd ,s++ + std $02,s + jmp [<$04,s] +L0542 pshs y + clrb + ldy $06,u + beq L0567 + ldx <$0050 + ldb $06,x + ldx $04,u +L0550 leay -$01,y + beq L0567 + os9 F$LDABX + leax $01,x + cmpa #$0D + bne L0550 + tfr y,d + nega + negb + sbca #$00 + addd $06,u + std $06,u +L0567 puls y +L0569 ldd $06,u + lbsr L0B15 + bcs L05A1 + ldd $06,u + beq L05A0 + bsr L05A2 + bcs L05A1 + bsr L058B +L057A pshs y,b,a + tfr d,y + bsr L05D4 + puls y,b,a + leax d,x + lda $0A,y + ora #$03 + sta $0A,y + rts +L058B lbsr L04DC + lbne L04E2 + leas $08,s + ldy <$30,y + lda #$01 + lbsr L0ADA + ldy $01,y +L05A0 clrb +L05A1 rts +L05A2 addd $0D,y + tfr d,x + ldd $0B,y + adcb #$00 + adca #$00 +L05AC cmpd $0F,y + bcs L05A0 + bhi L05B8 + cmpx <$11,y + bls L05A0 +L05B8 pshs u + ldu <$11,y + stx <$11,y + ldx $0F,y + std $0F,y + pshs u,x + lbsr L0C78 + puls u,x + bcc L05D2 + stx $0F,y + stu <$11,y +L05D2 puls pc,u +L05D4 pshs x + ldx <$0050 + lda $06,x + ldb <$00D0 + puls x + os9 F$Move + rts +L05E2 ldb $02,u + cmpb #$00 + beq L0608 + cmpb #$06 + bne L05F4 + clr $02,u +L05EE clra + ldb #$01 + lbra L047C +L05F4 cmpb #$01 + bne L05FB + clr $02,u + rts +L05FB cmpb #$02 + bne L0609 + ldd $0F,y + std $04,u + ldd <$11,y + std $08,u +L0608 rts +L0609 cmpb #$05 + bne L0616 + ldd $0B,y + std $04,u + ldd $0D,y + std $08,u + rts +L0616 cmpb #$0F + bne L0630 + lbsr L112C + bcs L0608 + ldu $06,y + ldd $06,u + tsta + beq L0629 + ldd #$0100 +L0629 ldx $04,u + ldu $08,y + lbra L04B8 +L0630 cmpb #$20 + bne L0649 + lbsr L1240 + bcs L0608 + ldb $06,u + ldx $08,u + lbsr L1143 + bcs L0608 + ldu $06,y + ldd $06,u + clra + bra L0629 +L0649 lda #$09 + lbra L1145 +L064E ldb $02,u + cmpb #$00 + bne L0662 + ldx $04,u + leax $02,x + leau <$22,y + ldy #$000D + lbra L05D4 +L0662 cmpb #$02 + bne L06A4 + ldd <$35,y + bne L0672 + tst <$34,y + lbeq L07B1 +L0672 lda $01,y + bita #$02 + beq L06A0 + ldd $04,u + ldx $08,u + cmpd $0F,y + bcs L068B + bne L0688 + cmpx <$11,y + bcs L068B +L0688 lbra L05AC +L068B std $0F,y + stx <$11,y + ldd $0B,y + ldx $0D,y + pshs x,b,a + lbsr L0F07 + puls u,x + stx $0B,y + stu $0D,y + rts +L06A0 comb + ldb #$CB +L06A3 rts +L06A4 cmpb #$0F + bne L06E2 + lda $01,y + bita #$02 + beq L06A0 + lbsr L112C + bcs L06A3 + pshs y + ldx $04,u + ldu $08,y + ldy <$0050 + ldd $08,y + bne L06C5 + ldd #$0102 + bsr L06D4 +L06C5 ldd #$0305 + bsr L06D4 + ldd #$0D03 + bsr L06D4 + puls y + lbra L1206 +L06D4 pshs u,x + leax a,x + leau a,u + clra + tfr d,y + lbsr L05D4 + puls pc,u,x +L06E2 cmpb #$11 + bne L0701 + ldd $08,u + ldx $04,u + cmpx #$FFFF + bne L06FE + cmpx $08,u + bne L06FE + ldu <$30,y + lda $07,u + ora #$02 + sta $07,u + lda #$FF +L06FE lbra L0B24 +L0701 cmpb #$10 + bne L070E + ldd $04,u + ldx <$30,y + std <$12,x + rts +L070E cmpb #$1E + bne L071E + ldx <$1E,y + lda $05,u + sta <$1E,x + clr <$1D,x +L071D rts +L071E cmpb #$1C + bne L078D + lbsr L112C + bcs L071D + ldx <$0050 + lda $08,x + beq L0733 + ldx $08,y + cmpa $01,x + bne L0789 +L0733 lda $05,u + tfr a,b + ldu $08,y + eorb ,u + bpl L0784 + tsta + bmi L076D + ldx <$1E,y + ldd $08,x + cmpd <$34,y + bne L0752 + ldb $0A,x + cmpb <$36,y + beq L0789 +L0752 ldb $0B,y + ldx $0C,y + pshs x,b + std $0B,y + ldb #$20 + std $0D,y +L075E lbsr L094B + bcs L0771 + tst ,x + beq L075E + puls x,b + stb $0B,y + stx $0C,y +L076D ldb #$EE + bra L078B +L0771 puls x,a + sta $0B,y + stx $0C,y + cmpb #$D3 + bne L078B + lbsr L112C + ldu $08,y + ldx $06,y + lda $05,x +L0784 sta ,u + lbra L1206 +L0789 ldb #$D6 +L078B coma + rts +L078D cmpb #$2C + bne L07AC + lda <$33,y + bita #$40 + lbne L0A94 + ldx <$30,y + lda $05,u + sta <$18,x + ldu <$0050 + lda <$0000,u + sta <$17,x + clrb + rts +L07AC lda #$0C + lbra L1145 +L07B1 comb + ldb #$D0 +L07B4 rts +L07B5 ldd #$0100 + stb $0A,y + os9 F$SRqMem + bcs L07B4 + stu $08,y + leau ,y + ldx <$0088 + os9 F$All64 + exg y,u + bcs L07B4 + stu <$30,y + clr <$17,u + sty $01,u + stu <$10,u + ldx $06,y + ldx $04,x + pshs u,y,x + leas -$04,s + clra + clrb + sta <$34,y + std <$35,y + std <$1C,y + lbsr L0988 + sta ,s + cmpa #$2F + bne L0804 + lbsr L0993 + sta ,s + lbcs L0916 + leax ,y + ldy $06,s + bra L0827 +L0804 anda #$7F + cmpa #$40 + beq L0827 + lda #$2F + sta ,s + leax -$01,x + lda $01,y + ldu <$0050 + leau <$20,u + bita #$04 + beq L081D + leau $06,u +L081D ldb $03,u + stb <$34,y + ldd $04,u + std <$35,y +L0827 ldu $03,y + stu <$3E,y + lda <$21,y + ldb >L0011,pcr + mul + addd $02,u + addd #$000F + std <$1E,y + lda ,s + anda #$7F + cmpa #$40 + bne L0848 + leax $01,x + bra L086A +L0848 lbsr L1119 + lbcs L091E + ldu $08,y + ldd $0E,u + std <$1C,y + ldd <$35,y + bne L086A + lda <$34,y + bne L086A + lda $08,u + sta <$34,y + ldd $09,u + std <$35,y +L086A stx $04,s + stx $08,s +L086E lbsr L1240 + lbcs L091E + lda ,s + anda #$7F + cmpa #$40 + beq L0884 + lbsr L112C + lbcs L091E +L0884 lbsr L0A33 + lda ,s + cmpa #$2F + bne L08F8 + clr $02,s + clr $03,s + lda $01,y + ora #$80 + lbsr L09E6 + bcs L0916 + lbsr L01DD + ldx $08,s + leax $01,x + lbsr L0993 + std ,s + stx $04,s + sty $08,s + ldy $06,s + bcs L0916 + pshs u,y + ldu <$30,y + leau <$20,u + clra + tfr d,y + lbsr L05D4 + puls u,y + lbsr L0960 + bra L08CA +L08C5 bsr L0921 +L08C7 lbsr L094B +L08CA bcs L0916 + tst ,x + beq L08C5 + clra + ldb $01,s + exg x,y + ldx <$30,x + leax <$20,x + lbsr L09C8 + ldx $06,s + exg x,y + bcs L08C7 + bsr L092F + lda <$1D,x + sta <$34,y + ldd <$1E,x + std <$35,y + lbsr L0A99 + lbra L086E +L08F8 ldx $08,s + tsta + bmi L0905 + os9 F$PrsNam + leax ,y + ldy $06,s +L0905 stx $04,s + clra +L0908 lda ,s + leas $04,s + pshs b,a,cc + lda $0A,y + anda #$BF + sta $0A,y + puls pc,u,y,x,b,a,cc +L0916 cmpb #$D3 + bne L091E + bsr L0921 + ldb #$D8 +L091E coma + bra L0908 +L0921 pshs b,a + lda $04,s + cmpa #$2F + beq L0949 + ldd $06,s + bne L0949 + puls b,a +L092F pshs b,a + stx $06,s + lda <$34,y + sta <$37,y + ldd <$35,y + std <$38,y + ldd $0B,y + std <$3A,y + ldd $0D,y + std <$3C,y +L0949 puls pc,b,a +L094B ldb $0E,y + addb #$20 + stb $0E,y + bcc L0960 + lbsr L1240 + inc $0D,y + bne L0960 + inc $0C,y + bne L0960 + inc $0B,y +L0960 ldd #$0020 + lbsr L047C + bcs L0987 + ldd #$0020 + lbsr L0B15 + bcs L0987 + lda $0A,y + bita #$02 + bne L0980 + lbsr L10A1 + bcs L0987 + lbsr L125F + bcs L0987 +L0980 ldb $0E,y + lda $08,y + tfr d,x + clrb +L0987 rts +L0988 pshs u,x,b + ldu <$0050 + ldb $06,u + os9 F$LDABX + puls pc,u,x,b +L0993 os9 F$PrsNam + pshs x + bcc L09C0 + clrb +L099B pshs a + anda #$7F + cmpa #$2E + puls a + bne L09B6 + incb + leax $01,x + tsta + bmi L09B6 + bsr L0988 + cmpb #$03 + bcs L099B + lda #$2F + decb + leax -$03,x +L09B6 tstb + bne L09BE +L09B9 comb + ldb #$D7 + puls pc,x +L09BE leay ,x +L09C0 cmpb #$20 + bhi L09B9 + andcc #$FE + puls pc,x +L09C8 pshs y,x,b,a +L09CA lda ,y+ + bmi L09DA + decb + beq L09D7 + eora ,x+ + anda #$DF + beq L09CA +L09D7 comb + puls pc,y,x,b,a +L09DA decb + bne L09D7 + eora ,x + anda #$5F + bne L09D7 + clrb + puls pc,y,x,b,a +L09E6 tfr a,b + anda #$07 + andb #$C0 + pshs x,b,a + lbsr L112C + bcs L0A15 + ldu $08,y + ldx <$0050 + ldd $08,x + beq L09FE + cmpd $01,u +L09FE puls a + beq L0A05 + lsla + lsla + lsla +L0A05 ora ,s + anda #$BF + pshs a + ora #$80 + anda ,u + cmpa ,s + beq L0A1E + ldb #$D6 +L0A15 leas $02,s + coma + puls pc,x +L0A1A ldb #$FD + bra L0A15 +L0A1E ldb $01,s + orb ,u + bitb #$40 + beq L0A31 + ldx <$30,y + cmpx $05,x + bne L0A1A + lda #$02 + sta $07,x +L0A31 puls pc,x,b,a +L0A33 pshs u,y,x + clra + clrb + std $0B,y + std $0D,y + sta <$19,y + std <$1A,y + ldb <$34,y + ldx <$35,y + pshs x,b + ldu <$1E,y + ldy <$30,y + sty $05,y + leau <$15,u + bra L0A5A +L0A58 ldu $03,u +L0A5A ldx $03,u + beq L0A88 + ldx $01,x + ldd <$34,x + cmpd ,s + bcs L0A58 + bhi L0A88 + ldb <$36,x + cmpb $02,s + bcs L0A58 + bhi L0A88 + ldx <$30,x + lda $07,y + bita #$02 + bne L0A94 + sty $03,y + ldd $05,x + std $05,y + sty $05,x + bra L0A8F +L0A88 ldx $03,u + stx $03,y + sty $03,u +L0A8F clrb +L0A90 leas $03,s + puls pc,u,y,x +L0A94 comb + ldb #$FD + bra L0A90 +L0A99 pshs u,y,x,b,a + ldu <$1E,y + leau <$15,u + ldx <$30,y + leay ,x + bsr L0AD8 + bra L0AAE +L0AAA ldx $05,x + beq L0AD3 +L0AAE cmpy $05,x + bne L0AAA + ldd $05,y + std $05,x + bra L0ABB +L0AB9 ldu $03,u +L0ABB ldd $03,u + beq L0AD3 + cmpy $03,u + bne L0AB9 + ldx $03,y + cmpy $05,y + beq L0AD1 + ldx $05,y + ldd $03,y + std $03,x +L0AD1 stx $03,u +L0AD3 sty $05,y + puls pc,u,y,x,b,a +L0AD8 lda #$07 +L0ADA pshs u,y,x,b,a + bita $07,y + beq L0AE9 + coma + anda $07,y + sta $07,y + bita #$02 + bne L0B06 +L0AE9 leau ,y +L0AEB ldx <$10,u + cmpy <$10,u + beq L0B03 + stu <$10,u + leau ,x + lda <$14,u + ldb #$01 + os9 F$Send + bra L0AEB +L0B03 stu <$10,u +L0B06 puls pc,u,y,x,b,a +L0B08 comb + ldb #$FD +L0B0B pshs y,b,cc + ldy <$30,y + bsr L0AD8 + puls pc,y,b,cc +L0B15 ldx #$0000 + bra L0B24 +L0B1A ldu <$30,y + lda <$15,u + sta $07,u + puls u,y,x,b,a +L0B24 pshs u,y,x,b,a + ldu <$30,y + lda $07,u + sta <$15,u + lda ,s + bsr L0BA8 + bcc L0BA6 + ldu <$0050 + lda <$14,x +L0B39 os9 F$GProcP + bcs L0B4B + lda <$1E,y + beq L0B4B + cmpa ,u + bne L0B39 + ldb #$FE + bra L0BA3 +L0B4B lda <$14,x + sta <$1E,u + ldy $04,s + lda $0A,y + anda #$BF + sta $0A,y + ldu <$30,y + ldd <$10,x + stu <$10,x + std <$10,u + lbsr L0C5F + ldx <$12,u + os9 F$Sleep + pshs x + leax ,u + bra L0B78 +L0B75 ldx <$10,x +L0B78 cmpu <$10,x + bne L0B75 + ldd <$10,u + std <$10,x + stu <$10,u + puls x + ldu <$0050 + clr <$1E,u + lbsr L105C + bcs L0BA3 + leax ,x + bne L0B1A + ldu <$30,y + ldx <$12,u + lbeq L0B1A + ldb #$FC +L0BA3 coma + stb $01,s +L0BA6 puls pc,u,y,x,b,a +L0BA8 std -$02,s + bne L0BB3 + cmpx #$0000 + lbeq L0B0B +L0BB3 bsr L0BCB + lbcs L0B08 + pshs u,y,x + ldy <$30,y + lda #$01 + lbsr L0ADA + ora $07,y + sta $07,y + clrb + puls pc,u,y,x +L0BCB pshs u,y,b,a + leau ,y + ldy <$30,y + subd #$0001 + bcc L0BDA + leax -$01,x +L0BDA addd $0D,u + exg d,x + adcb $0C,u + adca $0B,u + bcc L0BE9 + ldx #$FFFF + tfr x,d +L0BE9 std $0C,y + stx $0E,y + cmpd $0F,u + bcs L0C01 + bhi L0BF9 + cmpx <$11,u + bcs L0C01 +L0BF9 lda $07,y + ora #$04 + sta $07,y + bra L0C0A +L0C01 lda #$04 + bita $07,y + beq L0C0A + lbsr L0ADA +L0C0A ldd $0B,u + ldx $0D,u + std $08,y + stx $0A,y + lda $05,u + sta <$14,y + leax ,y +L0C19 cmpy $05,x + beq L0C5D + ldx $05,x + ldb <$14,y + cmpb <$14,x + beq L0C19 + lda $07,x + beq L0C19 + ora $07,y + bita #$02 + bne L0C5C + lda $07,x + anda $07,y + bita #$04 + bne L0C5C + ldd $08,x + cmpd $0C,y + bhi L0C19 + bcs L0C4C + ldd $0A,x + cmpd $0E,y + bhi L0C19 + beq L0C5C +L0C4C ldd $0C,x + cmpd $08,y + bcs L0C19 + bhi L0C5C + ldd $0E,x + cmpd $0A,y + bcs L0C19 +L0C5C comb +L0C5D puls pc,u,y,b,a +L0C5F pshs y,x,b,a + ldx <$0050 + lda <$10,x + beq L0C75 + clr <$10,x + ldb #$01 + os9 F$Send + os9 F$GProcP + clr $0F,y +L0C75 clrb + puls pc,y,x,b,a +L0C78 pshs u,x +L0C7A bsr L0CDA + bne L0C8A + cmpx <$1A,y + bcs L0CD1 + bne L0C8A + lda <$12,y + beq L0CD1 +L0C8A lbsr L112C + bcs L0CCE + ldx $0B,y + ldu $0D,y + pshs u,x + ldd $0F,y + std $0B,y + ldd <$11,y + std $0D,y + lbsr L10BB + puls u,x + stx $0B,y + stu $0D,y + bcc L0CD1 + cmpb #$D5 + bne L0CCE + bsr L0CDA + bne L0CBA + tst <$12,y + beq L0CBD + leax $01,x + bne L0CBD +L0CBA ldx #$FFFF +L0CBD tfr x,d + tsta + bne L0CCA + cmpb <$2E,y + bcc L0CCA + ldb <$2E,y +L0CCA bsr L0D10 + bcc L0C7A +L0CCE coma + puls pc,u,x +L0CD1 lbsr L10A1 + bcs L0CCE + bsr L0CE8 + puls pc,u,x +L0CDA ldd <$10,y + subd <$14,y + tfr d,x + ldb $0F,y + sbcb <$13,y + rts +L0CE8 clra + ldb #$02 + pshs u,x + ldu <$30,y + bra L0D06 +L0CF2 ldu $01,u + ldx $0F,y + stx $0F,u + ldx <$11,y + stx <$11,u + bitb $01,y + beq L0D03 + inca +L0D03 ldu <$30,u +L0D06 ldu $05,u + cmpy $01,u + bne L0CF2 + tsta + puls pc,u,x +L0D10 pshs u,x + lbsr L0DBE + bcs L0D57 + lbsr L112C + bcs L0D57 + ldu $08,y + clra + clrb + std $09,u + std $0B,u + leax <$10,u + ldd $03,x + beq L0D9F + ldd $08,y + inca + pshs b,a + bra L0D3F +L0D32 clrb + ldd -$02,x + beq L0D53 + addd $0A,u + std $0A,u + bcc L0D3F + inc $09,u +L0D3F leax $05,x + cmpx ,s + bcs L0D32 + lbsr L0FD5 + clra + clrb + sta <$19,y + std <$1A,y + comb + ldb #$D9 +L0D53 leas $02,s + leax -$05,x +L0D57 bcs L0DBC + ldd -$04,x + addd -$02,x + pshs b,a + ldb -$05,x + adcb #$00 + cmpb <$16,y + puls b,a + bne L0D9F + cmpd <$17,y + bne L0D9F + ldu <$1E,y + ldd $06,u + ldu $08,y + subd #$0001 + coma + comb + pshs b,a + ldd -$05,x + eora <$16,y + eorb <$17,y + lsra + rorb + lsra + rorb + lsra + rorb + anda ,s+ + andb ,s+ + std -$02,s + bne L0D9F + ldd -$02,x + addd <$1A,y + bcs L0D9F + std -$02,x + bra L0DAE +L0D9F ldd <$16,y + std ,x + lda <$18,y + sta $02,x + ldd <$1A,y + std $03,x +L0DAE ldd $0A,u + addd <$1A,y + std $0A,u + bcc L0DB9 + inc $09,u +L0DB9 lbsr L1206 +L0DBC puls pc,u,x +L0DBE pshs u,y,x,b,a + ldb #$0C +L0DC2 clr ,-s + decb + bne L0DC2 + ldx <$1E,y + ldd $04,x + std $04,s + ldd $06,x + std $02,s + std $0A,s + ldx $03,y + ldx $04,x + leax <$12,x + subd #$0001 + addb $0E,x + adca #$00 + bra L0DE6 +L0DE4 lsra + rorb +L0DE6 lsr $0A,s + ror $0B,s + bcc L0DE4 + std ,s + ldd $02,s + std $0A,s + subd #$0001 + addd $0C,s + bcc L0E00 + ldd #$FFFF + bra L0E00 +L0DFE lsra + rorb +L0E00 lsr $0A,s + ror $0B,s + bcc L0DFE + cmpa #$08 + bcs L0E0D + ldd #$0800 +L0E0D std $0C,s + lbsr L103F + lbcs L0EFB + ldx <$1E,y + ldd <$1A,x + cmpd $0E,x + bne L0E2F + lda <$1C,x + cmpa $04,x + bne L0E2F + ldb <$1D,x + cmpb $04,x + bcs L0E3D +L0E2F ldd $0E,x + std <$1A,x + lda $04,x + sta <$1C,x + clrb + stb <$1D,x +L0E3D incb + stb $06,s + ldx <$1E,y + cmpb <$1E,x + beq L0E79 + lbsr L109A + lbcs L0EFB + ldb $06,s + cmpb $04,s + bls L0E5A + clra + ldb $05,s + bra L0E5D +L0E5A ldd #$0100 +L0E5D ldx $08,y + leau d,x + ldy $0C,s + clra + clrb + os9 F$SchBit + bcc L0EA6 + cmpy $08,s + bls L0E79 + sty $08,s + std $0A,s + lda $06,s + sta $07,s +L0E79 ldy <$10,s + ldb $06,s + cmpb $04,s + bcs L0E8A + bhi L0E89 + tst $05,s + bne L0E8A +L0E89 clrb +L0E8A ldx <$1E,y + cmpb <$1D,x + bne L0E3D + ldb $07,s + beq L0EF9 + cmpb $06,s + beq L0E9F + stb $06,s + lbsr L109A +L0E9F ldx $08,y + ldd $0A,s + ldy $08,s +L0EA6 std $0A,s + sty $08,s + os9 F$AllBit + ldy <$10,s + ldb $06,s + lbsr L1072 + bcs L0EFB + ldx <$1E,y + lda $06,s + deca + sta <$1D,x + clrb + lsla + rolb + lsla + rolb + lsla + rolb + stb <$16,y + ora $0A,s + ldb $0B,s + ldx $08,s + ldy <$10,s + std <$17,y + stx <$1A,y + ldd $02,s + bra L0EEF +L0EE0 lsl <$18,y + rol <$17,y + rol <$16,y + lsl <$1B,y + rol <$1A,y +L0EEF lsra + rorb + bcc L0EE0 + clrb + ldd <$1A,y + bra L0F03 +L0EF9 ldb #$F8 +L0EFB ldy <$10,s + lbsr L1079 + coma +L0F03 leas $0E,s + puls pc,u,y,x +L0F07 clra + lda $01,y + bita #$80 + bne L0F78 + ldd $0F,y + std $0B,y + ldd <$11,y + std $0D,y + ldd #$FFFF + tfr d,x + lbsr L0B24 + bcs L0F77 + lbsr L0CE8 + bne L0F78 + lbsr L10BB + bcc L0F2F + cmpb #$D5 + bra L0F70 +L0F2F ldd <$14,y + subd $0C,y + addd <$1A,y + tst $0E,y + beq L0F3E + subd #$0001 +L0F3E pshs b,a + ldu <$1E,y + ldd $06,u + subd #$0001 + coma + comb + anda ,s+ + andb ,s+ + ldu <$1A,y + std <$1A,y + beq L0F72 + tfr u,d + subd <$1A,y + pshs x,b,a + addd <$17,y + std <$17,y + bcc L0F68 + inc <$16,y +L0F68 bsr L0FD5 + bcc L0F79 + leas $04,s + cmpb #$DB +L0F70 bne L0F77 +L0F72 lbsr L112C + bcc L0F82 +L0F77 coma +L0F78 rts +L0F79 lbsr L112C + bcs L0FD2 + puls x,b,a + std $03,x +L0F82 ldu $08,y + ldd <$11,y + std $0B,u + ldd $0F,y + std $09,u + tfr x,d + clrb + inca + leax $05,x + pshs x,b,a + bra L0FBD +L0F97 ldd -$02,x + beq L0FCA + std <$1A,y + ldd -$05,x + std <$16,y + lda -$03,x + sta <$18,y + bsr L0FD5 + bcs L0FD2 + stx $02,s + lbsr L112C + bcs L0FD2 + ldx $02,s + clra + clrb + std -$05,x + sta -$03,x + std -$02,x +L0FBD lbsr L1206 + bcs L0FD2 + ldx $02,s + leax $05,x + cmpx ,s + bcs L0F97 +L0FCA clra + clrb + sta <$19,y + std <$1A,y +L0FD2 leas $04,s + rts +L0FD5 pshs u,y,x,a + ldx <$1E,y + ldd $06,x + subd #$0001 + addd <$17,y + std <$17,y + ldd $06,x + bcc L0FFD + inc <$16,y + bra L0FFD +L0FEE lsr <$16,y + ror <$17,y + ror <$18,y + lsr <$1A,y + ror <$1B,y +L0FFD lsra + rorb + bcc L0FEE + clrb + ldd <$1A,y + beq L103D + ldd <$16,y + lsra + rorb + lsra + rorb + lsra + rorb + tfr b,a + ldb #$DB + cmpa $04,x + bhi L103C + inca + sta ,s +L101B bsr L103F + bcs L101B + ldb ,s + bsr L109A + bcs L103C + ldx $08,y + ldd <$17,y + anda #$07 + ldy <$1A,y + os9 F$DelBit + ldy $03,s + ldb ,s + bsr L1072 + bcc L103D +L103C coma +L103D puls pc,u,y,x,a +L103F lbsr L1240 + bra L104C +L1044 lbsr L0C5F + os9 F$IOQu + bsr L105C +L104C bcs L105B + ldx <$1E,y + lda <$17,x + bne L1044 + lda $05,y + sta <$17,x +L105B rts +L105C ldu <$0050 + ldb <$19,u + cmpb #$01 + bls L1069 + cmpb #$03 + bls L1070 +L1069 clra + lda $0C,u + bita #$02 + beq L1071 +L1070 coma +L1071 rts +L1072 clra + tfr d,x + clrb + lbsr L1210 +L1079 pshs cc + ldx <$1E,y + lda $05,y + cmpa <$17,x + bne L1098 + clr <$17,x + ldx <$0050 + lda <$10,x + beq L1098 + lbsr L0C5F + ldx #$0001 + os9 F$Sleep +L1098 puls pc,cc +L109A clra + tfr d,x + clrb + lbra L1143 +L10A1 ldd $0C,y + subd <$14,y + tfr d,x + ldb $0B,y + sbcb <$13,y + cmpb <$19,y + bcs L10B9 + bhi L10BB + cmpx <$1A,y + bcc L10BB +L10B9 clrb +L10BA rts +L10BB pshs u + bsr L112C + bcs L1117 + clra + clrb + std <$13,y + stb <$15,y + ldu $08,y + leax <$10,u + lda $08,y + ldb #$FC + pshs b,a +L10D4 ldd $03,x + beq L10F9 + addd <$14,y + tfr d,u + ldb <$13,y + adcb #$00 + cmpb $0B,y + bhi L1106 + bne L10ED + cmpu $0C,y + bhi L1106 +L10ED stb <$13,y + stu <$14,y + leax $05,x + cmpx ,s + bcs L10D4 +L10F9 clra + clrb + sta <$19,y + std <$1A,y + comb + ldb #$D5 + bra L1115 +L1106 ldd ,x + std <$16,y + lda $02,x + sta <$18,y + ldd $03,x + std <$1A,y +L1115 leas $02,s +L1117 puls pc,u +L1119 pshs x,b + lbsr L1240 + bcs L1128 + clrb + ldx #$0000 + bsr L1143 + bcc L112A +L1128 stb ,s +L112A puls pc,x,b +L112C ldb $0A,y + bitb #$04 + bne L10B9 + lbsr L1240 + bcs L10BA + ldb $0A,y + orb #$04 + stb $0A,y + ldb <$34,y + ldx <$35,y +L1143 lda #$03 +L1145 pshs u,y,x,b,a + lda $0A,y + ora #$20 + sta $0A,y + ldx <$0050 + lda $0A,x + tfr a,b + addb #$03 + bcc L1159 + ldb #$FF +L1159 stb $0A,x + stb $0B,x + ldx <$30,y + sta <$16,x + ldu $03,y + ldu $02,u + bra L116F +L1169 lbsr L0C5F + os9 F$IOQu +L116F lda $04,u + bne L1169 + lda $05,y + sta $04,u + ldd ,s + ldx $02,s + pshs u + bsr L11F4 + puls u + ldy $04,s + pshs cc + bcc L118A + stb $02,s +L118A lda $0A,y + anda #$DF + sta $0A,y + clr $04,u + ldx <$30,y + lda <$16,x + ldx <$0050 + sta $0A,x + lda ,s + bita #$01 + bne L11D4 + lda $01,s + cmpa #$06 + bne L11D4 + pshs u,y,x + ldy <$30,y + leau ,y +L11B0 ldx <$05,u + cmpy <$05,u + beq L11D2 + leau ,x + lda <$17,u + beq L11B0 + ldx <$0050 + cmpa <$00,x + beq L11B0 + clr <$17,u + ldb <$18,u + os9 F$Send + bra L11B0 +L11D2 puls u,y,x +L11D4 lda <$10,x + beq L11F2 + lda $01,y + bita #$04 + bne L11F2 + ldx <$1E,y + lda $05,y + cmpa <$17,x + beq L11F2 + lbsr L0C5F + ldx #$0001 + os9 F$Sleep +L11F2 puls pc,u,y,x,b,a,cc +L11F4 pshs pc,x,b,a + ldx $03,y + ldd ,x + ldx ,x + addd $09,x + addb ,s + adca #$00 + std $04,s + puls pc,x,b,a +L1206 ldb <$34,y + ldx <$35,y + bra L1210 +L120E bsr L1229 +L1210 lda #$06 + pshs x,b,a + ldd <$1C,y + beq L121F + ldx <$1E,y + cmpd $0E,x +L121F puls x,b,a + lbeq L1145 + comb + ldb #$FB + rts +L1229 ldd $0C,y + subd <$14,y + tfr d,x + ldb $0B,y + sbcb <$13,y + exg d,x + addd <$17,y + exg d,x + adcb <$16,y + rts +L1240 clrb + pshs u,x + ldb $0A,y + andb #$46 + beq L125D + tfr b,a + eorb $0A,y + stb $0A,y + andb #$01 + beq L125D + eorb $0A,y + stb $0A,y + bita #$02 + beq L125D + bsr L120E +L125D puls pc,u,x +L125F pshs u,x + lbsr L10A1 + bcs L12CF + bsr L1240 + bcs L12CF +L126A ldb $0B,y + ldu $0C,y + leax ,y + ldy <$30,y +L1274 ldx <$30,x + cmpy $05,x + beq L12BE + ldx $05,x + ldx $01,x + cmpu $0C,x + bne L1274 + cmpb $0B,x + bne L1274 + lda $0A,x + bita #$02 + beq L1274 + bita #$20 + bne L1297 + bita #$40 + beq L12A9 +L1297 lda $05,x + ldy $01,y + lbsr L0C5F + os9 F$IOQu + lbsr L105C + bcc L126A + bra L12CF +L12A9 ldy $01,y + ldd $08,x + ldu $08,y + std $08,y + stu $08,x + lda $0A,x + ora #$40 + sta $0A,y + clr $0A,x + puls pc,u,x +L12BE ldy $01,y + lbsr L1229 + lbsr L1143 + bcs L12CF + lda $0A,y + ora #$42 + sta $0A,y +L12CF puls pc,u,x + + emod +eom equ * + end