Sunday 23 January 2022

The CMD SuperCPU, separating fact from fiction, Part I

The SuperCPU (SCPU) device is a hardware expansion which plugs into the back of a Commodore C64 or C128 (or will plug into the top of a C64 GS if you can find cartridge games to work with it). It has a WDC 65c816s CPU (similar to the CPU found in Nintendo's Super Nintendo Entertainment System) which is clocked at the breakneck speed (for the C64/128 platform) of 20Mhz. It has 128K as standard (I think on both the C64 and C128 models, and both the V1 and V2 units) and allows you to add up to 16MB of RAM that can be seen by the CPU in the cartridge expansion. It was first launched by Creative Micro Designs Inc. (CMD), and there are two different sources for a release date. One states Sunday, 4th May 1997, and the other states Saturday, 4th May 1996. I suspect the 1997 date is correct (when I was exactly 20 years old), but either way, new C64 machines had not been manufactured since 1993 and in many regions it was a dead platform.

Consider that the "World Wide Web" was in its infancy, and networked computers and devices where not as common in the home or workplace, so whilst there was an Internet with web pages that one could browse (and at the time, I did my best to do this with my 1200 baud C64 modem), there wasn't a significant Internet community keeping the C64 alive. Most information back then was still spread by magazines and fanzines, and hearsay. In the UK, dial up Internet connectivity was still a luxury, and the cost of dial up Internet was still something that many households would not justify. Either way, launching such a piece of hardware in the mid to late 1990s was a bold move by CMD. And it could do so because CMD hardware was awesome, and kept the C64 or C128 a very usable platform, hence the end user had no immediate reason to "upgrade" to "better" computers, especially I would say those users who had heavily invested their time and efforts into the fabulous GEOS operating system (which CMD supported avidly, and held the rights to distribute). And even now, the RAMLink is one of the best mass storage drives for the C64 or C128, and that was launched in 1990. Maybe I'll tell you more about the RAMLink in another post, as this is another piece of CMD hardware that isn't well understood.

My take on all of this is that CMD had a very loyal customer base because it kept the best computer platform of the 20th century very much alive. Most of the protagonists against CMD seemed to create a myth that it was not okay to upgrade the C64, and that all software must be compliant with the 1982 specification of the machine. Whilst this view is still prevalent today, there are always caveats to it, like "yeah but Sonic is allowed because [insert arbitrary reason]" or "Sam's Journey uses the REU for NTSC and that's okay because [some other arbitrary reason]". The point is that most personal or home computers worth owning (and even those not worth owning) had upgrades available. I mean, we don't religiously stick to the 1981 specification of the IBM PC, or the 1977 specification of the Apple ][, so why is the C64 different? Upgrades and addons tended to give a better user experience, that's why cartridges like the Action Replay from Datel Electronics, or the Super SnapShot by LMS Technologies were popular and remain popular today, especially given the slow drive access of the 1541 and the clunky way you performed disk drive commands in C64 BASIC. In my view, CMD made the very best and most compatible addons, expansions and upgrades for the C64 and C128. It was a sad day when it left the C64 market for pastures new.

You will note here that I've mentioned the C128. That's because CMD's hardware wasn't just C64 compatible, but worked with the C128 as well, not just in C64 mode either, but in its native modes (except for maybe the Z80 and CP/M, but I know nothing about this dark side of the C128 anyway, and it is perhaps the least used feature of the platform). So, if you think that the SCPU is only a C64 upgrade, you'll be wrong. There are two versions of it for the two machines, although the SCPU 128 does require an MMU Adapter which you carefully remove the MMU chip and place it into a new piece of electronics which allows the SCPU 128 to use the 40 and 80 columns mode natively. So if nothing else, any BASIC 7 programs will run faster, and your 80 columns screen will update more quickly. Although it's likely that your primary use would be GEOS or something like NovaTerm V2, or programming, as we know that the number of entertainment software titles available for the C128 is rather sparse though not completely unheard of.

As the SCPU supports both the C64 and C128 platform, the VICE emulation is only about half of the device, and I'm sure that the real hardware can do more tricks than the emulator does. So whilst the emulator is very cool, I don't think we'll see a full SCPU emulator anytime soon, and perhaps never. Firstly, the C64 scene doesn't really care about the SCPU. Secondly, it's a C64 scene, and the C128 is kind of like a forgotten relative that you don't see very often. And thirdly, I'm pretty sure that VICE is only emulating the SCPU V2 and not the V1. Okay, that latter point may be minor, but overall if you want to see everything that a SCPU can do, you'll need a C128 with MMU adapter and a SCPU 128. Then you'll have potentially at least everything that you'll need. But even with this, SCPU software is so sparse that I don't think we will see every trick that may be achieved with this hardware.

In any case, a short time ago, because of misinformation (or a common myth) that there are only three programs written for the SCPU, or only three programs worth loading, I started to create a list of all SuperCPU software that I could find. I began with CSDb.dk which currently shows 80 releases; many of these releases use the SuperRAM in place of the slower disk access (even with a fast loader, using the SuperRAM will be much quicker than the best 1541 speeds), so these releases may be enjoyed on an unexpanded system, just not these versions. I then started to look for the old sites I would pour over back in the late 1990s and early 2000s (those that I can still find at least). So far, I have 81 releases marked as "Games" (some of which actually for the C128 and even for 80 columns VDC display), 14 marked as "Demos" (no C128 stuff here), four GEOS releases (though I've not yet even scratched the surface), six under "Programming" and 44 other releases or software (including four "In Progress" and seven under the category "Cancelled or unknown"). In any case, there are definitely more than three programs for the SCPU. And of course, there are many different programs that benefit at 20Mhz. This latter category will take much longer to research and document, but I've at least made a start. You may view my research so far on on my Google Drive.

Aside from all of this software that is available, and that list is not just Metal Dust, Wolf 3D, and Doom, there is the question of how many SCPU devices were made by CMD. The total number by Maurice Randall would be easier to count, as this I suspect will be fewer than a couple of dozen. The highest serial number I've seen on CMD SCPUs for the 64 model is somewhere above 5k, and for the 128 model its around the 2700 mark. Now this may seem high, but it makes sense. CMD supported the Commodore platform until 2001. It could not have survived without selling its hardware in particular, as its software sales would not have sustained the company for so long. Its only a shame that more C64 users around that time who knew about CMD didn't support the company more, but then the hardware wasn't cheap. Cheaper than a new PC which be now would be completely obsolete and useless (unlike a C64 or C128 with a SCPU and RAMLink I might add, as although obsolete the very least new software is still being developed for the C64 and occasionally the C128).

Whilst you are reading this, I assume that you're also interested in the SCPU. If you are on Facebook, there is a group that was set up to discuss SCPU coding but is now widened its remit to include software as well. You may ask to join it here.

3 comments:

  1. From my observations of various SCPUs, it appears that the revision is encoded as the first digit after the computer model code (C128 = 128, C64 = 00 (CMD unit), C64 = 64 (MRE unit). The digits after appear to be the manufacturing serial.
    Revision 1A = 1, 1B = 2, 1C = 3, 2A = 4, 2B = 5
    So, a CMD SCPU 64 Rev1C would be CPU003xxx, a MRE SCPU 64 Rev2B would be CPU645xxx, while a C128 SCPU Rev2B would be SCPU1285xxx.

    The MRE unit I have, CPU645087, sports a C128 R2.02 PLD and a C128 U2 IC. The highest serial I have recorded from other sources for a CMD C64 SCPU R2B is CPU645058. The MRE serials are likely a continuation from the CMD numbers.

    ReplyDelete
    Replies
    1. Thanks for the useful information. Although CMD also stated the revision of the unit on the underside of it too.

      Delete
  2. Addition to my comment: CMD seems to have changed the model code for C64 from 00 to 64 as from the release of R2x units.

    ReplyDelete