It was around early 2014 when I decided to dust off my Sharp MZ-80A again and properly explore what might be achievable with it. For a long time I’d wondered whether you could even test for the Vertical Blank (a vital test to carry out if you are attempting to create graphics sync’d with the display). After finding some good reading material on the MZ I discovered there was, indeed, an easy test to wait for the Vertical Blank. After this the possibilities really opened up for what you can do on the 80A.
The only real issue with attempting ‘hi-res’ graphics or scrolling etc is that the timing of the display can be tricky to program for. Some 8-bit machines have interrupts already set up which are regulated by either the vertical blank or by a particular scanline being reached. The MZ-80A has none of this. We can test for the VBlank but that’s about it, we are then left to our own devices. This means you have to really experiment to get the right timings for your graphics displays (for instance the number of NOPs you need to burn before creating your graphics effect) because the VBlank / VSync itself can occur any time during your instructions which are waiting for it. Luckily, it is actually possible to achieve stable graphics effects despite all these issues. Please see below for some links to some examples.