Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Deep Toaster

Pages: [1] 2 3 ... 556
TI 68K / Re: Authenticator App
« on: February 24, 2021, 02:32:18 pm »
Ohhh, that's a really clever use of a calculator (unfortunately not a model I have). I'd love to pull out my TI-84 for 2fa; maybe that'll be a fun project for me :)

How large does the binary come out to be?

EDIT: I see the 18 KB release now.

Update—it now supports most of the variable types I care to support (programs, appvars, numbers, lists, matrices, and pictures). I want to add apps too, but that means including a Rabin signer too...
Hmm, should we add a link to the tools menu?
maybe, though I think there are more useful tools I should add to that tools list first (it's missing ORG lol)

Axe / Re: Variable Subroutines
« on: January 07, 2021, 02:07:19 pm »
Well, I tried both. When I try it from a program compilation method, it goes absolutely nuts.
Terrav, like E37 and I have been saying, this will happen 100% of the time with any program that has any logic (such as any if statements) unless you've done the following:
  • copy your shell's code (that's the code you're writing) to a safe RAM location (such as L1) and Goto there
  • use New() to clear out space around 9D95h
  • copy the program you want to run to 9D95h
  • call the program at 9D95h
If you compile as an app, you can skip the first step.
First, it looks like it does nothing. Then, when you exit the shell, it returns back to the program selection screen (in my shell). Then, when you try to exit the shell again, it does one of two things. 1) it stays on with a blank screen and executes a seemingly infinite loop. 2) It goes through what I can only describe it as: the calculator is on drugs. The user input is about 1/4-normal; you can point out various misplaced parts of some recognizable menus; and finally, if you hit On and other keys enough, it "burns out" with that weird blue line across the screen (I've seen this before: see the footnote) and resets after about 2 minutes.
This (or any number of weird effects) is pretty much expected. What your program is doing is equivalent to generating a random address in memory and jumping to it; in fact, you can probably get a similar effect to occur by doing exactly that.
I've double-checked that the program I'm working with is within the size range (nothing hanging past BFFFh).
That's something to worry about later; if you execute any code beyond BFFFh, the effect is just an immediate RAM clear.
Footnote: That weird blue line on the screen is very frightening and I've seen it before; that is the MAJOR indicator that you have done something horribly wrong. I believe that may be a side effect of executing bad code, that sends absolute nonsense to your LCD, causing it to shut off and display a blue line across your screen. I only call it "burning out" because it's generally what it does after an absolute overload of bad data, and the line fades away in tatters before eventually returning your calculator to a fresh RAM wipe. I have found nothing about this on YouTube.
This is called "test mode," or colloquially the "blue line of death" (BLoD). You're right in that it's effectively burning out your LCD; if it happens, the best thing to do is to take out your batteries quickly so no permanent damage occurs.

Like I said, I highly recommend reading Learn TI-83 Plus Assembly in 28 Days. What you're writing is called a shell, and it's one of the more technically involved things you can write in assembly, let alone Axe.

Axe / Re: Variable Subroutines
« on: January 07, 2021, 01:25:40 am »
Sorry to keep prodding at this question, but are you copying the program you'd like to run to 9D95h every time? Are you compiling to a program or as an app? (I'm assuming since you can't use New(), you're compiling as an app?)

Axe / Re: Variable Subroutines
« on: January 05, 2021, 06:25:27 pm »
The program version has the issue I called out earlier, which is that almost all assembly programs will crash if run from any address that's not 9D95h.

A way to get around this would be to copy the shell's code to a safe RAM area, jump there, move the program you want to run to 9D95h, and then call 9D95h.

Regardless, you can't just Copy() code to 9D95h, because there's likely to be variables there which you would be overwriting. (The TI-OS, as well as New() in E37's code, actually move any variables there out of the way so that that space is safe to use.)

Axe / Re: Variable Subroutines
« on: January 04, 2021, 04:35:27 pm »
Thank you for the suggestion; I'm basically trying to create a launcher that can run assembly programs apart from TI-OS.
I don't know your architecture so I wouldn't know if you're addressing this issue already, but something to keep in mind is that assembly programs in general must be loaded (moved) to a known location in memory. This is because a common instruction in assembly code is to jump to a label, which is a absolute address (calculated relative to the location the program was loaded to). (The TI-OS loads all assembly programs to 9D95h, as I mentioned.)
The allowed program size built in my program should be variable, but I guess I should watch out for the 8K program size limitation as well. Also, is there any article about the actual structure of memory/Flash/addresses that I can read? I originally thought it was 24K RAM + 1M Flash and that's it, but it appears there's a lot more I need to learn before I go digging deep in memory.
Check out for an overview of how the pages are laid out. (Like you said, there's 24K RAM and 1M flash, but there's only 65,536 addresses (this is called virtual address space), so to access anything beyond the first first 16K (page 0) of flash, pages are swapped in and out as necessary. sort of describes the situation the TI calculators are in.

Check out for an overview of how the RAM (in general, 4000h through FFFFh in the virtual address space) is organized. If you need the actual values of the addresses listed by name, check out

In general, I'd recommend taking a gander at Learn TI-83 Plus Assembly in 28 Days if you haven't already. It's a fantastic guide to how assembly programs work.

So this is something someone (I think Merth or KermM) suggested somewhere around eight years ago, but I finally got around to starting to do it. Whoo!

clrhome-tools-php is (going to be) a bunch of stuff open-sourced from ClrHome's massive codebase. It's taking me a bit of time to clean it up enough to publish (mostly because my web code from eight years ago was moderately atrocious), but the first batch of utilities are ready if anyone would like to use them for their own projects.

Probably most interesting is Program.class.php, a class for reading and writing prgm variables that comes with a (pretty robust) tokenizer. Same syntax as IES (whence the original code) and TokenIDE (the original inspiration).

Axe / Re: Variable Subroutines
« on: January 02, 2021, 10:27:22 pm »
Hi Terrav, welcome to Omnimaga! :)
Knowing the TI-84+ only has 24KiB RAM, it puzzled me to learn my program was using memory pointers all the way up to DFFF.
On the TI-83 Plus series (including the TI-84 Plus), memory addresses 0000h–3FFFh point to a flash page and 4000h–FFFFh point to RAM (hence FFFFh – 3FFFh = 24 KiB).
Everywhere I have tried to execute has an address somewhere between 8000-BFFF.
Funny thing—you pretty much discovered the issue.

Addresses C000h–FFFFh point to a RAM page on which you're not allowed to execute code. That's it. Once you jump to an address beyond BFFFh, the calculator resets. (There is a way around this if you're interested, but you might find a way around this issue without unprotecting the page.)
If I were to try this with the program data itself or a safe zone (like L1) it works just fine.
Both of these zones are guaranteed to be below C000h :) In fact, the reason the TI-OS refuses to execute programs larger than 8192 bytes by default seems to be a precaution against going beyond C000h—9D95h (which is where all programs are moved when they start executing) + 8192 = BD95h, which is a bit below the BFFFh limit.

Web Programming and Design / Re: Stupid CSS
« on: September 28, 2020, 08:37:38 pm »
Small bug with the file browser. You can open and then immediately close it by double-clicking on the button. It looks like input isn't properly being masked when it's open.
What's being opened and closed? If you're opening a first child directory (in the middle section), you might be hitting the .. that shows up right after.
Whoops, meant to say dialog not browser. Upon further review, it looks like the bug actually is that if you click and drag the dialog wont close even though the click starts and ends in an area that should close the dialog.
Oh gotcha. Yeah, it's intentional that the modal closes when you click in the shade. Maybe there's an issue with dragging tho.
Did you write them directly in CSS or are you using something like SASS?
Directly in CSS :)
Oof :(
A good amount of the CSS for the Whac-A-Mole game (including the randomized position animation) is generated from a Python script.

Web Programming and Design / Re: Stupid CSS
« on: September 28, 2020, 05:36:29 pm »
Small bug with the file browser. You can open and then immediately close it by double-clicking on the button. It looks like input isn't properly being masked when it's open.

What's being opened and closed? If you're opening a first child directory (in the middle section), you might be hitting the .. that shows up right after.

I'd be interested to compare power consumption of those demos implemented in JavaScript.

Someone else also suggested doing that. It'd definitely be interesting to see but I'm lazy :( I'd bet it's a lot lighter than an equivalent React app.

Did you write them directly in CSS or are you using something like SASS?
Directly in CSS :)

Web Programming and Design / Stupid CSS
« on: September 28, 2020, 04:58:50 pm »
Just wanted to show off a horrifying project I've been working on for fun:

I'm still working on the last two demos and making it more responsive for tall-screen/mobile users, but you get the idea—it's a collection of really stupid things that are technically possible in nothing but HTML and CSS.
Demos that exist:
  • Double-click handler
  • File browser
  • Modal dialog
  • An arcade reaction game
Demos that I'm working on:
  • A text adventure game
  • A clock of some sort

TI Z80 / Re: Video Conversion Thingie
« on: August 25, 2016, 07:23:28 am »

After learning Haskell I feel like everything ought to be as functional as possible...

TI Z80 / MOVED: Random Questions
« on: August 25, 2016, 07:05:35 am »

Introduce Yourself! / Re: Hello fellow nerds and nerdettes
« on: August 25, 2016, 06:59:48 am »
Welcome to Omnimaga :D

Your projects look really sweet. There ought to be more calculator games with sound (though 2.5 mm headphones are getting harder to find by the day).
Hello! I'm a fellow programmer.
Hello, fellow programmer!
In calc-related stuff, I own a TI-84+, a TI-84+CSE, and a TI-84+CE. I program those in Z80 Assembly, eZ80 Assembly, and sometimes mix TI-BASIC with my code. I can also program in C, I've written software in C for computers, for the 3DS, I haven't written much in C for the TI-84+CE tho because I prefer to do things in Assembly most of the time, although I plan to in the future.
Have you seen Axe (for the TI-84 Plus)? It's somewhere between C and assembly in the grand order of language high-ness (?) and really helped make game development faster on the calculator.
(I can also program in Java and I'm really good with JavaScript and web programming in general.)
Do you website? :D
I'm a computer science student, currently a sophomore in college. (Although I'm still taking mostly general ed classes so college has yet to improve my computer programming skills at all...)
I don't know how it will be for you, but at least at my school the computer science sequence is very theoretical. I've had about six classes in total in the last three years in which I was expected to code at all, but some of the mathy parts are fun too.
And sorry if my intro is a bit weird.
ionno, that's one of the best intros I've seen ¯\_(ツ)_/¯

EDIT: dude, your graphics are really smooth :o

Other Calc-Related Projects and Ideas / Re: Ti30XS hacking
« on: August 25, 2016, 06:48:52 am »
I remember a discussion on it, but I don't think you can really do anything with it. Do you have a picture of what your friend did?

Pages: [1] 2 3 ... 556