Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-18 08:57:47 +01:00
parent 2a73409d26
commit ceaab44c5e
4 changed files with 74 additions and 39 deletions

Binary file not shown.

Binary file not shown.

View File

@ -10,12 +10,12 @@ SCRN.Init >LDA.G ScreenH
>SYSCALL printf >SYSCALL printf
bcs .9 bcs .9
jsr SCRN.UpdateTopBar
bcs .9
jsr SCRN.Home jsr SCRN.Home
jmp SCRN.UpdateMainAndStatus jsr SCRN.UpdateMainAndStatus
bcs .9
jmp SCRN.UpdateTopBar
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.Home lda #0 SCRN.Home lda #0
@ -49,13 +49,25 @@ SCRN.UnSaved >LDA.G bUnSaved
rts rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateTopBar SCRN.UpdateTopBar
lda #$ff
>STA.G bUpdateTop
clc
rts
*--------------------------------------
SCRN.UpdateTopBarAsync
>LDA.G bUpdateTop
bpl .8
lda #0
sta (pData),y
jsr SCRN.LineBufInitBar jsr SCRN.LineBufInitBar
>PUSHBI 1 ldx #SEQ.CURSAVE-SEQS
>PUSHBI 1 jsr SCRN.SEQS.ToLineBuf
>PUSHBI 2
>PUSHW L.MSG.GOTOXY ldy #1
jsr SCRN.LineBufSprintf jsr SCRN.LineBufGotoLineY
bcs .9 bcs .9
>LDA.G ScreenW >LDA.G ScreenW
@ -83,12 +95,16 @@ SCRN.UpdateTopBar
bcs .9 bcs .9
>LDA.G bUnSaved >LDA.G bUnSaved
beq .8 beq .2
lda #'*' lda #'*'
jsr SCRN.ToLineBuf jsr SCRN.ToLineBuf
.8 jmp SCRN.LineBufOut .2 ldx #SEQ.CURRESTORE-SEQS
jsr SCRN.SEQS.ToLineBuf
jmp SCRN.LineBufOut
.8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateViewPort SCRN.UpdateViewPort
@ -252,6 +268,10 @@ SCRN.UpdateMain.1
SCRN.UpdateMain.9 SCRN.UpdateMain.9
rts rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateCurrentEOL
jsr SCRN.LineBufInitEdit
bra SCRN.UpdateLineAtBufPtr
*--------------------------------------
SCRN.UpdateCurrentLine SCRN.UpdateCurrentLine
>LDA.G ScreenY+1 >LDA.G ScreenY+1
tax tax
@ -274,25 +294,19 @@ SCRN.UpdateCurrentLine
* BufPtr = Text line start, Y = len * BufPtr = Text line start, Y = len
*-------------------------------------- *--------------------------------------
SCRN.UpdateLineAtALenY SCRN.UpdateLineAtALenY
stz bSelected
sty TmpLen sty TmpLen
inc
inc
sta TmpLen+1
ldx #0
tay
jsr SCRN.GotoXY
bcs SCRN.UpdateMain.9
jsr SCRN.LineBufInitEdit
ldy #$ff
>LDA.G ScreenW
tax
>LDA.G ScreenX >LDA.G ScreenX
cmp TmpLen cmp TmpLen
bcs .8 bcc .1
tay clc
rts
.1 tay
clc clc
adc BUF.LOffset adc BUF.LOffset
sta BUF.COffset sta BUF.COffset
@ -304,10 +318,21 @@ SCRN.UpdateLineAtALenY
* clc * clc
adc BufPtr adc BufPtr
sta BufPtr sta BufPtr
bcc .1 bcc .2
inc BufPtr+1 inc BufPtr+1
.1 lda (BufPtr) .2 jsr SCRN.LineBufInitEdit
ldy TmpLen+1
jsr SCRN.LineBufGotoLineY
SCRN.UpdateLineAtBufPtr
>LDA.G ScreenW
tax
stz bSelected
.2 lda (BufPtr)
beq .8 beq .8
cmp #C.CR cmp #C.CR
@ -339,13 +364,14 @@ SCRN.UpdateLineAtALenY
bne .7 bne .7
inc BUF.COffset+1 inc BUF.COffset+1
.7 dex .7 dex
bne .1 bne .2
.8 bit bSelected .8 bit bSelected
bpl .80 bpl .80
jsr SCRN.ToggleSel jsr SCRN.ToggleSel
.80 jmp SCRN.LineBufOut .80 jmp SCRN.LineBufOut
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.ToggleSel ldy #SEQ.NORM-SEQS SCRN.ToggleSel ldy #SEQ.NORM-SEQS
@ -421,11 +447,9 @@ SCRN.ResetStatusBar
ldx #SEQ.CURSAVE-SEQS ldx #SEQ.CURSAVE-SEQS
jsr SCRN.SEQS.ToLineBuf jsr SCRN.SEQS.ToLineBuf
>PUSHBI 1 >LDA.G ScreenH
>PUSHB.G ScreenH tay
>PUSHBI 2 jsr SCRN.LineBufGotoLineY
>PUSHW L.MSG.GOTOXY
jsr SCRN.LineBufSprintf
>LDA.G ScreenW >LDA.G ScreenW
tax tax
@ -488,7 +512,9 @@ SCRN.scrollUp >PUSHBI 0
.1 jsr BUF.GetLineAX .1 jsr BUF.GetLineAX
bcs .9 bcs .9
phy
>LDA.G ViewPortHm1 >LDA.G ViewPortHm1
ply
jmp SCRN.UpdateLineAtALenY jmp SCRN.UpdateLineAtALenY
.9 rts .9 rts
@ -505,10 +531,10 @@ SCRN.scrollDn >PUSHBI 0
jsr BUF.GetLineAX jsr BUF.GetLineAX
bcs .9 bcs .9
* >DEBUG
lda #0 lda #0
jmp SCRN.UpdateLineAtALenY jsr SCRN.UpdateLineAtALenY
* >DEBUG
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
SCRN.LineBufInitBar SCRN.LineBufInitBar
@ -560,6 +586,13 @@ SCRN.SEQS.ToLineBuf
bne .1 bne .1
rts rts
*-------------------------------------- *--------------------------------------
SCRN.LineBufGotoLineY
>PUSHBI 1
tya
>PUSHA
>PUSHBI 2
>PUSHW L.MSG.GOTOXY
*--------------------------------------
SCRN.LineBufSprintf SCRN.LineBufSprintf
>LDYA LineBufPtr >LDYA LineBufPtr
>SYSCALL sprintf >SYSCALL sprintf

View File

@ -222,6 +222,7 @@ CS.DOEVENT lda (pEvent)
and #S.EVT.F.T1SEC and #S.EVT.F.T1SEC
beq .9 beq .9
jsr SCRN.UpdateTopBarAsync
jsr SCRN.UpdateStatusBarAsync jsr SCRN.UpdateStatusBarAsync
.9 sec .9 sec
@ -305,7 +306,7 @@ CharIn tax
jsr BUF.InsertA jsr BUF.InsertA
bcs .9 bcs .9
jsr SCRN.UpdateCurrentLine jsr SCRN.UpdateCurrentEOL
bcs .9 bcs .9
jmp Ctrl.FS jmp Ctrl.FS
@ -434,10 +435,10 @@ SEQ.DETECT .AZ "Querying term caps...\e[999;999H\e[6n"
SEQ.RESET .AZ "\ec" SEQ.RESET .AZ "\ec"
SEQ.INIT .AS "\ec\e(B\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.SCROLLCURUP .AS "\e[?7l\e[%d;%dr"
SEQ.SCROLLUP .AZ "\eD" SEQ.SCROLLUP .AZ "\eD"
SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr"
SEQ.SCROLLDN .AZ "\eM" SEQ.SCROLLDN .AZ "\eM"
SEQ.SCROLLCURUP .AZ "\e[?7l\e[%d;%dr\eD"
SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM"
*-------------------------------------- *--------------------------------------
MSG.TOPBAR .AZ "A2osX Edit:%s %s" MSG.TOPBAR .AZ "A2osX Edit:%s %s"
MSG.TXTCR .AZ "TXT/CR" MSG.TXTCR .AZ "TXT/CR"
@ -600,6 +601,7 @@ EscBuffer .BS 16
bEscMode .BS 1 bEscMode .BS 1
bExit .BS 1 bExit .BS 1
bUnSaved .BS 1 bUnSaved .BS 1
bUpdateTop .BS 1
bUpdateStatus .BS 1 bUpdateStatus .BS 1
hFileName .BS 1 hFileName .BS 1