|
- 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);
- });
- });
|