From d03eabaa31711ae8dc7f59c4ac6438472d81d1ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 28 May 2019 18:00:53 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/EDIT.S.BUF.txt | 48 +++++++------- BIN/EDIT.S.CTRL.txt | 1 - BIN/EDIT.S.SCRN.txt | 132 +++++++++++++++++++++++---------------- 4 files changed, 103 insertions(+), 78 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 94118744bb83beb5c625d17e0810b375a79a6047..94f1d102614b1677496f80f2e888e6a7173a1194 100644 GIT binary patch delta 10332 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 delta 9421 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 w90G^IZ{TVE0DPpgO#lD@ diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 7028ea3d..af8d4f56 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -445,18 +445,6 @@ BUF.GetLineAX sta BUF.TmpLine1 .9 sec rts *-------------------------------------- -BUF.GetCharAtY tya - clc - adc BUF.LOffset - sta BUF.COffset - lda #0 - adc BUF.LOffset+1 - sta BUF.COffset+1 - - lda (BufPtr),y - clc - rts -*-------------------------------------- BUF.GetNewYA phy pha @@ -482,28 +470,40 @@ BUF.GetNewYA phy .9 rts *-------------------------------------- -BUF.ResetSel >STZW.G SelStart - >STZW.G SelEnd +BUF.ResetSel ldy #SelStart + + lda #0 + +.1 sta (pData),y + iny + cpy #SelEnd+2 + bne .1 + rts *-------------------------------------- BUF.CheckSelected - lda BUF.COffset ldy #SelStart + + lda BUF.COffset cmp (pData),y - lda BUF.COffset+1 + iny + + lda BUF.COffset+1 sbc (pData),y bcc .9 - lda BUF.COffset - ldy #SelEnd - cmp (pData),y - lda BUF.COffset+1 - iny - sbc (pData),y - rts CC if in selection + iny #SelEnd -.9 sec + lda (pData),y + cmp BUF.COffset + + iny + + lda (pData),y + sbc BUF.COffset+1 + +.9 rol $80 = selected rts *-------------------------------------- * Out : CC if ok, YA=SelLen diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 12912c3a..4f935c15 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -27,7 +27,6 @@ NEW * ^W = Erase line * ^X = Cut Block * ^Y = End Of File -* ^Z = Undo *-------------------------------------- Prompt.Editor cmp #C.DEL beq Ctrl.DEL diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 0e3f9132..f46b27d9 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -85,7 +85,7 @@ SCRN.UpdateMain >LDA.G ScreenY lda TmpByte jsr SCRN.UpdateLineAtALenY - bcs .9 + bcs SCRN.UpdateMain.9 .3 inc TmpByte inc TmpIndex @@ -99,12 +99,12 @@ SCRN.UpdateMain >LDA.G ScreenY .5 ldx #0 ldy TmpByte jsr GotoXY - bcs .9 + bcs SCRN.UpdateMain.9 >PUSHBI 0 >LDYA L.SEQ.CEOL >SYSCALL printf - bcs .9 + bcs SCRN.UpdateMain.9 inc TmpByte dec TmpCount @@ -112,7 +112,8 @@ SCRN.UpdateMain >LDA.G ScreenY jmp SCRN.GotoCurXCurY -.9 rts +SCRN.UpdateMain.9 + rts *-------------------------------------- SCRN.UpdateCurrentLine >LDA.G ScreenY+1 @@ -124,91 +125,116 @@ SCRN.UpdateCurrentLine bcc .1 inx .1 jsr BUF.GetLineAX - bcs .9 + bcs SCRN.UpdateMain.9 phy >LDA.G CurY ply - jsr SCRN.UpdateLineAtALenY -.9 rts +*-------------------------------------- +* A = Target Screen Y position +* BufPtr = Text line start, Y = len *-------------------------------------- SCRN.UpdateLineAtALenY stz bSelected sty TmpLen + ldx #0 tay jsr GotoXY bcs .9 + >LDYA LineBufPtr + >STYA ZPPTR1 + >LDA.G ScreenW tax >LDA.G ScreenX + cmp TmpLen + bcs .8 + tay -.1 cpy TmpLen - bcs .3 + clc + adc BUF.LOffset + sta BUF.COffset + lda #0 + adc BUF.LOffset+1 + sta BUF.COffset+1 - jsr BUF.GetCharAtY - beq .3 + tya +* clc + adc BufPtr + sta BufPtr + bcc .1 + + inc BufPtr+1 + +.1 lda (BufPtr) + beq .8 cmp #C.CR - beq .3 + beq .8 - phx - phy - pha jsr BUF.CheckSelected - jsr SCRN.UpdateAttrC - pla - bcs .11 + eor bSelected + bpl .5 - >SYSCALL PutChar -.11 ply - plx - bcs .9 + -.2 iny - dex +.5 lda (BufPtr) + jsr SCRN.ToLineBuf + + inc BufPtr + bne .6 + inc BufPtr+1 + +.6 inc BUF.COffset + bne .7 + inc BUF.COffset+1 + +.7 dex bne .1 -.3 sec - jsr SCRN.UpdateAttrC - bcs .9 +.8 bit bSelected + bpl .80 + jsr SCRN.ToggleSel - >PUSHBI 0 - >LDYA L.SEQ.CEOL - >SYSCALL printf - bcs .9 - rts -.9 jmp Ctrl.Q -*-------------------------------------- -* CC = set INV, CS = set NORM -*-------------------------------------- -SCRN.UpdateAttrC - bcc .1 - bit bSelected - bpl .8 - >PUSHBI 0 - >LDYA L.SEQ.NORM - >SYSCALL printf - bcs .9 - stz bSelected - rts +.80 lda #0 + sta (ZPPTR1) -.1 bit bSelected - bmi .8 >PUSHBI 0 - >LDYA L.SEQ.INV + >LDYA LineBufPtr >SYSCALL printf bcs .9 - lda #$ff - sta bSelected - -.8 clc rts .9 jmp Ctrl.Q *-------------------------------------- +SCRN.ToggleSel ldy #$0 + + lda bSelected + bpl .1 + + ldy #6 + +.1 eor #$ff + sta bSelected + +.2 lda SEQ.NORM,y + beq .8 + + jsr SCRN.ToLineBuf + iny + bra .2 + +.8 rts +*-------------------------------------- +SCRN.ToLineBuf sta (ZPPTR1) + inc ZPPTR1 + bne .8 + inc ZPPTR1+1 +.8 rts +*-------------------------------------- SCRN.UpdateStatusBar >PUSHBI 1 >PUSHB.G ScreenH