From e73519e52977cbcde7901ebead7cad5bfa14ca56 Mon Sep 17 00:00:00 2001 From: burniouf Date: Sat, 10 Jul 2021 21:09:43 +0200 Subject: [PATCH] CIFS:BugFix --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes LIB/LIBCIFS.S.IO.txt | 73 +++++----- LIB/LIBCIFS.S.txt | 278 ++++++++++++--------------------------- SHARED/X.CPMVRM.S.txt | 23 ++-- SYS/KERNEL.S.BIN.txt | 6 +- SYS/KERNEL.S.DEV.txt | 7 +- SYS/KERNEL.S.IRQ.txt | 2 +- SYS/KERNEL.S.MEM.txt | 8 +- 8 files changed, 152 insertions(+), 245 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 6b8c18845c076ab8badbbd6f4fc842ba30ae5cb8..6840584150b842cb92214cae9697ff029e5486f4 100644 GIT binary patch delta 34474 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℘w=->d^ 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

^adk1k{i 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 ShU>V2BHYBSfC$|Vh`IxX(RJAX diff --git a/LIB/LIBCIFS.S.IO.txt b/LIB/LIBCIFS.S.IO.txt index 59245a3a..4675bcc9 100644 --- a/LIB/LIBCIFS.S.IO.txt +++ b/LIB/LIBCIFS.S.IO.txt @@ -5,15 +5,11 @@ CIFS.ChTyp CIFS2.ChTyp *-------------------------------------- CIFS.ChMod -CIFS2.ChMod >DEBUG - lda #MLI.E.BADCALL - sec - rts +CIFS2.ChMod *-------------------------------------- -CIFS.FStat jsr GetPFD +CIFS.FStat *-------------------------------------- -CIFS2.FStat >DEBUG - lda #MLI.E.BADCALL +CIFS2.FStat lda #MLI.E.BADCALL sec rts *-------------------------------------- @@ -37,6 +33,8 @@ CIFS.Stat >STYA pPath resolved path jsr ReqT2SetupPtr2 jsr AppendPathPtr2 + + jsr AddYReqLenPtr2 jsr SetT2ReqLen jsr WriteSocket @@ -410,17 +408,25 @@ CIFS2.ReadDir.FillBuf phx -.5 lda PRODOS.FT.TXT,x - iny - cmp (ZPPtr2),y +.5 iny + lda (ZPPtr2),y + beq .51 + + cmp #'A' + bcc .50 + + cmp #'Z'+1 + bcs .50 + + eor #$20 + +.50 cmp PRODOS.FT.TXT,x bne .6 inx - txa - and #3 - bne .5 + bra .5 - pla +.51 pla lsr lsr tax @@ -432,8 +438,7 @@ CIFS2.ReadDir.FillBuf sta (ZPPtr2),y tya - tax - bra .7 + bra .70 .6 pla clc @@ -445,8 +450,13 @@ CIFS2.ReadDir.FillBuf cpx #PRODOS.FT.END bne .4 + tya +* sec + adc #3 + bra .70 + .7 txa - sec +\0 +.70 sec +\0 jsr AddA2Ptr2 jsr StatBuf2Ptr2 @@ -494,11 +504,6 @@ CIFS2.ChOwn *-------------------------------------- CIFS.FOpen >STYA pPath resolved path - ldy #2 - lda (pStack),y TYPE - - jsr ProDOS2TypeLess - jsr GetCtx ldx #S.SMB.H.CMD.NT.CREATE.ANDX @@ -515,21 +520,26 @@ CIFS.FOpen >STYA pPath resolved path jsr ReqSetupPtr2 + ldy #2 + lda (pStack),y TYPE + pha + jsr AppendPathPtr2 - tya + pla + beq .2 + + jsr AppendTypePtr2 + +.2 tya ldy #S.NETBIOS+S.SMB.H+6 NameLength sta (ZPReqPtr),y inc +1 for \0 + jsr Add2ByteCount - ldy ByteCountOfs - sta (ZPReqPtr),y - - lda #0 - iny ByteCountOfs+1 - sta (ZPReqPtr),y + jsr AddYReqLenPtr2 jsr SetReqLen @@ -987,8 +997,7 @@ CIFS2.FSeek CIFS.FTell CIFS2.FTell CIFS.FEOF -CIFS2.FEOF >DEBUG - lda #MLI.E.BADCALL +CIFS2.FEOF lda #MLI.E.BADCALL sec rts *-------------------------------------- @@ -1020,7 +1029,6 @@ CIFS.Remove >STYA pPath resolved path tya inc +1 for BufferFormat inc +1 for \0 - jsr Add2ByteCount jsr SetReqLen @@ -1100,7 +1108,6 @@ CIFS.Rename >STYA pPath resolved src path tya inc +1 for BufferFormat inc +1 for \0 - jsr Add2ByteCount jsr SetReqLen diff --git a/LIB/LIBCIFS.S.txt b/LIB/LIBCIFS.S.txt index af90303f..033e085a 100644 --- a/LIB/LIBCIFS.S.txt +++ b/LIB/LIBCIFS.S.txt @@ -142,7 +142,7 @@ J.CIFS2 .DA CIFS2.ChTyp .DA CIFS2.Rename *-------------------------------------- L.LIBTCPIP .DA LIBTCPIP -L.NETBIOS .DA NETBIOS +L.NETBIOS.H .DA NETBIOS.H .DA 0 *-------------------------------------- LIB.LOAD >LDYA L.LIBTCPIP @@ -189,8 +189,8 @@ CIFS.Negotiate lda (pStack) ldy #1 hSocket lda (pStack),y >PUSHA - >PUSHW L.NETBIOS - >PUSHWI SMB.NegReq.end-NETBIOS + >PUSHW L.NETBIOS.H + >PUSHWI SMB.NegReq.end-NETBIOS.H ldx #LIBTCPIP.Send jsr GO.LIBTCPIP @@ -199,7 +199,7 @@ CIFS.Negotiate lda (pStack) lda #0 sec rts - +*-------------------------------------- .1 dec sta (pStack) beq .98 @@ -207,8 +207,7 @@ CIFS.Negotiate lda (pStack) ldy #1 hSocket lda (pStack),y - ldx #LIBTCPIP.Recv - jsr GO.LIBTCPIP + jsr ReadSocketA bcc .3 cmp #E.NODATA @@ -293,15 +292,12 @@ CIFS.SessionSetup cpx #SMB.SessionSetup.H.Len bne .2 - phy save Y = LEN - iny - iny + jsr ReqSetupPtr2 ldx #0 .3 lda SMB.SessionSetup.Guest,x - sta (ZPReqPtr),y - iny + jsr PutBytePtr2 inx cpx #SMB.SessionSetup.Guest.Len bne .3 @@ -309,37 +305,31 @@ CIFS.SessionSetup ldx #0 .4 lda SMB.SessionSetup.T,x - sta (ZPReqPtr),y - iny + jsr PutBytePtr2 inx cpx #SMB.SessionSetup.T.Len bne .4 - pla + jsr Add2ByteCount - jsr SetReqLenYAtA + jsr SetReqLen ldy #6 hSocket lda (pStack),y - >PUSHA - >PUSHW ZPReqPtr - >PUSHW ZPReqLen - ldx #LIBTCPIP.Send - jsr GO.LIBTCPIP + jsr WriteSocketA bcs .99 lda #0 sec rts - +*-------------------------------------- .5 dec sta (pStack) beq .98 ldy #6 hSocket lda (pStack),y - ldx #LIBTCPIP.Recv - jsr GO.LIBTCPIP + jsr ReadSocketA bcc .6 cmp #E.NODATA @@ -392,10 +382,10 @@ CIFS.TreeConnect ldy #1 pathname lda (pStack),y - sta ZPPtr1 + sta pPath iny lda (pStack),y - sta ZPPtr1+1 + sta pPath+1 iny hSMBContext jsr GetSMBContext @@ -412,38 +402,23 @@ CIFS.TreeConnect cpx #SMB.TreeConnect.H.Len bne .1 - phy save Y = LEN - - iny Skip ByteCount - iny + jsr ReqSetupPtr2 lda #0 - sta (ZPReqPtr),y PASSWORD = "\0" - iny - -.2 lda (ZPPtr1) - inc ZPPtr1 - bne .3 - - inc ZPPtr1+1 - -.3 sta (ZPReqPtr),y - iny - tax - bne .2 + jsr PutBytePtr2 PASSWORD = "\0" + jsr AppendPathPtr2 + jsr AddYReqLenPtr2 + ldx #0 .4 lda SMB.TreeConnect.T,x - sta (ZPReqPtr),y - iny + jsr PutBytePtr2 inx cpx #SMB.TreeConnect.T.Len bne .4 - pla - - jsr SetReqLenYAtA + jsr SetReqLen ldy #4 hSocket lda (pStack),y @@ -460,8 +435,7 @@ CIFS.TreeConnect ldy #4 hSocket lda (pStack),y - ldx #LIBTCPIP.Recv - jsr GO.LIBTCPIP + jsr ReadSocketA bcc .6 cmp #E.NODATA @@ -554,119 +528,6 @@ CIFS.CallBack bit CIFS.Status .2 pla ply jmp (J.CIFS2,x) -*-------------------------------------- - .INB usr/src/lib/libcifs.io.s -*-------------------------------------- -TypeLess2ProDOS ldy #$ff - -.1 iny - lda (ZPPtr1),y - bne .1 - - tya - tax save finename len - - sbc #4 "x.EXT" ? - beq .9 - - ldx #0 - -.4 phy Y = '.' offset - - phx - -.5 lda PRODOS.FT.TXT,x - iny - cmp (ZPPtr1),y - bne .6 - - inx - txa - and #3 - bne .5 - - pla - lsr - lsr - tax - lda PRODOS.FT.HEX,x - - ply Y = truncated len, A = type - rts - -.6 pla - clc - adc #4 - tax - - ply - - cpx #PRODOS.FT.END - bne .4 - -.9 lda #0 Y = full len, A = 0 (no type) - rts -*-------------------------------------- -ProDOS2TypeLess tax - beq .8 - - ldx #0 - -.1 cmp PRODOS.FT.HEX,x - beq .4 - - inx - cpx #PRODOS.FT.TXT-PRODOS.FT.HEX - bne .1 - - pha - lsr - lsr - lsr - lsr - - ora #$30 - cmp #'9'+1 - bcc .2 - - adc #6 - -.2 sta PRODOS.FT.DFLT+1 - pla - and #$0F - - ora #$30 - cmp #'9'+1 - bcc .3 - - adc #6 - -.3 sta PRODOS.FT.DFLT+2 - -.4 txa - asl - asl - tax - - ldy #0 - -.5 iny - lda (pPath),y - bne .5 - - lda #'.' - sta (pPath),y - iny - -.6 lda PRODOS.FT.TXT,x - sta (pPath),y - beq .8 - - inx - iny - bra .6 - -.8 rts *-------------------------------------- GetPFD tax phx @@ -786,17 +647,71 @@ AppendPathPtr2 ldx #0 .5 sta (ZPPtr2),y A = 0 - tya + rts +*-------------------------------------- +AppendTypePtr2 ldx #0 + +.1 cmp PRODOS.FT.HEX,x + beq .4 + + inx + cpx #PRODOS.FT.TXT-PRODOS.FT.HEX + bne .1 + + pha + lsr + lsr + lsr + lsr + + ora #$30 + cmp #'9'+1 + bcc .2 + + adc #6 + +.2 sta PRODOS.FT.DFLT+1 + pla + and #$0F + + ora #$30 + cmp #'9'+1 + bcc .3 + + adc #6 + +.3 sta PRODOS.FT.DFLT+2 + +.4 txa + asl + asl + tax + + lda #'.' + sta (ZPPtr2),y + iny + +.6 lda PRODOS.FT.TXT,x + sta (ZPPtr2),y + beq .8 + + inx + iny + bra .6 + +.8 rts +*-------------------------------------- +AddYReqLenPtr2 tya sec +1 for \0 adc ZPReqLen sta ZPReqLen - bcc .6 + bcc .1 inc ZPReqLen+1 -.6 tya +.1 tya sec +1 for \0 @@ -805,8 +720,6 @@ AppendPathPtr2 ldx #0 bcc .8 inc ZPPtr2+1 - - .8 rts *-------------------------------------- Add2ByteCount ldy ByteCountOfs @@ -848,30 +761,6 @@ AppendPath ldx #0 .5 rts *-------------------------------------- -* Y = LEN from S.NETBIOS.TYPE -* A = Ptr to LEN Word -*-------------------------------------- -SetReqLenYAtA sty ZPReqLen - stz ZPReqLen+1 - - sta ZPPtr1 - pha - - tya - - dec - dec - - sec - sbc ZPPtr1 - ply - - sta (ZPReqPtr),y - iny - lda #0 - sta (ZPReqPtr),y - bra SetReqLen -*-------------------------------------- SetT2ReqLenYA sty ZPReqLen stz ZPReqLen+1 @@ -1168,12 +1057,15 @@ WriteSocketA >PUSHA jmp (pLIBTCPIP) *-------------------------------------- ReadSocket lda MountTable+3 hSocket - ldx #LIBTCPIP.Recv + +ReadSocketA ldx #LIBTCPIP.Recv GO.LIBTCPIP jmp (pLIBTCPIP) *-------------------------------------- CIFS.BADCALL lda #MLI.E.BADCALL sec rts +*-------------------------------------- + .INB usr/src/lib/libcifs.io.s *-------------------------------------- CS.END PRODOS.FT.HEX .HS 0406FAFCFDCBCCCFFF @@ -1192,7 +1084,7 @@ PRODOS.FT.DFLT .AZ "$ " SMBERR01 .DA #2,#3,#32 MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.OPEN *-------------------------------------- -NETBIOS .DA #0 DIRECT TCP TRANSPORT +NETBIOS.H .DA #0 DIRECT TCP TRANSPORT .DA #0 24 BITS LENGTH .DA /SMB.NegReq.end-SMB.H .DA #SMB.NegReq.end-SMB.H diff --git a/SHARED/X.CPMVRM.S.txt b/SHARED/X.CPMVRM.S.txt index 0068f08e..6acbeb93 100644 --- a/SHARED/X.CPMVRM.S.txt +++ b/SHARED/X.CPMVRM.S.txt @@ -518,7 +518,7 @@ CS.RUN.CopyStart >LDYAI X.COPY.BUF.SIZE >SYSCALL GetMem - bcs .9 + bcs .99 >STYA ZPPtr1 txa @@ -527,7 +527,7 @@ CS.RUN.CopyStart ldy #hSrcFullPath lda #O.RDONLY jsr CS.RUN.Open - bcs .9 + bcs CS.RUN.CopyEnd >STA.G hSrcFile @@ -535,14 +535,14 @@ CS.RUN.CopyStart lda #O.WRONLY+O.CREATE jsr CS.RUN.Open -.9 bcs CS.RUN.CopyEnd + bcs CS.RUN.CopyEnd >STA.G hDstFile lda #$ff >STA.G bCopy * clc - rts +.99 rts *-------------------------------------- CS.RUN.Copy >PUSHB.G hSrcFile >PUSHW ZPPtr1 Dst Ptr @@ -555,7 +555,7 @@ CS.RUN.Copy >PUSHB.G hSrcFile lda #0 clc - bra .9 + bra CS.RUN.CopyEnd .1 phy pha @@ -565,7 +565,7 @@ CS.RUN.Copy >PUSHB.G hSrcFile ply >PUSHYA Bytes To Write >SYSCALL FWrite - bcs .9 + bcs CS.RUN.CopyEnd bit bQuiet bmi .8 @@ -575,12 +575,13 @@ CS.RUN.Copy >PUSHB.G hSrcFile .8 rts -.9 >STA.G CopyRC +.9 sec *-------------------------------------- -CS.RUN.CopyEnd php - pha - >STA.G CopyRC +CS.RUN.CopyEnd >STA.G CopyRC + php + pha + >LDA.G hDstFile beq .1 @@ -597,8 +598,10 @@ CS.RUN.CopyEnd php >SYSCALL FreeMem .3 >STZ.G bCopy + pla plp + rts .FIN *-------------------------------------- diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index fec74086..75984273 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -258,7 +258,7 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move sta BIN.R.End+1 sbc BIN.R.CS.Start+1 >STYA BIN.R.Size - jsr MEM.GetKrnlBuf Y,A = CODE + DATA + jsr MEM.GetKBuf Y,A = CODE + DATA bcs .9 No More Room to load Driver >STYA ZPPtr1 Y,A = DST Buf for RelDrv... @@ -341,7 +341,7 @@ BIN.RelDrv ldy #2 start after CLD JMP .3 lda (ZPPtr1) get OPCODE lsr /2 tax - lda BIN.65816,x get OPCODE definition + lda BIN.65R02,x get OPCODE definition bcs .4 go get LO nibble lsr lsr move HI -> LO @@ -418,7 +418,7 @@ BIN.RelAtPtr1Y lda (ZPPtr1),y Get LO * Bit 2-1-0 : opcode + @ length *-------------------------------------- * 0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F -BIN.65816 +* BIN.65816 * TO DO : Make 2 different tables * http://axis.llx.com/~nparker/a2/opcodes.html *-------------------------------------- diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index edab5023..28b40568 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -188,7 +188,7 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd tay lda #0 - jsr MEM.GetKrnlBuf + jsr MEM.GetKBuf bcs .99 >STYA pFD @@ -357,8 +357,13 @@ DEV.Destroy ldx IO.hDevNod ldx IO.hDevNod .1 lda Nod.Table.hFD-2,x + beq .8 + stz Nod.Table.hFD-2,x jmp K.FreeMem + +.8 clc + rts *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.dev diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index c7fa0ee0..6518583a 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -10,7 +10,7 @@ NEW * if A2osX Drivers cannot clear IRQ, * must call regular System Handler *-------------------------------------- -MSLOT .EQ $7f8 +*MSLOT .EQ $7f8 *-------------------------------------- *IRQ.BRK jmp IRQ.6 *-------------------------------------- diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index aae693de..af23f39a 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -331,9 +331,7 @@ MEM.Init0 phx * none. * (X unmodified) *\-------------------------------------- -K.FreeMem.MSG .AZ "FreeMem:hMem=$%h,PID=%d\r\n" -*-------------------------------------- -K.FreeMem.ERR >PUSHWI K.FreeMem.MSG +K.FreeMem.ERR >PUSHWI .1 tya hMem n Y >PUSHA @@ -348,6 +346,8 @@ K.FreeMem.ERR >PUSHWI K.FreeMem.MSG lda #E.INVH sec rts + +.1 .AZ "Free($%h),PID=%d\r\n" *-------------------------------------- K.FreeMem tay beq K.FreeMem.ERR Slot=0, reserved by Kernel @@ -648,7 +648,7 @@ MEM.SetA1A2 jsr K.GetMemPtr rts *-------------------------------------- -MEM.GetKrnlBuf pha +MEM.GetKBuf pha tya clc adc DevMgr.Free