| ... | ... |
@@ -189,6 +189,10 @@ RTN |
| 189 | 189 |
DUP .browser/last LDZ ! ,&has-changed JCN |
| 190 | 190 |
POP RTN |
| 191 | 191 |
&has-changed |
| 192 |
+ ( beyond ) |
|
| 193 |
+ DUP ;dir/lines LDA < ,&valid JCN |
|
| 194 |
+ POP RTN |
|
| 195 |
+ &valid |
|
| 192 | 196 |
|
| 193 | 197 |
#00 ;draw-browser JSR2 |
| 194 | 198 |
DUP .browser/sel STZ |
| ... | ... |
@@ -263,6 +267,9 @@ RTN |
| 263 | 267 |
|
| 264 | 268 |
@draw-browser ( mask -- ) |
| 265 | 269 |
|
| 270 |
+ ( when empty ) |
|
| 271 |
+ ;dir/lines LDA #01 = ;draw-browser-empty JCN2 |
|
| 272 |
+ |
|
| 266 | 273 |
STH |
| 267 | 274 |
|
| 268 | 275 |
( draw hand ) |
| ... | ... |
@@ -273,18 +280,32 @@ RTN |
| 273 | 280 |
( draw files ) |
| 274 | 281 |
LINES-COUNT #00 |
| 275 | 282 |
&loop |
| 283 |
+ ( reached end ) |
|
| 284 |
+ DUP INC ;dir/lines LDA > ,&end JCN |
|
| 285 |
+ ( has file ) |
|
| 276 | 286 |
.browser/x LDZ2 .Screen/x DEO2 |
| 277 | 287 |
DUP TOS 10** .browser/y LDZ2 ++ .Screen/y DEO2 |
| 278 | 288 |
DUP .browser/scroll LDZ + ;get-entry JSR2 |
| 279 | 289 |
DUP2 ;get-type JSR2 ;draw-type JSR2 |
| 280 | 290 |
#01 STHkr * ;draw-str JSR2 |
| 281 | 291 |
INC GTHk ,&loop JCN |
| 292 |
+ &end |
|
| 282 | 293 |
POP2 |
| 283 | 294 |
|
| 284 | 295 |
POPr |
| 285 | 296 |
|
| 286 | 297 |
RTN |
| 287 | 298 |
|
| 299 |
+@draw-browser-empty ( mask -- ) |
|
| 300 |
+ |
|
| 301 |
+ POP |
|
| 302 |
+ .browser/x LDZ2 .Screen/x DEO2 |
|
| 303 |
+ .browser/y LDZ2 .Screen/y DEO2 |
|
| 304 |
+ ;&empty-txt #01 ;draw-str JSR2 |
|
| 305 |
+ |
|
| 306 |
+RTN |
|
| 307 |
+ &empty-txt "Empty 20 "Folder $1 |
|
| 308 |
+ |
|
| 288 | 309 |
@get-type ( line* -- type ) |
| 289 | 310 |
|
| 290 | 311 |
;scap JSR2 #0004 -- ;&rom-ext ;scmp JSR2 |