Universal Harddisk Controller for PDP-11/Hack
Finally a working MSCP Emulation
I built quite a few disk emulators, for the QBUS64 of the PDP‑11/Hack and for the real Q-BUS. They were all emulating an RLV12 controller with four RL01/02 disks attached.
Then I built Disk Emulator Version 4.0 with MSCP Emulation in mind. But for a long time it only served as the development platform for various ideas and only was another RLV12 emulator.
Then I decided to start with the MSCP Emulator. Although the Version 4.0 unit I built was in a rather questionable state, due to many modifications and wires I have added for debugging purpose, it was in fact still a very reliable piece of hardware and after removing all but the second last bug in the firmware it was a perfectly working RLV12 controller.

After translating the MACRO-11 and C source code of the RQDX3 source code posted in the following thread VCFED I started to integrate the MSCP modules into the RLV12 emulator with the intention to finally switch from RLV12 to MSCP once everything was in place.
When the MSCP Emulation was working and I was able to boot into RT-11 V5.3, RT-11 V5.7, RSX-11M+ V4.6 and BSD 2.11 I decided to first built a real Q-BUS version of the MSCP Emulator, the Disk Emulator V5.0. And as always there was a revision required to straighten the errors which then became Disk Emulator V5.1. Based on this I then built a Disk Emulator V5.1 for the QBUS64 of the PDP‑11/Hack.
Already when I designed the Q-BUS version the goal was to have the Q-BUS and the QBUS64 version as identical as possible. Most importantly the interface between the MCU and the CPLD to talk to the Q-BUS had to be exactly the same and whenever possible it should run the same firmware. This means I had to use the same CPLD interface and the same allocation of GPIOs for all signals.
Disk Emulator V5.1 for the QBUS64
This is a picture of the DISK Emulator hardware version v5-1 for the QBUS64.

As I have found some cosmetic erros I decided to publish the updated version with revision V5-1a DISKEmu64-v5-1a on github.
PCB
The hardware uses pretty much the same components as the Q-BUS version of the DISK Emulator, with the exception of the BUS interface which on the Q-BUS version requires additional components and on the QBUS64 verions the bus connects directly to the CPLDs. Also the Q-BUS uses edge connectors and the QBUS64 uses DIN41612 connectors.
CPLD Design Files
To program the CPLDs you need a chain file and the JEDEC files. Note that the path in the chain files for the JEDEC files are absolute and the example I provide will most likely not work for you, you will have to change the path names to the JEDEC files.
For the QBUS64 version you need the JEDEC file DISKEMUMAIN.jed for the ATF1508 and the JEDEC file DISKEMUDMA.jed for the ATF1504 which can be found on github at the github repository DISKEmu-v5-1-CPLD.
Download the newest release, which contains the design files, a sample chain file and the necessary JEDEC files. Make sure you update the chain file before programming the CPLDs.
MCU Firmware
The firmware is the same as for the real Q-BUS version of the MSCP Emulator. Please read the corresponding article and use the firmware in the download section.
In the meantime I have hosted the repository for the source file on my repository MSCPEmu-v4-0. The HEX files for the MSCP and the RLV12 emulation are included in the releases.
For more information and documentation about the command line interface please read the pages about the MSCP Emulator for the real Q-BUS.