typedef unsigned int unint;

int sjistojis(unint code)
/* SHIFT-JIS -> JIS */
/* Oh! MZ 1986/11 p53参照 */
{
unint sj1,sj2;
unint ji1,ji2;
	/* １バイト目２バイト目分離 */
	sj1=(code>>8)&0xff;
	sj2=code&0xff;
	
	/* コード範囲判定＆計算 */
	if (!(sj1>=0x81 && sj1<=0x9f)) {
		if (sj1>=0xe0 && sj1<=0xef) sj1=sj1-0xe0+0x9f+1;
		else return(-1);
	}
	ji1=(sj1-0x81)*2+0x21;
	
	if (!(sj2>=0x40 && sj2<=0x7e)) {
		if (sj2>=0x80 && sj2<=0xfc) sj2--;
		else return(-2);
	}
	
	if (sj2>=0x9e) {
		ji1++;
		sj2=sj2-0x9e+0x40;
	}
	ji2=sj2-0x40+0x21;
	return((ji1<<8)|ji2);
}
