Ideas for Internal C128 65C816 Accelerator Card

Started by airship, November 15, 2008, 05:21 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

airship

I know, I know. I throw out too many ideas and never develop any of them. I'm lame. I admit it. But I can't help myself.

I've been thinking about the possibility of having a 65C816 accelerator that plugs into the Z80 slot on the C128 motherboard.

You would, of course, need new ROMs for the C128 to work with it, but that's a minor concern.

I'm thinking of something relatively simple - no bells and whistles like an IDE controller or any of that.

The HARDWARE would consist of a minimalist daughterboard for the Z80 slot with a 65C816 @20MHz w/16MB RAM/Flash.

The SOFTWARE would provide a multitasking O/S w/40 & 80 multiple screens/windows support, REU emulation, cartridge emulation, and execution speed control.

When the daughterboard is active, the C128 itself would be relegated to I/O duties. The main function of the board would be to allow multiple C128 and/or C64 programs to run in a multitasking environment at user-selectable speeds.

That's it. Now it's time for all you smart guys to tell me why it won't work. And you can add disparaging comments about how lame I am if you want to, as well. :)
Serving up content-free posts on the Interwebs since 1983.
History of INFO Magazine

RobertB

     Hmm, sounds like an enhanced, internal SuperCPU 128.  :)

                Truly,
                Robert Bernardo
                Fresno Commodore User Group
                http://videocam.net.au/fcug

airship

I'm thinking something like this:



The ROM goes into the C128's internal ROM socket and is activated if you hold down the ALT key on boot. It contains code that lets the C128 itself act as a very, very smart terminal/display for the accelerator board. When activated, it turns on the accelerator.

The daughterboard is built using small modern components, so the 65C816, Flash, and RAM all fit into the same space as the Z80. (There's a design for a small board similar to this somewhere on the Interweb, but I can't find it now.) The flash contains the multitasking O/S, REU emulator, and cartridge emulator code.

Simple. Easy. Done. So who wants to build it? :)
Serving up content-free posts on the Interwebs since 1983.
History of INFO Magazine

RobertB

Quote from: airship on November 15, 2008, 08:43 AM
I'm thinking something like this...
Hmm, I think you should run it past Bil Herd.  Bil, are you listening?  :)

             Truly,
             Robert Bernardo
             Fresno Commodore User Group
             http://videocam.net.au/fcug
             The Other Group of Amigoids
             http://www.calweb.com/~rabel1/
             Southern California Commodore/Amiga Network
             http://www.sccaners.org/

darkatx

Quote from: airship on November 15, 2008, 05:21 AM
...
The SOFTWARE would provide a multitasking O/S w/40 & 80 multiple screens/windows support
...

I can see it now...Commodore Explorer so you can browse and manage your files by dragging and dropping and when they throw in the ethernet connection - it doubles as a simple browser too.

Since the bottleneck is the C128 running at 2 MHz...I wonder how it would go about multi-tasking?
I'd love to see how one could effectively bypass the chip to increase the bandwidth/frequency without losing sync?

RobertB

Quote from: darkatx on December 15, 2008, 02:12 PMSince the bottleneck is the C128 running at 2 MHz...I wonder how it would go about multi-tasking? I'd love to see how one could effectively bypass the chip to increase the bandwidth/frequency without losing sync?
Well, there is Contiki for the C128, though it seems to have problems at 2 MHz..  WiNGs is a multi-tasking environment, but it is for the C64 and needs a SuperCPU.  Then there is Wheels 128; with a SuperCPU, Maurice Randall described it as a hybrid of the 8-bit and 16-bit worlds.  His future Wheels SC (which seems to be gone into oblivion) was to have been a fully 16-bit, multi-tasking environment with the use of a SuperCPU.

             Truly,
             Robert Bernardo
             Fresno Commodore User Group
             http://videocam.net.au/fcug
             The Other Group of Amigoids
             http://www.calweb.com/~rabel1/
             Southern California Commodore/Amiga Network
             http://www.sccaners.org/

airship

If Michael Hart isn't dead, he could adapt SLOPe. :(
Serving up content-free posts on the Interwebs since 1983.
History of INFO Magazine

brain

I guess my question is why use the internal socket?  If you just want to use the C128 as a glorified IO terminal, you can do all of that through the expansion port.  No new ROMs would be needed, and you could still support your ALT-key operation.

I question the market for such a device, but I don't think the implementation will appreciably change that concern.

Jim

Blacklord

Quote from: airship on December 16, 2008, 03:41 AM
If Michael Hart isn't dead, he could adapt SLOPe. :(

He hasn't been on any of the forums he used to be involved in since February this year - abruptly disappeared of all of 'em at the same time. No-one's heard from him since.

Lance

airship

Quote from: brain on December 17, 2008, 06:38 PMI guess my question is why use the internal socket?  If you just want to use the C128 as a glorified IO terminal, you can do all of that through the expansion port.  No new ROMs would be needed, and you could still support your ALT-key operation.
I question the market for such a device, but I don't think the implementation will appreciably change that concern.
Jim
Jim, There's not really much of a 'market' for any of this stuff, is there? :)

I'm interested in doing it internally mainly because it irks me that there's that nice little Z80 sitting in there that doesn't really do anyone any good. If the connections are all there, why not come up with a board that's a modern stand-alone computer and stick it in that socket?

It's kind of like the old 'climbing the mountain because it is there' argument.
Serving up content-free posts on the Interwebs since 1983.
History of INFO Magazine

Mark Smith

Would it be possible to take an off the shelf Single Board Computer (ARM based say), then connect it's GPIO pins to the Z80 socket to allow it to take control of the bus and talk to the VIC, SID and other devices the same way the Z80 does ?

You'd have to amend the ROMs on the C128 to trim out and Z80 references, and then the software running on the SBC would have to be developed which would probably be the harder part of the project.

Just an idle thought.

Mark
------------------------------------------------------------------------------------------------------------------

Commodore 128, 512K 1750 REU, 1581, 1571, 1541-II, MMC64 + MP3@64, Retro-Replay + RR-Net and a 1541 Ultimate with 16MB REU, IDE64 v4.1 + 4GB CF :-)

brain

Quote from: airship on December 19, 2008, 05:17 AM
Quote from: brain on December 17, 2008, 06:38 PMI guess my question is why use the internal socket?  If you just want to use the C128 as a glorified IO terminal, you can do all of that through the expansion port.  No new ROMs would be needed, and you could still support your ALT-key operation.
I question the market for such a device, but I don't think the implementation will appreciably change that concern.
Jim
Jim, There's not really much of a 'market' for any of this stuff, is there? :)

I'm interested in doing it internally mainly because it irks me that there's that nice little Z80 sitting in there that doesn't really do anyone any good. If the connections are all there, why not come up with a board that's a modern stand-alone computer and stick it in that socket?

It's kind of like the old 'climbing the mountain because it is there' argument.

I asked because it does every C128 user a lot of good.  Without it, the C128 will not boot.

Yes, the functionality could be undertaken by another CPU, but then that CPU needs to perform all of the reset logic now performed by the Z80, before control is handled off to the 8502.  As well, note there are things you cannot do from that socket:

http://folkvagn.commodore64.org/c128assembly.htm#Z80CPU

"There are some things you can only do with the 8502 but not with the Z80. There is an NMI input on the Z80 but it is connected to ground so this means that you can't get interrupts to the Z80 when pressing RESTORE or from CIA #2. Furthermore, the I/O port registers at addresses 0 and 1 are 8502 specific so you can't change anything related to those bits when the Z80 is active, i.e. you can't decide if the CPU and the VIC should see color RAM from bank 0 or 1 (a little known feature), you can't use a Datassette, you can't detect if CAPS LOCK has been pressed and you can't switch out the character ROM shadow that by default exists in all 4 VIC banks on the C128. (On the C64 you always have character ROM shadow in two of the VIC banks and never in the other two but with the C128 with the 8502 active you can select if you want to have character ROM shadow in all four banks or in none of the banks.) "

So, if you want to pop open a C128 and replace something, it'd be best to replace the 8502 with a piggyback 8502 and your new machine.  But, since almost all of that is available on the expansion port, I'm not sure it's much better than to simply build something on the expansion port.