A2osX/LIB/LIBGUI.S.OBJ.txt
2022-10-26 08:12:16 +02:00

253 lines
4.0 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
*--------------------------------------
* A = Object Class
*--------------------------------------
OBJ.New pha
tax
ldy OBJ.SizeOf,x
lda #0
>SYSCALL GetMem
bcs .9
>STYA ZPObjPtr
pla
sta (ZPObjPtr)
phx hObj
tax
ldy OBJ.SizeOf,x
dey
lda #0
.1 sta (ZPObjPtr),y
dey
bne .1
>LDYA ZPObjPtr
* clc
.9 plx
rts
*--------------------------------------
* hOBJ, Prop8, Value16
*--------------------------------------
OBJ.SetProp ldy #3
lda (pStack),y hOBJ
>SYSCALL2 GetMemPtr
>STYA ZPObjPtr
ldy #2
lda (pStack),y
tay
lda (ZPObjPtr),y
pha old value
>PULLA
sta (ZPObjPtr),y
iny
lda (ZPObjPtr),y
tax
>PULLA
sta (ZPObjPtr),y
txa
ply
>RET 2
*--------------------------------------
* hOBJ, Prop8
*--------------------------------------
OBJ.GetProp >PULLA
pha
>PULLA
>SYSCALL2 GetMemPtr
>STYA ZPObjPtr
ply
lda (ZPObjPtr),y
pha
iny
lda (ZPObjPtr),y
ply
rts
*--------------------------------------
OBJ.SetX2Y2 >STYA ZPPtr1
ldy #S.OBJ.W
lda (ZPPtr1),y
clc
sbc #0
pha
iny
lda (ZPPtr1),y
sbc #0
tax
pla
clc
ldy #S.OBJ.X1
adc (ZPPtr1),y
pha
txa
iny
adc (ZPPtr1),y
ldy #S.OBJ.X2+1
sta (ZPPtr1),y
dey
pla
sta (ZPPtr1),y
ldy #S.OBJ.H
lda (ZPPtr1),y
clc
sbc #0
pha
iny
lda (ZPPtr1),y
sbc #0
tax
pla
clc
ldy #S.OBJ.Y1
adc (ZPPtr1),y
pha
txa
iny
adc (ZPPtr1),y
ldy #S.OBJ.Y2+1
sta (ZPPtr1),y
tax
dey
pla
sta (ZPPtr1),y A,X = Y2
rts
*--------------------------------------
OBJ.GetInCache >STYA .1+1
ldx #S.OBJ-1
.1 lda $ffff,x SELF MODIFIED
sta OBJ.Cache,x
dex
bpl .1
rts
*--------------------------------------
OBJ.DrawBorders >STYA ZPObjPtr
stx IY
lda #S.CB.CMD.HLINE
jsr CB.InitCacheA
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
ldy #S.OBJ.X1
lda (ZPObjPtr),y
sec
sbc IY
sta CB.Cache+S.CB.X1
iny
lda (ZPObjPtr),y
sbc #0
sta CB.Cache+S.CB.X1+1
iny #S.OBJ.Y1
lda (ZPObjPtr),y
sec
sbc IY
sta CB.Cache+S.CB.Y1
sta CB.Cache+S.CB.Y2
iny
lda (ZPObjPtr),y
sbc #0
sta CB.Cache+S.CB.Y1+1
sta CB.Cache+S.CB.Y2+1 top X1-1,Y1-1,X2+1,Y1-1
iny #S.OBJ.X2
lda (ZPObjPtr),y
clc
adc IY
sta CB.Cache+S.CB.X2
iny
lda (ZPObjPtr),y
adc #0
sta CB.Cache+S.CB.X2+1
jsr CB.Cache2CBBuf
ldy #S.OBJ.Y2
lda (ZPObjPtr),y
clc
adc IY
sta CB.Cache+S.CB.Y1
sta CB.Cache+S.CB.Y2
iny
lda (ZPObjPtr),y
adc #0
sta CB.Cache+S.CB.Y1+1
sta CB.Cache+S.CB.Y2+1 bottom X1-1,Y2+1,X2+1,Y2+1
jsr CB.Cache2CBBuf
lda #S.CB.CMD.VLINE
sta CB.Cache+S.CB.CMD
ldy #S.OBJ.Y1
lda (ZPObjPtr),y
sec
sbc IY
sta CB.Cache+S.CB.Y1
iny
lda (ZPObjPtr),y
sbc #0
sta CB.Cache+S.CB.Y1+1
lda CB.Cache+S.CB.X1
sta CB.Cache+S.CB.X2
lda CB.Cache+S.CB.X1+1
sta CB.Cache+S.CB.X2+1 left X1-1,Y1-1,X1-1,Y2+1
jsr CB.Cache2CBBuf
ldy #S.OBJ.X2
lda (ZPObjPtr),y
clc
adc IY
sta CB.Cache+S.CB.X1
sta CB.Cache+S.CB.X2
iny
lda (ZPObjPtr),y
adc #0
sta CB.Cache+S.CB.X1+1
sta CB.Cache+S.CB.X2+1 right X2+1,Y1-1,X2+1,Y2+1
jmp CB.Cache2CBBuf
*-------------------------------------
*--------------------------------------
MAN
SAVE usr/src/lib/libgui.s.obj
LOAD usr/src/lib/libgui.s
ASM