105. Rol zero page

подключить ROL Zero Page (опкод ``0x26``).

Урок 105 из 356 · tests/chapter_01_cpu/test_105_ROL_zero_page.py

На этом шаге, после подключения аккумулятора в уроке 104, добавьте только адаптер нулевой страницы и запись в таблицу.

Полный пример реализации в производственных местах

`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,

Зачем нужен этот шаг

Уровень опкодов разрешает операнд; примитив из урока 102 отвечает за чтение/модификацию/запись и флаги.

Инварианты: `zero_page(cpu) потребляет один байт операнда и возвращает адрес в диапазоне $0000-$00FF; 26 10 вращает RAM $0010`, а итоговый PC равен start+2. A остаётся неизменным, правила C/Z/N для ROL сохраняются.

Заблуждение: `$10` — это адрес байта для вращения, а не само значение байта; не вращайте операнд потока инструкций.

Вне рамок: индексированная нулевая страница — урок 106, абсолютные режимы — 107-108, ROR начинается с урока 109, а точный тайминг тактов — более поздняя работа.

Запустить этот урок

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