; Write Pixel Array 8 incdir 'includes:' include 'graphics/gfx.i' xdef @WritePixelArray ; Input: ; a0 - chunky ; a1 - end of chunky ; a2 - bitmap @WritePixelArray: movem.l d2-d7/a2-a6,-(a7) movea.l a1,a5 lea bm_Planes(a2),a6 move.l (a6)+,a1 move.l (a6)+,a2 move.l (a6)+,a3 move.l (a6),a4 c2p: move.l #$55555555,d6 move.l #$33333333,d7 .loop: move.l #$0f0f0f0f,d4 move.l #$00ff00ff,d5 move.l (a0)+,d0 and.l d4,d0 move.l (a0)+,d1 lsl.l #4,d0 and.l d4,d1 or.l d1,d0 move.l (a0)+,d1 and.l d4,d1 move.l (a0)+,d2 lsl.l #4,d1 and.l d4,d2 or.l d2,d1 move.l d0,d2 move.l d1,d3 and.l d5,d0 and.l d5,d3 eor.l d0,d2 eor.l d3,d1 lsl.l #8,d0 lsr.l #8,d1 or.l d3,d0 or.l d2,d1 move.l d0,d2 move.l d1,d3 and.l d6,d0 and.l d6,d3 eor.l d0,d2 eor.l d3,d1 add.l d3,d3 lsr.l #1,d2 or.l d3,d0 or.l d2,d1 move.l (a0)+,d2 and.l d4,d2 move.l (a0)+,d3 lsl.l #4,d2 and.l d4,d3 or.l d3,d2 move.l (a0)+,d3 and.l d4,d3 and.l (a0)+,d4 lsl.l #4,d3 or.l d4,d3 move.l d2,d4 and.l d5,d2 and.l d3,d5 eor.l d2,d4 eor.l d5,d3 lsl.l #8,d2 lsr.l #8,d3 or.l d5,d2 or.l d4,d3 move.l d2,d4 move.l d3,d5 and.l d6,d2 and.l d6,d5 eor.l d2,d4 eor.l d5,d3 add.l d5,d5 lsr.l #1,d4 or.l d5,d2 or.l d4,d3 swap d2 swap d3 eor.w d0,d2 eor.w d1,d3 eor.w d2,d0 eor.w d3,d1 eor.w d0,d2 eor.w d1,d3 swap d2 swap d3 move.l d0,d4 move.l d2,d5 and.l d7,d0 and.l d7,d5 eor.l d0,d4 eor.l d5,d2 lsl.l #2,d0 lsr.l #2,d2 or.l d5,d0 move.l d0,(a1)+ or.l d4,d2 move.l d2,(a3)+ move.l d1,d4 move.l d3,d5 and.l d7,d1 and.l d7,d5 eor.l d1,d4 eor.l d5,d3 lsl.l #2,d1 lsr.l #2,d3 or.l d5,d1 move.l d1,(a2)+ or.l d4,d3 move.l d3,(a4)+ cmpa.l a5,a0 blt.w .loop movem.l (a7)+,d2-d7/a2-a6 rts