Browse code

FillRect

neauoire authored on 11/02/2021 21:56:27
Showing 1 changed files
... ...
@@ -3,19 +3,13 @@
3 3
 :dev/r fff8 ( std read port )
4 4
 :dev/w fff9 ( std write port )
5 5
 
6
-;x_ 2 ;y_ 2
7
-
8
-;x 2 ;y 2 ;w 2 ;h 2
9
-;color 1
6
+;x_ 2 ;y_ 2 ;x 2 ;y 2 ;w 2 ;h 2 ;color 1
10 7
 
11 8
 |0100 @RESET
12 9
 
13 10
 	( set dev/write to screen ) 
14 11
 	,01 ,dev/w STR 
15 12
 
16
-	( set color 1 )
17
-	,03 ,color STR
18
-
19 13
 	,01 ,color STR
20 14
 	( fill rect x y w h )
21 15
 	,0020 ,0020 ,0060 ,0040 ,fillrect JSR
... ...
@@ -28,10 +22,28 @@
28 22
 	( fill rect x y w h )
29 23
 	,0040 ,0040 ,0060 ,0040 ,fillrect JSR
30 24
 
25
+
26
+	,01 ,color STR
27
+	( fill rect x y w h )
28
+	,00a0 ,0010 ,0020 ,0020 ,fillrect JSR
29
+
31 30
 	,redraw JSR
32 31
 
33 32
 BRK
34 33
 
34
+@fillrect
35
+	,h STR^ ,w STR^ ,y STR^ ,x STR^
36
+	,x LDR^ ,x_ STR^ ,y LDR^ ,y_ STR^
37
+	@fillrectrow
38
+		,x LDR^ ,x_ STR^
39
+		@fillrectcol
40
+			,x_ LDR^ ,y_ LDR^ ,putpixel JSR
41
+			,x_ LDR^ ,0001 ADD^ ,x_ STR^ 
42
+			,x_ LDR^ ,w LDR^ ,x LDR^ ADD^ LTH^ ,fillrectcol ROT JMP? POP^
43
+		,y_ LDR^ ,0001 ADD^ ,y_ STR^ 
44
+		,y_ LDR^ ,h LDR^ ,y LDR^ ADD^ LTH^ ,fillrectrow ROT JMP? POP^
45
+	RTS
46
+
35 47
 @redraw
36 48
 	,0000 IOW^
37 49
 	,0000 IOW^
... ...
@@ -46,34 +58,6 @@ BRK
46 58
 	,00 IOW  ( redraw byte )
47 59
 	RTS
48 60
 
49
-@fillrect
50
-	( store shape )
51
-	,h STR^ ,w STR^ ,y STR^ ,x STR^
52
-	( set head )
53
-	,x LDR^ ,x_ STR^ ,y LDR^ ,y_ STR^
54
-	( paint row )
55
-	,fillrectrow JSR
56
-	RTS
57
-
58
-@fillrectcol
59
-	,x_ LDR^ ,y_ LDR^ ,putpixel JSR
60
-	( incr x )
61
-	,x_ LDR^ ,0001 ADD^ ,x_ STR^ 
62
-	( check if greater than w )
63
-	,x_ LDR^ ,w LDR^ ,x LDR^ ADD^ GTH^ RTS?
64
-	,fillrectcol JMP
65
-	RTS
66
-
67
-@fillrectrow
68
-	,x LDR^ ,x_ STR^
69
-	,fillrectcol JSR
70
-	( incr x )
71
-	,y_ LDR^ ,0001 ADD^ ,y_ STR^ 
72
-	( check if greater than w )
73
-	,y_ LDR^ ,h LDR^ ,y LDR^ ADD^ GTH^ RTS?
74
-	,fillrectrow JMP
75
-	RTS
76
-
77 61
 |c000 @FRAME BRK 
78 62
 |d000 @ERROR BRK 
79 63
 |FFFA .RESET .FRAME .ERROR