When I wrote my celebration of Ben Eater’s breadboard computer I said I have notes for two different directions to extend it. I do, but by the time I wrote I knew what direction I was going to go. While designing my own load/store TTL CPU has its charms I like the idea of the PDP–8 clone I dubbed the HDP–12 better. As a result that is the direction, I am going, for now. In a few years when I have a working PDP–8 clone, if I haven’t burned out on the idea entirely, I can revisit the load/store machine. What I learn with a PDP–8 clone will transfer the load/store idea.
I want to learn a system from logic gates to the user interface. The PDP–8 has a large body of readily available software. There are also several simulators available. Finally, there is a single board computer using the 6102 microprocessor which provides a PDP–8. The later has an IDE drive interface and updates to OS8 for using a standard terminal and the IDE drive.
What this means is I have two directions for testing. I can test pre-existing software on my design. I can also write my own software in parallel with the build and test it on the simulators as reference machines. I have working examples of devices for it and of drivers for those devices. I would have to invent these things for the load/store machine. Modern electronics software might make simulation at the hardware level easier. The simh system I use to run OS8 might be usable for a larger scale simulation. They might make it easier to do, but I would still have to do that work. I want one piece of software and it is not the OS or assembler. I have a couple of candidates for an operating system I could port that would work well on a homemade 8-bit load/store system. The obvious two are the CP/M family and Xinu. A primitive assembler would not be that difficult to write. I could pattern it after the one in BASIC I typed into my Atari 800XL from Machine Language for Beginners way back in the day. What I do not look forward to designing is a compiler. Even if I could use one of the various front ends available, code generation would be rough.
For the PDP–8 I have several options including BASIC and FORTRAN. I am already using Digital’s version of FORTRAN IV to work through Software Tools one more time. I don’t recommend bootstrapping RatFor by hand.
I also like the idea of taking a different path from the history of programmable digital computers over my lifetime. As I said in the earlier post, the PDP–8 and the IBM System 360 date from the year I was born. With the System 360 came the modern standardized 8-bit byte, byte addressable memory, and processor words defined as a power of two number of bytes that has marked the past 30 years of general purpose computers. Even though Digital introduced 12-bit and 36-bit processors in the 70s, their big hits post-PDP–8 were the PDP–11 and VAX which were part of the standardized world, although they still quoted memory sizes in words not bytes.
By building a PDP–8 and, in my wildest dreams, building a 24-bit processor, I am trying a road not traveled. Yes, computers evolved as they did for excellent reasons for a business. For a hobbyist looking for something a bit different they are reasons not to follow the trend.
I have most of the clock already built, and I’m already changing more than I expected. My changes to the clock are due to The Art of Digital Design by David Winkel and Fraklin Prosser. I bought that book when I got interested in TTL based CPUs earlier this year in part because the primary design project is a PDP–8. An earlier chapter has a design for a switchable clock circuit that can use an oscillator or single shot pushbutton.Next week’s post is about The Art of Digital Design and other references I plan on using. The week after I am posting about my clock circuit. I am considering doing a video about it. Is there interest in a video?