/* 文字１／４，１／２角文字変換 */

#include "deftype.h"

int ahcnv(unint c,int mode)
{
unsint cc;
unint mode2=0;
	if (mode>=10 && mode<=14) {
		mode2=1;
		mode-=10;
	}
	switch (mode) {
		case 0:cc=0xf000; break; /* 上付き1/4 片仮名 */
		case 1:cc=0xf100; break; /* 上付き1/4 平仮名 */
		case 2:cc=0xf200; break; /* 下付き1/4 片仮名 */
		case 3:cc=0xf300; break; /* 下付き1/4 平仮名 */
		case 4:cc=0x8000; break; /* 1/2 片仮名->平仮名 */
	}
	
	/* 変換：変換対象は１バイト文字のみ */
	if (c<' ') { /* ｺﾝﾄﾛｰﾙｺｰﾄﾞ */
		if (mode2) { /* 可視化 */
			if (mode==0||mode==1) cc=0xf000;
			if (mode==2||mode==3) cc=0xf200;
			return(cc|c);
		}
	} else {
		if (c<256) {
			if (c==0xb0) { /* 仮名長音 */
				if (mode==1) cc=0xf000;
				if (mode==3) cc=0xf200;
			}
			return(cc|c);
		}
	}
	return(c);
}
