System Overview


The PDP‑11/Hack is a fully functional PDP-11 built around the DCJ11 single chip implementation of a PDP‑11 with many features found in a PDP‑11/70.

The system successfully boots RT-11 V5.3, V5.7 and various versions of RSX-11M and RSX-11MPlus up to the most recent version 4.6 (BL87).

The PDP-11 Hack{width=250px}

In almost all cases I’m using USB to Serial-TTL adapters which have TTL and not RS-232 levels. Therefore the DB-9 ports are not installed and neither are the RS-232 level shifters.

I found out that on a Mac the quality of these USB to Serial adapter matters. In many cases the Cheap Charlie ones do not work reliably. Currently I’m using adapters from FTDI. Those have the big advantage that the driver is already included in macOS and they are identified via a serial number and not via the USB hierarchy. This I found very useful, because no matter where I plug them into the Mac they appear under the same device name, with the serial number being a part of it.

Peters-Mini:~ peter$ ls -l /dev/cu* 
crw-rw-rw-  1 root  wheel   20,   7 Jul 26 07:41 /dev/cu.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   20,   3 Jul 26 17:09 /dev/cu.usbserial-FTHBRGY5
crw-rw-rw-  1 root  wheel   20,   1 Jul 26 17:09 /dev/cu.usbserial-FTHBRL0R
crw-rw-rw-  1 root  wheel   20,   5 Jul 26 17:09 /dev/cu.usbserial-FTHBRL3M
Peters-Mini:~ peter$ 

I labeled all of my FTDI cables so I can easily identify which cable is which device. See the label RL3M on the cable on the photo.

CPLD - Glue Logic

Most of the glue logic uses CPLDs. I’m using Atmel, now Microchip, CPLDs, mostly the larger ATF1508. The development environment is based on CUPL and it is available for free from the Microchip home page and is called WinCUPL. It includes a nice simulator and the design language is very simple but still powerful. The advantage of these CPLDs is that they are real 5V designs that run from 5V and the IO are of course compatible to 5V logic families. The development environment should run on most Windows version but I was using Windows XP and now Windows 10 running in a virtual machine. It even runs using wine, look for the hints found in a youtube video. The ATF1504/8 CPLDs can be programmed with various adapters. I’m using the Atmel USB JTAG programmer ATDH1150USB-K, which is cheap and does the job. You can download the Atmel ISP programming software form the Microchip homepage, which transfers the JED files generated by WinCUPL via the programmer to the CPLD. The CPLD form Atmel support over 10'000 programming cycles and they can be programmed in-circuit.

Microcontrollers

I’m used to Atmel AVR microcontrollers. Therefore whenever I needed a microcontroller I selected one of those. I prefer programming the microcontrollers in assembler and I’m still using AVR Studio 4.19 running on the same virtual machine as WinCUPL and AVR ISP.

Special Remarks

This project is still work in progress. However I have decided to publish the current status as it is fully functional. As this was my largest project so far it also comes with some errors. At each section I will comment on known issues and errors. Of course I have corrected those errors in may schematic and other files, but so far I have not built new boards or cards. None of the errors are important and some little ECOs can fix them. So use the information with caution and read all the details.

Update July 2020

As my personal computer is a Mac running macOS I always used a virtual machine to run the windows only tools from Microchip. Until recently I was using Windows XP. But in the meantime I have upgraded to Windows 10. All tools I use work perfectly fine with Windows 10. Just make sure you use the Windows 7,8,10 compatible version of the ATMISP software. I also switched to AVR Studio 7.0 which supports all the new programmers and processors.

Update January 2021

For a short time, Microchip included a macos version of their avrasm2 assembler. It was included with XC Version 2.05 and 2.10 but was removed again from later versions. You can still download these versions. However they can be installed only on macos Sierra or High Sierra. You can actually use a VM to install one of these versions and then install XC. Once installed you can extract the avrasm2 binary and copy it to your recent macos installation. It works with Catalina and Big Sur. However this version of avrasm4 does not know the new AVR-Dx series and hence always throws a warning which can be ignored. Therefore I do no longer use AVR Studio except as the source of the header files for the various AVR microcontrollers.

Update October 2024

avrasm2 extracted from XC as described previously, although a 64-bit x86 program, runs perfectly well on a ARM based Mac.

Update February 2025 Windows 11 on ARM

Time flies and soon I was the proud owner of an ARM based Mac Notebook, a MacBook Air M3. Parallels officially supports Windows on ARM on ARM based Mac’s. You even get the chance to download Windows 11 on ARM via the Parallels App. Recently, with version 24H2 you can now download the Windows 11 on ARM Image from the microsoft homepage.

However, in the meantime the UTM open source project has made great progress. Where as Parallels is now a subscription, when installing UTM via the App Store this is a small onetime fee. You could even download it for free. But that is not nice if you are going to use UTM regularly. UTM allows you to run Windows on ARM in a virtual machine on any ARM based Mac. You even can emulate a x64 processor and run any x64 based Windows in a virtual machine on ARM based Macs. However this is not recommended with newer Windows as it is extremely slow. I did that once with Windows 10, but it is almost unusable. It works and even WinCUPL and ATMISP install and run.

In order to use Windows 11 on ARM you need a Windows 11 Professional license. The license is architecture agnostic, i.e. licenses are not bound to x64 or ARM processors.

The question however was, will WinCUPL and ATMISP work on Windows on ARM. The answer is yes, in case of WinCUPL this was a no-brainer as the installer just works and WinCUPL starts without any issues. ATMISP however requires you to install the FTDI drivers for Windows on ARM before you run ATMISP the first time. These drivers must be downloaded from the FTDI homepage and the installation process is manual. I highly recommend that you carefully read the installation instructions. Once the drivers and ATMISP is installed you must copy the x86 version of the FTD2XX.dll library to the application folder of ATMISP7. The file can be found in the directory

C:\Users\Peter\Downloads\CDM-v2.12.36.4-for-ARM64-Signed-Distributable\x86

of the driver distribution. Now you should be able to run ATMISP7, the first time you are required to have the programmer plugged to the computer and if you are using a virtual machine you need to connect the USB device to the virtual machine.