As discussed on TI-Planet, I have undertaken the task of documenting the early hardware and operating system revisions of the TI-82, collaborating with critor since its early stages and Adriweb more recently. For about three weeks I purchased almost every early production TI-82 that was listed on eBay, and performed detailed documentation of their hardware and software. Through the collective efforts of myself, critor, and Adriweb, hardware versions E through I (except G, of which we lack PCB images) were documented; the existence of ROMs 4*, 8.0, and 15.0 reputably confirmed; ROM 3. discovered; and ROMs 3., 4*, 8.0, and 15.0 dumped twenty-two years after their production. My efforts are still ongoing, but having depleted eBay of all functional and noteworthy TI-82s activity will be slowing down and focusing more on the TI-83 (whose ROM 1.0200 is the earliest found, and exists at least in HW-'A').
Note: a single letter within single quotes indicates a hardware revision, eg. I-0793F is 'F'. Datestamps are given in the format MMYY, and a leading "I-" can be ignored. Serial numbers containing "x" mean that any digit can replace the "x" and remain valid. I do not own ROM 19.006, and thus it is excluded from this analysis unless otherwise specified.
Serial numbers
I am not entirely sure if someone else has documented trends (or the lack thereof) in serial numbering, but I independently assembled my own analysis of serial numbers as observed from a database of about 130 TI-82s.
Hardware Revision
I have made observations about the hardware of these early TI-82s, which may not be entirely correct due to limited sample size:
PCBs
The PCBs of early TI-82s show evidence of post-production modification. The components R13, R13-1, R14, R14-1, R15, R15-1, C2, C5, C6, C11, C12, and some test points near the capacitors have a different appearance to the solder joints (the test pads have solder on them) and are surrounded by solder flux of a different color than that found near other components. Strangely, all OTP-ROM TI-82s show (at least some) of these modifications, whereas mask ROM TI-82s do not show any modification signs at all.
All OTP-ROM-based TI-82s observed have their ROM version written on the PCB in permanent marker. None of the mask ROM-based TI-82s show this.
A differential comparison of 'H' and 'Q' shows the mainboard was changed from "9TIETMB-30A" to "9TIETMB-31". To the bottom left of the RAM chip, a 2.2 MΩ resistor R21 was added in 'Q'. The zero-ohm resistor J2 near the ASIC was replaced by an inductor in 'Q'. Additionally, between 'F' and 'H', the value of resistor R11 changed from 10 kΩ to 600 Ω (resistor values 103 and 601, resp.; see PCB images). PCB images under both visible and ultraviolet light are available at TI-Planet. Solder flux is fluorescent under ultraviolet light, and appears a bright yellow in the UV light pictures. Production dates of labeled components can be found here. A poor tracing of the PCB on a pre-'A' TI-82 can be found here.
ROM Version
Between each ROM version, not much changed. I discovered a bug in ROM 3. and 8.0 that affects the Plot( functions; interestingly, ROM 4* corrected the bug and 8.0 reintroduced it. Attempting to set a stat plot using any of the Plot1(, etc. functions forces the plot mark to Box, regardless of the user's selection. A video of the bug in action can be found here.
Starting around memory address $2E00 is a table of ROM calls that are outside of page 0. Each table entry is in the format "call (a routine that handles calling/jumping to the requested routine) \ .DW address \ .DB ROM page", and each entry is 6 bytes long. The table is located at the end of ROM page 0, and ends around $3A00. The length of this table increased as new ROMs were released, starting at 479 entries in ROM 3. and increasing to 484 in ROM 15.0. A more detailed breakdown of this table can be found below:
As ROM 15.0 uses the same table parameters as ROMs 16.0 through 18.0, it is compatible with assembly shells. Ash and CrASH have both been confirmed to be compatible. No version below 15.0 will successfully start any existing assembly shell.
Note: a single letter within single quotes indicates a hardware revision, eg. I-0793F is 'F'. Datestamps are given in the format MMYY, and a leading "I-" can be ignored. Serial numbers containing "x" mean that any digit can replace the "x" and remain valid. I do not own ROM 19.006, and thus it is excluded from this analysis unless otherwise specified.
Serial numbers
I am not entirely sure if someone else has documented trends (or the lack thereof) in serial numbering, but I independently assembled my own analysis of serial numbers as observed from a database of about 130 TI-82s.
- 7-digit serial numbers were used since the first TI-81s in 1990. TI also used this numbering system with the early TI-82s and TI-85. In January 1994 (also seems to be the same date for the TI-85; February 1993 for the TI-81) TI switched to an 8-digit format. I do not believe TI had a method of preventing overlap of serial numbers given only five digits of a 7-digit serial number were variable for a given month of any year; I have seen TI-85s from different years with serial numbers less than 2000 apart.
- The first two digits of a serial number are related to the month of production. For 7-digit serial numbers, this corresponds directly with the month; for example, 0852399 I-0893K shows this correlation. 8-digit serial numbers stopped rolling the month digits over at the beginning of a new year, and began counting where 7-digit serial numbers left off. A 12xxxxx serial number with date stamp I-1293 would be followed by a 13xxxxxx serial number with datestamp I-0194.
- 8-digit serial numbers do not strictly follow the above pattern. While datestamp I-0494 would be expected to carry serial numbers in the 16xxxxxx range, the 17xxxxxx range is found instead. Why? This is due to a change in hardware revision during 0393; note 15xxxxxx I-0393L and 16xxxxxx I-0394M.
- 7-digit serial numbers do follow the expected trend of increasing hardware revision corresponds to an increasing serial number when looking at the larger scale, but there is little, if any, order on the small scale. Instead, when the database is sorted by serial number, the hardware revisions appear in this order: [05xxxxx] pre-'A', [060xxxx] 'E', pre-'A', 'H', [061xxxx] 'E', [070xxxx] 'I', 'J', [071xxxx] 'F', [073xxxx] 'J', 'K'. I will later discuss why 'F' is out of order, but the rest follow only a vague trend.
- All observed TI-82s produced before 0894 except one were seen to use a silvery white ink under a clear sticker to label the serial number. The one exception, 0961729 I-0993F, uses black ink on a clear sticker, like TI-81s. The datestamp is rather late for 'F', but TI-81s did not start using their 'F' until a year later.
Hardware Revision
I have made observations about the hardware of these early TI-82s, which may not be entirely correct due to limited sample size:
- All hardware versions from 'A' to 'H' were produced in a month. All production TI-82s up to 'H' were produced within two months.
- Since 'E' at the latest, there is a correlation between ROM version and hardware revision. Other hardware changes, such as the usage of a mask ROM, will cause an incrementation of hardware revision.
- Hardware revisions 'E' and 'F' use ROM 10.0 using OTP-ROM and mask ROM, respectively.
- Hardware revisions 'J' and 'K' use ROM 16.0 using OTP-ROM and mask ROM, respectively. I do not own a 'J' calculator to disassemble, so this remains unverified.
- 'G' indicates ROM 11.0.
- 'H' indicates ROM 12.0.
- 'I' indicates ROM 15.0. No evidence of ROMs 13.0 or 14.0 is known.
- Either 'L' or 'M' modified the display hardware to increase screen contrast. These both use ROM 16.0.
PCBs
The PCBs of early TI-82s show evidence of post-production modification. The components R13, R13-1, R14, R14-1, R15, R15-1, C2, C5, C6, C11, C12, and some test points near the capacitors have a different appearance to the solder joints (the test pads have solder on them) and are surrounded by solder flux of a different color than that found near other components. Strangely, all OTP-ROM TI-82s show (at least some) of these modifications, whereas mask ROM TI-82s do not show any modification signs at all.
All OTP-ROM-based TI-82s observed have their ROM version written on the PCB in permanent marker. None of the mask ROM-based TI-82s show this.
A differential comparison of 'H' and 'Q' shows the mainboard was changed from "9TIETMB-30A" to "9TIETMB-31". To the bottom left of the RAM chip, a 2.2 MΩ resistor R21 was added in 'Q'. The zero-ohm resistor J2 near the ASIC was replaced by an inductor in 'Q'. Additionally, between 'F' and 'H', the value of resistor R11 changed from 10 kΩ to 600 Ω (resistor values 103 and 601, resp.; see PCB images). PCB images under both visible and ultraviolet light are available at TI-Planet. Solder flux is fluorescent under ultraviolet light, and appears a bright yellow in the UV light pictures. Production dates of labeled components can be found here. A poor tracing of the PCB on a pre-'A' TI-82 can be found here.
ROM Version
Between each ROM version, not much changed. I discovered a bug in ROM 3. and 8.0 that affects the Plot( functions; interestingly, ROM 4* corrected the bug and 8.0 reintroduced it. Attempting to set a stat plot using any of the Plot1(, etc. functions forces the plot mark to Box, regardless of the user's selection. A video of the bug in action can be found here.
Starting around memory address $2E00 is a table of ROM calls that are outside of page 0. Each table entry is in the format "call (a routine that handles calling/jumping to the requested routine) \ .DW address \ .DB ROM page", and each entry is 6 bytes long. The table is located at the end of ROM page 0, and ends around $3A00. The length of this table increased as new ROMs were released, starting at 479 entries in ROM 3. and increasing to 484 in ROM 15.0. A more detailed breakdown of this table can be found below:
- ROM 3.; 479 entries beginning at $2E63
- ROM 4*; 479 entries beginning at $2E63
- ROM 8.0; 480 entries beginning at $2E71
- ROM 10.0; 482 entries beginning at $2E72
- ROM 11.0; 482 entries beginning at $2E72
- ROM 12.0; 482 entries beginning at $2E76
- ROM 15.0; 484 entries beginning at $2E86
- ROMs 16.0, 17.0, and 18.0 use ROM 15.0's table parameters.
- ROM 19.0; 484 entries beginning at $2EA0
As ROM 15.0 uses the same table parameters as ROMs 16.0 through 18.0, it is compatible with assembly shells. Ash and CrASH have both been confirmed to be compatible. No version below 15.0 will successfully start any existing assembly shell.