Пример #1
0
 IncrementalCommand(
       const boost::posix_time::time_duration& initialDuration,
       const boost::posix_time::time_duration& incrementalDuration,
       const boost::function<bool()>& execute)
    : ScheduledCommand(execute), incrementalDuration_(incrementalDuration)
 {
    executeUntil(now() + initialDuration);
 }
Пример #2
0
void 
SIDWrapper::poke(uint16_t addr, uint8_t value)
{
    // Get SID up to date
    executeUntil(c64->getCycles());

    latchedDataBus = value;
    oldsid->poke(addr, value);
    resid->poke(addr, value);
}
// runs the emulator
void interpret(References* r, CPUStatus* cpu, int* interpretStatus)
{

    word_t limit = calculateExecuteLimit(r);

    int executeStatus = EXECUTE_OK;
    executeUntil(cpu, limit, &executeStatus);

    *interpretStatus = executeStatus;

}
Пример #4
0
uint8_t 
SIDWrapper::peek(uint16_t addr)
{
    // Get SID up to date
    executeUntil(c64->getCycles());
    
    // Take care of possible side effects, but discard value
    if (useReSID)
        (void)resid->peek(addr);
    else
        (void)oldsid->peek(addr);

    if (addr == 0x19 || addr == 0x1A) {
        latchedDataBus = 0;
        return 0xFF;
    }
    
    if (addr == 0x1B || addr == 0x1C) {
        latchedDataBus = 0;
        return rand();
    }
    
    return latchedDataBus;
}
Пример #5
0
 virtual void execute()
 {
    executeUntil(now() + incrementalDuration_);
 }