NEW AUTO 3,1 .LIST OFF *-------------------------------------- * CBOX.New hParent,X1,Y1,HK,EV,pLabel,pVar 9 *-------------------------------------- CBOX.New lda #S.OBJ.T.CBOX jsr OBJ.Create bcs .9 ldy #S.CBOX.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 OBJ.Insert bcs .99 lda hObj * clc rts .9 >POP 9 .99 rts *-------------------------------------- CBOX.Destroy clc 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 ldy #S.CBOX.pVar lda (ZPObjPtr),y sta ZPPtr1 iny lda (ZPObjPtr),y sta ZPPtr1+1 lda (ZPPtr1) eor #$ff sta (ZPPtr1) ldy #1 hObj lda (pStack),y >PUSHA jsr OBJ.Draw.Body inc pStack rts .9 lda #0 sec rts *-------------------------------------- CBOX.Draw ldx #'(' ldy #S.OBJ.S lda (ZPObjPtr),y php bpl .10 ldx #'[' .10 txa jsr LB.COut ldy #S.CBOX.pVar lda (ZPObjPtr),y sta ZPPtr1 iny lda (ZPObjPtr),y sta ZPPtr1+1 ldx #C.SPACE lda (ZPPtr1) 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 *-------------------------------------- CBOX.Activate *-------------------------------------- CBOX.Deactivate jmp OBJ.Draw.Body *-------------------------------------- MAN SAVE usr/src/lib/libtui.s.cbox LOAD usr/src/lib/libtui.s ASM