From 30e70ae0b5e2a3a38fe8fa3dcea0d06ec8cfabf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Mon, 29 Apr 2019 07:59:01 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/USERDEL.S.txt | 197 +++++++++++++++++++++++++++++++++++++++ SYS/KERNEL.S.PWDX.txt | 13 ++- 3 files changed, 207 insertions(+), 3 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3880d5149c8ca8e9dde1dcc0db113ef7972f6085..738aff4c56195684416a2d9e4a2a46c71570d29a 100644 GIT binary patch delta 404338 zcmeI%dwdkt*}(BLn=B03?B=@3!X~g>jDWC^aA}~e3M4`>gph=5tuHYwkO~PVQNgNV zl>|gk0n3=87^z^RU_mrk+bY)9s`Y}^+G@20FW_6P##XDfR^I2#OklC?U+=#^KWcVo z&gD7ZbLN~gXV-plGHtE=xBuPbr}kI9D-soVbL9WEb+r5+s7 z=eE8cm3Ht&e{|rsqyE6bljjuNYm7Nq@X9&f^x1~e*@mjOl>Omg?H~SRrjK2u1{Y*y z>8lZ4*ul!Te`^@tZ3V{*>@v4i9>4Oe-&9RkiT|Xf1PrA-Un%eXiVl9iXl|*ESDwD)+on1$sjG`e zi&XGd)luJ2mvHx-LgoFQ>QFh`RkX-Dx4dNG6!&grOOwj5RL8m1HF9lHrFh1G?7iTG ztE=>ON=n~ds$<2HHSwWim3Nn}@dqk8&RVggHa^@5WW=a7D(h~islykw>fpxdYrfr5 zXY8_gR6^Y&8O?iigXQ`U<$6Ob9v!FBx*P+yMQQgYd>yBJ_esL0TAk3lR|-hkr=sJn zmNm7?ykB+Ht*BFJKT;jFOX?gEDQ>@H(BgJ^QosTEuC*tqj0X~n*3t*1#LNd(bb{R$ z-RR{dQ&svyx*@A=cl|xHyI1mprdUi<4tUtww9M1r{ITTEdPH@!FZXmWPx{7$g50^) zrBx-R<-NnOPnHb9C3;8?^0|XI;=6R4k-D>cXVOLe{1y4XGcBlX8Yvs==Y^mrugvf{;&c;5cePe~a5BmdZRrM0&^slt>b z@94YR4<*g)Tah2R|3sw1nsX?rrS-A=uE~+~ft~4*-cLmmVC2`%<);!ppGwej>eEB| zlV7rLT&z=yM*6_DpDZ?CyZzPt+mGe%GCxb1(RFg=tNEK>&6mH&@;4vLU;fOIKmY#o z;rou|_asFE!GZf;&F{%HXUadrN2KXXa^=v%hm&@s?RhH6lX~RS{r*086znXxv!Jv4 znWT@6JbAsKae@&sRNl;ZT1}Qo@q*%hvBk@9p#)FuQ;6``BoI&DZ`~YWHjY9q$~v z=dr*-PilFrL79!JqosC@+Vk^($4dQ0;IX>kweAC09j%-nt(;O_J-KLDyu1-GIxQ>y3w5)oG|swkiE&dR9#wgDp}r55=r59J!|P_Q5xgKX`9^Q zJnmUrR3H0!uiW!wAUW0455<-bHgEl4U!?n)z{f^w?|gbmNqtkx8rAP7cD}gs{Zz@! zx4o&QS$TgZjmdsgzT40J(9&p`)F)56`IrP1t5f|Bs}4yRSLWktuG6l!aO=|gbF?*xO&DcZYynA5^r1@m$-to(qJ^ zekZxIfA0)6x2aRtw8WJERVT6C9N%m1z>$gm50b(Ey3@T*Ti=i?xqq})Jr~Hy_>&~m z6S@!_mCO0ZtlAyv;g#l__T;R5Z@KN4Me1$2Z@y#qpE8fzU81}vx=NY< z>-3!YXD6BYp3^lBR-a_{!esk*SJ0VcOCYp@(Aly>N6*F!a?zLG&keZFZ#i>>BM>f%GCCTrOXf%K|=PFV@5eJN6w%jT0< za#D?sC9yO2FmdJe8|#%XV8|mT57IhirWy8wG$h@6`h~#Y=@~}iMrNGK$dU{89>yjp zQW@F3DV#Y&W##BLCw7Yp=30eE0@?Zfb(3UwV*3oxK4C-lC)y{JXH8iZ&TY+?pq+h4 z)Kvr8G|-j(e_L_X@_IYD^`OG&{YhU_;IYt_4&p>FzO1$4h_wJsGr2xHqDpnbj412HY+>x>Ao2;AU^zPT4AP0ZL`rV6x$h>pi4jHS`&(|MU z%g(W_V#=&i6`X2(WyTXvbDA!Cjq;bc!Rsl^SL!0mB6fiU9-3~Q{7oRYV1`b+TKURc zTzN=l%5DFJy~9H`siAT^?Zva4w807~ca;Q@xO)0#J2rY7K1UCiuXM6mW2=up08C!2kdlPvSwiJ|EA(s!{NhZMQku(#|9v+VUc zNvPJjt{3{s%Uh-`uWj1%a^U$vvdb<~p}K$1G+k#}qASj+%wFpDfZh1%rPF3ttKf1y zV87bndbh#fNo???Zi6Q(?+V=uEA8eKG`Ov9bXzTt%PQRqml@HC&UlulH`!?yH@i)5 zNo;yanM|XXyG@^{f>#>Rul-v@tKEp!Bt~?V8<9MG-_;Ra?L>5q8_~6HL|;?hRvpn= zJxc8-Od^WgX3c=hOCpL%!Nq13z6R~$@#A*^mFn5bWO3m52@{5xl22|+Pral)l+_-}ZVv_9LpklC z-1bnYJ=DKFG@v^a-fbq$oKY&U!jgD2zYvrX@ZlvAi%${xy<}RbP zqqcd4GJhZ$^xwOsRQ-avJ7I<#ugpEp?X-ImW=gsILn(TNEcjh+u6xhOm3H45seOB0 zF`2#gNh}%n>rr~47V8b?NACQ;-50Uyrn;r6zG0d2 z{zSSbyCFPmp!ZS9oBLQ|UguRra`%7S`f_DBWUXlk56RAaGBJ%kh5bse!#SRur>r9l z;p{a3GdhJVdwQzR`L)&A7|zc3KC3C7vpcoj4ozqEJ}*~8FSz-S==?!zQe${z`pDa4 z)o>Ep^P1J%7@m@m{d!{MGS67QY79rx{6`aOJf>?5PJJsesXYN`ht)ag< zqeHI)XY|D1q;z>}be7%gmHCNNLGbUVE6@+l`c=zU$qrPH_0`JznPl?+Lk~ZB^(c~s z+yA-yWt`q&{!^Fvg>IBAkj2XU(ikAS!6hn1d1S7#9|Xf=KQ;LtkCky*I6O4TV{aLp z!je7qZqxqa^?GDS-^U}X>5-oF&_sVIx0Z@MY%YWqn_Gerv4&y3F_TS!^cQ$2dS zvZpER>2v#zp2agF-J!hCjqWSL$vgAj{L1OxGb7~2;>GfhePA2snxtW&h zaW{i@YeOL?Z*MnQc{zFgCJxY8!XK7enwylF=l;!i{|e+lL+9ZZ48UBjJz7%tTIG&fe}xe*?Fx1BfA(;HmOX-K?LHn&5ENsEG` z&b+t2zM-FtmeEple$@I`PF`Nc7^lN}S3i|D)|0RWRK7yHyYvfGMp5D&J*>t_Ill3p zQ~Uo39_!cx#>DNb!;{nX0h!s?c|prD)vZ?Hqh>Jg)@WJ9)OcCNv@uhPW>+tWmdW^V z(wyzH9$y_Uu&!IsXVkp3bhW5*dFA|@qf@Kng(@RMzE;kc^=PZUP^8i`^?iBHZgLW2 zX32N?Dk(NODKfLwl%{264Kn2HD}^c;w6?4XXQc#k)S~KWX+_CRRz{)!u#vibfajz) zp#QOq=Y#*W3^RG8XXIdO&dbTU*3p-;eb&*d!+nh*R%1~($C~wW-(6PrhyDBKj#lN- zS=G~}Me}ZqmQ0DepRJw!k}ui5G`ZQ6Gs%jq4F_8%>w|)Y)zhYwm&cd6=d@q%eJ`D) zGQW{0^iiHnyY1*5Ci2sSKbfP&XYv?-Ki{IG-0C3KL0?uD%hmt@tioL`|2DpJdPYmf(TmedfeaNmH>+`v0^ z$R<0xQit!n^6L8aYp{2YWX!CR3VL5F?Z~pK6RKR*dU?yLD^+SuZ+(+gaNZfMu39O_ zNGf&y=>)!or>ZpJF792ayY=s?`p8C&veeY#xmaT8#J!91~2eujg*n4($+dv%e!^;!U|=| zS*YGKnQ|Ozzk%!1&;IMI^pE<72Ft;xy&oA?JXU44OF})IR+ZGY)at<$TCc45uyFP? z<(0!vm2-ps6+$;4ae(_ax)I7YSPnc-9dRb632k-?x>R<`k|g(L<-VOHB)VStDI08>DKp@`*hmlbc21qAiojm)|t0CX(n`7Z|wDtH@=FBat z+3IXo^-QaLKXBufJ-7S{q=LJxyIOr&XWPH|q~Ftf$mz^k_HRG-38(VPZ$Bz{ubsHn zd!Kws*{eb9cI4ST@7F|W3% zd83|xhhE~G0FLVYAUkEZK@ZBwZdpTpi&cDHFwpNI=jzyQ>+ziAP^7s@qYVsk~5uLIqKIHn*P4UU`3mTj1V)3Tf%El{V@ul@EV$JdThWPTvm9hAe`leW& zY}wb?8Lv}kKdjuPV5?m~S;G~zE9#e=DnIH}AU`bG>-Wlmk4SWtat>eF)L0j5ZjP5s zshJXQjxAdmYiLpCPn=|OwA~RcnLBINLX{#%+tJxoGVk~wRVCHY>Y6E4HJen%W6Bk< zSII(^a#-KBH6NE8rK0+C>#kXz;MNb!)-RNy&Nr1B7>PuVN8XJXgDVCrIi2YIv`g(e z8c{#nzkJ=Xwl~|4%8#Rlb7B6vx7*%ne=BlpWPkbYH=lfc>+8FZ+5bPW>jBBI>t3B} zOlL-y+H&mfW4qtnwO3yl9CmPA4uP$Ev(=Q`kYqz|%_R&2j zj{LFh#M37*J@SvIrrX#0sVLX`|$y0 z=AM`PobNs7IcH}5rzf-5%fG$vWMte?S`^xHEMvaBDG6+uZayJzCTDN?%p4_e%Coyi zXKov0oZJ1IU}ET&H-g#SC&!lFXC%5yUmk1be6G~C(vsW}>Q74P=G`^Ff8CdJ_EI&h zG(TTojqAR;tNwi0Ffz839xb)I+){P)x^vXRxhnlnc2>wx%42uq_BT1$eeCG(_8B?7 z&ulZkJ2-rG*SrlgTEEtzx^gyDw9c9u&wZ-nYHP`ENSrV^7??gQyvkDaK@J7mMV56fpStXUoqczhd#b#mDSVZy)aX%ycJny1$w>n2UW!4 z5566*urBNMHn()gx~9i7hIZt{``?wtm%bf;!nu4P?fpQ7=7D#Q=yySBe$z5tQ%Ev~ zuK#eE@5qjWu^oqFyM6!2n%8x5)xp^2gE4tM9NT<2w*2`+@4ouUs6B^cecreyJao^& zSYMuRzWf%4>0_q+%j_+EY|xP(_6Fwrq}NUFY+kg#W8}WXZR0j|F7SnV1514;yn&9)aUJG9 z-+djPeZIEKeERX;c6{^g$M?kBj`-V-1bU7Hx4-2NRH!lA zW>n6uSUk7)jweD(J)OS@dHf5K^~$$ewKvzSvrax0+CQ!M-^a}pm7MI6cY~V_suNX95{u8T zR0SKHH8^X*!X*pOUo?B>;)_*&t8;DCqKg+*En29vLqVJMQsv*`beML@zu67FOoe}NYFSp=4fKNlp^TvLR+T8T zW-O?bL}|C}d?u734>)wf7_(!0-?Dk}AN0vO=o+u`{!@){@={sqtEq;nCCc|-dTowZ zLm#)+yby}DJkg&a-E3p-mm371)PY@}N=((a{DoY}e@aGZulxSosKURLP<3XU+B&TfJ`zUTDtTGpxH^8&Q0AvI#;^pPt3E9q3H z)w0&6YgRO*>T6admHC41BC7A!2(@Waa@_+7*qD=u8K+kTSDj~MnkONT0UOXZj{MBeJTJ6V}g=`mbl$P_DN6?q4sP>?t|gc|d7Vg~m96jc&v0LQ!>4! zGRMi?ed7&hCMKK*ntiU}o}-+ZIKg?aZesIKlw$iFHC5%78K+Kc<$6|@>nNSaILUd8 z!zNqPUkb&)b)IWILFG)-Z`aD9vGu~47tB`Se=*L;i8`%)MRzS3>8tJ_bXN1vaNWw3 z`8A0=@^x$POQE9DnY!*;<*#tPWC_fY;$UU}JdjlqnQhm-e2!B$JXiW{kRa@>s%mC+ z^^!{EpXV4QWY?IlXTllJ&G!vAs0HakUEl^aNkzVC-(y&n8_z{OKmGL@xbe`CMIonO&YJ_*WO( z9_QTIv%Xoa!ZmujojJBEB%03OhF%=5)oarSSmzFKiZYX0{YpFh(yQE2E_X*MGk%3u zzuHJlv3u7;y~eJ)Y^6KYRp~>mJYOkb>;)G1z8lm;`7(5aj%tH_r;)90RBdilvYl*{;?O3U_7k@DhjpW_TsYLc zNs0_r2oCi504XuB)B=dPT!-8n0x>c-M3S@PZTM;Gfawi`Ds$?e^=B=3XA zEzj7D&*f{vjct+qwn#x+B-|D$Y>O1NMIvpH;&@Gm;W0XgN9S7)H|K>-IoS-k)%xDbXmQK!U$#28I0C^Rr9YJ)y8!Z3wo0%8OY(@E zXe7NV-!`MYVR?-*+od4;4kuT+dz){&)N5L)d^_CNozkiPKDSHfp_YL!guXkS^6ZYZ zgfvOMNlMo%Wh33~Hv6e=Hqa{juG4D!?{=SpmZ{<^g2 zK0Di1H?MAV55}$beto~uo|spinl_=eV%99>d%&q)u*a@_`qA}4Co=y-{fSSRd*$BY zeOBM9Xo1mf)znABVP*bIE(RZQaO`7TVUKmL6vcX_py*LuAiGss#u`6S6+fn1N33D> z(cuMoPo&qe^TdAZq55c1!IP)bggp|SNUZDXqi4s=r!~Vf_5*DjIJle7%GJmLyYcAf zzNE1-pV!g;Dm~g4tcO-d!^Vr&n$^*KA&D#uqxGlQWw+#Bh&wzVNzG{yHP*|yfol=`#8;d{${YDb;NQ1texhgRL( zxT5~5R(n@}M-QlQg#RxCQ?>BjGX^(nc}=5=yl4GEZqjm0`u6|T-PCSSzT-~!;rCB< zuO&A&EN@W0K0U|RD)R#k^EW;1{&DiCY zpUtd6IVHn;M;Da5Vuaj-l0B+OuC=DHq-aXM1fXpTq z4zV6DEE%#e>V_yAQ;7~SW{3F22#4wj&+@o?q9Z&^9PQjSL6X;Sk9{I78DWhnDv3tV z@tiiujr#0imP#kFk=C-Jl9CHYIqv;uF_k^qlXgy0{xPolG?hCxy+qHBang@}yl3Dv zobXt0K5Vr2W;RDZ(RBV&N!;nbHC{VHJvB0@f3ge*+_#dwM)u}zGLIOgXZ$evrIiQU zmESjdLDYAI S.PW + >SYSCALL getmem + bcs .99 + >STYA ZPPWPtr + stx ZPhPW + + >LDYAI 256 + >SYSCALL getmem + bcs .99 + >STYA ZPStrPtr + stx ZPhStr + + jsr CS.RUN.CheckArg + bcs .99 + + >PUSHW ZPPWPtr + lda ArgUsername + >SYSCALL ArgV + >SYSCALL GetPWName + bcs .90 + + ldy #S.PW.PASSWD + lda #0 + sta (ZPPWPtr),y + + >LDYA ZPPWPtr + >SYSCALL putpw + bcs .99 + + jsr CS.RUN.RmDir + bcs .99 + + lda #0 + sec + rts + +.9 >PUSHBI 0 + >LDYA L.MSG.INV + >SYSCALL printf + + lda #E.IUSR + sec + rts + +.90 lda #E.IPWDDB + sec +.99 rts +*-------------------------------------- +CS.RUN.CheckArg inc ArgIndex + lda ArgIndex + >SYSCALL ArgV + bcs .8 + >STYA ZPStrPtr + + lda (ZPStrPtr) + cmp #'-' + bne .4 + + ldy #1 + lda (ZPStrPtr),y + ldx OptionList + +.2 cmp OptionList,x + beq .3 + dex + bne .2 + +.9 >PUSHBI 0 + >LDYA L.MSG.USAGE + >SYSCALL printf + + lda #E.SYN + sec + rts + +.3 ldy OptionVars-1,x + lda #$80 + sta (pData),y + bra CS.RUN.CheckArg + +.4 ldx ArgUsername + bne .9 + + sta ArgUsername + bra CS.RUN.CheckArg + +.8 lda ArgUsername + beq .9 + + clc + rts +*-------------------------------------- +CS.RUN.RmDir clc + + rts +*-------------------------------------- +* Called if option S.PS.F.EVENT enabled in Header +* Timer Event : every 10th seconds +*-------------------------------------- +CS.DOEVENT sec + rts +*-------------------------------------- +* Called once, when RUN exited with CS +* Put code for unloading LIB here +*-------------------------------------- +CS.QUIT lda ZPhStr + beq .8 + + >SYSCALL freemem + +.1 lda ZPhPW + beq .8 + + >SYSCALL freemem + +.8 clc + rts +*-------------------------------------- +CS.END +*-------------------------------------- +OptionList >PSTR "Rr" +OptionVars .DA #bDelete,#bDelete +*-------------------------------------- +* Initialized DATA +*-------------------------------------- +MSG.USAGE .AS "Usage : USERDEL username\r\n" + .AZ " -r : Force remove files in home directory\r\n" +MSG.INV .AZ "Invalid username.\r\n" +*-------------------------------------- +* Per Process DATA segment +*-------------------------------------- + .DUMMY + .OR 0 +DS.START +bDelete .BS 1 +DS.END + .ED +*-------------------------------------- +MAN +SAVE USR/SRC/BIN/USERDEL.S +ASM diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 26e08be0..87c74d02 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -63,7 +63,7 @@ PWD.GetPWName lda PWD.hDB ldy #0 jsr MEM.TXTPTR.GetY beq .99 -* >DEBUG + .1 lda (ZPPtr3) beq .99 @@ -123,7 +123,13 @@ PWD.PutPW >LDYA ZPPtr2 .1 jsr K.GetmemPtr >STYA PWD.DBPtr - jsr PWD.DeleteRecord + ldy #S.PW.PASSWD + jsr MEM.TXTPTR.GetY + bne .12 + + jmp PWD.DeleteRecord + +.12 jsr PWD.DeleteRecord bcc .11 user exits.. jsr PWD.GetUID new user, get UID @@ -290,7 +296,8 @@ PWD.FindRecord >LDYA PWD.DBPtr .8 clc rts -.9 sec +.9 lda #E.IUSR + sec rts *-------------------------------------- PWD.NextLine iny