A PDP-11 On A Chip

If you entered the world of professional computing sometime in the 1960s or 1970s there is a high probability that you would have found yourself working on a minicomputer. These were a class of computer smaller than the colossal mainframes of the day, with a price tag that put them within the range of medium-sized companies and institutions rather than large corporations or government-funded entities. Physically they were not small machines, but compared to the mainframes they did not require a special building to house them, or a high-power electrical supply.

A PDP-11 at The National Museum Of Computing, Bletchley, UK.
A PDP-11 at The National Museum Of Computing, Bletchley, UK.

One of the most prominent among the suppliers of minicomputers was Digital Equipment Corporation, otherwise known as DEC. Their PDP line of machines dominated the market, and can be found in the ancestry of many of the things we take for granted today. The first UNIX development in 1969 for instance was performed on a DEC PDP-7.

DEC’s flagship product line of the 1970s was the 16-bit PDP-11 series, launched in 1970 and continuing in production until sometime in the late 1990s. Huge numbers of these machines were sold, and it is likely that nearly all adults reading this have at some time or other encountered one at work even if we are unaware that the supermarket till receipt, invoice, or doctor’s appointment slip in our hand was processed on it.

During that over-20-year lifespan of course DEC did not retain the 74 logic based architecture of the earliest model. Successive PDP-11 generations featured ever greater integration of their processor, culminating by the 1980s in the J-11, a CMOS microprocessor implementation of a PDP-11/70. This took the form of two integrated circuits mounted on a large 60-pin DIP ceramic wafer. It was one of these devices that came the way of [bhilpert], and instead of retaining it as a curio he decided to see if he could make it work.

The PDP-11 processors had a useful feature: a debugging console built into their hardware. This means that it should be a relatively simple task to bring up a PDP-11 processor like the J-11 without providing the rest of the PDP-11 to support it, and it was this task that he set about performing. Providing a 6402 UART at the address expected of the console with a bit of 74 glue logic, a bit more 74 for an address latch, and a couple of  6264 8K by 8 RAM chips gave him a very simple but functional PDP-11 on a breadboard. He found it would run with a clock speed as high as 11MHz, but baulked at a 14MHz crystal. He suggests that the breadboard layout may be responsible for this. Hand-keying a couple of test programs, he was able to demonstrate it working.

We’ve seen a lot of the PDP-11 on these pages over the years. Of note are a restoration of a PDP-11/04, this faithful reproduction of a PDP-11 panel emulated with the help of a Raspberry Pi, and an entire PDP-11 emulated on an AVR microcontroller. We have indeed come a long way.

Thanks [BigEd] for the tip.

Hackaday Prize Entry: Autorouters Are For The Weak

[Yann]’s DYPLED entry into this year’s Hackaday Prize isn’t very useful to most people. It’s a tiny module that connects to a 16-bit parallel bus, and displays a hexadecimal number on a few LEDs. It’s useful if you’re diagnosing a problem on a computer from 1982, but just barely. The real wonder here is how [Yann] is doing this cheaply and easily using some weird techniques and strange parts.

The display for this tiny device is an array of 36 LEDs, arranged into a set of five seven-segment displays. Homebrew seven-segment displays are cool, but how is he driving it? Not with a microcontroller, that’s for sure. Instead, [Yann] is using an old trick of using parallel memory to store the patterns of the seven-segment displays. This parallel memory comes in the form of a two megabit Flash chip, with the data inputs tied to the 16-bit input on the board and the data outputs connected directly to the LEDs. It’s a brute force approach, but it works.

There are a few additional features for this tiny board, including a switch to display a 16-bit bus in hexadecimal or decimal, signed or unsigned, and a pot to change how bright the LEDs are. The most amazing part is how [Yann] managed to fit all of this on a very, very small PCB. Most of that trick is due to using a thin, small TSSOP package for the Flash memory, but fitting this circuit onto a two layer board is amazing work, and a great entry for the Hackaday Prize.

VCF East X: The World’s Largest USB Thumb Drive

The Vintage Computer Festival last weekend featured racks and racks of old minicomputers, enough terminals for an entire lab, and enough ancient storage devices to save a YouTube video. These storage devices – hard disks, tape readers, and 8″ disk drives – were only connected to vintage hardware, with one exception: a DEC RL02 drive connected to a modern laptop via USB.

The DEC RL02 drive is the closest you’re going to get to a modern mechanical hard drive with these old machines. It’s a huge rack unit with removable platters that can hold 10 Megabytes of storage. [Chris] found one of these old drives and because he wanted to get into FPGA development, decided to create a USB adapter for this huge, old drive.

The hardware isn’t too terribly complex, with a microcontroller and an FPGA that exposes the contents of the drive over USB mass storage. For anyone trying to bootstrap a PDP-11 or -8 system, [Chris] could download disk images from the Internet, write them to the disk, and load up the contents of the drive from the minicomputer. Now, he’s using it with SimH to have a physical drive for an emulated system, but the controller really doesn’t care about what format the disk pack is in. If [Chris] formatted a disk pack with a FAT file system, he would have the world’s largest and heaviest USB thumb drive in the world.

Video below.

Update: As promised, [Chris] put all the code in a git

Continue reading “VCF East X: The World’s Largest USB Thumb Drive”

Restoring a vintage PDP-11/04 computer

[MattisLind] spent one and a half years to complete restoration of a Digital Equipment Corporation (DEC) PDP-11/04 including peripherals like a TU60 tape drive and a LA30P Decwriter printing terminal. The computer is now able to run CAPS-11 which is a very simple operating system and also CAPS-11/BASIC. Just like the project itself, his blog post is quite long filled with interesting details. For a tl;dr version, check the video after the break.

This system originally belonged to Ericsson and [MattisLind] received it from Ericsson computer club, EDKX. He was lucky to have access to online resources which made the task easier. But it still wasn’t easy considering the number of hardware faults he had to tackle and the software challenges too. The first task was obviously looking at the Power supply. He changed the big electrolytic capacitors, and the power supply seemed to work well with his dummy load, but failed when hooked up to the backplane of the computer. Some more digging around, and a replaced thyristor later, he had it fixed. The thyristor was part of a crowbar circuit to protect the system from over-voltages should one of the main switching transistors fail.

With the power supply fixed, the CPU still wouldn’t boot. Some sleuthing around, and he pin pointed the bus receiver chip that had failed. His order of the device via a Chinese ebay seller was on the slow boat, so he just de-soldered a device from another board which improved things a bit, but it was still stuck in a loop. A replacement communications board and the system now passed diagnostics check, but failed memory testing. This turned out to be caused be a faulty DIP switch. He next tackled all the software challenges in getting the CPU board up to speed.

Continue reading “Restoring a vintage PDP-11/04 computer”

Arduino Reads Punch Cards

Punch cards were a standard form of program and data storage for decades, but you’d never know it by looking around today. Card punches and even readers are becoming rare and expensive. Sometimes it takes a bit of hacking [YouTube link] to get that old iron running again!

[Antiquekid3] managed to score an old punch card reader on Ebay, but didn’t have a way to interface with it. The reader turned out to be a Documation M-1000-L. After a bit of searching, [Antiquekid3] managed to find the manual [PDF link] on BitSavers. It turns out that the Documation reader used a discrete output for each row of data. One would think the Documation reader would be a perfect fit for the PDP-8 lurking in the background of [Antiquekid3’s] video, but unfortunately the ‘8 lacks the necessary OMNIBUS card to interface with a reader.

Undaunted, [Antiquekid3] threw some modern hardware into the mix, and used an Arduino Uno as a Documation to Serial interface. The Arduino had plenty of I/O to wire up with the card reader’s interface. It also had a serial interface which made outputting data a snap. The ATmega328 even had enough power to translate each card from one of IBM’s many keypunch formats to serial.

[Antiquekid3’s] test deck of cards turned out to be a floating point data set. Plotting the data with a spreadsheet results in a nice linear set of data points. Of course, no one knows what the data is supposed to mean! Want more punch card goodness? Check out this tweeting punch card reader, or this Arduino based reader which uses LEGO and a digital camera to coax the data from the paper.

Continue reading “Arduino Reads Punch Cards”

NYC Resistor gets a PDP-11/34

PDP-11/34 NYCR

[Trammel Hudson] and NYC Resistor have gotten their hands on some old computing iron in the form of a PDP-11/34.  The PDP-11 is a 16 bit minicomputer made by Digital Equipment Corporation (DEC). Various incarnations of the PDP-11 were sold from the 1970’s all the way into the 1990’s. NYC Resistor’s model is has a label dating it to 1983.

The PDP was found in an old storage unit in the Bronx. Moving several racks of equipment across the city is no small feat, but NYC Resistor members have it done it so many times they’ve got it down to a science.

Once power is applied, a stock PDP won’t actually do anything until the boot loader is keyed in from the CPU front panel. Thankfully this particular PDP-11 had its boot instructions printed on a label on the CPU. NYCR’s machine also includes an M9312 “bootstrap / Unibus terminator” board, which allows the machine to boot at the push of a button.

The team connected the racks, terminals, and drives. Carefully following the instructions, they actually got their PDP to boot up! Their next step is to start reading in some of the old tapes that came with the machine. We’re all waiting with bated breath to see what “digitized monkey brains” contains. Once the machine is fully functional, we hope they get it on the internet and load up The Hackaday Retro Edition.

Continue reading “NYC Resistor gets a PDP-11/34”

Minicomputers on Microcontrollers

Developed in the very late 60s and through the 70s, the PDP-11 series of minicomputers was quite possibly the single most important computer ever created. The first widely distributed versions of Unix and C were developed on the PDP-11, and it’s hardware influence can be found in everything from the Motorola 68000 to the MSP430.

When [Dave Cheney] saw the recent 8086 simulator written in 4kB of C code, he realized simulating entire computer systems doesn’t actually require a whole lot of resources outside a big chunk of memory. Armed with an Arduino Mega clone, he set out on one of the coolest projects we’ve seen in a while: simulating a PDP-11 on an AVR.

[Dave] used an ATMega2560-powered Arduino Mega clone with an Ethernet module for the hardware of this build. Attached to it is a shield filled up with a pair of RAM chips that expand relatively limited amount of RAM on the ‘Mega.

So far, [Dave] has his simulated system booting Unix V6 off an SD card. For PDP-11 storage, he’s also simulating an RK05 disk drive, a massive 14 inch platter containing 2.5 Megabytes of data. Compared to the original PDP-11/40, [Dave] estimates his machine is about 10 times slower. Still, an original 11/40 system fills multiple server racks, and the most common installations consume several kilowatts of power. The Arduino Mega can fit in a pocket and can be powered over USB.

Future developments for this system include improving the accuracy of the simulator, running more advanced operating systems and the DEC diagnostic programs, and possibly speeding up the simulation. We’d suggest adding some switches and blinkenlights on an additional shield, but that’s just us.

All the code can be found on [Dave]’s git, with a description of his SPI RAM shield coming shortly.