debrouxl / tilibs

TILP (formerly GtkTiLink) can transfer data between Texas Instruments graphing calculators and a computer. It works with all link cables (parallel, serial, Black/Gray/Silver/Direct Link) and it supports the TI-Z80 series (73..86), the TI-eZ80 series (83PCE, 84+CE), the TI-68k series (89, 92, 92+, V200, 89T) and the Nspire series (Nspire Clickpad / Touchpad / CX, both CAS and non-CAS)
http://lpg.ticalc.org/prj_tilp
67 stars 22 forks source link

libti*: add support for the CBL/CBR/CBL2/CBR2/LabPro/TI-Presenter #16

Open debrouxl opened 7 years ago

debrouxl commented 7 years ago

Suggested by critor 2017/02/28.

Quick implementation notes:

debrouxl commented 5 years ago

NTS: there's a CBL2 OS upgrade in e.g. the TI-Connect 4.0.0.218 distribution.

debrouxl commented 5 years ago

The initial, reduced version of the support for these models now lives on the experimental2 branch. Adding it has been far more complex than imagined, because a new area of the DBUS protocol had to be reverse-engineered (thanks to the existing capabilities of libticables, libticalcs, TIEmu and TilEm) and then implemented in libticalcs; also, I greatly expanded test_ticalcs_2's scriptability, to help with testing.

Probing and obtaining a bit of information from the 5 lab equipments works, but the code has a number of functional holes: I only implemented support for the computer faking a TI-68k calculator; depending on the calculator model, the TI-Z80 series probably uses at least two variants of another protocol, as I saw two different formats for floating-point numbers. Also, I only implemented support for exchanging lists, wheras scalar expressions, indexed access in lists and matrices, sometimes strings and even pictures are supported for Get in most or some conditions... and even the list parser is simplistic: no support for spaces around '{', ',' and '}', no support for '.' (effectively restricting lists to integer values).