UNPKG

mz700-js

Version:
45 lines (44 loc) 1.51 kB
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); }); }); }); });