... | ... |
@@ -11,6 +11,8 @@ |
11 | 11 |
%10* { #40 SFT } %10/ { #04 SFT } %10** { #40 SFT2 } %10// { #04 SFT2 } |
12 | 12 |
%20* { #50 SFT } %20/ { #05 SFT } %20** { #50 SFT2 } %20// { #05 SFT2 } |
13 | 13 |
|
14 |
+%40** { #60 SFT2 } |
|
15 |
+ |
|
14 | 16 |
%RTN { JMP2r } |
15 | 17 |
%TOS { #00 SWP } |
16 | 18 |
|
... | ... |
@@ -52,9 +54,9 @@ |
52 | 54 |
|0100 ( -> ) |
53 | 55 |
|
54 | 56 |
( theme ) |
55 |
- #f077 .System/r DEO2 |
|
56 |
- #f00c .System/g DEO2 |
|
57 |
- #f02a .System/b DEO2 |
|
57 |
+ #f079 .System/r DEO2 |
|
58 |
+ #f0c2 .System/g DEO2 |
|
59 |
+ #f0a4 .System/b DEO2 |
|
58 | 60 |
|
59 | 61 |
( vectors ) |
60 | 62 |
;on-frame .Screen/vector DEO2 |
... | ... |
@@ -111,7 +113,6 @@ BRK |
111 | 113 |
.browser/scroll LDZ #00 = ,&no-up JCN |
112 | 114 |
DUP .browser/scroll LDZ + ;scroll-to JSR2 |
113 | 115 |
&no-up |
114 |
- |
|
115 | 116 |
DUP #01 ! ,&no-down JCN |
116 | 117 |
.browser/scroll LDZ ;dir/lines LDA = ,&no-down JCN |
117 | 118 |
DUP .browser/scroll LDZ + ;scroll-to JSR2 |
... | ... |
@@ -121,16 +122,13 @@ BRK |
121 | 122 |
( within browser ) |
122 | 123 |
.Mouse/y DEI2 .browser/y LDZ2 << ,&outside JCN |
123 | 124 |
.Mouse/y DEI2 .browser/y2 LDZ2 #0010 -- >> ,&outside JCN |
124 |
- |
|
125 | 125 |
( select choice ) |
126 | 126 |
.Mouse/y DEI2 .browser/y LDZ2 -- |
127 | 127 |
10// NIP .browser/scroll LDZ + ;select-file JSR2 |
128 |
- |
|
129 | 128 |
( run choice ) |
130 | 129 |
.Mouse/state DEI #00 = ,&no-click JCN |
131 | 130 |
.browser/sel LDZ ;run-file JSR2 |
132 | 131 |
&no-click |
133 |
- |
|
134 | 132 |
&outside |
135 | 133 |
|
136 | 134 |
BRK |
... | ... |
@@ -142,11 +140,13 @@ BRK |
142 | 140 |
DUP #10 ! ,&no-up JCN |
143 | 141 |
.browser/sel LDZ #00 = ,&no-up JCN |
144 | 142 |
.browser/sel LDZ #01 - ;select-file JSR2 |
143 |
+ ;follow-selection JSR2 |
|
145 | 144 |
POP BRK |
146 | 145 |
&no-up |
147 | 146 |
DUP #20 ! ,&no-down JCN |
148 | 147 |
.browser/sel LDZ INC ;dir/lines LDA = ,&no-down JCN |
149 | 148 |
.browser/sel LDZ INC ;select-file JSR2 |
149 |
+ ;follow-selection JSR2 |
|
150 | 150 |
POP BRK |
151 | 151 |
&no-down |
152 | 152 |
DUP #01 ! ,&no-a JCN |
... | ... |
@@ -164,24 +164,6 @@ BRK |
164 | 164 |
|
165 | 165 |
BRK |
166 | 166 |
|
167 |
-@scroll-to ( line -- ) |
|
168 |
- |
|
169 |
- STH |
|
170 |
- ( more lines than visible ) |
|
171 |
- ;dir/lines LDA LINES-COUNT |
|
172 |
- DUP2 > ,&can-scroll JCN |
|
173 |
- POPr POP2 RTN |
|
174 |
- &can-scroll |
|
175 |
- ( less than max scroll ) |
|
176 |
- - INC STHkr > ,&valid-scroll JCN |
|
177 |
- POPr RTN |
|
178 |
- &valid-scroll |
|
179 |
- #00 ;draw-browser JSR2 |
|
180 |
- STHr .browser/scroll STZ |
|
181 |
- #01 ;draw-browser JSR2 |
|
182 |
- |
|
183 |
-RTN |
|
184 |
- |
|
185 | 167 |
@load-dir ( -- ) |
186 | 168 |
|
187 | 169 |
;dir/path .File/name DEO2 |
... | ... |
@@ -193,8 +175,8 @@ RTN |
193 | 175 |
;dir/data |
194 | 176 |
&while |
195 | 177 |
LDAk #1f > ,&no-lb JCN |
196 |
- STH2k #00 STH2r STA |
|
197 |
- ;dir/lines LDA INC ;dir/lines STA |
|
178 |
+ ( split ) STH2k #00 STH2r STA |
|
179 |
+ ( count lines ) ;dir/lines LDA INC ;dir/lines STA |
|
198 | 180 |
&no-lb |
199 | 181 |
INC2 LDAk ,&while JCN |
200 | 182 |
POP2 |
... | ... |
@@ -209,13 +191,9 @@ RTN |
209 | 191 |
&has-changed |
210 | 192 |
|
211 | 193 |
#00 ;draw-browser JSR2 |
212 |
- |
|
213 | 194 |
DUP .browser/sel STZ |
214 | 195 |
DUP .browser/last STZ |
215 | 196 |
#30 + .Audio0/pitch DEO |
216 |
- |
|
217 |
- ;follow-selection JSR2 |
|
218 |
- |
|
219 | 197 |
#01 ;draw-browser JSR2 |
220 | 198 |
|
221 | 199 |
( draw mascot ) |
... | ... |
@@ -223,41 +201,47 @@ RTN |
223 | 201 |
;mascot-icn [ .browser/sel LDZ #03 AND TOS #0480 ** ++ ] #01 |
224 | 202 |
;draw-icn JSR2 |
225 | 203 |
|
204 |
+ ( draw position ) |
|
205 |
+ AUTO-YADDR |
|
206 |
+ #0010 .Screen/x DEO2 |
|
207 |
+ #0080 .Screen/y DEO2 |
|
208 |
+ .browser/sel LDZ #02 ;draw-byte JSR2 |
|
209 |
+ LIT '/ #02 ;draw-char JSR2 |
|
210 |
+ ;dir/lines LDA #01 - #02 ;draw-byte JSR2 |
|
211 |
+ AUTO-NONE |
|
212 |
+ |
|
226 | 213 |
RTN |
227 | 214 |
|
228 | 215 |
@follow-selection ( -- ) |
229 | 216 |
|
230 | 217 |
LINES-COUNT .browser/sel LDZ .browser/scroll LDZ - |
231 | 218 |
DUP2 > ,&no-down JCN |
232 |
- .browser/scroll LDZ INC ;scroll-to JSR2 |
|
219 |
+ .browser/scroll LDZ INC ,scroll-to JSR |
|
233 | 220 |
&no-down |
234 | 221 |
DUP2 SWP < ,&no-up JCN |
235 |
- .browser/sel LDZ ;scroll-to JSR2 |
|
222 |
+ .browser/sel LDZ ,scroll-to JSR |
|
236 | 223 |
&no-up |
237 | 224 |
POP2 |
238 | 225 |
|
239 | 226 |
RTN |
240 | 227 |
|
241 |
-@print-str ( string* -- ) |
|
242 |
- |
|
243 |
- #0001 SUB2 |
|
244 |
- &while |
|
245 |
- INC2 LDAk DUP #18 DEO ,&while JCN |
|
246 |
- POP2 |
|
247 |
- |
|
248 |
-JMP2r |
|
249 |
- |
|
250 |
-@print-hex ( value* -- ) |
|
228 |
+@scroll-to ( line -- ) |
|
251 | 229 |
|
252 |
- SWP ,&byte JSR |
|
253 |
- &byte ( byte -- ) |
|
254 |
- STHk #04 SFT ,&parse JSR #18 DEO |
|
255 |
- STHr #0f AND ,&parse JSR #18 DEO |
|
256 |
- JMP2r |
|
257 |
- &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD JMP2r |
|
258 |
- &above #57 ADD JMP2r |
|
230 |
+ STH |
|
231 |
+ ( more lines than visible ) |
|
232 |
+ ;dir/lines LDA LINES-COUNT |
|
233 |
+ DUP2 > ,&can-scroll JCN |
|
234 |
+ POPr POP2 RTN |
|
235 |
+ &can-scroll |
|
236 |
+ ( less than max scroll ) |
|
237 |
+ - INC STHkr > ,&valid-scroll JCN |
|
238 |
+ POPr RTN |
|
239 |
+ &valid-scroll |
|
240 |
+ #00 ;draw-browser JSR2 |
|
241 |
+ STHr .browser/scroll STZ |
|
242 |
+ #01 ;draw-browser JSR2 |
|
259 | 243 |
|
260 |
-JMP2r |
|
244 |
+RTN |
|
261 | 245 |
|
262 | 246 |
@run-file ( id -- ) |
263 | 247 |
|
... | ... |
@@ -282,15 +266,18 @@ RTN |
282 | 266 |
STH |
283 | 267 |
|
284 | 268 |
( draw hand ) |
285 |
- .browser/x LDZ2 #0018 -- .browser/y LDZ2 [ .browser/sel LDZ .browser/scroll LDZ - TOS 10** ++ ] |
|
269 |
+ .browser/x LDZ2 #0018 -- .browser/y LDZ2 |
|
270 |
+ .browser/sel LDZ .browser/scroll LDZ - TOS 10** ++ |
|
286 | 271 |
#0010 #0010 |
287 |
- ;hand-icn STHkr #03 * ;draw-icn JSR2 |
|
272 |
+ ;hand-icn STHkr #02 * ;draw-icn JSR2 |
|
288 | 273 |
( draw files ) |
289 | 274 |
LINES-COUNT #00 |
290 | 275 |
&loop |
291 | 276 |
.browser/x LDZ2 .Screen/x DEO2 |
292 | 277 |
DUP TOS 10** .browser/y LDZ2 ++ .Screen/y DEO2 |
293 |
- DUP .browser/scroll LDZ + ;get-entry JSR2 #01 STHkr * ;draw-str JSR2 |
|
278 |
+ DUP .browser/scroll LDZ + ;get-entry JSR2 |
|
279 |
+ DUP2 ;get-type JSR2 ;draw-type JSR2 |
|
280 |
+ #01 STHkr * ;draw-str JSR2 |
|
294 | 281 |
INC GTHk ,&loop JCN |
295 | 282 |
POP2 |
296 | 283 |
|
... | ... |
@@ -298,6 +285,13 @@ RTN |
298 | 285 |
|
299 | 286 |
RTN |
300 | 287 |
|
288 |
+@get-type ( line* -- type ) |
|
289 |
+ |
|
290 |
+ ;scap JSR2 #0004 -- ;&rom-ext ;scmp JSR2 |
|
291 |
+ |
|
292 |
+RTN |
|
293 |
+ &rom-ext ".rom $1 |
|
294 |
+ |
|
301 | 295 |
@get-entry ( id -- addr* ) |
302 | 296 |
|
303 | 297 |
( limit ) STH |
... | ... |
@@ -317,9 +311,20 @@ RTN |
317 | 311 |
|
318 | 312 |
RTN |
319 | 313 |
|
320 |
-@hex-char ( hex -- char ) |
|
314 |
+@draw-type ( type -- ) |
|
315 |
+ |
|
316 |
+ STHk TOS 20** ;file-icns ++ .Screen/addr DEO2 |
|
317 |
+ AUTO-XADDR |
|
318 |
+ #02 STHkr - .Screen/sprite DEOk DEO |
|
321 | 319 |
|
322 |
- DUP #09 GTH #04 JCN #30 + RTN #57 + |
|
320 |
+ .Screen/x DEI2k #0010 -- ROT DEO2 |
|
321 |
+ .Screen/y DEI2k #0008 ++ ROT DEO2 |
|
322 |
+ |
|
323 |
+ #02 STHr - .Screen/sprite DEOk DEO |
|
324 |
+ |
|
325 |
+ .Screen/x DEI2k #0008 ++ ROT DEO2 |
|
326 |
+ .Screen/y DEI2k #0008 -- ROT DEO2 |
|
327 |
+ AUTO-NONE |
|
323 | 328 |
|
324 | 329 |
RTN |
325 | 330 |
|
... | ... |
@@ -402,6 +407,52 @@ JMP2r |
402 | 407 |
|
403 | 408 |
RTN |
404 | 409 |
|
410 |
+( helpers ) |
|
411 |
+ |
|
412 |
+@print-str ( string* -- ) |
|
413 |
+ |
|
414 |
+ #0001 SUB2 |
|
415 |
+ &while |
|
416 |
+ INC2 LDAk DUP #18 DEO ,&while JCN |
|
417 |
+ POP2 |
|
418 |
+ |
|
419 |
+JMP2r |
|
420 |
+ |
|
421 |
+@print-hex ( value* -- ) |
|
422 |
+ |
|
423 |
+ SWP ,&byte JSR |
|
424 |
+ &byte ( byte -- ) |
|
425 |
+ STHk #04 SFT ,&parse JSR #18 DEO |
|
426 |
+ STHr #0f AND ,&parse JSR #18 DEO |
|
427 |
+ JMP2r |
|
428 |
+ &parse ( byte -- char ) DUP #09 GTH ,&above JCN #30 ADD JMP2r |
|
429 |
+ &above #57 ADD JMP2r |
|
430 |
+ |
|
431 |
+JMP2r |
|
432 |
+ |
|
433 |
+@scmp ( a* b* -- flag ) |
|
434 |
+ |
|
435 |
+ STH2 |
|
436 |
+ &loop |
|
437 |
+ LDAk LDAkr STHr = ,¬-diff JCN |
|
438 |
+ POP2 POP2r #00 RTN |
|
439 |
+ ¬-diff |
|
440 |
+ LDAk LDAkr STHr #0000 !! ,¬-end JCN |
|
441 |
+ POP2 POP2r #01 RTN |
|
442 |
+ ¬-end |
|
443 |
+ INC2 INC2r |
|
444 |
+ ,&loop JMP |
|
445 |
+ POP2 POP2r #00 |
|
446 |
+ |
|
447 |
+RTN |
|
448 |
+ |
|
449 |
+@scap ( str* -- str-end* ) |
|
450 |
+ |
|
451 |
+ ( clamp ) LDAk #00 ! JMP RTN |
|
452 |
+ &while INC2 LDAk ,&while JCN |
|
453 |
+ |
|
454 |
+RTN |
|
455 |
+ |
|
405 | 456 |
@pointer-icn |
406 | 457 |
80c0 e0f0 f8e0 1000 |
407 | 458 |
@hand-icn |
... | ... |
@@ -409,6 +460,15 @@ RTN |
409 | 460 |
0000 0000 0000 fc02 |
410 | 461 |
8180 8080 8040 3f00 |
411 | 462 |
fc20 c020 c020 c000 |
463 |
+@file-icns |
|
464 |
+ 003f 3f30 3f30 3f30 |
|
465 |
+ 00fc fc0c fc0c fc0c |
|
466 |
+ 3f33 3f3f 3f3f 3f00 |
|
467 |
+ fcfc fcc4 c8d0 e000 |
|
468 |
+ 003f 3f30 3132 3231 |
|
469 |
+ 00fc fc0c 8c4c 4c8c |
|
470 |
+ 303f 3f3f 3f3f 3f00 |
|
471 |
+ 0cfc fcc4 c8d0 e000 |
|
412 | 472 |
@sin-pcm |
413 | 473 |
8083 8689 8c8f 9295 989b 9ea1 a4a7 aaad |
414 | 474 |
b0b3 b6b9 bbbe c1c3 c6c9 cbce d0d2 d5d7 |