|
|
|
|
@ -6,7 +6,7 @@
|
|
|
|
|
;on-mouse-menu .Mouse/vector DEO2 |
|
|
|
|
;on-control-menu .Controller/vector DEO2 |
|
|
|
|
|
|
|
|
|
#40 draw-cursor |
|
|
|
|
#40 <draw-cursor> |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@ -21,12 +21,12 @@ BRK
|
|
|
|
|
BRK |
|
|
|
|
&no-touch-cat |
|
|
|
|
( when sub active ) |
|
|
|
|
;draw-menu/sel LDA #ff EQU ?&no-sub |
|
|
|
|
;<draw-menu>/sel LDA #ff EQU ?&no-sub |
|
|
|
|
( when sel changed ) |
|
|
|
|
.Mouse/y DEI2 #0004 SUB2 #03 SFT2 NIP #01 SUB |
|
|
|
|
DUP ;draw-sub/sel LDA EQU ?&no-change |
|
|
|
|
DUP ;draw-sub/sel STA |
|
|
|
|
;draw-menu/sel LDA #ff draw-sub |
|
|
|
|
;<draw-menu>/sel LDA #ff draw-sub |
|
|
|
|
&no-change |
|
|
|
|
POP |
|
|
|
|
( when touch sub ) |
|
|
|
|
@ -37,7 +37,7 @@ BRK
|
|
|
|
|
BRK |
|
|
|
|
&no-sub |
|
|
|
|
( do not leave if menu is active ) |
|
|
|
|
;draw-menu/sel LDA INC ?&no-leave |
|
|
|
|
;<draw-menu>/sel LDA INC ?&no-leave |
|
|
|
|
.Mouse/y DEI2 #000c LTH2 ?&no-leave |
|
|
|
|
menu-close |
|
|
|
|
&no-leave |
|
|
|
|
@ -47,12 +47,12 @@ BRK
|
|
|
|
|
@menu-close ( -- ) |
|
|
|
|
|
|
|
|
|
untrap |
|
|
|
|
;draw-menu/sel LDA |
|
|
|
|
;<draw-menu>/sel LDA |
|
|
|
|
DUP #ff EQU ?&no-clear |
|
|
|
|
DUP #00 draw-sub |
|
|
|
|
#ff ;draw-menu/sel STA |
|
|
|
|
redraw-all |
|
|
|
|
draw-menu |
|
|
|
|
#ff ;<draw-menu>/sel STA |
|
|
|
|
<redraw-all> |
|
|
|
|
<draw-menu> |
|
|
|
|
&no-clear |
|
|
|
|
POP |
|
|
|
|
|
|
|
|
|
@ -65,19 +65,19 @@ JMP2r
|
|
|
|
|
POP JMP2r |
|
|
|
|
&exists |
|
|
|
|
( clear ) |
|
|
|
|
;draw-menu/sel LDA |
|
|
|
|
;<draw-menu>/sel LDA |
|
|
|
|
( unchanged ) EQUk ?menu-deselect |
|
|
|
|
( unselected ) DUP #ff EQU ?&no-clear |
|
|
|
|
DUP #00 draw-sub |
|
|
|
|
&no-clear |
|
|
|
|
POP |
|
|
|
|
( draw ) |
|
|
|
|
redraw-all |
|
|
|
|
<redraw-all> |
|
|
|
|
#ff ;draw-sub/sel STA |
|
|
|
|
DUP ;draw-menu/sel STA |
|
|
|
|
DUP ;<draw-menu>/sel STA |
|
|
|
|
#ff draw-sub |
|
|
|
|
|
|
|
|
|
!draw-menu |
|
|
|
|
!<draw-menu> |
|
|
|
|
|
|
|
|
|
@menu-deselect ( cat cat -- ) |
|
|
|
|
|
|
|
|
|
@ -103,7 +103,7 @@ BRK
|
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;draw-menu/manifest LDA2 |
|
|
|
|
;<draw-menu>/manifest LDA2 |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] STHkr EQU ?&end |
|
|
|
|
skip-sub |
|
|
|
|
@ -119,7 +119,7 @@ JMP2r
|
|
|
|
|
@get-sub ( sub -- sub* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
;draw-menu/sel LDA get-cat |
|
|
|
|
;<draw-menu>/sel LDA get-cat |
|
|
|
|
LDAk STH INC2 skip-str |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
@ -143,7 +143,7 @@ JMP2r
|
|
|
|
|
LIT2r 0000 |
|
|
|
|
,&target STR |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;draw-menu/manifest LDA2 |
|
|
|
|
;<draw-menu>/manifest LDA2 |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] [ LIT &target $1 ] EQU ?&end |
|
|
|
|
INC2k get-strw #0008 ADD2 STH2 ADD2r |
|
|
|
|
@ -163,7 +163,7 @@ JMP2r
|
|
|
|
|
LIT2r 0000 |
|
|
|
|
,&target STR2 |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;draw-menu/manifest LDA2 |
|
|
|
|
;<draw-menu>/manifest LDA2 |
|
|
|
|
&cat |
|
|
|
|
INC2k get-strw #0008 ADD2 STH2r ADD2 |
|
|
|
|
DUP2 [ LIT2 &target $2 ] LTH2 ?&continue |
|
|
|
|
@ -184,7 +184,7 @@ JMP2r
|
|
|
|
|
ORAk ?&no-null JMP2r &no-null |
|
|
|
|
( not null ) |
|
|
|
|
,&mk STR2 |
|
|
|
|
;draw-menu/manifest LDA2 |
|
|
|
|
;<draw-menu>/manifest LDA2 |
|
|
|
|
&cat |
|
|
|
|
LDAk STH INC2 skip-str |
|
|
|
|
STHr #00 |
|
|
|
|
@ -218,15 +218,15 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-menu ( mask -- ) |
|
|
|
|
@<draw-menu> ( mask -- ) |
|
|
|
|
|
|
|
|
|
#0010 .Screen/x DEO2 |
|
|
|
|
#0004 .Screen/y DEO2 |
|
|
|
|
#00 ,&id STR |
|
|
|
|
[ LIT2 &manifest =manifest ] |
|
|
|
|
&cat |
|
|
|
|
( theme ) #0b03 [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA |
|
|
|
|
INC2k draw-str POP2 #20 draw-chr |
|
|
|
|
( theme ) #0b03 [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;<draw-chr>/color STA |
|
|
|
|
INC2k <draw-str> POP2 #20 <draw-chr> |
|
|
|
|
skip-sub |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ?&cat |
|
|
|
|
@ -237,13 +237,13 @@ JMP2r
|
|
|
|
|
@draw-sub ( cat mask -- ) |
|
|
|
|
|
|
|
|
|
,&mask STR POP |
|
|
|
|
;draw-menu/sel LDA get-cat |
|
|
|
|
;<draw-menu>/sel LDA get-cat |
|
|
|
|
ORAk #00 EQU ?&skip |
|
|
|
|
;draw-menu/sel LDA get-catx ,&anchor STR2 |
|
|
|
|
;<draw-menu>/sel LDA get-catx ,&anchor STR2 |
|
|
|
|
LDAk STH INC2 skip-str |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
( theme ) STHk #070b STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA |
|
|
|
|
( theme ) STHk #070b 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 #30 SFT2 #0004 ADD2 .Screen/y DEO2 |
|
|
|
|
SWP2 draw-label SWP2 |
|
|
|
|
@ -260,21 +260,21 @@ JMP2r
|
|
|
|
|
.Screen/y DEI2 |
|
|
|
|
.Screen/auto DEI |
|
|
|
|
#f2 .Screen/auto DEO |
|
|
|
|
;fill-icn ;blank-icn ;draw-chr/color LDA #00 EQU [ JMP SWP2 POP2 ] .Screen/addr DEO2 |
|
|
|
|
;draw-chr/color LDA .Screen/sprite DEO |
|
|
|
|
;fill-icn ;blank-icn ;<draw-chr>/color LDA #00 EQU [ JMP SWP2 POP2 ] .Screen/addr DEO2 |
|
|
|
|
;<draw-chr>/color LDA .Screen/sprite DEO |
|
|
|
|
.Screen/auto DEO |
|
|
|
|
.Screen/y DEO2 |
|
|
|
|
( mod ) |
|
|
|
|
STH2k #0078 ADD2 .Screen/x DEO2 |
|
|
|
|
LDA2k get-modkey-str draw-str-right POP2 |
|
|
|
|
LDA2k get-modkey-str <draw-str-right> POP2 |
|
|
|
|
STH2r .Screen/x DEO2 |
|
|
|
|
#0004 ADD2 |
|
|
|
|
|
|
|
|
|
!draw-str |
|
|
|
|
!<draw-str> |
|
|
|
|
|
|
|
|
|
@get-modkey-str ( mod key -- str* ) |
|
|
|
|
|
|
|
|
|
;&buf #0008 mclr |
|
|
|
|
;&buf #0008 <mclr> |
|
|
|
|
( mod ) |
|
|
|
|
SWP STH |
|
|
|
|
#0800 |
|
|
|
|
@ -310,7 +310,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
#00 .Screen/auto DEO |
|
|
|
|
;fill-icn .Screen/addr DEO2 |
|
|
|
|
#40 draw-cursor |
|
|
|
|
#40 <draw-cursor> |
|
|
|
|
.Mouse/x DEI2 DUP2 .cursor/x STZ2 .Screen/x DEO2 |
|
|
|
|
.Mouse/y DEI2 DUP2 .cursor/y STZ2 .Screen/y DEO2 |
|
|
|
|
.Screen/addr DEO2 |
|
|
|
|
@ -318,7 +318,7 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-cursor ( color -- ) |
|
|
|
|
@<draw-cursor> ( color -- ) |
|
|
|
|
|
|
|
|
|
.cursor/x LDZ2 .Screen/x DEO2 |
|
|
|
|
.cursor/y LDZ2 .Screen/y DEO2 |
|
|
|
|
@ -353,19 +353,19 @@ JMP2r
|
|
|
|
|
( frame ) |
|
|
|
|
.Screen/width DEI2 #01 SFT2 #0070 SUB2 STH2k .Screen/x DEO2 |
|
|
|
|
.Screen/height DEI2 #01 SFT2 #0010 SUB2 STH2k .Screen/y DEO2 |
|
|
|
|
#1c06 ;frame1-chr draw-frame |
|
|
|
|
#1c06 ;frame1-chr <draw-frame> |
|
|
|
|
( fill ) |
|
|
|
|
STH2r .Screen/y DEO2 |
|
|
|
|
STH2r .Screen/x DEO2 |
|
|
|
|
#1c #0351 ;fill-icn draw-fill-fast |
|
|
|
|
#1c #0351 ;fill-icn <draw-fill-fast> |
|
|
|
|
.Screen/x DEI2k #00e0 SUB2 ROT DEO2 |
|
|
|
|
( icon ) |
|
|
|
|
.Screen/x DEI2k #0008 ADD2 ROT DEO2 |
|
|
|
|
.Screen/y DEI2k #000c ADD2 ROT DEO2 |
|
|
|
|
#03 #8526 ;appicon draw-fill-fast |
|
|
|
|
#03 #8526 ;appicon <draw-fill-fast> |
|
|
|
|
.Screen/x DEI2k #0020 ADD2 ROT DEO2 |
|
|
|
|
.Screen/y DEI2k #001c SUB2 ROT DEO2 |
|
|
|
|
#0a ;draw-chr/color STA |
|
|
|
|
#0a ;<draw-chr>/color STA |
|
|
|
|
;meta/body ( .. ) |
|
|
|
|
|
|
|
|
|
@draw-txt ( txt* -- ) |
|
|
|
|
@ -374,18 +374,18 @@ JMP2r
|
|
|
|
|
.Screen/x DEI2 ,&anchor STR2 |
|
|
|
|
&w |
|
|
|
|
LDAk #20 LTH ?&no-char |
|
|
|
|
LDAk draw-chr |
|
|
|
|
LDAk <draw-chr> |
|
|
|
|
&no-char |
|
|
|
|
LDAk #0a NEQ ?&no-lb |
|
|
|
|
[ LIT2 &anchor $2 ] .Screen/x DEO2 |
|
|
|
|
draw-lb |
|
|
|
|
<draw-lb> |
|
|
|
|
&no-lb |
|
|
|
|
INC2 LDAk ?&w |
|
|
|
|
POP2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@draw-lb ( -- ) |
|
|
|
|
@<draw-lb> ( -- ) |
|
|
|
|
|
|
|
|
|
.Screen/y DEI2k #0008 ADD2 ROT DEO2 |
|
|
|
|
|
|
|
|
|
@ -397,9 +397,9 @@ JMP2r
|
|
|
|
|
#80 .Screen/pixel DEO |
|
|
|
|
.Screen/width DEI2 #01 SFT2 #0088 SUB2 .Screen/x DEO2 |
|
|
|
|
.Screen/height DEI2 #01 SFT2 #0028 SUB2 .Screen/y DEO2 |
|
|
|
|
#22 #0091 draw-fill-fast/blank |
|
|
|
|
redraw-all |
|
|
|
|
!draw-menu |
|
|
|
|
#22 #0091 <draw-fill-fast>/blank |
|
|
|
|
<redraw-all> |
|
|
|
|
!<draw-menu> |
|
|
|
|
|
|
|
|
|
( |
|
|
|
|
@|theme ) |
|
|
|
|
@ -426,8 +426,8 @@ 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* -- ) ,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 |
|
|
|
|
@<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 |
|
|
|
|
|
|
|
|
|
@exit ( -- ) |
|
|
|
|
|
|
|
|
|
|