"There comes a day when you realize turning the page is the best feeling in the world, because you realize there's so much more to the book than the page you were stuck on." -- Zayn Malik
This all started with a seemingly innocent question: "How does a CPU turn op-code numbers into instructions to follow?"
My first microcomputers in the 80's presented a form of BASIC to program with, tokenized or interpreted, but offering a glimpse underneath with commands such as PEEK, POKE, and CALL to directly view and change values in memory.
How did it know "169" means load the following byte into the Accumulator? Or that "141" means store the Accumulator into the memory address of the two bytes that followed?
For far too many years the answer was wizardry and magic. Long overdue is a trip back to first principles.
My first search lead me to Ben Eaters excellent video series on "building an 8-bit breadboard computer" and kit, which was my (undocumented) Build-1.
His CPU was based off of the SAP-1 CPU detailed in the book Digital Computer Electronics by Albert Malvino. This book continues with the SAP-2 and SAP-3, iterative designs leading towards the architecture of the Intel 8080.
My Build-2 was the result of expanding Ben's design with SAP-2 features, and a few minor improvements of my own.
Build-3, currently still a design in progress, is my first attempt at a CPU architecture of my own.