A2osX/LIB/LIBTUI.S.CBOX.txt
2024-01-25 19:44:59 +01:00

184 lines
2.4 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
.LIST OFF
*--------------------------------------
* CBOX.New hParent,X1,Y1,HK,EV,pLabel,pVar,F 10
*--------------------------------------
CBOX.New lda #S.OBJ.T.CBOX
jsr OBJ.Create
bcs .9
>PULLA
ldy #S.OBJ.F
sta (ZPObjPtr),y
ldy #S.OBJ.pVar
jsr OBJ.PullWordY
ldy #S.CBOX.pLabel
jsr OBJ.PullWordY
stx ZPPtr1
sta ZPPtr1+1
>PULLA
ldy #S.CBOX.EV
sta (ZPObjPtr),y
>PULLA
ldy #S.CBOX.HotKey
sta (ZPObjPtr),y
ldy #$ff
.1 iny
lda (ZPPtr1),y
bne .1
tya
inc
inc
inc
inc
inc
ldy #S.OBJ.W
sta (ZPObjPtr),y
ldy #S.OBJ.H
lda #1
sta (ZPObjPtr),y
jsr OBJ.PullY1X1hParent
jsr CONT.Insert
bcs .99
lda hObj
* clc
rts
.9 >POP 10
.99 rts
*--------------------------------------
CBOX.Run ldy #S.BUT.HotKey
cmp (ZPObjPtr),y
beq .8
ldy #S.OBJ.S
lda (ZPObjPtr),y
bpl .9
lda (pStack) Event
cmp #C.SPACE
bne .9
.8 jsr OBJ.GetpVarPtr2
lda (ZPPtr2)
eor #$ff
sta (ZPPtr2)
ldy #1 hObj
lda (pStack),y
>PUSHA
jsr OBJ.Draw.Body
inc pStack
bcs .99
ldy #S.CBOX.EV
lda (ZPObjPtr),y
* clc
rts
.9 lda #0
sec
.99 rts
*--------------------------------------
CBOX.Draw ldx #'<'
ldy #S.OBJ.S
lda (ZPObjPtr),y
php
bpl .10
ldx #'['
.10 txa
jsr LB.COut
jsr OBJ.GetpVarPtr2
ldx #C.SPACE
lda (ZPPtr2)
bpl .11
ldx #'X'
.11 txa
jsr LB.COut
ldx #'>'
plp
bpl .12
ldx #']'
.12 txa
jsr LB.COut
lda #C.SPACE
jsr LB.COut
ldy #S.BUT.pLabel
lda (ZPObjPtr),y
sta ZPPtr1
iny
lda (ZPObjPtr),y
sta ZPPtr1+1
.1 ldy #S.OBJ.InnerW
lda (ZPObjPtr),y
tax
dex
dex
dex
dex
ldy #0
.2 lda (ZPPtr1),y
beq .3
jsr LB.COut
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 LB.COut
dex
bne .7
.8 clc
rts
*--------------------------------------
MAN
SAVE usr/src/lib/libtui.s.cbox
LOAD usr/src/lib/libtui.s
ASM