Re: A86: FindPixel
[Prev][Next][Index][Thread]
Re: A86: FindPixel
That's pretty damn clever! Very nice that it doesn't destroy de.
CLEM wrote:
> Hello !
>
> I'm CLEM, the french programmer who don't speak
> english :-(
> There are my 2 findpixel routines. If anyone can
> optimize it, let me know.
> Are my measures (cycles and size) right ?
>
> If you need speed :
> ;----------------------------------------------------------------------
>
> ; FIND PIXEL by CLEM (117 cycles 34 bytes)
> ;
> ; Input: x->b
> ; y->c
> ;
> ; Output: hl : byte in LCD memory
> ; a : bitmask for (hl)
> ;
> ; Destroyes : bc
> ;----------------------------------------------------------------------
>
> FindPixel:
> ld h,63
> ld a,c
> add a,a
> add a,a
> ld l,a
> ld a,b
> rra
> add hl,hl
> rra
> add hl,hl
> rra
> or l
> ld l,a
> ld a,b
> and 7
> ld bc,FP_Bits
> add a,c
> ld c,a
> adc a,b
> sub c
> ld b,a
> ld a,(bc)
> ret
>
> FP_Bits: .db $80,$40,$20,$10,$08,$04,$02,$01
>
> If you need bytes :
> ;----------------------------------------------------------------------
>
> ; FIND PIXEL II by CLEM (121 cycles 27 bytes)
> ;
> ; Input: x->b
> ; y->c
> ;
> ; Output: hl : byte in LCD memory
> ; a : bitmask for (hl)
> ;
> ; Destroyes : none !
> ;----------------------------------------------------------------------
>
> FindPixel:
> ld h,63
> ld a,c
> add a,a
> add a,a
> ld l,a
> ld a,b
> rra
> add hl,hl
> rra
> add hl,hl
> rra
> or l
> ld l,a
> ld a,b
> and 7
> cpl
> rlca
> rlca
> rlca
> ld (FP_Bit+1),a
> xor a
> FP_Bit:
> set 0,a
> ret
>
> Thanx Dan Eble !
>
> CLEM, cvasseur@runnet.com (sorry, no signature)
References: