Introduce an IntelProcessor base class to allow known good implementation to be shared.

Signed-off-by: Adrian.Conlon <adrian.conlon@gmail.com>
This commit is contained in:
Adrian.Conlon
2017-06-11 09:45:34 +01:00
parent b1aa523dcc
commit 627e41bf35
12 changed files with 133 additions and 117 deletions

36
src/IntelProcessor.cpp Normal file
View File

@@ -0,0 +1,36 @@
#include "stdafx.h"
#include "IntelProcessor.h"
EightBit::IntelProcessor::IntelProcessor(Memory& memory)
: Processor(memory) {
MEMPTR().word = 0;
}
EightBit::IntelProcessor::~IntelProcessor() {
}
void EightBit::IntelProcessor::initialise() {
Processor::initialise();
MEMPTR().word = 0;
}
void EightBit::IntelProcessor::push(uint8_t value) {
m_memory.ADDRESS().word = --sp.word;
m_memory.reference() = value;
}
void EightBit::IntelProcessor::pushWord(register16_t value) {
push(value.high);
push(value.low);
}
uint8_t EightBit::IntelProcessor::pop() {
m_memory.ADDRESS().word = sp.word++;
return m_memory.reference();
}
void EightBit::IntelProcessor::popWord(register16_t& output) {
output.low = pop();
output.high = pop();
}