Browse code

Added cursor modes

neauoire authored on 04/03/2021 17:46:14
Showing 1 changed files
... ...
@@ -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