YACC1 – Yet Another Custom CPU

YACC1

About:

The YACC1-2020, provides the tools and resources to learn computer science starting from the basics of digital logic through to a fully working custom 8-bit CPU with a user defined instruction set, microcode generator, emulator, assembler, BASIC interpreter, and one day an operating system with filesystem, command line interpreter, and utilities. This first version named the YACC1 (Yet Another Custom CPU) uses basic 74xx TTL logic and whenever possible basic gates, no 74181 ALU, no FPGA (that would be cheating 🙂 ).

The project is currently under development as a personal project. The basic idea has been kicking around inside my head for years (47 years to be exact), but until recently never made it to the top of my list (I did make an attempt a few years back but life got in the way). Now I am exploring if this project might be interesting to others, perhaps as an educational tool or maybe just a fun project.

Here is a video of the machine in operation and some photos can be found in the Photos & Videos subdirectory in this GitHub repository

Status:

The basic system is comprised of the following cards:

  • Bus Board with 7 slots
  • Memory card with 32k RAM and 32K ROM (total address space 64K) The memory card also contains two temporary registers
  • Register card with four 16-bit registers that can drive data or address bus, although the system can operate with one register card anything really useful will require two cards. The system has control lines to support upto 4 register cards for a total of 16 registers
  • IO Card has several options; Serial RS-232, 8-bit switches, 8-bit LED, TIL-311, LCD
  • ALU Card supports boolean, compare, and add/sub operations, as well as the the accumulator register
  • Sequencer card 2 board set made up of a memory card and logic card mated together (see photos)
  • Optional but highly recommended Bus Test Card, this allows driving the bus in test mode and monitoring the bus in listening mode
  • Optional Read Only Memory 16 byte switch card

Updates (blog) here:

YACC1-2020 Project GitHub repository

Motivation

Like many others back in the mid 1970s I had the opportunity to learn both computer programming and microcomputer hardware simultaneously. For me I started programming BASIC on a timeshare HP machine via a terminal located in the back of my math teacher’s classroom (he also taught computer programming) while at home I also dabbled with digital circuits. When Popular Electronics published the COSMAC ELF project I was hooked. Now I often wonder if for some students learning computer science the hardware experience feels too much like a magic box.Why One Page Computer?

Interested?

Now, finally after making some serious headway, I am exploring if this project might be interesting to others, perhaps as an educational tool or maybe just a fun project.

I am interested in speaking with:
High school Computer Science educators
Freshman and sophomore college educators
Electronics enthusiasts

If you fall into one of these categories or are just interested, please reach out to me at email – ken at cottageworker dot com

Check out more custom built CPUS at the Homebrew Computer Ring