PDP-8 Spacewar is 2 player video game for various DEC
12-bit machines that was patterned after the original PDP-1 game. The
game simulates a battle between two ships in a sun centered region
of space.
The links below give a history of the game, how it began and what it became.
The versions of PDP-8 Spacewar that I have found can run
on a few different machine configurations with a common set of
capabilities. The first requirement is a 12-bit PDP-8 instruction set
processor, this includes the PDP-12 laboratory machine. The more
sophisticated version also requires the EAE for faster math
operations. I use a PDP-8/e with 32KW semiconductor memory and an EAE
here.
Next, a point plot video controller is necessary to
display the action. There are a few different display controllers
available, including the VC8/I, VC8E, and the LAB8. These vary in speed
and resolution, but the basic point plot operation is similar for each.
I am using a home-brew implementation of the VC8/I.
The players interact with the machine either via
the front panel switch register or game controllers connected to
digital inputs. One source program describes these digital inputs as
the "blue ribbon connector contingency inputs" of the AX08. I need to
do some more research on the details. I don't have a LAB8, but I do
have some DR8-EA Buffered Digital I/O boards (M863). These provide one
input word and one output word. The game controllers have 4 inputs
each: rotate left, rotate right, thrust and fire. I plan to build
something like the original controller.
The final requirement is a real time clock. I have a KP8-EP Programmable Real Time Clock.
Putting it together
I started with the point plot controller. This was a
little project I did when I discovered that I had two flip chip D/A
converters. There were originally part of a PDP-14 programmable
controller that was used to control a stamping press during the early
'70s.
My version of the VC8/I is almost identical in operation
and features to a real VC8/I, lacking only the light pen feature. I use
this to drive an old 20MHz technicians oscilloscope that I have
modified by adding a blanking input. The display is a little dim and
the phosphor persistence is too short, but it works well enough.
The next item was the Extended Arithmetic Element (EAE).
This option adds harware for higher precision math operations.
Getting There
2007-12-28 -
I added some video of pdp-8 SPACEWAR!
2007-02-21 -
Looks like I have not updated this in a while. After I got the programmable
clock working, I did get spacewar to run. Quite impressive really. I don't have any
controllers yet, so I wired up a terminal block and a jumper wire and by moving the jumper
around simulated button presses. The little scope I have just does not have crisp enough
display to do the whole thing justice. Thats where the Tek RM503 comes in.
I found an Tektronix RM503 oscilloscope. It is pretty clean, but it looks like it was stored
in a damp location because there is some rust on the internal components. This is a rack
mount, 5in. display, 450kHz, single channel scope. The Small Computer Handbook lists
this as the VR01-A display for use with a VC8/I point plot control.
The AA11-D manual shows the intensification pulse as a positive going pulse of 15v for low
intensity and 19.5v for high intensity.
It powers up and the supplies seem pretty close. The horizontal and vertical
amps seem OK and I can do a little X-Y stuff, but the sweep generator does not trigger at all.
Sweep isn't necessary for a point plot display, but there is something wrong and it should
be fixed or at least identified.
2006-09-23 - The
DK8-EP programmable clock does not interrupt the first time I try it. I
also can't read the status registers. A 7400 with a stuck output is the
culprit.
2006-09-19 - I moved the processor boards back into the power supply fan air stream and have not seen any more problems.
It gets hot in the rack when the chassis drawer is
pushed all the way in and all the covers are on. I turned over the fans
in the rack so that they blow down from the top instead of out the top.
Maybe this is not a good idea. I wanted the air to be filtered.
2006-09-14 - The M8330 board arrived today and works fine.
Well at first it seemed to work fine, but after a time it started to fail the diagnostics. It seems to be thermal related.
2006-09-13 - I
need to get an old technicians oscilloscope modified so that it can
handle a blanking signal. There is a blanking circuit for retrace and
for chop modes, but it is AC coupled with a pulse necessary to cause
blanking.
I tapped into the original blanking circuit and it works
quite well with the blanking signal from my display interface. The
correct signal polarity and everything. The AC coupling does not seem
to be a problem as long as the image is refreshed quickly at a rate
fast enough to prevent flicker.
2006-09-12 -
There was a problem with the first M863 that I tried. One of the input
buffers on the device select logic was not working. The second board I
have worked fine. The bad device is an SP380. A little research
indicates that a DS8640 will work in its place. These are a bit rare,
so I will not repair it until I actually need it.
2006-09-11 - The
versions of spacewar that I have can use the processor switch register
as the game controller. One version can also use some inputs supplied
by the Lab-8 option. I have a couple DR8-E (M863) here that I will try
to use instead. The DR8-E is an I/O interphase with one 12-bit word in
and one 12-bit word out. It can be strapped to cause an interupt on an
input transition and has edge detect capability on each input channel.
I will use it as a simple parallel input buffer.
2006-09-10 - OK,
so the first thing I notice is that the CP boards do not match the
online schematics. This machine is very early and all original. The
M8330 Timing Generator does not have all the correct signals on the
over-the-top connector. The EAE specific RESTART signal does not
trigger a restart of the CP timing generator and so the processor stops
dead.
It looks like I need at least a revision B M8330 to get
this to work. Looking more closely at the differences between the older
and new boards, there must have been some timing margin issues because
some of the clocking signals have been moved so that they are generated
slightly earlier by eliminating as many gate delays as possible.
Someone on classiccmp volunteered a board to me, so
hopefully when it gets here I won't see any more compatibility issues
with other boards.
2006-09-08 - Looked
into getting the EAE working again. The EAE boards take over
timing generation during long EAE instructions. There seems
to be a problem when the EAE is done and the CP clock never
restarts. I need to get all the schematics together and find out
what is not working.
2005-03-15 -
Looked at the EAE boards again and it seems like there is a problem
with the way the timing generator is working. Any time an instruction
that stops the CP clock executes, the machine freezes. Debugging is
gonna be really bad because of all the over the top connectors. I
foresee lots of little tap wires and very slow progress.
2003-07-13 - I
got an EAE board set M8340 and M8341 off of eBay. I installed it and it
seems to lock up the processor in a strange way. The processor freezes
and NOTHING except power down can get it restarted.