|--| Are we at the end of a line? | end of line?,x|x,~ end of line| end of line?| end of line |--| Are we at the end of the screen? | end of screen?,y|y,~ end of screen| end of screen?| end of screen |--| Co pixel_y the pixel coordinates from `x/y` to `@pixel-x/@pixel-y`. | pixel_x=x,x|*x,@pixel-x, pixel_x=x | pixel_x=x| | pixel_y=y,y|*y,@pixel-y, pixel_y=y | pixel_y=y| |--| Compute some pixel colors based on the `x/y` coordinates. |--| r = x, g = y, b = x + y | pixel_red=x,x|*x,@pixel-r, pixel_red=x| pixel_red=x| | pixel_green=y,y|*y,@pixel-g, pixel_green=y| pixel_green=y| | pixel_blue=x+y,x|*x,@pixel-b, pixel_blue=x+y | pixel_blue=x+y,y|*y,@pixel-b, pixel_blue=x+y | pixel_blue=x+y| |--| Copy temporaries back to their respective variables. |*x|x|*y|y |plot_pixel| pixel_x, pixel_y, pixel_red, pixel_green, pixel_blue,ps | pixel_x| pixel_x=x:399 | pixel_y| pixel_y=y:399 | pixel_red| pixel_red=x:399 | pixel_green| pixel_green=y:399 | pixel_blue| pixel_blue=x+y:399 |ps|@set-pixel |--| Move the `x/y` coordinates. |x-,x||x-||y-,y||y-| |--| Main loop. ||x:399,y:399 |draw, end of line,x|draw, end of line,draw |draw, end of line|draw, end of screen?, @display |draw,~ end of line|plot_pixel,x-,draw |draw, end of screen|plot_pixel,x:399,y:399 |draw,~ end of screen,x|draw,~ end of screen |draw,~ end of screen|y-,x:399,draw |draw| end of line?,draw |--| clean up remaining facts |x||y| ||draw