uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit f22e6b383716e34662cf60495cbc8275ba88d801
parent 48d4289671ba1b97da5efc50fdee795873f1fed5
Author: neauoire <aliceffekt@gmail.com>
Date:   Thu, 11 Feb 2021 13:56:27 -0800

FillRect

Diffstat:
Mexamples/draw.usm | 54+++++++++++++++++++-----------------------------------
1 file changed, 19 insertions(+), 35 deletions(-)

diff --git a/examples/draw.usm b/examples/draw.usm @@ -3,19 +3,13 @@ :dev/r fff8 ( std read port ) :dev/w fff9 ( std write port ) -;x_ 2 ;y_ 2 - -;x 2 ;y 2 ;w 2 ;h 2 -;color 1 +;x_ 2 ;y_ 2 ;x 2 ;y 2 ;w 2 ;h 2 ;color 1 |0100 @RESET ( set dev/write to screen ) ,01 ,dev/w STR - ( set color 1 ) - ,03 ,color STR - ,01 ,color STR ( fill rect x y w h ) ,0020 ,0020 ,0060 ,0040 ,fillrect JSR @@ -28,10 +22,28 @@ ( fill rect x y w h ) ,0040 ,0040 ,0060 ,0040 ,fillrect JSR + + ,01 ,color STR + ( fill rect x y w h ) + ,00a0 ,0010 ,0020 ,0020 ,fillrect JSR + ,redraw JSR BRK +@fillrect + ,h STR^ ,w STR^ ,y STR^ ,x STR^ + ,x LDR^ ,x_ STR^ ,y LDR^ ,y_ STR^ + @fillrectrow + ,x LDR^ ,x_ STR^ + @fillrectcol + ,x_ LDR^ ,y_ LDR^ ,putpixel JSR + ,x_ LDR^ ,0001 ADD^ ,x_ STR^ + ,x_ LDR^ ,w LDR^ ,x LDR^ ADD^ LTH^ ,fillrectcol ROT JMP? POP^ + ,y_ LDR^ ,0001 ADD^ ,y_ STR^ + ,y_ LDR^ ,h LDR^ ,y LDR^ ADD^ LTH^ ,fillrectrow ROT JMP? POP^ + RTS + @redraw ,0000 IOW^ ,0000 IOW^ @@ -46,34 +58,6 @@ BRK ,00 IOW ( redraw byte ) RTS -@fillrect - ( store shape ) - ,h STR^ ,w STR^ ,y STR^ ,x STR^ - ( set head ) - ,x LDR^ ,x_ STR^ ,y LDR^ ,y_ STR^ - ( paint row ) - ,fillrectrow JSR - RTS - -@fillrectcol - ,x_ LDR^ ,y_ LDR^ ,putpixel JSR - ( incr x ) - ,x_ LDR^ ,0001 ADD^ ,x_ STR^ - ( check if greater than w ) - ,x_ LDR^ ,w LDR^ ,x LDR^ ADD^ GTH^ RTS? - ,fillrectcol JMP - RTS - -@fillrectrow - ,x LDR^ ,x_ STR^ - ,fillrectcol JSR - ( incr x ) - ,y_ LDR^ ,0001 ADD^ ,y_ STR^ - ( check if greater than w ) - ,y_ LDR^ ,h LDR^ ,y LDR^ ADD^ GTH^ RTS? - ,fillrectrow JMP - RTS - |c000 @FRAME BRK |d000 @ERROR BRK |FFFA .RESET .FRAME .ERROR