*
*       Tweeked commodore serial.device
*	Now works at 155200
*
*

         SECTION  segment0,CODE
seg0
         moveq    #-$01,d0
         rts      

L1       dc.b     'serial 34.12b(7 JAN 1'
         dc.b     '995)'
         dc.b     $0d,$0a,$00,$00,$00
L2       dc.b     $4a,$fc
         dc.l     L2
         dc.l     L150
         dc.b     $00,$22,$03,$ff
         dc.l     L3
         dc.l     L1
         dc.l     L95
L3       dc.b     'serial.device',$00
E4       dc.b     'timer.device',$00
E5       dc.b     'intuition.library',$00
E6       dc.b     'misc.resource',$00
         dc.b     $00,$ff,$ff,$00,$12,$03
         dc.b     $66,$05,$be,$00,$10,$04
         dc.b     $48,$04,$be,$ff,$ff,$4e
         dc.b     $75,$42,$29,$00,$1f,$72
         dc.b     $01,$b0,$81,$62,$18,$4a
         dc.b     $6e,$00,$20,$67,$1a,$08
         dc.b     $2e,$00,$05,$00,$45,$67
         dc.b     $0a,$08,$29,$00,$05,$00
         dc.b     $4f,$66,$00,$02,$10,$13
         dc.b     $7c,$00,$01,$00,$1f,$4e
         dc.b     $75,$48,$e7,$20,$10,$42
         dc.b     $2e,$01,$d8,$42,$2e,$01
         dc.b     $d6,$3d,$7c,$05,$dc,$01
         dc.b     $dc,$41,$ee,$00,$a2,$20
         dc.b     $88,$58,$90,$42,$a8,$00
         dc.b     $04,$21,$48,$00,$08,$41
         dc.b     $ee,$00,$b0,$20,$88,$58
         dc.b     $90,$42,$a8,$00,$04,$21
         dc.b     $48,$00,$08,$2f,$09,$20
         dc.b     $3c,$00,$00,$01,$00,$72
         dc.b     $01,$52,$6e,$00,$20,$2f
         dc.b     $0e,$2c,$6e,$00,$62

         jsr      -$00c6(a6)
         movea.l  (a7)+,a6
         subq.w   #$1,$0020(a6)
         movea.l  d0,a0
         move.l   a0,d2
         movea.l  (a7)+,a1
         tst.l    d0
         beq.l    E17
         move.l   a1,-(a7)
         moveq    #$21,d0
         lea      E5(pc),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$0228(a6)
         movea.l  (a7)+,a6
         movea.l  d0,a3
         move.l   #$000000c0,d0
         movea.l  d2,a0
         move.l   a6,-(a7)
         movea.l  a3,a6
         jsr      -$0084(a6)
         movea.l  (a7)+,a6
         movea.l  a3,a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$019e(a6)
         movea.l  (a7)+,a6
         movea.l  (a7)+,a1
         movea.l  d2,a3
         move.w   $0002(a3),d0
         lsl.w    #$1,d0
         lea      E26(pc),a0
         move.w   $00(a0,d0.w),$01c4(a6)
         clr.w    $01c2(a6)
         move.b   #$08,$0043(a6)
         move.b   $00b6(a3),d0
         btst     #$00,d0
         beq.s    E7
         move.b   #$07,$0043(a6)
E7       move.b   #$08,d1
         lsr.b    #$4,d0
         sub.b    d0,d1
         move.b   d1,$0042(a6)
         move.b   #$01,$0044(a6)
         move.b   $00b7(a3),d0
         btst     #$04,d0
         beq.s    E8
         move.b   #$02,$0044(a6)
E8       move.b   $0043(a6),$004d(a1)
         move.b   $0042(a6),$004c(a1)
         move.b   $0044(a6),$004e(a1)
         bsr.l    E83
         move.b   $00b7(a3),d0
         andi.w   #$000f,d0
         lsl.w    #$1,d0
         lea      E27(pc),a0
         clr.l    $0036(a6)
         move.w   $00(a0,d0.w),$0038(a6)
         move.b   $00b8(a3),d0
         move.b   d0,d1
         lsr.b    #$4,d0
         beq.s    E9
         bset     #$00,$0045(a6)
         cmpi.b   #$02,d0
         bne.s    E10
         bset     #$01,$0045(a6)
         bra.s    E11

E9       bclr     #$00,$0045(a6)
E10      bclr     #$01,$0045(a6)
E11      andi.b   #$0f,d1
         beq.s    E12
         bset     #$07,$0045(a6)
         cmpi.b   #$01,d1
         bne.s    E13
         bset     #$02,$0045(a6)
         bra.s    E14

E12      bclr     #$07,$0045(a6)
E13      bclr     #$02,$0045(a6)
E14      btst     #$01,$01bd(a6)
         beq.s    E15
         bset     #$00,$0045(a6)
E15      bsr.l    E90
         move.l   $0036(a6),d2
         clr.l    d0
         move.l   a3,d1
         beq.s    E16
         move.l   #$00000100,d0
E16      bsr.l    E23
         tst.l    d0
         bne.s    E18
E17      move.b   #$04,$001f(a1)
         movem.l  (a7)+,d2/a3
         move.l   a6,d0
         rts      

E18      move.l   a1,-(a7)
         lea      $0182(a6),a1
         lea      E4(pc),a0
         moveq    #$01,d0
         clr.l    d1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$01bc(a6)
         movea.l  (a7)+,a6
         tst.l    d0
         beq.s    E19
         movea.l  (a7)+,a1
         move.b   #$0b,$001f(a1)
         bra.s    E20

E19      move.l   $0014(a1),$0066(a6)
         move.l   $0196(a6),$0136(a6)
         move.l   $019a(a6),$013a(a6)
         movea.l  (a7)+,a1
E20      movem.l  (a7)+,d2/a3
         tst.b    $001f(a1)
         bne.l    E28
         move.w   #$0800,$00dff09c
         move.w   #-$7fff,$00dff09c
         move.w   #-$7800,$00dff09a
         btst     #$05,$004f(a1)
         beq.s    E21
         bset     #$05,$0045(a6)
E21      move.b   $0045(a6),$004f(a1)
         tst.b    $001f(a1)
         bne.s    E22
         addq.w   #$1,$0020(a6)
         movea.l  $0062(a6),a0
         dc.b     $20,$78,$00,$04
                           ;  movea.l  ($0004).w,a0
         move.w   #$4000,$00dff09a
         addq.b   #$1,$0126(a0)
         move.b   $00bfd200,$01da(a6)
         andi.b   #$07,$00bfd200
         move.b   $00bfd000,$01db(a6)
         ori.b    #-$40,$00bfd200
         andi.b   #$1f,$00bfd000
         andi.b   #-$39,$00bfd200
         dc.b     $20,$78,$00,$04
                           ;  movea.l  ($0004).w,a0
         subq.b   #$1,$0126(a0)
         bge.s    E22
         move.w   #-$4000,$00dff09a
E22      move.l   $0022(a6),$0030(a1)
         move.l   $0036(a6),$0034(a1)
         clr.w    $0050(a1)
         move.l   $0042(a6),$004c(a1)
         move.l   $01c2(a6),$003c(a1)
         move.l   $006a(a6),$0040(a1)
         move.l   $01ba(a6),$0038(a1)
         move.l   $006e(a6),$0044(a1)
         move.l   $0072(a6),$0048(a1)
         rts      

E23      movem.l  d2/a1/a3,-(a7)
         move.l   a3,d1
         beq.s    E24
         tst.l    d0
         beq.s    E24
         movea.l  a3,a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00d2(a6)
         movea.l  (a7)+,a6
E24      move.l   d2,d0
         beq.s    E25
         moveq    #$01,d1
         addq.w   #$1,$0020(a6)
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00c6(a6)
         movea.l  (a7)+,a6
         subq.w   #$1,$0020(a6)
         tst.l    d0
         beq.s    E25
         move.l   d2,$0036(a6)
E25      move.l   d0,$0026(a6)
         move.l   d0,$002e(a6)
         move.l   d0,$002a(a6)
         move.l   d0,$0032(a6)
         add.l    d2,$0032(a6)
         clr.l    $003a(a6)
         clr.l    $003e(a6)
         lsr.l    #$1,d2
         move.l   d2,$01c6(a6)
         lsr.l    #$1,d2
         move.l   d2,$01ca(a6)
         movem.l  (a7)+,d2/a1/a3
         tst.l    d0
         rts      

E26      dc.b     $00,$70,$04,$b0,$09,$60
         dc.b     $12,$c0,$25,$80,$4b,$00
         dc.b     $7a,$12,$e1,$00
E27      dc.b     $02,$00,$04,$00,$08,$00
         dc.b     $10,$00,$1f,$40,$3e,$80
         dc.b     $70,$00,$23,$40,$00,$14
         dc.b     $13,$40,$00,$1f,$4a,$6e
         dc.b     $00,$20,$67,$00,$00,$d0
         dc.b     $53,$6e,$00,$20,$66,$00
         dc.b     $00,$c8

E28      clr.l    $004e(a6)
         clr.l    $004a(a6)
         clr.l    $0046(a6)
         move.w   #$4000,$00dff09a
         addq.b   #$1,$0126(a6)
         move.b   $00bfd200,d0
         andi.b   #$07,d0
         ori.b    #-$08,d0
         move.b   d0,$00bfd200
         move.b   $00bfd000,d0
         move.b   $01db(a6),d1
         andi.b   #-$08,d1
         andi.b   #$07,d0
         or.b     d1,d0
         move.b   d0,$00bfd000
         move.b   $00bfd200,d0
         andi.b   #$07,d0
         move.b   $01da(a6),d1
         andi.b   #-$08,d1
         or.b     d1,d0
         move.b   d0,$00bfd200
         subq.b   #$1,$0126(a6)
         bge.s    E29
         move.w   #-$4000,$00dff09a
E29      clr.w    $0020(a6)
         lea      $0122(a6),a0
         bsr.l    E42
         lea      $0182(a6),a0
         bsr.l    E42
         move.l   a1,-(a7)
         lea      $0182(a6),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$01c2(a6)
         movea.l  (a7)+,a6
         movea.l  (a7)+,a1
         bclr     #$05,$0045(a6)
         movem.l  d2/a1/a3,-(a7)
         move.l   $0036(a6),d0
         clr.l    d2
         movea.l  $0026(a6),a3
         bsr.l    E23
         movem.l  (a7)+,d2/a1/a3
         move.w   #$0801,$00dff09a
         btst     #$06,$01d8(a6)
         beq.s    E30
         jsr      -$0012(a6)
E30      rts      

         dc.b     $13,$7c,$00,$05,$00,$08
         dc.b     $02,$29,$00,$8f,$00,$1e
         dc.b     $30,$29,$00,$1c,$0c,$40
         dc.b     $00,$0b,$62,$58,$42,$29
         dc.b     $00,$1f,$e5,$48,$41,$fa
         dc.b     $00,$20,$20,$70,$00,$00
         dc.b     $4e,$d0

E31      move.w   #$0051,d1
         and.b    $001e(a1),d1
         bne.s    E32
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$017a(a6)
         movea.l  (a7)+,a6
E32      rts      

         dc.l     L33
         dc.l     L51
         dc.l     L105
         dc.l     L43
         dc.l     L33
         dc.l     L54
         dc.l     L56
         dc.l     L57
         dc.l     L58
         dc.l     L65
         dc.l     L66
         dc.l     L73
L33      dc.b     $13,$7c,$00,$fd,$00,$1f
         dc.b     $60,$b0,$08,$ee,$00,$07
         dc.b     $01,$d8,$33,$fc,$08,$01
         dc.b     $00,$df,$f0,$9a

         bsr.s    E34
         move.w   #-$77ff,$00dff09a
         bclr     #$07,$01d8(a6)
         rts      

E34      clr.b    $001f(a1)
         cmpi.w   #$0002,$001c(a1)
         beq.s    E35
         cmpi.w   #$0003,$001c(a1)
         beq.l    E37
         cmpi.w   #$000a,$001c(a1)
         beq.s    E37
         bra.l    E41

E35      cmpa.l   $004a(a6),a1
         bne.s    E36
         bclr     #$01,$01d8(a6)
         clr.l    $004a(a6)
         bra.s    E40

E36      btst     #$06,$001e(a1)
         beq.l    E41
         move.l   a1,-(a7)
         movea.l  (a1),a0
         movea.l  $0004(a1),a1
         move.l   a0,(a1)
         move.l   a1,$0004(a0)
         movea.l  (a7)+,a1
         subq.w   #$1,$0046(a6)
         bra.s    E40

E37      cmpa.l   $004e(a6),a1
         bne.s    E39
         cmpi.w   #$000a,$001c(a1)
         bne.s    E38
         bclr     #$05,$01d6(a6)
         beq.s    E38
         movea.l  #$00dff09e,a0
         move.w   #$0800,(a0)
E38      lea      $0122(a6),a0
         bsr.s    E42
         clr.l    $004e(a6)
         bclr     #$04,$01d8(a6)
         bra.s    E40

E39      btst     #$06,$001e(a1)
         beq.l    E41
         move.l   a1,-(a7)
         movea.l  (a1),a0
         movea.l  $0004(a1),a1
         move.l   a0,(a1)
         move.l   a1,$0004(a0)
         movea.l  (a7)+,a1
         subq.w   #$1,$0048(a6)
E40      bset     #$05,$001e(a1)
         andi.b   #-$51,$001e(a1)
         move.b   #-$02,$001f(a1)
         btst     #$00,$001e(a1)
         bne.s    E41
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$017a(a6)
         movea.l  (a7)+,a6
E41      rts      

E42      move.l   a1,-(a7)
         movea.l  a0,a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$01e0(a6)
         movea.l  (a7)+,a6
         movea.l  (a7)+,a1
         rts      

         dc.b     $70,$00,$4a,$6e,$00,$20
         dc.b     $67,$02,$4e,$75,$2f,$0e
         dc.b     $2c,$6e,$01,$b6,$20,$3c
         dc.b     $00,$00,$00,$01

         jsr      -$000c(a6)
         move.l   #$00000000,d0
         jsr      -$000c(a6)
         movea.l  (a7)+,a6
         move.l   #$0000000b,d0
         movea.l  $01ae(a6),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00a2(a6)
         movea.l  (a7)+,a6
         move.l   #$00000000,d0
         movea.l  $01b2(a6),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00a2(a6)
         movea.l  (a7)+,a6
         move.l   $01aa(a6),-(a7)
         lea      $014a(a6),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$0168(a6)
         movea.l  (a7)+,a6
         lea      $00ea(a6),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$0168(a6)
         movea.l  (a7)+,a6
         movea.l  a6,a1
         movea.l  (a1),a0
         movea.l  $0004(a1),a1
         move.l   a0,(a1)
         move.l   a1,$0004(a0)
         movea.l  a6,a1
         clr.l    d0
         move.w   $0010(a6),d0
         suba.l   d0,a1
         add.w    $0012(a6),d0
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00d2(a6)
         movea.l  (a7)+,a6
         move.l   (a7)+,d0
         rts      

L43      dc.b     $42,$a9,$00,$20,$4a,$a9
         dc.b     $00,$24,$67,$00,$fe,$04
         dc.b     $08,$a9,$00,$00,$00,$1e
         dc.b     $08,$ee,$00,$07,$01,$d8
         dc.b     $33,$fc,$00,$01,$00,$df
         dc.b     $f0,$9a,$4a,$6e,$00,$48
         dc.b     $66,$32,$4a,$ae,$00,$4e
         dc.b     $66,$2c,$08,$e9,$00,$04
         dc.b     $00,$1e,$42,$ae,$00,$5e
         dc.b     $2d,$69,$00,$28,$00,$56
         dc.b     $2d,$49,$00,$4e,$33,$fc
         dc.b     $80,$01,$00,$df,$f0,$9c
         dc.b     $33,$fc,$80,$01,$00,$df
         dc.b     $f0,$9a,$08,$ae,$00,$07
         dc.b     $01,$d8
L44      dc.b     $4e,$75,$08,$e9,$00,$06
         dc.b     $00,$1e,$41,$ee,$00,$b0
         dc.b     $41,$e8,$00,$04,$20,$28
         dc.b     $00,$04,$21,$49,$00,$04
         dc.b     $22,$88,$23,$40,$00,$04
         dc.b     $20,$40,$20,$89,$52,$6e
         dc.b     $00,$48,$33,$fc,$80,$01
         dc.b     $00,$df,$f0,$9a,$08,$ae
         dc.b     $00,$07,$01,$d8,$4e,$75
L45      dc.b     $4a,$29,$01,$d9,$66,$00
         dc.b     $01,$8e,$48,$e7,$20,$02
         dc.b     $2c,$49,$08,$2e,$00,$05
         dc.b     $01,$d6,$66,$00,$01,$70
         dc.b     $4a,$ae,$00,$4e,$67,$00
         dc.b     $01,$1e,$22,$6e,$00,$4e
         dc.b     $08,$29,$00,$05,$00,$1e
         dc.b     $66,$00,$01,$10,$08,$2e
         dc.b     $00,$02,$01,$d8,$66,$00
         dc.b     $01,$50,$08,$2e,$00,$02
         dc.b     $00,$45,$67,$3c,$10,$39
         dc.b     $00,$bf,$d0,$00,$02,$00
         dc.b     $00,$18,$67,$30,$08,$00
         dc.b     $00,$03,$67,$0a,$13,$7c
         dc.b     $00,$0d,$00,$1f,$60,$00
         dc.b     $00,$c4,$53,$6e,$01,$dc
         dc.b     $66,$0a,$13,$7c,$00,$0b
         dc.b     $00,$1f,$60,$00,$00,$b4
         dc.b     $70,$00,$30,$2e,$01,$ce
         dc.b     $ed,$88

         bsr.l    E70
         bra.l    E50

         dc.b     $3d,$7c,$05,$dc,$01,$dc
         dc.b     $20,$6e,$00,$56,$42,$40
         dc.b     $10,$10,$22,$29,$00,$24
         dc.b     $6a,$10,$08,$2e,$00,$04
         dc.b     $01,$d8,$67,$10,$53,$ae
         dc.b     $00,$5e,$60,$00,$00,$80
         dc.b     $b2,$ae,$00,$5e,$63,$00
         dc.b     $00,$78,$33,$fc,$00,$01
         dc.b     $00,$df,$f0,$9c,$08,$ae
         dc.b     $00,$04,$01,$d8,$c0,$6e
         dc.b     $01,$d2,$66,$06,$08,$ee
         dc.b     $00,$04,$01,$d8,$08,$2e
         dc.b     $00,$00,$00,$45,$67,$20
         dc.b     $08,$2e,$00,$01,$01,$bd
         dc.b     $67,$0a,$08,$2e,$00,$00
         dc.b     $01,$bd,$66,$0a,$60,$0e

         jsr      L122
         beq.s    E46
         move.b   $0043(a6),d1
         bset     d1,d0
E46      or.w     $01d4(a6),d0
         move.w   d0,$00dff030
         addq.l   #$1,$0056(a6)
         addq.l   #$1,$005e(a6)
         btst     #$06,$004f(a1)
         beq.s    E48
         lea      $006e(a6),a0
         moveq    #$07,d1
E47      cmp.b    (a0)+,d0
         dbcc     d1,E47
         beq.s    E49
E48      move.l   $0024(a1),d0
         bmi.s    E50
         cmp.l    $005e(a6),d0
         bge.s    E50
E49      move.l   $005e(a6),$0020(a1)
         bclr     #$04,$01d8(a6)
         clr.l    $004e(a6)
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$017a(a6)
         movea.l  (a7)+,a6
         bra.s    E50

         dc.b     $4a,$6e,$00,$48,$67,$44
         dc.b     $41,$ee,$00,$b0,$22,$50
         dc.b     $20,$11,$67,$08,$20,$80
         dc.b     $c1,$89,$23,$48,$00,$04
         dc.b     $22,$40,$2d,$40,$00,$4e
         dc.b     $53,$6e,$00,$48,$08,$e9
         dc.b     $00,$04,$00,$1e,$08,$a9
         dc.b     $00,$06,$00,$1e,$42,$ae
         dc.b     $00,$5e,$2d,$69,$00,$28
         dc.b     $00,$56,$0c,$69,$00,$0a
         dc.b     $00,$1c,$66,$04

         bsr.l    E67
E50      movem.l  (a7)+,d2/a6
         rts      

         dc.b     $33,$fc,$00,$01,$00,$df
         dc.b     $f0,$9a,$4c,$df,$40,$04
         dc.b     $4e,$75,$33,$fc,$00,$01
         dc.b     $00,$df,$f0,$9c,$42,$41
         dc.b     $12,$29,$01,$d9,$82,$69
         dc.b     $01,$d4,$42,$29,$01,$d9
         dc.b     $33,$c1,$00,$df,$f0,$30
         dc.b     $4a,$a9,$00,$4e,$66,$0e
         dc.b     $4a,$69,$00,$48,$66,$08
         dc.b     $33,$fc,$00,$01,$00,$df
         dc.b     $f0,$9a,$4e,$75,$00,$00
L51      dc.b     $33,$fc,$08,$01,$00,$df
         dc.b     $f0,$9a

         bsr.l    E59
         move.l   a1,-(a7)
         move.l   $004a(a6),d0
         beq.s    E52
         movea.l  d0,a1
         bsr.l    E34
E52      move.l   $004e(a6),d0
         beq.s    E53
         movea.l  d0,a1
         bsr.l    E34
E53      andi.b   #$20,$0045(a6)
         clr.b    $01d8(a6)
         movea.l  (a7)+,a1
         move.l   #$11130000,$0030(a1)
         move.l   #$00002580,$003c(a1)
         move.l   #$08080100,$004c(a1)
         move.l   #$0003d090,$0040(a1)
         move.l   #$00000200,$0034(a1)
         lea      $0044(a1),a0
         clr.l    (a0)+
         clr.l    (a0)
         bsr.l    E78
         bsr.s    E55
         move.w   #-$77ff,$00dff09a
         bra.l    E31

L54      bsr.s    E55
         bra.l    E31

E55      move.l   $0026(a6),$002a(a6)
         move.l   $0026(a6),$002e(a6)
         clr.l    $003a(a6)
         rts      

L56      dc.b     $20,$2e,$00,$4e,$67,$06
         dc.b     $08,$ee,$00,$02,$01,$d8
         dc.b     $20,$2e,$00,$4a,$67,$04

         bsr.l    E146
         bra.l    E31

L57      dc.b     $08,$ae,$00,$02,$01,$d8
         dc.b     $20,$2e,$00,$4a,$67,$04

         bsr.l    E145
         move.w   #-$7fff,$00dff09c
         move.w   #-$7fff,$00dff09a
         bra.l    E31

L58      dc.b     $33,$fc,$08,$01,$00,$df
         dc.b     $f0,$9a

         bsr.l    E59
         move.w   #-$77ff,$00dff09a
         bra.l    E31

E59      move.l   a1,-(a7)
         lea      $00a2(a6),a0
         bsr.l    E60
         lea      $00b0(a6),a0
         bsr.l    E60
         clr.l    $0046(a6)
         movea.l  (a7)+,a1
         rts      

E60      movea.l  (a0),a1
         move.l   (a1),d0
         beq.s    E61
         move.l   d0,(a0)
         exg      d0,a1
         move.l   a0,$0004(a1)
E61      tst.l    d0
         beq.l    E62
         movea.l  d0,a1
         bsr.l    E63
         bra.s    E60

E62      rts      

E63      bset     #$05,$001e(a1)
         move.b   #-$02,$001f(a1)
         btst     #$00,$001e(a1)
         bne.s    E64
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$017a(a6)
         movea.l  (a7)+,a6
E64      rts      

L65      dc.b     $20,$7c,$00,$bf,$d0,$fe
         dc.b     $10,$10,$08,$2e,$00,$02
         dc.b     $00,$45,$67,$10,$02,$00
         dc.b     $00,$ef,$08,$2e,$00,$03
         dc.b     $01,$d8,$67,$04,$08,$c0
         dc.b     $00,$04,$02,$00,$00,$fc
         dc.b     $13,$40,$00,$51,$13,$6e
         dc.b     $01,$d6,$00,$50,$02,$29
         dc.b     $00,$1f,$00,$50,$02,$2e
         dc.b     $00,$f9,$01,$d6,$23,$6e
         dc.b     $00,$3a,$00,$20,$60,$00
         dc.b     $fa,$3c
L66      dc.b     $08,$a9,$00,$00,$00,$1e
         dc.b     $08,$29,$00,$03,$00,$4f
         dc.b     $67,$10,$4a,$6e,$00,$48
         dc.b     $66,$00,$fc,$70,$4a,$ae
         dc.b     $00,$4e,$66,$00,$fc,$68

E67      bset     #$05,$01d6(a6)
         move.l   $006a(a6),d0
         bsr.l    E70
         move.l   a1,$004e(a6)
         movea.l  #$00dff09e,a0
         move.w   #-$7800,(a0)
         rts      

L68      dc.b     $08,$a9,$00,$05,$01,$d6
         dc.b     $67,$38,$48,$e7,$00,$42
         dc.b     $2c,$49,$22,$6e,$00,$4e
         dc.b     $67,$28,$0c,$69,$00,$0a
         dc.b     $00,$1c,$66,$20,$08,$ee
         dc.b     $00,$01,$01,$d6,$42,$ae
         dc.b     $00,$4e,$20,$7c,$00,$df
         dc.b     $f0,$9e,$30,$bc,$08,$00
         dc.b     $2f,$0e,$2c,$6e,$00,$62

         jsr      -$017a(a6)
         movea.l  (a7)+,a6
         movem.l  (a7)+,a1/a6
         btst     #$07,$01d8(a1)
         bne.s    E69
         move.w   #-$7fff,$00dff09a
E69      rts      

E70      movem.l  a1/a6,-(a7)
         move.w   #$0001,$00dff09a
         lea      $0122(a6),a1
         cmpi.b   #$05,$0008(a1)
         beq.s    E72
         clr.l    $0020(a1)
         cmpi.l   #$00000258,d0
         bhi.s    E71
         move.l   #$00000258,d0
E71      ori.b    #-$01,d0
         move.l   d0,$0024(a1)
         move.w   #$0009,$001c(a1)
         clr.b    $001e(a1)
         movea.l  $0014(a1),a6
         jsr      -$001e(a6)
         movem.l  (a7)+,a1/a6
         rts      

E72      movem.l  (a7)+,a1/a6
         rts      

         dc.b     $00,$00
L73      dc.b     $08,$29,$00,$07,$00,$4f
         dc.b     $67,$26,$08,$ee,$00,$07
         dc.b     $00,$45,$08,$ae,$00,$02
         dc.b     $01,$d8,$08,$2e,$00,$03
         dc.b     $01,$d8,$67,$18,$08,$a9
         dc.b     $00,$07,$00,$4f

         bsr.l    E145
         bset     #$07,$004f(a1)
         bra.s    E74

         dc.b     $08,$ae,$00,$07,$00,$45

E74      btst     #$01,$01d8(a6)
         bne.s    E75
         tst.l    $004e(a6)
         bne.s    E75
         btst     #$04,$001e(a1)
         bne.s    E75
         tst.l    $0046(a6)
         beq.s    E76
E75      move.b   #$01,$001f(a1)
         bra.l    E77

E76      move.w   #$0801,$00dff09a
         bsr.l    E78
         move.w   #-$77ff,$00dff09a
E77      bra.l    E31

E78      movem.l  d2/a3,-(a7)
         tst.b    $004c(a1)
         beq.l    E88
         cmpi.b   #$08,$004c(a1)
         bgt.l    E88
         tst.b    $004d(a1)
         beq.l    E88
         cmpi.b   #$08,$004d(a1)
         bgt.l    E88
         cmpi.b   #$02,$004e(a1)
         bgt.l    E88
         move.l   $003c(a1),d0
         cmpi.l   #$00000070,d0
         blt.l    E88
         cmpi.l   #$000474a0,d0
         bgt.l    E88
         tst.l    $0030(a1)
         beq.l    E88
         move.b   $004c(a1),$0042(a6)
         move.b   $004d(a1),$0043(a6)
         move.b   $004e(a1),$0044(a6)
         move.l   $0030(a1),$0022(a6)
         move.l   $0038(a1),$01ba(a6)
         btst     #$04,$004f(a1)
         beq.s    E79
         bset     #$07,$004f(a1)
E79      btst     #$01,$003b(a1)
         beq.s    E80
         bset     #$00,$004f(a1)
E80      move.b   $0045(a6),d0
         andi.b   #$20,d0
         move.b   $004f(a1),$0045(a6)
         or.b     d0,$0045(a6)
         move.b   $0045(a6),$004f(a1)
         move.l   $003c(a1),$01c2(a6)
         bsr.l    E90
         move.l   $0044(a1),$006e(a6)
         move.l   $0048(a1),$0072(a6)
         bsr.l    E83
         tst.l    $0040(a1)
         beq.l    E88
         move.l   $0040(a1),$006a(a6)
         move.l   $0036(a6),d0
         cmp.l    $0034(a1),d0
         beq.s    E82
         move.l   $0034(a1),d2
         cmpi.l   #$00000040,d2
         blt.s    E81
         movea.l  $0026(a6),a3
         bsr.l    E23
         tst.l    d0
         bne.s    E82
E81      move.b   #$04,$001f(a1)
E82      movem.l  (a7)+,d2/a3
         rts      

E83      clr.l    d0
         clr.l    d1
         move.b   $004d(a1),d0
         tst.b    $004e(a1)
         beq.s    E84
         bset     d0,d1
         cmpi.b   #$02,$004e(a1)
         bne.s    E84
         lsl.w    #$1,d1
         bset     d0,d1
E84      btst     #$00,$0045(a6)
         beq.s    E85
         lsl.w    #$1,d1
E85      move.w   d1,$01d4(a6)
         bsr.l    E86
         move.w   d0,$01d2(a6)
         clr.w    d0
         move.b   $004c(a1),d0
         bsr.l    E86
         move.w   d0,$01d0(a6)
         rts      

E86      btst     #$00,$0045(a6)
         bne.s    E87
         subq.w   #$1,d0
E87      lsl.w    #$1,d0
         lea      E89(pc),a0
         move.w   $00(a0,d0.w),d0
         rts      

E88      move.b   #$05,$001f(a1)
         bra.s    E82

E89      dc.b     $00,$01,$00,$03,$00,$07
         dc.b     $00,$0f,$00,$1f,$00,$3f
         dc.b     $00,$7f,$00,$ff,$01,$ff
         dc.b     $03,$ff

E90      move.l   $01c2(a6),d0
         move.l   d0,d1
         lsl.l    #$3,d0
         sub.l    d1,d0
         move.l   a1,-(a7)
         movea.l  $0062(a6),a1
         moveq    #$00,d1
         move.b   $0213(a1),d1
         movea.l  #$017d7840,a1
         cmpi.b   #$32,d1
         bne.l    E91
         movea.l  #$0179ff40,a1
E91      move.l   a1,d1
         movea.l  (a7)+,a1
         cmpi.l   #$0000ffff,d0
         ble.s    E92
         lsr.l    #$5,d0
         divu     d0,d1
         andi.l   #$0000ffff,d1
         lsr.l    #$5,d1
         bra.s    E93

E92      divu     d0,d1
E93      move.w   d1,$01ce(a6)
         move.w   $01ce(a6),d0
         bclr     #$05,$01d8(a6)
         cmpi.b   #$08,$0042(a6)
         bne.s    E94
         btst     #$00,$0045(a6)
         beq.s    E94
         bset     #$0f,d0
         bset     #$05,$01d8(a6)
E94      move.w   d0,$00dff032
         rts      

         dc.b     $00,$00,$e0,$00,$00,$08
         dc.b     $03,$00,$c0,$00,$00,$0a
         dc.l     L3
         dc.b     $e0,$00,$00,$0e,$06,$00
         dc.b     $d0,$00,$00,$14,$00,$22
         dc.b     $d0,$00,$00,$16,$00,$0c
         dc.b     $c0,$00,$00,$18
         dc.l     L1
         dc.b     $c0,$00,$00,$22,$11,$13
         dc.b     $00,$00,$c0,$00,$01,$c2
         dc.b     $00,$00,$25,$80,$d0,$00
         dc.b     $01,$ce,$01,$74,$d0,$00
         dc.b     $01,$d0,$00,$ff,$d0,$00
         dc.b     $01,$d2,$00,$ff,$d0,$00
         dc.b     $01,$d4,$01,$00,$c0,$00
         dc.b     $00,$42,$08,$08,$01,$00
         dc.b     $c0,$00,$00,$6a,$00,$03
         dc.b     $d0,$90,$c0,$00,$00,$36
         dc.b     $00,$00,$02,$00,$c0,$00
         dc.b     $01,$be,$69,$96,$69,$96
         dc.b     $00,$00
L95      dc.b     $48,$e7,$00,$a0,$41,$fa
         dc.b     $f2,$1c,$43,$fa,$ff,$84
         dc.b     $95,$ca,$20,$3c,$00,$00
         dc.b     $01,$de,$2f,$0e,$2c,$4e

         jsr      -$0054(a6)
         movea.l  (a7)+,a6
         movem.l  (a7)+,a0/a2
         tst.l    d0
         beq.l    E104
         move.l   a6,d1
         movem.l  a3/a6,-(a7)
         movea.l  d0,a6
         move.l   a0,$01aa(a6)
         move.l   d1,$0062(a6)
         move.w   #$05dc,$01dc(a6)
         lea      E6(pc),a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$01f2(a6)
         movea.l  (a7)+,a6
         move.l   d0,$01b6(a6)
         beq.l    E104
         lea      L3(pc),a1
         move.l   #$00000000,d0
         move.l   a6,-(a7)
         movea.l  $01b6(a6),a6
         jsr      -$0006(a6)
         tst.l    d0
         bne.l    E96
         move.l   #$00000001,d0
         lea      L3(pc),a1
         jsr      -$0006(a6)
E96      movea.l  (a7)+,a6
         tst.l    d0
         beq.s    E97
         movem.l  (a7)+,a3/a6
         bra.l    E104

E97      lea      $00be(a6),a0
         lea      L44,a3
         bsr.s    E99
         lea      $00d4(a6),a0
         lea      L106,a3
         bsr.s    E99
         bra.l    E101

E98      move.l   a0,$0010(a1)
E99      move.b   #$10,$0009(a0)
         move.l   #L3,$000a(a0)
         move.l   a3,$0012(a0)
         move.l   a6,$000e(a0)
         rts      

E100     move.l   #L3,$000a(a1)
         move.b   #$00,$0009(a1)
         move.b   #$01,$000e(a1)
         move.b   #$04,$0008(a1)
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$0162(a6)
         movea.l  (a7)+,a6
         rts      

E101     lea      $00ea(a6),a1
         bsr.s    E100
         lea      $010c(a6),a0
         lea      L68,a3
         bsr.s    E98
         lea      $0122(a6),a0
         move.b   #$07,$0008(a0)
         lea      $00ea(a6),a3
         move.l   a3,$000e(a0)
         lea      $014a(a6),a1
         bsr.s    E100
         lea      $016c(a6),a0
         lea      L149,a3
         bsr.s    E98
         lea      $0182(a6),a0
         move.b   #$07,$0008(a0)
         lea      $014a(a6),a3
         move.l   a3,$000e(a0)
         movea.l  a6,a1
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$01b0(a6)
         movea.l  (a7)+,a6
         lea      $0076(a6),a1
         moveq    #$0b,d0
         move.l   #L128,$0012(a1)
         bsr.s    E102
         move.l   d0,$01ae(a6)
         lea      $008c(a6),a1
         move.l   #L45,$0012(a1)
         moveq    #$00,d0
         bsr.s    E102
         move.l   d0,$01b2(a6)
         move.w   #$0801,$00dff09a
         moveq    #$01,d0
         movem.l  (a7)+,a3/a6
         bra.s    E103

E102     move.l   a6,$000e(a1)
         move.l   #L3,$000a(a1)
         move.b   #$02,$0008(a1)
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$00a2(a6)
         movea.l  (a7)+,a6
E103     rts      

E104     clr.l    d0
         bra.s    E103

L105     dc.b     $42,$a9,$00,$20,$22,$29
         dc.b     $00,$24,$67,$00,$f4,$e8
         dc.b     $4a,$6e,$00,$46,$66,$0c
         dc.b     $4a,$ae,$00,$4a,$66,$06
         dc.b     $b2,$ae,$00,$3a,$63,$06
         dc.b     $08,$a9,$00,$00,$00,$1e
         dc.b     $08,$e9,$00,$06,$00,$1e
         dc.b     $41,$ee,$00,$a2,$41,$e8
         dc.b     $00,$04,$20,$28,$00,$04
         dc.b     $21,$49,$00,$04,$22,$88
         dc.b     $23,$40,$00,$04,$20,$40
         dc.b     $20,$89,$52,$6e,$00,$46
         dc.b     $43,$ee,$00,$d4,$2f,$0e
         dc.b     $2c,$6e,$00,$62

         jsr      -$00b4(a6)
         movea.l  (a7)+,a6
         rts      

L106     dc.b     $48,$e7,$20,$02,$2c,$49
         dc.b     $20,$2e,$00,$4a,$66,$46

E107     tst.w    $0046(a6)
         ble.l    E121
         lea      $00a2(a6),a0
         movea.l  (a0),a1
         move.l   (a1),d0
         beq.s    E108
         move.l   d0,(a0)
         exg      d0,a1
         move.l   a0,$0004(a1)
E108     movea.l  d0,a1
         move.l   a1,$004a(a6)
         subq.w   #$1,$0046(a6)
         clr.l    $005a(a6)
         bset     #$04,$001e(a1)
         bclr     #$06,$001e(a1)
         move.l   $0028(a1),$0052(a6)
         bset     #$01,$01d8(a6)
         move.l   $0024(a1),d0
         bra.s    E109

         dc.b     $22,$40

E109     tst.l    $003a(a6)
         beq.l    E121
         move.l   $01c6(a6),d1
         cmp.l    $003a(a6),d1
         ble.s    E110
         btst     #$03,$01d8(a6)
         beq.s    E110
         bsr.l    E145
E110     movea.l  $002e(a6),a0
         move.b   (a0)+,d0
         cmpa.l   $0032(a6),a0
         blt.s    E111
         movea.l  $0026(a6),a0
E111     subq.l   #$1,$003a(a6)
         move.l   a0,$002e(a6)
         subq.l   #$1,a0
         cmpa.l   $0026(a6),a0
         bne.l    E112
         movea.l  $0032(a6),a0
E112     cmpa.l   $003e(a6),a0
         beq.l    E124
         btst     #$00,$0045(a6)
         beq.s    E117
         btst     #$05,$01d8(a6)
         bne.s    E117
         btst     #$01,$01bd(a6)
         beq.s    E114
         move.b   $0042(a6),d1
         bclr     d1,d0
         bne.s    E113
         btst     #$00,$01bd(a6)
         bne.s    E115
         bra.s    E116

E113     btst     #$00,$01bd(a6)
         beq.s    E115
         bra.s    E117

E114     bsr.s    L122
         beq.s    E116
E115     move.b   #$09,$001f(a1)
         bra.s    E120

E116     move.b   $0042(a6),d1
         bclr     d1,d0
E117     move.l   $0024(a1),d1
         movea.l  $0052(a6),a0
         move.b   d0,(a0)
         bne.s    E118
         tst.l    d1
         bmi.s    E120
E118     addq.l   #$1,$0020(a1)
         addq.l   #$1,$0052(a6)
         cmp.l    $0020(a1),d1
         bls.s    E120
         btst     #$06,$004f(a1)
         beq.l    E109
         lea      $006e(a6),a0
         moveq    #$07,d1
E119     cmp.b    (a0)+,d0
         dbcc     d1,E119
         bne.l    E109
E120     clr.l    $004a(a6)
         bclr     #$01,$01d8(a6)
         bclr     #$04,$001e(a1)
         btst     #$00,$001e(a1)
         bne.l    E107
         move.l   a6,-(a7)
         movea.l  $0062(a6),a6
         jsr      -$017a(a6)
         movea.l  (a7)+,a6
         bra.l    E107

E121     movem.l  (a7)+,d2/a6
         rts      

L122     move.b   d0,d1
         asr.b    #$4,d1
         eor.b    d0,d1
         andi.b   #$0f,d1
         move.l   $01be(a6),d2
         btst     #$01,$0045(a6)
         beq.s    E123
         not.l    d2
E123     btst     d1,d2
         rts      

E124     bclr     #$02,$01d6(a6)
         beq.s    E125
         move.b   #$0f,$001f(a1)
         bra.s    E127

E125     bclr     #$07,$01d6(a6)
         beq.s    E126
         move.b   #$09,$001f(a1)
         bra.s    E127

E126     move.b   #$0c,$001f(a1)
         btst     #$00,$01d6(a6)
         beq.s    E127
         move.b   #$06,$001f(a1)
E127     clr.l    $003e(a6)
         andi.b   #$7e,$01d6(a6)
         bra.l    E120

         dc.b     $31,$7c,$08,$00,$00,$9c
         dc.b     $08,$ee,$00,$00,$01,$d6
         dc.b     $60,$00,$00,$b4,$00,$00
L128     dc.b     $48,$e7,$20,$02,$2c,$49
         dc.b     $30,$28,$00,$18,$6b,$e2
         dc.b     $31,$7c,$08,$00,$00,$9c
         dc.b     $08,$2e,$00,$04,$00,$45
         dc.b     $66,$00,$00,$a4,$02,$40
         dc.b     $0f,$ff,$67,$00,$01,$4a
         dc.b     $08,$ae,$00,$06,$01,$d6
         dc.b     $66,$00,$01,$a2

E129     and.w    $01d0(a6),d0
         btst     #$07,$0045(a6)
         bne.s    E132
         move.b   d0,d1
         btst     #$00,$0045(a6)
         beq.s    E130
         move.b   $0042(a6),d2
         bclr     d2,d1
E130     cmp.b    $0023(a6),d1
         bne.s    E131
         bset     #$02,$01d8(a6)
         bra.l    E144

E131     cmp.b    $0022(a6),d1
         bne.s    E132
         btst     #$02,$01d8(a6)
         beq.l    E144
         bclr     #$02,$01d8(a6)
         move.w   #-$7fff,$00dff09a
         bra.l    E144

E132     btst     #$05,$01d8(a6)
         beq.s    E137
         btst     #$01,$01bd(a6)
         bne.s    E135
         bsr.l    L122
E133     beq.s    E134
         btst     #$08,d0
         beq.s    E136
         bra.s    E137

E134     btst     #$08,d0
         bne.s    E136
         bra.s    E137

E135     btst     #$00,$01bd(a6)
         bra.s    E133

E136     bset     #$07,$01d6(a6)
         tst.l    $003e(a6)
         bne.s    E141
         move.l   $002a(a6),$003e(a6)
         bra.s    E141

E137     move.l   $0036(a6),d1
         cmp.l    $003a(a6),d1
         ble.s    E139
         movea.l  $002a(a6),a0
         move.b   d0,(a0)+
         move.l   a0,$002a(a6)
         addq.l   #$1,$003a(a6)
         cmpa.l   $0032(a6),a0
         blt.s    E138
         move.l   $0026(a6),$002a(a6)
E138     sub.l    $01ca(a6),d1
         cmp.l    $003a(a6),d1
         bge.s    E141
         bra.s    E140

E139     tst.l    $003e(a6)
         bne.s    E140
         move.l   $002a(a6),$003e(a6)
E140     bsr.s    E146
E141     tst.l    $004a(a6)
         beq.s    E143
E142     lea      $00d4(a6),a1
         movem.l  (a7)+,d2/a6
         jmp      -$00b4(a6)

E143     tst.w    $0046(a6)
         bgt.s    E142
E144     movem.l  (a7)+,d2/a6
         rts      

E145     move.b   $0022(a6),$01d9(a6)
         bclr     #$03,$01d8(a6)
         btst     #$02,$0045(a6)
         beq.s    E147
         bclr     #$06,$00bfd000
         bra.s    E147

E146     move.b   $0023(a6),$01d9(a6)
         bset     #$03,$01d8(a6)
         btst     #$02,$0045(a6)
         beq.s    E147
         bset     #$06,$00bfd000
E147     btst     #$07,$0045(a6)
         bne.s    E148
         move.w   #-$7fff,$00dff09a
         rts      

E148     clr.b    $01d9(a6)
         rts      

         dc.b     $08,$ee,$00,$06,$01,$d6
         dc.b     $66,$a0,$43,$ee,$01,$82
         dc.b     $42,$a9,$00,$20,$20,$2e
         dc.b     $00,$6a,$e2,$88,$66,$02
         dc.b     $70,$7f,$23,$40,$00,$24
         dc.b     $33,$7c,$00,$09,$00,$1c
         dc.b     $43,$ee,$01,$82,$2f,$0e
         dc.b     $2c,$69,$00,$14

         jsr      -$001e(a6)
         movea.l  (a7)+,a6
         bra.l    E144

L149     dc.b     $48,$e7,$20,$02,$2c,$49
         dc.b     $08,$ae,$00,$06,$01,$d6
         dc.b     $67,$16,$30,$39,$00,$df
         dc.b     $f0,$18,$02,$40,$0f,$ff
         dc.b     $66,$0a,$08,$ee,$00,$02
         dc.b     $01,$d6,$60,$00,$fe,$ea
         dc.b     $4c,$df,$40,$04,$4e,$75
         dc.b     $08,$ae,$00,$06,$01,$d6
         dc.b     $43,$ee,$01,$82,$2f,$29
         dc.b     $00,$0e,$42,$a9,$00,$0e
         dc.b     $2f,$0e,$2c,$6e,$00,$62

         jsr      -$01e0(a6)
         movea.l  (a7)+,a6
         lea      $0182(a6),a1
         move.l   (a7)+,$000e(a1)
         bra.l    E129

L150     EQU      seg0+$00001404

         END

