From 83a75b7feff65b6840ea772f7faec96078bfa11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 20 Oct 2016 18:04:35 +0200 Subject: [PATCH] Kernel version 0.8 : LS : adding -R options --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/LS.S.txt | 118 ++++++++++--------------------------------- BIN/X.CPLSMVRM.S.txt | 102 ++++++++++++++++++++++++++----------- 4 files changed, 99 insertions(+), 121 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 0d2635cbac7d6248670c94fca19b7b3b0cd312e6..67639e317076c1dd7dfbc0c540812a5019970704 100644 GIT binary patch delta 658 zcmZ{iO=uHA6vubcr1>zK5QW6V(#`Blz~Bdpg`gsn?Inm_G47^ea62JZ#i(>y`i`P_49hr&Z{s!m5I@4JSP+c6 zqVQ%RlKL1)IiwXy8TVN{o1GyYV!3RI0+U$B?L^-ss{^z?K#uo={iFFQqrCctnyLoX z-b(ff5f`QQnEH|mCbSPwkC`@>FyruJZzt{d>FJn4gC=xb8HMiSD~nljqcX8Ib?97D z4bwBGY=vx(s3z4B@oTcu+Pb<-zy+5MtAv2l(Sp=NI;wHkLo3;#CpzkEj~oMQUEul! z>IfXE&J&Q~n)d`ufI@YLfc0zQb5#CG1MFIlp|i61-Cw4#ljy(o+S|E{%$~h|hZp8? z@n~qcE8$uoa0iNwmL%R16vM?-WuPqHK)a&>&drLsIqqwFTcar}Its8EY*uwT@m zcpb%*T=Vy^iDE|KEIvic@5t0|LSu<3c!9>r%8cWOG}lCv7L1P8=k#FxQgP_KdD)9@wWt~bEkA2@^kNB{r; delta 686 zcmXw!QAkr!7{~9KyQFiZ4@T1!oO|zgLZ_RyT**c4ZZ;VsaJWSescf?425#C`q!hS^ zf(Q)VqWM&pTMms3uL~ql=^3Kd~Ty(yY z@JqaEkr^uA%Z$pG8e~?rc$KI0C8diVt0%R~HA_u(#$pOCf9VP;It|C4G;vzgCs-jk z1GK?mTXbq-QObbQNquv<9Va?};nZWJg<-baXnxb7n*{Jem9qqMR zHw9%T`{q};;Ukx>mpfJ0c3p|ZHGH}XkMUWk_}31q+6qYb2ju~s$=>dZoRy<$f{ zbCVJ}okJ43L{UzZkmHE$(NC(p(oN%J1I=I$leM64IVhWpA5N4GJYHI_H!FD;3N*p& z21HxxsD#-~STGpkJYHH6aEw|1@eDPhY`tzbzkrN0&Cu^`86HY7zECP93M5R&!AK|^ zON?RvU?1*}jYmY{r}TO4o<0-r5oF{<-d+-d3xn-4?K2badDY=$%lNUqX-m0RemG{r~^~ diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 1622661125eff82a9c373472ade090911d77f8e1..5ef0af23ae0178a0e6359700f6cee05907ae1b1c 100644 GIT binary patch delta 8136 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 SYS.GetArgC sta ArgCount .1 dec ArgCount - beq .8 + beq .5 lda ArgCount >SYSCALL SYS.GetArgA @@ -59,12 +59,12 @@ CS.INIT >SYSCALL SYS.GetArgC lda (ZPPtr1) cmp #2 - bne .7 + bne .4 ldy #1 lda (ZPPtr1),y cmp #'-' - bne .7 + bne .4 iny lda (ZPPtr1),y @@ -75,105 +75,38 @@ CS.INIT >SYSCALL SYS.GetArgC beq .3 dex bne .2 - beq .90 Syntax error + + lda #SYSMGR.ERRSYN + sec + rts .3 ldy OptionVars-1,x lda #$80 sta (pData),y bra .1 -.7 >LDYA ZPPtr1 - jsr CS.INIT.OPENDIR - bcs .99 - ldy #hDIR A=hDir - sta (pData),y - bra .1 +.4 >LDYA ZPPtr1 + jsr InitSrcDirYA + bcs .9 -.8 ldy #hDIR + bra .1 scan for any other args + +.5 ldy #hDIRs lda (pData),y - bne .80 + bne .8 ldy #S.PS.hPREFIX lda (pPs),y >SYSCALL SYS.GetMemPtrA - >SYSCALL SYS.OPENDIRYA - bcs .99 - - ldy #hDIR - sta (pData),y + jsr InitSrcDirYA + bcs .9 -.80 lda (pPs) +.8 lda (pPs) ora #S.PS.F.EVENT Now accept events sta (pPs) clc - rts - -.90 lda #SYSMGR.ERRSYN -.99 sec - rts -*-------------------------------------- -CS.INIT.OPENDIR >SYSCALL SYS.GetFullPathYA - bcs .99 - stx .90+1 - >STYA ZPPtr1 - - >PUSHW L.STAT - >PUSHW ZPPtr1 - >SYSCALL SYS.STAT - - bcc .7 File exists, do not extract wildcard - - lda (ZPPtr1) - tay - -.2 lda (ZPPtr1),y search backward for a / - cmp #'/' - beq .3 - dey - bne .2 - -.3 tya - cmp (ZPPtr1) - beq .7 Make sure at least one char - - ldx #0 - phy save / pos to trunk string later - -.4 iny - inx - lda (ZPPtr1),y - sta UsrBuf256,x - tya - cmp (ZPPtr1) - bne .4 - - pla get back / pos - sta (ZPPtr1) trunk it for Opendir - - stx UsrBuf256 - >LDYAI UsrBuf256 - >SYSCALL SYS.NewPstrYA - bcs .9 - txa - ldy #hFilter - sta (pData),y - -.7 >LDYA ZPPtr1 - >SYSCALL SYS.OPENDIRYA - bcs .9 - - jsr .9 Cleanup - clc -.99 rts - - -.9 pha -.90 lda #$ff - >SYSCALL SYS.FreeMemA - pla - sec - rts +.9 rts *-------------------------------------- CS.RUN ldy #bCANCEL lda (pData),y @@ -187,8 +120,11 @@ CS.RUN ldy #bCANCEL clc rts -.2 ldy #hDIR +.2 ldy #hDIRs lda (pData),y + tay + lda (pData),y + >SYSCALL SYS.READDIRA bcc .20 @@ -459,10 +395,8 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? .9 sec rts *-------------------------------------- -CS.QUIT ldy #hDIR - lda (pData),y - - >SYSCALL SYS.CLOSEDIRA +CS.QUIT jsr LeaveSubDir + bcc CS.QUIT ldy #hFilter lda (pData),y @@ -504,6 +438,8 @@ FileType2PSTR ldy #0 lda L.PRODOS.FT.TXT+1 adc #0 rts +*-------------------------------------- + .INB BIN/X.CPLSMVRM.S *-------------------------------------- CS.END *-------------------------------------- @@ -535,8 +471,8 @@ ArgCount .BS 1 .DUMMY .OR 0 DS.START -hDIR .BS 1 hDIRs .BS MAX.RECURSE+1 +hBasePath .BS 1 hFilter .BS 1 bSTOP .BS 1 bCANCEL .BS 1 diff --git a/BIN/X.CPLSMVRM.S.txt b/BIN/X.CPLSMVRM.S.txt index 77d9daca..2bd61464 100644 --- a/BIN/X.CPLSMVRM.S.txt +++ b/BIN/X.CPLSMVRM.S.txt @@ -9,9 +9,11 @@ AUTO 6 * hDIRs .BS MAX.RECURSE+1 * hBasePath .BS 1 *-------------------------------------- -SetSrcDirYA >SYSCALL SYS.GetFullPathYA - bcs .99 - stx .90+1 +InitSrcDirYA >SYSCALL SYS.GetFullPathYA + bcc .10 + rts + +.10 stx .90+1 >STYA ZPPtr1 lda (ZPPtr1) @@ -26,7 +28,7 @@ SetSrcDirYA >SYSCALL SYS.GetFullPathYA lda STAT+S.STAT.PRODOS.TYPE cmp #$0f - beq .7 TYPE=DIR, do not estract wildcard + beq .5 TYPE=DIR, do not extract wildcard .1 lda (ZPPtr1) tay @@ -39,7 +41,7 @@ SetSrcDirYA >SYSCALL SYS.GetFullPathYA .3 tya cmp (ZPPtr1) - beq .7 Make sure at least one char + beq .5 Make sure at least one char ldx #0 phy save / pos to trunk string later @@ -81,17 +83,21 @@ SetSrcDirYA >SYSCALL SYS.GetFullPathYA >SYSCALL SYS.OPENDIRYA bcs .9 + pha ldy #hDIRs - sta (pData),y set hDIRs[1] = Src Hdir tya + inc + sta (pData),y + + iny set hDIRs[1] = Src Hdir + pla sta (pData),y set hDIRs index=hDIRs[1] jsr .9 Cleanup clc -.99 rts - - + rts + .9 pha .90 lda #$ff self modified >SYSCALL SYS.FreeMemA @@ -99,38 +105,74 @@ SetSrcDirYA >SYSCALL SYS.GetFullPathYA sec rts *-------------------------------------- -EnterDirYA >PUSHYA push Src for StrCat +EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat + + ldy #hDIRs + lda (pData),y + cmp #hDIRs+MAX.RECURSE+1 + beq .99 + ldy #hBasePath lda (pData),y >SYSCALL SYS.GetMemPtrA + >STYA ZPPtr1 save full path - >PUSHYA push Src for StrCat - >SYSCALL SYS.StrCat + >PUSHW ZPPtr1 push Src for StrCat + >PUSHW ZPPtr2 + >SYSCALL SYS.PStrCat + + >LDYA ZPPtr1 + >SYSCALL SYS.OPENDIRYA + + bcs .99 + pha - jsr GetNextDir - - beq .99 CS - - - - - clc -.99 rts -*-------------------------------------- -LeaveDir -*-------------------------------------- -GetNextDir ldy #hDIRs + ldy #hDIRs lda (pData),y - cmp #hDIRs+MAX.RECURSE+1 - beq .99 CS full!!! all hDIRs already alloacated inc + sta (pData),y + tay - + pla + sta (pData),y + clc .99 rts *-------------------------------------- -GetLastDir +LeaveSubDir ldy #hDIRs + lda (pData),y + tay + lda (pData),y + >SYSCALL SYS.CLOSEDIRA + + ldy #hBasePath + lda (pData),y + >SYSCALL SYS.GetMemPtrA + + >STYA ZPPtr1 save full path + + lda (ZPPtr1) get len + tay + +.1 dey At first run, discard ending / + lda (ZPPtr1),y + cmp #'/' + bne .1 + + tya + sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/ + + + ldy #hDIRs + lda (pData),y + dec + sta (pData),y + cmp #hDIRs + beq .9 CS + + clc +.9 rts *-------------------------------------- MAN -SAVE BIN/X.CPLSMVRM.S.txt +SAVE BIN/X.CPLSMVRM.S