TI-89 Link Protocol Guide - System Backup Transfers


Flash Transfers


Beware: in the worst case, a FLASH operation can completely lock up your calculator and there is no way than returning the calcultator to Texas Instruments in this case.
We (Tim. Singer and Romain Liévin) can not be responsible of this.
Personnaly, I (Romain) have crashed a FLASH OS several times without crashing the calculator but you have been warned !
A last remark: the link cables which are the more reliable and efficient for these operations (especially OS flashing) are RS232 cables such as Grey TIGL, fastAVRlink (even at 4x = 38400 bauds) or PIClink (not tested but should work). The SilverLink is slower than others for FLASHing (strange, don't ask us why !).

There are 2 kinds of FLASH transfers:
- FLASH applications which are variables stored in the FLASH memory of the calculator.
- AMS (Advanced Mathematic Software) which is the Operating System of the calculator.
A Flash transfer is a one (large) transmission containing data (up to 2 Mb for AMS). The file format that the TI-89 Graph Link software uses can be found in the file formats section of this documentation.

A FLASH OS must be transferred silently whereas FLASH apps can be transferred manually or silently. Silent transfers can only be done between a computer and a calculator, and require that the computer make the request or request-to-send.

This section does not cover sending of certificates or applications sold by TI.

Checking FLASH

The protocol for checking whether the calculator AMS has been upgraded is described below.
Step Direction Packet
Computer
===>
Calculator
REQ special: 00 68 00 00.
<===
ACK: either 98 56 00 10 (not upgraded), either 98 56 10 04 (upgraded).

Note: the 04h value seems to be a revision value. AMS208 returns 0Ch.

Example:
PC: 00 68 00 00  Check whether the calc has been FLASHed
TI: 98 56 00 10 TI89 with AMS 1.00
PC: 00 68 00 00  Check whether the calc has been FLASHed
TI: 98 56 04 10 TI89 with AMS 2.05
PC: 00 68 00 00  Check whether the calc has been FLASHed
TI: 98 56 0C 10 TI89 with AMS 2.08

Requesting ID list

Indeed, the request is as if the TI requested the 'IDLIST' variable: Ty=22 and Nl=00.
This request works only with upgraded calculator (check if TI has been upgraded before).

The protocol for silently receiving the ID list is shown below:
Step Direction Packet
Computer
===>
Calculator
REQ with expected header including the folder name, if necessary
<===
ACK (see note below)
<===
VAR (specifing the size without the extra four bytes) with actual header and no folder name
===>
ACK
===>
CTS
<===
ACK
<===
DATA with an extra four bytes at the beginning of the packet
===>
ACK
<===
EOT
10 
===>
ACK

Example (PC receiving IDlist from TI):
PC: 08 A2 06 00 00 00 00 00 22 00 22 00 Request the ID list
TI: 98 56 00 00 Acknowledgement of request
  98 06 0D 00 12 00 00 00 22 06 I D L I S T 00 6A 00 Variable Header: String "IDLIST"
PC: 08 56 00 00 Acknowledgement of variable header
  08 09 00 00 Clear to send variable
TI: 98 56 00 00 Acknowledgement of CTS
  98 15 16 00 00 00 00 00 01 00 0E 00 30 33 30 36 39 44 31 42 41 33 46 46 41 42 24 00 Variable data: "03069-D1BA3-FFAB"
PC: 08 56 00 00 Acknowledgement of variable data
TI: 98 92 00 00 End Of Transmission
PC: 08 56 00 00 Acknowledgement of EOT

Sending FLASH

Warning: We (Tim. Singer and Romain Liévin) could not be responsible if your calculator has been locked or damaged with a FLASH OS.
If a FLASH OS has been sent and the operation has crashed, you can wait that the TI89 display 'Ready to receive'. Then, try again the transfer.
If the calculator is really locked, remove batteries, wait some time and put them again. Next, press I for 'Install code' and retry transfer.

In the case of a FLASH OS (AMS), there is no name : 08 c9 06 00 47 e3 12 00  23  00  5f 01. Older AMS releases sent 'basecode' but I'm unsure.
TI89 Titanium and V200PLT use a slightly different packet : 08 c9 09 00 b3 4e 14 00  23  00 08 00 0X  49 01 where 0X is the hardware ID (1 = 92+, 3 = 89, 8 = V200, 9 = Titanium).

The protocol for silently sending a FLASH file is shown below:
Step Direction Packet
Computer
===>
Calculator
RTS with expected header including the FLASH application name and size. 
===>
ACK
===>
CTS
<===
ACK
<===
DATA
===>
ACK
<===
CONT or EOT - if CONT, then go to step 2.
===>
ACK or ERR (if certificate is rejected)

Example (PC sending a free FLASH application to TI):
PC: 08 C9 0C 00 59 85 00 00 24 05 54 49 46 52 41 01 7D 02 Send the "TIFRA" flash application
TI: 98 56 00 00 Acknowledgement of request
  98 09 00 00  Clear to send variable
PC: 08 56 00 00 Acknowledgement of variable header
  08 15 00 00 <... 65536 bytes of data ...> CHK Data block: 64 Kbytes
TI: 98 56 00 00 Acknowledgement of CTS
PC: 08 78 00 00 Continue transmission
. . .
. . .
. . .
TI: 98 56 00 00 Acknowledgement of request
  98 09 00 00  Clear to send variable
PC: 08 56 00 00 Acknowledgement of variable header
  08 15 00 00 <... 65536 bytes of data ...> CHK Data block: 64 Kbytes
TI: 98 56 00 00 Acknowledgement of CTS
PC: 08 78 00 00 Continue transmission
. . .
. . .
. . .
TI: 98 56 00 00 Acknowledgement of request
  98 09 00 00  Clear to send variable
PC: 08 56 00 00 Acknowledgement of variable header
  08 15 59 85 <... 34137 bytes of data ...> CHK Data block: 34137 bytes of remaining data for instance
TI: 98 56 00 00 Acknowledgement of CTS
PC: 08 92 00 00 End Of Transmission
TI: 98 56 00 00 Acknowledgement of EOT 

Receiving FLASH

The protocol for silently receving a FLASH file is shown below:
Step Direction Packet
Computer
===>
Calculator
REQ with expected header including the application name
<===
ACK (see note below)
<===
VAR (specifing the size) with actual header and no folder name
===>
ACK
===>
CTS
<===
ACK
<===
DATA
===>
ACK
<===
CONT/EOT - if CONT, then go to step 4.
10 
===>
ACK

Example (PC receiving a free FLASH application to TI):
PC: 08 A2 0E 00 00 00 00 00 24 08 54 49 43 41 42 46 52 41 68 02 Request to Send the "TICABFRA" flash application
TI: 98 56 00 00 Acknowledgement of request
  98 06 0F 00 8D 1D 00 00 24 08 54 49 43 41 42 46 52 41 04
16 03 
Application Header: String "TICABFRA"



PC: 08 56 00 00 Acknowledgement of variable header
  08 09 00 00 Clear to send variable
TI: 98 56 00 00 Acknowledgement of CTS
  98 15 B6 06 <block of data> 24 00 Variable data
PC: 08 56 00 00 Acknowledgement of variable data
TI: 98 78 00 00 End Of Transmission
. . .
. . .
. . .
PC: 08 56 00 00 Acknowledgement of variable header
  08 09 00 00 Clear to send variable
TI: 98 56 00 00 Acknowledgement of CTS
  98 15 FE 03 <block of data> 24 00 Variable data
PC: 08 56 00 00 Acknowledgement of variable data
TI: 98 78 00 00 End Of Transmission
. . .
. . .
. . .
PC: 08 56 00 00 Acknowledgement of variable header
  08 09 00 00 Clear to send variable
TI: 98 56 00 00 Acknowledgement of CTS
  98 15 19 02 <block of data> 24 00 Variable data
PC: 08 56 00 00 Acknowledgement of variable data
TI: 98 92 00 00 Acknowledgement of EOT 
PC: 08 56 00 00 End Of Transmission

Receiving Certificate

Same as requesting FLASH app but type ID is 20h and name is "".

Sending Certificate

Same as sending FLASH app but type ID is 20h and name is "".
When rejected, this ERR packets is sent : 88 36 00 05  05 00 0A 00 00  0F 00

 
[previous page]
Silent transfers
[home]
Table of Contents
[next page]
Clock


Site maintained by Romain Liévin (roms@lpg.ticalc.org) and Tim Singer (tsinger@gladstone.uoregon.edu)