NEW
  AUTO 3,1
*--------------------------------------
GFX.Open		>PUSHW L.DEV.GFX
				>PUSHBI 0
				>SYSCALL Open
				bcs .9

				>STA.G hDevGFX

				bra GFX.TEXT

.9				rts
*--------------------------------------
GFX.Close		>LDA.G hDevGFX
				beq .9

				>SYSCALL Close

.9				rts
*--------------------------------------
GFX.TEXT		ldy #S.PS.hStdIn
				lda (pPS),y

				tax
				lda FILEs.hFD-1,x
				bra GFX.IOCTL

GFX.TEXT.RTS	clc
				rts
*--------------------------------------
GFX.GR			>LDA.G hDevGFX
				beq GFX.TEXT.RTS

GFX.IOCTL		>PUSHA
				>PUSHBI IOCTL.CONTROL
				>PUSHWZ
				>SYSCALL IOCTL
				rts
*--------------------------------------
* (Y X C)
*--------------------------------------
GFX.PLOT		ldx #S.CB.CMD.SETPIXEL
				jsr GFX.WriteX

				lda pStack
				clc
				adc #8
				sta pStack
				clc
				rts
*--------------------------------------
* (Y2 X2 Y1 X1 C)
*--------------------------------------
GFX.RECT		ldx #S.CB.CMD.FILLRECT

				jsr GFX.WriteX

				lda pStack
				clc
				adc #12
				sta pStack
				clc
				rts
*--------------------------------------
GFX.WriteX		ldy #1
				lda (pStack)
				sta (pStack),y

				lda #S.CB.M.C16
				sta (pStack)

				>PUSHBI S.CB.OP.SET
				txa
				>PUSHA

				>PUSHB.G hDevGFX
				>PUSHBI IOCTL.WRITE
				lda pStack
				clc
				adc #2
				tay
				lda pStack+1
				adc #0
				>PUSHYA
				>SYSCALL IOCTL
			clc							DHGR.DRV bug ?	
				rts
*--------------------------------------
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/bin/forth.s.gfx
LOAD usr/src/bin/forth.s
ASM
