A2osX/LIB/LIBGUI.S.CB.txt

179 lines
2.9 KiB
Plaintext
Raw Normal View History

2022-10-20 06:07:40 +00:00
NEW
AUTO 3,1
*--------------------------------------
CB.InitCacheA sta CB.Cache+S.CB.CMD
*--------------------------------------
CB.ClearCache ldx #S.CB-1
.1 stz CB.Cache,x
dex
bne .1
rts
*--------------------------------------
CB.GetInCache >STYA .1+1
ldx #S.CB-1
.1 lda $ffff,x SELF MODIFIED
sta CB.Cache,x
dex
bpl .1
rts
*--------------------------------------
2022-10-25 06:05:54 +00:00
CB.GetWndYCacheX
lda (ZPWNDPtr),y
sta CB.Cache,x
iny
lda (ZPWNDPtr),y
sta CB.Cache+1,x
rts
*--------------------------------------
2022-10-27 15:14:06 +00:00
CB.BorderLineH lda #S.CB.CMD.HLINE
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
lda PREFS.BorderColor
sta CB.Cache+S.CB.COLOR
rts
*--------------------------------------
2022-10-26 06:12:16 +00:00
CB.FillRectMonoA
sta CB.Cache+S.CB.COLOR
lda #S.CB.CMD.FILLRECT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
rts
*--------------------------------------
2022-10-20 06:07:40 +00:00
CB.GetBuf clc
ldx hCBBuf
bne .9
>LDYAI 512
>SYSCALL2 GetMem
bcs .9
stx hCBBuf
>STYA ZPCBBufPtr
.9 rts
*--------------------------------------
CB.Cache2CBBuf
lda CB.Cache
lsr
tax
ldy CB.CmdLen-1,x
ldx #0
.1 lda CB.Cache,x
sta (ZPCBBufPtr)
inc ZPCBBufPtr
bne .2
inc ZPCBBufPtr+1
.2 inx
dey
bpl .1
rts
*--------------------------------------
CB.FlushBufToYA ldx hCBBuf
beq .8
pha
phy
bit PTR.bVisible
bpl .1
jsr PTR.Hide.I
.1 lda #0
sta (ZPCBBufPtr)
2022-10-25 06:05:54 +00:00
lda hCBBuf
>SYSCALL2 GetMemPtr
>STYA ZPCBBufPtr
2022-10-20 06:07:40 +00:00
ply
pla
jsr OBJ.GetInCache
2022-10-25 06:05:54 +00:00
.2 lda (ZPCBBufPtr)
2022-10-20 06:07:40 +00:00
beq .7
2022-10-25 06:05:54 +00:00
>LDYA ZPCBBufPtr
2022-10-20 06:07:40 +00:00
jsr CB.GetInCache A = CB.CMD
cmp #S.CB.CMD.DRAWTEXT2
bne .4
lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
jsr CB.GFXWrite
bcs .9
jsr CLIP.CB.Cache
bcs .3
jsr CB.GFXWrite
.3 lda CB.Cache+S.CB.SrcPtr
>SYSCALL2 FreeStkObj
bra .5
.4 jsr CLIP.CB.Cache
bcs .5
jsr CB.GFXWrite
2022-10-25 06:05:54 +00:00
.5 lda (ZPCBBufPtr) Get Cmd
2022-10-20 06:07:40 +00:00
lsr
tax
lda CB.CmdLen-1,x
sec +1
2022-10-25 06:05:54 +00:00
adc ZPCBBufPtr
sta ZPCBBufPtr
2022-10-20 06:07:40 +00:00
bcc .2
2022-10-25 06:05:54 +00:00
inc ZPCBBufPtr+1
2022-10-20 06:07:40 +00:00
bra .2
.7 lda hCBBuf
stz hCBBuf
>SYSCALL2 FreeMem
bit PTR.bVisible
bpl .8
jmp PTR.Show.I
.8 clc
.9 rts
*--------------------------------------
CB.GFXWrite >PUSHB WND.Screen+S.OBJ.hPARENT
>PUSHBI IOCTL.WRITE
>PUSHW L.CB.Cache
>SYSCALL2 IOCTL
rts
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.cb
LOAD usr/src/lib/libgui.s
ASM