Fix many off-by-one errors
authorAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 23 Jun 2016 14:55:55 +0000 (07:55 -0700)
committerAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 23 Jun 2016 14:55:55 +0000 (07:55 -0700)
src/CPU/Makefile
src/CPU/instructions/ADC
src/CPU/instructions/AND
src/CPU/instructions/ASL
src/CPU/instructions/EOR
src/CPU/instructions/LSR
src/CPU/instructions/ORA
src/CPU/instructions/PLP
src/CPU/instructions/ROL
src/CPU/instructions/ROR
src/CPU/instructions/SBC

index 658b709..a1061c4 100644 (file)
@@ -17,7 +17,7 @@ instructions/TAX:
        node build-transfer.js
 
 clean:
-       cd instructions && rm BCC BCS BNE BEQ BVC BVS BPL BMI
-       cd instructions && rm CLC SEC CLD SED CLI SEI CLV
-       cd instructions && rm INC INX INY DEC DEX DEY
-       cd instructions && rm TAX TAY TSX TXA TXS TYA
+       -cd instructions ; rm BCC BCS BNE BEQ BVC BVS BPL BMI
+       -cd instructions ; rm CLC SEC CLD SED CLI SEI CLV
+       -cd instructions ; rm INC INX INY DEC DEX DEY
+       -cd instructions ; rm TAX TAY TSX TXA TXS TYA
index 3c2663f..8948aa3 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) of hex
+set A to item (tmp mod 256) + 1 of hex
 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>>
index 204a012..b264d48 100644 (file)
@@ -1,2 +1,2 @@
 R,N,Z,A
-set A to join (item (join (letter 1 of A) (letter 1 of OP)) of AND) (item (join (letter 2 of A) (letter 2 of OP)) of AND)
+set A to join (item (join (letter 1 of A) (letter 1 of OP))+1 of AND) (item (join (letter 2 of A) (letter 2 of OP))+1 of AND)
index 4795934..f0a82fd 100644 (file)
@@ -1,3 +1,3 @@
 RW,N,Z,OP
 set flagC to <join "0x" (letter 1 of OP) > 7 >
-set OP to (item ( (join "0x" (OP)) * 2) mod 256 of hex)
+set OP to (item (( (join "0x" (OP)) * 2) mod 256) + 1 of hex)
index f16741b..bb4247c 100644 (file)
@@ -1,2 +1,2 @@
 R,N,Z,A
-set A to join (item (join (letter 1 of A) (letter 1 of OP)) of EOR) (item (join (letter 2 of A) (letter 2 of OP)) of EOR)
+set A to join (item (join (letter 1 of A) (letter 1 of OP))+1 of EOR) (item (join (letter 2 of A) (letter 2 of OP))+1 of EOR)
index 1ac97a6..cdccb2c 100644 (file)
@@ -1,3 +1,3 @@
 RW, Z
 set flagC to (join "0x" OP) mod 2
-set OP to item (floor of (join "0x" (OP)) / 2) of hex
+set OP to item ((floor of (join "0x" (OP)) / 2) + 1) of hex
index 5d55f96..2b651c6 100644 (file)
@@ -1,2 +1,2 @@
 R,N,Z,A
-set A to join (item (join (letter 1 of A) (letter 1 of OP)) of ORA) (item (join (letter 2 of A) (letter 2 of OP)) of ORA)
+set A to join (item (join (letter 1 of A) (letter 1 of OP))+1 of ORA) (item (join (letter 2 of A) (letter 2 of OP))+1 of ORA)
index cce185f..e7cfbb8 100644 (file)
@@ -1,10 +1,10 @@
 IMPLIED
 mapper read (257 + S)
 set S to (S + 1) mod 256
-set flagN to < (item (join (letter 1 of M) "8") of AND) = 8>
-set flagV to < (item (join (letter 1 of M) "4") of AND) = 4>
-set flagB to < (item (join (letter 1 of M) "1") of AND) = 1>
-set flagD to < (item (join (letter 2 of M) "8") of AND) = 8>
-set flagI to < (item (join (letter 2 of M) "4") of AND) = 4>
-set flagZ to < (item (join (letter 2 of M) "2") of AND) = 2>
-set flagC to < (item (join (letter 2 of M) "1") of AND) = 1>
+set flagN to < (item (join (letter 1 of M) "8")+1 of AND) = 8>
+set flagV to < (item (join (letter 1 of M) "4")+1 of AND) = 4>
+set flagB to < (item (join (letter 1 of M) "1")+1 of AND) = 1>
+set flagD to < (item (join (letter 2 of M) "8")+1 of AND) = 8>
+set flagI to < (item (join (letter 2 of M) "4")+1 of AND) = 4>
+set flagZ to < (item (join (letter 2 of M) "2")+1 of AND) = 2>
+set flagC to < (item (join (letter 2 of M) "1")+1 of AND) = 1>
index 47e833f..5054bfb 100644 (file)
@@ -1,4 +1,4 @@
 RW, N, Z
 set tmp to <(join "0x" (letter 1 of OP)) > 7>
-set OP to item ((join "0x" (OP)) * 2 + flagC) of hex
+set OP to item ((join "0x" (OP)) * 2 + flagC)+1 of hex
 set flagC to tmp
index 148a953..785f870 100644 (file)
@@ -1,4 +1,4 @@
 RW, N, Z
 set tmp to <(join "0x" (OP)) mod 2 = 1>
-set OP to item ((floor of (join "0x" (OP)) / 2) + (128 * flagC)) of hex
+set OP to item ((floor of (join "0x" (OP)) / 2) + (128 * flagC))+1 of hex
 set flagC to tmp
index 0a6bd3a..96de1ee 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) of hex
+set A to item (tmp mod 256)+1 of hex
 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>>
This page took 0.03562 seconds and 4 git commands to generate.