| ... | ... |
@@ -11,14 +11,18 @@ |
| 11 | 11 |
#7f0a .System/g DEO2 |
| 12 | 12 |
#8e0a .System/b DEO2 |
| 13 | 13 |
( screen size ) |
| 14 |
- #0140 .Screen/width DEO2 |
|
| 15 |
- #0140 .Screen/height DEO2 |
|
| 16 |
- ( draw ) |
|
| 17 |
- #03ff #0000 |
|
| 18 |
- &l |
|
| 19 |
- STH2k INC2k d2xy STH2r d2xy #01 draw-line |
|
| 20 |
- INC2 GTH2k ?&l |
|
| 21 |
- POP2 POP2 |
|
| 14 |
+ #00c0 |
|
| 15 |
+ DUP2 .Screen/width DEO2 |
|
| 16 |
+ .Screen/height DEO2 |
|
| 17 |
+ ( vector ) |
|
| 18 |
+ ;on-frame .Screen/vector DEO2 |
|
| 19 |
+ |
|
| 20 |
+BRK |
|
| 21 |
+ |
|
| 22 |
+@on-frame ( -> ) |
|
| 23 |
+ |
|
| 24 |
+ [ LIT2 &f $2 ] INC2k ,&f STR2 |
|
| 25 |
+ INC2k d2xy ROT2 d2xy #01 draw-line |
|
| 22 | 26 |
|
| 23 | 27 |
BRK |
| 24 | 28 |
|
| ... | ... |
@@ -28,27 +32,27 @@ BRK |
| 28 | 32 |
#0000 |
| 29 | 33 |
DUP2 ,&x STR2 |
| 30 | 34 |
,&y STR2 |
| 31 |
- #0020 #0001 |
|
| 35 |
+ #2001 |
|
| 32 | 36 |
&l |
| 33 |
- STH2k |
|
| 37 |
+ #00 OVR STH2 |
|
| 34 | 38 |
[ LIT2 &t $2 ] |
| 35 | 39 |
DUP2 DUP2 #01 SFT2 #0001 AND2 DUP2 ,&rx STR2 |
| 36 | 40 |
EOR2 #0001 AND2 ,&ry STR2 |
| 37 | 41 |
#02 SFT2 ,&t STR2 |
| 38 | 42 |
[ LIT2 &x $2 ] [ LIT2 &y $2 ] [ LIT2 &rx $2 ] [ LIT2 &ry $2 ] |
| 39 |
- STH2kr rot |
|
| 43 |
+ STH2kr rot |
|
| 40 | 44 |
STH2kr ,&ry LDR2 MUL2 ADD2 ,&y STR2 |
| 41 | 45 |
STH2r ,&rx LDR2 MUL2 ADD2 ,&x STR2 |
| 42 |
- DUP2 ADD2 GTH2k ?&l |
|
| 43 |
- POP2 POP2 |
|
| 44 |
- ,&x LDR2 #30 SFT2 #0020 ADD2 |
|
| 45 |
- ,&y LDR2 #30 SFT2 #0020 ADD2 |
|
| 46 |
+ DUP ADD GTHk ?&l |
|
| 47 |
+ POP2 |
|
| 48 |
+ ,&x LDR2 #20 SFT2 #0020 ADD2 |
|
| 49 |
+ ,&y LDR2 #20 SFT2 #0020 ADD2 |
|
| 46 | 50 |
|
| 47 | 51 |
JMP2r |
| 48 | 52 |
|
| 49 | 53 |
@rot ( x* y* rx* ry* n* -- x* y* ) |
| 50 | 54 |
|
| 51 |
- ( n-1 ) #0001 SUB2 STH2 |
|
| 55 |
+ #0001 SUB2 STH2 |
|
| 52 | 56 |
SWP2 ,&rx STR2 |
| 53 | 57 |
ORA ?&skipy |
| 54 | 58 |
[ LIT2 &rx $2 ] #0001 NEQ2 ?&skipx |