Applied patch from Kevin L. Pauba that added the #pragma memory declaration feature...
authorsdattalo <sdattalo@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 5 Jul 2002 06:36:30 +0000 (06:36 +0000)
committersdattalo <sdattalo@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 5 Jul 2002 06:36:30 +0000 (06:36 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2030 4a8a32a2-be11-0410-ad9d-d568d2c75423

43 files changed:
src/pic/device.c
src/pic/device.h
src/pic/main.c
src/regression/add.c
src/regression/add2.c
src/regression/add3.c
src/regression/add4.c
src/regression/and1.c
src/regression/arrays.c
src/regression/b.c
src/regression/bank1.c
src/regression/bool1.c
src/regression/call1.c
src/regression/compare.c
src/regression/compare10.c
src/regression/compare2.c
src/regression/compare3.c
src/regression/compare4.c
src/regression/compare5.c
src/regression/compare6.c
src/regression/compare7.c
src/regression/compare8.c
src/regression/compare9.c
src/regression/configword.c
src/regression/for.c
src/regression/inline.c
src/regression/mult1.c
src/regression/or1.c
src/regression/pointer1.c
src/regression/rotate1.c
src/regression/rotate2.c
src/regression/rotate3.c
src/regression/rotate4.c
src/regression/rotate5.c
src/regression/rotate6.c
src/regression/rotate7.c
src/regression/string1.c
src/regression/struct1.c
src/regression/sub.c
src/regression/sub2.c
src/regression/switch1.c
src/regression/while.c
src/regression/xor.c

index eb9051d6c44ce02aed652338303b8effa5716317..3872735ff1cdab9e36333e1ab0cdfa95a481ccdb 100644 (file)
 #define STRCASECMP strcasecmp
 #endif
 
-/* 16F627 */
-memRange p16f627_mem[] = {
-  {0x20,  0x6f,  0x00,  0},
-  {0xa0,  0xef,  0x00,  1},
-  {0x120, 0x14f, 0x00,  2},
-  {0x70,  0x7f,  0x180, 0},
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-memRange p16f627_sfr[] = {
-  {0x00,  0x00,  0x180, 0},
-  {0x01,  0x01,  0x100, 0},
-  {0x02,  0x04,  0x180, 0},
-  {0x05,  0x05,  0x000, 0},
-  {0x06,  0x06,  0x100, 0},
-  {0x81,  0x81,  0x100, 1},
-  {0x85,  0x85,  0x000, 1},
-  {0x86,  0x86,  0x100, 1},
-  {0x0a,  0x0b,  0x180, 0},
-  {0x0c,  0x0c,  0x000, 0},
-  {0x0e,  0x12,  0x000, 0},
-  {0x15,  0x1a,  0x000, 0},
-  {0x1f,  0x1f,  0x000, 0},
-  {0x8e,  0x8e,  0x000, 1},
-  {0x92,  0x92,  0x000, 1},
-  {0x98,  0x9d,  0x000, 1},
-  {0x9f,  0x9f,  0x000, 1},
-
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-
-/* 16F84 */
-memRange p16f84_mem[] = {
-  {0x0c,  0x4f,  0x80,  0},
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-memRange p16f84_sfr[] = {
-  {0x01,  0x01,  0x00, 0},
-  {0x02,  0x04,  0x80, 0},
-  {0x05,  0x06,  0x00, 0},
-  {0x81,  0x81,  0x00, 1},
-  {0x85,  0x86,  0x00, 1},
-  {0x08,  0x09,  0x00, 0},
-  {0x88,  0x89,  0x00, 1},
-  {0x0a,  0x0b,  0x80, 0},
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-
-/* 16F877 */
-memRange p16f877_mem[] = {
-  {0x20,  0x6f,  0x00,  0},
-  {0xa0,  0xef,  0x00,  1},
-  {0x110, 0x16f, 0x00,  2},
-  {0x190, 0x1ef, 0x00,  3},
-  {0x70,  0x7f,  0x180, 0},
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-memRange p16f877_sfr[] = {
-  {0x00,  0x00,  0x180, 0},
-  {0x01,  0x01,  0x100, 0},
-  {0x02,  0x04,  0x180, 0},
-  {0x05,  0x05,  0x000, 0},
-  {0x85,  0x85,  0x000, 1},
-  {0x81,  0x81,  0x100, 1},
-  {0x06,  0x06,  0x100, 0},
-  {0x86,  0x86,  0x100, 1},
-  {0x07,  0x09,  0x000, 0},
-  {0x87,  0x89,  0x000, 1},
-  {0x0a,  0x0b,  0x180, 0},
-  {0x0c,  0x1f,  0x000, 0},
-  {0x8c,  0x8e,  0x000, 1},
-  {0x91,  0x94,  0x000, 1},
-  {0x98,  0x99,  0x000, 1},
-  {0x9e,  0x9f,  0x000, 1},
-  {0x10c, 0x10f, 0x000, 2},
-  {0x18c, 0x18f, 0x000, 3},
-
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-
-/* 16F873 */
-memRange p16f873_mem[] = {
-  {0x20,  0x7f,  0x100, 0},
-  {0xa0,  0xff,  0x100, 1},
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-memRange p16f873_sfr[] = {
-  {0x00,  0x00,  0x180, 0},
-  {0x01,  0x01,  0x100, 0},
-  {0x02,  0x04,  0x180, 0},
-  {0x05,  0x05,  0x000, 0},
-  {0x85,  0x85,  0x000, 1},
-  {0x81,  0x81,  0x100, 1},
-  {0x06,  0x06,  0x100, 0},
-  {0x86,  0x86,  0x100, 1},
-  {0x07,  0x09,  0x000, 0},
-  {0x87,  0x89,  0x000, 1},
-  {0x0a,  0x0b,  0x180, 0},
-  {0x0c,  0x1f,  0x000, 0},
-  {0x8c,  0x8e,  0x000, 1},
-  {0x91,  0x94,  0x000, 1},
-  {0x98,  0x99,  0x000, 1},
-  {0x9e,  0x9f,  0x000, 1},
-  {0x10c, 0x10f, 0x000, 2},
-  {0x18c, 0x18f, 0x000, 3},
-
-  {-1,    -1,    -1,   -1}     /* end indicator */
-};
-
 static PIC_device Pics[] = {
   {
     {"p16f627", "16f627", "pic16f627", "f627"}, /* processor name */
-    p16f627_mem,                     /* ram mem map */
-    p16f627_sfr,                     /* sfr mem map */
+    (memRange *)NULL,
+    (memRange *)NULL,
     0,                               /* max ram address (calculated) */
     0x80,                            /* Bank Mask */
   },
 
   {
     {"p16f628", "16f628", "pic16f628", "f628"},
-    p16f627_mem,
-    p16f627_sfr,
+    (memRange *)NULL,
+    (memRange *)NULL,
     0,
     0x80,
   },
 
   {
     {"p16f84", "16f84", "pic16f84", "f84"},
-    p16f84_mem,
-    p16f84_sfr,
+    (memRange *)NULL,
+    (memRange *)NULL,
     0,
     0x80,
   },
 
   {
     {"p16f873", "16f873", "pic16f873", "f873"},
-    p16f873_mem,
-    p16f873_sfr,
+    (memRange *)NULL,
+    (memRange *)NULL,
     0,
     0x180,
   },
 
   {
     {"p16f877", "16f877", "pic16f877", "f877"},
-    p16f877_mem,
-    p16f877_sfr,
+    (memRange *)NULL,
+    (memRange *)NULL,
     0,
     0x180,
   },
@@ -198,50 +90,61 @@ AssignedMemory *finalMapping=NULL;
 
 static unsigned int config_word = DEFAULT_CONFIG_WORD;
 
-/*-----------------------------------------------------------------*
- *
- * void addMem(memRange *ranges,int type)
- *
- *
- *-----------------------------------------------------------------*/
-
-static void addMem(memRange *ranges,int type)
+void addMemRange(memRange *r, int type)
 {
-  memRange *r = ranges;
   int i;
+  int alias = r->alias;
 
-  do {
-
-    int alias = r->alias;
-
-    do {
+  if (pic->maxRAMaddress < 0) {
+    fprintf(stderr, "missing \"#pragma maxram\" setting\n");
+    return;
+  }
 
-      for(i=r->start_address; i<= r->end_address; i++) {
-       if(i <= pic->maxRAMaddress) {
-         finalMapping[i | alias].isValid = 1;
-         finalMapping[i | alias].alias = r->alias;
-         finalMapping[i | alias].bank  = r->bank;
-         if(type) {
-           /* hack for now */
-           finalMapping[i | alias].isSFR  = 1;
-         } else
-           finalMapping[i | alias].isSFR  = 0;
+  do {
+    for (i=r->start_address; i<= r->end_address; i++) {
+      if (i <= pic->maxRAMaddress) {
+       finalMapping[i | alias].isValid = 1;
+       finalMapping[i | alias].alias = r->alias;
+       finalMapping[i | alias].bank  = r->bank;
+       if(type) {
+         /* hack for now */
+         finalMapping[i | alias].isSFR  = 1;
+       } else {
+         finalMapping[i | alias].isSFR  = 0;
        }
       }
+    }
 
-      /* Decrement alias */
-      if(alias)
-       alias -= ((alias & (alias - 1)) ^ alias);
-       else
-         alias--;
-       
-    } while(alias >= 0);
+    /* Decrement alias */
+    if (alias) {
+      alias -= ((alias & (alias - 1)) ^ alias);
+    } else {
+      alias--;
+    }
+
+  } while (alias >= 0);
+}
+
+void setMaxRAM(int size)
+{
+  int i;
+  pic->maxRAMaddress = size;
 
-    r++;
+  if (pic->maxRAMaddress < 0) {
+    fprintf(stderr, "invalid \"#pragma maxram 0x%x\" setting\n",
+           pic->maxRAMaddress);
+    return;
+  }
 
-  } while (r->start_address >= 0);
+  finalMapping = Safe_calloc(1+pic->maxRAMaddress,
+                            sizeof(AssignedMemory));
 
+  /* Now initialize the finalMapping array */
 
+  for(i=0; i<=pic->maxRAMaddress; i++) {
+    finalMapping[i].reg = NULL;
+    finalMapping[i].isValid = 0;
+  }
 }
 
 /*-----------------------------------------------------------------*
@@ -274,45 +177,6 @@ int REGallBanks(regs *reg)
 /*-----------------------------------------------------------------*
  *-----------------------------------------------------------------*/
 
-static void addMaps(PIC_device *pPic)
-{
-  int i;
-  memRange *r;
-
-  if(!pPic)
-    return;
-
-
-  /* First, find the maximum address */
-
-  r = pPic->ram;
-  pPic->maxRAMaddress = 0;
-
-  do {
-
-    if((r->end_address | r->alias) > pPic->maxRAMaddress)
-      pPic->maxRAMaddress = r->end_address | r->alias;
-
-    r++;
-
-  } while (r->start_address >= 0);
-
-
-
-  finalMapping = Safe_calloc(1+pPic->maxRAMaddress, sizeof(AssignedMemory));
-
-  /* Now initialize the finalMapping array */
-
-  for(i=0; i<=pPic->maxRAMaddress; i++) {
-    finalMapping[i].reg = NULL;
-    finalMapping[i].isValid = 0;
-  }
-
-  addMem(pPic->ram,0); /* add general purpose regs to the map */
-  addMem(pPic->sfr,1); /* Add SFR's to the memmap */
-
-}
-
 /*
  *  dump_map -- debug stuff
  */
@@ -344,6 +208,11 @@ void dump_cblock(FILE *of)
 
   //dump_map();   /* display the register map */
 
+  if (pic->maxRAMaddress < 0) {
+    fprintf(stderr, "missing \"#pragma maxram\" setting\n");
+    return;
+  }
+
   do {
 
     if(finalMapping[addr].reg && !finalMapping[addr].reg->isEmitted) {
@@ -497,10 +366,7 @@ void init_pic(char *pic_type)
     exit(1);
   }
 
-  
-  addMaps(pic);
-
-
+  pic->maxRAMaddress = -1;
 }
 
 /*-----------------------------------------------------------------*
@@ -529,6 +395,11 @@ int validAddress(int address, int reg_size)
 {
   int i;
 
+  if (pic->maxRAMaddress < 0) {
+    fprintf(stderr, "missing \"#pragma maxram\" setting\n");
+    return 0;
+  }
+
   if(address > pic->maxRAMaddress)
     return 0;
 
@@ -552,6 +423,11 @@ void mapRegister(regs *reg)
     return;
   }
 
+  if (pic->maxRAMaddress < 0) {
+    fprintf(stderr, "missing \"#pragma maxram\" setting\n");
+    return;
+  }
+
   for(i=0; i<reg->size; i++) {
 
     alias = finalMapping[reg->address].alias;
index 3c5c9e296fb3e8266f91847ba9bba8d3e6368945..591181a80cee4dd2851faa0a544511f234dd04cc 100644 (file)
@@ -96,5 +96,7 @@ void assignConfigWordValue(int address, int value);
 int getConfigWord(int address);
 int isREGinBank(regs *reg, int bank);
 int REGallBanks(regs *reg);
+void addMemRange(memRange *r, int type);
+void setMaxRAM(int size);
 
 #endif  /* __DEVICE_H__ */
index df4d275938cc391fca4f653f8ea72d3875f2a848..ea9dbad90cedb0ad2e10970337466acc3b9f4420 100644 (file)
@@ -8,6 +8,7 @@
 #include "main.h"
 #include "ralloc.h"
 #include "device.h"
+#include "SDCCutil.h"
 //#include "gen.h"
 
 
@@ -75,6 +76,70 @@ _pic14_regparm (sym_link * l)
   return 1;
 }
 
+static int
+_process_pragma(const char *sz)
+{
+  static const char *WHITE = " \t";
+  char *ptr = strtok((char *)sz, WHITE);
+
+  if (startsWith (ptr, "memmap"))
+    {
+      char     *start;
+      char     *end;
+      char     *type;
+      char     *alias;
+
+      start = strtok((char *)NULL, WHITE);
+      end = strtok((char *)NULL, WHITE);
+      type = strtok((char *)NULL, WHITE);
+      alias = strtok((char *)NULL, WHITE);
+
+      if (start != (char *)NULL
+         && end != (char *)NULL
+         && type != (char *)NULL) {
+       value           *startVal = constVal(start);
+       value           *endVal = constVal(end);
+       value           *aliasVal;
+       memRange        r;
+
+       if (alias == (char *)NULL) {
+         aliasVal = constVal(0);
+       } else {
+         aliasVal = constVal(alias);
+       }
+
+       r.start_address = (int)floatFromVal(startVal);
+       r.end_address = (int)floatFromVal(endVal);
+       r.alias = (int)floatFromVal(aliasVal);
+       r.bank = (r.start_address >> 7) & 3;
+
+       if (strcmp(type, "RAM") == 0) {
+         addMemRange(&r, 0);
+       } else if (strcmp(type, "SFR") == 0) {
+         addMemRange(&r, 1);
+       } else {
+         return 1;
+       }
+      }
+
+      return 0;
+    } else if (startsWith (ptr, "maxram")) {
+      char *maxRAM = strtok((char *)NULL, WHITE);
+
+      if (maxRAM != (char *)NULL) {
+       int     maxRAMaddress;
+       value   *maxRAMVal;
+
+       maxRAMVal = constVal(maxRAM);
+       maxRAMaddress = (int)floatFromVal(maxRAMVal);
+       setMaxRAM(maxRAMaddress);
+      }
+       
+      return 0;
+    }
+  return 1;
+}
+
 static bool
 _pic14_parseOptions (int *pargc, char **argv, int *i)
 {
@@ -354,7 +419,7 @@ PORT pic_port =
   NULL, // _pic14_genXINIT
   _pic14_reset_regparm,
   _pic14_regparm,
-  NULL,
+  _process_pragma,                             /* process a pragma */
   NULL,
   _hasNativeMulFor,
   FALSE,
index 5998655b880288983f48d1d52ffbd78dfecb182a..6d8aafa18dc1c211171f6a1c40342dc4271fb19a 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 // Addition tests
 
index 5680838521b44e7da8792534473033c5764cca8f..bb60d0a0c6962a95cbb3d4abb8d82cfd13473082 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 
 // Addition tests - mostly int's
 
index e218dc15cd0556a681d9e9631314934f68aecfe7..f0b0033bbe6f8f9b438570bae7ddaca17f510306 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 
 // Addition tests - mostly int's
 
index ceb5160e9c79c023583ed7cfa2a5849dcd2c0d8d..d6721893afd4f45f2eef023e9b14a3eecad638e5 100644 (file)
@@ -1,3 +1,6 @@
+#define __16F873
+#include "p16f873.h"
+
 unsigned char success = 0;
 unsigned char failures = 0;
 unsigned char dummy = 0;
index 3353cedaa423a25be275a4cb2ae45a328c143ba7..b2bc764c05e7b382ea77805b251a59ffb43c625c 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 
 unsigned char success=0;
 unsigned char failures=0;
index 803e38b4a8001cdb4c0156787801dc2615758020..72dc7e4fff1be3f0ee571d6834a9ceb92ec58475 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success = 0;
index 27cc34cbe2cf4a3ac8a5c93e2fc52763b7d7e9f6..37df0f8c5f077856ea8daa5a8d6354f7b63ba3ec 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 
 unsigned char failures = 0;
 unsigned char dummy = 0;
index 778c1e7f2d072aae1b70a992d8af1826ba0f7738..5498e2c0761e920c8ecaeaec60b4fc4e21492e92 100644 (file)
@@ -1,3 +1,6 @@
+#define __16F873
+#include "p16f873.h"
+
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;
index dc0a7f3cec6aba6cdc6afac0669aef700211ab3d..b5ac521f386d1f01cb28549e25399242357321eb 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success=0;
index 91b26ebbfdc1e2b28bf1f7621413f7e644482b9a..4c6bfc37abd5be970c8e3a844d292f5b6f0ed87a 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success = 0;
index 924fe0a52dc33e7c6a8ad834e1fbd8c480504b01..820e0b123d54035e0f30affe3221ad475d7c4106 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 /*
 
    PIC PORT Test code
index 6582aad66d9f2f1cebad5e15f7338e1e6487bba3..57541abcb3ed22f709fcb58ca4fcda55ab690abb 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Signed comparisons of the form:  (variable>=LIT)
 //
 // This regression test exercises all of the boundary
index f58c4fbee9a4de33b79afa56f65fd6309ed175d5..9655808fc3f529a1cc4494f2c8bc448ba5cde944 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success = 0;
index 6ff0cd5d3c14ad61a29a65f0d7fd65519566fa21..4574a76dbf6401413341edefa870472f558531b7 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //
 // compare3.c
 // regression testing program for comparing literals to variables
index b04fde3395039a544e7331d8dedf20318c77cdac..378529413d66b3f31a57a871d6f7f7e8679eecbc 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //
 // compare4.c
 // regression testing program for comparing signed chars and ints
index 368d8fde72070d2d9fb1e3ef9cd3fa1712f0fbaa..eae8196f0e393a56930691aa225d161c6451db84 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //
 // compare5.c
 // regression testing program for comparing longs
index 437f82c13a7480c2cda51548b084225aa2646d7b..c66e9976b405297b5b25ac161f5e8a9bfcb51e90 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Compound comparisons
 
 unsigned char success = 0;
index 30fa333dc228bf62adb87605a3de7bd9e411566d..d0f254eed00fcdce8dbf5bbc8ae78d7016938e02 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Signed comparisons of the form:  (variable<LIT)
 //
 // This regression test exercises all of the boundary
index e719168464c930806395749b5d6a9f07b9823ba2..6c2ee19f96a2f4a8c212bf517d1f7446de4e6c04 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Signed comparisons of the form:  (variable>LIT)
 //
 // This regression test exercises all of the boundary
index 6f79bc168774a4e23c9f3da331c66abbfec69a12..d5e7517cedfad2c9613e44f9db0baf63ac443e2b 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Signed comparisons of the form:  (variable<=LIT)
 //
 // This regression test exercises all of the boundary
index e28c417ac7c21642d18a1e1aebf07ee1be28e796..9710851e8a9f474c5d9661f020a5c920eb51fa55 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 /* configword.c - illustrates how the configuration word can
  * be assigned */
 
index a6245070b60c00af00e5cd76017bf11e2c36cee6..1f6cbbb78caf06742f4173e459b67788fedbe906 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success=0;
index 893441e38be489f3948665b99599daad1619ee6f..643e734106cb5a1eda78c56d48b921a0bae16b62 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;
index 6bf36e46b1be16de2e9ff66704d969f0027f60ad..514e264700a7c8ac6a3ffee52b1e8dfbc2b6e435 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;
index b17834e66d59b8936ed2cc0f25fd1f71c3e3e879..fd451f96acc544f60122c7e1f33a444ecea32baf 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 
 unsigned char success=0;
 unsigned char failures=0;
index 6b738ee075f53cafc8e4124367bc93293792fb10..67faf00b97caa31b213e8bdf7da6c828178cddf2 100644 (file)
@@ -1,4 +1,6 @@
-//#include "p16c84.h"
+#define __16F873
+#include "p16f873.h"
+
 // Pointer tests
 
 unsigned char success = 0;
index 2402a5007f550d8c63b4f98e8214d7d20316ba76..08cf97e1e05e1152687c2f5f0034217b7bc6e543 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift bytes left and right by a constant.
 
 unsigned char success=0;
index 7891534ad68df9e9d6da677f62764035870fd721..8c6d65d677dee19cca0e0f6efedad85f5727e2ac 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift bytes left and right by a variable.
 
 unsigned char success=0;
index ee5944815285e156bbc5ae0d3738d16cfd96ba32..f54089875bbd17860345e693a832bfb06cad9d13 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift ints left and right
 
 unsigned char success=0;
index 358dfe970f50606779748a164c1cfa6496743559..bf9c4a457490e935666f0e9fb66ab8d43f69a140 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // rotate bytes left and right by a constant.
 
 unsigned char success=0;
index 815f13f2670752b8400e278913f4870bd0678292..6836822f3b291a85499fe3dbc29bec2efdef12ef 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift bytes left and right by a constant.
 
 unsigned char success=0;
index f0bebddff7a53b24aa0eeddf504adb4f19396b4d..b07072beb52a71cfa84ddad01eb1f8365d628703 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift bytes left and right by a variable.
 
 unsigned char success=0;
index c5a3dc21baa8a05d360981f86c263cbfa8bb776b..1435355ddae6f424656d6ca5688481f89437591f 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 // Shift ints left and right
 
 unsigned char success=0;
index f240f2aaff1ef432426755b61f0ee1c9999af30b..e582fc5bb385e5c1421853c5adb5224873896780 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;
index 32baf80876fd9fbc7986b5604c6373e8eade31e8..edbe6716240bc1c0d8224401a65e64014322815d 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 // Addition tests
 
index 9ee213ab94d6ca5e4b5f989bc85f796ac473dda0..e7f62bd8caff9aa4b0ad18aec26f457cd88622cb 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 // Addition tests
 
index b4c7891f2801edd3c98daedd113aba375ed642d8..070924fd167ee11faaef80058d797692731eca32 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 // Addition tests
 
index 0d966dfa112bbf30a86b791b6f308beb140a7ca0..179f9fa2383745e2a75a8f6f3c06c236ed63f3c7 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;
index 86df05a1ebcdb20658022a127bde2504f5a685e3..c004194d67272b597cd1da317596f59a81eb13fc 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 //#include "p16c84.h"
 
 unsigned char success = 0;
index 5e77a2a39f82eb95d9fef7270f902cc9d11dd13c..ce7637bb4cdd844e32bca88b3d5219b70f3e8e80 100644 (file)
@@ -1,3 +1,5 @@
+#define __16F873
+#include "p16f873.h"
 unsigned char success=0;
 unsigned char failures=0;
 unsigned char dummy=0;