Files
mos-6502/tests/roms
andwati 0dcd2ed687 Implement state saving and loading for CPU and Bus, add tests for various functionalities
- Added `state.c` to handle saving and loading the state of the CPU and Bus.
- Implemented CRC32 checksum for data integrity verification during state operations.
- Enhanced `README.md` in tests/roms to document new test commands for decimal, interrupt, Apple I, and nestest.
- Created new test files: `run_apple1.c`, `run_decimal.c`, `run_interrupt.c`, `run_nestest.c`, and `run_vectors.c` to validate the new features.
- Updated `run_tests.c` to include tests for state saving/loading and other functionalities.
- Introduced `test_vectors.py` to facilitate downloading and running JSON test vectors for opcode verification.
2026-07-20 13:55:48 +03:00
..

External validation ROMs

make fetch-roms downloads the official Klaus Dormann NMOS 6502 functional test from the upstream GPL-3.0 repository. The download is pinned by SHA-256 and is not committed here.

make test-functional fetches and runs it. Success is the documented loop at $3469.

The decimal image is Bruce Clark's public-domain test configured by Gopher2600 for NMOS accumulator and N/V/Z/C flag validation. make test-decimal runs all valid and invalid BCD operand combinations and requires ERROR == 0.

make test-interrupt assembles Klaus Dormann's GPL-3.0 interrupt test with the upstream bundled AS65 assembler and verifies IRQ, NMI, BRK, vectors, flags, and concurrent interrupt priority through its success trap at $06F5.

make test-apple1 assembles the original Woz Monitor source maintained in Jeff Tranter's 6502 repository, boots its $FF00 reset vector, injects a memory examine command through the emulated PIA, and verifies the monitor's output.

make test-nestest downloads Kevtris's canonical NROM test and Nintendulator golden log, then compares all 8,991 CPU states and cumulative cycle counts.