mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-25 00:23:52 +00:00
Kernel version 0.8 : EDIT, added Ctrl-O,P,T,Y and W
This commit is contained in:
parent
e0ae89dd6c
commit
2bc7a49825
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user