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