********************************************************
* テキスト画面 line(xy/x/y)・Box・Box-Full・Box-Reverse
********************************************************
* void txline (plane,sx,sy,wx,wy,ptrn)
* void txxline(plane,sx,sy,wx   ,ptrn)
* void txyline(plane,sx,sy   ,wy,ptrn)
* void txbox  (plane,sx,sy,wx,wy,ptrn)
* void txfill (plane,sx,sy,wx,wy,ptrn)
* void txrev  (plane,sx,sy,wx,wy     )

	.include	iocscall.mac

	.text
	* Ｃインターフェース
	.xdef	_txline
	.xdef	_txxline
	.xdef	_txyline
	.xdef	_txbox
	.xdef	_txfill
	.xdef	_txrev

_txbox:
	moveq.l	#_TXBOX,d0
	bra.s	tx
_txfill:
	moveq.l	#_TXFILL,d0
	bra.s	tx
_txrev:
	moveq.l	#_TXREV,d0
	bra.s	tx
_txline:
	moveq.l	#$d5,d0		* IOCS.X 拡張call
	bra.s	tx
_txyline:
	moveq.l	#_TXYLINE,d0
	bra.s	tx
_txxline:
	moveq.l	#_TXXLINE,d0
	* 一番よく使いそうな関数のbraをなくす
tx:	lea	txwork,a1
	move.l	a1,a0
	
	* 引数取り込み：+2は.wのため
	* パラメーターチェックはしないので注意
	move.w	 4+2(sp),(a0)+	* plane
	move.w	 8+2(sp),(a0)+	* sx
	move.w	12+2(sp),(a0)+	* sy
	* これ以下は関数によって変わる（不要な部分もあり）
	move.w	16+2(sp),(a0)+	* wx/wy
	move.w	20+2(sp),(a0)+	* wy/ptrn
	move.w	24+2(sp),(a0)+	* ptrn
	
	trap	#15		* IOCS call with a1/d0
	rts

********************************************************
	.bss
txwork:			* xline	* yline	* box	* fill	* rev	* line
	.ds.w	1	* plane	* plane	* plane	* plane	* plane	* plane
	.ds.w	1	* sx	* sx	* sx	* sx	* sx	* sx
	.ds.w	1	* sy	* sy	* sy	* sy	* sy	* sy
	.ds.w	1	* wx	* wy	* wx	* wx	* wx	* wx
	.ds.w	1	* ptrn	* ptrn	* wy	* wy	* wy	* wy
	.ds.w	1	* ----- * ----- * ptrn	* ptrn	* -----	* ptrn
********************************************************
	.end
