073. Inc página cero x

cablear INC Página Cero,X (`0xF6`).

Lección 73 de 356 · tests/chapter_01_cpu/test_073_INC_zero_page_x.py

En este paso, usa instructions.inc y la importación de INC de las lecciones 071-072, y añade solo emulator/cpu/opcodes.py:inc_zero_page_x y OPCODE_TABLE[0xF6].

Por qué existe este paso

El auxiliar de direccionamiento indexado, y no la instrucción, se encarga de la suma de X y del desbordamiento dentro de la página cero.

Implementación sugerida en emulator/cpu/opcodes.py:

def inc_zero_page_x(cpu: CPU):
    addr = zero_page_x(cpu)
    inc(cpu, addr)

Añade exactamente esta entrada a la OPCODE_TABLE existente:

0xF6: inc_zero_page_x,

Invariantes: zero_page_x(cpu) consume un byte, suma cpu.x y envuelve la dirección efectiva dentro de $0000-$00FF; el PC avanza hasta la siguiente instrucción de dos bytes; inc realiza la mutación de memoria y actualiza solo Z/N.

Concepto erróneo: no calcules operand + X como una dirección de 16 bits sin restricciones; $FF,X con X=1 apunta a $0000, no a $0100.

Fuera de alcance: los manejadores y mapeos de INC absoluto y absoluto-X son las lecciones 074-075.

Ejecutar esta lección

uv run pytest tests/chapter_01_cpu/test_073_INC_zero_page_x.py -v