105. Rol página cero

conectar ROL Zero Page (opcode ``0x26``).

Lección 105 de 356 · tests/chapter_01_cpu/test_105_ROL_zero_page.py

En este paso, tras el cableado del acumulador de la lección 104, añade únicamente el adaptador de página cero y la entrada de tabla.

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

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

def rol_zero_page(cpu: CPU):
    addr = zero_page(cpu)
    rol(cpu, addr)

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

0x26: rol_zero_page,

Por qué existe este paso

La capa de opcode resuelve el operando; la primitiva de la lección 102 se encarga de la lectura/modificación/escritura y de las banderas.

Invariantes: `zero_page(cpu) consume un byte de operando y devuelve una dirección en $0000-$00FF; 26 10 rota la RAM $0010` y el PC final es start+2. A permanece sin cambios y se preservan las reglas C/Z/N de ROL.

Concepto erróneo: `$10` es la dirección del byte a rotar, no el valor del byte en sí; no rotes el operando del flujo de instrucciones.

Fuera de alcance: la página cero indexada es la 106, los modos absolutos son 107-108, ROR empieza en 109, y la temporización exacta de ciclos es trabajo posterior.

Ejecutar esta lección

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