Beispiel #1
0
void MC6845::scheduleTimer(OESLong cycles)
{
    updateVideo();
    
    if (imageModified)
    {
        imageModified = false;
        
        if (videoEnabled)
            postImage();
    }
    
    if ((powerState == CONTROLBUS_POWERSTATE_ON) && blinkEnabled)
    {
        blinkCount++;
        
        if (blinkCount >= blinkFrameNum)
        {
            blink = !blink;
            blinkCount = 0;
            
            refreshVideo();
        }
    }
    
    controlBus->postMessage(this, CONTROLBUS_GET_CYCLES, &frameStart);
    frameStart += cycles;
    
    ControlBusTimer timer = { cycles + ceil(frameCycleNum / clockMultiplier), 0 };
    controlBus->postMessage(this, CONTROLBUS_SCHEDULE_TIMER, &timer);
    
    if (frameStartAddress.w.l != startAddress.w.l)
        refreshVideo();
    
    frameStartAddress.w = startAddress.w;
}
Beispiel #2
0
void ScreenManager::slot_onConnect()
{
    postImage();
}