mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-30 23:49:37 +00:00
193 lines
2.7 KiB
Plaintext
193 lines
2.7 KiB
Plaintext
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
|