Re: A86: absolute address resolution
[Prev][Next][Index][Thread]
Re: A86: absolute address resolution
All I care about is whether it works or not.
James Rubingh wrote:
>
> actually it would be like _conv_ahl
>
> _load_ram_ahl also loads the page into the ram area
>
> >
> > 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: