Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!cornell!rochester!udel!mmdf From: neil%amiga.uucp@UDEL.EDU Newsgroups: comp.sys.amiga Subject: Re: Request to Commodore (Bad Blocks) Message-ID: <4441@louie.udel.EDU> Date: 3 Oct 88 22:31:18 GMT Sender: mmdf@udel.EDU Lines: 48 Received: from CUNYVM by CUNYVM.BITNET (Mailer X2.00) with BSMTP id 7926; Sat, 01 Oct 88 01:08:08 EDT Received: from UDEL.EDU by CUNYVM.CUNY.EDU (IBM VM SMTP R1.1) with TCP; Sat, 01 Oct 88 01:07:25 EDT Received: from Louie.UDEL.EDU by Louie.UDEL.EDU id ae17521; 30 Sep 88 20:58 EDT Received: by Louie.UDEL.EDU id af17361; 30 Sep 88 20:48 EDT Received: from USENET by Louie.UDEL.EDU id aa17103; 30 Sep 88 20:24 EDT From: Neil Katin Subject: Re: Request to Commodore (Bad Blocks) Keywords: trackdisk floppy format Message-ID: <2979@amiga.UUCP> Date: 30 Sep 88 21:35:40 GMT Organization: Commodore-Amiga Inc, Los Gatos CA To: amiga-relay@UDEL.EDU Sender: amiga-relay-request@UDEL.EDU 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