Unity: TI-81 Assembly Program Loader
Posted by Travis on 19 February 2010, 12:17 GMT
Back in August the seemingly impossible happened: A way to execute user-defined assembly code on the TI-81 was revealed to the world. Following up on this event, Benjamin Moody has put together a package of development tools and a program loader called Unity. The loader serves the same purpose as the assembly shells that were created for TI's early calculators—to provide an easier way to execute ASM programs on a calculator that was never intended to support them. It utilizes checksum verification to ensure that programs are typed in correctly before running them and activates an emergency key combination that can break out of a hung program. ASM subroutines can be created and called directly from anywhere in a TI-BASIC program.
PC-side development tools and some programming documentation are also included. Source code for the tools is provided so they can be compiled and used on different platforms.
Unity itself is believed to work on all TI-81 ROM versions. The development tools and example programs currently support ROM versions 1.6K, 1.8K, and 2.0V. Support for other ROM versions is likely to be possible by determining the memory locations of the ROM calls in those versions.
|
|
Reply to this article
|
The comments below are written by ticalc.org visitors. Their views are not necessarily those of ticalc.org, and ticalc.org takes no responsibility for their content.
|
|
Re: Unity: TI-81 Assembly Program Loader
|
Travis Evans
|
I think my favorite thing about this package (other than it being ASM on the TI-81, of course!) is the simplicity and platform-independence of it. Although the ZIP includes Windows executables for the development tools, it only took me a few seconds to run the makefiles and rebuild the executables for Linux, and then I was able to successfully build the example programs. Not to mention that the modifiable nature of FOSS is always a plus. :)
|
Reply to this comment
|
19 February 2010, 12:40 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
nyall
(Web Page)
|
Someone should make a lego robot that types in programs for you
|
Reply to this comment
|
19 February 2010, 15:17 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
DWedit
(Web Page)
|
What good ASM games are small enough to fit on the TI81? I guess there's always IceClimb.
|
Reply to this comment
|
19 February 2010, 19:02 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
Kevin Ouellet
(Web Page)
|
Nice to hear, I can't wait for ROM 1.1K support ^^
|
Reply to this comment
|
19 February 2010, 19:57 GMT
|
|
|
|
|
Re: Re: Unity: TI-81 Assembly Program Loader
|
Benjamin Moody
|
I don't know anything, yet, about ROM 1.1K. More information is always welcome. :)
The trick, as Travis has pointed out, is finding the addresses of ROM routines. Obviously a complete ROM dump would be useful (both for testing programs and for the sake of knowing what's different about each version.) It's not necessarily required, though; the ROM versions are all similar enough that you could, in theory, write small assembly programs to automatically locate each of the ROM routines you're interested in.
I believe critor said that was going to try to get a complete dump of version 1.1K, but if you'd like to help, just send me an email.
|
Reply to this comment
|
21 February 2010, 05:22 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
schoolhacker hacker
(Web Page)
|
This is actually really cool!
I remember that they did the same kind of thing with the TI-85 lol...
i used to love that thing when i didn't get my TI-84 yet... though it only had ram and no rom... so it only has a maximum of 25000 space and every time you reset it or something everything is lost... :(
p.s. I JUST UPLOADED A WHOLE BUNCH OF MY NEW TINYCARZ MAPS!!!
|
Reply to this comment
|
19 February 2010, 21:31 GMT
|
|
|
|
|
Re: Re: Unity: TI-81 Assembly Program Loader
|
Kevin Ouellet
(Web Page)
|
Yeah, the hard part with the 81, though, is that it has no link port, like the 85 had, so everything needs to be typed by hand, abusing the calc OS exploits. On the 85, someone just had to send an hacked backup file from his computer to the 85 and it was done.
As for Tinycarz maps, you remind me I haven't played this in a long while, I should give it another try with your maps
|
Reply to this comment
|
20 February 2010, 03:42 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
critor
(Web Page)
|
Does anyone here still have a TI-81 with one of the unsupported ROM versions?
(except ROM 1.1K - I'm currently dumping it)
Other missing ROM vesions are to my knowledge:
* 1.0 (2 records: 04/1990 - 10/1990)
* 1.1 (1 record: 01/1991)
* 1.5K (1 record: 03/1991)
* 1.6V (1 record: 05/1991)
They are very rare, as they were only available for a few months, and only on the 1st TI-81 hardware (11 records: 04/1990 - 09/1991)
If you still have a TI-81 with one of those ROMs, it is very important to dump the ROM (as it may be the last one in the world), or to contact someone who can dump the ROM.
Else, those systems will be lost forever...
Thank you for helping us.
|
Reply to this comment
|
21 February 2010, 20:55 GMT
|
|
Re: Unity: TI-81 Assembly Program Loader
|
Zeroko
(Web Page)
|
This is awesome!
Regarding supporting other ROM versions: I was planning on making an automatic executable patcher that compared 2 ROMs using something like longest common subsequence modulo address renaming to automatically figure out where the routines were moved once each version was dumped, but I got distracted, & I guess it is unnecessary now.
|
Reply to this comment
|
23 February 2010, 23:18 GMT
|
|
|