collapseos
collapseos copied to clipboard
TI-83 series
Just creating this ticket to keep track of TI-83 series discussion and research, give it a place to live for the time-being. @hsoft I wonder if we should have a TI-83 series label for issues?
Related: #39 #40
It is on the roadmap: https://collapseos.org/roadmap.html
Great for getting attention to the project and a user-base, plus the systems are everywhere, it's well-documented and studied, plus it has an I/O port that should(?) make it easy to communicate with arbitrary peripherals :)
Prior art:
- KnightOS is an already-existing TI-83 series OS, it would be good to study how they do things (for example, how they load the OS onto the device), might be able to straight-up lift code from them to avoid re-inventing the wheel there
See: https://knightos.org/ https://github.com/KnightOS
- It seems to load an OS on an out-of-the-box TI-83 series calc, it has to be signed, but this key has been cracked as early as 2009, however this might be a legal gray area.
See: https://techcrunch.com/2009/08/17/brute-forcing-success-load-any-operating-system-onto-your-ti-83-calculator/ https://www.ticalc.org/archives/news/articles/14/145/145154.html https://web.archive.org/web/20090821220105/http://www.unitedti.org/index.php?showtopic=8888&start=0&p=135113&#entry135113
you could always load the os as a program that is non-excitable and need no signature with the overlying Ti-OS still there
I'm not knowledgable enough in the system to make a call on that either way. I do wonder how much the underlying OS will try to interfere with us, to be honest.
For example here: http://wikiti.brandonw.net/index.php?title=83Plus:Ports:00#TI-OS_Interference There's this bit:
...[T]he Ti-OS checks for silent transfers in the background of input routines
This makes me wonder how good of an idea that actually might be.
See here for the KnightOS's instruction on installation of their OS: https://knightos.org/download/
Would have to defer on how good of an idea that'd be.
TI keys are not a grey area. The keys have been recovered for all TI models and the EFF has made it clear that it was just signing keys, so it was not a problem.
Also these keys are 512-bit in length and extremely weak.
Moreover these calculators are obsolete and IIRC, TI does not support them anymore. Maybe newer models, but not the original ones.
https://en.wikipedia.org/wiki/Texas_Instruments_signing_key_controversy
The wikipedia page even has the TI-83plus keys, lol
Thanks for creating this ticket, I'll also summarize my knowledge here.
KnightOS is very good stuff. This was my first contact with z80 asm and what convinced me that it was a nice platform.
The OS is, however, a bit too big to my own taste so I played around with minimalism, using kOS, with https://github.com/hsoft/tihello and https://github.com/hsoft/tiseg7
From what I understand, when you upload your code on the calculator, TI-OS is overwritten, so bcalls to TI-OS library doesn't make any sense. You're on a barebone z80 platform with a nice set of peripherals around. There's a bootloader, however, that is never overwritten (arg, I don't remember how to hard-summon it. WikiTI has this. Something about removing the batteries and then holding a button when you put it back on. Then, regardless of how broken your calc is, you can upload a new OS).
The key signature thing is something that kOS manages. It's easy to go around it.
I thought for a while to start from kOS for Collapse OS, but there actually aren't that many usable parts and most of that code is inter-linked, so you can't easily take a nice part out. Easier to start from scratch.
That's good to know :) It still does seem like a good project to watch (for example to see how they solve the key verification issue such that we build a solution)
I've just pushed an exciting first step. I target TI-84+ because that's the only calculator I have, but I know that with minimal adjustments, TI-83+ support can be added. If someone who has a TI-83+ wants to take care of those adjustments, it would be great.
(I know, I know, there's the emulator, but it's not enough. The emulator is incomplete and has bugs. It has to run on real hardware)
This is my cue! I was contemplating getting a device for testing CollapseOS, and a TI-83+ is a perfect candidate. I'll pick one up, and see about trying to bootstrap it.
Having CollapseOS on the tiz80 series is extremely nice! I might buy one just for this!
Things are beginning to look really good. I've pushed the scrolling feature on the LCD which takes advantage of the "Z-Offset" feature of the TI's LCD screen. This allows for smooth scrolling without having to invalidate the whole of LCD's memory.
Up until yesterday (KnightOS/z80e#54), z80e didn't support Z-offset so you have to be sure to compile it from master if you want to see scrolling work in emulation.