I had often run D.E. WREGE's version of Spacewar! on my PDP-12. But
when I tried to run it on my PDP-8/E with a VC8/E and DEC VT01 (Tek
611), I would get flashing artifacts on the screen in addition to the
normal display.
I initially thought I had a hardware problem - but I could only get my
VC8/E and VT01 combination to fail while running DEC's VC8/E diagnostics
by setting the timing switch on the VC8/E incorrectly.
When I initially looked over the VC8/E code in SPCWAR, it looked O.K.
and I thought the problem was likely in the clock or interrupt code.
After reviewing it extensively and not finding an issue, I tried
multiple hardware clocks (EP, EC) and various VC8/E settings without
success.
Finally, I revisited the VC8/E code in SPCWAR - and the problem turned
out to be a subtle bug in the VC8/E code.
According to DEC's VC8/E writeup in the LAB 8/E manual, a "wait for
done" should be given AFTER the last LOAD command (X or Y) is given and
BEFORE the intensify command. In other words the code should be:
TAD X /Get X coordinate
DILX /Send to VC8/E
TAD Y /Get Y coordinate
DILY /Send to VC8/E
DISD /Skip on done
JMP .-1 /Wait until done
DIXY /Display (Intensify) XY point
...
The original SPCWAR code it was:
Get X
DILX /Send to VC8/E
Get Y
DILY /Send to VC8/E
DIXY /Display (Intensify) XY point
DISD /Skip on done
JMP .-1 /Wait until done
Because of the above coding error, the VC8/E analog output would not
"settle" the correct amount of time (which for a VT01 is about 80
microseconds) because a DIXY command was given immediately after the
DILY. This error created artifacts on the screen because the intensify
command was in effect while the VT01 was still in the process of moving
it's "beam" to the correct location.
BTW: Slower displays, such as the VT01/Tek611/Tek613, do NOT need a
clock to slow down Spacewar to an appropriate speed.
If you would like a copy of the corrected SPCWAR.PA or a listing
(SPCWAR.LS), you can get them via anonymous FTP to
bickleywest.com or
via your browser at
ftp://bickleywest.com/pdp8_spcwar/
While I was at it, I also added an assembly option to start SPCWAR in
Spaceship mode (per the original Spacewar!) as opposed to UFO mode.
Cheers,
Lyle
--
Bickley Consulting West Inc.
http://bickleywest.com
"Black holes are where God is dividing by zero"