From 19bb34c1f336ca275e9b4c5bfaf95232acc0b5c8 Mon Sep 17 00:00:00 2001 From: Jason Meiring Date: Mon, 5 Jan 2015 09:25:56 -0800 Subject: [PATCH] Adding tests 6502/65C02 CPU emulation and the Apple II character set. --- resources/charset.png | Bin 0 -> 4477 bytes tests/6502_functional_test.bin | Bin 0 -> 65536 bytes tests/6502_interrupt_test.bin | Bin 0 -> 65536 bytes tests/65C02_extended_opcodes_test.bin | Bin 0 -> 65536 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/charset.png create mode 100644 tests/6502_functional_test.bin create mode 100644 tests/6502_interrupt_test.bin create mode 100644 tests/65C02_extended_opcodes_test.bin diff --git a/resources/charset.png b/resources/charset.png new file mode 100644 index 0000000000000000000000000000000000000000..f2af8c218872afbb6543afa8c42360f166cb5211 GIT binary patch literal 4477 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 V4WI!ufCkXO|83y4R5A5t>c4`7B}f1O literal 0 HcmV?d00001