A2osX/LIB/LIBGUI.S.PTR.txt
2023-07-10 06:57:04 +02:00

207 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
PTR.Update lda PTR.T
cmp #PTR.T.WAIT
bcc PTR.Set.RTS
inc
inc
cmp #PTR.T.WAIT+12
bne PTR.Set
lda #PTR.T.WAIT
*--------------------------------------
* Set SrcPtr, SrcW, SrcH
*--------------------------------------
PTR.Set sta PTR.T
jsr PTR.Disable
ldx PTR.T
lda L.Cursors,x
sta CB.PTR+S.CB.SrcPtr
sta ZPPtr1
lda L.Cursors+1,x
sta CB.PTR+S.CB.SrcPtr+1
sta ZPPtr1+1
ldy #S.BM.W+3
ldx #3
.1 lda (ZPPtr1),y
sta CB.PTR+S.CB.SrcW,x
dey
dex
bpl .1
bra PTR.Enable
PTR.Set.RTS rts
*--------------------------------------
PTR.SetRect >STYA ZPPtr1
jsr PTR.Disable
sec
ror PTR.T
ldy #7
.1 lda (ZPPtr1),y
sta PTR.Rect,y
dey
bpl .1
bra PTR.Enable
*--------------------------------------
* SetPos DestX,DestY
*--------------------------------------
PTR.SetPos >PULLW ZPPtr1
jsr PTR.Disable
.1 ldy #S.POINT-1
.2 lda (ZPPtr1),y
sta PTR.Pos,y
dey
bpl .2
*--------------------------------------
PTR.Enable bit PTR.bVisible
bmi PTR.Show.I
clc
rts
*--------------------------------------
PTR.Disable bit PTR.bVisible
bmi PTR.Hide.I
PTR.Disable.8 clc
rts
*--------------------------------------
PTR.Hide lda PTR.bVisible
bpl PTR.Disable.8
stz PTR.bVisible
*--------------------------------------
PTR.Hide.I bit PTR.T
bpl .1
jmp PTR.ShowRect.I
.1 lda #S.CB.OP.RESTORE
bra PTR.Draw.I
*--------------------------------------
PTR.Show lda PTR.bVisible
bmi PTR.Disable.8
dec PTR.bVisible
*--------------------------------------
PTR.Show.I ldx PTR.T
bpl .10
jmp PTR.ShowRect.I
.10 lda PTR.Pos+S.POINT.X
sec
sbc PTR.HotPoints,x
sta CB.PTR+S.CB.X1
lda PTR.Pos+S.POINT.X+1
sbc #0
sta CB.PTR+S.CB.X1+1
lda PTR.Pos+S.POINT.Y
sec
sbc PTR.HotPoints+1,x
sta CB.PTR+S.CB.Y1
lda PTR.Pos+S.POINT.Y+1
sbc #0
sta CB.PTR+S.CB.Y1+1
ldx CB.PTR+S.CB.SrcW+1
lda CB.PTR+S.CB.SrcW
bne .1
dex
.1 dec
clc
adc CB.PTR+S.CB.X1
sta CB.PTR+S.CB.X2
txa
adc CB.PTR+S.CB.X1+1
sta CB.PTR+S.CB.X2+1
ldx CB.PTR+S.CB.SrcH+1
lda CB.PTR+S.CB.SrcH
bne .2
dex
.2 dec
clc
adc CB.PTR+S.CB.Y1
sta CB.PTR+S.CB.Y2
txa
adc CB.PTR+S.CB.Y1+1
sta CB.PTR+S.CB.Y2+1
lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
*--------------------------------------
PTR.Draw.I sta CB.PTR+S.CB.OP
ldx #S.CB
.1 lda CB.PTR-1,x
sta CLIP.Cache-1,x
dex
bne .1
* ldx #0 select CLIP.Sreen
jsr CLIP.BitBltX
bcs .8
jsr CB.GFXWrite
.8 clc
rts
*--------------------------------------
PTR.ShowRect.I lda #S.CB.CMD.HLINE
sta CLIP.Cache+S.CB.CMD
lda #S.CB.OP.XOR
sta CLIP.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CLIP.Cache+S.CB.M
lda #C.WHITE
sta CLIP.Cache+S.CB.COLOR
* >DEBUG
ldx #5 X1,Y1,X2
.1 lda PTR.Rect+S.RECT.X1,x
sta CLIP.Cache+S.CB.X1,x
dex
bpl .1
jsr .7
>LDYA PTR.Rect+S.RECT.Y2
>STYA CLIP.Cache+S.CB.Y1
.7
* ldx #0 select CLIP.Sreen
* jsr CLIP.HLine
* bcs .8
jsr CB.GFXWrite
.8 clc
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.ptr
LOAD usr/src/lib/libgui.s
ASM