rgb.nv
· 6.7 KiB · Text
原始檔案
Playground
|--| Constants.
|x:128|x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,
x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,
x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,
x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
|y:128|y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,
y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,
y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,
y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y
|pr=x:128|pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,
pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x
|pg=y:128|pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,
pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y
|pb=x+y:128|pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,
pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y
|px=x:128|px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,
px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x
|py=y:128|py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,
py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y
|--| Are we at the end of a line?
|eol?,x|x,~eol|eol?|eol
|--| Are we at the end of the screen?
|eos?,y|y,~eos|eos?|eos
|--| Copy the pixel coordinates from `x/y` to `@pixel-x/@pixel-y`.
|px=x,x|*x,@pixel-x,px=x
|px=x|
|py=y,y|*y,@pixel-y,py=y
|py=y|
|--| Compute some pixel colors based on the `x/y` coordinates.
|--| r = x, g = y, b = x + y
|pr=x,x|*x,@pixel-r,pr=x|pr=x|
|pg=y,y|*y,@pixel-g,pg=y|pg=y|
|pb=x+y,x|*x,@pixel-b,pb=x+y
|pb=x+y,y|*y,@pixel-b,pb=x+y
|pb=x+y|
|--| Copy temporaries back to their respective variables.
|*x|x|*y|y
|--| Plot a pixel.
|pp|px,py,pr,pg,pb,ps
|px|px=x:128
|py|py=y:128
|pr|pr=x:128
|pg|pg=y:128
|pb|pb=x+y:128
|ps|@set-pixel
|--| Move the `x/y` coordinates.
|x-,x||x-||y-,y||y-|
|--| Clear the previous color values before computing a new color.
|@pixel-r||@pixel-g||@pixel-b|
|--| Main loop.
||x:128,y:128
|f,eol,x|f,eol,f
|f,eol|f,eos?, @display
|f,~eol|pp,x-,f
|f,eos|pp,x:128,y:128
|f,~eos,x|f,~eos
|f,~eos|y-,x:128,f
|f|eol?,f
||f
1 | |--| Constants. |
2 | |x:128|x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x, |
3 | x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x, |
4 | x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x, |
5 | x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x |
6 | |y:128|y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y, |
7 | y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y, |
8 | y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y, |
9 | y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y,y |
10 | |pr=x:128|pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
11 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
12 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
13 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
14 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
15 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
16 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
17 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
18 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
19 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
20 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x, |
21 | pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x,pr=x |
22 | |pg=y:128|pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
23 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
24 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
25 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
26 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
27 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
28 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
29 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
30 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
31 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
32 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y, |
33 | pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y,pg=y |
34 | |pb=x+y:128|pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
35 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
36 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
37 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
38 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
39 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
40 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
41 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
42 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
43 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
44 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
45 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
46 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
47 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
48 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
49 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
50 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
51 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
52 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
53 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
54 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
55 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
56 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y, |
57 | pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y,pb=x+y |
58 | |px=x:128|px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
59 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
60 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
61 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
62 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
63 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
64 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x, |
65 | px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x,px=x |
66 | |py=y:128|py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
67 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
68 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
69 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
70 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
71 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
72 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y, |
73 | py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y,py=y |
74 | |
75 | |--| Are we at the end of a line? |
76 | |eol?,x|x,~eol|eol?|eol |
77 | |
78 | |--| Are we at the end of the screen? |
79 | |eos?,y|y,~eos|eos?|eos |
80 | |
81 | |--| Copy the pixel coordinates from `x/y` to `@pixel-x/@pixel-y`. |
82 | |px=x,x|*x,@pixel-x,px=x |
83 | |px=x| |
84 | |py=y,y|*y,@pixel-y,py=y |
85 | |py=y| |
86 | |
87 | |--| Compute some pixel colors based on the `x/y` coordinates. |
88 | |--| r = x, g = y, b = x + y |
89 | |pr=x,x|*x,@pixel-r,pr=x|pr=x| |
90 | |pg=y,y|*y,@pixel-g,pg=y|pg=y| |
91 | |pb=x+y,x|*x,@pixel-b,pb=x+y |
92 | |pb=x+y,y|*y,@pixel-b,pb=x+y |
93 | |pb=x+y| |
94 | |
95 | |--| Copy temporaries back to their respective variables. |
96 | |*x|x|*y|y |
97 | |
98 | |--| Plot a pixel. |
99 | |pp|px,py,pr,pg,pb,ps |
100 | |px|px=x:128 |
101 | |py|py=y:128 |
102 | |pr|pr=x:128 |
103 | |pg|pg=y:128 |
104 | |pb|pb=x+y:128 |
105 | |ps|@set-pixel |
106 | |
107 | |--| Move the `x/y` coordinates. |
108 | |x-,x||x-||y-,y||y-| |
109 | |
110 | |--| Clear the previous color values before computing a new color. |
111 | |@pixel-r||@pixel-g||@pixel-b| |
112 | |
113 | |--| Main loop. |
114 | ||x:128,y:128 |
115 | |f,eol,x|f,eol,f |
116 | |f,eol|f,eos?, @display |
117 | |f,~eol|pp,x-,f |
118 | |f,eos|pp,x:128,y:128 |
119 | |f,~eos,x|f,~eos |
120 | |f,~eos|y-,x:128,f |
121 | |f|eol?,f |
122 | ||f |