X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=3b_sim%2Fextensions%2Fcprog.hpp;fp=3b_sim%2Fextensions%2Fcprog.hpp;h=82d83cfd6ccbebe71b05b6c8d67af4cb0ebc74aa;hb=d664b832f84b5130620e78dd87c80d79ef81a139;hp=0000000000000000000000000000000000000000;hpb=b7b8e941c868a7ebdfcc3fbf15564dac19251ed6;p=calu.git diff --git a/3b_sim/extensions/cprog.hpp b/3b_sim/extensions/cprog.hpp new file mode 100644 index 0000000..82d83cf --- /dev/null +++ b/3b_sim/extensions/cprog.hpp @@ -0,0 +1,24 @@ +#include "../iext.hpp" + +class Cprog : public Iext { + public: + Cprog() : m_writeAddress(0) {}; + void applyTick() {}; + void loadData(const int address, CDat value); + CDat readData(const int) { return 0; } + private: + int m_writeAddress; +}; + +void Cprog::loadData(const int address, CDat value) +{ + if(address == 0x2034) { + m_writeAddress = value; + //adress pointer + } + else if(address == 0x2038) { + this->m_cpu->setProg(m_writeAddress, m_disasm->decodeNum(value)); + m_writeAddress += 4; + //data pointer + } +}