******************************************************
* 拡張属性に基づく１文字フォント加工
******************************************************
* int fontsetc(int c,int mode,_FNTBUF *fnt)

	.include	iocscall.mac
	.xref		fontsets
	.xref		EXCOLORS
	.xref		kcheck1

	.text
	.xdef	_fontsetc	* Ｃインターフェース
_fontsetc:
	move.w	4+2(sp),d1	* d1.w = 文字コード(ANK/SHIFT-JIS)
	movem.l	8(sp),a0-a1
	*move.l	8(sp),a0	* a0.l = 文字大きさ(8/12)
	*move.l	12(sp),a1	* a1.l = フォント構造体アドレス
	*
	.xdef	fontsetcs	* アセンブラーインターフェース
	* d1.w = 文字コード(ANK/SHIFT-JIS)
	* a0.l = 文字大きさ(8/12)
	* a1.l = フォント構造体アドレス
fontsetcs:
	move.w	fk,d0		* 漢字２バイト目？
	bne	fo0		* Yes
fo1:	* ANKまたは漢字１バイト目処理
	jsr	kcheck1		* 漢字１バイト目チェック
	beq	fo2		* １バイト目？ -> No (ANK)
	move.w	d1,fk		* Yes : 記録だけしてリターン
	moveq.l	#0,d0		* not make symbol
	rts

fo0:	* 漢字２バイト目処理
	lsl.w	#8,d0
	or.w	d0,d1
	clr.w	fk
fo2:	* ANK/漢字 共通処理
	* d1.w <- code
	* a0.l <- mode
	* a1.l <- フォント構造体アドレス
	* フォント取得
	cmp.w	#' ',d1
	bcc	fo3
	or.w	#$8000,d1	* コントロールコードは可視化して表示
fo3:
	swap	d1
	move.w	a0,d1
	swap	d1		* d1.h.w = 文字サイズ , d1.l.w = 文字コード
	IOCS	_FNTGET
	
	* フォント加工
	jsr	fontsets
	moveq.l	#1,d0		* maked symbol
	rts

******************************************************
* 漢字１バイト目フラグ（コード）
	.data
fk:	.dc.w	0

******************************************************
	.end
