107. Rol absolute

wire ROL Absolute (opcode ``0x2E``).

Lesson 107 of 356 · tests/chapter_01_cpu/test_107_ROL_absolute.py

In this step, after the zero-page modes, add only the absolute adapter and table entry.

Complete example implementation in the production locations

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

def rol_absolute(cpu: CPU):
    addr = absolute(cpu)
    rol(cpu, addr)

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

0x2E: rol_absolute,

Why this step exists

Operand decoding stays in `absolute while rol` remains a destination-address operation shared by all memory modes.

Invariants: two operand bytes are consumed little-endian; `2E 00 02 targets $0200`; PC ends at start+3; only target memory and C/Z/N change.

Misconception: bytes `00 02 encode $0200, not $0002` and not the literal value to rotate.

Out of scope: Absolute,X is lesson 108, ROR begins at 109, and page/cycle timing was not part of this transition.

Run this lesson

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