TI-83+ 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 special variable named "\0x08".

####

#### Getting Clock

Indeed, the request is like receiving the '\0x08' variable with Ty=29. This request works only with OS v2.?? mini.
The protocol for silently receiving the clock is shown below:

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | REQ with expected header (name is 0x08, type is 0x29)
2 |  | ACK (see note below)
3 |  | VAR with actual header
4 |  | ACK
5 |  | CTS
6 |  | ACK
7 |  | XDP
8 |  | ACK

Note: If the requested variable does not exist, the calculator will send an EXIT packet after step 2, to which the computer will respond with an ACK packet. This would be the end of the transfer.

Example (PC receiving Clock from TI):

PC: | `23 A2 0B 00 00 00 29 08 00 00 00 00 00 00 00 31 00` | Request the Clock variable
TI: | `73 56 00 00` | Acknowledgement of request
| `73 06 0D 00 09 00 29 00 00 00 00 00 00 00 00 00 32 00` | Variable Header: no name
PC: | `23 56 00 00` | Acknowledgement of variable header
| `23 09 00 00` | Clear to send variable
TI: | `73 56 00 00` | Acknowledgement of CTS
| `73 15 09 00 00 00 07 8A 37 01 01 0C FF D5 01` | Variable data: 9 bytes (1st Aug 2002, 14:02, clock is ON, 24h format, DD/MM/YY format)
PC: | `23 56 00 00` | Acknowledgement of variable data

####

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

Offset | Length | Description
--- | --- | ---
0 | 2 bytes | Always 00h
2 | 4 bytes | Number of seconds elapsed since January the 1st, 1997 with leap years (2000, 2004, ...).
8 | 1 byte | Date Display Formatting (1: MM/DD/YY, 2: DD/MM/YY, 3: YY/MM/DD)
9 | 1 byte | Time Display Formatting (12/28: AM/PM, 24: 24 hours)

#### Setting Clock

Indeed, setting clock is like sending the '\0x08' variable with Ty=29.
This request works only with OS v2.?? mini.

The protocol for silently sending the clock is shown below :

Step | Direction | Packet
--- | --- | ---
1 |  |  |  | RTS
2 |  | ACK
3 |  | CTS or SKIP/EXIT (see note below)
4 |  | ACK
5 |  | XDP
6 |  | ACK
7 |  | EOT

Note: If the calculator sends a SKIP/EXIT packet in step 3, it does not have enough free memory to accomodate the variable. In this case, step 4 will be the end of the transfer.

Example (PC sending clock to TI):

PC: | `23 C9 0D 00 00 00 29 08 00 00 00 00 00 00 00 00 11 42 00` | Send the "Clock" pseudo-variable
TI: | `73 56 00 00` | Acknowledgement of request
| `73 09 0D 00` | Clear to send variable
PC: | `23 56 00 00` | Acknowledgement of CTS
| `23 15 09 00 00 07 0F FE 74 1F 01 0C FF B3 02` | Variable data
TI: | `73 56 00 00` | Acknowledgement of data
PC: | `23 92 00 00` | End Of Transmission

Flash Transfers | Table of Contents | OS Version

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