#ifndef CHIP8_CHIP8_H #define CHIP8_CHIP8_H #include #include #include "display.h" class InstructionHandler; class Chip8 { private: unsigned char memory[0xFFF] = {}; unsigned char v[0x10] = {}; std::stack stack{}; unsigned short pc; Display display; InstructionHandler* instructionHandler; public: Chip8(); ~Chip8(); void loadRom(const std::string&); [[nodiscard]] Display getDisplay() const; void emulateCycle(); [[nodiscard]] unsigned short popFromStack(); void setProgramCounter(unsigned short); }; #endif //CHIP8_CHIP8_H