... | ... |
@@ -192,6 +192,14 @@ drawdebugger(Uint32 *dst, Uxn *u) |
192 | 192 |
drawicn(dst, x, y, icons[(b >> 4) & 0xf], 1 + (u->wst.ptr == i), 0); |
193 | 193 |
drawicn(dst, x + 8, y, icons[b & 0xf], 1 + (u->wst.ptr == i), 0); |
194 | 194 |
} |
195 |
+ for(x = 0; x < 32; ++x) { |
|
196 |
+ drawpixel(dst, x, HEIGHT / 2, 2); |
|
197 |
+ drawpixel(dst, WIDTH - x, HEIGHT / 2, 2); |
|
198 |
+ drawpixel(dst, WIDTH / 2, HEIGHT - x, 2); |
|
199 |
+ drawpixel(dst, WIDTH / 2, x, 2); |
|
200 |
+ drawpixel(dst, WIDTH / 2 - 16 + x, HEIGHT / 2, 2); |
|
201 |
+ drawpixel(dst, WIDTH / 2, HEIGHT / 2 - 16 + x, 2); |
|
202 |
+ } |
|
195 | 203 |
} |
196 | 204 |
|
197 | 205 |
void |
... | ... |
@@ -24,75 +24,76 @@ |
24 | 24 |
|
25 | 25 |
|0100 @RESET |
26 | 26 |
|
27 |
- ~dev/screen.width #0002 DIV2 #0098 SUB2 =bankview.x ~dev/screen.height #0002 DIV2 #0040 SUB2 =bankview.y ,bank1 =bankview.addr |
|
28 |
- ~dev/screen.width #0002 DIV2 #0008 SUB2 =tileview.x ~dev/screen.height #0002 DIV2 #0040 SUB2 =tileview.y ,bank1 #0448 ADD2 =tileview.addr |
|
27 |
+ ~dev/screen.width #0002 DIV2 #008a SUB2 =bankview.x |
|
28 |
+ ~dev/screen.height #0002 DIV2 #0040 SUB2 =bankview.y |
|
29 |
+ ,bank1 =bankview.addr |
|
30 |
+ |
|
31 |
+ ~dev/screen.width #0002 DIV2 #0004 ADD2 =tileview.x |
|
32 |
+ ~dev/screen.height #0002 DIV2 #0040 SUB2 =tileview.y |
|
33 |
+ ,bank1 #0448 ADD2 =tileview.addr |
|
29 | 34 |
|
30 | 35 |
,redraw JSR |
31 | 36 |
|
32 | 37 |
BRK |
33 | 38 |
|
34 |
-|0200 @FRAME |
|
39 |
+@FRAME |
|
35 | 40 |
|
41 |
+ ( keyboard controls ) |
|
42 |
+ |
|
36 | 43 |
,no-ctrl ~dev/ctrl.buttons #00 EQU JMP? POP2 |
37 | 44 |
|
38 | 45 |
,no-ctrl-up ~dev/ctrl.buttons #10 EQU JMP? POP2 |
39 | 46 |
~tileview.addr #0080 ADD2 =tileview.addr |
40 |
- ~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr |
|
41 |
- ,redraw JSR |
|
42 | 47 |
@no-ctrl-up |
43 |
- |
|
44 | 48 |
,no-ctrl-down ~dev/ctrl.buttons #20 EQU JMP? POP2 |
45 | 49 |
~tileview.addr #0080 SUB2 =tileview.addr |
46 |
- ~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr |
|
47 |
- ,redraw JSR |
|
48 | 50 |
@no-ctrl-down |
49 |
- |
|
50 | 51 |
,no-ctrl-left ~dev/ctrl.buttons #40 EQU JMP? POP2 |
51 | 52 |
~tileview.addr #0008 ADD2 =tileview.addr |
52 |
- ~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr |
|
53 |
- ,redraw JSR |
|
54 | 53 |
@no-ctrl-left |
55 |
- |
|
56 | 54 |
,no-ctrl-right ~dev/ctrl.buttons #80 EQU JMP? POP2 |
57 | 55 |
~tileview.addr #0008 SUB2 =tileview.addr |
58 |
- ~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr |
|
59 |
- ,redraw JSR |
|
60 | 56 |
@no-ctrl-right |
57 |
+ ~tileview.addr #0800 DIV2 #0800 MUL2 =bankview.addr |
|
58 |
+ ,redraw JSR |
|
61 | 59 |
|
62 | 60 |
@no-ctrl |
63 | 61 |
|
62 |
+ ( mouse controls ) |
|
63 |
+ |
|
64 | 64 |
,click-end ~dev/mouse.state #00 EQU JMP? POP2 |
65 | 65 |
|
66 |
+ ( bankview ) |
|
67 |
+ |
|
66 | 68 |
~dev/mouse.x ~bankview.x GTH2 ~dev/mouse.x ~bankview.x #0080 ADD2 LTH2 #0101 EQU2 |
67 | 69 |
~dev/mouse.y ~bankview.y GTH2 ~dev/mouse.y ~bankview.y #0080 ADD2 LTH2 #0101 EQU2 |
68 | 70 |
#0101 NEQ2 ,no-bank-click ROT JMP? POP2 |
69 | 71 |
|
70 |
- ( touch in bankview ) |
|
71 |
- ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #0008 MUL2 |
|
72 |
- ~dev/mouse.y ~bankview.y SUB2 #0008 DIV2 #0008 MUL2 #0010 MUL2 ADD2 |
|
73 |
- ~bankview.addr ADD2 =tileview.addr |
|
74 |
- ,redraw JSR ,click-end JMP |
|
72 |
+ ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #0008 MUL2 |
|
73 |
+ ~dev/mouse.y ~bankview.y SUB2 #0008 DIV2 #0008 MUL2 #0010 MUL2 ADD2 |
|
74 |
+ ~bankview.addr ADD2 =tileview.addr |
|
75 |
+ ,redraw JSR ,click-end JMP |
|
75 | 76 |
|
76 | 77 |
@no-bank-click |
77 | 78 |
|
79 |
+ ( tileview ) |
|
80 |
+ |
|
78 | 81 |
~dev/mouse.x ~tileview.x GTH2 ~dev/mouse.x ~tileview.x #0080 ADD2 LTH2 #0101 EQU2 |
79 | 82 |
~dev/mouse.y ~tileview.y GTH2 ~dev/mouse.y ~tileview.y #0080 ADD2 LTH2 #0101 EQU2 |
80 | 83 |
#0101 NEQ2 ,click-end ROT JMP? POP2 |
81 | 84 |
|
82 |
- ( touch in tileview ) |
|
85 |
+ ~dev/mouse.x ~tileview.x SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 |
|
86 |
+ ~dev/mouse.y ~tileview.y SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 #0002 MUL2 ADD2 |
|
87 |
+ #0008 MUL2 |
|
88 |
+ ~tileview.addr ADD2 =addr ( addr offset ) |
|
83 | 89 |
|
84 |
- ~dev/mouse.x ~tileview.x SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 |
|
85 |
- ~dev/mouse.y ~tileview.y SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 #0002 MUL2 ADD2 |
|
86 |
- #0008 MUL2 |
|
87 |
- ~tileview.addr ADD2 =addr ( addr offset ) |
|
90 |
+ ~dev/mouse.x ~tileview.x SUB2 ~dev/mouse.x ~tileview.x SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.x |
|
91 |
+ ~dev/mouse.y ~tileview.y SUB2 ~dev/mouse.y ~tileview.y SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.y |
|
88 | 92 |
|
89 |
- ~dev/mouse.x ~tileview.x SUB2 ~dev/mouse.x ~tileview.x SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.x |
|
90 |
- ~dev/mouse.y ~tileview.y SUB2 ~dev/mouse.y ~tileview.y SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.y |
|
91 |
- |
|
92 |
- ( load ) ~addr ~pos.y #0008 DIV2 ADD2 LDR |
|
93 |
- ( mask ) #01 #07 ~pos.x #0008 DIV2 SWP POP SUB ROL |
|
94 |
- XOR |
|
95 |
- ( save ) ~addr ~pos.y #0008 DIV2 ADD2 STR |
|
93 |
+ ( load ) ~addr ~pos.y #0008 DIV2 ADD2 LDR |
|
94 |
+ ( mask ) #01 #07 ~pos.x #0008 DIV2 SWP POP SUB ROL |
|
95 |
+ XOR |
|
96 |
+ ( save ) ~addr ~pos.y #0008 DIV2 ADD2 STR |
|
96 | 97 |
|
97 | 98 |
,redraw JSR |
98 | 99 |
|
... | ... |
@@ -119,15 +120,34 @@ RTS |
119 | 120 |
~bankview.y #0010 SUB2 =dev/sprite.y |
120 | 121 |
~bankview.addr ,draw-short JSR |
121 | 122 |
|
123 |
+ ( toolbar ) |
|
124 |
+ |
|
125 |
+ ~bankview.x #0060 ADD2 =dev/sprite.x |
|
126 |
+ ~bankview.y #0010 SUB2 =dev/sprite.y |
|
127 |
+ ,tool_selector =dev/sprite.addr |
|
128 |
+ #01 =dev/sprite.color |
|
129 |
+ |
|
130 |
+ ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
131 |
+ ,tool_hand =dev/sprite.addr |
|
132 |
+ #02 =dev/sprite.color |
|
133 |
+ |
|
134 |
+ ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
135 |
+ ,tool_eraser =dev/sprite.addr |
|
136 |
+ #02 =dev/sprite.color |
|
137 |
+ |
|
138 |
+ ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
139 |
+ ,tool_copy =dev/sprite.addr |
|
140 |
+ #02 =dev/sprite.color |
|
141 |
+ |
|
122 | 142 |
( guides ) |
123 | 143 |
|
124 | 144 |
#00 =i ,font_hex =dev/sprite.addr |
125 | 145 |
@draw-bankview-guides |
126 |
- ~bankview.x #000a SUB2 =dev/sprite.x |
|
146 |
+ ~bankview.x #0010 SUB2 =dev/sprite.x |
|
127 | 147 |
~bankview.y #00 ~i #08 MUL ADD2 =dev/sprite.y |
128 | 148 |
( draw ) #02 =dev/sprite.color |
129 | 149 |
~bankview.x #00 ~i #08 MUL ADD2 =dev/sprite.x |
130 |
- ~bankview.y #0083 ADD2 =dev/sprite.y |
|
150 |
+ ~bankview.y #0089 ADD2 =dev/sprite.y |
|
131 | 151 |
( draw ) #02 =dev/sprite.color |
132 | 152 |
~dev/sprite.addr #0008 ADD2 =dev/sprite.addr |
133 | 153 |
( incr ) ~i #01 ADD =i |
... | ... |
@@ -216,7 +236,7 @@ RTS |
216 | 236 |
~tileview.y #0018 ADD2 =dev/sprite.y |
217 | 237 |
#00 =i |
218 | 238 |
@draw-tileview-bytes |
219 |
- ~tileview.x #0090 ADD2 =dev/sprite.x |
|
239 |
+ ~tileview.x #0088 ADD2 =dev/sprite.x |
|
220 | 240 |
,font_hex #00 ~tileview.addr #00 ~i ADD2 LDR #f0 AND #04 ROR #08 MUL ADD2 =dev/sprite.addr |
221 | 241 |
( draw ) #02 =dev/sprite.color |
222 | 242 |
~dev/sprite.x #0008 ADD2 =dev/sprite.x |
... | ... |
@@ -231,7 +251,7 @@ RTS |
231 | 251 |
|
232 | 252 |
@draw-tileview-tiles-ver |
233 | 253 |
#00 =pt.x |
234 |
- ~tileview.x #0090 ADD2 =dev/sprite.x |
|
254 |
+ ~tileview.x #0088 ADD2 =dev/sprite.x |
|
235 | 255 |
@draw-tileview-tiles-hor |
236 | 256 |
( draw ) #03 =dev/sprite.color |
237 | 257 |
( incr ) ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
... | ... |
@@ -242,25 +262,6 @@ RTS |
242 | 262 |
( incr ) ~dev/sprite.y #0008 ADD2 =dev/sprite.y |
243 | 263 |
,draw-tileview-tiles-ver ~pt.y #02 LTH JMP? POP2 |
244 | 264 |
|
245 |
- ( toolbar ) |
|
246 |
- |
|
247 |
- ~tileview.x =dev/sprite.x |
|
248 |
- ~tileview.y #0083 ADD2 =dev/sprite.y |
|
249 |
- ,tool_selector =dev/sprite.addr |
|
250 |
- #01 =dev/sprite.color |
|
251 |
- |
|
252 |
- ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
253 |
- ,tool_hand =dev/sprite.addr |
|
254 |
- #02 =dev/sprite.color |
|
255 |
- |
|
256 |
- ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
257 |
- ,tool_eraser =dev/sprite.addr |
|
258 |
- #02 =dev/sprite.color |
|
259 |
- |
|
260 |
- ~dev/sprite.x #0008 ADD2 =dev/sprite.x |
|
261 |
- ,tool_copy =dev/sprite.addr |
|
262 |
- #02 =dev/sprite.color |
|
263 |
- |
|
264 | 265 |
RTS |
265 | 266 |
|
266 | 267 |
@draw-tileview-icn |
... | ... |
@@ -292,10 +293,20 @@ RTS |
292 | 293 |
#0000 EQU2 RTS? ( Return if unchanged ) |
293 | 294 |
|
294 | 295 |
( clear last cursor ) |
295 |
- #10 ,blank_icn ~mouse.x ~mouse.y ,draw-sprite JSR |
|
296 |
+ ~mouse.x =dev/sprite.x |
|
297 |
+ ~mouse.y =dev/sprite.y |
|
298 |
+ ,blank_icn =dev/sprite.addr |
|
299 |
+ #10 =dev/sprite.color |
|
300 |
+ |
|
296 | 301 |
( record mouse positions ) |
297 |
- ~dev/mouse.x =mouse.x ~dev/mouse.y =mouse.y |
|
298 |
- #12 ,cursor_icn ~mouse.x ~mouse.y ,draw-sprite JSR |
|
302 |
+ ~dev/mouse.x =mouse.x |
|
303 |
+ ~dev/mouse.y =mouse.y |
|
304 |
+ |
|
305 |
+ ( draw new cursor ) |
|
306 |
+ ~mouse.x =dev/sprite.x |
|
307 |
+ ~mouse.y =dev/sprite.y |
|
308 |
+ ,cursor_icn =dev/sprite.addr |
|
309 |
+ #12 =dev/sprite.color |
|
299 | 310 |
|
300 | 311 |
RTS |
301 | 312 |
|
... | ... |
@@ -335,15 +346,6 @@ RTS |
335 | 346 |
|
336 | 347 |
RTS |
337 | 348 |
|
338 |
-@draw-sprite |
|
339 |
- |
|
340 |
- =dev/sprite.y |
|
341 |
- =dev/sprite.x |
|
342 |
- =dev/sprite.addr |
|
343 |
- =dev/sprite.color |
|
344 |
- |
|
345 |
-RTS |
|
346 |
- |
|
347 | 349 |
@tool_selector [ 80c0 e0f0 f8e0 1000 ] |
348 | 350 |
@tool_hand [ 4040 4070 f8f8 f870 ] |
349 | 351 |
@tool_eraser [ 0814 2244 a850 2d00 ] |
... | ... |
@@ -532,9 +534,7 @@ RTS |
532 | 534 |
0000 4428 1028 4400 0000 4444 443c 0438 0000 7c08 1020 7c00 000c 0810 1008 0c00 |
533 | 535 |
0008 0808 0808 0800 0030 1008 0810 3000 0000 0032 4c00 0000 3c42 99a1 a199 423c |
534 | 536 |
|
535 |
-] |
|
536 |
-|F500 @bank3 |
|
537 |
-|F700 @bank4 |
|
537 |
+] |
|
538 | 538 |
|
539 | 539 |
|FE00 @ERROR BRK |
540 | 540 |
|