mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-12 21:31:00 +00:00
Kernel 0.93+
This commit is contained in:
parent
a29ddf7f75
commit
d6fe848f75
Binary file not shown.
@ -97,7 +97,7 @@ BUF.DelCharAtCursor
|
||||
|
||||
.1 >STYA BufPtr
|
||||
|
||||
lda (BufPtr)
|
||||
lda (BufPtrDst)
|
||||
pha Save deleted char for later
|
||||
|
||||
jsr BUF.MoveBackTail
|
||||
|
@ -274,12 +274,10 @@ Ctrl.CR jsr BUF.ComputeCOffset
|
||||
|
||||
>STZ.G FileX
|
||||
>LDA.G CurY
|
||||
inc
|
||||
>DEBUG
|
||||
|
||||
>CMP.G ViewPortHm1
|
||||
beq .8 Bottom line, all done
|
||||
|
||||
>STA.G CurY
|
||||
dec
|
||||
>CMP.G ViewPortHm1
|
||||
beq .1 No scoll needed
|
||||
@ -296,14 +294,11 @@ Ctrl.CR jsr BUF.ComputeCOffset
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
>LDA.G ScreenH
|
||||
dec
|
||||
>PUSHA
|
||||
>PUSHBI 1
|
||||
>LDYA L.SEQ.SCROLLRGN
|
||||
>SYSCALL printf
|
||||
jsr SCRN.ResetScrollRgn
|
||||
bcs .9
|
||||
|
||||
.1 jsr SCRN.UpdateCurrentLine
|
||||
.1 >INC.G CurY
|
||||
jsr SCRN.UpdateCurrentLine
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
@ -403,14 +398,15 @@ Ctrl.Y jsr BUF.GetNextLine
|
||||
|
||||
>LDA.G FileY
|
||||
sec
|
||||
>SBC.G ViewPortH
|
||||
>SBC.G ViewPortHm1
|
||||
tax
|
||||
>LDA.G FileY+1
|
||||
sbc #0
|
||||
bcs .2
|
||||
|
||||
lda #0
|
||||
>LDA.G FileY
|
||||
tax
|
||||
lda #0
|
||||
|
||||
.2 >STA.G ScreenY+1
|
||||
dey
|
||||
@ -439,7 +435,12 @@ Ctrl.Q lda #$FF
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Ctrl.S lda #PromptModeSave
|
||||
Ctrl.S >LDYA L.DLG.SAVE
|
||||
jsr SCRN.DLGShow
|
||||
clc
|
||||
rts
|
||||
|
||||
lda #PromptModeSave
|
||||
>STA.G PromptMode
|
||||
>LDA.G hFileName
|
||||
beq .2
|
||||
@ -541,11 +542,44 @@ Ctrl.Z jsr BUF.ComputeCOffset
|
||||
bcs Ctrl.W.RTS
|
||||
|
||||
cmp #C.CR did we DEL a CR ?
|
||||
beq Prompt.Help.Upd yes repaint whole screen
|
||||
bne .8
|
||||
|
||||
>LDA.G CurY
|
||||
|
||||
>CMP.G ViewPortHm1
|
||||
beq .8 Bottom line, all done
|
||||
|
||||
dec
|
||||
>CMP.G ViewPortHm1
|
||||
beq .8 No scoll needed
|
||||
|
||||
>LDA.G ScreenH
|
||||
dec
|
||||
>PUSHA
|
||||
>LDA.G CurY
|
||||
inc
|
||||
inc
|
||||
>PUSHA
|
||||
>PUSHBI 2
|
||||
>LDYA L.SEQ.SCROLLCURUP
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
jsr SCRN.ResetScrollRgn
|
||||
bcs .9
|
||||
|
||||
jsr SCRN.UpdateCurrentLine
|
||||
bcs Ctrl.W.RTS
|
||||
jmp SCRN.UpdateStatusBar
|
||||
bcs .9
|
||||
|
||||
jsr SCRN.UpdateLast
|
||||
bcc .80
|
||||
.9 rts
|
||||
|
||||
.8 jsr SCRN.UpdateCurrentLine
|
||||
bcs .9
|
||||
.80 jsr SCRN.UpdateStatusBar
|
||||
bcs .9
|
||||
jmp SCRN.GotoCurXCurY
|
||||
*--------------------------------------
|
||||
Prompt.Help >STZ.G PromptMode
|
||||
|
||||
@ -605,7 +639,7 @@ Prompt.Save cmp #3 Ctrl-C
|
||||
jsr FILE.Save
|
||||
bcc .81
|
||||
|
||||
.12 jsr SCRN.LineBufInit
|
||||
.12 jsr SCRN.LineBufInitInv
|
||||
jmp SCRN.UpdateStatusBarErrA
|
||||
|
||||
.2 cmp #C.DEL
|
||||
|
@ -29,9 +29,16 @@ SCRN.Home lda #0
|
||||
bne .1
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.ResetScrollRgn
|
||||
>LDA.G ScreenH
|
||||
dec
|
||||
>PUSHA
|
||||
>PUSHBI 1
|
||||
>LDYA L.SEQ.SCROLLRGN
|
||||
>SYSCALL printf
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.UpdateTopBar
|
||||
jsr SCRN.LineBufInit
|
||||
|
||||
>PUSHBI 1
|
||||
>PUSHBI 1
|
||||
>PUSHBI 2
|
||||
@ -39,6 +46,9 @@ SCRN.UpdateTopBar
|
||||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
>LDYA.G LineBufBase
|
||||
>STYA LineBufPtr
|
||||
|
||||
>LDA.G FileType
|
||||
tax
|
||||
>PUSHW L.MSG.FILETYPES,x
|
||||
@ -54,7 +64,7 @@ SCRN.UpdateTopBar
|
||||
.2 >PUSHYA
|
||||
>PUSHBI 4
|
||||
>PUSHW L.MSG.TOPBAR
|
||||
>LDYA ZPPTR1
|
||||
>LDYA LineBufPtr
|
||||
>SYSCALL sprintf
|
||||
bcs .9
|
||||
|
||||
@ -64,15 +74,15 @@ SCRN.UpdateTopBar
|
||||
ldy #255
|
||||
|
||||
.3 iny
|
||||
lda (ZPPTR1),y
|
||||
lda (LineBufPtr),y
|
||||
bne .3
|
||||
|
||||
lda #'!'
|
||||
sta (ZPPTR1),y
|
||||
sta (LineBufPtr),y
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (ZPPTR1),y
|
||||
sta (LineBufPtr),y
|
||||
|
||||
.8 jmp SCRN.LineBufOutBar
|
||||
.9 rts
|
||||
@ -83,9 +93,22 @@ SCRN.UpdateMain >LDA.G ScreenY
|
||||
lda (pData),y
|
||||
sta TmpIndex+1
|
||||
|
||||
lda #0
|
||||
sta TmpByte
|
||||
stz TmpByte
|
||||
>LDA.G ViewPortH
|
||||
bra SCRN.UpdateMain.1
|
||||
|
||||
SCRN.UpdateLast >LDA.G ViewPortHm1
|
||||
sta TmpByte
|
||||
clc
|
||||
>ADC.G ScreenY
|
||||
sta (pData),y
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
sta (pData),y
|
||||
|
||||
lda #1
|
||||
SCRN.UpdateMain.1
|
||||
sta TmpCount
|
||||
|
||||
.1 lda TmpIndex
|
||||
@ -159,7 +182,7 @@ SCRN.UpdateLineAtALenY
|
||||
jsr SCRN.GotoXY
|
||||
bcs SCRN.UpdateMain.9
|
||||
|
||||
jsr SCRN.LineBufInit
|
||||
jsr SCRN.LineBufInitNorm
|
||||
|
||||
ldy #$ff
|
||||
|
||||
@ -228,12 +251,7 @@ SCRN.UpdateLineAtALenY
|
||||
bpl .80
|
||||
jsr SCRN.ToggleSel
|
||||
|
||||
.80 lda #0
|
||||
jsr SCRN.ToLineBuf
|
||||
|
||||
>PUSHBI 0
|
||||
>LDYA LineBufPtr
|
||||
>SYSCALL printf
|
||||
.80 jmp SCRN.LineBufOut
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.ToggleSel ldy #0
|
||||
@ -255,7 +273,9 @@ SCRN.ToggleSel.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.UpdateStatusBar
|
||||
jsr SCRN.LineBufInit
|
||||
>LDYA.G LineBufBase
|
||||
>STYA LineBufPtr
|
||||
|
||||
|
||||
>PUSHBI 1
|
||||
>PUSHB.G ScreenH
|
||||
@ -308,7 +328,7 @@ SCRN.UpdateStatusBarOut
|
||||
tax
|
||||
SCRN.UpdateStatusBarOutErr
|
||||
>PUSHW L.MSG.STATUSBAR,x
|
||||
>LDYA ZPPTR1
|
||||
>LDYA LineBufPtr
|
||||
>SYSCALL sprintf
|
||||
SCRN.LineBufOutBar
|
||||
>LDA.G ScreenW
|
||||
@ -316,7 +336,7 @@ SCRN.LineBufOutBar
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda (ZPPTR1),y
|
||||
.1 lda (LineBufPtr),y
|
||||
beq .2
|
||||
iny
|
||||
dex
|
||||
@ -326,15 +346,15 @@ SCRN.LineBufOutBar
|
||||
|
||||
.2 lda #C.SPACE
|
||||
|
||||
.3 sta (ZPPTR1),y
|
||||
.3 sta (LineBufPtr),y
|
||||
iny
|
||||
dex
|
||||
bne .3
|
||||
|
||||
lda #0
|
||||
sta (ZPPTR1),y
|
||||
sta (LineBufPtr),y
|
||||
|
||||
.4 >PUSHW LineBufPtr
|
||||
.4 >PUSHW.G LineBufBase
|
||||
>PUSHBI 2
|
||||
>LDYA L.SEQ.BAR
|
||||
>SYSCALL printf
|
||||
@ -352,17 +372,6 @@ SCRN.CursorAdjust
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SCRN.LineBufInit
|
||||
>LDYA LineBufPtr
|
||||
>STYA ZPPTR1
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.ToLineBuf sta (ZPPTR1)
|
||||
inc ZPPTR1
|
||||
bne .8
|
||||
inc ZPPTR1+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SCRN.GotoCurXCurY
|
||||
ldy #CurX
|
||||
lda (pData),y
|
||||
@ -525,6 +534,182 @@ SCRN.scrollDn >PUSHBI 0
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SCRN.DLGShow >STYA ZPPTR1
|
||||
jsr DLG.GetOrigin
|
||||
stx TmpLen
|
||||
sty TmpLen+1
|
||||
jsr SCRN.GotoXY
|
||||
bcs .9
|
||||
|
||||
ldy #4 T
|
||||
jsr DLG.InvBar
|
||||
bcs .9
|
||||
|
||||
jsr SCRN.LineBufInitNorm
|
||||
|
||||
jsr SCRN.VBarToLineBuf
|
||||
|
||||
ldy #2 W
|
||||
lda (ZPPTR1),y
|
||||
dec
|
||||
tax
|
||||
|
||||
lda #C.SPACE
|
||||
.3 jsr SCRN.ToLineBuf
|
||||
dex
|
||||
bne .3
|
||||
|
||||
jsr SCRN.VBarToLineBuf
|
||||
|
||||
ldy #3 H
|
||||
lda (ZPPTR1),y
|
||||
dec
|
||||
dec
|
||||
sta TmpCount
|
||||
|
||||
.4 inc tmpLen+1 Y
|
||||
|
||||
ldx TmpLen
|
||||
ldy TmpLen+1
|
||||
jsr SCRN.GotoXY
|
||||
bcs .9
|
||||
|
||||
jsr SCRN.LineBufOut
|
||||
bcs .9
|
||||
|
||||
dec TmpCount
|
||||
bne .4
|
||||
|
||||
inc tmpLen+1 Y
|
||||
|
||||
ldx TmpLen
|
||||
ldy TmpLen+1
|
||||
jsr SCRN.GotoXY
|
||||
bcs .9
|
||||
|
||||
ldy #5 S
|
||||
jsr DLG.InvBar
|
||||
bcs .9
|
||||
|
||||
ldx #10
|
||||
ldy #10
|
||||
jsr SCRN.GotoXY
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DLG.GetOrigin lda (ZPPTR1) X
|
||||
bne .1
|
||||
|
||||
>LDA.G ScreenW
|
||||
ldy #2 W
|
||||
sec
|
||||
sbc (ZPPTR1),y
|
||||
|
||||
lsr
|
||||
|
||||
.1 tax
|
||||
|
||||
ldy #1
|
||||
lda (ZPPTR1),y Y
|
||||
bne .2
|
||||
|
||||
>LDA.G ViewPortHm1
|
||||
ldy #3 H
|
||||
sec
|
||||
sbc (ZPPTR1),y
|
||||
|
||||
lsr
|
||||
|
||||
.2 tay
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SCRN.LineBufInitNorm
|
||||
clc
|
||||
.HS B0 BCS
|
||||
SCRN.LineBufInitInv
|
||||
sec
|
||||
>LDYA.G LineBufBase
|
||||
>STYA LineBufPtr
|
||||
ldy #0
|
||||
bcc .1
|
||||
|
||||
ldy #SEQ.INV-SEQ.NORM
|
||||
|
||||
.1 lda SEQ.NORM,y
|
||||
|
||||
.2 jsr SCRN.ToLineBuf
|
||||
iny
|
||||
lda SEQ.NORM,y
|
||||
bne .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
DLG.InvBar phy
|
||||
jsr SCRN.LineBufInitInv
|
||||
|
||||
ply
|
||||
phy
|
||||
lda (ZPPTR1),y
|
||||
tay
|
||||
lda (ZPPTR1),y
|
||||
tax
|
||||
|
||||
.1 iny
|
||||
lda (ZPPTR1),y
|
||||
jsr SCRN.ToLineBuf
|
||||
dex
|
||||
bne .1
|
||||
|
||||
ldy #2 W
|
||||
lda (ZPPTR1),y
|
||||
ply
|
||||
pha
|
||||
lda (ZPPTR1),y
|
||||
tay
|
||||
pla
|
||||
sec
|
||||
sbc (ZPPTR1),y
|
||||
tax
|
||||
|
||||
lda #C.SPACE
|
||||
|
||||
.2 jsr SCRN.ToLineBuf
|
||||
dex
|
||||
bne .2
|
||||
|
||||
ldy #0
|
||||
.3 lda SEQ.NORM,y
|
||||
beq .4
|
||||
jsr SCRN.ToLineBuf
|
||||
iny
|
||||
bra .3
|
||||
|
||||
.4 jsr SCRN.VBarToLineBuf
|
||||
|
||||
jmp SCRN.LineBufOut
|
||||
*--------------------------------------
|
||||
SCRN.VBarToLineBuf
|
||||
lda #C.SO
|
||||
jsr SCRN.ToLineBuf
|
||||
lda #'x'
|
||||
jsr SCRN.ToLineBuf
|
||||
lda #C.SI
|
||||
*--------------------------------------
|
||||
SCRN.ToLineBuf sta (LineBufPtr)
|
||||
inc LineBufPtr
|
||||
bne .8
|
||||
inc LineBufPtr+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SCRN.LineBufOut lda #0
|
||||
jsr SCRN.ToLineBuf
|
||||
|
||||
>PUSHBI 0
|
||||
>LDYA.G LineBufBase
|
||||
>SYSCALL printf
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/EDIT.S.SCRN
|
||||
LOAD USR/SRC/BIN/EDIT.S
|
||||
|
@ -18,8 +18,7 @@ TABMASK .EQ 3
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
BufPtr .BS 2
|
||||
BufPtrDst .EQ *
|
||||
BufPtrBackup .BS 2
|
||||
BufPtrDst .BS 2
|
||||
ClipboardPtr .BS 2
|
||||
LineBufPtr .BS 2
|
||||
|
||||
@ -75,6 +74,7 @@ L.SEQ.SCROLLRGN .DA SEQ.SCROLLRGN
|
||||
L.SEQ.RESET .DA SEQ.RESET
|
||||
L.SEQ.SCROLLUP .DA SEQ.SCROLLUP
|
||||
L.SEQ.SCROLLDN .DA SEQ.SCROLLDN
|
||||
L.SEQ.SCROLLCURUP .DA SEQ.SCROLLCURUP
|
||||
L.SEQ.SCROLLCURDN .DA SEQ.SCROLLCURDN
|
||||
L.SEQ.CEOL .DA SEQ.CEOL
|
||||
L.SEQ.BAR .DA SEQ.BAR
|
||||
@ -132,6 +132,7 @@ J.CTRL .DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
.DA Ctrl.Invalid
|
||||
L.DLG.SAVE .DA DLG.SAVE
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
@ -152,7 +153,7 @@ CS.RUN >PUSHBI 0
|
||||
>LDYAI 510+5+5+4+1 potentially 255*\\ NORM,INV,CEOL & \0
|
||||
>SYSCALL Getmem
|
||||
bcs CS.RUN.RTS
|
||||
>STYA LineBufPtr
|
||||
>STYA.G LineBufBase
|
||||
txa
|
||||
>STA.G hLineBuffer
|
||||
|
||||
@ -270,12 +271,12 @@ CharIn.Esc >STZ.G bEscMode
|
||||
adc #EscBuffer
|
||||
tay
|
||||
lda (pData),y
|
||||
ldx EscChars
|
||||
ldx #EscChars.Cnt-1
|
||||
|
||||
.1 cmp EscChars,x
|
||||
beq .2
|
||||
dex
|
||||
bne .1
|
||||
bpl .1
|
||||
|
||||
cmp #'R' Response to cursor position query?
|
||||
beq .3
|
||||
@ -368,6 +369,7 @@ SEQ.INIT .AS "\ec"
|
||||
SEQ.SCROLLRGN .AZ "\e[?7l\e[2;%dr"
|
||||
SEQ.SCROLLUP .AZ "\eD"
|
||||
SEQ.SCROLLDN .AZ "\eM"
|
||||
SEQ.SCROLLCURUP .AZ "\e[?7l\e[%d;%dr\eD"
|
||||
SEQ.SCROLLCURDN .AZ "\e[?7l\e[%d;%dr\eM"
|
||||
SEQ.BAR .AS "\e[40;37m\e[7m%s" +SEQ.NORM
|
||||
SEQ.NORM .AZ "\e[0m"
|
||||
@ -401,7 +403,7 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
|
||||
>PSTR " Ctrl-P : Page down"
|
||||
>PSTR " Ctrl-Q : Quit"
|
||||
>PSTR " Ctrl-R : * Replace found string with..."
|
||||
>PSTR " Ctrl-S : Save file to disk..."
|
||||
>PSTR " Ctrl-S : Save file..."
|
||||
>PSTR " Ctrl-T : Go to top of file"
|
||||
>PSTR " Ctrl-V : Past clipboard at cursor position"
|
||||
>PSTR " Ctrl-W : Erase current line"
|
||||
@ -411,8 +413,26 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
MSG.NEWFILE .AZ "newfile"
|
||||
EscChars >PSTR "DBAC"
|
||||
EscAscii .HS 04080A0B15
|
||||
EscChars .AS "DBAC"
|
||||
EscChars.Cnt .EQ *-EscChars
|
||||
EscAscii .HS 080A0B15
|
||||
*--------------------------------------
|
||||
DLG.SAVE .DA #0 X
|
||||
.DA #0 Y
|
||||
.DA #70 W
|
||||
.DA #8 H
|
||||
.DA #DLG.SAVE.T-DLG.SAVE Title
|
||||
.DA #DLG.SAVE.S-DLG.SAVE Status
|
||||
.DA #1,#4,#3 LABEL,x,y
|
||||
>PSTR "Filename :"
|
||||
.DA #2,#4,#4,#64,#hFileName TEXTBOX,x,y,MAXCHAR,hMem
|
||||
.DA #1,#4,#6 LABEL,x,y
|
||||
>PSTR "Filetype :"
|
||||
.DA #3
|
||||
.DA L.MSG.FILETYPES
|
||||
.DA #0
|
||||
DLG.SAVE.T >PSTR "Save As..." Title
|
||||
DLG.SAVE.S >PSTR "CR:Save, Ctrl-T:Change Type, Ctrl-C:Cancel"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
@ -429,6 +449,7 @@ hFileName .BS 1
|
||||
hFind .BS 1
|
||||
hReplace .BS 1
|
||||
hLineBuffer .BS 1
|
||||
LineBufBase .BS 2
|
||||
BufBase .BS 2
|
||||
hBuffer .BS 1
|
||||
hBufferBackup .BS 1
|
||||
|
Loading…
Reference in New Issue
Block a user