Automate bitwise
authorAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 23 Jun 2016 16:52:34 +0000 (09:52 -0700)
committerAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 23 Jun 2016 16:52:34 +0000 (09:52 -0700)
src/CPU/build_bitwise.js [new file with mode: 0644]
src/CPU/instructions/ADC

diff --git a/src/CPU/build_bitwise.js b/src/CPU/build_bitwise.js
new file mode 100644 (file)
index 0000000..1cf07c6
--- /dev/null
@@ -0,0 +1,21 @@
+/* build-bitwise.js
+ * builds the 3 bitwise ops
+ * this has dirty coercion tricks, unfortunately
+ */
+
+var fs = require("fs");
+
+var ops = ["EOR", "ORA", "AND"];
+ops.forEach(emit);
+
+function emit(op) {
+    var emission = [
+        "R,N,Z,A",
+        "set hA to item A+1 of hex",
+        "set hOP to item OP+1 of hex",
+        "set A to join (item (join (letter 1 of A) (letter 1 of OP))+1 of " + op + ") (item (join (letter 2 of A) (letter 2 of OP))+1 of " + op + ")"
+    ];
+
+    fs.writeFileSync("instructions/" + op, emission.join("\n"));
+
+}
index 8948aa3..c066631 100644 (file)
@@ -1,5 +1,5 @@
 R,N,Z,A
-set tmp to (join "0x" (A)) + (join "0x" (OP)) + flagC
-set A to item (tmp mod 256) + 1 of hex
+set tmp to A + OP + flagC
+set A to tmp mod 256
 set flagC to <tmp > 255>
-set flagV to <<(join "0x" (A)) < 128 and (join "0x" (OP)) < 128 and (tmp mod 256) > 128> or <(join "0x" (A)) > 127 and (join "0x" (OP)) > 127 and (tmp mod 256) < 128>>
+set flagV to <A < 128 and OP < 128 and (tmp mod 256) > 128> or <A > 127 and OP > 127 and (tmp mod 256) < 128>>
This page took 0.032413 seconds and 4 git commands to generate.