Pico MZ-700 progress

I'm making decent progress with adding MZ-700 emulation to the Pico MZ. As far as I can tell I have functionally correct code and I haven't broken the MZ-80K and MZ-80A emulations. I've even managed to update the documentation!

I've limited testing to the Pico for the moment, as my Pico 2 with headers seems to have disappeared during our recent house move. I have a couple of Pico 2's without headers, so I need to find my soldering iron. Hopefully that will be soon so that I can get a first release out before Advent of Code 2025 starts.

The last couple of days have been spent benchmarking the code so that the Pico MZ runs as close to the correct speed of the original hardware as possible. This has been much easier to achieve with the MZ-700 emulation as it's in a separate executable (.uf2). I've had to compromise a little with the MZ-80K/A code as these compile into a shared executable (80A mode is selected by holding down button A during power on).

Even so, I'm happy with the results.

MZ-80KMZ-80AMZ-700
Real hardware618s569s358s
Pico mounted on a Pimoroni VGA board618s570s358s
RC2014 Pico VGA and RC2014 RP2040 VGA cards627s (1.5% slower)563s (1% faster)357s
Benchmark times for the original MZ hardware vs Pico MZ. Task is to generate all primes up to 7,500 using the Sieve of Erastothenes in BASIC. Identical source code used on all platforms with the standard Sharp BASIC interpreters. SP-5025 (MZ-80K), SA-5510 (MZ-80A) and 1Z-013B (MZ-700).
A screen showing the Prime numbers from 6983 to 7499, generated by the Sieve of Erastothenes. The output was produced by the Pico MZ emulating a Sharp MZ-80A, hence the green text on a black background. The task runs in 9m 30s, 1s slower than the real hardware.
Close enough! The Pico MZ (80A) generates the primes up to 7,500 just 1 second more slowly than real MZ-80A hardware.

I've also been playing games on the MZ-700 emulator. Of course I have. I'm still as bad at them as I was 40 years ago.

A game of space invaders being played on the Pico MZ (MZ-700). The aliens are a mixture of yellow and cyan. The score is 0 with a high score of 0. 3 bases are left.
Space Invaders on the Pico MZ (MZ-700).

Now, where did I put my soldering iron?