PDP2011 has been to VCF

Jack Rubin sent me this picture of his DE0 board running RT11 in front of a real PDP11/70. Taken during the VCF East 8.0, which took place last weekend. It’s something of a classic ‘old meets new’ picture – there being something like 40 years of age difference in it. Would have liked to be there and see it for real – but it’s on the other side of the ocean from where I live. Still makes me proud to see my work on display. Thanks Jack!
Over the last weeks, I’ve been working on an Ethernet interface for the PDP – a DEUNA, to be more exact. And it’s basically only the implementation of the controller; the real Ethernet stuff is implemented in a tiny Michrochip ENC624J600 device that I interface via SPI. The DEUNA is working a bit already, but there is still a major bug in it – it appears to cause memory corruption. I’ve been able to do some pings to a board running BSD2.11, and even telnetted to it a couple of times, but it tends to crash often. I expect that there is a bug in the bus master logic, and that will take me some time to find. Especially since the summer is here, and it’s time to go outside and spend time on outdoor projects.
PDP2011 in front of a real PDP11/70


Dave Riley May 14, 2012

VCF East was a blast! It was really fun to see your code running on the DE0 right next to a real /70. Looking forward to the Ethernet stuff!

Dave McGuire May 15, 2012

That’s my PDP-11/70 in the picture. 🙂 I very much enjoyed hacking on PDP2011 at VCF. Excellent work! I hope to run it here soon.

Thomas Höffken August 8, 2012

If i saw your webpage i bought direct a DE0-Board !
Great Work!
I could start the bitstreams, but how can i create a bootable unix immage on a SD-Card?
Can you help?

Sytse August 8, 2012

Hi Thomas
What you could start with is the 1145 bitstream, and use the rk controller to play with unix version 5 – it’s on a single rk image, so it makes for easy verification that everything works. Unix version 6 will work too – but, since it’s distributed as 4 rk images, you need to concatenate the images onto the sd card. For instance like this, if you use linux and your sd card is at /dev/sdc:

dd if=unix0_v6_rk.dsk of=/dev/sdc
dd seek=6144 if=unix1_v6_rk.dsk of=/dev/sdc
dd seek=12288 if=unix2_v6_rk.dsk of=/dev/sdc
dd seek=18432 if=unix3_v6_rk.dsk of=/dev/sdc

Or unix v7 – but that will require that you use the sdfmt tool to format the image, because the v7 image is on rl disks. Ie, something like

sdfmt -i unix_v7_rl.dsk -o v7-sdfmt.img
dd if=v7-sdfmt.img of=/dev/sdc

while of course being very careful about what you set on the of= parameter to dd.
A somewhat more complicated setup is with 2.11BSD on the 11/70 bitstream. It has a rp06 drive, however, the core of the 11/70 does not have a floating point unit in this bitstream – it doesn’t all fit into the fpga. So, for the kernel to boot, you need to have at least patch level 447, because that has the floating point emulation working properly. Easiest is to generate that from tape images using simh, and apply the patches up to 447 one by one, then rebuild the kernel, copy the simh disk image to the sdcard and boot the board from that. If you’re interested, I can also put up a copy of my image somewhere for you to download.
Let me know if there’s something I missed,

Thomas Höffken August 29, 2012

Hello Sytse,
thank you for your help, it’s working now.:-)
The first trys’s to copy the immages via dd on the SD-Card didn’t work util i format them with linux (ubuntu). After formating the SD with linux i copyied the immage with dd to SD. After that i put it into the DE0 and then it booted. Very good. If you want to readout the SD now with linux you can’t read anything. So you must first destroy the preformated SD-File system and then use dd.

Sytse September 1, 2012

If the SD card has the ‘normal’ fat filesystem layout still on it, most distro’s will automount it. And if the filesystems on the card are mounted, it is in theory possible that some versions of dd will refuse to write to it – it would be a very sensible thing to do so; after all, dd-ing to a mounted filesystem is a very bad idea. I’m not sure if this is what happened, but it seems like a possibility.
After the first time that you’ve written a disk image to the card, it no longer has a valid partition table – so it can no longer be mounted in the normal way. You can still copy the image off the card, and then for instance use it as a backup, or to run in simh – but you’d have to use count and possibly seek parameters on the dd command to make sure you take the right part of the sd card to be copied.