• Please review our updated Terms and Rules here

SPACEWAR on PDP-11/05.

MattisLind

Veteran Member
Joined
Sep 30, 2013
Messages
1,158
Location
Stockholm, Sweden
Today I got the SPACEWAR program for PDP-11 that Bill Seiler and Larry Bryant wrote in 1974 working on my PDP-11/05.

The implementation that Bill and Larry did was made for AA11 and AD01 while I only have a AR11 board. The AR11 has 10 bit D/A converters while the AA11 is 12 bit. The AA11 is 2’s complement. The AR11 is not.​
I had to do some adapatations to get it working.

Though I am not 100% sure I got everything right since I thought the sun was supposed to be in the middle. But it is not when I run SPACEWAR.

I got the original source code from Bill Seiler as scanned listing printouts. Then I transcribed it, built it, corrected errors and repeated untill the produced listing was identical to the pdf files.

All code is on my github.

https://github.com/MattisLind/SPACEWAR

Here is a quick video.

https://youtu.be/yn8O4lnbNYM
 
Seems something got wrong. I really believe the sun should be center. Maybe something in the whole code conversion for the 10 bit dac?
But apart from that detail, this is *really* cool. Nice work!
 
You are absolutely right. It is my bad. I thought about it a bit more and then I got it. The code change for 10 bit DACs is trivial. Just two ASR and a ADD. But I added octal 0400 not 01000. I am pretty sure it explains it. Got to try it later on today, after work.
 
Seems something got wrong. I really believe the sun should be center. Maybe something in the whole code conversion for the 10 bit dac?
But apart from that detail, this is *really* cool. Nice work!

Yes, I had the same kind of problems with converting SpaceWar! for the AX08 to the VC8E. Good to see that Mattis fixed it already.
 
Well. That would be a nice add-on service for github. Git push over papartape or perhaps a card deck. A reel of 9 track 1600 bpi tape with all your commits?
 
Hi Mattis,

I've got your modified Spaceware running on my 11/10 with AR11. Now I have to make something with a few joysticks. Fun to see the ships flying around. Thanks for all your work!

Regards, Roland

Spacewar op AR11.jpg
 
Hi Mattis,

I'm looking in more detail to your schematic and documentation. Two things got my attention. You are using the erase signal for the Z input. Normally the intensify is used for that. The Erase is for the storage monitors to erase the screen. I wonder why it is made like this. Any special reason for that and can it be changed to intensify?

Another thing which got my attention was the fire button. When I read your description I think you want it to be connected like the left schematic. There is one problem... When the potentiometer wiper is at the near end of the potentiometer, there is a relatively high power generated in the potentiometer when you pull it to 5V with a switch. Or even a short circuit when the wiper is at the end. So I would suggest that you use a current limiting resistor in the GND. Or maybe use a separate wire with its own pull up or down resistor to a AR11 input for fire.



Joystick AR11.jpg


My idea is to make a little PCB for the AR11 flatcable to a standard 25 pin Tektronix monitor interface together with two 15 pin joystick connectors. I think it would be great if someone can just use the standard 15 pin analog joysticks. And when you use the standard Tektronix signals it is easy to use the AR11 with other software. I did the same for the VC8E, very convenient to have just a flat cable to the monitor. I know that it is not shielded, but I don't see that in the picture quality.

VC8E Tektronix XYZ interface 01.jpg

Regards, Roland
 
I have written about the choice of the erase bit instead of the intensify in the text on the github page. The thing is that the AR11 is a point plotting board. It has a couple of monostable multivibrators that create a delay and then a short pulse when using the intensify bit. Thus creating a dot on screen.

The SPACEWAR code didn't use point plotting. Instead it used the third D/A to control the Z-axis. By setting the highest bit it turned on the beam and be clearing it it turned off the beam. So instead of dots you get connected dots with lines in between.

So I settled for using a generic logic output of the AR11. The Erase bit. But there are others that you could use instead. For example DISP CH02 L, NON STORE, or WRITE THRU L. They are all OC outputs similar to ERASE.

For the fire signal I think you are sort of correct. It depends on what kind of joystick you use. Mine are 5k but since the full range is not used they will never go down to short circuit with ground. I should improve the description so it clearly state that one should be aware of this when choosing the joysticks. The ones I have linked to are not full range and will work without any problem. Model M1 goes from 1.8k to 3.6k. If you select model M2 for example you will get into trouble.
 
Hi Mattis,

Thanks for clarifying that, I missed the detail about the point plotting. You wrote at the pinout that the intensify can be used for Z at other applications. So that should have ringed a bell too. I will make it switchable.

I will see what I can do to make a circuit to use standard joysticks. Maybe others can use that too then.

Regards, Roland
 
You can add a resistor with the same value in each end of the potentiometer for acceleration in case it is a full scale potentiometer. 1k or 2k perhaps.
 
Back
Top