A description of the RX50 floppy controller subsystem of the DECmate II/III Excerpted from an email message from Charles Lasner --------------------------------------------------------------------------- Basically, the RX subsystem is known as an "RX emulator". If the RX78 option is available, you have to select it with AC=4000 or 4001 (depending on the pair, and issuing 6750. This disables the 8051 entirely. Otherwise, it defaults to RX50 pair 0 or 1 as the AC=0 or 1 for 6750. (Power-on default is pair 0.) The thing accepts only RX01 commands except for a curious anomaly: 8-bit mode needs the sending of the extra byte ala 8-bit RX02, even though there is no info to pass. Otherwise, it's an RX01 with different geometry (80 tracks not 77, 10 sectors not 26 or so, and 512 bytes/sector not 128). 12-bit transfer is curious though, not 12-bit bytes like the 01/02, but 12 bits every 16 where the first 8 are all used, then the next 4 become the high-order PDP-8 wor bits, and the next 4 are wasted; repeat the pattern 256 times. This is the soul of the non-bootable system problem if you recall. You can't interact with it any more than that: the set media density command is a NOP just like on an RX01, and the command to write deleted data works, though I don't know if the difference is notable, because I didn't check if the status register reads it back as a deleted data marked sector like an RX01. All else does the same, read error register, read status, fill, empty, read, write. Unit select is identical. IF the media is a PC-type low-density disk, you can read the 8-10 sectors, but you can't write on a 40-track disk. In fact, the only way to tell it's a 40 track disk is to not find any higher tracks. This is useful to read one-sided PC 160-180K disks, but not much else. There ain't much else. It doesn't use a PIC chip, so the instructions are RX compatible totally. Most interfaces are 1/5 of the PIC chips. (6121). The 8051 interprets these commands and does its own thing. DEC made their own data separator because the 179x chips need it; this is not a 765 like in a PC. You will have trouble doing other than 250 KHz. My understanding of the difference between the 1793 and 1796 is that the 6 is a double-sided disk controller. There was a spec for how to do double-sidedness for the RX03 prototype which is in RT-11 and OS/8 handlers. Basically, those drives add an additional hole (I have the media for it) that makes an LED photocell combination work and makes the low-bit of the status register turn on if a two-side disk is present. (I punched extra holes in them to make them flippy disks :-).) BTw, you have to figure out that it's not an RX01 getting a parity error, because it's the same bit! (There are ways; P?S/8 "knows" what to do) There is an active "reserved" bit in every RX02 which is the head-select, and it always works! (Don't set it in any practical code, because it makes it not work :-(.) So, this could be a prototype for a modified RX controller section if you can make it "know" about the double-sidedness of a drive/media. All else is the 8051's business. (I might have that code too!) It talks to the 1793 or 6 in -3 mode. (one-sided only). This is why we only want to use the second RX port connector to make a double-sided disk support that way; still compatible for software harder to modify like CP/M and MS-DOS, but still doable for P?S?8 and OS/278, yet totally compatible. Use the other socket for side select, and use isolation diodes in the cable to prevent false select when the drive selects on multiple DS values. Not much else in there on the RX issue. The ROM doesn't do anything extraordinary with it either. I hear that the RX50 is not brought out in two pairs on the DM III, so you can't even upgrade it that way. Also, that the DM III+ can't read the 40-trac disks at all, so it is incompatible on that point. Remember, it uses the RX33 with one side, and at 300 KHz to compensate for the 360 RPM.