diff --git a/src/manifest.tal b/src/manifest.tal index c664daa..34d70d5 100644 --- a/src/manifest.tal +++ b/src/manifest.tal @@ -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 diff --git a/src/nasu.tal b/src/nasu.tal index 0c29968..07e8be0 100644 --- a/src/nasu.tal +++ b/src/nasu.tal @@ -7,15 +7,6 @@ |90 @Mouse &vector $2 &x $2 &y $2 &state $1 &chord $1 |a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2 -%menu-def { #01 } -%menu-sel { #07 } -%menu-hov { #0d } -%menu-hit { #000c } -%menu-auto { #01 } -%menu-label { DEO } -%menu-l { #30 } -%menu-r { #03 } - |0000 @state @@ -49,9 +40,9 @@ |0100 ( -> ) ( theme ) - #086f .System/r DEO2 - #059f .System/g DEO2 - #0abf .System/b DEO2 + #4bbf .System/r DEO2 + #158f .System/g DEO2 + #46bf .System/b DEO2 ( size ) #012e .Screen/width DEO2 #00f0 .Screen/height DEO2 @@ -85,6 +76,7 @@ ;draw-once JSR2 ( let's begin! ) ;file-new JSR2 + ;draw-menu-bg JSR2 ;draw-menu JSR2 BRK @@ -628,6 +620,7 @@ JMP2r @redraw-all ( -- ) + ;draw-menu-bg JSR2 ;draw-once JSR2 @redraw ( -- ) @@ -643,6 +636,20 @@ JMP2r JMP2r +@draw-menu-bg ( -- ) + + #0000 DUP2 .Screen/x DEO2 .Screen/y DEO2 + ;menu-chr .Screen/addr DEO2 + #15 .Screen/auto DEO + .Screen/width DEI2 #03 SFT2 NIP INC #00 + &l + ;menu-chr .Screen/addr DEO2 + #81 .Screen/sprite DEO + INC GTHk ,&l JCN + POP2 + +JMP2r + @draw-tileview ( -- ) .settings/zoom LDZ ;draw-tileview-zoom JCN2 @@ -1036,7 +1043,7 @@ JMP2r @draw-str ( str* -- str* ) LDAk #00 EQU ,&skip JCN - menu-auto .Screen/auto DEO + #01 .Screen/auto DEO &while LDAk ;draw-chr JSR2 INC2 LDAk ,&while JCN @@ -1386,6 +1393,10 @@ JMP2r ( br ) 00ff 0000 0000 0000 ( mc ) 4080 0000 0000 0000 +@menu-chr + ffff ffff ffff ffff ffff ffff ffff ffff + ffff ffff ffff ff00 ffff ffff ffff ffff + ~src/font.tal ~src/manifest.tal