This commit is contained in:
2022-11-12 21:22:07 -08:00
parent 3337b9f536
commit c3b3de5416
4 changed files with 62 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ public:
/// @param address
/// @return reference to memory at given address
auto At(std::size_t address) -> ValueType &;
auto At(std::size_t address) const -> ValueType;
/// Access memory at address relative to base pointer
/// @param offset from base pointer

View File

@@ -11,6 +11,12 @@ auto Machine::At(std::size_t const i) -> ValueType & {
return i < rom_.size() ? rom_[i] : ram_[i];
}
auto Machine::At(std::size_t const i) const -> ValueType {
if (i < rom_.size()) return rom_[i];
if (auto it = ram_.find(i); it != ram_.end()) { return it->second; }
return 0;
}
auto Machine::Rel(std::size_t const i) -> ValueType & {
return At(base_ + i);
}