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]
