AMIGA alive

AMIGA alive

Monday, January 31, 2022

AADevLog #3 - A paint program for the ZX81

The Sinclair ZX81 is a wonderful little machine. It's limitations create both a simple, fun environment to play with, and a challenge for developers.

About four decades ago, I started learning about computers with a ZX81. Type in stuff on a minimalist keyboard, print characters to a simple 32x24 characters monochrome screen, don't worry about colors or sound, because they're just not there. The ZX81 has very little memory, and the user interface is almost non-existent, so you're done pretty quickly. It's great, but also very limited in terms of sophisticated tools - there's just no extra room for such things, and you're having a hard time entering and editing the required data on the ZX81 anyway.

About three decades ago, I started using an Amiga. The Amiga, in comparison to the ZX81, is a highly capable computer. It has plenty of room, tons of screen size, a proper keyboard, several standard I/O ports, and colors and sound on top of it. Well, obviously it became my main computing platform.

About two weeks ago I got myself a ZX81 again. Oh what pleasures. Nostalgia galore. And that great experience of typing in little things which create immediate results.

Of course I quickly ran into some of the aforementioned limitations, so I decided to create some ZX81 support software for the Amiga: a paint program to paint nice game intro screens.

First painting with zx81paint.

It's called "zx81paint" and runs on Amigas with OS2.0 or higher. Currently it can't load or save files, but a first painting was created successfully. 

Due to the simplicity of the ZX81, the data that needs to be handled is also very simple, so there are little to no critical issues. For example the ZX81 picture itself is stored as a fixed-size array of bytes filled with ZX81 character set codes. Most of the development time is spent on putting together a pleasant and useful user interface. With the data and program structure in place, functions like line-drawing, flood fill, etc. can easily be added.

File loading and saving is currently missing - and might be one of the more challenging aspects of this little project. Several file formats used by emulators come to mind, but it would also be nice to have something that can directly be played back to the ZX81's tape-in ("EAR") jack.

There's no fixed feature list for "zx81paint", but an early release version will be put on AmiNet in a few days.

Thanks for reading, c u next time!

* * *

Click here for an overview of all AADevLog articles