File indexing completed on 2024-04-28 09:38:59

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 PICINFO16BIT_H
0012 #define PICINFO16BIT_H
0013 
0014 #include "asminfo.h"
0015 #include "picinfo.h"
0016 
0017 /**
0018 @short 16 Bit PIC Instructions
0019 @author David Saxton
0020  */
0021 class PicAsm16bit : public AsmInfo
0022 {
0023 public:
0024     static PicAsm16bit *self();
0025     Set set() const override
0026     {
0027         return AsmInfo::PIC16;
0028     }
0029 
0030 protected:
0031     //      static PicAsm16bit *m_self;
0032 
0033 public:
0034     PicAsm16bit();
0035 };
0036 
0037 /**
0038 @author David Saxton
0039  */
0040 class PicInfo16bit : public PicInfo
0041 {
0042 public:
0043     PicInfo16bit();
0044     ~PicInfo16bit() override;
0045 
0046     AsmInfo *instructionSet() override
0047     {
0048         return PicAsm16bit::self();
0049     }
0050 };
0051 
0052 /**
0053 @author David Saxton
0054  */
0055 class PicInfo17C7xx : public PicInfo16bit
0056 {
0057 public:
0058     PicInfo17C7xx();
0059     ~PicInfo17C7xx() override;
0060     Support gpsimSupport() const override
0061     {
0062         return NoSupport;
0063     }
0064 };
0065 
0066 /**
0067 @author David Saxton
0068  */
0069 class PicInfo17C75x : public PicInfo17C7xx
0070 {
0071 public:
0072     PicInfo17C75x();
0073     ~PicInfo17C75x() override;
0074     Support gpsimSupport() const override
0075     {
0076         return NoSupport;
0077     }
0078 };
0079 
0080 /**
0081 Note: this PIC is not supported by SDCC
0082 @author David Saxton
0083  */
0084 class PicInfo17C752 : public PicInfo17C75x
0085 {
0086 public:
0087     PicInfo17C752();
0088     ~PicInfo17C752() override;
0089     Support gpsimSupport() const override
0090     {
0091         return NoSupport;
0092     }
0093 };
0094 
0095 /**
0096 Note: this PIC is not supported by SDCC
0097 @author David Saxton
0098  */
0099 class PicInfo17C756 : public PicInfo17C75x
0100 {
0101 public:
0102     PicInfo17C756();
0103     ~PicInfo17C756() override;
0104     Support gpsimSupport() const override
0105     {
0106         return NoSupport;
0107     }
0108 };
0109 
0110 /**
0111 Note: this PIC is not supported by SDCC
0112 @author David Saxton
0113  */
0114 class PicInfo17C756A : public PicInfo17C75x
0115 {
0116 public:
0117     PicInfo17C756A();
0118     ~PicInfo17C756A() override;
0119     Support gpsimSupport() const override
0120     {
0121         return NoSupport;
0122     }
0123 };
0124 
0125 /**
0126 Note: this PIC is not supported by SDCC
0127 @author David Saxton
0128  */
0129 class PicInfo17C762 : public PicInfo17C75x
0130 {
0131 public:
0132     PicInfo17C762();
0133     ~PicInfo17C762() override;
0134     Support gpsimSupport() const override
0135     {
0136         return NoSupport;
0137     }
0138 };
0139 
0140 /**
0141 Note: this PIC is not supported by SDCC
0142 @author David Saxton
0143  */
0144 class PicInfo17C766 : public PicInfo17C75x
0145 {
0146 public:
0147     PicInfo17C766();
0148     ~PicInfo17C766() override;
0149     Support gpsimSupport() const override
0150     {
0151         return NoSupport;
0152     }
0153 };
0154 
0155 /**
0156 @author David Saxton
0157  */
0158 class PicInfo18Cxx2 : public PicInfo16bit
0159 {
0160 public:
0161     PicInfo18Cxx2();
0162     ~PicInfo18Cxx2() override;
0163     Support gpsimSupport() const override
0164     {
0165         return NoSupport;
0166     }
0167 };
0168 
0169 /**
0170 @author David Saxton
0171  */
0172 class PicInfo18C2x2 : public PicInfo16bit
0173 {
0174 public:
0175     PicInfo18C2x2();
0176     ~PicInfo18C2x2() override;
0177     Support gpsimSupport() const override
0178     {
0179         return NoSupport;
0180     }
0181 };
0182 
0183 /**
0184 Note: this PIC is not supported by SDCC
0185 @author David Saxton
0186  */
0187 class PicInfo18C242 : public PicInfo18C2x2
0188 {
0189 public:
0190     PicInfo18C242();
0191     ~PicInfo18C242() override;
0192     Support gpsimSupport() const override
0193     {
0194         return FullSupport;
0195     }
0196 };
0197 
0198 /**
0199 Note: this PIC is not supported by SDCC
0200 @author David Saxton
0201  */
0202 class PicInfo18C252 : public PicInfo18C242
0203 {
0204 public:
0205     PicInfo18C252();
0206     ~PicInfo18C252() override;
0207     Support gpsimSupport() const override
0208     {
0209         return FullSupport;
0210     }
0211 };
0212 
0213 /**
0214 @author David Saxton
0215  */
0216 class PicInfo18C4x2 : public PicInfo16bit
0217 {
0218 public:
0219     PicInfo18C4x2();
0220     ~PicInfo18C4x2() override;
0221     Support gpsimSupport() const override
0222     {
0223         return NoSupport;
0224     }
0225 };
0226 
0227 /**
0228 Note: this PIC is not supported by SDCC
0229 @author David Saxton
0230  */
0231 class PicInfo18C442 : public PicInfo18C4x2
0232 {
0233 public:
0234     PicInfo18C442();
0235     ~PicInfo18C442() override;
0236     Support gpsimSupport() const override
0237     {
0238         return FullSupport;
0239     }
0240 };
0241 
0242 /**
0243 Note: this PIC is not supported by SDCC
0244 @author David Saxton
0245  */
0246 class PicInfo18C452 : public PicInfo18C442
0247 {
0248 public:
0249     PicInfo18C452();
0250     ~PicInfo18C452() override;
0251     Support gpsimSupport() const override
0252     {
0253         return FullSupport;
0254     }
0255 };
0256 
0257 /**
0258 @author David Saxton
0259  */
0260 class PicInfo18F442 : public PicInfo18C442
0261 {
0262 public:
0263     PicInfo18F442();
0264     ~PicInfo18F442() override;
0265     Support gpsimSupport() const override
0266     {
0267         return FullSupport;
0268     }
0269 };
0270 
0271 /**
0272 @author David Saxton
0273  */
0274 class PicInfo18F248 : public PicInfo18F442
0275 {
0276 public:
0277     PicInfo18F248();
0278     ~PicInfo18F248() override;
0279     Support gpsimSupport() const override
0280     {
0281         return FullSupport;
0282     }
0283 };
0284 
0285 /**
0286 @author David Saxton
0287  */
0288 class PicInfo18F452 : public PicInfo18F442
0289 {
0290 public:
0291     PicInfo18F452();
0292     ~PicInfo18F452() override;
0293     Support gpsimSupport() const override
0294     {
0295         return FullSupport;
0296     }
0297 };
0298 
0299 /**
0300 @author David Saxton
0301  */
0302 class PicInfo18Fxx20 : public PicInfo16bit
0303 {
0304 public:
0305     PicInfo18Fxx20();
0306     ~PicInfo18Fxx20() override;
0307     Support gpsimSupport() const override
0308     {
0309         return NoSupport;
0310     }
0311 };
0312 
0313 /**
0314 @author David Saxton
0315  */
0316 class PicInfo18F1220 : public PicInfo18Fxx20
0317 {
0318 public:
0319     PicInfo18F1220();
0320     ~PicInfo18F1220() override;
0321     Support gpsimSupport() const override
0322     {
0323         return FullSupport;
0324     }
0325 };
0326 
0327 /**
0328 @author David Saxton
0329  */
0330 class PicInfo18F1320 : public PicInfo18F1220
0331 {
0332 public:
0333     PicInfo18F1320();
0334     ~PicInfo18F1320() override;
0335     Support gpsimSupport() const override
0336     {
0337         return FullSupport;
0338     }
0339 };
0340 
0341 #endif