From cc5d919c5d4414bb06a7b4c220a9801169191556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 10 Oct 2019 12:23:02 +0200 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CMD.txt | 103 ++++++++++++++++++++++++++++++++------- SYS/KERNEL.S.PFT.txt | 22 +++++++++ SYS/KERNEL.S.STDIO.txt | 6 +-- 4 files changed, 110 insertions(+), 21 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index d4e9041cbc439d5ceef20a34f9d8b9d371c86572..4c7093ba981e22676236513b2145f7afa639c654 100644 GIT binary patch delta 29973 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 O{0;a=dR)069s57O`M|dT delta 15866 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 ZPArgVBufPtr bra CMD.CD.YA CMD.CD.HOME >LDYA L.HOME + CMD.CD.YA >SYSCALL realpath bcs CMD.POPD.RTS >STYA ZPPtr1 @@ -480,24 +481,6 @@ CMD.PWD ldy #S.PS.hCWD >SYSCALL puts rts *-------------------------------------- -CMD.REN lda (ZPArgVBufPtr) - beq .9 - >PUSHW ZPArgVBufPtr - >LDYA ZPArgVBufPtr - >SYSCALL puts - jsr CORE.ArgV.Next - lda (ZPArgVBufPtr) - beq .90 - >LDYA ZPArgVBufPtr - >SYSCALL puts - - >LDYA ZPArgVBufPtr - >SYSCALL Rename - rts -.90 >PULLYA -.9 -CMD.REN.CSYN jmp CMD.E.CSYN -*-------------------------------------- CMD.RD lda (ZPArgVBufPtr) beq CMD.REN.CSYN >PUSHEA.G StatBuf @@ -511,6 +494,90 @@ CMD.RD lda (ZPArgVBufPtr) >SYSCALL Remove .99 rts *-------------------------------------- +CMD.REN.CSYN jmp CMD.E.CSYN + +CMD.REN lda (ZPArgVBufPtr) + beq CMD.REN.CSYN + + jsr CORE.ArgV.Next + lda (ZPArgVBufPtr) + beq CMD.REN.CSYN + + >LDYA ZPArgVBufPrev old path + >SYSCALL realpath + bcs CMD.REN.CSYN + + >STYA ZPPtr1 + stx ZPTmpW + + ldy #$ff + +.1 iny + lda (ZPPtr1),y + beq .2 + cmp #'/' + bne .1 + + tya + tax + bra .1 + +.2 ldy #$ff + +.3 iny + inx + lda (ZPArgVBufPtr),y + bne .3 + + txa + tay + lda #0 + + >SYSCALL getmem + bcs .90 + >STYA ZPPtr2 + stx ZPTmpW+1 + + ldy #$ff + +.4 iny + lda (ZPPtr1),y + beq .5 + sta (ZPPtr2),y + cmp #'/' + bne .4 + + tya + inc + tax + bra .4 + +.5 txa + tay + lda #0 + sta (ZPPtr2),y + + >PUSHW ZPArgVBufPtr + >LDYA ZPPtr2 + >SYSCALL strcat + + lda ZPTmpW + >SYSCALL freemem + lda ZPTmpW+1 + sta ZPTmpW + + >PUSHW ZPPtr2 + >LDYA ZPArgVBufPrev + >SYSCALL Rename + +.90 php + pha + lda ZPTmpW + >SYSCALL freemem + pla + plp + rts +*-------------------------------------- CMD.FUNCTION lda (ZPArgVBufPtr) beq .9 jsr CORE.StkGetCtx diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index 4c82c3c4..e2f22947 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -21,31 +21,43 @@ K.PFTRemove.RTS rts * Out : *-------------------------------------- PFT.CheckPathYA stx .6+1 Save SYSCALL # + jsr STDLIB.realpath.I realpath in K.Buf256 bcs K.PFTRemove.RTS + ldx #0 + .1 lda Flt.Table.hPath,x beq .8 + jsr K.GetMemPtr >STYA ZPPtr1 + ldy #$ff + .2 iny lda (ZPPtr1),y "/FILTER\0" beq .3 end of filter string.... + cmp K.Buf256,y can be \0 beq .2 + bra .8 + .3 lda K.Buf256,y path is "/FILTER/..." ? cmp #'/' bne .8 + lda Flt.Table.hLib,x get hLib jsr K.GetMemPtr >STYA .7+1 pla discard JSR return @ pla >LDYAI K.Buf256 pass full path to handler + .6 ldx #$ff SELF MODIFIED SYSCALL # .7 jmp $ffff SELF MODIFIED + .8 inx cpx #K.FLT.MAX bne .1 @@ -53,19 +65,24 @@ PFT.CheckPathYA stx .6+1 Save SYSCALL # .80 >LDYAI K.Buf256 *-------------------------------------- PFT.YAToMLIPATH >STYA .1+1 + ldx #0 no filter, prodos path + .1 lda $ffff,x SELF MODIFIED beq .2 + inx sta K.MLI.PATH,x cpx #MLI.MAXPATH bne .1 + .2 stx K.MLI.PATH inx stz K.MLI.PATH,x Make ending 0 for /dev/xxx path >LDYAI K.MLI.PATH >STYA K.MLI.PARAMS+1 + clc rts *-------------------------------------- @@ -80,13 +97,16 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # tax lda OF.Table.hFD-1,x beq .9 + sta IO.hFD ldy OF.Table.hPath-1,x if 0, its a hDEV bne .10 + tax ldy Dev.Table-1,x lda Dev.Table,x bra .11 + .10 jsr K.GetMemPtr .11 >STYA pFD ldy #S.FD.HANDLER @@ -107,10 +127,12 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # ldy #S.FD.REG.REF lda (pFD),y sta K.MLI.PARAMS+1 + .80 ldx #$ff SELF MODIFIED .81 lda #$ff SELF MODIFIED clc rts + .9 lda #E.INVH sec rts diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 9b662ca2..d02d13b1 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -1191,12 +1191,13 @@ K.Remove jsr PFT.CheckPathYA K.Rename jsr PFT.CheckPathYA bcs .9 - >PULLW .1+1 + >PULLW ZPPtr1 ldy #0 -.1 lda $ffff,y Self Modified +.1 lda (ZPPtr1),y beq .8 + iny sta K.Buf256,y cpy #MLI.MAXPATH @@ -1205,7 +1206,6 @@ K.Rename jsr PFT.CheckPathYA .8 sty K.Buf256 >LDYAI K.Buf256 >STYA K.MLI.PARAMS+3 - >MLICALL MLIRENAME rts .9 >RET 2