Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI 68K => Topic started by: Lionel Debroux on August 13, 2010, 03:14:07 pm

Title: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 13, 2010, 03:14:07 pm
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 :)

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 :)
Contributions are more than welcome. To that effect, I have opened a Git repository on Github, http://github.com/debrouxl/tiosmod
Enjoy ;)

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.]
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: calcdude84se on August 13, 2010, 03:18:50 pm
That sounds nice, and it helps prevent possible copyright issues.
Now for patches for the z80 calcs, one of which I have ;D
Good luck :D
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: TC01 on August 13, 2010, 03:26:38 pm
Yes, this sounds very nice.

Could you also use BrandonW's resign68k program to resign the 68k OS? That's what I used for GTC, and it says it works with AMS upgrades too.
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: calcdude84se on August 13, 2010, 03:30:10 pm
Whenever the z80 version gets going, rabbitsign is used there, and it works very well :)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 14, 2010, 01:56:11 am
Yeah, RabbitSign works well, I named it in the README.
Note that I'm not going to add the TI-Z80 support myself, I'm not a TI-Z80 guy ;)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: TIfanx1999 on August 14, 2010, 08:13:40 am
I'm curious as to the specifics of the patch, could you elaborate a bit on what changes it makes? Im not sure about what protections were in place, and how they could be "fixed". It doesn't surprise either that their were some things that could be optimized, but I am curious as to what. Also, which OS(es) is this for? The old TI-89 and the Ti-92+ appear to have the same OS (2.09) and the TI-89 Titanium and the Voyage 200 appear to have the same OS (3.10).
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on August 14, 2010, 09:23:45 am
Yeah, I dont know what this does, especially sconce  I will be getting a TI-89 sooner or later (or should I get a TI-92?)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 14, 2010, 10:56:43 am
AOC: well, I have listed in the README 1) the protections nullified, 2) the optimizations performed, and 3) the OS versions supported by the program ;)
* protections: RAM execution, Flash execution, artificial limitation of the amount of archive memory, and FlashApp signature checking;
* optimizations: HeapDeref, hard-coding the default fonts in character/string drawing code, and optionally hard-coding the English language in XR_stringPtr;
* OS versions: 2.05, 2.09, 3.01 and 3.10.
Changes are made by patching binary data at select places using other binary data.

qazz42: see what TC01 and I wrote you in another topic, i.e. that by all means, don't get a 92 or 92 II.
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on August 14, 2010, 11:02:10 am
I forget, which topic did you write it in? Or, you can repeat it here ;D


EDIT: I remember now, it isnt allowed on some tests..
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: TC01 on August 14, 2010, 11:23:29 am
I forget, which topic did you write it in? Or, you can repeat it here ;D


EDIT: I remember now, it isnt allowed on some tests..
In my project's topic on this page (http://ourl.ca/64420).

In addition to that, the 92 can't be programmed in C, has less memory, less math capabilities, and less-sophisticated assembly programming.
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on August 14, 2010, 12:17:49 pm
Yes, I remember that now, thanks, I will get a TI-89 then!
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: TIfanx1999 on August 14, 2010, 01:21:12 pm
@Lionel: Thanks for the info. I figured it might be in the readme, but I thought you might not be support Older OSes (I have a normal TI-89) and I wasn't sure if it would be beneficial for me to download or not.
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on August 16, 2010, 08:27:29 pm
Nice idea Lionel. I got a 89T so it could become handy in the future :)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 17, 2010, 02:37:22 am
AFAICT, you can already use it on your real calculator and avoid installing HW3Patch and Flashappy. I'm eating my own dogfood, the 89T I bought a while ago is running an AMS 3.10 modified by the program (and resigned with `rabbitsign -vv -r -k 09.key -o <outfile> <file>`) :)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on August 17, 2010, 11:25:47 am
Oh I just meant right now I am not using my 89T so in the future when I do, I'll most likely try your software
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 22, 2010, 01:26:38 pm
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").
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on August 22, 2010, 03:15:35 pm
great! Was the limitation 64 KB executable code, btw?
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 22, 2010, 03:26:54 pm
It all depends on the AMS version :)
* no limitation of executable size on AMS 1.xx;
* 8K on AMS 2.03 (and IIRC the uncommon, buggier 2.01 and 2.02 as well).
* 24K on AMS 2.04-2.09;
* no limitation on AMS 3.xx (well, technically, they left a check that passes if the value of the register is <= 0x10000 bytes, but due to the way the value is built, it can't be > 0xFFFF anyway - yes, this is stupid code in the tradition of TI :D).

So far, among AMS 2.xx, the patcher supports only 2.05 and 2.09, because these are the most feature-complete and most stable versions of their series:
* the AMS 2.03 code to recover archive memory upon reset is buggy and can erase files;
* AMS 2.04 contains a crasher bug, fairly easily to trigger in normal usage, in the Text Editor.
That said, if someone else wants to add support for the other versions of lesser interest, go ahead.
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on August 22, 2010, 03:30:18 pm
WOAH! 8 KB on some AMS?? I would never have expected it to be this low, considering it's a TI-89. On the 83+ the executable code limit is actually 8 KB, except for Flash apps (the reason why almost everyone uses Flash APPS in ASM programming now). Well it's nice it's gonna get removed now. :)
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on August 23, 2010, 12:24:03 am
Yeah, it's removed so that users don't have to install additional software to disable the size limitation and the Invalid Program Reference error (although users still probably want to do so, because most programs with the ability to catch and ignore those artificially-created errors have other features not tackled by the patcher, such as better crash protection with KerNO and PreOS or the expanded feature set of PreOS).
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 14, 2010, 02:36:16 am
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 :)

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).
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 14, 2010, 03:36:42 am
did they wasted an entire sector for 322 bytes???
Title: Re: TIOSFIX: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 14, 2010, 03:52:11 am
Yes, they did, for even less than that :)
Something between 96 and 100 bytes (can't check precisely at the moment) on AMS 2.08, and about 800 bytes on AMS 2.09. One could think that this was done on purpose, to promote buying the newer models with twice the amount of Flash memory, the V200 and later the 89T. Needless to say, the silliest pessimizations of their crappy toolchain (between others, double and triple swaps) waste more than 1 KB.

322 bytes is the amount of data that can safely be blindly moved from the end of AMS without caring beyond updating absolute references, because this data is exclusively made of bitmaps. Before these bitmaps are stored multiple menus and dialogs, some of which need to be moved as well to shrink AMS 2.09 by ~500 additional bytes. Menus and dialogs require more checking than the bitmaps did, though they ought to be self-contained as well.
As I wrote in the readme, "my" (Romain's) S-0703F 89 HW2 is now running the shrunk, unlocked AMS 2.08... and the MEM screen shows "Flash ROM free 720876" (of which 64K are, in fact, not available to the user, as shown by the output of getConfg()), just as it does for a fresh AMS 2.03 or 2.05.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 14, 2010, 04:08:37 am
Damnit Texas Instruments...
 

Anyway nice work on that stuff.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 14, 2010, 03:31:35 pm
I've just uploaded a new version, which shrinks AMS 2.09 for 89 as well :)
WARNING WARNING WARNING: only lightly tested - I'll go to bed now, that's why ;)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 14, 2010, 04:02:12 pm
Ok. Well I got OS 3.10 or 3.01 I think, or something like that, so I wouldn't be able to test x.x
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 15, 2010, 02:49:58 am
Well, you can always test the modifications to those OS versions on your Titanium. But indeed, not AMS 2.09, which doesn't support the new hardware in HW3/HW4 models (so booting 2.09 on a 89T may leave the calculator in an improper state).
The calculator would refuse 89 OS anyway, unless someone makes the extra step of signing them with the 89T OS key, or installs them "forcefully" (TIB-Receiver if it works on HW3/HW4, or FreeFlash).
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 15, 2010, 06:44:38 am
can someone compile this for me? I am having troubles doing so

thxs in advance
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 15, 2010, 06:55:20 am
Well, what about using the pre-made binary diffs ? ;)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 15, 2010, 02:44:29 pm
wha? I am confused, all I see are a bunch of files that I cant execute

help..
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 15, 2010, 03:19:37 pm
Indeed, there are no executables for any platforms. However, there are two things that you can use (well, especially the second one):
* the source code, but you need to figure out how to compile it yourself;
* the binary diffs explicitly mentioned in the README along with the software that applies them ("now distributing binary diffs suitable for xdelta 1.x, xdelta 3.x and bsdiff").


I have now created the Git repository for tiosmod, at http://github.com/debrouxl/tiosmod . But I haven't tested the shrinking of AMS 2.09 for 89 more thoroughly, and won't have time do so tonight.


[EDIT 20100916: I have now transferred the shrunk AMS 2.09 to my testing calculator, and certain operations in the Graph screen don't yield the appropriate result, or even corrupt memory and destabilize the calculator. Don't use the shrunk AMS 2.09 until it is fixed !]
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 16, 2010, 02:54:57 pm
Uploaded v0.2.3a, which mainly fixes the bug mentioned in the edit of the previous post. Upgrading is strongly advised :)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 16, 2010, 04:49:12 pm
Nice :D
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 16, 2010, 09:45:06 pm
Well, what about using the pre-made binary diffs ? ;)

what do you mean by that?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 17, 2010, 01:46:41 am
From the updated README:
Quote
Users just interested in testing patchsets should use the binary diffs with the program whose name is indicated by the binary diff's extension.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 17, 2010, 01:48:36 am
Yeah but I think he wants to know what is a binary diff. He is not tech-savy on that stuff (read: he is used to just double-clicking an executable and fill forms)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 17, 2010, 02:14:31 am
Quote
Yeah but I think he wants to know what is a binary diff.
Well, free online information sources such as http://en.wikipedia.org/wiki/Diff give much more information than one needs to know for the specific purpose of patching TI-68k OS :)

Quote
(read: he is used to just double-clicking an executable and fill forms)
If someone made graphical frontends to the binary patching (the reverse operation of diffing) programs that can work with the binary diffs I provided, he can do that :)
If no such frontends exist, well, using the command line is a good occasion of increasing one's computer skills. Many people think that the command line is a complicated piece of evil coming from the past... their loss, because the command line can be a way to save time: some operations are faster when done through the command line, and automation is easier than that of GUIs.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 17, 2010, 02:32:10 am
Yeah but having to type everything by hand, or remembering how to write a batch file (the syntax) everytime can take a considerable amount of time. On the other hand, I saw GUI-based programs that are harder to figure out than their command line counterparts. The issue is that some Linux fanboys assume everyone in the world has an IQ of 9000 and will figure out stuff as easily and as fast as them, so they don't bother about useability and user-friendliness.

I hope someone writes a GUI for that, but again I think he should probably wait until it's completly finished or receive less updates.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 17, 2010, 02:46:31 am
A Qt GUI has been written for the TNOC program, which shrinks Nspire OS upgrades by removing the boot2 update (superfluous once the calculator's boot2 has been upgraded to 1.4.x) and samples from them.
But the patcher + patchset program we're talking about in this topic is of a different kind: it performs modifications that TI actively objects to: nullifying the protections they added, or even shrinking the OS (they could easily have done that themselves, but they probably chose not to, as a way to promote buying V200 and 89T). As such, the patcher + patchset is not going to be distributed in binary form (at least, by the original authors - if other people want to risk legal action from TI on their hosting provider, go ahead), and neither would be a GUI for the patcher + patchset. Binary diffs that users get to apply themselves on the one side, and source code that users get to compile themselves on the other side, are about as far as we can go (and it's not even sure we should distribute both together - to that effect, I have put the binary diffs in their own ZIP, so that it can be easily extracted).

TI could not, however, attack a GUI program for any of the three generic binary patcher programs that can be used to apply the binary diffs resulting of diffing between TI's official version and the patched version as created by the patcher + patchset posted in this topic. But maybe one already exists anyway.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 17, 2010, 02:47:45 am
Ah I see why. I guess it's better to be careful as well, especially with them x.x
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 17, 2010, 03:03:27 pm
Yeah but I think he wants to know what is a binary diff. He is not tech-savy on that stuff (read: he is used to just double-clicking an executable and fill forms)

D: LIES!

Anywho, I still dont understand how to apply the diffs
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 17, 2010, 03:56:45 pm
Have you found the project's pages (hint: first or second search result in both Google and Yahoo!...), and have you either looked at the documentation (I found the appropriate usage example for xdelta3 in one click) or just tried to run the patcher programs without arguments, which prints their usage help ?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 22, 2010, 03:11:32 am
Uploaded v0.2.3b, which replaces one of AMS' traps (~software interrupts) by something useful, in order to fix a glaring bug in AMS: this trap is wired to a normal function, accessible through other means, which has a calling & returning convention for normal functions - but traps are no normal functions...

Even if the difference in calling convention can be overcome by writing the arguments to an exceedingly strange place (with the default value of the supervisor stack pointer, inside the display memory :D), the difference in returning convention cannot be overcome by normal means (perhaps with the Tracing bit, but I'm not sure that this bit, which I've never used, survives the switch into supervisor mode performed by the trap), and the calculator will crash upon returning from the function... To sum up, the trap #3 in AMS is just plain unusable.

The replacement for TI's buggy trap #3 is the one that has been provided for many years by UniOS and PreOS: a HeapDeref (given a HANDLE, return the absolute address of the corresponding block of memory) with proper calling & returning convention.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 22, 2010, 11:10:25 am
I am a bit confused at what traps means x.x. Do you really mean they are interrupts? Seems like some stuff is named differently on 68k calcs if it's the case (shell->kernel, TI-OS->AMS, etc)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 22, 2010, 11:25:09 am
traps are the 68000's software interrupts. There are 16 traps, about half of them being unused by AMS.
On TI-68k calculators, the hardware interrupts are usually called "auto-ints", but they're hardware interrupts.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 22, 2010, 11:47:04 am
Ah ok. Thanks for the info. I wish they kept naming consistent accross platforms/languages/softwares x.x
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 25, 2010, 11:08:38 am
New version, http://tict.ticalc.org/beta/tiosmod-0.2.4.zip .
* fixed a very old bug, documented in http://www.technicalc.org/buglist/bugs.pdf , in contrast handling: destruction of the value contained in two processor registers, d3 et d4, which shouldn't be destroyed. This is unlikely to change anything for anybody, since the bug has been worked around in TIGCC, and therefore GCC4TI, for years.
* AMS 2.08 for 92+ and V200 are now supported, after testing.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: TC01 on September 25, 2010, 11:15:26 am
Nice work so far (as always).

Are there bugs in the Titanium AMS versions (3.x) as well that this program could eventually solve?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 25, 2010, 11:27:38 am
Quote
Nice work so far (as always).
Thanks ;)

The OSContrastUp/Dn routines destroying d3-d4 affects all AMS versions supported by this patcher+patchset, and others in-between (perhaps _all_ known AMS versions, I haven't checked what AMS 1.00 does).
A more direct answer to your question: patching several other bugs is (probably) possible, but most of the bugs in the list (especially those of the CAS) are very hard to patch, because we don't have a complete understanding of what AMS does.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 25, 2010, 12:30:46 pm
ok, I got everything set up

now, what is the correct syntax of what I should put in the command prompt?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 25, 2010, 12:43:53 pm
It totally depends on which tool you want to use, and which AMS version you want to patch ;)

Code: [Select]
bsdiff -h
bsdiff: usage: bsdiff oldfile newfile patchfile

Code: [Select]
xdelta -h
xdelta: usage: xdelta COMMAND [OPTIONS] [ARG1 ...]
xdelta: COMMAND is one of:
xdelta:   delta     Produce a delta from ARG1 to ARG2 producing ARG3
xdelta:   info      List details about delta ARG1
xdelta:   patch     Apply patch ARG1 using file ARG2 producing ARG3
xdelta: OPTIONS are:
xdelta:   -v, --version      Print version information
xdelta:   -V, --verbose      Print verbose error messages
xdelta:   -h, --help         Print this summary
xdelta:   -n, --noverify     Disable automatic MD5 verification
xdelta:   -p, --pristine     Disable automatic GZIP decompression
xdelta:   -m, --maxmem=SIZE  Set the buffer size limit, e.g. 640K, 16M
xdelta:   -[0-9]             ZLIB compress level: 0=none, 1=fast, 6=default, 9=best
xdelta:   -s=BLOCK_SIZE      Sets block size (power of 2), minimum match length
xdelta:                      In-core memory requirement is (FROM_LEN * 8) / BLOCK_SIZE

Code: [Select]
xdelta3 -h
Xdelta version 3.0s, Copyright (C) 2007, Joshua MacDonald
Xdelta comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see "COPYING" for details.
usage: xdelta3 [command/options] [input [output]]
special command names:
    config      prints xdelta3 configuration
    decode      decompress the input
    encode      compress the input
    test        run the builtin tests
special commands for VCDIFF inputs:
    printdelta  print information about the entire delta
    printhdr    print information about the first window
    printhdrs   print information about all windows
    recode      encode with new application/secondary settings
standard options:
   -0 .. -9     compression level
   -c           use stdout
   -d           decompress
   -e           compress
   -f           force overwrite
   -h           show help
   -q           be quiet
   -v           be verbose (max 2)
   -V           show version
memory options:
   -B bytes     source window size
   -W bytes     input window size
   -P size      compression duplicates window
   -I size      instruction buffer size (0 = unlimited)
compression options:
   -s source    source file to copy from (if any)
   -S [djw|fgk] enable/disable secondary compression
   -N           disable small string-matching compression
   -D           disable external decompression (encode/decode)
   -R           disable external recompression (decode)
   -n           disable checksum (encode/decode)
   -C           soft config (encode, undocumented)
   -A [apphead] disable/provide application header (encode)
   -J           disable output (check/compute only)
   -T           use alternate code table (test)
the XDELTA environment variable may contain extra args:
   XDELTA="-s source-x.y.tar.gz" \
   tar --use-compress-program=xdelta3 \
       -cf target-x.z.tar.gz.vcdiff target-x.y/
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 25, 2010, 12:58:02 pm
ok, I am using xdelta and the OS is 3.10 I think

what would I have to put in the cmd for that?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: calcdude84se on September 25, 2010, 01:10:33 pm
Code: [Select]
xdelta patch os.89u patch.xdelta patchedos.89uwhere os.89u is the original OS file, patch.xdelta is the delta file, and patchedos.89u is what you want the patched OS to be named.
Edit: This is what I understand by reading the docs posted a couple up. Lionel will have to make sure I'm correct.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 25, 2010, 02:02:39 pm
* fixed a very old bug, documented in http://www.technicalc.org/buglist/bugs.pdf , in contrast handling: destruction of the value contained in two processor registers, d3 et d4, which shouldn't be destroyed. This is unlikely to change anything for anybody, since the bug has been worked around in TIGCC, and therefore GCC4TI, for years.
Wow, I didn't know that domain name was still active. I am amazed it has been around for this long because generally those smaller sites get shut down after a few years.

Nice update!
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 25, 2010, 02:30:19 pm
err, wait, I am using xdelta3..
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 26, 2010, 04:45:31 am
Nine days ago, at http://ourl.ca/6666/118616 , I asked:
Quote
and have you either looked at the documentation (I found the appropriate usage example for xdelta3 in one click) [snip]
Clearly, you haven't... so let's outline the steps for you:
* one click to go to the http://xdelta.org/ page, after finding it as one of the top results in either Google or Yahoo!;
* one click on the "Documentation" link brings you to http://code.google.com/p/xdelta/w/list ;
* one click to go to the page named, guess what, "CommandLineSyntax", which contains usage examples and also links to a script that provides command-line compatibility with xdelta 1 for xdelta 3.
Voilà, you know the general form of xdelta invocations, and you can adapt it to your own needs :)


I can understand that you're much younger than I am, and inexperienced at using the command line. But you're very probably not so stupid as not to be able to perform simple searches and follow several links on the Internet, and imitate simple, ready-made instructions, by adapting them to your needs (a matter of replacing a couple filenames by the ones you're using) - just like calcdude84 did.
IOW, you behave as if you're just lazy - and you know, people who try to help, tend not to appreciate their time (all of us are volunteers coming here on our free time) being wasted when the people they're trying to help fail multiple times at using the simple suggestions they receive... ;)
On most message boards or mailing lists I know of, you'd already have received negative comments more negative than mine - and received them sooner than you did here...
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 26, 2010, 05:01:47 am
Well you have to understand there are things, especially when it comes to such softwares, that are harder to understand for some people than they are for others. An example is when I tried using IRSSI for Windows, I never got to understand the many documentation site/files I could find, simply because the way it was explained was simply too cryptic for me. Eventually, I simply had someone else explaining it to me in a different way and I eventually got the hang of it. I was lucky, though, that someone could explain it in a different way (more visual).

Not everyone is like you. Everyone is different. That said, it might be good, if he did not already, if he did some searching on how to do what he wants to do. However, sometimes, there is a point where some people still won't understand the information they found in help files, so if he DID do his search, it's inevitable he will ask questions.

On Omni we're open towards people who are new to something (including forums) so we won't tolerate negative comments like JFGI or name calling (it can lead to a ban after warnings, although sometimes there's so much posts that such comments might go unnoticed by admins).

That said, qazz it might be good if you posted what you do not understand in the links Lionel provided, if you did check them, so it won't look like you did not search, either. While being rude to someone new to something is not tolerated here, if someone has been around for a while and still won't do efforts to help himself, I understand that some people may be annoyed. I know myself that I got annoyed at one other member here in particular in the past, as he kept asking me the same question every day.

And I hope that the fact I have troubles with such type of softwares implies to you that I am stupid x.x
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on September 26, 2010, 05:44:22 am
Just to make sure we're on the same track: I know that everyone is different, and that Omnimaga is more tolerant than other message boards I know of :)
This is precisely why I've been patient until now, and why even now, I've not made any especially sharp remark against qazz.

Quote
That said, qazz it might be good if you posted what you do not understand in the links Lionel provided, if you did check them, so it won't look like you did not search, either.
Indeed. Because it really starts to look like (well, to me, at least) that he has put hardly any effort into searching or trying to adapt things, if at all.
It's still possible that he hasn't understood something, as you wrote. That said, from my experience on yAronet and TI-Bank, most people, when they don't understand something, tend to tell about it earlier than several rounds in a discussion.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 26, 2010, 05:53:55 am
Yeah I agree with you. At one point we need to make sure the person is really doing an effort. Hopefully he can figure out or tell us what he doesn't get.

And I did not notice any rudeness in your post, so don't worry :)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 26, 2010, 10:06:23 am
actually, to counter your point, yes, I have tried all different combos of input into the cmd

most of the time, it would crash

another time, I ended up making the OS, just for it to crash my calc (actually, this was the attempt where I got fustrated at xdelta and just typed in "xdelta myos.89u patchedos.89u")

and the other 98% It was just errors...

(all these failed attempts were what I tried to do after reading the documentation)

dont think I am not doing my part in reading the readmes and such...
I am, but I am having troubles understanding what I need to put in the cmd (hell, it was like this with rabbitsign...).

sigh, I will try xdelta3.exe -d -s   old_file   delta_file   decoded_new_file  again.

Yess. it worked! I think the problem here is that I was using the wrong delta file when I put it in the first few times

thanks for being patent with me.. though I feel I dont deserve it

sry to cause you any anger on make you upset :(
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on September 26, 2010, 01:39:22 pm
Don't worry too much about it. The trick is to make sure to check the instructions, then if it fails, feel free to ask help by providing info on what you don't understand and what is wrong.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: qazz42 on September 26, 2010, 02:17:47 pm
:(
 yeah, I should have said what I was doing, and then ask what is wrong instead of just screaming "WHAT DO I DOO? AHH?"

once again, I apologize for angring you Lionel
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on October 17, 2010, 09:37:19 am
New version, which hopefully disables the Flash memory execution protection on HW1 as well, and adds back OSVRegister/OSVFreeTimer + supporting code in the reset code and in the interrupt handler, i.e. the vectored timers removed by TI in AMS 2.04. These vectored timers were reimplemented independently of AMS by Zeljko Juric in the TIGCC (and therefore GCC4TI) library.

As usual, and though the OS is successfully running tests of the new functionality on one of my physical calculators, use the patcher+patchset or binary diffs at your own risk :)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on October 17, 2010, 02:55:31 pm
Nice update :D
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: TravisE on October 17, 2010, 03:08:42 pm
Whoops, I totally forgot about this topic. Very nice updates. I'm definitely going to want to remember to try this out at some point. :)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: critor on October 17, 2010, 03:34:12 pm
Me too. ;)
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on October 18, 2010, 01:04:03 am
Thanks :)
The program has now been uploaded to ticalc, as a *nix utility. For Windows compatibility, it just requires the Windows equivalent of the "truncate" function to be used.

Spoiler For Spoiler:
So far, only one person in the entire community has posted negative things: Kevin Kofler, of course, in the topic on yAronet I didn't create myself precisely because I know that he would pollute it, in a way or another. And sure enough, he did: "Je suis content de voir que pour une fois, tu fais du travail utile…" means "I'm happy to see that for once, you're doing useful work".
I was expecting the reverse pollution ("when will have you finished to do useless work ?"), but this one is even more blatantly stupid than the reverse kind: all the bugfixing and testing work that he isn't doing himself, because he is both unwilling to spend time and get equipment (since his behaviour against Romain precluded him from getting his hands on Romain's collection), on GCC4TI, libti*/gfm/tilp and tiemu is useless, right ?
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on October 18, 2010, 01:09:23 am
I wish we had the same spoilers as on yAronet. They're cooler :P. And yeah I saw there. Anyway I saw on ticalc and I wonder if it will get featured since it's to mod the OS :D
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on October 24, 2010, 09:02:12 am
New version, http://tict.ticalc.org/beta/tiosmod-0.2.6.zip and, after the next update, on ticalc.org ( http://www.ticalc.org/archives/files/fileinfo/431/43198.html ) as well.
* fixes bugs in the patcher/patchset;
* adds Windows compatibility: the functions the patcher needs do exist in msvcrt, it's just that they have different names;
* adds the fix for another AMS bug, fixed by HW3Patch, namely the one that can occur when changing batteries.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on October 24, 2010, 09:06:12 pm
I am kinda disappointed that this did not get a feature at ticalc.org when those AMS extenders posted a few months ago did. Don't get me wrong, those were awesome but this is extremly great as well. Is it because it has dangerous bugs still? Because I feel this deserves a feature.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: TravisE on October 24, 2010, 09:58:21 pm
I've gotten pretty busy lately and have been having some trouble keeping up with a lot of things, even with processing pending files which normally isn't a problem (plus there's been a sudden increase in submitted files lately), but I expect to be able to make more headway eventually within a few days. You guys just have to be patient with me and give me a chance to test, research, write about, and format these things for posting—it can be quite time-consuming. I'll make a best effort to try to have the rest of my pending feature queue flushed out in time for POTY voting.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: Lionel Debroux on October 25, 2010, 12:53:12 am
No problem :)

Should tiosmod+amspatch be selected for POTY, both the *nix utilities (e.g. titools) and the Windows utilities categories certainly have better POTY candidates anyway.
Title: Re: TIOSMOD: a computer-based patcher for TI-68k OS (for now)...
Post by: DJ Omnimaga on October 25, 2010, 01:39:58 am
I've gotten pretty busy lately and have been having some trouble keeping up with a lot of things, even with processing pending files which normally isn't a problem (plus there's been a sudden increase in submitted files lately), but I expect to be able to make more headway eventually within a few days. You guys just have to be patient with me and give me a chance to test, research, write about, and format these things for posting—it can be quite time-consuming. I'll make a best effort to try to have the rest of my pending feature queue flushed out in time for POTY voting.
Aaah ok I wasn't sure, I thought those OS patchers were missed or something x.x, which can happen though. And yeah I noticed the suddent increase in file submissions lately. I hope you have more free time soon. X.x