PAGE 98,120
; graphics - grcg - pset - PC98V
;
; DESCRIPTION:
;	点の描画
;
; FUNCTION:
;	void far _pascal grcg_pset( int x, int y )

; PARAMETERS:
;	int x,y		点の座標
;
; BINDING TARGET:
;	Microsoft-C / Turbo-C
;
; RUNNING TARGET:
;	NEC PC-9801 Normal mode
;
; REQUIRING RESOURCES:
;	CPU: V30
;	GRAPHICS ACCELARATOR: GRAPHIC CHARGER
;
; COMPILER/ASSEMBLER:
;	TASM 3.0
;	OPTASM 1.6
;
; NOTES:
;	・グラフィック画面の青プレーンにのみ描画します。
;	・色をつけるには、グラフィックチャージャーを利用してください。
;	・grc_setclip()によるクリッピングに対応しています。
;
; AUTHOR:
;	恋塚昭彦
;
; 関連関数:
;	grc_setclip()
;
; HISTORY:
;	92/6/12	Initial
;	92/7/16 bugfix(^^;

func GRCG_PSET
	mov	BX,BP	; save BP
	mov	BP,SP

	; parameters
	@@x = (RETSIZE+1)*2
	@@y = (RETSIZE+0)*2

	mov	CX,[BP+@@x]
	mov	DX,[BP+@@y]

	mov	BP,BX	; restore BP

	cmp	CX,ClipXL
	jl	short @@RETURN
	cmp	CX,ClipXR
	jg	short @@RETURN
	sub	DX,ClipYT
	jl	short @@RETURN
	cmp	DX,ClipYH
	jg	short @@RETURN

	mov	AX,DX
	shl	AX,2
	add	DX,AX
	add	DX,ClipYT_seg
	mov	ES,DX

	mov	BX,CX
	shr	BX,3
	and	CL,7
	mov	AL,80h
	shr	AL,CL

	mov	ES:[BX],AL
@@RETURN:
	ret 4
endfunc