Exemple #1
0
void Tester_68k::sampleNot() {
    Results* oObj;
    MemoryBlock* oSampleMem;

    oObj = new Results("NOT.B D0");
    oObj->setRegD(0, 0x12345687);
    oObj->setN();
    oObj->setCycleCount(4);

    oObj = new Results("NOT.W D0");
    oObj->setRegD(0, 0x1234ffff);
    oObj->setN()->setX();
    oObj->setCycleCount(4);

    oObj = new Results("NOT.L D0");
    oObj->setRegD(0, 0x000000ff);
    oObj->setX();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("NOT.L ($3000).L");
    oObj->setX();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0x0ffedcee);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(28);
}
Exemple #2
0
void Tester_68k::sampleEor() {
    Results* oObj;
    MemoryBlock* oSampleMem;

    oObj = new Results("eor.w D4, D3");
    oObj->setRegD(3, 0x54ff0056);
    oObj->setRegD(4, 0x9853ab9b);
    oObj->setX()->setN();
    oObj->setCycleCount(4);

    oObj = new Results("eor.l D3, (A2)");
    oObj->setRegD(3, 0x54ff0056);
    oObj->setRegA(2, 0x3000);
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0x5bf00f47);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(20);
}
Exemple #3
0
void Tester_68k::sampleNeg() {
    Results* oObj;
    MemoryBlock* oSampleMem;

    oObj = new Results("NEG.B D0");
    oObj->setRegD(0, 0x12345688);
    oObj->setC()->setX()->setN();
    oObj->setCycleCount(4);

    oObj = new Results("NEG.B D0 alt");
    oObj->setRegD(0, 0x12345600);
    oObj->setZ();
    oObj->setCycleCount(4);

    oObj = new Results("NEG.B D0 overflow");
    oObj->setRegD(0, 0x12345680);
    oObj->setC()->setX()->setN()->setV();
    oObj->setCycleCount(4);

    oObj = new Results("NEG.W D0 overflow");
    oObj->setRegD(0, 0x12348000);
    oObj->setC()->setX()->setN()->setV();
    oObj->setCycleCount(4);

    oObj = new Results("NEG.L D0");
    oObj->setRegD(0, 0xedcba988);
    oObj->setC()->setX()->setN();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("NEG.L D0 alt");
    oObj->setRegD(0, 0x1);
    oObj->setC()->setX();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("NEG.L ($3000).L");
    oObj->setC()->setX();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0x0ffedcef);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(28);
}
Exemple #4
0
void Tester_68k::sampleMove() {
    Results* oObj;
    MemoryBlock* oSampleMem;

    oObj = new Results("MOVE.B D1, D2");
    oObj->setRegD(1, 0x12345678);
    oObj->setRegD(2, 0x78);
    oObj->setCycleCount(4);

    oObj = new Results("MOVE.L #$8090fea1, D2");
    oObj->setRegD(2, 0x8090fea1);
    oObj->setN();
    oObj->setCycleCount(12);

    oObj = new Results("MOVE #$0, (A2)");
    oObj->setRegA(2, 0x3000);
    oObj->setZ();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeWord(0x3000, 0);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(12);

    oObj = new Results("MOVE.L (A2)+, (A2)+");
    oObj->setRegA(2, 0x3008);
    oObj->setN();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0xaaaabbbb);
    oSampleMem->writeLong(0x3004, 0xaaaabbbb);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(20);

    oObj = new Results("MOVE.L (A2)+, -(A2)");
    oObj->setRegA(2, 0x3000);
    oObj->setN();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0xaaaabbbb);
    oSampleMem->writeLong(0x3004, 0x0);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(20);

    oObj = new Results("MOVE.L -(A2), 4(A2,D1)");
    oObj->setRegA(2, 0x3000);
    oObj->setRegD(1, 0);
    oObj->setN();
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0xaaaabbbb);
    oSampleMem->writeLong(0x3004, 0xaaaabbbb);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(28);

    oObj = new Results("MOVE.W D1, ($3000).L");
    oObj->setRegD(1, 0x5678);
    oSampleMem = new MemoryBlock();
    oSampleMem->writeWord(0x3000, 0x5678);
    oSampleMem->writeWord(0x3002, 0);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(16);

    oObj = new Results("MOVE.L ($3000).L, ($3004).L");
    oSampleMem = new MemoryBlock();
    oSampleMem->writeLong(0x3000, 0xeeee);
    oSampleMem->writeLong(0x3004, 0xeeee);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(36);

}