MasterQ32

D-Bus AVR Link

D-Bus ist ein von TI entwickeltes Protokoll für die Kommunikation zwischen ihren grafischen Taschenrechnern. Es ist ein serielles Protokoll, welches eine halb-duplex Verbinding erlaubt sowie eine Methode, Übertragungsfehler anzumerken und eine Sende-Anfrage zu stellen.

Da ich selbst einen TI-83+ besitze, und für die Zukunft diesen in einige meiner Hardware-Projekte einbinden möchte, habe ich mir einen Adapter für dieses Protokoll entworfen.

Dieser Adapter besteht aus drei Teilprojekten:

CalcLink

Das CalcLink-Teilprojekt ist eine kleine Sammlung von Assembler-Programmen, welche auf dem TI-83+ laufen. Sie benutzen die Syscalls von TI-OS, um die Übertragung und Variablenmodifikation durchzuführen.

prgmSEND überträgt den Inhalt der Variable Ans als ASCII-Interpretation. Als Datentyp kann Ans eine reele Zahl (ein Byte), eine reele Liste (ein Byte-Array) oder ein String (ebenfalls ein Byte-Array) annehmen. Der Rückgabewert des Programmes erfolgt ebenfalls über Ans ind ist eine reele Zahl, welche die Anzahl der übertragenen Bytes enthält.

prgmRECEIVE empfängt eine gegebene Anzahl an Bytes und gibt diese in Ans als eine Liste zurück. Die zu empfangende Anzahl an Bytes wird als reele Zahl via Ans übergeben.

prgmRTS prüft, ob eine Sendeanfrage besteht und gibt das Ergebnis dieser Überprüfung in Ans zurück. Eine 0 bedeutet, dass keine Anfrage besteht, eine 1 signalisiert eben diese.

PC-Link

Die pclink-Programmsammlung ist das zweite Teilprojekt. Es enthält einen Satz kleiner Hilfsprogramme für die Arbeit mit dem TI-83+. Alle Programme wurden in C programmiert und nutzen zu großen Teilen die Posix-API.

ti-extract ist ein Werkzeug, welches erlaubt, den Binäranteil einer .8x?-Datei zu extrahieren. Hierbei können die Daten aus Gruppen, Bildern, Programmen, Strings, ... extrahiert werden. Das Programm selbst führt keine Detokenisierung der Daten durch, da nicht gegeben ist, ob die Daten in tokenisierter Form vorliegen.

ti-tokenize liest einen Datenstrom aus der Standardeingabe und übersetzt Tokens des TI-83+-eigenen Formates in eine reine Textform. Hiermit können Strings und Programme in eine menschenlesbare Form gebracht werden. Die Ausgabe erfolt auf der Standardausgabe.

ti-ls ist ein kleines Hilfswerkzeug, welches alle Dateien auf einem TI-83+ auf dem Computer auflistet. Hierbei wird eine an das typische Linux-ls angelehnte Syntax des Listings verwendet.

ti-send ist das Sende-Werkzeug der Programmsammlung. Hiermit können Dateien an den TI-83+ übertragen werden. Die Übertragung erfolt entweder über die normale Übertragung zwischen Taschenrechnern, der empfangende TI-83+ muss also im Link-Menü Receive aktiviert haben, oder aber über die Silent-Linking-Funktionalität, hierbei muss der Taschenrechner im Homescreen oder einem normalen OS-Menü sein (Run-Indicator aus).

ti-receive empfängt eine Datenübertragung vom TI-83+ und packt alle übertragenen Daten in eine Datei namens received.8xp. Es besitzt zur Zeit noch keine Auswertung der Argumentliste.

AVR-Link

Dieses Teilprojekt implementiert die Brücke zwischen TI-83+ und PC. Hierbei wird ein ATmega32 eingesetzt, dieser ist aber durch einen beliebigen AVR-Microcontroller ersetzbar.

Das Projekt besteht aus drei C-Dateien, wovon eine die Hauptdatei der Brücke ist. Die beiden anderen Dateien enthalten jeweils die Implementierung für eines der beiden verwendeten Protokolle: D-Bus und UART.

Nützliche Links

(Copyright © 2012-2017 Felix Queißner, Impressum)