Apple Core V.1.00
Apple Core V.1.00 is an easy to use 6502 & 65C02 CPU test tool for Apple II computers or better. The main program version with 6502 & 65C02 tests requires 64 kB of memory and a floppy drive (ProDOS). However, there is also a 48 kB version (DOS 3.3) with only the 6502 test available.
The main software runs directly from a 5.25” or 3.5" ProDOS floppy disk. The 48k version runs from a DOS 3.3 disk and is working on both AppleSoft and - with small restrictions - on Integer Basic machines. The 6502 detection scope of the 48 kB version is identical compared to the "full" 64 kB version, however, the 48k version comes without the intro animation sequence.
After booting the disk the user will be presented the animation screen from which the user can choose the test to be performed - 6502 or 65C02 test.
The 65C02 test will only work on this type of CPU. The test will fail on a 6502 or 65816/65802 CPU!
System Requirements
- All types of Apple II machines (48 kB RAM minimum) or emulators
- 3.5” or 5.25” disk drive or floppy emulator
Getting the Tool
Physical Copy
Interested in a physical copy of the tool on 3.5" or 5.25" floppy disk? Click one of the buttons below in order to purchase your physical copy (35€ including worldwide shipping and handling)! You will receive:
- Physical 3.5" or 5.25" floppy (or both) (new old stock) with handmade disk sleeve and uniquely designed disk label in a retro ZipLoc bag.
- Color printed manual with detailed instructions on how to use the tool as well as a more detailed description of each of the 44 6502 (+21 65C02) test cases (color printed pages).
- Digital versions of the tool, PDF-files of manual, disk sleeve and disk label. As an extra option you can also order a 48 kB version as a DSK-image.
- Free 8-Bit-Shack sticker
On machines without AppleSoft Basic in ROM or less than 64 kB of RAM only the special 48 kB version is working! Please order the 48 kB version as a physical copy if you want to run it on these types of machines. Please note that with Integer Basic the HELLO program does not work since it is AppleSoft Basic. You need to BLOAD and CALL the tool from the Basic prompt (see below known bugs and limitations)!
5.25" Disk | 5.25" Disk | 3.5" Disk | All disk bundle |
---|---|---|---|
(64 kB RAM - ProDOS) | (48 kB RAM - DOS 3.3) | (64 kB RAM - ProDOS) | (All 3 disks) |
35€ | 35€ | 35€ | 60€ |
Do you want buy a bundle of disks? Drop us an email to get you a special tailored offer!
Digital DSK-Image
Interested in getting a digital version of the tool for 5€ (disk image only version) or 15€ (premium version) including digital versions of the all DSK-images (including the 48 kB version), manual, disk sleeve and disk labels to produce your own physical copy of the tool or use the tool in your favourite emulator or with your floppy emu? Get it fast and easily from our Digital Distributor:
Disk Only Version | Full Digital Bundle |
---|---|
(64 kB RAM - ProDOS) | (All disk versions, manual, labels) |
5€ | 15€ |
Demo Video - The Tool in Action
Detection Scope and Features
The software performs 44 tests on the 6502 CPU and 21 tests on the 65C02 CPU in order to check each available opcode on these CPUs.
The following 6502 opcodes are tested:
- Branches: BPL, BMI, BVC, BVS, BCC, BCS, BNE, BEQ
- Stack operations: PHA, PHP, PLA, PLP
- Logical operations: AND, ORA, EOR
- Jumps and returns: JMP, JSR, RTS
- No operation: NOP
- Interrupts: BRK, RTI
- Flag operations: CLC, CLI, CLD, CLV, SEC, SEI, SED
- Register operations: INX, INY, DEX, DEY, TAX, TXA, TAY, TYA, TXS, TSX
- Load and store operations: LDX, STX, LDY, STY, LDA, STA
- Compare operations: CPX, CPY, CMP, BIT
- Shift operations: ASL, LSR, ROL, ROR
- Increment and decrement: INC, DEC
- Binary addition and subtraction: ADD, SBC
- Decimal mode BCD-operations
The following 65C02 opcodes & addressing modes are tested:
- Branches: BRA
- Stack operations: PHX, PHY, PLX, PLY
- Flag tests: PHX, PHY, PLX, PLY
- Bit operations: BBR, BBS, BIT, TRB, TSB, RMB, SMB
- Former "illegal" 6502 opcodes: NOP
- Jump indirect bugfix crossing page boundaries: JMP($....)
- Jump indexed indirect: JMP($....,X)
- Break clears decimal mode: BRK
- Accumulator increment & decrement: INC A, DEC A
- Load & store accumulator: LDA (zp), STA (zp)
- Store zero to memory location: STZ
- Compare operation indexed zero page: CMP(zp)
- Logical instructions indexed zero page: AND(zp), EOR(zp), ORA(zp)
- Binary addition and subtraction zero page: ADD, SBC
If applicable all available addressing modes of an opcode are tested according to the processor type!
The tool module checking for 65C02 special opcodes will not work on another CPU type!
User Manual
Start Menu
After booting the disk you will first be presented the startup animation of an Apple ][ motherboard.
After pressing 1 for the 6502 CPU test or 2 for the 65C02 CPU test the test module is loaded and you will be seeing the monitor screen displayed here on the right side.
You can either choose S to start the CPU test or Q to quit the program. The 65C02 test has an option for setting and resetting a WDC CPU flag by pressing W. Please toggle this flag to ON if you have a WDC (Western Design Center) CPU or the 65C02 test may crash on certain machines. After pressing S the test algorithm will automatically perform all 44 (6502) or 21 (62C02) CPU tests.
If you have a WDC CPU installed please toggle the WDC-flag to ON when using the 65C02 flag. Not doing this might lead to a crash of the test program. It is not possible to detect if a WDC CPU is installed and this CPU contains two extra opcodes WAI and STP that are connected to NOP-operations with other 65C02 CPUs!
Running the Tests
While the tests are running the current test number is displayed in the upper left part of the screen.
Each test has its own short description which shows which opcodes are currently tested.
The test status panel gives information on the status of all tests:
- An asterisk * is displayed for all tests that have not yet been performed.
- An A is displayed if the test is currently being performed or active.
- A C is displayed when the test has been successfully completed.
- A S is displayed when this test has been skipped because the CPU type is not supporting certain 65C02 opcodes.
- An inverse E is displayed if any error was detected performing the test.
Interrupting the Test
A running test can always been interrupted by a keypress. You will be returning to the start screen and all test results will be cleared.
Error Detection
If an error gets detected during any of the test cases you will be notified by a beep and an error message. The error panel will hold more information about the current machine state:
- Error address gives the current RAM address of the test code where the error got trapped by the algorithm. This is an important function especially for emulator developers who can switch to their debugger mode and check the instruction trail of the algorithm and learn which opcode und which prerequisites failed the test. This will help debugging own 6502 emulations. On real machines it is possible to leave the tool via a RESET and go to the monitor and inspect the memory range where the error occurred.
- ACCU gives the current value of the accumulator register when the error occurred.
- X gives the current value of the X-register when the error occurred.
- Y gives the current value of the Y-register when the error occurred.
- Flag overview gives the state of the processor flags:
- N: negative flag
- V: overflow flag
- B: break flag
- D: decimal flag
- I: interrupt disable flag
- Z: zero flag
- C: carry flag
When an error has occurred you have the following options:
- Press C to continue with the same test case. It is likely that new errors will be detected when you continue the same test case.
- Press S to skip the current test case. The next test case will be performed.
- Press E to exit the test routines. This will end the test.
Each time an error gets detected the error counter will be increased by one to a maximum of #99 errors. The next error will reset the counter to #00!
Exiting the Tool
When all tests have been performed you will get a feedback if the test was successful or with errors. You can then rerun the test or exit to DOS.
Known Bugs and Limitations
Following constraints and limitations of the software are known up to now:
- A graphical menu is only available with the full 64 kB ProDOS-version of the tool. The 48 kB disk version is text-only!
- Hint: Users with an Integer Basic machine need to use the DSK-image with the 48 kB version which tries to boot an AppleSoft file and will fail with LANGUAGE NOT AVAILABLE error. It is necessary to BLOAD TEST6502,A$1E00 and do a CALL 8192 from the Integer Basic prompt.
If you run into any problems when using the software with issues that are not reported here, please let me know: bugs@8bitshack.org
Credits
- Code: Marc Golombeck, Dan Henderson
- Graphics: Dan Henderson
- Manual: Marc Golombeck, Dan Henderson
- Additional Advice: Dr. N. H. Cham