| ... | ... |
@@ -8,12 +8,12 @@ |
| 8 | 8 |
|0100 ( -> ) |
| 9 | 9 |
|
| 10 | 10 |
;hello-word |
| 11 |
- &loop |
|
| 11 |
+ &while |
|
| 12 | 12 |
( send ) LDAk .Console/write DEO |
| 13 | 13 |
( incr ) #0001 ADD2 |
| 14 |
- ( loop ) LDAk ,&loop JCN |
|
| 14 |
+ ( loop ) LDAk ,&while JCN |
|
| 15 | 15 |
POP2 |
| 16 |
- #01 .System/debug DEO |
|
| 16 |
+ ( show debugger ) #01 .System/debug DEO |
|
| 17 | 17 |
|
| 18 | 18 |
BRK |
| 19 | 19 |
|
| ... | ... |
@@ -4,19 +4,24 @@ |
| 4 | 4 |
|
| 5 | 5 |
( devices ) |
| 6 | 6 |
|
| 7 |
-|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ] |
|
| 7 |
+|00 @System [ &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ] |
|
| 8 | 8 |
|20 @Screen [ &vector $2 &width $2 &height $2 &pad $2 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] |
| 9 | 9 |
|
| 10 | 10 |
( variables ) |
| 11 | 11 |
|
| 12 | 12 |
|0000 |
| 13 | 13 |
|
| 14 |
-@center [ &x $2 &y $2 ] |
|
| 14 |
+@count $2 |
|
| 15 |
+@center |
|
| 16 |
+ &x $2 &y $2 |
|
| 15 | 17 |
|
| 16 | 18 |
( init ) |
| 17 | 19 |
|
| 18 | 20 |
|0100 ( -> ) |
| 19 | 21 |
|
| 22 |
+ ( vector ) |
|
| 23 |
+ ;on-frame .Screen/vector DEO2 |
|
| 24 |
+ |
|
| 20 | 25 |
( theme ) |
| 21 | 26 |
#f07f .System/r DEO2 |
| 22 | 27 |
#f0e0 .System/g DEO2 |
| ... | ... |
@@ -35,6 +40,30 @@ |
| 35 | 40 |
|
| 36 | 41 |
BRK |
| 37 | 42 |
|
| 43 |
+@on-frame ( -> ) |
|
| 44 |
+ |
|
| 45 |
+ .count LDZ2 #0001 ADD2 [ DUP2 ] .count STZ2 |
|
| 46 |
+ |
|
| 47 |
+ .center/x LDZ2 #0048 ADD2 .Screen/x DEO2 |
|
| 48 |
+ .center/y LDZ2 #0050 SUB2 .Screen/y DEO2 |
|
| 49 |
+ |
|
| 50 |
+ ( color ) #01 STH |
|
| 51 |
+ |
|
| 52 |
+ SWP |
|
| 53 |
+ DUP #04 SFT [ #00 SWP ] #30 SFT2 ;font-hex ADD2 .Screen/addr DEO2 |
|
| 54 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
| 55 |
+ #0f AND [ #00 SWP ] #30 SFT2 ;font-hex ADD2 .Screen/addr DEO2 |
|
| 56 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 57 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
| 58 |
+ DUP #04 SFT [ #00 SWP ] #30 SFT2 ;font-hex ADD2 .Screen/addr DEO2 |
|
| 59 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 60 |
+ ( draw ) STHkr .Screen/sprite DEO |
|
| 61 |
+ #0f AND [ #00 SWP ] #30 SFT2 ;font-hex ADD2 .Screen/addr DEO2 |
|
| 62 |
+ .Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
|
| 63 |
+ ( draw ) STHr .Screen/sprite DEO |
|
| 64 |
+ |
|
| 65 |
+BRK |
|
| 66 |
+ |
|
| 38 | 67 |
@draw-table ( -- ) |
| 39 | 68 |
|
| 40 | 69 |
#10 #00 |
| ... | ... |
@@ -65,8 +94,7 @@ RTN |
| 65 | 94 |
( move ) DUP #f0 AND #02 DIV #00 SWP |
| 66 | 95 |
.center/y LDZ2 #0040 SUB2 ADD2 .Screen/y DEO2 |
| 67 | 96 |
( draw ) DUP .Screen/sprite DEO |
| 68 |
- ( incr ) #01 ADD |
|
| 69 |
- NEQk ,&loop JCN |
|
| 97 |
+ #01 ADD NEQk ,&loop JCN |
|
| 70 | 98 |
POP2 |
| 71 | 99 |
|
| 72 | 100 |
RTN |
| ... | ... |
@@ -110,12 +138,12 @@ RTN |
| 110 | 138 |
|
| 111 | 139 |
#00 STHkr ADD .Screen/sprite DEO |
| 112 | 140 |
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
| 113 |
- #10 STHkr ADD .Screen/sprite DEO |
|
| 141 |
+ #10 STHkr ADD .Screen/sprite DEO |
|
| 114 | 142 |
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 |
| 115 | 143 |
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 |
| 116 |
- #20 STHkr ADD .Screen/sprite DEO |
|
| 144 |
+ #20 STHkr ADD .Screen/sprite DEO |
|
| 117 | 145 |
.Screen/x DEI2 #0008 ADD2 .Screen/x DEO2 |
| 118 |
- #30 STHr ADD .Screen/sprite DEO |
|
| 146 |
+ #30 STHr ADD .Screen/sprite DEO |
|
| 119 | 147 |
|
| 120 | 148 |
RTN |
| 121 | 149 |
|
| ... | ... |
@@ -123,13 +151,13 @@ RTN |
| 123 | 151 |
|
| 124 | 152 |
.center/y LDZ2 #0040 SUB2 .Screen/y DEO2 |
| 125 | 153 |
.center/x LDZ2 #0048 ADD2 .Screen/x DEO2 |
| 126 |
- #00 .Screen/pixel DEO |
|
| 154 |
+ #00 .Screen/pixel DEO |
|
| 127 | 155 |
.center/x LDZ2 #0049 ADD2 .Screen/x DEO2 |
| 128 |
- #01 .Screen/pixel DEO |
|
| 156 |
+ #01 .Screen/pixel DEO |
|
| 129 | 157 |
.center/x LDZ2 #004a ADD2 .Screen/x DEO2 |
| 130 |
- #02 .Screen/pixel DEO |
|
| 158 |
+ #02 .Screen/pixel DEO |
|
| 131 | 159 |
.center/x LDZ2 #004b ADD2 .Screen/x DEO2 |
| 132 |
- #03 .Screen/pixel DEO |
|
| 160 |
+ #03 .Screen/pixel DEO |
|
| 133 | 161 |
|
| 134 | 162 |
RTN |
| 135 | 163 |
|