Go Down

Topic: ZX80 emulator, work in progres (Read 69 times) previous topic - next topic

ebetti

Nov 12, 2019, 10:03 pm Last Edit: Nov 12, 2019, 10:05 pm by ebetti
I am using an arduino nano to write a ZX80 emulator.
I know that there are Z80 emulation libraries for arduino, but for now i dident try it. I just get the first results with the video output.

First, i found in internet the character set of ZX80, the ones on the first attachment.
So, with a lot of patience, i bitmapped it and transformed it in a progmem array:

PROGMEM unsigned char f[]={
0xFF, 0xFF, 0x0F, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xF0, 0x55, ..

and so on. A bit boring.

After that i start looking the video libraries available for arduino: TVout is very beautiful but the ZX80 has a screen of 32x24 chars, with a resolution of 8x8 pixel each char.
This corresponds to a video resolution of 256* 192.
To store a bitmap of 256*192 i need  6Kb, and my arduino has only 2KB of ram.

So.. i take hammer and i started to work heavily on TVout, rewriting pratically all the assembly code and
mainly spooring all the work the developer did to keep the code clean. But someting works..

The second attachment is my first results: it is a picture of my TV running a textual screen of 32x24.. Acually this require around  800 bytes of ram, leaving free around 1.2Kb..  
It doesn't seem a lot but if you consider that ZX80 was having 1Kb of ram shared with the screen i think i am on the correct way to have a working emulator.
The developer of ZX80 was obiouvsly better than me. The cpu was only 3.6mhz, the character buffer was someway zipped to fit the memory.. and there was not video chip..

If someone is interested on this project i will post the whole sources.




Go Up