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; }
void ScreenManager::slot_onConnect() { postImage(); }