Initial
This commit is contained in:
108
as68hc11/Mode.hpp
Normal file
108
as68hc11/Mode.hpp
Normal file
@@ -0,0 +1,108 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user