Tjoppen to be exact about hardware limitations there's 64kb RAM, 16kb VideoRAM. 320x200 takes 8kb vram for each BITPLANE(like on atarist or amiga) so you get 4 colors on screen from 16 color palette. Remember you have to fill up TWO(!!!) bitplanes to have multicolor sprites.
AY-3-8910 beats barely SN76489 so that tells you something about the sound quality.

I DO agree that even considering the hardware limitations this isn't technicly that good of a prod.

http://paste.servut.us/y1gt <- I think a smart z80 coder understands what's going on. After line 191 there's 'precalculated' ~addresscode that draws the wanted sprite. I guess you could store some commonly used bytesets to registers so you don't need to use eg.

Tjoppen: Everyone with brains in their head has alread upgraded their MZ800 to 32K VRAM...it's just 2 Chips you neet to put into ready sockets. 81416's or similar are not so hard to come by. Just rip apart some old PCB from trash...