/* * Author: Pawel Jablonski * E-mail: pj@xirx.net * WWW: xirx.net * GIT: git.xirx.net * * License: You can use this code however you like * but leave information about the original author. * Code is free for non-commercial and commercial use. */ #ifndef UROMDATA_H #define UROMDATA_H #include #include #include #include "instruction.h" //! This class contains a whole generated microcode for all instructions class URomData { public: static const int INSTRUCTION_QUANTITY = 256; //!< Support only for 256 opcodes static const int INSTRUCTION_CYCLE_QUANTITY = 16; //!< Every instruction can get only 16 steps static const int ADDRESS_FLAG_C_POSITION = 12; //!< Position of the carry bit received from ALU to the control unit static const int ADDRESS_FLAG_Z_POSITION = 13; //!< Position of the zero bit received from ALU to the control unit static const int UROM_SIZE = 32768; //!< uROM size for low and high banks URomData(); void addInstruction(const Instruction &instruction); bool saveFiles(const QString &urom0Path, const QString &urom1Path); private: //! Data container for low and high banks QVector> data = { QVector(UROM_SIZE), QVector(UROM_SIZE) }; }; #endif