Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-05-28 18:00:53 +02:00
parent f6a4d5123d
commit d03eabaa31
4 changed files with 103 additions and 78 deletions

Binary file not shown.

View File

@ -445,18 +445,6 @@ BUF.GetLineAX sta BUF.TmpLine1
.9 sec .9 sec
rts 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 BUF.GetNewYA phy
pha pha
@ -482,28 +470,40 @@ BUF.GetNewYA phy
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BUF.ResetSel >STZW.G SelStart BUF.ResetSel ldy #SelStart
>STZW.G SelEnd
lda #0
.1 sta (pData),y
iny
cpy #SelEnd+2
bne .1
rts rts
*-------------------------------------- *--------------------------------------
BUF.CheckSelected BUF.CheckSelected
lda BUF.COffset
ldy #SelStart ldy #SelStart
lda BUF.COffset
cmp (pData),y cmp (pData),y
lda BUF.COffset+1
iny iny
lda BUF.COffset+1
sbc (pData),y sbc (pData),y
bcc .9 bcc .9
lda BUF.COffset iny #SelEnd
ldy #SelEnd
cmp (pData),y
lda BUF.COffset+1
iny
sbc (pData),y
rts CC if in selection
.9 sec lda (pData),y
cmp BUF.COffset
iny
lda (pData),y
sbc BUF.COffset+1
.9 rol $80 = selected
rts rts
*-------------------------------------- *--------------------------------------
* Out : CC if ok, YA=SelLen * Out : CC if ok, YA=SelLen

View File

@ -27,7 +27,6 @@ NEW
* ^W = Erase line * ^W = Erase line
* ^X = Cut Block * ^X = Cut Block
* ^Y = End Of File * ^Y = End Of File
* ^Z = Undo
*-------------------------------------- *--------------------------------------
Prompt.Editor cmp #C.DEL Prompt.Editor cmp #C.DEL
beq Ctrl.DEL beq Ctrl.DEL

View File

@ -85,7 +85,7 @@ SCRN.UpdateMain >LDA.G ScreenY
lda TmpByte lda TmpByte
jsr SCRN.UpdateLineAtALenY jsr SCRN.UpdateLineAtALenY
bcs .9 bcs SCRN.UpdateMain.9
.3 inc TmpByte .3 inc TmpByte
inc TmpIndex inc TmpIndex
@ -99,12 +99,12 @@ SCRN.UpdateMain >LDA.G ScreenY
.5 ldx #0 .5 ldx #0
ldy TmpByte ldy TmpByte
jsr GotoXY jsr GotoXY
bcs .9 bcs SCRN.UpdateMain.9
>PUSHBI 0 >PUSHBI 0
>LDYA L.SEQ.CEOL >LDYA L.SEQ.CEOL
>SYSCALL printf >SYSCALL printf
bcs .9 bcs SCRN.UpdateMain.9
inc TmpByte inc TmpByte
dec TmpCount dec TmpCount
@ -112,7 +112,8 @@ SCRN.UpdateMain >LDA.G ScreenY
jmp SCRN.GotoCurXCurY jmp SCRN.GotoCurXCurY
.9 rts SCRN.UpdateMain.9
rts
*-------------------------------------- *--------------------------------------
SCRN.UpdateCurrentLine SCRN.UpdateCurrentLine
>LDA.G ScreenY+1 >LDA.G ScreenY+1
@ -124,91 +125,116 @@ SCRN.UpdateCurrentLine
bcc .1 bcc .1
inx inx
.1 jsr BUF.GetLineAX .1 jsr BUF.GetLineAX
bcs .9 bcs SCRN.UpdateMain.9
phy phy
>LDA.G CurY >LDA.G CurY
ply ply
jsr SCRN.UpdateLineAtALenY *--------------------------------------
.9 rts * A = Target Screen Y position
* BufPtr = Text line start, Y = len
*-------------------------------------- *--------------------------------------
SCRN.UpdateLineAtALenY SCRN.UpdateLineAtALenY
stz bSelected stz bSelected
sty TmpLen sty TmpLen
ldx #0 ldx #0
tay tay
jsr GotoXY jsr GotoXY
bcs .9 bcs .9
>LDYA LineBufPtr
>STYA ZPPTR1
>LDA.G ScreenW >LDA.G ScreenW
tax tax
>LDA.G ScreenX >LDA.G ScreenX
cmp TmpLen
bcs .8
tay tay
.1 cpy TmpLen clc
bcs .3 adc BUF.LOffset
sta BUF.COffset
lda #0
adc BUF.LOffset+1
sta BUF.COffset+1
jsr BUF.GetCharAtY tya
beq .3 * clc
adc BufPtr
sta BufPtr
bcc .1
inc BufPtr+1
.1 lda (BufPtr)
beq .8
cmp #C.CR cmp #C.CR
beq .3 beq .8
phx
phy
pha
jsr BUF.CheckSelected jsr BUF.CheckSelected
jsr SCRN.UpdateAttrC eor bSelected
pla bpl .5
bcs .11
>SYSCALL PutChar
.11 ply
plx
bcs .9
.2 iny .5 lda (BufPtr)
dex jsr SCRN.ToLineBuf
inc BufPtr
bne .6
inc BufPtr+1
.6 inc BUF.COffset
bne .7
inc BUF.COffset+1
.7 dex
bne .1 bne .1
.3 sec .8 bit bSelected
jsr SCRN.UpdateAttrC bpl .80
bcs .9 jsr SCRN.ToggleSel
>PUSHBI 0 .80 lda #0
>LDYA L.SEQ.CEOL sta (ZPPTR1)
>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
.1 bit bSelected
bmi .8
>PUSHBI 0 >PUSHBI 0
>LDYA L.SEQ.INV >LDYA LineBufPtr
>SYSCALL printf >SYSCALL printf
bcs .9 bcs .9
lda #$ff
sta bSelected
.8 clc
rts rts
.9 jmp Ctrl.Q .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 SCRN.UpdateStatusBar
>PUSHBI 1 >PUSHBI 1
>PUSHB.G ScreenH >PUSHB.G ScreenH