BC’s Quest for Tires for the Apple II displayed using zones. While most zones are horizontal stripes, the high score area demonstrates a zone restricted both vertically and horizontally

Zones allow you to partition off sections of the screen and then apply specific colour remapping, voxel depth and voxel offset functions to them. Zones are particularly useful in increasing the number of screen colours visible in games that use the 6-colour Apple II HGR graphics mode.

These functions will most commonly be used with the @vm.redirect function by a ‘control program‘, in order to modify areas of a booted disk’s screen in another VM.

Like other functions that affect the screen display, you first need to specify the target graphics screen using the @color.palette function, for example @color.palette{“HGR”} is the most common graphics mode used on the Apple II.

@zone.create{index,x,y,x2,y2}

Creates a zone of index in a rectangular area whose top-left corner is x,y and whose bottom-right corner is x2,y2.

@zone.delete{index}

Deletes zone.

@zone.depth{index,colour,depth}

Sets the voxel depth of palette colour in zone index to the specified depth.

@zone.init{}

Removes all zone definitions.

@zone.offset{index, colour,offset}

Similar to @zone.depth.

@zone.reset{index}

Deletes zone index.

@zone.rgba{index,colour,R,G,B,A}

Remaps palette colour in zone index to R (red) G (green) B (blue) A (opacity).

Karateka for the Apple II displayed using zones. By defining a series of horizontal zones and remapping the same colour to different RGBA values, we can create a raster sky effect