The Graph() kernel method doesn't support using a dithered color. So to overcome this I wrote this procedure:
(procedure (GraphDither y1 x1 y2 x2 clColor1 clColor2)
(var xI, xII, yI, yII, yOdd)
Graph(grFILL_BOX y1 x1 y2 x2 VISUAL clColor1)
= yOdd 0
(if (<> (% (- y2 y1) 2) 0)
= yOdd 1
)
= xI x1
= yI (- y2 2)
= xII (- (+ x1 2) 1)
= yII (- y2 1)
(if (yOdd)
= yI (- y2 1)
= xII x1
)
(while (1)
(if ((>= xII x2))
= xII (- x2 1)
= yII (- yII 1)
)
Graph(grDRAW_LINE yI xI yII xII clColor2)
(if (<= (+ xII 2) x2)
= xII (+ xII 2)
)(else
= yII (- yII 2)
)
(if (>= (- yI 2) y1)
= yI (- yI 2)
)(else
= xI (+ xI 2)
)
(if (>= xI x2)
break
)
)
)
The procedure starts by drawing a box with the first specified color, then draws parallel lines (slope = 1) which colors every other pixel in the box with the 2nd dither color.