File indexing completed on 2024-06-16 11:34:37

0001 /***************************************************************************
0002  *   Copyright (C) 2003-2004 by David Saxton                               *
0003  *   david@bluehaze.org                                                    *
0004  *                                                                         *
0005  *   This program is free software; you can redistribute it and/or modify  *
0006  *   it under the terms of the GNU General Public License as published by  *
0007  *   the Free Software Foundation; either version 2 of the License, or     *
0008  *   (at your option) any later version.                                   *
0009  ***************************************************************************/
0010 
0011 #ifndef PICINFO12BIT_H
0012 #define PICINFO12BIT_H
0013 
0014 #include "asminfo.h"
0015 #include "picinfo.h"
0016 
0017 /**
0018 @short 12 Bit PIC Instructions
0019 @author David Saxton
0020  */
0021 class PicAsm12bit : public AsmInfo
0022 {
0023 public:
0024     static PicAsm12bit *self();
0025     Set set() const override
0026     {
0027         return AsmInfo::PIC12;
0028     }
0029 
0030     // protected:
0031     //  static PicAsm12bit *m_self;
0032 
0033     PicAsm12bit();
0034 };
0035 
0036 /**
0037 @author David Saxton
0038  */
0039 class PicInfo12bit : public PicInfo
0040 {
0041 public:
0042     PicInfo12bit();
0043     ~PicInfo12bit() override;
0044 
0045     AsmInfo *instructionSet() override
0046     {
0047         return PicAsm12bit::self();
0048     }
0049 };
0050 
0051 /**
0052 @author David Saxton
0053  */
0054 class PicInfo16C54 : public PicInfo12bit
0055 {
0056 public:
0057     PicInfo16C54();
0058     ~PicInfo16C54() override;
0059     Support gpsimSupport() const override
0060     {
0061         return FullSupport;
0062     }
0063 };
0064 
0065 /**
0066 @author David Saxton
0067  */
0068 class PicInfo16C55 : public PicInfo12bit
0069 {
0070 public:
0071     PicInfo16C55();
0072     ~PicInfo16C55() override;
0073     Support gpsimSupport() const override
0074     {
0075         return FullSupport;
0076     }
0077 };
0078 
0079 /**
0080 @author David Saxton
0081  */
0082 class PicInfo12C508 : public PicInfo12bit
0083 {
0084 public:
0085     PicInfo12C508();
0086     ~PicInfo12C508() override;
0087     Support gpsimSupport() const override
0088     {
0089         return FullSupport;
0090     }
0091 };
0092 
0093 /**
0094 @author David Saxton
0095  */
0096 class PicInfo12C509 : public PicInfo12C508
0097 {
0098 public:
0099     PicInfo12C509();
0100     ~PicInfo12C509() override;
0101     Support gpsimSupport() const override
0102     {
0103         return FullSupport;
0104     }
0105 };
0106 
0107 /**
0108 @author David Saxton
0109  */
0110 class PicInfo12C671 : public PicInfo12C508
0111 {
0112 public:
0113     PicInfo12C671();
0114     ~PicInfo12C671() override;
0115     Support gpsimSupport() const override
0116     {
0117         return NoSupport;
0118     }
0119 };
0120 
0121 /**
0122 @author David Saxton
0123  */
0124 class PicInfo12C672 : public PicInfo12C508
0125 {
0126 public:
0127     PicInfo12C672();
0128     ~PicInfo12C672() override;
0129     Support gpsimSupport() const override
0130     {
0131         return NoSupport;
0132     }
0133 };
0134 
0135 #endif