| ... | ... |
@@ -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 |