From f57ba57e50573d8aee7ef3bc6496a1fc3a0dd586 Mon Sep 17 00:00:00 2001 From: Travis Shears Date: Sun, 29 Jun 2025 21:48:16 +0200 Subject: [PATCH] add draw-v-line --- one_line_canvas.tal | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/one_line_canvas.tal b/one_line_canvas.tal index 6972f5b..19dbf36 100644 --- a/one_line_canvas.tal +++ b/one_line_canvas.tal @@ -16,8 +16,35 @@ setup-gui #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 +@draw-v-line ( l x y ) + SWP ( l y x ) + #00 ( l y x 00 ) + SWP .Screen/x DEO2 ( l y ) + ( store vars ) + !{ &y $1 &l $1 } + ,/y STR ,/l STR + + &loop + ( set y ) + ,/y LDR DUP ( y y ) + #00 SWP ( y 00 y) + .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 + @draw-h-line ( l x y ) #00 ( l x y 00 ) SWP .Screen/y DEO2 ( l x )