Chuck Guzis wrote:
NEC never claimed that 128-byte MFM sectors would
work. Their
datasheets don't list it--and anyone who's tried to read or write a
128-byte MFM sector using the 765 got some eye-opening results--the
first 80 (decimal) bytes would be transfered, but not the remainder.
Even though IBM didn't specify 128 bytes for FM, I am rather surprised
that an FDC that can handle length code 00 properly in MFM mode wouldn't
in FM mode. I can't really imagine what sort of logic design would lead
to that. Interpreting the 00 length code as 80 bytes is especially
strange, and that makes me wonder if they didn't intentionally do that
in order to be compatible with some proprietary system.
In theory, it's possible write sectors smaller
than 128 bytes, but
I've never run into a system that actually did that.
There's no obvious way to do such a thing as a (somewhat-) compatible
extension of the standard formats. The ID field of a sector contains a
"physical record length" byte, and the FDC uses the value there to
determine how many data bytes to transfer before the CRC. The values
IBM defined are:
00 - 128 bytes (FM only)
01 - 256 bytes
02 - 512 bytes
03 - 1024 bytes (MFM only)
There are non-IBM formats using the obvious extension:
04 - 2048 bytes
05 - 4096 bytes
I wouldn't be the least bit surprised if some FDC chips didn't work
properly with those. In particular, I would expect some FDCs to use
only the low two bits of the byte, and interpret 04 and 05 as meaning
128 and 256 bytes, respectively. However, I have not tried this.