Compare commits

..

2 commits

Author SHA1 Message Date
f57ba57e50 add draw-v-line 2025-06-29 21:50:33 +02:00
d4999d2dec get draw-h-line working 2025-06-29 20:43:26 +02:00
2 changed files with 81 additions and 31 deletions

View file

@ -9,48 +9,64 @@
(to run gui: `./run_ui.sh one_line_canvas.tal`) (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`) (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 } %dbug { #01 .System/debug DEO }
%PX { #01 .Screen/pixel DEO }
|0100 |0100
@on-reset @on-reset
setup-gui setup-gui
draw-canvas-bounds #58 #58 #1f draw-h-line
#58 #58 #1f #02 MUL draw-h-line
#1f #58 #1f draw-v-line
#1f #02 #58 MUL #1f draw-v-line
BRK BRK
@draw-line @draw-v-line ( l x y )
(change x,y to top left of canvas) SWP ( l y x )
LIT2 00 -canvas-width .Screen/x DEO2 #00 ( l y x 00 )
LIT2 00 -canvas-height .Screen/y DEO2 SWP .Screen/x DEO2 ( l y )
( store vars )
&x $1 !{ &y $1 &l $1 }
(set x to 88) ,/y STR ,/l STR
#58 ,&x STR
(#00 ,&i STR)
&loop &loop
#00 LIT &x $1 .Screen/x DEO2 ( set y )
LIT &x $1 ,/y LDR DUP ( y y )
INC #00 SWP ( y 00 y)
,&x STRk .Screen/y DEO2 ( y )
( draw pixel )
PX
( incrment y )
INC ( y+1 )
,/y STR ( )
( decrement l )
,/l LDR #01 ( l 01 )
SUB ( l-1 )
,/l STRk POP ( l )
#00 NEQ ?&loop
JMP2r
EQUk ?&loop @draw-h-line ( l x y )
#00 ( l x y 00 )
SWP .Screen/y DEO2 ( l x )
( store vars )
!{ &x $1 &l $1 }
,/x STR ,/l STR
(
,&top-left-x STR
dbug
&loop &loop
LIT -width ( set x )
(00 58) ,/x LDR DUP ( x x )
ADDk (00 58 58) #00 SWP ( x 00 x)
#00 .Screen/x DEO2 (0058 00B0) .Screen/x DEO2 ( x )
#01 .Screen/pixel DEO ( draw pixel )
INC2 (0059 00B0) PX
EQUk ?&loop ( incrment x )
POP2 POP2) INC ( x+1 )
,/x STR ( )
( decrement l )
,/l LDR #01 ( l 01 )
SUB ( l-1 )
,/l STRk POP ( l )
#00 NEQ ?&loop
JMP2r JMP2r
@setup-gui ( -- ) @setup-gui ( -- )

View file

@ -0,0 +1,34 @@
|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
|0100
@on-reset
#02 #04 SUB
( mem-test )
BRK
@mem-test ( a b c -- x)
!{
&a $1
&b $1
&c $1
}
,/a STR
,/b STR
,/c STR
,/a LDR
,/b LDR
ADD
,/c LDR
ADD ( 06 )
STH
#00 STH
SWP2r
JMP2r
( !{ &a $1 } )