rocky007 Posted February 12, 2013 Share Posted February 12, 2013 I just read some old TI magazine and found this funny trick ( not working on Classic 99 ) : type in extended basic : 10 !@P- 20 CALL COLOR RUN you'll get an SYNTAX ERROR ERROR IN 20... and back to TI BASIC 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/ Share on other sites More sharing options...
+mizapf Posted February 12, 2013 Share Posted February 12, 2013 Hmm ... never heard of such an issue - which would be a pretty nasty one, by the way. I tried that in MESS, and I don't see the problem either. It sounds to me like a bug in an earlier Extended Basic release. Line 10 turns off prescan, line 20 calls a subprogram that is unknown since the prescan has been turned off before the COLOR symbol could be found. On MESS, the common Extended Basic (v110) issues the expected "SUBPROGRAM NOT FOUND IN 20" and returns to the prompt. The v100 Extended Basic indeed reports the "SYNTAX ERROR IN 20", but does not return into TI BASIC. So this must be a very early Extended Basic. Maybe some people with a real console want to check that. Michael Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695909 Share on other sites More sharing options...
rocky007 Posted February 12, 2013 Author Share Posted February 12, 2013 I tryed on real console with : Ti Extended Basic Mechatronic Extended Basic I Mechatronic Extended Basic II All return "Incorrect Statement in 20" and return to TI BASIC. Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695919 Share on other sites More sharing options...
rocky007 Posted February 12, 2013 Author Share Posted February 12, 2013 Another funny trick for Extended Basic : 10 ON ERROR 30 20 RUN "" 30 CALL SOUND(200,300,0) :: CALL SOUND(300,2) On real TI, back also to TI BASIC and erase all memory Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695930 Share on other sites More sharing options...
rocky007 Posted February 12, 2013 Author Share Posted February 12, 2013 (edited) Another funny trick for Extended Basic : 10 ON ERROR 30 20 RUN "" 30 CALL SOUND(200,300,0) :: CALL SOUND(300,2) On real TI, back also to TI BASIC and erase all memory and : 10 RUN "" is like doing a NEW Edited February 12, 2013 by rocky007 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695931 Share on other sites More sharing options...
lucien2 Posted February 12, 2013 Share Posted February 12, 2013 10 !@P- 20 CALL COLOR On MESS, the common Extended Basic (v110) issues the expected "SUBPROGRAM NOT FOUND IN 20" and returns to the prompt. The v100 Extended Basic indeed reports the "SYNTAX ERROR IN 20", but does not return into TI BASIC. I tried it with these emulators and XB1.1: DOS V9T9, PC99, Win994A 3.009, Ti994w, ti99sim, Java V9T9. None of these returns to TI BASIC. Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695937 Share on other sites More sharing options...
+mizapf Posted February 12, 2013 Share Posted February 12, 2013 It only helps to test that on a real console. At least I can try that next weekend on a real Geneve. Michael Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695942 Share on other sites More sharing options...
lucien2 Posted February 12, 2013 Share Posted February 12, 2013 XB1.1 + Real console: return to TI BASIC! Is it a bug or a feature? Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695949 Share on other sites More sharing options...
+retroclouds Posted February 12, 2013 Share Posted February 12, 2013 Tried it on my TI-99/4A with Ti Extended Basic and Mechatronic Extended Basic I ==> did not return to TI-Basic. Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695960 Share on other sites More sharing options...
lucien2 Posted February 12, 2013 Share Posted February 12, 2013 (edited) So, maybe the bug is only in the french / swiss french version of the XB cartridge / the console. If someone can point a program to dump the console ROMS/GROMS and the XB ROMS/GROMS, I could compare the binaries. Edited February 12, 2013 by lucien2 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695979 Share on other sites More sharing options...
rocky007 Posted February 12, 2013 Author Share Posted February 12, 2013 (edited) Ok, i did some tests : PAL TI99/4A + Mechatronic I : working PAL TI99/4A + Mechatronic II : working PAL TI99/4A + TI Extended Basic PHM 3026 : working US TI99/4A Beige + Mechatronic I : working US TI99/4A Beige + Mechatronic II : working US TI99/4A Beige + Ti Extended Basic PHM 3026 : working http://youtu.be/pWZAXsq5TDM Edited February 12, 2013 by rocky007 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696008 Share on other sites More sharing options...
RXB Posted February 13, 2013 Share Posted February 13, 2013 As a GPL programmer this sound like a bad TI GROM 0 routine. The GROM 0 does a search for a Subprogram and sometimes if a bad value is on the stack you get unexpected results. A flag is set and if the flag says go to a routine it could very well go to >2000 in GROM i.e. TI Basic start address. Or if a DSR error it could use that address that ends up using the GPLDSR header to start TI Basic. Does this happen on all the consoles? Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696106 Share on other sites More sharing options...
+Torrax Posted February 13, 2013 Share Posted February 13, 2013 Are all the Extended Basic's running on a stock console with no expansion?? The problem could be how the TI prioritizes GROM and VDP access in hardware when running a XB program from VDP ram (maybe even with 32K). A pointer or address is being set incorrectly from the error, which could be either VDP or GROM related. This would be hard to debug and point down due to only happing on the real metal. Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696264 Share on other sites More sharing options...
+retroclouds Posted February 13, 2013 Share Posted February 13, 2013 Duh! Have to try it again. Ofcourse I forgot to do the NEW command. So that is why I probably did not see the TI-Basic prompt. Hmm, seems that my Knowledge about Basic / Extended Basic is getting a little rusty. By the way, watching your youtube video, you just have to love the sound of typing the keyboard. Yep, nowadays you don't hear that a lot anymore. 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696319 Share on other sites More sharing options...
+mizapf Posted February 13, 2013 Share Posted February 13, 2013 (edited) You don't really need the NEW. The "INCORRECT STATEMENT" message is already from TI BASIC, not from Extended Basic. Ahhh ... yes, it happens without 32K expansion! Just tried it with MESS. Michael Edited February 13, 2013 by mizapf 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696377 Share on other sites More sharing options...
rocky007 Posted February 13, 2013 Author Share Posted February 13, 2013 (edited) You don't really need the NEW. The "INCORRECT STATEMENT" message is already from TI BASIC, not from Extended Basic. Ahhh ... yes, it happens without 32K expansion! Just tried it with MESS. Michael you're right, i tryed : real TI99/4A console with PEB, speech synthetiser & 32ko activated : it doesn't works. real TI99/4A console with PEB, speech synthetiser : it works. that's strange no ? Ti Basic have a fixed adress, even with 32ko expansion. I tryed the trick on Win994a, ( desactivating the 32ko ), it's also working , even with TI Extended Basic 2.5 Edited February 13, 2013 by rocky007 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696420 Share on other sites More sharing options...
RXB Posted February 13, 2013 Share Posted February 13, 2013 (edited) Ok figured it out from the GPL source code. >830C = NMPTR is the GPL variable for names put into the Subprogram list like Variables, Subprograms and CALLs. i.e. CALL namesubprogram or COLOR or GPLDSR >8312 = LINUM is the GPL line number pointer for last line entered in the program and contains the VDP or RAM address depends on 32K used or not. So here is what happens. 10 !@P- Turns off the PRESCAN so NMPTR does not scan the program so has a address of the same address as TI Basic start address in VDP 20 CALL COLOR is a subprogram name to be searched for. Then program starts and does not prescan for variables or subprogram names. It then finds a CALL and knows to search for the name COLOR next but after it finds the name it finds a error as it does not have a ( it goes to the Error routine in XB. But the error routine can not finish correctly as the PRESCAN TABLE IS EMPTY!!!!! (Normally we put the variable list and subprogram list before we turn off the PRESCAN) As the GPLDSR has invalid VDP address in the list it ends up in TI Basic as the return address thus you end up in TI Basic for a good reason. So this is not a program error but a incorrect use of PRESCAN and it creates a error condition by not being used properly. Rich Edited February 13, 2013 by RXB 4 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696446 Share on other sites More sharing options...
rocky007 Posted February 13, 2013 Author Share Posted February 13, 2013 Thanks RXB for the brillant explaination... but have you an idea for the RUN "" bug ? I suppose it's the same problem : RUN clean the prescan table and when occur a bad instruction jump to TI BASIC Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696487 Share on other sites More sharing options...
RXB Posted February 13, 2013 Share Posted February 13, 2013 Yea same problem as before, The RUN command has "" so it sees the RUN then looks for a string in the GPLDSR If the RUN had a token for Linenumber instead it would just crash if a bad line number but the same thing as before it has a empty PRESCAN table. From looking at the Code in XB is seems the turn off PRESCAN was to be used to speed up programs and that is why the PROTECT PROGRAM is dated at same time. I think they assumed if we could turn off PRESCAN then PROTECT the program so lines could not be modified then no crash would result. As long as the program was written properly with this in mind. Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696516 Share on other sites More sharing options...
+mizapf Posted February 13, 2013 Share Posted February 13, 2013 (edited) So this is not a program error but a incorrect use of PRESCAN and it creates a error condition by not being used properly. Oh, I'd say this one definitely qualifies for the Academy Awards of bugs, if there were such a thing. The only acceptable answer to an incorrect use is an error message. This one's definitely the worst one I know from Extended Basic, and most of us simply were not caught by it because we had a 32K expansion before doing such things. Let's see ... [x] unexpected behavior [x] undocumented [x] result cannot be undone [x] feature that can't be turned off A special bonus for [x] program loss but, I'm afraid, some minus points for [ ] unpredictable as there is a clear way to trigger it. Well, could be close. Michael Edited February 13, 2013 by mizapf Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696537 Share on other sites More sharing options...
Tursi Posted February 13, 2013 Share Posted February 13, 2013 The only acceptable answer to an incorrect use is an error message. hehe.. agreed, and data loss makes it severe, but usage of !@P- mitigates that a bit IMO - that's an undocumented feature, and user use of undocumented features means all bets are off. Still, it would have been painful to have been bitten by this bug without saving... 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696663 Share on other sites More sharing options...
senior_falcon Posted February 13, 2013 Share Posted February 13, 2013 This doesn't seem as bad to me as Fctn = which probably has bitten every TIer multiple times! 2 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696710 Share on other sites More sharing options...
+mizapf Posted February 13, 2013 Share Posted February 13, 2013 I had to take a look now, but indeed Pre-Scan control was documented, but in an addendum to the Extended Basic manual. On Whtech the manual is at ftp://ftp.whtech.org/programming/Extended%20Basic/xb.pdf ; look at PDF pages 122-125. I remember it became a kind of dark skill to be able to speed up the startup of Extended Basic programs. Michael 1 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696741 Share on other sites More sharing options...
Retrospect Posted February 13, 2013 Share Posted February 13, 2013 This doesn't seem as bad to me as Fctn = which probably has bitten every TIer multiple times! Yes, me, frequently. .... programming at speed on TI .... screen goes blank ... BEEP ...... back to splash screen .... "you b*@#ard ! " ..... Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696743 Share on other sites More sharing options...
RXB Posted February 13, 2013 Share Posted February 13, 2013 Clearly putting notes on documents for a undocumented bug seems like saying "Undocumented: Hammering nails into our bricks is not fully supported." You can do it and even get away with it, but clearly it is undocumented for good reason! RXB has the Quit Key Turned off unless you turn it on with: CALL QUITON That one sold many people on RXB alone. I could put in a Error Report for this !P- bug pretty easy. It would only take 6 bytes of GPL to pull it off. 2 Quote Link to comment https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696752 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.