Selaa lähdekoodia

Started adding tests for MOS CIA

master
Bryan Miller 5 vuotta sitten
vanhempi
commit
5bb38e2ab2
1 muutettua tiedostoa jossa 60 lisäystä ja 0 poistoa
  1. +60
    -0
      test/unit.src.MOSCIA.spec.js

+ 60
- 0
test/unit.src.MOSCIA.spec.js Näytä tiedosto

@@ -0,0 +1,60 @@
const expect = require('chai').expect;
const MOSCIA = require('../src/MOSCIA.js');


describe("MOSCIA Tests...", function(){
var cia = new MOSCIA();

it("Serial IO", function(){
let Input = (i) => {
cia.SP = i;
cia.CNT = 1;
cia.phi2 = 1;
};

var outval = 0;
let Output = () => {
cia.CNT = 1;
cia.phi2 = 1;
outval = (outval << 1) | cia.SP;
}
cia.RS = 0x0C;

Input(1);
expect(cia.DATA).to.be.equal(1);
Input(1);
expect(cia.DATA).to.be.equal(3);
Input(0);
expect(cia.DATA).to.be.equal(6);
Input(0);
Input(1);
Input(1);
Input(0);
Input(1);
expect(cia.DATA).to.be.equal(0xCD);
cia.RS = 0x0D;
expect((cia.DATA & 0x08) >> 3).to.be.equal(1);
// Reading from RS = 0x0D should clear the interrupt values. Checking this
expect(cia.DATA).to.be.equal(0);

cia.RS = 0x0E;
cia.DATA = 0x40; // Enable serial output.
Output();
expect(outval).to.be.equal(1);
Output();
expect(outval).to.be.equal(3);
Output();
expect(outval).to.be.equal(6);
Output();
Output();
Output();
Output();
Output();
expect(outval).to.be.equal(0xCD);
cia.RS = 0x0C;
expect(cia.DATA).to.be.equal(0);
cia.RS = 0x0D;
expect((cia.DATA & 0x08) >> 3).to.be.equal(1);
expect(cia.DATA).to.be.equal(0);
});
});

Loading…
Peruuta
Tallenna