Browse code

Selection works in the launcher

Devine Lu Linvega authored on 07/11/2021 21:23:33
Showing 1 changed files
... ...
@@ -11,6 +11,8 @@
11 11
 %++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
12 12
 %<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
13 13
 
14
+%10** { #40 SFT2 }
15
+
14 16
 %MOD { DIVk MUL SUB }
15 17
 %DEC { #01 - }
16 18
 %RTN { JMP2r }
... ...
@@ -64,7 +66,7 @@
64 66
 	#dd .Audio0/volume DEO ( TODO: turn ON )
65 67
 
66 68
 	( place )
67
-	#0080 .browser/x STZ2
69
+	#0088 .browser/x STZ2
68 70
 	#0010 .browser/y STZ2
69 71
 
70 72
 	( draw mascot )
... ...
@@ -75,6 +77,8 @@
75 77
 	( theme support )
76 78
 	;load-theme JSR2
77 79
 
80
+	#00 ;select-file JSR2
81
+
78 82
 BRK
79 83
 
80 84
 @on-frame ( -> )
... ...
@@ -113,6 +117,9 @@ BRK
113 117
 	DUP #20 ! ,&no-down JCN
114 118
 		.browser/sel LDZ ;dir/lines LDA LTHk SWP? POP INC ;select-file JSR2
115 119
 		&no-down
120
+	DUP #01 ! ,&no-a JCN
121
+		.browser/sel LDZ ;run-file JSR2
122
+		&no-a
116 123
 	POP
117 124
 
118 125
 BRK
... ...
@@ -134,27 +141,72 @@ BRK
134 141
 	POP2
135 142
 	STHr #02 - ;dir/lines STA
136 143
 
137
-	;draw-browser JSR2
138
-
139 144
 RTN
140 145
 
141 146
 @select-file ( id -- )
142 147
 
148
+	.browser/x LDZ2 #0018 -- .browser/y LDZ2 [ .browser/sel LDZ TOS 10** ++ ] 
149
+	#0010 #0010 
150
+		;hand-icn #00 ;draw-icn JSR2
151
+
143 152
 	DUP 
144 153
 		.browser/sel STZ
145 154
 		#40 + .Audio0/pitch DEO
146 155
 	;draw-browser JSR2
147 156
 
157
+	.browser/x LDZ2 #0018 -- .browser/y LDZ2 [ .browser/sel LDZ TOS 10** ++ ] 
158
+	#0010 #0010 
159
+		;hand-icn #02 ;draw-icn JSR2
160
+
161
+RTN
162
+
163
+@run-file ( id -- )
164
+
165
+	STH
166
+	( count lines )
167
+	LITr 00
168
+	;dir/data
169
+	&while
170
+		LDAk #0a ! ,&no-lb JCN
171
+			INCr
172
+			&no-lb
173
+		EQUkr STHr ,&end JCN
174
+		INC2 LDAk ,&while JCN
175
+	&end
176
+	POP2r
177
+
178
+	DUP2 INC2 ;close-path JSR2
179
+	#0006 ++ DUP2 ;print-string JSR2
180
+	#0a .Console/write DEO
181
+	;load-rom JSR2
182
+
183
+RTN
184
+
185
+@close-path ( addr* -- )
186
+
187
+	&while
188
+		LDAk #0a ! ,&no-lb JCN
189
+			STH2k #00 STH2r STA
190
+			,&end JMP
191
+			&no-lb
192
+		INC2 LDAk ,&while JCN
193
+	&end
194
+	POP2
195
+
196
+RTN
197
+
198
+@print-string ( addr* -- )
199
+
200
+	&loop
201
+		LDAk .Console/write DEO
202
+		INC2 LDAk ,&loop JCN
203
+	POP2
204
+
148 205
 RTN
149 206
 
150 207
 @redraw ( -- )
151 208
 
152
-	RTN
153
-	#0018 #0020 #0040 #0040 ;logo-icn #03 ;draw-icn JSR2
154
-	#0020 #0070 ;welcome-txt #01 ;draw-label JSR2
155
-	;draw-time JSR2
156
-	#0020 #00b0 ;prompt-txt #01 ;draw-label JSR2
157
-	#0020 #00c0 ;do-txt #03 ;draw-label JSR2
209
+	( unused )
158 210
 
159 211
 RTN
160 212
 
... ...
@@ -166,7 +218,7 @@ RTN
166 218
 	;dir/data
167 219
 	&loop
168 220
 		LDAk #0a ! ,&no-lb JCN
169
-			#0080 .Screen/x DEO2
221
+			.browser/x LDZ2 .Screen/x DEO2
170 222
 			.Screen/y DEI2 #0010 ++ .Screen/y DEO2
171 223
 			( incr line counter ) INCr
172 224
 			,&skip JMP
... ...
@@ -314,6 +366,11 @@ RTN
314 366
 	80c0 e0f0 f8e0 1000
315 367
 @cursor-icn
316 368
 	ffff ffff ffff ffff
369
+@hand-icn
370
+	000c 0a0a 1224 4780
371
+	0000 0000 0000 fc02
372
+	8180 8080 8040 3f00
373
+	fc20 c020 c020 c000
317 374
 
318 375
 @sin-pcm
319 376
 	8083 8689 8c8f 9295 989b 9ea1 a4a7 aaad