Without any modification Commodore 64 Serial Bus operates at 3200 bit/s (*1).
Effective maximum speed for C64+1541 is about 400 bytes/s.
Sustained speed with turn around and alike is about 300 bytes/s.
I am developing some software for the Commodore 64, and my intention is to use the 1541 as a coprocessor. I'll have the 1541 compute some data for me, and then retrieve this data over the serial line.
Cool. Has been done a few times. First I know of is from ~1984 when a friend used two of his 1541 to calculate a Mandelbrot set, each doing alternating lines, while the C64 just transferred and displayed data.
Maximum application I've ever seen was two C64, with four drives each, hooked up to a PC. So eight 6502 calculating, two shoveling and one 8088 displaying :))
Unless I rethink my design, I will need to transfer a payload of around 40 bytes per frame. If I use the KERNAL routines, what kinds of speeds can I anticipate?
That might not work. 40 bytes per frame means 40x60=2400 bytes/s or about eight times the 300 bytes/s such an application may get using the standard routines.
A C128 with 1571 and burst mode my bring you there - well, or using a 1571 with a burst mode driver on the C64. Or as alternative using Jiffy-DOS. Both this might still be rather tight when it has to happen within screen frame timing.
Then again, since you're already downloading an application to the 1541, you may want to look if there'S still enough space left to add a custom transfer routine - maybe using some of the user commands? Such a routine could work close around timing issues due video access/frame structure.
*1 - This is the effective netto data rate. Counting speed on the Commodore Serial Bus isn't as easy as with regular serial, as timing changes a lot on what part of the protocol we look at. This document is a good compilation of various information pices.
CNT
nor theSP
pins on either CIA are connected to it.