Kernel version 0.8 : EDIT, several bugfixes, code reorg....

This commit is contained in:
Rémy GIBERT 2016-11-04 17:46:16 +01:00
parent cf15e77a21
commit 353b0c1bf0
6 changed files with 62 additions and 41 deletions

Binary file not shown.

Binary file not shown.

View File

@ -346,12 +346,7 @@ BUF.CopyTail lda (BufPtrBackup)
* Out : Y = Line Length * Out : Y = Line Length
*-------------------------------------- *--------------------------------------
BUF.ComputeCOffset BUF.ComputeCOffset
ldy #FileY+1 jsr BUF.GetLine
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .9 bcs .9
phy save line length phy save line length
ldy #FileX ldy #FileX
@ -366,6 +361,12 @@ BUF.ComputeCOffset
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
BUF.GetLine ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
BUF.GetLineAX >STAX BUF.TmpLine1 BUF.GetLineAX >STAX BUF.TmpLine1
stz BUF.LOffset stz BUF.LOffset

View File

@ -49,9 +49,8 @@ Ctrl.A ldy #PromptMode
.1 lda (ZPPTR1) .1 lda (ZPPTR1)
beq .8 beq .8
>PUSHW ZPPTR1 >LDYA ZPPTR1
>LDYA L.MSG.HELPLINE >SYSCALL PPrintFYA
>SYSCALL CPrintFYA
bcs .9 bcs .9
>LDYA L.SEQ.CEOL >LDYA L.SEQ.CEOL
>SYSCALL CPrintFYA >SYSCALL CPrintFYA
@ -246,12 +245,7 @@ Ctrl.VT ldy #FileY+1
rts rts
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
*-------------------------------------- *--------------------------------------
Ctrl.L ldy #FileY+1 Ctrl.L jsr BUF.GetLine
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .8 bcs .8
tya Y = line length tya Y = line length
@ -342,12 +336,7 @@ Ctrl.T lda #0
rts rts
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
*-------------------------------------- *--------------------------------------
Ctrl.FS ldy #FileY+1 Ctrl.FS jsr BUF.GetLine
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .8 bcs .8
tya Y = line length tya Y = line length
@ -415,9 +404,42 @@ Ctrl.X jsr BUF.SelToClipboard
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
.99 rts .99 rts
*-------------------------------------- *--------------------------------------
Ctrl.Y Ctrl.Y ldy #FileY+1
clc lda (pData),y
tax
dey
lda (pData),y
inc
bne .1
inx
.1 jsr BUF.GetLineAX
bcs .2
ldy #FileY
lda (pData),y
inc
sta (pData),y
bne Ctrl.Y
iny
lda (pData),y
inc
sta (pData),y
bra Ctrl.Y
.2 jsr BUF.GetLine Y=linelen
tya Y = line length
ldy #FileX
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
rts rts
.9 jmp Ctrl.Q
*-------------------------------------- *--------------------------------------
Ctrl.Z Ctrl.Z
clc clc

View File

@ -296,7 +296,7 @@ SCRN.UpdateViewPort
cmp (pData),y cmp (pData),y
bcs .2 out of left border ? bcs .2 out of left border ?
ldy #ScreenX ldy #ScreenX yes
lda (pData),y lda (pData),y
dec dec
sta (pData),y sta (pData),y
@ -320,26 +320,28 @@ SCRN.UpdateViewPort
stz bNotRepaint stz bNotRepaint
bra .2 bra .2
.3 sec .3 ldy #FileY+1
ldy #FileY
lda (pData),y lda (pData),y
tax
dey
lda (pData),y A,X = FileY
ldy #ScreenY ldy #ScreenY
sbc (pData),y cmp (pData),y
ldy #FileY+1 iny
lda (pData),y txa
ldy #ScreenY+1
sbc (pData),y sbc (pData),y
bcs .4 out of top border ? bcs .4 out of top border ?
sec
ldy #ScreenY ldy #ScreenY
lda (pData),y lda (pData),y
sbc #1 sbc #0 CC from BCS
sta (pData),y sta (pData),y
iny iny
lda (pData),y lda (pData),y
sbc #0 sbc #0
sta (pData),y sta (pData),y
bit bNotRepaint bit bNotRepaint
bpl .3 bpl .3
jsr SCRN.scrollDn jsr SCRN.scrollDn
@ -403,10 +405,13 @@ SCRN.UpdateViewPort
bit bNotRepaint bit bNotRepaint
bmi .6 bmi .6
jsr SCRN.UpdateMain jsr SCRN.UpdateMain
bcs .9 bcs .9
.6 jsr SCRN.UpdateStatusBar .6 jsr SCRN.UpdateStatusBar
bcs .9 bcs .9
jsr SCRN.GotoCurXCurY jsr SCRN.GotoCurXCurY
bcs .9 bcs .9
rts rts
@ -444,12 +449,7 @@ SCRN.scrollDn lda #$1B
>SYSCALL COutA >SYSCALL COutA
bcs .9 bcs .9
ldy #ScreenY+1 jsr BUF.GetLine
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .9 bcs .9
lda #0 lda #0

View File

@ -56,7 +56,6 @@ L.MSG.STATUSBAR.S .DA MSG.STATUSBAR.S
L.MSG.STATUSBAR.E .DA MSG.STATUSBAR.E L.MSG.STATUSBAR.E .DA MSG.STATUSBAR.E
L.MSG.NEWFILE .DA MSG.NEWFILE L.MSG.NEWFILE .DA MSG.NEWFILE
L.MSG.GOTOXY .DA MSG.GOTOXY L.MSG.GOTOXY .DA MSG.GOTOXY
L.MSG.HELPLINE .DA MSG.HELPLINE
L.MSG.HELP .DA MSG.HELP L.MSG.HELP .DA MSG.HELP
J.PROMPT .DA Prompt.Editor J.PROMPT .DA Prompt.Editor
.DA Prompt.Help .DA Prompt.Help
@ -456,7 +455,6 @@ MSG.STATUSBAR.R >CSTR "\e[%d;1H\e[7mReplace:%S\e[K\e[0m"
MSG.STATUSBAR.S >CSTR "\e[%d;1H\e[7mSave:%S\e[K\e[0m" MSG.STATUSBAR.S >CSTR "\e[%d;1H\e[7mSave:%S\e[K\e[0m"
MSG.STATUSBAR.E >CSTR "\e[%d;1H\e[7mError:%h\e[K\e[0m" MSG.STATUSBAR.E >CSTR "\e[%d;1H\e[7mError:%h\e[K\e[0m"
MSG.GOTOXY >CSTR "\e[%d;%dH" MSG.GOTOXY >CSTR "\e[%d;%dH"
MSG.HELPLINE >CSTR "%S"
MSG.HELP >PSTR "All commands: (* = Not yet implemented)" MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
>PSTR "------------" >PSTR "------------"
>PSTR " Ctrl-A : This help screen" >PSTR " Ctrl-A : This help screen"
@ -477,7 +475,7 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
>PSTR " Ctrl-V : Past clipboard at cursor position" >PSTR " Ctrl-V : Past clipboard at cursor position"
>PSTR " Ctrl-W : * Erase current line" >PSTR " Ctrl-W : * Erase current line"
>PSTR " Ctrl-X : Cut block to clipboard" >PSTR " Ctrl-X : Cut block to clipboard"
>PSTR " Ctrl-Y : * Go to bottom of file" >PSTR " Ctrl-Y : Go to end of file"
>PSTR " Ctrl-Z : * Undo previous change" >PSTR " Ctrl-Z : * Undo previous change"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------