1571 burst mode read & multiple sectors

From: Michiel Boland <michiel_at_boland.org>
Date: Sun, 15 Oct 2023 22:05:37 +0200
Message-ID: <4341fcf2-04fc-4935-a6da-081394105d40_at_boland.org>
Hi. I am trying to image DS-DD 5.25" (360K) MS-DOS floppies for preservation. I 
did have a PC 5.25" floppy drive but that broke sometime during the last ten years.

So now I am trying to use a 1571 and an ultimate64. The ultimate64 can do fast 
serial using the CNT/SP lines on either CIAs. (I'm using CIA1 FWIW.)

The idea is to read all sectors to the REU in order, and then I can take a dump 
of that REU image to storage on the ultimate64.

Currently I am having some trouble getting this to work properly. I am using the 
'burst commands' (chapter 10 in the 1571 user's guide.)

The documentation says that I can call READ with a certain number of sectors, 
then for each sector I will get a status byte, followed by the sector contents.

So
   1 byte status for sector1
   512 bytes contents of sector1
   1 byte status for sector2
   512 bytes contents of sector2
   1 byte status for sector3
   512 bytes contents of sector3
   etc.

This appears to work, but only when NUMBER OF SECTORS is 2 or less. When NUMBER 
OF SECTORS is 3 or more, I can read two sectors, but then when I fast-read the 
status for the third sector, the disk never sends anything. Is this a known issue?

Also I am confused as to in what order the sectors are read. If I tell it to 
read two sectors starting from sector 1, does it read sector 1 and sector 2, or 
does it read sector 1 and then the next sector that happens to be underneath the 
drive head? What role does the interleave setting play here?

Note that I appear to be getting something that looks like a valid image with 
NUMBER OF SECTORS set to 2, but I would ideally just like to transfer more 
sectors at the same time (ideally an entire track/side). One sector at a time is 
very slow.

Hopefully someone here has any experience with this.

Cheers,
Michiel
Received on 2023-10-15 23:00:03

Archive generated by hypermail 2.3.0.