First are read 256 octets, they hold 256 x 6-bit bytes and next 86 octets give additional 2 bits.
I succeeded to fix loading with help of temp 256-bytes buffer without any speed impact!

Here is demo:
Here are image and sources:
I always try to avoid reading other people's implementations before writing my own but luckily I have just more or less completed my DSK file handling so it felt like an ideal moment to offer a second pair of eyes.
Code: Select all
FCA8: 38 WAIT SEC
FCA9: 48 WAIT2 PHA
FCAA: E9 01 WAIT3 SBC #$01
FCAC: D0 FC BNE WAIT3 ;1.0204 USEC
FCAE: 68 PLA ;(13+27/2*A+5/2*A*A)
FCAF: E9 01 SBC #$01
FCB1: D0 F6 BNE WAIT2
FCB3: 60 RTS