Exercise 1: Why HL Dereferencing Is Simpler Than (zp),Y — Possible Solution ==================================================================== WHAT (ZP),Y REQUIRES (cpu8bit1-4) ------------------------------ Per cpu8bit1-4's own explanation, dereferencing a pointer on the 6502 via (zp),Y takes several distinct pieces working together: a 16-bit pointer has to be stored across TWO specific zero-page addresses (the low byte at the given zero-page address, the high byte at the next one over), and then the Y register supplies an additional offset that gets added to that pointer's VALUE to compute the final effective address. The pointer itself never lives in a register at all — it lives in memory (zero page specifically), and the instruction has to go fetch it from there as an extra step before the real target address is even known. WHAT THE Z80'S HL EXAMPLE DOES INSTEAD ------------------------------ Per this chapter's own example, LD A,(HL) reads directly from whatever address is ALREADY sitting in the HL register — there is no separate memory location holding the pointer that first needs to be fetched. The pointer IS the register's own contents. THE SPECIFIC STEP THE 6502 NEEDS THAT THE Z80 DOESN'T ------------------------------ The 6502's (zp),Y mode requires an extra MEMORY READ just to retrieve the pointer itself (two bytes, from zero page) before the real target address can even be computed — and that's on top of whatever offset Y then adds. The Z80's HL-based dereference skips that step entirely, because the pointer value already lives directly in a 16-bit register rather than being fetched from memory first. The Z80 needs one memory access (reading the actual data at the address HL holds); the 6502's (zp),Y needs the zero-page pointer fetch AND then the final data read — genuinely more steps for the same conceptual operation. WHY THIS WORKS AS AN ANSWER ------------------------------ It identifies precisely which step is missing on the Z80's side (the separate zero-page pointer fetch) rather than vaguely saying "the Z80 is simpler," and grounds the comparison in each chapter's own stated mechanics for how the respective pointer value is obtained.