NEW
PREFIX
AUTO 4,1
*--------------------------------------
UpdateCursor	lda CUR.T
				cmp #CUR.T.WAIT
				bcc SetCursor.RTS
				inc
				inc
				cmp #CUR.T.WAIT+12
				bne SetCursor
				
				lda #CUR.T.WAIT
*--------------------------------------
* Set X2,Y2,SrcPtr
*--------------------------------------
SetCursor		sta CUR.T

				lda CUR.bVisible
				bpl .1
				
				jsr HideCursor.I
				
.1				ldx CUR.T
				
				lda L.Cursors,x
				sta CUR.CB+S.CB.SrcPtr
				sta ZPPtr1
				
				lda L.Cursors+1,x
				sta CUR.CB+S.CB.SrcPtr+1
				sta ZPPtr1+1
				
				ldy #S.BM.W
				
				lda (ZPPtr1),y
				sta CUR.CB+S.CB.SrcW
				
				iny
				
				lda (ZPPtr1),y
				sta CUR.CB+S.CB.SrcW+1
				
				iny 					S.BM.H
				
				lda (ZPPtr1),y
				sta CUR.CB+S.CB.SrcH
				
				iny
				
				lda (ZPPtr1),y
				sta CUR.CB+S.CB.SrcH+1
				
				lda CUR.bVisible
				bmi ShowCursor.I
	
SetCursor.RTS	rts
*--------------------------------------
* Set DestX,DestY
*--------------------------------------
SetCursorPos	>PULLW ZPPtr1
				
				lda CUR.bVisible
				bpl .1
				
				jsr HideCursor.I
				
.1				ldy #S.POINT-1

.2				lda (ZPPtr1),y				
				sta CUR.Pos,y
				dey
				bpl .2
				
				lda CUR.bVisible
				bmi ShowCursor.I
	
				rts
*--------------------------------------
HideCursor		lda CUR.bVisible
				bpl .9
				
				jsr HideCursor.I
				
				stz CUR.bVisible
.9				rts
*--------------------------------------
ShowCursor		lda CUR.bVisible
				bmi .9
				
				jsr ShowCursor.I
				
				dec CUR.bVisible
.9				rts
*--------------------------------------
HideCursor.I	lda #S.CB.OP.RESTORE
				sta CUR.CB+S.CB.OP
				bra DrawCursor.I
*--------------------------------------
ShowCursor.I	lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
				sta CUR.CB+S.CB.OP
						
				ldx CUR.T
				
				lda CUR.Pos+S.POINT.X
				sec
				sbc CUR.HotPoints,x
				sta CUR.CB+S.CB.DstX
				
				lda CUR.Pos+S.POINT.X+1
				sbc #0
				sta CUR.CB+S.CB.DstX+1
				
				lda CUR.Pos+S.POINT.Y
				sec
				sbc CUR.HotPoints+1,x
				sta CUR.CB+S.CB.DstY
				
				lda CUR.Pos+S.POINT.Y+1
				sbc #0
				sta CUR.CB+S.CB.DstY+1
				
DrawCursor.I	>LDYA L.SCR
				jsr OBJ.Get
				
				>LDYA L.CUR.CB
				jsr CLIP.YA
				bcs .9
				
				>LDYA L.CUR.CB
				jmp GFXWrite.YA
				
.9				rts
*--------------------------------------
MAN
SAVE USR/SRC/LIB/LIBGUI.S.CUR
LOAD USR/SRC/LIB/LIBGUI.S
ASM
