| @@ -1059,22 +1059,118 @@ describe("Testing MOS6502 Assembler...", function(){ | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| it("SBC Immediate"); | |||
| it("SBC Zero Page"); | |||
| it("SBC Zero Page, X"); | |||
| it("SBC Absolute"); | |||
| it("SBC Absolute, X"); | |||
| it("SBC Absolute, Y"); | |||
| it("SBC Indirect, X"); | |||
| it("SBC Indirect, Y"); | |||
| it("SBC Immediate", function(){ | |||
| let res = asm.reset().compile("SBC #$44").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0xE9); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("SBC Zero Page", function(){ | |||
| let res = asm.reset().compile("SBC $44").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0xE5); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("SBC Zero Page, X", function(){ | |||
| let res = asm.reset().compile("SBC $44,X").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0xF5); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("SBC Absolute", function(){ | |||
| let res = asm.reset().compile("SBC $4400").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0xED); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("SBC Absolute, X", function(){ | |||
| let res = asm.reset().compile("SBC $4400,X").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0xFD); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("SBC Absolute, Y", function(){ | |||
| let res = asm.reset().compile("SBC $4400,Y").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0xF9); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("SBC Indirect, X", function(){ | |||
| let res = asm.reset().compile("SBC ($44,X)").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0xE1); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("SBC Indirect, Y", function(){ | |||
| let res = asm.reset().compile("SBC ($44),Y").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0xF1); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| it("STA Zero Page"); | |||
| it("STA Zero Page, X"); | |||
| it("STA Absolute"); | |||
| it("STA Absolute, X"); | |||
| it("STA Absolute, Y"); | |||
| it("STA Indirect, X"); | |||
| it("STA Indirect, Y"); | |||
| it("STA Zero Page", function(){ | |||
| let res = asm.reset().compile("STA $44").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x85); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STA Zero Page, X", function(){ | |||
| let res = asm.reset().compile("STA $44,X").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x95); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STA Absolute", function(){ | |||
| let res = asm.reset().compile("STA $4400").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0x8D); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("STA Absolute, X", function(){ | |||
| let res = asm.reset().compile("STA $4400,X").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0x9D); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("STA Absolute, Y", function(){ | |||
| let res = asm.reset().compile("STA $4400,Y").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0x99); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| it("STA Indirect, X", function(){ | |||
| let res = asm.reset().compile("STA ($44,X)").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x81); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STA Indirect, Y", function(){ | |||
| let res = asm.reset().compile("STA ($44),Y").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x91); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| it("PHA", function(){ | |||
| asm.reset(); | |||
| @@ -1119,13 +1215,50 @@ describe("Testing MOS6502 Assembler...", function(){ | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| it("STX Zero Page"); | |||
| it("STX Zero Page, Y"); | |||
| it("STX Absolute"); | |||
| it("STX Zero Page", function(){ | |||
| let res = asm.reset().compile("STX $44").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x86); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STX Zero Page, Y", function(){ | |||
| let res = asm.reset().compile("STX $44, Y").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x96); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STX Absolute", function(){ | |||
| let res = asm.reset().compile("STX $4400").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0x8E); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| it("STY Zero Page"); | |||
| it("STY Zero Page, X"); | |||
| it("STY Absolute"); | |||
| it("STY Zero Page", function(){ | |||
| let res = asm.reset().compile("STY $44").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x84); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STY Zero Page, X", function(){ | |||
| let res = asm.reset().compile("sty $44,x").result(); | |||
| expect(res.length).to.equal(2); | |||
| expect(res[0]).to.equal(0x94); | |||
| expect(res[1]).to.equal(0x44); | |||
| }); | |||
| it("STY Absolute", function(){ | |||
| let res = asm.reset().compile("STY $4400").result(); | |||
| expect(res.length).to.equal(3); | |||
| expect(res[0]).to.equal(0x8C); | |||
| expect(res[1]).to.equal(0x00); | |||
| expect(res[2]).to.equal(0x44); | |||
| }); | |||
| // ------------------------------------------------------------- | |||
| }); | |||