A2osX/BIN/EDIT.S.DLG.txt

523 lines
7.6 KiB
Plaintext
Raw Normal View History

2019-11-20 16:37:09 +00:00
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
2019-11-25 07:05:07 +00:00
2019-11-20 16:37:09 +00:00
.5 lda (ZPPTR1),y
beq .8
2019-11-25 07:05:07 +00:00
phy
tya
jsr DLG.CTRL.Draw
ply
2019-11-20 16:37:09 +00:00
bcs .9
2019-11-25 07:05:07 +00:00
iny
2019-11-20 16:37:09 +00:00
bra .5
.8 clc
.9 rts
*--------------------------------------
2019-11-21 15:59:09 +00:00
DLG.Run >SYSCALL getchar
bcs .9
cmp #3
beq .8
cmp #C.CR
beq .8
cmp #C.TAB
2019-11-25 07:05:07 +00:00
bne DLG.Run
jsr DLG.NextFocus
bcc DLG.Run
2019-11-21 15:59:09 +00:00
2019-11-25 07:05:07 +00:00
rts
2019-11-21 15:59:09 +00:00
.8 clc
2019-11-25 07:05:07 +00:00
.9
DLG.Run.RTS rts
2019-11-21 15:59:09 +00:00
*--------------------------------------
2019-11-25 07:05:07 +00:00
DLG.NextFocus ldy #S.DLG.Focus
lda (ZPPTR1),y get actual focused Ctrl
2019-11-21 15:59:09 +00:00
2019-11-25 07:05:07 +00:00
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
2019-11-21 15:59:09 +00:00
*--------------------------------------
DLG.Close ldy #S.DLG.H
lda (ZPPTR1),y
2019-11-22 14:05:37 +00:00
sta TmpCount
2019-11-21 15:59:09 +00:00
ldy #S.DLG.Y
lda (ZPPTR1),y
2019-11-22 16:02:59 +00:00
sta TmpByte
2019-11-21 15:59:09 +00:00
2019-11-22 16:02:59 +00:00
.1 >LDA.G ScreenY
2019-11-21 15:59:09 +00:00
clc
2019-11-22 14:05:37 +00:00
ldy #S.DLG.Y
adc (ZPPTR1),y
sta TmpIndex
>LDA.G ScreenY+1
adc #0
sta TmpIndex+1
2019-11-22 16:02:59 +00:00
lda TmpIndex
2019-11-22 14:05:37 +00:00
ldx TmpIndex+1
jsr BUF.GetLineAX
bcs .8
2019-11-22 16:02:59 +00:00
lda TmpByte
2019-11-22 14:05:37 +00:00
jsr SCRN.UpdateLineAtALenY
inc TmpIndex
2019-11-22 16:02:59 +00:00
bne .2
inc TmpIndex+1
.2 inc TmpByte
2019-11-22 14:05:37 +00:00
dec TmpCount
bne .1
.8 clc
2019-11-21 15:59:09 +00:00
rts
*--------------------------------------
2019-11-25 07:05:07 +00:00
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
2019-11-20 16:37:09 +00:00
bcs .9
ldy TmpByte CtrlID
lda (ZPPTR1),y
tay
2019-11-21 07:01:46 +00:00
iny
iny
iny
2019-11-20 16:37:09 +00:00
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
2019-11-25 07:05:07 +00:00
DLG.CTRL.Draw.TB
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoXY
2019-11-20 16:37:09 +00:00
bcs .9
ldy TmpByte
lda (ZPPTR1),y
tay
2019-11-21 07:01:46 +00:00
iny
iny
iny
2019-11-21 15:59:09 +00:00
2019-11-21 07:01:46 +00:00
iny
2019-11-21 15:59:09 +00:00
2019-11-21 07:01:46 +00:00
iny
lda (ZPPTR1),y
tay
2019-11-20 16:37:09 +00:00
lda (pData),y
>SYSCALL getmemptr
>STYA ZPPTR2
2019-11-25 07:05:07 +00:00
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .10
sec
.10 lda #C.SPACE
bcc .11
lda #'['
.11 jsr SCRN.ToLineBuf
2019-11-21 15:59:09 +00:00
2019-11-20 16:37:09 +00:00
ldy #0
2019-11-21 07:01:46 +00:00
.1 lda (ZPPTR2),y
2019-11-21 15:59:09 +00:00
beq .2
2019-11-20 16:37:09 +00:00
jsr SCRN.ToLineBuf
iny
bra .1
2019-11-21 15:59:09 +00:00
.2 tya
tax
ldy TmpByte
lda (ZPPTR1),y
tay
iny
iny
iny
iny
.3 txa
2019-11-25 07:05:07 +00:00
eor (ZPPTR1),y MAXCHAR
2019-11-21 15:59:09 +00:00
beq .8
lda #C.SPACE
jsr SCRN.ToLineBuf
inx
bra .3
2019-11-25 07:05:07 +00:00
.8 lda #C.SPACE
bcc .81
lda #']'
.81 jsr SCRN.ToLineBuf
2019-11-21 15:59:09 +00:00
jmp SCRN.LineBufOut
2019-11-20 16:37:09 +00:00
.9 rts
*--------------------------------------
2019-11-25 07:05:07 +00:00
DLG.CTRL.Draw.OL
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoXY
2019-11-21 15:59:09 +00:00
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
2019-11-22 14:05:37 +00:00
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
2019-11-25 07:05:07 +00:00
DLG.CTRL.Draw.BUT
2019-11-22 14:05:37 +00:00
jsr SCRN.LineBufInitInv
2019-11-25 07:05:07 +00:00
jsr DLG.CTRL.GotoXY
2019-11-22 14:05:37 +00:00
bcs .9
2019-11-25 07:05:07 +00:00
ldy #S.DLG.Focus
lda (ZPPTR1),y
eor TmpByte
bne .10
sec
.10 ldy TmpByte CtrlID
2019-11-22 14:05:37 +00:00
lda (ZPPTR1),y
tay
iny
iny
iny
iny
2019-11-25 07:05:07 +00:00
lda #C.SPACE
bcc .11
lda #'['
.11 jsr SCRN.ToLineBuf
2019-11-22 14:05:37 +00:00
.1 lda (ZPPTR1),y
beq .8
jsr SCRN.ToLineBuf
iny
bra .1
2019-11-25 07:05:07 +00:00
.8 lda #C.SPACE
bcc .81
lda #']'
.81 jsr SCRN.ToLineBuf
jmp SCRN.LineBufOut
2019-11-21 15:59:09 +00:00
.9 rts
2019-11-20 16:37:09 +00:00
*--------------------------------------
2019-11-25 07:05:07 +00:00
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
2019-11-20 16:37:09 +00:00
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
2019-11-25 07:05:07 +00:00
*--------------------------------------
2019-11-20 16:37:09 +00:00
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
2019-11-21 07:01:46 +00:00
jmp SCRN.ToLineBuf
2019-11-20 16:37:09 +00:00
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.DLG
LOAD USR/SRC/BIN/EDIT.S
ASM