Browse Source

Click menu again to deselect

main
Devine Lu Linvega 4 years ago
parent
commit
8c2ab7c392
  1. 72
      src/manifest.tal
  2. 9
      src/nasu.tal
  3. BIN
      untitled.chr

72
src/manifest.tal

@ -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

9
src/nasu.tal

@ -44,7 +44,7 @@
#05cf .System/g DEO2
#0caf .System/b DEO2
( size )
#0130 .Screen/width DEO2
#0120 .Screen/width DEO2
#0100 .Screen/height DEO2
( vectors )
;on-console .Console/vector DEO2
@ -86,8 +86,7 @@
#00 .Screen/auto DEO
( let's begin! )
;file-new JSR2
;print-manifest JSR2
( ;draw-menu JSR2 )
;menu-init JSR2
BRK
@ -1205,7 +1204,7 @@ JMP2r
( option )
@option-erase ( -- )
@edit-erase ( -- )
;op-erase ;run JSR2
#01 .state/changed STZ ;draw-state JSR2
@ -1213,7 +1212,7 @@ JMP2r
JMP2r
@option-zoom ( -- )
@view-zoom ( -- )
;toggle-zoom JSR2

BIN
untitled.chr

Binary file not shown.
Loading…
Cancel
Save