; 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