Over the past few months, in an intermittent manner, I've started scratching an old itch of mine: patching TI's OS for TI-68k in an automated way, in order to optimize several sore performance spots that have bugged me for at least six years... and while at it, killing the silly protections laid out by TI, and why not fixing their bugs as well.
I discussed about the idea and program privately with several persons, one of whom (BrandonW) suggested to go up one level in genericity: split the patcher application and the patches themselves (written in a scripting-type language). The direction is clearly good, but I haven't reached such levels of abstraction yet, although I have tried to make a set of primitive functions generic enough to be usable for both TI-68k OS and TI-Z80 OS Smile

So here's a patcher, which kills several protections, optimizes a bit several sore performance spots of the official TI-68k OS, fixes some bugs - and shrinks two versions so as to provide users 64 KB of additional archive memory (which older versions used to provide).
The latest version can currently be downloaded from http://tict.ticalc.org/beta/tiosmod-0.2.6.zip .


As noted above, the program is by no means a finished product, it's a seed for going further. The todo/wish list proves it. There's a lot that we could collectively do, in order to gain further power on calculator lines that are mostly, or totally, abandoned by the manufacturer - and help our fellow users Smile
Contributions are more than welcome. To that effect, I have opened a Git repository on Github, http://github.com/debrouxl/tiosmod
Enjoy Wink

Older versions, for historical purposes: http://tict.ticalc.org/beta/amsopt-0.1.zip , http://tict.ticalc.org/beta/tiosfix-0.2.zip , http://tict.ticalc.org/beta/tiosfix-0.2.1.zip , http://tict.ticalc.org/beta/tiosmod-0.2.2.zip , http://tict.ticalc.org/beta/tiosmod-0.2.3.zip , http://tict.ticalc.org/beta/tiosmod-0.2.3a.zip , http://tict.ticalc.org/beta/tiosmod-0.2.3b.zip , http://tict.ticalc.org/beta/tiosmod-0.2.4.zip , http://tict.ticalc.org/beta/tiosmod-0.2.5.zip.

[EDIT 20100822: posting a new version.]
[EDITs 20100914: posting two new versions.]
[EDITs 20100916: adding the Github repository information; posting a new version.]
[EDITs 20100922, 20100925, 20101017, 20101024: posting a new version.]
Congrats, Lionel, this looks great. I look forward to seeing how it progresses, and if I get a chance I might want to make some contributions.
Thanks Wink
Well, the program isn't going to progress on the TI-Z80 front if nobody contributes improvements. But I know that pretty much everybody in the TI-Z80 community is currently busy hacking on/with DoorsCS and Axe, which is a good thing as well Smile
Lionel Debroux wrote:
Thanks Wink
Well, the program isn't going to progress on the TI-Z80 front if nobody contributes improvements. But I know that pretty much everybody in the TI-Z80 community is currently busy hacking on/with DoorsCS and Axe, which is a good thing as well Smile
Indeed, but that will start changing come the beginning of September, so hopefully people will have a little more free time for more diverse z80 projects.
New version, which has gained the ability to kick out the artificial limitation of the size of ASM programs, and the artificial limitation against using ASM programs in expressions ("Invalid Program Reference").
Lionel Debroux wrote:
New version, which has gained the ability to kick out the artificial limitation of the size of ASM programs, and the artificial limitation against using ASM programs in expressions ("Invalid Program Reference").
On the 68k calculators, you mean. You just edited the first post to say you released another new version; what does that add?
The new version only adds the two capabilities I mentioned in my previous post (the one I created today).
It does not add anything significant towards TI-Z80 OS support (even if I have looked with a hex editor at TI-Z80 OS upgrades, and added "AMS" to the name of more functions), hence the small increase in version number Smile
Lionel Debroux wrote:
The new version only adds the two capabilities I mentioned in my previous post (the one I created today).
It does not add anything significant towards TI-Z80 OS support (even if I have looked with a hex editor at TI-Z80 OS upgrades, and added "AMS" to the name of more functions), hence the small increase in version number Smile
Haha, that makes sense. At some point you and BrandonW at least, and hopefully the rest of us on IRC, should discuss what exactly would need to be provided for z80 OS patches to be feasible.
New version, v0.2.2, today.
Since v0.2.1, besides a couple non-functional changes (renaming the program again and splitting it into two parts), the program gained the experimental ability to shrink AMS 2.08 for 89, so as to gain back the archive memory sector (64 KB) that this version robbed from users. This capability is implemented by moving 322 bytes of data from the end of the OS to a large (~20 KB) unused area at the beginning of the OS Smile

The ZIP now contains binary patches that can be applied directly with xdelta 1.x, xdelta 3.x or bsdiff. These patches have been created with all optimizations turned on, including the hard-coding of the English language, which prevents language localizations from working properly (not that most readers here care, and besides, many in non-English-speaking countries don't use them because they create incompatibilities in TI-BASIC programs).
Optimizing the drawing of the small font + hard-coding the English language makes e.g. the MODE dialog, made up with localizeable strings drawn with the small font, noticeably faster (I'm comparing two 89 HW2 side by side).
I am a bit comfused, does this mean that I wont need HW3Patch?
Yes, with the patched OS, you will need neither HW3Patch, nor MaxMem/XPand, nor Flashappy, nor IPR, nor any of the ways to nullify the artificial limitation of the size of the ASM programs (but KerNO and PreOS have other features beyond nullifying that limitation).
awsome, cant wait to try it

(now if only it made it so that flash never wears out Razz)
Well, unless you do it on purpose, you'll never wear out your Flash anyway Wink
Flash memory chips are usually specified for 100,000 erase & rewrite cycles. That translates to 100 erase sequences each day (!!) during 1000 days, i.e. a bit less than three days...

[EDIT to add the reply notification by e-mail. On each reply I make here, it keeps dropping, while it does not drop itself on either Omnimaga or TI-Bank - is that natural ?]
What drops exactly, your connection to Cemetech? IT doesn't sound to me like something that should be happening.

Congrats on this released! That's impressive that you got 89 users an extra 64K of archive. Smile
What drops is the reply notification by e-mail. For example, I posted this morning without paying attention to the state of the checkbox, and I did not get a notification of qazz's reply.
Also, on this computer, I can stay logged in across browser session; on the other computer, running the same browser version, I have to log back in each time I restart the browser. I should try clearing my Cemetech cookies.

You'll soon reach 2^15 posts, Kerm Wink
And thank you. Although shrinking AMS 2.08 is not too interesting by itself, it's only a first step towards shrinking the more interesting AMS 2.09.

[EDIT: pfft, stupid me, I used the quick reply box without previewing... so I need to edit the post to re-check the "Notify me when a reply is posted" checkbox.]
That's exceedingly strange; I hope that clearing your cookies does the trick. And yeah, after this post I'll have 3 more until 2^15. Laughing

So what's next on this? What lies on the horizon in terms of 89-based progress, and when is 83/84-based development going to be arriving?
Quote:
What lies on the horizon in terms of 89-based progress

I have written down several ideas in the README, but it's up to the users and future contributors to the program or future patchset developers to define the future Smile

Quote:
when is 83/84-based development going to be arriving?

When someone is contributing it Smile
I need to open this Github repository soon.
errr, I am confused on how to do this x.x

all I see is a .C file and a readme that is confusing
I've just uploaded a new version, which shrinks AMS 2.09 for 89 as well Smile
WARNING WARNING WARNING: only lightly tested - I'm posting a testing version before going to bed Wink
Lionel Debroux wrote:
I've just uploaded a new version, which shrinks AMS 2.09 for 89 as well Smile
WARNING WARNING WARNING: only lightly tested - I'm posting a testing version before going to bed Wink
Congrats, that's epic. I look forward to the tested version when you awaken. Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement