commit c923e1ddc985171d184f27e434c35e5b44f0966a
parent 7f0119599e77ebb26a95947e7c3a78a2e32d8b46
Author: Devine Lu Linvega <aliceffekt@gmail.com>
Date: Mon, 8 Nov 2021 13:54:21 -0500
(boot.rom) Added mouse selection
Diffstat:
1 file changed, 31 insertions(+), 34 deletions(-)
diff --git a/projects/software/boot.tal b/projects/software/boot.tal
@@ -1,23 +1,17 @@
-( launcher
-
- TODO:
- Theme setting
- Window size setting
- Play notes
- )
+( launcher )
%+ { ADD } %- { SUB } %* { MUL } %/ { DIV }
%< { LTH } %> { GTH } %= { EQU } %! { NEQ }
%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
-%10** { #40 SFT2 }
+%10** { #40 SFT2 } %10// { #04 SFT2 }
%MOD { DIVk MUL SUB }
%DEC { #01 - }
%RTN { JMP2r }
%TOS { #00 SWP }
-%SWP? { #01 JCN SWP }
+%SWP? { #01 JCN SWP } %SWP2? { #01 JCN SWP2 }
%BRK? { #01 JCN BRK }
%RTN? { #01 JCN RTN }
@@ -26,14 +20,14 @@
( devices )
-|00 @System &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1 ]
-|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1 ]
-|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
-|30 @Audio0 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
-|80 @Controller &vector $2 &button $1 &key $1 ]
-|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &wheel $1 ]
-|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
-|b0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
+|00 @System &vector $2 &wst $1 &rst $1 &pad $4 &r $2 &g $2 &b $2 &debug $1 &halt $1
+|10 @Console &vector $2 &read $1 &pad $5 &write $1 &error $1
+|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
+|30 @Audio0 &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1
+|80 @Controller &vector $2 &button $1 &key $1
+|90 @Mouse &vector $2 &x $2 &y $2 &state $1 &wheel $1
+|a0 @File &vector $2 &success $2 &stat $2 &delete $1 &append $1 &name $2 &length $2 &read $2 &write $2
+|b0 @DateTime &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1
( variables )
@@ -43,7 +37,8 @@
@pointer
&x $2 &y $2
@browser
- &x $2 &y $2 &sel $1
+ &x $2 &y $2
+ &sel $1 &last $1
( init )
@@ -77,6 +72,8 @@
( theme support )
;load-theme JSR2
+ ( force selection )
+ #ff .browser/last STZ
#00 ;select-file JSR2
BRK
@@ -106,6 +103,15 @@ BRK
.pointer/y LDZ2 .Screen/y DEO2
#41 .Mouse/state DEI #01 = + .Screen/sprite DEO
+ ( select choice )
+ .Mouse/y DEI2
+ ( clamp ) #0010 GTH2k SWP2? POP2
+ 10// NIP #01 - ;select-file JSR2
+
+ .Mouse/state DEI #00 = ,&no-click JCN
+ .browser/sel LDZ ;run-file JSR2
+ &no-click
+
BRK
@on-button ( -> )
@@ -145,12 +151,18 @@ RTN
@select-file ( id -- )
+ DUP .browser/last LDZ ! ,&has-changed JCN
+ POP RTN
+ &has-changed
+
.browser/x LDZ2 #0018 -- .browser/y LDZ2 [ .browser/sel LDZ TOS 10** ++ ]
#0010 #0010
;hand-icn #00 ;draw-icn JSR2
DUP
.browser/sel STZ
+ DUP
+ .browser/last STZ
#30 + .Audio0/pitch DEO
;draw-browser JSR2
@@ -343,7 +355,7 @@ RTN
( helpers )
@print-hex ( value* -- )
-
+
&short ( value* -- )
SWP ,&echo JSR
&byte ( value -- )
@@ -359,22 +371,8 @@ RTN
RTN
-@welcome-txt
- "Welcome 20 "to 20 "your 20 "UXN 20 "Ordinator $1
-@today-txt
- "Today 20 "is 20 "0000-00-00 ", 20 "the 20 "time 20 "is 20 "00:00:00 $1
-@prompt-txt
- "What 20 "shall 20 "we 20 "do? $1
-@do-txt
- "$: $1
-
-@error-txt
- "Sorry, 20 "ROM 20 "not 20 "found. $1
-
@pointer-icn
80c0 e0f0 f8e0 1000
-@cursor-icn
- ffff ffff ffff ffff
@hand-icn
000c 0a0a 1224 4780
0000 0000 0000 fc02
@@ -402,7 +400,6 @@ RTN
include projects/library/check-rom.tal
include projects/library/load-rom.tal
-include projects/assets/logo05x05.tal
include projects/assets/mascot0cx0c.tal
include projects/assets/msx01x02.tal