Are there any automated test suites for MOS 6520, 6522 and 6526 chips? I am looking for test suites aimed at making sure datasheet-based independent reimplementations of the above chips (e.g. FPGAs or emulators) work exactly as the real chips.
-
Ideally, the test suites would work with just connections from something like a 6502 to the IO chips' pins, instead of a full computer (e.g. a Commodore 64)– CactusCommented Apr 23, 2016 at 13:51
-
1Your question seems more related to IC implementation than to a specific retro usage. Could you add how your question relates to retro systems? Substitute repair parts?– user3169Commented Apr 23, 2016 at 19:50
-
1@user3169: the reason I'm looking for test suites like that is reimplementation/modeling of retro systems. My vote is for this topic, in general, to be considered on-topic here.– CactusCommented Apr 24, 2016 at 6:58
-
3These could also be great for validating emulators. I would love a solid automatic test suite for the 65816, for instance. :)– Eric ShepherdCommented Apr 26, 2016 at 2:00
-
1@Eric and the Vampire II.– snips-n-snailsCommented May 30, 2016 at 3:26
2 Answers
Klaus Dorman's functional tests for the 6502 are fantastic: https://github.com/Klaus2m5/6502_65C02_functional_tests
-
They are! I've used them to test my own 6502 Kansas Lava core. However, I don't see anything there for peripheral chips.– CactusCommented May 10, 2016 at 12:43
-
Definitely going to try this out to test the 8-bit parts of the 65816 core in Sweet16 sometime. Commented May 14, 2016 at 21:24
-
4
I am unaware of any formalised test suite for either the 6520 or 6522.
The 6526 is at least partially covered by Wolfgang Lorenz's C64 test suite. Because of the applicability to other machines, you usually see it documented for its 6502 tests (and the outward link to the suite itself there is broken; instead try that listed here) but it includes a scattering of CIA (i.e. 6526) tests:
Programs CIA1TB123 and CIA2TB123 - CIA timer B 1-3 cycles after writing CRB
Programs CIA1TA to CIA2TB - CIA timers in sysclock mode