Files
mos-6502/tests/roms/README.md
T
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

24 lines
1.2 KiB
Markdown

# External validation ROMs
`make fetch-roms` downloads the official Klaus Dormann NMOS 6502 functional
test from the [upstream GPL-3.0 repository](https://github.com/Klaus2m5/6502_65C02_functional_tests).
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.