Kernel 0.93 #141

This commit is contained in:
Rémy GIBERT 2019-12-16 14:14:11 +01:00
parent f796f9a665
commit cf5348bf1e
8 changed files with 176 additions and 87 deletions

Binary file not shown.

View File

@ -223,29 +223,36 @@ CS.RUN.OUT.MN ldy #0
ldx StartChar
beq .2
.1 lda (ZPBufPtr),y
.1 dex
beq .2
lda (ZPBufPtr),y
beq CS.RUN.PRINTCR
iny
dex
bne .1
bra .1
.2 lda (ZPBufPtr),y
.2 lda EndChar
beq .8
.3 lda (ZPBufPtr),y
beq .8
cpy EndChar
beq .3
beq .4
iny
bra .2
bra .3
.3 lda #0
.4 lda #0
sta (ZPBufPtr),y
.8 ldy StartChar
beq .80
dey
beq .80
jsr CS.RUN.AddYToBufPtr
>LDYA ZPBufPtr
.80 >LDYA ZPBufPtr
>SYSCALL puts
rts

View File

@ -24,9 +24,14 @@ BUF.InsertA sta TmpByte
sta (BufPtr)
inc FileLen
bne .8
bne .3
inc FileLen+1
.3 lda #$ff
>STA.G bUpdateStatus
jmp SCRN.Unsaved
.8 clc
.9 rts
*--------------------------------------
@ -73,10 +78,15 @@ BUF.InsertTAB >LDA.G FileX
clc
adc TmpByte
sta FileLen
bcc .8
bcc .5
inc FileLen+1
.5 lda #$ff
>STA.G bUpdateStatus
jmp SCRN.Unsaved
.8 clc
.9 rts
*--------------------------------------

View File

@ -51,8 +51,7 @@ Ctrl.A >LDYA L.MSG.HELP
stz TmpByte
.1
ldx #0
.1 ldx #0
ldy TmpByte
jsr SCRN.GotoXY
bcs .9
@ -79,12 +78,19 @@ Ctrl.A >LDYA L.MSG.HELP
.8 jsr SCRN.ResetStatusBar
>PUSHBI 0
>LDYA L.MSG.STATUSBAR.H
>SYSCALL printf
>PUSHW L.MSG.STATUSBAR.H
jsr SCRN.LineBufSprintf
bcs .9
jsr SCRN.LineBufOut
bcs .9
>SYSCALL getchar
bcs .9
lda #$ff
>STA.G bUpdateStatus
jmp SCRN.UpDateMain
.9 rts
@ -175,7 +181,8 @@ Ctrl.TAB jsr BUF.InsertTAB
jsr SCRN.UpdateCurrentLine
bcs .9
jmp SCRN.UpdateStatusBar
lda #$ff
>STA.G bUpdateStatus
.8 clc
>ADC.G ScreenX
@ -412,13 +419,45 @@ Ctrl.N
Ctrl.R clc
rts
*--------------------------------------
Ctrl.Q lda #$FF
Ctrl.Q >LDA.G bUnSaved
beq .8
jsr SCRN.ResetStatusBar
>PUSHBI 0
>PUSHW L.MSG.STATUSBAR.U
jsr SCRN.LineBufSprintf
bcs .9
jsr SCRN.LineBufOut
bcs .9
.1 >SYSCALL getchar
bcs .9
cmp #'a
bcc .2
cmp #'z'+1
bcs .2
eor #$20
.2 cmp #'Y'
beq .8
cmp #'N'
beq .80
bra .1
.8 lda #$ff
>STA.G bExit
>LDA.G bSaved
beq Ctrl.S
.80 lda #$ff
>STA.G bUpdateStatus
clc
rts
.9 rts
*--------------------------------------
Ctrl.S >LDYA L.DLG.SAVE
jsr DLG.Open
@ -459,7 +498,9 @@ Ctrl.FS jsr BUF.GetLine
*--------------------------------------
Ctrl.V jsr BUF.InsertClipboard
bcs .9
jmp SCRN.UpdateMain
jsr SCRN.Unsaved
lda #$ff
>STA.G bUpdateStatus
.9 rts
*--------------------------------------
@ -497,7 +538,11 @@ Ctrl.X jsr BUF.SelToClipboard
Ctrl.D jsr BUF.DelSel
bcs Ctrl.W.RTS
jsr SCRN.CursorAdjust
jmp SCRN.UpdateMain
jsr SCRN.UpdateMain
jsr SCRN.Unsaved
lda #$ff
>STA.G bUpdateStatus
rts
*--------------------------------------
Ctrl.Z jsr BUF.ComputeCOffset
@ -551,8 +596,11 @@ Ctrl.Z jsr BUF.ComputeCOffset
.8 jsr SCRN.UpdateCurrentLine
bcs .9
.80 jsr SCRN.GotoCurXCurY
jmp SCRN.UpdateStatusBar
.80 jsr SCRN.Unsaved
jsr SCRN.GotoCurXCurY
lda #$ff
>STA.G bUpdateStatus
rts
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.CTRL

View File

@ -172,7 +172,7 @@ DLG.Close ldy #S.DLG.Y
sta TmpByte
.1 >LDA.G ScreenY
>LDA.G ScreenY
clc
ldy #S.DLG.Y
adc (ZPPTR1),y
@ -339,8 +339,7 @@ DLG.CTRL.Draw.OL
.4 lda #C.SPACE
jsr SCRN.ToLineBuf
.8 jsr SCRN.LineBufOut
* >DEBUG
.8 jmp SCRN.LineBufOut
.9 rts
*--------------------------------------

View File

@ -2,7 +2,19 @@ NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
FILE.New >LDYAI 4096
FILE.New jsr BUF.ResetSel
lda #$ff
>STA.G bUpdateStatus
>LDYA L.MSG.NEWFILE
FILE.New.1 >SYSCALL RealPath
bcs .9
txa
>STA.G hFileName
>LDYAI 4096
>STYA BufLen
>SYSCALL GetMem
bcs .9
@ -19,24 +31,23 @@ FILE.New >LDYAI 4096
stz FileLen
stz FileLen+1
>LDYA L.MSG.NEWFILE
>SYSCALL RealPath
bcs .9
txa
>STA.G hFileName
.9 rts
*--------------------------------------
FILE.Load jsr BUF.ResetSel
lda #$ff
>STA.G bUpdateStatus
>PUSHEA.G STATBUF
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL stat
bcs FILE.New
bcc .1
>LDA.G hFileName
>SYSCALL GetMemPtr
bra FILE.New.1
>LDA.G STATBUF+S.STAT.P.TYPE
.1 >LDA.G STATBUF+S.STAT.P.TYPE
cmp #S.FI.T.TXT
beq FILE.Load.TXT
cmp #$FA S-C/ASM?
@ -141,7 +152,7 @@ FILE.Load.ASM
*--------------------------------------
FILE.Save >LDYAI 256
>SYSCALL GetMem
bcs .9
bcs FILE.Save.9
>STYA ZPPTR1
stx TmpByte
@ -150,12 +161,13 @@ FILE.Save >LDYAI 256
tax
jmp (J.SAVE,x)
.9 rts
FILE.Save.9 rts
*--------------------------------------
FILE.Save.CR clc
.HS B0 BCS
FILE.Save.CRLF sec
ror TmpIndex+1
stz TmpIndex hFile
>PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
@ -163,7 +175,7 @@ FILE.Save.CRLF sec
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL FOpen
bcs .9
bcs FILE.Save.9
sta TmpIndex
@ -212,11 +224,32 @@ FILE.Save.CRLF sec
bra .1
.8 lda #$80
>STA.G bSaved
.8 jsr FILE.Close
>STZ.G bUnSaved
jsr SCRN.UpdateTopBar
clc
.9 jmp FILE.Close
jsr SCRN.ResetStatusBar
>LDA.G hFileName
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 2
>PUSHW L.MSG.STATUSBAR.S
bra .90
.9 jsr FILE.Close
>PUSHA ERROR CODE
jsr SCRN.ResetStatusBar
>PUSHBI 1
>PUSHW L.MSG.STATUSBAR.E
.90 jsr SCRN.LineBufSprintf
jmp SCRN.LineBufOut
*--------------------------------------
FILE.Save.ASM
clc

View File

@ -38,6 +38,16 @@ SCRN.ResetScrollRgn
>SYSCALL printf
rts
*--------------------------------------
SCRN.Unsaved >LDA.G bUnSaved
bne .8
dec
sta (pData),y
bra SCRN.UpdateTopBar
.8 clc
rts
*--------------------------------------
SCRN.UpdateTopBar
jsr SCRN.LineBufInitBar
@ -71,11 +81,11 @@ SCRN.UpdateTopBar
>PUSHW L.MSG.TOPBAR
jsr SCRN.LineBufSprintf
bcs .9
>LDA.G bUnSaved
beq .8
>LDA.G bSaved
bne .8
lda #'!'
lda #'*'
jsr SCRN.ToLineBuf
.8 jmp SCRN.LineBufOut
@ -176,10 +186,7 @@ SCRN.UpdateViewPort
.7 jsr BUF.ComputeCOffset
jsr SCRN.GotoCurXCurY
bcs .9
jmp SCRN.UpdateStatusBar
jmp SCRN.GotoCurXCurY
*--------------------------------------
SCRN.UpdateMain >LDA.G ScreenY
sta TmpIndex
@ -239,11 +246,8 @@ SCRN.UpdateMain.1
dec TmpCount
bne .5
.8 jsr SCRN.GotoCurXCurY
bcs SCRN.UpdateMain.9
>DEBUG
jmp SCRN.UpdateStatusBar
.8 jsr BUF.ComputeCOffset
jmp SCRN.GotoCurXCurY
SCRN.UpdateMain.9
rts
*--------------------------------------
@ -364,12 +368,6 @@ SCRN.ToggleSel.RTS
rts
*--------------------------------------
SCRN.UpdateStatusBar
lda #$ff
>STA.G bUpdateStatus
clc
rts
*--------------------------------------
SCRN.DrawStatusBar
jsr SCRN.ResetStatusBar
>LDA.G FileY
@ -400,15 +398,12 @@ SCRN.DrawStatusBar
jsr SCRN.SEQS.ToLineBuf
jmp SCRN.LineBufOut
.9 rts
*--------------------------------------
SCRN.ResetStatusBar
jsr SCRN.LineBufInitBar
ldx #SEQ.CURSAVE-SEQS
jsr SCRN.SEQS.ToLineBuf
>PUSHBI 1
>PUSHB.G ScreenH
>PUSHBI 2

View File

@ -73,17 +73,15 @@ 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
L.MSG.TOPBAR .DA MSG.TOPBAR
L.MSG.FILETYPES .DA MSG.TXTCR
.DA MSG.TXTCRLF
.DA MSG.TXTASM
L.MSG.STATUSBAR .DA MSG.STATUSBAR
L.MSG.STATUSBAR.H .DA MSG.STATUSBAR.H
.DA MSG.STATUSBAR.F
.DA MSG.STATUSBAR.R
.DA MSG.STATUSBAR.S
.DA MSG.STATUSBAR.E
L.MSG.STATUSBAR.U .DA MSG.STATUSBAR.U
L.MSG.STATUSBAR.S .DA MSG.STATUSBAR.S
L.MSG.STATUSBAR.E .DA MSG.STATUSBAR.E
L.MSG.NEWFILE .DA MSG.NEWFILE
L.MSG.GOTOXY .DA MSG.GOTOXY
L.MSG.HELPLINE .DA MSG.HELPLINE
@ -173,6 +171,7 @@ CS.RUN >PUSHBI 0
bcs .2 No arg, new file....
>SYSCALL RealPath
bcs CS.INIT.RTS
txa
>STA.G hFileName
jsr FILE.Load
@ -184,10 +183,7 @@ CS.RUN >PUSHBI 0
.2 jsr FILE.New
bcs CS.RUN.RTS
.3 lda #$ff
>STA.G bSaved
jsr SCRN.Init
.3 jsr SCRN.Init
bcs CS.RUN.RTS
>LDYAI 65
@ -204,6 +200,7 @@ CS.RUN >PUSHBI 0
CS.RUN.LOOP >SYSCALL GetChar
bcs CS.RUN.RTS I/O error
jsr CharIn
bcs .9
@ -222,12 +219,14 @@ CS.RUN.RTS rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
asl
bpl .9
>LDA.G bUpdateStatus
bpl .9
jsr SCRN.DrawStatusBar
jsr SCRN.UpdateStatusBar
>STZ.G bUpdateStatus
@ -253,7 +252,6 @@ CS.QUIT ldy #hLineBuffer
jsr .8
ldy #hReplace
jsr .8
.8 lda (pData),y
beq .9
@ -424,7 +422,7 @@ CharIn.Esc >STZ.G bEscMode
CS.END
*--------------------------------------
SEQS .EQ *
SEQ.BAR .AZ "\e[37;40m\e[7m"
SEQ.BAR .AZ "\e7\e[37;40m\e[7m"
SEQ.DLG .AS "\e[30;46m"
.DA #C.SO,#'x',#C.SI
.DA #0
@ -454,11 +452,10 @@ MSG.TOPBAR .AZ "A2osX Edit:%s %s"
MSG.TXTCR .AZ "TXT/CR"
MSG.TXTCRLF .AZ "TXT/CRLF"
MSG.TXTASM .AZ "S-C/ASM"
MSG.STATUSBAR .AZ "Press Ctrl-A For Help Len: %5D Pos: %5D Col: %3d Line: %5D"
MSG.STATUSBAR.H .AZ "Press any key to exit this screen"
MSG.STATUSBAR.F .AZ "Find:%s"
MSG.STATUSBAR.R .AZ "Replace:%s"
MSG.STATUSBAR.S .AZ "Save (Ctrl-C):%s"
MSG.STATUSBAR .AZ "Press Ctrl-A For Help Len: %5D Pos: %5D Col: %3d Line: %5D "
MSG.STATUSBAR.H .AZ "Press any key to exit this screen "
MSG.STATUSBAR.U .AZ "Quit without Saving [Y/N] ? "
MSG.STATUSBAR.S .AZ "%s Saved."
MSG.STATUSBAR.E .AZ "Error:%h"
MSG.GOTOXY .AZ "\e[%d;%dH"
MSG.HELPLINE .AZ "\e[0m\e[93;44m%S\e[K"
@ -609,7 +606,7 @@ DLG.FIND.LEN .EQ *-DLG.FIND
DS.START
bUpdateStatus .BS 1
bExit .BS 1
bSaved .BS 1
bUnSaved .BS 1
bEscMode .BS 1
EscBuffer .BS 16
FileType .BS 1
@ -618,8 +615,8 @@ hFind .BS 1
hReplace .BS 1
hLineBuffer .BS 1
LineBufBase .BS 2
BufBase .BS 2
hBuffer .BS 1
BufBase .BS 2
hBufferBackup .BS 1
hClipBoard .BS 1
ClipBoardLen .BS 2