- Add jit_stub.c: no-op JIT API when HAVE_LIGHTNING is not set; rk65c02_run_jit
runs interpreter loop so start() still works.
- src/Makefile: HAVE_LIGHTNING ?= 1; with 0 use jit_stub.o, no -llightning/-DHAVE_LIGHTNING.
- jit.c: remove #else branch from rk65c02_jit_enable (file only built with Lightning).
- examples/test Makefiles: LDFLAGS use $(if $(NO_LIGHTNING),,-llightning); test adds
-DHAVE_LIGHTNING when not NO_LIGHTNING.
- test_mmu.c: register mmu_demand_page_jit only #ifdef HAVE_LIGHTNING.
- README: document building with or without JIT (HAVE_LIGHTNING=0, NO_LIGHTNING=1).
Made-with: Cursor
- interrupts: IRQ vector at $FFFE, vector device at $FFFC, idle_wait + assert_irq
- hello_serial: custom bus device at $DE00, guest writes host prints
- stepper: rk65c02_step(1) loop with regs and disassembly
- jit_bench: min3.rom interpreter vs JIT wall time
- breakpoints: debug_breakpoint_add at min3 entry, inspect then continue
- README: document new examples, run from examples/ or make run-<name>
- Makefile: EXAMPLES and run-* targets for all five
Made-with: Cursor
- min3.s: fix BPL comment (branch if B >= C)
- min3.c: document stack ABI in header
- host_control.c: add Expected in header, explicit PASS at exit
- mmu_cart.c: comment tick interval 0 (poll every opportunity)
- mul_8bit_to_8bits.c: note interpreter-only and stack ABI
- README: run mmu_mpu with timeout when testing
- doc/MMU.md: add build/run note, mmu_pae no .rom, mmu_mpu timeout
Made-with: Cursor
Introduce an optional WAI-only host wait callback API with interpreter/JIT loop support, add regression tests and an idle_wait example, and align Doxygen docs to describe callback and IRQ wake semantics clearly.
Made-with: Cursor
Expose stop/tick/request-stop APIs, keep host control active at JIT block boundaries, and document the control model with a fuller host example plus dependency-aware builds.
Made-with: Cursor