Ejemplo n.º 1
0
void Tester_68k::sampleSbcd() {
    Results* oObj;
    MemoryBlock* oSampleMem;

    oObj = new Results("SBCD D2, D1");
    oObj->setRegD(1, 0x12345611);
    oObj->setRegD(2, 0xf745ff78);
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("SBCD D2, D1 zero");
    oObj->setRegD(1, 0x12345600);
    oObj->setRegD(2, 0xf745ffff);
    oObj->setZ();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("SBCD D2, D1 neg");
    oObj->setRegD(1, 0x12345688);
    oObj->setRegD(2, 0xf745ff45);
    oObj->setX()->setN()->setC();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("SBCD D2, D1 overflow");
    oObj->setRegD(1, 0x12345643);
    oObj->setRegD(2, 0xf745ffff);
    oObj->setX()->setV()->setC();
    oObj->setCycleCount(6);
    oObj->setIrqSampleCyclePos(2);

    oObj = new Results("SBCD -(A2), -(A1)");
    oObj->setN();
    oObj->setRegA(1, 0x3000);
    oObj->setRegA(2, 0x4000);
    oSampleMem = new MemoryBlock;
    oSampleMem->write(0x3000, 0x82);
    oSampleMem->write(0x4000, 0x19);
    oObj->setCodeBlock(oSampleMem);
    oObj->setCycleCount(18);
}