started work on the CHIP-8 interpreter
This commit is contained in:
41
Peripherals.hpp
Normal file
41
Peripherals.hpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <bitset>
|
||||
#include <memory>
|
||||
|
||||
namespace chocochip8 {
|
||||
|
||||
using Scanline = std::bitset<128>;
|
||||
using Framebuffer = std::array<Scanline, 64>;
|
||||
|
||||
enum class Key {
|
||||
KEY_0, KEY_1, KEY_2, KEY_3,
|
||||
KEY_4, KEY_5, KEY_6, KEY_7,
|
||||
KEY_8, KEY_9, KEY_A, KEY_B,
|
||||
KEY_C, KEY_D, KEY_E, KEY_F
|
||||
};
|
||||
|
||||
class Display {
|
||||
public:
|
||||
friend class Interpreter;
|
||||
Display(): mpFramebuffer{std::make_unique<Framebuffer>()} {}
|
||||
virtual ~Display() = default;
|
||||
protected:
|
||||
std::unique_ptr<Framebuffer> mpFramebuffer;
|
||||
};
|
||||
|
||||
class Buzzer {
|
||||
public:
|
||||
virtual ~Buzzer() = default;
|
||||
virtual void on() = 0;
|
||||
virtual void off() = 0;
|
||||
};
|
||||
|
||||
class Keypad {
|
||||
public:
|
||||
virtual ~Keypad() = default;
|
||||
virtual void isKeyPressed(Key key) = 0;
|
||||
};
|
||||
|
||||
}; // namespace chocochip8
|
||||
Reference in New Issue
Block a user