A2osX/LIB/LIBGUI.S.CUR.txt

151 lines
2.6 KiB
Plaintext
Raw Normal View History

NEW
2019-07-30 08:57:25 +00:00
AUTO 3,1
*--------------------------------------
2017-12-04 07:18:24 +00:00
UpdateCursor lda CUR.T
cmp #CUR.T.WAIT
2019-01-08 16:29:26 +00:00
bcc SetCursor.RTS
2017-12-04 07:18:24 +00:00
inc
inc
cmp #CUR.T.WAIT+12
2019-01-08 16:29:26 +00:00
bne SetCursor
2017-12-04 07:18:24 +00:00
lda #CUR.T.WAIT
*--------------------------------------
* Set X2,Y2,SrcPtr
*--------------------------------------
2019-01-08 16:29:26 +00:00
SetCursor sta CUR.T
lda CUR.bVisible
bpl .1
2020-09-02 15:47:23 +00:00
jsr HideCursor.I
2020-09-02 15:47:23 +00:00
.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
2020-09-04 15:21:15 +00:00
ldy #S.BM.W
lda (ZPPtr1),y
sta CUR.CB+S.CB.SrcW
2020-09-04 15:21:15 +00:00
clc
adc CUR.CB+S.CB.X1
pha
iny
lda (ZPPtr1),y
sta CUR.CB+S.CB.SrcW+1
2020-09-04 15:21:15 +00:00
adc CUR.CB+S.CB.X1+1
tax
pla
bne .2
dex
.2 dec
sta CUR.CB+S.CB.X2
stx CUR.CB+S.CB.X2+1
iny S.BM.H
lda (ZPPtr1),y
sta CUR.CB+S.CB.SrcH
2020-09-04 15:21:15 +00:00
clc
adc CUR.CB+S.CB.Y1
pha
iny
lda (ZPPtr1),y
sta CUR.CB+S.CB.SrcH+1
2020-09-04 15:21:15 +00:00
adc CUR.CB+S.CB.Y1+1
tax
pla
bne .3
dex
.3 dec
sta CUR.CB+S.CB.Y2
stx CUR.CB+S.CB.Y2+1
lda CUR.bVisible
bmi ShowCursor.I
2019-01-08 16:29:26 +00:00
SetCursor.RTS rts
*--------------------------------------
* Set DestX,DestY
*--------------------------------------
SetCursorPos >PULLW ZPPtr1
lda CUR.bVisible
2020-09-02 15:47:23 +00:00
bpl .1
jsr HideCursor.I
2020-09-02 15:47:23 +00:00
.1 ldy #S.POINT-1
2019-10-03 06:25:27 +00:00
.2 lda (ZPPtr1),y
sta CUR.Pos,y
dey
bpl .2
2020-09-02 15:47:23 +00:00
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
2020-09-02 15:47:23 +00:00
jsr ShowCursor.I
dec CUR.bVisible
.9 rts
*--------------------------------------
HideCursor.I lda #S.CB.OP.RESTORE
2017-12-04 07:18:24 +00:00
bra DrawCursor.I
*--------------------------------------
2020-09-04 15:21:15 +00:00
ShowCursor.I sta CUR.CB+S.CB.OP
ldx CUR.T
lda CUR.Pos+S.POINT.X
sec
sbc CUR.HotPoints,x
2020-09-04 15:21:15 +00:00
sta CUR.CB+S.CB.X1
lda CUR.Pos+S.POINT.X+1
sbc #0
2020-09-04 15:21:15 +00:00
sta CUR.CB+S.CB.X1+1
lda CUR.Pos+S.POINT.Y
sec
sbc CUR.HotPoints+1,x
2020-09-04 15:21:15 +00:00
sta CUR.CB+S.CB.Y1
lda CUR.Pos+S.POINT.Y+1
sbc #0
2020-09-04 15:21:15 +00:00
sta CUR.CB+S.CB.Y1+1
2020-09-02 15:47:23 +00:00
2020-09-04 15:21:15 +00:00
lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
DrawCursor.I sta CUR.CB+S.CB.OP
2020-09-06 12:24:04 +00:00
>LDYA L.WND.Screen
2019-01-10 16:26:58 +00:00
jsr OBJ.Get
2020-09-02 15:47:23 +00:00
2019-01-10 16:26:58 +00:00
>LDYA L.CUR.CB
jsr CLIP.YA
bcs .9
2020-09-02 15:47:23 +00:00
2020-09-04 15:21:15 +00:00
jmp GFXWrite.CB
2020-09-02 15:47:23 +00:00
2017-12-04 07:18:24 +00:00
.9 rts
*--------------------------------------
MAN
2020-06-30 15:32:23 +00:00
SAVE usr/src/lib/libgui.s.cur
LOAD usr/src/lib/libgui.s
ASM