From 200bf2b4efd36897d97eba28b648daf28256527d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sat, 18 Jul 2020 16:04:21 +0200 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/CHGRP.S.txt | 9 +++-- BIN/CHMOD.S.txt | 9 +++-- BIN/CHOWN.S.txt | 9 +++-- INC/MACROS.I.txt | 8 ++--- INC/MLI.I.txt | 4 +-- ProDOS.FX/ProDOS.S.XDOS.A.txt | 7 ++-- ProDOS.FX/ProDOS.S.XDOS.B.txt | 31 ++++++++++++++--- ProDOS.FX/ProDOS.S.XDOS.C.txt | 9 ++--- ProDOS.FX/ProDOS.S.XDOS.E.txt | 63 +++++++++++++++++----------------- ProDOS.FX/ProDOS.S.XDOS.F.txt | 9 +++-- SYS/KERNEL.S.UNISTD.txt | 8 +++-- SYS/KM.RAMWORKS.S.txt | 48 ++++++++++++++++++++------ 13 files changed, 135 insertions(+), 79 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index af7fa221001c924c67829b45314e5c1b598780cd..f39ccd71176a5ea6992db7a8b8322f1db6d5f6e6 100644 GIT binary patch delta 46838 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 W2F?Q)fQ!H-;4*N<@}_asV*fuxbSDV_ delta 46072 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

$VJ)S5+-uSXQo5!i|eYe(q|7xl39O z*SWG`lYJiN9D+$$fwhNV5?11Uhu9E$l?A~H%2c7i7ZEO+2xjyWmVC$hQm^39?^xEk zR*)miV)vu!@N?g>Bki;T;u`ZR-t`@;jDPLltz1?Ma*@!!vZ5U9&beMFSun2@E($ZVZ;S%BgLSGIf9H3h6m~zj z!a*cNvG3u59##c^TTB=PuzE5tc7V_G2PKjn0=H2+5ssbAM2J2__}R%!h$vEzb%)uA z+K&jjI;@4D*ffYiT=ocxD4kclv}6H^N(eg7-?k<9SP5tdE)wpn68RyY9}9}-udG^h z83gt!{ltQp5>UVqpn4*Ul7(A$0Lt^qNg$wn7U1~pLqIG)5zrY1l)?Q|k`9#4D=IE0 z3;NY{=-&%^9DM}8a)eE?J1Xcq z<{0ie!YTo9zjK5QaWx4v7t8|_B9VH+afJ8gG9%-Ee4+wILoPoFruW!#UEy{q;fL=F zO(J7)RnTHjk#{fNbCmU>`tWy0*_fnLLMyOO7y>x~Y)|GchG-5s0box^2p&s%R;VKz z5K^7TF~?v*UcmE?vGGm-%v-`^6^gwKU?{7SUJ<6KY#B-Saqd5-3d3nOhMh+4vBzHhrWDQqDk-I%MA7|yY4wj_b z;IuWQl03v3Y>{8afGt{FRqSY-GL2EuV+4p{0S^!*JcH||F{2=)xN(Aw zQt-gxaL6wK+>l@u(WyA*7e2O_^9zI@>A3C}c9d&|K&N!x{EDJ#nANCE3O7w>B3uEw z7S=HF%}|k$Md72})l36gX0nv;;#=Hl;8LU@yh z@1A6%;YA<6UdU_;@QhwiU!gDwu~TtvFGMucu(22X&vbmQ7nb)-O!u*I^elmmYF^Ih zIe1DR8UDV)=5S13_rIlg;}jSy8(_`+<)4?lC7b%u+QIj7kqQ8k4pZ)GAqmIyW` zT`JfZk4{7_qwt$s!L!s*_G2Y7 zUFR=%re78oElH)o>-)We@AR|2idtbR)Nx6PDMF|QS!KAE!Z+Rl5bRYv`3#uBYk1We zHf+Rd%QW+FOg&lT%ZlJeWf}BP)#J`HFcS^<4tzMT5n5W@JYpJg%vo3wYjN&bn7lV| z-B~tNw2s2%EsVdtPMBJDJ%w=#xX3pt+|vRsbOVL|Y++(VZ&5gWI};GRQ4m0YG$F=u z+4QebphU5m!qwXux!u?;6iAfDZo;iz@gDf%IoJ=IF?AjyqId9|0ak(4=K;puhO5rQ z6l@1|zsrmkC%j8x8Ohi0oQL+U*y#dTV;fGqz{bhodLl7#a1MNG`~iOP0-x&byTFd} z*a=GHLzbk>*oLZ_(vqc+Stsnm98^-f@yLs867>p@ z;(ef{`WnYvfl2%Z&$|NibBMwbA25+l-wpX9i0TyG_{%G-2i1f7pb1<8qy}JXJVN2F z4;WSiVF4&t83|x3ac&?*25T`YBsGClDQprimE^dv<`RFzpAA4#^)tRTz=n%XP`Gsm zAX2~JXRfl!Q6~jmIrR?NXbPK-=u-kamY0Mir!6RHzd$kW3~s#&5z$%FiXdTd^Cs{- zK7SRa`vMjZ!d85d!p5D9Z}6p|Sxbq}7~+z?LgsncA1VfL^&snEe^nSH>>7nP46-4$ z*N3}~Ot4@vNMZqY>0AFIVGRH;lHMW0k4)G^UO@8&U>8uW268|xcn0tYJZ=TR3zFV_ zVzE2@N;F9_sT9Di1MY)6Sy{BE2=D)p@pAiZSS<-j4J!f2j{Jkdmp^2};m^iHhfypX zIsohpSNXuG-Cc_+SMtfY7BZQVW#dsW-0l1J8XGtouwYSap^%GdFhn)xnNJ!cQY^)jb+)5;|x1ga80z@Krv_K@KCB=)URh8$!&W%CdUa}4b~I>IC=C9uznfNy#e0L8NYOc_49BU7AQ$I?D>M-aO7@4tmQawHzaHB_^%sm zFx-*yyUF?mcnZUNdK2!F*iHXVgJO{<0LM33McxPj6;dW52f&WW{q{ik%8>EkwUAik z3ikk?43WScJCG}Zj3%Gi)tuiizF@%jKI&0Dk6CGX9p}FiIAXfO~JT{_-Rq@meDUU3|oa zJV#@v+pNMF?gsMN#xugivSV?=Z8jEe1wP@YR)-bAN*JqEjSojbFi;tRF1-#m! z_>E;2Yv3G$4+EWx{xw?=63@3>?W2nYw9(?(B@1{^99}fGh`mtY5X4T)K%S*McDrU# zNsYF=q;gSBskUfQQCTJOEW=CgvI_BH(8v;nW`rob9Dj6|4YR6*m5#6Pg>A^Q3djD+ zx+%cGT&tm!7|-LR&U*=|^`e$x^{=qs*Wj0bWfjrOE$sx;R3Y!@iQ|Axbr{`Eg_rLl z$;+;>EAUs)GjiqAEeheq5vX@w^)Fg1@_rGIxW{@0zf3g4zdL3PfH!ih6|N8ufgMQ@ zoQBrnIrrF*P_1CBl2--OaCnU@Rp=Uz999czf~6YXfIt5j&UPhhEWWJ~sHVP-&)s8F zya>PziGkf4d>x$JuM^BST8GUaGf__Khb#rqMgUW4?(<+u%YE32HsG%Ntgrt@!471b zg!x}FWB_kl3;^Rt_rUAS%T!MT&q0OHf3b z@P2#F+)Gfu@2&U$ul3$rZ#|d$7w*iNbIzPObIv|{@AI2pPt!H4)#4x+to3*F8F7dzTGh)G`iDKg z?<@Z}{9D)H>0;=gGkGE_%T1FfV4lP{b7QAa+c6WY6_rVNjn2QQ#>IHO&K(8MB48cb zoIOQofb2XeOQsz!sW$a({dvyTT{tM? z9pi@I6*oNaJ?c1VA0Tg*$#Pf=r+p{w=}}w6gLC)bD$zeP-zUo{dj|BQA*bxAQ6Gx8 zavVDiX1Vm{97)|q_nfjP1aB9u&{o@uD~z zW6uvdD*CH&CmBD=6mS-r*v~Q*oweISy2NRB1LPl*Y3fB8{<(~);9zAqO)n!8vxg#n1yY6RFkfvXruEho`ip~i#-)&T~ zcwWkOKWKPUPti zE?U0;&b7jUFoK&UTOdu1FJ-6qbGSMp1Xt@5S>H-siG?1Bn3XU(iIZ{RiaxEl+chP^ zT~=k~@^f}MUkZ9lX}u9`)-aE);Lz}c-d38Mcsh3RLECKT|Hi_+KGCajUF~BaFWYIYN77 zZLrt3if-ud{~hHiT2<`#;%CSY$`#mnS79I3IuX0AczbN}QCg&ENl`y4y0gS)n<@GJ zB>uh8AH+7l&<;fli|U- zTBIoijv!~KZzyu(9S#NPv(*0qi&kll5Y@3pid-*isl%)^pssb+-}LS%yqs8M=!!*> z-8REz7mbUi_0d{vN34SB((p@!#4E7;v)bWSkv$WX#n>FK2o=%7e-Zp-<%_z9L-{0% zw?wgc+@^B5W6Ew-wuFRGqG};iOg=aY~N{51- z$S@#ZLHx5muq7cVecmuZjpx|anWKbT?&(nb~+)_&*y#j>8!1^cC3~W;rD@_ta84-!o)<%I!M7b z8gn`!AMS^Y8qI<4epT0KNuaKXIg=3U=kuwUG_biM?Q>dLqopQ%VW@gv3jN0)v!y<0 zI&6I_r2O49?@WRdn*r0uX$c7U8aPhN@cLS4W?B1b>NqVErh}))X$6=R_v2UcH+nv^ z^bw82kuci8c#Nr1w*onA2qH>4Lbh5h5#eCRZc(jSm=+O#H3#8Ub&XRR>l&LUaHv&Y zKGclw^;44h2k|%cDD}BjO_mFOq(@(3HKSHjO+PKE({fEeVgdtS)08DrMmKm{PW-mq8Jqx@Q+QirSDs=KTH8ltm9#5Y}w%Ps) z**aj|Obei`6SP!0P@&l!uyO_|w7x@)z;IFCpcTlW3i(f0)gGB)TnYufriIeW4O%c( z?3)|3-g1OO^QWr`a->45rei%HMVB;cc6^>}dZX3{et?aQT2`+(QDxoI8=jyHapYX^BUHqSrA6h+NAXgEW%5l zQ>^G(F{_+3{0S{IQ0UK{4K;0@h|tgKMF*O+Or;b1)g8I!c6_&(y9pkbU+ zV3~N1X+{8MY&kVe(qfYPib|OKiBUSVLcv0rgFP--&ux|T+$8kdD%vv%jo+UFno-Yz zRMm|4Y!Hoa)>2J_X&!zBUc!TJZ6_1~_V1++rS;8PTG%kOI@?tpdF7huqsb!_dS({< zXCoEbJ`1}0WeT02h2A<^p^VvTl6*PZb~fyzSD;(Y#zOTfg&vx%<^^0WR3Y3_z7&6r zLVIT;VsH!%YC)4%)6^ENNFJ+D<1kCIT%*u}VU|R>R-sphSuEalqUUDSE3|)@B}1N| zkneCyhSJ=iQ1fCff*!tJyG(9WXxVU!1C$6Ety+H2MB`aCiDpV`rt4dAyOZgGR?U&x zf{`C9k@)Ksv06d*n929=G6d?Ofa$GtycI)dJH@qWv0gVA4L*eq$e!(M+O^pgaCxn2JL-0xxb!r?WB!brMGVpJl(Fo zN$(#@$XR=QtCr;tV}<1_bj8s$41WTyVEb!rr>^Ws=~vR+ue3D(tA*`Ye`%c8(1N>F zM@LMFKH#I`bEV)9;F~sz#28gJnM)&EIYy7yImZ?{xLYd>f!~Ff5{BZ3gpsY3y+@0PY7?=$ z=62y*G2ft@PNj?~dyiXCfworKw+C-l;%)TOJk=5t1%Hcc zRMZCr?Ee~8iS}?#r`~%pmvvJ7eAw%6r)TzRnej7>^5A)4oy2dJ`=0Dl$sGD^uhuL0 zPLZQAX5A!Z-9=?zYncUi|D~i$%0~?5A?+UFgfqkK!o~pqd4?I;QCMY{QWsF=0yV{S zFEuStqfLuw_5zI2aI|1B0`VFDZILpU(1rzSMmnJcG`#tKjy7(QA|K$tHM4c65U*^j)nWhQDhfuIQQUPIh6NL2fip8)ioHJ z5qr;0HuKBI19}Cfb2cLJ$eFo@mMu~<5?|HL>25nVD1TlvDq!$A^j=3-9n?xq>nVOQ zLZjZK;>D^}&e}j<9@H|uHi@jW-Xh;`w9J^d|MFNb9n$y8QI)7$^t<%oVl^uDJtOnY zhFf!sNmt7I*SBNyRQsMQoM3ji z@;)`rgdLWLG>iWZ?tttZMMzWOP8xOyO3^1Y=a7~W_bFHG7G8fhNCBUVj%wJmoL|82 zgwFjHUA;t&mdke0!oyk!X@|8e#M!T20w-UuJ$$Sf>eq*dwfG)z-$=doQ5PTDPm@S3 ziaMY_>Ny-!$d6h~W$9AnL7H|%iwJ@@M<0W#!TQh$dc{NZ#PXH zGsB_7J=*U(92Z7|1}XUaixOejDn3dz_akQcM;h}jhMk}2&Tla~{!Fiat0hPNqQBl! z0K7S(U|!`&dB4){-)gq#!&9^YOwt|?o?>zDdFzVxc4c%9Ha!&1>7)cl=R zm~v8N;_g=n;Ag$V4*~o}f6}D9kVQ9Jw0U@PI48x@p~;N!$W>Rut_2~DF7}TeuwI+YucgQ`GKE-eped}mLGVa2kFTogtELJF4ZRM`F_PE5P@C{+TI1)?JO3-`^84M=DOgjvUajAR?75LjJgduvS;o{)3be9jt-5?o% zX%KU!Fuwb0Tz5(oeD=5cK4n9|r*kANU!7eIKPxU+7r zH0~_Pe&No@^oBjM!$%W3K31O*aLwqB3SrhV)^6Ye6D{pifRxa*azJreh?|Hj5_a={ zZiC|g)CRq9c}NL2fiHIoS0|wAVn$ygfXD!Y})uDlkbXo$@M+|NR$y^EV z5xuDi-U?N{6Ulawl9=T2kok;<>sa$8MHV zX2|sB-BAB??x1t z!Wq&{fAC)9eh`a|vF<)v_L~-_EWvwo<{pbpzF(&7x%m5lOx1HOx$;t(7RpOR_$JWG-Mv`h!)SuCa%wDET>Q+`G!+k8u?{G3cx^DQ=bhcG$bWQ5J!F%I5T zOx;a2Z5(9u0u4K%rOB&gT0b8Prx)pk6I!^}OX30NyiD6pXxZ{BGL~EGY?Zh(7ASUig1>8#0(H3@gqC+VBS^@QswS(2@))te}%x zcJABa(ewKQ^@-g*+(81~6*&m2vt)ixxZ<)m)2fA*EYlX+yU>y*+qTj>C$-#gwobvC zDY}+nopNj=uT#(`w^QjUtao=(`zb9e=wp$+`4e#iC7;piQ(7;$aeg|57vM|sJFOMV zwy&shktG*<5Yg%}Fi9;vjo!VN)}6*O`fEDB$Py2AD1Nae%m09D1VUg)@MJV!ov2UV547iuW|NP~)EPC_B3pi> zyt8b1BHMkIaQPRRF1-?K-_$Nza#l+*{YvZ4Y8BXv=&{6Nhqp>yB$HNGuGw?IBvHDTlWjy zNZlAG&!@Ua!b3lpK$*iFu~?xF80N^hq7f-{mwmu>N=r>!o9-hha7w`wm7D4& zw@s;Ub$JAWn&3;CgobkYIf5tQT9``vY4!qJ#l{{s$*UPh*hZc(8MLU5c&t{xALdXo zczO?a#9_}^+HglgWSh9mZntZ8M_yrGQC@joUn#Dgs)wUqH_+7Kj`)r#hSBCmVOj^% za5;$9bshrqO@j-R5X)3Mmh=+dRRKrk?%EIlwUB1rsAjhPUO$ws?-v14W(@( z9Z?>4;n0$JYo53HZjm&zLSzZf7nwW)jev~5` z3*+d^99i-rg|14lCdrExnx0^F$oDCvEw5ztn*P>;Ts@)g5&&BiC-31ihk+t7*gDOjof1Ym|nXrtz-ZjeJ$f;GTu6%@R;iJ6)C6?rGcj8t6`?*Cel*ra6IKcg^#)&NXjLTj`4~%-_0SdG|*A|Jc&?tCJo&k1yx^ zfir{VPCUOtx^8ac`IUEVoa?#qv6JfulWDiZ+HumNpDwcU=|Zb2ZMa>M#OJ{?t^6sa z%=P}(ht7K;ADrv#VO?MvtDdyrtJISB&)%F~9OGR0zqx+aXYlXzgf4vH&)>Sz&)Q|) z=4VxpTc&5?I{g%X!RzT2=NE)NCedTN9Z{j))|KAY_dRwbtO!81%cK?N=lyB>ZbxK9 z59_KP+x)FN?!`x1&riqaB_ER>lDr>Uv&WGURPbD|)RkuP2BE~Lny$1E|Gjc*zXAP6 z49gjbZ5Cm8+`DB_Lpgg{@3dpdVY+vIRB7XIt4*};w5?8jV)XQ810S- zl{xfVXfQX`%(|(Q7l1V!kSIlbPx03}!?WPRV^ff^BD2|8twiVxYuW)nidL^}YOQN* zm3sZml`dwz3RMkDIwopk%(znUucGG0Z$6jU%?u)-3FO=+j($+b02wR-qd#%YwPRi{OsL5=hc<<3F}2QlkTz{Edg8m3iS z0?*+roZ9+zQof{6r&jG?r(n=nXEY*T@URP^_u_VW>xeaiwSFK+hSHD<7vauSHObo?EGAA%2t8WkRK3EuPUW`6ZOg|w zuk|zH1n_9G!WGI+Q!^qF6{9bPB89t2Pc3Ce!-JFt&r+;HOViZEP4X^K9{Cnv*0nO~g< zwg}56XGDPREYw33G^sEHPOEe^KO0d3qDb7f*pG;i0X7%~al8O}=cFlh*59qCG@Ta2@vc%*)#+>Z>QQJ1+N znXoB`UjEmr+oY^3I9K|bVk2m5adlwGm9AXdbp2k+x>}(Py{a?dbaXvT==qY@7~@_& zuZ5>JxtcoObtVOmb)^wzYCBw!YqM3GhJ}gf2z3p0tx^y?lEN5e?Dh?+?|vSmMI3yT z(K);!Nuh!qHJ-hbm*>DeI#Ho%Iq>mMqDS9zMiyd4!TGu)Va$__{sjjm_b>ETE&>+e zR^YEo z#%GH&uE#9=h?z|}Tb$93Io%R!92k$Kf!{D??k{KjL~mKj6ltvj4v)Hh8H4gqDw zMTI!ASQwwDYKc$aFpozVStd8vOIR9U5Uj<<$dy-9OEbXwF6qDJ8x6~kbz2O_i->MP2^O$wdU)O`Q9x$_v~Y|*>q_mQ(ueovvP z4mB-mv(f*ype{VPPOj6(R;W93K62W6e4xin(RPPwF?)W9o|5*FLYYpuFSn8ZHfOB7 zU7;4Inj5-9lyPB8v(#rNP2T40jmX6A54`wOTEER%1RKyF+nlzFFSz)dCC@LBHNp;I zLA+pb#@K|gL;YoSPoKL*dY?U_y6C?dU(>|x&?Wa_V#-I@_kP;2-I<1{rSG;o9U0u^*z`9nL({5vtkYEDikjqRQodPtWgg<^=!Xx*21v>2;KEC7fcD9bV+O(-{-^ z<3-mM|4fBDokbB{{OqfQ$6a(Po-&WooSn|pm|sQJ{eKfx*HcQi-?^yeA3ObN>rQ88 z@Ck9h`rxEFq}-E6=Z@L$j0!v@3LT&oIHAOzQD{OD+~x{BT%_jU&qw0V*&=MxlsqW9 zSd9)bdFbuu-ld)|dr<#kRi%mp&d^{*oON|br>6(aEmpPQ9v*s!5kn+Qzdb#4JUk1cr!uxSw*Uhu$m9Vf+^s+i(8 z9o4Nqysydd!e_^L(9ja-;jtbxwFGKXoQJM`WyO2YGbL(^YKK&13^ z4?0(>ren+cib=*1Yc>b*81+$J9&N^N+ z>v-|3o0j+xX6i3t!GLc z0kZoTE{ag-g)=4LCJ%b=Oi6KmTYIMzg!nr#rL)_ZXAeZ7^XqSh;;ldE^J2jOQ!QfE zGtsAu$&xP182h5ehSJSs3HDNiDwgFz^UjuJ26>7XMrdMEHq`DNWXY6!D)c8VO^8DX z-oJH6VQYV%KTEimN*%d()}c+tl%`xw5ohD@1@e?ezMZ3dQI=lc!b?@ z+-O)98=}TdYQrZv++qI@Q6Z-_N?VVuCBiq{E(X-UjznJ>+|&ECY5Ba~a*0^svA$7=ZeT{RogPh4>{60&#s_M%;mGkUK_X|Vg57plv{2V~ z7(PcX=p9juI6Fh9DR)mxh^Fp`aKiE`r@pwlpqf?i-J+jV@?XR!LyzY9;eu`5zrWEs ze6ger)R#!2v~N&a@F0}N=410${j;1xZeNbqe}UKJA&JMnx5%7H#0nL-Xo? z(Zc%XqvEwFG=Xz#o%L$(<*)Yne62FC>`&9$Kj)Vn44}Om%1VZMf*eQ+8qfUO25sLZ2JWTtX%J({?f=UKgsN^{j$s(I*_2C}jYbS3k z8!z|t{1*;c9;C7pJ=KnfkQALU2Q>6xr|FiLPD8(pGjg-X3mW=I1xroTGT`tBLMc_AZE+~^-zK%6gTuCNeD5xz`0boI_Z7(#3^-EwPW?(b{A1dLvXj7d*+vKuc!OL=mJM+^iyT=F+UnNaU}@ML5`z0-sJpr~5t) zOO(S*f=?Z6Ibxm5eCi4|z=M*Czo)2Q>uH46^$S-Ud-R+9AwG zr$9s@ZZSOL6DJbsJp#r2g*-hHN%-A^;RQ6PI(d4uPM+=?W1K0J!eVLX`(>dqac=r_FlgxIf!Kz> z_iR;l`gDu<jo-XLqGyaJ_JyX!9 zX9@cBY@I&+${dj!)4;pv({1?YP@O(KuN!^3{bKs`FQ*2oH6}@V!gHlm<}Iks2U&+$ zpG(e5DM?98NfT7(PZ(6^Pt(Nb%B+6ptW0(8p;Mi|K}(-2`v9=>41>0U$^})a8$Vd2Yc!Jk>_)0ytLGD5gPg2|Q?7 zb>}j9^{&94IurU*TDP)niOG{jJYP1_`Mb3%{QZosNL&~E;=%X(;Of2B9X+>9Ka3-> zg=1AD2t$HDaB4RW{j>$=DJa`#5GB1(W|zk#)9MdEmo$bB)GG0`;Ds{K+9cC~mxssn z?!R!?vZ@uPg}cRpeW0K=9~DPaUp%w}^?U3%vb*CDu3Vb@8~c^Q+485Vx>@Rar#FnB+Mta(C|UGH+S9e+#bJKbF&W z+0;dUEs89w%a}lRQ@v8K_RiI1H_6p-^MJ!a`#TN4{Tnso?;3_2x{e-wr!2(sZ}bWNR&zI1BH|xa2}6re zFK7`L6bNsZ0`brKL+<~Q{_q#oA>lu&4u;kst6xyym(J)6o;-uTG^Vq@m`(Xx1|k1e zb;!D)I{eSHhKm)3j{l%51YD#m{0CLRrBXoOMm1-6BK*9N} z>_!>J6_4d#;!#vL^ncRRW>al8vOF@_LerO5nnC{F-#fU%=E&~LCsbAKjX$;`+O%sx z42_*p>Frx#%g?s!CvoBQ=~Y>@>_oY@+0WZvVJiZ&WXqZIbSgVs?ny@*``

e@_{t z9MTuk4^jcCgj7NLLk2(wLIyzwLxw;ufm{k13K<3&4jBO%2^j^s3^E#WIphk+m5{3- zS3|CWjDcJWsfLV&)Ii2TY9V!yddPUl1V{s<5po@5BBTj23DOLi3~7N}4{3$8LE0fV zK&C)$gxmzV8FCBcR>)MyG{|j`4#;#!CxqK#2ILONOvo(AY{(qQoshdAcSG)h%!SN@ z%!e$1EQH((Sp-=Oxeu}gLXi6*4?vbe{snmu@(|=<$Rm(tkVhepK^})Z0eKR#9P$+8 zX~+u5GmvK?&p}o~o`<{uSp``Qc@gpw2{{Kjf4Bc0(|ibn%%CuMFnBWbVCczUX7FP0X7FL~ zW$jWC&siW(Z*jWe8&kXNX{kWQbyjW{6>kWr$;lXGmaB87vG|hD3%WhGd2m zhE#?$hIEDuhD?SmhHQo$hFk_4Lmq>jL1S<*I2rO83K$9*5Qpo(rdhX)eJ8(yu|P_!z&DH7}hep z%J3S)>kR7{-e6eI@Fv3shK&rH7~W!do8cXXcNyMe*vznn;eCd!3?DFj$nX)vHiqpC zI~aB{e9Z6(!>0_NF?`PO1;dvNUoq@r*v+tqVK2ki4Eq@NGaO(z$nXurA%?>YM;N|k z_>SRwh94M?GW^K!6T{C8zc6$$9Ao&E;Wvik48Jp+VEBXKB*Q6&(+p=A&NBSTaL%*= Kqo3(l%l`m&Z)`&V diff --git a/BIN/CHGRP.S.txt b/BIN/CHGRP.S.txt index 4c95cd04..2138830c 100644 --- a/BIN/CHGRP.S.txt +++ b/BIN/CHGRP.S.txt @@ -154,13 +154,16 @@ CS.RUN.LOOP ldy #S.PS.hStdIn rts .5 cmp /S.STAT.MODE.DIR DIR ? - bne .6 + beq .6 + + cmp /S.STAT.MODE.BDEV VOL ? + bne .9 - jsr CS.RUN.DIR +.6 jsr CS.RUN.DIR bcc CS.RUN.NEXT rts -.6 lda #MLI.E.UNSUPST +.9 lda #MLI.E.UNSUPST sec .99 rts *-------------------------------------- diff --git a/BIN/CHMOD.S.txt b/BIN/CHMOD.S.txt index b8687639..5c8f325d 100644 --- a/BIN/CHMOD.S.txt +++ b/BIN/CHMOD.S.txt @@ -149,13 +149,16 @@ CS.RUN.LOOP ldy #S.PS.hStdIn rts .5 cmp /S.STAT.MODE.DIR DIR ? - bne .6 + beq .6 + + cmp /S.STAT.MODE.BDEV VOL ? + bne .9 - jsr CS.RUN.DIR +.6 jsr CS.RUN.DIR bcc CS.RUN.NEXT rts -.6 lda #MLI.E.UNSUPST +.9 lda #MLI.E.UNSUPST sec .99 rts *-------------------------------------- diff --git a/BIN/CHOWN.S.txt b/BIN/CHOWN.S.txt index 3f39aaf1..4d89c71e 100644 --- a/BIN/CHOWN.S.txt +++ b/BIN/CHOWN.S.txt @@ -155,13 +155,16 @@ CS.RUN.LOOP ldy #S.PS.hStdIn rts .5 cmp /S.STAT.MODE.DIR DIR ? - bne .6 + beq .6 + + cmp /S.STAT.MODE.BDEV VOL ? + bne .9 - jsr CS.RUN.DIR +.6 jsr CS.RUN.DIR bcc CS.RUN.NEXT rts -.6 lda #MLI.E.UNSUPST +.9 lda #MLI.E.UNSUPST sec .99 rts *-------------------------------------- diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index 917e3711..be029da6 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -113,7 +113,7 @@ NEW .FIN .DO ]1=MLIGETBUF lda #2 - .FIN + .FIN .DO ]1=MLISETFILEINFOEX lda #2 @@ -121,11 +121,11 @@ NEW .DO ]1=MLIGETFILEINFOEX lda #2 .FIN - .DO ]1=MLISETACL + .DO ]1=MLIACL lda #2 .FIN - jsr GP.MLICall + jsr GP.MLICall .EM *-------------------------------------- * FPU Entry Point @@ -204,7 +204,7 @@ FPU.FOUT .EQ 58 PrintF .EM *-------------------------------------- .MA PUSHL.G - ldy #]1+4 + ldy #]1+4 :1 dey lda (pData),y >PUSHA diff --git a/INC/MLI.I.txt b/INC/MLI.I.txt index c3a1f61d..9d14bf9a 100644 --- a/INC/MLI.I.txt +++ b/INC/MLI.I.txt @@ -35,10 +35,10 @@ MLISETEOF .EQ $D0 MLIGETEOF .EQ $D1 MLISETBUF .EQ $D2 MLIGETBUF .EQ $D3 - +* ProDOS FX MLISETFILEINFOEX .EQ $D4 MLIGETFILEINFOEX .EQ $D5 -MLISETACL .EQ $D6 +MLIACL .EQ $D6 *-------------------------------------- S.FI.A .EQ $03 S.FI.A.R .EQ $01 diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 0708c761..06bc0634 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -406,11 +406,8 @@ XDOS.SetPrefix jsr XDOS.GetPath call is made to detect if a null path. clc no error rts -H3333 jsr findfile go find specified prefix directory. - bcc H333C if no error. - - cmp #MLI.E.INVPATH bad pathname. - bne pfxerr branch if error is not root directory. +H3333 jsr XDOS.FindFileOrVol go find specified prefix directory. + bcs pfxerr branch if error is not root directory. H333C lda d_stor make sure last local name is dir type and #$D0 (either root or sub). diff --git a/ProDOS.FX/ProDOS.S.XDOS.B.txt b/ProDOS.FX/ProDOS.S.XDOS.B.txt index f8a4c03a..21382587 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.B.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.B.txt @@ -1,9 +1,27 @@ NEW AUTO 3,1 *-------------------------------------- -findfile jsr lookfile see if file exists - bcs nofind +XDOS.FindDirOrVol + jsr XDOS.FindFileOrVol + bcs .99 + + lda d_stor + + and #$F0 + cmp #$D0 + beq moventry.CLCRTS +.9 lda #MLI.E.UNSUPST + sec +.99 rts +*-------------------------------------- +XDOS.FindFileOrVol + jsr lookfile + bcc moventry + + cmp #MLI.E.INVPATH + bne fnderr + moventry ldy h_entln Get FileInfo From Directory Block Buffer .1 dey @@ -11,8 +29,13 @@ moventry ldy h_entln Get FileInfo From Directory Block Buffer sta d_stor,y tya bne .1 - -nofind rts +moventry.CLCRTS + clc + rts +*-------------------------------------- +XDOS.FindFile jsr lookfile see if file exists + bcc moventry + rts *-------------------------------------- lookfile jsr preproot go find volume bcs fnderr diff --git a/ProDOS.FX/ProDOS.S.XDOS.C.txt b/ProDOS.FX/ProDOS.S.XDOS.C.txt index 24216651..2fde24e2 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.C.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.C.txt @@ -698,11 +698,8 @@ L408D ldy fcbptr change status byte to reflect sta FCBs+FCB.F,y (carry is unaffected) L4096 rts *-------------------------------------- -XDOS.Open jsr findfile look up the file. - bcc L40A0 if ok. - - cmp #MLI.E.INVPATH is this opening a root directory ? - bne L40AE if not, then error. +XDOS.Open jsr XDOS.FindFileOrVol look up the file. + bcs L4096 if not, then error. L40A0 jsr tstopen are any other files writing to this bcc L40AD same file ? branch if not. @@ -712,7 +709,7 @@ L40A5 lda #MLI.E.OPEN file is busy, shared access not allowed. L40A9 lda #MLI.E.UNSUPST file is wrong storage type. .HS 2C L40AB lda #MLI.E.FCBFULL fcb full error. -L40AE sec + sec rts L40AD ldy fcbptr get address of 1st free fcb found. diff --git a/ProDOS.FX/ProDOS.S.XDOS.E.txt b/ProDOS.FX/ProDOS.S.XDOS.E.txt index 794aa5b8..b21bfb50 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.E.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.E.txt @@ -6,7 +6,7 @@ XDOS.Close ldy #$01 close all ? bne L4683 no, just one of them. sta cferr clear global close error. - lda #$00 start at the beginning. +* lda #$00 start at the beginning. L4654 sta fcbptr save current low byte of pointer. tay get the level at which the file @@ -14,7 +14,7 @@ L4654 sta fcbptr save current low byte of pointer. cmp flevel if file's level is < global level bcc L4675 then don't close. - lda FCBs,y is this reference file open ? + lda FCBs,y is this reference file open ? beq L4675 no, try next. jsr flush2 clean it out... @@ -58,7 +58,7 @@ close2 ldy fcbptr * clc strip 'files open' bit * ror VCBs+VCB.OF,x -L46B4 clc +L46B4 clc rts L46B6 bcs L46E6 don't report close all error now. @@ -68,7 +68,7 @@ XDOS.Flush ldy #$01 flush all ? bne flush1 no, just one of them. sta cferr clear global flush error. - lda #$00 start at the beginning. +* lda #$00 start at the beginning. L46C3 sta fcbptr save current low byte of pointer. tay index to ref #. @@ -169,7 +169,7 @@ L476C lda FCBs+FCB.EOF,y needed or not. cpx #$03 move all 3 bytes beq L4780 - lda FCBs+12,y also move in the address of the file's + lda FCBs+FCB.1stBLK,y also move in the address of the file's sta d_filid,x first block since it might have changed iny since the file first opened. bne L476C branch always. @@ -338,6 +338,7 @@ L485F jsr tkfrecnt force free block count before releasing sec and tree levels. sbc #$01 sta dsap deallocate for last (phantom) block + lda #$02 and don't modify last data block. bcs L489F branch if tree level unaffected. @@ -454,7 +455,7 @@ XDOS.NewLine ldy #$02 adjust newline status for open file. rts *-------------------------------------- XDOS.GetFileInfo - jsr findfile look for file. + jsr XDOS.FindFile look for file. bcc L4988 no error. cmp #MLI.E.INVPATH was it a root directory file ? @@ -509,7 +510,7 @@ L4994 lda inftabl-3,y L49A4 rts *-------------------------------------- XDOS.SetFileInfo - jsr findfile get the file to work on. + jsr XDOS.FindFile get the file to work on. bcs L49CF if error. lda bubit see if backup bit can be cleared @@ -544,7 +545,7 @@ L49D0 ldy #$0B jmp drevise update with clock also... *-------------------------------------- XDOS.SetFileInfoEx - jsr findfile + jsr XDOS.FindFile bcs L49A4 ldx #S.FIEX.BLKPTR+2-1 @@ -559,14 +560,10 @@ XDOS.SetFileInfoEx.8 jmp drevise1 *-------------------------------------- XDOS.GetFileInfoEx - jsr findfile see if file exists - bcc .1 - - cmp #MLI.E.INVPATH - sec - bne .9 + jsr XDOS.FindFileOrVol + bcs .9 -.1 ldx #S.FIEX.BLKPTR+2-1 + ldx #S.FIEX.BLKPTR+2-1 ldy #S.FIEX.BLKPTR+2-1+3 .2 lda d_stor,x @@ -584,38 +581,42 @@ XDOS.GetFileInfoEx dex bpl .3 - clc +* clc .9 rts *-------------------------------------- -XDOS.SetACL jsr findfile +XDOS.ACL jsr XDOS.FindDirOrVol bcs .9 - - lda d_stor - and #$F0 - cmp #$D0 - bne .99 jsr XDOS.ReadGBuf_d_frst bcs .9 ldx #7 + + ldy #S.FIEX.ACL+3 + lda (A3L),y + beq .2 + ldy #S.FIEX.ACL+7+3 - -.3 lda (A3L),y + +.1 lda (A3L),y sta gbuf+$14,x dey dex - bpl .3 + bpl .1 jmp XDOS.WriteGBuf + +.2 ldy #S.FIEX.ACL+7+3 -.99 lda MLI.E.UNSUPST - sec +.3 lda gbuf+$14,x + sta (A3L),y + dey + dex + bpl .3 + +* clc .9 rts *-------------------------------------- -XDOS.GetACL clc - rts -*-------------------------------------- XDOS.Rename jsr lookfile look for source (original) file. bcc XDOS.RenameFileDir if found. @@ -726,7 +727,7 @@ L4A7F cmp #MLI.E.FNOTFND was it a valid file not found ? bne L4A74 no, rename error. jsr XDOS.GetPath syntax pathname of file to be changed. - jsr findfile get all the info on this file. + jsr XDOS.FindFile get all the info on this file. bcs L4A74 rename error. jsr tstopen is file in use ? diff --git a/ProDOS.FX/ProDOS.S.XDOS.F.txt b/ProDOS.FX/ProDOS.S.XDOS.F.txt index 7f0913ed..c4ef63e8 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.F.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.F.txt @@ -1,7 +1,7 @@ NEW AUTO 3,1 *-------------------------------------- -XDOS.Destroy jsr findfile look for file to be destroyed. +XDOS.Destroy jsr XDOS.FindFile look for file to be destroyed. bcs L4B66 if error. jsr tstopen is it open ? @@ -816,7 +816,7 @@ XDOS.CmdNums .HS D3D4D5D6 table of valid mli command numbers. .HS 808182 .HS 65 .HS C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF - .HS D7 + .HS 00 .HS D0D1D2 XDOS.ParamCnt .HS 02020202 parameter counts for the calls @@ -824,7 +824,7 @@ XDOS.ParamCnt .HS 02020202 parameter counts for the calls .HS 030300 .HS 04 .HS 070102070A0201010303040401010202 - .HS 02 + .HS FF .HS 020202 XDOS.CmdFlags .HS A0A1A2 @@ -863,8 +863,7 @@ cmdtable .DA XDOS.Create .DA XDOS.SetFileInfoEx .DA XDOS.GetFileInfoEx - .DA XDOS.SetACL - .DA XDOS.GetACL + .DA XDOS.ACL dinctbl .HS 0100000200 table to increment directory usage/eof counts .DO LOWERCASE=1 diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index 66632300..d371b4a9 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -295,7 +295,9 @@ IO.CLOSE.NOD ldx #2 K.ChOwn jsr PFT.CheckPath2 bcs K.ChOwn.RET4 - >MLICALL MLIGETFILEINFOEX + stz K.MLI.PARAMS+3+S.FIEX.ACL read mode + + >MLICALL MLIACL bcs K.ChOwn.RET4 >PULLB K.MLI.PARAMS+3+S.FIEX.ACL.GID @@ -304,10 +306,10 @@ K.ChOwn jsr PFT.CheckPath2 inc pStack inc pStack - lda #$57 + lda #$57 write mode sta K.MLI.PARAMS+3+S.FIEX.ACL - >MLICALL MLISETACL + >MLICALL MLIACL rts K.ChOwn.RET4 >RET 4 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 59987544..7d2bdf18 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -33,11 +33,12 @@ RW.Init >LDYAI RW.MSG rts .10 jsr RW.Detect2 - bcc .1 + >LDYAI RW.MSG.KO1 jsr PrintFYA rts + .1 pha Push Page count lsr divide by 4 to compute KB size @@ -84,16 +85,21 @@ RW.ONLINEBUFFER .BS 16 *-------------------------------------- RW.Detect2 php sei + sta SETALTZP + ldx #0 start detection at page $00 + .1 stx RWBankSelect lda 0 - sta RW.SAVEZP0,x save Bank 0 $0000 to prevent ALTZP trash + sta RW.SAVEZP0,x save Bank 0 $0000 to prevent ALTZP trash lda 1 sta RW.SAVEZP1,x inx bpl .1 + lda #0 + .2 sta RWBankSelect *-------------------------------------- * Added after David Finnigan from macgui.com testing sessions @@ -109,7 +115,9 @@ RW.Detect2 php eor #$FF inc bpl .2 + ldx #0 + .3 txa sta RWBankSelect *-------------------------------------- @@ -122,13 +130,17 @@ RW.Detect2 php *-------------------------------------- cmp 0 bne .4 + eor #$FF cmp 1 bne .4 + inx bpl .3 -.4 dex we reached 128,last detected page was 127 - ldy #127 X = detected page count + + dex we reached 128,last detected page was 127 + +.4 ldy #127 X = detected page count .6 sty RWBankSelect @@ -141,10 +153,12 @@ RW.Detect2 php txa stx RW.PGCNT PGCNT = last detected page, as we do -1 for AuxMem + sta CLRALTZP plp - lda RW.PGCNT - bmi .9 + + txa PGCNT > 0 ? + beq .9 clc rts @@ -154,33 +168,43 @@ RW.Detect2 php *-------------------------------------- RW.Install lda RRAMWRAMBNK1 lda RRAMWRAMBNK1 + ldx #RWDRV.SIZE + .1 lda RWDRV.B.START-1,x sta RWDRV.START-1,x dex bne .1 + lda RW.PGCNT lsr sta RWDRV.MAXHI+1 + lda #0 ror sta RWDRV.MAXLO+1 + lda RROMBNK1 sta SETWRITEAUX + ldx #RWDRVX.SIZE + .2 lda RWDRVX.B.START-1,x sta RWDRVX.START-1,x dex bne .2 + sta CLRWRITEAUX inc DEVCNT ldx DEVCNT lda #$B0 Slot 3,Drive 2,0=Not Removable, 0=no int, 00=1 Volume sta DEVLST,x + lda #RWDRV.START sta DEVPTRS3D2 lda /RWDRV.START sta DEVPTRS3D2+1 + clc rts *-------------------------------------- @@ -372,18 +396,19 @@ RWDRV.START cld ProDOS will check that byte!!! sbc RWDRV.MAXHI+1 bcs RWDRV.IOERR DRV.BLKNUM >= RW.DRV.SIZE, IO error + php Disable IRQ as no vector set in RW Banks + sei + txa Get Back DRV.BLKNUM asl compute PAGE = blocknumLO *2 pha lda DRV.BLKNUM+1 compute BANK = blocknumHI *2 rol inc +1 for skipping Aux BANK 0 + plx move page into X - - php Disable IRQ as no vector set in RW Banks - sei - beq RWDRV.GOAUX move from/to aux page0/1 + cpx #$C0 bcs RWDRV.GOAUX move from/to aux LC *-------------------------------------- @@ -520,11 +545,14 @@ RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK * Called form Main LC after RWDRVX.XM execution *-------------------------------------- RWDRVX.RESTORE ldy #RWDRVX.XM.SIZE Now, restore begining of $300 + .1 lda RWDRVX.XM.SAVE-1,y sta RWDRV.XM.RUN-1,y dey bne .1 + tya setup A=0 and CC for exit with non error + clc rts *--------------------------------------