IntroductionIn the past few weeks, we've resolved many important mysteries concerning the hardware of the TI-83+ series of calculators. However, there are still questions remaining. There are three questions that I cannot answer without amassing data from other people. They are:
- What does port 15h mean?
- What does port 3Ah mean?
- Do the autoselect commands work on all units?
- Is the boot sector of the TI-83+ locked by the flash chip?
By giving me some simple information and running a small program on your calculator, you can help answer these questions. People with any model, from the TI-83+ to the TI-84+SE, can help.
Skip to the How to Help heading if you're super lazy or just have no curiosity.
Current TheoriesPort 15h has a non-zero value on the TI-83+SE and above. Its value never changes on any one particular unit, but it seems to be different on different units. Also, I've heard nothing about its value on a TI-83+. I think port 15h may be some kind of ASIC hardware version indicator. To verify this, I need data from many units. I'd also like to know whether it reports anything of interest on the TI-83+.
By request of thepenguin77, I've added a test concerning port 3A. It has something to do with USB. DanE (the prophet from the Kingdom of USB) believed it was a USB driver revision ID. We may ask you additional questions if we see an interesting value, because we have some evidence to indicate that it means something really important.
Similarly, I need data from many units too see if the autoselect commands work. I'm particularly interested in the TI-83+, because autoselect hasn't been tested on it. What is autoselect, you ask? It's a special command that allows you to query the flash chip for its manufacturer ID and device ID. The manufacturer ID will probably change from unit to unit, but the device ID should be the same for all models:
- 23h or 0B9h for the TI-83+
- 0DAh for the TI-84+
- 0C4h for the TI-83+SE and the TI-84+SE
Previously, we used port 21 to distinguish between the TI-84+ and the TI-84+SE, but port 21 can be programmed to lie. If autoselect is reliable, we have a way to be certain. (I also believe that the TI-84+ and the TI-84+SE and fully identical except for the flash chip.)
Finally, you may be aware that we've succeeded in unlocking the boot sector of the TI-83+SE and TI-84+/SE. <technical stuff> However, the hardware of the TI-83+ is different. We're not sure if the boot sector on that model can be unlocked. The data sheet for the flash chip says that the chip can be configured, using a piece of hardware known as an external flash programmer, to permanently lock any combination of sectors from being written to or erased. The TI-83+SE and above don't use this method of protection, and it's possible that the TI-83+ doesn't, either. The bad news is that this can only be undone by applying 12 V to one particular pin. </technical stuff>
The good news is that there is a way to find out whether or not the flash chip's internal protection--and therefore if the boot sector can be changed--is being used: there is one additional autoselect command that allows you to query whether any particular sector is has been protected with the flash chip's internal protection. If the boot sector of the TI-83+ is locked with this protection, it will return 01; if not, 00. If you get a 00 on a TI-83+, then there may be a way to unlock the TI-83+'s boot sector.
How to HelpFirst, answer a few questions about your calculator.
- 1. What is the model? (TI-83+, TI-83+SE, TI-84+, or TI-84+SE)
- 2. What is the HW revision? (This is the last six digits of the serial number on the back of your calculator. Mine is S-0605D.)
- 3. Do you need ALCDFIX? If you've never had any issues with corrupted graphics in games, you don't need it. Optional: If you do need ALCDFIX, how much delay does it add? (check ports 29 and 2A in Calcsys) Just say "yes" if you have a TI-83+.
Next, run the attached program (hwtests.8xp) on your calculator, using the Asm( token found under 2nd+0. The source is attached below, too. This program will report some information:
- 4. The program version number
- 5. Do you have the full 128 K of RAM?
- 6. The value in port 15
- 7. The value in port 3A
- 8. The manufacturer ID and the device ID returned by the autoselect commands
- 9. The protection status of sectors 1F, 3F, and 7F
Post your answers here.
Mine are
- 1. TI-84+SE
- 2. S-0605D
- 3. No LCD issues.
- 4. Version #2
- 5. Do you have the full 128 K of RAM? Yes.
- 6. The value in port 15: 45
- 7. The value in port 3A: 00
- 8. The manufacturer ID and the device ID returned by the autoselect commands: 04 (Fujitsu) C4 (2048 K chip, top boot)
- 9. The protection status of sectors 1F, 3F, and 7F: all 00
Other MysteriesThere are still other unknown ports. If you have hardware that can supply your calculator with a carefully variable voltage (from 2.9 to 5.0 VDC), let me know and I'll send you another program. I believe that the calculator can test the voltage down to at least half a volt of accuracy by writing to port 04, but I don't have the hardware to test this.
Other unknown ports are listed at
WikiTI.