get draw-h-line working

This commit is contained in:
Travis Shears 2025-06-29 13:44:44 +02:00
parent d44f6ede1d
commit d4999d2dec
2 changed files with 57 additions and 34 deletions

View file

@ -9,48 +9,37 @@
(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 }
%PX { #01 .Screen/pixel DEO }
|0100
@on-reset
setup-gui
draw-canvas-bounds
#58 #58 #1f draw-h-line
#58 #58 #1f #02 MUL draw-h-line
BRK
@draw-line
(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)
@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
&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)
( set x )
,/x LDR DUP ( x x )
#00 SWP ( x 00 x)
.Screen/x DEO2 ( x )
( draw pixel )
PX
( incrment x )
INC ( x+1 )
,/x STR ( )
( decrement l )
,/l LDR #01 ( l 01 )
SUB ( l-1 )
,/l STRk POP ( l )
#00 NEQ ?&loop
JMP2r
@setup-gui ( -- )