... | ... |
@@ -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 |
|