@@ 78,7 78,7 @@ BRK
( when touch sub )
.Mouse/state DEI #00 EQU ,&no-touch-sub JCN
- ;draw-sub/sel LDA ;print/byte JSR2 #0a18 DEO
+ ;draw-sub/sel LDA ;menu-select-sub JSR2
( release ) #00 .Mouse/state DEO
&no-touch-sub
@@ 108,6 108,16 @@ BRK
JMP2r
+@menu-close ( -- )
+
+ ;untrap JSR2
+ ( hide ) ;draw-cat/sel LDA #00 ;draw-sub JSR2
+ #ff ;draw-cat/sel STA
+ ;draw-cat JSR2
+ ;redraw JSR2
+
+JMP2r
+
@menu-select ( cat -- )
;draw-cat/sel LDA #00 ;draw-sub JSR2
@@ 119,6 129,16 @@ JMP2r
JMP2r
+@menu-select-sub ( sub -- )
+
+ ;get-sub JSR2 DUP2 #0000 EQU2 ,&skip JCN
+ JSR2 ;menu-close JSR2 JMP2r
+ &skip
+ POP2
+ ;menu-close JSR2
+
+JMP2r
+
@on-control-menu ( -> )
BRK
@@ 170,7 190,7 @@ JMP2r
@draw-sub ( cat mask -- )
,&mask STR POP
- ;draw-cat/sel LDA ;get-sub JSR2
+ ;draw-cat/sel LDA ;get-cat JSR2
DUP2 #0000 EQU2 ,&skip JCN
;draw-cat/sel LDA ;get-anchor JSR2 ,&anchor STR2
@@ 190,7 210,7 @@ JMP2r
JMP2r
-@get-sub ( cat -- )
+@get-cat ( cat -- cat* )
STH
#00 ,&id STR
@@ 207,6 227,25 @@ JMP2r
JMP2r
+@get-sub ( sub -- sub* )
+
+ STH
+ ;draw-cat/sel LDA ;get-cat JSR2
+ LDAk STH INC2 ;skip-str JSR2
+ STHr #00
+ &subcat
+ DUP STHkr EQU ,&end JCN
+ SWP2 #0004 ADD2 ;skip-str JSR2 SWP2
+ INC GTHk ,&subcat JCN
+ POP2 POP2
+ #0000
+ &end
+ POP2
+ INC2 INC2 LDA2
+ POPr
+
+JMP2r
+
@skip-sub ( sub* -- sub* )
LDAk STH INC2 ;skip-str JSR2