collapseos icon indicating copy to clipboard operation
collapseos copied to clipboard

TI-83 series

Open keithstellyes opened this issue 4 years ago • 9 comments

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

keithstellyes avatar Oct 11 '19 17:10 keithstellyes

you could always load the os as a program that is non-excitable and need no signature with the overlying Ti-OS still there

Izder456 avatar Oct 12 '19 15:10 Izder456

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.

keithstellyes avatar Oct 12 '19 16:10 keithstellyes

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

f4grx avatar Oct 14 '19 08:10 f4grx

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.

hsoft avatar Oct 16 '19 03:10 hsoft

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)

keithstellyes avatar Oct 18 '19 14:10 keithstellyes

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)

hsoft avatar Nov 07 '19 17:11 hsoft

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.

myuseraccount avatar Nov 07 '19 19:11 myuseraccount

Having CollapseOS on the tiz80 series is extremely nice! I might buy one just for this!

f4grx avatar Nov 08 '19 15:11 f4grx

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.

hsoft avatar Nov 09 '19 13:11 hsoft