A2osX/BIN/EDIT.S.CTRL.txt
2016-09-21 17:20:37 +02:00

610 lines
9.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* ^A = Help
* ^B = Begin Block
* ^C = Copy Block
* ^D = Delete Block
* ^E = End Block
* ^F = Find...
* ^G = Go To SOL
***** ^H
* ^I =
***** J,K
* ^L = Go To EOL
***** ^M
* ^N = Find Next
* ^O = Page Up
* ^P = Page Down
* ^Q = Quit
* ^R = Replace...
* ^S = Save
* ^T = Go To Top of file
***** ^U
* ^V = Paste Block
* ^W = Erase line
* ^X = Cut Block
* ^Y = End Of File
* ^Z = Undo
*--------------------------------------
Ctrl.Invalid
clc
rts
*--------------------------------------
Ctrl.A ldy #PromptMode
lda #PromptModeHelp
sta (pData),y
ldx #0
ldy #0
jsr GotoXY
>LDYA L.MSG.HELP
>STYA ZPPTR1
.1 >LDYA ZPPTR1
>SYSCALL SYS.PStrOutYA
bcs .9
>LDYA L.SEQ.CEOL
>SYSCALL SYS.PStrOutYA
bcs .9
sec
lda (ZPPTR1)
adc ZPPTR1
sta ZPPTR1
bcc .2
inc ZPPTR1+1
.2 lda (ZPPTR1)
beq .8
lda #13
>SYSCALL SYS.COutA
bcs .9
bra .1
.8 jsr SCRN.UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.B jsr BUF.ComputeCOffset
lda BUF.COffset
ldy #SelStart
sta (pData),y
lda BUF.COffset+1
iny
sta (pData),y
jsr SCRN.UpdateMain
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.C jsr BUF.SelToClipboard
bcs .9
.8 clc
rts
.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
lda BUF.COffset
ldy #SelEnd
sta (pData),y
lda BUF.COffset+1
iny
sta (pData),y
jsr SCRN.UpdateMain
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.F lda #PromptModeFind
ldy #PromptMode
sta (pData),y
jsr SCRN.UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.G ldy #FileX
lda (pData),y
beq .8
lda #0
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.BS ldy #FileX
lda (pData),y
beq .1 already at begining of line
dec
sta (pData),y
bra .3
.1 ldy #FileY+1
lda (pData),y
tax
dey
ora (pData),y
beq .8
lda (pData),y
bne .2
dex
.2 dec
jsr BUF.GetLineAX
bcs .8
tya
ldy #FileX
sta (pData),y
sec
ldy #FileY
lda (pData),y
sbc #1
sta (pData),y
iny
lda (pData),y
sbc #0
sta (pData),y
.3 jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.TAB
clc
rts
*--------------------------------------
Ctrl.LF ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
inc
bne .1
inx
.1 jsr BUF.GetLineAX
bcs .8
tya Y = line length
ldy #FileX
cmp (pData),y
bcs .2
sta (pData),y
.2 ldy #FileY
lda (pData),y
inc
sta (pData),y
bne .3
iny
lda (pData),y
inc
sta (pData),y
.3 jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.VT ldy #FileY+1
lda (pData),y
tax
dey
ora (pData),y
beq .8
lda (pData),y
bne .1
dex
.1 dec
jsr BUF.GetLineAX
bcs .8
tya Y = line length
ldy #FileX
cmp (pData),y
bcs .2
sta (pData),y
.2 sec
ldy #FileY
lda (pData),y
sbc #1
sta (pData),y
iny
lda (pData),y
sbc #0
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.L ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .8
tya Y = line length
ldy #FileX
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.CR lda #13
jsr BUF.InsertA
bcs .9
ldy #FileX
lda #0
sta (pData),y
jsr SCRN.UpdateMain
bcs .9
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.N
clc
rts
*--------------------------------------
Ctrl.O
clc
rts
*--------------------------------------
Ctrl.P
clc
rts
*--------------------------------------
Ctrl.Q lda #$FF
ldy #bCANCEL
sta (pData),y
clc
rts
*--------------------------------------
Ctrl.R lda #PromptModeReplace
ldy #PromptMode
sta (pData),y
jsr SCRN.UpdateStatusBar
bcs .9
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.S lda #PromptModeSave
ldy #PromptMode
sta (pData),y
ldy #hFileName
lda (pData),y
beq .2
>SYSCALL SYS.GetMemPtrA
>STYA ZPPTR1
lda (ZPPTR1)
tay
.1 lda (ZPPTR1),y
sta (pData),y
dey
bpl .1
.2 jsr SCRN.UpdateStatusBar
bcs .9
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.T lda #0
ldy #FileX
sta (pData),y
ldy #FileY
sta (pData),y
iny
sta (pData),y
jsr SCRN.UpdateViewPort
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.FS ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
jsr BUF.GetLineAX
bcs .8
tya Y = line length
ldy #FileX
cmp (pData),y
beq .1 already at end of line
lda (pData),y
inc
sta (pData),y
bra .3
.1 ldy #FileY+1
lda (pData),y
tax
dey
lda (pData),y
inc
bne .2
inx
.2 jsr BUF.GetLineAX
bcs .8
ldy #FileY CC
lda (pData),y
adc #1
sta (pData),y
iny
lda (pData),y
adc #0
sta (pData),y
ldy #FileX
lda #0
sta (pData),y
.3 jsr SCRN.UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.V jsr BUF.InsertClipboard
bcs .9
jsr SCRN.UpdateMain
bcs .9
jsr SCRN.UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.W
clc
rts
*--------------------------------------
Ctrl.X jsr BUF.SelToClipboard
bcs .99
jsr BUF.DelSel
bcs .9
jsr SCRN.UpdateMain
bcs .9
jmp SCRN.UpdateStatusBar
.9 jmp Ctrl.Q
.99 rts
*--------------------------------------
Ctrl.Y
clc
rts
*--------------------------------------
Ctrl.Z
clc
rts
*--------------------------------------
Ctrl.ESC ldy #bEscMode
lda #$ff
sta (pData),y
inc
ldy #EscBuffer
sta (pData),y
clc
rts
*--------------------------------------
Prompt.Editor pha
ldy #bInit
lda (pData),y
asl
pla
bcs .1
cmp #$1B
beq Ctrl.ESC
cmp #3 Ctrl-C ?
beq .9
clc
rts
.1 cmp #127
beq .4
cmp #$20
bcs .7
asl
tax
jmp (J.CTRL,x)
.4 jsr BUF.Del
bcs .9
cmp #13
bne .5
jsr SCRN.UpdateMain
bcs .9
bra .6
.5 jsr SCRN.UpdateCurrentLine
bcs .9
.6 jsr SCRN.UpdateStatusBar
bcs .9
rts
.7 jsr BUF.InsertA
bcs .9
jsr SCRN.UpdateCurrentLine
bcs .9
jsr Ctrl.FS
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Help ldy #PromptMode
lda #0
sta (pData),y
jsr SCRN.UpdateMain
bcs .9
jsr SCRN.UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Find cmp #3
bne .1
ldy #PromptMode
lda #0
sta (pData),y
jsr SCRN.UpdateStatusBar
bcs .9
rts
.1 cmp #13
bne .2
.2
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Replace cmp #3
bne .1
ldy #PromptMode
lda #0
sta (pData),y
jsr SCRN.UpdateStatusBar
bcs .9
rts
.1 cmp #13
bne .2
.2
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Save cmp #3
bne .1
ldy #PromptMode
lda #0
sta (pData),y
bra .80
.1 cmp #13
bne .2
lda (pData)
beq .8
ldy #hFileName
lda (pData),y
beq .11
>SYSCALL SYS.FreeMemA
.11 >LDYA pData
>SYSCALL SYS.NewPStrYA
txa
ldy #hFileName
sta (pData),y
ldy #PromptMode
lda #0
sta (pData),y
jsr SaveFile
bcc .81
jsr SCRN.UpdateStatusBarErrA
bcs .9
rts
.2 cmp #127
bne .3
lda (pData)
beq .8
dec
sta (pData)
bra .80
.3 cmp #$20
bcc .8
pha
lda (pData)
tay
pla
cpy #PromptBufferMax
beq .8
iny
sta (pData),y
tya
sta (pData)
bra .80
.8 clc
rts
.81 jsr SCRN.UpdateTopBar
bcs .9
.80 jsr SCRN.UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
MAN
SAVE BIN/EDIT.S.CTRL
LOAD BIN/EDIT.S
ASM