CMD's SuperCPU for the C64

For discussing the 65xx hardware itself or electronics projects.
Post Reply
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

CMD's SuperCPU for the C64

Post by BigEd »

Over here in a thread about the 65816 WhiteFlame mentioned the SuperCPU and this board photo:
3dWH5EM.jpg


(There's some general product info here)

BDD pointed out
Quote:
... a 40 MHz clock generator can be seen (a flop somewhere is dividing that to produce a Ø2 clock), but the 65C816 itself is a -14, meaning 14 MHz. I'm not familiar with the SuperCPU's design but do know that it did run reliably at 20 MHz
I note that the above board and other boards on nearby pages have GALs on them, and the more complex boards also use CPLDs.

Here are the related pages nearby:
CMD SUPER CPU - Tools
CMD SUPER CPU - Games
SUPER CPU's - History
HOW TO: Fix Games to work on SUPER CPU
SUPER CPU 64 - Look Inside (the page behind the photo above)
SUPER CPU 128- Look Inside

There's a long thread on lemon64 which mentions that the GALs have been dumped and the schematics reversed.

There's a pdf here about a RAM expansion which goes into a little detail about clock-stretching on the SuperCPU (it's a 20MHz CPU on a 1MHz machine, so something must be done for off-board devices!)

There's a user guide here for the RAM expansion which tells us that the two connectors near the North edge are for that purpose.

The V2 board (user guide) had 5 microclips which connect to the host machine's CPU - a bit more invasive.

Cheers
Ed

Found a clearer picture (of a different board...) on the lemon64 thread:
Image
Last edited by BigEd on Fri Dec 13, 2013 8:55 pm, edited 3 times in total.
White Flame
Posts: 704
Joined: 24 Jul 2012

Re: CMD's SuperCPU for the C64

Post by White Flame »

From what I recall, all SCPU 65816s are overclocked 14MHz parts.

The pins in the upper left go to an optional memory expansion board which takes SIMM sticks. Luckily, those were still (barely) available for cheap when I got mine, and have 16MB in there.

The memory interface to the C64's bus buffers 1 memory write at a time, so you're not that bandwidth limited for controlling the original hardware. Since it's a stock 816 and that uses an 8-bit data bus, I'd suspect the buffer is only 8 bits and that a 16-bit write to the main system would always block waiting for the second byte to buffer.

Reads from the C64's memory space of course must wait for a round trip through the 1MHz bus.
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: CMD's SuperCPU for the C64

Post by BigDumbDinosaur »

White Flame wrote:
From what I recall, all SCPU 65816s are overclocked 14MHz parts.

The funny thing is that long ago, 20 MHz '816s were officially available. The entire WDC CMOS line came in various speed grades, probably determined through production testing. As the '816 (and the 'C02) is a static design, I suspect it could be pushed pretty hard.

Quote:
Reads from the C64's memory space of course must wait for a round trip through the 1MHz bus.

Despite all that, the compute-bound performance was excellent. I recall assisting someone in rewriting a C-128 game developed in BASIC to work with the SuperCPU. The problem was that various delay and timing loops were implemented in FOR-NEXT statements, which were sped up so much the game became unplayable unless one had the reflexes of Superman. :lol: Sprites would careen across the screen at about Mach 13, making them almost invisible.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
White Flame
Posts: 704
Joined: 24 Jul 2012

Re: CMD's SuperCPU for the C64

Post by White Flame »

Yeah, none of the bandwidth issues come into play for much of the CPU-bound coding, as the host C64 basically becomes nothing more than an I/O device.
brain
Posts: 113
Joined: 05 May 2009

Re: CMD's SuperCPU for the C64

Post by brain »

I wasn't sure if there was a request for information in this thread, but I was around during the development of this unit and remember some about it, if there's a question. I also have a unit or so here.

The internal board with the clips was only needed for C128 use. C64 use did not require the board. The board was to make up for a lack of knowledge of the internal C128 MMU from the expansion port.

The 4 RAMs (128kB) there held 64kB of RAM and a shadow copy of the ROMs, since the ROM did not run fast enough. As others have noted, the 6510 was tristated and the system just used the bus in reverse. You could configure how much of the RAM space to "mirror" inside the 64. As noted, a single write to IO would not slow it down, but a second in 20 cycles would stretch the clock out to allow the previous write to complete.

I was not aware WSG sold -20 parts. Doug Cotton of CMD always noted that they were told by Bill that the -14 was the fastest marking, but that they would do 20 with no issues, so -14's were purchased for the units.

Jim
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: CMD's SuperCPU for the C64

Post by BigEd »

Thanks for the offer of info Jim. My aim with this thread was to collect and concentrate knowledge about this successful 816 product.

(Datasheet for the RAM chips at http://www.alliancememory.com/pdf/sram/ ... av.1.2.pdf, although it's not especially useful)

Cheers
Ed
User avatar
BigEd
Posts: 11463
Joined: 11 Dec 2008
Location: England
Contact:

Re: CMD's SuperCPU for the C64

Post by BigEd »

Here are two illustrations from the PDF I linked to in the head post:
SuperCPU RAM Speed<br />from Commodore World Issue 19
SuperCPU RAM Speed
from Commodore World Issue 19
SuperCPU Clock Stretching<br />from Commodore World Issue 19
SuperCPU Clock Stretching
from Commodore World Issue 19
J64C
Posts: 239
Joined: 11 Jul 2021

Re: CMD's SuperCPU for the C64

Post by J64C »

Been having a look at this recently. It has me wondering, how did they manage to get this working entirely through the cartridge port? Because the ports P0 to P5 (on the 6510) aren't accessible through the cartridge port.

Port 0 to 2 being of high importance.

P0 - LORAM
P1 - HIRAM
P2 - CHAREN
6510.gif
C64_Cartridge_port-1.png
Pretty much everything else required is on the cartridge port to run a CPU externally except for the ports.

Any idea how they got around this, without having to modify the innards of the C64?

It has me intrigued!
mdf200
Posts: 1
Joined: 31 Dec 2021

Re: CMD's SuperCPU for the C64

Post by mdf200 »

Locations 0 and 1 are virtual on the CPU (mapping to P0 to P5), so these would just write to the 65816, and it would just set the lines as required.

I also guess worst case, they could have the CPLD page in the CPU "just" to set those lines...
J64C
Posts: 239
Joined: 11 Jul 2021

Re: CMD's SuperCPU for the C64

Post by J64C »

mdf200 wrote:
Locations 0 and 1 are virtual on the CPU (mapping to P0 to P5), so these would just write to the 65816, and it would just set the lines as required.

I also guess worst case, they could have the CPLD page in the CPU "just" to set those lines...
Hi Mike,

Thanks for the reply. :)

That's the thing, the 65816 can't set he port lines from the expansion port side. I have since found out that all of the kernal and and control logic are replicated on the SuperCPU board, so the PLA (where the 6510 ports normally direct to) is sitting in its default state. So this pretty much answers my own question really.
Post Reply