All The Good Ones Were Taken

Z1a - The Software (So Far)

Before writing much Z180 assembly language, I wrote was my own Z180 assembler, in Python. That's probably taking the do-it-yourself aspect a bit too far, and it's not terribly efficient, but there ya go.

As described earlier, I started out with a quick Hello World. Well, I say quick, I had to write character display and scrolling routines, and make a pixel font.

At this point, I decided that debugging would be a lot easier with an emulator, so I put together a web-based one based on Molly Howell's Z80.js. I'm using some of the Z180's extra instructions and interrupt modes, so I've hacked in just enough support for them. You can play with the emulator online.

Next up, a simple machine monitor that I could use to poke around memory and I/O ports, read from and write to serial ports and the IDE port, adjust register values, jump to memory addresses, etc.


At this point I was eager to make the machine do something showoffably useful. My usual test of new platforms is to write a bad Pac-Man clone. But in this case, since the original arcade game ran on a Z80 processor, I wondered if I could tweak it to run on the Z1a. I'm indebted to Simon Owen for having already figured out how to trick the arcade game into running on different hardware. "All" I had to do then was write my own input and graphics routines, and make some cut-down graphics and font to fit the screen size.

But for proper 1980s-home-computer-ishness, the Z1a needed a BASIC interpreter...