mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-07 01:29:33 +00:00
New Full Screen Editor
This commit is contained in:
parent
4b5aa17180
commit
3c93b13921
239
BIN/EDIT.S.BUF.txt
Normal file
239
BIN/EDIT.S.BUF.txt
Normal file
|
@ -0,0 +1,239 @@
|
|||
PR#3
|
||||
PREFIX /A2OSX.SRC
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
BUF.CheckSelected
|
||||
sec
|
||||
lda BUF.COffset
|
||||
ldy #SelStart
|
||||
sbc (pData),y
|
||||
lda BUF.COffset+1
|
||||
iny
|
||||
sbc (pData),y
|
||||
bcc .9
|
||||
|
||||
lda BUF.COffset
|
||||
ldy #SelEnd
|
||||
sbc (pData),y
|
||||
lda BUF.COffset+1
|
||||
iny
|
||||
sbc (pData),y
|
||||
rts CC if in selection
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
BUF.InsertA sta TmpChar
|
||||
jsr BUF.ComputeCOffset
|
||||
cpy #255
|
||||
bne .10
|
||||
clc
|
||||
rts
|
||||
|
||||
.10 ldy #FileLen
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #2
|
||||
pha
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
ply
|
||||
jsr BUF.GetNewYA
|
||||
bcs .9
|
||||
>STYA BufPtr
|
||||
|
||||
>LDYA BUF.COffset
|
||||
>STYA TmpCount
|
||||
|
||||
ldy #hBufferBackup
|
||||
lda (pData),y
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
>STYA BufPtrBackup
|
||||
|
||||
ldy #0
|
||||
.1 jsr DecTmpCount
|
||||
beq .2
|
||||
lda (BufPtrBackup),y
|
||||
sta (BufPtr),y
|
||||
iny
|
||||
bne .1
|
||||
inc BufPtrBackup+1
|
||||
inc BufPtr+1
|
||||
bra .1
|
||||
|
||||
.2 lda TmpChar
|
||||
sta (BufPtr),y
|
||||
inc BufPtr
|
||||
bne .3
|
||||
inc BufPtr+1
|
||||
|
||||
.3 lda (BufPtrBackup),y
|
||||
beq .4
|
||||
sta (BufPtr),y
|
||||
iny
|
||||
bne .3
|
||||
inc BufPtrBackup+1
|
||||
inc BufPtr+1
|
||||
bra .3
|
||||
|
||||
.4 ldy #FileLen
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
bne .5
|
||||
iny
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
|
||||
.5 clc
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* Out : Y = Line Length
|
||||
*--------------------------------------
|
||||
BUF.ComputeCOffset
|
||||
ldy #FileY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
phy save line length
|
||||
ldy #FileX
|
||||
lda (pData),y
|
||||
clc
|
||||
adc BUF.LOffset
|
||||
sta BUF.COffset
|
||||
lda #0
|
||||
adc BUF.LOffset+1
|
||||
sta BUF.COffset+1
|
||||
ply
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
BUF.GetCharAtY tya
|
||||
clc
|
||||
adc BUF.LOffset
|
||||
sta BUF.COffset
|
||||
lda #0
|
||||
adc BUF.LOffset+1
|
||||
sta BUF.COffset+1
|
||||
|
||||
lda (BufPtr),y
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
BUF.GetLineAX >STAX BUF.TmpLine1
|
||||
|
||||
stz BUF.LOffset
|
||||
stz BUF.LOffset+1
|
||||
|
||||
ldy #hBuffer
|
||||
lda (pData),y
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
>STYA BufPtr
|
||||
|
||||
lda (BufPtr)
|
||||
beq .99
|
||||
|
||||
stz BUF.TmpLine2
|
||||
stz BUF.TmpLine2+1
|
||||
|
||||
.1 ldy #0
|
||||
|
||||
.2 lda (BufPtr),y
|
||||
beq .7
|
||||
cmp #13
|
||||
beq .3
|
||||
|
||||
iny
|
||||
bne .2
|
||||
|
||||
.3 lda BUF.TmpLine1
|
||||
cmp BUF.TmpLine2
|
||||
bne .4
|
||||
lda BUF.TmpLine1+1
|
||||
cmp BUF.TmpLine2+1
|
||||
beq .8
|
||||
|
||||
.4 tya
|
||||
sec
|
||||
adc BufPtr
|
||||
sta BufPtr
|
||||
bcc .5
|
||||
inc BufPtr+1
|
||||
|
||||
.5 tya
|
||||
sec
|
||||
adc BUF.LOffset
|
||||
sta BUF.LOffset
|
||||
bcc .6
|
||||
inc BUF.LOffset+1
|
||||
|
||||
.6 inc BUF.TmpLine2
|
||||
bne .1
|
||||
inc BUF.TmpLine2+1
|
||||
bra .1
|
||||
|
||||
.7 lda BUF.TmpLine1
|
||||
cmp BUF.TmpLine2
|
||||
bne .99
|
||||
lda BUF.TmpLine1+1
|
||||
cmp BUF.TmpLine2+1
|
||||
bne .99
|
||||
|
||||
.8 lda BUF.LOffset
|
||||
sta BUF.COffset
|
||||
lda BUF.LOffset+1
|
||||
sta BUF.COffset+1
|
||||
clc Y = Line length
|
||||
rts
|
||||
|
||||
.99 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
BUF.GetNewYA >STYA TmpLen
|
||||
ldy #hBufferBackup
|
||||
lda (pData),y
|
||||
beq .1
|
||||
>SYSCALL SYS.FreeMemA
|
||||
ldy #hBufferBackup
|
||||
lda #0
|
||||
sta (pData),y
|
||||
|
||||
.1 >PUSHW TmpLen
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
>SYSCALL SYS.GetMem
|
||||
bcs .9
|
||||
|
||||
phy
|
||||
pha
|
||||
|
||||
ldy #hBuffer
|
||||
lda (pData),y
|
||||
ldy #hBufferBackup
|
||||
sta (pData),y
|
||||
|
||||
txa
|
||||
ldy #hBuffer
|
||||
sta (pData),y
|
||||
|
||||
pla
|
||||
ply
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE BIN/EDIT.S.BUF
|
||||
LOAD BIN/EDIT.S
|
||||
ASM
|
551
BIN/EDIT.S.CTRL.txt
Normal file
551
BIN/EDIT.S.CTRL.txt
Normal file
|
@ -0,0 +1,551 @@
|
|||
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
|
436
BIN/EDIT.S.SCRN.txt
Normal file
436
BIN/EDIT.S.SCRN.txt
Normal file
|
@ -0,0 +1,436 @@
|
|||
PR#3
|
||||
PREFIX /A2OSX.SRC
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
InitScreen ldy #ScreenH
|
||||
lda (pData),y
|
||||
dec
|
||||
dec
|
||||
>PUSHA
|
||||
>LDYA L.SEQ.INIT
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
lda #12
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
|
||||
ldy #FileX
|
||||
sta (pData),y
|
||||
|
||||
ldy #FileY
|
||||
sta (pData),y
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
ldy #ScreenX
|
||||
sta (pData),y
|
||||
|
||||
ldy #ScreenY
|
||||
sta (pData),y
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
jsr UpdateTopBar
|
||||
bcs .9
|
||||
jsr UpdateViewPort
|
||||
bcs .9
|
||||
jsr UpdateMain
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateTopBar ldy #hFileName
|
||||
lda (pData),y
|
||||
beq .1
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
bra .2
|
||||
|
||||
.1 >LDYA L.MSG.NEWFILE
|
||||
|
||||
.2 >PUSHYA
|
||||
|
||||
>LDYA L.MSG.TOPBAR
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateMain ldy #ScreenY
|
||||
lda (pData),y
|
||||
sta TmpIndex
|
||||
iny
|
||||
lda (pData),y
|
||||
sta TmpIndex+1
|
||||
|
||||
lda #0
|
||||
sta TmpCount
|
||||
|
||||
.1 >LDAX TmpIndex
|
||||
jsr BUF.GetLineAX Y = line length
|
||||
bcs .5
|
||||
|
||||
lda TmpCount
|
||||
jsr UpdateLineAtALenY
|
||||
bcs .9
|
||||
|
||||
.3 inc TmpIndex
|
||||
bne .4
|
||||
inc TmpIndex+1
|
||||
|
||||
.4 inc TmpCount
|
||||
lda TmpCount
|
||||
cmp #22
|
||||
bne .1
|
||||
jmp GotoCurXCurY
|
||||
|
||||
.5 ldx #0
|
||||
ldy TmpCount
|
||||
jsr GotoXY
|
||||
bcs .9
|
||||
|
||||
>LDYA L.SEQ.CEOL
|
||||
>SYSCALL SYS.PSTROutYA
|
||||
bcs .9
|
||||
|
||||
inc TmpCount
|
||||
lda TmpCount
|
||||
cmp #22
|
||||
bne .5
|
||||
|
||||
jmp GotoCurXCurY
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateCurrentLine
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
clc
|
||||
ldy #CurY
|
||||
adc (pData),y
|
||||
bcc .1
|
||||
inx
|
||||
.1 jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
|
||||
phy
|
||||
ldy #CurY
|
||||
lda (pData),y
|
||||
ply
|
||||
jsr UpdateLineAtALenY
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateLineAtALenY
|
||||
stz bSelected
|
||||
sty TmpLen
|
||||
ldx #0
|
||||
tay
|
||||
jsr GotoXY
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenW
|
||||
lda (pData),y
|
||||
tax
|
||||
|
||||
ldy #ScreenX
|
||||
lda (pData),y
|
||||
tay
|
||||
|
||||
.1 cpy TmpLen
|
||||
bcs .3
|
||||
|
||||
jsr BUF.GetCharAtY
|
||||
beq .3
|
||||
cmp #13
|
||||
beq .3
|
||||
phx
|
||||
phy
|
||||
pha
|
||||
jsr BUF.CheckSelected
|
||||
jsr UpdateAttrC
|
||||
pla
|
||||
bcs .11
|
||||
|
||||
>SYSCALL SYS.COutA
|
||||
.11 ply
|
||||
plx
|
||||
bcs .9
|
||||
|
||||
.2 iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
.3 sec
|
||||
jsr UpdateAttrC
|
||||
bcs .9
|
||||
|
||||
>LDYA L.SEQ.CEOL
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* CC = set INV, CS = set NORM
|
||||
*--------------------------------------
|
||||
UpdateAttrC bcc .1
|
||||
bit bSelected
|
||||
bpl .8
|
||||
|
||||
>LDYA L.SEQ.NORM
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
stz bSelected
|
||||
rts
|
||||
|
||||
.1 bit bSelected
|
||||
bmi .8
|
||||
|
||||
>LDYA L.SEQ.INV
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
lda #$ff
|
||||
sta bSelected
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateStatusBar ldy #PromptMode
|
||||
lda (pData),y
|
||||
tax
|
||||
bne .2
|
||||
|
||||
ldy #FileY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
inc
|
||||
bne .1
|
||||
inx
|
||||
.1 >PUSHAX
|
||||
|
||||
ldy #FileX
|
||||
lda (pData),y
|
||||
inc
|
||||
>PUSHA
|
||||
|
||||
ldy #FileLen+1
|
||||
>PUSHB (pData),y
|
||||
dey
|
||||
>PUSHB (pData),y
|
||||
|
||||
ldy #ScreenH
|
||||
lda (pData),y
|
||||
dec
|
||||
>PUSHA
|
||||
>LDYA L.MSG.STATUSBAR
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
rts
|
||||
|
||||
.2 >PUSHW pData
|
||||
ldy #ScreenH
|
||||
lda (pData),y
|
||||
dec
|
||||
>PUSHA
|
||||
>LDYA L.MSG.STATUSBAR,x
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
GotoCurXCurY ldy #CurX
|
||||
lda (pData),y
|
||||
tax
|
||||
ldy #CurY
|
||||
lda (pData),y
|
||||
tay
|
||||
|
||||
GotoXY txa
|
||||
inc
|
||||
>PUSHA
|
||||
tya
|
||||
inc
|
||||
inc
|
||||
>PUSHA
|
||||
|
||||
>LDYA L.MSG.GOTOXY
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
UpdateViewPort lda #$ff
|
||||
sta bNotRepaint
|
||||
|
||||
.1 ldy #FileX
|
||||
lda (pData),y
|
||||
ldy #ScreenX
|
||||
cmp (pData),y
|
||||
bcs .2 out of left border ?
|
||||
|
||||
ldy #ScreenX
|
||||
lda (pData),y
|
||||
dec
|
||||
sta (pData),y
|
||||
stz bNotRepaint
|
||||
bra .1
|
||||
|
||||
.2 ldy #ScreenX
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #79
|
||||
ldy #FileX
|
||||
cmp (pData),y
|
||||
bcs .3 out of right border ?
|
||||
|
||||
ldy #ScreenX
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
stz bNotRepaint
|
||||
bra .2
|
||||
|
||||
.3 sec
|
||||
ldy #FileY
|
||||
lda (pData),y
|
||||
ldy #ScreenY
|
||||
sbc (pData),y
|
||||
ldy #FileY+1
|
||||
lda (pData),y
|
||||
ldy #ScreenY+1
|
||||
sbc (pData),y
|
||||
bcs .4 out of top border ?
|
||||
|
||||
sec
|
||||
ldy #ScreenY
|
||||
lda (pData),y
|
||||
sbc #1
|
||||
sta (pData),y
|
||||
iny
|
||||
lda (pData),y
|
||||
sbc #0
|
||||
sta (pData),y
|
||||
bit bNotRepaint
|
||||
bpl .3
|
||||
jsr scrollDn
|
||||
bcc .3
|
||||
rts
|
||||
|
||||
.4 clc
|
||||
ldy #ScreenY
|
||||
lda (pData),y
|
||||
adc #21
|
||||
pha
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
tax
|
||||
pla
|
||||
sec
|
||||
ldy #FileY
|
||||
sbc (pData),y
|
||||
txa
|
||||
iny
|
||||
sbc (pData),y
|
||||
bcs .5 out of bottom border ?
|
||||
|
||||
clc
|
||||
ldy #ScreenY
|
||||
lda (pData),y
|
||||
adc #1
|
||||
sta (pData),y
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
sta (pData),y
|
||||
bit bNotRepaint
|
||||
bpl .4
|
||||
jsr scrollUp
|
||||
bcc .4
|
||||
rts
|
||||
|
||||
.5 sec
|
||||
ldy #FileX
|
||||
lda (pData),y
|
||||
ldy #ScreenX
|
||||
sbc (pData),y
|
||||
ldy #CurX
|
||||
sta (pData),y
|
||||
|
||||
sec
|
||||
ldy #FileY
|
||||
lda (pData),y
|
||||
ldy #ScreenY
|
||||
sbc (pData),y
|
||||
ldy #CurY
|
||||
sta (pData),y
|
||||
|
||||
bit bNotRepaint
|
||||
bmi .6
|
||||
jsr UpdateMain
|
||||
bcs .9
|
||||
.6 jsr UpdateStatusBar
|
||||
bcs .9
|
||||
jsr GotoCurXCurY
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
scrollUp lda #$1B
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
lda #'M'
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #21
|
||||
bcc .1
|
||||
inx
|
||||
.1 jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
|
||||
lda #21
|
||||
jsr UpdateLineAtALenY
|
||||
bcs .9
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
scrollDn lda #$1B
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
lda #'D'
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
|
||||
ldy #ScreenY+1
|
||||
lda (pData),y
|
||||
tax
|
||||
dey
|
||||
lda (pData),y
|
||||
jsr BUF.GetLineAX
|
||||
bcs .9
|
||||
|
||||
lda #0
|
||||
jsr UpdateLineAtALenY
|
||||
bcs .9
|
||||
|
||||
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE BIN/EDIT.S.SCRN
|
||||
LOAD BIN/EDIT.S
|
||||
ASM
|
453
BIN/EDIT.S.txt
453
BIN/EDIT.S.txt
|
@ -7,20 +7,20 @@ AUTO 6
|
|||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF /A2OSX.BOOT/BIN/EDIT
|
||||
*--------------------------------------
|
||||
* ^C = Exit (Cancel)
|
||||
* ^KH = Help
|
||||
* ^KB = Begin Block
|
||||
* ^KK = End Block
|
||||
* ^KC = Copy Block
|
||||
* ^KV = Move Block
|
||||
*--------------------------------------
|
||||
.INB INC/MACROS.I
|
||||
.INB INC/A2OSX.I
|
||||
.INB INC/LIBSTR.I
|
||||
*--------------------------------------
|
||||
ZPPTR1 .EQ ZPBIN
|
||||
ZPPTR2 .EQ ZPBIN+2
|
||||
BufPtr .EQ ZPBIN+4
|
||||
BufPtrBackup .EQ ZPBIN+6
|
||||
*--------------------------------------
|
||||
PromptBufferMax .EQ 64
|
||||
PromptModeHelp .EQ 2
|
||||
PromptModeFind .EQ 4
|
||||
PromptModeReplace .EQ 6
|
||||
PromptModeSave .EQ 8
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
|
@ -40,36 +40,85 @@ CS.START cld
|
|||
.DA CS.RUN
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.SEQ.DETECT .DA SEQ.DETECT
|
||||
L.SEQ.INIT .DA SEQ.INIT
|
||||
L.SEQ.RESET .DA SEQ.RESET
|
||||
L.SEQ.INV .DA SEQ.INV
|
||||
L.SEQ.NORM .DA SEQ.NORM
|
||||
L.SEQ.CEOL .DA SEQ.CEOL
|
||||
L.MSG.TOPBAR .DA MSG.TOPBAR
|
||||
L.MSG.STATUSBAR .DA MSG.STATUSBAR
|
||||
L.MSG.STATUSBAR.H .DA MSG.STATUSBAR.H
|
||||
L.MSG.STATUSBAR.F .DA MSG.STATUSBAR.F
|
||||
L.MSG.STATUSBAR.R .DA MSG.STATUSBAR.R
|
||||
L.MSG.STATUSBAR.S .DA MSG.STATUSBAR.S
|
||||
L.MSG.NEWFILE .DA MSG.NEWFILE
|
||||
L.MSG.GOTOXY .DA MSG.GOTOXY
|
||||
L.MSG.HELP .DA MSG.HELP
|
||||
J.PROMPT .DA Prompt.Editor
|
||||
.DA Prompt.Help
|
||||
.DA Prompt.Find
|
||||
.DA Prompt.Replace
|
||||
.DA Prompt.Save
|
||||
J.CTRL .DA Ctrl.Invalid
|
||||
.DA Ctrl.A
|
||||
.DA Ctrl.B
|
||||
.DA Ctrl.C
|
||||
.DA Ctrl.D
|
||||
.DA Ctrl.E
|
||||
.DA Ctrl.F
|
||||
.DA Ctrl.G
|
||||
.DA Ctrl.BS
|
||||
.DA Ctrl.TAB
|
||||
.DA Ctrl.LF
|
||||
.DA Ctrl.VT
|
||||
.DA Ctrl.L
|
||||
.DA Ctrl.CR
|
||||
.DA Ctrl.N
|
||||
.DA Ctrl.O
|
||||
.DA Ctrl.P
|
||||
.DA Ctrl.Q
|
||||
.DA Ctrl.R
|
||||
.DA Ctrl.S
|
||||
.DA Ctrl.T
|
||||
.DA Ctrl.FS
|
||||
.DA Ctrl.V
|
||||
.DA Ctrl.W
|
||||
.DA Ctrl.X
|
||||
.DA Ctrl.Y
|
||||
.DA Ctrl.Z
|
||||
.DA Ctrl.ESC
|
||||
.DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT lda #0
|
||||
ldy #DS.END-DS.START-1
|
||||
|
||||
.1 sta (pData),y
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
CS.INIT stz hFile
|
||||
stz TmpLen
|
||||
stz TmpLen+1
|
||||
|
||||
lda #$ff
|
||||
ldy #bSaved
|
||||
sta (pData),y
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
lda (pPs),y
|
||||
beq .7
|
||||
beq .3
|
||||
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
>STYA ZPPTR1
|
||||
|
||||
lda (ZPPTR1)
|
||||
cmp #'/'
|
||||
bne .10
|
||||
bne .1
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
lda (pPs),y
|
||||
>SYSCALL SYS.PStrCpyA
|
||||
bra .3
|
||||
bra .2
|
||||
|
||||
.10 ldy #S.PS.hARGS
|
||||
.1 ldy #S.PS.hARGS
|
||||
lda (pPs),y
|
||||
>PUSHA
|
||||
ldy #S.PS.hPREFIX
|
||||
|
@ -77,50 +126,102 @@ CS.INIT lda #0
|
|||
>PUSHA
|
||||
>SYSCALL SYS.PStrCat
|
||||
|
||||
.3 ldy #hFileName
|
||||
.2 ldy #hFileName
|
||||
sta (pData),y
|
||||
|
||||
>SYSCALL SYS.LoadFileA
|
||||
bcs .9
|
||||
bra .8
|
||||
bcc .21
|
||||
jmp .99
|
||||
|
||||
.7 >PUSHWI 2048
|
||||
>PUSHBI 0
|
||||
>SYSCALL SYS.GetMem
|
||||
bcs .9
|
||||
>LDYAI 0
|
||||
.21 stx hFile
|
||||
>STYA TmpLen
|
||||
|
||||
.8 pha Y,A = len,X=hMem
|
||||
tya
|
||||
ldy #FileLen
|
||||
sta (pData),y
|
||||
.3 >LDYA TmpLen
|
||||
iny
|
||||
pla
|
||||
sta (pData),y
|
||||
|
||||
bne .4
|
||||
inc
|
||||
|
||||
.4 >PUSHYA
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
>SYSCALL SYS.GetMem
|
||||
bcs .98
|
||||
>STYA ZPPTR2
|
||||
txa
|
||||
ldy #hBuffer
|
||||
sta (pData),y
|
||||
|
||||
lda #$80
|
||||
ldy #bSaved
|
||||
sta (pData),y
|
||||
ldy #bInsert
|
||||
sta (pData),y
|
||||
lda hFile
|
||||
beq .7
|
||||
|
||||
jsr InitScreen
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
>STYA ZPPTR1
|
||||
|
||||
>LDYA TmpLen
|
||||
>STYA TmpCount
|
||||
|
||||
ldy #0
|
||||
|
||||
.5 jsr DecTmpCount
|
||||
beq .6
|
||||
lda (ZPPTR1),y
|
||||
sta (ZPPTR2),y
|
||||
iny
|
||||
bne .5
|
||||
inc ZPPTR1+1
|
||||
inc ZPPTR2+1
|
||||
bra .5
|
||||
|
||||
.6 jsr .98
|
||||
|
||||
.7 ldy #FileLen
|
||||
lda TmpLen
|
||||
sta (pData),y
|
||||
iny
|
||||
lda TmpLen+1
|
||||
sta (pData),y
|
||||
|
||||
lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
clc
|
||||
.9 rts
|
||||
rts
|
||||
|
||||
.98 lda hFile
|
||||
beq .99
|
||||
>SYSCALL SYS.FreeMemA
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CS.RUN ldy #bCANCEL
|
||||
CS.RUN ldy #bCancel
|
||||
lda (pData),y
|
||||
bne .9
|
||||
|
||||
ldy #bInit
|
||||
lda (pData),y
|
||||
bne .8
|
||||
|
||||
>LDYA L.SEQ.DETECT
|
||||
>SYSCALL SYS.PSTRoutYA Send Query for term W & H
|
||||
bcs .9
|
||||
|
||||
clc
|
||||
.1 ldy #bCancel
|
||||
lda (pData),y
|
||||
bne .9
|
||||
|
||||
>SYSCALL SYS.Sleep
|
||||
|
||||
ldy #ScreenW Wait for Response from terminal
|
||||
lda (pData),y for W & H
|
||||
beq .1
|
||||
|
||||
jsr InitScreen
|
||||
bcs .9
|
||||
|
||||
ldy #bInit
|
||||
lda #$ff
|
||||
sta (pData),y
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
|
@ -138,87 +239,257 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
|||
|
||||
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
|
||||
lda (pEvent),y
|
||||
bne .9
|
||||
bmi .9 test only OA, bug in Applewin for #,@...
|
||||
* bne .9
|
||||
|
||||
ldy #S.EVT.DATALO
|
||||
lda (pEvent),y
|
||||
cmp #$03 Ctrl-C
|
||||
bne .1
|
||||
|
||||
lda #$FF
|
||||
ldy #bCANCEL
|
||||
tax
|
||||
|
||||
ldy #bEscMode
|
||||
lda (pData),y
|
||||
asl
|
||||
txa
|
||||
bcc .1
|
||||
|
||||
cmp #'['
|
||||
beq .8
|
||||
|
||||
ldy #EscBuffer
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
bra .8
|
||||
|
||||
.1 cmp #$20
|
||||
clc
|
||||
adc #EscBuffer
|
||||
tay
|
||||
txa
|
||||
sta (pData),y
|
||||
|
||||
cmp #64
|
||||
|
||||
bcc .8
|
||||
jsr CS.DOEVENT.Esc
|
||||
bcs .8 Not translated, exit
|
||||
|
||||
.1 pha
|
||||
ldy #PromptMode
|
||||
lda (pData),y
|
||||
tax
|
||||
pla
|
||||
jmp (J.PROMPT,x)
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT.Esc ldy #bEscMode
|
||||
lda #0
|
||||
sta (pData),y
|
||||
|
||||
ldy #EscBuffer
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #EscBuffer
|
||||
tay
|
||||
|
||||
lda (pData),y
|
||||
|
||||
ldx EscChars
|
||||
.1 cmp EscChars,x
|
||||
beq .2
|
||||
dex
|
||||
bne .1
|
||||
cmp #'R' Response to cursor position query?
|
||||
beq .3
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 lda EscAscii,x
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 stz TmpChar
|
||||
|
||||
ldy #EscBuffer
|
||||
.4 lda (pData),y
|
||||
cmp #';'
|
||||
beq .5
|
||||
|
||||
and #$0f
|
||||
pha
|
||||
lda TmpChar
|
||||
asl
|
||||
asl
|
||||
clc
|
||||
adc TmpChar
|
||||
asl
|
||||
sta TmpChar
|
||||
pla
|
||||
clc
|
||||
adc TmpChar
|
||||
sta TmpChar
|
||||
iny
|
||||
bra .4
|
||||
|
||||
.5 phy
|
||||
lda TmpChar
|
||||
ldy #ScreenH
|
||||
sta (pData),y
|
||||
ply
|
||||
|
||||
stz TmpChar
|
||||
|
||||
ldy #EscBuffer
|
||||
.6 lda (pData),y
|
||||
cmp #'R'
|
||||
beq .7
|
||||
|
||||
and #$0f
|
||||
pha
|
||||
lda TmpChar
|
||||
asl
|
||||
asl
|
||||
clc
|
||||
adc TmpChar
|
||||
asl
|
||||
sta TmpChar
|
||||
pla
|
||||
clc
|
||||
adc TmpChar
|
||||
sta TmpChar
|
||||
iny
|
||||
bra .6
|
||||
|
||||
.7 lda TmpChar
|
||||
ldy #ScreenW
|
||||
sta (pData),y
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT ldy #hBuffer
|
||||
lda (pData),y
|
||||
beq .1
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
ldy #hFileName
|
||||
.1 ldy #hBufferBackup
|
||||
lda (pData),y
|
||||
beq .2
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
.2 ldy #hClipBoard
|
||||
lda (pData),y
|
||||
beq .3
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
.3 ldy #hFileName
|
||||
lda (pData),y
|
||||
beq .8
|
||||
>SYSCALL SYS.FreeMemA
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
InitScreen lda #0
|
||||
ldy #cPos
|
||||
sta (pData),y
|
||||
ldy #rPos
|
||||
sta (pData),y
|
||||
|
||||
lda #12
|
||||
>SYSCALL SYS.CoutA
|
||||
bcs .9
|
||||
jsr UpdateTopBar
|
||||
bcs .9
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
UpdateTopBar ldy #hFileName
|
||||
lda (pData),y
|
||||
beq .1
|
||||
>SYSCALL SYS.GetMemPtrA
|
||||
bra .2
|
||||
|
||||
.1 >LDYA L.MSG.NEWFILE
|
||||
|
||||
.2 >PUSHYA
|
||||
|
||||
>LDYA L.MSG.TOPBAR
|
||||
.8 >LDYA L.SEQ.RESET
|
||||
>SYSCALL SYS.PSTRoutYA
|
||||
bcs .9
|
||||
|
||||
|
||||
clc
|
||||
lda #12
|
||||
>SYSCALL SYS.CoutA
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DecTmpCount lda TmpCount
|
||||
bne .1
|
||||
lda TmpCount+1
|
||||
beq .9
|
||||
dec TmpCount+1
|
||||
.1 dec TmpCount
|
||||
ora #$ff make sure NZ
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.INB BIN/EDIT.S.BUF
|
||||
.INB BIN/EDIT.S.CTRL
|
||||
.INB BIN/EDIT.S.SCRN
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
SEQ.DETECT >PSTRING "Querying terminal capabilities...\e[999;999H\e[6n"
|
||||
SEQ.INIT >PSTRING "\ec\e[2;%dr"
|
||||
SEQ.RESET >PSTRING "\ec"
|
||||
SEQ.INV >PSTRING "\e[7m"
|
||||
SEQ.NORM >PSTRING "\e[0m"
|
||||
MSG.TOPBAR >PSTRING "\e[H\e[7mA2osX Edit:%S\e[K\e[0m"
|
||||
SEQ.CEOL >PSTRING "\e[K"
|
||||
MSG.TOPBAR >PSTRING "\e[1;1H\e[7mA2osX Edit:%S\e[K\e[0m"
|
||||
MSG.STATUSBAR >PSTRING "\e[%d;1H\e[7mPress Ctrl-A For Help Length:%D Col:%d Line:%D\e[K\e[0m"
|
||||
MSG.STATUSBAR.H >PSTRING "\e[%d;1H\e[7mPress any key to exit this screen%S\e[K\e[0m"
|
||||
MSG.STATUSBAR.F >PSTRING "\e[%d;1H\e[7mFind:%S\e[K\e[0m"
|
||||
MSG.STATUSBAR.R >PSTRING "\e[%d;1H\e[7mReplace:%S\e[K\e[0m"
|
||||
MSG.STATUSBAR.S >PSTRING "\e[%d;1H\e[7mSave:%S\e[K\e[0m"
|
||||
MSG.NEWFILE >PSTRING "(new file)"
|
||||
MSG.GOTOXY >PSTRING "\e[%d;%dH"
|
||||
MSG.HELP >PSTRING "Commands:"
|
||||
>PSTRING "---------"
|
||||
>PSTRING " Ctrl-A : This help screen"
|
||||
>PSTRING " Ctrl-B : Mark begining of block"
|
||||
>PSTRING " Ctrl-C : Copy block to clipboard"
|
||||
>PSTRING " Ctrl-D : Delete marked block"
|
||||
>PSTRING " Ctrl-E : Mark end of block"
|
||||
>PSTRING " Ctrl-F : Find a string..."
|
||||
>PSTRING " Ctrl-G : Go to start of current line"
|
||||
>PSTRING " Ctrl-L : Go to end of current line"
|
||||
>PSTRING " Ctrl-N : Find next"
|
||||
>PSTRING " Ctrl-O : Page up"
|
||||
>PSTRING " Ctrl-P : Page down"
|
||||
>PSTRING " Ctrl-Q : Quit"
|
||||
>PSTRING " Ctrl-R : Replace found string with..."
|
||||
>PSTRING " Ctrl-S : Save file to disk"
|
||||
>PSTRING " Ctrl-T : Go to top of file"
|
||||
>PSTRING " Ctrl-V : Past clipboard"
|
||||
>PSTRING " Ctrl-W : "
|
||||
>PSTRING " Ctrl-X : Cut block to clipboard"
|
||||
>PSTRING " Ctrl-Y : "
|
||||
>PSTRING " Ctrl-Z : Undo previous change"
|
||||
.HS 00
|
||||
EscChars >PSTRING "DBAC"
|
||||
EscAscii .HS 04080A0B15
|
||||
hFile .BS 1
|
||||
TmpChar .BS 1
|
||||
TmpLen .BS 2
|
||||
TmpCount .BS 2
|
||||
TmpIndex .BS 2
|
||||
BUF.LOffset .BS 2
|
||||
BUF.COffset .BS 2
|
||||
BUF.TmpLine1 .BS 2
|
||||
BUF.TmpLine2 .BS 2
|
||||
bNotRepaint .BS 1
|
||||
bSelected .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
bCANCEL .BS 1
|
||||
hFileName .BS 1
|
||||
hBuffer .BS 1
|
||||
FileLen .BS 2
|
||||
cPos .BS 1
|
||||
rPos .BS 2
|
||||
bInsert .BS 1
|
||||
PromptBuffer .BS PromptBufferMax+1
|
||||
PromptMode .BS 1
|
||||
bCancel .BS 1
|
||||
bInit .BS 1
|
||||
bSaved .BS 1
|
||||
bEscMode .BS 1
|
||||
EscBuffer .BS 16
|
||||
hFileName .BS 1
|
||||
hFind .BS 1
|
||||
hReplace .BS 1
|
||||
hBuffer .BS 1
|
||||
hBufferBackup .BS 1
|
||||
hClipBoard .BS 1
|
||||
FileLen .BS 2
|
||||
ScreenW .BS 1
|
||||
ScreenH .BS 1
|
||||
ScreenX .BS 1
|
||||
ScreenY .BS 2
|
||||
CurX .BS 1
|
||||
CurY .BS 1
|
||||
FileX .BS 1
|
||||
FileY .BS 2
|
||||
SelStart .BS 2
|
||||
SelEnd .BS 2
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
|
Loading…
Reference in New Issue
Block a user