Fill memory on init, organize tests, housekeeping
This commit is contained in:
@@ -328,6 +328,11 @@ class CPU : public Memory {
|
||||
// Helper function to get the value of a specific flag bit
|
||||
bool GetFlag(uint8_t mask) const { return (status & mask) != 0; }
|
||||
|
||||
void ClearMemory() override { memory.ClearMemory(); }
|
||||
void LoadData(const std::vector<uint8_t>& data) override {
|
||||
memory.LoadData(data);
|
||||
}
|
||||
|
||||
// Appease the C++ Gods...
|
||||
uint8_t operator[](int i) const override { return 0; }
|
||||
uint8_t at(int i) const override { return 0; }
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace emu {
|
||||
|
||||
class DirectPageMemory {
|
||||
public:
|
||||
DirectPageMemory(size_t size = 256) : memory_(size, 0) {}
|
||||
explicit DirectPageMemory(size_t size = 256) : memory_(size, 0) {}
|
||||
|
||||
uint8_t ReadByte(uint8_t address) const { return memory_[address]; }
|
||||
|
||||
@@ -35,6 +35,8 @@ class Memory {
|
||||
virtual void WriteWord(uint32_t address, uint16_t value) = 0;
|
||||
|
||||
virtual void SetMemory(const std::vector<uint8_t>& data) = 0;
|
||||
virtual void ClearMemory() = 0;
|
||||
virtual void LoadData(const std::vector<uint8_t>& data) = 0;
|
||||
|
||||
virtual uint8_t operator[](int i) const = 0;
|
||||
virtual uint8_t at(int i) const = 0;
|
||||
@@ -75,6 +77,12 @@ class MemoryImpl : public Memory {
|
||||
|
||||
void SetMemory(const std::vector<uint8_t>& data) override { memory_ = data; }
|
||||
|
||||
void ClearMemory() override { memory_.resize(64000, 0x00); }
|
||||
|
||||
void LoadData(const std::vector<uint8_t>& data) override {
|
||||
std::copy(data.begin(), data.end(), memory_.begin());
|
||||
}
|
||||
|
||||
uint8_t at(int i) const override { return memory_[i]; }
|
||||
auto size() const { return memory_.size(); }
|
||||
auto begin() const { return memory_.begin(); }
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
Reference in New Issue
Block a user