6502-emulator/src/machine.cpp

24 lines
671 B
C++

#include "machine.h"
#include <iostream>
Machine::Machine(shared_ptr<Program> program) {
this->program = program;
memory = make_shared<Memory>(Memory());
reg_man = make_shared<RegisterManager>(RegisterManager());
opcode_handler_dir = make_shared<OpcodeHandlerDirectory>(OpcodeHandlerDirectory(program, reg_man));
instruction_executor =
make_unique<InstructionExecutor>(InstructionExecutor(program, reg_man, opcode_handler_dir));
}
shared_ptr<Memory> Machine::get_memory() {
return memory;
}
shared_ptr<RegisterManager> Machine::get_reg_man() {
return reg_man;
}
void Machine::execute() {
instruction_executor->execute();
}