A2osX/BIN/EDIT.S.DLG.txt
2019-11-25 08:05:07 +01:00

523 lines
7.6 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
*--------------------------------------
DLG.Open >STYA ZPPTR2
lda (ZPPTR2)
tay
lda #0
>SYSCALL getmem
bcs .99
>STYA ZPPTR1
txa
>STA.G hDLG
ldy #0
.1 lda (ZPPTR2),y
sta (ZPPTR1),y
iny
tya
cmp (ZPPTR2)
bne .1
jsr DLG.SetOrigin
sty TmpByte
jsr SCRN.GotoXY
bcs .9
ldy #S.DLG.Title
jsr DLG.DrawInvBar
.99 bcs .9
jsr SCRN.LineBufInitNorm
jsr DLG.VBarToLineBuf
ldy #S.DLG.W
lda (ZPPTR1),y
dec
tax
lda #C.SPACE
.3 jsr SCRN.ToLineBuf
dex
bne .3
jsr DLG.VBarToLineBuf
ldy #S.DLG.H
lda (ZPPTR1),y
dec
dec
tax
.4 phx
inc TmpByte
ldy #S.DLG.X
lda (ZPPTR1),y
tax
ldy TmpByte
jsr SCRN.GotoXY
bcs .9
jsr SCRN.LineBufOut
bcs .9
plx
dex
bne .4
inc TmpByte
ldy #S.DLG.X
lda (ZPPTR1),y
tax
ldy TmpByte
jsr SCRN.GotoXY
bcs .9
ldy #S.DLG.Status
jsr DLG.DrawInvBar
bcs .9
ldy #S.DLG.Ctrls
.5 lda (ZPPTR1),y
beq .8
phy
tya
jsr DLG.CTRL.Draw
ply
bcs .9
iny
bra .5
.8 clc
.9 rts
*--------------------------------------
DLG.Run >SYSCALL getchar
bcs .9
cmp #3
beq .8
cmp #C.CR
beq .8
cmp #C.TAB
bne DLG.Run
jsr DLG.NextFocus
bcc DLG.Run
rts
.8 clc
.9
DLG.Run.RTS rts
*--------------------------------------
DLG.NextFocus ldy #S.DLG.Focus
lda (ZPPTR1),y get actual focused Ctrl
pha save it...
tax
.1 inx next one
.2 txa
tay
lda (ZPPTR1),y Get Ctrl
bne .3 end of list, get first
ldx #S.DLG.Ctrls
bra .2
.3 tay
lda (ZPPTR1),y Get Ctrl Type
beq .1 LBL
txa
ldy #S.DLG.Focus
sta (ZPPTR1),y
pla get old focused
phx save new focused
jsr DLG.CTRL.Draw
pla
bcs DLG.Run.RTS
jmp DLG.CTRL.Draw
*--------------------------------------
DLG.Close ldy #S.DLG.H
lda (ZPPTR1),y
sta TmpCount
ldy #S.DLG.Y
lda (ZPPTR1),y
sta TmpByte
.1 >LDA.G ScreenY
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
sta TmpIndex
>LDA.G ScreenY+1
adc #0
sta TmpIndex+1
lda TmpIndex
ldx TmpIndex+1
jsr BUF.GetLineAX
bcs .8
lda TmpByte
jsr SCRN.UpdateLineAtALenY
inc TmpIndex
bne .2
inc TmpIndex+1
.2 inc TmpByte
dec TmpCount
bne .1
.8 clc
rts
*--------------------------------------
DLG.CTRL.Draw sta TmpByte A=CtrlID
tay
lda (ZPPTR1),y Ctrl Definition
tay
lda (ZPPTR1),y Ctrl Type
tax
jmp (J.DLG.CTRL.Draw,x)
*--------------------------------------
DLG.CTRL.Draw.LBL
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoXY
bcs .9
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny
iny
iny
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
DLG.CTRL.Draw.TB
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoXY
bcs .9
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
iny
iny
lda (ZPPTR1),y
tay
lda (pData),y
>SYSCALL getmemptr
>STYA ZPPTR2
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .10
sec
.10 lda #C.SPACE
bcc .11
lda #'['
.11 jsr SCRN.ToLineBuf
ldy #0
.1 lda (ZPPTR2),y
beq .2
jsr SCRN.ToLineBuf
iny
bra .1
.2 tya
tax
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
iny
.3 txa
eor (ZPPTR1),y MAXCHAR
beq .8
lda #C.SPACE
jsr SCRN.ToLineBuf
inx
bra .3
.8 lda #C.SPACE
bcc .81
lda #']'
.81 jsr SCRN.ToLineBuf
jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
DLG.CTRL.Draw.OL
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoXY
bcs .9
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
iny
lda (ZPPTR1),y value
sta TmpCount
iny
ldx #0
.1 lda #"("
jsr SCRN.ToLineBuf
lda #"o"
cpx TmpCount
beq .2
lda #C.SPACE
.2 jsr SCRN.ToLineBuf
lda #")"
jsr SCRN.ToLineBuf
lda #C.SPACE
jsr SCRN.ToLineBuf
.3 lda (ZPPTR1),y
beq .4
jsr SCRN.ToLineBuf
iny
bra .3
.4 lda #C.SPACE
jsr SCRN.ToLineBuf
inx
iny
lda (ZPPTR1),y
bne .1
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
DLG.CTRL.Draw.BUT
jsr SCRN.LineBufInitInv
jsr DLG.CTRL.GotoXY
bcs .9
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .10
sec
.10 ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny
iny
iny
iny
lda #C.SPACE
bcc .11
lda #'['
.11 jsr SCRN.ToLineBuf
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
.8 lda #C.SPACE
bcc .81
lda #']'
.81 jsr SCRN.ToLineBuf
jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
DLG.CTRL.Focus sta TmpByte A=CtrlID
tay
lda (ZPPTR1),y Ctrl Definition
tay
lda (ZPPTR1),y Ctrl Type
tax
jmp (J.DLG.CTRL.Focus,x)
*--------------------------------------
DLG.CTRL.Focus.LBL
DLG.CTRL.Focus.TB
DLG.CTRL.Focus.OL
DLG.CTRL.Focus.BUT
clc
rts
*--------------------------------------
DLG.CTRL.GotoXY
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
iny skip Ctrl Type
lda (ZPPTR1),y
clc
phy
ldy #S.DLG.X
adc (ZPPTR1),y
tax
ply
iny
lda (ZPPTR1),y
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
tay
jmp SCRN.GotoXY
*--------------------------------------
DLG.SetOrigin ldy #S.DLG.X
lda (ZPPTR1),y
bne .1
>LDA.G ScreenW
ldy #S.DLG.W
sec
sbc (ZPPTR1),y
lsr
ldy #S.DLG.X
sta (ZPPTR1),y
.1 tax
ldy #S.DLG.Y
lda (ZPPTR1),y
bne .2
>LDA.G ViewPortHm1
ldy #S.DLG.H
sec
sbc (ZPPTR1),y
lsr
ldy #S.DLG.Y
sta (ZPPTR1),y
.2 tay
rts
*--------------------------------------
DLG.DrawInvBar phy
jsr SCRN.LineBufInitInv
ldy #S.DLG.W
lda (ZPPTR1),y
tax
ply
lda (ZPPTR1),y
tay
.1 lda (ZPPTR1),y
beq .11
jsr SCRN.ToLineBuf
dex
iny
bra .1
.11 lda #C.SPACE
.2 jsr SCRN.ToLineBuf
dex
bne .2
ldy #0
.3 lda SEQ.NORM,y
beq .4
jsr SCRN.ToLineBuf
iny
bra .3
.4 jsr DLG.VBarToLineBuf
jmp SCRN.LineBufOut
*--------------------------------------
DLG.VBarToLineBuf
lda #C.SO
jsr SCRN.ToLineBuf
lda #'x'
jsr SCRN.ToLineBuf
lda #C.SI
jmp SCRN.ToLineBuf
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.DLG
LOAD USR/SRC/BIN/EDIT.S
ASM