108 lines
2.3 KiB
C++
108 lines
2.3 KiB
C++
#ifndef _AS68HC11_ADDRESSMODE_HPP_
|
|
#define _AS68HC11_ADDRESSMODE_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
|
|
class AddressMode
|
|
{
|
|
public:
|
|
enum Attribute{None=0x0000,Inherent=0x001,Immediate=0x0002,Direct=0x0004,Extended=0x0008,Indexed=0x0010,Relative=0x0020,Mask=0x0040,IndexedRelativeMask=Indexed|Relative|Mask,DirectRelativeMask=Direct|Relative|Mask,IndexedMask=Indexed|Mask,DirectMask=Direct|Mask};
|
|
AddressMode(void);
|
|
AddressMode(const AddressMode &someAddressMode);
|
|
AddressMode(Attribute attribute,BYTE opcode,BYTE prebyte=0x00);
|
|
virtual ~AddressMode();
|
|
AddressMode &operator=(const AddressMode &someAddressMode);
|
|
BOOL operator==(const AddressMode &someAddressMode)const;
|
|
operator String(void);
|
|
Attribute attribute(void)const;
|
|
void attribute(Attribute attribute);
|
|
BYTE opcode(void)const;
|
|
void opcode(BYTE opcode);
|
|
BYTE prebyte(void)const;
|
|
void prebyte(BYTE prebyte);
|
|
private:
|
|
Attribute mAttribute;
|
|
BYTE mOpCode;
|
|
BYTE mPreByte;
|
|
};
|
|
|
|
inline
|
|
AddressMode::AddressMode(void)
|
|
: mAttribute(None), mOpCode(0x00), mPreByte(0x00)
|
|
{
|
|
}
|
|
|
|
inline
|
|
AddressMode::AddressMode(const AddressMode &someAddressMode)
|
|
{
|
|
*this=someAddressMode;
|
|
}
|
|
|
|
inline
|
|
AddressMode::AddressMode(Attribute attribute,BYTE opcode,BYTE prebyte)
|
|
: mAttribute(attribute), mOpCode(opcode), mPreByte(prebyte)
|
|
{
|
|
}
|
|
|
|
inline
|
|
AddressMode::~AddressMode()
|
|
{
|
|
}
|
|
|
|
inline
|
|
AddressMode &AddressMode::operator=(const AddressMode &someAddressMode)
|
|
{
|
|
attribute(someAddressMode.attribute());
|
|
opcode(someAddressMode.opcode());
|
|
prebyte(someAddressMode.prebyte());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
BOOL AddressMode::operator==(const AddressMode &someAddressMode)const
|
|
{
|
|
return (attribute()==someAddressMode.attribute()&&
|
|
opcode()==someAddressMode.opcode()&&
|
|
prebyte()==someAddressMode.prebyte());
|
|
}
|
|
|
|
inline
|
|
AddressMode::Attribute AddressMode::attribute(void)const
|
|
{
|
|
return mAttribute;
|
|
}
|
|
|
|
inline
|
|
void AddressMode::attribute(Attribute attribute)
|
|
{
|
|
mAttribute=attribute;
|
|
}
|
|
|
|
inline
|
|
BYTE AddressMode::opcode(void)const
|
|
{
|
|
return mOpCode;
|
|
}
|
|
|
|
inline
|
|
void AddressMode::opcode(BYTE opcode)
|
|
{
|
|
mOpCode=opcode;
|
|
}
|
|
|
|
inline
|
|
BYTE AddressMode::prebyte(void)const
|
|
{
|
|
return mPreByte;
|
|
}
|
|
|
|
inline
|
|
void AddressMode::prebyte(BYTE prebyte)
|
|
{
|
|
mPreByte=prebyte;
|
|
}
|
|
#endif |