#ifndef INC_6502_EMULATOR_OPCODE_HANDLER_H #define INC_6502_EMULATOR_OPCODE_HANDLER_H #include "../program.h" #include "../register/register-manager.h" #include #include using namespace std; class OpcodeHandler { public: OpcodeHandler(shared_ptr program, shared_ptr reg_man); shared_ptr> get_handled_opcodes() { return handled_opcodes; } virtual void execute() = 0; protected: shared_ptr> handled_opcodes = make_shared>(); shared_ptr program; shared_ptr reg_man; void move_program_counter(uint8_t forward_by); }; #endif //INC_6502_EMULATOR_OPCODE_HANDLER_H