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