Re: A86: Faster way (_ldhlind)?


[Prev][Next][Index][Thread]

Re: A86: Faster way (_ldhlind)?




er the _ldhlind does this:

	ld a,(hl)
	inc hl
	ld l,(hl)
	ld a,h

which appears to be as short as yours, only A rather than DE is killed

David Phillips wrote:
> 
> Does anyone know how the rom call _ldhlind work?  It effectively does this
> operation:
> 
> ld hl,(hl)
> 
> This is useful when hl points to a pointer, and you want it to point to the
> data pointed to by that pointer (I hope you understood that, because I
> didn't).  What I came up with is below and worked out well because I needed
> to de to have the old pointer anyway, but is there a better routine (that
> doesn't destroy other regs)?
> 
>  ld d,(hl)      ; 7T
>  inc hl ; 6T
>  ld e,(hl)      ; 7T
>  ex hl,de       ; 4T
>                 ;==== 24 t-states, HL = (HL), DE = HL + 1
> 
> Thanks,
> 
> --
> David Phillips
> mailto:electrum@tfs.net
> ICQ: 13811951
> AOL/AIM: electrum32

-- 

=====================================
=                                   =
=   Kirk Meyer (mailto:_@ibm.net)   =
= http://www.bigfoot.com/~kirkmeyer =
=  http://simcommunity.home.ml.org  =
=                                   =
=   "Set your affection on things   =
=    above, not on things on the    =
=      earth."  Colossians 3:2      =
=                                   =
=====================================


Follow-Ups: References: