From d9637361b918c9625e3e1cd52b1f4f8662ff884f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 26 Feb 2017 19:34:00 +0100 Subject: [PATCH] Kernel version 0.9 : CP/MV/RM migration OK --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/CP.S.txt | 5 +- BIN/MV.S.txt | 5 +- BIN/RM.S.txt | 3 +- BIN/X.CPMVRM.S.txt | 142 +++++++++++++++----------- BIN/X.FILEENUM.S.txt | 232 +++++++++++++++++++++++++++++-------------- INC/MLI.ERR.I.txt | 2 +- X.ERRORS.S.txt | 2 + 10 files changed, 252 insertions(+), 139 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 7a9bb07498917adc81a6f93ea2d3ee8ba0e7e18f..b8bba2f14ee01184d352df1edbc4147bdb5d8825 100644 GIT binary patch delta 4006 zcmc(idr(y86~OoGi-({*R8~Ov_Hthf%YsDf%7Cu0Ac;$|x@fD$_8LPYjiUsylRgYM z0}eW9g`44OHR*OoHmt*%U3LP^`tGEbb*8$})~1|>_1QM@ERlBvdi_byMR);~LklwknQ>by zK;VB?^>?*Kq1Ey~US(4*jtTUyTB3%}1E9PI0riV5N_C7PYI9GCCw7dX$|HaxMUG$_4_R$ z6#kp^9D|<+-wGNVKi?NLZgRCF#Yyi1)IA?Hmo}BS6g?%P>36}La7x$vL4Mh80|W!F z?QWY7&AjSV%d`jd`w!@Y1k&bgJ{`3(oruCnR3g4-C z4u6iGENAxKr#Bg9$WLGMZ=YTPdwB8mTMbAged~IxM?1@PHI`;;=dv0_b6Jm7EHGDF zo69@P@N}6|;U{8sH3?mN%&!q`M88KN4J{svZo*W@p(4tcfS1NkSgPa9*d0HitBLON z6X8Tjrm)8vX7|Xxnj1LRn|SlhWlh#GE1g!Xx7pg?S%!zQPOG_Y%oAyEqsqi-6&^(! z5jnlcYX!F9D#ZGHXjG$QcuyNKrd(Rm-$v*->7<>C*?uAvEwWBM3R0a*k62u0X|+xm zxCAMnNoaOlU9}Y??koZL?H@x~feo-#JaD=0sZ+aTr zh{lgY_HcppLvBPeOi2?YPl&Kink3^1-#9!gMb>n%#}b+$-b`(`bYazPmg_;jdpHl0 z0-p>Ul?&}!Rv~@z(Lq#`^=j6)=|;MV=IK8A1pO(!nwi05Fa?Z4;i|=c?(JYMbTFdD z+rclnm7Zv)2kf*Mg-_OV(afE2(ER3GhoWv!J`Gwx^V4syhvvZM+sYSUxv<3wr{?HZ zZP~WHwsvb>ef7)8QNOir!zPNNJg0T#a_dz)}qmpVy(K#lsNrb8e;b67)PP}8DgNJD!yv|!;NO+!%w6eVyR%$mtk^1=N| zqA2_qi7|9o*v)|%C}Fr2=EkF&dS8{zqDR-Vd}{@<3+Sb}PP4x}obH_OFAvQKCpwLO zB4Lgb{ML|3Otk%6Z+l1YS#IV=;)ix*`G7+Mr0-c2OG#?J7M2`=Oksxyre&vLwrR}2 zN9oGPhbUQ7VQWr8mp1?*tT+aGVT&6w)Mo6RP*ewt;(~-riC69iZeP8y zvkvAdzohu#(+h>q>R@$4U6zik@H~)9!zR24Z{=y#CL{UZYf~~7npm8q+T^Z>gogiP zfs*P|l3bvUl2aC_9oo{BYjTXag1ZUo1zj_6y}KYP_e;VY=|Hn&kn@1GQv~>I|1QX8R1N7zlW2WPWX~M zSJ1-YR+yv2V_z#2M0aL6S=^CE5w9aL;#>9T6g`6YipL|qOK+5U$ocq(3Hc}->jnZm z!iU|soXA76FxLxd%7vs*=!FbvT?Nr#z-e!FOg0;D(fmCTb}n^`r1E;9Vtv*{_32DWOObRjE5rFOK=QMVD5yHCLE zn9*RZl!GOtZiB=IWPd0exUD>`aKtiGhhsuC8W0xxUx#BtH0Z8}{=|%hWACHk*ei$Q zr6dB~Vw`$h?B%~(OPee`LM^Gx5PX-xF8t;=P^px|WHKr6>6h1Rt}dh;lmpdoMbg;& zdvJjJ3TS6qx?1p`*u3yp2ih&1YUJXv^D;C@Dw2idPatVTPvz<<^_Zads+4G!Y-P8K LPf$ACgHZ8r#&P4g delta 3645 zcmchae^3HU)^<|cLTaO?j740nCaE1KeY*z+{8cm4 z_Ws!S>-*#F_kF(KedoSpa9=V6w`t>saO~YAQ@k0wjA2E@^V7pM+Wk6^8BU7X>;Pu& zrz`%Z(O^H+a@$ur@gs(C-^xr)7~uCnSo2y9t}$TOW5bPWj%$#pbKMW7noCwJetAXl z%SAbGMNaY3;#f2Hhjn!4`i%qt;qu*8IDU=ghH4VBgp@iV<^2m;@{GPvmI$RQN`C_C z4}Kt6-M1P9YpJIhVm*Q9V8;SjowF<3gLP)hslOIdq?v6;1#U@gG7!S=)HW>uEEjd6 zX5wD@=w7kuPlTUt7C14?<-B@O53lWlakFg9x9Zv?@Pw+~0?k>Bs>`<2XG!doI zWpQnOtcmDrBHT%yeMo3jL|O6LjqecE_C9YeYH~a6QeqQP(?lp1BK94MZscX%HOe&7 zTGZBQx0PifO=LDilpzVP-Bw|*&hzG$Vbx2FE+rz0uxOAif(fpryo(QKd2GrKXL5&5 z&*bZV2j1W(R)d7_@-rU+E)L(?`3nZu3n_wCVB5HPz0ZKka6zvfOxm9^us=oCo|C?E zr}Z2NA3R%0gMMz>@asU}Du?G!y~d{LJT7F}<#|(i1_Z8qI7xTND$bM5+@ad(oID&t z8lD@;(*&#hrS0u&Y#;@8%!SS&0ttV5V>KaI#YOV$b28nd^rSB?0ofUm@oZCUo)@^) z^5F!e9y>B^S6)T$kM(qp_)NSxYZ+Sq{-9z4%Ks2q>6IZgk*7|SNCsh_-;IvoPhzn& zUs+%yk`kp1pgJHVqcWI=2AuomjG3yXmd-43vV3E9b5vX%tOjg&(;d8s-)sjb_`FLZjc8u zr{bFo-Pzv(y?Wb04Xf^eh6kXH$RK=V95shZrJkc+q(=SjphO@)+q#oFzk`xXhIdkd zofMzt0twoK@`Ip&TMi*Q~2GbFQ@kB4_$D2v? z#G1)K0_>O#J$cGG#tWDq_oSgNJYzy{zl$`w{Fu$<%{^>)%I3(Rm-OZ;%3gajDVRch zQ3pt{&OmnWm{j#*#gcZ9z%&u6axf;41Uu$LT(}&7YpB9^+|08ue&weoEN zIA2r&;_(o{T|)G_Y|6Iz>pozMsV6)*vfT(=4NLeBD?mEf!e6QY4OO{lXAb|@YW*m+ zp#t*%Eecr=RE2L_6iDAz5Enx}t}@Jtnww(ft<_*F@2LiB5PCITyMaNMv0Wblj)AA) zhh&iak!2c_%w#gFm^I7>lnoKoy^M;Sk2&vUauh}9rsdvYaN({qqe&a%r{h+1qK!EQ6g<5G|?kO<~^CnN|Tc%Mu=oB zh_Y8L5wHXTmMc(>pvk|~0ZjZ}Jsyn*-{ZG*0GOUFSVKhG!ZADrb3L076P_*wy4zxu z{JdBw8Ai*I=xYG+?04m8ak11dSp8o&5q`|*o}hC25>kOSGH6igK21k9!KZeB7r_qI z-|LGW_UCxO-wWgXjdKP6PBdze2N%kXa`F+m!6$kF0m}JIFUsw5ew!Dh0u6t}3zATC z)(c+4H6(vE0O)iZDNyLkMkx44A(Mhd`5GC8WOM{kHaCWH%mh2&m>m0w4-iqXj^xkz zz?_k6(kj`+@4tfI^GooK!-aE zySl(V;QJWhRkfpcx&P&L@9~A*{P17l-3+Oc)YMcA&E}PD+AwC;cO1l5N&oE3 zZu8IkZMLlIYs!AVIUB|!xSr~B_}>WHn*Vr7etgs(9kjcT3fkR~psiJdrhXBp_k*hL z!0$nca%&FwJ^?zO>j%_yB~}HmjE_~f)DO}WIlk*tgw6!hp!B6HDu_WongNA5Y-#-x zR=`>d*w#Wegvli$CE5B=CtpmHv~L%%?puu$#f+dnd2)Rr>%JnwmR8YJ#k-6ajUL`EVG_>Ry=)evbPFf#ctCDQN5f diff --git a/A2OSX.DEV.po b/A2OSX.DEV.po index 75ede30f747b8cb6e66a2166044893416757083f..db3a7b0eccfb926105e30f528ab9664b821aa080 100644 GIT binary patch delta 19 ZcmZp8z|jCiTNvY98AGt?+@7;6wSb{%^z~M?$fx*}t{eIKob?LvXIoh+( za5I_6;Cc?Vq=bXOzfB^L@(yv<$)kgAFuzM8!~Nq@(V#2fX&D;!g84oA#VySoZE}a) zWfkLKd!Izka`n0z>swo;md0U!&|43}pGjnN*bTx5Bog#`!1xzrS$8lH3WD$F5Xrsvzxi6dc-)Yn8LAfd2x`%KlQ`u-M?>%Kt_s zl!Z^}ZL|GdlNe{7<*PWsEuCI>KN!EJay^o>3T)qyh-YL}Dr#$8?riStbT+SO0pmY# z-RGrx8NX%jDyjtIclb5nreFE*sXCT_5@(ehr*$>(|Dp>&$Upa*vP9sR{i~Tx)w>(U zL*C$BolQvtSyqTRo9bg?yW3se9j-30*>nq3ABU*>*t(+eoaQDF?Yi$PI-1)-aDWmY zd)CDMUU5mbx(6fNwiNB_>}+Xo0U?KNnwAUH>PG*VFLbH1d8Jf7oBi(hVx*_xrbBDE zMHubEJY{2>HyCtp_69FL3$^W(3YX7WAvFgA{y-s!(*f;OzP9_NChvJe9&aHOw@9vSLm|(gx4#hb3MV$Mn?{NzcC2&c7Dsn=xI=?dyFVngpk}yj+Kh=i z*X5Fui4*IxN$JE#>+&|vjBZ}#A08X=O3Q;%%h>QR@+^xkH4O#4o{&E<9$TGJ9$oGB z1;<85{eh6TUvl9tv`p$6A4RntvnJ}-+eyVl@A~q^v!evGgrxf60A|s+v|`ljD+IyG zJef5oy2~~03%R#zewlt~!zyI!msSUcLRf%=Q%kZb7*a~o#;J+Y5SO-A1AdHFB_lN^ za9X|aJQsnqM9PY0B&`uKN#0szu!RL&Nlj)eMWxPCu%yJX>KF?()Wl9Zd^)nt$iR)22dT`W;>t>}XQD#htx{YcXqGoEH6#!- z)x~NQES!>y`BrY?WJlft8&fN;`G|44Y0bxIr*>k zOGgQWDi-zZ>gcv^-xi;Ln@_q z=`L*7S{P>PEi;xek2~jrP>yV{HD}M_;= z;~W}kjQoX=T**b8Ez7ZARIwOkS94k%2fdyxSk-$Jc2!`Ri|%Y~!sguSY;!Gjt~dwm zHQYqipevbbzv^&u>0(uA{_kA-to>Q7+&AyHSR?ij%8O87u~IHCqh##4G6v1sdHU5PF$f z!WyQBc`enWX+`s@=Ju{jXmSYa)E(>Dj+_m2$I9;IT?ft$2BcQ6`#i5}tPk5HWNf6) z^3Z&t>%eb9JuGfDR%L@-{wD9Rmv*o|y;(*Nl42jg16Ay2UC4{XnFG;;prthq=FL+m z2V-F#LK5@2s=V01vPDm08;)~@)-(7KO6}9AjnU@d=MHQrmuJ0eupU0^(-Q`6M|gs8 z-ybaH5@h}c!h1?NL9OYa zp>B7Nc*}OV(2tVa6B=_5O9S+f820+40e?UWdPA7vo29W)$a(-GcrNVqdACXafdO2R zhTS1=0K)u($k*}^v{~fZhJ)&oU z=R(G#jChVpe8yvX;_$4hU2X0yUdh+Ayc07gxOQm0H0mGng`|*Q@}XNKwg5GcpT>4~ zz$qC+kyQF_W3JnegrM|I&0dGKB3^SfU|0&6_XWSdCkT&}zdVVs#emZ7_olfAN zME!-QP&Le2%O9A^arRlBj@Mf8j_pLewKNWBt??PvRh3|SR!@TK>3^g|*kXr#{od_h zeja~@C(Xmc3&@{YX`E|xCb^w~+fJk`qQ7gO&ks;qW7~f|0;p}OCXA0fB%(xgQ{yi$_ zeTejX$ASMd{>b=1WuQi0_zSbh{NZG7VXVxL^z4L_OpA<<851pi%%4mqM%quO(0;}Q z37-QUGjM!IZF0T@Ji6mc%SoqkY&~Hx{w-Q#wo^>r%vkWt!1Q-Dhw5UTcGg$t?)M1}krhLnI#&*$6`HqnmRffU#y`Ba)2>)bOr2Grmp$SGH^cJKvRzeih z1diQ?>;|HBjLYKlD?xwV5_r6E;8|}?B&?lM(upH% zkKORJzPSr{2eL@dq9S88nXNZo$U$GxlFU_oH%;|jd`adp*YVSlqa~lQh}i&Pp@0#a z3mI{&ax6vkuIa{Wnx+`=#niMJL@7jDiJlu~hq+YGX6{Tq8|=xbg>}Cl9TVIGFDBNv3iP(9^_3cq?gI6UBhJU70D5i z+ixY+M-P;9zGuSxb(G!pli3}b!tNKU%D+5~$~UOqyHQVNyeS%D{$>;-+@i+$R<;x4 zoNNA--az3t7IX2}H0HMO?MRvVKl~)(U6iu~`2+ zj{1lXtE}k6+u#n$=_W&x<#&39;v>vEk0MFRW3*0{Q|R}s$?}iW&ri@c;u%KG;&1M@ z(bJ8~TX9^r1fo~pLF{~V6g3C+)3!0B&h`sH9OL8wUh5s_A#ut!PLYOpjP2?jWBl-F z%XUIMa)Fhz%A~3$bU&bVI$KM|Afm~FU!w17#wM@ut4*#;i940bb_CC{@Oii8<1r_)&o z74k-_q4=m|HJndw6bDuaI6ZAv{Kn#K&uZNKUwUTz4%BAm1qxz*nX|zq;c;IH zgH1s>W1*qF*HjCgjWYXgnFmoA<5G3&eCX@+dd31luS#rP0DbL#L_2UG8@Yt-N~wb; zm$SLO3510R(IT8HoIw$zr6hr3^#@VVkf|mnD5Dk_DzxwaNpLeca;AYK%Fp5XzBnA` zGwrC_sb;0b!a}oh*A&m~M$ctkD8IAGWaq>^O7$;v>^*(bBwwU;fQykz__3O{muP8Q zaG89CjpUP`ur{y{H|1Zhw1Myy__ujKW*3EmG=Lq<2PS_(e19S?13OgMB=e_gVyR66 zgo7-t1euwbd6jCHwjnj5+DvYbtVxGkbF_D!RXy~tBq(lM<#Z_@*+1X@m?XgQ=(Epa zIc;{rwS)h&nm4vWH#}Q{j>ZhbgPRr$Uj+W-~$FYd##^q3rmP32<_`P|F zd-Ia^<_UZAl8@x2%)J#`Q_bTkajj|n<0(pO+Ck*4xd!nf@yV2<;*-XI?jRSSu#XQe zH(6x!5dX=MvrRS0vUN2MY{q+|7db29CVKoa837aqI^K`?Y5HuiJOIwQlP-l|LokGP z2gIT1<5FvL{izcfM@E2Q9-q0wUrh*2Pt0ohN=w-+ER zUHX*V(Pb*hM5sb}E1Cy9LKI*>A#068skrAq%1sagoAl9(aT$Kzvj7cjH9%7XF>{HaO=gca-Q;nf7KSAUHvX zk(76}d$RDJijKbzssW9iPAYmYwNk-c5ub=YZ!pX?{{w9^-MLS_-y$gIRDn1f!WVHt zVu>LjmZ98OK4KzkPs%TKn`+2kW#cMSVT}dR3(6@rcmR(824o{j^|Ha0J+f~?Qvcan(>ar#U|E#hz4kn$x{pd5I_D?mIYSDrFh4dPcISM}i47cq&+ zQFMGm6R^~Th=iJez#|j^R)ikn0d?we`}Y(3Z$V%fK?im=?gsG(knePxtOVptk10Es zVAB&hY-se1T`qM80}W#X)wS~^5DhpHVYWFE$VB~0TiC>FCu|)gC#qdGIZ6G)nvDHe z_cFj6k$JiaTW=k{?_hEwgkPJgJAijnP+{}1zYkH)&PHj-CwXw7Q^12LlrN-_h(k$- zbghpI8LTN5WyYRMNPNJrXJHYPPEZ8!e$Y5qQGI7j~j7dLVzIZyDUnWO$qZ7 zbEq?N=~QB~Oq)WS$B3uL5$7X;wLq47uxnNANfy&gMVgb))iac%ipwccTm*bk&N0j?_=`5AoT=_fHuNJTEV8v^?;>_6T4`!!c+4*=$ z?;9Dyr;aKahl|;Xl}MUZB}=^~2dS2ieQgjk=W40~UxTZ*TKRad$r_#)rv<`KjbNOw zZbW=*fjalj1#=yKrFZYTx;^ebeD4H)A#zDQLz|4-aWXy=_fRwzA6ypU;$pm<$0dnc zz`L+3`p@$Qw$ZoD3fa5Hl$*C0cc(8Q_=?8bPH!m`)vE&0r0dq0vce5iT%#tg9>w8x zT@i<~V>2#VTc)}ybt!XIQSrb4n3qkNHRxsCcs2^II!N&ddO=tE3%=F2B6s>$Ujsb7 zqtAD=6Fg_87LE;X>(My2ox|o+z5_|JR}yE9>|bjVD>{)G8&{KEY6;o9iE}>V7Y`eW ztK>V^nyeesdnOf9O|LHI|DllRlbEmu?WJ9HZM2Nmu`()NFOzlnptyl3Pee&P-T*+{ zq|}kT+n(@DJhuqvgawRzX8L1;KGHt00{Bqvc0ueA|fJ z@twg+d`e!L{886rZB>T8BxRBpgK9a2SUKU?uFUKTt5`X0Q_4xia@rmj23Ahv^7-pc zB^5ZUgB1t$DP@F1`{ZU@utR=&y(vHO0;I?av+CK&ss|@lHGn)$tYF*Cs^`Kup{#oL zs2j0*aAsA~8LJ1!R9*GZc{P>JtIE9+tH*Q+?xEFFh539bu9jW)AIm2!dAARRAmt}o zfO$IMW?YWY2PU+_8A~Y>M_q=SRqyf8M>HPCUP#4Bmu;c7ghQ@YOIPBeRhe(;fDyfP zKq`*7N^vN)gmZ2%5*x80a6WDIRfauOPu-}N& zXCblRBf(8nqVm8k+>C=dg3gv()Xa!`okXxHIO#uKNdA?U`nRDF;n(On>=wf9Oxg51 zCYLJ0N|W+RE7jWn<%{Zb`))CE%eq6rbjf-;q%F(xX1jM<~MrR#P>=t|6cDl1yjm>f~onWs^(Kn&FnuY zzYX@MH6>3dAGqRY6fNb;7a7vYvuYD~jw+hPiO(xahF_pczBolm<4c;7V18LsFZzu8 z$`tipMK%^M5Zbxv-wMSY AdH?_b delta 9447 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 Woj=a;9Dh8Ef1mq*{)f=(2mc2u)&*1m diff --git a/BIN/CP.S.txt b/BIN/CP.S.txt index e4ffa698..9d158355 100644 --- a/BIN/CP.S.txt +++ b/BIN/CP.S.txt @@ -24,8 +24,8 @@ OptionList >PSTR "CRY" OptionVars .DA #bContinue,#bRecurse,#bNoConfirm *-------------------------------------- MSG.USAGE >CSTR "Usage : CP [Src File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n -Y : Dont't prompt for override\n" -MSG.DIR >CSTR "CP Dir :%S%S to %S..." -MSG.FILE >CSTR "CP File:%S%S to %S..." +MSG.DIR >CSTR "CP Dir :%S%S to %S%S..." +MSG.FILE >CSTR "CP File:%S%S to %S%S..." MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?" MSG.OK >CSTR "[OK]\n" MSG.ERR >CSTR "[%h]\n" @@ -50,6 +50,7 @@ bPause .BS 1 bCopy .BS 1 hToDelete .BS 1 CopyRC .BS 1 +RC .BS 1 bContinue .BS 1 bRecurse .BS 1 bNoConfirm .BS 1 diff --git a/BIN/MV.S.txt b/BIN/MV.S.txt index 09fe61bc..4ac8b0fb 100644 --- a/BIN/MV.S.txt +++ b/BIN/MV.S.txt @@ -24,8 +24,8 @@ OptionList >PSTR "CRY" OptionVars .DA #bContinue,#bRecurse,#bNoConfirm *-------------------------------------- MSG.USAGE >CSTR "Usage : MV [Src File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n -Y : Dont't prompt for override\n" -MSG.DIR >CSTR "MV Dir :%S%S to %S..." -MSG.FILE >CSTR "MV File:%S%S to %S..." +MSG.DIR >CSTR "MV Dir :%S%S to %S%S..." +MSG.FILE >CSTR "MV File:%S%S to %S%S..." MSG.OVERWRTE >CSTR "Overwrite [Yes,No,All]?" MSG.OK >CSTR "[OK]\n" MSG.ERR >CSTR "[%h]\n" @@ -49,6 +49,7 @@ hDstFile .BS 1 bPause .BS 1 bCopy .BS 1 hToDelete .BS 1 +RC .BS 1 CopyRC .BS 1 bContinue .BS 1 bRecurse .BS 1 diff --git a/BIN/RM.S.txt b/BIN/RM.S.txt index c537b2d3..fcb8bcc0 100644 --- a/BIN/RM.S.txt +++ b/BIN/RM.S.txt @@ -24,7 +24,7 @@ OptionList >PSTR "CRY" OptionVars .DA #bContinue,#bRecurse,#bNoConfirm *-------------------------------------- MSG.USAGE >CSTR "Usage : RM [File/Dir, *,? wildcards allowed]\n -C : Continue on error\n -R : Recurse subdirectories\n" -MSG.DIR >CSTR "RM Dir :%S..." +MSG.DIR >CSTR "RM Dir :%S%S..." MSG.FILE >CSTR "RM File:%S%S..." MSG.OK >CSTR "[OK]\n" MSG.ERR >CSTR "[%h]\n" @@ -48,6 +48,7 @@ hDstFile .BS 1 bPause .BS 1 bCopy .BS 1 hToDelete .BS 1 +RC .BS 1 CopyRC .BS 1 bContinue .BS 1 bRecurse .BS 1 diff --git a/BIN/X.CPMVRM.S.txt b/BIN/X.CPMVRM.S.txt index 6034f9b7..5f70ce07 100644 --- a/BIN/X.CPMVRM.S.txt +++ b/BIN/X.CPMVRM.S.txt @@ -181,10 +181,12 @@ CS.RUN >SYSCALL GetC sta (pData),y pla plp - jmp CS.RUN.CheckErr + jsr CS.RUN.CheckErr + bcs .9 + jmp CS.RUN.NEXT .FIN - -.3 jsr GetNextEntry +*--------------- +.3 jsr GetEntry bcs CS.RUN.LEAVE ldy #hFilter @@ -195,7 +197,7 @@ CS.RUN >SYSCALL GetC >PUSHYA >PUSHW ZPFileName >SYSCALL PStrMatch - bcs .8 no match, skip.... + bcs CS.RUN.NEXT no match, skip.... .4 ldy #S.STAT.P.DRIVE lda (ZPFileStat),y ProDOS Device ? @@ -208,37 +210,51 @@ CS.RUN >SYSCALL GetC ldy #bRecurse lda (pData),y - bpl .8 + bpl CS.RUN.NEXT ldy #1 lda (ZPFileName),y cmp #'.' - beq .8 Skip "." & ".." + beq CS.RUN.NEXT Skip "." & ".." jmp CS.RUN.DIR .5 jmp CS.RUN.FILE -.6 lda #MLI.ERR.UNSUPSS +.6 lda #MLI.ERR.UNSUPST sec - rts - -.8 clc .9 rts *-------------------------------------- +CS.RUN.CR.NEXT lda #13 + >SYSCALL PutCA +CS.RUN.NEXT jsr GetNextEntry + bcs CS.RUN.LEAVE + rts +*-------------------------------------- CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... bcs .99 base, we are done, exit + jsr BasePath.. .DO X.DELETE.SOURCE=1 .DO X.COPY.TO.DEST=0 - ldy #hSrcBasePath - jsr CS.RUN.GetBasePath - >PUSHWI UsrBuf256 + jsr GetEntry + bcs * + + >PUSHW ZPFileName + + ldy #hSrcBasePath + lda (pData),y + >SYSCALL GetMemPtrA + >PUSHYA + >LDYA L.MSG.DIR >SYSCALL CPrintFYA bcs .9 + ldy #hSrcBasePath + jsr CS.RUN.GetFilePath + >LDYAI UsrBuf256 >SYSCALL RemoveYA jsr CS.RUN.CheckErr @@ -246,19 +262,22 @@ CS.RUN.LEAVE jsr LeaveSubDir exit this sub dir.... .FIN .FIN - jsr BasePath.. - clc - rts + jmp CS.RUN.NEXT + -.99 lda #0 +.99 ldy #RC + lda (pData),y get global RC in case of bContinue sec .9 rts *-------------------------------------- CS.RUN.DIR .DO X.COPY.TO.DEST=1 + >PUSHW ZPFileName Filename + ldy #hDstBasePath - jsr CS.RUN.GetFilePath - >PUSHWI UsrBuf256 + lda (pData),y + >SYSCALL GetMemPtrA + >PUSHYA >PUSHW ZPFileName Filename @@ -271,14 +290,17 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 >SYSCALL CPrintFYA bcs .9 + ldy #hDstBasePath + jsr CS.RUN.GetFilePath + >PUSHW L.STAT >PUSHWI UsrBuf256 >SYSCALL Stat - bcs .2 File Not exists...go create + bcs .3 File Not exists...go create ldy #bNoConfirm lda (pData),y - bmi .12 no prompt, nothing to create, enter subdir + bmi .21 no prompt, nothing to create, enter subdir >LDYA L.MSG.OVERWRTE >SYSCALL CPrintFYA @@ -291,14 +313,12 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 beq .99 abort cmp #'N' - bne .11 + bne .2 - lda #13 - >SYSCALL PutCA - rts no overwrite, nothing to do, no recurse + jmp CS.RUN.CR.NEXT no overwrite, nothing to do, no recurse -.11 cmp #'Y' - beq .12 no create, but recurse +.2 cmp #'Y' + beq .21 no create, but recurse cmp #'A' bne .1 @@ -307,28 +327,28 @@ CS.RUN.DIR .DO X.COPY.TO.DEST=1 lda #$ff sta (pData),y -.12 lda #0 - clc - bra .3 +.21 clc + lda #0 + bra .4 -.2 >LDYAI UsrBuf256 +.3 >LDYAI UsrBuf256 >SYSCALL MKDirYA -.3 jsr CS.RUN.CheckErr +.4 jsr CS.RUN.CheckErr bcs .9 .FIN .7 >LDYA ZPFileName jmp EnterSubDirYA -.8 clc -.9 rts - -.99 lda #0 +.99 ldy #RC + lda (pData),y get global RC in case of bContnue sec - rts +.9 rts *-------------------------------------- CS.RUN.FILE .DO X.COPY.TO.DEST=1 + >PUSHW ZPFileName + ldy #hDstBasePath lda (pData),y >SYSCALL GetMemPtrA @@ -336,7 +356,7 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 .FIN >PUSHW ZPFileName - + ldy #hSrcBasePath lda (pData),y >SYSCALL GetMemPtrA @@ -348,6 +368,9 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 .DO X.COPY.TO.DEST=1 + ldy #hDstBasePath + jsr CS.RUN.GetFilePath + >PUSHW L.STAT >PUSHWI UsrBuf256 >SYSCALL Stat @@ -370,9 +393,8 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 cmp #'N' bne .11 - lda #13 - >SYSCALL PutCA - rts no overwrite exit + jmp CS.RUN.CR.NEXT no overwrite exit +.9 rts .11 cmp #'Y' beq .12 copy @@ -384,8 +406,7 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 lda #$ff sta (pData),y -.12 -* jsr GetEntry get back current entry corrupted by SLEEP +.12 jsr GetEntry get back current entry corrupted by SLEEP .2 jsr CS.RUN.CopyStart bcc .4 @@ -396,6 +417,7 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 .4 .DO X.DELETE.SOURCE=1 ldy #hSrcBasePath jsr CS.RUN.GetFilePath + >LDYAI UsrBuf256 >SYSCALL NewPStrYA bcs .9 @@ -403,9 +425,12 @@ CS.RUN.FILE .DO X.COPY.TO.DEST=1 ldy #hToDelete sta (pData),y .FIN + + clc + rts -.9 rts -.99 lda #0 +.99 ldy #RC + lda (pData),y get global RC in case of bContnue sec rts *-------------------------------------- @@ -438,7 +463,7 @@ CS.RUN.CopyStart >PUSHBI SYS.FOpen.W+SYS.FOpen.X ldy #hDstBasePath jsr CS.RUN.GetFilePath - + >PUSHWI UsrBuf256 >SYSCALL FOpen @@ -525,9 +550,13 @@ CS.RUN.CopyEnd ldy #hSrcFile clc ldy #CopyRC lda (pData),y - beq CS.RUN.CheckErr + beq .3 sec - bra CS.RUN.CheckErr +.3 jsr CS.RUN.CheckErr + bcs .9 + + jmp CS.RUN.NEXT +.9 rts .FIN *-------------------------------------- CS.RUN.CheckErr bcs .1 @@ -535,7 +564,9 @@ CS.RUN.CheckErr bcs .1 >SYSCALL CPrintFYA rts -.1 pha +.1 ldy #RC + sta (pData),y + pha ldy #bContinue lda (pData),y @@ -558,18 +589,15 @@ CS.RUN.CheckErr bcs .1 .9 rts *-------------------------------------- CS.RUN.GetFilePath - jsr CS.RUN.GetBasePath - >PUSHW ZPFileName - >PUSHWI UsrBuf256 - >SYSCALL PStrCat - rts -*-------------------------------------- -CS.RUN.GetBasePath lda (pData),y >SYSCALL GetMemPtrA >PUSHYA >PUSHWI UsrBuf256 >SYSCALL PStrCpy + + >PUSHW ZPFileName + >PUSHWI UsrBuf256 + >SYSCALL PStrCat rts *-------------------------------------- CS.DOEVENT sec @@ -605,5 +633,5 @@ CS.QUIT jsr LeaveSubDir *-------------------------------------- MAN SAVE BIN/X.CPMVRM.S -LOAD BIN/CP.S +LOAD BIN/MV.S ASM diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index 924eba16..492e29cc 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -182,52 +182,107 @@ InitDstDirYA >SYSCALL GetFullPathYA .FIN *-------------------------------------- -GetNextEntry ldy #index +GetNextEntry jsr GetEntry + bcs .9 + + lda (ZPFileName) Save actual file len for setting up + tax new offset later + + lda ZPFileStat + clc + adc #S.STAT + sta ZPFileName + + lda ZPFileStat+1 + adc /S.STAT + sta ZPFileName+1 Make nDIRENTs[i] point to next DIRENT + + lda (ZPFileName) are we at end of this buffer ? + beq .1 yes, go read next one ... + + sec + adc ZPFileName + sta ZPFileStat + lda ZPFileName+1 + adc #0 + sta ZPFileStat+1 + + ldy #index + lda (pData),y + asl + clc + adc #oDIRENTs-1 + tay + + txa Get back previous file len + + sec + adc (pData),y + sta (pData),y + iny + + lda #0 + adc (pData),y + sta (pData),y + + dey + + lda #S.STAT + clc + adc (pData),y + sta (pData),y + iny + + lda /S.STAT + adc (pData),y + sta (pData),y + clc + rts + +.1 jsr GetEntry.ReadDir + bcs .9 + lda (ZPFileName) + beq .99 + + sec + adc ZPFileName + sta ZPFileStat + lda ZPFileName+1 + adc #0 + sta ZPFileStat+1 + clc +.9 rts + +.99 sec + rts +*-------------------------------------- +GetEntry ldy #index lda (pData),y - tax keep index for later clc adc #hDIRENTs-1 tay lda (pData),y bne .1 we have a buffer to scan - txa get back index.... - clc - adc #hDIRs-1 - tay - lda (pData),y - - >SYSCALL ReadDirA - bcs InitSrcDirYA.RTS - >STYA ZPFileName - - ldy #index - lda (pData),y - pha save index for later - clc - adc #hDIRENTs-1 - tay - txa get hDIRENT in A - sta (pData),y - - pla get back index - asl - adc #oDIRENTs-1 and reset offset for this buffer - tay - lda #0 - sta (pData),y - iny - sta (pData),y + jsr GetEntry.ReadDir First run, get first block + bcs .9 ZPFileName = start of buffer - bra .2 + lda (ZPFileName) Empty !!! + bne .8 + txa + >SYSCALL FreeMemA + sec + rts + .1 >SYSCALL GetMemPtrA >STYA ZPFileName ldy #index lda (pData),y asl - adc #oDIRENTs-1 CC from ASL + clc + adc #oDIRENTs-1 tay lda ZPFileName @@ -238,58 +293,64 @@ GetNextEntry ldy #index iny lda ZPFileName+1 adc (pData),y - sta ZPFileName+1 + sta ZPFileName+1 ZPFileName=ZPFileName+oDIRENT -.2 lda (ZPFileName) first/next DIRENT - bne .8 - - sta (pData),y reset offset... - dey - sta (pData),y - - ldy #index - lda (pData),y - clc - adc #hDIRENTs-1 - tay - lda (pData),y - pha - lda #0 - sta (pData),y reset hDIRENT - pla - >SYSCALL FreeMemA discard hDIRENT - - bra GetNextEntry ...startover - -.8 ldy #index - lda (pData),y - asl - adc #oDIRENTs-1 - tay - - lda (ZPFileName) Add file len+1... - sec - adc #S.STAT +S.STAT - - clc - adc (pData),y Make oDIRENTs[i] point to next DIRENT - sta (pData),y - - iny - lda (pData),y - adc #0 - sta (pData),y - - lda ZPFileName set Ptr2=Ptr1+LEN-> S.STAT +.8 lda ZPFileName sec adc (ZPFileName) sta ZPFileStat lda ZPFileName+1 adc #0 sta ZPFileStat+1 - + clc - rts +.9 rts +*-------------------------------------- +GetEntry.ReadDir + ldy #index + lda (pData),y + clc + adc #hDIRENTs-1 + tay + lda (pData),y + beq .1 + pha + lda #0 + sta (pData),y reset hDIRENT + pla + >SYSCALL FreeMemA discard previous hDIRENT + +.1 ldy #index + lda (pData),y + clc + adc #hDIRs-1 + tay + lda (pData),y + + >SYSCALL ReadDirA + bcs .9 + >STYA ZPFileName + + ldy #index + lda (pData),y + clc + adc #hDIRENTs-1 + tay + txa get hDIRENT in A + sta (pData),y + + ldy #index + lda (pData),y + asl + clc + adc #oDIRENTs-1 and reset offset for this buffer + tay + lda #0 + sta (pData),y + iny + sta (pData),y + clc +.9 rts *-------------------------------------- EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat @@ -328,7 +389,8 @@ EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat ldy #hDstBasePath jsr EnterSubDirYA.1 .FIN - + + clc .9 rts EnterSubDirYA.1 lda (pData),y @@ -352,10 +414,27 @@ LeaveSubDir ldy #index lda (pData),y beq .9 + ldy #index + lda (pData),y + clc + adc #hDIRENTs-1 + tay + lda (pData),y + beq .1 + + pha + lda #0 + sta (pData),y + pla + >SYSCALL FreeMemA + +.1 ldy #index + lda (pData),y clc adc #hDIRs-1 tay lda (pData),y + pha lda #0 sta (pData),y @@ -382,6 +461,7 @@ BasePath.. .DO X.COPY.TO.DEST=1 ldy #hDstBasePath jsr BasePath..1 .FIN + ldy #hSrcBasePath BasePath..1 lda (pData),y diff --git a/INC/MLI.ERR.I.txt b/INC/MLI.ERR.I.txt index 9c111471..0d89524e 100644 --- a/INC/MLI.ERR.I.txt +++ b/INC/MLI.ERR.I.txt @@ -24,7 +24,7 @@ MLI.ERR.DUPFILE .EQ $47 Duplicate File Name MLI.ERR.VOLFULL .EQ $48 Volume Full MLI.ERR.DIRFULL .EQ $49 Directory Full MLI.ERR.INCFF .EQ $4A Incompatible File Format -MLI.ERR.UNSUPSS .EQ $4B Unsupported Storage Type +MLI.ERR.UNSUPST .EQ $4B Unsupported Storage Type MLI.ERR.EOF .EQ $4C End of File, No More Data MLI.ERR.BEYEOF .EQ $4D Beyond EOF MLI.ERR.LOCKED .EQ $4E File Access Error, File Locked diff --git a/X.ERRORS.S.txt b/X.ERRORS.S.txt index 2c9bcc19..b1256b8b 100644 --- a/X.ERRORS.S.txt +++ b/X.ERRORS.S.txt @@ -17,6 +17,7 @@ ERR.Codes .DA #MLI.ERR.IO .DA #MLI.ERR.DUPFILE .DA #MLI.ERR.VOLFULL .DA #MLI.ERR.DIRFULL + .DA #MLI.ERR.UNSUPST .DA #MLI.ERR.EOF .DA #MLI.ERR.LOCKED .DA #MLI.ERR.OPEN @@ -38,6 +39,7 @@ ERR.Messages >PSTR "I/O Error" >PSTR "Duplicate Filename" >PSTR "Volume Is Full" >PSTR "Directory Is Full" + >PSTR "Unsupported Storage Type" >PSTR "End Of File" >PSTR "File Access Error, File Locked" >PSTR "File Already Open"