* src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
[fw/sdcc] / device / lib / pic16 / libsdcc / char / divuchar.c
index 0aee20d01d64541e2d999a7722e4a8038f06a47c..7c4ea26da0092af03fcfcbecd5eee869865c1e15 100644 (file)
 
 #include <sdcc-lib.h>
 
-#define MSB_SET(x) ((x >> (8*sizeof(x)-1)) & 1)
+//#define MSB_SET(x)   ((x >> (8*sizeof(x)-1)) & 1)
+#define MSB_SET(x)     (x & 0x80)
 
 unsigned char _divuchar (unsigned char a, unsigned char b) _IL_REENTRANT
 {
   unsigned char reste = 0;
   unsigned char count = 8;
-    char c;
+  char c;
 
   do
   {
@@ -50,10 +51,12 @@ unsigned char _divuchar (unsigned char a, unsigned char b) _IL_REENTRANT
     if (reste >= b)
     {
       reste -= b;
+
       // a <- (result = 1)
       a |= 1;
     }
   }
   while (--count);
+
   return a;
 }