Browse code

(calc.rom) Add keyboard controls

Devine Lu Linvega authored on 12/11/2021 20:45:06
Showing 1 changed files
... ...
@@ -2,9 +2,9 @@
2 2
 	a simple calculator
3 3
 	uxnasm projects/software/calc.tal bin/calc.rom && uxnemu bin/calc.rom )
4 4
 
5
-%+  { ADD } %-   { SUB }              %/   { DIV }
5
+%+  { ADD } %-   { SUB }  %/   { DIV }
6 6
 %<  { LTH } %>   { GTH }  %=  { EQU } %!   { NEQ }
7
-%++ { ADD2 } %-- { SUB2 }              %// { DIV2 }
7
+%++ { ADD2 } %-- { SUB2 } %// { DIV2 }
8 8
 %<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 }
9 9
 
10 10
 %2*   { #10 SFT } 
... ...
@@ -90,21 +90,21 @@
90 90
 		#0040 ++ .keypad-frame/x2 STZ2
91 91
 	.center/y LDZ2 #0018 -- 
92 92
 	DUP2 .keypad-frame/y STZ2
93
-		#0040 ++ .keypad-frame/y2 STZ2
93
+		#003f ++ .keypad-frame/y2 STZ2
94 94
 
95 95
 	.keypad-frame/x LDZ2
96 96
 	DUP2 .modpad-frame/x STZ2
97 97
 		#0040 ++ .modpad-frame/x2 STZ2
98 98
 	.keypad-frame/y LDZ2 #0040 ++
99 99
 	DUP2 .modpad-frame/y STZ2
100
-		#0020 ++ .modpad-frame/y2 STZ2
100
+		#001f ++ .modpad-frame/y2 STZ2
101 101
 
102 102
 	.keypad-frame/x LDZ2
103 103
 	DUP2 .bitpad-frame/x STZ2
104 104
 		#0040 ++ .bitpad-frame/x2 STZ2
105 105
 	.modpad-frame/y2 LDZ2 #0008 ++
106 106
 	DUP2 .bitpad-frame/y STZ2
107
-		#0010 ++ .bitpad-frame/y2 STZ2
107
+		#000f ++ .bitpad-frame/y2 STZ2
108 108
 
109 109
 	.center/x LDZ2 #0020 -- 
110 110
 	DUP2 .input-frame/x STZ2
... ...
@@ -128,6 +128,7 @@ BRK
128 128
 	DUP #0d ! ,&no-enter JCN
129 129
 		;do-push JSR2 POP BRK
130 130
 		&no-enter
131
+	( arithmetic )
131 132
 	DUP LIT '+ ! ,&no-add JCN 
132 133
 		;do-add JSR2 POP BRK &no-add
133 134
 	DUP LIT '- ! ,&no-sub JCN 
... ...
@@ -136,6 +137,16 @@ BRK
136 137
 		;do-mul JSR2 POP BRK &no-mul
137 138
 	DUP LIT '/ ! ,&no-div JCN 
138 139
 		;do-div JSR2 POP BRK &no-div
140
+	( bitwise )
141
+	DUP LIT '& ! ,&no-and JCN 
142
+		;do-and JSR2 POP BRK &no-and
143
+	DUP LIT '| ! ,&no-ora JCN 
144
+		;do-ora JSR2 POP BRK &no-ora
145
+	DUP LIT '^ ! ,&no-eor JCN 
146
+		;do-eor JSR2 POP BRK &no-eor
147
+	DUP LIT '~ ! ,&no-not JCN 
148
+		;do-not JSR2 POP BRK &no-not
149
+	( clear )
139 150
 	DUP #1b ! ,&no-esc JCN
140 151
 		;do-pop JSR2 POP BRK &no-esc
141 152
 	DUP #08 ! ,&no-backspace JCN
... ...
@@ -287,7 +298,7 @@ RTN
287 298
 
288 299
 @do-push ( -- )
289 300
 
290
-	.input/value LDZ2 #0000 >> ,&not-empty JCN
301
+	.input/value LDZ2 ADD ,&not-empty JCN
291 302
 		RTN
292 303
 		&not-empty
293 304
 	.stack/length LDZ #07 < ,&not-full JCN