Dual cpu computers

Another couple in this vein spring to mind…

The Decmate II c1982 - PDP-8 and Z80.

The Commodore SuperPet SP9000: 6502 and 6809. c1981.

These are (to me) more interesting than todays multi-cpu computers as the CPUs are different…

-Gordon

Interesting case! I was thinking of noting that the Amiga has a 6502-family micro to control the keyboard, but that’s not so interesting, I think, because it’s hardcoded to do just one job, and doesn’t offer other facilities. Indeed, I suspect for later machines it’s not uncommon to see a microcontroller in use for something, but it’s not application-accessible so doesn’t contribute to multiprocessing.

Nice example! However, it seems that the two CPUs are strictly active one at a time. So it’s another kind of multi-CPU, the alternate-CPU. It seems the C128 is similar (6502+Z80)

Hi
If anyone wants to work on the MicroCornicopia Public Domain 32000 PC card with NS32016 processor please let me know. I have most of the hardware design work done already but the project would likely need a lot of software work. As I understand it from the 1986 MicroCornicopia article, the board runs Unix System V which would be very cool.

The main remaining hardware tasks would be conversion of the PAL files to GALs and updating the older version of the KiCAD files to a newer version. Of course, we could probably get the old school PALs as NOS and program them as per the article. I’d rather use GALs personally, but it may be easier to use the older chips than deal with the design change. The PALs they call out seem to be common models emulated by the GALs so maybe not too hard?

Please think it over and send me a PM. Thanks, Andrew Lynch

1 Like

One obscure one I ran across is the Hector (Interact) DISK II system, where the Hector’s internal CPU managed the display and input/output, while the DISK II’s CPU ran CP/M and managed the floppies.

I haven’t found any more info about it, though.

Of course, the C64 1541 floppy also had its own CPU, but it didn’t run any sort of OS … just did floppy drive file system stuff and left the serious work to the host computer’s CPU.

1 Like

GAL’S seem to be short stocked by the suppliers. Finding PAL’s unlikely.
I seem to be ordering on ebay from China or Poland but you don’t have much
selection in speed or power and all the chips are CMOS.
A usb programer is not that much. $200?

I re-read the MicroCornicopia article and it discusses PAL to GAL conversion. I am less concerned about it now. I usually get GAL16V8 and GAL22V10 from AliExpress. The quality is hit-or-miss but if you get enough you can get some decent parts.

The original article is amazingly complete. I noticed that I also have the source code for the boot ROMs although I am going to have to keep digging to find out what the tool chain is. The filename is ROM.A32 if that provides any clue. Looks to be some form of NS32000 assembler.

Also, the article mentions the PAL equations are documented in PALASM. There are modern equivalents like GALASM which can synthesize the JEDEC files from the PALASM code. So very positive on the hardware side.

Still would need someone to work on the software side.

Although the PD32 is on a PC/XT board, there are instructions for converting to other 8-bit computers. The PD32 uses a parallel port to communicate with the host computer so the interface is quite basic.

Atmel (Now Microchip) still manufacture GALs but you might need an updated programmer - e.g. the TL866II Plus or their newer variants. The older Lattice GALs are becoming harder to find but I’ve not had issues with the ones I’ve bought via ebay (from China).

-Gordon

Well, you actually can run a program on the 1541 without actual computer (sort of), here is a video: Freespin demo running on Commodore 1541 floppy drive

2 Likes

A fun one is the MTU-130 and its “Datamover” memory expansion. Fun, because the MTU-130 was a (quite capable) 6502 system and used a full-fledged Motorola 68000 as an auxiliary processor (avaoiding conflicted words) in the Datamover for shuffling data, DMA, but also for executing tasks under the control of 6502:

The Datamover-256 is an advanced high speed microprocessor/memory expansion for the MTU-130 desktop computer. In use it provides the MTU-130 user with 256K additional bytes of memory, all fully accessible by the MTU-130’s 6502 processor. It also provides a slave processor function using the Motorola MC68000 16 bit microprocessor which is currently the most powerful microprocessor in general use. The 68000 can directly access the 256K of memory as well. Together these Datamover features allow the MTU-130 user to tackle applications heretofore impossible or impractical to do on a low cost desktop system.

(https://www.trailingedge.com/mtu130/Datamover%20Hardware%2068000%20Microprocessor%20Board%20Manual.pdf)

1 Like

Hi, since the PD32 design contains two separate computer interfaces (ISA and the parallel port) I am thinking to update the PD32 KiCAD files and see if it is practical to convert to a duodyne board.

It may be that we really don’t need the ISA connector and the PD32 could be repurposed as a duodyne NS32016 second processor. That would be cool. The ISA connector would only be useful in the context of an ISA type computer (PC/XT or PC/AT type computer).

Does add-on accelerator qualify as dual CPU? Assuming it does, there is an accelerator for Apple II , among many others, called Ultrawarp. I mentioned this specific accelerator because I’ve upgraded it from 65816+RAM+44 TTL to 65816+RAM+CPLD+1 TTL. Also made it faster in the process, up to 20Mhz. Unfortunately I don’t own the design of Ultrawarp, so the conversion to CPLD is not for public dissemination. I have a page here.
https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:apple2:ultrawarp2:rev1:uw2r1

The general design approach of coprocessor for Apple II is interesting and can be reused for other processors. So I do have an Apple II board with general CPLD interface that can hosts different processors.
https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:apple2:a2cpld:a2cpldhome

2 Likes

Interesting info about Ultrawarp, and the interface and your plans… but for me, dual cpu would have to mean some way of running both in parallel, at least some of the time. If they are running in an either-or relationship, for me it’s not quite the same, although it is a thing.

One obvious mainstream example was the Amiga Bridgeboard so you could run PC stuff on your Amiga as well as proper software.

There are some weird ones too. We had some weird little 68000 System III unixes boxes that had a Z80 for an I/O processor and could actually run a termnal app on the 68000 and use the Z80 for CP/M.

S100 bus had provision for CPU switching and could also handle standalone systems on cards in the slots. There were CP/M / MP/M not quite clones that actually knew how to do things like run the right kind of binary on the right CPU.

On the NS32K I have an RCbus NS32K board waiting testing. I just haven’t had time to get past the assembly stage, blow some test roms and debug it. It’s using one of the later embedded devices as that cuts the chip count dramatically. The software stack in theory is done-ish as I’ve had an emulator of the system working for ages.

1 Like

I believe that some of the Xerox D-machines had a multi-board Wildflower main CPU and an 80186 for all the I/O which could also be programmed.

1 Like

An early and unlikely dual-6502 system is the MDT 650 development system: one 6502 to run the show and the other to act as the target, with some kind of support for in-circuit investigation.

See @HansOtten’s writeup (with photos):
MDT 650 MOS Technology

But a more advanced, more expensive ($3950) system, quite rare now, is the MDT 650 (microcomputer development terminal for 650x).

Turns out to be previously mentioned:

1 Like

Dual 6502’s is new to me. I have heard of 6809’s and z80’s run as one master and many slave cpu’s,

A dual Z-80 CPU machine I used to service in my youth was the Superbrain, which ran CP/M and also did the “main CPU does the heavy lifting while the other CPU faffs with the I/O” shtick. I think we had a customer that was doing things on the second processor, but from memory (no pun intended) the second processor didn’t have full access to main memory, so was limited in what it could do.

1 Like

A rather unlikely candidate may be found in the TI Silent 700 teletypes, Model 763 and Model 765, from 1977. These featured both an Intel 8080, which handled the communication tasks, and a TMS 9980 (much like the TMS 9900 found in the TI 99, but with lesser bus capacity), which came with its own peripheral chipset and handled keyboard, remote typing, printer, etc (acting as a terminal inside the terminal).

More on this can be found in this rather intriguing blog post:

3 Likes

Wow that blog post is an excellent adventure - great find!

2 Likes

I was fiddling with my LC040 and realised there is another one not mentioned - the Apple II card for the LC Macintoshes.

I have also been disappearing down the Ohio Scientific rathole for a project so I can add some more.

OSI Challenger 3 (model 510 mainboard). Switchable Z80/6800/6502 system - including software switching processors. Only one CPU at a time but you can happily bounce from the 6502 monitor into CP/M (in fact the Lifeboat CP/M boot appears to start in 6502) or off to 6800 land.

The III is interesting in that it genuinely has multiple ecosystems. Whilst not really much 6800 it supported the full OSI 6502 OS stack and it supported a fairly full Z80 CP/M. CP/M is slightly odd internally as the machine has RAM 0000-BFFF and D000-EFFF but I/O C000-CFFF (classic 6502 mess). Lifeboat managed to put CP/M, BIOS and disk buffers at D000-EFFF and just enough below C000 to makeit appear to applications thgere is no hole. It’s also one of the earliest “K is 1000” systems I’ve seen as Lifeboat CP/M 2.0 reports “49K” 8)

The 510 is really clever as a concept. It holds two processors in reset and uses a PIA and some oneshots so that you can trigger a CPU change which causes the running CPU to enter reset and the new CPU to exit it. By putting the code you need so it is executed from reset you can pass stuff back and forth. For the Z80 it’s easy as the machine has RAM at 0. For the 65xx/68xx there is another PIA bit that remaps FFxx as RAM so you can insert your own vectors before transfers.

3 Likes