History and bugs
Things it can do
- Version 0.1
-
- Set up a connection between two calculators, uniquely identifying the two and checking if they are running the same program
- Swap a byte without the user having to worry about who goes first
- Send data from one calculator to another in the form of a byte, a block of data (max 255 bytes) or a large block of data (max 65535 bytes)
- Autodetect the calculator model you're compiling for (currently Ti-83 and Ti-83+ series are supported and tested for, Ti-84 "should work" but I don't have a rom image for it) and configure it's hardware control routines to match at compile time
- Alert the coder about errors by always returning a status flag in z (nz is always an indication that an error has occured)
- Be compiled with your requirements only (by commenting what you don't need)
- Use a user-definable timeout duration (you can even turn the feature off)
- Output the selected hardware type (or an error if it wasn't able to detect it) and the number of bytes that the library takes up in your program to the compiler output
- Version 0.2
-
- Send or receive zero terminated strings
- Swap datablocks and strings
- Compile for Ti-82
Things it can't do yet
- Compile for Ti-85/Ti-86 or other calculator models
- Detect a connection "on the fly" (without having to wait at the "waiting for opponent" screen) - though I'm not sure if anyone would want/use this
- Detect data transfer corruption (I plan to implement a simple parity bit check, but I doubt it's neccessary..)
- Detect if the other calculator wants to send anything before going to receive mode (I'm not sure how to implement this yet)
Things it will never be able to do
- Connect more than two calculators; that's what the CLAP project is for
Known bugs and errors
- Connecting a Ti-82 with a Ti-83(+) seems to give quite a bit of connection timeouts. This is probably due to the difference in execution speed between the two models, though it could also be because I can't write proper software for Ti-82 :-)
- Routine bell_connect takes too long to return, and it seems like both calculators return at a different moment. This requires the timeout setting to be higher than should be neccessary.