home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / comm / ykh121.zip / YKHSRC.ZIP / JIS.C < prev    next >
C/C++ Source or Header  |  1992-10-17  |  637b  |  25 lines

  1. #include "jis.h"
  2.  
  3. void sjis2jis(int *p1, int *p2)
  4. {
  5.   register unsigned char c1 = *p1;
  6.   register unsigned char c2 = *p2;
  7.   register int adjust = c2 < 159;
  8.   register int rowOffset = c1 < 160 ? 112 : 176;
  9.   register int cellOffset = adjust ? (31 + (c2 > 127)) : 126;
  10.  
  11.   *p1 = ((c1 - rowOffset) << 1) - adjust;
  12.   *p2 -= cellOffset;
  13. }
  14.  
  15. void jis2sjis(int *p1, int *p2)
  16. {
  17.   register unsigned char c1 = *p1;
  18.   register unsigned char c2 = *p2;
  19.   register int rowOffset = c1 < 95 ? 112 : 176;
  20.   register int cellOffset = c1 % 2 ? 31 + (c2 > 95) : 126;
  21.  
  22.   *p1 = ((c1 + 1) >> 1) + rowOffset;
  23.   *p2 = c2 + cellOffset;
  24. }
  25.