Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-09 08:12:14 +01:00
parent 6da3053e17
commit bfd315c387
4 changed files with 134 additions and 71 deletions

Binary file not shown.

View File

@ -30,12 +30,10 @@ DLG.Open >STYA ZPPTR2
bcs .9 bcs .9
ldy #S.DLG.Title ldy #S.DLG.Title
jsr DLG.DrawInvBar jsr DLG.DrawBar
.99 bcs .9 .99 bcs .9
jsr SCRN.LineBufInitNorm jsr SCRN.LineBufInitDLG
jsr DLG.VBarToLineBuf
ldy #S.DLG.W ldy #S.DLG.W
lda (ZPPTR1),y lda (ZPPTR1),y
@ -83,7 +81,7 @@ DLG.Open >STYA ZPPTR2
bcs .9 bcs .9
ldy #S.DLG.Status ldy #S.DLG.Status
jsr DLG.DrawInvBar jsr DLG.DrawBar
bcs .9 bcs .9
ldy #S.DLG.Ctrls ldy #S.DLG.Ctrls
@ -198,7 +196,7 @@ DLG.CTRL.Draw sta TmpByte A=CtrlID
jmp (J.DLG.CTRL.Draw,x) jmp (J.DLG.CTRL.Draw,x)
*-------------------------------------- *--------------------------------------
DLG.CTRL.Draw.LBL DLG.CTRL.Draw.LBL
jsr SCRN.LineBufInitNorm jsr SCRN.LineBufInitDlg
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
bcs .9 bcs .9
@ -222,7 +220,7 @@ DLG.CTRL.Draw.LBL
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DLG.CTRL.Draw.TB DLG.CTRL.Draw.TB
jsr SCRN.LineBufInitNorm jsr SCRN.LineBufInitEdit
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
bcs .9 bcs .9
@ -289,7 +287,7 @@ DLG.CTRL.Draw.TB
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DLG.CTRL.Draw.OL DLG.CTRL.Draw.OL
jsr SCRN.LineBufInitNorm jsr SCRN.LineBufInitDlg
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
bcs .9 bcs .9
@ -336,7 +334,7 @@ DLG.CTRL.Draw.OL
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DLG.CTRL.Draw.BUT DLG.CTRL.Draw.BUT
jsr SCRN.LineBufInitInv jsr SCRN.LineBufInitBut
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
bcs .9 bcs .9
@ -369,9 +367,7 @@ DLG.CTRL.Draw.BUT
*-------------------------------------- *--------------------------------------
DLG.CTRL.Focus sta TmpByte A=CtrlID DLG.CTRL.Focus sta TmpByte A=CtrlID
jsr SCRN.LineBufInitNorm tay
ldy TmpByte
lda (ZPPTR1),y Ctrl Definition lda (ZPPTR1),y Ctrl Definition
tay tay
lda (ZPPTR1),y Ctrl Type lda (ZPPTR1),y Ctrl Type
@ -382,6 +378,8 @@ DLG.CTRL.Focus.LBL
clc clc
rts rts
DLG.CTRL.Focus.TB DLG.CTRL.Focus.TB
jsr SCRN.LineBufInitEdit
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus ldy #S.DLG.Focus
@ -452,6 +450,8 @@ DLG.CTRL.Focus.TB
jmp SCRN.GotoXY jmp SCRN.GotoXY
DLG.CTRL.Focus.OL DLG.CTRL.Focus.OL
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus ldy #S.DLG.Focus
@ -481,6 +481,8 @@ DLG.CTRL.Focus.OL
jmp SCRN.LineBufOut jmp SCRN.LineBufOut
DLG.CTRL.Focus.BUT DLG.CTRL.Focus.BUT
jsr SCRN.LineBufInitNorm
jsr DLG.CTRL.GotoOrg jsr DLG.CTRL.GotoOrg
ldy #S.DLG.Focus ldy #S.DLG.Focus
@ -767,8 +769,8 @@ DLG.CTRL.CharIn.BUT
clc clc
rts rts
*-------------------------------------- *--------------------------------------
DLG.DrawInvBar phy DLG.DrawBar phy
jsr SCRN.LineBufInitInv jsr SCRN.LineBufInitBar
ldy #S.DLG.W ldy #S.DLG.W
lda (ZPPTR1),y lda (ZPPTR1),y
@ -780,6 +782,7 @@ DLG.DrawInvBar phy
.1 lda (ZPPTR1),y .1 lda (ZPPTR1),y
beq .11 beq .11
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
dex dex
iny iny
@ -792,8 +795,10 @@ DLG.DrawInvBar phy
bne .2 bne .2
ldy #0 ldy #0
.3 lda SEQ.NORM,y .3 lda SEQ.NORM,y
beq .4 beq .4
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
iny iny
bra .3 bra .3
@ -803,12 +808,15 @@ DLG.DrawInvBar phy
jmp SCRN.LineBufOut jmp SCRN.LineBufOut
*-------------------------------------- *--------------------------------------
DLG.VBarToLineBuf DLG.VBarToLineBuf
lda #C.SO ldy #0
.1 lda SEQ.DLG.RIGHT,y
beq .8
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
lda #'x' iny
jsr SCRN.ToLineBuf bra .1
lda #C.SI
jmp SCRN.ToLineBuf .8 rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/EDIT.S.DLG SAVE USR/SRC/BIN/EDIT.S.DLG

View File

@ -39,15 +39,26 @@ SCRN.ResetScrollRgn
rts rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateTopBar SCRN.UpdateTopBar
jsr SCRN.LineBufInitBar
>PUSHBI 1 >PUSHBI 1
>PUSHBI 1 >PUSHBI 1
>PUSHBI 2 >PUSHBI 2
>LDYA L.MSG.GOTOXY >PUSHW L.MSG.GOTOXY
>SYSCALL printf jsr SCRN.LineBufSprintf
bcs .9 bcs .9
>LDYA.G LineBufBase >LDA.G ScreenW
>STYA LineBufPtr tax
lda #C.SPACE
.1 jsr SCRN.ToLineBuf
dex
bne .1
lda #C.CR
jsr SCRN.ToLineBuf
>LDA.G FileType >LDA.G FileType
tax tax
@ -58,27 +69,16 @@ SCRN.UpdateTopBar
>PUSHYA >PUSHYA
>PUSHBI 4 >PUSHBI 4
>PUSHW L.MSG.TOPBAR >PUSHW L.MSG.TOPBAR
>LDYA LineBufPtr jsr SCRN.LineBufSprintf
>SYSCALL sprintf
bcs .9 bcs .9
>LDA.G bSaved >LDA.G bSaved
bne .8 bne .8
ldy #255
.3 iny
lda (LineBufPtr),y
bne .3
lda #'!' lda #'!'
sta (LineBufPtr),y jsr SCRN.ToLineBuf
iny .8 jmp SCRN.LineBufOut
lda #0
sta (LineBufPtr),y
.8 jmp SCRN.LineBufOutBar
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateMain >LDA.G ScreenY SCRN.UpdateMain >LDA.G ScreenY
@ -176,12 +176,12 @@ SCRN.UpdateLineAtALenY
jsr SCRN.GotoXY jsr SCRN.GotoXY
bcs SCRN.UpdateMain.9 bcs SCRN.UpdateMain.9
jsr SCRN.LineBufInitNorm jsr SCRN.LineBufInitEdit
ldy #$ff ldy #$ff
.10 iny .10 iny
lda SEQ.EDIT,y lda SEQ.CEOL,y
beq .11 beq .11
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
bra .10 bra .10
@ -267,30 +267,37 @@ SCRN.ToggleSel.RTS
rts rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateStatusBar SCRN.UpdateStatusBar
>LDYA.G LineBufBase jsr SCRN.LineBufInitBar
>STYA LineBufPtr
>PUSHBI 1 >PUSHBI 1
>PUSHB.G ScreenH >PUSHB.G ScreenH
>PUSHBI 2 >PUSHBI 2
>LDYA L.MSG.GOTOXY >PUSHW L.MSG.GOTOXY
>SYSCALL printf jsr SCRN.LineBufSprintf
bcs SCRN.ToggleSel.RTS bcs .9
>LDA.G PromptMode >LDA.G ScreenW
bne .2 tax
lda #C.SPACE
.1 jsr SCRN.ToLineBuf
dex
bpl .1
lda #C.CR
jsr SCRN.ToLineBuf
>LDA.G FileY >LDA.G FileY
tax tax
iny iny
lda (pData),y lda (pData),y
inx inx
bne .1 bne .2
inc inc
.1 >PUSHA .2 >PUSHA
txa txa
>PUSHA >PUSHA
>LDA.G FileX >LDA.G FileX
@ -301,8 +308,14 @@ SCRN.UpdateStatusBar
>PUSHW FileLen >PUSHW FileLen
>PUSHBI 7 >PUSHBI 7
bra SCRN.UpdateStatusBarOut >PUSHW L.MSG.STATUSBAR
jsr SCRN.LineBufSprintf
bcs .9
jmp SCRN.LineBufOut
.9 rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateStatusBar.OLD
.2 eor #PromptModeHelp .2 eor #PromptModeHelp
beq .3 beq .3
@ -528,25 +541,41 @@ SCRN.scrollDn >PUSHBI 0
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.LineBufInitBar
phx
ldx #SEQ.BAR-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitDlg
phx
ldx #SEQ.DLG-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitBut
phx
ldx #SEQ.DLG.BUT-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitEdit
phx
ldx #SEQ.EDIT-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitNorm SCRN.LineBufInitNorm
clc phx
.HS B0 BCS ldx #SEQ.NORM-SEQS
bra SCRN.LineBufInit
SCRN.LineBufInitInv SCRN.LineBufInitInv
sec phx
ldx #SEQ.INV-SEQS
SCRN.LineBufInit
>LDYA.G LineBufBase >LDYA.G LineBufBase
>STYA LineBufPtr >STYA LineBufPtr
ldy #0
bcc .1
ldy #SEQ.INV-SEQ.NORM .1 lda SEQS,x
.1 lda SEQ.NORM,y
.2 jsr SCRN.ToLineBuf .2 jsr SCRN.ToLineBuf
iny inx
lda SEQ.NORM,y lda SEQS,x
bne .2 bne .2
plx
rts rts
*-------------------------------------- *--------------------------------------
SCRN.ToLineBuf sta (LineBufPtr) SCRN.ToLineBuf sta (LineBufPtr)
@ -555,6 +584,22 @@ SCRN.ToLineBuf sta (LineBufPtr)
inc LineBufPtr+1 inc LineBufPtr+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
SCRN.LineBufSprintf
>LDYA LineBufPtr
>SYSCALL sprintf
bcs .9
tya
clc
adc LineBufPtr
sta LineBufPtr
bcc .9
inc LineBufPtr+1
clc
.9 rts
*--------------------------------------
SCRN.LineBufOut lda #0 SCRN.LineBufOut lda #0
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf

View File

@ -403,21 +403,31 @@ CharIn.Esc >STZ.G bEscMode
.INB USR/SRC/BIN/EDIT.S.DLG .INB USR/SRC/BIN/EDIT.S.DLG
.INB USR/SRC/BIN/EDIT.S.FILE .INB USR/SRC/BIN/EDIT.S.FILE
.INB USR/SRC/BIN/EDIT.S.SCRN .INB USR/SRC/BIN/EDIT.S.SCRN
*--------------------------------------
CS.END CS.END
SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n" *--------------------------------------
SEQS .EQ *
SEQ.BAR .AZ "\e[37;40m\e[7m"
SEQ.DLG .AS "\e[30;46m"
.DA #C.SO,#'x',#C.SI
.DA #0
SEQ.DLG.RIGHT .AS "\e[37;40m"
.DA #C.SO,#'x',#C.SI
.DA #0
SEQ.DLG.BUT .AS "\e[93;44m"
SEQ.INV .AZ "\e[7m"
SEQ.EDIT .AZ "\e[93;44m"
SEQ.CEOL .AZ "\e[K"
SEQ.NORM .AZ "\e[0m"
*--------------------------------------
SEQ.DETECT .AZ "Querying term caps...\e[999;999H\e[6n"
SEQ.RESET .AZ "\ec" SEQ.RESET .AZ "\ec"
SEQ.INIT .AS "\ec\e)0" SEQ.INIT .AS "\ec\e(B\e)0"
SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr" SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr"
SEQ.SCROLLUP .AZ "\eD" SEQ.SCROLLUP .AZ "\eD"
SEQ.SCROLLDN .AZ "\eM" SEQ.SCROLLDN .AZ "\eM"
SEQ.SCROLLCURUP .AZ "\e[?7l\e[%d;%dr\eD" SEQ.SCROLLCURUP .AZ "\e[?7l\e[%d;%dr\eD"
SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM" SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM"
SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM *--------------------------------------
SEQ.NORM .AZ "\e[0m"
SEQ.INV .AZ "\e[7m"
SEQ.EDIT .AS "\e[93;44m" +SEQ.CEOL
SEQ.CEOL .AZ "\e[K"
MSG.TOPBAR .AZ "A2osX Edit:%s %s" MSG.TOPBAR .AZ "A2osX Edit:%s %s"
MSG.TXTCR .AZ "TXT/CR" MSG.TXTCR .AZ "TXT/CR"
MSG.TXTCRLF .AZ "TXT/CRLF" MSG.TXTCRLF .AZ "TXT/CRLF"