The PDP-8 Family had a series of different Point Plot Display Systems.
They were all similar, but not program compatible.
The basic idea was that two D/A converters were used to generate a deflection
voltage that was applied to an oscilloscope.
The deflection voltages defined a location on the oscilloscope screen.
Once the location was determined a pulse was sent to the oscilloscope to illuminate
the screen.
By rapidly illuminating points on a 512x512 or 1024x1024 point grid,
any pattern could be displayed.
The AX-08 point plot control was part of the LAB-8.
The D/A converter was limited to 9-bits and so the display grid was 512x512.
The LAB-8 interface included a A/D converter that used parts of the display logic and
a discrete input register for switches.
The discrete input was used as part of the game interface for spacewar.
The VC8/I point plot control is similar to the LAB-8 version, but simplified.
The D/A converters are now 10-bit, so the display grid is 1024x1024.
There is no A/D and there is no discrete input capability.
There is a light pen interface, and the ability to interrupt the processor
based on the light pen status.
The VC8-E point plot control is different again.
The earlier controls assumed the displays were fast,
the deflection time would be less than an instruction time, and
therefore a delay was not necessary to allow the beam to settle.
The VC8-E had a flag that indicated when settling was done and the point could be displayed,
so it was able to use a display that had a longer settling time.
Initially, there is no control over the intensity of the point,
although this was changed in later revisions of the option.
VC8/I Using Standard Flip Chips
I have a handful of Flip Chips; a two row, 32 slot backplane; and a KA8-E; so I thought I might try to
duplicate a VC8/I.
The KA8-E (M8350) is a Positive I/O Bus Interface that is equivalent to the PDP8/I Posi-Bus.
The interface allows OMNIBUS processors to connect to Posi-Bus options.
The Posi-Bus can be divided into 4 sections: the Buffered Memory Bus (BMB), the Buffered AC Bus (BAC),
the AC Input Bus (AC In), and the control bus.
The BMB presents an instruction to the I/O device controller.
The control bus issues I/O Pulses (IOP) based on the I/O instruction being executed.
Each I/O instruction can have 3 IOP: IOP1 if bit 11 is set, IOP2 if bit 10 is set, and IOP4 if bit 9 is set.
The pulses are generated sequentially during an instruction and trigger events within the device.
The BAC contains the AC contents for transfer to the I/O device.
AC In provides a return path for data to the AC.
I chose to include the essentials of the VC8/I: a 10-bit X,Y location, and a 3 level brightness control.
The light pen interface and interrupt logic was omitted.
The design summary can be found here.
I very much doubt anybody will replicate this, but if they do, let me know and I will try to help.
For display, I initially used a portable technicians
oscilloscope that I modified for intensification or Z-axis control. I
have since found a Tektronix RM503 oscilloscope. This was actually marketed by DEC as the VR01-A for use as a point plot display.
This new scope necessitated a modification to the
intensification circuits of the controller. The technicians scope (and
the HP scope I also have used) required a negative going pulse to
intensify the displayed point. The Tek scope requires a positive pulse
for intensification. A simple transistor inverter was added to support
the new scope.
SPACEWAR!
One of the goals of using this point plot display was to get some version of a video game working.
After some help getting the EAE functional, I got a version of
SPACEWAR running.
Hardware Description
The logic is almost identical to the VC8I.
The only deviations were to remove the light-pen and to utilize the Flip-Chips that I had available.
More to come.
Thanks to David Gesswein for providing the test code for the initial display pattern shown in the
image snapshot.
He also suggested a few more programs to try.
I have found at least 2 versions of PDP-8 Spacewar to play with.
That will require some control box hacking.
I have DR8/E that should work.
Point-Plot Software
SPACE.PA - This is pretty simple and intended for a LAB-8
SPCWR3.PA - This is much more complex than the previous.
It has compile time options for several different point-plot controls and assumes an EAE.
SPCWR3.PA - This is a version for the VC8I which I have not tested. It includes an update for a VC8E and a DK8EA.
CLOCK.PA - This is a program that displays the time
in digital format on the display. The clock rate is controlled by the
DK8EP Programmable Real-Time Clock Option. The characters are formed
from bitmapped fonts.
clock.tgz - CLOCK.PA along with support files for creating glyphs.
VC8 I/O Instruction Summary
Option
Mnemonic
Code
Operation
VC8/I
DCX
6051
Clear X Position Register
DXL
6052
Load X Position Register
DIX
6054
Intensify Oscilloscope Beam
DXS
6057
Microprogrammed Combination of DCX, DXL and DIX
DCY
6061
Clear Y Position Register
DYL
6062
Load Y Position Register
DIY
6064
Intensify Oscilloscope Beam
DYS
6067
Microprogrammed Combination of DCY, DYL and DIY
DSK (?)
6071
Skip if Light Pen Flag is Set
DPC (?)
6072
Clear Light Pen Flag
DSB n
6074
Set Brightness to n
VC8/E
DILC
6050
Clear Display Logic
DICD
6051
Clear Display Done Flag
DISD
6052
Skip on Display Done Flag
DILX
6053
Load Display X Register
DILY
6054
Load Display Y Register
DIXY
6055
Intensify Oscilloscope Beam
DILE
6056
Load Enable Register
DIRE
6057
Read Enable Register
LAB-8 (AX-08)
DXC
6301
Clear X Position Register
DXL
6302
Load X Position Register
DIS
6304
Intensify Oscilloscope Beam
DYC
6311
Clear Y Position Register
DYL
6312
Load Y Position Register
DIS
6314
Intensify Oscilloscope Beam
DSB n
6324
Set Brightness to n
Point-Plot Links
VC8E Instructions - Doug Jone's description of the VC8E instruction set.
SPACEWAR on a PDP-1 - Exhibition of SPACEWAR on the Computer History Museum PDP-1.