Browse Source

Continued MOSCIA tests.

master
Bryan Miller 5 years ago
parent
commit
f411ce2643
1 changed files with 38 additions and 5 deletions
  1. +38
    -5
      test/unit.src.MOSCIA.spec.js

+ 38
- 5
test/unit.src.MOSCIA.spec.js View File

expect(cia.DATA).to.be.equal(0x06); expect(cia.DATA).to.be.equal(0x06);
}); });


it("Set and Trigger TOD Alarm", function(){
it("TOD Alarm Set and Trigger", function(){
let cia = new MOSCIA(); let cia = new MOSCIA();
let tick = (cycles) => { let tick = (cycles) => {
let ccount = cycles * 6; let ccount = cycles * 6;
cia.TOD = 1; cia.TOD = 1;
}; };


// Setting up the alarm interrupts!
cia.RS = 0x0D;
cia.DATA = 0x84;

// Setting alarm values. // Setting alarm values.
cia.RS = 0x0F; cia.RS = 0x0F;
cia.DATA = cia.DATA | 0x80; cia.DATA = cia.DATA | 0x80;
expect(IC & 0x04).to.be.equal(0x04); expect(IC & 0x04).to.be.equal(0x04);
expect(IC & 0x80).to.be.equal(0x80); expect(IC & 0x80).to.be.equal(0x80);
}); });

it("Timer A", function(){
let cia = new MOSCIA();
let tick = (cycles) => {
for (let i=0; i < cycles; i++)
cia.phi2 = 1;
};

cia.RS = 0x04;
cia.DATA = 0xFF;
cia.RS = 0x05;
cia.DATA = 0x01;

cia.RS = 0x0E;
// Force latch load into Timer A and activate Timer A
cia.DATA = cia.DATA | 0x11;

cia.RS = 0x04;
expect(cia.DATA).to.be.equal(0xFF);
tick(1);
expect(cia.DATA).to.be.equal(0xFE);
tick(1);
expect(cia.DATA).to.be.equal(0xFD);
tick(0x0200 - 3);
expect(cia.DATA).to.be.equal(0x00);
cia.RS = 0x05;
expect(cia.DATA).to.be.equal(0x00);
tick(1);
expect(cia.DATA).to.be.equal(0x01);
cia.RS = 0x04;
expect(cia.DATA).to.be.equal(0xFF);

cia.RS = 0x0D;
let IC = cia.DATA;
expect(IC & 0x01).to.be.equal(0x01);
expect(IC & 0x80).to.be.equal(0x80);
});
}); });





Loading…
Cancel
Save