|
|
|
|
@ -20,7 +20,7 @@ BRK
|
|
|
|
|
#42 .Mouse/state DEI #00 NEQ ADD .Screen/sprite DEO |
|
|
|
|
( when touch cat ) |
|
|
|
|
.Mouse/state DEI #00 EQU ,&no-touch-cat JCN |
|
|
|
|
.Mouse/y DEI2 menu-hit GTH2 ,&no-touch-cat JCN |
|
|
|
|
.Mouse/y DEI2 #000c GTH2 ,&no-touch-cat JCN |
|
|
|
|
.Mouse/x DEI2 ;get-xcat JSR2 ;menu-select JSR2 |
|
|
|
|
( release ) #00 .Mouse/state DEO |
|
|
|
|
BRK |
|
|
|
|
@ -28,7 +28,7 @@ BRK
|
|
|
|
|
( when sub active ) |
|
|
|
|
;draw-menu/sel LDA #ff EQU ,&no-sub JCN |
|
|
|
|
( when sel changed ) |
|
|
|
|
.Mouse/y DEI2 #0004 SUB2 menu-r SFT2 NIP #01 SUB |
|
|
|
|
.Mouse/y DEI2 #0004 SUB2 #03 SFT2 NIP #01 SUB |
|
|
|
|
DUP ;draw-sub/sel LDA EQU ,&no-change JCN |
|
|
|
|
DUP ;draw-sub/sel STA |
|
|
|
|
;draw-menu/sel LDA #ff ;draw-sub JSR2 |
|
|
|
|
@ -43,7 +43,7 @@ BRK
|
|
|
|
|
&no-sub |
|
|
|
|
( don't leave if menu is active ) |
|
|
|
|
;draw-menu/sel LDA #ff NEQ ,&no-leave JCN |
|
|
|
|
.Mouse/y DEI2 menu-hit LTH2 ,&no-leave JCN |
|
|
|
|
.Mouse/y DEI2 #000c LTH2 ,&no-leave JCN |
|
|
|
|
,menu-close JSR |
|
|
|
|
&no-leave |
|
|
|
|
|
|
|
|
|
@ -81,15 +81,15 @@ JMP2r
|
|
|
|
|
#ff ;draw-sub/sel STA |
|
|
|
|
DUP ;draw-menu/sel STA |
|
|
|
|
#ff ;draw-sub JSR2 |
|
|
|
|
;draw-menu JSR2 |
|
|
|
|
;draw-menu ( .. ) |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
JMP2 |
|
|
|
|
|
|
|
|
|
@menu-deselect ( cat cat -- ) |
|
|
|
|
|
|
|
|
|
POP2 ;menu-close JSR2 |
|
|
|
|
POP2 ;menu-close ( .. ) |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
JMP2 |
|
|
|
|
|
|
|
|
|
@menu-select-sub ( sub -- ) |
|
|
|
|
|
|
|
|
|
@ -231,7 +231,7 @@ JMP2r
|
|
|
|
|
#00 ,&id STR |
|
|
|
|
[ LIT2 &manifest :manifest ] |
|
|
|
|
&cat |
|
|
|
|
menu-sel menu-def [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA |
|
|
|
|
#0b0a [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA |
|
|
|
|
INC2k ;draw-str JSR2 POP2 #20 ;draw-chr JSR2 |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
@ -249,9 +249,9 @@ JMP2r
|
|
|
|
|
LDAk STH INC2 ;skip-str JSR2 |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
STHk menu-hov menu-sel STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA |
|
|
|
|
STHk #030b STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA |
|
|
|
|
[ LIT2 &anchor $2 ] .Screen/x DEO2 |
|
|
|
|
#00 OVR INC menu-l SFT2 #0004 ADD2 .Screen/y DEO2 |
|
|
|
|
#00 OVR INC #30 SFT2 #0004 ADD2 .Screen/y DEO2 |
|
|
|
|
SWP2 ;draw-label JSR2 SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 POP2 |
|
|
|
|
@ -267,16 +267,16 @@ JMP2r
|
|
|
|
|
.Screen/auto DEI |
|
|
|
|
#f2 .Screen/auto DEO |
|
|
|
|
;blank-icn .Screen/addr DEO2 |
|
|
|
|
;draw-chr/color LDA .Screen/sprite menu-label |
|
|
|
|
;draw-chr/color LDA .Screen/sprite DEO |
|
|
|
|
.Screen/auto DEO |
|
|
|
|
.Screen/y DEO2 |
|
|
|
|
( mod ) |
|
|
|
|
STH2k #0078 ADD2 .Screen/x DEO2 |
|
|
|
|
LDA2k ;get-modkey-str JSR2 ;draw-str-right JSR2 POP2 |
|
|
|
|
STH2r .Screen/x DEO2 |
|
|
|
|
#0004 ADD2 ;draw-str JSR2 |
|
|
|
|
#0004 ADD2 ;draw-str ( .. ) |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
JMP2 |
|
|
|
|
|
|
|
|
|
@get-modkey-str ( mod key -- str* ) |
|
|
|
|
|
|
|
|
|
@ -352,9 +352,9 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
@scap ( str* -- end* ) LDAk #00 NEQ JMP JMP2r &w INC2 LDAk ,&w JCN JMP2r |
|
|
|
|
@spop ( str* -- ) LDAk ,&n JCN POP2 JMP2r &n ,scap JSR #0001 SUB2 #00 ROT ROT STA JMP2r |
|
|
|
|
@sput ( chr str* -- ) ,scap JSR STA JMP2r |
|
|
|
|
@sput ( chr str* -- ) ,scap JSR INC2k #00 ROT ROT STA STA JMP2r |
|
|
|
|
@slen ( str* -- len* ) DUP2 ,scap JSR SWP2 SUB2 JMP2r |
|
|
|
|
@scat ( src* dst* -- ) DUP2 ,slen JSR ADD2 |
|
|
|
|
@scat ( src* dst* -- ) ,scap JSR |
|
|
|
|
@scpy ( src* dst* -- ) STH2 &w LDAk STH2kr STA INC2r INC2 LDAk ,&w JCN POP2 #00 STH2r STA JMP2r |
|
|
|
|
@mclr ( src* len* -- ) OVR2 ADD2 SWP2 &l STH2k #00 STH2r STA INC2 GTH2k ,&l JCN POP2 POP2 JMP2r |
|
|
|
|
|
|
|
|
|
|