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 ldx StartChar
beq .2 beq .2
.1 lda (ZPBufPtr),y .1 dex
beq .2
lda (ZPBufPtr),y
beq CS.RUN.PRINTCR beq CS.RUN.PRINTCR
iny iny
dex bra .1
bne .1
.2 lda (ZPBufPtr),y .2 lda EndChar
beq .8
.3 lda (ZPBufPtr),y
beq .8 beq .8
cpy EndChar cpy EndChar
beq .3 beq .4
iny iny
bra .2 bra .3
.3 lda #0 .4 lda #0
sta (ZPBufPtr),y sta (ZPBufPtr),y
.8 ldy StartChar .8 ldy StartChar
beq .80
dey
beq .80
jsr CS.RUN.AddYToBufPtr jsr CS.RUN.AddYToBufPtr
>LDYA ZPBufPtr .80 >LDYA ZPBufPtr
>SYSCALL puts >SYSCALL puts
rts rts

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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