Kernel version 0.8 : EDIT, added Ctrl-O,P,T,Y and W

This commit is contained in:
Rémy GIBERT 2016-11-07 16:13:25 +01:00
parent e0ae89dd6c
commit 2bc7a49825
5 changed files with 142 additions and 53 deletions

Binary file not shown.

Binary file not shown.

View File

@ -89,13 +89,6 @@ Ctrl.C jsr BUF.SelToClipboard
rts rts
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
*-------------------------------------- *--------------------------------------
Ctrl.D jsr BUF.DelSel
bcs .9
jsr SCRN.UpdateMain
bcs .9
jmp SCRN.UpdateStatusBar
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.E jsr BUF.ComputeCOffset Ctrl.E jsr BUF.ComputeCOffset
lda BUF.COffset lda BUF.COffset
ldy #SelEnd ldy #SelEnd
@ -274,13 +267,77 @@ Ctrl.N
clc clc
rts rts
*-------------------------------------- *--------------------------------------
Ctrl.O Ctrl.O ldy #FileY+1
clc lda (pData),y
tax
dey
lda (pData),y
ldy #ViewPortH
sec
sbc (pData),y
pha
txa
sbc #0
bcc .8
ldy #FileY+1
sta (pData),y
dey
pla
sta (pData),y
lda #0
ldy #FileX
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
rts rts
.9 jmp Ctrl.Q
.8 pla
jmp Ctrl.T
*-------------------------------------- *--------------------------------------
Ctrl.P Ctrl.P ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
ldy #ViewPortH
clc clc
adc (pData),y
bcc .1
inx
.1 pha
phx
jsr BUF.GetLineAX A,X = FileY+PAGE
bcs .8
tya Y = line length
ldy #FileX
sta (pData),y
ldy #FileY+1
pla
sta (pData),y
dey
pla
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
rts rts
.9 jmp Ctrl.Q
.8 pla
pla
jmp Ctrl.Y
*-------------------------------------- *--------------------------------------
Ctrl.Q lda #$FF Ctrl.Q lda #$FF
ldy #bCANCEL ldy #bCANCEL
@ -390,19 +447,39 @@ Ctrl.V jsr BUF.InsertClipboard
rts rts
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
*-------------------------------------- *--------------------------------------
Ctrl.W Ctrl.W jsr BUF.ComputeCOffset Y=line len
clc phy
rts
lda BUF.LOffset
ldy #SelStart
sta (pData),y
lda BUF.LOffset+1
iny
sta (pData),y
pla
sec +1 for CR
adc BUF.LOffset
ldy #SelEnd
sta (pData),y
lda BUF.LOffset+1
adc #0
iny
sta (pData),y
bra Ctrl.D
*-------------------------------------- *--------------------------------------
Ctrl.X jsr BUF.SelToClipboard Ctrl.X jsr BUF.SelToClipboard
bcs .99 bcs Ctrl.X.RTS
jsr BUF.DelSel
Ctrl.D jsr BUF.DelSel
bcs .9 bcs .9
jsr SCRN.UpdateMain jsr SCRN.UpdateMain
bcs .9 bcs .9
jmp SCRN.UpdateStatusBar jmp SCRN.UpdateStatusBar
.9 jmp Ctrl.Q .9 jmp Ctrl.Q
.99 rts
Ctrl.X.RTS rts
*-------------------------------------- *--------------------------------------
Ctrl.Y ldy #FileY+1 Ctrl.Y ldy #FileY+1
lda (pData),y lda (pData),y

View File

@ -70,10 +70,8 @@ SCRN.UpdateMain ldy #ScreenY
lda #0 lda #0
sta TmpByte sta TmpByte
ldy #ScreenH ldy #ViewPortH
lda (pData),y lda (pData),y
dec
dec
sta TmpCount sta TmpCount
.1 >LDAX TmpIndex .1 >LDAX TmpIndex
@ -333,7 +331,7 @@ SCRN.UpdateViewPort
sbc (pData),y sbc (pData),y
bcs .4 out of top border ? bcs .4 out of top border ?
ldy #ScreenY ldy #ScreenY move viewport up one line....
lda (pData),y lda (pData),y
sbc #0 CC from BCS sbc #0 CC from BCS
sta (pData),y sta (pData),y
@ -344,37 +342,31 @@ SCRN.UpdateViewPort
bit bNotRepaint bit bNotRepaint
bpl .3 bpl .3
jsr SCRN.scrollDn jsr SCRN.scrollDn ...and move content one line down
bcc .3 bcc .3
jmp Ctrl.Q jmp Ctrl.Q
.4 clc .4 ldy #ScreenY+1
ldy #ScreenY
lda (pData),y lda (pData),y
ldy #ScreenH
adc (pData),y
pha
ldy #ScreenY+1
lda (pData),y
adc #0
tax tax
pla dey
lda (pData),y
sec
sbc #3
bcs .41
dex
sec
.41 ldy #FileY
sbc (pData),y
txa
iny
sbc (pData),y
bcs .5 out of bottom border ?
ldy #ViewPortHm1
clc clc
ldy #ScreenY adc (pData),y
bcc .41
inx
.41 ldy #FileY A,X = screen bottom
cmp (pData),y
txa
iny FileY > screen bottom ?
sbc (pData),y
bcs .5 CS : fileY>= screen bottom
* clc from BCS
ldy #ScreenY move viewport down one line....
lda (pData),y lda (pData),y
adc #1 adc #1
sta (pData),y sta (pData),y
@ -382,10 +374,12 @@ SCRN.UpdateViewPort
lda (pData),y lda (pData),y
adc #0 adc #0
sta (pData),y sta (pData),y
bit bNotRepaint bit bNotRepaint
bpl .4 bpl .4
jsr SCRN.scrollUp
jsr SCRN.scrollUp ...and move content one line up
bcs .9 bcs .9
bra .4
.5 sec .5 sec
ldy #FileX ldy #FileX
@ -430,13 +424,15 @@ SCRN.scrollUp lda #$1B
dey dey
lda (pData),y lda (pData),y
clc clc
adc #21 ldy #ViewPortHm1
adc (pData),y
bcc .1 bcc .1
inx inx
.1 jsr BUF.GetLineAX .1 jsr BUF.GetLineAX
bcs .9 bcs .9
lda #21 ldy #ViewPortHm1
lda (pData),y
jsr SCRN.UpdateLineAtALenY jsr SCRN.UpdateLineAtALenY
bcs .9 bcs .9
rts rts
@ -449,7 +445,12 @@ SCRN.scrollDn lda #$1B
>SYSCALL COutA >SYSCALL COutA
bcs .9 bcs .9
jsr BUF.GetLine ldy #ScreenY+1
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .9 bcs .9
lda #0 lda #0

View File

@ -275,9 +275,18 @@ CS.DOEVENT.Esc ldy #bEscMode
bra .4 bra .4
.5 phy .5 phy
lda TmpByte lda TmpByte
ldy #ScreenH ldy #ScreenH
sta (pData),y sta (pData),y
dec Remove 2 (top & status bar) for viewportH
dec
ldy #ViewPortH
sta (pData),y
dec
ldy #ViewPortHm1 Remove 1 more to store offsert to last line of viewport
sta (pData),y
ply ply
stz TmpByte stz TmpByte
@ -466,14 +475,14 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
>PSTR " Ctrl-G : Go to start of current line" >PSTR " Ctrl-G : Go to start of current line"
>PSTR " Ctrl-L : Go to end of current line" >PSTR " Ctrl-L : Go to end of current line"
>PSTR " Ctrl-N : * Find next" >PSTR " Ctrl-N : * Find next"
>PSTR " Ctrl-O : * Page up" >PSTR " Ctrl-O : Page up"
>PSTR " Ctrl-P : * Page down" >PSTR " Ctrl-P : Page down"
>PSTR " Ctrl-Q : Quit" >PSTR " Ctrl-Q : Quit"
>PSTR " Ctrl-R : * Replace found string with..." >PSTR " Ctrl-R : * Replace found string with..."
>PSTR " Ctrl-S : Save file to disk..." >PSTR " Ctrl-S : Save file to disk..."
>PSTR " Ctrl-T : Go to top of file" >PSTR " Ctrl-T : Go to top of file"
>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 end of file" >PSTR " Ctrl-Y : Go to end of file"
>PSTR " Ctrl-Z : * Undo previous change" >PSTR " Ctrl-Z : * Undo previous change"
@ -516,6 +525,8 @@ hClipBoard .BS 1
ClipBoardLen .BS 2 ClipBoardLen .BS 2
ScreenW .BS 1 ScreenW .BS 1
ScreenH .BS 1 ScreenH .BS 1
ViewPortH .BS 1
ViewPortHm1 .BS 1
ScreenX .BS 1 ScreenX .BS 1
ScreenY .BS 2 ScreenY .BS 2
CurX .BS 1 CurX .BS 1