... | ... |
@@ -551,23 +551,28 @@ RTN |
551 | 551 |
|
552 | 552 |
@line-rect ( x1* y1* x2* y2* color -- ) |
553 | 553 |
|
554 |
- ( load ) .color STZ STH2k .rect/y2 STZ2 .rect/x2 STZ2 STH2k .rect/y1 STZ2 .rect/x1 STZ2 |
|
555 |
- STH2r INC2 STH2r |
|
556 |
- &ver |
|
557 |
- ( save ) OVR2 .Screen/y DEO2 |
|
558 |
- ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO |
|
559 |
- ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO |
|
560 |
- ( incr ) SWP2 INC2 SWP2 |
|
561 |
- OVR2 OVR2 LTS2 ,&ver JCN |
|
562 |
- POP2 POP2 |
|
563 |
- .rect/x1 LDZ2 INC2 .rect/x2 LDZ2 #0001 -- |
|
554 |
+ STH |
|
555 |
+ DUP2 ,&ver-y2 STR2 ,&hor-y2 STR2 |
|
556 |
+ DUP2 ,&ver-x2 STR2 ,&hor-x2 STR2 |
|
557 |
+ DUP2 ,&ver-y1 STR2 ,&hor-y1 STR2 |
|
558 |
+ DUP2 ,&ver-x1 STR2 ,&hor-x1 STR2 |
|
559 |
+ ( horizontal ) |
|
560 |
+ [ LIT2 &hor-x2 $2 ] INC2 [ LIT2 &hor-x1 $2 ] |
|
564 | 561 |
&hor |
565 |
- ( save ) OVR2 .Screen/x DEO2 |
|
566 |
- ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO |
|
567 |
- ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO |
|
568 |
- ( incr ) SWP2 INC2 SWP2 |
|
569 |
- OVR2 OVR2 INC2 LTS2 ,&hor JCN |
|
562 |
+ DUP2 .Screen/x DEO2 |
|
563 |
+ [ LIT2 &hor-y1 $2 ] .Screen/y DEO2 STHkr .Screen/pixel DEOk |
|
564 |
+ [ LIT2 &hor-y2 $2 ] .Screen/y DEO2 DEO |
|
565 |
+ INC2 GTH2k ,&hor JCN |
|
570 | 566 |
POP2 POP2 |
567 |
+ ( vertical ) |
|
568 |
+ [ LIT2 &ver-y2 $2 ] [ LIT2 &ver-y1 $2 ] |
|
569 |
+ &ver |
|
570 |
+ DUP2 .Screen/y DEO2 |
|
571 |
+ [ LIT2 &ver-x1 $2 ] .Screen/x DEO2 STHkr .Screen/pixel DEOk |
|
572 |
+ [ LIT2 &ver-x2 $2 ] .Screen/x DEO2 DEO |
|
573 |
+ INC2 GTH2k ,&ver JCN |
|
574 |
+ POP2 POP2 |
|
575 |
+ POPr |
|
571 | 576 |
|
572 | 577 |
RTN |
573 | 578 |
|
... | ... |
@@ -305,18 +305,28 @@ RTN |
305 | 305 |
|
306 | 306 |
@line-rect ( x1* y1* x2* y2* color -- ) |
307 | 307 |
|
308 |
- ( load ) .color STZ .rect/y2 STZ2 .rect/x2 STZ2 DUP2 .Screen/y DEO2 .rect/y1 STZ2 DUP2 .Screen/x DEO2 .rect/x1 STZ2 |
|
308 |
+ STH |
|
309 |
+ DUP2 ,&ver-y2 STR2 ,&hor-y2 STR2 |
|
310 |
+ DUP2 ,&ver-x2 STR2 ,&hor-x2 STR2 |
|
311 |
+ DUP2 ,&ver-y1 STR2 ,&hor-y1 STR2 |
|
312 |
+ DUP2 ,&ver-x1 STR2 ,&hor-x1 STR2 |
|
313 |
+ ( horizontal ) |
|
314 |
+ [ LIT2 &hor-x2 $2 ] INC2 [ LIT2 &hor-x1 $2 ] |
|
309 | 315 |
&hor |
310 |
- ( incr ) .Screen/x DEI2 ++ .Screen/x DEO2 |
|
311 |
- ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
|
312 |
- ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .color LDZ .Screen/pixel DEO |
|
313 |
- .Screen/x DEI2 .rect/x2 LDZ2 LTH2 ,&hor JCN |
|
314 |
- .rect/y1 LDZ2 .Screen/y DEO2 |
|
316 |
+ DUP2 .Screen/x DEO2 |
|
317 |
+ [ LIT2 &hor-y1 $2 ] .Screen/y DEO2 STHkr .Screen/pixel DEOk |
|
318 |
+ [ LIT2 &hor-y2 $2 ] .Screen/y DEO2 DEO |
|
319 |
+ INC2 GTH2k ,&hor JCN |
|
320 |
+ POP2 POP2 |
|
321 |
+ ( vertical ) |
|
322 |
+ [ LIT2 &ver-y2 $2 ] [ LIT2 &ver-y1 $2 ] |
|
315 | 323 |
&ver |
316 |
- ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO |
|
317 |
- ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .color LDZ .Screen/pixel DEO |
|
318 |
- ( incr ) .Screen/y DEI2 ++ .Screen/y DEO2 |
|
319 |
- .Screen/y DEI2 .rect/y2 LDZ2 ++ LTH2 ,&ver JCN |
|
324 |
+ DUP2 .Screen/y DEO2 |
|
325 |
+ [ LIT2 &ver-x1 $2 ] .Screen/x DEO2 STHkr .Screen/pixel DEOk |
|
326 |
+ [ LIT2 &ver-x2 $2 ] .Screen/x DEO2 DEO |
|
327 |
+ INC2 GTH2k ,&ver JCN |
|
328 |
+ POP2 POP2 |
|
329 |
+ POPr |
|
320 | 330 |
|
321 | 331 |
RTN |
322 | 332 |
|
... | ... |
@@ -28,10 +28,6 @@ |
28 | 28 |
&w $2 &h $2 |
29 | 29 |
&x0 $2 &y0 $2 |
30 | 30 |
&x1 $2 &y1 $2 |
31 |
-@color $1 |
|
32 |
-@rect |
|
33 |
- &x1 $2 &y1 $2 |
|
34 |
- &x2 $2 &y2 $2 |
|
35 | 31 |
|
36 | 32 |
( init ) |
37 | 33 |
|
... | ... |
@@ -57,6 +53,11 @@ |
57 | 53 |
( vectors ) |
58 | 54 |
;on-button .Controller/vector DEO2 |
59 | 55 |
|
56 |
+ ( frame ) |
|
57 |
+ .frame/x0 LDZ2 .frame/y0 LDZ2 |
|
58 |
+ .frame/x1 LDZ2 .frame/y1 LDZ2 |
|
59 |
+ #03 ;line-rect JSR2 |
|
60 |
+ |
|
60 | 61 |
,draw-controller JSR |
61 | 62 |
|
62 | 63 |
BRK |
... | ... |
@@ -74,10 +75,6 @@ BRK |
74 | 75 |
|
75 | 76 |
.Controller/button DEI STH |
76 | 77 |
|
77 |
- ( frame ) |
|
78 |
- .frame/x0 LDZ2 .frame/y0 LDZ2 |
|
79 |
- .frame/x1 LDZ2 .frame/y1 LDZ2 |
|
80 |
- #01 ;line-rect JSR2 |
|
81 | 78 |
( d-pad ) |
82 | 79 |
.frame/x0 LDZ2 #0010 ++ .Screen/x DEO2 |
83 | 80 |
.frame/y0 LDZ2 #0010 ++ .Screen/y DEO2 |
... | ... |
@@ -135,7 +132,7 @@ RTN |
135 | 132 |
|
136 | 133 |
@draw-short ( short* color -- ) |
137 | 134 |
|
138 |
- STH SWP STHkr ,draw-byte JSR STHr |
|
135 |
+ STH SWP STHkr ,draw-byte JSR STHr |
|
139 | 136 |
|
140 | 137 |
@draw-byte ( byte color -- ) |
141 | 138 |
|
... | ... |
@@ -150,23 +147,28 @@ RTN |
150 | 147 |
|
151 | 148 |
@line-rect ( x1* y1* x2* y2* color -- ) |
152 | 149 |
|
153 |
- ( load ) .color STZ DUP2 STH2 .rect/y2 STZ2 .rect/x2 STZ2 DUP2 STH2 .rect/y1 STZ2 .rect/x1 STZ2 |
|
154 |
- STH2r INC2 STH2r |
|
155 |
- &ver |
|
156 |
- ( save ) OVR2 .Screen/y DEO2 |
|
157 |
- ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO |
|
158 |
- ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO |
|
159 |
- ( incr ) SWP2 INC2 SWP2 |
|
160 |
- OVR2 OVR2 LTS2 ,&ver JCN |
|
161 |
- POP2 POP2 |
|
162 |
- .rect/x1 LDZ2 INC2 .rect/x2 LDZ2 #0001 -- |
|
150 |
+ STH |
|
151 |
+ DUP2 ,&ver-y2 STR2 ,&hor-y2 STR2 |
|
152 |
+ DUP2 ,&ver-x2 STR2 ,&hor-x2 STR2 |
|
153 |
+ DUP2 ,&ver-y1 STR2 ,&hor-y1 STR2 |
|
154 |
+ DUP2 ,&ver-x1 STR2 ,&hor-x1 STR2 |
|
155 |
+ ( horizontal ) |
|
156 |
+ [ LIT2 &hor-x2 $2 ] INC2 [ LIT2 &hor-x1 $2 ] |
|
163 | 157 |
&hor |
164 |
- ( save ) OVR2 .Screen/x DEO2 |
|
165 |
- ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO |
|
166 |
- ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO |
|
167 |
- ( incr ) SWP2 INC2 SWP2 |
|
168 |
- OVR2 OVR2 INC2 LTS2 ,&hor JCN |
|
158 |
+ DUP2 .Screen/x DEO2 |
|
159 |
+ [ LIT2 &hor-y1 $2 ] .Screen/y DEO2 STHkr .Screen/pixel DEOk |
|
160 |
+ [ LIT2 &hor-y2 $2 ] .Screen/y DEO2 DEO |
|
161 |
+ INC2 GTH2k ,&hor JCN |
|
162 |
+ POP2 POP2 |
|
163 |
+ ( vertical ) |
|
164 |
+ [ LIT2 &ver-y2 $2 ] [ LIT2 &ver-y1 $2 ] |
|
165 |
+ &ver |
|
166 |
+ DUP2 .Screen/y DEO2 |
|
167 |
+ [ LIT2 &ver-x1 $2 ] .Screen/x DEO2 STHkr .Screen/pixel DEOk |
|
168 |
+ [ LIT2 &ver-x2 $2 ] .Screen/x DEO2 DEO |
|
169 |
+ INC2 GTH2k ,&ver JCN |
|
169 | 170 |
POP2 POP2 |
171 |
+ POPr |
|
170 | 172 |
|
171 | 173 |
RTN |
172 | 174 |
|
... | ... |
@@ -96,25 +96,28 @@ RTN |
96 | 96 |
|
97 | 97 |
@line-rect ( x1* y1* x2* y2* color -- ) |
98 | 98 |
|
99 |
- ( load ) .color STZ |
|
100 |
- STH2k .rect/y2 STZ2 .rect/x2 STZ2 |
|
101 |
- STH2k .rect/y1 STZ2 .rect/x1 STZ2 |
|
102 |
- STH2r STH2r SWP2 |
|
103 |
- &ver |
|
104 |
- ( save ) DUP2 .Screen/y DEO2 |
|
105 |
- ( draw ) .rect/x1 LDZ2 .Screen/x DEO2 .color LDZ DUP .Screen/pixel DEO |
|
106 |
- ( draw ) .rect/x2 LDZ2 .Screen/x DEO2 .Screen/pixel DEO |
|
107 |
- ( incr ) INC2 |
|
108 |
- OVR2 OVR2 GTS2 ,&ver JCN |
|
109 |
- POP2 POP2 |
|
110 |
- .rect/x1 LDZ2 .rect/x2 LDZ2 SWP2 |
|
99 |
+ STH |
|
100 |
+ DUP2 ,&ver-y2 STR2 ,&hor-y2 STR2 |
|
101 |
+ DUP2 ,&ver-x2 STR2 ,&hor-x2 STR2 |
|
102 |
+ DUP2 ,&ver-y1 STR2 ,&hor-y1 STR2 |
|
103 |
+ DUP2 ,&ver-x1 STR2 ,&hor-x1 STR2 |
|
104 |
+ ( horizontal ) |
|
105 |
+ [ LIT2 &hor-x2 $2 ] INC2 [ LIT2 &hor-x1 $2 ] |
|
111 | 106 |
&hor |
112 |
- ( save ) DUP2 .Screen/x DEO2 |
|
113 |
- ( draw ) .rect/y1 LDZ2 .Screen/y DEO2 .color LDZ DUP .Screen/pixel DEO |
|
114 |
- ( draw ) .rect/y2 LDZ2 .Screen/y DEO2 .Screen/pixel DEO |
|
115 |
- ( incr ) INC2 |
|
116 |
- OVR2 OVR2 GTS2 ,&hor JCN |
|
107 |
+ DUP2 .Screen/x DEO2 |
|
108 |
+ [ LIT2 &hor-y1 $2 ] .Screen/y DEO2 STHkr .Screen/pixel DEOk |
|
109 |
+ [ LIT2 &hor-y2 $2 ] .Screen/y DEO2 DEO |
|
110 |
+ INC2 GTH2k ,&hor JCN |
|
111 |
+ POP2 POP2 |
|
112 |
+ ( vertical ) |
|
113 |
+ [ LIT2 &ver-y2 $2 ] [ LIT2 &ver-y1 $2 ] |
|
114 |
+ &ver |
|
115 |
+ DUP2 .Screen/y DEO2 |
|
116 |
+ [ LIT2 &ver-x1 $2 ] .Screen/x DEO2 STHkr .Screen/pixel DEOk |
|
117 |
+ [ LIT2 &ver-x2 $2 ] .Screen/x DEO2 DEO |
|
118 |
+ INC2 GTH2k ,&ver JCN |
|
117 | 119 |
POP2 POP2 |
120 |
+ POPr |
|
118 | 121 |
|
119 | 122 |
RTN |
120 | 123 |
|
... | ... |
@@ -93,28 +93,30 @@ RTN |
93 | 93 |
|
94 | 94 |
@line-rect ( x1* y1* x2* y2* color -- ) |
95 | 95 |
|
96 |
- ( load ) STH |
|
97 |
- STH2k ,&y2 STR2 ,&x2 STR2 |
|
98 |
- STH2k ,&y1 STR2 ,&x1 STR2 |
|
99 |
- STH2r STH2r SWP2 |
|
96 |
+ STH |
|
97 |
+ DUP2 ,&ver-y2 STR2 ,&hor-y2 STR2 |
|
98 |
+ DUP2 ,&ver-x2 STR2 ,&hor-x2 STR2 |
|
99 |
+ DUP2 ,&ver-y1 STR2 ,&hor-y1 STR2 |
|
100 |
+ DUP2 ,&ver-x1 STR2 ,&hor-x1 STR2 |
|
101 |
+ ( horizontal ) |
|
102 |
+ [ LIT2 &hor-x2 $2 ] INC2 [ LIT2 &hor-x1 $2 ] |
|
103 |
+ &hor |
|
104 |
+ DUP2 .Screen/x DEO2 |
|
105 |
+ [ LIT2 &hor-y1 $2 ] .Screen/y DEO2 STHkr .Screen/pixel DEOk |
|
106 |
+ [ LIT2 &hor-y2 $2 ] .Screen/y DEO2 DEO |
|
107 |
+ INC2 GTH2k ,&hor JCN |
|
108 |
+ POP2 POP2 |
|
109 |
+ ( vertical ) |
|
110 |
+ [ LIT2 &ver-y2 $2 ] [ LIT2 &ver-y1 $2 ] |
|
100 | 111 |
&ver |
101 |
- ( save ) DUP2 .Screen/y DEO2 |
|
102 |
- ( draw ) ,&x1 LDR2 .Screen/x DEO2 STHkr .Screen/pixel DEO |
|
103 |
- ( draw ) ,&x2 LDR2 .Screen/x DEO2 STHkr .Screen/pixel DEO |
|
104 |
- ( incr ) INC2 |
|
105 |
- OVR2 OVR2 GTS2 ,&ver JCN |
|
112 |
+ DUP2 .Screen/y DEO2 |
|
113 |
+ [ LIT2 &ver-x1 $2 ] .Screen/x DEO2 STHkr .Screen/pixel DEOk |
|
114 |
+ [ LIT2 &ver-x2 $2 ] .Screen/x DEO2 DEO |
|
115 |
+ INC2 GTH2k ,&ver JCN |
|
106 | 116 |
POP2 POP2 |
107 |
- ,&x1 LDR2 ,&x2 LDR2 SWP2 |
|
108 |
- &hor |
|
109 |
- ( save ) DUP2 .Screen/x DEO2 |
|
110 |
- ( draw ) ,&y1 LDR2 .Screen/y DEO2 STHkr .Screen/pixel DEO |
|
111 |
- ( draw ) ,&y2 LDR2 .Screen/y DEO2 STHkr .Screen/pixel DEO |
|
112 |
- ( incr ) INC2 |
|
113 |
- OVR2 INC2 OVR2 GTS2 ,&hor JCN |
|
114 |
- POP2 POP2 POPr |
|
117 |
+ POPr |
|
115 | 118 |
|
116 | 119 |
RTN |
117 |
- &x1 $2 &y1 $2 &x2 $2 &y2 $2 |
|
118 | 120 |
|
119 | 121 |
@fill-rect ( x1* y1* x2* y2* color -- ) |
120 | 122 |
|