The projects presented here reflect my interest in the computer hardware hobby. Of course, I am also interested in other aspects of computer and information science, such as programming and website development, but my main fun has been making circuits that work. The trend in computer science has always been to hide complexity from users, with good reason, as this makes computers easier to use. The hardware layer is covered by the BIOS layer, which is covered by the operating system layer, which serves up the application software that users interact with. For me, learning computer hardware is opening one of the innermost black boxes of computing, an exploration that for me has been challenging and fun. The three main projects presented in this website embody my journey into the depths of computer hardware, learning and then building, to make sure my learning was complete.
After dabbling with assembly language in early microcomputers, like the TRS-80, the Sinclair ZX-80, and the Apple II, I became interested in computer hardware. I studied the Z80 processor, and build small breadboard systems as early as 1982. I eventually learned the wire-wrap prototyping technique, and after a few unsuccessful attempts, came up with a simple Z80 microcomputer design that was easy to build and worked well. This design is presented here. It served as the prototype for the Z80 computer kits I have for sale.
In my early computers, the processor represented an unexplored black box, the last frontier for understanding computer hardware. I was inspired to attempt a homebuilt processor project after reading some chapters in a friend's computer science textbook, Computer Organization and Design, 2nd edition by David Patterson and John Hennessy (1998, Morgan Kaufmann). With the experience I had gained from building the Z80 computer, and the insight gained from this textbook, I felt confident enough to make an attempt at building a processor. The original TTL processor was simple, and significantly flawed, but it worked, and I had fun building it. I was not familiar with computer-aided design, so the schematics for this processor are all hand-drawn. I hand-assembled all the code for it, and programmed the system EPROMs bit-by-bit with a homebuilt EPROM programmer. There are no demo videos of this processor, and it no longer exists, having been cannibalized to make the 8-bit processor, but the thrill of seeing it execute its first program is a memory I will treasure.
After many years, and after learning more about processors, I developed the itch to design and build another one that would correct some of the deficiencies of the original processor. I decided on an 8-bit processor, in part to be able to use it in the Z80 computer kit system that I already had developed. The new processor would take the place of the Z80 in the computer system. It would not be a clone of the Z80, but would share the same address, data, and control signals. The demo video of this processor shows how it substitutes for the Z80. I built this processor using computer-aided design, and developed it into the 8-bit processor kit.
This project is a Z80 computer with a composite video display and PS-2 keyboard interface, done in TTL circuitry by the wire-wrap technique. The result is a computer that does not need to connect to a "dumb terminal" or to a PC running a terminal emulation program for console input and output. Also, the memory-mapped display allows for graphics and video games.
Along the way I worked on a number of side projects that came out of the main projects listed here. For example, I made an IDE disk interface for the Z80 computer. I also made a port of the CP/M operating system that runs on the Z80 computer kit system. I adapted the Tiny BASIC interpreter to work with the Z80 computer as well. I have also had the pleasure of interacting with many computer hardware enthusiasts and students on their projects. In fact, the reason for CPUville is to serve as a platform for interacting with other hobbyists. So, please let me know about your project!