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