My PDP-8/E is controlled by two custom boards that attach to the parallel port of the server running my web site. I made it about 1998. I haven't been able to find when I announced it was available to the PDP-8 group but I think it has been online and mostly working since 1998 or 1999.
The first board has logic to perform the functions of the front panel under control of the server. It is also a single cycle data break (DMA) device allowing the server to read and write memory while the PDP-8 is running. This is used when transferring media images to or from the PDP-8. The board is based around a Xilinx XC95216 CPLD. At the time I didn't know of a source of quad wide boards so I bought two double wide boards and fastened them together. Some of the components on headers are a little too close to the next board so various covers are on the board to prevent any damage.
At this point almost everything on the board is obsolete. I made the board around 1998 with last change in 2000. The CPLD code for the pdp-8 control/front panel is here. fpanel2.prj is the Xilinx Foundation project file and front.abl the Abel source code. Abel was used since I was going to use an Atmel part but had too many problems with the tools. The pdp-8 power control is here. power.prj is the Xilinx foundation project file and front.abl is the Abel source code. Naming is funny since it looked like I started with the front panel code to create this.
When you use the web interface to have the PDP-8 run a program, the server uses the front panel mode to download the code needed to transfer a media image. It then starts the transfer code running and the server downloads the image contents into memory using the data break mode while the PDP-8 writes the memory to the disk/tape. The server and PDP-8 use memory locations to handshake so they stay in step. After the image is downloaded the server uses the front panel mode to boot the image. The server then polls the front panel to get the current light status. The lights are polled rapidly and the state averaged to determine the intensity the particular "bulb" should be displayed at. The intensity for all the lighs are periodically sent to the java program. Due to the sampling the emulated lights tend to flicker more than the real PDP-8 but the display is pretty close. When you are running a shortcut where the interface is entering the commands needed to start the program the java program is processing a file with expect-send sequences. That allows the program to enter the commands at the correct time. Here are pictures of the top and bottom of the PDP-8 control board.
The second board controls the power controllers to allow the PDP-8 to be turned on and off. It uses a Xilinx XC9572 to implement the logic to interface to the parallel port cable. Each board has a different address programmed in so the server can talk to them separately. The board also has a wire to a smoke detector above the machine which will turn power to the PDP-8 off if the smoke detector goes off. The board also has some voltage regulators for the VC8E. The VC8E normally had a special high quality regulated supply but I don't have it so I regulated down the 799 power supply I am using for the DECtape drive. This board is also wirewrap. The back is covered with tape to protect it so I didn't bother with a picture.
The server to PDP-8 interface is C code which accepts network connections and uses the PC parallel port to control the custom boards. It also has a simple telnet server code which attaches a network connection to the server serial ports which go to the serial cards in the 8/E.
The interface is a Java program which allows selection of programs to run (shortcut menu) or images to load and boot. The front panel window is based on code from Doug Jones' emulator mauled into Java.
If you need more information on my control interface email me and I can see if I can dig it up.