; 1x1 4bpl Chunky2Planar by Blueberry of Efreet (24.06.97) ; The upper nibbles of all chunky pixels must be clear! C2P1x1: ; A0 = Chunky ; A1 = Planar ; D0 = Chunky size ; D1 = Plane size lea.l (a1,d1.l),a2 lea.l (a2,d1.l),a3 lea.l (a3,d1.l),a4 move.l d0,d7 asr.l #5,d7 subq.l #1,d7 move.l (a0)+,d0 lsl.l #4,d0 or.l (a0)+,d0 move.l (a0)+,d1 lsl.l #4,d1 or.l (a0)+,d1 move.l (a0)+,d4 lsl.l #4,d4 or.l (a0)+,d4 move.l (a0)+,d5 lsl.l #4,d5 or.l (a0)+,d5 move.l d4,d2 move.l d5,d3 move.w d0,d2 move.w d1,d3 swap.w d2 swap.w d3 move.w d2,d0 move.w d3,d1 move.w d4,d2 move.w d5,d3 move.l #$00ff00ff,d6 move.l d1,d4 move.l d3,d5 lsr.l #8,d4 lsr.l #8,d5 eor.l d0,d4 eor.l d2,d5 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d2 lsl.l #8,d4 lsl.l #8,d5 eor.l d4,d1 eor.l d5,d3 move.l #$33333333,d6 move.l d2,d4 move.l d3,d5 lsr.l #2,d4 lsr.l #2,d5 eor.l d0,d4 eor.l d1,d5 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d1 lsl.l #2,d4 lsl.l #2,d5 eor.l d4,d2 eor.l d5,d3 move.l #$55555555,d6 move.l d1,d4 move.l d3,d5 lsr.l #1,d4 lsr.l #1,d5 eor.l d0,d4 eor.l d2,d5 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d2 add.l d4,d4 add.l d5,d5 eor.l d4,d1 eor.l d5,d3 .loop: move.l d0,a5 move.l d1,a6 move.l d2,d6 move.l (a0)+,d0 lsl.l #4,d0 or.l (a0)+,d0 move.l (a0)+,d1 lsl.l #4,d1 or.l (a0)+,d1 move.l (a0)+,d4 lsl.l #4,d4 or.l (a0)+,d4 move.l (a0)+,d5 lsl.l #4,d5 or.l (a0)+,d5 move.l d3,(a1)+ move.l d4,d2 move.l d5,d3 move.w d0,d2 move.w d1,d3 swap.w d2 swap.w d3 move.w d2,d0 move.w d3,d1 move.w d4,d2 move.w d5,d3 move.l d1,d4 move.l d3,d5 lsr.l #8,d4 lsr.l #8,d5 move.l d6,(a2)+ eor.l d0,d4 eor.l d2,d5 move.l #$00ff00ff,d6 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d2 lsl.l #8,d4 lsl.l #8,d5 eor.l d4,d1 eor.l d5,d3 move.l #$33333333,d6 move.l d2,d4 move.l d3,d5 move.l a6,(a3)+ lsr.l #2,d4 lsr.l #2,d5 eor.l d0,d4 eor.l d1,d5 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d1 lsl.l #2,d4 lsl.l #2,d5 eor.l d4,d2 eor.l d5,d3 move.l d1,d4 move.l d3,d5 move.l a5,(a4)+ lsr.l #1,d4 lsr.l #1,d5 move.l #$55555555,d6 eor.l d0,d4 eor.l d2,d5 and.l d6,d4 and.l d6,d5 eor.l d4,d0 eor.l d5,d2 add.l d4,d4 add.l d5,d5 eor.l d4,d1 eor.l d5,d3 subq.l #1,d7 bgt.w .loop move.l d3,(a1)+ move.l d2,(a2)+ move.l d1,(a3)+ move.l d0,(a4)+ rts .