|--| 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 |--| Copy 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, set pixel |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 |set pixel| @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