64 lines
1.4 KiB
Tal
64 lines
1.4 KiB
Tal
|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1
|
|
|10 @Console &vector $2 &read $1 &pad $4 &type $1 &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
|
|
|
|
|
|
|58 @canvas-width
|
|
|1f @canvas-height
|
|
|
|
(to run gui: `./run_ui.sh one_line_canvas.tal`)
|
|
(to run debugger: `../uxn/bin/uxnasm one_line_canvas.tal one_line_canvas.rom && ../uxn/bin/uxnemu ../beetbug.rom ./one_line_canvas.rom`)
|
|
%dbug { #01 .System/debug DEO }
|
|
|
|
|0100
|
|
@on-reset
|
|
setup-gui
|
|
draw-canvas-bounds
|
|
BRK
|
|
|
|
@draw-canvas-bounds
|
|
(change x,y to top left of canvas)
|
|
LIT2 00 -canvas-width .Screen/x DEO2
|
|
LIT2 00 -canvas-height .Screen/y DEO2
|
|
|
|
&x $1
|
|
(set x to 88)
|
|
#58 ,&x STR
|
|
(#00 ,&i STR)
|
|
|
|
&loop
|
|
#00 LIT &x $1 .Screen/x DEO2
|
|
LIT &x $1
|
|
INC
|
|
,&x STRk
|
|
|
|
EQUk ?&loop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(
|
|
,&top-left-x STR
|
|
dbug
|
|
&loop
|
|
LIT -width
|
|
(00 58)
|
|
ADDk (00 58 58)
|
|
#00 .Screen/x DEO2 (0058 00B0)
|
|
#01 .Screen/pixel DEO
|
|
INC2 (0059 00B0)
|
|
EQUk ?&loop
|
|
POP2 POP2)
|
|
JMP2r
|
|
|
|
@setup-gui ( -- )
|
|
(set screen height and width the 3x canvas size)
|
|
LIT2 =canvas-width #0003 MUL2 .Screen/width DEO2
|
|
LIT2 =canvas-height #0003 MUL2 .Screen/height DEO2
|
|
(set basic color scheme)
|
|
#f07f .System/r DEO2
|
|
#f0d6 .System/g DEO2
|
|
#f0b2 .System/b DEO2
|
|
JMP2r
|