106. Rol página cero x

conectar ROL Zero Page,X (opcode ``0x36``).

Lección 106 de 356 · tests/chapter_01_cpu/test_106_ROL_zero_page_x.py

En este paso, amplía la lección 105 con únicamente el adaptador de página cero indexada y la entrada de despacho.

Implementación de ejemplo completa en las ubicaciones de producción

`emulator/cpu/opcodes.py::rol_zero_page_x`::

def rol_zero_page_x(cpu: CPU):
    addr = zero_page_x(cpu)
    rol(cpu, addr)

`emulator/cpu/opcodes.py::OPCODE_TABLE`::

0x36: rol_zero_page_x,

Por qué existe este paso

Reutiliza el asistente de direccionamiento ya establecido para no duplicar la política de ajuste en la primitiva de instrucción.

Invariantes: se consume un byte de operando; la dirección efectiva es `(operand + cpu.x) & 0xFF; el PC termina en start+2; rol muta solo ese byte con el comportamiento C/Z/N de la lección 102. Por tanto, la base 0xFE más X 0x03 apunta a $0001`.

Concepto erróneo: la indexación de página cero no se desborda hacia `$0101` y no es una indexación absoluta de 16 bits; es obligatorio ajustar a ocho bits.

Fuera de alcance: los modos absolutos son las lecciones 107-108, ROR empieza en 109, y la secuenciación de lectura/modificación/escritura indexada con precisión de ciclos es trabajo posterior.

Ejecutar esta lección

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