EightBit/src/Processor.cpp
Adrian Conlon c513f0cab1 GSL was too problematic when used with GCC. Removed.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2017-11-20 19:17:49 +00:00

42 lines
749 B
C++

#include "stdafx.h"
#include "Processor.h"
EightBit::Processor::Processor(Bus& bus)
: m_bus(bus) {
}
void EightBit::Processor::reset() {
PC().word = MEMPTR().word = 0;
}
void EightBit::Processor::initialise() {
reset();
}
int EightBit::Processor::run(int limit) {
int current = 0;
while (LIKELY(powered()) && current < limit) {
current += singleStep();
}
return current;
}
int EightBit::Processor::singleStep() {
return step();
}
uint8_t EightBit::Processor::fetchByte() {
return getByte(PC().word++);
}
void EightBit::Processor::fetchWord(register16_t& output) {
output.low = fetchByte();
output.high = fetchByte();
}
int EightBit::Processor::fetchExecute() {
if (LIKELY(powered()))
return execute(fetchByte());
return 0;
}