0
0
Fork 0
mirror of https://git.sr.ht/~rabbits/uxn synced 2024-11-25 07:15:12 +00:00

Added selection to launcher

This commit is contained in:
Devine Lu Linvega 2021-11-07 15:55:26 -05:00
parent 142d046b9b
commit 9cc303dd86
2 changed files with 297 additions and 32 deletions

View file

@ -1,5 +1,5 @@
@mascot-icn
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0304 0808 0000 0000 0080 8080
0000 0000 0000 0000 0000 0000 0000 0000
@ -18,13 +18,13 @@
0202 0202 0202 0202 0000 0000 0000 0000
0000 0000 0000 0006 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
4140 2020 1008 0407 20b0 9080 0844 4420
4140 2020 1008 0406 20a0 9088 0844 4420
8040 2010 0000 0000 0020 0000 0000 0000
0000 0000 0000 0000 2020 1010 0800 0000
0202 0204 0406 0af1 0000 0003 0418 6000
1161 8000 0001 0102 0000 8080 8000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0808 0808 0008 0808 8000 0000 0000 0000
0908 0808 0008 0808 8000 0000 0000 0000
0000 0000 0000 0400 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0002
0100 0000 0000 0000 0080 805f 4020 2020
@ -50,13 +50,229 @@ fafa 9204 f800 0000 1010 2020 2020 2020
0000 0000 0000 0000 0202 0202 0201 0101
0100 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 001f 0000 0000 0000 00f0
0000 0000 0000 0710 0000 0000 0000 c010
0204 0408 1020 0040 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0100 0000 0000 0000
0080 4024 0810 1020 0000 0000 0000 80e0
0000 0000 0000 0008 0001 0204 0840 6040
8000 0000 0000 0106 0005 060c 1060 c040
8000 0000 0000 0106 0005 0608 1060 c040
8000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
504d 4189 99a9 ca04 9c03 0202 0302 0202
0888 7808 e80f 48d8 4041 3e20 20a0 2020
7c84 0402 0202 0202 2020 6090 1090 c8a8
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0101 0000 0000 0000
292a 0a04 0000 0000 20a0 6000 0000 0000
0101 0000 0000 0000 9800 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0304 0808 0000 0000 0080 8080
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0030 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0001 0102 0202
0070 8808 0804 0404 0000 0000 0000 0000
1010 1020 2040 4040 4040 4020 2020 2020
0000 0000 0000 0000 0000 0001 0202 0404
4888 8404 0402 0202 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0202 0202 0101 0101
0404 0202 0302 0202 0000 0000 0002 8cb0
4080 8080 8000 0080 2020 1f10 1010 1010
0000 f807 0000 0000 0808 1890 7020 2020
0202 0202 0202 0202 0000 0000 0000 0000
0000 0000 0000 0611 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
8281 4141 2010 0806 4040 2010 0884 4420
8040 2010 0000 0000 0020 0000 0000 0000
0000 0000 0000 0000 2020 1010 0800 0000
0202 0204 0406 0af1 0000 0304 1820 4000
6180 0000 0101 0204 0080 8080 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0908 0808 0008 0808 8000 0000 0000 0000
0000 0000 0000 0400 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0002
0100 0000 0000 0000 0080 835c 4020 2020
1860 8000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0808 0808 0808 0808 0000 0001 0000 0f09
0000 00f0 0000 fe12 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0100 0704
0000 0000 f800 fe92 2010 1010 1010 1010
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0004 0a0a 1404
0804 0404 0404 0404 0b0b 0907 0001 0000
fafb 12fc 00d0 0000 00ff 0000 0000 0000
00ff 0000 0000 0000 05fd 0700 0100 0000
fafa fe00 7800 0000 1010 2020 2020 2020
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 2422 0232 0118 0002
0404 1c62 0202 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0102 4040 4040 8080 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0202 0202 0201 0101
0100 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0710 0000 0000 0000 c010
0204 0408 1020 0040 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0100 0000 0000 0000
0080 4024 0810 1020 0000 0000 0000 80e0
0000 0000 0000 0008 0001 0204 0840 6040
8000 0000 0000 0106 0005 0608 1060 c040
8000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
504d 4189 99a9 ca04 9c03 0202 0302 0202
0888 7808 e80f 48d8 4041 3e20 20a0 2020
7c84 0402 0202 0202 2020 6090 1090 c8a8
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0101 0000 0000 0000
292a 0a04 0000 0000 20a0 6000 0000 0000
0101 0000 0000 0000 9800 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0304 0808 0000 0000 0080 8080
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0030 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0001 0101
0038 4484 8402 0202 0000 0000 0000 0000
1010 1020 2040 4040 4040 4020 2020 2020
0000 0000 0000 0000 0000 0001 0202 0404
4888 8404 0402 0202 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0101 0101 0000 0000
0202 0101 8181 8181 0000 0000 8002 4c70
4080 8080 8000 0080 2020 1f10 1010 1010
0000 f807 0000 0000 0808 1890 7020 2020
0202 0202 0202 0202 0000 0000 0000 0000
0000 0000 0000 0006 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
4140 2020 1008 0406 20a0 9088 0844 4420
8040 2010 0000 0000 0020 0000 0000 0000
0000 0000 0000 0000 2020 1010 0800 0000
0202 0204 0406 0af1 0000 0003 0418 6000
1161 8000 0001 0102 0000 8080 8000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0908 0808 0008 0808 8000 0000 0000 0000
0000 0000 0000 0400 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0002
0100 0000 0000 0000 0080 805f 4020 2020
0418 e000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0808 0808 0808 0808 0000 0001 0000 0000
0000 00f0 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0100 0000
0000 0000 f800 0000 2010 1010 1010 1010
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0001 0205 0902
0804 0404 8404 0404 0008 0700 0001 0000
0001 fe00 00d0 0000 00ff 0000 0000 0000
00ff 0000 0000 0000 00f8 0300 0100 0000
0002 fc00 7800 0000 1010 2020 2020 2020
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 1212 0119 010c 0002
0404 1c62 0202 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0102 4040 4040 8080 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0202 0202 0201 0101
0100 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0710 0000 0000 0000 c010
0204 0408 1020 0040 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0100 0000 0000 0000
0080 4024 0810 1020 0000 0000 0000 80e0
0000 0000 0000 0008 0001 0204 0840 6040
8000 0000 0000 0106 0005 0608 1060 c040
8000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
504d 4189 99a9 ca04 9c03 0202 0302 0202
0888 7808 e80f 48d8 4041 3e20 20a0 2020
7c84 0402 0202 0202 2020 6090 1090 c8a8
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0101 0000 0000 0000
292a 0a04 0000 0000 20a0 6000 0000 0000
0101 0000 0000 0000 9800 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0304 0808 0000 0000 0080 8080
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0030 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0001 0101
0038 4484 8402 0202 0000 0000 0000 0000
1010 1020 2040 4040 4040 4020 2020 2020
0000 0000 0000 0000 0000 0001 0202 0404
4888 8404 0402 0202 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0101 0101 0000 0000
0202 0101 8181 8181 0000 0000 8002 4c70
4080 8080 8000 0080 2020 1f10 1010 1010
0000 f807 0000 0000 0808 1890 7020 2020
0202 0202 0202 0202 0000 0000 0000 0000
0000 0000 0000 0006 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
4140 2020 1008 0406 20a0 9088 0844 4420
8040 2010 0000 0000 0020 0000 0000 0000
0000 0000 0000 0000 2020 1010 0800 0000
0202 0204 0406 0af1 0000 0003 0418 6000
1161 8000 0001 0102 0000 8080 8000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0908 0808 0008 0808 8000 0000 0000 0000
0000 0000 0000 0400 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0002
0100 0000 0000 0000 0080 805f 4020 2020
0418 e000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0808 0808 0808 0808 0000 0001 0204 0809
0000 00f0 0804 0212 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0102 0004
0000 0000 f804 0292 2010 1010 1010 1010
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0004 0a0a 1204
0804 0404 0404 0404 0b0b 0904 0201 0000
fafb 1204 08f0 0000 00ff 0000 0000 0000
00ff 0000 0000 0000 05fd 0402 0100 0000
fafa 9204 f800 0000 1010 2020 2020 2020
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 2424 0232 0118 0002
0404 1c62 0202 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0102 4040 4040 8080 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0202 0202 0201 0101
0100 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0710 0000 0000 0000 c010
0204 0408 1020 0040 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0100 0000 0000 0000
0080 4024 0810 1020 0000 0000 0000 80e0
0000 0000 0000 0008 0001 0204 0840 6040
8000 0000 0000 0106 0005 0608 1060 c040
8000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

View file

@ -11,21 +11,23 @@
%++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 }
%<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
%MOD { DIVk MUL SUB }
%DEC { #01 - }
%RTN { JMP2r }
%TOS { #00 SWP }
%SWP? { #01 JCN SWP }
%BRK? { #01 JCN BRK }
%RTN? { #01 JCN RTN }
%DEBUG { ;print-hex/byte JSR2 #0a .Console/write DEO }
%DEBUG2 { ;print-hex/short JSR2 #0a .Console/write DEO }
%HEX-CHAR { DUP #09 GTH #04 JCN #30 + RTN #57 + }
( 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
@ -35,12 +37,11 @@
|0000
@input $30
@second $1
@pointer
&x $2 &y $2
@browser
&x $2 &y $2
&x $2 &y $2 &sel $1
( init )
@ -56,6 +57,12 @@
;on-button .Controller/vector DEO2
;on-mouse .Mouse/vector DEO2
( setup synth )
#0110 .Audio0/adsr DEO2
;sin-pcm .Audio0/addr DEO2
#0100 .Audio0/length DEO2
#dd .Audio0/volume DEO ( TODO: turn ON )
( place )
#0080 .browser/x STZ2
#0010 .browser/y STZ2
@ -63,12 +70,7 @@
( draw mascot )
#0010 #0010 #0060 #0060 ;mascot-icn #01 ;draw-icn JSR2
( load directory )
;dir/path .File/name DEO2
#1000 .File/length DEO2
;dir/data .File/load DEO2
;dir/data #07 ;draw-browser JSR2
;read-dir JSR2
( theme support )
;load-theme JSR2
@ -104,10 +106,47 @@ BRK
@on-button ( -> )
.Controller/key DEI BRK?
.Controller/button DEI
DUP #10 ! ,&no-up JCN
#01 .browser/sel LDZ GTHk SWP? POP DEC ;select-file JSR2
&no-up
DUP #20 ! ,&no-down JCN
.browser/sel LDZ ;dir/lines LDA LTHk SWP? POP INC ;select-file JSR2
&no-down
POP
BRK
@read-dir ( -- )
;dir/path .File/name DEO2
#1000 .File/length DEO2
;dir/data .File/read DEO2
( count lines )
LITr 00
;dir/data
&while
LDAk #0a ! ,&no-lb JCN
INCr
&no-lb
INC2 LDAk ,&while JCN
POP2
STHr #02 - ;dir/lines STA
;draw-browser JSR2
RTN
@select-file ( id -- )
DUP
.browser/sel STZ
#40 + .Audio0/pitch DEO
;draw-browser JSR2
RTN
@redraw ( -- )
RTN
@ -119,23 +158,24 @@ BRK
RTN
@draw-browser ( x* y* addr* color -- )
@draw-browser ( -- )
STH STH2
( line counter ) #00 STH
.browser/x LDZ2 .Screen/x DEO2
.browser/y LDZ2 .Screen/y DEO2
STH2r
;dir/data
&loop
LDAk #0a ! ,&no-lb JCN
#0080 .Screen/x DEO2
.Screen/y DEI2 #0010 ++ .Screen/y DEO2
( incr line counter ) INCr
,&skip JMP
&no-lb
( top-addr ) LDAk #20 - TOS #0010 MUL2 ;font ++ .Screen/addr DEO2
( top-draw ) STHkr .Screen/sprite DEO
( top-draw ) #01 [ .browser/sel LDZ STHkr = #0c * + ] .Screen/sprite DEO
( bottom-addr ) .Screen/addr DEI2 #0008 ++ .Screen/addr DEO2
( next-y ) .Screen/y DEI2 #0008 ++ .Screen/y DEO2
( bottom-draw ) STHkr .Screen/sprite DEO
( bottom-draw ) #01 [ .browser/sel LDZ STHkr = #0c * + ] .Screen/sprite DEO
( prev-y ) .Screen/y DEI2 #0008 -- .Screen/y DEO2
( move ) .Screen/x DEI2 #0008 ++ .Screen/x DEO2
&skip
@ -177,17 +217,7 @@ RTN
@hex-char ( hex -- char )
HEX-CHAR
RTN
@draw-cursor ( color -- )
STH
;cursor-icn .Screen/addr DEO2
STHkr .Screen/sprite DEO
.Screen/y DEI2 #0008 ++ .Screen/y DEO2
STHr .Screen/sprite DEO
DUP #09 GTH #04 JCN #30 + RTN #57 +
RTN
@ -285,6 +315,24 @@ RTN
@cursor-icn
ffff ffff ffff ffff
@sin-pcm
8083 8689 8c8f 9295 989b 9ea1 a4a7 aaad
b0b3 b6b9 bbbe c1c3 c6c9 cbce d0d2 d5d7
d9db dee0 e2e4 e6e7 e9eb ecee f0f1 f2f4
f5f6 f7f8 f9fa fbfb fcfd fdfe fefe fefe
fffe fefe fefe fdfd fcfb fbfa f9f8 f7f6
f5f4 f2f1 f0ee eceb e9e7 e6e4 e2e0 dedb
d9d7 d5d2 d0ce cbc9 c6c3 c1be bbb9 b6b3
b0ad aaa7 a4a1 9e9b 9895 928f 8c89 8683
807d 7a77 7471 6e6b 6865 625f 5c59 5653
504d 4a47 4542 3f3d 3a37 3532 302e 2b29
2725 2220 1e1c 1a19 1715 1412 100f 0e0c
0b0a 0908 0706 0505 0403 0302 0202 0202
0102 0202 0202 0303 0405 0506 0708 090a
0b0c 0e0f 1012 1415 1719 1a1c 1e20 2225
2729 2b2e 3032 3537 3a3d 3f42 4547 4a4d
5053 5659 5c5f 6265 686b 6e71 7477 7a7d
include projects/library/load-rom.tal
include projects/assets/logo05x05.tal
@ -293,4 +341,5 @@ include projects/assets/msx01x02.tal
@dir
&path ". $1
&lines $1
&data