Difference between R65C02 and original 6502 (wrt 6509 emulation)

From: Michał Pleban <lists_at_michau.name>
Date: Sat, 13 Apr 2019 23:21:11 +0200
Message-ID: <5CB252C7.50803_at_michau.name>
Hi!

Some time ago I received Jim Brain's Fake6509 for testing. If you
followed the last year's thread, it worked perfectly with original 6502
and various other versions (including the 65C816) to emulate the 6509
for CBM-II, but when used with Rockwell's R65C02, the computer
mysteriously failed the memory test.

So here are tests done with a logic analyzer for:

(a) Original 6509 CPU
(b) Fake6509 with 65C816
(c) Fake6509 with R65C02

https://drive.google.com/drive/folders/1FCGHofRvtgk3j8iWia8IujY1dU4DGxfF

What you see there is the CPU executing a STA ($93), Y instruction at
$FFABA, whis is a part of KERNAL's memory test. It is about to write $55
to $10002, which will then be read back to see if there is RAM at this
address.

Both the 6509 and the 65C816 execute the instruction in the same way.
But if you look at what the R65C02 is doing, the value $0094 is kept at
the address bus one cycle longer, and the destination address $0002
appears there for only one cycle, as opposed to two cycles for the 6509.
This is too late for the CBM-II maiboard to latch the address for the
DRAM, so the value gets written to $10094 instead of $10002, and the
memory test obviously fails.

Regards,
Michau.
Received on 2020-05-29 21:35:38

Archive generated by hypermail 2.3.0.