Jump to content
IGNORED

The TI Basic Editor - possible tricks/hacks?


Retrospect

Recommended Posts

https://nivelleringslikaren.eu/ti994a_basic/index.html

 

The above URL takes us to an online app that lets us code in TI basic or XB , and save it out to a .BIN file ... 

 

If you delete the .BIN extension the file is treat the same as a program file / FIAD

 

My point being, I've noticed that we can program a mistake and save it , and it's there in the program - it has bypassed the parser that would normally pick us up before we could save the program.

I've done this accidentally a few years ago and it produced a very artistic colourful crash.

 

So we COULD try to perform special hacks .... any clever / advanced programmers here that could possibly take advantage of this? 

 

 

  • Like 2
Link to comment
Share on other sites

 

testpic.thumb.png.2073afad975724fe3649fd406d6cb786.png

Above is the code I put into the Basic Editor, I pressed "download" and it saved it as a .bin but we can actually use this as a FIAD type program file, 

So watch what happens in my video when we put this into JS99er and attempt to run it - it gives us a strange result.

 

 

 

This code would normally NEVER be able to get past the BASIC parser in either TI BASIC or EXTENDED BASIC, also what is the significance of the strange result it gives us?

 

I doubt under normal circumstances anyone has seen a result such as that for the aforementioned reason.

Edited by Retrospect
  • Like 1
Link to comment
Share on other sites

For one, you way exceeded the maximum quoted string length.  Obviously the translator did not catch that.  I would like to see what the binary looks like in the debugger.  My guess is, once it hit the length of the quote string, modulo 255, which looks like is 166 for your example, BASIC began interpreting the following Xes as tokens.  Working pretty much like a buffer overflow.

  • Like 2
Link to comment
Share on other sites

8 minutes ago, OLD CS1 said:

you way exceeded the maximum quoted string length

Yes, quite deliberately.  I wanted to see what the TI would do with this when it has been forced upon it with no parser to interrupt us.  I'm thinking , because Senior Falcon once did something really clever with REM statements to produce some assembly in the stock console, someone could do something insane with the TI Editor?

Link to comment
Share on other sites

1 minute ago, Retrospect said:

Yes, quite deliberately.  I wanted to see what the TI would do with this when it has been forced upon it with no parser to interrupt us.  I'm thinking , because Senior Falcon once did something really clever with REM statements to produce some assembly in the stock console, someone could do something insane with the TI Editor?

Could be.  I never looked closely under the hood, so I cannot say whether it would allow any special non-printable characters to coincide with raw byte values for machine code.  Some neat tricks could be had.

  • Like 1
Link to comment
Share on other sites

run this with RUN "DSK1.TEST2bin" .....(don't put the .  (dot) in )  it will do a crash but then will return you to the basic OS ... i was in extended basic.

 

The cursor is different, and text is different, graphics are messed up.  Type LIST and it gives and endless list of    02 " + over and over.  

 

What made it return to the basic after the crash is beyond me.  

 

The program is a long list of PRINT "HELLO WORLD! ";  without line numbers (again something that could never get past the parser.)

 

Maybe I'm just beating a brick in a dumb way or maybe I'm onto something here that could lead to something else with the right coders?

 

TEST2.bin

 

EDIT: Try this in TI Basic and it almost gives us a Commodore 64 loading screen with the flashing borders.  Nice

 

Edited by Retrospect
  • Like 2
Link to comment
Share on other sites

2 hours ago, Retrospect said:

Yes, quite deliberately.  I wanted to see what the TI would do with this when it has been forced upon it with no parser to interrupt us.  I'm thinking , because Senior Falcon once did something really clever with REM statements to produce some assembly in the stock console, someone could do something insane with the TI Editor?

In XB or TI Basic in hex >FF (Decimal 255) is the max string variable length, but as it goes above you would be using the lower byte of a word value.

In other words hex >0100 (Decimal 256) would make that value 0 in decimal as the lower byte of a word is >00 in hex.

 

I have often thought of a RXB command making string any length called rope so you could use the Symbol ~ (tilde) that would allow a 2K single stirng.

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 9 months later...
On 1/19/2023 at 6:39 PM, OLD CS1 said:

I implemented his engine in my https://tidbit99.com site.  Since it is using TIdBiT, the editor looks different and I have not yet worked up a way to convert to a cassette wav.

I can create a cassette wav from a basic program or bin file.  If it's useful I could publish a tool to do that.

Link to comment
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...