A2osX/LIB/LIBTUI.S.LBOX.txt

130 lines
1.7 KiB
Plaintext
Raw Normal View History

NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
LBOX.New
clc
rts
*--------------------------------------
LBOX.Destroy
clc
rts
*--------------------------------------
LBOX.Run lda (pStack) Event
cmp #C.LF
bne .5
clc
rts
.5 cmp #C.VT
bne .9
clc
rts
.9 sec
rts
*--------------------------------------
LBOX.Draw ldy #S.LBOX.VScroll
lda (ZPObjPtr),y
clc
adc (pStack) Relative Y
tax
jsr LBOX.GetLineX
bcs .5
txa
ldy #S.LBOX.Idx
cmp (ZPObjPtr),y
bne .1
ldx #SEQ.INVERSE-SEQS
jsr LIB.LineBufSeqOut
.1 ldy #S.OBJ.InnerW
lda (ZPObjPtr),y
tax
ldy #0
.2 lda (ZPPtr1),y
beq .3
jsr LIB.LineBufCOut
iny
dex
bne .2
.3 txa
beq .8
bra .6
.5 ldy #S.OBJ.InnerW
lda (ZPObjPtr),y
tax
.6 lda #C.SPACE
.7 jsr LIB.LineBufCOut
dex
bne .7
.8 clc
rts
*--------------------------------------
LBOX.GetLineX stz TempI
ldy #S.LBOX.pL
lda (ZPObjPtr),y
sta ZPPtr1
iny
lda (ZPObjPtr),y
sta ZPPtr1+1
.1 cpx TempI
beq .8
.2 inc TempI
ldy #$ff
.4 iny
lda (ZPPtr1),y
bne .4
tya
beq .9
sec
adc ZPPtr1
sta ZPPtr1
bcc .1
inc ZPPtr1+1
bra .1
.8 clc
rts
.9 sec
rts
*--------------------------------------
LBOX.Activate
clc
rts
*--------------------------------------
LBOX.Deactivate
clc
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libtui.s.lbox
LOAD usr/src/lib/libtui.s
ASM