01-02-2013, 10:12 PM
Without changing the data format - except to add a mask byte before each data byte I think something like:
Would do it - though it corrupts the C register.
May work - and doesn't use any other registers. ALso takes 42 T states as well.
sadly they both triple the time this block takes to run over the original without masking.
Code:
; gets screen address in HL, AND bytes address in DE. Copies the 8 bytes TO the screen
ld a,(DE) ; First Row
AND (HL)
LD C,A
INC DE
LD A,(DE)
OR C
LD (HL),A
Would do it - though it corrupts the C register.
Code:
; gets screen address in HL, AND bytes address in DE. Copies the 8 bytes TO the screen
ld a,(DE) ; First Row
AND (HL)
INC DE
EX DE,HL
OR (HL)
EX DE,HL
LD (HL),a
May work - and doesn't use any other registers. ALso takes 42 T states as well.
sadly they both triple the time this block takes to run over the original without masking.