#ifndef __CMEM_H__ #define __CMEM_H__ #include "cdat.hpp" #include #include typedef int MEMORY_ADDRESS; /** * Name: CMem * Purpose: Class representing the memory of our emulated machine */ template class CMem { private: //MAX_MEMORY-1 zugreifbare Speicherzellen const int MAX_MEMORY; std::vector m_memory; public: /* aligns to BIT_LEN words, aka. does calc direct memorycell from address */ void set(const MEMORY_ADDRESS address, const T data); T get(const MEMORY_ADDRESS address) const; /* doesn't align, user has to do */ void setDirect(const MEMORY_ADDRESS address, const T data); T getDirect(const MEMORY_ADDRESS address) const; CMem(int size) : MAX_MEMORY(size), m_memory(size,(T)NULL) {}; }; #endif