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); }
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; }
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; }
virtual void execute() { executeUntil(now() + incrementalDuration_); }