; graphics patches
; last update 10/01/2004

; a0 bob
; a1 rastport
AddBob:    movem.l    d7/a2-a3,-(sp)
           movea.l    A0,A3
           movea.l    A1,A2
           move.w     #$00FF,D0
           and.w      D0,(A3)       ; mask user settable bob flags
           movea.l    $12(A3),A0    ; struct *vSprite
           movea.l    A1,A3
           move.l     a0,-(sp)
           move.w     #$00FF,D0
           and.w      D0,$14(A0)    ; mask user settable vSprite flags
           move.l     $16(A0),D7    ; screen position
           movea.l    $14(A3),A0    ; rastport gels info
           movea.l    $2(A0),A3     ; gel Head
.JL_0_2A:   movea.l    A3,A2
           movea.l    (A2),A3
           move.l     $16(A3),D0
           cmp.l      D7,D0         ; find screen position
            blt.b      .JL_0_2A
           movea.l    (A2),A0
           movea.l    (sp)+,a1
           move.l     A0,(A1)
           movea.l    (A2),A0
           move.l     A1,$4(A0)
           move.l     A1,(A2)
           move.l     A2,$4(A1)
           move.l     D7,$10(A1)
           movem.l   (sp)+,d7/a2-a3
          rtS
 cnop 0,4
AllocRaster: add.w #15,d0
            asr.w #3,d0
            and.w #-2,d0
            mulu d1,d0
            moveq.l #MEMF_FAST,d1  ;original memory type was set to MEMF_CHIP!MEMF_PUBLIC
            move.l a6,-(a7)
            movea.l PExecBase(pc),a6
             jsr _LVOAllocMem(a6)
            movea.l (a7)+,a6
           rts
 cnop 0,4
DisposeRegion: move.l    D2,-(A7)
           movea.l    gb_ExecBase(A6),A6   ;ExecBase
           lea rg_RegionRectangle(a0),a1
           move.l     (A1),D2       ;this points to the first RegionRectangle to free
           clr.l (a1)
           movea.l a0,a1
           moveq.l #rg_SIZEOF,d0
            jsr _LVOFreeMem(a6)
           tst.l d2
            beq.b      .exit
.freeRR:   movea.l    D2,A1
           move.l     (A1),D2       ;take next RegionRectangle to free
           moveq.l    #rr_SIZEOF,D0       ;RegionRectangle is 16 bytes large
            jsr        _LVOFreeMem(A6)
           tst.l      D2            ;if there are more RegionRectangle to free...
            bne.b      .freeRR      ;...free next
.exit:     move.l    (A7)+,D2
           movea.l PGfxBase(pc),a6
          rtS
 cnop 0,4
ClearRegion: move.l    D2,-(A7)
           clr.l      (A0)+   ;clear minx miny
           clr.l      (A0)+   ;clear maxx maxy
           move.l     (A0),D2 ;RegionRectangle
            beq.b      3$
           clr.l      (a0)    ;clear pointer to RegionRectangle
           movea.l    PExecBase(PC),A6
2$:        movea.l    D2,A1   ;remove all RegionRectangle in the region
           move.l   (a1),d2
           moveq.l    #rr_SIZEOF,D0
            jsr        _LVOFreeMem(A6)
           tst.l d2
            bne.b      2$             ;do this until there are rectangles
           movea.l    PGfxBase(PC),A6
3$:        move.l    (A7)+,D2
          rtS
 cnop 0,4
GetBitMapAttr moveq.l    #0,D0
           subq.l     #4,D1       ; sub 4 to attribute_number
            bpl.b      .depth     ; if attribute_number is yet positive jump to DEPTH
           move.w     2(A0),D0    ; otherwise give back bm_Rows or HEIGHT
          rtS
.depth:    subq.l     #4,D1
            bpl.b      .width   ; if attribute_number is positive then jump to WIDTH
           move.b     5(A0),D0  ; return bm_Depth
          rtS
 cnop 0,4
;here we verify that the bitmap is interleaved and after we calculate width
.width:   cmpi.w     #$805C,$6(A0)    ;  what's the rule of this bm_Pad ?
            bne.b      .calculate_width       ; if bm_Pad is not set the bitmap is not interleaved
           cmpi.b     #2,5(A0)      ; if depth < 2 then it can not be interleaved
            blt.b      .calculate_width       ;
           movea.l    12(A0),A1       ; if we are here then depth is bigger than 2
           suba.l     8(A0),A1       ; bm->Planes[1] - bm->Planes[0] in A1
           tst.w     A1               ; if NULL
            beq.b      .calculate_width       ; calculate width
           cmpa.w (a0),a1            ;if bm_BytesPerRow is greater
            bhi.b .calculate_width   ;than bm->Planes[1] - bm->Planes[0] then bitmap isn't interleaved
                                     ; in an interleaved bitmap must be...
                                     ; ...bm_BytesPerRow == bm->Planes[1] - bm->Planes[0]
           bset       #2,D0   ; set the interleaved bit
.calculate_width:
           subq.l     #4,D1
            bpl.b      .flags ; if positive jump to FLAGS
           move.w     (A0),D1 ; D1 holds bytesperrows
           tst.l      D0
            beq.b      .calcw
           move.l     A1,D1   ; D1 holds bm->Planes[1] - bm->Planes[0]
.calcw:    lsl.w      #3,D1   ; D1 * 8
           move.w     D1,D0
          rtS

 cnop 0,4
.flags:   subq.l     #4,D1
            bpl.b      .JL_0_92 ; if positive esc because error in the attribute_number parameter
           bset       #3,D0  ; standard bit or bitmap in chipram,
                             ; why this bit is set without controlling where the bitmap is?

.otherflags: movem.l d2-d3,-(a7)
           moveq.l    #0,D2
           moveq.l    #2,D1
           move.b     $ED(A6),D2
           movea.l    $1A8(A6),A1
           move.b     (A1,D2.W),D3
           asl.b      D3,D1
           subq.w     #1,D1
           move.w     (A0),D2
           and.w      D1,D2
            bne.b      .JL_0_8C
           moveq.l    #0,D2
           move.b     5(A0),D2
           subq.w     #1,D2
           addq.l     #8,A0
.JL_0_7E:   move.l     (A0)+,D3
           and.w      D1,D3
            dbne       D2,.JL_0_7E
            bne.b      .JL_0_8C
           bset       #1,D0  ; set the displayable bit
.JL_0_8C:   move.l    (A7)+,D2
            move.l    (a7)+,D3
          rtS
 cnop 0,4
.JL_0_92:   moveq.l    #0,D0
          rtS
 cnop 0,4
InitArea
    move.l  a1,(a0)+        ; 2 ai_VctrTbl
    mulu.w  #4,d0           ; 4 get ptr to  note: mulu.w fill whole longword!
    move.l  a1,(a0)+        ; 2 ai_VctrPtr
    adda.l  d0,a1           ; 2 FlagTbl
    lsr.l   #2,d0           ; 2 get original count
    move.l  a1,(a0)+        ; 2 ai_FlagTbl
    move.l  a1,(a0)+        ; 2 ai_FlagPtr
    move.l  d0,(a0)         ; 2 ai_Count (=0) & ai_MaxCount
    bra.b   .goclr          ; 2 clear the FlagTbl
.clr    clr.b   (a1)+           ; 2
.goclr  dbf d0,.clr         ; 4
    rts
 cnop 0,4
;************************** text **********************************************
Text:
  movem.l D2-D7/A2-A5,-(A7)
  tst.w D0
   beq.w JL_0_574
  move.l (A1),D1
   beq.b 7$
  movea.l D1,A5
   bsr.w LockLayerRom ;jsr _LVOLockLayerRom(A6)
7$:
  movem.l D0/A0-A1,-(A7)
   bsr.w JL_0_B28
  movem.l (A7)+,d7/a3-a4
  lea -$68(A7),A7
  movea.l A7,A5
  move.b #$1,$18(A5)
  movem.w D0-D2,$6(A5)
  movea.l $34(A4),A2
  move.l (A4),D3
   beq.b 9$
  movea.l D3,A0
  tst.l $24(A0)
   bne.b 9$
  move.w $24(A4),D4
  add.w $10(A0),D4
  sub.w $2C(A0),D4
  move.w $26(A4),D5
  add.w $12(A0),D5
  sub.w $2E(A0),D5
  move.w D4,D6
  add.w D2,D4
  add.w D1,D6
  sub.w $1A(A2),D5
  movea.w D5,A1
  adda.w $14(A2),A1
  addq.l #8,A0
8$:
  move.l (A0),D3
   beq.w JL_0_55E
  movea.l D3,A0
  cmp.w $14(A0),D4
   bgt.b 8$
  cmp.w $10(A0),D6
   blt.b 8$
  cmp.w $16(A0),D5
   bgt.b 8$
  cmpa.w $12(A0),A1
   blt.b 8$
  tst.l $8(A0)
   beq.b 9$
  tst.l $C(A0)
   beq.b 8$
9$:
  move.w $14(A2),D6
   beq.w JL_0_55E
  move.w D1,D3
  sub.w D2,D3
   beq.w JL_0_55E
  moveq.l #$00,D5
  move.l $E(A2),D1
   beq.b JL_0_1DC
  movea.l D1,A0
  cmpi.w #$4E1B,(A0)
   bne.b JL_0_1DC
  cmpa.l $4(A0),A2
   bne.b JL_0_1DC
  btst #$1,$2(A0)
   beq.b JL_0_1DC
  tst.w $40(A4)
   bne.b JL_0_1DC
  move.b $38(A4),D5
  andi.b #$7,D5
   bne.b JL_0_1DC
  addq.w #8,D3
   bsr.b JL_0_1BC
  tst.l D1
   beq.b FJL_0_19C
  move.l A1,$48(A5)
   bsr.w WaitBlit ;jsr _LVOWaitBlit(a6)
 bra.w JL_0_21A
   cnop 0,4
FJL_0_19C:
  subq.w #1,D7
   beq.w JL_0_566
11$:
  subq.l #2,A7
  move.b (A3)+,(A7)
  movea.l A7,A0
  movea.l A4,A1
  moveq.l #$01,D0
   bsr.w Text
  addq.l #2,A7
   dbf D7,11$
 bra.w JL_0_566
   cnop 0,4
JL_0_1BC:
  lsr.w #4,D3
  add.w D3,D3
  move.w D3,$18(A5)
  move.w D6,D0
  mulu D3,D0
  move.l D0,$14(A5)
  moveq.l #$00,D1
   bsr.w JL_0_C14
  move.l D0,D1
  movea.l D1,A1
  move.l A1,$20(A5)
 rtS
 cnop 0,4
JL_0_1DC:
  add.w #$4F,D3
  add.w $1A(A2),D3
  btst #$6,$16(A2)
   bne.w JL_0_5BC
JL_0_1EE:
   bsr.b JL_0_1BC
  tst.l D1
   beq.b FJL_0_19C
  sub.w $1A(A2),D2
  move.w D2,D0
  asr.w #4,D0
  add.w D0,D0
  neg.w D0
  lea $4(A1,D0.W),A0
  move.l A0,$48(A5)
  tst.b D5
   beq.w JL_0_2BC
  move.w D6,D0
  mulu D3,D0
   bsr.w JL_0_CA8
  movea.l $48(A5),A1
JL_0_21A:
  movem.l A2/A4-A6,-(A7)
  move.w D6,D2
  subq.w #1,D2
  move.w D2,D0
  and.w #$7,D0
  move.b L_0_270(PC,D0.W),D0
  lea JL_0_27C(PC,D0.W),A6
  lsr.w #3,D2
  subq.w #1,D7
  move.b $21(A2),D6
  move.w $26(A2),D4
  move.b $20(A2),D1
  movea.l $28(A2),A4
  movea.l $22(A2),A2
  movea.l A1,A5
JL_0_24A:
  moveq.l #$00,D5
  move.b (A3)+,D5
  cmp.b D6,D5
   bhi.b 17$
  sub.b D1,D5
   bcc.b 18$
17$:
  move.b D6,D5
  sub.b D1,D5
  addq.w #1,D5
18$:
  add.w D5,D5
  add.w D5,D5
  move.w $0(A4,D5.W),D0
  lsr.w #3,D0
  lea $0(A2,D0.W),A1
  movea.l A5,A0
  move.w D2,D0
19$:
 jmp (A6)
L_0_270:
   dc.b "*$"
   dc.b $1E,$18,$12,$0C
   dc.b $06,$00
JL_0_278:
  adda.w D4,A1
  adda.w D3,A0
JL_0_27C:
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
  adda.w D4,A1
  adda.w D3,A0
  move.b (A1),(A0)
   dbf D0,JL_0_278
  addq.w #1,A5
   dbf D7,JL_0_24A
  movem.l (A7)+,a2/a4-a6
 bra.w JL_0_41A
   cnop 0,4
JL_0_2BC:
  move.w D6,D0
  mulu D3,D0
   bsr.w JL_0_CA8
  move.w D7,(A5)
  move.l A3,$2(A5)
  clr.w $6(A5)
24$:
  moveq.l #$00,D5
  movea.l $2(A5),A0
  move.b (A0)+,D5
  move.l A0,$2(A5)
  cmp.b $21(A2),D5
   bhi.b 25$
  sub.b $20(A2),D5
   bcc.b 26$
25$:
  move.b $21(A2),D5
  sub.b $20(A2),D5
  addq.w #1,D5
26$:
  add.w D5,D5
  move.w $6(A5),D3
  move.l $30(A2),D0
   beq.b 27$
  movea.l D0,A0
  add.w $0(A0,D5.W),D3
27$:
  move.w D3,D7
  move.l $2C(A2),D0
   bne.b 28$
  add.w $18(A2),D3
 bra.b 29$
  cnop 0,4
28$:
  movea.l D0,A0
  add.w $0(A0,D5.W),D3
29$:
  add.w $40(A4),D3
  move.w D3,$6(A5)
  add.w D5,D5
  movea.l $28(A2),A0
  move.l $0(A0,D5.W),D0
  move.w D0,D5
   beq.w 39$
  swap D0
  move.w D0,D3
  and.w #$F,D3
  lsr.w #4,D0
  add.w D0,D0
  movea.l $22(A2),A1
  adda.w D0,A1
  movea.w $26(A2),A3
  move.w $14(A2),D6
  move.w D5,D0
  subq.w #1,D0
  and.w #$F,D0
  add.w D0,D0
  lea L_0_C5C(PC),A0
  move.w $0(A0,D0.W),D4
  swap D4
  clr.w D4
  lsr.l D3,D4
  move.w D7,D0
  andi.w #$F,D7
  asr.w #4,D0
  add.w D0,D0
  movea.l $48(A5),A0
  adda.w D0,A0
  movea.w $18(A5),A2
  cmpi.w #$10,D5
   bls.b 34$
  move.l #$FFFF0000,D2
  lsr.l D3,D2
  sub.w #$11,D5
  lsr.w #4,D5
  move.w D5,D0
  add.w D0,D0
  addq.w #2,D0
  suba.w D0,A2
  suba.w D0,A3
  sub.w D7,D3
   bge.b 33$
  neg.w D3
 bra.b 31$
   cnop 0,4
30$:
  move.l (A1),D0
  and.l D2,D0
  lsr.l D3,D0
  or.l D0,(A0)
  addq.l #2,A1
  addq.l #2,A0
   dbf D1,30$
  move.l (A1),D0
  and.l D4,D0
  lsr.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
31$:
  move.w D5,D1
   dbf D6,30$
 bra.b 39$
 cnop 0,4
32$:
  move.l (A1),D0
  and.l D2,D0
  lsl.l D3,D0
  or.l D0,(A0)
  addq.l #2,A1
  addq.l #2,A0
   dbf D1,32$
  move.l (A1),D0
  and.l D4,D0
  lsl.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
33$:
  move.w D5,D1
   dbf D6,32$
 bra.b 39$
 cnop 0,4
34$:
  sub.w D7,D3
   bge.b 38$
  neg.w D3
 bra.b 36$
 cnop 0,4
35$:
  move.l (A1),D0
  and.l D4,D0
  lsr.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
36$:
   dbf D6,35$
 bra.b 39$
 cnop 0,4
37$:
  move.l (A1),D0
  and.l D4,D0
  lsl.l D3,D0
  or.l D0,(A0)
  adda.w A3,A1
  adda.w A2,A0
38$:
   dbf D6,37$
39$:
  movea.l $34(A4),A2
  subq.w #1,(A5)
   bne.w 24$
JL_0_41A:
  btst #$1,$38(A4)
   beq.b 43$
  move.w $1C(A2),D1
  cmpi.w #$10,D1
   bgt.b 42$
  movea.l $20(A5),A0
  move.l $14(A5),D0
  lsr.l #1,D0
  subq.l #2,D0
  moveq.l #$00,D3
  move.w (A0)+,D3
41$:
  swap D3
  move.l D3,D2
  lsr.l D1,D2
  moveq.l #$00,D3
  move.w (A0)+,D3
  or.l D2,-$4(A0)
   dbf D0,41$
 bra.b 43$
 cnop 0,4
42$:
  movem.l D2-D7/A2,-(A7)
  lea $18(A5),A0
  movea.l A0,A1
  moveq.l #$00,D0
  move.w D1,D2
  moveq.l #$00,D1
  moveq.l #$00,D3
  move.w (A0),D4
  lsl.w #3,D4
  sub.w D2,D4
  move.w $14(A2),D5
  move.w #$00E5,D6
  moveq.l #$01,D7
  suba.l A2,A2
   jsr _LVOBltBitMap(A6)
  movem.l (A7)+,D2-D7/A2
43$:
  btst #$2,$38(A4)
   beq.b 50$
  movea.l $20(A5),A0
  move.w $1A(A2),D0
  move.w D0,D6
  addq.w #1,D0
  mulu $18(A5),D0
  adda.l D0,A0
  movea.l A0,A1
  addq.w #1,D6
  move.w $14(A2),D5
  sub.w D6,D5
   blt.b 50$
  moveq.l #$01,D1
  move.w $18(A5),D7
  lsr.w #1,D7
  subq.w #1,D7
  move.w D7,-(A7)
 bra.b 46$
 cnop 0,4
44$:
  move.w (A7),D7
  addq.w #1,D1
  move.w D1,D2
  lsr.w #1,D2
  move.w D2,D3
  andi.w #$F,D2
  lsr.w #4,D3
  add.w D3,D3
45$:
  move.l $0(A0,D3.W),D0
  lsl.l D2,D0
  swap D0
  move.w D0,(A0)+
   dbf D7,45$
46$:
   dbf D5,44$
  moveq.l #-$01,D1
 bra.b 49$
 cnop 0,4
47$:
  move.w (A7),D7
  addq.w #1,D1
  move.w D1,D2
  lsr.w #1,D2
  move.w D2,D3
  andi.w #$F,D2
  lsr.w #4,D3
  add.w D3,D3
  neg.w D3
48$:
  move.l -$4(A1,D3.W),D0
  lsr.l D2,D0
  move.w D0,-(A1)
   dbf D7,48$
49$:
   dbf D6,47$
  addq.l #2,A7
50$:
  btst #$0,$38(A4)
   beq.b 51$
  movea.l $20(A5),A0
  move.w $1A(A2),D0
  addq.w #1,D0
  cmp.w $14(A2),D0
   bge.b 51$
  mulu $18(A5),D0
  adda.l D0,A0
  movea.l A0,A1
   bsr.b JL_0_57C
51$:
  movea.l $48(A5),A0
  movea.l A4,A1
  move.w $A(A5),D0
  move.w $18(A5),D1
  move.w $24(A4),D2
  add.w D0,D2
  move.w $26(A4),D3
  sub.w $1A(A2),D3
  move.w $8(A5),D4
  sub.w D0,D4
  move.w $14(A2),D5
   jsr _LVOBltTemplate(A6)
  move.l $14(A5),D0
   bsr.w WaitBlit ;jsr _LVOWaitBlit(a6)
  movea.l $20(A5),A1
   bsr.w JL_0_C84
JL_0_55E:
  move.w $6(A5),D0
  add.w D0,$24(A4)
JL_0_566:
  lea $68(A7),A7
  move.l (A4),D0
   beq.b JL_0_574
  movea.l D0,A5
   bsr.w UnlockLayerRom ;jsr _LVOUnlockLayerRom(A6)
JL_0_574:
  movem.l (A7)+,D2-D7/A2-A5
 rtS
  cnop 0,4
JL_0_57C:
  move.w $18(A5),D4
  lsr.w #1,D4
  subq.w #1,D4
  move.l (A0),D0
  move.l D0,D1
  swap D1
  lsr.w #1,D1
 bra.b 57$
   cnop 0,4
56$:
  or.w D3,(A1)+
  move.l D0,D1
  addq.l #2,A0
  move.l (A0),D0
  lsr.l #1,D1
57$:
  move.l D0,D2
  add.l D2,D2
  swap D2
  move.l D0,D3
  swap D3
  or.w D2,D3
  or.w D1,D3
  not.w D3
   dbf D4,56$
  btst #$10,D0
   bne.b 58$
  bset #$0,D3
58$:
  or.w D3,(A1)+
 rtS
 cnop 0,4
JL_0_5BC:
  moveq.l #$00,D4
  movea.l $4(A4),A0
  move.b $5(A0),D4
  moveq.l #$00,D1
  move.b $36(A2),D1
  btst #$0,$35(A2)
   beq.b 60$
  move.b $37(A2),D0
  cmp.b $39(A2),D0
   bhi.b 60$
  cmp.b $38(A2),D0
   bcc.b 61$
60$:
  cmp.b D1,D4
   bge.b 61$
  move.b D4,D1
61$:
  move.w D1,$C(A5)
  cmp.b D1,D4
   bge.b 62$
  move.b D1,D4
62$:
  move.w D3,D0
  lsr.w #4,D0
  add.w D0,D0
  move.w D0,$18(A5)
  move.w D0,$40(A5)
  mulu D6,D0
  move.l D0,$14(A5)
  move.w D4,$1C(A5)
   beq.w JL_0_1EE
  move.w D4,$44(A5)
  clr.w $1E(A5)
  clr.w $46(A5)
  move.w D6,$1A(A5)
  move.w D6,$42(A5)
  moveq.l #$07,D5
  lea $20(A5),A0
63$:
  clr.l (A0)+
   dbf D5,63$
  move.w D4,D5
  subq.w #1,D5
  move.l A6,-(A7)
  movea.l $1A4(A6),A6
64$:
  move.l $14(A5),D0
  moveq.l #$00,D1
   jsr _LVOAllocMem(A6)
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l D0,$20(A5,D1.W)
   beq.b 66$
  movea.l D0,A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
   dbf D5,64$
  move.l $14(A5),D0
  moveq.l #$00,D1
   jsr _LVOAllocMem(A6)
  move.l D0,D1
  moveq.l #$07,D0
  lea $48(A5),A0
65$:
  move.l D1,(A0)+
   dbeq D0,65$
   bne.b 69$
66$:
  ;movea.l (a7)+,a6
   bsr.w WaitBlit ;jsr _LVOWaitBlit(A6)
  moveq.l #$07,D5
   ;move.l A6,-(A7)
  ;movea.l $1A4(A6),A6
67$:
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l $20(A5,D1.W),D0
   beq.b 68$
  movea.l D0,A1
  move.l $14(A5),D0
   jsr _LVOFreeMem(A6)
68$:
   dbf D5,67$
  move.l (A7)+,a6
  moveq.l #$00,D5
 bra.w JL_0_1EE
 cnop 0,4
69$:
  movea.l (a7)+,a6
  move.w D2,D0
  neg.w D0
  asr.w #4,D0
  add.w D0,D0
  addq.w #2,D0
  move.w D0,$E(A5)
  move.w D7,(A5)
  move.l A3,$2(A5)
  clr.w $6(A5)
   bsr.w WaitBlit ;jsr _LVOWaitBlit(A6)
70$:
  movea.l $2(A5),A0
  moveq.l #0,d2
  move.b (A0)+,D2
  move.l A0,$2(A5)
  cmp.b $21(A2),D2
   bhi.b 71$
  sub.b $20(A2),D2
   bcc.b 72$
71$:
  move.b $21(A2),D2
  sub.b $20(A2),D2
  addq.w #1,D2
72$:
  add.w D2,D2
  move.w $6(A5),D1
  move.l $30(A2),D0
   beq.b 73$
  movea.l D0,A0
  add.w $0(A0,D2.W),D1
73$:
  move.w D1,D3
  move.l $2C(A2),D0
   bne.b 74$
  add.w $18(A2),D3
 bra.b 75$

   cnop 0,4
74$:
  movea.l D0,A0
  add.w $0(A0,D2.W),D3
75$:
  add.w $40(A4),D3
  move.w D3,$6(A5)
  move.w D1,D0
  andi.w #$F,D1
  asr.w #4,D0
  add.w D0,D0
  add.w $E(A5),D0
  move.w D0,$10(A5)
  add.w D2,D2
  movea.l $28(A2),A0
  move.l $0(A0,D2.W),D0
  move.w D0,D7
   beq.w 87$
  swap D0
  move.w D0,D6
  and.w #$F,D6
  lsr.w #4,D0
  add.w D0,D0
  move.w D0,$12(A5)
  move.w D7,D0
  subq.w #1,D7
  lsr.w #4,D7
  subq.w #1,D0
  and.w #$F,D0
  add.w D0,D0
  lea L_0_C5C(PC),A0
  move.w $0(A0,D0.W),D5
  swap D5
  clr.w D5
  lsr.l D6,D5
  moveq.l #-$01,D4
  not.w D4
  lsr.l D6,D4
  move.w $C(A5),D3
  move.l A4,-(A7)
  lea $20(A5),A3
  lea $40(A2),A4
  sub.w D1,D6
   bge.w 85$
  neg.w D6
 bra.b 80$

   cnop 0,4
76$:
  movea.l (A4)+,A0
  adda.w $12(A5),A0
  movea.l (A3)+,A1
  adda.w $10(A5),A1
77$:
  move.w D7,D1
  movem.l A0-A1,-(A7)
 bra.b 79$
 cnop 0,4
78$:
  move.l (A0),D0
  and.l D4,D0
  lsr.l D6,D0
  or.l D0,(A1)
  addq.l #2,A1
  addq.l #2,A0
79$:
   dbf D1,78$
  move.l (A0),D0
  and.l D5,D0
  lsr.l D6,D0
  or.l D0,(A1)
  movem.l (a7)+,a0-a1
  adda.w $26(A2),A0
  adda.w $18(A5),A1
   dbf D2,77$
80$:
  move.w $14(A2),D2
  subq.w #1,D2
   dbf D3,76$
 bra.b 86$
 cnop 0,4
81$:
  movea.l (A4)+,A0
  adda.w $12(A5),A0
  movea.l (A3)+,A1
  adda.w $10(A5),A1
82$:
  move.w D7,D1
  movem.l A0-A1,-(A7)
 bra.b 84$
 cnop 0,4
83$:
  move.l (A0),D0
  and.l D4,D0
  lsl.l D6,D0
  or.l D0,(A1)
  addq.l #2,A1
  addq.l #2,A0
84$:
   dbf D1,83$
  move.l (A0),D0
  and.l D5,D0
  lsl.l D6,D0
  or.l D0,(A1)
  movem.l (a7)+,a0-a1
  adda.w $26(A2),A0
  adda.w $18(A5),A1
   dbf D2,82$
85$:
  move.w $14(A2),D2
  subq.w #1,D2
   dbf D3,81$
86$:
  movea.l (A7)+,A4
87$:
  subq.w #1,(A5)
   bne.w 70$
  btst #$1,$38(A4)
   beq.b 88$
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  movea.l A0,A1
  move.w $1C(A2),D2
  moveq.l #$00,D3
  move.w $18(A5),D4
  lsl.w #3,D4
  sub.w D2,D4
  move.w $14(A2),D5
  moveq.l #-$16,D6
  moveq.l #-$01,D7
  movea.l D0,A2
   jsr _LVOBltBitMap(A6)
  movea.l $34(A4),A2
88$:
  btst #$2,$38(A4)
   beq.w 96$
  move.w $14(A2),D3
  move.w $1A(A2),D5
  sub.w D3,D5
   bge.w 96$
  moveq.l #$00,D0
  move.w $18(A5),D0
  addq.w #2,D0
  move.l D0,-(A7)
  moveq.l #$00,D1
   bsr.w JL_0_C14
  movea.l D0,A2
  move.w D5,D0
  neg.w D0
  lsr.w #1,D0
   bcc.b 89$
  moveq.l #$02,D5
 bra.b 90$
 cnop 0,4
89$:
  moveq.l #$01,D5
90$:
  moveq.l #$00,D2
  move.w $18(A5),D4
  lsl.w #3,D4
  sub.w D0,D4
  moveq.l #-$01,D7
91$:
  sub.w D5,D3
   bpl.b 92$
  addq.w #1,D3
   bmi.b 95$
  moveq.l #$01,D5
92$:
  cmp.w D0,D2
   beq.b 94$
  move.w D3,D1
  movem.w D0/D2/D4,-(A7)
  moveq.l #-$40,D6
  lea $18(A5),A0
  movea.l A0,A1
   jsr _LVOBltBitMap(A6)
  cmp.w (A7),D2
   blt.b 93$
  move.w D2,D4
   beq.b 93$
  moveq.l #$00,D0
  moveq.l #$00,D1
  moveq.l #$00,D2
  moveq.l #$00,D6
  lea $18(A5),A0
  movea.l A0,A1
   jsr _LVOBltBitMap(A6)
93$:
  movem.w (A7)+,D0/D2/D4
94$:
  addq.w #1,D2
  subq.w #1,D4
  moveq.l #$02,D5
 bra.b 91$
 cnop 0,4
95$:
   bsr.w WaitBlit ;jsr _LVOWaitBlit(A6)
  move.l (A7)+,D0
  movea.l A2,A1
   bsr.w JL_0_C84
  movea.l $34(A4),A2
96$:
  btst #$0,$35(A2)
   beq.w 97$
  move.b $37(A2),D7
  cmp.b $39(A2),D7
   bhi.w 97$
  cmp.b $38(A2),D7
   bcs.w 97$
  moveq.l #-$01,D0
  clr.w D0
  movea.l $4(A4),A0
  move.b $5(A0),D1
  rol.l D1,D0
  and.b $19(A4),D0
  cmp.b D0,D7
   beq.b 97$
  movea.l $48(A5),A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #$00,D2
  moveq.l #$00,D3
  moveq.l #$00,D4
  move.w $18(A5),D4
  lsl.l #3,D4
  moveq.l #$00,D5
  move.w $1A(A5),D5
  moveq.l #-$46,D6
  move.b $37(A2),D7
   jsr _LVOBltBitMap(A6)
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #-$16,D6
  not.b D7
   jsr _LVOBltBitMap(A6)
  lea $40(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $18(A5),A1
  moveq.l #-$46,D6
  move.b $19(A4),D7
   jsr _LVOBltBitMap(A6)
  lea $40(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $18(A5),A1
  moveq.l #-$76,D6
  not.b D7
   jsr _LVOBltBitMap(A6)
97$:
  btst #$0,$38(A4)
   beq.w 105$
   bsr.w JL_0_AC0
  moveq.l #$00,D0
  move.w $18(A5),D0
  move.l D0,D7
  moveq.l #$00,D1
   bsr.w JL_0_C14
  movea.l D0,A3
  move.l D7,D0
  movea.l A3,A1
   bsr.w JL_0_CA8
  movea.l $48(A5),A0
  move.w $1A(A2),D6
  addq.w #1,D6
  cmp.w $14(A2),D6
   bge.b 104$
  mulu $18(A5),D6
  adda.l D6,A0
  movea.l A3,A1
   bsr.w JL_0_57C
  lea $20(A5),A2
  moveq.l #$00,D5
  move.b $1D(A5),D5
  moveq.l #$00,D4
  move.b $19(A4),D4
 bra.b 103$
   cnop 0,4
98$:
  movea.l A3,A0
  movea.l (A2)+,A1
  adda.l D6,A1
  move.w $18(A5),D3
  lsr.w #1,D3
  lsr.w #1,D4
   bcc.b 100$
 bra.b 102$
   cnop 0,4
99$:
  move.w (A0)+,D0
  not.w D0
  and.w D0,(A1)+
100$:
   dbf D3,99$
 bra.b 103$
 cnop 0,4
101$:
  move.w (A0)+,D0
  or.w D0,(A1)+
102$:
   dbf D3,101$
103$:
   dbf D5,98$
104$:
  move.l D7,D0
  movea.l A3,A1
   bsr.w JL_0_C84
  movea.l $34(A4),A2
105$:
  btst #$2,$1C(A4)
   beq.b 106$
  lea $18(A5),A0
  movea.l A0,A1
  moveq.l #$00,D0
  moveq.l #$00,D1
  moveq.l #$00,D2
  moveq.l #$00,D3
  move.w $18(A5),D4
  lsl.l #3,D4
  move.w $1A(A5),D5
  moveq.l #$3A,D6
  moveq.l #-$01,D7
   jsr _LVOBltBitMap(A6)
106$:
  move.b $1C(A4),D0
  and.b #$3,D0
   bne.b 107$
   bsr.b JL_0_AC0
   bsr.w JL_0_AF4
  lea $40(A5),A0
  moveq.l #$2A,D6
   jsr _LVOBltBitMapRastPort(A6)
107$:
   bsr.w JL_0_AF4
  lea $18(A5),A0
  moveq.l #$00,D6
  move.b $1C(A4),D6
  and.b #$3,D6
  move.b L_0_ABC(PC,D6.W),D6
   jsr _LVOBltBitMapRastPort(A6)
  move.l $14(A5),D0
  movea.l $48(A5),A1
  move.l A6,-(A7)
  movea.l $1A4(A6),A6
   jsr _LVOFreeMem(A6)
  moveq.l #$07,D5
108$:
  move.w D5,D1
  add.w D1,D1
  add.w D1,D1
  move.l $20(A5,D1.W),D0
   beq.b 109$
  movea.l D0,A1
  move.l $14(A5),D0  
   jsr _LVOFreeMem(A6)
109$:
   dbf D5,108$
 movea.l (A7)+,a6
 bra.w JL_0_55E
 cnop 0,4
L_0_ABC:
   dc.b $EA ;.
   dc.b $CA ;.
   dc.b "jZ"
JL_0_AC0:
  movea.l $48(A5),A1
  move.l $14(A5),D0
   bsr.w JL_0_CA8
  lea $18(A5),A0
  moveq.l #$00,D0
  moveq.l #$00,D1
  lea $40(A5),A1
  moveq.l #$00,D2
  moveq.l #$00,D3
  moveq.l #$00,D4
  move.w $18(A5),D4
  lsl.l #3,D4
  moveq.l #$00,D5
  move.w $1A(A5),D5
  moveq.l #-$16,D6
  moveq.l #-$01,D7
 jmp _LVOBltBitMap(A6)
   cnop 0,4
JL_0_AF4:
  movea.l A4,A1
  move.w $E(A5),D0
  lsl.w #3,D0
  move.w $A(A5),D6
  add.w D6,D0
  ext.l D0
  moveq.l #$00,D1
  move.w $24(A4),D2
  add.w D6,D2
  ext.l D2
  move.w $26(A4),D3
  sub.w $1A(A2),D3
  ext.l D3
  move.w $8(A5),D4
  sub.w D6,D4
  ext.l D4
  move.w $14(A2),D5
  ext.l D5
 rtS
 cnop 0,4
JL_0_B28:
  move.b $38(A1),D4
  swap D4
  move.w $40(A1),D4
  movea.l $34(A1),A1
  movea.l $E(A1),A3
   bne.b 114$
  btst #$1,$2(A3)
   bne.w 123$
114$:
  btst #$2,$2(A3)
   bne.w 124$
  move.w D0,D3
  moveq.l #$00,D0
  moveq.l #$00,D1
  moveq.l #$00,D2
  movea.l $2C(A1),A3
  movea.l $30(A1),A4
  movea.l $28(A1),A5
 bra.b 122$
  cnop 0,4
115$:
  clr.w D5
  move.b (A0)+,D5
  cmpi.w #$20FF,$20(A1)
   beq.b 117$
  cmp.b $21(A1),D5
   bhi.b 116$
  sub.b $20(A1),D5
   bcc.b 118$
116$:
  move.b $21(A1),D5
  sub.b $20(A1),D5
  addq.w #1,D5
 bra.b 118$
 cnop 0,4
117$:
  sub.b #$20,D5
   bcs.b 116$
118$:
  add.w D5,D5
  add.w $0(A4,D5.W),D0
  cmp.w D0,D2
   ble.b 119$
  move.w D0,D2
119$:
  move.w D0,D6
  add.w $0(A3,D5.W),D0
  add.w D4,D0
  add.w D5,D5
  add.w $2(A5,D5.W),D6
  cmp.w D6,D1
   bge.b 120$
  move.w D6,D1
120$:
  cmp.w D0,D1
   bge.b 121$
  move.w D0,D1
 bra.b 122$
   cnop 0,4
121$:
  cmp.w D0,D2
   ble.b 122$
  move.w D0,D2
122$:
   dbf D3,115$
 bra.b 125$
 cnop 0,4
123$:
  lsl.w #3,D0
  move.w D0,D1
  moveq.l #$00,D2
 bra.b 125$
 cnop 0,4
124$:
  moveq.l #$00,D2
  move.w $18(A1),D3
  add.w D4,D3
   bmi.b 128$
  mulu D3,D0
  move.w D0,D1
  tst.w D4
   bpl.b 125$
  sub.w D4,D1
125$:
  btst #$11,D4
   beq.b 126$
  add.w $1C(A1),D1
126$:
  btst #$12,D4
   beq.b 127$
  move.w $1A(A1),D5
  move.w $14(A1),D6
  sub.w D5,D6
  addq.w #1,D6
  lsr.w #1,D5
  lsr.w #1,D6
  add.w D5,D1
  sub.w D6,D2
127$:
 rtS
  cnop 0,4
128$:
  moveq.l #$00,D0
  moveq.l #$00,D1
 rts
 cnop 0,4
JL_0_C14:
  cmpi.l #$1000,D0
   bgt.b ft130
AbsFtextSwap1:  movea.l #$f0f0f0f0,a0
  bset #$0,(A0)
   bne.b ft130
  move.l FTextMem(pc),D0
 rtS
 cnop 0,4
ft130:
  movem.l D2/A6,-(A7)
  movea.l $1A4(A6),A6
  move.l D0,D2
   jsr _LVOAllocMem(A6)
  tst.l D0
   bne.b ft132
  cmpi.l #$1000,D2
   bgt.b ft132
AbsFtextSwap2:  movea.l #$f0f0f0f0,a0
131$:
  bset #$0,(A0)
   bne.b 131$
  move.l FTextMem(pc),D0
ft132:
  move.l (A7)+,D2
  move.l (A7)+,A6
 rtS
  cnop 0,4
L_0_C5C:
  dc.b $80,$00,$C0,$00
  dc.b $E0,$00,$F0,$00
  dc.b $F8,$00,$FC,$00
  dc.b $FE,$00,$FF,$00
  dc.b $FF,$80,$FF,$C0
  dc.b $FF,$E0,$FF,$F0
  dc.b $FF,$F8,$FF,$FC
  dc.b $FF,$FE,$FF,$FF
FTextMem: ds.l 1
JL_0_C84:
  movea.l FTextMem(PC),A0
  cmpa.l A0,A1
   beq.b 138$
  move.l A1,D1
   beq.b 137$
  move.l A6,-(A7)
  movea.l $1A4(A6),A6
   jsr _LVOFreeMem(A6)
  movea.l (A7)+,A6
137$:
 rtS
  cnop 0,4
138$:
AbsFtextSwap3:  movea.l #$f0f0f0f0,a0
  clr.l (A0)
 rtS
  cnop 0,4
JL_0_CA8:
  movea.l D2,A0
  lsr.l #1,D0
   beq.b JL_0_D1C
  move.l A1,D2
  moveq.l #$00,D1
  lsr.l #2,D2
  lea (D2.L*4),A1
   bcc.b 140$
  addq.l #2,A1
  move.w D1,(A1)+
  subq.l #1,D0
   beq.b JL_0_D1C
140$:
  moveq.l #$10,D2
  cmp.l D2,D0
   blt.b 142$
141$:
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  move.l D1,(A1)+
  sub.l D2,D0
  move.l D1,(A1)+
  cmp.l D2,D0
   bge.b 141$
142$:
  move.b L_0_CE8(PC,D0.L),D0
 jmp L_0_CE8(PC,D0.L)
   cnop 0,4
L_0_CE8:
  dc.b .1e-L_0_CE8
  dc.b .32-L_0_CE8
  dc.b .1c-L_0_CE8
  dc.b .30-L_0_CE8
  dc.b .1a-L_0_CE8
  dc.b .2e-L_0_CE8
  dc.b .18-L_0_CE8
  dc.b .2c-L_0_CE8
  dc.b .16-L_0_CE8
  dc.b .2a-L_0_CE8
  dc.b .14-L_0_CE8
  dc.b .28-L_0_CE8
  dc.b .12-L_0_CE8
  dc.b .26-L_0_CE8
  dc.b .10-L_0_CE8
  dc.b .24-L_0_CE8
 cnop 0,4
.10:  move.l D1,(A1)+
.12:  move.l D1,(A1)+
.14:  move.l D1,(A1)+
.16:  move.l D1,(A1)+
.18:  move.l D1,(A1)+
.1a:  move.l D1,(A1)+
.1c:  move.l D1,(A1)
.1e:  move.l A0,D2
 rtS
  cnop 0,4
.24:  move.l D1,(A1)+
.26:  move.l D1,(A1)+
.28:  move.l D1,(A1)+
.2a:  move.l D1,(A1)+
.2c:  move.l D1,(A1)+
.2e:  move.l D1,(A1)+
.30:  move.l D1,(A1)+
.32:  move.w D1,(A1)
JL_0_D1C: move.l A0,D2
 rtS
 cnop 0,4
;******************************* bltclear **********************************************
BltClear:
  movea.l D2,A0
  btst #$1,D1
   beq.b 8$
  move.l D0,D2
  swap D2
  mulu D2,D0
8$:
  moveq.l #-$02,D2
  and.l D2,D0
   beq.w 60$
  moveq.l #$00,D2
  btst #$2,D1
   beq.b 9$
  move.l D1,D2
  swap D1
  move.w D1,D2
9$:
  move.l A1,D1
  lsr.l #2,D1
  lea (D1.L*4),A1
   bcc.b 10$
  addq.l #2,A1
  move.w D2,(A1)+
  subq.l #2,D0
   beq.w 60$
10$:
  moveq.l #$40,D1
  cmp.l D1,D0
   blt.b 12$
11$:
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  sub.l D1,D0
  move.l D2,(A1)+
  cmp.l D1,D0
   bcc.b 11$
12$:
  move.w 13$(PC,D0.L),D0
 jmp 13$(PC,D0.L)
 cnop 0,4
13$:
 dc.w 60$-(13$)
14$:
 dc.w 76$-(13$)
15$:
 dc.w 59$-(13$)
16$:
 dc.w 75$-(13$)
17$:
 dc.w 58$-(13$)
18$:
 dc.w 74$-(13$)
19$:
 dc.w 57$-(13$)
20$:
 dc.w 73$-(13$)
21$:
 dc.w 56$-(13$)
22$:
 dc.w 72$-(13$)
23$:
 dc.w 55$-(13$)
24$:
 dc.w 71$-(13$)
25$:
 dc.w 54$-(13$)
26$:
 dc.w 70$-(13$)
27$:
 dc.w 53$-(13$)
28$:
 dc.w 69$-(13$)
29$:
 dc.w 52$-(13$)
30$:
 dc.w 68$-(13$)
31$:
 dc.w 51$-(13$)
32$:
 dc.w 67$-(13$)
33$:
 dc.w 50$-(13$)
34$:
 dc.w 66$-(13$)
35$:
 dc.w 49$-(13$)
36$:
 dc.w 65$-(13$)
37$:
 dc.w 48$-(13$)
38$:
 dc.w 64$-(13$)
39$:
 dc.w 47$-(13$)
40$:
 dc.w 63$-(13$)
41$:
 dc.w 46$-(13$)
42$:
 dc.w 62$-(13$)
43$:
 dc.w 45$-(13$)
44$:
 dc.w 61$-(13$)
45$:
  move.l D2,(A1)+
46$:
  move.l D2,(A1)+
47$:
  move.l D2,(A1)+
48$:
  move.l D2,(A1)+
49$:
  move.l D2,(A1)+
50$:
  move.l D2,(A1)+
51$:
  move.l D2,(A1)+
52$:
  move.l D2,(A1)+
53$:
  move.l D2,(A1)+
54$:
  move.l D2,(A1)+
55$:
  move.l D2,(A1)+
56$:
  move.l D2,(A1)+
57$:
  move.l D2,(A1)+
58$:
  move.l D2,(A1)+
59$:
  move.l D2,(A1)
60$:
  move.l A0,D2
 rtS
 cnop 0,4
61$:
  move.l D2,(A1)+
62$:
  move.l D2,(A1)+
63$:
  move.l D2,(A1)+
64$:
  move.l D2,(A1)+
65$:
  move.l D2,(A1)+
66$:
  move.l D2,(A1)+
67$:
  move.l D2,(A1)+
68$:
  move.l D2,(A1)+
69$:
  move.l D2,(A1)+
70$:
  move.l D2,(A1)+
71$:
  move.l D2,(A1)+
72$:
  move.l D2,(A1)+
73$:
  move.l D2,(A1)+
74$:
  move.l D2,(A1)+
75$:
  move.l D2,(A1)+
76$:
  move.w D2,(A1)
  move.l A0,D2
 rtS
 cnop 0,4
BltClear030:
  move.l D2,-(A7)
  btst #$1,D1
   beq.b JL_0_B2
  move.l D0,D2
  swap D2
  mulu D2,D0
JL_0_B2:
  moveq.l #-$02,D2
  and.l D2,D0
   beq.w JL_0_16E
  moveq.l #$00,D2
  btst #$2,D1
   beq.b JL_0_C8
  move.l D1,D2
  swap D1
  move.w D1,D2
JL_0_C8:
  move.l A1,D1
  lsr.l #2,D1
  lea (D1.L*4),A1
   bcc.b JL_0_DC
  addq.l #2,A1
  move.w D2,(A1)+
  subq.l #2,D0
   beq.w JL_0_16E
JL_0_DC:
  moveq.l #$40,D1
  cmp.l D1,D0
   blt.b JL_0_108
JL_0_E2:
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  move.l D2,(A1)+
  sub.l D1,D0
  move.l D2,(A1)+
  cmp.l D1,D0
   bcc.b JL_0_E2
JL_0_108:
  move.w L_0_110(PC,D0.L),D0
 jmp L_0_110(PC,D0.L)
 cnop 0,4
L_0_110:
 dc.w JL_0_16E-(L_0_110)
L_0_112:
 dc.w JL_0_1A6-(L_0_110)
L_0_114:
 dc.w JL_0_16C-(L_0_110)
L_0_116:
 dc.w JL_0_1A4-(L_0_110)
L_0_118:
 dc.w JL_0_16A-(L_0_110)
L_0_11A:
 dc.w JL_0_1A2-(L_0_110)
L_0_11C:
 dc.w JL_0_168-(L_0_110)
L_0_11E:
 dc.w JL_0_1A0-(L_0_110)
L_0_120:
 dc.w JL_0_166-(L_0_110)
L_0_122:
 dc.w JL_0_19E-(L_0_110)
L_0_124:
 dc.w JL_0_164-(L_0_110)
L_0_126:
 dc.w JL_0_19C-(L_0_110)
L_0_128:
 dc.w JL_0_162-(L_0_110)
L_0_12A:
 dc.w JL_0_19A-(L_0_110)
L_0_12C:
 dc.w JL_0_160-(L_0_110)
L_0_12E:
 dc.w JL_0_198-(L_0_110)
L_0_130:
 dc.w JL_0_15E-(L_0_110)
L_0_132:
 dc.w JL_0_196-(L_0_110)
L_0_134:
 dc.w JL_0_15C-(L_0_110)
L_0_136:
 dc.w JL_0_194-(L_0_110)
L_0_138:
 dc.w JL_0_15A-(L_0_110)
L_0_13A:
 dc.w JL_0_192-(L_0_110)
L_0_13C:
 dc.w JL_0_158-(L_0_110)
L_0_13E:
 dc.w JL_0_190-(L_0_110)
L_0_140:
 dc.w JL_0_156-(L_0_110)
L_0_142:
 dc.w JL_0_18E-(L_0_110)
L_0_144:
 dc.w JL_0_154-(L_0_110)
L_0_146:
 dc.w JL_0_18C-(L_0_110)
L_0_148:
 dc.w JL_0_152-(L_0_110)
L_0_14A:
 dc.w JL_0_18A-(L_0_110)
L_0_14C:
 dc.w JL_0_150-(L_0_110)
L_0_14E:
 dc.w JL_0_188-(L_0_110)
JL_0_150:
  move.l D2,(A1)+
JL_0_152:
  move.l D2,(A1)+
JL_0_154:
  move.l D2,(A1)+
JL_0_156:
  move.l D2,(A1)+
JL_0_158:
  move.l D2,(A1)+
JL_0_15A:
  move.l D2,(A1)+
JL_0_15C:
  move.l D2,(A1)+
JL_0_15E:
  move.l D2,(A1)+
JL_0_160:
  move.l D2,(A1)+
JL_0_162:
  move.l D2,(A1)+
JL_0_164:
  move.l D2,(A1)+
JL_0_166:
  move.l D2,(A1)+
JL_0_168:
  move.l D2,(A1)+
JL_0_16A:
  move.l D2,(A1)+
JL_0_16C:
  move.l D2,(A1)
JL_0_16E:
  move.l A7,D2
  lsr.l #2,D2
  lea (D2.L*4),A0
  moveq.l #$0F,D0
JL_0_178:
  move.l (A0)+,D2
  move.l (A0)+,D2
  move.l (A0)+,D2
  move.l (A0)+,D2
   dbf D0,JL_0_178
  move.l (A7)+,D2
 rtS
 cnop 0,4
JL_0_188:
  move.l D2,(A1)+
JL_0_18A:
  move.l D2,(A1)+
JL_0_18C:
  move.l D2,(A1)+
JL_0_18E:
  move.l D2,(A1)+
JL_0_190:
  move.l D2,(A1)+
JL_0_192:
  move.l D2,(A1)+
JL_0_194:
  move.l D2,(A1)+
JL_0_196:
  move.l D2,(A1)+
JL_0_198:
  move.l D2,(A1)+
JL_0_19A:
  move.l D2,(A1)+
JL_0_19C:
  move.l D2,(A1)+
JL_0_19E:
  move.l D2,(A1)+
JL_0_1A0:
  move.l D2,(A1)+
JL_0_1A2:
  move.l D2,(A1)+
JL_0_1A4:
  move.l D2,(A1)+
JL_0_1A6:
  move.w D2,(A1)
  move.l A7,D2
  lsr.l #2,D2
  lea (D2.L*4),A0
  moveq.l #$0F,D0
JL_0_1B2:
  move.l (A0)+,D2
  move.l (A0)+,D2
  move.l (A0)+,D2
  move.l (A0)+,D2
   dbf D0,JL_0_1B2
  move.l (A7)+,D2
 rtS
 cnop 0,4
WaitTOF:
  move.l A6,-(A7)
  pea $C8(A6)
  movea.l PExecBase(PC),A6
  moveq.l #$0,D0
  moveq.l #$10,D1
   bsr.w SetSignal ;jsr _LVOSetSignal(a6)
  movea.l (A7),A0
  move.l ThisTask(A6),(A7)
  move.w #$4,-(A7)
  move.w #$4000,_custom+intena
  addq.b #1,IDNestCnt(A6)
  movea.l (A0),A1
  move.l A1,-(A7)
  pea -$4(A0)
  move.l A7,(A1)
  move.l A7,(A0)
  moveq.l #$10,D0
   bsr.w Wait ;jsr _LVOWait(a6)
  movea.l (A7)+,A0
  movea.l (A7)+,A1
  move.l A0,(A1)
  move.l A1,$4(A0)
  subq.b #1,IDNestCnt(A6)
   bge.b 410$
  move.w #$C000,_custom+intena
410$:
  addq.l #6,A7
  movea.l (A7)+,A6
 rtS
 cnop 0,4
QBSBlit:
  move.w $C(A1),D0
  move.w $D4(A6),D1
  cmp.w D1,D0
   bls.b QL_0_2A
  move.w D1,D0
QL_0_2A:
  bset #$F,D0
  move.w D0,$C(A1)
 bra.b inq
  cnop 0,4
QBlit:
  bclr #$7,$C(A1)
inq:  clr.l (A1)
  move.l A2,D1
  lea _custom+intena,A2
  movea.l PExecBase(PC),A0
  move.w #$4000,(A2)
  addq.b #1,IDNestCnt(A0)
  tst.l $3A(A6)
   bne.b JL_0_6A
  move.l A1,$3A(A6)
  addq.w #1,$AA(A6)
   bne.b .JL_0_54
  ori.w #$2,$A8(A6)
  move.w #$0040,intreq-intena(A2)
  move.w #$8040,(A2)
  btst #$6,dmaconr-intena(A2)
   bne.b .JL_0_54
  move.w #$8040,intreq-intena(A2)
.JL_0_54:  move.l A1,$3E(A6)
  subq.b #1,IDNestCnt(A0)
   bge.b .JL_0_66
  move.w #$C000,(a2)
.JL_0_66:  movea.l D1,A2
 rtS
 cnop 0,4
JL_0_6A:  movea.l $3e(a6),A0
  move.l A1,(A0)
  movea.l $1a4(a6),A0
  move.l A1,$3E(A6)
  subq.b #1,IDNestCnt(A0)
   bge.b JL_0_66
  move.w #$C000,(a2)
JL_0_66:  movea.l D1,A2
 rtS
 cnop 0,4
WaitBlit:
  btst #6,_custom+dmaconr
   beq.b JL_0_1d
  move.w #$8400,_custom+dmacon
JL_0_12:
  btst #$6,_custom+dmaconr
   bne.b JL_0_12
  move.w #$0400,_custom+dmacon
JL_0_1d: rtS
 cnop 0,4
RectFill:  btst #$3,$21(A1)
   bne.b JL_1_16
  move.l D4,-(A7)
  moveq.l #$00,D4
  movea.l D4,A0
   jsr _LVOBltPattern(A6)
  move.l (A7)+,D4
 rtS
 cnop 0,4
JL_1_16:  movem.l D4-D5/A2,-(A7)
  movea.l A1,A2
  moveq.l #$00,D4
  movea.l D4,A0
  movem.l D0-D1,-(A7)
  btst #$1,$1C(A2)
   beq.b JL_1_4A
  movem.l D2-D3,-(A7)
  addq.w #1,D0
  addq.w #1,D1
  subq.w #1,D2
  subq.w #1,D3
  cmp.w D0,D2
   blt.b JL_1_44
  cmp.w D1,D3
   blt.b JL_1_44
   jsr _LVOBltPattern(A6)
JL_1_44:  move.l (A7)+,D2
  move.l (a7)+,D3
 bra.b JL_1_4E
 cnop 0,4
JL_1_4A:   jsr _LVOBltPattern(A6)
JL_1_4E:  movem.l (A7)+,D4/D5
  move.l $28(A2),-(A7)
  move.l $2C(A2),-(A7)
  move.b $19(A2),-(A7)
  move.b $1C(A2),-(A7)
  move.b $1B(A2),$19(A2)
  clr.b $1C(A2)
  movea.l A2,A1
   bsr.w JL_1_100
  movea.l A2,A1
  move.l D4,D0
  move.l D5,D1
   ;jsr _LVOMove(A6)
    movem.w d0-d1,$24(a1)
    ori.w #1,$20(a1)
    move.b #$f,$1e(a1)
   ;
  movea.l A2,A1
  move.l D4,D0
  move.l D3,D1
   jsr _LVODraw(A6)
  movea.l A2,A1
  move.l D2,D0
  move.l D3,D1
   jsr _LVODraw(A6)
  movea.l A2,A1
  move.l D2,D0
  move.l D5,D1
   jsr _LVODraw(A6)
  movea.l A2,A1
  move.l D4,D0
  move.l D5,D1
   jsr _LVODraw(A6)
  move.b (A7)+,$1C(A2)
  move.b (A7)+,$19(A2)
  move.l (A7)+,$2C(A2)
  move.l (A7)+,$28(A2)
  movem.l (A7)+,D4-D5/A2
 rtS
 cnop 0,4
SetABPenDrMd:  cmp.b $19(A1),D0
   beq.b JL_1_CE
  move.b D0,$19(A1)
JL_1_C4:  move.b D1,$1A(A1)
JL_1_C8:  move.b D2,$1C(A1)
  move.b #$F,$1E(A1)
  ori.w #$1,$20(A1)
  move.l A1,-(A7)
   bsr.b JL_1_100
  movea.l (A7)+,A1
 rtS
 cnop 0,4
JL_1_CE:  cmp.b $1A(A1),D1
   bne.b JL_1_C4
  cmp.b $1C(A1),D2
   bne.b JL_1_C8
 rtS
 cnop 0,4
SetBPen:  move.b D0,$1A(A1)
  move.b #$F,$1E(A1)
  ori.w #$1,$20(A1)
  move.l A1,-(A7)
   bsr.b JL_1_100
  movea.l (A7)+,A1
 rtS
 cnop 0,4
SetDrMd:  move.b D0,$1C(A1)
  move.b #$F,$1E(A1)
  ori.w #$1,$20(A1)
  move.l A1,-(A7)
   bsr.b JL_1_100
  movea.l (A7)+,A1
 rtS
 cnop 0,4
SetAPen:  move.b D0,$19(A1)
  move.b #$F,$1E(A1)
  ori.w #$1,$20(A1)
  move.l A1,-(A7)
   bsr.b JL_1_100
  movea.l (A7)+,A1
 rtS
 cnop 0,4
JL_1_100:  lea $2C(A1),A0
  move.b $1C(A1),D0
  andi.w #$7,D0
  btst #$1,D0
   bne.b JL_1_154
  btst #$0,D0
   beq.w JL_1_990
  move.w D5,-(A7)
  ror.b #3,D0
  add.w D0,D0
  move.w D0,D5
  move.b $19(A1),D0
  move.b $1A(A1),D1
  movea.w D5,A1
  move.b D0,D5
  lsl.w #4,D5
  move.b D1,D5
  lsr.w #2,D5
  andi.b #$FC,D5
  move.l L_1_190(PC,D5.W),(A0)
  move.w A1,D5
  move.b D0,D5
  lsl.b #4,D5
  andi.b #$F,D1
  or.b D1,D5
  add.w D5,D5
  add.w D5,D5
  move.l L_1_190(PC,D5.W),-(A0)
  move.w (A7)+,D5
 rtS
 cnop 0,4
JL_1_154:  add.b D0,D0
  add.b D0,D0
  move.l L_1_170(PC,D0.W),D1
  move.l D1,(A0)
  move.l D1,-(A0)
 rtS
 cnop 0,4
L_1_170:  dc.b "jjjjZZZZjjjjZZZZ"
  dc.b $9A,$9A,$9A ;...
  dc.b $9A ;.
  dc.b "ZZZZ"
  dc.b $9A,$9A,$9A ;...
  dc.b $9A ;.
  dc.b "ZZZZ"
 cnop 0,4
L_1_190:  dc.b 10,10,10,10,":",10,10,10,10,":",10,10,"::",10,10,10,10,":",10,":",10,":",10,10,"::",10,":::",10,10,10,10,"::",10,10,":",10,":"
  dc.b 10,":::",10,":",10,10,":::",10,"::",10,":::::::"
  dc.b $CA,$0A,$0A,$0A ;....
  dc.b $FA,$0A,$0A,$0A ;....
  dc.b $CA,$3A,$0A,$0A ;.:..
  dc.b $FA,$3A,$0A,$0A ;.:..
  dc.b $CA ;.
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b "::",10
  dc.b $FA ;.
  dc.b "::",10
  dc.b $CA,$0A ;..
  dc.b 10,":"
  dc.b $FA,$0A ;..
  dc.b 10,":"
  dc.b $CA,$3A ;.:
  dc.b 10,":"
  dc.b $FA,$3A ;.:
  dc.b 10,":"
  dc.b $CA ;.
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b ":::"
  dc.b $FA ;.
  dc.b ":::",10
  dc.b $CA,$0A ;..
  dc.b 10,":"
  dc.b $CA,$0A,$0A ;...
  dc.b 10
  dc.b $FA,$0A ;..
  dc.b 10,":"
  dc.b $FA,$0A,$0A ;...
  dc.b 10
  dc.b $CA,$3A ;.:
  dc.b 10,":"
  dc.b $CA,$3A,$0A ;.:.
  dc.b 10
  dc.b $FA,$3A ;.:
  dc.b 10,":"
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10
  dc.b $CA ;.
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b ":::"
  dc.b $CA ;.
  dc.b "::",10
  dc.b $FA ;.
  dc.b ":::"
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA,$CA,$0A,$0A ;....
  dc.b $FA,$CA,$0A,$0A ;....
  dc.b $CA,$FA,$0A,$0A ;....
  dc.b $FA,$FA,$0A,$0A ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $CA,$CA ;..
  dc.b 10,":"
  dc.b $FA,$CA ;..
  dc.b 10,":"
  dc.b $CA,$FA ;..
  dc.b 10,":"
  dc.b $FA,$FA ;..
  dc.b 10,":"
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $FA ;.
  dc.b "::",10,10
  dc.b $CA ;.
  dc.b 10,":",10
  dc.b $CA,$0A ;..
  dc.b 10,":"
  dc.b $CA ;.
  dc.b 10,"::"
  dc.b $CA,$0A,$0A,$0A ;....
  dc.b $FA ;.
  dc.b 10,":",10
  dc.b $FA,$0A ;..
  dc.b 10,":"
  dc.b $FA ;.
  dc.b 10,"::"
  dc.b $FA,$0A,$0A,$0A ;....
  dc.b $CA ;.
  dc.b "::",10
  dc.b $CA,$3A ;.:
  dc.b 10,":"
  dc.b $CA ;.
  dc.b ":::"
  dc.b $CA,$3A,$0A,$0A ;.:..
  dc.b $FA ;.
  dc.b "::",10
  dc.b $FA,$3A ;.:
  dc.b 10,":"
  dc.b $FA ;.
  dc.b ":::"
  dc.b $FA,$3A,$CA,$0A ;.:..
  dc.b $CA,$0A,$FA,$0A ;....
  dc.b $CA,$0A ;..
  dc.b $CA,$3A,$CA,$0A ;.:..
  dc.b $FA,$3A,$CA,$0A ;.:..
  dc.b $CA,$0A,$FA,$0A ;....
  dc.b $FA,$0A,$FA,$0A ;....
  dc.b $CA,$3A,$FA,$0A ;.:..
  dc.b $FA,$3A,$FA,$0A ;.:..
  dc.b $CA,$0A ;..
  dc.b $CA,$3A,$FA,$0A ;.:..
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A,$CA,$0A ;.:..
  dc.b $FA,$3A,$FA,$0A ;.:..
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A,$0A,$CA ;.:..
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $CA,$CA,$0A ;...
  dc.b 10
  dc.b $FA,$CA ;..
  dc.b 10,":"
  dc.b $FA,$CA,$0A ;...
  dc.b 10
  dc.b $CA,$FA ;..
  dc.b 10,":"
  dc.b $CA,$FA,$0A ;...
  dc.b 10
  dc.b $FA,$FA ;..
  dc.b 10,":"
  dc.b $FA,$FA,$0A ;...
  dc.b 10
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $CA,$3A,$0A,$FA ;.:..
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $CA,$3A,$0A,$CA ;.:..
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $FA,$3A,$0A,$FA ;.:..
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $FA,$3A,$CA,$CA ;.:..
  dc.b $CA,$0A,$FA,$CA ;....
  dc.b $CA,$0A,$CA,$FA ;....
  dc.b $CA,$0A,$FA,$FA ;....
  dc.b $CA,$0A,$CA,$CA ;....
  dc.b $FA,$0A,$FA,$CA ;....
  dc.b $FA,$0A,$CA,$FA ;....
  dc.b $FA,$0A,$FA,$FA ;....
  dc.b $FA,$0A,$CA,$CA ;....
  dc.b $CA,$3A,$FA,$CA ;.:..
  dc.b $CA,$3A,$CA,$FA ;.:..
  dc.b $CA,$3A,$FA,$FA ;.:..
  dc.b $CA,$3A,$CA,$CA ;.:..
  dc.b $FA,$3A,$FA,$CA ;.:..
  dc.b $FA,$3A,$CA,$FA ;.:..
  dc.b $FA,$3A,$FA,$FA ;.:..
  dc.b $FA,$3A,$0A,$0A ;.:..
  dc.b 10
  dc.b $CA,$3A,$0A ;.:.
  dc.b 10
  dc.b $CA ;.
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b "::",10
  dc.b $CA,$0A ;..
  dc.b 10,":"
  dc.b $CA,$3A ;.:
  dc.b 10,":"
  dc.b $CA ;.
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b ":::"
  dc.b $CA,$0A,$0A ;...
  dc.b 10
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10
  dc.b $FA ;.
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b "::",10
  dc.b $FA,$0A ;..
  dc.b 10,":"
  dc.b $FA,$3A ;.:
  dc.b 10,":"
  dc.b $FA ;.
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b ":::"
  dc.b $FA,$CA,$0A ;...
  dc.b 10
  dc.b $CA,$FA,$0A ;...
  dc.b 10
  dc.b $CA ;.
  dc.b $CA,$3A,$0A,$CA ;.:..
  dc.b $FA,$3A,$0A,$CA ;.:..
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $CA,$FA ;..
  dc.b 10,":"
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA,$CA,$0A ;...
  dc.b 10
  dc.b $FA,$FA,$0A ;...
  dc.b 10
  dc.b $FA ;.
  dc.b $CA,$3A,$0A,$FA ;.:..
  dc.b $FA,$3A,$0A,$FA ;.:..
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $FA,$FA ;..
  dc.b 10,":"
  dc.b $FA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA,$0A,$CA ;...
  dc.b 10
  dc.b $CA,$3A,$CA ;.:.
  dc.b 10
  dc.b $CA,$0A,$FA ;...
  dc.b 10
  dc.b $CA,$3A,$FA ;.:.
  dc.b 10
  dc.b $CA,$0A ;..
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A,$CA ;.:.
  dc.b 10
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A,$CA ;.:.
  dc.b 10
  dc.b $CA,$0A ;..
  dc.b $FA,$3A,$CA ;.:.
  dc.b 10
  dc.b $FA,$0A,$FA ;...
  dc.b 10
  dc.b $FA,$3A,$FA ;.:.
  dc.b 10
  dc.b $FA,$0A ;..
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A,$FA ;.:.
  dc.b 10
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A,$FA ;.:.
  dc.b $CA,$CA,$0A,$CA ;....
  dc.b $FA,$CA,$0A,$CA ;....
  dc.b $CA,$FA,$0A,$CA ;....
  dc.b $FA,$FA,$0A,$CA ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $CA,$CA,$0A,$FA ;....
  dc.b $FA,$CA,$0A,$FA ;....
  dc.b $CA,$FA,$0A,$FA ;....
  dc.b $FA,$FA,$0A,$FA ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$FA ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A,$FA ;.:.
  dc.b 10,10
  dc.b $CA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b $CA,$CA ;..
  dc.b 10,":"
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA,$CA,$0A,$0A ;....
  dc.b $FA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b $FA,$CA ;..
  dc.b 10,":"
  dc.b $FA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA,$CA,$0A,$0A ;....
  dc.b $CA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $CA,$FA ;..
  dc.b 10,":"
  dc.b $CA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA,$FA,$0A,$0A ;....
  dc.b $FA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $FA,$FA ;..
  dc.b 10,":"
  dc.b $FA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA,$FA,$CA,$0A ;....
  dc.b $CA,$CA,$FA,$0A ;....
  dc.b $CA,$CA ;..
  dc.b $CA,$3A,$CA,$CA ;.:..
  dc.b $FA,$3A,$CA,$CA ;.:..
  dc.b $CA,$0A,$FA,$CA ;....
  dc.b $FA,$0A,$FA,$CA ;....
  dc.b $CA,$3A,$FA,$CA ;.:..
  dc.b $FA,$3A,$FA,$CA ;.:..
  dc.b $CA,$0A,$CA,$FA ;....
  dc.b $FA,$0A,$CA,$FA ;....
  dc.b $CA,$3A,$CA,$FA ;.:..
  dc.b $FA,$3A,$CA,$FA ;.:..
  dc.b $CA,$0A,$FA,$FA ;....
  dc.b $FA,$0A,$FA,$FA ;....
  dc.b $CA,$3A,$FA,$FA ;.:..
  dc.b $FA,$3A,$FA,$FA ;.:..
  dc.b 10
  dc.b $CA,$CA ;..
  dc.b $CA,$3A,$CA ;.:.
  dc.b $CA,$CA,$0A,$FA ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $CA,$CA,$0A,$CA ;....
  dc.b $FA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b $FA,$CA,$0A,$FA ;....
  dc.b $FA ;.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $FA,$CA,$0A,$CA ;....
  dc.b $CA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $CA,$FA,$0A,$FA ;....
  dc.b $CA ;.
  dc.b $FA,$3A,$FA ;.:.
  dc.b $CA,$FA,$0A,$CA ;....
  dc.b $FA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $FA,$FA,$0A,$FA ;....
  dc.b $FA ;.
  dc.b $FA,$3A,$FA ;.:.
  dc.b $FA,$FA,$CA,$CA ;....
  dc.b $CA,$CA,$FA,$CA ;....
  dc.b $CA,$CA,$CA,$FA ;....
  dc.b $CA,$CA,$FA,$FA ;....
  dc.b $CA,$CA,$CA,$CA ;....
  dc.b $FA,$CA,$FA,$CA ;....
  dc.b $FA,$CA,$CA,$FA ;....
  dc.b $FA,$CA,$FA,$FA ;....
  dc.b $FA,$CA,$CA,$CA ;....
  dc.b $CA,$FA,$FA,$CA ;....
  dc.b $CA,$FA,$CA,$FA ;....
  dc.b $CA,$FA,$FA,$FA ;....
  dc.b $CA,$FA,$CA,$CA ;....
  dc.b $FA,$FA,$FA,$CA ;....
  dc.b $FA,$FA,$CA,$FA ;....
  dc.b $FA,$FA,$FA,$FA ;....
  dc.b $FA,$FA,$0A,$0A ;....
  dc.b 10,10
  dc.b $CA,$0A,$0A,$0A ;....
  dc.b 10
  dc.b $CA,$0A,$0A ;...
  dc.b $CA,$CA,$0A,$0A ;....
  dc.b 10,10
  dc.b $CA,$0A,$CA,$0A ;....
  dc.b $CA,$0A,$0A,$CA ;....
  dc.b $CA,$0A,$CA,$CA ;....
  dc.b $CA,$0A,$0A,$0A ;....
  dc.b 10
  dc.b $CA,$CA,$0A ;...
  dc.b 10
  dc.b $CA,$0A,$CA ;...
  dc.b 10
  dc.b $CA,$CA,$CA ;...
  dc.b 10
  dc.b $CA,$0A,$0A ;...
  dc.b $CA,$CA,$CA,$0A ;....
  dc.b $CA,$CA,$0A,$CA ;....
  dc.b $CA,$CA,$CA,$CA ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b 10,10
  dc.b $FA,$0A,$0A ;...
  dc.b 10,":"
  dc.b $CA,$0A,$0A ;...
  dc.b $FA,$CA,$0A ;...
  dc.b 10,":",10
  dc.b $CA,$0A,$FA,$0A ;....
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $CA,$CA,$0A ;...
  dc.b $FA,$CA,$CA ;...
  dc.b 10,":",10,10
  dc.b $CA,$FA,$0A ;...
  dc.b 10
  dc.b $CA,$3A,$CA ;.:.
  dc.b 10
  dc.b $CA,$FA,$CA ;...
  dc.b 10
  dc.b $CA,$3A,$0A ;.:.
  dc.b $CA,$CA,$FA,$0A ;....
  dc.b $CA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b $CA,$CA,$FA,$CA ;....
  dc.b $CA,$CA ;..
  dc.b 10,":",10,10
  dc.b $CA,$3A,$0A,$0A ;.:..
  dc.b 10
  dc.b $FA,$0A,$0A ;...
  dc.b $CA,$FA,$0A,$0A ;....
  dc.b 10,":"
  dc.b $CA,$0A ;..
  dc.b $CA,$3A,$CA,$0A ;.:..
  dc.b 10
  dc.b $FA,$CA,$0A ;...
  dc.b $CA,$FA,$CA,$0A ;....
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b $CA,$3A,$0A,$CA ;.:..
  dc.b 10
  dc.b $FA,$0A,$CA ;...
  dc.b $CA,$FA,$0A,$CA ;....
  dc.b 10,":"
  dc.b $CA,$CA ;..
  dc.b $CA,$3A,$CA,$CA ;.:..
  dc.b 10
  dc.b $FA,$CA,$CA ;...
  dc.b $CA,$FA,$CA ;...
  dc.b $CA ;.
  dc.b "::",10,10
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10,":"
  dc.b $FA,$0A,$0A ;...
  dc.b $FA,$FA,$0A ;...
  dc.b 10,"::"
  dc.b $CA,$0A ;..
  dc.b $FA,$3A,$CA ;.:.
  dc.b 10,":"
  dc.b $FA,$CA,$0A ;...
  dc.b $FA,$FA,$CA ;...
  dc.b 10,"::",10
  dc.b $CA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $CA,$3A,$FA ;.:.
  dc.b 10
  dc.b $CA,$FA,$FA ;...
  dc.b 10
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA,$CA ;..
  dc.b $FA,$3A,$CA ;.:.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $CA,$CA,$FA,$FA ;....
  dc.b $CA,$CA,$0A ;...
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b 10,":",10,10
  dc.b $CA,$3A,$0A ;.:.
  dc.b $CA ;.
  dc.b $CA,$3A,$0A ;.:.
  dc.b 10,10
  dc.b $FA,$0A,$CA,$0A ;....
  dc.b $FA,$0A,$0A,$CA ;....
  dc.b $FA,$0A,$CA,$CA ;....
  dc.b $FA,$0A,$0A ;...
  dc.b 10,":"
  dc.b $CA,$CA ;..
  dc.b 10,":"
  dc.b $CA,$0A ;..
  dc.b $CA,$3A,$CA ;.:.
  dc.b $CA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b 10,10
  dc.b $FA,$CA,$CA,$0A ;....
  dc.b $FA,$CA,$0A,$CA ;....
  dc.b $FA,$CA,$CA,$CA ;....
  dc.b $FA ;.
  dc.b $CA,$3A ;.:
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b 10,":",10,":"
  dc.b $CA,$3A,$0A ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A ;.:
  dc.b 10,":",10
  dc.b $FA,$0A,$FA,$0A ;....
  dc.b $FA ;.
  dc.b 10,":"
  dc.b $CA,$FA,$0A ;...
  dc.b $FA,$CA,$FA ;...
  dc.b 10,":",10,":"
  dc.b $CA,$FA ;..
  dc.b 10,":"
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A,$CA ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A,$0A ;.:.
  dc.b $FA,$CA,$FA,$0A ;....
  dc.b $FA ;.
  dc.b $CA,$3A,$CA ;.:.
  dc.b $FA,$CA,$FA,$CA ;....
  dc.b $FA,$CA ;..
  dc.b 10,"::",10
  dc.b $CA ;.
  dc.b "::",10,10
  dc.b $FA,$3A,$0A ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10,":"
  dc.b $FA,$0A ;..
  dc.b $CA,$3A,$FA,$0A ;.:..
  dc.b 10
  dc.b $FA,$FA,$0A ;...
  dc.b $CA,$FA,$FA,$0A ;....
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA,$0A ;..
  dc.b $FA,$3A,$CA ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b 10,":"
  dc.b $FA,$CA ;..
  dc.b $CA,$3A,$FA,$CA ;.:..
  dc.b 10
  dc.b $FA,$FA,$CA ;...
  dc.b $CA,$FA,$FA ;...
  dc.b $CA ;.
  dc.b ":::",10
  dc.b $FA ;.
  dc.b "::",10,":"
  dc.b $FA,$3A,$0A ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A ;.:
  dc.b 10,"::"
  dc.b $FA,$0A ;..
  dc.b $FA,$3A,$FA ;.:.
  dc.b 10,":"
  dc.b $FA,$FA,$0A ;...
  dc.b $FA,$FA,$FA ;...
  dc.b 10,":::"
  dc.b $CA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A,$CA ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A ;.:
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA,$CA ;..
  dc.b $FA,$3A,$FA ;.:.
  dc.b $CA,$3A,$FA ;.:.
  dc.b $FA,$CA,$FA,$FA ;....
  dc.b $FA,$CA,$0A,$0A ;....
  dc.b 10,":"
  dc.b $CA,$0A ;..
  dc.b 10,":",10
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $CA,$CA ;..
  dc.b 10,":",10,10
  dc.b $CA,$3A,$CA,$0A ;.:..
  dc.b $CA,$3A,$0A,$CA ;.:..
  dc.b $CA,$3A,$CA,$CA ;.:..
  dc.b $CA,$3A,$0A,$0A ;.:..
  dc.b 10
  dc.b $FA,$CA,$0A ;...
  dc.b 10
  dc.b $FA,$0A,$CA ;...
  dc.b 10
  dc.b $FA,$CA,$CA ;...
  dc.b 10
  dc.b $FA,$0A,$0A ;...
  dc.b $CA,$FA,$CA,$0A ;....
  dc.b $CA,$FA,$0A,$CA ;....
  dc.b $CA,$FA,$CA,$CA ;....
  dc.b $CA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10,":"
  dc.b $FA,$0A ;..
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b 10,":"
  dc.b $FA,$CA ;..
  dc.b 10,"::",10
  dc.b $CA,$3A,$FA,$0A ;.:..
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $CA,$3A,$FA,$CA ;.:..
  dc.b $CA ;.
  dc.b "::",10,10
  dc.b $FA,$FA,$0A ;...
  dc.b 10
  dc.b $FA,$3A,$CA ;.:.
  dc.b 10
  dc.b $FA,$FA,$CA ;...
  dc.b 10
  dc.b $FA,$3A,$0A ;.:.
  dc.b $CA,$FA,$FA,$0A ;....
  dc.b $CA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $CA,$FA,$FA,$CA ;....
  dc.b $CA,$FA ;..
  dc.b 10,":",10,":"
  dc.b $CA,$3A ;.:
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b 10,":"
  dc.b $CA,$FA ;..
  dc.b 10,":",10,":"
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $CA,$3A,$0A,$FA ;.:..
  dc.b $CA,$3A,$CA,$FA ;.:..
  dc.b $CA,$3A ;.:
  dc.b 10,":",10
  dc.b $FA ;.
  dc.b $CA,$3A,$0A,$FA ;.:..
  dc.b 10
  dc.b $FA,$0A,$FA ;...
  dc.b $CA,$FA,$0A,$FA ;....
  dc.b 10,":"
  dc.b $CA,$FA ;..
  dc.b $CA,$3A,$CA,$FA ;.:..
  dc.b 10
  dc.b $FA,$CA,$FA ;...
  dc.b $CA,$FA,$CA ;...
  dc.b $FA ;.
  dc.b "::",10,":"
  dc.b $FA,$3A ;.:
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b 10,":"
  dc.b $FA,$FA ;..
  dc.b 10,":::"
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $CA,$3A,$FA,$FA ;.:..
  dc.b $CA ;.
  dc.b ":::",10
  dc.b $FA ;.
  dc.b $FA,$3A,$0A ;.:.
  dc.b $FA,$3A,$FA ;.:.
  dc.b 10
  dc.b $FA,$FA,$FA ;...
  dc.b 10
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA,$FA ;..
  dc.b $FA,$3A,$CA ;.:.
  dc.b $FA,$3A,$FA ;.:.
  dc.b $CA,$FA,$FA,$FA ;....
  dc.b $CA,$FA,$0A ;...
  dc.b 10,"::"
  dc.b $CA ;.
  dc.b 10,"::",10
  dc.b $CA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $CA ;.
  dc.b "::",10,10
  dc.b $FA,$3A,$CA,$0A ;.:..
  dc.b $FA,$3A,$0A,$CA ;.:..
  dc.b $FA,$3A,$CA,$CA ;.:..
  dc.b $FA,$3A,$0A ;.:.
  dc.b 10,":"
  dc.b $FA,$CA ;..
  dc.b 10,":"
  dc.b $FA,$0A ;..
  dc.b $CA,$3A,$FA ;.:.
  dc.b $CA ;.
  dc.b $CA,$3A,$FA ;.:.
  dc.b 10,10
  dc.b $FA,$FA,$CA,$0A ;....
  dc.b $FA,$FA,$0A,$CA ;....
  dc.b $FA,$FA,$CA,$CA ;....
  dc.b $FA ;.
  dc.b $FA,$3A ;.:
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b 10,":::"
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $CA ;.
  dc.b ":::",10
  dc.b $FA,$3A,$FA,$0A ;.:..
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $FA,$3A,$FA,$CA ;.:..
  dc.b $FA ;.
  dc.b "::",10,":"
  dc.b $FA,$FA ;..
  dc.b 10,":"
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A,$FA ;.:.
  dc.b $FA ;.
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A,$0A ;.:.
  dc.b $FA,$FA,$FA,$0A ;....
  dc.b $FA ;.
  dc.b $FA,$3A,$CA ;.:.
  dc.b $FA,$FA,$FA,$CA ;....
  dc.b $FA,$FA ;..
  dc.b 10,":::"
  dc.b $CA ;.
  dc.b ":::",10
  dc.b $FA ;.
  dc.b "::"
  dc.b $CA ;.
  dc.b $FA ;.
  dc.b "::",10,":"
  dc.b $FA,$3A ;.:
  dc.b $CA,$3A ;.:
  dc.b $FA,$3A,$0A,$FA ;.:..
  dc.b $FA,$3A,$CA,$FA ;.:..
  dc.b $FA,$3A ;.:
  dc.b 10,"::"
  dc.b $FA ;.
  dc.b $CA ;.
  dc.b "::"
  dc.b $FA,$0A ;..
  dc.b $FA,$3A,$FA ;.:.
  dc.b $CA ;.
  dc.b $FA,$3A,$FA ;.:.
  dc.b 10,":"
  dc.b $FA,$FA ;..
  dc.b $CA,$3A,$FA,$FA ;.:..
  dc.b 10
  dc.b $FA,$FA,$FA ;...
  dc.b $CA,$FA,$FA ;...
  dc.b $FA ;.
  dc.b "::::"
  dc.b $FA ;.
  dc.b "::::"
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $FA ;.
  dc.b "::::"
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A ;.:
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA ;.
  dc.b $FA,$3A,$FA,$FA ;.:..
  dc.b $FA ;.
  dc.b "::::"
  dc.b $FA ;.
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA,$3A ;.:
  dc.b $FA,$3A,$FA ;.:.
  dc.b $FA ;.
  dc.b $FA,$3A ;.:
  dc.b $FA ;.
  dc.b "::"
  dc.b $FA,$FA ;..
  dc.b $FA,$3A,$FA ;.:.
  dc.b $FA,$3A,$FA ;.:.
  dc.b $FA,$FA,$FA,$FA ;....
  dc.b $FA,$FA ;..
 cnop 0,4
JL_1_990:  ror.b #3,D0
  add.w D0,D0
  move.b $19(A1),D0
  lsl.w #3,D0
  lea L_1_9B0(PC,D0.W),A1
  move.l (A1)+,(A0)
  move.l (A1),-(A0)
 rtS
 cnop 0,4
L_1_9B0:  dc.b "************"
  dc.b $EA ;.
  dc.b "********"
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "********"
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "********"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b "*******"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "*******"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "*******"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "*******"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "******"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "*****"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "****"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A ;.*
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA ;..
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA ;.
  dc.b $EA ;.
  dc.b "***"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$EA ;..
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b $EA,$2A ;.*
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA ;.
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA ;...
  dc.b $EA ;.
  dc.b "**"
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$EA ;..
  dc.b $EA,$2A,$EA,$EA ;.*..
  dc.b $EA,$EA,$EA ;...
  dc.b $EA,$2A,$EA ;.*.
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$EA,$EA,$EA ;....
  dc.b $EA,$EA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$8A,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $8A,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$8A ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$8A,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA,$BA,$BA,$BA ;....
  dc.b $BA ;.
  dc.b $BA ;.
 cnop 0,4
iv_Data SET $A8
OwnBlitter:  addq.w #1,iv_Data+2(A6)
   bne.b JL_1_19B8
 rtS
 cnop 0,4
JL_1_19B8:  movem.l D0-D1/A0-A1/A5-A6,-(A7)
  lea -$10(A7),A7
iv_Code SET $AC
  lea iv_Code+2(A6),A5
  movea.l $1a4(A6),A6
  moveq.l #$00,D0
  move.l $114(A6),$A(A7)
  moveq.l #$10,D1
   bsr.w SetSignal ;jsr _LVOSetSignal(A6)
  lea -$5(A5),A0
  moveq.l #$02,D0
  lea $126(A6),A1
  move.w #$4000,_custom+INTENA
  addq.b #1,(A1)
  bclr D0,(A0)
   bne.b JL_1_1A20
  movea.l A5,A0
  addq.l #4,A0
  move.l $4(A0),D0
  move.l A7,$4(A0)
  exg.l D0,A0
  movem.l D0/A0,(A7)
  move.l A7,(A0)
  subq.b #1,(a1) ;subq.b #1,$126(A6)
   bge.b JL_1_1A10
  move.w #$C000,_custom+INTENA
JL_1_1A10:  moveq.l #$10,D0
   bsr.w Wait ;jsr _LVOWait(A6)
  lea $10(A7),A7
  movem.l (A7)+,D0-d1/a0-a1/a5-a6
 rtS
 cnop 0,4
JL_1_1A20:  subq.b #1,(A1)
   bge.b JL_1_1A2C
  move.w #$C000,_custom+INTENA
JL_1_1A2C:  lea $10(A7),A7
  movem.l (A7)+,D0-d1/a0-a1/a5-a6
 rtS
 cnop 0,4
WritePixel:  movem.l D2-D3/A3-A5,-(A7)
  movea.l (A1),A5
  move.l A5,D2
   beq.w JL_1_1AEE
  lea $48(A5),A0
  move.l A6,D3
  movea.l $1A4(A6),A6
   jsr _LVOObtainSemaphore(A6)
  movea.l D3,A6
  move.l $8(A5),D2
   beq.w JL_1_1BA4
  add.w $10(A5),D0
  add.w $12(A5),D1
  sub.w $2C(A5),D0
  sub.w $2E(A5),D1
JL_1_1A6A:  movea.l D2,A0
  cmp.w $10(A0),D0
   blt.b JL_1_1AA4
  cmp.w $14(A0),D0
   bgt.b JL_1_1AA4
  cmp.w $12(A0),D1
   blt.b JL_1_1AA4
  cmp.w $16(A0),D1
   bgt.b JL_1_1AA4
  tst.l $8(A0)
   beq.b JL_1_1AEE
  move.l $C(A0),D3
   beq.w JL_1_1BA4
  move.w $10(A0),D2
  and.w #-$10,D2
  sub.w D2,D0
  sub.w $12(A0),D1
  movea.l D3,A0
 bra.b JL_1_1AF2
 cnop 0,4
JL_1_1AA4:  move.l (A0),D2
   bne.b JL_1_1A6A
  move.l $20(A0),D2
   beq.w JL_1_1BA4
  move.l $24(A5),D3
   beq.w JL_1_1BA4
  add.w $2C(A5),D0
  add.w $2E(A5),D1
  sub.w $10(A5),D0
  sub.w $12(A5),D1
JL_1_1AC8:  movea.l D3,A0
  cmp.w $10(A0),D0
   blt.b JL_1_1AE6
  cmp.w $14(A0),D0
   bgt.b JL_1_1AE6
  cmp.w $12(A0),D1
   blt.b JL_1_1AE6
  cmp.w $16(A0),D1
   bgt.b JL_1_1AE6
  movea.l D2,A0
 bra.b JL_1_1AF2
 cnop 0,4
JL_1_1AE6:  move.l (A0),D3
   bne.b JL_1_1AC8
 bra.w JL_1_1BA4
 cnop 0,4
JL_1_1AEE:  movea.l $4(A1),A0
JL_1_1AF2:  muls (A0),D1
  move.w D0,D3
  ori.b #$7,D0
  sub.w D3,D0
  ext.l D3
  asr.l #3,D3
  add.l D3,D1
  movea.l D1,A5
  move.b $5(A0),D3
  subq.w #1,D3
  addq.l #8,A0
  lea _custom+DMACONR,A4
  addq.w #1,$AA(A6)
   beq.b JL_1_1B1C
   bsr.w JL_1_19B8
JL_1_1B1C:  tst.b (A4)
  btst #$6,(A4)
   beq.b JL_1_1B2A
  moveq.l #$06,D1
JL_1_1B26:  btst D1,(A4)
   bne.b JL_1_1B26
JL_1_1B2A:  lea $28(A1),A3
  move.b $18(A1),D1
  not.b D1
   bne.b JL_1_1B78
JL_1_1B36:  move.b (A3)+,D2
  movea.l (A0)+,A4
  add.b D2,D2
   bcc.b JL_1_1B4A
   bpl.b JL_1_1B44
  bset D0,$0(A4,A5.L)
JL_1_1B44:   dbf D3,JL_1_1B36
 bra.b JL_1_1B5E
 cnop 0,4
JL_1_1B4A:   bmi.b JL_1_1B56
  bclr D0,$0(A4,A5.L)
   dbf D3,JL_1_1B36
 bra.b JL_1_1B5E
  cnop 0,4
JL_1_1B56:  bchg D0,$0(A4,A5.L)
   dbf D3,JL_1_1B36
JL_1_1B5E:  subq.w #1,$AA(A6)
   blt.b JL_1_1B66
   bsr.b JL_1_1BC8
JL_1_1B66:  move.l (A1),D0
   beq.b JL_1_1B70
  movea.l D0,A5
   bsr.w UnlockLayerRom ;jsr _LVOUnlockLayerRom(A6)
JL_1_1B70:  moveq.l #$00,D0
  movem.l (A7)+,D2-d3/a3-a5
 rtS
  cnop 0,4
JL_1_1B78:  move.b (A3)+,D2
  movea.l (A0)+,A4
  lsr.b #1,D1
   bcs.b JL_1_1B8A
  add.b D2,D2
   bcc.b JL_1_1B90
   bpl.b JL_1_1B8A
  bset D0,$0(A4,A5.L)
JL_1_1B8A:   dbf D3,JL_1_1B78
 bra.b JL_1_1B5E
 cnop 0,4
JL_1_1B90:   bmi.b JL_1_1B9C
  bclr D0,$0(A4,A5.L)
   dbf D3,JL_1_1B78
 bra.b JL_1_1B5E
 cnop 0,4
JL_1_1B9C:  bchg D0,$0(A4,A5.L)
   dbf D3,JL_1_1B78
JL_1_1BA4:  move.l (A1),D0
   beq.b JL_1_1BBA
  movea.l D0,A5
  lea $48(A5),A0
  move.l A6,D3
  movea.l $1A4(A6),A6
   bsr.w ReleaseSemaphore ;jsr _LVOReleaseSemaphore(A6)
  movea.l D3,A6
JL_1_1BBA:  moveq.l #-$01,D0
  movem.l (A7)+,D2-d3/a3-a5
 rtS
 cnop 0,4
DisownBlitter:  subq.w #1,$AA(A6)
   blt.b JL_1_1C14
JL_1_1BC8:  movem.l D0-D1/A0-A1/A5-A6,-(A7)
  movea.l $1A4(A6),A5
  lea $AE(A6),A0
  lea _custom+DMACONR,A1
cu_TabStops.26 SET $98
  move.w #$4000,cu_TabStops.26(A1)
  addq.b #1,$126(A5)
tc_SPLower SET $3A
  tst.l tc_SPLower(A6)
   beq.b JL_1_1C16
  tst.b (A1)
  btst #$6,(A1)
   bne.b JL_1_1BF8
cu_TabStops.27 SET $9A
  move.w #$8040,cu_TabStops.27(A1)
cu_TabStops.26 SET $98
JL_1_1BF8:  move.w #$8040,cu_TabStops.26(A1)
pr_FileSystemTask SET $A8
  ori.w #$2,pr_FileSystemTask(A6)
  subq.b #1,$126(A5)
   bge.b JL_1_1C10
cu_TabStops.26 SET $98
  move.w #$C000,cu_TabStops.26(A1)
JL_1_1C10:  movem.l (A7)+,d0-d1/a0-a1/a5-a6
JL_1_1C14: rtS
 cnop 0,4
JL_1_1C16:  movea.l (A0),A1
  move.l (A1),D0
   beq.b JL_1_1C44
  movea.l A5,A6
  move.l D0,(A0)
  movea.l $A(A1),A1
  movea.l D0,A5
  move.l A0,$4(A5)
  moveq.l #$10,D0
   bsr.w Signal ;jsr _LVOSignal(A6)
  subq.b #1,$126(A6)
   bge.b JL_1_1C3E
  move.w #$C000,_custom+INTENA
JL_1_1C3E: movem.l (A7)+,d0-d1/a0-a1/a5-a6
 rtS
 cnop 0,4
JL_1_1C44:  bset #$2,$A9(A6)
  subq.b #1,$126(A5)
   bge.b JL_1_1C58
  move.w #$C000,_custom+INTENA
JL_1_1C58: movem.l (A7)+,d0-d1/a0-a1/a5-a6
 rtS
 cnop 0,4
LockLayerRom:  move.l A0,-(A7)
  lea $48(A5),A0
  movea.l PExecBase(PC),A6
   jsr _LVOObtainSemaphore(A6)
  movea.l PGfxBase(PC),A6
  movea.l (A7)+,A0
 rtS
 cnop 0,4
UnlockLayerRom:  move.l A0,-(A7)
  lea $48(A5),A0
  movea.l PExecBase(PC),A6
   bsr.w ReleaseSemaphore ;jsr _LVOReleaseSemaphore(A6)
  movea.l PGfxBase(PC),A6
  movea.l (A7)+,A0
 rtS
 cnop 0,4
;******************************* wcp ***************************************************
WritePixelLine8
    movem.l d2-d7/a2-a5,-(sp)
    move.w    d2,d4
    move.w    d1,d3
    add.w    d0,d2
    addi.w    #15,d4
    subq.w    #1,d2
    andi.w    #-16,d4
    bra.b    WPx8
    cnop    0,4

WritePixelArray8
    movem.l d2-d7/a2-a5,-(sp)
    move.w    d2,d4
    moveq    #-16,d5
    sub.w    d0,d4
    sub.w    d5,d4    ; d4-(-16)=d4+16  or (xstop-xstart+1)+15
    and.w    d5,d4
    bra.b    WPx8
    cnop    0,4

WriteChunkyPixels
    movem.l d2-d7/a2-a5,-(sp)
    ;
    ; Make Rectangle on stack (see graphics/gfx.h for structure)
    ; save ystop
    ; save xstop
    ; save ystart
    ; save xstart    { (sp) = Rect }
    ;
WPx8    movem.w d0-d3,-(sp)

    move.l    sp,d6

    sub.w    d0,d2
    clr.l    -(sp)
    addq.w    #1,d2
    movem.w d0/d1/d2/d4,-(sp)
    move.l    a2,-(sp)      ; save array      { (sp) = data, (12,sp) = Rect }
    ;12 - # pixels plotted
    ;10 - width of chunky data
    ;8  - xstop-xstart+1       ; width  of blit
    ;6  - ystart
    ;4  - xstart
    ;0  - array
    ;
    movea.l a0,a1        ; get rastport

    move.l    sp,d7         ; get h_Data
    move.l (a1),d4      ; d4 = rp->rp_Layer
    BNE.B    have_layer   ; nope, branch

    moveq    #0,d0
    movea.l d6,a4         ; rect
    MOVE    (2,a4),d0    ;
    move.l    d0,-(sp)     ; offsety
    movea.l a1,a2         ; rp
    MOVE    (a4),d0      ;
    move.l    d0,-(sp)     ; offsetx
    move.l    (4,a4),-(sp) ; bounds
    move.l    (a4),-(sp)   ; bounds
    move.l    d4,-(sp)     ; layer
    movea.l sp,a1         ; pass message
    bsr.w    HookFunc
    move.l    (32,sp),d0
    lea    (44,sp),sp
    move.l    (PGfxBase,pc),a6    ; get GfxBase
    movem.l (sp)+,d2-d7/a2-a5
    rts
    cnop    0,4

have_layer
    move.l    a1,d5        ; save rp
    CLR.L    (a1)+        ; clear rp->rp_layer
    move.l    (a1),-(sp)  ; save rp->rp_BitMap
    move.l    d4,a2        ;
    SUBQ.L    #8,sp        ; reserve space
    move.l    (PExecBase,pc),a6

    lea    (lr_Lock,a2),a0
    jsr    (_LVOObtainSemaphore,a6)
    MOVE    (lr_MinX,a2),d2      ;lr_MinX
    SUB    (lr_Scroll_X,a2),d2  ;lr_Scroll_X
    MOVE    (lr_MinY,a2),d3      ;lr_MinY
    SUB    (lr_Scroll_Y,a2),d3  ;lr_Scroll_Y
    movea.l sp,a1
    movea.l d6,a0
    move.l    d6,-(sp)    ; is rect NULL ?
    BEQ.B    NRec        ; yep, branch
    move.l    a1,d6
*****************************************************
    MOVE    (a0)+,d0
    ADD    d2,d0       ; ra_MinX + boundsX
    MOVE    d0,(a1)+
    MOVE    (a0)+,d0
    ADD    d3,d0       ; ra_MinY + boundsY
    MOVE    d0,(a1)+
    MOVE    (a0)+,d0
    ADD    d2,d0       ; ra_MaxX + boundsX
    MOVE    d0,(a1)+
    MOVE    (a0)+,d0
    ADD    d3,d0       ; ra_MaxY + boundsY
    MOVE    d0,(a1)+
*****************************************************
NRec    LEA    (lr_ClipRect,a2),a5  ; lr_ClipRect
    SUBQ.L    #8,sp


    ; for BitMaps/ClipRects
    ;
    ;
    ;
    ;
Rend_cr move.l    (a5),d0       ; lr_ClipRect = 0
    BEQ    Rend_Super_cr ; yep, try SuperClipRects
    movea.l d0,a5
    LEA    (cr_MinX,a5),a4 ; cr_MinX
    TST.L    d6
    BEQ.B    cr_NoRect
    movea.l d6,a1
    movea.l sp,a2
    move.l    (a4)+,d0   ; cr_MinX/cr_MinY
    move.l    (a1)+,d1   ; rect minX/MinY
    cmp.l    d0,d1
    ble.b    10$
    exg    d0,d1
10$    cmp.w    d0,d1
    ble.b    20$
    move.w    d1,d0
20$    move.l    d0,(a2)+
    move.l    (a4)+,d0   ; cr_MaxX/cr_MaxY
    move.l    (a1)+,d1   ; rect maxX/maxY
    cmp.l    d0,d1
    bge.b    30$
    exg    d0,d1
30$    cmp.w    d0,d1
    bge.b    40$
    move.w    d1,d0
40$    move.l    d0,(a2)
    move.l    -(a2),d1
    CMP    d1,d0
    BLT.B    Rend_cr
    CMP.L    d1,d0
    BLT.B    Rend_cr
    movea.l sp,a4

cr_NoRect
    movea.l d5,a2         ; RastPort
    TST.L    (cr_lobs,a5) ; cr_lobs
    BNE.B    cr_Lobs
    moveq    #0,d0
    MOVE    (2,a4),d0    ;
    SUB    d3,d0         ;
    move.l    d0,-(sp)     ; offsety
    MOVE    (a4),d0      ;
    SUB    d2,d0         ;
    move.l    d0,-(sp)     ; offsetx
    move.l    (4,a4),-(sp) ; bounds
    move.l    (a4),-(sp)   ; bounds
    move.l    d4,-(sp)     ; layer
    movea.l sp,a1         ; pass message
    movem.l d2-d7/a5,-(sp)
    bsr.w    HookFunc
    movem.l (sp)+,d2-d7/a5
    LEA    (20,sp),sp
    bra.b    Rend_cr
    cnop    0,4



      ; for ClipRects with lobs
      ;
      ; a0 = Hook
      ; a1 = layer
      ; a2 = RastPort
      ; a4 = current rect
      ; a5 = ClipRect
      ;
cr_Lobs TST.L    (cr_BitMap,a5)           ; cr_BitMap
    BEQ.B    Rend_cr      ; cliprect has no bitmap
    moveq    #15,d1
    move.w    (cr_MinX,a5),d0  ; cr_MinX
    and.w    d0,d1         ; 15 & cr_MinX
    sub.w    d0,d1         ; (15 & cr_MinX)-cr_MinX
    move.l    (4,a4),d0     ; MaxX,MaxY
    swap    d1
    add.l    d1,d0         ; MaxX+((15 & cr_MinX)-cr_MinX) , MaxY
    sub.w    (cr_MinY,a5),d0  ; MaxX+((15 & cr_MinX)-cr_MinX) , MaxY-cr_MinY
    move.l    d0,-(sp)
    add.l    (a4),d1      ; MinX+((15 & cr_MinX)-cr_MinX) , MinY
    SUB    (cr_MinY,a5),d1  ; MinX+((15 & cr_MinX)-cr_MinX) , MinY-cr_MinY
    move.l    d1,-(sp)
    movea.l sp,a3
    move.l    (rp_BitMap,a2),a6          ; save rp_BitMap
    move.l    (cr_BitMap,a5),(rp_BitMap,a2) ; cr_BitMap -> rp_BitMap
    moveq    #0,d0
    MOVE    (2,a4),d0    ; MinY
    SUB    d3,d0         ;
    move.l    d0,-(sp)     ; offsety
    MOVE    (a4),d0      ; MinX
    SUB    d2,d0         ;
    move.l    d0,-(sp)     ; offsetx
    move.l    (4,a3),-(sp) ; bounds MaxX+((15 & cr_MinX)-cr_MinX) ,MaxY-cr_MaxY
    move.l    (a3),-(sp)   ; bounds MinX+((15 & cr_MinX)-cr_MinX) ,MinY-cr_MinY
    move.l    d4,-(sp)     ;
    movea.l sp,a1         ; pass message
    movem.l d2-d7/a2/a5-a6,-(sp)
    bsr.w    HookFunc
    movem.l (sp)+,d2-d7/a2/a5-a6
    LEA    (28,sp),sp
    move.l    a6,(rp_BitMap,a2)    ; restore rp_BitMap
    BRA    Rend_cr
    cnop    0,4

QuitDHCR:
    ADDQ.L    #8,sp
    movea.l d5,a0
    move.l    (sp)+,(rp_BitMap,a0)  ; rp_BitMap
    move.l    d4,(a0)
    movea.l d4,a0
    move.l    (PExecBase,pc),a6
    lea    (lr_Lock,a0),a0
    bsr.w ReleaseSemaphore ;jsr    (_LVOReleaseSemaphore,a6)
    move.l    (32-20,sp),d0
    lea    (44-20,sp),sp
    move.l    (PGfxBase,pc),a6    ; get GfxBase
    movem.l (sp)+,d2-d7/a2-a5
    rts
    cnop    0,4


    ; for SuperBitMaps/SuperClipRects
    ;
    ;
    ; a2 = Layer
    ; a5 = ClipRect
    ;
Rend_Super_cr
    ADDQ.L    #8,sp
    move.l    (sp)+,d6
    movea.l d4,a2        ; restore layer to a2.
    move.l    (lr_SuperBitMap,a2),d0    ; lr_SuperBitMap
    BEQ.B    QuitDHCR    ; nope, quit
    movea.l d5,a0        ; restore rastport
    move.l    d0,(rp_BitMap,a0)   ; lr_SuperBitMap -> rp_BitMap
    LEA    (lr_SuperClipRect,a2),a5  ; lr_SuperClipRect


    ;
    ; This section loops thru SuperClipRects, calls the hook
    ;  if needed and quits when done.

Super_cr
    move.l    (a5),d0     ; lr_SuperClipRect = null
    BEQ.B    QuitDHCR    ; yep, quit
    movea.l d0,a5
    LEA    (cr_MinX,a5),a4  ; cr_MinX
    TST.L    d6        ; rect = null
    BEQ.B    50$        ; yep, so just go do it
    movea.l d6,a1
    movea.l sp,a2
    move.l    (a4)+,d0    ; This is the SuperClipRects rect
    move.l    (a1)+,d1    ; This is what we passed.
    cmp.l    d0,d1
    ble.b    10$
    exg    d0,d1
10$    cmp.w    d0,d1
    ble.b    20$
    move.w    d1,d0
20$    move.l    d0,(a2)+
    move.l    (a4)+,d0
    move.l    (a1)+,d1
    cmp.l    d0,d1
    bge.b    30$
    exg    d0,d1
30$    cmp.w    d0,d1
    bge.b    40$
    move.w    d1,d0
40$    move.l    d0,(a2)
    move.l    -(a2),d1
    CMP    d1,d0
    BLT.B    Super_cr
    CMP.l    d1,d0
    BLT.B    Super_cr
    movea.l sp,a4
50$    movea.l d5,a2
    moveq    #0,d0         ; this does the hook
    MOVE    (2,a4),d0    ;
    move.l    d0,-(sp)     ; offsety
    MOVE    (a4),d0      ;
    move.l    d0,-(sp)     ; offsetx
    move.l    (4,a4),-(sp) ; bounds
    move.l    (a4),-(sp)   ; bounds
    move.l    d4,-(sp)     ; layer
    movea.l sp,a1         ; pass message
    movem.l d4-d7/a5,-(sp)
    bsr.b    HookFunc
    movem.l (sp)+,d4-d7/a5
    LEA    (20,sp),sp
    bra.b    Super_cr
    cnop    0,4





HookFunc:   ; a0 = Hook, a1 = message [layer, bounds, offsetx, offsety], a2 = RastPort
    moveq    #stacked,d1
    suba.l    d1,sp
    movea.l d7,a6           ;(h_Data,a0),a6  ; a6 = Hook->h_Data (16)
    movea.l (rp_BitMap,a2),a4    ; a4 = BitMap
    move.l    a2,a5
    move.b    (bm_Depth,a4),d5    ; d5 = BitMap->Depth
    beq.w    crap_c2p
    cmpi.b    #9,d5
    bge.w    crap_c2p
    move.w    (a4),d1   ;(bm_BytesPerRow,a4),d1
    move.l    d1,(DBPR,sp)
    extb.l    d5
    moveq    #31,d7


    ;
    ;
    ; This code generates height, width area and chunky displacement
    ;
    ;
    movea.l a1,a3        ; a3 = message
    move.w    (4,a6),a2   ; a2 = xstart      4,a6
    move.l    (12,a1),d1  ; d1 = offsetx
    sub.l    a2,d1        ;     = offsetx-xstart
    move.w    (6,a6),a2   ; a2 = ystart      6,a6
    move.l    (16,a1),d2  ; d2 = offsety
    sub.l    a2,d2        ;     = offsety-ystart
    muls.w    (10,a6),d2  ; d2 = (chunky BytesPerRow)*(offsety-ystart) 10,a6
    movea.l (a6),a2     ; a2 = pointer to array
    adda.l    d2,a2        ; a2 = array + ((chunky BytesPerRow)*(offsety-ystart))
    adda.l    d1,a2        ; a2 = (array+((chunky BytesPerRow)*(offsety-ystart))) + (xoffset-xstart)
    addq.l    #4,a1
    ;
    ;    d2 = Actual # of pixel wide
    ;
    move.w    (a1)+,d0    ; d0 = MinX
    moveq    #0,d2
    move.w    (8,a3),d2   ; d2 = MaxX
    sub.w    d0,d2        ; d2 = MaxX-MinX
    addq.w    #1,d2        ; d2 = (MaxX-MinX)+1
    ;
    ;    d1 = Actual # of pixels high
    ;
    moveq    #0,d1
    move.w    (10,a3),d1  ; d1 = MaxY
    sub.w    (a1)+,d1    ; d1 = MaxY-MinY
    addq.w    #1,d1        ; d1 = (MaxY-MinY)+1


    move.l    d2,d3
    muls.w    d1,d3
    add.l    d3,(12,a6)  ; this WILL make it give the correct # of pixels plotted
    ;
    ;
    ; The code below calculates how the bitmap is aligned and builds masks, etc...
    ;
    ;
    move.w    d1,(Lines,sp)
    moveq    #32,d4        ; d4 = 32
    sub.w    d0,d4        ; d4 = 32-MinX
    and.l    d7,d4        ; d4 = (32-MinX) & $0000001f  shift into 1st LW
    move.w    (a1),d0     ; d0 = MaxX
    addq.w    #1,d0        ; d0 = MaxX+1
    and.l    d7,d0        ; d0 = (MaxX+1) & $0000001f shift into last LW
    moveq    #32,d1        ; d1 = 32
    sub.l    d4,d1        ; d1 = 32-( (32-MinX)&31 ) amount of data in 1st LW
    moveq    #-1,d3
    lsr.l    d1,d3        ; d3 = -1>>32-((32-MinX)&31) start mask
    moveq    #32,d1        ; d1 = 32
    sub.l    d0,d1        ; d1 = 32-((MaxX+1) & 31)
    move.l    d3,(FLWmask,sp) ; firstword mask save d3
    moveq    #-1,d3
    lsl.l    d1,d3        ; d1 = -1 << by 32-((MaxX+1) & 31)
    moveq    #0,d6
    move.w    (10,a6),a6    ;(HData,sp)
    move.w    (6,a3),d6
    add.w    (4,a3),d7
    muls.w    (a4),d6
    lsr.l    #5,d7
    lsl.l    #2,d7
    add.l    d7,d6

    move.l    d5,d7
    subq.l    #1,d7
    ;
    ;
    ;
    ;    Code builds inital pointers into temp/dest bitmap
    ;
DispBuild
    movea.l (8,a4,d7.l*4),a1
    adda.l    d6,a1
    move.l    a1,(DP0point,sp,d7.l*4)
    dbf    d7,DispBuild


    moveq    #-1,d7
    lsl.b    d5,d7          ; mask for how many planes we are using
    not.l    d7
    move.b    (rp_Mask,a5),d6 ; rp_Mask & #plane mask gives mask for this op
    and.b    d7,d6          ; just in case the mask has more bits then planes
    subq.w    #1,d5
    cmp.b    d7,d6          ; we need
    bne.w    Masked_rp


    ;d2 = (MaxX-MinX)+1    blitwidth
    ;d4 = 32-(32-MinX)&31)    amount of data in 1st LW
NotMasked
    move.w    d5,(NLWblit,sp)
    cmp.w    d4,d2           ; blitwidth-(amount in 1st LW)
    bgt.b    multiLW        ; convertion larger then then 1 lw, blit goes beyond 1st lw
    move.l    (FLWmask,sp),d6
    tst    d0           ; end of convertion bit
    beq.b    blF           ; ends at 32bit bound
    and.l    d3,d6           ; blit smaller then 1st lw

blF
    move.w    #-4,a5
blF2    lea    (-32,a2,d4.l),a0
    lea    (-32,a6),a6
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    a6,a0
30$    bsr.w    AlignChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4


multiLW
    sub.w    d4,d2
    sub.w    d0,d2        ; (width-start)-end=remaining conversion size
    andi.w    #-32,d2
    bne.w    LW1
    tst.w    d4        ; no middle  x0x
    bne.b    blFL
    suba.l    a5,a5           ; last LW
    lea    (-32,a6),a6
    move.l    a2,a0
    move.l    d3,d6
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    a6,a0
30$    bsr.w    AlignChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4

blFL    moveq    #16,d2
    cmp.l    d2,d4      ;head
    bgt.b    5$
    cmp.l    d2,d0      ;tail
    bgt.b    5$
    suba.l    a5,a5
    add.l    d2,d4
    or.l    (FLWmask,sp),d3
    subq.l    #2,a5
    swap    d3
    move.l    d3,d6
    bra.w    blF2
    cnop    0,4

5$    add.l    d2,d2
    moveq    #-8,d1
    move.l    d4,d7
    addq.l    #7,d0
    and.l    d1,d0    ;tail
    add.l    d0,d7
    cmp.l    d2,d7
    bgt.b    6$
    add.l    d0,d4
    or.l    (FLWmask,sp),d3
    rol.l    d0,d3
    lsr.l    #3,d0
    move.l    d0,a5
    subq.l    #4,a5
    move.l    d3,d6
    bra.w    blF2
    cnop    0,4



6$    lea    (-32,a2,d4.l),a0
    lea    (-64,a6),a6
    move.w    a6,(sp)
    move.l    d3,a6        ;llwm
    move.l    (FLWmask,sp),d6 ;flwm
    move.w    #-4,a5
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    (sp),a0 ;(HData,sp),a0
    exg    a6,d6
    subq.l    #4,a5
30$    bsr.w    AlignChunky
    exg    a6,d6
    suba.l    a5,a5
    bsr.w    AlignChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4


LW1    sub.w    d2,a6
    move.w    d2,(BWidth,sp)
    tst.w    d4        ; middle  x1x
    bne.b    LW3
    move.l    a2,a0
    tst.w    d0        ; no head, middle 01x
    bne.b    blML        ; no head, middle,tail 011
    move.w    a6,(sp)
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    (sp),a0
30$    bsr    BlitChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4

blML    lea    (-32,a6),a6
    lsr.w    #3,d2
    move.l    d3,(LLWmask,sp)
    move.w    d2,(EndBit,sp)
    move.w    a6,(sp)
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    (sp),a0
30$    bsr    BlitChunky
    move.l    (LLWmask,sp),d6
    move.w    (EndBit,sp),a5
    bsr.w    AlignChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4



LW3
    lea    (-32,a2,d4.l),a0
    tst.w    d0        ; head, middle      11x
    beq.b    blFM        ; head, middle, tail 111
    lea    (-64,a6),a6    ; FML, whole line
    lsr.w    #3,d2
    move.l    d3,(LLWmask,sp)
    move.w    d2,(EndBit,sp)
    move.w    a6,(sp)
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    (sp),a0
30$    move.w    #-4,a5
    move.l    (FLWmask,sp),d6
    bsr.w    AlignChunky
    bsr.b    BlitChunky
    move.l    (LLWmask,sp),d6
    move.w    (EndBit,sp),a5
    bsr.w    AlignChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$

crap_c2p
    lea    (stacked,sp),sp
    rts
    cnop    0,4

blFM    lea    (-32,a6),a6
    move.w    a6,(sp)
    bra.b    30$
    cnop    0,4

10$    lea    (DBPR,sp),a3
    move.w    d5,d7
    move.l    (a3)+,d0
20$    add.l    d0,(a3)+
    dbf    d7,20$
    adda.w    (sp),a0
30$    move.w    #-4,a5
    move.l    (FLWmask,sp),d6
    bsr.w    AlignChunky
    bsr.b    BlitChunky
    subq.w    #1,(Lines,sp)
    bgt.b    10$
    lea    (stacked,sp),sp
    rts
    cnop    0,4







    ;
    ;
    ; This is the heart of the patch, the C2P routines
    ;
    ;
    ; all C2P code after this

BlitChunky:
    ;  d0-d7/a1-a6 trashed
    ; d0 = width/32
    ; d5 = depth
    ; a0 = chunky src
    ;
    ;
    move.w    (BWidth+4,sp),a5
    add.l    a0,a5
    move.w    (.jmp,pc,d5.w*2),d0
    move.l    #$33333333,d5
    move.l    #$55555555,d6
    jmp    (.jmp,pc,d0.w)
    cnop    0,4
.jmp
    dc.w    con1p32-.jmp   ; 1 plane
    dc.w    con2p32-.jmp   ; 2 planes
    dc.w    con3p32-.jmp   ; 3 planes
    dc.w    con4p32-.jmp   ; 4 planes
    dc.w    con5p32-.jmp   ; 5 planes
    dc.w    con6p32-.jmp   ; 6 planes
    dc.w    con7p32-.jmp   ; 7 planes
    dc.w    con8p32-.jmp   ; 8 planes
    cnop    0,4


con4p32
    movem.l (DP0point+4,sp),a1-a4
    move.l    #$0f0f0f0f,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    and.l    d4,d0
    and.l    d4,d1
    lsl.l    #4,d0
    lsl.l    #4,d1
    and.l    d4,d2
    and.l    d4,d3
    or.l    d2,d0
    or.l    d3,d1

    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    lsl.l    #4,d3
    or.l    d4,d2
    or.l    d7,d3

    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c4p32_2
    cnop    0,4


c4p32_1
    move.l    d2,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    move.l    d4,(a1)+ ;p0

    move.l    #$0f0f0f0f,d4
    and.l    d4,d0
    and.l    d4,d1
    lsl.l    #4,d0
    lsl.l    #4,d1
    and.l    d4,d2
    and.l    d4,d3
    or.l    d2,d0
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3

    and.l  (a0)+,d2
    and.l  (a0)+,d3
    lsl.l    #4,d2
    or.l    d3,d2
    move.l    d4,d3
    and.l  (a0)+,d3
    and.l  (a0)+,d4

    move.l    d7,(a3)+ ;p2

    lsl.l    #4,d3
    or.l    d4,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a6,(a2)+ ;p1

c4p32_2 move.l    d2,d4
    move.l    d3,d7
    lsr.l    #2,d4
    lsr.l    #2,d7
    eor.l    d0,d4
    eor.l    d1,d7
    and.l    d5,d4
    and.l    d5,d7
    eor.l    d4,d0
    eor.l    d7,d1
    lsl.l    #2,d4
    lsl.l    #2,d7
    eor.l    d4,d2
    eor.l    d7,d3


    move.l    #$00ff00ff,d4


    move.l    d1,d7
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d7,d1


    move.l    d1,d7
    lsr.l    #1,d7
    eor.l    d0,d7
    and.l    d6,d7
    eor.l    d7,d0
    add.l    d7,d7
    eor.l    d1,d7


    move.l    d0,(a4)+ ;p3


    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3


    move.l    d3,d4
    lsr.l    #1,d4
    eor.l    d2,d4
    and.l    d6,d4
    eor.l    d4,d2
    add.l    d4,d4
    eor.l    d3,d4


    cmpa.l    a0,a5
    bgt.w    c4p32_1

    move.w    (NLWblit+4,sp),d5
    move.l    d2,(a2)  ;p1
    move.l    d7,(a3)  ;p2
    move.l    d4,(a1)  ;p0

    rts
    cnop    0,4


con3p32

    movem.l (DP0point+4,sp),a1-a3
    move.l    #$0f0f0f0f,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    and.l    d4,d0
    and.l    d4,d1
    lsl.l    #4,d0
    lsl.l    #4,d1
    and.l    d4,d2
    and.l    d4,d3
    or.l    d2,d0
    or.l    d3,d1

    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    lsl.l    #4,d3
    or.l    d4,d2
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c3p32_2
    cnop    0,4


c3p32_1
    movea.l d2,a4
    movea.l d3,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    move.l    #$0f0f0f0f,d4
    and.l    d4,d0
    and.l    d4,d1
    lsl.l    #4,d0
    lsl.l    #4,d1
    and.l    d4,d2
    and.l    d4,d3
    or.l    d2,d0
    or.l    d3,d1

    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a4,(a2)+ ;p1

    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a6,(a1)+ ;p0


c3p32_2
    move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    d1,d7
    move.l    #$00ff00ff,d4
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d1,d7

    and.l    d6,d0
    and.l    d6,d7
    add.l    d0,d0
    or.l    d0,d7

    move.l    d7,(a3)+ ;p2

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3


    cmpa.l    a0,a5
    bgt.w    c3p32_1

    move.w    (NLWblit+4,sp),d5
    move.l    d2,(a2)  ;p1
    move.l    d3,(a1)  ;p0

    rts
    cnop    0,4


con2p32

    movem.l (DP0point+4,sp),a1-a2
    move.l    #$03030303,d4
    move.l    d4,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c2p32_2
    cnop    0,4


c2p32_1
    movea.l d2,a4
    movea.l d3,a3
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    move.l    a6,d4
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a4,(a2)+      ;p1

    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3

    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a3,(a1)+ ;p0


c2p32_2
    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3
    cmpa.l    a0,a5
    bgt.b    c2p32_1

    move.w    (NLWblit+4,sp),d5
    move.l    d2,(a2)  ;p1
    move.l    d3,(a1)  ;p0

    rts
    cnop    0,4



con1p32

    move.l    (DP0point+4,sp),a1
    move.l    #$01010101,a3
    move.l    #$00ff00ff,a2
    move.l    a3,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    bra.b    c1p32_2
    cnop    0,4


c1p32_1
    movea.l d3,a4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    move.l    a3,d4
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a4,(a1)+ ;p0


c1p32_2
    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    move.l    a2,d4
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    add.l    d2,d2
    or.l    d2,d3

    cmpa.l    a0,a5
    bgt.b    c1p32_1
    move.w    (NLWblit+4,sp),d5
    move.l     d3,(a1)


    rts
    cnop    0,4




con8p32
    movem.l (DP4point+4,sp),a1-a4
    move.l    #$f0f0f0f0,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    and.l    d4,d2
    and.l    d4,d3
    lsr.l    #4,d2
    lsr.l    #4,d3
    and.l    d4,d0
    and.l    d4,d1
    or.l    d2,d0
    or.l    d3,d1

    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c8p32_2
    cnop    0,4


c8p32_1
    movea.l d2,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    move.l    d4,(a1)+ ;p4

    move.l    #$f0f0f0f0,d4
    and.l    d4,d2
    and.l    d4,d3
    lsr.l    #4,d2
    lsr.l    #4,d3
    and.l    d4,d0
    and.l    d4,d1
    or.l    d2,d0
    or.l    d3,d1

    move.l    d4,d2
    move.l    d4,d3
    and.l  (a0)+,d2
    and.l  (a0)+,d3
    lsr.l    #4,d3
    or.l    d3,d2
    move.l    d4,d3
    and.l  (a0)+,d3
    and.l  (a0)+,d4

    move.l    d7,(a3)+ ;p6

    lsr.l    #4,d4
    or.l    d4,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a6,(a2)+ ;p5


c8p32_2 move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    d1,d7
    move.l    #$00ff00ff,d4
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d7,d1

    move.l    d1,d7
    lsr.l    #1,d7
    eor.l    d0,d7
    and.l    d6,d7
    eor.l    d7,d0

    move.l    d0,(a4)+ ;p7

    add.l    d7,d7
    eor.l    d1,d7

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d4
    lsr.l    #1,d4
    eor.l    d2,d4
    and.l    d6,d4
    eor.l    d4,d2
    add.l    d4,d4
    eor.l    d3,d4

    cmpa.l    a0,a5
    bgt.w    c8p32_1

    sub.w    (BWidth+4,sp),a0

    move.l    d7,(a3)  ;p6

    move.l    d4,(a1)  ;p4
    move.l    d2,(a2)  ;p5

    bra.w    con4p32
    cnop    0,4

con7p32
    movem.l (DP4point+4,sp),a1-a3
    move.l    #$f0f0f0f0,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c7p32_2
    cnop    0,4


c7p32_1
    movea.l d2,a4
    movea.l d3,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    move.l    #$f0f0f0f0,d4
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a4,(a2)+ ;p5

    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a6,(a1)+ ;p4


c7p32_2 move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    d1,d7
    move.l    #$00ff00ff,d4
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d1,d7

    and.l    d6,d0
    and.l    d6,d7
    add.l    d0,d0
    or.l    d0,d7

    move.l    d7,(a3)+ ;p6

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3
    cmpa.l    a0,a5
    bgt.w    c7p32_1

    sub.w    (BWidth+4,sp),a0
    move.l    d3,(a1)  ;p4
    move.l    d2,(a2)  ;p5

    bra.w    con4p32
    cnop    0,4

con6p32
    movem.l (DP4point+4,sp),a1-a2
    move.l    #$30303030,d4
    move.l    d4,a6
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    c6p32_2
    cnop    0,4


c6p32_1
    movea.l d2,a3
    movea.l d3,a4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    move.l    a6,d4
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a3,(a2)+ ;p5

    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    move.l    a4,(a1)+ ;p4


c6p32_2
    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3
    cmpa.l    a0,a5
    bgt.b    c6p32_1

    sub.w    (BWidth+4,sp),a0
    move.l    d3,(a1)  ;p4
    move.l    d2,(a2)  ;p5

    bra.w    con4p32
    cnop    0,4


con5p32
    move.l    (DP4point+4,sp),a1
    move.l    #$10101010,a3
    move.l    #$00ff00ff,a4
    move.l    a3,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    bra.b    c5p32_2
    cnop    0,4


c5p32_1
    movea.l d3,a2
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    move.l    a3,d4
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7

    move.l    a2,(a1)+ ;p4



c5p32_2

    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    move.l    a4,d4
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    add.l    d2,d2
    or.l    d2,d3

    cmpa.l    a0,a5
    bgt.b    c5p32_1

    sub.w    (BWidth+4,sp),a0
    move.l    d3,(a1)  ;p4

    bra.w    con4p32
    cnop    0,4




AlignChunky:
    ; d0-d7/a1-a5 trashed
    ; a6 not used
    ; d5 = depth
    ; a0 = chunky src
    ;
    ;
    move.w    (.jmp,pc,d5.w*2),d0
    jmp    (.jmp,pc,d0.w)
    cnop    0,4

.jmp
    dc.w    a1p-.jmp   ; 1 plane
    dc.w    a2p-.jmp   ; 2 planes
    dc.w    a3p-.jmp   ; 3 planes
    dc.w    a4p-.jmp   ; 4 planes
    dc.w    a5p-.jmp   ; 5 planes
    dc.w    a6p-.jmp   ; 6 planes
    dc.w    a7p-.jmp   ; 7 planes
    dc.w    a8p-.jmp   ; 8 planes
    cnop    0,4


a4p

    movem.l (DP0point+4,sp),a1-a4
    add.l    a5,a1
    add.l    a5,a2
    add.l    a5,a3
    add.l    a5,a4

    move.l    #$0f0f0f0f,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    and.l    d4,d1
    or.l    d2,d0
    lsl.l    #4,d1
    and.l    d4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    lsl.l    #4,d3
    or.l    d4,d2
    or.l    d7,d3

    move.l    d2,d5
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d5,d2
    move.w    d4,d3

    move.l    #$33333333,d5

    move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    #$00ff00ff,d4

    move.l    d1,d7
    move.l    d3,d5
    lsr.l    #8,d7
    lsr.l    #8,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    lsl.l    #8,d7
    lsl.l    #8,d5
    eor.l    d7,d1
    eor.l    d5,d3

    move.l    #$55555555,d4

    move.l    d1,d7
    move.l    d3,d5
    lsr.l    #1,d7
    lsr.l    #1,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    add.l    d7,d7
    add.l    d5,d5
    eor.l    d1,d7
    eor.l    d5,d3

    and.l    d6,d0
    and.l    d6,d2
    and.l    d6,d3
    and.l    d6,d7

    not.l    d6


    move.l    d6,d1
    and.l    (a4),d1
    or.l    d1,d0
    move.l    d0,(a4)  ;p3

    move.l    d6,d4
    and.l    (a2),d4
    or.l    d4,d2
    move.l    d2,(a2)  ;p1

    move.l    d6,d5
    and.l    (a1),d5
    or.l    d5,d3
    move.l    d6,d1
    move.l    d3,(a1)  ;p0

    and.l    (a3),d1
    or.l    d1,d7
    move.w    (NLWblit+4,sp),d5
    move.l    d7,(a3)  ;p2
    not.l    d6

    rts
    cnop    0,4



a3p    movem.l (DP0point+4,sp),a1-a3
    add.l    a5,a1
    add.l    a5,a2
    add.l    a5,a3

    move.l    #$0f0f0f0f,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    and.l    d4,d1
    or.l    d2,d0
    lsl.l    #4,d1
    and.l    d4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    lsl.l    #4,d3
    or.l    d4,d2
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3


    move.l    #$33333333,d5
    move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    #$00ff00ff,d4
    move.l    d1,d7
    move.l    d3,d5
    lsr.l    #8,d7
    lsr.l    #8,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    lsl.l    #8,d7
    lsl.l    #8,d5
    eor.l    d1,d7
    eor.l    d5,d3

    move.l    #$55555555,d4
    and.l    d4,d0
    and.l    d4,d7
    add.l    d0,d0
    or.l    d0,d7

    move.l    d3,d5
    lsr.l    #1,d5
    eor.l    d2,d5
    and.l    d4,d5
    eor.l    d5,d2
    add.l    d5,d5
    eor.l    d5,d3

    and.l    d6,d7
    and.l    d6,d2
    move.l    d6,d1
    and.l    d6,d3

    not.l    d1

    move.l    d1,d4
    and.l    (a2),d4
    or.l    d4,d2
    move.l    d2,(a2)  ;p1

    move.l    d1,d5
    and.l    (a1),d5
    or.l    d5,d3
    move.l    d3,(a1)  ;p0

    and.l    (a3),d1
    or.l    d1,d7
    move.w    (NLWblit+4,sp),d5
    move.l    d7,(a3)  ;p2


    rts
    cnop    0,4




a2p    movem.l (DP0point+4,sp),a1-a2
    add.l    a5,a1
    add.l    a5,a2
    move.l    #$03030303,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    #$55555555,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3

    and.l    d6,d2
    move.l    d6,d1
    and.l    d6,d3

    not.l    d1

    move.l    d1,d4
    and.l    (a2),d4
    or.l    d4,d2
    move.l    d2,(a2)  ;p1

    and.l    (a1),d1
    or.l    d1,d3
    move.w    (NLWblit+4,sp),d5
    move.l    d3,(a1)  ;p0

    rts
    cnop    0,4




a1p    move.l    (DP0point+4,sp),a1
    add.l    a5,a1
    move.l    #$01010101,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    add.l    d2,d2
    or.l    d2,d3

    move.l    d6,d1
    and.l    d6,d3

    not.l    d1

    and.l    (a1),d1

    or.l    d1,d3
    move.w    (NLWblit+4,sp),d5
    move.l    d3,(a1)  ;p0

    rts
    cnop    0,4




a8p
    movem.l (DP4point+4,sp),a1-a4
    move.l    #$f0f0f0f0,d4
    add.l    a5,a1
    add.l    a5,a2
    add.l    a5,a3
    add.l    a5,a4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    move.l    #$33333333,d5

    move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    d1,d7
    move.l    #$00ff00ff,d4
    move.l    d3,d5
    lsr.l    #8,d7
    lsr.l    #8,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    lsl.l    #8,d7
    lsl.l    #8,d5
    eor.l    d7,d1
    eor.l    d5,d3

    move.l    #$55555555,d4

    move.l    d1,d7
    move.l    d3,d5
    lsr.l    #1,d7
    lsr.l    #1,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    add.l    d7,d7
    add.l    d5,d5
    eor.l    d1,d7
    eor.l    d5,d3


    and.l    d6,d0
    and.l    d6,d2
    and.l    d6,d3
    and.l    d6,d7

    move.l    d6,d5
    not.l    d5
    move.l    d5,d1
    and.l    (a4),d1
    or.l    d1,d0
    move.l    d0,(a4)  ;p3




    move.l    d5,d4
    and.l    (a2),d4
    or.l    d4,d2
    move.l    d2,(a2)  ;p1

    move.l    d5,d1
    and.l    (a3),d1
    or.l    d1,d7
    move.l    d7,(a3)  ;p2

    and.l    (a1),d5
    or.l    d5,d3
    move.l    d3,(a1)  ;p0


    lea    (-32,a0),a0
    bra.w    a4p
    cnop    0,4

a7p
    movem.l (DP4point+4,sp),a1-a3
    add.l    a5,a1
    add.l    a5,a2
    add.l    a5,a3
    move.l    #$f0f0f0f0,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    move.l    #$33333333,d5
    move.l    d2,d7
    move.l    d3,d4
    lsr.l    #2,d7
    lsr.l    #2,d4
    eor.l    d0,d7
    eor.l    d1,d4
    and.l    d5,d7
    and.l    d5,d4
    eor.l    d7,d0
    eor.l    d4,d1
    lsl.l    #2,d7
    lsl.l    #2,d4
    eor.l    d7,d2
    eor.l    d4,d3

    move.l    #$00ff00ff,d4
    move.l    d1,d7
    move.l    d3,d5
    lsr.l    #8,d7
    lsr.l    #8,d5
    eor.l    d0,d7
    eor.l    d2,d5
    and.l    d4,d7
    and.l    d4,d5
    eor.l    d7,d0
    eor.l    d5,d2
    lsl.l    #8,d7
    lsl.l    #8,d5
    eor.l    d1,d7
    eor.l    d5,d3

    move.l    #$55555555,d4
    and.l    d4,d0
    and.l    d4,d7
    add.l    d0,d0
    or.l    d0,d7

    move.l    d3,d5
    lsr.l    #1,d5
    eor.l    d2,d5
    and.l    d4,d5
    eor.l    d5,d2
    add.l    d5,d5
    eor.l    d5,d3

    and.l    d6,d2
    and.l    d6,d7
    and.l    d6,d3

    move.l    d6,d5
    not.l    d5
    move.l    d5,d4
    and.l    (a2),d4
    or.l    d4,d2
    move.l    d2,(a2)  ;p1

    move.l    d5,d1
    and.l    (a3),d1
    or.l    d1,d7
    move.l    d7,(a3)  ;p2

    and.l    (a1),d5
    or.l    d5,d3
    move.l    d3,(a1)  ;p0


    lea    (-32,a0),a0
    bra.w    a4p
    cnop    0,4

a6p
    movem.l (DP4point+4,sp),a1-a2
    move.l    #$30303030,d4
    add.l    a5,a1
    add.l    a5,a2
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    #$55555555,d1
    eor.l    d1,d2
    add.l    d1,d1
    eor.l    d1,d3

    move.l    d6,d5
    and.l    d6,d2
    and.l    d6,d3
    not.l    d5
    move.l    d5,d1

    and.l    (a2),d1
    or.l    d1,d2
    move.l    d2,(a2)  ;p5

    and.l    (a1),d5
    or.l    d5,d3
    move.l    d3,(a1)  ;p4


    lea    (-32,a0),a0
    bra.w    a4p
    cnop    0,4


a5p
    move.l    (DP4point+4,sp),a1
    add.l    a5,a1
    move.l    #$10101010,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3

    move.l    d2,d4
    move.l    d3,d7
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d4,d2
    move.w    d7,d3

    lsl.l    #2,d0
    lsl.l    #2,d1
    or.l    d0,d2
    or.l    d1,d3

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    #$00ff00ff,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    add.l    d2,d2
    or.l    d2,d3


    move.l    d6,d5
    not.l    d5
    and.l    (a1),d5


    and.l    d6,d3

    or.l    d5,d3

    move.l    d3,(a1)  ;p4

    lea    (-32,a0),a0
    bra.w    a4p
    cnop    0,4



    ; d6 = rp_mask
    ; d7 = #planes mask
Masked_rp
    move.l    d3,(LLWmask,sp) ; save d1  ending mask
    move.w    d5,d1           ; We do this little bit here to see if we can't use
10$    cmp.b    d7,d6           ; the regular routines since the mask could be for
    beq.w    NotMasked      ; an even spread of planes and the regular c2p
    lsr.b    #1,d7           ; is almost 2x faster.
    dbf    d5,10$           ;
    move.w    d1,d5           ;
    move.w    d2,(BWidth,sp)

    move.w    d0,(EndBit,sp)
    cmp.w    d4,d2           ; blitwidth-(amount in 1st LW)
    bgt.b    mmultiLW       ; convertion larger then then 1 lw, blit goes beyond 1st lw
    tst    d0           ; end of convertion bit
    beq.b    moneLW           ; ends at 32bit bound
    and.l    d3,(FLWmask,sp); blit smaller then 1st lw


moneLW    clr.w    (NLWblit,sp)
    bra.b    smrp
    cnop    0,4

mmultiLW
    sub.w    d4,d2
    sub.w    d0,d2        ; (width-start)-end=remaining conversion size
    lsr.w    #5,d2        ; size/32
    move.w    d2,(NLWblit,sp) ; # words to convert


smrp    move.w    a6,(sp) ;(HData,sp)
    moveq    #64,d0
    suba.l    d0,sp
    move.b    d6,d1
    lea    (mDP0point,sp),a0
     ;     lea     (SP0point,sp),a1
    movea.l sp,a1
    lea    (SP0,sp),a3
    moveq    #8,d2        ; need to do this for all 8 possible planes
    bra.b    30$
    cnop    0,4

10$    move.l    a3,(a1)
    lsr.b    #1,d1        ; we clear masked out plane pointers here
    bcs.b    20$
    clr.l    (a0)
    clr.l    (a1)
20$    addq.l    #4,a0
    addq.l    #4,a1
    addq.l    #4,a3
30$    dbf    d2,10$


Firstmask
    tst.l    d4
    beq.b    Alignedmask
    lea    (-32,a2,d4.l),a0
    move.l    (mFLWmask,sp),d0
    moveq    #-4,d2
    bsr.b    Masked

Alignedmask
    moveq    #0,d0
    move.w    (mNLWblit,sp),d0
    beq.b    Lastmask
    lea    (a2,d4.l),a0
    lea    (mDP0point,sp),a3
    bsr.w    mask8p

Lastmask
    move.w    (mEndBit,sp),d0
    beq.b    Endmask
    movea.l a2,a0
    suba.w    d0,a0
    adda.w    (mBWidth,sp),a0
    moveq    #0,d2
    move.w    (mNLWblit,sp),d2
    lsl.l    #2,d2
    move.l    (mLLWmask,sp),d0
    bsr.b    Masked

Endmask
    lea    (mDP0point,sp),a3
    move.l    d5,d7
    move.l    (mDBPR,sp),d0

10$    move.l    (a3),d1
    beq.b    15$
    add.l    d0,d1
    move.l    d1,(a3)
15$    addq.l    #4,a3
20$    dbf    d7,10$
    adda.w    (mHData,sp),a2
    subq.w     #1,(mLines,sp)
    bgt.b    Firstmask
    lea    (mstacked,sp),sp
    rts
    cnop    0,4



Masked
    movem.l d4/a2,-(sp)
    move.l    d0,d4             ; data mask
    lea    (SP0point+12,sp),a3  ; bm_Planes for tmp bitmap on stack
    moveq    #1,d0             ; only 1 word to do
    bsr.b    mask8p
    move.l    d4,d7             ; converted data mask
    not.l    d4             ; dst bitmap mask
    move.l    d5,d6
    lea    (mDP0point+12,sp),a3  ; bm_Planes for dst bitmap  stacked a4
    lea    (SP0+12,sp),a1         ; load next tmp plane ptr

10$    move.l    (a1)+,d0       ; we use       temp read
    move.l    (a3)+,d1       ; load next dst plane ptr
    beq.b    20$           ; masked out, so skip
    move.l    d1,a0
    adda.l    d2,a0           ; move fwd/back in bitmap to align correctly
    move.l    (a0),d1        ; 32bit reads   dest read
    and.l    d7,d0           ; mask out unneeded converted data
    and.l    d4,d1           ; mask out just where we'll write
    or.l    d0,d1           ; stick'em together
    move.l    d1,(a0)        ; 32bit writes
20$    dbf    d6,10$
    move.l (sp)+,d4
    move.l (sp)+,a2
    rts
    cnop    0,4



mask8p
    movem.l d2/d4/d5/a2,-(sp)
    move.l    a0,a5
    lsl.l    #5,d0
    add.l    d0,a5

    cmpi.b    #4,d5
    blt.w    mask4p        ; if it's =<4 planes skip the upper 4

    movem.l a0/a3,-(sp)
    movem.l (16,a3),a1-a4
    move.l    #$33333333,d5
    move.l    #$55555555,d6
    move.l    #$f0f0f0f0,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsr.l    #4,d4
    or.l    d4,d2
    lsr.l    #4,d7
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    m8p_2
    cnop    0,4


m8p_1    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    tst.l    a2
    beq.b    10$
    move.l    d4,(a2)+  ;p5

10$    move.l    #$f0f0f0f0,d4
    and.l    d4,d0
    and.l    d4,d2
    lsr.l    #4,d2
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsr.l    #4,d3
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    and.l  (a0)+,d2
    and.l  (a0)+,d3
    lsr.l    #4,d3
    or.l    d3,d2
    move.l    d4,d3
    and.l  (a0)+,d3
    and.l  (a0)+,d4

    tst.l    a3
    beq.b    20$
    move.l    d7,(a3)+  ;p6

20$    lsr.l    #4,d4
    or.l    d4,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    tst.l    a1
    beq.b    m8p_2
    move.l    a6,(a1)+  ;p4


m8p_2
    move.l    d2,d4
    move.l    d3,d7
    lsr.l    #2,d4
    lsr.l    #2,d7
    eor.l    d0,d4
    eor.l    d1,d7
    and.l    d5,d4
    and.l    d5,d7
    eor.l    d4,d0
    eor.l    d7,d1
    lsl.l    #2,d4
    lsl.l    #2,d7
    eor.l    d4,d2
    eor.l    d7,d3

    move.l    #$00ff00ff,d4
    move.l    d1,d7
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d7,d1

    move.l    d1,d7
    lsr.l    #1,d7
    eor.l    d0,d7
    and.l    d6,d7
    eor.l    d7,d0

    tst.l    a4
    beq.b    10$
    move.l    d0,(a4)+  ;p7

10$    add.l    d7,d7
    eor.l    d1,d7

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    move.l d2,d4
    add.l    d1,d1
    eor.l    d1,d3
    movea.l d3,a6
    cmpa.l    a0,a5
    bgt    m8p_1

    tst.l    a3
    beq.b    20$
    move.l    d7,(a3)   ;p6

20$    tst.l    a1
    beq.b    30$
    move.l    a6,(a1)   ;p4

30$    tst.l    a2
    beq.b    40$
    move.l    d4,(a2)   ;p5

40$    move.l (sp)+,a0
       move.l (sp)+,a3

mask4p
    movem.l (a3),a1-a4
    ;
    ; lower 4 planes
    ;
    move.l    #$33333333,d5
    move.l    #$55555555,d6
    move.l    #$0f0f0f0f,d4
    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    move.l    d4,d7
    and.l  (a0)+,d2
    and.l  (a0)+,d4
    and.l  (a0)+,d3
    and.l  (a0)+,d7
    lsl.l    #4,d2
    or.l    d4,d2
    lsl.l    #4,d3
    or.l    d7,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3
    bra.b    m4p_2
    cnop    0,4


m4p_1    move.l    (a0)+,d0
    move.l    (a0)+,d2
    move.l    (a0)+,d1
    move.l    (a0)+,d3

    tst.l    a2
    beq.b    10$
    move.l    d4,(a2)+      ;p1

10$    move.l    #$0f0f0f0f,d4
    and.l    d4,d0
    and.l    d4,d2
    lsl.l    #4,d0
    or.l    d2,d0
    and.l    d4,d1
    and.l    d4,d3
    lsl.l    #4,d1
    or.l    d3,d1
    move.l    d4,d2
    move.l    d4,d3
    and.l  (a0)+,d2
    and.l  (a0)+,d3
    lsl.l    #4,d2
    or.l    d3,d2
    move.l    d4,d3
    and.l  (a0)+,d3
    and.l  (a0)+,d4

    tst.l    a3
    beq.b    20$
    move.l    d7,(a3)+  ;p2

20$    lsl.l    #4,d3
    or.l    d4,d3
    move.l    d2,d7
    move.l    d3,d4
    move.w    d0,d2
    move.w    d1,d3
    swap    d2
    swap    d3
    move.w    d2,d0
    move.w    d3,d1
    move.w    d7,d2
    move.w    d4,d3

    tst.l    a1
    beq.b    m4p_2
    move.l    a6,(a1)+ ;p0


m4p_2
    move.l    d2,d4
    move.l    d3,d7
    lsr.l    #2,d4
    lsr.l    #2,d7
    eor.l    d0,d4
    eor.l    d1,d7
    and.l    d5,d4
    and.l    d5,d7
    eor.l    d4,d0
    eor.l    d7,d1
    lsl.l    #2,d4
    lsl.l    #2,d7
    eor.l    d4,d2
    eor.l    d7,d3

    move.l    #$00ff00ff,d4
    move.l    d1,d7
    lsr.l    #8,d7
    eor.l    d0,d7
    and.l    d4,d7
    eor.l    d7,d0
    lsl.l    #8,d7
    eor.l    d7,d1

    move.l    d1,d7
    lsr.l    #1,d7
    eor.l    d0,d7
    and.l    d6,d7
    eor.l    d7,d0

    tst.l    a4
    beq.b    10$
    move.l    d0,(a4)+  ;p3

10$    add.l    d7,d7
    eor.l    d1,d7

    move.l    d3,d1
    lsr.l    #8,d1
    eor.l    d2,d1
    and.l    d4,d1
    eor.l    d1,d2
    lsl.l    #8,d1
    eor.l    d1,d3

    move.l    d3,d1
    lsr.l    #1,d1
    eor.l    d2,d1
    and.l    d6,d1
    eor.l    d1,d2
    move.l d2,d4
    add.l    d1,d1
    eor.l    d1,d3
    movea.l d3,a6
    cmpa.l    a0,a5
    bgt    m4p_1

    tst.l    a3
    beq.b    20$
    move.l    d7,(a3)  ;p2

20$    tst.l    a1
    beq.b    30$
    move.l    a6,(a1)  ;p0

30$    tst.l    a2
    beq.b    40$
    move.l    d4,(a2)  ;p1

40$    movem.l (sp)+,d2/d4/d5/a2
    rts
    cnop    0,4

PGfxBase:   ds.l 1
PExecBase: ds.l 1
PLayersBase: ds.l 1
