Thursday, April 7, 2016

CP/M cartridge arrived - tests have amazing results!

So, yesterday arrived C64 CP/M Cartridge.
For me is no so important if is CP/M running, but if is accessible its Z80 CPU.
First time I turned off SCPU and tested in C64 mode - Z80 works and CP/M 2.2 too. Maybe you think - so, what new, C128 has Z80 and newer CP/M version... if this had to be only one positive result, Z80 and CP/M could had both modes - C128 and C64 too. BTW: CP/M 2.2 and 3.0 are compatible but CP/M 2.2 cannot read CP/M 3.0 disks...
But now I turned on SCPU, first test failed... I was not surprised, but don't wanted to lost the fight. I switched SCPU to 1MHz and tried again - and - in C64 mode was working Z80 and CP/M too... I was surprised, so in hope I switch to C128 mode and try CPU switch routine with simple Z80 program - amazing - works perfectly, only one thing is in timing, SCPU must to be set to 1MHz. Now I tried to load CP/M 2.2 directly to Basic 2.0 start address to execute CP/M loader in C128 mode - failed what was not surprise.
What these results giving us?
- C128 has without SCPU 3 CPUs: MOS 8502, Z80 inside C128, Z80 inside cartridge
- C128 has with SCPU 2 CPUs: WDC 65816 and Z80 inside cartridge
- in C64 mode are available without SCPU 2 CPUs: 8502 and Z80 inside cartridge
- in C64 mode with SCPU are available 2 CPUs: 65816 and Z80 inside cartridge
What it means?
C128 can work in both modes with code of these CPU families: X65, 65K and X80 - even C128 without SCPU has 2 Z80 CPUs!
I add X80 feature finally to The Ace for C128 and C64 computers...

The Ace
- output routine is near to finish, I'm handling C65 chargen and screen loaction



  1. Hello, nice news ;-) A question ... in that case it's possible to use the c128 as a dual-core z80 , i mean programming with 2 threads, every one running on one z80 core? :-))))

    1. Maybe it can't bring to a great speed, but it would be amazing anyway ^_^

  2. This night I'll try to switch from Z8128 to Z8064 and back directly. Each CPU state saves all, so after swich can program continue. The same process I did with 8502 and Z8128. But really don't know if Is Z8064 downclocked too.
    *explain: Z8128 = Z80 inside C128, Z8064 = Z80 inside C64 CP/M cartridge

  3. A sort of parallel computing. There is a problem if z80-c64 goes at 4mhz instead of 2mhz as that of 128?

  4. This comment has been removed by the author.

  5. This comment has been removed by the author.

  6. In switching CPUs it is not relevant, 'cause this is example only. This night I felt asleep and did nothing.
    From the past I have switching between 8502 and Z8128, nice will be calling Z8064 directly from Z8128 and vice versa, also with 8502 between both Z80s, also 65816 between Z8064. I do it transparently that it can run in 64 mode and 128 too without crash at calling Z8128 in 64 mode. Now I'm updating The Ace web. After switch routines creating I'll go back to work on OS.
    Routines will publish