ZX Spectrum Art

Mark Schofield

Return to articles

The limitations of making art on the ZX Spectrum computer


I obtained my first home computer, a ZX Spectrum 128, in 1987. After learning the rudiments of the ZX Basic programming language from the manual, I started to explore the possibilities of the computer to produce art.

The ZX Spectrum has major limitations in what may be achieved graphically, and I soon realized that it was necessary to design artwork with these limitations in mind.


The screen resolution is 256 x 192 pixels. Each 8 x 8 region of pixels is called an attribute block, so the screen consists of 32 x 24 attribute blocks. In each attribute block, only 2 colours may be used; the 'ink' and the 'paper'

There are only 8 basic colours (black, blue, red, magenta, green, cyan, yellow and white), although all the colours except black have both a 'bright' and a 'dark' option. When viewed using a TV screen, it is not possible to distinguish between 'bright' and 'dark'. As with most ZX Spectrum users, I had a small TV set and not a monitor, so I was limited to the 8 basic colours.

Color number Binary value BRIGHT 0 (RGB) BRIGHT 1 (RGB) Color name
0 000 #000000 #000000 black
1 001 #0000CD #0000FF blue
2 010 #CD0000 #FF0000 red
3 011 #CD00CD #FF00FF magenta
4 100 #00CD00 #00FF00 green
5 101 #00CDCD #00FFFF cyan
6 110 #CDCD00 #FFFF00 yellow
7 111 #CDCDCD #FFFFFF white

Planning an artwork

I began with a piece of graph paper of the sort we used to use at school. This paper is divided into 1 cm squares, with each square being subdivided into 10 x 10 mm squares. The first step is therefore to draw 32 x 24 squares of 8 x 8 mm to define the screen.

As there can be only 2 colours per square, the transitions between colours need to be carefully planned. The margins of an object are particularly difficult, since the background uses the 'paper' and the margin itself the 'ink'. It is possible to use the squares as contours for an image, but the result can then appear somewhat blocky. The trick is therefore to use non-linear margins in order to disguise the squares, conserving a maximum of whole squares within the object for transitions to different colours.

Owing to the limited colour palette, the best subjects for an artwork are those that use only the 8 basic colours. It is possible to 'mix' two of the basic colours by placing pixels of one colour next to pixels of another colour in a checkerboard fashion. On a low resolution TV screen, this technique is reasonably effective.

Creating the image on the computer

I had no graphics software to produce the image on the computer. Instead, I used ZX Basic to draw directly to the screen. Although I cannot remember exactly how I did this, I recall defining each attribute block programmatically using the following technique:

The programming of an image took me several days, and many hundreds of lines of code. When running the ZX Basic program to create the image, I remember attribute blocks appearing one by one as the program progressed, with the final image taking several minutes to appear.


Of all the artwork I produced on the ZX Spectrum, the only piece I still have is this toucan. It dates from 1988, and was based on a photo in a brochure for Chester Zoo.

From the original drawing on graph paper, I wrote a ZX Basic program to create the computer image below.

Toucan, Mark Schofield

I sent the toucan on a cassette to Crash magazine, and it appeared in the section entitled On the Screen of issue n° 57 published in October 1988.

Return to articles | Back to top

Mark Schofield
Last updated : 09 Feb 2011