# PDP-14

The PDP-14 was a specialized computer from Digital Equipment Corporation’s Industrial Products Group designed to replace industrial level relay controls for machinery and machine tools that performed repetitive tasks. It was specifically designed to function in the harsh electrical environment encountered in facilities where electric motors, solenoids and arc welders were present, a significant adversity for normal computer electronics. The PDP-14 was specifically designed to be the first level of factory automation, functioning as a programmable logic controller (PLC), through its ability to communicate with a standard DEC PDP-8 minicomputer.
The first unit was delivered in June 1969 and used to control a gear grinding machine. Its design as a "programmable machine controller" was patented in 1973.
The PDP-14 was designed to process Boolean equations, usually expressed as “ladder diagrams” and as such had a programmable read-only program (PROM) memory. Programs were developed using a PDP-8 then tested using a direct connection to the PDP-14. The PDP-14 was put into a check out mode where instructions were provided by the PDP-8. Following checkout, the PDP-8 provided the instructions to be put into the PROM.
Later versions (for example, the PDP-14/30, whose instruction set was not binary compatible) are based on PDP-8 physical packaging technology. There also was a PDP-14/35 and a lower cost/reduced I/O capability PDP-14/L.

## Hardware

The 12-bit PDP-14 could hold a maximum of 4K words for instructions. The system's configuration included a control unit and a number of external boxes:
* I-boxes (BX14) were for discrete inputs from the controlled system. Up to 256 input sources could be addressed.
* O-boxes (BY14) could control up to 255 actuators in the controlled system.
* A-boxes could be filled with timer modules for controlling time-driven events or retentive storage modules which were not cleared with power loss. A-boxes occupied the output address space along with the O-boxes.
* S-boxes were essentially the same as the O-boxes, but there was no real output device. This enabled storing intermediate results. S-boxes also used the shared output address space.
Hence the combined usable output address space of the O-boxes, A-boxes and S-boxes was 255 or fewer.

### Registers

The PDP-14 has seven 12-bit registers:
* IR
* PC1 & PC2
* MB
* SPARE
* INPUT and OUTPUT.

### Instructions

Among the PDP-14 instructions were:
* TRR – to move data between some (but not all) of the registers – TRansfer Register (contents).
          PC1 and SPARE have increment and decrement capabilities, permitting TRR to modify the value loaded into the register.
* JMS – JuMp to Subroutine – at the address specified in the following 12-bit word, saving the return address in PC2
* JMR – JuMp to RETURN from a subroutine, jumps to location saved in PC2. In effect, JMR is a TRR in which PC2 is transferred to PC1.
* SKP – SKiP – is a TRR in which PC1 is incremented by 1.
There were also TEST instructions (Test if something is ON or OFF) and SET instructions (SYN – Set "Y" oN, SYF – Set "Y" ofF).

## Software

The original PDP-14 required that programming be done by DEC.
Subsequently, software development for the PDP-14 was done on another system, the PDP-8. A PDP-8 program named SIM-14 allowed for simulating the PDP-14.

## Photos

* PDP-14
* PDP-14's M740 Instruction decoder module
* PDP-14's M745 PDP-8 Interface