initial commit

This commit is contained in:
2026-03-03 23:50:39 -06:00
commit fa9ff2c753
14 changed files with 441 additions and 0 deletions

37
memory.h Normal file
View File

@@ -0,0 +1,37 @@
#ifndef BEAR_MEMORY_H
#define BEAR_MEMORY_H
#include <cstddef>
#include <cstdint>
#include "Bus.h"
class IMemoryAccessor
{
public:
virtual ~IMemoryAccessor() = default;
virtual void write(std::uint16_t _addr, std::uint8_t value) = 0;
virtual std::uint8_t read8(std::uint16_t _addr) = 0;
};
class CPUMemoryAccessor : public IMemoryAccessor
{
public:
explicit CPUMemoryAccessor(Bus* bus);
~CPUMemoryAccessor() override = default;
void write(std::uint16_t _addr, std::uint8_t value) override;
std::uint8_t read8(std::uint16_t _addr) override;
private:
std::uint8_t* ram = nullptr;
Bus* bus = nullptr;
static bool isRamAddress(std::uint16_t _addr);
[[nodiscard]] std::uint8_t readFromRam(std::uint16_t _addr) const;
void writeToRam(std::uint16_t _addr, std::uint8_t value) const;
};
#endif //BEAR_MEMORY_H