[A83] Re: TIOS BASIC parser (83-)
[Prev][Next][Index][Thread]
[A83] Re: TIOS BASIC parser (83-)
I've been searching for such an offset but couldn't find it, thanks
anyways.
That will make some nice enhanced-BASIC programs.
BTW: for the Ti83+[SE] users, $9311 on the Ti83- is called OPS
(as far as I know)
> -----
> Van: Tijl Coosemans <tijl@ulyssis.org>
>
> The following code will point HL to the last interpreted byte, which is
the
> last character in the program name. So in your example the 'B' in
PROGRAM:A.
>
> call _popReal01 ; pop program name from FPS
> rst 18h ; push program name again
> call _findProgSym ; get program location
> inc de ; skip size bytes
> inc de ;
> ld hl,(9311h) ; get pointer to operator stack
> ld bc,6 ; add 6 to get cursor offset
> add hl,bc ;
> call _ldHLind ; get cursor offset
> add hl,de ; add cursor offset to program location
>
> Point is: an absolute pointer isn't saved, simply because a program's
> location might change. So, when running a program from another program,
the
> TIOS saves an offset. That offset is saved in what is called the operator
> stack. The TIOS saves some other pointers and values on this stack, which
> are rom specific. Anyway, by adding 6 to the OPSP(ointer) (=9311h), and
> loading the word at that address, you have the offset. Add that to the
> program location and you have the last interpreted byte.
>
> ----- Original Message -----
> From: "Henk Poley" <HPoley@DDS.nl>
> To: <assembly-83@lists.ticalc.org>
> Sent: Monday, November 26, 2001 20:39
> Subject: [A83] TIOS BASIC parser (83-)
>
>
> >
> > Does somebody know where the TIOS stores the pointers/cursor of the
before
> > last running BASIC program? Given this example:
> >
> > PROGRAM:A
> > :prgmB
> > :"SOME TEXT
> >
> > PROGRAM:B
> > :send(9prgmASM
> > :"BLAH BLAH
> >
> > I can lookup that the previous BASIC program was prgmB ($913B), where
> prgmB
> > was left off ($9146), and I can see that prgmA started prgmB (call
> > _popRealO1). But now I want to know where it left prgmA. The TIOS does
> > store it somewhere, but why can't I find it?
> >
> > Henk Poley <><