Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!mit-eddie!genrad!decvax!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU.UUCP Newsgroups: comp.sys.amiga Subject: MFM format and possible improvments Message-ID: <8702050359.AA01021@cory.Berkeley.EDU> Date: Wed, 4-Feb-87 22:59:13 EST Article-I.D.: cory.8702050359.AA01021 Posted: Wed Feb 4 22:59:13 1987 Date-Received: Sat, 7-Feb-87 10:02:45 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: University of California at Berkeley Lines: 64 Unfortunetly, I'm no expert on disk media and hardware. This is my understanding: The raw bit data which goes into drive represents the existance or lack of a flux reversal on the media. 0=no flux reversal, 1=flux reversal. You need to encode the data such that: (A) You don't go too long without a flux reversal or the phased locked loop will loose it's lock. This means no more than 3 '0' bits in a row. (B) You can't have the peaks too close to each other or you get intersymbol interference due to data shifting. Thus: bit 0101011000110 flux _--__-____-__ This seems to indicate that you cannot have more than 2 '1' bits in a row, but I'm not sure. Does one also have to enforce a 'No more than N peaks in T time' rule also?? MFM encoding works as follows. Each bit is encoded like this: databit bits-to-disk 0 -> *0 (where * is the complement of the previous bit in the stream) 1 -> 01 MFM thus guarentees no more than 3 zero's in a row, and no more than one one in a row. It takes exactly two clocked bits to disk for every bit in the data. 1 0 1 01 00 01 My question is, is it allowed to have two one's in a row, and does one also have to take into account a 'N peaks over T time' limit? Because if two one's in a row IS allowed, you can use the following method to encode the data: 8 data bits -> 11 'disk' bits. the encoding ensures no more than 3 0's in a row, and no more than 2 1's in a row. If you *can* do this, then you have just given yourself about a 30% increase in storage. Current MFM: 11 sectors * (512+32 bytes/sector) = 5984 bytes/track. New method which may or may not work: 16 sectors * (512+32 bytes/sector) = 8704 bytes/track. Making for a 1.25Meg floppy. So is it possible? If so, I'll write a trackdisk driver for the baby. ------------------------ Note on RLL: Can't be done on the Amiga.. it requires you to boost the bit clock for the drive. -Matt