Re: A83: Calling All Great Programers Part III !!


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

Re: A83: Calling All Great Programers Part III !!




It's actually a bit more complicated than that.  On the TI-83 you could CALL
ROM entry points because they equated to actual routines (or they were calls
to routines, etc).  On the TI-83 Plus, the entry points just point to a
table of pointers (which point to the actual routine/page).  Even if you had
the correct page loaded you couldn't directly call a ROM routine (well you
could, but not with the equates in ti83plus.inc and ion.inc).  The B_CALL
macro resets to address 28h, which calls a routine that grabs the pointer
from the entry point table, and then calls that routine (confused yet?).
Anyhow, the moral of the story is that you really do have to use B_CALL on
the TI-83 Plus.

-Dan Englender

----- Original Message -----
From: "Brandon" <brando@chartertn.net>
To: <assembly-83@lists.ticalc.org>
Sent: Monday, February 05, 2001 3:30 PM
Subject: Re: A83: Calling All Great Programers Part III !!


>
> If I'm not mistakened, the only reason you would ever use bcall() is to
make
> a call to a ROM call that may not necessarily be on the current ROM page.
> Using bcall() ensures that it will jump to the right page first...
> You didn't say that straight out, so I included it...
>
> ----- Original Message -----
> From: <Mike3465@aol.com>
> To: <assembly-83@lists.ticalc.org>
> Sent: Monday, February 05, 2001 3:09 PM
> Subject: Re: A83: Calling All Great Programers Part III !!
>
>
> >
> > woops
> > I'm sorry about the bit of misinformation saying that bcall and call are
> the
> > same
> > looking through the source code, i saw, later, that it is infact for the
> ti83
> > that bcall is just a defined call, so if it's purly ti83 your coding for
> the
> > 2 are interchangalbe
> > but for the ti83+ it is different
> >
> > but the code could easily be changed for compatabliity. for example, the
> > following code could be changed to work on both:
> > (83 only)
> > call junk
> >
> > (83 and 83+ converted:)
> > bcall(junk)
> >
> > it only differes once the code is made, apparently their is some extra
> code
> > needed. taken straight from ion.inc:
> > (83 version)
> > #define bcall(xxxx)   call xxxx
> > (83+ version)
> > #define bcall(xxxx) rst 28h \ .dw xxxx
> >
> > this is just a thireitical approach to this. but this is, what it might
> be....
> >
> > change program address(rst 28h),
> > new address(.dw xxxx)
> >
> > Tell me if I'm wrong, but anyways
> > I hope that helps, and not confuse you....well anyways
> > bye!
> >
> >
>
>




References: