From 7e9bc637b18a3ea9050e3d124fcb60e760a8dcf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 26 Apr 2019 17:07:22 +0200 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/WHO.S.txt | 12 +++---- SBIN/LOGIN.S.txt | 4 +-- SYS/KERNEL.S.PWDX.txt | 70 +++++++++++++++++++++++++++++++-------- 4 files changed, 64 insertions(+), 22 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7a2ad7e03599f679e1f5a1604cd3ae36afb50cb4..3880d5149c8ca8e9dde1dcc0db113ef7972f6085 100644 GIT binary patch delta 267160 zcmeI%i+>d5xxn#vcC&HGW_NSjWWy$LxfnoTF$pN9rxZfCM@SPWm9`#YvXE#9AqfiD zp0JgGRY6*mA&Qz(jnZnhQWNF0HP#zNu~DeG(a)Nsv@aQ8mf_why znJ8Z>f_o;VkCQK<%tN*58_qGN9eTkZE7^0>A3XHINTZwq(cp_ zEKavV9eUu^n_M~5)c93uOlfYeE)ms{57oYY!Z6bIl)h1FU!eAl%D6XRDCM#ujD+e` zFD|~MR;Bz2j{3-As%}9_A*F&DA1XG(->KA|ci)KC-&&fVDc{eI>`zt+WjYC1#m@}Wpxw8(I3?A8MY#9~0;^4w< zvwA+!rw(RqtLm9MGn)NG-xcP{1ID>Co;i5wHq~RuspH#RJ?_302Zy6e$4%c^%){qjraBv#eR@9E0(71gUkd&~__1@gLY zQN34mb|jX>7R0;O#n-9Ky{h-}#?D0S;)|8Xl!Dp&&Zu6Y@_Lg8YFAdrs;z5yZk3Y0 z+f;9B)8@pu3zTQSzQpY+R$;a_H6$k5SDrLwv&y|g^>%h84^?#QW4=4(n(+;ZnB>+c z6}?|oy)A8W{D2&9izi|gD)=>hs4;m9!Mjp^Rw&=yQm~^z7xeT?fQ)-oY`WRCxj}jF zRlSX^jVgFh^)@s)^(EZb?JQP(PLoK0Z|J*jOvGlW?E6wfPcBoQ`z2z|H&twgbuap+ zo2#o-)&n}krbP00&VxzG`5p1NrX2l{d2)@b@H2;`e(tyJsJis!)h!)eo7Jd?t<)0A zH=sm&Z%0?B@(fDZyhr4>b**vpVvD4PT+REaTrJ+HMjckYQZS*s|Eta)D&5}f8fbRE zHC@I`L16IIes_C@zpD5tW7reDw`l9hn!{$xJ?-V@zX2y%} zJ*aNHb9iUpaP-R89(;LQT94<(+lP1FF}!R4@YeOw`M4TMzp7Zo>bLbtZx7aIDYP6Y7Us^ z89te^{;>C^fZsHp5B;%!cOaIX7&oDEf+`%B9Fjc)-wRxC_%f^1`TJ&7&#PLoU~t!C zffl3te0z|VCn^)|wJQ@77qzu-?3$!fCSN)Ltyom8 z!dEKu@pX}qYf7ux{&-+=`Z|eI*k*q9@j!0>_XDo(ns}S?u2;QX4KnSt+wo-{3vEay zpfjwls&Cm6SJ|D(k-pZRGe>vn*`w1+NT$)+l}j7e#bb5L>s9u~WPNJ}l*#j|{jVq<5#V@g8qE1}skzi8i>UJP=sJsUM| zn>~rnt*KjCw`lpiIV(P`a(nD!6YU1mvwPll`%wM7<#w@dDOYrz+)deDeLFf$$-vIh zYKQCXIXm|Td(KXw&%M!(m2$|pQ|BmCcex7fIz7qSZKbF0n>5~T6)QLGzEzv1o3j7u zK$v{BRpopq*+0t@AJ;usdB1D-&yw$1{nJ*u-U(uL2i*eMk0o2cX=2Zi zT+sixPIQa3o=)NWawPW&-F~N6!-`2N^rWP&*S(qDJ@eX{66@C_WLS8flG47X9c@`l zpON38Bl-qXYm2P+2l{?DEB{deTi0%n(9p9IR4xax*W(J^ zI^O4XjBW|?!;~O}$DJS*c98al&d#fK7xKIyf%1NIM&GI0+!a^;7wziS4f}rVw23U} zC!~V^Cw8;h8b6gI1uy9pI@$b7N5?mH)wHz5mG5U#Q}=pNds)gAzhXArmKB-h{khe& z%J+YAUX#i0%MIcknx@ z>VH??`{qQf+v*C#I_clbM58w+e~?qMs0aUe=H}#2wwAM9%YM(kqTRiuJNf=>7nk`d z`!A_QbyxeVzU2E(=NZ3djq?0W=l^#V`%Jlg1OG_9f$7$s?4Nd&lza01%ejkkm8*=A z>DHM6y@p{WUhFbrGtJJ+8_iD^2J)8Yy5+F!?NUc)nlS?DF=Qa78@)~O#*`wH%M!|S zjK3*_W&7p887oB~S;AQ>8^|1n{`gD~WHmm`c3RdWx zmCfX6`KtTy4CRSPz)+E4&UrqNdr`4dL}v67IbLwCA$!V^F)%U&qE7X4l`&TPnx(TN zle_aK8rpTKQ|vmcGfuLbCMA!+`F3jKtj-vkEU~0Brq)!RDROb|RKxCrF}o>)(~L7V z$QRg6>C9=qGC6I{vNKh7xp8_cUZMMAh0fA$xaoGojhSIK{V)(My2!!3KxJL5ziyI; zgPx^xE}5r7A2a)Y7|1LAFC9!~pN~6f>rIAlmIGC;JfDzU!?Vr49|a0Z=jgJVl&{JG zlI}iNPW!8qO)VoLJkKh7*?hZfXo19Sm&;mPf!aCs^((8DZ=tQCmyE@_vCp1YmpDn) zq$YKVlhkw-US?fmOs$j8C!KsMl)v7PX-$XIsVukCUSSu@`BZ8udU^G&bn=jpmzu^4 zfdXTdu9EKxf7UG1KR;*x%=>S%;e|kMVT0~4XD55Pgzx`x;Q6tdu`xB{CMV+yl_#zl z*Vy^2b<%Ej(w1)8q8YC+Vi%6&ex+4*b*q#6y42jO7s)i&=Hz~%3bh-ti$0Xr23=D! z>PXF~)5%CiK$p&Fqn*)JPDWQd8C|42n{-B-b;n9-Zn4TXU1OKc`+RCf^$X|K)F|H< zoSbH=P`92;&ZgRG=M+ddIay;Q^NUVWWwO>@tFzi>U1>s(lht-7D_IM6$mzg!My%|D zy~(t`qzmVlc&?XIc{kXjW@M`)I~~uBa$@^k!GXK7t~!(xRIL&9rP2#CWaEAFr}e9p z9oMbQ9=vX4&X>QJ_3$}rSLt~DQe;W1^*}c%KlfDAdD$y!m!!VRNK2RZ4XyeWOE}AU zEfLDxQF%@7VC6M=`&MS@|7gJ}(|FF482tP|xZCJ| zBoRVSA#=Zsl$I6Ni0VBy(^KXo`fEi}4DBGs;_Us$DI5+rNf zayUFDRJ80PP7OYNI9z1(e<$oMSvEhmyy5cJc&xd$p{sdn*%X->8b;RMfhWViGWwqm zdj~U~5C7T7h+F#$y}j%|9v(fI@wOZ^BMHwaW6Sna;r>&FMS~gM(SLSl)L&XZcTP=B zVnthj=IFG+j4V00Co3~!d*0}QyvVXl^R;MXd|p{)S*2XIqowi6=#rXc^J?eMt1}~G zA|>hh0eOp5Y0my_I9gs=F2xqd8``E`($d%*Z;jT@sasTEIsTfuWy_X-K{h7Sr0lfh z@2W*hrwwNBO>-LqV)Q4)elv>t>r>Ct$KU5OYcRU{Y2<1*38?z#~uv+n^OnqEzVew0lHWEZKf%!g6vFX zbyVJcMsIs_gYxvsiQujF%HzcJ-X`TbTa|ae^Le`j)vsOdNLf{;EAO55>0qDH+pTvB z$?9K~(5boJXOa&iH2~yKfl1v4!=Ci!bP@nmbo{@3V{N-JhgOc_#U$otf`}$Em)BIZ7JY?*oLy6p7RIHhV_x$bLBmcoGN%EwXVH3N$tYJ zx^^f#q5R)Tt@~Z8Zb;=kmRikvx*aly)YbMWs)v9=r^1ddUn@!SHUzal8Upu|w4W~D}dAc{$%Lr~;+oKn%@LT$> z3o?H*G6M47w!(F*@H=*g8*#O(DbFbh@B6K@`?*$me`jAI^zP{^=qA|F-rTOd!+Q8^ zQl8)I`~8FN(eij$F8e3{ADth1Gv)b{j`^OxE!nlqRNlYHZn87pq%z)@WyiDz+28De zSp0YMrnX4YxPRD##g6q)d#G4HJpYnd#UJP$&hg=_aJOH%tUX>#U&wE`tj)Uh!{c%Z zl-p&G!Zerc(PcLExJI62()IasTr#Mel-H}vZIWHO{%lvC3_0odxg=%%3Rdq3Go_~U zLf0=R!vU9Uq(|G&`c}`J+uYDmA?s~W&IYqw{T&f`8TM>o_TcQU$gj-B&Wt+NzoLF# z-JI&`sLYemsdJ-aKQx)1E>gF^Dp40-w>i3CQPsS<5AnS+Dyyj#E!e@Z0}lF&OQNoHS(K_e9Qm+ka-MtfG@f(An}?=HYCY zxodqS|Ds&M(aoMGE}b398*)DLozDX2GwdK1ibQ0z%Y0>hq_8{U_{r9+Nc$CQzmMQ6 z(R}B+oL!;a1I9=rTT}K0GG~u((C#QORY!$44$kVFNo z4O2V)QnQAxFdDJed}Ab;!;J8wOSV{ea^i%WYE{Y-+z97)Xdy- z?sLxh-gBOF=C0j;AbYL+cjpIQZ)a(4cKbf>EcxIKwU?Qzyqil^PWv6Ez7h+y|H~XD zABKk7M-M2GqQac*l>=4{G!EPTTp&KQ{jEUu_5(-EyCY|cp*EKmhf35tO6f@3Yu}hP zzz((jj<>JM$c?ML3)HaEygXearXz2!-20MY3}`QXuheOv^1ZUeprD~tMt>+Bvq`;J zJ-w=0_5YK-BVbqSES(f|TbvYZQZMOhn~a!zd7-Dncr3%Sr#qV3wb{6EP+1xl`^pR_n-%_1tCsrln6P3AHbt+${>Rh@)uK!xDuSg{06IAxK z`chr;j7qs_qRQTq_H}~tUndnCYjs8QdI^wugNjeIn%C4S-&WOGx2#TO|3-DzE^_ae zaNAU8Q*Cpt6HfyCj|8ZzOU92;p&QdfA2Cjuzm?Ifjm=HUyhG~d-zneiwo0bQXUZMYn(r=YEm5Zi-K{#MVp93Gt1&xEk5ak6 zS7V$}j87hyY^bbJzI&XKV2{$RRZUDZ&!1VLd?`o5cds2m`R;S7F zJ)Swn+19r`p1HpL#j)GpkL@qE=A}HdTDA;}-sRo(WLaksmG?VH^P7EZo8vQ2G05NnEdm&G29Zp}IPX?*OA_hT*23-p!&kos9H5* zluxqHBd1C1_2<`T$$x>=`Sn3-gd~~IJFW@_Ebj}2pLbmyjHf~m1TQnZ=2X?0>UuD^ z)M(LjxAMH^%9_iMpIx!wM0bv>(Alc<_^N8TP((|eUo0C{)C%3 zWcekBE?TmG%rv`E_Lp-9)2h|B5{t~JLFua zrj9LDoFy_lu|oNlsm|tFNmI+6#!JSk@QS|P>Dm=jtCn7vP@#st%&;WUtP?}ls=jqK zMTHtw*Tcb#j{W(A&e8c$-l*8k33DOPibGab;dC;YR+Vf7n%a3b|xO z;)0~Ecx19E(R^M*QahS0Qnz@mG(E0ExBWwtr^r!TyTJ5D#=Olh6IVo`GC;-qAj!29V&A84b$>Bp^& zA|E|uVC*!%;UxF5Dkq>n zu1=PWZJl%CsnbV}IXZi95f-fSvQtg5Q1Q2t^G;H-@B zP~(vNU`zTAb2}AF@6<52QxjFB#BO8QaJN4r-2O~ZfsuwgM|4+4+0~98?NrMhlin4b zul+~3{g9AH8TN@)FF(nGQ`a;nF0r@9xQmtFFyfPbFa@T&Jvu49M<=^Il65sh_h_cmqgif`PH}rQ zNtv^Ck51JSQqL{jqd9inMRT3H`IYHCs+uu<_H5<Aq}wRhqcqcc9EDmi6r>(pt}ly9w5J3ndF zE-%VE{g+NR{Fn44CuOdaw!*FYd*7i{=c}W}smS{NMQ1lt)!evr#S&$1&_0(sJ|#M1 z65nyT-mRKes*o7JK3U$~v*3s34QU0KS<=)nIV|LGtIp=TB4XTeK>eA9fG_-z0O(?aYCij{La;$;s z%F^NbHOJCr_D{ai1$p}xjmVo{c}oAA38lOPv`l5JD3?FvVYw%y^j z-348{2k-MH)TqO(oc-p=)YzWL9>dI?D%*V5y^)Ne_D=>KSDzHkX|nm{R5;t2-Pln( zB1dNB&Pcm*&W^~@IpNuIf93qD8B^__x;57AJ0in!2G2e8YHII}NU>qP@Z5m>%vxs) zlzpP>{)jI%^wG#)4SCTrwCnMRFH`^cu=k~co@XLo8eMxLg_#L^gVnz$dOnnEZTli! z`-T)}CL83jH!oKH3wwNpUwXQ-3cc2_wFC1~gK`Q#_O#^}_T(4M&GPE^KGsiTMTd_X zTQ;t&Z1_d<=FY9Ycz)HqqjkyAeHW(AoO5*5j6n6=>bZ99{2$cTB`3s+CfX&HwKD1I z&W)Y2Y-OThaiY;$A1fMajXyKviJrrY8Y+xJYt`bSNUqAw?0@-Cre8j!Ze3hdZG@8c z1RYZ1T1;r|sxR^muqW+id-6riPMNf!U)w38?ck3x^IEwY+2YQ^>+~!P=UuNS{tf99 zc&il&o9l!NSN&sCir_djGg8S?y-AwtS=?!rPY!S@0BXP``qla!_7W_=+8b* zT4=S8o%d_7!C8NFcZ$iX-~l^YOXNW(yXh=`NHWTxU<&2gXZ=4m{z0(dRRBmyY?Q9+Vt?CM(~cj3IL5Tck3d z*1LtB$)9m@ee_u?XH`*g$sRW?+p(T=)3W|zJ}Y5COcft-7Kbq_xK-W=-dz~6NTKJPni zInUz@VbYuH@UgOWed#>Y;(zu(Q|I2~N;$}u43|-azdp2V{n8bg@}R$w(9v%V>$`&D zqB;8=?Y@JG%Kn#LvR^NSAe802Q7!(*w?2JlYUbG diff --git a/BIN/WHO.S.txt b/BIN/WHO.S.txt index b3bd072e..24ebb96d 100644 --- a/BIN/WHO.S.txt +++ b/BIN/WHO.S.txt @@ -14,7 +14,7 @@ NEW .OR ZPBIN ZS.START USRID .BS 1 -ZPPWPtr .BS 2 +ZPSessionPtr .BS 2 ZS.END .ED *-------------------------------------- @@ -63,20 +63,20 @@ CS.RUN >LDYA L.MSG0 ldx USRID lda S.Table.hSession-1,x >SYSCALL GetMemPtr - >STYA ZPPWPtr + >STYA ZPSessionPtr - lda ZPPWPtr + lda ZPSessionPtr clc adc #S.SESSION.NAME tay - lda ZPPWPtr+1 + lda ZPSessionPtr+1 adc /S.SESSION.NAME >PUSHYA - >PUSHB (ZPPWPtr) + >PUSHB (ZPSessionPtr) ldy #S.SESSION.UID - >PUSHB (ZPPWPtr),y + >PUSHB (ZPSessionPtr),y >PUSHB USRID diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index e16f66d8..fa2a17f2 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -275,11 +275,11 @@ CS.RUN.SetUserSession bcs .9 >STYA pSession >STYA ZPStrPtr - + stx ZPhSID * clc - + ldy #S.PW.GID lda (pData),y tax diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 3e080be3..26e08be0 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -6,8 +6,8 @@ X.PWD jmp (.1-SYS.GetPWUID,x) .DA PWD.GetPWName .DA PWD.PutPW *-------------------------------------- -* ZPPtr1 : UID / pName -* ZPPtr2 : pPW +* ZPPtr1 : UID / pName (Input) +* ZPPtr2 : pPW (Output) * ZPPtr3 : pDB * USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR * ....\CR @@ -63,7 +63,7 @@ PWD.GetPWName lda PWD.hDB ldy #0 jsr MEM.TXTPTR.GetY beq .99 - +* >DEBUG .1 lda (ZPPtr3) beq .99 @@ -94,6 +94,9 @@ PWD.GetPWName lda PWD.hDB PWD.GetPWName.RTS rts *-------------------------------------- +* ZPPtr2 : pPW (Input) +* ZPPtr3 : pDB +*-------------------------------------- PWD.PutPW >LDYA ZPPtr2 >STYA TXTPTR @@ -110,7 +113,7 @@ PWD.PutPW >LDYA ZPPtr2 >STYA PWD.DBSize jsr K.getmem - bcs .99 + bcs PWD.GetPWName.RTS >STYA ZPPtr3 >STYA PWD.DBPtr stx PWD.hDB @@ -123,8 +126,13 @@ PWD.PutPW >LDYA ZPPtr2 jsr PWD.DeleteRecord bcc .11 user exits.. - jsr PWD.SetUID new user, setup UID - + jsr PWD.GetUID new user, get UID + bcs .99 + ldy #S.PW.UID + sta CLRWRITEAUX + sta (TXTPTR),y + sta SETWRITEAUX + .11 jsr PWD.GetRecordLen clc @@ -179,11 +187,45 @@ PWD.PutPW >LDYA ZPPtr2 *-------------------------------------- * ZPPtr2 = pPW *-------------------------------------- -PWD.SetUID >LDYA PWD.DBPtr +PWD.GetUID >LDYA PWD.DBPtr >STYA ZPPtr3 + stz .8+1 + +.1 lda (ZPPtr3) + beq .8 End of DB + + ldy #0 + +.2 lda (ZPPtr3),y + iny + cmp #':' + bne .2 skip name + +.3 lda (ZPPtr3),y + iny + cmp #':' + bne .3 skip password + + jsr PWD.GetByte + cmp .8+1 + bcc .4 + + sta .8+1 + +.4 jsr PWD.NextLine + bra .1 + +.8 lda #$ff SELF MODIFIED + inc + beq .9 + clc rts + +.9 lda #E.IUSR + sec + rts *-------------------------------------- PWD.DeleteRecord jsr PWD.FindRecord @@ -355,7 +397,7 @@ PWD.Record2PW sta CLRWRITEAUX clc rts *-------------------------------------- -PWD.GetByte stz .8+1 +PWD.GetByte stz ZPPtr4 .1 lda (ZPPtr3),y iny @@ -365,20 +407,20 @@ PWD.GetByte stz .8+1 and #$f pha - lda .8+1 + lda ZPPtr4 asl asl clc - adc .8+1 + adc ZPPtr4 asl - sta .8+1 + sta ZPPtr4 pla clc - adc .8+1 - sta .8+1 + adc ZPPtr4 + sta ZPPtr4 bra .1 -.8 lda #$ff +.8 lda ZPPtr4 rts *-------------------------------------- PWD.StoreRecord sec