Exercise 2: How Faggin's 8080 History Shapes the Z80's Constraints — Possible Solution ==================================================================== THE KEY DIFFERENCE FROM THE 6502'S SITUATION ------------------------------ The 6502 team started from a genuinely clean slate, constrained primarily by COST -- they were free to design any instruction set, any register layout, any addressing scheme, as long as the result was cheap enough to manufacture. The Z80's situation, per the chapter's own framing, was structurally different: Federico Faggin had previously helped design the Intel 8080 itself, and chose to build the Z80 as a SUPERSET of it -- meaning every existing 8080 program had to keep working, unmodified, on the new chip. WHY THIS IS A FUNDAMENTALLY DIFFERENT CONSTRAINT ------------------------------ A cost constraint (the 6502's situation) restricts HOW MUCH you can build -- it pushes a design toward doing less, more cheaply. A compatibility constraint (the Z80's situation) restricts WHAT YOU'RE ALLOWED TO CHANGE about what already exists -- it doesn't limit how much new capability can be added on top, but it does mean the existing 8080 instruction set, register behavior, and general approach can't simply be redesigned from scratch, no matter how much a cleaner design might improve things. The 6502 team could freely choose "we don't need this feature." The Z80 team's baseline already included everything the 8080 had, whether or not it was still the best way to do something, and new capability had to be layered ON TOP of that existing foundation rather than replacing it. THE PRACTICAL CONSEQUENCE ------------------------------ This means the Z80 was never going to end up as minimal as the 6502, almost by definition -- carrying an entire existing instruction set forward, then adding genuinely new capability on top of it, moves the design in the opposite direction from the 6502's cost-driven paring- down. This is exactly the seed of the richness-vs-minimalism contrast the chapter previews for the RISC-vs-CISC discussion later in the course (cpu8bit1-11) -- and it's rooted in an entirely different kind of pressure (compatibility) than the 6502's own cost pressure. WHY THIS WORKS AS AN ANSWER ------------------------------ It distinguishes clearly between a cost constraint (limiting how much you build) and a compatibility constraint (limiting what you're allowed to change), explains why the Z80's specific history as an 8080 superset creates the second kind rather than the first, and connects that distinction forward to the richness-vs-minimalism contrast the chapter itself previews.