Browse Source

Use macros for manifest

main
Devine Lu Linvega 4 years ago
parent
commit
86547755f5
  1. 22
      src/manifest.tal
  2. 26
      src/nasu.tal

22
src/manifest.tal

@ -28,7 +28,7 @@ BRK
( when sub active ) ( when sub active )
;draw-menu/sel LDA #ff EQU ,&no-sub JCN ;draw-menu/sel LDA #ff EQU ,&no-sub JCN
( when sel changed ) ( when sel changed )
.Mouse/y DEI2 #0004 SUB2 ;draw-sub/height LDA #04 SFT SFT2 NIP #01 SUB .Mouse/y DEI2 #0004 SUB2 menu-r SFT2 NIP #01 SUB
DUP ;draw-sub/sel LDA EQU ,&no-change JCN DUP ;draw-sub/sel LDA EQU ,&no-change JCN
DUP ;draw-sub/sel STA DUP ;draw-sub/sel STA
;draw-menu/sel LDA #ff ;draw-sub JSR2 ;draw-menu/sel LDA #ff ;draw-sub JSR2
@ -237,7 +237,7 @@ JMP2r
#00 ,&id STR #00 ,&id STR
;manifest/menu ;manifest/menu
&cat &cat
[ LIT2 &theme 0401 ] [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA menu-sel menu-def [ LIT &sel ff ] [ LIT &id $1 ] EQU [ JMP SWP POP ] ;draw-chr/color STA
INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEO INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEO
;skip-sub JSR2 ;skip-sub JSR2
,&id LDR INC ,&id STR ,&id LDR INC ,&id STR
@ -255,9 +255,9 @@ JMP2r
LDAk STH INC2 ;skip-str JSR2 LDAk STH INC2 ;skip-str JSR2
STHr #00 STHr #00
&subcat &subcat
STHk [ LIT2 &theme 0804 ] STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA STHk menu-hov menu-sel STHr [ LIT &sel ff ] EQU [ JMP SWP POP ] [ LIT &mask $1 ] AND ;draw-chr/color STA
[ LIT2 &anchor $2 ] .Screen/x DEO2 [ LIT2 &anchor $2 ] .Screen/x DEO2
#00 OVR INC [ LIT &height 30 ] SFT2 #0004 ADD2 .Screen/y DEO2 #00 OVR INC menu-l SFT2 #0004 ADD2 .Screen/y DEO2
SWP2 ;draw-label JSR2 SWP2 SWP2 ;draw-label JSR2 SWP2
INC GTHk ,&subcat JCN INC GTHk ,&subcat JCN
POP2 POP2 POP2 POP2
@ -268,9 +268,16 @@ JMP2r
@draw-label ( label* -- next-label* ) @draw-label ( label* -- next-label* )
;draw-label-bg JSR2 .Screen/x DEI2
.Screen/y DEI2
.Screen/auto DEI
#f2 .Screen/auto DEO
;blank-icn .Screen/addr DEO2
;draw-chr/color LDA .Screen/sprite menu-label
.Screen/auto DEO
.Screen/y DEO2
( mod ) ( mod )
.Screen/x DEI2 STH2k #0078 ADD2 .Screen/x DEO2 STH2k #0078 ADD2 .Screen/x DEO2
LDA2k ;get-keymod-str JSR2 ;draw-str-right JSR2 POP2 LDA2k ;get-keymod-str JSR2 ;draw-str-right JSR2 POP2
STH2r .Screen/x DEO2 STH2r .Screen/x DEO2
#0004 ADD2 ;draw-str JSR2 #0004 ADD2 ;draw-str JSR2
@ -317,7 +324,7 @@ JMP2r
@draw-str ( str* -- str* ) @draw-str ( str* -- str* )
[ LIT &auto 01 ] .Screen/auto DEO menu-auto .Screen/auto DEO
&while &while
LDAk ;draw-chr JSR2 LDAk ;draw-chr JSR2
INC2 LDAk ,&while JCN INC2 LDAk ,&while JCN
@ -430,4 +437,3 @@ JMP2r
2020 20b8 7c7c 3838 2020 20b8 7c7c 3838
@blank-icn @blank-icn
0000 0000 0000 0000 0000 0000 0000 0000

26
src/nasu.tal

@ -7,6 +7,14 @@
|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &chord $1 |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 |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-auto { #01 }
%menu-label { DEO }
%menu-l { #30 }
%menu-r { #03 }
|0000 |0000
@state @state
@ -76,8 +84,6 @@
;draw-once JSR2 ;draw-once JSR2
( let's begin! ) ( let's begin! )
;file-new JSR2 ;file-new JSR2
#0701 ;draw-menu/theme STA2
#0d07 ;draw-sub/theme STA2
;draw-menu JSR2 ;draw-menu JSR2
BRK BRK
@ -1058,25 +1064,11 @@ JMP2r
@draw-chr ( char -- ) @draw-chr ( char -- )
#20 SUB #00 SWP #30 SFT2 ;font ADD2 &raw .Screen/addr DEO2 #20 SUB #00 SWP #30 SFT2 ;font ADD2 .Screen/addr DEO2
[ LIT &color 01 ] .Screen/sprite DEO [ LIT &color 01 ] .Screen/sprite DEO
JMP2r JMP2r
@draw-label-bg ( -- )
.Screen/x DEI2
.Screen/y DEI2
.Screen/auto DEI
#f2 .Screen/auto DEO
;blank-icn .Screen/addr DEO2
;draw-chr/color LDA .Screen/sprite DEO
.Screen/auto DEO
.Screen/y DEO2
.Screen/x DEO2
JMP2r
@get-strw ( str* -- width* ) @get-strw ( str* -- width* )
;slen JSR2 #30 SFT2 ;slen JSR2 #30 SFT2

Loading…
Cancel
Save