Re: A86: Re: rom calls
[Prev][Next][Index][Thread]
Re: A86: Re: rom calls
Am I correct in thinking that this OP stack is basically like a second stack?
That you can push and pop words to and from? That out of the way, is there any
way that sqrtPARSE could return to the parser where it left off rather than going
where it does normally (i.e. alternate return or something). I've tried jumping
to several places from sqrtPARSE (page 3, $5851 for one) and it never works
correctly - how do you specify an alternate return address?
Dux Gregis wrote:
> Grams Family wrote:
>
> > At 04:52 PM 5/9/98 -0400, you wrote:
> > >
> > Here's a revised description of how sqrtPARSE gets called:
> >
> > On page 3 at $5848, it checks if the flag for sqrtPARSE is set. If it
> > isn't, then it jumps ahead to $5851 and continues as normal. Otherwise, it
> > calls $3105, which is equivalent to call pg. D,$598F. $598F pushes OP1 and
> > then checks if sqrtPARSE exists. If it doesn't, it pops OP1 and returns to
> > 5851. If sqrtPARSE exists, it gets rid of the pushed OP1, pops hl 3 times,
> > and calls _exec_asm to run sqrtPARSE. After _exec_asm returns, it does an
> > alternate return, if one is installed - otherwise it jumps to pg. 3,$678e,
> > which calls routines off the OP stack.
>
> It jumps to the first routine popped off and takes the second one with it in
> bc, but only if the routine is one of two addresses ... then it loops through
> and keeps popping until it finds it.
--
Stephen Hicks
mailto:shicks@mindspring.com
ICQ:5453914
IRC/AIM:Kupopo
Hopemage:http://www.mindspring.com/~shicks/
Follow-Ups:
References: