mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-01 14:05:35 +00:00
141 lines
2.5 KiB
Plaintext
141 lines
2.5 KiB
Plaintext
PR#3
|
||
PREFIX /A2OSX.BUILD
|
||
NEW
|
||
INC 1
|
||
AUTO 6
|
||
.LIST OFF
|
||
*--------------------------------------
|
||
UpdateCursor lda CUR.T
|
||
cmp #CUR.T.WAIT
|
||
bcc SetCursor.A.RTS
|
||
inc
|
||
inc
|
||
cmp #CUR.T.WAIT+12
|
||
bne SetCursor.A
|
||
|
||
lda #CUR.T.WAIT
|
||
*--------------------------------------
|
||
* Set X2,Y2,SrcPtr
|
||
*--------------------------------------
|
||
SetCursor.A 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.A.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.GC.Screen
|
||
jsr GC.Get
|
||
|
||
>LDYA L.CUR.CB
|
||
jsr CLIP.YA
|
||
bcs .9
|
||
|
||
jmp GoDevGfx
|
||
|
||
.9 rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.CUR
|
||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||
ASM
|