C64 Ultimate Punter Transfer Testing
I have been testing reports of Punter download problems when using CCGMS 2021 on the Commodore 64 Ultimate (C64U).
At this point, the problem does not appear to be caused by Color 64 itself.
What was tested
- CCGMS 2021 on the C64 Ultimate
- SwiftLink/ACIA mode
- CPU locked at 1 MHz
- Turbo Control off
- 38400 to 2400 baud
- Punter block sizes of 255, 128, and 64 bytes
- XMODEM on the same connection
- Separately, CCGMS 2021 under VICE at 38400 baud
Results
XMODEM works correctly on the C64U.
Punter, however, produces large numbers of BAD blocks on the C64U. Lowering the baud rate and reducing the Punter block size did not fix the problem.
The same version of CCGMS running under VICE was able to perform a Punter download successfully at 38400 baud with a 255-byte block size. There were only a few retries and the transfer completed normally.
Network capture results
I captured the TCP traffic from both the failing C64U transfer and the successful VICE transfer.
The captures showed something important:
Color 64 was retransmitting the exact same Punter block after each BAD response. The data being sent by the BBS was unchanged.
On the C64U, the same block could be rejected many times as BAD and then later be accepted as GOOD, even though the block contents had not changed.
The main difference appears to be how the incoming TCP data is delivered to the emulated SwiftLink/ACIA.
When a Punter block arrives in one fast burst, the C64U is much more likely to reject it. When the same data arrives spread out over a longer period, the block is accepted.
This strongly suggests a buffering, pacing, or flow-control problem in the C64U TCP-to-SwiftLink/ACIA receive path.
What has been ruled out
- Color 64 sending bad Punter data - it works with other configurations
- CCGMS being incompatible with Color 64 - proven good with VICE.
- Punter block size - did not affect, and using full capability (255) worked fine with VICE
- baud rate alone - did not affect, and using full capability (38400) proven good with VICE
- CPU speed or turbo mode - did not effect
- normal TCP packet loss - proven by network capture.
Current conclusion
Punter itself is working correctly between Color 64 and CCGMS.
The current evidence points instead to the C64 Ultimate receive path, especially how TCP data is buffered and passed into the emulated SwiftLink/ACIA during Punter transfers.
More testing is welcome, especially from other C64 Ultimate users using CCGMS or other terminal programs.