diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2ead028c..95bfdff7 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CUT.S.txt b/BIN/CUT.S.txt index 16dba6b6..e8316ce8 100644 --- a/BIN/CUT.S.txt +++ b/BIN/CUT.S.txt @@ -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 diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 99baf276..8fe7a62b 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -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 *-------------------------------------- diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 58900f28..8dbed0c7 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -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 diff --git a/BIN/EDIT.S.DLG.txt b/BIN/EDIT.S.DLG.txt index 5c3e9e33..8c3c5e26 100644 --- a/BIN/EDIT.S.DLG.txt +++ b/BIN/EDIT.S.DLG.txt @@ -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 *-------------------------------------- diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt index f79f1e44..3dd12fd1 100644 --- a/BIN/EDIT.S.FILE.txt +++ b/BIN/EDIT.S.FILE.txt @@ -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 diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 3b433b8b..3d804e03 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -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 diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index ca8d3c33..050e88e4 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -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