TI-89 Link Protocol Guide - Setting/Getting Clock

##

Clock Management

Texas Instruments have incorporated clock management into their new AMS software, starting at the 2.08 release. This clock can only work on HW2 models (for some hardware reasons...).

The clock management is like sending/receiving a variable named "Clock".

####

#### Getting Clock

Indeed, the request is like receiving the 'Clock' variable with Ty=18. This request works only with AMS2.08 mini calculators.

The protocol for silently receiving the clock is shown below:

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | REQ with expected header (varname is 'Clock')
2 |  | ACK (see note below)
3 |  | VAR (specifing the size without the extra four bytes) with actual header and no name
4 |  | ACK
5 |  | CTS
6 |  | ACK
7 |  | DATA with an extra four bytes at the beginning of the packet
8 |  | ACK
9 |  | EOT
10 |  | ACK

Example (PC receiving Clock from TI):

PC: | `08 A2 0C 00 00 00 00 00 18 05 43 6c 6f 63 6b 00 09 02` | Request the Clock variable
TI: | `88 56 00 00` | Acknowledgement of request
| `88 06 0D 00 0C 00 00 00 18 00 24 00` | Variable Header: no name
PC: | `08 56 00 00` | Acknowledgement of variable header
| `08 09 00 00` | Clear to send variable
TI: | `88 56 00 00` | Acknowledgement of CTS
| `88 15 10 00 00 00 00 00 00 00 07 D2 08 01 0E 02 00 02 18 FF 0B 02` | Variable data: 12 bytes (1st Aug 2002, 14:02, clock is ON, 24h format, DD/MM/YY format)
PC: | `08 56 00 00` | Acknowledgement of variable data
TI: | `88 92 00 00` | End Of Transmission
PC: | `08 56 00 00` | Acknowledgement of EOT

####

The variable data has the following format (pure binary, no BCD):

Offset | Length | Description
--- | --- | ---
0 | 4 bytes | Always 00h
4 | 2 bytes | Always 00h
6 | 2 bytes | Year
8 | 2 bytes | Month and Day (MM:DD)
10 | 3 bytes | Hour, Minutes and Seconds (hh:mm:ss) encoded as an 24h-format
13 | 1 byte | Date Display Formatting (1: MM/DD/YY, 2: DD/MM/YY, 3: MM.DD.YY, 4: DD.MM.YY, 5: YY.MM.DD, 6: MM-DD-YY, 7: DD-MM-YY, 8: YY-MM-DD)
14 | 1 byte | Time Display Formatting (12: AM/PM, 24: 24 hours)

#### Setting Clock

Indeed, setting clock is like sending the 'Clock' variable with Ty=18.
This request works only with AMS2.08 mini calculators.

The protocol for silently sending the clock is shown below:

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | RTS (specifing the size with the extra four bytes)
2 |  | ACK
3 |  | CTS or SKIP/EXIT (see note below)
4 |  | ACK
5 |  | DATA
6 |  | ACK
7 |  | EOT - if there are several variables to transmit, steps 7 and 8 can be skipped until the last variable.
8 |  | ACK

Example (PC sending a free FLASH application to TI):

PC: | `08 C9 0C 00 10 00 00 00 18 05 C l o c k 19 02` | Send the "Clock" pseudo-variable
TI: | `89 56 00 00` | Acknowledgement of request
| `89 09 00 00` | Clear to send variable
PC: | `09 56 00 00` | Acknowledgement of CTS
| `09 15 10 00 00 00 00 00 00 00 07 D2 08 01 0E 02 00 02 18 FF 0B 02` | Variable data
TI: | `89 56 00 00` | Acknowledgement of data
PC: | `09 92 00 00` | End Of Transmission
TI: | `89 56 00 00` | Acknowledgement of EOT

####

Flasht Tansfers | Table of Contents | OS Version

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