Chameleon v1.2 Brandon Wilson >What is it? Chameleon is a suite of utilities that creates a TI-73/TI-73 Explorer OS upgrade file (73U) and ROM containing an OS originally intended for the TI-83 Plus/Silver Edition series of graphing calculators. In effect, it converts a TI-73 into a TI-83 Plus. >How do I use it? The process is somewhat complicated, but I've tried to make it as straightforward as possible. There are several steps to this whole thing: ==================================== 1. Backing Up Your TI-73 Certificate ==================================== The certificate is a special area of Flash which contains your calculator ID, any revisions that have been made to your calculator (including the ability to run any Flash applications you paid for), and other things. This is an extremely important area of memory that you CANNOT afford to lose. Because this whole thing is a dangerous process, I HIGHLY RECOMMEND that you back up your certificate and keep it in a safe place. You can do this using an included program ("getcert.73p"): Make sure your TI-73 has OS 1.40 or above. If not, download the latest (currently 1.91) from http://education.ti.com/ . Transfer getcert.73p to your TI-73 using your graph link cable. Make sure you have ~17KB of RAM free, then go to the PRGM menu, highlight "GETCERT", and press [ENTER] twice, just as you would run a BASIC program. If successful, you will see the message "CERTIMG created." A new AppVar called "CERTIMG" will now be on your TI-73. Transfer the AppVar back to your PC using your graph link cable and keep it in a safe place. If you EVER need to restore your certificate from this backup, do the following: Make sure your TI-73 has OS 1.40 or above. If not, download the latest (currently 1.91) from http://education.ti.com/ . Transfer putcert.73p and your CERTIMG AppVar to your TI-73 using your graph link cable. Go to the PRGM menu, highlight "PUTCERT", and press [ENTER] twice, just as you would run a BASIC program. Follow the instructions on the screen. If successful, you should see "CERTIMG written." ============================================= 2. Getting a TI-83 Plus OS Upgrade (8XU) File ============================================= You may already have an 8XU file containing an 83+ OS laying around, but if not, you can download the latest (currently 1.19) from http://education.ti.com/ . For this step, all you have to do is rename it "83P.8xu" and place it in the same directory as this readme. ================================= 3. Getting a TI-73 Boot Code Dump ================================= You must obtain a raw boot code dump of the TI-73 you intend to do this to and place it in the same directory as this readme, and name it "boot.bin." There are a couple of ways you can obtain this dump: 1) The best way would be to dump it from your TI-73. I've included a program called "dumpboot.73p" to allow you to do this. First, make sure your TI-73 contains OS 1.40 or above. If not, you can download the latest version (currently 1.91) from http://education.ti.com/ . Once your TI-73 has OS 1.40 or above, transfer "dumpboot.73p" to your TI-73 with your graph link cable. Make sure you have ~17KB of RAM free, then go to the PRGM menu, highlight "DUMPBOOT", and press [ENTER] twice, just as you would run a BASIC program. If successful, you will see the message "DUMPBOOT created." A new AppVar called "DUMPBOOT" will now be on your TI-73. Transfer the AppVar back to your PC using your graph link cable. Now run "GetBootImage.exe", which is in the same directory as this readme. It will prompt you to enter the location of the AppVar on your PC. Select it, and click OK. The program will then ask for the location to save the dump. Navigate to the same directory as this readme and enter "boot.bin" as the file name, then click Save. 2) You can also retrieve a TI-73 boot code dump from the TI-83 Plus Flash debugger, downloadable as part of the TI-83 Plus SDK at http://education.ti.com/ . HOWEVER, THE BOOT CODE VERSION INCLUDED IN THE FLASH DEBUGGER (CURRENTLY 1.3005) MUST MATCH YOUR REAL TI-73. You can verify you have the same boot code version as the Flash debugger with the program GETBVER.73P. If you do not have a TI-73 and are just going to emulate this, there's no need to worry. Assuming you meet these requirements, ensure the TI-83 Plus Flash debugger is installed to the default direcotry ("C:\Program Files\TI Education\TI-83 Plus Flash Debugger\") and double-click or run from a command prompt the "GetBootImage.bat" batch file. If successful, this will create a boot.bin in the same directory as this readme. =========================================== 4. Creating the TI-73 OS Upgrade (73U) File =========================================== You have two choices: 1. To create a signed 73U file (which is easier to install): Double-click or run from a command prompt the "make-signed.bat" batch file. 2. To create an unsigned 73U file (only slightly more difficult to install): Double-click or run from a command prompt the "make.bat" batch file. Assuming all goes well, it will create a file called "73.73u" in the current directory. This is the file you send to your TI-73. ========================================== 5. Sending the TI-73 OS Upgrade (73U) File ========================================== Transfer the "73.73u" file to your TI-73 via your graph link cable as you would any other TI-73 OS upgrade. If you chose to create an unsigned 73U file in step 4, there is one important thing you MUST do in order for the TI-73 to accept this file: Keep an eye on the TI-73 LCD when the progress nears 100%. When it does, the top line of the LCD will change from "Receiving..." to "Validating..." When it does this, IMMEDIATELY PULL A BATTERY. It is best to remove the battery cover beforehand and be prepared to pull it when you see "Validating..." Once the calculator has turned off, tap [ON] several times and then re-insert the battery. Turn the calculator on and you should be greeted with a TI-83 Plus RAM reset screen. ============== 6. Cleaning Up ============== Once you have installed the OS upgrade, you will be running an invalid version of the TI-83 Plus OS on your TI-73. To properly clean up from this process, run the OSCLEAN.8XP file on your calculator: Transfer the OSCLEAN.8XP file to your calculator. Go to the CATALOG, highlight "Asm(", press [ENTER], then go to the PRGM menu, highlight "OSCLEAN", and press [ENTER] twice. Wait for the program to finish. It can possibly take several minutes; be patient. You can now delete prgmOSCLEAN. ============================ 7. Forging a New Certificate ============================ Now that you are running the TI-83 Plus OS, it is wise to have a matching TI-83 Plus certificate installed. A dummy certificate dump has been included as CERTIMG.8XV, which you can install by following the below steps: Transfer PUTCERT.8XP and the CERTIMG.8XV AppVar to your TI-83 Plus using your graph link cable (this will require ~17KB of RAM free). DO NOT ARCHIVE CERTIMG.8XV. Go to the CATALOG, highlight "Asm(", press [ENTER], then go to the PRGM menu, highlight "PUTCERT", and press [ENTER] twice. Follow the instructions on the screen. If successful, you should see "CERTIMG written." You can now delete the CERTIMG AppVar and PUTCERT program. If you would rather use the certificate from a real TI-83 Plus, use the GETCERT.8XP program to dump it and replace the CERTIMG.8XV file in this directory. Congratulations! You're done! ========= Emulation ========= If you want to emulate this to see it in action first, point your emulator of choice to the "image.rom" file in the "tools" subdirectory. If you want to emulate this using the TI-83 Plus Flash debugger: First make sure the debugger is installed to the default directory ("C:\Program Files\TI Education\TI-83 Plus Flash Debugger\"). Double-click or run from a command prompt the "backup.bat" batch file. This will make a backup of the TI73.clc file that the debugger uses for emulating a TI-73. You only need to do this once, for backing up your original TI73.clc file. Double-click or run from a command prompt the "debug.bat" batch file. This will embed the "image.rom" file into the current TI73.clc file. You must do this any time you rebuild the ROM with "make.bat" or "make-signed.bat." To restore your original TI73.clc file from the backup you made with "backup.bat", just run the "restore.bat" batch file. Once you've gotten it working in an emulator, be sure to do the "Cleaning Up" and "Forging a New Certificate" procedures above. >How do I "undo" this? Simply send a valid, official TI-73 OS from http://education.ti.com/ to your calculator as you would any other. You can then restore your certificate from the backup you made in the "Backing Up Your TI-73 Certificate" procedure above. >So how does this work? This takes advantage of the fact that the hardware contained in the TI-73 and TI-83 Plus are nearly identical. However, there are several differences that prevent you from just sending a TI-83 Plus OS to your TI-73: a) Bit 1 of port 2 on the TI-73 is permanently low. This is how you identify whether you are running on TI-73 hardware. Unfortunately, the OS and many TI-83 Plus programs use this as an LCD ready indicator, which would be bad since the value never changes. b) The TI-73 boot code does not contain the B_CALL SetFlashLowerBound. c) The TI-73 boot code has a different starting address (80CFh) compared to the TI-83 Plus (80D5h). d) The TI-73 contains a different method of setting/modifying Flash execution permissions. e) The TI-73 boot code contains TI-73 RAM equates instead of TI-83 Plus ones. Points a), b), c), and d) are handled by Chameleon. Point e), however, requires replacement of boot code routines that cause conflicts due to the different RAM equates. This is the main purpose of Chameleon: to allow assembling of boot code replacements embedded within the OS. Unfortunately, finding out which routines cause issues can be difficult, and is what prevents this software from being complete. >I'm noticing something weird / I can't do something a TI-83 Plus would let me do / It's crashing for some reason when I do XYZ. Please let me know at brandonlw@gmail.com! This is very much a work in progress and I have to know about things that don't work before I can fix them. >I want to make changes to or improve upon the boot code routines. How do I do that? Edit the "code.z80" file in the "tools" subdirectory. Take a look at the documentation in that file for more information, and when you want to rebuild the OS upgrade file, just run the "make.bat" or "make-signed.bat" batch file. >This is too complicated. I don't care. It actually doesn't get much easier than this. >Version History v1.2 - added RabbitSign and a method to sign the resulting 73U OS upgrade file. added GETBVER.73P and source to obtain TI-73/Explorer boot code version. v1.1 - don't remember. :) v1.0 - initial release. >How can I contact you with questions/comments/insults/cease-and-desist orders/etc.? brandonlw@gmail.com, brandonw.net, cableguy3535 on AIM, BrandonW on EFNet IRC, etc.