mz700-js
Version:
MZ-700 Full JavaScript Emulator
45 lines (44 loc) • 1.51 kB
text/typescript
describe("8 bit calculation", ()=>{
const Z80Tester = require('./lib/Z80Tester');
const Z80 = require('../Z80/Z80');
const tester = new Z80Tester();
const cpu = new Z80();
const chai = require("chai");
const assert = chai.assert;
describe("When C flag is set", ()=>{
describe("ADC A,n", ()=>{
it("should add extra 1", ()=>{
cpu.reg.setA(0x00);
cpu.reg.setFlagC();
tester.runMnemonics(cpu, [ "ADC A,1" ]);
assert.equal(cpu.reg.getA(), 2);
});
});
describe("SBC A,n", ()=>{
it("should subtract extra 1", ()=>{
cpu.reg.setA(0x02);
cpu.reg.setFlagC();
tester.runMnemonics(cpu, [ "SBC A,1" ]);
assert.equal(cpu.reg.getA(), 0);
});
});
});
describe("When C flag is cleared", ()=>{
describe("ADC A,n", ()=>{
it("should not add extra 1", ()=>{
cpu.reg.setA(0x00);
cpu.reg.clearFlagC();
tester.runMnemonics(cpu, [ "ADC A,1" ]);
assert.equal(cpu.reg.getA(), 1);
});
});
describe("SBC A,n", ()=>{
it("should not subtract extra 1", ()=>{
cpu.reg.setA(0x02);
cpu.reg.clearFlagC();
tester.runMnemonics(cpu, [ "SBC A,1" ]);
assert.equal(cpu.reg.getA(), 1);
});
});
});
});