126. Ora immediate

exponer ORA immediate como el opcode ``0x09``.

Lección 126 de 356 · tests/chapter_01_cpu/test_126_ORA_immediate.py

Por qué existe este paso

El opcode inmediato expone ORA a la ejecución de la CPU con un byte literal y comprueba que la decodificación delega el resultado y el manejo de flags a la primitiva compartida.

En este paso, tras crear `or_a en la lección 125, realiza estas adiciones en emulator/cpu/opcodes.py`:

from emulator.cpu.instructions import (..., and_a, or_a)

def ora_immediate(cpu: CPU):
    or_a(cpu, immediate(cpu))

OPCODE_TABLE = {
    ...
    0x09: ora_immediate,
}

`emulator/cpu/addressing_modes.py::immediate devuelve directamente el byte obtenido por CPU.fetch_byte. instructions.or_a` almacena A | value y solo cambia Z/N; Carry/Overflow y la memoria permanecen invariantes, y el opcode más el operando avanza el PC dos bytes.

Concepto erróneo: el byte inmediato es el valor, así que volver a leerlo a través de `cpu.bus` lo trataría erróneamente como una dirección. Fuera de alcance: los manejadores de ORA basados en memoria (lecciones 127-133) y las importaciones y manejadores de EOR/BIT en las lecciones 134-145.

Ejecutar esta lección

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