#ifndef _AS68HC11_FIXUP_HPP_ #define _AS68HC11_FIXUP_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _AS68HC11_LABEL_HPP_ #include #endif class Fixup { public: enum Kind{Label,Equate}; enum BitCount{Bit16,Bit8}; enum AddressMode{Relative,Absolute}; Fixup(void); Fixup(const Fixup &someFixup); Fixup(const String &strLabel,DWORD offset,DWORD position,Kind kind,BitCount bitCount=Bit8,AddressMode addressMode=Relative); virtual ~Fixup(); Fixup &operator=(const Fixup &someFixup); BOOL operator==(const Fixup &someFixup)const; DWORD offset(void)const; void offset(DWORD offset); DWORD position(void)const; void position(DWORD position); const String &strLabel(void)const; void strLabel(const String &strLabel); Kind kind(void)const; void kind(Kind kind); BitCount bitCount(void)const; void bitCount(BitCount bitCount); AddressMode addressMode(void)const; void addressMode(AddressMode addressMode); private: String mStrLabel; DWORD mOffset; DWORD mPosition; Kind mKind; BitCount mBitCount; AddressMode mAddressMode; }; inline Fixup::Fixup(void) : mOffset(0), mPosition(0), mKind(Label), mBitCount(Bit8), mAddressMode(Relative) { } inline Fixup::Fixup(const String &strLabel,DWORD offset,DWORD position,Kind kind,BitCount bitCount,AddressMode addressMode) : mStrLabel(strLabel), mOffset(offset), mKind(kind), mBitCount(bitCount), mAddressMode(addressMode), mPosition(position) { } inline Fixup::Fixup(const Fixup &someFixup) { *this=someFixup; } inline Fixup::~Fixup() { } inline Fixup &Fixup::operator=(const Fixup &someFixup) { strLabel(someFixup.strLabel()); offset(someFixup.offset()); position(someFixup.position()); strLabel(someFixup.strLabel()); bitCount(someFixup.bitCount()); addressMode(someFixup.addressMode()); return *this; } inline BOOL Fixup::operator==(const Fixup &someFixup)const { return (strLabel()==someFixup.strLabel()&& offset()==someFixup.offset()&& position()==someFixup.position()&& strLabel()==someFixup.strLabel()&& bitCount()==someFixup.bitCount()&& addressMode()==someFixup.addressMode()); } inline DWORD Fixup::offset(void)const { return mOffset; } inline void Fixup::offset(DWORD offset) { mOffset=offset; } inline DWORD Fixup::position(void)const { return mPosition; } inline void Fixup::position(DWORD position) { mPosition=position; } inline Fixup::Kind Fixup::kind(void)const { return mKind; } inline const String &Fixup::strLabel(void)const { return mStrLabel; } inline void Fixup::strLabel(const String &strLabel) { mStrLabel=strLabel; } inline void Fixup::kind(Kind kind) { mKind=kind; } inline Fixup::BitCount Fixup::bitCount(void)const { return mBitCount; } inline void Fixup::bitCount(BitCount bitCount) { mBitCount=bitCount; } inline Fixup::AddressMode Fixup::addressMode(void)const { return mAddressMode; } inline void Fixup::addressMode(AddressMode addressMode) { mAddressMode=addressMode; } #endif