uart: swap status with config half word
[calu.git] / 3b_sim / ccpu.hpp
index e428f630dd637dcf0e5cdbcb5c53af1ed0140316..4c250b57570b97363655da1bbf9c8374e3013843 100644 (file)
@@ -15,7 +15,7 @@ class CCpu {
 
                bool m_Z, m_S, m_C, m_O;
 
-               CDat m_pc, m_pc_next;
+               CDat m_pc, m_pc_next, m_perf;
                CMem<CDat> m_reg, m_ram;
                CPMem<Iinstr*> m_prog;
 
@@ -34,11 +34,27 @@ class CCpu {
                Iinstr* getProg(const int) const;
                void setProg(const int, Iinstr*);
 
+               CDat getPerf() const;
+               void setPerf(CDat);
+               void incPerf();
+               void incPerfBy(short);
+
                CDat getCurPC() const;
+               CDat getNextPC() const;
                void setNextPC(CDat);
 
+               CDat getFlags() const;
+               void setFlags(CDat);
+               /* will only change zero and sign */
                void updateFlags(CDat);
+               /* will change all flags */
+               void updateFlags(CDatd, CDat, CDat);
+               /* will change all flags */
                void updateFlags(bool z, bool o, bool c, bool s);
+               /* will change carry */
+               void updateCarry(bool c);
+
+               bool getCarry();
 
                bool conditionMet(short);