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