diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index acced127..8330df2f 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index f6b784e2..81703a2f 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index e7f3be56..ec7a7bcf 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -10,12 +10,12 @@ SCRN.Init >LDA.G ScreenH >SYSCALL printf bcs .9 - jsr SCRN.UpdateTopBar - bcs .9 - jsr SCRN.Home - jmp SCRN.UpdateMainAndStatus + jsr SCRN.UpdateMainAndStatus + bcs .9 + + jmp SCRN.UpdateTopBar .9 rts *-------------------------------------- SCRN.Home lda #0 @@ -49,13 +49,25 @@ SCRN.UnSaved >LDA.G bUnSaved rts *-------------------------------------- SCRN.UpdateTopBar + lda #$ff + >STA.G bUpdateTop + clc + rts +*-------------------------------------- +SCRN.UpdateTopBarAsync + >LDA.G bUpdateTop + bpl .8 + + lda #0 + sta (pData),y + jsr SCRN.LineBufInitBar - >PUSHBI 1 - >PUSHBI 1 - >PUSHBI 2 - >PUSHW L.MSG.GOTOXY - jsr SCRN.LineBufSprintf + ldx #SEQ.CURSAVE-SEQS + jsr SCRN.SEQS.ToLineBuf + + ldy #1 + jsr SCRN.LineBufGotoLineY bcs .9 >LDA.G ScreenW @@ -83,12 +95,16 @@ SCRN.UpdateTopBar bcs .9 >LDA.G bUnSaved - beq .8 + beq .2 lda #'*' jsr SCRN.ToLineBuf -.8 jmp SCRN.LineBufOut +.2 ldx #SEQ.CURRESTORE-SEQS + jsr SCRN.SEQS.ToLineBuf + + jmp SCRN.LineBufOut +.8 clc .9 rts *-------------------------------------- SCRN.UpdateViewPort @@ -252,6 +268,10 @@ SCRN.UpdateMain.1 SCRN.UpdateMain.9 rts *-------------------------------------- +SCRN.UpdateCurrentEOL + jsr SCRN.LineBufInitEdit + bra SCRN.UpdateLineAtBufPtr +*-------------------------------------- SCRN.UpdateCurrentLine >LDA.G ScreenY+1 tax @@ -274,25 +294,19 @@ SCRN.UpdateCurrentLine * BufPtr = Text line start, Y = len *-------------------------------------- SCRN.UpdateLineAtALenY - stz bSelected 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 cmp TmpLen - bcs .8 + bcc .1 + + clc + rts - tay +.1 tay clc adc BUF.LOffset sta BUF.COffset @@ -304,10 +318,21 @@ SCRN.UpdateLineAtALenY * clc adc BufPtr sta BufPtr - bcc .1 + bcc .2 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 cmp #C.CR @@ -339,13 +364,14 @@ SCRN.UpdateLineAtALenY bne .7 inc BUF.COffset+1 .7 dex - bne .1 + bne .2 .8 bit bSelected bpl .80 jsr SCRN.ToggleSel .80 jmp SCRN.LineBufOut + .9 rts *-------------------------------------- SCRN.ToggleSel ldy #SEQ.NORM-SEQS @@ -421,11 +447,9 @@ SCRN.ResetStatusBar ldx #SEQ.CURSAVE-SEQS jsr SCRN.SEQS.ToLineBuf - >PUSHBI 1 - >PUSHB.G ScreenH - >PUSHBI 2 - >PUSHW L.MSG.GOTOXY - jsr SCRN.LineBufSprintf + >LDA.G ScreenH + tay + jsr SCRN.LineBufGotoLineY >LDA.G ScreenW tax @@ -488,7 +512,9 @@ SCRN.scrollUp >PUSHBI 0 .1 jsr BUF.GetLineAX bcs .9 + phy >LDA.G ViewPortHm1 + ply jmp SCRN.UpdateLineAtALenY .9 rts @@ -505,10 +531,10 @@ SCRN.scrollDn >PUSHBI 0 jsr BUF.GetLineAX bcs .9 - +* >DEBUG lda #0 - jmp SCRN.UpdateLineAtALenY - + jsr SCRN.UpdateLineAtALenY +* >DEBUG .9 rts *-------------------------------------- SCRN.LineBufInitBar @@ -560,6 +586,13 @@ SCRN.SEQS.ToLineBuf bne .1 rts *-------------------------------------- +SCRN.LineBufGotoLineY + >PUSHBI 1 + tya + >PUSHA + >PUSHBI 2 + >PUSHW L.MSG.GOTOXY +*-------------------------------------- SCRN.LineBufSprintf >LDYA LineBufPtr >SYSCALL sprintf diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index c08db89c..4664b8a8 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -222,6 +222,7 @@ CS.DOEVENT lda (pEvent) and #S.EVT.F.T1SEC beq .9 + jsr SCRN.UpdateTopBarAsync jsr SCRN.UpdateStatusBarAsync .9 sec @@ -305,7 +306,7 @@ CharIn tax jsr BUF.InsertA bcs .9 - jsr SCRN.UpdateCurrentLine + jsr SCRN.UpdateCurrentEOL bcs .9 jmp Ctrl.FS @@ -434,10 +435,10 @@ SEQ.DETECT .AZ "Querying term caps...\e[999;999H\e[6n" SEQ.RESET .AZ "\ec" SEQ.INIT .AS "\ec\e(B\e)0" SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr" +SEQ.SCROLLCURUP .AS "\e[?7l\e[%d;%dr" SEQ.SCROLLUP .AZ "\eD" +SEQ.SCROLLCURDN .AS "\e[?7l\e[%d;%dr" 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.TXTCR .AZ "TXT/CR" @@ -600,6 +601,7 @@ EscBuffer .BS 16 bEscMode .BS 1 bExit .BS 1 bUnSaved .BS 1 +bUpdateTop .BS 1 bUpdateStatus .BS 1 hFileName .BS 1