File indexing completed on 2024-04-14 05:36:54
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 PICINFO14BIT_H 0012 #define PICINFO14BIT_H 0013 0014 #include "asminfo.h" 0015 #include "picinfo.h" 0016 0017 /** 0018 @short 14 Bit PIC Instructions 0019 @author David Saxton 0020 */ 0021 class PicAsm14bit : public AsmInfo 0022 { 0023 public: 0024 static PicAsm14bit *self(); 0025 Set set() const override 0026 { 0027 return AsmInfo::PIC14; 0028 } 0029 0030 // protected: 0031 // static PicAsm14bit *m_self; 0032 0033 // private: 0034 PicAsm14bit(); 0035 }; 0036 0037 /** 0038 @author David Saxton 0039 */ 0040 class PicInfo14bit : public PicInfo 0041 { 0042 public: 0043 PicInfo14bit(); 0044 ~PicInfo14bit() override; 0045 0046 AsmInfo *instructionSet() override 0047 { 0048 return PicAsm14bit::self(); 0049 } 0050 }; 0051 0052 /** 0053 @author David Saxton 0054 */ 0055 class PicInfo16C8x : public PicInfo14bit 0056 { 0057 public: 0058 PicInfo16C8x(); 0059 ~PicInfo16C8x() override; 0060 }; 0061 0062 /** 0063 Note: this PIC is superseeded by 16F84. SDCC does not recognize it. 0064 @author David Saxton 0065 */ 0066 class PicInfo16C84 : public PicInfo16C8x 0067 { 0068 public: 0069 PicInfo16C84(); 0070 ~PicInfo16C84() override; 0071 Support gpsimSupport() const override 0072 { 0073 return FullSupport; 0074 } 0075 Support microbeSupport() const override 0076 { 0077 return FullSupport; 0078 } 0079 }; 0080 0081 /** 0082 @author David Saxton 0083 */ 0084 class PicInfo16F84 : public PicInfo16C8x 0085 { 0086 public: 0087 PicInfo16F84(); 0088 ~PicInfo16F84() override; 0089 Support gpsimSupport() const override 0090 { 0091 return FullSupport; 0092 } 0093 Support flowcodeSupport() const override 0094 { 0095 return FullSupport; 0096 } 0097 Support microbeSupport() const override 0098 { 0099 return FullSupport; 0100 } 0101 }; 0102 0103 /** 0104 @author David Saxton 0105 */ 0106 class PicInfo16CR84 : public PicInfo16F84 0107 { 0108 public: 0109 PicInfo16CR84(); 0110 ~PicInfo16CR84() override; 0111 Support gpsimSupport() const override 0112 { 0113 return FullSupport; 0114 } 0115 Support flowcodeSupport() const override 0116 { 0117 return NoSupport; 0118 } 0119 Support microbeSupport() const override 0120 { 0121 return NoSupport; 0122 } 0123 }; 0124 0125 /** 0126 @author David Saxton 0127 */ 0128 class PicInfo16F83 : public PicInfo16C8x 0129 { 0130 public: 0131 PicInfo16F83(); 0132 ~PicInfo16F83() override; 0133 Support gpsimSupport() const override 0134 { 0135 return FullSupport; 0136 } 0137 }; 0138 0139 /** 0140 @author David Saxton 0141 */ 0142 class PicInfo16CR83 : public PicInfo16F83 0143 { 0144 public: 0145 PicInfo16CR83(); 0146 ~PicInfo16CR83() override; 0147 Support gpsimSupport() const override 0148 { 0149 return FullSupport; 0150 } 0151 }; 0152 0153 /** 0154 @author David Saxton 0155 */ 0156 class PicInfo16C61 : public PicInfo16C8x 0157 { 0158 public: 0159 PicInfo16C61(); 0160 ~PicInfo16C61() override; 0161 Support gpsimSupport() const override 0162 { 0163 return FullSupport; 0164 } 0165 }; 0166 0167 /** 0168 @author David Saxton 0169 */ 0170 class PicInfo16X6X : public PicInfo14bit 0171 { 0172 public: 0173 PicInfo16X6X(); 0174 ~PicInfo16X6X() override; 0175 Support gpsimSupport() const override 0176 { 0177 return NoSupport; 0178 } 0179 }; 0180 0181 /** 0182 @author David Saxton 0183 */ 0184 class PicInfo16C62 : public PicInfo16X6X 0185 { 0186 public: 0187 PicInfo16C62(); 0188 ~PicInfo16C62() override; 0189 Support gpsimSupport() const override 0190 { 0191 return FullSupport; 0192 } 0193 }; 0194 0195 /** 0196 @author David Saxton 0197 */ 0198 class PicInfo16C63 : public PicInfo16C62 0199 { 0200 public: 0201 PicInfo16C63(); 0202 ~PicInfo16C63() override; 0203 Support gpsimSupport() const override 0204 { 0205 return FullSupport; 0206 } 0207 }; 0208 0209 /** 0210 @author David Saxton 0211 */ 0212 class PicInfo16C64 : public PicInfo16X6X 0213 { 0214 public: 0215 PicInfo16C64(); 0216 ~PicInfo16C64() override; 0217 Support gpsimSupport() const override 0218 { 0219 return FullSupport; 0220 } 0221 }; 0222 0223 /** 0224 @author David Saxton 0225 */ 0226 class PicInfo16C65 : public PicInfo16C64 0227 { 0228 public: 0229 PicInfo16C65(); 0230 ~PicInfo16C65() override; 0231 Support gpsimSupport() const override 0232 { 0233 return FullSupport; 0234 } 0235 }; 0236 0237 /** 0238 @author David Saxton 0239 */ 0240 class PicInfo16F62x : public PicInfo16X6X 0241 { 0242 public: 0243 PicInfo16F62x(); 0244 ~PicInfo16F62x() override; 0245 Support gpsimSupport() const override 0246 { 0247 return NoSupport; 0248 } 0249 }; 0250 0251 /** 0252 @author David Saxton 0253 */ 0254 class PicInfo16F627 : public PicInfo16F62x 0255 { 0256 public: 0257 PicInfo16F627(); 0258 ~PicInfo16F627() override; 0259 Support gpsimSupport() const override 0260 { 0261 return FullSupport; 0262 } 0263 Support flowcodeSupport() const override 0264 { 0265 return PartialSupport; 0266 } 0267 Support microbeSupport() const override 0268 { 0269 return FullSupport; 0270 } 0271 }; 0272 0273 /** 0274 @author David Saxton 0275 */ 0276 class PicInfo16F628 : public PicInfo16F627 0277 { 0278 public: 0279 PicInfo16F628(); 0280 ~PicInfo16F628() override; 0281 Support gpsimSupport() const override 0282 { 0283 return FullSupport; 0284 } 0285 Support flowcodeSupport() const override 0286 { 0287 return PartialSupport; 0288 } 0289 Support microbeSupport() const override 0290 { 0291 return FullSupport; 0292 } 0293 }; 0294 0295 /** 0296 @author David Saxton 0297 */ 0298 class PicInfo16F648 : public PicInfo16F628 0299 { 0300 public: 0301 PicInfo16F648(); 0302 ~PicInfo16F648() override; 0303 Support gpsimSupport() const override 0304 { 0305 return FullSupport; 0306 } 0307 }; 0308 0309 /** 0310 @author David Saxton 0311 */ 0312 class PicInfo16C71 : public PicInfo16C61 0313 { 0314 public: 0315 PicInfo16C71(); 0316 ~PicInfo16C71() override; 0317 Support gpsimSupport() const override 0318 { 0319 return FullSupport; 0320 } 0321 }; 0322 0323 /** 0324 @author David Saxton 0325 */ 0326 class PicInfo16C712 : public PicInfo16C62 0327 { 0328 public: 0329 PicInfo16C712(); 0330 ~PicInfo16C712() override; 0331 Support gpsimSupport() const override 0332 { 0333 return FullSupport; 0334 } 0335 }; 0336 0337 /** 0338 @author David Saxton 0339 */ 0340 class PicInfo16C716 : public PicInfo16C712 0341 { 0342 public: 0343 PicInfo16C716(); 0344 ~PicInfo16C716() override; 0345 Support gpsimSupport() const override 0346 { 0347 return FullSupport; 0348 } 0349 }; 0350 0351 /** 0352 @author David Saxton 0353 */ 0354 class PicInfo16C72 : public PicInfo16C62 0355 { 0356 public: 0357 PicInfo16C72(); 0358 ~PicInfo16C72() override; 0359 Support gpsimSupport() const override 0360 { 0361 return FullSupport; 0362 } 0363 }; 0364 0365 /** 0366 @author David Saxton 0367 */ 0368 class PicInfo16C73 : public PicInfo16C63 0369 { 0370 public: 0371 PicInfo16C73(); 0372 ~PicInfo16C73() override; 0373 Support gpsimSupport() const override 0374 { 0375 return FullSupport; 0376 } 0377 }; 0378 0379 /** 0380 @author David Saxton 0381 */ 0382 class PicInfo16C74 : public PicInfo16C65 0383 { 0384 public: 0385 PicInfo16C74(); 0386 ~PicInfo16C74() override; 0387 Support gpsimSupport() const override 0388 { 0389 return FullSupport; 0390 } 0391 }; 0392 0393 /** 0394 @author David Saxton 0395 */ 0396 class PicInfo16F873 : public PicInfo16C73 0397 { 0398 public: 0399 PicInfo16F873(); 0400 ~PicInfo16F873() override; 0401 Support gpsimSupport() const override 0402 { 0403 return FullSupport; 0404 } 0405 }; 0406 0407 /** 0408 @author David Saxton 0409 */ 0410 class PicInfo16F874 : public PicInfo16C74 0411 { 0412 public: 0413 PicInfo16F874(); 0414 ~PicInfo16F874() override; 0415 Support gpsimSupport() const override 0416 { 0417 return FullSupport; 0418 } 0419 }; 0420 0421 /** 0422 @author David Saxton 0423 */ 0424 class PicInfo16F877 : public PicInfo16F874 0425 { 0426 public: 0427 PicInfo16F877(); 0428 ~PicInfo16F877() override; 0429 Support gpsimSupport() const override 0430 { 0431 return FullSupport; 0432 } 0433 }; 0434 0435 #endif