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