Files
Work/as68hc11/backup/CODEPTR.HPP
2024-08-07 09:12:07 -04:00

125 lines
2.1 KiB
C++

#ifndef _AS68HC11_CODEPOINTER_HPP_
#define _AS68HC11_CODEPOINTER_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class CodePointer
{
public:
CodePointer(void);
CodePointer(const CodePointer &someCodePointer);
CodePointer(DWORD origin,DWORD position);
virtual ~CodePointer();
CodePointer &operator=(const CodePointer &someCodePointer);
BOOL operator==(const CodePointer &someCodePointer)const;
CodePointer &operator++(void);
CodePointer &operator++(int postFixDummy);
CodePointer &operator+=(DWORD value);
CodePointer &operator-=(DWORD value);
DWORD origin(void)const;
void origin(DWORD origin);
DWORD position(void)const;
void position(DWORD position);
void reset(void);
private:
DWORD mOrigin;
DWORD mPosition;
};
inline
CodePointer::CodePointer(void)
: mOrigin(0), mPosition(0)
{
}
inline
CodePointer::CodePointer(DWORD origin,DWORD position)
: mOrigin(origin), mPosition(position)
{
}
inline
CodePointer::CodePointer(const CodePointer &someCodePointer)
{
*this=someCodePointer;
}
inline
CodePointer::~CodePointer()
{
}
inline
CodePointer &CodePointer::operator=(const CodePointer &someCodePointer)
{
origin(someCodePointer.origin());
position(someCodePointer.position());
return *this;
}
inline
BOOL CodePointer::operator==(const CodePointer &someCodePointer)const
{
return (origin()==someCodePointer.origin()&&position()==someCodePointer.position());
}
inline
CodePointer &CodePointer::operator++(void)
{
position(position()+1);
return *this;
}
inline
CodePointer &CodePointer::operator++(int postfixDummy)
{
return operator++();
}
inline
CodePointer &CodePointer::operator+=(DWORD value)
{
position(position()+value);
return *this;
}
inline
CodePointer &CodePointer::operator-=(DWORD value)
{
position(position()-value);
return *this;
}
inline
DWORD CodePointer::origin(void)const
{
return mOrigin;
}
inline
void CodePointer::origin(DWORD origin)
{
mOrigin=origin;
position(origin);
}
inline
DWORD CodePointer::position(void)const
{
return mPosition;
}
inline
void CodePointer::position(DWORD position)
{
mPosition=position;
}
inline
void CodePointer::reset(void)
{
origin(0);
position(0);
}
#endif