You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ktechlab/src/micro/picinfo14bit.h

331 lines
6.3 KiB

/***************************************************************************
* Copyright (C) 2003-2004 by David Saxton *
* david@bluehaze.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef PICINFO14BIT_H
#define PICINFO14BIT_H
#include "picinfo.h"
#include "asminfo.h"
/**
@short 14 Bit PIC Instructions
@author David Saxton
*/
class PicAsm14bit : public AsmInfo
{
public:
static PicAsm14bit *self();
virtual Set set() const { return AsmInfo::PIC14; }
protected:
static PicAsm14bit *m_self;
private:
PicAsm14bit();
};
/**
@author David Saxton
*/
class PicInfo14bit : public PicInfo
{
public:
PicInfo14bit();
~PicInfo14bit();
virtual AsmInfo* instructionSet() { return PicAsm14bit::self(); }
};
/**
@author David Saxton
*/
class PicInfo16C8x : public PicInfo14bit
{
public:
PicInfo16C8x();
~PicInfo16C8x();
};
/**
@author David Saxton
*/
class PicInfo16C84 : public PicInfo16C8x
{
public:
PicInfo16C84();
~PicInfo16C84();
virtual Support gpsimSupport() const { return FullSupport; }
virtual Support microbeSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F84 : public PicInfo16C8x
{
public:
PicInfo16F84();
~PicInfo16F84();
virtual Support gpsimSupport() const { return FullSupport; }
virtual Support flowcodeSupport() const { return FullSupport; }
virtual Support microbeSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16CR84 : public PicInfo16F84
{
public:
PicInfo16CR84();
~PicInfo16CR84();
virtual Support gpsimSupport() const { return FullSupport; }
virtual Support flowcodeSupport() const { return NoSupport; }
virtual Support microbeSupport() const { return NoSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F83 : public PicInfo16C8x
{
public:
PicInfo16F83();
~PicInfo16F83();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16CR83 : public PicInfo16F83
{
public:
PicInfo16CR83();
~PicInfo16CR83();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C61 : public PicInfo16C8x
{
public:
PicInfo16C61();
~PicInfo16C61();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16X6X : public PicInfo14bit
{
public:
PicInfo16X6X();
~PicInfo16X6X();
virtual Support gpsimSupport() const { return NoSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C62 : public PicInfo16X6X
{
public:
PicInfo16C62();
~PicInfo16C62();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C63 : public PicInfo16C62
{
public:
PicInfo16C63();
~PicInfo16C63();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C64 : public PicInfo16X6X
{
public:
PicInfo16C64();
~PicInfo16C64();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C65 : public PicInfo16C64
{
public:
PicInfo16C65();
~PicInfo16C65();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F62x : public PicInfo16X6X
{
public:
PicInfo16F62x();
~PicInfo16F62x();
virtual Support gpsimSupport() const { return NoSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F627 : public PicInfo16F62x
{
public:
PicInfo16F627();
~PicInfo16F627();
virtual Support gpsimSupport() const { return FullSupport; }
virtual Support flowcodeSupport() const { return PartialSupport; }
virtual Support microbeSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F628 : public PicInfo16F627
{
public:
PicInfo16F628();
~PicInfo16F628();
virtual Support gpsimSupport() const { return FullSupport; }
virtual Support flowcodeSupport() const { return PartialSupport; }
virtual Support microbeSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F648 : public PicInfo16F628
{
public:
PicInfo16F648();
~PicInfo16F648();
virtual Support gpsimSupport() const { return NoSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C71 : public PicInfo16C61
{
public:
PicInfo16C71();
~PicInfo16C71();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C712 : public PicInfo16C62
{
public:
PicInfo16C712();
~PicInfo16C712();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C716 : public PicInfo16C712
{
public:
PicInfo16C716();
~PicInfo16C716();
virtual Support gpsimSupport() const { return FullSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C72 : public PicInfo16C62
{
public:
PicInfo16C72();
~PicInfo16C72();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C73 : public PicInfo16C63
{
public:
PicInfo16C73();
~PicInfo16C73();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16C74 : public PicInfo16C65
{
public:
PicInfo16C74();
~PicInfo16C74();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F873 : public PicInfo16C73
{
public:
PicInfo16F873();
~PicInfo16F873();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F874 : public PicInfo16C74
{
public:
PicInfo16F874();
~PicInfo16F874();
virtual Support gpsimSupport() const { return PartialSupport; }
};
/**
@author David Saxton
*/
class PicInfo16F877 : public PicInfo16F874
{
public:
PicInfo16F877();
~PicInfo16F877();
virtual Support gpsimSupport() const { return PartialSupport; }
};
#endif