Date : Mon, 20 Nov 2006 22:30:57 +0000
From : splodge@... (Richard Gellman)
Subject: CPU in an M128
Hi,
If you find pedantry utterly intolerable, please look away now :)
I've noticed that there seems to be quite a few sources that get the
processor in a Master 128 wrong on a regular basis, including technical
documentation from otherwise authoritative and reliable sources. I've
seen everything from variations of 6502 to 65C102 at 4Mhz, none of which
are correct. So in case anyone is currently "blessed" with this
misinformation, I should like to set the record straight :)
(Those who already know this can look away now and kindly refrain from
posting replies along the lines of "I knew that").
Note for Thomas Harte: It was your post that triggered my thoughts on
this, but this is by no means directed at you :)
The CPU in a Master 128 is a 65C12 CMOS processor*, running at the same
speed(s) as the 6502 in the BBC Micro, i.e. 2Mhz for the most part,
slowing down to 1Mhz for certain I/O accesses.
The 65C12 is a sort of halfway CPU between the 6502 and the 65C102
processors. It implements *most* of the additional opcodes found in the
65C102, but not all. It omits the BBS/BBR instructions in particular.
I have yet to come across a Master 128 that uses a 65C02, 65C102, 6512,
6510, 6502, or indeed any other 65xx chip other than the 65C12.
The 65C12 is not pin compatible with the 6502, however certain variants
of 65C02 and/or 65C102 (someone free to confirm which?) are pin
compatible, and thus provide access to the additional instructions.
Opcode &9C on most 6502s is unofficially (as in, not documented
anywhere) STZ absolute (though some 6502s do not have this), where as on
the CMOS variants, opcode &9C is officially STZ absolute. None of the
other additional instructions share this oddity.
Due to internal differences between the standard 6502s and the CMOS
variants, certain undocumented instructions used by naughty games
writers to gain a bit of speed do not work on the 65C12 used in the
Master, thus leading to the (in)famous compatibility issues.
* before anyone says "No, its a..." in the manner that seems to have
become a tradition with regards to my posts, trust me on this one, I've
opened the box, I've opened many M128 boxes, I've looked at the chip,
its a 65C12.
You may all return to your regularly scheduled nitpicking of my emails :)
*purchases flame-proof suit*
-- Richard