• Please review our updated Terms and Rules here

Single density 3.5" FM disks?

hjalfi

Experienced Member
Joined
Feb 11, 2017
Messages
265
Location
Zürich, Switzerland
I finally figured out how to make executable files for my Brother word processor, and after going on an extended reverse engineering binge (with ghidra, which is amazing) I have CP/M running on it: https://www.reddit.com/r/retrobattlestations/comments/f01hxo/cpm_on_a_typewriter/

But that's not what I'm asking about. The interesting bit is that I went poking through the Brother ROM trying to find the the disk access routines, to see whether driving the floppy drive controller directly rather than going through the OS was feasible. To my surprise, I found GCR tables. More investigation shows that it's doing the disk flux-to-bits encode and decode in software. It looks like the floppy drive 'controller' simply locks on to the bitstream via a PLL and then streams bits to the CPU through a FIFO. There must be some mechanism for synchronising to the beginning of a disk record, but there doesn't seem to be more to it than that. All the encoded data for a sector is read into a buffer, then the CPU decodes it in one go.

This means it'd be perfectly possible to change the disk format by using different software.

My question: I've seen rumours that single-sided, single-density 3.5" floppy disks did exist at one point. Is this true and does anyone have any pointers? In particular, what clock rate did they run at? The Brother hardware generates bitstreams on disk at 280kHz, at least when I spin the disk at 300rpm; I don't know yet whether the clock rate is configurable.
 
The Brother BPD-100 was used in the Tandy PDD for the Tandy 100. Single sided, single density, 100k external drive. I believe the same model drive is what Brother used in many of their word processors. PDD manuals are common online but I don't see a reference to clock rate.
 
The other single sided 40 track 3.5" floppy drive line were the Epson SMD-110 and 150 which were capable of single density but were mostly used in double density modes. If anyone used it in single density mode, it likely would have been a one-off in Germany and thus not a useful base for trying to get a Brother WP to read/write disks that match the format of something else.

I am presuming that is the goal: to make the Brother WP able to handle another format that more standard systems can manage.
 
I am indeed looking for non-Brother formats. I can get the Brother hardware to read and write FM single-density disks at particular clock rates (well, one clock rate that I know of). I want to know if there are any 'standard' formats which are accessible to the Brother hardware but are also be readable and writable in standard PC drives.

I don't know if the 280kHz which the Brother uses is close enough to the standard SD 250kHz to work (most likely not), but are there other standard PC frequencies in the right range? You'd still have to connect an 80-track 3.5" drive to a PC floppy controller and then tell it it was a SD 5.25" drive, and I also don't know if that would work.
 
I think there's a bit of confusion with nomenclature here--and not necessarily your fault. SD commonly means FM encoding. DD means MFM, HD can mean either FM or MFM and relates to the medium rather than the modulation. I prefer 2D for the 250KHz-capable medium and HD for the 500KHz stuff--but again, that's painting with a broad brush.

Most PC floppy controllers don't do FM.
 
Last edited:
I was thinking that the easiest solution would be to get the Brother WP to work with the Tandy PDD format. The Tandy PDD can be hooked up to a PC through the serial port. No messing with trying to figure out 40 track operation with an 80 track drive nor having to find a FM compatible controller.
 
MFM isn't that difficult if you're bit-banging. ISTR that the 240K brother floppies were driven by a Z80-ish CPU. At least I've got some ROM dumps from a 3550 that appear to be Z80 code. Decoding, on the other hand, is a bit more difficult.

But what the heck--if you're going to rework the firmware, just put something like a CF card on thing and bang it out that way. You can then be proud of a 32GB Brother WP. SPI is easy, even for the lowliest of micros.
 
I have a CP/M port to the machine, and have extensively reverse engineered the ROM using ghidra, so I'm confident it's a Z80. I'm also not replacing the firmware; I'm using the built-in firmware to load executables off disk (I've figured out the format).

However, the floppy isn't quite bitbanged. The ASIC appears to contain the PLL and it feeds bits to the CPU via a FIFO which shows up as a port, so the CPU is reading one byte (of encoded data) at a time. This is accumulated into a buffer and then after each sector it does the GCR decode and checksum. I found the GCR tables --- there are encodings for up to 80 tracks, interestingly. So I'm limited to only clock rates which the ASIC will emit to the floppy drive, and I don't know if it's configurable. What I'm seeing via a 'normal' disk is 280kHz. MFM on that wouldn't work as I have no way to generate the necessary half-clock intervals.

Interfacing to a CF or SD card would be nice, but the machine has no I/O ports --- none whatsoever. The HD64180 processor does have two builtin UARTs with modem control lines plus a high-speed shift register, but they're all wired to ground. Accessing them would involve cutting legs of the processor and it's all 0.07" pitch, so I don't really want to go there.
 
Back
Top