|
|
|
|
@ -156,6 +156,101 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@get-cat ( cat -- cat* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] STHkr EQU ,&end JCN |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
#0000 |
|
|
|
|
&end |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@get-sub ( sub -- sub* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
;draw-menu/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 |
|
|
|
|
( TODO: merge tails ) |
|
|
|
|
POPr |
|
|
|
|
#0000 |
|
|
|
|
JMP2r |
|
|
|
|
&end |
|
|
|
|
POP2 |
|
|
|
|
INC2 INC2 LDA2 |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@get-anchor ( cat -- x* ) |
|
|
|
|
|
|
|
|
|
LIT2r 0000 |
|
|
|
|
,&target STR |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] [ LIT &target $1 ] EQU ,&end JCN |
|
|
|
|
INC2k ;slen JSR2 INC2 STH2 ADD2r |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
&end |
|
|
|
|
STH2r |
|
|
|
|
INC2 INC2 #30 SFT2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@find-modkey ( mod key -- fn* ) |
|
|
|
|
|
|
|
|
|
,&mk STR2 |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
LDAk STH INC2 ,skip-str JSR |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
OVR2 LDA2 [ LIT2 &mk $2 ] NEQ2 ,&continue JCN |
|
|
|
|
POP2 INC2 INC2 LDA2 JMP2r |
|
|
|
|
&continue |
|
|
|
|
SWP2 #0004 ADD2 ,skip-str JSR SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
#0000 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@skip-sub ( sub* -- sub* ) |
|
|
|
|
|
|
|
|
|
LDAk STH INC2 ;skip-str JSR2 |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
SWP2 #0004 ADD2 ,skip-str JSR SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@skip-str ( str* -- str* ) |
|
|
|
|
|
|
|
|
|
&skip INC2 LDAk ,&skip JCN INC2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-menu ( -- ) |
|
|
|
|
|
|
|
|
|
#0010 .Screen/x DEO2 |
|
|
|
|
@ -229,16 +324,6 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@buttons-icns |
|
|
|
|
387c fefe fe7c 3800 |
|
|
|
|
3844 8282 8244 3800 |
|
|
|
|
1038 7cfe 7c38 1000 |
|
|
|
|
1028 4482 4428 1000 |
|
|
|
|
1038 7cfe 1010 1000 |
|
|
|
|
1010 10fe 7c38 1000 |
|
|
|
|
1030 70fe 7030 1000 |
|
|
|
|
1018 1cfe 1c18 1000 |
|
|
|
|
|
|
|
|
|
@draw-key ( mod key -- ) |
|
|
|
|
|
|
|
|
|
( key ) |
|
|
|
|
@ -259,75 +344,6 @@ JMP2r
|
|
|
|
|
&spc "spc $1 |
|
|
|
|
&esc "esc $1 |
|
|
|
|
|
|
|
|
|
@get-cat ( cat -- cat* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] STHkr EQU ,&end JCN |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
#0000 |
|
|
|
|
&end |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@get-sub ( sub -- sub* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
;draw-menu/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 |
|
|
|
|
( TODO: merge tails ) |
|
|
|
|
POPr |
|
|
|
|
#0000 |
|
|
|
|
JMP2r |
|
|
|
|
&end |
|
|
|
|
POP2 |
|
|
|
|
INC2 INC2 LDA2 |
|
|
|
|
POPr |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@skip-sub ( sub* -- sub* ) |
|
|
|
|
|
|
|
|
|
LDAk STH INC2 ;skip-str JSR2 |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
SWP2 #0004 ADD2 ;skip-str JSR2 SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@get-anchor ( cat -- x* ) |
|
|
|
|
|
|
|
|
|
LIT2r 0000 |
|
|
|
|
,&target STR |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] [ LIT &target $1 ] EQU ,&end JCN |
|
|
|
|
INC2k ;slen JSR2 INC2 STH2 ADD2r |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
&end |
|
|
|
|
STH2r |
|
|
|
|
INC2 INC2 #30 SFT2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-str ( str* -- str* ) |
|
|
|
|
|
|
|
|
|
&while |
|
|
|
|
@ -344,95 +360,13 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@print-manifest ( -- ) |
|
|
|
|
|
|
|
|
|
;manifest/name ;print-str JSR2 |
|
|
|
|
LIT '( #18 DEO ;print-str JSR2 POP2 LIT ') #18 DEO |
|
|
|
|
#0a18 DEOk DEO |
|
|
|
|
( menu ) |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
LDAk STH INC2 ;print-str JSR2 #0a18 DEO |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
SWP2 |
|
|
|
|
( modkey ) #0918 DEO ;print-mod JSR2 ;print-key JSR2 |
|
|
|
|
( spacer ) #2018 DEOk LIT ': #18 DEO DEO |
|
|
|
|
( name ) INC2 INC2 ;print-str JSR2 #0a18 DEO |
|
|
|
|
SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@print-mod ( addr* -- addr* ) |
|
|
|
|
|
|
|
|
|
LDAk STH |
|
|
|
|
#0800 |
|
|
|
|
&loop |
|
|
|
|
STHkr OVR SFT #01 AND #00 EQU ,&no-button JCN |
|
|
|
|
#00 OVR ;&buttons ADD2 LDA #18 DEO |
|
|
|
|
&no-button |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
POP2 |
|
|
|
|
POPr |
|
|
|
|
INC2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&buttons |
|
|
|
|
"ABsSUDLR $1 |
|
|
|
|
|
|
|
|
|
@print-key ( addr* -- addr* ) |
|
|
|
|
|
|
|
|
|
LDAk |
|
|
|
|
DUP #08 NEQ ,&no-del JCN ;&del ,&inv JMP &no-del |
|
|
|
|
DUP #09 NEQ ,&no-tab JCN ;&tab ,&inv JMP &no-tab |
|
|
|
|
DUP #20 NEQ ,&no-spc JCN ;&spc ,&inv JMP &no-spc |
|
|
|
|
DUP #1b NEQ ,&no-esc JCN ;&esc ,&inv JMP &no-esc |
|
|
|
|
#18 DEO |
|
|
|
|
INC2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
&inv ROT POP ;print-str JSR2 POP2 INC2 JMP2r |
|
|
|
|
&del "del $1 |
|
|
|
|
&tab "tab $1 |
|
|
|
|
&spc "spc $1 |
|
|
|
|
&esc "esc $1 |
|
|
|
|
|
|
|
|
|
@print-str ( addr* -- addr* ) |
|
|
|
|
|
|
|
|
|
&while |
|
|
|
|
LDAk #18 DEO |
|
|
|
|
INC2 LDAk ,&while JCN |
|
|
|
|
INC2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@find-modkey ( mod key -- fn* ) |
|
|
|
|
|
|
|
|
|
,&mk STR2 |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
LDAk STH INC2 ,skip-str JSR |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
OVR2 LDA2 [ LIT2 &mk $2 ] NEQ2 ,&continue JCN |
|
|
|
|
POP2 INC2 INC2 LDA2 JMP2r |
|
|
|
|
&continue |
|
|
|
|
SWP2 #0004 ADD2 ,skip-str JSR SWP2 |
|
|
|
|
INC GTHk ,&subcat JCN |
|
|
|
|
POP2 |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
#0000 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@skip-str ( str* -- str* ) |
|
|
|
|
|
|
|
|
|
&skip INC2 LDAk ,&skip JCN INC2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@buttons-icns |
|
|
|
|
387c fefe fe7c 3800 |
|
|
|
|
3844 8282 8244 3800 |
|
|
|
|
1038 7cfe 7c38 1000 |
|
|
|
|
1028 4482 4428 1000 |
|
|
|
|
1038 7cfe 1010 1000 |
|
|
|
|
1010 10fe 7c38 1000 |
|
|
|
|
1030 70fe 7030 1000 |
|
|
|
|
1018 1cfe 1c18 1000 |
|
|
|
|
|
|
|
|
|
|