This project provides a basic implementation for the D-BUS protocol that is used by Texas Instruments Calculates like the TI-83+.
The protocol is a simple, half-duplex serial protocol which allows basic control flow like error transmission and a simple "request to send" facility. To read more about the protocol, search for Link Protocol Guide at the bottom of this page.
The current implementation provides two modes of operation:
- Active Transceiver
- Passive "spy-on-wire" mode
Each mode of operation is a synchronous mode with which only blocking communication can be achieved.
pclink contains some tools that implement a basic
calculator communication toolset for sending and receiving data
as well as transmitting programs in Silent Mode (planned).
ti-send will transfer one or more files to the calculator. Right now it can
handle a single
.8x* file, supports silent linking and has not that much
ti-receive will receive one or more transmissions from the
calculator and store them into a file.
ti-ls will list the calculators directory contents in a similar style to
ls command delivered with GNU/Linux.
ti-extract is a tool that allows to extract the data stored in an
TI83F file (
It can be used to get the information stored in a program file.
ti-tokenize is a tool that allows detokenization of a tokenized string.
Not all tokens are supported yet, also the reverse mode (tokenization)
is not supported.
A small tool for the TI83+ that allows sending bytes from the calculators to another device.
prgmSEND takes the value to send in
Ans. It can either be a real value,
the a single byte will be sent. If
Ans is a string, it will be interpreted
as a byte array and each byte will be sent.
Ans can also be a list, then every
list entry will be taken as a single byte and beeing sent.
prgmSEND will put the number of successfully bytes sent into
If it is zero, the transmission failed.
Another tool for the calculator that allows receiving a given number of bytes from the link port.
prgmRECEIVE takes the max. number of bytes to receive in
Ans. After receiving
either the given number of bytes or the system times out, the data will be returned in
Ans as a list containing all bytes received.
Note: If nothing was received, an empty list is returned. This can lead to the error
Invalid Dim when trying to access the list. Store into list variable and then check with
The project isn't completed yet, the target is to create a C and C++ API for the D-Bus protocol with synchronous and asynchronous IO.
- Create asynchronous C API
- Create a timer-based approach for asynchronous IO
- Create protocol objects for C++ that allows multiple communcation objects
- Synchronous communication
- Asynchronous communcation