Browse code

(logic.tal) Displaying basic gates

Devine Lu Linvega authored on 20/11/2021 21:17:26
Showing 1 changed files
... ...
@@ -49,8 +49,6 @@
49 49
 	&x $2 &y $2 &x2 $2 &y2 $2
50 50
 @input
51 51
 	&a $1 &b $1
52
-@center
53
-	&x $2 &y $2
54 52
 @pointer
55 53
 	&x $2 &y $2
56 54
 
... ...
@@ -66,13 +64,11 @@
66 64
 
67 65
 	;on-mouse   .Mouse/vector DEO2
68 66
 
69
-	.Screen/width DEI2 2//
70
-		DUP2 .center/x STZ2
67
+	.Screen/width DEI2 2// 
71 68
 		DUP2 #0040 -- .a-frame/x STZ2 DUP2 #0040 ++ .a-frame/x2 STZ2
72 69
 		DUP2 #0040 -- .b-frame/x STZ2 #0040 ++ .b-frame/x2 STZ2
73 70
 
74
-	.Screen/height DEI2 2//
75
-		DUP2 .center/y STZ2
71
+	.Screen/height DEI2 2// #0020 --
76 72
 		DUP2 #0010 -- .a-frame/y STZ2 DUP2 #0000 ++ .a-frame/y2 STZ2
77 73
 		DUP2 .b-frame/y STZ2 #0010 ++ .b-frame/y2 STZ2
78 74
 
... ...
@@ -125,46 +121,57 @@ BRK
125 121
 
126 122
 	.a-frame/x LDZ2  .Screen/x DEO2
127 123
 	.a-frame/y LDZ2  .Screen/y DEO2
128
-	.input/a LDZ ;draw-byte JSR2
124
+	.input/a LDZ #01 ;draw-byte JSR2
129 125
 
130 126
 	.b-frame/x LDZ2 .Screen/x DEO2
131 127
 	.b-frame/y LDZ2 .Screen/y DEO2
132
-	.input/b LDZ ;draw-byte JSR2
128
+	.input/b LDZ #01 ;draw-byte JSR2
129
+
130
+	.b-frame/x LDZ2 .Screen/x DEO2
131
+	.Screen/y DEI2 #000d ++ .Screen/y DEO2
132
+	.input LDZ2 AND #03 ;draw-byte JSR2
133
+
134
+	.b-frame/x LDZ2 .Screen/x DEO2
135
+	.Screen/y DEI2 #000d ++ .Screen/y DEO2
136
+	.input LDZ2 ORA #03 ;draw-byte JSR2
137
+
138
+	.b-frame/x LDZ2 .Screen/x DEO2
139
+	.Screen/y DEI2 #000d ++ .Screen/y DEO2
140
+	.input LDZ2 EOR #03 ;draw-byte JSR2
133 141
 
134 142
 RTN
135 143
 
136 144
 @draw-byte ( value -- )
137 145
 
138
-	STH
146
+	STH STH
139 147
 	#0800
140 148
 	&loop
141 149
 		DUP #07 SWP -
142
-		STHkr SWP SFT #01 AND ;draw-bit JSR2
150
+		STHkr SWP SFT #01 AND OVRr STHr ;draw-bit JSR2
143 151
 		INC GTHk ,&loop JCN
144 152
 	POP2
145 153
 	.Screen/y DEI2 #0003 ++ .Screen/y DEO2
146 154
 	STHr ;draw-hex JSR2
155
+	POPr
147 156
 
148 157
 RTN
149 158
 
150
-@draw-bit ( value -- )
159
+@draw-bit ( value color -- )
151 160
 
152
-	STH
161
+	STH STH
153 162
 
154 163
 	#05 .Screen/auto DEO
155 164
 	;button-icns/off [ #00 STHkr 20* ++ ] .Screen/addr DEO2
156
-	#01 .Screen/sprite DEO
157
-	#01 .Screen/sprite DEO
165
+	OVRr STHr .Screen/sprite DEO
166
+	OVRr STHr .Screen/sprite DEO
158 167
 	.Screen/y DEI2 #0008 ++ .Screen/y DEO2
159 168
 	.Screen/x DEI2 #0010 -- .Screen/x DEO2
160
-	
161
-	#01 .Screen/sprite DEO
162
-	#01 .Screen/sprite DEO
163
-
169
+	OVRr STHr .Screen/sprite DEO
170
+	OVRr STHr .Screen/sprite DEO
164 171
 	#00 .Screen/auto DEO
165 172
 	.Screen/y DEI2 #0008 -- .Screen/y DEO2
166 173
 
167
-	POPr
174
+	POPr POPr
168 175
 
169 176
 RTN
170 177