This is built off the QEMU automation framework It's also a Dockerfile of ubuntu:25.04 with XRDP, VICE, CC65, and OpenCBM built
The current demo is of multiple C64 RX & TX instances using the ACIA RS232 feature in the VICE emulator, with an IP232 relay server as the backend.
- take an input src directory with C89 compliant C code, build the PRG using CC65, copy it to a D64
- start multiple VICE instances and track the X window ID using the D64
- take screenshots against the VICE instance name
- builds separate RX & TX src dirs
- starts one TX VICE instance with TX disk.D64
- starts one or many RX VICE instances with RX disk.D64
- connects ACIA-RS232 (Swiftlink) to IP232 Python relay server
- RX: sends 1 byte (single char) at set interval
- TX: checks buffer for byte at set interval
it uses python to connect to the vice remote monitor and send key codes to memory remotely
example output from running the Rx & Tx demo. two vice instances are started and RS232 connects. One client sends a byte, and the other checks the ACIA interface for its buffer contents. occasionally a $1C is received which seems to be the keepalive equivalent
taking screenshots is slow, so there is different chars shown for the 3 RX windows due to how long it takes, 1 second per screenshot)
relay server also has statistics reset & collect before shutdown
once the clients are connected the stats can be cleared, and start tracking how many Rx/TX chars were seen from each client.