Apologies, Paul.  My misunderstanding. (I first heard of it from RCR
Podcast EP181. :)

Turns out Tandy also does the same thing.  goto/gosub (variable/absolute
string) -> goto/gosub 0
I was thinking the error trap thing might also be an option for Tandy...

It's a really neat hack of the language!

-s

On Fri, Nov 16, 2018 at 1:30 PM Hagstrom, Paul <[email protected]> wrote:

> This doesn't necessarily bear on the question, but Magic GOTO/GOSUB
> doesn't rely on error trapping, rather it makes use of the fact that GOSUB
> "SOMETHING" is evaluated by Applesoft/MS BASIC as GOSUB 0, and the handler
> is on line 0.  It doesn't raise an error though.
>
>  -Paul
>
>
> > On Nov 16, 2018, at 1:11 PM, John R. Hogerhuis <[email protected]> wrote:
> >
> > Not that I know of. There might be a hook to modify the behavior of
> gosub with machine language code.
> >
> > -- John.
> >
> > On Fri, Nov 16, 2018, 8:53 AM Scott Lawrence <[email protected] wrote:
> > Do any of you know of a T version of "Magic Goto"?
> >
> > http://ivanx.com/appleii/magicgoto/
> >
> > It basically uses an error trap to catch bad gotos (as the basic
> interpreter sees them) and then looks for the label from the error handler,
> and uses that... mainly using REM statements to define the labels.
> >
> > I'm thinking it might be possible to accomplish a similar thing on the
> Ts using ON ERROR GOTO, perhaps peeking back into the return location and
> getting the label name there.
> >
> > ie: (pseudoish code)
> >
> > 10 ON ERROR GOTO 1000
> > ...
> > 20 GOSUB "InitCode"
> > 30 GOSUB "DoStuff"
> > 40 END
> >
> > 100 REM InitCode
> > 110 PRINT "hello 1"
> > 120 RETURN
> > 200 REM DoStuff
> > 210 PRINT "hello 2"
> > 220 RETURN
> >
> > 1000 ... figure out the label, resolve it to a line number then goto
> there...
> >
> > (and apologies if all of you have advanced far past BASIC on the Ts, and
> are like writing pascal or whatever...  although a micropython or lua would
> be neat... or at least structured basic without line numbers... I forgot
> how much I miss that from AmigaBASIC...)
> >
> > -s
> > --
> > Scott Lawrence
> > [email protected]
>
>

-- 
Scott Lawrence
[email protected]

Reply via email to