A2osX/BIN/EDIT.S.CTRL.txt

552 lines
8.5 KiB
Plaintext
Raw Normal View History

2016-01-04 07:25:43 +00:00
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 =
* ^X = Cut Block
* ^Y =
* ^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 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 UpdateMain
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.C ldy #SelEnd+1
lda (pData),y
tax
dey
lda (pData),y
sec
ldy #SelStart
sbc (pData),y
sta TmpLen
iny
txa
sbc (pData),y
bcs .8
sta TmpLen+1
ldy #hClipBoard
lda (pData),y
beq .1
>SYSCALL SYS.FreeMemA
.1
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.D
clc
rts
*--------------------------------------
Ctrl.E jsr BUF.ComputeCOffset
lda BUF.COffset
ldy #SelEnd
sta (pData),y
lda BUF.COffset+1
iny
sta (pData),y
jsr UpdateMain
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.F lda #PromptModeFind
ldy #PromptMode
sta (pData),y
jsr UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.G ldy #FileX
lda (pData),y
beq .8
lda #0
sta (pData),y
jsr 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 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 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 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 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 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 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 UpdateStatusBar
bcs .9
clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.T
clc
rts
*--------------------------------------
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 UpdateViewPort
bcs .9
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
Ctrl.V
clc
rts
*--------------------------------------
Ctrl.W
clc
rts
*--------------------------------------
Ctrl.X
clc
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
*--------------------------------------
Ctrl.DEL
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 jmp Ctrl.DEL
.7 jsr BUF.InsertA
bcs .9
jsr UpdateCurrentLine
bcs .9
jsr Ctrl.FS
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Help ldy #PromptMode
lda #0
sta (pData),y
jsr UpdateMain
bcs .9
jsr UpdateStatusBar
bcs .9
rts
.9 jmp Ctrl.Q
*--------------------------------------
Prompt.Find cmp #3
bne .1
ldy #PromptMode
lda #0
sta (pData),y
jsr 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 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
jsr UpdateStatusBar
bcs .9
rts
.1 cmp #13
bne .2
.2
.8 clc
rts
.9 jmp Ctrl.Q
*--------------------------------------
MAN
SAVE BIN/EDIT.S.CTRL
LOAD BIN/EDIT.S
ASM