|
|
@@ -159,33 +159,208 @@ describe("Testing MOS6502 Assembler...", function(){ |
|
|
|
expect(res[0]).to.equal(0x71); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("AND Immediate"); |
|
|
|
it("AND Zero Page"); |
|
|
|
it("AND Zero Page, X"); |
|
|
|
it("AND Absolute"); |
|
|
|
it("AND Absolute, X"); |
|
|
|
it("AND Absolute, Y"); |
|
|
|
it("AND Indirect, X"); |
|
|
|
it("AND Indirect, Y"); |
|
|
|
it("AND Immediate", function(){ |
|
|
|
let res = asm.reset().compile("AND #$44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x29); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("AND $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x25); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("AND $44,X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x35); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Absolute", function(){ |
|
|
|
let res = asm.reset().compile("AND $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x2D); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("AND $4400, X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x3D); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Absolute, Y", function(){ |
|
|
|
let res = asm.reset().compile("AND $4400, Y").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x39); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Indirect, X", function(){ |
|
|
|
let res = asm.reset().compile("AND ($44, X)").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x21); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("AND Indirect, Y", function(){ |
|
|
|
let res = asm.reset().compile("AND ($44), Y").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x31); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("ASL Accumulator"); |
|
|
|
it("ASL Zero Page"); |
|
|
|
it("ASL Zero Page, X"); |
|
|
|
it("ASL Absolute"); |
|
|
|
it("ASL Absolute, X"); |
|
|
|
it("ASL Accumulator", function(){ |
|
|
|
let res = asm.reset().compile("ASL A").result(); |
|
|
|
expect(res.length).to.equal(1); |
|
|
|
expect(res[0]).to.equal(0x0A); |
|
|
|
}); |
|
|
|
|
|
|
|
it("ASL Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("ASL $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x06); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("ASL Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("ASL $44, X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x16); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("ASL Absolute", function(){ |
|
|
|
let res = asm.reset().compile("ASL $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x0E); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("ASL Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("ASL $4400, X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x1E); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("BIT Zero Page"); |
|
|
|
it("BIT Absolute"); |
|
|
|
it("BIT Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("BIT $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x24); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BIT Absolute", function(){ |
|
|
|
let res = asm.reset().compile("BIT $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x2C); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("BPL"); |
|
|
|
it("BMI"); |
|
|
|
it("BVC"); |
|
|
|
it("BVS"); |
|
|
|
it("BCC"); |
|
|
|
it("BCS"); |
|
|
|
it("BNE"); |
|
|
|
it("BEQ"); |
|
|
|
it("BPL", function(){ |
|
|
|
let res = asm.reset().compile("NOP\nNOP\nBPL $0000").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0xEA); |
|
|
|
expect(res[1]).to.equal(0xEA); |
|
|
|
expect(res[2]).to.equal(0x10); |
|
|
|
expect(res[3]).to.equal(0xFC); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BMI", function(){ |
|
|
|
let res = asm.reset().compile("BMI $0003\nNOP\nNOP").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0x30); |
|
|
|
expect(res[1]).to.equal(0x02); |
|
|
|
expect(res[2]).to.equal(0xEA); |
|
|
|
expect(res[3]).to.equal(0xEA); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BVC", function(){ |
|
|
|
let res = asm.reset().compile("BVC $0003\nNOP\nNOP").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0x50); |
|
|
|
expect(res[1]).to.equal(0x02); |
|
|
|
expect(res[2]).to.equal(0xEA); |
|
|
|
expect(res[3]).to.equal(0xEA); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BVS", function(){ |
|
|
|
let res = asm.reset().compile("NOP\nNOP\nBVS $0000").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0xEA); |
|
|
|
expect(res[1]).to.equal(0xEA); |
|
|
|
expect(res[2]).to.equal(0x70); |
|
|
|
expect(res[3]).to.equal(0xFC); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BCC", function(){ |
|
|
|
let res = asm.reset().compile("BCC $0003\nNOP\nNOP").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0x90); |
|
|
|
expect(res[1]).to.equal(0x02); |
|
|
|
expect(res[2]).to.equal(0xEA); |
|
|
|
expect(res[3]).to.equal(0xEA); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BCS", function(){ |
|
|
|
let res = asm.reset().compile("NOP\nNOP\nBCS $0000").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0xEA); |
|
|
|
expect(res[1]).to.equal(0xEA); |
|
|
|
expect(res[2]).to.equal(0xB0); |
|
|
|
expect(res[3]).to.equal(0xFC); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BNE", function(){ |
|
|
|
let res = asm.reset().compile("BNE $0003\nNOP\nNOP").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0xD0); |
|
|
|
expect(res[1]).to.equal(0x02); |
|
|
|
expect(res[2]).to.equal(0xEA); |
|
|
|
expect(res[3]).to.equal(0xEA); |
|
|
|
}); |
|
|
|
|
|
|
|
it("BEQ", function(){ |
|
|
|
let res = asm.reset().compile("NOP\nNOP\nBEQ $0000").result(); |
|
|
|
expect(res.length).to.equal(4); |
|
|
|
expect(res[0]).to.equal(0xEA); |
|
|
|
expect(res[1]).to.equal(0xEA); |
|
|
|
expect(res[2]).to.equal(0xF0); |
|
|
|
expect(res[3]).to.equal(0xFC); |
|
|
|
}); |
|
|
|
|
|
|
|
it("Branch Too Far Back", function(){ |
|
|
|
expect(()=>{ |
|
|
|
let asm2 = new Assembler(0x1000); |
|
|
|
let res = asm2.compile("BNE $0000").result(); |
|
|
|
}).to.throw("Branch exceeds maximum number of bytes on program address 1001"); |
|
|
|
}); |
|
|
|
|
|
|
|
it("Branch Too Far Forward", function(){ |
|
|
|
expect(()=>{ |
|
|
|
let res = asm.reset().compile("BNE $00F0").result(); |
|
|
|
}).to.throw("Branch exceeds maximum number of bytes on program address 01"); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it ("BRK", function(){ |
|
|
|
asm.reset(); |
|
|
@@ -193,38 +368,203 @@ describe("Testing MOS6502 Assembler...", function(){ |
|
|
|
expect(res.length).to.equal(1); |
|
|
|
expect(res[0]).to.equal(0x00); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("CMP Immediate"); |
|
|
|
it("CMP Zero Page"); |
|
|
|
it("CMP Zero Page, X"); |
|
|
|
it("CMP Absolute"); |
|
|
|
it("CMP Absolute, X"); |
|
|
|
it("CMP Absolute, Y"); |
|
|
|
it("CMP Indirect, X"); |
|
|
|
it("CMP Indirect, Y"); |
|
|
|
it("CMP Immediate", function(){ |
|
|
|
let res = asm.reset().compile("CMP #$44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC9); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("CMP $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC5); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("CMP $44,X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xD5); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Absolute", function(){ |
|
|
|
let res = asm.reset().compile("CMP $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xCD); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("CMP $4400,X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xDD); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Absolute, Y", function(){ |
|
|
|
let res = asm.reset().compile("CMP $4400, Y").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xD9); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Indirect, X", function(){ |
|
|
|
let res = asm.reset().compile("CMP ($44,X)").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC1); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CMP Indirect, Y", function(){ |
|
|
|
let res = asm.reset().compile("CMP ($44),Y").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xD1); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("CPX Immediate"); |
|
|
|
it("CPX Zero Page"); |
|
|
|
it("CPX Absolute"); |
|
|
|
it("CPX Immediate", function(){ |
|
|
|
let res = asm.reset().compile("CPX #$44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xE0); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CPX Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("CPX $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xE4); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CPX Absolute", function(){ |
|
|
|
let res = asm.reset().compile("CPX $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xEC); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("CPY Immediate"); |
|
|
|
it("CPY Zero Page"); |
|
|
|
it("CPY Absolute"); |
|
|
|
it("CPY Immediate", function(){ |
|
|
|
let res = asm.reset().compile("CPY #$44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC0); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CPY Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("CPY $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC4); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("CPY Absolute", function(){ |
|
|
|
let res = asm.reset().compile("CPY $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xCC); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("DEC Zero Page"); |
|
|
|
it("DEC Zero Page, X"); |
|
|
|
it("DEC Absolute"); |
|
|
|
it("DEC Absolute, X"); |
|
|
|
it("DEC Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("DEC $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xC6); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("DEC Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("DEC $44,X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xD6); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("DEC Absolute", function(){ |
|
|
|
let res = asm.reset().compile("DEC $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xCE); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("DEC Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("DEC $4400,X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xDE); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("EOR Immediate"); |
|
|
|
it("EOR Zero Page"); |
|
|
|
it("EOR Zero Page, X"); |
|
|
|
it("EOR Absolute"); |
|
|
|
it("EOR Absolute, X"); |
|
|
|
it("EOR Absolute, Y"); |
|
|
|
it("EOR Indirect, X"); |
|
|
|
it("EOR Indirect, Y"); |
|
|
|
it("EOR Immediate", function(){ |
|
|
|
let res = asm.reset().compile("EOR #$44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x49); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("EOR $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x45); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("EOR $44,X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x55); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Absolute", function(){ |
|
|
|
let res = asm.reset().compile("EOR $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x4D); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("EOR $4400, X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x5D); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Absolute, Y", function(){ |
|
|
|
let res = asm.reset().compile("EOR $4400,Y").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x59); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Indirect, X", function(){ |
|
|
|
let res = asm.reset().compile("EOR ($44,X)").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x41); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("EOR Indirect, Y", function(){ |
|
|
|
let res = asm.reset().compile("EOR ($44),Y").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0x51); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("CLC", function(){ |
|
|
@@ -277,15 +617,61 @@ describe("Testing MOS6502 Assembler...", function(){ |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("INC Zero Page"); |
|
|
|
it("INC Zero Page, X"); |
|
|
|
it("INC Absolute"); |
|
|
|
it("INC Absolute, X"); |
|
|
|
it("INC Zero Page", function(){ |
|
|
|
let res = asm.reset().compile("INC $44").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xE6); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("INC Zero Page, X", function(){ |
|
|
|
let res = asm.reset().compile("INC $44,X").result(); |
|
|
|
expect(res.length).to.equal(2); |
|
|
|
expect(res[0]).to.equal(0xF6); |
|
|
|
expect(res[1]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("INC Absolute", function(){ |
|
|
|
let res = asm.reset().compile("INC $4400").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xEE); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
it("INC Absolute, X", function(){ |
|
|
|
let res = asm.reset().compile("INC $4400,X").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0xFE); |
|
|
|
expect(res[1]).to.equal(0x00); |
|
|
|
expect(res[2]).to.equal(0x44); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("JMP Absolute"); |
|
|
|
it("JMP Indirect"); |
|
|
|
it("JMP Absolute", function(){ |
|
|
|
let res = asm.reset().compile("JMP $2134").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x4C); |
|
|
|
expect(res[1]).to.equal(0x34); |
|
|
|
expect(res[2]).to.equal(0x21); |
|
|
|
}); |
|
|
|
|
|
|
|
it("JMP Indirect", function(){ |
|
|
|
let res = asm.reset().compile("JMP ($2134)").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x6C); |
|
|
|
expect(res[1]).to.equal(0x34); |
|
|
|
expect(res[2]).to.equal(0x21); |
|
|
|
}); |
|
|
|
|
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("JRS Absolute"); |
|
|
|
it("JSR Absolute", function(){ |
|
|
|
let res = asm.reset().compile("JSR $5122").result(); |
|
|
|
expect(res.length).to.equal(3); |
|
|
|
expect(res[0]).to.equal(0x20); |
|
|
|
expect(res[1]).to.equal(0x22); |
|
|
|
expect(res[2]).to.equal(0x51); |
|
|
|
}); |
|
|
|
// ------------------------------------------------------------- |
|
|
|
it("LDA Immediate"); |
|
|
|
it("LDA Zero Page"); |