mist64 / geos

Source code of GEOS 2.0 for the Commodore 64 and 128
414 stars 66 forks source link

Feature drv1541parallel #21

Open ytmytm opened 5 months ago

ytmytm commented 5 months ago

This is a 1541 driver for drives (one or more) connected with a parallel cable. It is about twice as fast as original one.

The cable type is this one: https://sta.c64.org/cbmpar41c.html with VIA pin 18 (CB1) connected to PC2 - it's not the same as DolphinDOS one.

All 1541 connected drives have to use parallel cable, daisy-chained.

This is about twice as fast as regular 1541 driver thanks to GCR decoded on the fly using LFT's routine from Spindle 3.1. Data cache within REU (shadow 1541) had to be removed because there is no space for that within disk driver area anymore. (With cache functions removed this new sector loading routine could be ported back to the original drv1541.s driver)

For VICE testing don't forget to set both the drive settings (Parallel cable = standard) and userport settings (Userport parallel drive cable), like: x64 -parallel8 1 -userportdevice 21

The sector transfer from drive to C64 takes 33 cycles for each byte (5 extra cycles to compute checksum on the drive side) and the handshake test branch on both sides is mostly not taken.