The MCL_PetDoctor is a suite of diagnostic tests which run on the MCL65+ board which is a drop-in replacement for the 6502 CPU which can emulate a cycle accurate processor along with all all of the computer’s RAM and ROM.
The MCL_PetDoctor diagnostics perform exhaustive tests on a PET motherboard at the optimal location – right at the CPU socket. Generating bus cycles at here allows it to test, toggle, peek, poke, and evaluate most of the PET’s motherboard logic. For signals it cannot reach it can perform general signal toggling or perform targeted bus cycles to help the user isolate and root cause faults.

Results are reported over the Arduino/Teensy JTAG UART so the video system of the computer does not need to be operational. The simple Arduino IDE or any terminal emulator can be used. See the capture below of the MCL_PetDoctor running on a Commodore PET 4016.
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
Scan for stuck bits in the RAM space..........No stuck bits.
Pattern #1: Address as data...
Pattern #2: All 0x00..........
Pattern #3: All 0xFF..........
Pattern #4: Walking 1's.......
Pattern #5: Walking 0's.......
Pattern #6: Random data.......
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
Generating 16-bit Checksums for ROMs..........
0xB000 Checksum: 4168
0xC000 Checksum: 5960
0xD000 Checksum: a425
0xF000 Checksum: cf19
Scan for stuck bits in the ROM space..........No stuck bits.
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
PEEK from address: 0x123 DATA=0x1d
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
POKEing DATA=0x5a to Address: 0x123
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
6502 receiving a CLK........YES
6502 RESET level ...........HIGH
6502 IRQ_n level............HIGH
6502 NMI_n level............HIGH
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
Filling PET screen with random letters..........
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
PIA-1 Control-A Register FAIL 2a
PIA-1 Control-B Register FAIL aa
PIA-1 Control-A Register FAIL 19
PIA-1 Control-B Register FAIL 19
VIA Port-B Control Register FAIL cf
MicroCore Labs
MCL65_PETDoctor
Commodore PET Board Tester
----------------------------------------------
Tests Menu
----------
1) Test DRAM
2) Test ROMs
3) Dump ROMs
4) Toggle all 6502 output signals
5) PEEK
6) POKE
7) 6502 Clock, Reset, and Interrupts
8) Video
9) PIA and VIA Registers
The MCL_PetDoctor tests are written in simple C code and compiled/downloaded using the Arduino IDE so additional and custom tests can easily be added.
The project is open source and located on GitHub: Github – MCL65+ Design Files
I can offer an MCL_PetDoctor board as a loaner to help you diagnose your Commodore PET or any other computer which uses a 6502 microprocessor. Please contact me for details.















































