trying to list cartridges, fixed an errant MAX_USERS where it wasn't welcome
This commit is contained in:
parent
11bfceb327
commit
c586296139
5 changed files with 93 additions and 14 deletions
|
@ -4,7 +4,7 @@ typedef struct Atom Atom;
|
||||||
|
|
||||||
struct Atom {
|
struct Atom {
|
||||||
char name[16];
|
char name[16];
|
||||||
char value[MAX_USERS];
|
char value[64];
|
||||||
Atom* next;
|
Atom* next;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
5
uxn-client/build.sh
Executable file
5
uxn-client/build.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
rm xrxs.rom 2>/dev/null
|
||||||
|
uxnasm xrxs.tal xrxs.rom
|
||||||
|
uxnemu xrxs.rom
|
18
uxn-client/cart_select_notes.md
Normal file
18
uxn-client/cart_select_notes.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# how to render lists
|
||||||
|
|
||||||
|
1. start at top of list area
|
||||||
|
2. seek until ;list-offset \n have been read
|
||||||
|
3. drawstr until \n (if y index is hihglihgt index, draw highlighted)
|
||||||
|
4. increment y and reset x
|
||||||
|
5. if y > height/8 - 80, break
|
||||||
|
|
||||||
|
# how to highlight list elements
|
||||||
|
|
||||||
|
1. if .Mouse/x > 64 && < width - 64 && .Mouse/y > 40 && < height - 40
|
||||||
|
2. index = ((.Mouse/y - 40)/8) + ;list-offset
|
||||||
|
|
||||||
|
# on click
|
||||||
|
|
||||||
|
1. take highlight index
|
||||||
|
2. seek listbuf until as many \n have been read
|
||||||
|
3. read until next \n into loadcmdbuf + len(load )
|
6
uxn-client/n/carts
Normal file
6
uxn-client/n/carts
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
nasu
|
||||||
|
dexe
|
||||||
|
noodle
|
||||||
|
orca
|
||||||
|
left
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|60 @Audio3 [ &vector $2 &position $2 &output $1 &pad $3 &adsr $2 &length $2 &addr $2 &volume $1 &pitch $1 ]
|
|60 @Audio3 [ &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 ]
|
|80 @Controller [ &vector $2 &button $1 &key $1 ]
|
||||||
|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ]
|
|90 @Mouse [ &vector $2 &x $2 &y $2 &state $1 &wheel $1 ]
|
||||||
|a0 @File [ &vector $2 &success $2 &offset $2 &pad $2 &name $2 &length $2 &load $2 &save $2 ]
|
|a0 @File [ &vector $2 &success $2 &offset-hs $2 &offset-ls $2 &name $2 &length $2 &load $2 &save $2 ]
|
||||||
|b0 @DateTime [ &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
|
|b0 @DateTime [ &year $2 &month $1 &day $1 &hour $1 &minute $1 &second $1 &dotw $1 &doty $2 &isdst $1 ]
|
||||||
|
|
||||||
( variables )
|
( variables )
|
||||||
|
@ -45,6 +45,9 @@
|
||||||
&y $2
|
&y $2
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@list-offset $1
|
||||||
|
@list-elem $32
|
||||||
|
|
||||||
@cart $32
|
@cart $32
|
||||||
@realm $32
|
@realm $32
|
||||||
|
|
||||||
|
@ -58,20 +61,23 @@
|
||||||
#02cd .System/g DEO2
|
#02cd .System/g DEO2
|
||||||
#02cb .System/b DEO2
|
#02cb .System/b DEO2
|
||||||
|
|
||||||
|
( load uxn and xrxs logos from main spritesheet )
|
||||||
;spritesheet .File/name DEO2
|
;spritesheet .File/name DEO2
|
||||||
#0100 .File/length DEO2
|
#0100 .File/length DEO2
|
||||||
|
|
||||||
#0000 .File/offset DEO2
|
#0000 .File/offset-ls DEO2
|
||||||
;uxnlogo .File/load DEO2
|
;uxnlogo .File/load DEO2
|
||||||
|
|
||||||
#0200 .File/offset DEO2
|
#0200 .File/offset-ls DEO2
|
||||||
;xrxslogo .File/load DEO2
|
;xrxslogo .File/load DEO2
|
||||||
|
|
||||||
|
( load zz font )
|
||||||
;fontsheet .File/name DEO2
|
;fontsheet .File/name DEO2
|
||||||
#0000 .File/offset DEO2
|
#0000 .File/offset-ls DEO2
|
||||||
#0300 .File/length DEO2
|
#0300 .File/length DEO2
|
||||||
;font .File/load DEO2
|
;font .File/load DEO2
|
||||||
|
|
||||||
|
( initialize state )
|
||||||
#00 .ticker STZ
|
#00 .ticker STZ
|
||||||
#00 .state STZ
|
#00 .state STZ
|
||||||
#20 .anim-speed STZ
|
#20 .anim-speed STZ
|
||||||
|
@ -126,11 +132,14 @@ BRK
|
||||||
;draw-xrxs-logo-xr JSR2
|
;draw-xrxs-logo-xr JSR2
|
||||||
;draw-xrxs-logo-xs JSR2
|
;draw-xrxs-logo-xs JSR2
|
||||||
.logo-coords/x LDZ2 #0020 GTH2 ,&keep-state JCN
|
.logo-coords/x LDZ2 #0020 GTH2 ,&keep-state JCN
|
||||||
|
;cartlist .File/name DEO2
|
||||||
|
#2000 .File/length DEO2
|
||||||
|
;listbuf .File/load DEO2
|
||||||
#01 ADD .state STZ BRK
|
#01 ADD .state STZ BRK
|
||||||
&keep-state POP
|
&keep-state POP
|
||||||
BRK
|
BRK
|
||||||
|
|
||||||
( render the logo and window decorations )
|
( render the cartridge list interface )
|
||||||
&state4 DUP #04 NEQ ,&state5 JCN
|
&state4 DUP #04 NEQ ,&state5 JCN
|
||||||
;draw-gray-borders JSR2
|
;draw-gray-borders JSR2
|
||||||
;draw-bl-scanlines JSR2
|
;draw-bl-scanlines JSR2
|
||||||
|
@ -144,6 +153,7 @@ BRK
|
||||||
CENTER-X OVR2 ;strlen JSR2 #20 SFT2 SUB2
|
CENTER-X OVR2 ;strlen JSR2 #20 SFT2 SUB2
|
||||||
#0010
|
#0010
|
||||||
#02 ] ;draw-string JSR2
|
#02 ] ;draw-string JSR2
|
||||||
|
;render-cart-list JSR2
|
||||||
;draw-pointer JSR2
|
;draw-pointer JSR2
|
||||||
POP
|
POP
|
||||||
BRK
|
BRK
|
||||||
|
@ -370,6 +380,16 @@ RTN
|
||||||
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
|
@draw-char ( char x y color -- )
|
||||||
|
|
||||||
|
STH ( save color )
|
||||||
|
.Screen/y DEO2 ( set y )
|
||||||
|
.Screen/x DEO2 ( set x )
|
||||||
|
|
||||||
|
#20 MUL SUB TOS 8** ;font ADD2 .Screen/addr DEO2
|
||||||
|
STHr .Screen/sprite DEO
|
||||||
|
RTN
|
||||||
|
|
||||||
@strlen ( addr -- len )
|
@strlen ( addr -- len )
|
||||||
|
|
||||||
DUP2
|
DUP2
|
||||||
|
@ -379,6 +399,33 @@ RTN
|
||||||
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
|
@render-cart-list ( -> )
|
||||||
|
|
||||||
|
#0040 .Screen/x DEO2
|
||||||
|
#0028 .Screen/y DEO2
|
||||||
|
|
||||||
|
&lines $1
|
||||||
|
,&lines #00 STZ
|
||||||
|
|
||||||
|
#2000 #0000 &while EQU2k ,&end JCN
|
||||||
|
DUP2 ;listbuf ADD2 LDA ( get a character from the list )
|
||||||
|
DUP #00 NEQ ,&terminate JCN
|
||||||
|
DUP #0a NEQk ,&no-inc-line JCN
|
||||||
|
[ ( char )
|
||||||
|
.Screen/x DEI2
|
||||||
|
.Screen/y DEI2
|
||||||
|
#02 ] ;draw-char JSR2
|
||||||
|
,&lines LDR INC ,&lines STR
|
||||||
|
INC-Y
|
||||||
|
#0040 .Screen/x DEO2
|
||||||
|
&no-inc-line INC-X
|
||||||
|
OVR EQU ,&no-store-char JCN
|
||||||
|
OVR2 ;list-elem ADD2k OVR2 NIP2 NIP STZk
|
||||||
|
&no-store-char
|
||||||
|
INC2 ,&while JMP &end POP2 POP2 RTN
|
||||||
|
&terminate POP2 POP2 POP2
|
||||||
|
RTN
|
||||||
|
|
||||||
( constants )
|
( constants )
|
||||||
@spritesheet "xrxs.chr 00
|
@spritesheet "xrxs.chr 00
|
||||||
@fontsheet "zz.chr 00
|
@fontsheet "zz.chr 00
|
||||||
|
@ -392,3 +439,6 @@ RTN
|
||||||
@pointer_icn [ 80c0 e0f0 f8e0 1000 ]
|
@pointer_icn [ 80c0 e0f0 f8e0 1000 ]
|
||||||
@font $768
|
@font $768
|
||||||
|
|
||||||
|
( big data )
|
||||||
|
@listbuf $8192
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue