Mit dem folgenden C-Programm ist es möglich, per LOAD und SAVE Programme
über die serielle Schnittstelle auf einen Linuxrechner zu übertragen.
Ein Problem dabei ist, dass dem Casio EOF's offensichtlich fremd sind, und
somit weder der Casio beim LOAD, noch der Empfänger beim SAVE wissen, wann
die Übertragung abgeschlossen ist. Beim SAVE behelfe ich mir mit einem
kleinen Trick: Wenn beim Empfang ein Timeout auftritt, nimmt das Programm an,
die Übertragung sei beendet (und fast immer stimmt das auch).
Das oben schon erwähnte Problem, dass der RS-232 Port des Casio FX-880P
nicht 8-Bit-clean ist, besteht natürlich auch hierbei.
Zur Übertragung von binären Daten müssten diese also, z.B. per base64 Kodierung,
in ASCII-kompatible Zeichen übersetzt werden.
Ich entschied mich aus Geschwindigkeitsgründen dafür, jedes Zeichen als HexCode
zu übertragen, da der Casio die Umwandlung eines Zeichen von/nach Hex halbwegs
schnell bewältigt (im Gegensatz z.B. zur base64 Kodierung).
Das Kommunikationsprogramm auf Casio Seite ist absichtlich sehr minimalistisch
gehalten, um nicht viel tippen zu müssen.
Das Programm wird einfach auf dem Casio gestartet und wartet dann auf Befehle
vom Hostrechner (über RS-232).
Der Sourcecode des Linuxprogrammes ist verschollen, aber ein kurzes Beispiel gibt es hier. Besonders schön ist es nicht, aber es funktioniert. Das Programm entsprechend zu ändern oder zu ergänzen sollte nicht allzu schwer sein.
HTML und Idee von blip@osiris.localnet