Jump to content

Recommended Posts

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

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695909
Share on other sites

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 by rocky007
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695931
Share on other sites

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.

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695937
Share on other sites

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 by lucien2
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2695979
Share on other sites

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 by rocky007
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696008
Share on other sites

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?

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696106
Share on other sites

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.

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696264
Share on other sites

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.

  • Like 1
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696319
Share on other sites

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 by mizapf
  • Like 1
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696377
Share on other sites

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 by rocky007
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696420
Share on other sites

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 by RXB
  • Like 4
  • Thanks 1
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696446
Share on other sites

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.

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696516
Share on other sites

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 by mizapf
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696537
Share on other sites

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...

  • Like 1
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696663
Share on other sites

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

  • Like 1
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696741
Share on other sites

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 ! " .....

Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696743
Share on other sites

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.

  • Like 2
Link to comment
https://forums.atariage.com/topic/208842-funny-trick/#findComment-2696752
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...