*----------------------------------------------
* 全角濁点、半濁点文字かどうかを調べる
*----------------------------------------------

	.xdef	_ishandaku2
*	int	ishandaku(unsigned c)
*		リターン値 : 0=普通 , 1=濁点 , 2=半濁点
_ishandaku2:
	move.w	4+2(sp),d0
	cmp.w	#'ヴ',d0
	bne	@f
	moveq.l	#1,d0		* 'ヴ'=濁点
	rts
*
@@:	cmp.w	#'か',d0
	bcs	hutu		* <'か' -> (半)濁点は持たない
	cmp.w	#'ぽ',d0
	bls	hira		* <='ぽ' -> (半)濁点を持つかも知れない平仮名である
	* 平仮名ではない
	cmp.w	#'カ',d0
	bcs	hutu		* <'カ' -> (半)濁点を持つ仮名でない
	cmp.w	#'ポ',d0
	bls	daku		* <='ポ' -> (半)濁点を持つかも知れない片仮名である
hutu:	* それ以外の時
	moveq.l	#0,d0		* 普通
	rts
*
hira:	* 平仮名である -> 片仮名化する
	cmp.w	#'む',d0
	bcs	@f		* <'む'
	addq.w	#1,d0		* >='む'は+1しておく($837fを飛ばすため)
@@:	add.w	#$8340-$829f,d0	* 平仮名->片仮名
daku:	* 濁点チェック
	* ここはカガの順で並んでいる。ただしッツヅだけ異なる
	cmp.w	#'カ',d0
	bcs	hutu		* <'カ'
	* 'カ'〜
	cmp.w	#'ド',d0
	bhi	@f		* >'ド' -> 半濁点チェックへ
	* 'カ'〜'ド'
	cmp.w	#'ッ',d0
	bcs	9f		* <'ッ'
	beq	hutu		* 'ッ'->普通
	subq.w	#1,d0		* 'ッ'を飛ばす
9:	sub.w	#'カ',d0
	and.l	#%1,d0		* 0/1
	rts
*
@@:	* 半濁点チェック
	* ここはハバパの順で並んでいる
	sub.w	#'ハ',d0
	bcs	hutu		* <'ハ'
	* d0.w=0〜14
	cmp.w	#'ポ'-'ハ',d0
	bhi	hutu		* >'ポ'
	divu	#3,d0		* d0.l/3.w ... 0/1/2
	clr.w	d0		* for .w = .l
	swap	d0		* 余り
	rts

*----------------------------------------------

	.end
