23

The Commodore 128 has two CPUs. One is some variant of the 6502, and the other is a Z80. One CPU is there for compatibility with the Commodore 64, and the other is there presumably to give basic compatibility with the CP/M titles that were available at that time. My question is whether those two CPUs can run at the same time, both accessing memory and the graphics and sound subsystems, or if one has to be disabled or halted while the other runs.

  • The 8502 CPU was also there for C128 mode, of course. – Tim Locke Jul 30 '16 at 13:54
  • Hot Network Question! :-) – wizzwizz4 Jul 31 '16 at 10:26
24

No, they cannot.

They share both the data and the address bus of the C128, so they can only run exclusively at any one point in time.

The address bus is apparently directly connected, the data bus of the Z80 through a set of latches to the data bus of the rest of the system.

In CP/M mode, the 8502 is handling keyboard, screen and printer and serial ports, while the Z80 "runs the programs". While one CPU is running, the other one needs to be HALTed.

  • And this is the same like CP/M card (Z80) for Apple //. – i486 Jul 30 '16 at 20:16
  • 1
    IIRC, the Z80 has signals that are designed to share a bus between multiple processors (albeit with reduced efficiency, due to contentions...). Does the 8502 not have similar signals that could have been used to allow sharing? – Jules Jul 30 '16 at 23:13
  • @Jules Both CPUs have means to shut them up (put them into tri-state) completely, and that is exactly how it is done in the C128 to time-share bus, peripherals and memory. Parallel operation as asked for, however (both CPUs running at the same time) would need at least partially de-coupled buses (i.e 8510 could talk to the keyboard while Z80 talks to memory - That is not possible with the C128 design) – tofro Jul 31 '16 at 9:40
  • Also, the 6502 world and the 8080/8085/8086... world used bus signalling conventions that made each other look like alien technology.... – rackandboneman Apr 7 '17 at 15:32
6

The 8502 CPU was also there for C128 mode, of course.

The 8502 and Z80 cannot be used at the same time. There are however other options.

The C128D has a third CPU, a 6502, in the floppy drive. Any drives connected to the IEC bus port of a C128 or C128D also have a 6502 in them. These CPUs could be used in parallel. A 1541 or 1571 has only 2KB of RAM but a 1581 has 8KB of RAM. The less common 8050 and SFD-1001 have 4 KB of RAM.

  • 1
    So there's a 6502 used to control the floppy drive in the C128D? It is maybe connected to the main computer over a similar sort of serial port as the 1541 drives with the C64. My guess is that this could be used as a kind of ASMP setup. Was that ever done? – Wilson Jul 30 '16 at 19:07
  • 1
    The closest thing I can think of is that there are disk copiers which execute in the RAM of two or more drives. You can unhook the computer and they will not only continue copying, but they'll also detect the drive door opening and closing and will copy subsequent disks on their own. I believe Fast Hack'em has a copier which will do this. – Tim Locke Aug 2 '16 at 21:04
  • This is why at demo competitions, the rules specify how many drives you are allowed to connect. :-) – clacke Apr 19 at 2:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.