home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 1B / DATAFILE_PDCD1B.iso / _pocketbk / pocketbook / opl / pbm2pic_tg / pbm2pic_tg~ / conv / swap.c < prev   
C/C++ Source or Header  |  1993-12-16  |  650b  |  42 lines

  1. #include <stdio.h>
  2. int needmotorolaorder = 1;
  3.  
  4. static int whatwehave = -1;
  5.  
  6. void
  7. initorder()
  8. {
  9.   int x = 0;
  10.   
  11.   ((char *)&x)[3] = 1;
  12.   if(x == 1)
  13.     whatwehave = 1;
  14.   else
  15.     whatwehave = 0;
  16. }
  17.  
  18. unsigned long
  19. LongSwap(x)
  20.   unsigned long x;
  21. {
  22.   if(whatwehave == -1)
  23.     initorder();
  24.   if(whatwehave == needmotorolaorder)
  25.     return;
  26.   x = (x>>16 & 0x0000ffff) | (x<<16 & 0xffff0000);
  27.   x = (x>> 8 & 0x00ff00ff) | (x<< 8 & 0xff00ff00);
  28.   return(x);
  29. }
  30.  
  31. unsigned short
  32. ShortSwap(x)
  33.   unsigned short x;
  34. {
  35.   if(whatwehave == -1)
  36.     initorder();
  37.   if(whatwehave == needmotorolaorder)
  38.     return;
  39.   x = (x>> 8 & 0x00ff) | (x<< 8 & 0xff00);
  40.   return(x);
  41. }
  42.