From 4d884ee3b70a5200f3d510b7944a63105473dd37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 27 Jun 2021 15:48:04 +0200 Subject: [PATCH] BugFix: All FILEENUM based BINs --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CHGRP.S.txt | 5 +-- BIN/CHOWN.S.txt | 46 ++++++++++----------- LIB/LIBCIFS.S.IO.txt | 87 +++++++++++---------------------------- LIB/LIBCIFS.S.txt | 22 +++++++++- SHARED/X.CPMVRM.S.txt | 85 +++++++++++++++++++------------------- SHARED/X.FILEENUM.G.txt | 6 +-- SHARED/X.FILEENUM.S.txt | 10 ++--- 8 files changed, 120 insertions(+), 141 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 0c794e62af58717fc26c3f0727481e0fc66d12c0..636ea54a8c2fbdd290ba01cf1200c429d788da7e 100644 GIT binary patch delta 30955 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 delta 30959 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

*;fN4lnK2|B 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 diff --git a/BIN/CHGRP.S.txt b/BIN/CHGRP.S.txt index ec5876aa..42116f52 100644 --- a/BIN/CHGRP.S.txt +++ b/BIN/CHGRP.S.txt @@ -155,7 +155,7 @@ CS.RUN.LOOP ldy #S.PS.hStdIn .5 cmp /S.STAT.MODE.DIR DIR ? beq .6 - + cmp /S.STAT.MODE.BDEV VOL ? bne .9 @@ -260,7 +260,7 @@ CS.RUN.GetFilePath >SYSCALL GetMemPtr >PUSHYA >SYSCALL StrCpy - + >PUSHW ZPFullPath >PUSHW ZPFileName >SYSCALL StrCat @@ -304,7 +304,6 @@ bRecurse .BS 1 bPause .BS 1 GID .BS 1 -STATBUF .BS S.STAT hSrcFullPath .BS 1 .INB usr/src/shared/x.fileenum.g diff --git a/BIN/CHOWN.S.txt b/BIN/CHOWN.S.txt index 6e59d50b..cadd10b9 100644 --- a/BIN/CHOWN.S.txt +++ b/BIN/CHOWN.S.txt @@ -42,7 +42,7 @@ CS.START cld *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.DIR .DA MSG.DIR @@ -63,7 +63,7 @@ CS.RUN >INC.G ArgIndex cmp #'-' bne .4 - ldy #1 + ldy #1 lda (ZPPtr1),y ldx #OptionVars-OptionList-1 @@ -99,13 +99,13 @@ CS.RUN >INC.G ArgIndex jsr InitSrcDirYA bcc CS.RUN rts - + .8 >LDA.G UID beq .9 - + jsr CS.RUN.GetUID bcs .99 - + >LDA.G hSrcBasePath beq .9 @@ -153,10 +153,10 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.FILE bcc CS.RUN.NEXT rts - + .5 cmp /S.STAT.MODE.DIR DIR ? beq .6 - + cmp /S.STAT.MODE.BDEV VOL ? bne .9 @@ -170,12 +170,12 @@ CS.RUN.LOOP ldy #S.PS.hStdIn *-------------------------------------- CS.RUN.NEXT jsr GetNextEntry bcc CS.RUN.LOOP - + CS.RUN.LEAVE jsr LeaveSubDir bcs .90 jsr BasePath.. - + jmp CS.RUN.NEXT .90 lda #0 @@ -185,28 +185,28 @@ CS.RUN.LEAVE jsr LeaveSubDir CS.RUN.DIR lda (ZPFileName) cmp #'.' bne .1 - + ldy #1 lda (ZPFileName),y beq .8 skip "." - + cmp #'.' bne .1 - + iny lda (ZPFileName),y beq .8 skip ".." - + .1 jsr FilterMatch bcs .8 - + jsr CS.RUN.GetFilePath >PUSHW L.MSG.DIR >PUSHW ZPFullPath >PUSHBI 2 >SYSCALL PrintF bcs .9 - + >PUSHW ZPFullPath >PUSHB.G UID >PUSHBI 255 @@ -214,17 +214,17 @@ CS.RUN.DIR lda (ZPFileName) jsr CS.RUN.CheckErr bcs .9 - + >LDA.G bRecurse bpl .8 - + >LDYA ZPFileName jmp EnterSubDirYA - + .8 clc .9 rts *-------------------------------------- -CS.RUN.FILE +CS.RUN.FILE clc rts *-------------------------------------- @@ -233,9 +233,9 @@ CS.RUN.GetUID >SYSCALL ArgV >PUSHWI 0 >SYSCALL GetPWName bcs .9 - + >STA.G UID - + .9 rts *-------------------------------------- CS.RUN.CheckErr bcs .1 @@ -306,13 +306,11 @@ bRecurse .BS 1 bPause .BS 1 UID .BS 1 -STATBUF .BS S.STAT hSrcFullPath .BS 1 .INB usr/src/shared/x.fileenum.g -DS.END - .ED +DS.END .ED *-------------------------------------- MAN SAVE usr/src/bin/chown.s diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index 5c1a1e32..8747c246 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -16,7 +16,7 @@ CIFS2.FStat >DEBUG *-------------------------------------- CIFS.Stat >STYA pPath resolved path - jsr ClearSocket +* jsr ClearSocket jsr GetCTX @@ -74,7 +74,7 @@ CIFS2.Stat jsr ReadSocket *-------------------------------------- CIFS.MKDir >STYA pPath resolved path - jsr ClearSocket +* jsr ClearSocket jsr GetCtx @@ -158,7 +158,7 @@ CIFS2.OpenDir lda #MLI.E.BADCALL *-------------------------------------- CIFS.ReadDir jsr GetPFD - jsr ClearSocket +* jsr ClearSocket jsr GetCtx @@ -320,41 +320,22 @@ CIFS2.ReadDir.GetBuf sta ZPPtr2 stz ZPPtr2+1 -.1 lda ZPPtr2 +.1 jsr AddSTAT2Ptr2 + + lda #22 clc - adc #S.STAT - sta ZPPtr2 - bcc .2 + jsr AddA2Ptr1 - inc ZPPtr2+1 - -.2 lda ZPPtr1 - clc - adc #22 - sta ZPPtr1 - bcc .3 - - inc ZPPtr1+1 - -.3 lda (ZPPtr1) Filename Len - pha + lda (ZPPtr1) Filename Len sec - adc ZPPtr2 - sta ZPPtr2 - bcc .4 + jsr AddA2Ptr2 - inc ZPPtr2+1 - -.4 pla + lda (ZPPtr1) Filename Len inc sec - adc ZPPtr1 - sta ZPPtr1 - bcc .5 + jsr AddA2Ptr1 - inc ZPPtr1+1 - -.5 dex + dex bne .1 >LDYA ZPPtr2 @@ -384,15 +365,11 @@ CIFS2.ReadDir.FillBuf .1 jsr FileInfo2StatBuf - lda ZPPtr1 + lda #22 sec skip Filename Len - adc #22 - sta ZPPtr1 - bcc .2 + jsr AddA2Ptr1 - inc ZPPtr1+1 - -.2 ldy #$ff + ldy #$ff .3 iny lda (ZPPtr1),y @@ -401,31 +378,17 @@ CIFS2.ReadDir.FillBuf tya sec - adc ZPPtr1 - sta ZPPtr1 - bcc .4 + jsr AddA2Ptr1 - inc ZPPtr1+1 + tya + sec +\0 + jsr AddA2Ptr2 + + jsr StatBuf2Ptr2 -.4 tya - sec - adc ZPPtr2 - sta ZPPtr2 - bcc .5 + jsr AddSTAT2Ptr2 - inc ZPPtr2+1 - -.5 jsr StatBuf2Ptr2 - - lda #S.STAT - clc - adc ZPPtr2 - sta ZPPtr2 - bcc .7 - - inc ZPPtr2+1 - -.7 dex + dex bne .1 lda #0 @@ -957,7 +920,7 @@ CIFS2.FEOF >DEBUG *-------------------------------------- CIFS.Remove >STYA pPath resolved path - jsr ClearSocket +* jsr ClearSocket jsr GetCTX @@ -1011,7 +974,7 @@ CIFS2.Remove jsr ReadSocket *-------------------------------------- CIFS.Rename >STYA pPath resolved src path - jsr ClearSocket +* jsr ClearSocket jsr GetCTX diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index b1098aa6..007d25a7 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -1015,6 +1015,14 @@ FileInfo2StatBufDT rts * TODO : S.TIME.WDAY *-------------------------------------- +AddA2Ptr1 adc ZPPtr1 + sta ZPPtr1 + bcc .8 + + inc ZPPtr1+1 + +.8 rts +*-------------------------------------- StatBuf2Ptr2 ldy #S.STAT-1 .1 lda StatBuf,y @@ -1024,6 +1032,17 @@ StatBuf2Ptr2 ldy #S.STAT-1 rts *-------------------------------------- +AddSTAT2Ptr2 lda #S.STAT + clc +*-------------------------------------- +AddA2Ptr2 adc ZPPtr2 + sta ZPPtr2 + bcc .8 + + inc ZPPtr2+1 + +.8 rts +*-------------------------------------- ClearSocket jsr ReadSocket bcs .8 @@ -1193,7 +1212,8 @@ SMB.ComWrite.H .DA #12 WORD COUNT .BS 2 FID .BS 4 Offset .HS 00000000 Timeout - .HS 0100 WriteMode=WritethroughMode + .HS 0000 +* .HS 0100 WriteMode=WritethroughMode .HS 0000 Remaining .HS 0000 Reserved .BS 2 DataLength diff --git a/SHARED/X.CPMVRM.S.txt b/SHARED/X.CPMVRM.S.txt index 93258726..0068f08e 100644 --- a/SHARED/X.CPMVRM.S.txt +++ b/SHARED/X.CPMVRM.S.txt @@ -37,7 +37,7 @@ CS.START cld *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN - .DA CS.DOEVENT + .DA CS.DOEVENT .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.DIR .DA MSG.DIR @@ -49,7 +49,6 @@ L.MSG.OK .DA MSG.OK L.MSG.ERR .DA MSG.ERR L.MSG.CRLF .DA MSG.CRLF L.MSG.DONE .DA MSG.DONE -L.STAT .DA STAT .DA 0 *-------------------------------------- CS.INIT @@ -66,7 +65,7 @@ CS.INIT lda (ZPPtr1),y ldy #OptionVars-OptionList-1 - + .2 cmp OptionList,y beq .3 @@ -172,17 +171,17 @@ CS.RUN ldy #S.PS.hStdIn rts *-------------------------------------- .1 .DO X.COPY.TO.DEST=1 - + >LDA.G bCopy beq .2 - + jsr CS.RUN.Copy >LDA.G bCopy Copy completed ? bne .8 no.....exit clc - >LDA.G CopyRC + >LDA.G CopyRC .DO X.DELETE.SOURCE=0 beq .20 no copy error @@ -221,7 +220,7 @@ CS.RUN ldy #S.PS.hStdIn jsr CS.RUN.GetPathY >SYSCALL Remove bcs .22 - + jsr CS.RUN.CheckErr Success!!! jsr CS.RUN.IncCount jmp CS.RUN.NEXT @@ -241,10 +240,10 @@ CS.RUN ldy #S.PS.hStdIn lda (ZPFileStat),y and #$70 bne .5 REG file ? - + jsr CS.RUN.BuildFilePath jmp CS.RUN.REG - + .5 cmp /S.STAT.MODE.DIR DIR ? bne .7 @@ -257,7 +256,7 @@ CS.RUN ldy #S.PS.hStdIn jsr CS.RUN.BuildFilePath jmp CS.RUN.DIR - + .7 lda #MLI.E.UNSUPST sec .9 rts @@ -277,7 +276,7 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... jsr GetEntry jsr CS.RUN.BuildFilePath jsr CS.RUN.DIR.MSG - bcs CS.RUN.LEAVE.RTS + bcs CS.RUN.LEAVE.RTS ldy #hSrcFullPath jsr CS.RUN.GetPathY @@ -291,16 +290,16 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... .99 bit bQuiet bmi .91 - + >PUSHW L.MSG.DONE ldy #Count+1 >PUSHB (pData),y dey >PUSHB (pData),y >PUSHBI 2 - + >SYSCALL PrintF - + .91 ldy #RC lda (pData),y get global RC in case of bContinue sec @@ -310,10 +309,10 @@ CS.RUN.LEAVE.RTS CS.RUN.DIR .DO X.COPY.TO.DEST=1 jsr CS.RUN.DIR.MSG bcs CS.RUN.LEAVE.RTS - + jsr CS.RUN.StatDst bcs .3 File Not exists...go create - + bit bNoConfirm bmi .21 no prompt, nothing to create, enter subdir @@ -326,9 +325,9 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 cmp #3 beq .99 abort - + jsr CS.RUN.ToUpper - + cmp #'N' bne .2 @@ -345,7 +344,7 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 .21 clc lda #0 bra .4 - + .3 ldy #hDstFullPath jsr CS.RUN.PushPathY ldy #S.STAT.MODE+1 @@ -355,7 +354,7 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 lda (ZPFileStat),y >PUSHA >SYSCALL MKDir - + .4 jsr CS.RUN.CheckErr bcs CS.RUN.DIR.RTS jsr CS.RUN.IncCount @@ -389,9 +388,9 @@ CS.RUN.REG ldx #2 cmp #3 beq .99 abort - + jsr CS.RUN.ToUpper - + cmp #'N' bne .11 @@ -408,7 +407,7 @@ CS.RUN.REG ldx #2 * sec ror bNoConfirm -.12 jsr GetEntry get back current entry corrupted by SLEEP +.12 jsr GetEntry get back current entry corrupted by SLEEP .2 .DO X.DELETE.SOURCE=1 mv file, check if srcbase=dstbase ldy #hSrcBasePath @@ -508,7 +507,7 @@ CS.RUN.Rename ldy #hSrcFullPath .9 rts .FIN - .FIN + .FIN *-------------------------------------- .DO X.COPY.TO.DEST=1 CS.RUN.CopyStart @@ -516,7 +515,7 @@ CS.RUN.CopyStart >STA.G hDstFile >STA.G hCopyBuf >STA.G CopyRC Reset RC - + >LDYAI X.COPY.BUF.SIZE >SYSCALL GetMem bcs .9 @@ -524,14 +523,14 @@ CS.RUN.CopyStart >STYA ZPPtr1 txa >STA.G hCopyBuf - + ldy #hSrcFullPath lda #O.RDONLY jsr CS.RUN.Open bcs .9 >STA.G hSrcFile - + ldy #hDstFullPath lda #O.WRONLY+O.CREATE jsr CS.RUN.Open @@ -581,31 +580,31 @@ CS.RUN.Copy >PUSHB.G hSrcFile CS.RUN.CopyEnd php pha >STA.G CopyRC - + >LDA.G hDstFile beq .1 - + >SYSCALL FClose .1 >LDA.G hSrcFile beq .2 - + >SYSCALL FClose .2 >LDA.G hCopyBuf beq .3 - + >SYSCALL FreeMem - + .3 >STZ.G bCopy pla plp - rts + rts .FIN *-------------------------------------- CS.RUN.Open pha Save open mode jsr CS.RUN.PushPathY - + pla >PUSHA @@ -615,7 +614,7 @@ CS.RUN.Open pha Save open mode ldy #S.STAT.P.AUXTYPE+1 >PUSHB (ZPFileStat),y dey - >PUSHB (ZPFileStat),y + >PUSHB (ZPFileStat),y >SYSCALL FOpen rts @@ -668,7 +667,7 @@ CS.RUN.BuildFilePath >LDA.G hDstFileName beq .1 - >SYSCALL GetMemPtr + >SYSCALL GetMemPtr >PUSHYA bra .2 @@ -679,10 +678,10 @@ CS.RUN.BuildFilePath rts *-------------------------------------- .DO X.COPY.TO.DEST=1 - + CS.RUN.StatDst ldy #hDstFullPath jsr CS.RUN.PushPathY - >PUSHW L.STAT + >PUSHEA.G STATBUF >SYSCALL Stat rts @@ -693,15 +692,15 @@ CS.RUN.GetPathY sec CS.RUN.PushPathY clc php - + lda (pData),y >SYSCALL GetMemPtr plp bcs .8 - + >PUSHYA - + .8 rts *-------------------------------------- CS.RUN.IncCount >INCW.G Count @@ -738,10 +737,10 @@ CS.QUIT jsr LeaveSubDir ldy #hSrcFullPath jsr .7 - + ldy #hFilter jsr .7 - + ldy #hExclude .7 lda (pData),y diff --git a/SHARED/X.FILEENUM.G.txt b/SHARED/X.FILEENUM.G.txt index 42b19de5..56a5aae6 100644 --- a/SHARED/X.FILEENUM.G.txt +++ b/SHARED/X.FILEENUM.G.txt @@ -1,11 +1,11 @@ NEW AUTO 3,1 -*-------------------------------------- +*-------------------------------------- index .BS 1 hDIRs .BS X.MAX.RECURSE+1 hDIRENTs .BS X.MAX.RECURSE+1 oDIRENTs .BS X.MAX.RECURSE*2 -STAT .BS S.STAT +STATBUF .BS S.STAT hFullPath .BS 1 hSrcBasePath .BS 1 hFilter .BS 1 @@ -13,7 +13,7 @@ hExclude .BS 1 .DO X.COPY.TO.DEST=1 hDstBasePath .BS 1 .FIN -*-------------------------------------- +*-------------------------------------- MAN SAVE usr/src/shared/x.fileenum.g LOAD usr/src/bin/ls.s diff --git a/SHARED/X.FILEENUM.S.txt b/SHARED/X.FILEENUM.S.txt index 647d6191..2dc7089b 100644 --- a/SHARED/X.FILEENUM.S.txt +++ b/SHARED/X.FILEENUM.S.txt @@ -9,7 +9,7 @@ X.MAX.RECURSE .EQ 8 * hDIRs .BS X.MAX.RECURSE+1 * hDIRENTs .BS X.MAX.RECURSE+1 * oDIRENTs .BS X.MAX.RECURSE*2 -* STAT .BS S.STAT +* STATBUF .BS S.STAT * hSrcBasePath .BS 1 * hDstBasePath .BS 1 (optional) * hFilter .BS 1 @@ -149,12 +149,12 @@ InitSrcDirYA >PUSHYA beq .5 we have '/' >PUSHW ZPPtr1 - >PUSHEA.G STAT + >PUSHEA.G STATBUF >SYSCALL Stat bcs .1 File/DIR does not exists, go extract pattern .DO X.ENTER.SUBDIR=1 - >LDA.G STAT+S.STAT.MODE+1 + >LDA.G STATBUF+S.STAT.MODE+1 and #$F0 cmp /S.STAT.MODE.DIR bne .4 TYPE not a DIR, extract.... @@ -297,11 +297,11 @@ InitDstDirYA >PUSHYA >STA.G hFullPath >PUSHW ZPPtr1 - >PUSHEA.G STAT + >PUSHEA.G STATBUF >SYSCALL Stat bcs .1 File/DIR does not exists, go extract DstFileName - >LDA.G STAT+S.STAT.MODE+1 + >LDA.G STATBUF+S.STAT.MODE+1 and #$F0 cmp /S.STAT.MODE.DIR beq .5 Dst is a directory...no destfilename