From 49d81f333f8bed532114fc3c77f54b8f0a0d8c83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 6 Jun 2019 17:45:40 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SBIN/LOGIN.S.txt | 192 ++++++++++++++++++++------------------- SYS/KERNEL.S.PWDX.txt | 70 +++++++------- 3 files changed, 132 insertions(+), 130 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 492395c9cc2f3aae329578d39a101adc47fc2765..b688b57ccab02976cbacf6e756ca43181df0cd82 100644 GIT binary patch delta 14447 zcmZ`<3tUvi{+|OZ9$DCB*YfguQR&|2t>Sfz|%kkKbj_%x`}4o8Qd*zQ38X z%m27!UJmSe(%^q6Y3O~s4O0RRC5AB1aUy`zTL++`-QH% zk;Elgt!TpwN165&ocu%Lz3j_Bb@2uJl(xwY;~OV5leW-?%*L#Ahvl{ADN0F;)PK~_ zwpk6NQ9@N`gI}Y6b7)(aBRYQQ+JpGtJf-cr%PRY+mCe!npKOs%OH#uA`?g7o4tO?y zzU|ERZ(G(m$V;Uy(n}L;UGkY@md>Bs?k;7=)-;E1`e^$Pt;ZgoU~3NA`_aSswq1iA z?L!=nv+<5Q6WZiMpKtzr*HB0MFh@%>H0-fCLSJe<1}%@^f4;5d6bjQz&m7)+q4W3B zy%!uy;t%ia{H1jB#ZwnM{Z9Q@+PLuhdEZr>t2o<|#GB7fJR2&{J9{L%^TP6BM?77F zjyN{jx1D?a`>wAxojG+b@w*Wpx5PtmdFK)Tt`SE5EtlZ zBdSq}j`jhLmKj|5@oneY$fh&O!3w{4+eFq4e@QLJcz>x4UpJm$$CY>fqIAag?v|mv zFmBt|+fTGSgRdK9d9tH2p)$GjvzEblu2jdf{N?S()h}p}iqg{b()NcFx(qE3;$i#g zu09o~MfG`nJ>POlsc`$<;&Imw_0D(Kdy8|kN$@?SX>NI)*Ewbk30p&&sw$Rw6I{-M z5+|>T8K*D`^_?5l7Yk>H1WePeh8eOMm7Oj{bUHR}b!T;8SOF-RI) zG*^xwhR5-2-$tBiN>xRfH+hyvwS@c4x?OXnYFrvGGPa^m_bpy0Onm|knpmY@N2R}E zj3+$$hUoTL-CfC!`QJ1IG#Z``=!$D5j(suwe{t*^QkTK;Ld^0rt^Qs9d2hwg(zeR< z(zf|nXlQg%YqX7Qml~dHd>#!8Pj?-MjxU-o9p>Nrz8lc>GgokSZ@`hUoj+-64nzCl zyyDnx%8JMQ!xpwWmd5UABkN{&ubmRA3?skg?SpV=)2q)DOEhcaVeKJ{_ITbVH%{nuy4@KKy>yA;*shcpyfL&stt>e%5g2Yc@K zC*)c?AtM~Aj+%tpghvwYPl!!SP8^*`6Y~@AN^~VwB-SSqLQ9+D+K7ljKQ^3c{Fa^G zmF#FA#N(=nU*fZ62aiHAT1cag_DB)Z_Q;NyxIO-P!SSWLq8#nfj+U(u+~a9m|8PQ^ zf8$B5L5!n4R%@`VEtER$j^A^OuX;7|??lUa-!z`m+Vpd@_t)Cwv^mmwn`^YHct?AJ zRyEkMBMwGn#O-mw2(8}XakR&20zrpPV(H%N;B&Ss$djhyGUD;@^D9Q4xQpIZgenS3jS{=Nhb0;i*jChO0rlw7nO0c1r2ZsbCf< zy^Smcwe0n9f>{G#A>AC`Jd%Gb;U69NXd|egrAgoHxvBXVU1d?jg~l#+o-@W){;~a( z>he9~wtuTWo>4!2zVCWCp(ViK|I+pgbb)2Z_O1mg+o0{4*cN&8uR)XBE-gA1yZ%@# z{+@|leGes!~?OyR{i^5|iqI}+hYPa4n8f97$x>)TIeMH4@ zeOkH8U0&<1ZxBjCV|h(ZUAbmoc)wl+dG2bh=kWf$rBln6>h{E;w6dT?v&RyT$AS`c zyIJ%ann)5L;L6R`lv|Q`gKIOhvU4VW@a4(*O9BjX-w*CfxxH)4%3!l{{TlNRV#V^?_e_cVA3!WGeof*F+?X16_26ANS4d# zD#|DhoG!WyAETsf3baj= z$BO5$tC2b=Tp=vUot9ff%;Q8GJQo&EBi3tr9<%dvrsqs6BBA4Zimoq4i~bXo7aN27 zN!KdtR|H1&%OH8qsjf-Ry!=VI(>8F`Jx?SdQ?at(_^2#RCNm>@tuBG@BsyEkXTec4 zN3VCS>#25;go%n5tz#ykHm4{n*X1hCS;On~2NF41IlzLcCl?Z~$vJs>n|ZbRjRalS zcWxi-|+*AaP|kW9?yRq)3KHI>QrrlmFHR4-mKztTHz zajkc9hHEmh74QUQrYkEW&y&ZKKAzXut`~WY)(=-qB3ybVa(m19YQSin8O24DR}y)) z@Iv$)%?r+H`MhS;_yTm4iH=CbP0Ge~!QoQr1DgV^^UB1aonwe$E=JI={4!%*$WIq9 zu6McX>J}`nCdP_hX*Z;8^TaODOvss$lSPd4iF1sC8EGJLr7*^^Kyj|dwpgg_eLT?W zXS-Q><&yyG%qnOITO@M5%DmjntiqWEMZ~z6=ZF|{8nM=h%HD8BLTmXZ=p9UWU9ZP` z)~>Sqp5Ost!MACOQbrSbDNpj0Q}+Z98XkTp_q*oym73d0#9g|g%Vs*_Ze>FM82j~h z4{55!^6`zL#I#(ukDm$*UW~`ILQ}4~I&!71RP3{Y4411UzYr&g2JZaDjlJ$a58*SyPa(6C;ivs_t}Rz_Ek$!$HGG4r_vQNY9$U*+a9$ru=<57;w}e zp-se@E@mxSb&Rd&q#+!`1B&e*s(mWq9s-zt2yhxjb_ z$Q{a~Z6P!ghYbC+B-n!(c9ONE-;+vbTS%<5OL=#(!Ro=WLNnaDTW?UKd&!Jbh88hE zU&Mg328rFPorYXFE>~{;G$-HVPJZYbhJic{iHLoCwTttSMqKW@hbY2>X3+CJL;t5X^cQ@F?mMaRFDh@pXpbB86588e*3IPS z-)R|BbGUg2P!oT!XJNE%2tMVPMLX(4km1}KlIl@IQbh&)1=jcSR^BRiH8H$`cJizI zY_^mbUc*E9>%QtI|K;jbDWUIQT;E|$-w{06j&gk-{k)!?TgcV@ z8#Qrn{ttDK5z5};%H9^r!aIHKQhA9hdKV%I@BI%&s+6iKUjBeI)i1^I@oM7 z)$veH3?FkdKM||u)819{+22-;^*?%%p0^P57nd!hzF%pR8+P2++)4bF;%m`kvX(^g zMIxWz)+{B)ljxS8o2QK;hHv<&PpSKZ7*2EB&JgD)EIZwY>Yc~8f7fRGPSY})7|wDf z=UR7$Y*s#W`wi(BXZlFmFO4@{8l}vLh}p64+S_MH9k-fHRLO8ec5k`YWa8;rck4!z z)1%#lWG<_BuLK#ZH!v0lA~yE4dYn(eb%reto#6^V6UI_Rc#21__5?8-ykeSrshYhK zVJs(OVpy^+&F?d2?NNJjhcLFfeLa3$i# zCbgi17zU#%YzPl-*kG*8dyQ(lJQQSsl*BL$)v->Wp2whPtN{ciD9X+x@^H9adGTda z=$M#PU%4@>bwM7zuaHwZ4ww#kEJ$cB^Odng$Z_Y-;C?|8^Z)o|7OH}7;C|t^Gy{;Sa01b1 z2ti>%_52leH!pxgbxK6$qF(95%<0wW0o`4;D&(6);EF0GgS83tj`h|Qlz5YKtC2Dd zB4K5EO&YJ^KAx+!DOa6Wu%y1AWUXLFu>^>vLf>ZM@{SnXus?Jjv8r2^n_US-$ZW7_ zT3UA=d%+uNJa8F(TT zxkx$wiizSDP=pIT3mQS}$btm@a6`1qKTEA}=@h4yz4Ane(+`({*RVZ!{%Wb$+p0sw z)!Y)jKq$lPlh9j5NZ}1B8hznw1{K8^ZKAa85CyK*~fSy~?H6O*Co+HyIb0={WQtQ&P7~1L|WMm6SJ3(GpXp zzG0%Vt57rm>5#sJFg*BqWwrY@B*d+UOo1MLS*i`t3{vHHv)ZE(G^+M7idgpX1*Qw~ z3sTT1342z=x-!*seDtBpi)Q{Mr-^k9*UQk=VjP!j`y=e3j<4bCKq7E0_N^A#|j5kfzkziAv@%05oqRz`{ zQay@>y{0eeR0J3-b|SwnYWlsQtbWrJI}SXlCn$V76T`otHUz9#SARR)%g4&8(R%dn z`~Kg`@i$F252%qCL4Rt{2StGdN!&ZVKIeheciUE%EpihBD3S~SBkD7ArBqE>UEOWC z-6jSwCb7NWE2(X45(1h;n7>|FX#`oSvxRG3@FfZPSWKoE!Y3$+_>|w<`u4{!D~J)? zsfT-TCW-xAk={1NSU{GT1!DXX)%^N+jPk`RA<>?&6Fd{TEW(}?&X+-kd}6?ds_$*5 z)u55>u5#Dwa~yG|cN`NJR99$IZv;c?nJb8q1fAvH=JC&Zu9rJ`wDo|AP2UTCOUOcY zPK@W#mh&-Y>H;5l7a#aCTvzkC`vE0#Hv$8{uD&P?HUB8y5$MbQC*djeaU`+)EP52R z&|&;Vh$H>5{EGe9vqeVo4u0cZ{;th_;=Fmp@LxWFKlr-?bpU_*4qznDB&>f4B|N*} zV?vSfk~WA`VwI$x(5Xc%*-uiJcdWk@h)e&vx#fzKVz$k;2A~`pR>ULqm4neB2~Q&Q z1WMRXeI)e^&?_<|#Y=)@N$@T)^p#c-W02Hy?lem3_B3SM+>Yhk8>1}6H$SKfIL7F!8Qph!Ul4`UA7mJ#Z1YAgqS>7 zxHE2u#Al#)ld~&2mWN6zg@+9DF(AUJ8sJeUxVJ4*A5HrRq1~3!qn&T*)#|!S70bxS zQKmFax4LiaBgN=+yVPJ{7=>ZUqb0Flt`dXEH>XSLOEs}xiFu4zcG{zHEEK6+L@ZbH zQTXtLaU5T0hzhvTxJGluc;$xoOpfW-YSTZ0gl6)uOZim|KkOi(l6sGB`VNtEGzU%e zagcEmy5E<*Kt{->QhjyWwLpw4wvjK7LE^fo!TEuAGW)2uM zd}@ACc08d0e(JIEUT4NEZ+zk%>cd^}L^k-TK`tp!IZ|&Lkk-dfyKHXcPBhCskLp>l zFCKY&o^{4Is4FxoNQqlwiu5!3DKAHaM*0Q&DW67!M*Am+_$gj%RMI$;=)h>^s*0yh zok@a1@io5?mx#d@zijP3oCJmO@9HJG74`fQ-KK0hKo{d@6|>k*bH~omTie4z$<`Qh zPtxchywIpDQQwxVF0t%iT@tp`6dEXz-hayvzPew!U+R)rWf-fpvPxTPrM(EJJf0mH zz?&rGJn5Yc8H9++u4@(7UX|I;+g z-1@RT2yvq)ALY&`CJ?N4{l$;X7T6yg1|fb8J2Qirz^!~N>f0z1Zu99*JfNquQwZY+jk&^P*>OhBw7(lZm6vQf2t8bEs40h#CvBwHJ zxGYr4pjUob69#VeX@nFBM60sLaNo!p45HPCU;xjOhy)a9iN#DG+iW1-9tYOd*COL3 z;YrfvZf9!VIZ(_{c(Pv0FV)riii8x>e=sK%rE@=xEHn<$f(P!3Ro-1n?3{Ob_@Cm$ zt$}lD#tfeM3I0`6OHeK`kI>dljx#@hG6_nN25-g2Y9M{tQ9C;t&W=X39;E>uP_KFl zF@SJM*ho$~Vg`%rYWem7$@1-E0M8ODNLF8~E+>CMM?yijJgrNvDRA+TGdD=E`ja!X>2eMT54SXU-Coi*2I z@^Y5C%kzj4+^nbipl4zPF^_lU<>V9)!&E$nPP<}Y`I7R^ei{`J3xZaTeQUPK!|>ja zL|u=O;fC3-P*PGxgj+*hZ~%f_P?5G{TRUl#hsecRiZoqc6e3XIW|ah$@Fl?$1$l;` z7#ld6JDDd5z82>T`35cTx=~AIW?!y!)s=1YBf#c*loCNogcp!IPts&iI=@p4 zFB5(AMj;#+ar>fmSFUwep_INu9ho3^kz_%LZ(rj)&BAnIoqu^97I9FemVyy^fzXq% zP<-wIvPEr@<;>2(YSYsMNboelf;2&^ zb`@k~D#S0r49g*4_bNYpM{P4#@NlrK*9CafPK+xd%d<_G-2mChMzQCxS~Lf0 zWNBymENJE2freGQ$!cZJSxPDFd+loFc0IutIFF&1^=sTA_A*F5vh9CN zlwl{@%TK~TSbTpA`}Kyxf^RL%SgmtN!gSiY4eYGT2czO z2HO4hNy>S9WR&L_uJu`|sivxoSUY^Cc4B@F_t<_60I37g1;cX?wLH(wQ(uYmK)V7r zVJJ1fpgADdn>uPVvAyV{2RlvuIpIsXqA|pJfY+J&N%&7ra1%+OSvE zJ*&OMRW-kcmg+McD1Ht@LSGlo!&`ba_FLcZ>3tr$uOr4oTIW~c&J2pJhatiz%(-6* zj=JO@+^a3(h*A&~74A98Td2RfG`yjqXAf;4^tGqh9Tr;xUM zCONNC&nFly_mllUmo*cu!af(PjAvTHC$=wq#mcJ|*MTFygu=dGsc{=e-eY0~nUC`o zlwBl#S+a)6Ut?bQb>#_Fa0QW13c<*4xFG+z$!1O^y>Irdr(iQe4{CMVHJnCQ5oeT5 z!vn)Jzs2|1?|5UadX1JVXaR^A&k6;IUDk7aRq*iM^9v07_mc9;fEeqD^UxD|fv*s) zJyK3%m)10$n11MKiVAzTXq9>qt%82!{^9#b{z)Abk$)D03i^fHrJiwq6(!NXZLvf} z*?yOL2Dn!I0&2#86{jVtMEXNvmZ%KrPi0eGw9TLN`%C%C5)~_5QvS3=B}hcE*P8}O z$Z2tSll&BSy(vD@-%rb5Hfx7Heq6f?Wy}`UVT&H@ve+!*CQ~~!7nCTe^P{i!L`Gau zjD@)(Cx0R_P#h(Uk=juL7rRk-9uVDof!TW_Bi_dpyK)NEbB`g0tRe$q|F>k%n;Szv zBSd5R3(?lf=z!5VQ=NFvk_93Kn;=02L8*5cU?+9eV!L_a?~oPxdgONpE7enV1z3s8 z+CWUbcNroTGlG-UsGm;ktNC`)a~16dQU)dQl*9x+(ijq45)5Jzl!x(yj|g3__B3#V zW)&wPzLyZnHli9#^t{N2OVs;P8KlFl4FTh*)~fe)U>em}5Fhx41cPA8aNmdp_%un!xi$}Z8f*cry*PAsuQSZM{3=-jyUgr@r zc%I)u@oj1FVe$>?xK zM=+YgXey&=jE-b<6r-aVy^7IvM#nHZmeH#j9mnW3jE-k?0;AV5n!#u$qgjk*Gn&Kb zL`EkuI+@X2Mz3RZ3Zr?9PGxi&qxp;$FnT?sg^aowEn>8o(dmqqFgkq6 z2%|?C{Wqg;GWr&yZ!`K1qn(Vt%jkQIzR&0fjDE=IM~r^V=qHSR%IIf|{)f@e8U2FM zFB$!c(PNArXY^}EPcV9t(Qg<%#pr29&oKHequ()lmeF&Je$VK6MlUeh#pn-=b~AdB z(H|N8iP4`K{e{tA8U2mX-x>Wcqkk~^C!>EcdT9-nHc$!h1N?yizyJgSeE=Eg3j_g1 zAQ%V%On?~(1uQ@qU^0Iok0hytR47$6qt2lNLVKpYScBmjxP03Zn%2qXi8 zfWg2JU??yQa00`D5kLx%3Zwxefld*8t;z3Ba{L29OD40ogzf zFcFvpOa^j+>wqah9xxS{2IK<;!1X{O-~x((VqiK@0?Ytr0<(Y{fE$6?z#QNvpcE(r z<^ttF1>gqe0rP=MU;(fYxEZJd76H}3VxR`N1*iq;fO=pFa4T>duoPGZ+z#9U+zH$T z+zohu<$xDh0jvZXfJT4;tAN$OJ-`}ZEwBz)4{QML1vUbkfX%>t!2Q4jz!pFOwgOGS zgTOz4hk%EHM}S9xX5cZP1$Z3T25bjffhT|+KpU_VcoNtJv;(_=r+_`cUf^k9AMgzD zEYJb$2c83-2mT4X0K5pi1iTC!01g7L0IveC0j~pZ0Ed8o0f&Jjz)|4ez?;BZz}vt( zKqv4n@E-6!@B#24@DcDa@CooK@EPzQ;B(*$;7i~u;23Zm_!>9?oCLlBP64NZGr+gN ycfeWT9PmAG9=HH>0Y3oUz(wFk;3wc`;1}Rm;5XoR;J?5hz@NZh(r$W5I`w}hwq5Z6 delta 14293 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 32 +CS.RUN >LDYAI 33 Enough for HASH >SYSCALL getmem bcs CS.INIT.RTS @@ -85,19 +86,21 @@ CS.RUN >LDYAI 32 >LDYA L.ETCISSUE jsr CS.RUN.DUMPFILE - >LDYAI S.PW - >SYSCALL getmem - bcs CS.INIT.RTS - - >STYA ZPPWPtr - stx ZPhPW - >PUSHWI 0 Dry Run, no output * lda #0 ROOT user >SYSCALL GetPWUID - bcc CS.RUN.AUTH + bcc CS.RUN.AUTH +*-------------------------------------- +CS.RUN.NOAUTH >PUSHBI 0 + >LDYA L.MSG.NOAUTH + >SYSCALL printf + bcs .9 - jmp CS.RUN.NOAUTH + jsr CS.RUN.SetRootSession + bcs .9 + + jmp CS.RUN.EXEC +.9 rts *-------------------------------------- CS.RUN.AUTH >LDYA L.LIBCRYPT >SYSCALL LoadLib @@ -118,10 +121,11 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT jsr CS.RUN.GetLine bcs .9 - >PUSHW ZPPWPtr + >PUSHWI 0 Dry Run >LDYA ZPGetLinePtr >SYSCALL GetPWName ror ZPbValidUser + sta ZPUID >PUSHBI 0 >LDYA L.MSG.PASSWORD @@ -139,9 +143,14 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT bcs .9 jsr CS.RUN.CHECKPWD - bcc CS.RUN.LOGIN + bcs .8 - >PUSHBI 0 + jsr CS.RUN.SetUserSession + bcs .9 + + jmp CS.RUN.EXEC + +.8 >PUSHBI 0 >LDYA L.MSG.BAD >SYSCALL printf bcs .9 @@ -155,85 +164,6 @@ CS.RUN.AUTH >LDYA L.LIBCRYPT sec .9 rts *-------------------------------------- -CS.RUN.CHECKPWD rol ZPbValidUser - bcs CS.RUN.CHECK.9 - - >PUSHW ZPGetlinePtr - >PUSHW ZPGetlinePtr - >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 - - lda ZPPWPtr - clc - adc #S.PW.PASSWD - tay - lda ZPPWPtr+1 - adc /S.PW.PASSWD - >PUSHYA - - >LDYA ZPGetlinePtr - >SYSCALL strcmp - -CS.RUN.CHECK.9 rts -*-------------------------------------- -CS.RUN.LOGIN jsr CS.RUN.SetUserSession - - bcc CS.RUN.EXEC -CS.RUN.LOGIN.9 rts -*-------------------------------------- -CS.RUN.NOAUTH >PUSHBI 0 - >LDYA L.MSG.NOAUTH - >SYSCALL printf - bcs CS.RUN.CHECK.9 - - jsr CS.RUN.SetRootSession - bcs CS.RUN.LOGIN.9 - -CS.RUN.EXEC ldx #1 - -.1 lda S.Table.hSession-1,x - beq .2 - inx - cpx #K.USR.MAX+1 - bne .1 - - lda #E.OOH -* sec - rts - -.2 stx ZPUsrID - txa - - ldy #S.PS.hSID - sta (pPS),y - - lda ZPhSID - ldx ZPUsrID - sta S.Table.hSession-1,x - - ldy #S.PS.hStdIn - lda (pPS),y - sta S.Table.hFILE-1,x - - >LDYA L.ETCMOTD - jsr CS.RUN.DumpFile - - jsr CS.CLEANUP - - >PUSHBI S.PS.F.HOLD - >LDYA L.SHELL - >SYSCALL ExecL - bcs .9 - - >SLEEP - - ldx ZPUsrID - lda S.Table.hSession-1,x - stz S.Table.hSession-1,x - stz S.Table.hFILE-1,x - >SYSCALL freemem - sec -.9 rts -*-------------------------------------- CS.RUN.SetRootSession >LDYA L.SESSION.ROOT >STYA ZPStrPtr @@ -331,6 +261,84 @@ CS.RUN.SetUserSession clc .9 rts *-------------------------------------- +CS.RUN.CHECKPWD rol ZPbValidUser + bcs CS.RUN.CHECK.9 + + >LDYAI S.PW + >SYSCALL getmem + bcs CS.RUN.CHECK.9 + + >STYA ZPPWPtr + stx ZPhPW + + >PUSHYA + lda ZPUID + >SYSCALL GetPWUID + bcs CS.RUN.CHECK.9 + + >PUSHW ZPGetlinePtr + >PUSHW ZPGetlinePtr + >LIBCALL hLIBCRYPT,LIBCRYPT.MD5 + + lda ZPPWPtr + clc + adc #S.PW.PASSWD + tay + lda ZPPWPtr+1 + adc /S.PW.PASSWD + >PUSHYA + + >LDYA ZPGetlinePtr + >SYSCALL strcmp + +CS.RUN.CHECK.9 rts +*-------------------------------------- +CS.RUN.EXEC ldx #1 + +.1 lda S.Table.hSession-1,x + beq .2 + inx + cpx #K.USR.MAX+1 + bne .1 + + lda #E.OOH +* sec + rts + +.2 stx ZPUsrID + txa + + ldy #S.PS.hSID + sta (pPS),y + + lda ZPhSID + ldx ZPUsrID + sta S.Table.hSession-1,x + + ldy #S.PS.hStdIn + lda (pPS),y + sta S.Table.hFILE-1,x + + >LDYA L.ETCMOTD + jsr CS.RUN.DumpFile + + jsr CS.CLEANUP + + >PUSHBI S.PS.F.HOLD + >LDYA L.SHELL + >SYSCALL ExecL + bcs .9 + + >SLEEP + + ldx ZPUsrID + lda S.Table.hSession-1,x + stz S.Table.hSession-1,x + stz S.Table.hFILE-1,x + >SYSCALL freemem + sec +.9 rts +*-------------------------------------- CS.RUN.AddStrLen .1 inx iny diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index dea74471..c0f0f5f9 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -14,51 +14,45 @@ X.PWD jmp (.1-SYS.GetPWUID,x) * \0 *-------------------------------------- PWD.GetPWUID lda PWD.hDB - beq .9 + beq PWD.GetPW.9 jsr K.GetmemPtr >STYA ZPPtr3 .1 lda (ZPPtr3) - beq .99 EOF + beq PWD.GetPW.99 EOF ldy #0 -.2 lda (ZPPtr3),y - iny - cmp #':' - bne .2 skip USERNAME + jsr PWD.NextString skip USERNAME -.3 lda (ZPPtr3),y - iny - cmp #':' - bne .3 skip PASSWORD + jsr PWD.NextString skip PASSWORD jsr PWD.GetByte get UID cmp ZPPtr1+1 - beq .8 + beq PWD.GetPW.8 jsr PWD.NextLine bra .1 -.8 lda ZPPtr2+1 - beq .80 Dry run, no output +PWD.GetPW.8 ldx ZPPtr2+1 + beq .8 Dry run, no output jmp PWD.Record2PW -.80 clc +.8 clc a = UID rts -.9 lda #E.IPWDDB +PWD.GetPW.9 lda #E.IPWDDB sec rts -.99 lda #E.IUSR +PWD.GetPW.99 lda #E.IUSR sec - rts +PWD.GetPW.RTS rts *-------------------------------------- PWD.GetPWName lda PWD.hDB - beq .9 + beq PWD.GetPW.9 jsr K.GetmemPtr >STYA ZPPtr3 @@ -68,10 +62,10 @@ PWD.GetPWName lda PWD.hDB ldy #0 jsr MEM.TXTPTR.GetY - beq .99 + beq PWD.GetPW.99 .1 lda (ZPPtr3) - beq .99 + beq PWD.GetPW.99 ldy #$ff @@ -89,16 +83,15 @@ PWD.GetPWName lda PWD.hDB cmp #':' bne .3 + ldx ZPPtr2+1 + beq .8 + jmp PWD.Record2PW -.9 lda #E.IPWDDB - sec - rts - -.99 lda #E.IUSR - sec -PWD.GetPWName.RTS - rts +.8 iny + jsr PWD.NextString skip PASSWORD + iny + jmp PWD.GetByte get UID *-------------------------------------- * ZPPtr2 : pPW (Input) * ZPPtr3 : pDB @@ -111,7 +104,7 @@ PWD.PutPW >LDYA ZPPtr2 ldy #S.PW.UID jsr MEM.TXTPTR.GetY - bne PWD.GetPWName.RTS Must be ROOT user + bne PWD.GetPW.RTS Must be ROOT user jsr PWD.GetRecordLen tay @@ -119,7 +112,7 @@ PWD.PutPW >LDYA ZPPtr2 >STYA PWD.DBSize jsr K.getmem - bcs PWD.GetPWName.RTS + bcs PWD.GetPW.RTS >STYA ZPPtr3 >STYA PWD.DBPtr stx PWD.hDB @@ -211,15 +204,9 @@ PWD.GetUID >LDYA PWD.DBPtr ldy #0 -.2 lda (ZPPtr3),y - iny - cmp #':' - bne .2 skip name + jsr PWD.NextString skip name -.3 lda (ZPPtr3),y - iny - cmp #':' - bne .3 skip password + jsr PWD.NextString skip password jsr PWD.GetByte cmp .8+1 @@ -309,6 +296,12 @@ PWD.FindRecord >LDYA PWD.DBPtr sec rts *-------------------------------------- +PWD.NextString lda (ZPPtr3),y + iny + cmp #':' + bne PWD.NextString + rts +*-------------------------------------- PWD.NextLine iny lda (ZPPtr3),y cmp #C.CR @@ -437,6 +430,7 @@ PWD.GetByte stz ZPPtr4 bra .1 .8 lda ZPPtr4 +* clc rts *-------------------------------------- PWD.StoreRecord sec