Re: A86: absolute address resolution


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

Re: A86: absolute address resolution




Yes.  But the last time I used it it did strange things, so I figured
I'd do it myself.  How exactly do you use _load_ram_ahl?  It gave me
crap addresses last time, but maybe the rest of my code was screwed up
too.

Cassady Roop

ComAsYuAre@aol.com wrote:
> 
> Are you aware that the rom call _load_ram_ahl will do exactly what your
> routine tries to do?
> 
> In a message dated 12/5/99 21:42:28 Eastern Standard Time,
> croop@oregontrail.net writes:
> 
> > Does anyone see any obvious defects in this routine?  I've tested it on
> >  the emulator in several programs, but the last few versions tested out
> >  ok too, until a week or so later when I discovered an error.  But I
> >  think I've got it now.  Apparently, until tonight, my concept of what
> >  paged memory meant wasn't quite what TI's concept was...
> >
> >  Cassady Roop
> >
> >
> >  ;decodeABS   decodes absolute address in ahl.
> >  ;by Cassady Roop
> >  ;input - AHL = absolute address, like that outputted by _findsym
> >  ;output - A = page
> >  ;     HL = offset into page.
> >  decodeABS:
> >   cp 0            ;is a zero?
> >   ret z           ;if so, hl is already a valid pointer
> >   dec a
> >   rlca            ;*2
> >   rlca            ;*4
> >   ld de, $4000        ;length of one page
> >  dABSloop:
> >   push hl         ;save
> >   sbc hl, de      ;hl=hl-de
> >   jr c, dABSdone      ;if hl was less than $4000
> >   pop bc          ;get rid of the value we saved
> >   inc a           ;increment the page counter
> >   jr dABSloop     ;reloop
> >  dABSdone:
> >   inc a           ;page correction
> >   pop hl          ;the last pushed value is the offset
> >   ret         ;we are done
> >
> 
> ----
> Jonah Cohen
> <ComAsYuAre@aol.com>
> http://linux.hypnotic.org/~jonah/


References: