This tarball contains a dumb hack to read and write DEC RX50 diskettes under FreeBSD. It consists of two pieces, a kernel patch and a set of filters. The kernel patch, which should be applied to SYS/isa/fd.c, adds the RX50 physical format to the FreeBSD floppy driver. The patch is based on FreeBSD 4.0-STABLE, your mileage may vary. However, it is conceptually simple and should be easy enough to apply by hand. Note that this format is identical to the 5.25" 800K format, but with only one side. Also in the kernel/ directory is a patch for MAKEDEV which adds device nodes for the new format, with the name fd[n].rx50. Note that using this node with a drive that is not a high-density 5.25" floppy results in a "device not configured" error. The filters/ directory contains two filters, rx50in and rx50out, which deal with the logical sector interleave performed by the RQDX controllers on the PDP-11 and VAX; ideally, this would be handled in the driver; like I said, this is a dumb hack. Note that the filters read or write the _entire_ disk; short input results in null-padding. This shouldn't be a big deal, but it does result in a bit of extra disk I/O. C'est la vie. They use standard input and standard output, and no output (except for an error message on standard error) is created if the input exceeds the capacity of an RX50. Also keep in mind that non-PDP, non-VAX implementations of the RX50 used different layouts, so the filters are not appropriate, for example, for DECmate or DEC Rainbow disks. The kernel patch is, however, and this is the sole advantage of doing the interleave in userland. EXAMPLES: Create a tar archive of 'directory' on an RX50: tar cf- directory/ | rx50out >/dev/fd1.rx50 Extract a tar archive from an RX50: rx50in