8BIT wrote:
A fast search on "1541 fastload source" came up with this:
Huh, I didn't find this information before. Thanks for the link. The code is still fairly dense, but Andy must have been writing for a magazine article, because it's a lot more commented than most other similar sources I've seen.
That being said, I'm surprised to find that he's still handshaking on individual bits (in fact, if you look at the 1541 code, you'll find that the C64 drives the serial shifting at all times -- in effect, the C64 is driving the 1541 like a single-ended SPI device!). I can think of two ways of speeding up Finkel's code further:
1) Respond to edge-triggering. Transfer two bits per clock cycle, one on the rising edge, and one on the falling edge.
2) Use asynchronous transmission, and drive both the clock and data lines in parallel, as moonshine describes.
I'll have to play with this to see the effects. As time permits, of course. This is just idle curiosity at the moment, but I can see myself making use of this knowledge in the future.