clio.py is a commandline script for transferring files between pc and 41cl. It transfers binary and hex data. It optionally calculates the CRC checksum. However, this makes sense only for files, that contain a full memory page (4096 words), since the YCRC on the 41cl only works for a complete memory page. Some additional remarks: - The script runs under Windows and Linux. - For Linux I would recommend to make the files executable (chmod +x clio.py). - Requirements: -- Python 2.7.x with packages: pyserial, crcmod, binascii. - All transfers should be done with TURBO50-mode. - Sending from 41cl is carried out with Baud 9600. - Receiving at 41cl is carried out with Baud 4800. - Start the receiving process before the sending process. - When making a backup or restore of the user area (0x800xxx) the CRC-checksum is usually of no use since the ram area is modified between the transmision and the CRC calculation. In order to get a meaningful checksum you have to copy/write the user area to another page (e.g. 806) and calculate the checksum there. Here are two examples for programs on the 41cl: For sending to the pc with address and length in ALPHA: LBL "SSEND" TURBO50 SERINI BAUD96 YEXP OFF END E.g. put "800000-0FFF" in ALPHA for a complete backup of the 41cl ram area (page 800). For receiving from the pc with address and length in ALPHA: LBL "SRECV" TURBO50 SERINI BAUD48 YIMP OFF END E.g. put "800000-0FFF" in ALPHA for a complete restore of the 41cl ram area (page 800). Here are the correspong commandlines on the PC: For receiving on the PC enter: For Linux: "./clio.py r /dev/tty... " For Windows: "\python.exe clio.py r COM? " For sending from the PC enter: For Linux: "./clio.py s /dev/tty..." For Windows: "\python.exe clio.py s COM?" The following two programs send and receive a complete 4k-word block and calculate the CRC (YFNSP required): LBL "SSND4K" "|-000-0FFF" ; |- = "Append"-symbol TURBO50 SERINI BAUD96 YEXP "|-****" ; |- = "Append"-symbol 3 AROT ASHF ASHF YCRC AVIEW END LBL "SRCv4K" "|-000-0FFF" ; |- = "Append"-symbol TURBO50 SERINI BAUD48 YIMP "|-****" ; |- = "Append"-symbol 3 AROT ASHF ASHF YCRC AVIEW END Only the three nybble base address is required in ALPHA (e.g. "806" for page 0x806 of the User ram area). The clio.py is written by Bernd Grubert (bgrubert@uni-bremen.de) The script is based on the write1.py and read.py scripts from Antti Louko (Thanks Antti, I hope you don't mind ... :)