| ... | ... |
@@ -9,7 +9,7 @@ |
| 9 | 9 |
&Point2d { x 2 y 2 }
|
| 10 | 10 |
&Point { x 1 y 1 }
|
| 11 | 11 |
|
| 12 |
-&BankView { x 2 y 2 addr 2 }
|
|
| 12 |
+&BankView { x 2 y 2 mode 1 addr 2 }
|
|
| 13 | 13 |
&TileView { x 2 y 2 addr 2 }
|
| 14 | 14 |
|
| 15 | 15 |
;bankview BankView |
| ... | ... |
@@ -63,17 +63,50 @@ BRK |
| 63 | 63 |
|
| 64 | 64 |
,click-end ~dev/mouse.state #00 EQU JMP? POP2 |
| 65 | 65 |
|
| 66 |
+ ( toolbar ) |
|
| 67 |
+ |
|
| 68 |
+ ,no-toolbar-click ~dev/mouse.y ~bankview.y #0010 SUB2 SUB2 #0008 DIV2 #0000 NEQ2 JMP? POP2 |
|
| 69 |
+ ,no-toolbar-click ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #000c LTH2 JMP? POP2 |
|
| 70 |
+ ,no-toolbar-click ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #000f GTH2 JMP? POP2 |
|
| 71 |
+ ~mouse.x ~bankview.x SUB2 #0008 DIV2 #000c SUB2 SWP POP =bankview.mode |
|
| 72 |
+ @no-toolbar-click |
|
| 73 |
+ |
|
| 66 | 74 |
( bankview ) |
| 67 | 75 |
|
| 68 | 76 |
~dev/mouse.x ~bankview.x GTH2 ~dev/mouse.x ~bankview.x #0080 ADD2 LTH2 #0101 EQU2 |
| 69 | 77 |
~dev/mouse.y ~bankview.y GTH2 ~dev/mouse.y ~bankview.y #0080 ADD2 LTH2 #0101 EQU2 |
| 70 | 78 |
#0101 NEQ2 ,no-bank-click ROT JMP? POP2 |
| 71 | 79 |
|
| 80 |
+ ,not-copy-mode ~bankview.mode #01 NEQ JMP? POP2 |
|
| 81 |
+ #00 =i |
|
| 82 |
+ @copy-loop |
|
| 83 |
+ ( load ) ~tileview.addr ~i ADD LDR |
|
| 84 |
+ ( get touch addr ) |
|
| 85 |
+ ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #0008 MUL2 |
|
| 86 |
+ ~dev/mouse.y ~bankview.y SUB2 #0008 DIV2 #0008 MUL2 #0010 MUL2 ADD2 |
|
| 87 |
+ ~bankview.addr ADD2 #00 ~i ADD2 STR |
|
| 88 |
+ ( incr ) ~i #01 ADD =i |
|
| 89 |
+ ,copy-loop ~i #08 LTH JMP? POP2 |
|
| 90 |
+ ,redraw JSR ,click-end JMP |
|
| 91 |
+ @not-copy-mode |
|
| 92 |
+ |
|
| 93 |
+ ,not-erase-mode ~bankview.mode #02 NEQ JMP? POP2 |
|
| 94 |
+ #00 =i |
|
| 95 |
+ @erase-loop |
|
| 96 |
+ #00 |
|
| 97 |
+ ( get touch addr ) |
|
| 98 |
+ ~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #0008 MUL2 |
|
| 99 |
+ ~dev/mouse.y ~bankview.y SUB2 #0008 DIV2 #0008 MUL2 #0010 MUL2 ADD2 |
|
| 100 |
+ ~bankview.addr ADD2 #00 ~i ADD2 STR |
|
| 101 |
+ ( incr ) ~i #01 ADD =i |
|
| 102 |
+ ,erase-loop ~i #08 LTH JMP? POP2 |
|
| 103 |
+ ,redraw JSR ,click-end JMP |
|
| 104 |
+ @not-erase-mode |
|
| 105 |
+ |
|
| 72 | 106 |
~dev/mouse.x ~bankview.x SUB2 #0008 DIV2 #0008 MUL2 |
| 73 | 107 |
~dev/mouse.y ~bankview.y SUB2 #0008 DIV2 #0008 MUL2 #0010 MUL2 ADD2 |
| 74 | 108 |
~bankview.addr ADD2 =tileview.addr |
| 75 | 109 |
,redraw JSR ,click-end JMP |
| 76 |
- |
|
| 77 | 110 |
@no-bank-click |
| 78 | 111 |
|
| 79 | 112 |
( tileview ) |
| ... | ... |
@@ -81,20 +114,16 @@ BRK |
| 81 | 114 |
~dev/mouse.x ~tileview.x GTH2 ~dev/mouse.x ~tileview.x #0080 ADD2 LTH2 #0101 EQU2 |
| 82 | 115 |
~dev/mouse.y ~tileview.y GTH2 ~dev/mouse.y ~tileview.y #0080 ADD2 LTH2 #0101 EQU2 |
| 83 | 116 |
#0101 NEQ2 ,click-end ROT JMP? POP2 |
| 84 |
- |
|
| 85 | 117 |
~dev/mouse.x ~tileview.x SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 |
| 86 | 118 |
~dev/mouse.y ~tileview.y SUB2 #0008 DIV2 #0008 MUL2 #0040 DIV2 #0002 MUL2 ADD2 |
| 87 | 119 |
#0008 MUL2 |
| 88 | 120 |
~tileview.addr ADD2 =addr ( addr offset ) |
| 89 |
- |
|
| 90 | 121 |
~dev/mouse.x ~tileview.x SUB2 ~dev/mouse.x ~tileview.x SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.x |
| 91 | 122 |
~dev/mouse.y ~tileview.y SUB2 ~dev/mouse.y ~tileview.y SUB2 #0040 DIV2 #0040 MUL2 SUB2 =pos.y |
| 92 |
- |
|
| 93 | 123 |
( load ) ~addr ~pos.y #0008 DIV2 ADD2 LDR |
| 94 | 124 |
( mask ) #01 #07 ~pos.x #0008 DIV2 SWP POP SUB ROL |
| 95 | 125 |
XOR |
| 96 | 126 |
( save ) ~addr ~pos.y #0008 DIV2 ADD2 STR |
| 97 |
- |
|
| 98 | 127 |
,redraw JSR |
| 99 | 128 |
|
| 100 | 129 |
@click-end |
| ... | ... |
@@ -103,6 +132,8 @@ BRK |
| 103 | 132 |
|
| 104 | 133 |
BRK |
| 105 | 134 |
|
| 135 |
+ |
|
| 136 |
+ |
|
| 106 | 137 |
@redraw |
| 107 | 138 |
|
| 108 | 139 |
,draw-bankview JSR |
| ... | ... |
@@ -305,7 +336,7 @@ RTS |
| 305 | 336 |
( draw new cursor ) |
| 306 | 337 |
~mouse.x =dev/sprite.x |
| 307 | 338 |
~mouse.y =dev/sprite.y |
| 308 |
- ,cursor_icn =dev/sprite.addr |
|
| 339 |
+ ,tool_selector #00 ~bankview.mode #08 MUL ADD2 =dev/sprite.addr |
|
| 309 | 340 |
#12 =dev/sprite.color |
| 310 | 341 |
|
| 311 | 342 |
RTS |
| ... | ... |
@@ -353,7 +384,6 @@ RTS |
| 353 | 384 |
|
| 354 | 385 |
@blank_icn [ 0000 0000 0000 0000 ] |
| 355 | 386 |
@cell1_icn [ 7cfe fefe fefe 7c00 ] |
| 356 |
-@cursor_icn [ 80c0 e0f0 f8e0 1000 ] |
|
| 357 | 387 |
|
| 358 | 388 |
@font_hex ( 0-F ) |
| 359 | 389 |
[ |
| ... | ... |
@@ -544,4 +574,4 @@ RTS |
| 544 | 574 |
|FF50 ;dev/mouse Mouse |
| 545 | 575 |
|
| 546 | 576 |
|FFF0 .RESET .FRAME .ERROR ( vectors ) |
| 547 |
-|FFF8 [ 0fcf 0fc4 0fc4 ] ( palette ) |
|
| 548 | 577 |
\ No newline at end of file |
| 578 |
+|FFF8 [ 35ac c03c afac ] ( palette ) |
|
| 549 | 579 |
\ No newline at end of file |