Yeah, basically the 1 in $12 and the 4 in $f4 got or-ed and that's 5 of course
Here's one with the move removed:
Code:
;
; assumed format: 0rgb
;
move.b #$f0,d6
moveq #32-1,d7
.loop
moveq #0,d0
move.b (a0)+,d0 ; assumed red
lsl.w #4,d0
move.b (a0)+,d0 ; assumed green
and.b d6,d0
move.b (a0)+,d1 ; assumed blue
lsr.b #4,d1
or.b d1,d0
move.w d0,(a1)
addq.l #4,a1
.next
dbra d7,.loop