From 9830a906a57d05bd970c9b54b259b1c2fd173c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 12 Nov 2019 17:39:22 +0100 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/EDIT.S.BUF.txt | 2 +- BIN/EDIT.S.CTRL.txt | 2 +- BIN/EDIT.S.FILE.txt | 209 ++++++++++++++++++++++++--------------- BIN/EDIT.S.SCRN.txt | 49 ++++----- BIN/EDIT.S.txt | 34 ++++--- SHARED/X.ERRORS.S.txt | 30 +++--- 7 files changed, 195 insertions(+), 131 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 94162faf762a8ff7551b4e433a24cf0781b77c44..e9f8871355aee4b8ce3d7b4e27baa3b4fa84b021 100644 GIT binary patch delta 22812 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 delta 15574 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 MFsI@4V?@vXKdU(oR{#J2 diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 2cf657c3..a6638802 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -351,7 +351,7 @@ BUF.ComputeCOffset phy save line length >LDA.G FileX - clc +* clc adc BUF.LOffset sta BUF.COffset diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index 04e32428..1dced0fe 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -512,7 +512,7 @@ Prompt.Save cmp #3 Ctrl-C .11 pla >STA.G hFileName >STZ.G PromptMode - jsr SaveFile + jsr FILE.Save bcc .81 .12 jsr SCRN.LineBufInit diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt index 59d2f4a6..64534909 100644 --- a/BIN/EDIT.S.FILE.txt +++ b/BIN/EDIT.S.FILE.txt @@ -2,114 +2,134 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -NewFile stz FileLen - stz FileLen+1 - - clc - rts -*-------------------------------------- -LoadFile >PUSHEA.G STATBUF - >LDA.G hFileName - >SYSCALL GetMemPtr - >SYSCALL stat - bcs NewFile - - >LDA.G STATBUF+S.STAT.P.TYPE - cmp #S.FI.T.TXT - beq LoadFile.TXT - cmp #$FA S-C/ASM? - bne .91 - - jmp LoadFile.ASM - -.91 lda #MLI.E.INCFF - sec - rts - - >LDA.G STATBUF+S.STAT.SIZE+3 - dey - ora (pData),y - bne .90 - - dey - lda (pData),y Size HI - adc #4 1K more - - ldy #0 Size LO +FILE.New >LDYAI 4096 >STYA BufLen - >SYSCALL GetMem + bcs .9 + >STYA BufPtr txa - >STA.G hBuffer - - ldy #0 - - ldx #0 + >STA.G hBuffer FileLen already set to 0 -.1 lda (BufPtrBackup),y - beq .8 - - cpx #C.CR - bne .2 + lda #0 + sta (BufPtr) - cmp #C.LF - beq .5 + stz FileLen + stz FileLen+1 -.2 cmp #C.SPACE - bcs .3 +.9 rts +*-------------------------------------- +FILE.Load jsr BUF.ResetSel - cmp #C.CR - bne .5 + >PUSHEA.G STATBUF + >LDA.G hFileName + >SYSCALL GetMemPtr + >SYSCALL stat + bcs FILE.New + + >LDA.G STATBUF+S.STAT.P.TYPE + cmp #S.FI.T.TXT + beq FILE.Load.TXT + cmp #$FA S-C/ASM? + bne .9 -.3 sta (BufPtr) - inc BufPtr - bne .4 - inc BufPtr+1 -.4 inc FileLen - bne .5 - inc FileLen+1 - -.5 tax set previous char - iny - bne .1 - - inc BufPtrBackup+1 - bra .1 - -.8 sta (BufPtr) - clc -.9 jmp BUF.ResetSel - -.90 lda #E.FTB + jmp FILE.Load.ASM + +.9 lda #MLI.E.INCFF sec rts *-------------------------------------- -LoadFile.TXT stz FileLen +FILE.Load.TXT stz FileLen stz FileLen+1 - >PUSHWZ Aux type + stz TmpByte hLineBuffer + stz TmpIndex hFile + + >STZ.G FileType + + jsr FILE.GetBuffer + bcs .99 + + >LDYA 256 + >SYSCALL GetMem + bcs .99 + + >STYA ZPPTR1 + stx TmpByte + + >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL fopen - bcs .9 +.99 bcs .9 - txa - >STA.G hFile + sta TmpIndex + +.1 >PUSHWI 254 + >PUSHW ZPPTR1 + lda TmpIndex + >SYSCALL fread + bcs .8 + + lda #0 + sta (ZPPTR1),y Y = line len + lda (ZPPTR1) + + clc + eor #C.LF + bne .2 + lda #2 + >STA.G FileType + sec -.9 rts +.2 lda ZPPTR1 + adc #0 + tay + + lda ZPPTR1+1 + adc #0 + >PUSHYA + >LDYA BufPtr + >SYSCALL strcat + bra .1 + +.8 cmp #MLI.E.EOF + bne .9 + + >LDYA BufPtr + >SYSCALL strlen + >STYA FileLen + + clc +.9 jmp FILE.Load.Cleanup *-------------------------------------- -LoadFile.ASM +FILE.Load.ASM lda #MLI.E.INCFF sec rts *-------------------------------------- -SaveFile >PUSHWZ Aux type +FILE.Load.Cleanup + php + pha + lda TmpByte + beq .1 + >SYSCALL freemem + +.1 lda TmpIndex + beq .2 + + >SYSCALL fclose + +.2 pla + plp + rts +*-------------------------------------- +FILE.Save >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.CREATE+O.WRONLY >LDA.G hFileName @@ -144,6 +164,37 @@ SaveFile >PUSHWZ Aux type jsr SCRN.UpdateTopBar .9 rts *-------------------------------------- +FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 + dey + ora (pData),y + bne .9 + + dey + lda (pData),y Size HI + cmp #16 + bcs .1 + + lda #13 Min = 3k + +.1 adc #3 1K more + + ldy #0 Size LO + >STYA BufLen + >SYSCALL GetMem + bcs .99 + >STYA BufPtr + + txa + >STA.G hBuffer + + lda #0 + sta (BufPtr) + + rts + +.9 lda #E.FTB + sec +.99 rts *-------------------------------------- MAN SAVE USR/SRC/BIN/EDIT.S.FILE diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index 8d6fa725..6d2746a9 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -44,6 +44,10 @@ SCRN.UpdateTopBar >LDYA L.MSG.GOTOXY >SYSCALL printf bcs .9 + + >LDA.G FileType + tax + >PUSHW L.MSG.FILETYPES,x >LDA.G hFileName beq .1 @@ -54,7 +58,7 @@ SCRN.UpdateTopBar .1 >LDYA L.MSG.NEWFILE .2 >PUSHYA - >PUSHBI 2 + >PUSHBI 4 >PUSHW L.MSG.TOPBAR >LDYA ZPPTR1 >SYSCALL sprintf @@ -340,7 +344,6 @@ SCRN.LineBufOutBar >SYSCALL printf bcs .9 - jmp SCRN.GotoCurXCurY .9 rts *-------------------------------------- SCRN.CursorAdjust @@ -396,7 +399,10 @@ SCRN.UpdateViewPort ror bRepaint bra .1 -.2 >LDA.G ScreenX +.2 bit bRepaint + bmi .30 + +.21 >LDA.G ScreenX >ADC.G ScreenW dec >CMP.G FileX @@ -405,16 +411,17 @@ SCRN.UpdateViewPort >INC.G ScreenX sec ror bRepaint - bra .2 + bra .21 -.3 ldy #FileY+1 - lda (pData),y +.3 bit bRepaint +.30 bmi .6 + +.31 >LDA.G FileY+1 tax dey lda (pData),y A,X = FileY - ldy #ScreenY - cmp (pData),y + >CMP.G ScreenY iny txa sbc (pData),y @@ -422,26 +429,27 @@ SCRN.UpdateViewPort >DECW.G ScreenY move viewport up one line.... bit bRepaint - bmi .3 skip scroll, will be repainted later + bmi .31 skip scroll, will be repainted later jsr SCRN.scrollDn ...and move content one line down - bcc .3 + bcc .31 rts -.4 ldy #ScreenY+1 - lda (pData),y +.4 bit bRepaint + bmi .6 + +.41 >LDA.G ScreenY+1 tax dey lda (pData),y - >ADC.G ViewPortHm1 + >ADC.G ViewPortHm2 bcc .5 inx .5 ldy #FileY A,X = screen bottom - clc - sbc (pData),y + cmp (pData),y txa iny FileY > screen bottom ? sbc (pData),y @@ -449,11 +457,10 @@ SCRN.UpdateViewPort >INCW.G ScreenY move viewport down one line.... bit bRepaint - bmi .4 + bmi .41 jsr SCRN.scrollUp ...and move content one line up - bcc .4 - + bcc .41 .9 rts .6 >LDA.G FileX @@ -489,8 +496,7 @@ SCRN.scrollUp >LDA.G CurX >SYSCALL printf bcs .9 - ldy #ScreenY+1 - lda (pData),y + >LDA.G ScreenY+1 tax dey lda (pData),y @@ -520,8 +526,7 @@ SCRN.scrollDn >LDA.G CurX >SYSCALL printf bcs .9 - ldy #ScreenY+1 - lda (pData),y + >LDA.G ScreenY+1 tax dey lda (pData),y diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 82979731..aa9f2246 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -3,11 +3,12 @@ NEW .LIST OFF .OP 65C02 .OR $2000 - .TF BIN/EDIT + .TF BIN/EDIT2 *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/MLI.I + .INB INC/MLI.E.I *-------------------------------------- .DUMMY .OR ZPBIN @@ -26,6 +27,7 @@ FileLen .BS 2 BufLen .BS 2 SelLen .BS 2 TmpLen .BS 2 + TmpIndex .BS 2 ZPPTR1 .BS 2 @@ -73,6 +75,9 @@ L.SEQ.SCROLLDN .DA SEQ.SCROLLDN 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 .DA MSG.STATUSBAR.H .DA MSG.STATUSBAR.F @@ -123,12 +128,12 @@ J.CTRL .DA Ctrl.Invalid .DA 0 *-------------------------------------- CS.INIT clc - rts +CS.INIT.RTS rts *-------------------------------------- CS.RUN >PUSHBI 0 >LDYA L.SEQ.DETECT >SYSCALL printf Send Query for term W & H - bcs CS.RUN.RTS + bcs CS.INIT.RTS .1 >SYSCALL GetChar bcs CS.RUN.RTS @@ -150,19 +155,15 @@ CS.RUN >PUSHBI 0 >SYSCALL RealPath txa >STA.G hFileName - jsr LoadFile + jsr FILE.Load bcc .3 if CS, Failed to load file, keep name, but new file.... cmp #E.OOM beq CS.RUN.RTS -.2 >LDYAI 1 buffer size = 0 (+ 1 for ending 0) - >SYSCALL GetMem0 +.2 jsr FILE.New bcs CS.RUN.RTS - txa - >STA.G hBuffer FileLen already set to 0 - .3 lda #$ff >STA.G bSaved @@ -317,6 +318,10 @@ CharIn.Esc >STZ.G bEscMode >STA.G ViewPortHm1 Remove 1 more to store offsert to last line of viewport + dec + + >STA.G ViewPortHm2 + ply stz TmpByte @@ -364,7 +369,10 @@ SEQ.NORM .AZ "\e[0m" SEQ.INV .AZ "\e[7m" SEQ.EDIT .AS "\e[93;44m" +SEQ.CEOL SEQ.CEOL .AZ "\e[K" -MSG.TOPBAR .AZ "A2osX Edit:%s" +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" @@ -397,7 +405,7 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)" >PSTR " Ctrl-Z : Erase char under cursor" .HS 00 *-------------------------------------- -MSG.NEWFILE .AZ "(new file)" +MSG.NEWFILE .AZ "newfile" EscChars >PSTR "DBAC" EscAscii .HS 04080A0B15 *-------------------------------------- @@ -409,10 +417,9 @@ PromptBufPtr .BS 1 PromptMode .BS 1 bExit .BS 1 bSaved .BS 1 -bCRLF .BS 1 bEscMode .BS 1 EscBuffer .BS 16 -hFile .BS 1 +FileType .BS 1 hFileName .BS 1 hFind .BS 1 hReplace .BS 1 @@ -427,6 +434,7 @@ ScreenW .BS 1 ScreenH .BS 1 ViewPortH .BS 1 ViewPortHm1 .BS 1 +ViewPortHm2 .BS 1 FileX .BS 1 FileY .BS 2 ScreenX .BS 1 diff --git a/SHARED/X.ERRORS.S.txt b/SHARED/X.ERRORS.S.txt index 1754452f..c6f39396 100644 --- a/SHARED/X.ERRORS.S.txt +++ b/SHARED/X.ERRORS.S.txt @@ -47,23 +47,23 @@ ERR.Count .EQ *-ERR.Codes *-------------------------------------- ERR.Messages >PSTR "I/O Error" >PSTR "No Device" - >PSTR "Disk Write-Protected" + >PSTR "Disk Write-Prot." >PSTR "Disk Switched" - >PSTR "Device Is Offline" + >PSTR "Offline Device" >PSTR "Invalid Path" >PSTR "Path Not Found" - >PSTR "Volume Not Found" + >PSTR "Vol Not Found" >PSTR "File Not Found" - >PSTR "Duplicate Filename" - >PSTR "Volume Is Full" - >PSTR "Directory Is Full" - >PSTR "Unsupported Storage Type" + >PSTR "Dup. Filename" + >PSTR "Vol Is Full" + >PSTR "Dir Is Full" + >PSTR "Unsupp. Storage" >PSTR "End Of File" - >PSTR "File Access Error, File Locked" - >PSTR "File Already Open" + >PSTR "File Locked" + >PSTR "File Opened" *-------------------------------------- >PSTR "Out Of Memory" - >PSTR "Out Of Memory Handle" + >PSTR "Out Of Handle" >PSTR "Invalid Handle" >PSTR "Buffer Overflow" >PSTR "Bad Path" @@ -71,20 +71,20 @@ ERR.Messages >PSTR "I/O Error" >PSTR "No Such Process" >PSTR "Syntax Error" >PSTR "Env Is Full" - >PSTR "Invalid BIN format" + >PSTR "Invalid BIN" >PSTR "File Too Big" >PSTR "User Interrupt" *-------------------------------------- - >PSTR "Command Syntax Error" - >PSTR "Expression Syntax Error" + >PSTR "Cmd Syntax Error" + >PSTR "Exp. Syntax Error" >PSTR "Stack Error" >PSTR "Stack Overflow" >PSTR "LOOP Without WHILE" >PSTR "NEXT Without FOR" >PSTR "FI/ELSE Without IF" >PSTR "Bad File Type" - >PSTR "Undefined Function" - >PSTR "Unexpected EOF" + >PSTR "Undef. Function" + >PSTR "Unexp. EOF" *-------------------------------------- >PSTR "Unknown Error" *--------------------------------------