Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-11-13 17:33:29 +01:00
parent 9830a906a5
commit 081190214b
5 changed files with 81 additions and 68 deletions

Binary file not shown.

View File

@ -94,11 +94,9 @@ BUF.InsertA sta TmpByte
lda FileLen+1
adc #0
jsr BUF.GetNewYA
bcs .9
>LDYA BUF.COffset
jsr BUF.Start2YA
cpy BufLen
sbc BufLen+1
bcs *
.2 lda TmpByte
sta (BufPtr)
@ -208,6 +206,7 @@ BUF.SelToClipboard
pha
tya
clc
>ADC.G SelStart
sta BufPtr
@ -377,9 +376,12 @@ BUF.GetLine clc
tax
pla
BUF.GetLineAX sta BUF.TmpLine1
BUF.GetLineAX sta BUF.TmpLine1 Requested Line
stx BUF.TmpLine1+1
stz BUF.TmpLine2
stz BUF.TmpLine2+1
stz BUF.LOffset
stz BUF.LOffset+1
@ -387,9 +389,6 @@ BUF.GetLineAX sta BUF.TmpLine1
>SYSCALL GetMemPtr
>STYA BufPtr
stz BUF.TmpLine2
stz BUF.TmpLine2+1
.1 ldy #0
.2 lda (BufPtr),y

View File

@ -114,10 +114,6 @@ Ctrl.E jsr BUF.ComputeCOffset
sta (pData),y
jmp SCRN.UpdateMain
*--------------------------------------
Ctrl.F lda #PromptModeFind
>STA.G PromptMode
jmp SCRN.UpdateStatusBar
*--------------------------------------
Ctrl.G >LDA.G FileX
beq .8
@ -167,11 +163,13 @@ Ctrl.TAB jsr BUF.InsertTAB
>LDA.G FileX
clc
adc #TABLEN
and #$FC
sta (pData),y
>LDA.G CurX
clc
adc #TABLEN
and #$FC
sta (pData),y
>SBC.G ScreenX
@ -182,7 +180,8 @@ Ctrl.TAB jsr BUF.InsertTAB
bcs .9
jmp SCRN.UpdateStatusBar
.8 >ADC.G ScreenX
.8 clc
>ADC.G ScreenX
inc
sta (pData),y
@ -252,10 +251,6 @@ Ctrl.CR lda #C.CR
.9 rts
*--------------------------------------
Ctrl.N
clc
rts
*--------------------------------------
Ctrl.O ldy #FileY+1
lda (pData),y
tax
@ -269,21 +264,29 @@ Ctrl.O ldy #FileY+1
txa
sbc #0
bcc .8
ldy #FileY+1
sta (pData),y
dey
pla
sta (pData),y
>LDA.G ScreenY
sec
>SBC.G ViewPortH
>STA.G ScreenY
>LDA.G ScreenY+1
sbc #0
sta (pData),y
>STZ.G FileX
jmp SCRN.UpdateViewPort
jmp SCRN.UpdateMain
.8 pla
*--------------------------------------
Ctrl.T jsr SCRN.Home
jmp SCRN.UpdateViewPort
jmp SCRN.UpdateMain
*--------------------------------------
Ctrl.P ldy #FileY+1
lda (pData),y
@ -314,10 +317,21 @@ Ctrl.P ldy #FileY+1
pla
sta (pData),y
jmp SCRN.UpdateViewPort
>LDA.G ViewPortH
clc
>ADC.G ScreenY
sta (pData),y
iny
lda (pData),y
adc #0
sta (pData),y
jmp SCRN.UpdateMain
.8 pla
pla
clc
rts
*--------------------------------------
Ctrl.Y jsr BUF.GetNextLine
bcs .1
@ -330,7 +344,31 @@ Ctrl.Y jsr BUF.GetNextLine
tya Y = line length
>STA.G FileX
jmp SCRN.UpdateViewPort
>LDA.G FileY
sec
>SBC.G ViewPortH
tax
>LDA.G FileY+1
sbc #0
bcs .2
lda #0
tax
.2 >STA.G ScreenY+1
dey
txa
sta (pData),y
jmp SCRN.UpdateMain
*--------------------------------------
Ctrl.F lda #PromptModeFind
>STA.G PromptMode
jmp SCRN.UpdateStatusBar
*--------------------------------------
Ctrl.N
clc
rts
*--------------------------------------
Ctrl.R lda #PromptModeReplace
>STA.G PromptMode
@ -390,9 +428,7 @@ Ctrl.FS jsr BUF.GetLine
*--------------------------------------
Ctrl.V jsr BUF.InsertClipboard
bcs .9
jsr SCRN.UpdateMain
bcs .9
jmp SCRN.UpdateStatusBar
jmp SCRN.UpdateMain
.9 rts
*--------------------------------------
@ -430,10 +466,7 @@ Ctrl.X jsr BUF.SelToClipboard
Ctrl.D jsr BUF.DelSel
bcs Ctrl.W.RTS
jsr SCRN.CursorAdjust
jsr SCRN.UpdateMain
bcs Ctrl.W.RTS
jmp SCRN.UpdateStatusBar
jmp SCRN.UpdateMain
*--------------------------------------
Ctrl.Z jsr BUF.ComputeCOffset

View File

@ -14,25 +14,18 @@ SCRN.Init >LDA.G ScreenH
jsr SCRN.UpdateTopBar
bcs .9
jsr SCRN.UpdateViewPort
bcs .9
jsr SCRN.UpdateMain
jmp SCRN.UpdateMain
.9 rts
*--------------------------------------
SCRN.Home lda #0
ldy #FileX
ldy #FileX Zero all
.1 sta (pData),y
iny
cpy #CurX
cpy #CurY+1
bne .1
inc
sta (pData),y CurX
iny
sta (pData),y CurY
rts
*--------------------------------------
SCRN.UpdateTopBar
@ -111,7 +104,7 @@ SCRN.UpdateMain >LDA.G ScreenY
.4 dec TmpCount
bne .1
jmp SCRN.GotoCurXCurY
bra .8
.5 ldx #0
ldy TmpByte
@ -127,6 +120,8 @@ SCRN.UpdateMain >LDA.G ScreenY
dec TmpCount
bne .5
.8 jsr SCRN.UpdateStatusBar
bcs SCRN.UpdateMain.9
jmp SCRN.GotoCurXCurY
SCRN.UpdateMain.9
@ -156,6 +151,7 @@ SCRN.UpdateCurrentLine
SCRN.UpdateLineAtALenY
stz bSelected
sty TmpLen
ldx #0
tay
jsr SCRN.GotoXY
@ -403,6 +399,7 @@ SCRN.UpdateViewPort
bmi .30
.21 >LDA.G ScreenX
clc
>ADC.G ScreenW
dec
>CMP.G FileX
@ -443,13 +440,13 @@ SCRN.UpdateViewPort
dey
lda (pData),y
>ADC.G ViewPortHm2
clc
>ADC.G ViewPortHm1
bcc .5
inx
.5 ldy #FileY A,X = screen bottom
cmp (pData),y
.5 >CMP.G FileY A,X = screen bottom
txa
iny FileY > screen bottom ?
sbc (pData),y
@ -459,15 +456,17 @@ SCRN.UpdateViewPort
bit bRepaint
bmi .41
jsr SCRN.scrollUp ...and move content one line up
jsr SCRN.scrollUp ...and move content one line up
bcc .41
.9 rts
.6 >LDA.G FileX
sec
>SBC.G ScreenX
>STA.G CurX
>LDA.G FileY
sec
>SBC.G ScreenY
>STA.G CurY
@ -484,14 +483,7 @@ SCRN.UpdateViewPort
jmp SCRN.GotoCurXCurY
*--------------------------------------
SCRN.scrollUp >LDA.G CurX
inc
>PUSHA
>LDA.G CurY
inc
inc
>PUSHA
>PUSHBI 2
SCRN.scrollUp >PUSHBI 0
>LDYA L.SEQ.SCROLLUP
>SYSCALL printf
bcs .9
@ -501,6 +493,7 @@ SCRN.scrollUp >LDA.G CurX
dey
lda (pData),y
* clc
>ADC.G ViewPortHm1
bcc .1
@ -514,14 +507,7 @@ SCRN.scrollUp >LDA.G CurX
.9 rts
*--------------------------------------
SCRN.scrollDn >LDA.G CurX
inc
>PUSHA
>LDA.G CurY
inc
inc
>PUSHA
>PUSHBI 2
SCRN.scrollDn >PUSHBI 0
>LDYA L.SEQ.SCROLLDN
>SYSCALL printf
bcs .9

View File

@ -318,10 +318,6 @@ CharIn.Esc >STZ.G bEscMode
>STA.G ViewPortHm1 Remove 1 more to store offsert to last line of viewport
dec
>STA.G ViewPortHm2
ply
stz TmpByte
@ -362,8 +358,8 @@ CS.END
SEQ.DETECT .AZ "Querying terminal capabilities...\e[999;999H\e[6n"
SEQ.INIT .AZ "\ec\e[?7l\e[2;%dr"
SEQ.RESET .AZ "\ec"
SEQ.SCROLLUP .AZ "\e[%d;%dH\eD"
SEQ.SCROLLDN .AZ "\e[%d;%dH\eM"
SEQ.SCROLLUP .AZ "\eD"
SEQ.SCROLLDN .AZ "\eM"
SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM
SEQ.NORM .AZ "\e[0m"
SEQ.INV .AZ "\e[7m"
@ -434,7 +430,6 @@ ScreenW .BS 1
ScreenH .BS 1
ViewPortH .BS 1
ViewPortHm1 .BS 1
ViewPortHm2 .BS 1
FileX .BS 1
FileY .BS 2
ScreenX .BS 1