"Bill Garber" wrote: > "Bryan Parkoff" wrote: > : It is what I understand that there are two different sequencer logic > : PROMs. First is to use 9 bits that it can only have one zero while > : second is to use 10 bits that it can only have two zeros. It is why 13 > : sectors use 9 bits while 16 sectors uses 10 bits. > : Do you have 13 sector PROM that you can spare? > > The firmware can handle how many zero bits to look for. > State machine only does what it's told to do. The state machine is different. The 16 sector upgrade consisted of two chips: PROMs P5A and P6A, one of which is the logic state sequencer, and the other is the boot firmware. The 16 sector version of the logic state sequencer is able to read and write 13 sector disks, but not the other way around. According to Inside the Apple IIe, there were changes in the read logic to improve the reliability of reading 16-sector data. I expect it changed the timing tolerances to cope better with two adjacent zero bits. Inside the Apple IIe has a full listing of the DOS 3.2 and 3.3 versions of the logic state sequencer, and there are differences in the code for the read section. I haven't looked at it in detail. > I would think the "State Machine" ROM would be the > same. The data would be the same way per sector, > just 3 less sectors per track. There is more to it than just the number of sectors per track. There are differences in the way the disk bytes are encoded on 13-sector and 16-sector disks. 13-sector uses a "5-and-3" encoding technique, while 16-sector uses "6-and-2". (These terms refer to how data bytes are split into bits to form disk bytes: "6-and-2" means that each data byte of 8 bits is broken into a 6-bit disk byte and 2 bits which are combined with 2 bits from each of two other data bytes to form another disk byte.) The disk bytes are encoded using a table lookup technique (Group Code Recording), which only allows some patterns of 1 and 0 bits to be written to the disk (the restrictions are due to the reliability of readback via the analog circuitry in the drive). From memory, the rules for 13-sector disks are: - Bit 7 must be set. (This is a requirement of the Disk ][ controller for synchronization.) - No byte may contain two consecutive zero bits. If you work out all the possible combinations, this gives slightly more than 32 valid disk bytes, which is sufficient to allow a 5-bit encoding technique. For 16-sector disks, they relaxed the restrictions slightly: - No byte may contain more than one pair of consecutive zero bits. This gives slightly more than 64 valid disk bytes, which is enough to do a 6-bit encoding technique. Encoding one more data bit per disk byte allows fewer disk bytes to be used to store an entire sector (about 341 disk bytes instead of 410), so the sectors occupy less space and more can be fit onto each track. -- David Empson dempson@actrix.gen.nz