Skip to navigation

Revs on the BBC Micro

Drawing the track: vergePixelMask

Name: vergePixelMask [Show more] Type: Variable Category: Drawing the track Summary: Pixel bytes for drawing track verge edges
Context: See this variable in context in the source code References: This variable is used as follows: * DrawSegmentEdge (Part 3 of 7) calls vergePixelMask

This table contains four bytes for each of the different colour schemes for the track verges. The first byte contains four pixels of the fill colour, which gets poked into the byte to the right of the edge byte we are drawing. The other three bytes contain 1, 2 and 3 pixels of the foreground colour, with the pixels coming in from the left. So each batch looks like this if all four pixels are drawn: .... .... x... .... xx.. .... xxx. .... In the comments, this would be denoted as "Colour x then ." as colour x is on the left, then colour . is on the right.
.vergePixelMask EQUB %00000000 \ Colour 3 then 0 (green then black) bbbb bbbb EQUB %10001000 \ gbbb bbbb EQUB %11001100 \ * pixelMaskVerge for leftVergeStart ggbb bbbb EQUB %11101110 \ * pixelMaskNoVerge for leftTrackStart gggb bbbb EQUB %00001111 \ Colour 3 then 1 (green then red) rrrr rrrr EQUB %10001111 \ grrr rrrr EQUB %11001111 \ ggrr rrrr EQUB %11101111 \ gggr rrrr EQUB %11110000 \ Colour 3 then 2 (green then white) wwww wwww EQUB %11111000 \ gwww wwww EQUB %11111100 \ * pixelMaskVerge for leftTrackStart ggww wwww EQUB %11111110 \ gggw wwww EQUB %00000000 \ Colour 1 then 0 (red then black) bbbb bbbb EQUB %00001000 \ rbbb bbbb EQUB %00001100 \ rrbb bbbb EQUB %00001110 \ rrrb bbbb EQUB %00000000 \ Colour 2 then 0 (white then black) bbbb bbbb EQUB %10000000 \ wbbb bbbb EQUB %11000000 \ * pixelMaskVerge for rightVergeStart wwbb bbbb EQUB %11100000 \ wwwb bbbb EQUB %00001111 \ Colour 0 then 1 (black then red) rrrr rrrr EQUB %00000111 \ brrr rrrr EQUB %00000011 \ bbrr rrrr EQUB %00000001 \ bbbr rrrr EQUB %11110000 \ Colour 0 then 2 (black then white) wwww wwww EQUB %01110000 \ bwww wwww EQUB %00110000 \ bbww wwww EQUB %00010000 \ bbbw wwww EQUB %11111111 \ Colour 0 then 3 (black then green) gggg gggg EQUB %01110111 \ bggg gggg EQUB %00110011 \ * pixelMaskVerge for rightGrassStart bbgg gggg EQUB %00010001 \ * pixelMaskNoVerge for rightVergeStart bbbg gggg \ * pixelMaskNoVerge for rightGrassStart EQUB %11111111 \ Colour 1 then 3 (red then green) gggg gggg EQUB %01111111 \ rggg gggg EQUB %00111111 \ rrgg gggg EQUB %00011111 \ rrrg gggg EQUB %11111111 \ Colour 2 then 3 (white then green) gggg gggg EQUB %11110111 \ wggg gggg EQUB %11110011 \ wwgg gggg EQUB %11110001 \ wwwg gggg EQUB &03, &60 \ These bytes appear to be unused