Well, I had this crazy idea; or another one at any rate:
On MAC OSX they have a Time Machine, which basically backs up your harddrive every few days or so, and whenever you want, you can go in and restore your data from one of these backups. I was thinking, while these wouldn't persist through full resets, how hard would it be to create an App or something that every like, seven days, it backed up everything, programs, graphscreen, window, Y=, functions, strings, AppVars, Pics, GDBs, matrices, lists, etc. both archived and unarchived, to a group? You would prefix the group with a special character so it wouldn't appear in the group list. That way, if your calc got RAM cleared, you could go into the Time Machine App and select a backup to restore from! Everything would be put back exactly where it came from, so the calculator would be in the exact same condition that it was before. If there were major variables (programs, lists other than L1 through L6 AppVars, Pics, etc.) that had the same name it would ask before overwriting, so you don't clear anything important.
Backing up at a specific time is actually kind of difficult as far as I know, but after thinking for awhile, I came up with an idea. You install the program as a parser hook. Every time the user does anything from the homescreen, the program first checks to see whether or not it is time for a backup. It displays whatever to the homescreen, then installs a temporary keyhook. As soon as the user hits the keys to turn the calculator off, it turns off the LCD and backs up everything.
Now there are some issues with this. Number one is that this is likely to take up a lot of archive space, very fast. Now, in the case of the TI-84 SE, this isn't a problem since it has an enormous amount of archive space, but for everyone else this could be an issue. So, here's what you do. In the App, you can set how many backups you want to keep. Like three, and then, when the App creates a new backup, it deletes the oldest one and writes a new one, kind of like the stack XD Another problem is that not all calculators have a very good idea of when seven days pass by. Therefore, you have to use a different parser hook. This one counts how many times a user runs anything from the homescreen. As soon as the user does something like, 50 executions from the homescreen, the keyhook is installed.
I think I've addressed most of the problems creating such a program like this, except for one. I can't program assembly, and definitely not an App. Anyone, Xeda, Silver Phantom, etc. want to take this on?