Retrospect Posted January 19, 2023 Share Posted January 19, 2023 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? 2 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 19, 2023 Share Posted January 19, 2023 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. 2 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted January 19, 2023 Author Share Posted January 19, 2023 (edited) 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. JS99'er - Google Chrome 2023-01-19 19-12-18.mp4 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 January 19, 2023 by Retrospect 1 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 19, 2023 Share Posted January 19, 2023 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. 2 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted January 19, 2023 Author Share Posted January 19, 2023 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? Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted January 19, 2023 Share Posted January 19, 2023 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. 1 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted January 19, 2023 Author Share Posted January 19, 2023 (edited) 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 January 19, 2023 by Retrospect 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted January 19, 2023 Share Posted January 19, 2023 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. 1 1 Quote Link to comment Share on other sites More sharing options...
+MarkB Posted October 24, 2023 Share Posted October 24, 2023 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. Quote Link to comment 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.