A2osX/LIB/LIBTUI.S.RADIO.txt

247 lines
3.3 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
*--------------------------------------
* RADIO.New hParent,X1,Y1,HK,EV,pList,pVar 9
*--------------------------------------
RADIO.New lda #S.OBJ.T.RADIO
jsr OBJ.Create
bcs .9
ldy #S.RADIO.pVar
jsr OBJ.PullWordY
ldy #S.OBJ.pBuf
jsr OBJ.PullWordY
stx ZPPtr1
sta ZPPtr1+1
>PULLA
ldy #S.RADIO.EV
sta (ZPObjPtr),y
>PULLA
ldy #S.RADIO.HotKey
sta (ZPObjPtr),y
ldx #0
.1 ldy #$ff
.2 iny
lda (ZPPtr1),y
clc
beq .20
cmp #C.CR
bne .2
* sec
.20 tya
beq .5 empty line
adc ZPPtr1
sta ZPPtr1
bcc .3
inc ZPPtr1+1
.3 tya
clc
adc #5 room for " ( ) "
ldy #S.OBJ.W
cmp (ZPObjPtr),y
bcc .4
sta (ZPObjPtr),y
.4 inx
lda (ZPPtr1)
bne .1
.5 ldy #S.OBJ.H
txa
sta (ZPObjPtr),y
jsr OBJ.PullY1X1hParent
jsr OBJ.Insert
bcs .9
lda hObj
* clc
rts
.9 >POP 9
rts
*--------------------------------------
RADIO.Destroy clc
rts
*--------------------------------------
RADIO.Run ldy #S.OBJ.S
lda (ZPObjPtr),y
bpl .9
lda (pStack) Event
cmp #C.SPACE
bne .2
ldy #S.RADIO.pVar
lda (ZPObjPtr),y
sta ZPPtr1
iny
lda (ZPObjPtr),y
sta ZPPtr1+1
ldy #S.RADIO.Idx
lda (ZPObjPtr),y
sta (ZPPtr1)
bra .7
.2 cmp #C.LF
bne .5
ldy #S.RADIO.Idx
lda (ZPObjPtr),y
inc
ldy #S.OBJ.InnerH
cmp (ZPObjPtr),y
bne .3
lda #0
.3 ldy #S.RADIO.Idx
sta (ZPObjPtr),y
bra .7
.5 cmp #C.VT
bne .9
ldy #S.RADIO.Idx
lda (ZPObjPtr),y
bne .6
ldy #S.OBJ.InnerH
lda (ZPObjPtr),y
.6 dec
ldy #S.RADIO.Idx
sta (ZPObjPtr),y
.7 ldy #1 hObj
lda (pStack),y
>PUSHA
jsr OBJ.Draw.Body
inc pStack
.8 clc
rts
.9 lda #0
sec
rts
*--------------------------------------
RADIO.Draw lda (pStack) Relative Y
tax
ldy #S.OBJ.pBuf
jsr OBJ.GetLineXAtY
bcs .8
ldy #S.RADIO.pVar
lda (ZPObjPtr),y
sta ZPPtr2
iny
lda (ZPObjPtr),y
sta ZPPtr2+1
clc
ldx #'('
ldy #S.OBJ.S
lda (ZPObjPtr),y
bpl .10
ldy #S.RADIO.Idx
lda (ZPObjPtr),y
eor (pStack) Relative Y
bne .10
ldx #'['
sec
.10 php
txa
jsr LB.COut
lda (pStack)
cmp (ZPPtr2)
bne .11
lda #C.SO
jsr LB.COut
lda #'`'
jsr LB.COut
lda #C.SI
bra .13
.11 lda #C.SPACE
.13 jsr LB.COut
ldx #')'
plp
bcc .12
ldx #']'
.12 txa
jsr LB.COut
lda #C.SPACE
jsr LB.COut
.1 ldy #S.OBJ.InnerW
lda (ZPObjPtr),y
tax
dex
dex
dex
dex
jsr LB.Ptr1OutEscMaxX
.3 txa
beq .8
lda #C.SPACE
.7 jsr LB.COut
dex
bne .7
.8 clc
rts
*--------------------------------------
RADIO.Activate
*--------------------------------------
RADIO.Deactivate
jmp OBJ.Draw.Body
*--------------------------------------
MAN
SAVE usr/src/lib/libtui.s.radio
LOAD usr/src/lib/libtui.s
ASM