Path: utzoo!utgpu!attcan!uunet!seismo!sundc!pitstop!sun!oliveb!amiga!neil From: neil@amiga.UUCP (Neil Katin) Newsgroups: comp.sys.amiga Subject: Re: Request to Commodore (Bad Blocks) Keywords: trackdisk floppy format Message-ID: <2979@amiga.UUCP> Date: 30 Sep 88 21:35:40 GMT References: <8891@cup.portal.com> <5660016@hpcvca.HP.COM> <4774@cbmvax.UUCP> <2666@sugar.uu.net> Reply-To: neil@spam.UUCP (Neil Katin) Organization: Commodore-Amiga Inc, Los Gatos CA Lines: 32 As I understand the proposal, we want to change the way the trackdisk writes to the disk: to sync writes with the index mark. This is supposed to help recover the disk if there is a write error. Reading the disk would be unchanged. What escapes me is why this would help... The trackdisk uses a level 6 interrupt to synchronize with the index mark. Because it is an interrupt (and therefore s/w gets involved) anything that stops or slows down interrupts will "shift" the start of the track. This can include programs that call Disable() or things that starve the processor of cycles (like a hard-disk doing DMA, or 4 bit planes of high res, or the co-processor getting all the cycles, or the blitter with the nasty bit set, etc). Therefore your recovery s/w needs to be able to deal with tracks that don't start at the index mark. I have a different proposal. First of all, what's a bad, but recoverable, disk (in the current format, at least)? It's one that has some good sectors, and some bad ones. It also probably has some sectors that that were left from the last time the disk was written. Currently there is no way to tell if the sectors are from the "new" track, or the "old" track. One way to cure this is to add a two bit "generation" number to each sector. That way you can uniquely identify which sector is new (or old), and you don't need to wait for the extra half rotation for index to roll around. Neil Katin new mail address: {half the world}!sun!katin