YACC1 Sequencer Control Signals

A list of control signals the sequencer needs to drive (work in progress).

For each general purpose register

  • Load Register
  • Enable Register Output

X  4 general purpose registers = 8 signals


Program Counter

  • Output Address – Connect PC to address bus
  • Increment PC – Increment the current value of the PC by 1
  • Load PC – Load the current value on the data bus into the program counter (jump instruction)

= 3 signals


Index Register (used for Register based memory access)


Memory Control


I/O Control


ALU Control




YACC1 – Instruction Set

This is a total guess

Bit 7 = 1 

These are the 8 two register instructions where:

Bit[6:4] are instruction code

Bit[3:2] are destination register, Bit[1:0] are source register

MOV Rx Ry    1000 xx yy  Cop

ADD Rx Ry     1001 xx yy

SUB Rx Ry      1010 xx yy

1011 xx yy

1100 xx yy

1101 xx yy

1110 xx yy

1111 xx yy


Bit 7 = 0, Bit 6 = 1

These are the 16 one register operations where:

Bits[5:2] are the the instruction code

Bits[1:0]are the register


Bit 7 = 0, Bit 6 =  0

These are the 64 no register operations where:

Bits[5:0] are the instruction code


**** This might be further divided into one and two byte instructions

YACC 1 Instruction Set

Complete list of YACC1 Instructions
MOV Rd Rs1000 XX YYCopy contents of Rs (source) to Rd (destination)XX,YY = Register Number
00 - Register 0
01 - Register 1
10 - Register 2
11 - Register 3
Add Rd Rs1001 XX YYAdd contents of Rs to Rdno
Sub Rd Rs1010 XX YY
AND Rd Rs1011no
OR Rd Rs1100no
XOR Rd Rs1101no
NAND Rd Rs1110no
NOR Rd Rs1111no

YACC1 (Yet Another Custom CPU) Version 1

I have been thinking about a custom CPU project for a very very very long time, something like the past 40 years to be exact. The idea started when I first started dabbling with TTL chips. Back then I had no idea how to proceed, i knew some sort of instruction decoder, sequencer, ALU were needed but not long after first dreaming about the idea of building a CPU the RCA 1802 showed up and that stole all my attention. I will leave out the details but I have never stopped thinking about a custom CPU project and every once in a while when a new website pops up dedicated to a new custom CPU (I have a small list here) I once again would get the bug.

Time to take another run at it.


This is an MVP (Yes I am dreaming about future projects but lets see how this goes)

Open, all designs will be available for anyone to use

Simple, Simple, Simple, therefore 8 bits for data and addressing (yep only 256 x 8 memory)

Must fit on one PCB, all through hole.

Minimal magic, basic TTL chips, no FPGAs and possibly even nothing as fancy as a ALU chip (although single PCB trumps this requirement)

Does not need to to be compatible with anything past, present, or future

Function is more important than optimization

Test ideas but avoid “kitchen sink” phenomenon