12345678910111213141516171819202122232425262728293031 |
- start-microcode setpixel
- : setpixel ( yx -- ) \ set pixel yx to color from COMM+2, about 35 cycles
- dup>r
- h# f and
- r@ d# 4 rshift h# 0ff0 and or
- r@ h# 30 and swab or
- RAM_SPRIMG or ( addr )
- dupc@ ( addr v )
- h# c0 r> d# 5 rshift h# 6 and rshift dup>r \ mask in R
- invert and r> COMM+2 c@ and or
- swap c!
- ;
- : main
- begin
- \ wait until command reg is nonzero
- begin
- COMM+2 c@
- until
-
- \ 0 is X, 1 is Y
- COMM+0 c@ COMM+1 c@ swab or
- setpixel
- \ tell host we're done
- d# 0 COMM+2 c!
- again
- ;
- end-microcode
|