diff --git a/inc/InputOutput.h b/inc/InputOutput.h index a4ffb0f..e3d6d78 100644 --- a/inc/InputOutput.h +++ b/inc/InputOutput.h @@ -10,7 +10,7 @@ namespace EightBit { public: enum class AccessType { Unknown, Reading, Writing }; - [[nodiscard]] size_t size() const noexcept override; + [[nodiscard]] uint16_t size() const noexcept override; [[nodiscard]] uint8_t peek(uint16_t address) const noexcept override; [[nodiscard]] uint8_t& reference(uint16_t address) noexcept override; diff --git a/inc/Memory.h b/inc/Memory.h index baaa5cb..e8076f3 100644 --- a/inc/Memory.h +++ b/inc/Memory.h @@ -16,7 +16,7 @@ namespace EightBit { public: virtual ~Memory() {}; - [[nodiscard]] virtual size_t size() const noexcept = 0; + [[nodiscard]] virtual uint16_t size() const noexcept = 0; [[nodiscard]] virtual uint8_t peek(uint16_t address) const noexcept = 0; [[nodiscard]] virtual uint8_t& reference(uint16_t) noexcept; diff --git a/inc/Rom.h b/inc/Rom.h index ff47e2b..c988863 100644 --- a/inc/Rom.h +++ b/inc/Rom.h @@ -30,7 +30,7 @@ namespace EightBit { Rom& operator=(const Rom& rhs); bool operator==(const Rom& rhs) const; - [[nodiscard]] size_t size() const noexcept final; + [[nodiscard]] uint16_t size() const noexcept final; int load(std::ifstream& file, int writeOffset = 0, int readOffset = 0, int limit = -1) final; int load(std::string path, int writeOffset = 0, int readOffset = 0, int limit = -1) final; diff --git a/inc/UnusedMemory.h b/inc/UnusedMemory.h index ec0e57a..cd60245 100644 --- a/inc/UnusedMemory.h +++ b/inc/UnusedMemory.h @@ -13,10 +13,10 @@ namespace EightBit { // is being read. class UnusedMemory final : public Memory { public: - UnusedMemory(size_t size, uint8_t value) noexcept; + UnusedMemory(uint16_t size, uint8_t value) noexcept; ~UnusedMemory() = default; - [[nodiscard]] size_t size() const noexcept final; + [[nodiscard]] uint16_t size() const noexcept final; [[nodiscard]] uint8_t peek(uint16_t address) const noexcept final; int load(std::ifstream& file, int writeOffset = 0, int readOffset = 0, int limit = -1) final; @@ -27,7 +27,7 @@ namespace EightBit { void poke(uint16_t address, uint8_t value) noexcept final; private: - size_t m_size; + uint16_t m_size; uint8_t m_value; }; } \ No newline at end of file diff --git a/src/InputOutput.cpp b/src/InputOutput.cpp index e4d2d49..34e611e 100644 --- a/src/InputOutput.cpp +++ b/src/InputOutput.cpp @@ -6,7 +6,7 @@ #include "../inc/Register.h" -size_t EightBit::InputOutput::size() const noexcept { +uint16_t EightBit::InputOutput::size() const noexcept { return 0x100; } diff --git a/src/Rom.cpp b/src/Rom.cpp index c8defd8..24cf331 100644 --- a/src/Rom.cpp +++ b/src/Rom.cpp @@ -57,8 +57,10 @@ EightBit::Rom& EightBit::Rom::operator=(const Rom& rhs) { return *this; } -size_t EightBit::Rom::size() const noexcept { - return m_bytes.size(); +uint16_t EightBit::Rom::size() const noexcept { + const auto size = BYTES().size(); + assert(size <= 0x10000); + return static_cast(size); } int EightBit::Rom::load(std::ifstream& file, const int writeOffset, const int readOffset, const int limit) { diff --git a/src/UnusedMemory.cpp b/src/UnusedMemory.cpp index f368930..405b8a7 100644 --- a/src/UnusedMemory.cpp +++ b/src/UnusedMemory.cpp @@ -3,10 +3,10 @@ #include -EightBit::UnusedMemory::UnusedMemory(const size_t size, const uint8_t value) noexcept +EightBit::UnusedMemory::UnusedMemory(const uint16_t size, const uint8_t value) noexcept : m_size(size), m_value(value) {} -size_t EightBit::UnusedMemory::size() const noexcept { +uint16_t EightBit::UnusedMemory::size() const noexcept { return m_size; }