summaryrefslogtreecommitdiffstats
path: root/src/micro/picinfo14bit.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/micro/picinfo14bit.h')
-rw-r--r--src/micro/picinfo14bit.h330
1 files changed, 330 insertions, 0 deletions
diff --git a/src/micro/picinfo14bit.h b/src/micro/picinfo14bit.h
new file mode 100644
index 0000000..4f20cb1
--- /dev/null
+++ b/src/micro/picinfo14bit.h
@@ -0,0 +1,330 @@
+/***************************************************************************
+ * Copyright (C) 2003-2004 by David Saxton *
+ * *
+ * 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