TI-92 Link Protocol Guide - System Backup Transfers

##

System Backup Transfers

A System Backup is one large transmission containing all user-modifiable data in the calculator. The file format that the TI-92 Graph Link software uses can be found in the file formats section of this documentation.

System backups must be transferred 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.

#### Requesting a Backup

The protocol for silently requesting and receiving a backup is described below. For information on packet formats, click here.

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | REQ with request-style backup header. Name is "main\backup".
2 |  | ACK
3 |  | VAR with data-style backup header.
4 |  | ACK
5 |  | CTS
6 |  | ACK
7 |  | DATA (a 1-kilobyte backup block, with four extra bytes at the beginning)
8 |  | ACK
|  | (Repeat steps 3-8 for as many kilobytes as there are in the backup)
9 |  | EOT
10 |  | ACK

The actual backup data is broken into 1-kilobyte blocks which are transferred individually.

Example:

PC: | `09 A2 11 00` `00 00 00 00 1D 0B 6D 61 69 6E 5C 62 61 63 6B 75 70 9F 04` | Request: Backup "main\backup"
TI: | `89 56 00 00` | Acknowledgement of request
| `89 06 0A 00` `00 04 00 00 1D 04 31 2E 31 31 E6 00` | Variable header: Backup block (rom version "1.11")
PC: | `09 56 00 00` | Acknowledgement of header
| `09 09 00 00` | Clear to Send
TI: | `89 56 00 00` | Acknowledgement of CTS
| `89 15 04 04` <404h (1028) bytes of data plus checksum> | First 1-kilobyte block of data (plus four bytes at the beginning)
PC: | `09 56 00 00` | Acknowledgement of data
TI: | `89 06 0A 00` `00 04 00 00 1D 04 31 2E 31 31 E6 00` | Variable header: Backup block (rom version "1.11")
PC: | `09 56 00 00` | Acknowledgement of header
| `09 09 00 00` | Clear to Send
TI: | `89 56 00 00` | Acknowledgement of CTS
| `89 15 04 04` <404h (1028) bytes of data plus checksum> | Second 1-kilobyte block of data (plus four bytes at the beginning)
PC: | `09 56 00 00` | Acknowledgement of data
. . . | . . . | . . .
TI: | `89 06 0A 00` `08 02 00 00 1D 04 31 2E 31 31 EC 00` | Variable header: Backup block (rom version "1.11")
PC: | `09 56 00 00` | Acknowledgement of header
| `09 09 00 00` | Clear to Send
TI: | `89 56 00 00` | Acknowledgement of CTS
| `89 15 0C 02` <20Ch (524) bytes of data plus checksum> | Final block of data (plus four bytes at the beginning)
PC: | `09 56 00 00` | Acknowledgement of data
TI: | `89 92 00 00` | End of transmission - no more blocks
PC: | `09 56 00 00` | Acknowledgement of EOT

#### Sending a Backup

The protocol for silently sending a backup is shown below:

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | VAR with send-style backup header.
2 |  | ACK
3 |  | VAR with data-style backup header.
4 |  | ACK
5 |  | CTS
6 |  | ACK
7 |  | DATA (a 1-kilobyte backup block, without the extra four bytes at the beginning)
8 |  | ACK
|  | (Repeat steps 3-8 for as many kilobytes as there are in the backup)
9 |  | EOT

Example (PC sending backup to TI):

PC: | `09 06 0A 00` `08 9A 00 00 1D 04 31 2E 31 31 84 01` | Variable header: Backup (rom version "1.11")
TI: | `89 56 00 00` | Acknowledgement of header
PC: | `09 06 0A 00` `04 00 00 00 1D 04 31 2E 31 31 E6 00` | Variable header: Backup block (rom version "1.11")
TI: | `89 56 00 00` | Acknowledgement of header
| `89 09 00 00` | Clear To Send
PC: | `09 56 00 00` | Acknowledgement of CTS
| `09 15 00 04` <400h (1024) bytes of data plus checksum> | First 1-kilobyte block of data
TI: | `89 56 00 00` | Acknowledgement of data
PC: | `09 06 0A 00` `04 00 00 00 1D 04 31 2E 31 31 E6 00` | Variable header: Backup block (rom version "1.11")
TI: | `89 56 00 00` | Acknowledgement of header
| `89 09 00 00` | Clear To Send
PC: | `09 56 00 00` | Acknowledgement of CTS
| `09 15 00 04` <400h (1024) bytes of data plus checksum> | Second 1-kilobyte block of data
TI: | `89 56 00 00` | Acknowledgement of data
. . . | . . . | . . .
PC: | `09 06 0A 00` `08 02 00 00 1D 04 31 2E 31 31 EC 00` | Variable header: Backup block (rom version "1.11")
TI: | `89 56 00 00` | Acknowledgement of header
| `89 09 00 00` | Clear To Send
PC: | `09 56 00 00` | Acknowledgement of CTS
| `09 15 08 02` <208h (520) bytes of data plus checksum> | Final block of data
TI: | `89 56 00 00` | Acknowledgement of data
PC: | `09 92 00 00` | End of transmission

Silent transfers | Table of Contents | OS Version

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