Amiga Floppy Drive Research – Part 6

Not much done today, but got and hour and a half in this evening.  PIC code has now been modified to scan the whole disk, pretty much as follows:

  • Select Drive
  • Motor On
  • Seek to Track Zero
  • Select Side 0
  • Wait 250ms
  • Select Side 1
  • Wait 250ms
  • Step head

…and do the above for 80 cylinders.

I had modified the Saleae binary parsing code to something like this to do some validation:

 if (sectorStruct.SectorNumber >= 0 && sectorStruct.SectorNumber <= 10)
 {
	 if (sectorStruct.TrackNumber >= 0 && sectorStruct.TrackNumber <= 159)
	 {
		 if (sectorStruct.DataChecksum == dataChecksum)
		 {
			 if (sectorStruct.HeaderChecksum == headerChecksum)
			 {
				 blocksFound[sectorStruct.TrackNumber * 11 + sectorStruct.SectorNumber] = true;
			 }
		 }
	 }
 }

Looks promising so far.  The capture is around 350MB and all 1760 blocks appear to have been found!  The main thing I did notice is that towards cylinder 80 the bit timing is much less precise than on the outer tracks and had to modify the tolerances.  Tomorrow I will store the decoded sectors into the array and write out a binary (i.e. and ADF file) and see what ADFView and/or WinUAE makes of it.  I am quietly confident.

Some other interesting things I’ve started to notice – some sectors have 2-3 bits of junk between them.  Must investigate this further at some point.

Leave a Reply

Your email address will not be published. Required fields are marked *