#ifndef __CPMEM_H__ #define __CPMEM_H__ template class CPMem; #include "cdat.hpp" #include #include #include #include "Iinstr.hpp" typedef int MEMORY_ADDRESS; /** * Name: CMem * Purpose: Class representing the memory of our emulated machine */ template class CPMem { private: //MAX_MEMORY-1 zugreifbare Speicherzellen aus BYTE_COUNT Bytes //adressierung erfolgt aber byteweise const int MAX_MEMORY; std::vector m_memory; public: //wert aus referenz auslesen und in vetor speichern (index zugriff!) //address 0 ist ProgramCounter void set(const MEMORY_ADDRESS address, const T data); //retuniert referenz eines cdat objekts mit dem Wert von address T get(const MEMORY_ADDRESS address) const; T getByte(const MEMORY_ADDRESS address) const; CPMem(int size) : MAX_MEMORY(size), m_memory(size, (T)NULL) {}; ~CPMem(); }; #endif