|
|
|
|
@ -8,10 +8,11 @@
|
|
|
|
|
01 'r :file-rename "Rename $1 |
|
|
|
|
01 'o :file-open "Open $1 |
|
|
|
|
01 's :file-save "Save $1 |
|
|
|
|
03 "Edit $1 |
|
|
|
|
04 "Edit $1 |
|
|
|
|
01 'c :edit-copy "Copy $1 |
|
|
|
|
01 'v :edit-paste "Paste $1 |
|
|
|
|
01 'x :edit-cut "Cut $1 |
|
|
|
|
00 08 :edit-erase "Erase $1 |
|
|
|
|
0c "Select $1 |
|
|
|
|
00 'q :select-brush "Brush $1 |
|
|
|
|
00 'w :select-selector "Selector $1 |
|
|
|
|
@ -30,21 +31,26 @@
|
|
|
|
|
00 '2 :pick-color2 "Color2 $1 |
|
|
|
|
00 '3 :pick-color3 "Color3 $1 |
|
|
|
|
00 '4 :pick-color4 "Color4 $1 |
|
|
|
|
02 "Options $1 |
|
|
|
|
00 08 :option-erase "Erase $1 |
|
|
|
|
00 20 :option-zoom "Zoom $1 |
|
|
|
|
01 "View $1 |
|
|
|
|
00 20 :view-zoom "Zoom $1 |
|
|
|
|
$1 |
|
|
|
|
|
|
|
|
|
@trap-menu ( -> ) |
|
|
|
|
|
|
|
|
|
;on-mouse-menu .Mouse/vector DEO2 |
|
|
|
|
;on-control-menu .Controller/vector DEO2 |
|
|
|
|
#ff ;draw-cat/sel STA |
|
|
|
|
#ff ;draw-sub/sel STA |
|
|
|
|
;draw-cat JSR2 |
|
|
|
|
,menu-init JSR |
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@menu-init ( -- ) |
|
|
|
|
|
|
|
|
|
#ff ;draw-menu/sel STA |
|
|
|
|
#ff ;draw-sub/sel STA |
|
|
|
|
;draw-menu JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@on-mouse-menu ( -> ) |
|
|
|
|
|
|
|
|
|
( clear last cursor ) |
|
|
|
|
@ -65,12 +71,12 @@ BRK
|
|
|
|
|
BRK |
|
|
|
|
&no-touch-cat |
|
|
|
|
( when sub active ) |
|
|
|
|
;draw-cat/sel LDA #ff EQU ,&no-sub JCN |
|
|
|
|
;draw-menu/sel LDA #ff EQU ,&no-sub JCN |
|
|
|
|
( when sel changed ) |
|
|
|
|
.Mouse/y DEI2 #03 SFT2 NIP #01 SUB |
|
|
|
|
DUP ;draw-sub/sel LDA EQU ,&no-change JCN |
|
|
|
|
DUP ;draw-sub/sel STA |
|
|
|
|
;draw-cat/sel LDA #ff ;draw-sub JSR2 |
|
|
|
|
;draw-menu/sel LDA #ff ;draw-sub JSR2 |
|
|
|
|
&no-change |
|
|
|
|
POP |
|
|
|
|
( when touch sub ) |
|
|
|
|
@ -81,7 +87,7 @@ BRK
|
|
|
|
|
BRK |
|
|
|
|
&no-sub |
|
|
|
|
( don't leave if menu is active ) |
|
|
|
|
;draw-cat/sel LDA #ff EQU |
|
|
|
|
;draw-menu/sel LDA #ff EQU |
|
|
|
|
.Mouse/y DEI2 #0007 GTH2 |
|
|
|
|
AND ;on-menu-leave JCN2 |
|
|
|
|
|
|
|
|
|
@ -102,9 +108,9 @@ JMP2r
|
|
|
|
|
@menu-close ( -- ) |
|
|
|
|
|
|
|
|
|
;untrap JSR2 |
|
|
|
|
( hide ) ;draw-cat/sel LDA #00 ;draw-sub JSR2 |
|
|
|
|
#ff ;draw-cat/sel STA |
|
|
|
|
;draw-cat JSR2 |
|
|
|
|
( hide ) ;draw-menu/sel LDA #00 ;draw-sub JSR2 |
|
|
|
|
#ff ;draw-menu/sel STA |
|
|
|
|
;draw-menu JSR2 |
|
|
|
|
;redraw JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -112,17 +118,23 @@ JMP2r
|
|
|
|
|
@menu-select ( cat -- ) |
|
|
|
|
|
|
|
|
|
( clear ) |
|
|
|
|
;draw-cat/sel LDA |
|
|
|
|
( unchanged ) DUP2 EQU ,&no-clear JCN |
|
|
|
|
;draw-menu/sel LDA |
|
|
|
|
( unchanged ) DUP2 EQU ,menu-deselect JCN |
|
|
|
|
( unselected ) DUP #ff EQU ,&no-clear JCN |
|
|
|
|
DUP #00 ;draw-sub JSR2 |
|
|
|
|
&no-clear |
|
|
|
|
POP |
|
|
|
|
( draw application ) ;redraw JSR2 |
|
|
|
|
( unselect sub ) #ff ;draw-sub/sel STA |
|
|
|
|
( select cat ) DUP ;draw-cat/sel STA |
|
|
|
|
( select cat ) DUP ;draw-menu/sel STA |
|
|
|
|
( draw sub ) #ff ;draw-sub JSR2 |
|
|
|
|
;draw-cat JSR2 |
|
|
|
|
;draw-menu JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@menu-deselect ( cat cat -- ) |
|
|
|
|
|
|
|
|
|
POP2 ;menu-close JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
@ -144,15 +156,16 @@ JMP2r
|
|
|
|
|
|
|
|
|
|
BRK |
|
|
|
|
|
|
|
|
|
@draw-cat ( -- ) |
|
|
|
|
@draw-menu ( -- ) |
|
|
|
|
|
|
|
|
|
#0000 DUP2 .Screen/x DEO2 .Screen/y DEO2 |
|
|
|
|
#0010 .Screen/x DEO2 |
|
|
|
|
#0000 .Screen/y DEO2 |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
#00 ,&id STR |
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
#0701 [ LIT &sel $1 ] [ LIT &id $1 ] EQU JMP SWP POP ;draw-chr/color STA |
|
|
|
|
INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEOk DEO |
|
|
|
|
INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEO |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
@ -164,9 +177,9 @@ JMP2r
|
|
|
|
|
@draw-sub ( cat mask -- ) |
|
|
|
|
|
|
|
|
|
,&mask STR POP |
|
|
|
|
;draw-cat/sel LDA ;get-cat JSR2 |
|
|
|
|
;draw-menu/sel LDA ;get-cat JSR2 |
|
|
|
|
DUP2 #0000 EQU2 ,&skip JCN |
|
|
|
|
;draw-cat/sel LDA ;get-anchor JSR2 ,&anchor STR2 |
|
|
|
|
;draw-menu/sel LDA ;get-anchor JSR2 ,&anchor STR2 |
|
|
|
|
#01 .Screen/auto DEO |
|
|
|
|
LDAk STH INC2 ;skip-str JSR2 |
|
|
|
|
STHr #00 |
|
|
|
|
@ -190,12 +203,12 @@ JMP2r
|
|
|
|
|
LDA2k SWP2 |
|
|
|
|
#0004 ADD2 STH2k ;draw-str JSR2 |
|
|
|
|
( fill ) |
|
|
|
|
#10 STH2r ;slen JSR2 NIP SUB #00 |
|
|
|
|
#0b STH2r ;slen JSR2 NIP SUB #00 |
|
|
|
|
&loop |
|
|
|
|
#20 ;draw-chr JSR2 |
|
|
|
|
INC GTHk ,&loop JCN |
|
|
|
|
POP2 |
|
|
|
|
.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2 |
|
|
|
|
.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2 |
|
|
|
|
SWP2 ;draw-key JSR2 ;draw-mod JSR2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
@ -219,9 +232,8 @@ JMP2r
|
|
|
|
|
@buttons-icns |
|
|
|
|
387c fefe fe7c 3800 |
|
|
|
|
3844 8282 8244 3800 |
|
|
|
|
7cfe fefe fefe 7c00 |
|
|
|
|
7c82 8282 8282 7c00 |
|
|
|
|
|
|
|
|
|
1038 7cfe 7c38 1000 |
|
|
|
|
1028 4482 4428 1000 |
|
|
|
|
1038 7cfe 1010 1000 |
|
|
|
|
1010 10fe 7c38 1000 |
|
|
|
|
1030 70fe 7030 1000 |
|
|
|
|
@ -267,7 +279,7 @@ JMP2r
|
|
|
|
|
@get-sub ( sub -- sub* ) |
|
|
|
|
|
|
|
|
|
STH |
|
|
|
|
;draw-cat/sel LDA ;get-cat JSR2 |
|
|
|
|
;draw-menu/sel LDA ;get-cat JSR2 |
|
|
|
|
LDAk STH INC2 ;skip-str JSR2 |
|
|
|
|
STHr #00 |
|
|
|
|
&subcat |
|
|
|
|
@ -305,14 +317,14 @@ JMP2r
|
|
|
|
|
;manifest/menu |
|
|
|
|
&cat |
|
|
|
|
[ LIT &id 00 ] [ LIT &target $1 ] EQU ,&end JCN |
|
|
|
|
INC2k ;slen JSR2 INC2 INC2 STH2 ADD2r |
|
|
|
|
INC2k ;slen JSR2 INC2 STH2 ADD2r |
|
|
|
|
;skip-sub JSR2 |
|
|
|
|
,&id LDR INC ,&id STR |
|
|
|
|
LDAk ,&cat JCN |
|
|
|
|
POP2 |
|
|
|
|
&end |
|
|
|
|
STH2r |
|
|
|
|
#30 SFT2 |
|
|
|
|
INC2 INC2 #30 SFT2 |
|
|
|
|
|
|
|
|
|
JMP2r |
|
|
|
|
|
|
|
|
|
|