So you crashed your calculator, huh? Now what?

Here's a quick guide on getting those precious programs back.

Step 0: Back up.

Easiest way to keep projects alive is to never lose them in the first place, so BACK UP. Especially if you're coding with Axe or ASM, always, always backup your progress whenever you can.

If you can't back up often for any reason, I highly recommend getting Calcsys on your calculator before anything bad every happens. It will make recovering programs much, much easier. Even if you can back up, it will save you in cases where your backups fail.

Step 1:
DON'T PANIC

Seriously, don't panic. You'll just do random stuff and mess up your calculator more.

Step 2: So what happened?

First, a reality check: Did your calculator really crash, or is the contrast just turned way down? Try pressing 2ND and hold down UP for a few seconds. And if that fixes it, don't worry, it's a pretty common mistake Wink

Now we gotta figured out what happened. How'd you get to this point?

If you got here after pressing 2ND > MEM > 7:Reset...:

It's your own damn fault (which you should probably know by now). Sorry, but once you reset, it's gone.


If your calculator suddenly turned off for no reason at all (usually when you're running a buggy ASM program or app):

Try turning it on again. If it turns on and gives you the "RAM cleared" screen, you're done. Anything you had in RAM at the time (anything without a * next to its name in the Mem Mgmt/Del... menu) is gone, but your calculator (and anything you had in archive) is all right. If you really, really want to recover a program that you've archived before but left in RAM at the time, you can try using the Archive Undeleter to get it back.


If your calculator only flashes and turns off again when you press ON:

Your batteries might have simply run out suddenly. This is especially a problem if you use rechargeable batteries, which don't warn you beforehand with that "Your batteries are low" screen. Replace the batteries and see if your calc still works.

If it still doesn't turn on after you put in new batteries (make sure they're actually new — I once spent fifteen minutes panicking at this point before I realized the "new" batteries were pretty old too Razz), take out all the batteries, including the backup battery (you'll need a screwdriver), wait fifteen minutes, put the batteries back in, and try to turn it on. If it still doesn't turn on, your calculator has really crashed. Read on.



Step 3: Getting your calc to work again

Some info you need to know at this point: When the calculator boots up again after a RAM clear or crash, there are several ways it can start up. Pressing ON by itself is the normal boot. Since your calculator can't do that, you'll need to try other options.

First, test to see if your boot code is still valid:


  1. Take out a battery.
  2. While still holding the battery in your hands, press and hold DEL. Hard.
  3. Insert the battery while you're still holding down DEL.
  4. It should give you a message waiting for an operating system transfer. If not, press ON and see if it appears.


If the message doesn't appear:

Repeat steps 1 through 4 a few more times just to be sure. If the message never appears, something's really wrong with your calculator, and I can't help you, sorry :-\ There are many people who know more about calcs than I do, though ([s]blasphemy![/s]), so ask around.


If the message does appear:

All right, the fact that the message appeared means that your calculator still works, sort of. Press ON to cancel, then press any other key to turn the calc off again. Now try the alternate boot: Hold down CLEAR and press ON. What this does is that it boots up the calculator without parsing the archive. (During normal booting, the calculator searches through the archive and adds all variables it finds to a table called the VAT, but if something went wrong when it searches (for example if some part of the archive is corrupted), you can use the CLEAR+ON boot to skip this step.)

Your calculator should turn on and land you on the (now so reassuring) "RAM cleared" screen. If it does, skip to the step 4 but DON'T DO ANYTHING THAT MODIFIES THE ARCHIVE. In other words, do not:


  • run GarbageCollect
  • archive any variable
  • run a program or app that modifies the archive (such as MirageOS or DoorsCS, which archive appvars containing app info)



If your calculator still doesn't turn on with CLEAR+ON:

Your OS probably got corrupted. Don't worry, it's not as bad as it sounds (look back to step 1 if you're not sure). Try reinstalling it, either from another calculator or from a computer.

If it doesn't work, here are some tips the great Brandon Wilson himself gave me:

BrandonW wrote:
To fix your calculator:

1. Intentionally corrupt your OS. The quick and dirty way would be to use ON+DEL and start an OS transfer, then pull the cable in the middle of the transfer.

2. Once the OS is corrupted, you'll be stuck at the "Waiting...Please install operating system now." screen when turning the calculator on. After turning it on, press [MODE]. It will display "Testing flash" (or "ID FAILED" and then "Testing flash" -- doesn't matter) (note that on a certificate-corrupted calculator, this won't work because it tries to retrieve your calc ID, which will fail on a severely corrupted certificate (same reason why it bricks)).

3. It should keep displaying periods while it erases the entire Flash chip (excepting the certificate and boot code, of course). I can't remember what it displays next, but once it does something new, you can pull a battery.

4. Turn the calculator back on and re-install the OS.

5. Once you're back into the TI-OS, the entire archive should be completely empty. You may also notice that the Mem Mgmt/Del menu indicates more free archive memory than you're supposed to have. This is because of a bug in the boot code self test (it didn't mark one of the Flash sectors as a swap sector). Do a full memory erase from the MEM RESET menu and I think that should take care of it.

6. Restore any programs or applications back to your calculator.



Step 4: Getting everything working

If you're here, it means you've turned your calculator on by CLEAR+ON. Now you've got to ask yourself this question: What to you want to recover?

If you don't really care:

Recovering variables can take a lot of work, and if you'd rather just redo it (which is much easier in most cases), just press 2ND+[MEM], select 7:Reset…, press LEFT (to ALL), select 1:All Memory, and select 2:Reset. When the "Mem cleared" message comes (this can take a few seconds), your calculator should be completely back to normal. You're done Smile


If you want the stuff in RAM:

Sorry to tell you this, but it's gone Sad But if you've archived that variable at least once since your last GarbageCollect, there's hope you can recover the last version that you archived. Look in "If you want the stuff in the archive" for more information.


If you want the stuff in the archive:

First a warning: Recovering things from the archive can take a lot of work. And then you have to remember that your archive is definitely corrupted in some way (but depending on how you got the crash, chances may be good it's just a tiny, tiny portion and won't affect anything). If what you want to recover is something you can recode easily, you might as well do that. In that case, look up to "If you don't really care" for final instructions.

First off: Do you have Calcsys already on your calculator? If so, go on to step 5. If not, go to step 6.



Step 5: Recovering with Calcsys

Calcsys is a very powerful tool, especially in dealing with the calculator's memory directly. Some of its features can be used to help recover programs, and here's one way to do it (for programs and groups).

First, take the name of the program and group you want to recover and convert it to hex code. To do this, find each letter in this table and record its column and row. For example, a program named HELLO would be 48454C4C4F. Write down the hex code for later reference.

Now start up Calcsys and go into 5. Console. It should give you a blank prompt that looks like a homescreen. Type "SEARCH " followed by the hex string you just found and press ENTER. (For that HELLO program above, this would be "SEARCH 48454C4C4F.") In a second or so, it should give you an answer in the form ####,## where the #s are hex digits (digits or letters from A to F). If it give you "Search Complete" instead, that means the variable you're trying to find isn't in the archive, and you can't recover it :-\ Otherwise, write the result down. Then press ENTER to see the next result and write it down. Keep doing this until it gives you "Search Complete" and returns to the prompt.



The list of numbers you just wrote down are a list of memory addresses. The two #s after the comma are the page number where it found that instance of the program's name, and the four #s before the comma point to the exact spot of memory on that page (between $4000 and $7FFF). Both numbers are in hex, and don't worry if you don't understand it Smile

Now look through the list and find the entry with the largest page number. If there are several with the same number, look for the entry with the largest address number. Circle it.

Now type QUIT to go back to the main menu.

Now select 1. Hex Editor. It should greet you with a page full of hex digits and characters. If you've never seen anything of the sort before, don't worry, it's not that confusing once you get used to it.



Press ALPHA+[R]. It should prompt you for a page number. Type the two digits after the comma in the entry you just circled. What you just did is a page switch: Calcsys will now display the memory from that page of flash.



Now press ALPHA+[G]. When it prompts you, type the four digits before the comma in the entry you circled. You should probably understand what this does Wink

See if the characters (starting on the second row) spell out the name of the program or group you're trying to recover. If it doesn't, you probably typed the page or address number wrong, so just try again.



Now press LEFT twice and UP twice.



Write down the four hex digits at the very top left of the screen and write it down. Then draw a box around it for reference.

Then press 2ND+[QUIT] to return to the home screen.

If you're recovering a program:

Create a program with the exact name as the one you're trying to recover. It doesn't matter what you put in it, so just leave the program blank. All that matters is that the program has to exist when you do the next step.

Now go back into Calcsys. This time, select 6. More, 1. VAT, then 1. Prog/List VAT. If the program's not listed on the screen, press 6. Next until it is.



Select the program. It should give you a page of information about it.



Press ALPHA+[V]. You should be back in the hex editor, but at a very specific spot in memory: the VAT entry of the program.

Press LEFT five times. The first byte displayed should be "00." Press ENTER to edit it. When it prompts you, type the page number of the entry you circled earlier.

Press RIGHT once, then press ENTER. Type the first two digits of the address you box'd earlier, not the one you circled.

Press RIGHT again, and then ENTER. Type the last two digits of the address you box'd.

Press 2ND+[QUIT] to return to the home screen. Go into 2ND+[MEM] > 2:Mem Mgmt/Del…. The program should be archived now. Unarchive it.

It should be exactly the same as the way it was before your calculator got corrupted. Magic! Surprised

If it glitches, that means the program itself is corrupted. Sorry to tell you this, but you can't get it back :-\



If you're recovering a group:

Create a group with the exact name as the one you're trying to recover. It doesn't matter what you put in it, so just select L1 and L2 or something. All that matters is that the group has to exist when you do the next step.

Now go back into Calcsys. This time, select 6. More, 1. VAT, then 1. Prog/List VAT. If the group's not listed on the screen, press 6. Next until it is.



Select the group. It should give you a page of information about it.



Press ALPHA+[V]. You should be back in the hex editor, but at a very specific spot in memory: the VAT entry of the group.

Press LEFT five times. Press ENTER to edit the byte displayed. When it prompts you, type the page number of the entry you circled earlier.

Press RIGHT once, then press ENTER. Type the first two digits of the address you box'd earlier, not the one you circled.

Press RIGHT again, and then ENTER. Type the last two digits of the address you box'd.

Press 2ND+[QUIT] to return to the home screen. Go into 2ND+[MEM] > 8:Group…, then press RIGHT (to UNGROUP). Ungroup the group.

The vars ungrouped should be exactly the same as they were before your calculator got corrupted. Magic! Surprised

If it glitches, that means the group itself is corrupted. Sorry to tell you this, but you can't get it back :-\


Now that you got your program/group back, send it to another calculator or computer IMMEDIATELY. Then look up to "If you don't really care" under step 4 for final instructions. Enjoy!


Step 6: Recovering without Calcsys

If you have TiLP installed:

If you have TiLP II already installed, use it to dump your ROM. I've never used TiLP before, so I can't give you any help on this step, sorry. Then skip to step 7.

If you don't have TiLP, don't worry about installing it. It's not needed to dump your ROM; it just has a nice feature that makes it a lot easier.

Download this program (thanks to calcdude84se for making it) and send it to your calc. Make sure you send it to RAM!


If it doesn't send correctly for any reason:

Create a new program, name it "DUMPPAGE," and type the following EXACTLY into it:

:AsmPrgm
:210F40EFFD42300A
:21599EEF0A45EF2E
:45C9DB06F5EF4645
:EF584521689EEF0A
:45EF2E45CDEB9D87
:878787F5CDEB9DC1
:80F52A188522569E
:21519EEF7A412100
:40EF6A4E1313F1F3
:D306210040444DED
:B0F1D306FBC9EF18
:400600FE21284D04
:FE22284804FE1A28
:4304FE12283E04FE
:23283904FE1B2834
:04FE13282F04FE24
:282A04FE1C282504
:FE14282004FE2F28
:1B04FE27281604FE
:1F281104FE2E280C
:04FE26280704FE1E
:280218AA7821769E
:856F300124C57EEF
:0445F1C915504147
:450000004E656564
:2031364B69422052
:414D005479706520
:70616765206E6F2E
:0030313233343536
:3738394142434445
:46

You might want to double check it a few times to make sure it's right. If there's one mistake, it could mess up your calculator more.



All right, now you have a program DUMPPAGE on your calculator, whether you downloaded it or coded it yourself. Either way, do the following:


  1. Make sure you have at least 16400 bytes of RAM free.
  2. Run the program from your home screen with the line Asm(prgmDUMPPAGE) (find the Asm( token in 2ND+[CATALOG]).
  3. When it displays "Type page no.," type "08."
  4. Send the appvar it creates to a computer.
  5. Delete the appvar.
  6. Repeat steps 2 through 5, but typing a different page number each time instead of 0C:


If you have a plain (black) TI-83 Plus:

08
09, 0A-0F, 10-15



If you have a plain (non-removable key cover) TI-84 Plus:

All the ones for a TI-83 Plus, in addition to:
15-19, 1A-1F, 20-29



If you have a TI-83 Plus Silver Edition or TI-84 Plus Silver Edition:

All the ones for a TI-83 Plus, in addition to:
2A-2F, 30-39, 3A-3F, 40-49, 4A-4F, 50-59, 5A-5F, 60-69



The appvars created contain the entire archive memory of your calculator. You can then use them to search for and recover variables (if you know how) or find someone to help you do that.

Comments? Suggestions? Post 'em here.
You forgot the option "buy a new one."
but we are programmers, we no has monies for teh calcs
@Deep Thought: very nice tutorial!
Very nice, Deep Thought; perhaps this should be stickied? Any gmods or other admins want to weigh in on this? To make the post a little less odd, I changed all the 24-point text to 17-point text, and replaced the weird exhaustive page lists with ranges.
KermMartian wrote:
Very nice, Deep Thought; perhaps this should be stickied? Any gmods or other admins want to weigh in on this? To make the post a little less odd, I changed all the 24-point text to 17-point text, and replaced the weird exhaustive page lists with ranges.


This is a very in-depth guide, and should be stickied, but in another subforum (Tech Open Topic?) as this isn't really a hardware thread.
Ultimate Dev'r wrote:
KermMartian wrote:
Very nice, Deep Thought; perhaps this should be stickied? Any gmods or other admins want to weigh in on this? To make the post a little less odd, I changed all the 24-point text to 17-point text, and replaced the weird exhaustive page lists with ranges.


This is a very in-depth guide, and should be stickied, but in another subforum (Tech Open Topic?) as this isn't really a hardware thread.
Sticked in the General Programming topic, since I would think calculator programmers of the BASIC and ASM varieties are the ones to whom this is most relevant.
KermMartian wrote:
To make the post a little less odd, I changed all the 24-point text to 17-point text, and replaced the weird exhaustive page lists with ranges.


That makes sense. When I wrote it I wanted people to understand it without knowing hex, but I couldn't think of a way to do that without writing it all out Smile
Deep Thought wrote:
KermMartian wrote:
To make the post a little less odd, I changed all the 24-point text to 17-point text, and replaced the weird exhaustive page lists with ranges.


That makes sense. When I wrote it I wanted people to understand it without knowing hex, but I couldn't think of a way to do that without writing it all out Smile
I assumed that was your intent, which is why I specified, for example, 20-29, 2A-2F, 30-39... instead of just 20-39.
D'nar's Archive Undelete deserves mention as well, if you have archived the program and haven't garbage collected recently this will may be able to recover the lost program.
TheStorm wrote:
D'nar's Archive Undelete deserves mention as well, if you have archived the program and haven't garbage collected recently this will may be able to recover the lost program.
A most excellent addition, TheStorm; perhaps it would be worth it to edit that into the OP? Do you have the power to do that?
I had a link to it in Step 2.
Deep Thought wrote:
I had a link to it in Step 2.
Oh, perfect, then it's all set. Smile You should make some more well-researched, thoroughly-written tips like this and compile them into some kind of guide if you ever have the free time (and I know how that goes too well).
I'm thinking of converting this one to HTML so I can host it on my site. And probably a PDF version so people can download it easily...
Deep Thought wrote:
I'm thinking of converting this one to HTML so I can host it on my site. And probably a PDF version so people can download it easily...
I'd be happy to turn it into LaTeX to help practice my TeX skills, if you want.
Of course, go ahead.

I'm starting to work on the HTML now.
Deep Thought wrote:
Of course, go ahead.

I'm starting to work on the HTML now.
If I make a LaTeX version, we could render HTML from that too (as well as a PDF), but it's up to you. Smile
I finished HTML'ifying all of these steps up to step 5 (step 6 in the new version) at http://clrhome.tk/tutorials/crash/! It has more info, too, and it looks better Very Happy
Deep Thought wrote:
I finished HTML'ifying all of these steps up to step 5 (step 6 in the new version) at http://clrhome.co.cc/tutorials/crash/! It has more info, too, and it looks better Very Happy
Looks great, thanks for sharing! Sadly, schoolwork has precluded my TeXing, but I'll get to it eventually. Wink
Thanks.

Now I have to get calcsys ASAP! 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