... | ... |
@@ -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 >> ,¬-empty JCN |
|
301 |
+ .input/value LDZ2 ADD ,¬-empty JCN |
|
291 | 302 |
RTN |
292 | 303 |
¬-empty |
293 | 304 |
.stack/length LDZ #07 < ,¬-full JCN |