From 6fe83f4ff0979dd66814f2ad1ab6903572c96814 Mon Sep 17 00:00:00 2001 From: Patrick Kloepfer Date: Mon, 11 Mar 2019 14:56:27 -0400 Subject: [PATCH] Restructured README file and created new sub files for News, Screen Shots and Technical Spec. README will be updated again to refer to these other files before release. --- .A2osX Issue List.xlsx | Bin 56785 -> 55443 bytes News.md | 162 ++++++++++++++++++ README.md | 381 ----------------------------------------- Screen Shots.md | 31 ++++ Technical Spec.md | 199 +++++++++++++++++++++ 5 files changed, 392 insertions(+), 381 deletions(-) create mode 100644 News.md create mode 100644 Screen Shots.md create mode 100644 Technical Spec.md diff --git a/.A2osX Issue List.xlsx b/.A2osX Issue List.xlsx index 612f48b21446bba4eb574a91ed5db66dd529b6f9..49d2acc6e215c5df0cbad4c98ca33577db03dda1 100644 GIT binary patch delta 51104 zcmZ_#V|?Jf6D|(d+G=ZeYuk3Wwr$(~*0ycC-P*RjwYhD#cKhG^cg}h7ym;OwSFX%V zGLw8}lKD>Xqy}(Q1!-^yG!Q5d7!VK;B9OJ7&&bjSR0=R4WkU*_2|4r{a>sDI#zh$^ zT%xtR+^Zt+6@)3nP2`v4Sah?mw|NnI0s*D&T$Zj|(n~Mkl#U&Z5kqqvKL@2BvDnA} z_m>;%qAbP3v*$uL0!-4gNawFY1X(^7LR=iw>?DkaL({0#lIV?=)Djyj+$3`U-56=H z_;;YRB3cTVT|zt5>;D6EkKRfG1RR%}SYu1Fv zOtf?K{^(}R&_EzRZ4E7vj)qO{$MMHeA2G>D&-D*S6(L$>M&;Z@dQDLsPxy_s!oCk% z))T;Zk|5H!|D094%@u~=kI{|&*Yr=o6OShNaFGTw#eO5(p5y4R!F|h|P1v8LV|ZtG;T($<59%LXadTPBh47RYsEgU(etK zU_f=Eto$G&eCV~rd)V01@>V>uu(Z37L?@AopTFcLQgciZDehJ;1s<{rP7wG{pxf_# zVq=Rp=6sCkai6t13I&aaq{Y1^H0{;V6`GpdDOKFDdT;2v+w#NmW5!P@PfEA$IO?jl z@&f7c9TM@y8_@>jS$cIGSkw}{Pz=6|0DG+wSk<%X*_+CvIX-eG{9$JJGCO)DIszx$H3| zVpf!A=GmX4Wcd$(Ruk*ZWRB+$2kc(Erp2;t?j2BfvpGEdOm^q<=fu z!-m1#-pSg?-rkzt!`7x+ZNqMZ6WLea;7f??wo+ngx)HhE!KRF99ZfvZ_NiY`P`YV2 zhP09torm)F8eb~4i1RI8cC}verjW(lY$l%nt&PU%AOLRM1DnLhiX*uQF>I!7gc9++AQ`JI&l?sPI*wNZp7v9%9f zbaOQ&<8L8YIQnFUmyKY8BI&%3vXhV+S6laBPXj9O7hyNd)*^cbg|?enwO-U=eDxeH zzb5sb=BvTh@SPZsQ~j zP|+{8$+K3q4ycOCy5hNviG&2y3NtEY)|h#aP# zxkOT8n)V;mELI7l7VSC_%{uh_3=m&od{G&62(qh&@Bd>t+tviwD{H_UE$q*bBh5I;cJo1D{t zWLsu~Xy5deV*F`ZaRw||ZE?)MOs;o<3Cl%GctwIWXEBWlpE?sbvF1e?)`8LR-z{;C za*ZyPfhXDS--4Q_LBF2h@T|ksvk%nCyC`?5Pp{p*-?k1u)SGtq8^W$0+`MBdxdrl1 zH6)dF2X|HNo1QN1($a>{wjdWvILIP_>hR)@Ce*~8QyQ_iZw)gVnM%G%1&X+_NE8Q2 zLN2#w5S@c8RnYHtH2H10DSBAVRMoPOR|zFOx(-O36b^HzwUWx=w&vlPH|X*O8b2o3 z#$EkS<$Mz=&kD}5#~{5QJq(ce7IWKs&O$^+;rUjXD7Kd}UV?tRxLsX%&96F9-2*yu z(|f3{Pu<5k-wW&@C9n4M2iSD;M5tYc9;iTlHd+jAUF~E1{^zZbHgB3TIKK#>89;$q zt6)atk?WA2ps8;0txGp5+^0FEHS11af8?JeRS_l&0zJM#3N`h`m^Uct*tfm{X3Si8 zy&L4OqSDRtcnh2XFwLxDH8hCVCuyC0qKCosqQf`47+z`GajZ zgXq?3dE+kaMb`efPXPZ5=x|dwnM-(hARv&XNp^VH0MmbAtXNmk{(v*lPhj^`WH-#4 zOJ+3D_VLJUmugNVZ*2UmrcH&Yy9|n zZmUJWj=O!4fY0+2;Qe*!@cwXlXXoC*h@!V$`!i3zY_)1~vh{7Y^W<`)bMWG7INOsK zFRzv2?&N0iXyd}M)z<;@-)t)fj?OP#TfNa*u(VF0-J=n`Y}Lw+*{elnLCAx%Z(54uvnHh==gRse*e~L z)zRJid};Bip7kZ)hV9O4dFBZKyj}PN^4HOalaINJR}2hkX&c@QRF?n))AIdo+gnE~ z5@UE}?{#WrMw%+LVbV3)iicrp?ZI-|$Kb zr7o9b%gyD7<(KQKl;#F*o5vd<;4X579!Bt)zobDF@AWj@!9qA=BS00ef<{5 z=GTwIxISL?;L4a4_qnnUvj;XW1$_B4a9Mul%;@sH`*nJEas>5lu625uy#as+^ZxW~ z)JZq~w0J~oZ~M-UMpOIzi2ro@=T@aFAEE9h;K_rZTj4lbpJtHUCkZh2N)Fs^+3@G8 zG{6`Waf@QP<-pu!iK;Bly*J)zfxE0`?)cQ4og1l5L*4hgtiUq$N{+E^_6_m2#Aex_ zYTaek=EyAKQo=Byb>cGiwqqu_|HUIe)^yzrD`@jgoHqGB7LFD|Q1;yzy>1!2%&&E0 z@p16&U~eOYiJ>&1brq;#TUkzN&r-|V))eFM-QM}~a;}FfJzpJ~Afpn;Hlpfa$6;%t z`?Tm^EsA(CHR;U&y?+o*FkVh#+LNg#*3{@jVk#r8Pc->5rj|jUbM~9fD!7?KciutR_8|>YTT*FkK!IcO*e?T^?z3*#iVajF~o^QAkQ_`KXiV z(8X4x>0b#TC)cMwQ`{OA&0+O{_Q`I}uciem875T3amn(sD& zJ5tfg4trUh9r+64b&j;puV_w4l3rrPz$G&HH3xZYHS8baeC03P{=5xZ2byN+I~L4t zJ&K}sz;D_8isHswsgCjd;L}vC#qT_Ljy(lc5M}6;ceWM+KdrojSXdA|7M1!Bw11)X z`#>T&pxT8)shQza^f@yhgS&Mt#D?U+F%)v&gA~< z7()Ze=84!fMA}|uYbM&Sow4lt0W2$w7}^wV`MD71X5TwnoSs5y$$ur;3yczj8eurH z0(BKsEGRZU1aB+oueaT0w<`e*$Rhc6MuN_2SGkPr5@uLCez90!LqjqK_jMH&saPjO zw!#;zIl(`PGn5As4O8n}cfY}-lxGReWvVXgks%<6_d%Rv<&%=dnv##Z6#C<&x3lm0 zX~`8?=r~0NL}ti_BB+xYNyg}*HS&%i0%m`nRItWWv_unR=1Vj}i^I7r!IV}&(Xz)u zZ)8k$U$0@GHbcbfm=G-+{}{T66qbmSJ3CVK?ct&sbKl^kFqUhPIyc05kM)nk-)Tj7 zLRA!_DiEg#p;4$QDg^1>L^cFM%&lz9S&i^kD(zO(z_Ld1ZU07-=?hi(L!)-b2rNd- z>(U6tPJceSS!VkyJ&*k;Y$OPKt{>0{tyiKc@NO+w#!Er7iJ-!gxy>vQjg4OSBKN3B z*)3_Q;{O=GK<#cblbV+fng6CsW;rCv95wSA1dq&GD1arn&01M=VxcmS@^AGhbSmD0 zY0yJyd{j5Ts7n2@lFb!i)l1VM0b;6OoU59v<87szKpvhgLWD0a^m<6ez-=@}k%8Vy z1pT>5qfwD4rfXqRkMHdRh{LGuBr-Eol4ZOwW}+-!uXd=OWR{1W|9+}))S`4ANXY<5 zh*;E25h20)tm0aWZ3>ZzEXqZ>eESwQC0!4d_|4kEdtK5`s@Hd2eyv%9|(lcakHGlM^18n<+Ep*>vrG!F+i55JT6gm4$o=uP?GTF)~et z0lBw0^QU9@9PfQ!dj*yXU>Ioe&!6sDEZSKUux8SsRW(2UT)#fI6_Pkwi!f&~Uz?#H z;B-jUa}TOuMa{&S!-+#wMZ~BGsv`8Pk#8zImA4Lp{rvc$>Ix=>iWJl#Ic$pCLrw4n zTT$Sf>EZB>Dj59*N73FKT6w~G#~8V|Crhr?07>4J)PvQ0K zTZY!>Qma6eNT0H3j)${FQ`zc6U7y28_m$W7@=$Zygr#g;r@$ImGafE1`R30r*cO0S zgEj!8l|;)JkwBdT6mwxMQ{Xv$TRN%U<^&b9daK?xnEPckpQv>YF@SJbUSf(RNhh93 zDz2bSA>9^zE>?rWgzyW}H`RsQap=Au4KJ7$WxWI4*fc&JOHE^3h^}jK*uXAbA;0Pr zlCcuA;6z+HiGLm?h*=ds>G*u46x$YVTc(jCNmG<_M1fWsKqfH7-#C{RmMlGv2&67p zGKp+fqpiyMk_AD|t<5f<(M4k>%RU-FfT}=Esgh+4!DSOy^+`!DXM`kNFKgml!9o^n z?2u?u(L}Gr-Sr!6^hpq!sZtuKH2mIIEUz=1FQ-M(Mn9wuYpP=egKYO>v=CEqpLnqUu#xeG;*nO$7W z1dRowBe6B56N|Y6JwuawB!)xeK7zaFFz`b2#I|9cXN@&Cz517P2qA&tF zI%Jk@1XzJgv(UyGuQ7)#mFNEM1}>$_7R@&?Nu$|_8B=NAG%T7M)kJ9-DwfDaGO9E! zEY=am@FBFp{0bB(%~UU3A&UGa+VT9W`ABPFAJvm={Po$hTolOV=k=k?A^*_*4z8kC zkJKw!fPyjDO#|~@UK349@3zgcF$ylc>fZ>Cyn5>7^E{N-CF7}8MQuiP^Ocdy+hB|+ z%yK1R?2yXZWkLZp$A{6a1R{;t?oGJyw(wP!(=x{#(^h79Ula3%sJCIloXY9v|Oy&*bOa>~B&n%TD zD&|-(_jK0om>6e&v?%v8fPWqgL}9oXai6ho3dYLOJ!cr`f=47^{LrK|Q<(>&BwEOS z-YhPhP!Bz>@ly@MltJ=@uBmvL409&Q8kc!(Z<-t6)^Z+YwL&l7$ zpV3SsQ&;=kYc7=k z`6ki*Q+M%%4-2Znu7F|oB*czxZW2zm8D2bBQM*tOWEX1El1(LuU@BCROuvV#^?VYR z(#k;P!ITZT+YN&lW(YINPDEMsM|e942y(b0Nl}-R={BMjTI)9A%vEthCtMovmka}{ zLAYRb=EM{Y9972xp!ykh+|0ljCuBrwDP8SJq0$iEr`B57K$vXf4i@=}=J}wO=g=G& z;=&D6P=W`n8x0d1hAN1;D!o4m)haKVV+RUVYqst7opfg0&>f}E>pVbq$StYOyIM7= z%T=Q@M6;TL8U~gWamaDj{PQm%{p?xkjhKhH=zX$uPa`jY)!ZlG$dnXnL~9_+eWa+a z;K(U-y8RoJoS2)T4JT*-4bz`G_vYAEZ)1&4>Srx;Au+nX-x) z!oSu`ZSXj9mDhsY2`qA!Qz{B~Fe)M&{o9$}$lp>?m5rs>DN->jUlmXC6fH-$$w_}_ zGVL5%aOQ9}96lZXosV>1>Ed~Vmn#Xldv;|}=GiVFc#DVqA6Fcg*F_({nTx5W#OBR7 z);A*&<@Q{fo6u&<|RJlzB3DVL#?)IZdMJN*;gm+X-kd**AO< zYy~#!TfH^wqV1aF5&M3K-%?I|-{qlhI0e6wX5H_=Kg}oN)Jh3cYG!re$yVZMt$ggoau_ZH)07fhw?X!&~#7JZ-+kE zqVI++j>9J*_>!r4BFbD~=t$0ileM@g2RowCm6Bv^J4ZS*=qJo5~xk7%_qZvelbI=^=NBc>Gb; zbuE$U`eVz%a-~Mwg0}b|JO+yVu{@b4qfEzP;b7Pi6H^PS(Y(Z~oT<5XawfkYVqzXf zKj_fXT;gNgz#^w4($ID;^cv#j(pa04jm4?P(+#!_MT{n}GEB*ILxHGYa_fR=?RR?xPb6G|kBe8=?ZbG3#u=noz6QuJTgMT7f zXLiIl1ja5gr zIf)mAtr498IRO1W_tOyhP2{&?^$=oE;DTx1T7ZxZgyWI_Y!nweFpd{m>Qtm5nJ+(| zr;~&=C*X6JsHg|Z5*02@)`lgXpO`35uDL43>gNajPz-6++!;s&V*dq?(otxd%hREZ*Vy8|w!sAf;Rwh)&1B8Qd&=(vKakviQwSR% zTO-kX|Mg^g#(37n5Egp6VG-u0Zn(k%HQ^`iP$33s{js8n?Q}r@Z3U`|OU*~`6nwo} zTl@wsnL2oXkz@WzeYnUC7b5SdwiQLnxWDMs(ikD~x8d{%fKdOQk&N;)#xxY1M36|( zc8cBF*4ar=v=+1e-WMHjS)=3k{A$m72^P|66DUE7?{T!h-T_|G;9s(cn6MjK{0#bC zv72AeM<|t!gaR8y8s7DYTi|fKfmJ!t_^IH$M%dVcg5Gn#Zx(ptu!D@)M|tkV!qkL4 z(I%|U$;dCd0jz$K9vUayX7NGfX=W1Agtjr`(1OG@d#9bj%8`?f<(gn-S!Sv@vgr|x z?>|Z{6KM;?YnoXL#(Rw+=7JY72Ti)gYpwcy=k1<34Av+8vznad2R&#D7yp3f=s7QG zrQ()^dxfSXi-(|TpjOao&kKH7YsL2m5x$W~ zbO!M$*6~;SrOcx8kuA4tEF!Z^@)yQ7IB5anYr|p3Blcxg{;d_@Z9Z2U`I~$vfw69z z=CS-i6zqyz#z!cuIJhE-lB5-fhMZXoo|?WDFtwzrzMeaf^6`8NlI!KUaMLoNwud6G zwXwnxGidN_59b?fOb?aj1vzzEQmDknr@O|F?~gl|>na(FHi;k|3rF_14qhWci9 zfLJmt@)0SUpQYQ;a5xuiZ-d>R;Hg(Dxcrxr`80V05K6zZ{A}%E?Kzy$a$|Kz@f#2c zyx;Xnw$&iJ_33*xZ56Wjl7gpO?QFPay(t94Dg?vb(wiz6B&EuV%UZhv{MGig+j|I={?#awYCs=1#J=1L=0AO+?7{xsk`rMshwu@$Npa3xyB(2|1MY+ zt7qlhP>d#bBeSVDYNpfQP5Z_pPiYc`{vxY;eL+FoP|~^Y?;Ca~86*a@Pd?Q|$2+4y z_bPu8dePbvnWVU_{5&bRwThT5fEdUs5(swjL+EBXk|A_Q<%U1+v7NjY6TAbZtW-Ml zBxI+7QFp=Mw`hEeyZKG`&qcC^p&TDhuOm=my6`BVR9=d`E}~FQL3lWa8qh1*zob8y zPwV16Qmpor6pkB)!9*b;T_juPgIma#)*`l>I|-lS=j)bXEGYLLzsl7EqW_KTupmJ3 z8|kws0GmXjwU(TDg^)QSMGF!XXM)|8*lNIXK>U%{re=uWt&B%?2l+m znud+qdTBUsCM)=Pb0^pJ!}hHoYNwJzs=8gMEhyb{8;7Iw9fj4utZc9o!M^Um&$4LF+LgOE-ic$m;mFMA>Q?& zch0z0O0o`lLE7->OEJ49gtN%lCs}lRMsx3+!V8GdRexW*E%Zymev|owpAqg7Ps?T;j!)O{`Z$7 zch~v>yWochXAa`*`|8QoqoI2ffc>?9^w%oJ%-6 z8r)F+cyu*iZ)=1g0K6RD(3%=ox z|5s+r*0FUyX!-uRo$(1B!+*b_2}Y!pXwBn{LPo}7NuE@EX`U;S$3~G+NxCD=^KuO- zh|DlcFP6&}VRAq~?}iyQ97HzON!Ua17&Loy)>Wl<6}E52iaqjqZd*k;!E3k5H zHrW57)WwVOc3#p&=tnaA5q#I_dAd%o!qMBd4| z(&{hu@~W1JI4T0U{IN5m%9^~HQHXDf%mn5|A`RZyD=2pIz9uU2@}0IB>Km&fFHRL9 z*%Q8wim!Qj?xW5mm-Uw#Kp4=rM;#Hr0E8T5j(Xf?I_2m4_sfaYrDyQP*Zr(@5CWqAOUqR7`nL8!V-3z3< z{Lq#7K!x zSC0yGRaiZ-wIQ5kaD_dM&DBHGLansIfemT7J&jO!mPu+P>(XgQbVN!)PfaxIiyrob zS5erjn_Wi98EKYf8o*IHRp&+Wi+QOvg~ z6d@{hgqu@F=6JZoqm4&ZABwt$l5KWWn8MPrDtTTg)r31AD(#rK-X%_126z)KVl`G05f8zD^3_9J`J{Kn5>6IbqJM;nL+7Uaj%lF^<)eh)a1bAs5Cic)sr#nPn)p{Byo6=>vHJpmrWx@hbU?-#jg?N zpDh^T$U0wD0!-=lOv$ur_pe~OIH8Pt%^OaA|!lZug@C3 zm!}KPU{Aq=*)O|n?|-Kln2!BVs*-}a_Y33N{)B13Rm6scTow_Wi|K?h{d?w&wv8Kc z_Ozk2$uDx@{&@XX%^;oyL4=5I5H9<1gHq%ouCV@g116TVl+`P0bB{F?>{@pbR_-pMf|*R)V)|>fMEK;DhyZ7ck_W(6B!l=6`YZLc4w5>Nows*5jpRs{apZ* zapdsOI_r*tSu!=~kM(5l#W^3QSCf)v$d#nBC88$EB&d6!Wf1rA$ubqiRpH>Aqe2d1 zoQ!cpf}?KNJ*a zmy-r)YZnCCX8i@|)?9 z#q-A##Y#x&m}s>P68;0-A&`jSm-;((uZBM#$G~$F!LPRr^^C`pHd{h4^9c9bE6vX9Y6~w?aLK6&=?}t zKKG+FiYvw}e)pfE016Jg>lHdq@e~c0T^7-ev7*Nt`H3Pat4$o}%^l{eg@u5?-m5?qaEMqJE2Zoof{!jt- zO3#@DsIfUoIM4=W}YTEvt zD9v&*{Bkx8u&~%qVKq^{LIO<0;_?1!V(ueFWmcx79A?f|oX2Z$$swcSie7Pa$p2n= z8=4k4*yO0Y91>tTX&41ND9onXdEOM#4tLonxF^__HjW*i9#qT*p4eX#WZ|36_^?U< zr8$Dp!8*JZ@*Q7WcH#~X%AU5CHXQbC4J{PP4eH(qFse{BfwP0+M8?n3N+hQ2(M#Kh zT97hobFlgL^P=NmDzRt`!)YP`R8iYX!DJH6epY_>u?xw64I?z&bgM-p5cPMUjL(37 zIUO5iBV=54ZFTXC;|l?IbGk+?%5VSROmIb9E6D_e!_AVEB};ITNU!KHQ``i)u?PzI z@O7miKv)}vcC@;>Sngj|aFN7Ua{&2wV7A-;A&jNdDfnNHSz%a{v2DXQACqtNEvQhU zwiQA*ZShwNJybS z2BT}=P>|;67x@qUK_&Mr#jCB`p50%35*8kG5)TmYU}n1xX~%wQR2#RIYXg8A#db3N zRU#gTfgtM)wvZ4Jl^UB)=Nl5AZt77w??=Bs>6NlF;u8D)-nxw|`YY+!1LQO>ERH=c z={Bog=4vX$&q zD#!#r+@J&@Qwk;3J1HHrj&`859ZuLE4Ve=e1KJ5=DN*ggdAi)XReM@B-#XGc3UY7L zNQh2;*t9;`@_Y%u_LzDph4;G{$53Lnr~z5CLQJ$~t=H)Ut@^!KNxxzPCF4xGlzpwsNl0Z%)*9%~@&g+)QAKLf{&n35*A@e&wf@2zKk_ zXK2Z-68M>7;BK}t#8`w|R)-(aj?MORL!DzHE+M&N)}>i>Z|F}b{|$vePxzCCar`Lz z?b!9(tL(RP&brSRWdSI6TK?28N;yJzhLe81Zqfc8I|GMGeF=kYzI^@q{Edg|X9e9Q z9*E4|++}G#sRxjoXK`2aPZd?Ef>$J(m#5oXFFcj99Iu1`Px;XghdMn!)L9OMU=9`g}xxDz7(Vb`$KY z4cAl1y{IiJ!8>kz@auoCP+@PQkUuS8K|s!uZ1D(zY;9}%A}N%Qo`p~7p{I!H#kEN1 zW=|}VOR1{vx92H?#QcUBObOM>&oHd*IEFoBP^y zQSHI=!iz(Cm1Ee@8`>C~4;Op$M$gZck&h$6e z?%pO~x3yZ^X@e2f;z1|x>8-3k!Sa6CZYSpny~EBB^|+Ay0xICbP5*wxte1Uz{^yZ^ zJtijZ^`)J9Vzk49C*`EpeIa?YE9iY=^?ZTazHDG*i^{&ITek=8;S7wvM{Tt7EkI89 zM8&2t&3WrkKaTP0S}z@Q<_YTa^)G{h;hY^H%B?D<-1^|`4xWqYJ9GSZHR^$w0ZRV( zxn|R2uaIhohABW@{j;v*P%Mby>zwvk%=~6oCb{Z&mugte+o;m#3z)k6d+U2+uwGx? z((LES_7(wkx*-#F8C72ERd?(7NtnK1>Rd77q|>MBYuaKgdatpYiY}q*3cZ78V$PaVT5s}+JaxgY8)V;{$jom*MEDR zD~DoWKGJ~Ei?G|S+tdpKNV)Z^FbhBuskGd~y7QGZ$a_KY8q6<}ewSMJxhjh^a)7hJ z9Sk*0ZkIae2cf|`R^_AQyMiBD?QPM#0$%6$J_RODoiO6^TRpz};fqncN%=n4@NxWG zsaOAt*}{RbQN;q%bP63+l^v|}vgSak$3=YT@n*eMvjy?aQ*TI~d#3B#&JCdS)4`uF z-*R1=zHM#CfAmZ*h#YlI#{Z2Vklto*+oSg`X=9k@-W&9*?`Rj3+v1P8U|<`LD!f6Vdgs0db)`BR!>SF=0Iv|yg6)ntWxqlRXg=A1ffU4b z*}&SRh$k`b6y>%RzRMDd(+?s?uSruB<3S}ObYoq0Q1Ux5sMk4>{917ANhICtFN(oN z7TU92bJi)cj3FE1yu7mnXck)m1<@i-M6uYFVjd+}6zR+h6lY^HP~QP2LixlC)~jCG=rU?!bd znsyqgq_$FFwHge;_x%j1M<))wZ(^_&CXw_fNy)XG>1aO?i*VG*L}v$VO^*=@s4zk|Lv@5&e&R7Paf}lDC?P!4?yb4KoK75Ywa;I=@vG z%q39@A4mto8@nMANF}>j{!=QI^hG&QbTtg+-ZSwHR{bWC7MTUI5eHVf)knFtkgXlC zSAxyFfIa&UYWIR_gjyq!@Ca8@QzGGQu3YQ)3KCeNy?=(QS?ZAtN@`Xc55IS-IS^to z0ivQyW)bQ@p_36@C8$Q%uf(yV(n?80v#Jt!JTV>5kw<19PJSdOu~CY`s&3a#w3wOo z=aU(IwsMo!_fFO~DovUiKj~GR9559)i@Y}|6=WxY)gTVH@RbAef|i()*`btI<7#AO zjF*>eUWP!og3Ub3f>m$$>5d0y!iJKn0EH@?q2QU2-=2_OYZPafqRLy9@Ry)2Q}}H0 z$Ysv>_%*a32~?WmyX;FSKXGDyyH%F6oFVBOoGyk(9$g zlD_aP8!LG68tg>e$d1RjLw7=jw~EJ~tUZ9LonKWaVjfyJO(^5mB!xuU5nP$vx1%6A zy}dK}27=YVlB&?sUYRZ>zdbfR-ZTjn8+RhUq$IqQq`-$nh=nA>0o~gLw^)$f7qt-$ zbN*0BR5VLF&yuVQ#|Gm?TT+ zjZD{(n3~QN%FH)RuoY0@payP8rOjDjGa{uGcr4D`kamBHC^P&E__r0l{x(z0ub)48 zXEd%2MQXr>SkR?5Y784$N))@<4z?u^Q)5WO5tBi#YQRgyX(Y#5bce!Q#cC`?Tkv57 z8IfQN6Kll{uR)5^R*E(eMBPN?g^PKHuNX7sI*8G#3IA(qu#45`3iyXMHpTtr0Y0xq zYueDBW{hF~Lkox-_K>DGyMZcv(170#*ZdzWh{Nc=zPRDtnDk-X|EN4j{{KP{8hQ-7 zx=Pu{gVgpzWVY%IiDzSY38`kN+wde((Bi(KLg3@LSsV!l51RMuVS!hI}#W=y1d6wefdm zb?M#BNDT17>#cje>BkT8!dE>au-SYy;>qAOq*xvzZ|VtM~xqSEKWMHeR8|IADSmeQ#9w% zJlQXPU=qT6RP%)(dGdO?FGxWB79D@Fdi6b?U)N^)(m^Y_->Pcoi25qlyx5uwvvz&4 zeRNR$D!O@`g?@5A1S|j_i=of3AmCH|>;A^@cX3y0UXGuabo3cC)ZQPU`B1(-Pw?`4sK^&k9_N`-nwI6 z@7M9ivwo-C%#JtL`$O&M#{1o4tLmlUE9WQs&VB0L*AxN!tUB-z^~-JPbm+3F$NKH< zc67_-@xIHE(B}zoj;AN|+mcyDefsS*$ZcKPGdk{c^=B)td3cHp7V~TP+5Gb^uEuqV z_umsPPN&=T!ws)rI$aOgN8sC^FFtD=2h-1sqszBHr5mzb!Vn$%`g-Oi*Znpk>USV4|h?$b8^XaDLa-?@E|!BK5$P79I`WgAyZ$_eIgwK$#nl zw)7`Pt>QtuG)@U}|HmPi%sLge#}YXeW*AP48u)!=Jkek7OBVSuP;0>wYTsfjXIK}sP? zU!X47KmIX58u{<;pl9cT0;Q&jBT>RxpLPV=4FRL3NgSwx9XH7wP&rl#t@iu9@1{|s zUR^RYywFNV)Lw`57_MXc)OR>uG%)7+gq6M6Dier*yknZg8J?jimdZ3+1HV_YG0<`R zSr4md%1NK0qEND?&_&!II^s&SmamS@Znuh-E7y^bbiHSh3Hs>c41!mlm<>ifMs-TY z71D)eR2fY|#1$f5=a4V8+vfp`cd82Yvn1!QE84YFq^8onPL$Jp6OW_{TkyBP zVDv!!PnKHH2P_)Qr6TeeWYv*XN}b(PS<+BE)xl4gI>jWY$2R?2G_|50N+mK&&KIEt zMu~sdK%OE>ydHVQ3?%csE)c}q$Z1)u{Img3J;tKoa^~pZ8A>eJ0Pwo`sZ5gCG*X0n zYAV;4MBNlfs}5qw&c}sd9_rk;!sB*yn+ij%n_n;9-$sn(#;_rnMj3^V3;=*l$ zDWnL|X$}E;rjkWU^9{K8D-(%pc1pg#dM`IjZ90vM94{dJ4i;@%c#feE-GRq?*3=<# z1$~WXBo!tSHR^R&5{eyj(N5Xko9WN}%onoad{Q_9A?Z9+v z?TZSqe2zL_E0~a}z35E$YT2T_imP&VMO-c(pcgR(DWnSb$jtS`FOkwP;RDbAYl0Rb zteUxjFoAj{1Z=CoEdJ%f}QW5=#P!9brLSqg1hCr!U%xwM2Oi#rbj^kt0lTVK#WyWTVJ z;r}zMkX{R`bKI(hDs~kF;vdCb!IZx5DrtR=Vr1I#98ao&MG9&0mSpa~9E#m!`>8v> zNYVR*-fVc1kOD_sN2!xSt`tigcH5>9KBn}*puIBa{y(<{%G+nLz5ZJQI@ zwv&!+&&1Bewyg;#lT2*e&dKxpzw7;S&WC&ThkI4;-LaJaN?SGNG6hA_`bY5}u zxq)i+N;!5m!^@$6Gu>`z@+pXr2xuuu0D+7Y43zF!+y(DGXAw%KE{V%DC8RCumE*?e$5bbsn}mZ2$KcWcimRsWOhq zwG%V#lZvMqlc&PRhB^h&ZiDSoq`>;5Ijd9`FVLsDF+w15Kc*a+1=9wB&!7PRMoR;P zlS?s>ZdAF)|DfN~rUIMz%teVO zqFXS$MPULSW|FYHC1D0|&~XMC1?68xJtFtzcVG8q_xV!8#8$aF;yGuIAF|XcVcXSj z(Eo1yc$R`KPj_UFtOw+0SRm13%P!LWH)VELqb>-fF3BLWqbIERN_y9!McG1wfJC0N zko&dYSe#}$B8y=Rc8RjvMohk2VBHW%cga(z#S>cQY|x{V1N}=@+go1$IG}yg%;MWr zW$sqSTYXbo{Nt1Hv>AC@>b{J_lLFI8Bu&(J6#A${4Q-?zgen}G(=j{0E>8H{M`K+bcXorOMi!tgT zQnM-y56M%2$WpnJ5jn(v$c4i+{y(s4PPWpcj+&4h=9<(|FT+$W;dJu93ATppKGVVI zcGD>+EW{r-W(o=+EpYlzU0;$S6e>Mp=1%IgQ68pLLM>P&aJd7Z6-~yX^N;$+txI2O zV`3vho|W6qC&Y|L(U254S&CCGS%8z&0JdN%zMkkywlZdDQ(qQ=8E-Kd-e#y5ZUn=6hQP3+(M z4gxA;1gd+>zt)5wa3yiQ=^hCxRDJb&lnj{b^E3QWVhko=ypC~=Ze;NWVB+KeT#+>9 z;3eu;%x~R{GIN!7y{gsx-+DEc6szPn)x#*FS-;SoEFVmAR_+GIn})1BnLk(n?td3r z<4|?zGM5|6+@f^?-q>zU8JRRm^H}xDWr|qkgr8Dhmwef;nm^lA{^0B6cBpPy9GMFLe~aU-_spH6XFf%bQ50!R90%{2 z3XV2PPiy(I>D0xlc5PCfwIWRY;iKj#UC65DRSnBmN9R4^8d!Mo8N=b-6Lr5l8rXUG zwSP)-mOWW?VuNx^f5DH8OlR#jAtX{&^3S==f{fo-k0KSZUuXb)Im>@|=GKt9`xU2} zb!=R^(oeF$w}{i|^~T{@p&zWUDUM3M;0ohw;lh&=!@d;0)o0sesJi1Nb0A!s%rs5D zX!FY;pg8?!XHKqWer_3^<_*}FFZa+Td^u&jTxr^Wg38=ZcVCbU5udL^yIH`>U9qT| zvfHcu=^MleF52J4cZJ8M9VkItR2*TE9wl{!i}b06M&^$)o235N>Jn-s6q` zLF?3b7O0Q)0Wp()V)%dI)&eOuqc7+S&(w7&cKOu5!oBQ?d&8?7$hr1(jV+H3Xb^aO z-8hBDq+r*reolawR7I0H(MCariP$cnYWFqqc)9w1X`G`7zqp5Of>AjaxCgD9E5=`% zdiOUWH<{|fTR7x>BD7)P>WONza$CeqVgI)r>7$DmM;J)>-TxbWm%=IkJ1o9+Gg-Mo zz#hByg@;Q@4DBoCPr+XpNDr(excOg`Gys!Iq%}>`kGnczz^`gZ06cjNu#oO}pD3lT z9V==y`4o_C%cA_whq>|$;_@eQ$&OOsw(<#A!K9SWF-A+AjP{oV8%@8Qzf0%;mS%-! zv}f-hpi}K}vM<&1@C8-V`0Bll&@eB1kWPsi@99Gz-R!Oqi;7=bCK{v-3h`0rR;F+Y zl+CE%u9=?#RH{9GV%e5GWFhwO5W6N;*mJdi3Fc=ApavVj{WoZ>%C_*=cO0!CbenxfRSCmIp=NqX%_zjwPrPZe;WKW zo3f?jRh~Zc6}aN}b`g+*w+n z)Ho;{rgl_SK|jhe5ohFr0asX7kUijNR#WE1hc11=_zh zveQz{73bGL_uH29pASYXDII&qBLm&hnYNbF)$hOUH~&5G2K^q+jv_W z;rh#{*&opRuzf7-eEaNZ9$(rY>4tQ8?6iDb8U5uOp}RYE|JbJI;L+>MlyTehnd#8e z{Wrbxhwr)G2jytx%c)DVcAO>N(qIX|vw8AC0{mFR^m}2?ee?0<+U=?S(Q9?_o|BsQ zf&5?97;HZ_N{=Em2*^mvmNpTZ7}?>@hdM z=hp3dzB|)LDieMnIo+^F`9>f+b~%%LAsw*gre^n3l1`09HHUS0hNlPKM089cLy6pBg2kVF9=9hZj5tT_y~7==O3xj z&;qQUDc%pUTbZ!tG${e`eJE`)hx||0c6lQ|tvT15<9?fYVweye-x5Rca=p>}(|4WT zmiaPJEB4^D(w1f3(=>-fV?^bb#e&Z7ml~5;8?%P`jqL;#31Lh5>OfsM5kkk71bnRs zjiBCOM2^vBhN14@lH9q0a_gO~vbc;(TR3A_vyEr_3MODSa1@Wefe<3nolG;M zl89J&rm7~dMas3W6MMlb2oeaUN-ncAK8&C=3)9dRL(Q`_v`Vo6gXS2HMrqWhPJ<|` z@l-1q^ifI{-NMXToThISrG=;Z;AJv2F5mJ-m%qqG%#dw3ECLCJpYQM38-~3fS0~q8$A74<2Znmzo+mSUKd*W3>vq;KnZA0WZ;n&2 zH~sGql@bV6R`CfkuSlZmuWGhUFDYY;gOFaYL4|ULm_>(@g;9?@$}c9zzzlSWPX^rU z&IeZUwMHPj_tbr4;*lgIz4m8^$cGmZ7Y@#NjA_z6s2T{-2-uczF$M|DQcCfQyv z%2t6q9yQH%H2P&)>|(YOHkP<7P-G9z`7$}7j<`mQX3MvKq2O0 zM4`&qBxVvhIbcp4x^nY-!@hQ~+;&mG&y39YYa+}6k-zpwCaoA%&Qy8CSvUxKV$Akf zU4VWmN}z^`T-+y`=Jv&uK2+|2H{$-ANG}}1F48NZ{t#!foXgRCdkhX+l7Po@oHD=b zihT0ePyi(oiA0iThzz!0!aqK70Wo~#29~u}*p`8J3(_{oJ)57YRFN;{(**Thu|K+r zu-$^|V$4_gTb7%DN3rqo-u_Bk>BLcUiygu7Z3P5fwPuakCJ)=^zLOfI5uC|Z(Tz=O z+-DnsnkQG-{-trrfT1&gyiT>RvvhP0_QIl$LftHW{wBUItIxfkt?rW(kEF200k%)H z7qdXK1bM`q+}SI08V93onc;(V;ivCJ7vR`9YGnAuXVL?K>t};Y{LuRF8%4!7nBO=Y z1`a^LUJs7M{LmB6snoH%NX=T#;zS0=kksr(PuYtbo{4Ipdh?th^aOQ>cu4FaHpuJKSbADEHuDezN*qe)oueiP5ShcBa?nDm5gE6nNo;~ zbtPdIK}XDdy)Qdj{$AaSjWXY~IKrI{GjF!~Rq@sYmyeP}KhxaE#?G@KoG!R1A?sF$^q24gUSmnsd{dQ$EQk(2)e3 z_u-iBF)_XNAGRdA_aj7BM8YlbQx8os%bI?4#n!-0|B&=aVf*z1RM~`yjX1$g?O%tp zw~f1XMYlvT16izFV;u85b1?QcJ>T#2SM8CG9}$08mD)|(@m$zW;*e2oB}l2-f+#7~ zW{3D3o||o8T4~AHZJ*JPa0ZvWpxViRKf2h3YHc34GPw>LkxxtKpGw3z6i?HR=H;{MzGD=d> zLs~d}0o5~}mGH2x9bIC)*xhIN9flecBX2l`-Msy>)1&v#&-oISIOnxlWg=hO-oqx$ zqFI0%qFb?O_Utcjm_fDfC8E!I-5fsuRW}(T(#oQP@+lWwvrDTkj17f(K#_Jibeb$* zc`M#~{yQ<9snI@-zgZ8+qfKYa|CJ{I&}?0A|HW7pF%S^M|D&{Xb@R3}cl|Fbex_%i zP$-EHY!+_@IVmj2oq#d6HIx}Rc+Tu4pOzfkr%-m6ir~Au@OuUN`Y81JezFC|lJfE+ zbjUmo!@;oie%=noA{f-_OZkY3MEW~Y+kUU0Cz*LDTh2n>-y|B%>7fV0lJ*rCMjvOD zH}aJO1YSNmMR4r#@0^2_$@@_ZxKpuJnz}SnXAOv#;A-C}Znm<15VdJSl=bVuW`H)7 zl6a4~r`A+FU@Q&f;wLzruJDJnX0^CN#9r_RzAKzv8QPeFa~ShWzUMPR&h$aj)fnpOI5$QoVHfsPL|{;0~NrL6R<4&|WKt(qI1(WyE09 z>t+qqx$SU#=n!tIc>Kk#yZ`tDrD@2fTV%NK8G zW$tWbkShR#>kyqKiPS3gS&NVxdeBpX!Yvw$oI-qX!q$1>&pbv9N1A}>H_cP9B5Za! z_rHR=wpg^ajlRPZoUSY%e#YBIc=c5pdsK^U1LBqXN(N6uL0f8GOpePuXU8*OB$(RU zd(T!3_?F4>!XBn%qtDXwi9!~9i23)i)*r&-!n6SOJTz&9ay5B`GbegpB7Fn_17Q~K z!w5(ijZjTfu02)xb(0xG#`Hm4$YE~GJSR4L?2g*}RBWBXi+p~3!yQLmdV-Zgr*UZA zeHGRndJ5AU2mlV1a%>M0k$>r>DQrH*#Tpl=Xi$p!tz4G2BQs!rh0KAJ2b^PK`obzb zCkMcWt1vdeEQHPko6Sh8Kq_&u@p)4gs#=4E8)=G|X6}N0SRx6$OGMwSucRpk&&Kht z!owB^*?oPwzP0A%PA84-Q`udXS(`Xew0n~N4p2?baq?S0YU%l>2tWe^ zN&Zf2zPGLQ#x`<$$Q)zvNF^5SFz@pDj+n! zW}y@n-UF%M*VH@I#gy#I>Ck*`Q6@u02nQ!f=pD7*ND9^4^@h}>n;HKl=GXW-ghTKJ ze?%ah;-l#*vD;hmPzrUzKy`o0G4lgs*vPHtGxdFgxbE;QG1`BBRgB7iTVUPsS)9WC zmt{yKP>NJnY%4ikr>vGleKh&6eO)8chnZBzn~S5YbjOZAQrf+!3{XWl0A*;{VoIr~|CG$n z(dKL(O{?cpU5@)bxmYhviklt5snG`>Dl>{0yBa&+&xvCS?`wElcTR2=N-sUi2o9++ zk8}^_W`+zm!Hxu64@S1tB2P|0%CVJ4ZZD%*>>2!@^)d7M&v7`utE^sdydvYNW8PI8 z1ppg6i3@pFVR=_`?-m>M^oZ@psNwvv=WA zA1|lAz@5nFWnI_Qj(IsQ+EGRsQz2%vRk#nY71bjtq+4C{SLkvjF*&z@XlSym==eq$ z%gfi!^Z$Q88YD%48wT()?Tnz%0Rj2B1p#$`Uw&Wh(xF`8hE0rQj^c1M832MOg^(lAa(o_>g_kY`qw37 zPNjy!>@01Nq*R6Ft#=hhQe*w<9D4|;ng(9#Cy>u$BsqT=*_{&Q6+ez=sHE2d8+lZ> z5~%(w*3BJr6j(*hZtE{kEZ($h>ql}rZ66D6xqj}|{4+OJM)wA8!>;^wS;Z;zfXg6% z7A9kRPFedT_5zIso?3xrR31ymyfy1L>2GKsMr4)vy|i64ji&?(c`i7lGCFk^N!oSO2?q-yyQK zl3O0^qQz7Fhqbw$5Vv*&&xv~Y8#AAbj;|U;-)RoE45aHnI?>jeH9?hT?f#Jhx3WvK zMu$p`7)#n~8;nA>Q@7U+hQMaLi(LiqEC3ydsD@Fafq<4hAVNPg9JlI_C|}Pn0agD4 zODo5Xcl4X-Q#|r{9eXw|eaATH^nu3V@%O5VAqSPCkk>zm3(mYsm0V%I(s|KVXs_11 zG+rV#XqE!HYwNGg0rdDS?WeJ&$kUul^?akLQ^3CpD+ShVsnmZ^+GT> z41DPNgJLlz>%cZ@#UHVyna)gZyY<-n1eWMqA5DEl7$~X^j~E$${@NMMh5re3^$Yes zF>y15W5mddxWo0?DXYnO__7z4j)@rRS1R6bZLaH45nFPbqz?_ zuP`>6CD19_XK0G6b8H*n&#lZzxVSj1S$7|IqFxlwF$+)RJa7cw4dd$8KOdGptACe{ z_SbYptb}U7Ezp>c48tXKcTKoZ+Gldw`Z;6=+y%`XB2rs;$&aT1cH79AC7@xo!I#~^ zw=;bC0rp)wo9cJ^@iE%0fl6ZfSqFym)p=_p42%kSSPQ-H_kiek4dVM)U@dbTPXL@og2$&JUIZ zK=;i^u2fuUV&M=3*oaoVitMO##$AYK3~A8&kl3x|*`ZZIG3T{>vdJ_qLU`(cOt<$2 zuV;siUGcP0r#XR{Vjbuwc)b zIw-L8BD${nO^_CX#!bQR>LcB{e~ zekDf~0Y7ov9)uTmo1?#&ok(K&vb4VKDChahWxi**{bk<SyKxN726pQ9=eD(#8HHd1!-XvGuVKXb|k(R@go zdM3p!PV;8zK-|%T!h0cY=l>RE+3604JI!ELPQDAvVQ_vQ@%;{j!xLo=B7m+mQgOry z^iV4oB3$D8EWXRn<2ekeKgPjti*@>L`FDZUNpy9mQmtfO>D;bhi;*nLjTl9}V{O9R zmp2f=#uoi=i#jeh(f#*P#odpO00y|GtL^?$WaK5mw{RDaBp-(=!*j7p&$*K-U?s3x zdS>A*eif3`Jiy3Z!q|yQcZ+OMh1)Ymc$9+cZk64evv%1F#u>K-5>qW=mo-EQY&+x- zww?VtDAUP;_=~2GBVokhs7_Geach9+6Pv+H&9)WcEgo1Sgdf79ECp?3<`NK(MHRF z;ZKYs6_?Fxg)u3Gfoer1-X=*F4SNP~TgALFS|vch4{&P*_l{Hh$-9;#LtUk?2bui~ zimgD6?@!+nbqPMW6F^Yy>&QW|a*ngJ6NJ?#w_2Pd(31`@#+C`xCoZmokF5vYo<0rc zr8Zb^)TB}c6D$txP}FM;Sa($MevEpjCzFqn{!U@YEVc}3(03#%#v@o-gg*@gJsvKY zIrZwfW{T($$RXxT<1Ez?tV-%g!3~pf*i(2(MI#w92pk6Mj>~T%;%`GA*R*#@jeS_z zfj0PEv#u?MbLH3z$2I;adW}OII1hc_CPN;Zxe@jDNio0eU62zb@J~~JJFopD{H4QB z!>&-gAJ#=s3v~I4$bkdUWyQc?29rTgd7p34SN?f~BXlnom%Mkyj3fT9klo+f!u&Sm zEOd#PylGPE6Vehl;{;R{R21kEMAw%{m}JH&?vQH`!J+n5tMd(UHq=h64@xkRa$z;C z2&Y!bGL1_aE8h1wuBU)^D56Tsi;4iWXKcUZ!at5f_MmUVFeKtwj@bbDu$6LK0{6e1 zYob1BFGZbOZK(R91*%{Adshuc8TqsOL(Nc`gmz#?_F8o)=Zagv7~SN85R=h(IwS1E zH>GE)2^O~{=0+4*^pztGzA`+byYms(6Cm!O{_FEUv=6za-+uuyO#p%@bev7an3N1dKcR~TGW zBOW!dk9@#YL3C|5$5_5o!aZ%|KCQojosb*<`zQ?oUb-C3_f-cMPlK|o4*s0Qt%v%lTub+N`Td`%&J`Eu8YQ2l}!Kbj{=mSQLt_q&~wqpV#9rDXWdf6!qx4CkJ{LOWv|HM}GB?eTNEa(SB9nER&vAB_qK$-9yAaq&RVHS^ z`Fu_T&iR$HjJZEsWRGbXB)rYLKQjUeJ_v*uIe$H_Kmqp~7fpJL`i6SVWL)`*wad&5 zSv;juICAs0?`|V(G$p*)Izm~-5`hkTF`zEmcvH#@s&8w!Neu@PNhZ4yNoa!+&`BfP z5m`IGLKLq5h;+Ge3;gslVEftW14E^D>?27FgHcWmQsduMaek=_W(vIw!#<74B6%_& z{9%&=3k&eg73MRyri+BqY96T>%=$xhBnql>wasu{P>L`{Bxb)NNYS@D=RKCG^{EXT zv9s!j2^Db!7Kv%#G9c0$fh_GE50d2Y=C^iNo;pO%hqe%d_!NG9rqu;%?Bsv^EcK#; z6g_r$KZ%ugzVsV)e{CipZSYOfZRqY@{p@}XJ_epZk>p?5S<%-GUUyF1{HyL&7oO$m zp*NgbV~zs}S${VNCWijd!CBqTfan=#-m~{^l5bR6A*sRgop$(qx->rtyT0mHD$#&kPK$O^213oUZx+bfoYr zu@BVgu72W^>c1Hb>ao3s{a74wP9PN;U}_^M8O8vZkJ`g7>$@*4JR{>XtJXf^op79| zykZQt7uav4oF#KzRjd-{=kWOD(@+;2|h6Du1+QQC7U>k^0FEDl(TZb)I=cR7GBQ%Ug z9Q1tkta8?-m66tpdLofYUt|V9sL;LJOtpehCvfUc#TB^j{Lq208`!^9mUY8@O+P&E+p`UI@?J)uA-A) zx}Ei)p)n7PkrCE$JUhvRE$$MOi7kWMgiX=)K+}=j1O`-}K+1;v>4Z&L4pn+~%IE}r z`+TQ$Yg)=ab%W4w{+aaS7Deo0I09vYSqUjPv1*iC_Qj}hAcq9FyQ_2G?d8J8MqM!N zCGZ4VSA8$_0C{DogkUn@=fep>@c9>kZ}L^^Y{0^c*@9S5qVbHxRaCC&%eAV5BXuf0p$ zC|>HxtFE=z(`pBjAmp7{i+De{j-T2D->uHGX*3Q2d$ab*gtG33tfPc6)8!8akU`K_ zjTL+y92Q~o*x$U878puT2#c(F=pTe0c%?vlR^XM>vjbM9`qW)`vB;Jqipq_Tv>!49 z_jMrxtMtAJ&q>n$pEL}Z7eLWx6}nLVcNS$`+-{?)`9;)9Jn7?9HMBf3tpsJ_h(#;jg*r!y(O5WBp^+b?#$~T$__mt zQ_jqlnrv)+u(_YR`=w6@ z0$heCx_ZofZ&eJ|C^y}P$C-$UFE-(N_uC1Rp5vmDDkrB}2L$x|;;!m=bv`n>qC^`n z`va=zne6AQMI6%Q0p3N25AHt|J)B`9QxU{~aTF6KCXKmd4?u6xNC=4&p*|6>pDoBT z#t}Bh%DjeO~qg9BUA0!;xXq?Cv&kc}jdyATvvhpj#`F}T$>2a+EqBH(Wt@@~Czww}X! zJEY8052jVlkig*OD;;pQ0L!!+&#Jq#l=rn2@-Lu6Bo&SrqW@Sl*LqfR9#wkkhDU83`A&62~)q?4jMiu z4Pf%^-n35O>wdS{*0+H3#Do*H)MS3#*-=e33B4w~(~)1l!;y4^_lnRL?X8IumMR;a zMBh8=JjFiVUPZL=DioZ%RIs*H2eM)3R*WqpizB0RfWWR`Lz72%nnZ$1g`Js3ie9rRr7ho7o z{+#Xahdy=nKsseBbY!1_l5Qh5!sB0F$21J;2f#1BxvEsuUBKA`w zyy`sAE?Pa()8oOj&)4XHb2Wra#a!+S=yE({Jhj!iSa1bT%miL zYIunr9v<%0$7)jU#y54pTNP0wvshFe^%c! z0x%u1K6sm&%6hy_ep=3_zp=E@%Ok2SMT0_pi>l{9%gY@Zem2DZTvP8?|9}SxV&R@{ zW_Szp&KLxTARxLj#M0P2ytG^u>?3+j7ptm^t}vy4(22owHdB$d0gJZGh#_15JIkrFe`vGZ@seZ zV%@q3-!Ll_*Np)Nv&-H!NUB|1@?N)i|3Y4dU!>fLJv^DWf5dF(Dtcr{08rn+I$%MO zzgcNlil}Ua1`^qc_91hTY(-?DTn#F~JZ)1#yg8wR1>lfu;T&$4Qt`$zzpL(*UYvh? z$AF(gDNE2lM@$dVA>`S$o5{)c^dIXmodmIp@1aDfgZ;vgC!x%%2PT%~xetmJA$hi) zE7d9I++NUPQ5p-lhG^C&AnlpRP?82GPD55M{rghwzo0B322w~AMyUCDaBXXk)PAQG zF%ai;qDhK7UucoNK`8nMgL#|RfQO^v@O#tXY``4WATJKZp~)tKGPGuXC5G1Nn~ zifvULK}#pLUKc?wU5X=sgq}VIe&bEUsakBo42O&m#jKsA+(wIL!1?4G2#o1hXFUs% z$&3^&N3=3Luy?zaI!mX4j@lqPk`ra{K_L-zH@JimWq}VS)hSDbACw_-J{|z1Y7h{D$5FEt3{4`6|YmxL>j_H63&gmQOb?RnJr$A*wul)^fUMh z^*r(d+CgAd58@Ozps$~KM3*gFBEt+M+m5$3Sxc}G?4rdTP`@Ql$1FTTvkI+>M(V@a zqy0wr+v_aJ_zcemy5)r5CC4t6utZNFu@lB)-_E%RuW$S^NTdanFf#3viUwmvmO3}F z?Th>rg*;6qI5xPrq#T)Z!o{p3sT?(v`%IY{t?g#a>dYR}A_~@lo$0W!3|;^>stePu z`mQHbFomcb7$Q4VfS|Jj73QqRfy&XWn2Af-xa5j_asfwaikRRy+JeGb{Yq=eyMt@l zWg4E1;G^efy^33V@O?i4QHoc2d8V$7?t5kD=kShZL#E3^r${kA6Qd(u4CG;7V#nIUr#TT}3#VbxIBRe0g0u zh%>2O-Fb&)r=}IX#Q(vK69Re{^SE?=->D)u6cFqtwWpFe97W)CBhF0uq8S)i#-OBq z7fj4cEny+UL+`+OqQSenqSd#t$+GfwhKeEmubBbg3CFfpO!H15arwe=bc}2DVPP1= z572sM;FkRU?$;nL3|B@(= zt+)blawJjjYA#vZc3>+AhXwg*CT^oQCkEc6R_3LJj6?lwG6X%I*2>K~(t|XBAArXS zu=eW&!_^H;!WhuShmdK!1D>r{Tg zvWsO8w#Jo$U)@Ln9=IaGJ&FqS5G#fwRB1f>J3PK`Ylcd}$BwI@w_iloldPrpe1?gF z$TR)ats7ZMYQMgzVZwmLj*}2kBOo*bBO@;@_C5Nq|IEUulu;WCW&hMZch^k(QkDfU zt;%-AbV5)($0p)nNB~-+V&PRqkn&N7_NT!Qj2ryKI)&25nCk>bAqw91M@2 zkR%#q{jIZtu2=mCQ&~>@gGgdr%IEEg|Bieh1{)ufGa}4ut|Ma=Xc*xGy|MXWX%#-^ ztvOdcA1hng!RSNTLen}wk}U^`m9(+?H3B?gl5}XYkxyt`Omt8K=WO-cXeEz9V1#bU z2BcyiAv_N=G*40lPb?GD3|kW(06qsL(AvT_V0xO&Fe_7XR zDkiT-x@teRY}nl5wmZjwAD7Hx`i$ex5f+`$m&Tzv(}*4$2otsx&Eq!!;Vj=_KY!KI zo|=Jwp}SgGw?1@<&1|%bc@pe2x;WLR4?-vWi z!mZ*E@piUGnse!nBnc=64}aCAO@#B1q3^zoBuo1!^bZG(u}XhUc(|(#+DgMH!NDSBF2wmM5MJ9sV_4+e zICPTgLmua$k0lpijQ;rK&Qq`G`(>W9WyqF%Xhb|@sH2!=*gO_UJ0VCln5wit1J^%3 z`pMBZ-*l^H$#RdUbbQ_pmGWhgnz-V+G})Hs>OS@ORXt48dw(x(6*hW1cqL1N9r1KnxA89*x!qWD|KL{0&+@diUq}3VI!rBUJp7yyJ67 z=Xmh z5%-|lWjB@Wq7!&S+42!lzOw$8@m<5m%Pdr$EZseko4+Sj=d=48Jjq_Gv%jlkqJ06|bvTBTy3Ln+ay z4tE1swAZ6Bs&(c1$>j34^+8NUJ2hq=7yMX7P_YZqL20Mc{5p)_l1?CYi!W`lK^Xyp zy_x}ygO~IWM*xG^WWFQ77$r+CIZzKx>FXUQCabl%7|8*0>bu=Gt8EkmnCwM#7GZg# zW4zK2C(&7p_srncXiQ3TXY9|{%cgsBt(Y&?WlOP#RIW1Qx&e6hmNZnUq5A(D@~fM_liSaS)x=$O&MNQ_EBS|l;Y+hoi0!^@*Xoq?MA}3g#wdr@xKRPp7wrA zX593HoL2kWVrnl459IJiQEkl~wK`@X1(eS+Ms6Pw7g-IW8h6`D!)hVYFj@|;6qKd_ zvT>^N6GtW^H!E;@|H)D zk_0DrXse~HM#@V&6B=##7PZ$ybv~~Ej7|t)V{@X4cEx&4wJ!DXJVap?R`ci$)8#%p z5O!G=1q@8~osbzrb`Z(ay0dIpLZa5&s%_buaInQM6W_|aRF4N0eqvTk(ZHS<@2;L* znPuUE_O%7s8}xGoCxA&~N8lcfKr`7zsz!-TO#E%8g@{^IGiZ5Je0bOT>kfSe;D6N^ zy<{-0Y_)fXY`@;Wj!$A^XB;^d^*&rMptA@CJew@~?ASR91M7KScpU+1 z_sXv)*ALPPHBfsRG1ZYlibgc!oBQmV;Lp&1P!`XG5ruiB;h{BGjxMr+wf?6i`gr%w zNZjjT80`S+bqsz=mIoq|yb@CYG%irX%s@O)O44q7KgK-LgHN%Kjj(WtvjIgiLG{~r zBty5*^tA=re>u{*Ngf+7&EGN(RYLkYAlrvNQvAf1d5g1f@%yW`lxDbzd0{|Uab3SZ zIS@U9sn0RNznWPK%E^)5(hNWZQAvYjt@L$}v6;|AT{vunBG3d#+=XudmG_tk-SMHY zuL-7s)t=tbs$KUH0(5fq=4rW$HpbAuApVZJtd1~?hCOpWI;DBf*XVQ9P;z}A<)^YU zt9`CtriE(M(K&W&P>=7-i?3b%z5Dp~skz$#$ltqFy-Ls_vWkfND8r1%cX0|fa#(4$ zYu$L$xuyO9hgiO{qK0_{Qm4>j@``P`zJd9fPT90U9~G6?(kE-pm;2YWO))PZa{cX4 zNB;xC?Xt|YLFx-1+tBE{;_qjDYIzS)^1;Y9>xUNE?rC5O4XIWawS$Vi8R+fY6t(mJ z{rhEiORdvu!KtNt_&X`b1YwRO4IrmHFLJxLjKObyIQx4XCJ9W8s1#;S8It#^GG>lfSji^z+2kWXrPYUZ1b(}m=b=LkFfKrODSg302=#;enInn1s=K)*pYQV<+-O`rIi0J?dat0=ZApuQdL7;FrZ{R0{z%8U;~y_ zW>d={yg*U(8Du!XBS{38CNV+#{!`#ha@F#~rtP{HpXcqQ~|U}pz>mdC)lHu1_En<_(bp_Zf>8aw=Ng?)bJdZ>+vvg=sLk( zLk*{kikIwtgI#MrH2|BiXxGoifp16g!fGEs{*#oTLM($LJyc_REFv4Sa$(GNPQlqT zfqjHKgcn+;0lB=l7?usjd~mcRn^pRXpGEow|7z2wAahX{bx1QD>~DNqUn5i`;TSyr z+U$3TY)JTpqy5xdYubgpUJ{>_bPHs3yCzI49%3z=N6+S^S0Km%%u!iil8fYro48bq z)22A~C;IY6RvcnG%x!Pmt6IxaFjcGQ*5>JDGoBGiA!J!liSk!Aua25qdTf3(g8Bp7 zr0}XmBd#2>-ni$vJMZ?;i^vLLr-^2a58kynD@J6;^v18)(OL_;2xdvvlSI8Nwrk)ZQ+0!&fm2SoKo zHPkzO4%Um)j^?7JcG%&`-s(Q`3Ih2CiPP0O_V;h>GQUJEKEQFg9!@{ut)HV#NfwQ& zfA2Gn&(~XL&virx{1h1r ztu1yw*yW{@`!Q?=-s%e+@p(i_N-U1^2i|*3raO#oRP+ zTIf#1#AzI3zJ+K`hQ9miP2#HCe8NS-nEQQ_mkZ0Dl%YV6(M4w+-LeeIwT2+ zk)fzcHGS%VrI8lK(m_Pf@ICr$@E#A%9}^76=N7B6mLpPh2DoCf!nTm}MV`~hJ$8L# zQ@8=%k{r^+V_&CDfNygp3HCV-HHkLE$uQ>kRsZM|(k0i17e7MPw#Zu)gR%%SSgjx?BJcrzF61zFKdp;^upX{t-$uv?@I1v7zKo}FOlc+#8 zW{Z*b*5fmhqtJfi_Q)R3fKBWviDErWL@c23R1@5_26q1eAY_;6RcOUO1z5JExyUKkFMe$s7B`B&t;G)m6G&*^FzYX$s$aVCZfh(wL! z%(qC%? z;>m1Pb+nltc{NLqi)jWf6FB&mbp%_#aaX?e1z9wmfr>?IKnZXyTV%?xD77M7jv66= zYLz$Khsv&7olpS0dL6z#pF@zdGpr3vErE?sWF)8p{Gb5R!7-Qf}uy5O%#jF!3$>Jj?*ZIM~AO zI|p&UfvnwY7dZMtz+%LP@%ClRMAwh-3Xr1xLVqi=p5Is=dX!$-)LG#>7O$vxiew)y zmMlLN_kA}p&W^f?AH$x{6x|&0IT6PQah#7Jt5KRTia~HDN+g(P3xTD1@|JARnaFy0 z<^vcjQ1X4XH7~alhtFbKJlz0hwP)DkggD~Iizsy#Ue+Q$t6>m-f|-rtR=5pM9-er_ z56N3s_^%9}($k_pX$!&e57}O=CHx34o!2@5fqw=6UWQCgSAT^#c>uX4)B5&&{Lw!x zYzN~}B3CIUiGXm^5327hpRqYZuc*NlT8I_x!#vVio%jQ_ADAXr|*cCWzE5cjjMR>4T16P z7u*H!yMKJt-uruHyF_Px$XM6LbzD8~al_wnWb{>L-cBS)(#iw0<@91uL4-xql?H$A zLstG?6DR?F1bM#|lJ8i47+}wQ>pYp@)#x(pkibv8jIknXb&oPZ{;ZhX`jtQxk$n-s5JtW1?(U4i72)0UZa}i75cxOT$Z!1C zQ*CvG(CM@DJHh~n-+QS5pI^wWMXY2sqSkSkQRv%G$alx;Fh)x3lF&@%r>0=(v<}5n zr07~xO@0e|?M3Cp$3`WO{#6PfX^ie@osc<0lEZXlH$NEOQ8iXz2d{G=*2>GWlp#wA z&*s(`ok>?XUc@O1dP+t6Q$xSA0_Ip4x%pSGBHKs!4CNevXKOzFw5uj3(lA=uLfl+% zWBZjq%|OC!id^<$Arl+d>9p^+Lu$OMHK?=H&Gq;eCjIfa|DL_R{@02onrpw73EqQ0LBMLRZ_z@>@uV$ya^yZ)76ZYcCbe-zhb!}k4jd|! z@Axss@yHE;n^LZ7vl0qNH><2dlVwOKUt}b$rN$`A?$bC{)yd;@0OzGAywiDThK`J- zc317ik{2XurWX2G(Nu1VdG8P){ee4Oyb@!OH^%dc-;~*g1WEf^IsZ7B&wmY`dDiRN z2T5T7YY^26?cGzoQ!w(}&S+vof({~|4zGjkNG1%hpBNqzf=S$eB;Duy0T~*dAF@P@ zz52T5d$8^RxEG|t4%NM55SoDNTpZl>^qlqNt5pL=LC>=n<+2JtkQp=<9~#bZ2L#=? zVWZ`{#Rl87)qYrJXLX(-l~L&pFeXNpLz1IAAW7&)FG0F1^DQdJpRff?jT#f$hiER0 zsXGCjy0;FDriKJd@*o9a0gCDq_f!u5?CEd9gPRU&KYFMcLo5fFKF2_n$0@~Q1c7ca zNX78Z8m&Nc?ibD@vgOSndEcCwqL$MSC$~=ZPdQ|i6MD*!5{mVQoW7aL{ltkDUoFcC zxP@LtwdzLFpsotuK$5Hr3jZoXJjRe@Ww>&uEDeDzKsCGRw~&1B)Pk23yog z9f~;P*I=hHBxauH;!sYYgLa%oEz~ z>U7S3n9oTaj|SveR0h(g>0(9$>9m2#YT1p*d$H#XzgcY34Uq7eer z0O%Ww%$SohEBQiKDN4C6f*SAnHY^swL2xmuH5j<(5)Hk#zH*GH>_QvF(Fr@)gjAVL z(;4(igLKRdqiHRT>%7VzNY+)@*ccP!y7EM1t1vfQ(B^7iU8>2k9}~uFjgKi7}RHXAd}JMOF8g(WD*n8~2|sV6>Vv z`k8-;2=o7~;-?MSD)z`=PA~@ub|D2n-kvzQq#1s_LPyC|I|uc&3h#?x>FUWgFznhs z#H2pT>_Y562Cdi&?n`K*ZKaZNcyx}*2aA`kj!{o?t#Zi!cBoSq74#bJV{#aHSM{zN zayRJ1|LN4@dAFTbs1lrm7vPbpsk<8Jwco@FFU1Gi-Ok)O@#>(uIgtZEDV+kvb0sR6{5`AT@G=VG zLySdRTCo-{hdDLI*iz(S^=fBo#J2;kh@M{5LuwlclxsH*e! zz=Oev_iDmq0KC6oH&7U}SduBV~W<6?dR9vTO zmNc%m&M{zpOG56TH|JR8(6dWxqboQ@do^&;p)U2-ortf?`cZ^Wc+ z?e1Zi;-gNp))KLf0%qN4rwi{*I1v%`-2z1ir7_;)6kwVU{AvIc8qjW+^wbT(TAXsW zcy~UMi{{_UZLR%T>T8(t&y0*SQvVC@!iApnVXa)}Nb`zsQ_7_=#~7W}2IWZ#_siZG z2-277sSW}hW11e-XQXz!b<%7Qy4N_}t-}9EIns^kAZO;T(}tgCvw(+^yfX5usO{M) z;7ITj)|)8(yM_u-P5oHrupE5=qWkL?Bt2A&fM+S~M%=C$#65CZTnIChwgp3j{_kb; z95h!(gBP&+RS9$sAMXjw?t^q<;@b(`K*80n^QHZGU64WZnMildh`$-RO( zf??9E#CU_7Y>L?Sb74`~nPzv>YJ0W#vt+Q7_e3}?ilS_`8?b%V(5&0B*9xhm?<*}T zjp;JNymQ2gIIZr1n1(Fu@m_}volw)bpl~E{{0?k@;cTP(oTL11l=H5!rdCE+$!=z~ zr!!PSs@7uVpN<%I+#}~_d5db$%l`eUGOOe|5B5YNhzhJ}efm5!W88Oo@^Vs(0gB|L zeu*8eppN@MEG9XeZJd((<=c1Jd43Gx2*-rEVo>tU^j&d`A?=^}LTYSL6SCSqUbzg3 zDI`9?xZD}u4*9gn9t_rPv1NI1tS`^?*GP-^&Q-p_r}!mfAUh5c{ZdHvYzaqz*+uQW z;Nk;eM=AJI)f5D}Y$r1C{HNyT0gh{Y$Li=e2%dicf9l`+idS$Rc{vpLJj$hKn*jIe zf}W(Odvp;03?6V-(8^S`a>3a7(Hrm5oJD2;y*#Ft2>sh{{~*WbrZm-9)$vG|X|X(7N3AISte--G~vsN(Ca{Jm={(%hRgvLWR#Muyx zV@6pmtx)8JDEBLofKgT2vaHO9C@Er{)xQ|{tY=jSyAD?#Kq{28!u(&EZc86hBQ#ba}}gn8W06>AfB z=S4oVvPLF?2goYpLPd{O68Jy<7tP=#@mOh(0hg%~*MnIg^QE#vu~g+Y4S? zJz=fVApMIOO=yN48_A;bGkpL71pG!#hdC@Ie!c$l{M;FRn}CjV8fgRm>-!ZR!NdN@ zudb0M&WcQaQrg<9-;rxk%o z-oTdVa`7?jzLLRBJMWCV#+IvQbA_T^8@Q3D6An||Lp*<8m?EjaBk+KDM7wyRgatpb zyKzwXgAH^`Fn>E)*)%P$z`p2*i{ws`Kap*R11P$uNM|8mX*;J>i&WrUeyZ&i=R1w; zED$?JW@$ClATsNf&a9|)LeI^KAkmFrpNt^-OSE&61$8KI3wMS|VEM>imA6=wNyvaTgKf19OR``d>|!ms4QuVHxbf zJ?6rsV$5ULTIyPs!UuY;za|UWAvGUC|9wvSVl5*!h`F5+tAwrnG2Kdx))L`c0I$xY zS0Z|F42KPImE2>EhD*FB{Z+olY^dvwf>@pX*G-ifPD7YkVO0k(PTi33_4QE~31y*f zqqci(b!#f|Ed$Mg0W-Hh!-0wdC0$}Hi`}_4aU@E)pqA~`LYSs-P23+w)G%_CrD&T7ea4DDe_*nRcYQ`T4+gK2L+uQEu zbzX$ck;aa9d=wEyOO(>NL39a@en1Igm+`EBE&t@>CB_w9AkEd-Mp?iH zi&K@8ID8$DoB!IKk;3ta>oSI6>s1O3cL$%gSavY9>IjqU2V3TXvE~gx+}|!uy>eK0 zo$)~~VVMIET;E{+$?t2?kUyJ0E=~@=M09t9*>wR}xOZtHXBFk-3Bno%yIrI3LZQ7g!H8Z*jU3=c>aP+sW4_C4S>_w-(DIFMoEn2_hQ6PCeix- z6w=B*S;B$p&lL7Zb$nwqIo=V~OOfdj3196;ABc50!-we{p$+frp*^4^xmIZ&7fFq7 z-(@!Fzwt(iHB5QV7~k>tQo;P#1E>Uwd}#pD&^KkQSX8kO3r6=V$p&*QIn0>Vdd1Ehz;ternBoiQzZP&lNzUlxv zirctTA6>LzSYO)A^)^nP^V?@(powt-#pW7Mqwk#_)L7oj;EoVq^sr1rNJQ9;A`=*l z5HJL}^8JaG`b8f#N>*0L)CpmFY}iL!MY_~5(8eUecKrg259$K~)STkQ>@GK27qivk z5miXqHGG3zGPkfz>=B@9I=`I48~}jQjd6r&Q%0ASlz}CU_MoZ7FEHJ#oZ&H#WkvDf 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

4KyYqc#Ny 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 H=4b0a8^nR6 diff --git a/News.md b/News.md new file mode 100644 index 00000000..d6cf9a9f --- /dev/null +++ b/News.md @@ -0,0 +1,162 @@ +# A2osX (0.92) Multi-Tasking OS for Apple II + +## Latest News 2019-02-19 + +Major updates have occured to the kernel and many of the APIs to support an enhanced shell with support of many new scripting capabilities, the ability to redirect and eventually piping output. Current kernel also supports multiple virtual terminals as well as TCP (via TELNETD) and serial (SSC driver) terminals. + +## Latest News 2018-11-10 + +My loneliness has been cured, new resources have signed onto the project. I welcome Patrick Kloepfer +who is helping with product management, recruitment, testing and feedback. + +## News 2018-09-06 + +0.92 stable enough to resume playing with. +Many 0.9.1 bugs already corrected in this version, please check & close opened issues. + +## News 2018-07-20 + +Kernel & some BINs/SBINs migrated to 0.92. + +## News 2018-06-17 + +Ok, as i'm still the lone developer here, i decided to break the kernel, HAHAHAHAHAHA!!!! +I updated the Calling Convention (see projects), i now setup the header in each KERNEL.S.* file accordingly to generate doc, then i change the code... + +So ....nothing works anymore on the A2OSX.BUILD media... + +## News 2018-06-13 + +Previous (relatively!) stable version 0.9.1 has been archived, see link above. + +Roadmap for 0.9.2: + + Organize this roadmap in projects (anybody interested in a PM job ?) + + Organize Testing (Testers wellcome) + + NET : TCPIP Network services, AppleTalk (Coders wellcome) + + GUI : Window Manager (Coders wellcome) + + DEV : ASM, CSH, C compiler, someone suggested PLASMA (Coders wellcome) + + release Version 1.0.0 + +Sub projects: + + Finalize enhanced STDIO (Buffered IO) + + Link UDP/TCP sockets to new STDIO + + Rewrite Driver interface (SmartPort Protocol) and link to STDIO + + establish parameter passing convention (C-like Stack frame) + + Move all LIBs to this new convention to allow preemtive mode for LIBs + + AT commands (Appletalk) + + TELNETD/HTTPD/NFSD (STDIO) + + GUI : Window Manager, Controls... + + Assembler (AUX mem manager) will allow A2osX to build entirely itself every night! + + Shell CSH (MATH API, AUX mem manager) + + C compiler (Stack Frame, MATH API, AUX mem manager) + + Disk II format (LIBBLKDEV) + + Simple compression API (LIBPAK) + + CSH+LIBPACK -> A2osX Installer + + TCPIP+SSC DRV+LIBBLKDEV -> ADT Client + + /etc/passwd (LIBCRYPT) + +I need : + + someone able to handle project management so i can focus on code writing + + developers interested in one of these subjects above + + someone able to build a test plan + + ....ideas...help....support....beer, or something stronger! + +## News 2018-05-29 + +Time to work on STDIO : + + + Buffered IO to link TCP/IP stream sockets properly to STDIN,STDOUT,STDERR (TELNETD) + + Implement missing STDIO functions (Puts, FPuts...) + + Faster Console output + + Better 'C-Like' API + +Scope : KERNEL.STDIO, All drivers, CDEV, FIFO,... + +Goal : TELNETD & HTTPD working. + +Wanna play ? + +## News 2018-04-29 + +Kernel 0.9.1 is now preemptive. + +It defaults to cooperative mode ('P'olling mode). For this, no particular hardware needed (except 65c02 and 128k, of course!) + +If you want to enable preemptive mode, all you need is a "tick" source to get 'V'BL or 'C'lock Mode. +(see below for supported hardware) + +Then you must explicitly ENABLE it using KCONFIG utility. (see screenshot below) + +You can monitor the kernel state on the 'SYS' screen (OA-1, or SHIFT-OA-1 on french keyboards) and look at the upper right corner, you should see a blincking 'P', 'V' or 'C', showing you the current kernel state.. + +If you enabled preemptive mode, you should see an additional blinking 'S', each time the kernel switch from one PS to another. + +Reminder : + + (SHIFT)-OA-1 : Kernel SYS Screen + + (SHIFT)-OA-2 : Console Screen (Shell...) + + (SHIFT)-OA-3 : DHGR Screen (if loaded) + +For now, only SBIN/BIN executables are "switcheable". + +Roadmap is as follow: + + + Check all BIN/SBIN sources to make them preemptive compliant, most of them are NOT. + + Add a way to make LIB also interruptible and reentrant. + + Add more supported hardware for system clock. + + ...and still hoping finding few contributors.... :-( + +## News 2017-11-08 + +Kernel 0.9.1 stable enough to resume building. + + + KM.APPLETALK module not crashing anymore + (Undocummented AtInit function, had to go further in official ATINIT disassembly) + + + Improved Command Line editing and history. + (SUPPR key is emulated with Ctrl-X using //e keyboard) + + + New DevMgr enumeration strategy, now including /RAM and other virtual Block Devices + + + Math API (Hacked from APPLESOFT ROM ;-) + + + CSH Script engine within Shell (In progress) + +## News 2017-09-22 + +(once Kernel 0.9.1 stable enough, BOOT & DEV will be updated) __(done!)__ + +**0.9 has been archived, next Kernel Version is 0.9.1** + + + More Standard C API compliance __(done!)__ + + API Cleanup, many functions still use shared space __(done!)__ + + Per process Stack Segment __(done!)__ + + Larger S.PS structure __(done!)__ + + ... + + to allow...Preemptive! + + +**"System Tick" sources for preemptive mode :** + +| Hardware | Resolution | Status | Comment | +| -------------------------| ---------- | ----------- | ------- | +| //c,//c+,IIgs Mouse port | 50/60 Hz | Working | Supported at Kernel level, no conflict with GUI's Mouse.DRV (not required to be loaded), requires setting "Machine Timing" properly in KConfig Utility | +| IIe Mouse Card | 50/60 Hz | Working | (same as above) | +| ThunderClock Plus | 64 Hz | Working | gave up fixing this faulty H/W, thanx to JACE emulator! | +| Super Serial Card | ? | Idea, from EtchedPixels | #31 | +| MockingBoard | ? | Idea, from Michael | | +| GOES Irq Card | ? | Idea, from Oliver | #34 | +| ... Any Other suggestion ? | | | | + +## !!!HELP NEEDED!!! + +Thanx a lot for all positive comments i read here and there, but i definitively need contributors & testers. + +Anybody wants to join this project ? + +If you're interested on contributing, please send a message with your skills and in which area you are interested to work on (Network, Kernel, device drivers for additional hardware support, GUI, graphical resourses, command line tools....) + +This is some sort of "last hope call", some of you were right, this project is really huge!!! +Anyway, i'm convinced that a small team of developers could reach "version 1.0" with GUI & network support in few months....i'm working on it for...4 years now, spending the most of my free time fixing hardware to test this code instead of...writing it! + +Well, let me know if you can bring "fresh blood" to this stuff... + diff --git a/README.md b/README.md index 39c06edd..0e8c23bf 100644 --- a/README.md +++ b/README.md @@ -11,162 +11,6 @@ Major updates have occured to the kernel and many of the APIs to support an enhanced shell with support of many new scripting capabilities, the ability to redirect and eventually piping output. Current kernel also supports multiple virtual terminals as well as TCP (via TELNETD) and serial (SSC driver) terminals. -## Latest News 2018-11-10 - -My loneliness has been cured, new resources have signed onto the project. I welcome Patrick Kloepfer -who is helping with product management, recruitment, testing and feedback. - -## News 2018-09-06 - -0.92 stable enough to resume playing with. -Many 0.9.1 bugs already corrected in this version, please check & close opened issues. - -## News 2018-07-20 - -Kernel & some BINs/SBINs migrated to 0.92. - -## News 2018-06-17 - -Ok, as i'm still the lone developer here, i decided to break the kernel, HAHAHAHAHAHA!!!! -I updated the Calling Convention (see projects), i now setup the header in each KERNEL.S.* file accordingly to generate doc, then i change the code... - -So ....nothing works anymore on the A2OSX.BUILD media... - -## News 2018-06-13 - -Previous (relatively!) stable version 0.9.1 has been archived, see link above. - -Roadmap for 0.9.2: - + Organize this roadmap in projects (anybody interested in a PM job ?) - + Organize Testing (Testers wellcome) - + NET : TCPIP Network services, AppleTalk (Coders wellcome) - + GUI : Window Manager (Coders wellcome) - + DEV : ASM, CSH, C compiler, someone suggested PLASMA (Coders wellcome) - + release Version 1.0.0 - -Sub projects: - + Finalize enhanced STDIO (Buffered IO) - + Link UDP/TCP sockets to new STDIO - + Rewrite Driver interface (SmartPort Protocol) and link to STDIO - + establish parameter passing convention (C-like Stack frame) - + Move all LIBs to this new convention to allow preemtive mode for LIBs - + AT commands (Appletalk) - + TELNETD/HTTPD/NFSD (STDIO) - + GUI : Window Manager, Controls... - + Assembler (AUX mem manager) will allow A2osX to build entirely itself every night! - + Shell CSH (MATH API, AUX mem manager) - + C compiler (Stack Frame, MATH API, AUX mem manager) - + Disk II format (LIBBLKDEV) - + Simple compression API (LIBPAK) - + CSH+LIBPACK -> A2osX Installer - + TCPIP+SSC DRV+LIBBLKDEV -> ADT Client - + /etc/passwd (LIBCRYPT) - -I need : - + someone able to handle project management so i can focus on code writing - + developers interested in one of these subjects above - + someone able to build a test plan - + ....ideas...help....support....beer, or something stronger! - -## News 2018-05-29 - -Time to work on STDIO : - - + Buffered IO to link TCP/IP stream sockets properly to STDIN,STDOUT,STDERR (TELNETD) - + Implement missing STDIO functions (Puts, FPuts...) - + Faster Console output - + Better 'C-Like' API - -Scope : KERNEL.STDIO, All drivers, CDEV, FIFO,... - -Goal : TELNETD & HTTPD working. - -Wanna play ? - -## News 2018-04-29 - -Kernel 0.9.1 is now preemptive. - -It defaults to cooperative mode ('P'olling mode). For this, no particular hardware needed (except 65c02 and 128k, of course!) - -If you want to enable preemptive mode, all you need is a "tick" source to get 'V'BL or 'C'lock Mode. -(see below for supported hardware) - -Then you must explicitly ENABLE it using KCONFIG utility. (see screenshot below) - -You can monitor the kernel state on the 'SYS' screen (OA-1, or SHIFT-OA-1 on french keyboards) and look at the upper right corner, you should see a blincking 'P', 'V' or 'C', showing you the current kernel state.. - -If you enabled preemptive mode, you should see an additional blinking 'S', each time the kernel switch from one PS to another. - -Reminder : - + (SHIFT)-OA-1 : Kernel SYS Screen - + (SHIFT)-OA-2 : Console Screen (Shell...) - + (SHIFT)-OA-3 : DHGR Screen (if loaded) - -For now, only SBIN/BIN executables are "switcheable". - -Roadmap is as follow: - - + Check all BIN/SBIN sources to make them preemptive compliant, most of them are NOT. - + Add a way to make LIB also interruptible and reentrant. - + Add more supported hardware for system clock. - + ...and still hoping finding few contributors.... :-( - -## News 2017-11-08 - -Kernel 0.9.1 stable enough to resume building. - - + KM.APPLETALK module not crashing anymore - (Undocummented AtInit function, had to go further in official ATINIT disassembly) - - + Improved Command Line editing and history. - (SUPPR key is emulated with Ctrl-X using //e keyboard) - - + New DevMgr enumeration strategy, now including /RAM and other virtual Block Devices - - + Math API (Hacked from APPLESOFT ROM ;-) - - + CSH Script engine within Shell (In progress) - -## News 2017-09-22 - -(once Kernel 0.9.1 stable enough, BOOT & DEV will be updated) __(done!)__ - -**0.9 has been archived, next Kernel Version is 0.9.1** - - + More Standard C API compliance __(done!)__ - + API Cleanup, many functions still use shared space __(done!)__ - + Per process Stack Segment __(done!)__ - + Larger S.PS structure __(done!)__ - + ... - + to allow...Preemptive! - - -**"System Tick" sources for preemptive mode :** - -| Hardware | Resolution | Status | Comment | -| -------------------------| ---------- | ----------- | ------- | -| //c,//c+,IIgs Mouse port | 50/60 Hz | Working | Supported at Kernel level, no conflict with GUI's Mouse.DRV (not required to be loaded), requires setting "Machine Timing" properly in KConfig Utility | -| IIe Mouse Card | 50/60 Hz | Working | (same as above) | -| ThunderClock Plus | 64 Hz | Working | gave up fixing this faulty H/W, thanx to JACE emulator! | -| Super Serial Card | ? | Idea, from EtchedPixels | #31 | -| MockingBoard | ? | Idea, from Michael | | -| GOES Irq Card | ? | Idea, from Oliver | #34 | -| ... Any Other suggestion ? | | | | - -## !!!HELP NEEDED!!! - -Thanx a lot for all positive comments i read here and there, but i definitively need contributors & testers. - -Anybody wants to join this project ? - -If you're interested on contributing, please send a message with your skills and in which area you are interested to work on (Network, Kernel, device drivers for additional hardware support, GUI, graphical resourses, command line tools....) - -This is some sort of "last hope call", some of you were right, this project is really huge!!! -Anyway, i'm convinced that a small team of developers could reach "version 1.0" with GUI & network support in few months....i'm working on it for...4 years now, spending the most of my free time fixing hardware to test this code instead of...writing it! - -Well, let me know if you can bring "fresh blood" to this stuff... - ## Requires : Enhanced IIe (65c02 cpu) with 128k, //c, IIgs @@ -201,34 +45,6 @@ Several subprojects are now indentified : + --> Answer : C compiler....Next version of Kernel API will be closer to STDLIBC, Genralize the use of C-Strings + ...sure there is some more! -## Screenshots - -UNIX-Like Shell... - -![](./.screen-shots/ScreenShot.LS.png) - -TCP/IP Stack... - -![](./.screen-shots/ScreenShot.IP1.png) - -![](./.screen-shots/ScreenShot.IP2.png) - -Full screen editor ... - -![](./.screen-shots/ScreenShot.EDIT.png) - -Kernel Configuration Utility... - -![](./.screen-shots/ScreenShot.KCONFIG.png) - -Color ANSI/VT100 Support... - -![](./.screen-shots/PuTTY.png) - -DHGR Mixed-Mode Graphic primitives.... - -![](./.screen-shots/ScreenShot.GFX.png) - ## General Information: Kernel API is confined in Aux LC Bank 1 & 2 to leave enough room at $EOOO for Drivers. @@ -238,203 +54,6 @@ Now it's time to make all external BINs use new API, then GUI development will r OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR. (OApple+shift+1,OApple+shift+2,OApple+shift+3 on FR keyboard) -## SYS/KM* Supported Hardware At Kernel Level (ProDOS): - -| KM.Name | Status | Comment | -| ------- | ------ | ------- | -| KM.APPLETALK | Working | AppleTalk Support for ProDOS | -| KM.NSC | Working | No-Slot-Clock/DS1216E | -| KM.RAMWORKS | Working | AE-Ramworks I,II,III | -| KM.VSDRIVE | Working | ADTPro Virtual Drive for SSC | - -## SBIN,Daemons/Commands: - -| Name | Status | Comment | K.Ver | -| ---- | ------ | ------- | ------| -| DHCPCLNT| Working | rewritten to use new Socket API | 0.92 | -| GETTY | Working | -E : Exit on remote close | 0.92 | -| HTTPD | In Progress | | 0.9 | -| INSDRV | Working | | 0.92 | -| KCONFIG | Working | Kernel Configuration Utility | 0.92 | -| LOGIN | In Progress | no auth using /etc/passwd yet | 0.92 | -| SHELL | Working | (See Internal Shell commands) | 0.92 | -| TCPIPD | Working | ARP,IP,ICMP,UDP & TCP ok | 0.92 | -| TELNETD | Working | | 0.92 | - -## Internal Shell commands: - -| Name | Status | Comment | -| ---- | ------ | ------- | -| BREAK | | | -| CD | Working | Improved syntax : now, 'CD ../BIN' works | -| conditions | Working |[ -d direxists ] | -| | | [ -e fileordirexists ] | -| | | [ -f fileexists ] | -| | | [ -n $VAR variable is not empty ] | -| | | [ -z $VAR variable is empty ] | -| | | [ string1 = string2 ] | -| | | [ string1 != string2 ] | -| | | [ string1 .< string2 ] | -| | | [ string1 <= string2 ] | -| | | [ string1 .> string2 ] | -| | | [ string1 >= string2 ] | -| | | [ int32 -eq int32 ] | -| | | [ int32 -ne int32 ] | -| | | [ int32 -lt int32 ] | -| | | [ int32 -le int32 ] | -| | | [ int32 -gt int32 ] | -| | | [ int32 -ge int32 ] | -| CONTINUE | | | -| DATE | Working | | -| ECHO | Working | \b,\e,\f,\n,\\\ and \\% supported | -| | | -N : Suppress \r\n | -| ELSE | Working | Optional branch for IF block | -| EXIT | Working | exit shell | -| FI | Working | Terminator for IF block | -| IF | Working | [ (condition) ] | -| LOOP | Working | Terminator for WHILE block | -| MD | Working | Create a directory | -| NOHUP | Working | Start a process with PPID=PS0 (Daemon) | -| PAUSE | Working | Wait until CR | -| POPD | Working | Restore previously saved working directory | -| PUSHD | Working | Save actual working directory | -| | | PUSHD

do aslo a CD to | -| PWD | Working | Print Working Directory | -| RD | Working | Delete an empty directory | -| READ | Working | -S : no echo (password) | -| | | -P : "prompt message" | -| REN | Working | Rename a file, directory or volume | -| SET | Working | -X toggle debug mode | -| | | -C toggle Control-C break mode | -| SHIFT | Working | Remove $1 from cmd line | -| SLEEP | Working | Wait 10th sec | -| TIME | Working | | -| WHILE | Working | [ (condition) ] | - -## Shell variables: - -| Name | Status | Comment | -| ---- | ------ | ------- | -| $0 | Working | Command Full Path | -| $1-$9 | Working | Arg[n] | -| $* | Working | All Args | -| $# | Working | Arg Count | -| $? | Working | Return Code | -| $@ | Working | Parent PID | -| $$ | Working | PID | -| $! | Working | Child PID | -| $UID | Working | PS Owner UID | -| $PWD | Working | Working Directory | - -note : '$VAR' does NOT expand Variable - -## Shell I/O control/redirection: - -| Token | Status | Comment | -| ---- | ------ | ------- | -| . | Working | use same env | -| & | Working | start proc | -| \| | Working | pipe | -| < | Working | StdIn redirection | -| > | Working | StdOut redirection | -| >> | Working | Append StdOut | -| 1>> | Working | | -| 1> | Working | | -| 2>> | Working | StdErr redirection | -| 2> | Working | | - -## DRV,Drivers: - -| Name | Status | Comment | K.Ver | -| ---- | ------ | ------- | ----- | -| Console.DRV | Working | ANSI support in Progress. | 0.92 | -| DHGR.DRV | Working | 560x192 Mono/16 colors Mixed-Mode support | 0.9.1 | -| LanCeGS.DRV | Working | | 0.92 | -| Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9.1 | -| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 | -| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.92 | -| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.92 | -| Uthernet.DRV | Working | | 0.92 | -| Uthernet2.DRV | Working | | 0.92 | -| Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.92 | - -## BIN,External Shell commands: -| Name | Status | Comment | K.Ver | -| ---- | ------ | ------- | ----- | -| CAT | Working | -A : Show All non printable caracters | 0.92 | -| | | -N : Number all output lines | | -| | | -S : Suppress repeated empty output lines | | -| CHGRP | In Progress | -C : Continue On Error | 0.9 | -| | | -R : Recurse subdirectories | | -| CHMOD | In Progress | -C : Continue On Error | 0.9 | -| | | -R : Recurse subdirectories | | -| CHOWN | In Progress | -C : Continue On Error | 0.9 | -| | | -R : Recurse subdirectories | | -| CHTYP | Working | -C : Continue On Error | 0.92 | -| | | -R : Recurse subdirectories | | -| CP | Working | -C : Continue On Error | 0.92 | -| | | -Q : Quiet | | -| | | -R : Recurse subdirectories | | -| | | -Y : Dont't Prompt For Override | | -| EDIT | Working | still missing : find/replace | 0.92 | -| FORMAT | In Progress | FORMAT \ [VOLUME.NAME] | 0.92 | -| | | -L : Low-Level Format *not currently supported | | -| | | -1..9 : Catalog Size (block count) | | -| KILL | Working | KILL \ PID | 0.92 | -| | | -0 : No Signal | | -| | | -1 : SIGQUIT | | -| LS | Working | -A : Print . & .. | 0.92 | -| | | -C : Single column listing | | -| | | -F : with -C, includes full path | | -| | | -L : long listing with size/date... | | -| | | -R : Recurse subdirectories | | -| LSDEV | Working | Dump device Drivers | 0.92 | -| LSOF | Working | List Open Files | 0.92 | -| MD5 | Working | MD5 \[ -D : String \| file \] | 0.92 | -| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.92 | -| MKDIR | Working | Make Directory| 0.92 | -| MORE | Working | MORE \ | 0.92 | -| | | -H : This help screen | | -| | | -N : Number all output lines | | -| | | -P : Page mode, no scroll | | -| | | -S : Process ESC codes | | -| NSCUTIL | Working | NSCUTIL DD/MM/YY,hh:mm:ss | 0.92 | -| | | Tool for setting time in NSC/DL1216E | | -| MV | Working | -C : Continue On Error | 0.92 | -| | | -Q : Quiet | | -| | | -R : Recurse subdirectories | | -| | | -Y : Dont't Prompt For Override | | -| PS | Working | List Processes| 0.92 | -| RM | Working | RM \[File/Dir, *,? wildcards allowed\] | 0.92 | -| | | -C : Continue On Error | | -| | | -Q : Quiet | | -| | | -R : Recurse subdirectories | | - -## Network (TCPIP) tools: -| Name | Status | Comment | K.Ver | -| ---- | ------ | ------- | ----- | -| ARP | Working | dump ARP cache, setup a static ARP entry | 0.92 | -| DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.92 | -| HTTPGET | In Progress | HTTPGET [port] | 0.93 | -| | | -U Url | | -| | | -F UrlFile | | -| IPCONFIG | Working | -D : Try to get IP address from DHCP | 0.92 | -| | | -E : Read ETC files | | -| | | -S : Set/Reset TCPIP configuration (-E, then -D if required) | | -| NETSTAT | Working | | 0.92 | -| PING | Working | PING | 0.92 | -| | | -1..9 : Ping Count | | -| TELNET | Working | TELNET [port] | 0.92 | - -## DEV tools: -| Name | Status | Comment | K.Ver | -| ---- | ------ | ------- | ----- | -| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9.1 | -| MEMDUMP | Working | Tool to track memory leak| 0.92 | -| ---- | ------ | ------- | ----- | -| RPCDUMP | In Progress | tool based on UDP socket API, renamed from RPCINFO | 0.92 | -| | | RPCDUMP | | - ## Misc ### S-C MASM color scheme for Notepad++ diff --git a/Screen Shots.md b/Screen Shots.md new file mode 100644 index 00000000..126ce473 --- /dev/null +++ b/Screen Shots.md @@ -0,0 +1,31 @@ +# A2osX (0.92) Multi-Tasking OS for Apple II + + +## Screenshots + +UNIX-Like Shell... + +![](./.screen-shots/ScreenShot.LS.png) + +TCP/IP Stack... + +![](./.screen-shots/ScreenShot.IP1.png) + +![](./.screen-shots/ScreenShot.IP2.png) + +Full screen editor ... + +![](./.screen-shots/ScreenShot.EDIT.png) + +Kernel Configuration Utility... + +![](./.screen-shots/ScreenShot.KCONFIG.png) + +Color ANSI/VT100 Support... + +![](./.screen-shots/PuTTY.png) + +DHGR Mixed-Mode Graphic primitives.... + +![](./.screen-shots/ScreenShot.GFX.png) + diff --git a/Technical Spec.md b/Technical Spec.md new file mode 100644 index 00000000..506b274a --- /dev/null +++ b/Technical Spec.md @@ -0,0 +1,199 @@ +# A2osX (0.92) Multi-Tasking OS for Apple II + +## SYS/KM* Supported Hardware At Kernel Level (ProDOS): + +| KM.Name | Status | Comment | +| ------- | ------ | ------- | +| KM.APPLETALK | Working | AppleTalk Support for ProDOS | +| KM.NSC | Working | No-Slot-Clock/DS1216E | +| KM.RAMWORKS | Working | AE-Ramworks I,II,III | +| KM.VSDRIVE | Working | ADTPro Virtual Drive for SSC | + +## SBIN,Daemons/Commands: + +| Name | Status | Comment | K.Ver | +| ---- | ------ | ------- | ------| +| DHCPCLNT| Working | rewritten to use new Socket API | 0.92 | +| GETTY | Working | -E : Exit on remote close | 0.92 | +| HTTPD | In Progress | | 0.9 | +| INSDRV | Working | | 0.92 | +| KCONFIG | Working | Kernel Configuration Utility | 0.92 | +| LOGIN | In Progress | no auth using /etc/passwd yet | 0.92 | +| SHELL | Working | (See Internal Shell commands) | 0.92 | +| TCPIPD | Working | ARP,IP,ICMP,UDP & TCP ok | 0.92 | +| TELNETD | Working | | 0.92 | + +## Internal Shell commands: + +| Name | Status | Comment | +| ---- | ------ | ------- | +| BREAK | | | +| CD | Working | Improved syntax : now, 'CD ../BIN' works | +| conditions | Working |[ -d direxists ] | +| | | [ -e fileordirexists ] | +| | | [ -f fileexists ] | +| | | [ -n $VAR variable is not empty ] | +| | | [ -z $VAR variable is empty ] | +| | | [ string1 = string2 ] | +| | | [ string1 != string2 ] | +| | | [ string1 .< string2 ] | +| | | [ string1 <= string2 ] | +| | | [ string1 .> string2 ] | +| | | [ string1 >= string2 ] | +| | | [ int32 -eq int32 ] | +| | | [ int32 -ne int32 ] | +| | | [ int32 -lt int32 ] | +| | | [ int32 -le int32 ] | +| | | [ int32 -gt int32 ] | +| | | [ int32 -ge int32 ] | +| CONTINUE | | | +| DATE | Working | | +| ECHO | Working | \b,\e,\f,\n,\\\ and \\% supported | +| | | -N : Suppress \r\n | +| ELSE | Working | Optional branch for IF block | +| EXIT | Working | exit shell | +| FI | Working | Terminator for IF block | +| IF | Working | [ (condition) ] | +| LOOP | Working | Terminator for WHILE block | +| MD | Working | Create a directory | +| NOHUP | Working | Start a process with PPID=PS0 (Daemon) | +| PAUSE | Working | Wait until CR | +| POPD | Working | Restore previously saved working directory | +| PUSHD | Working | Save actual working directory | +| | | PUSHD do aslo a CD to | +| PWD | Working | Print Working Directory | +| RD | Working | Delete an empty directory | +| READ | Working | -S : no echo (password) | +| | | -P : "prompt message" | +| REN | Working | Rename a file, directory or volume | +| SET | Working | -X toggle debug mode | +| | | -C toggle Control-C break mode | +| SHIFT | Working | Remove $1 from cmd line | +| SLEEP | Working | Wait 10th sec | +| TIME | Working | | +| WHILE | Working | [ (condition) ] | + +## Shell variables: + +| Name | Status | Comment | +| ---- | ------ | ------- | +| $0 | Working | Command Full Path | +| $1-$9 | Working | Arg[n] | +| $* | Working | All Args | +| $# | Working | Arg Count | +| $? | Working | Return Code | +| $@ | Working | Parent PID | +| $$ | Working | PID | +| $! | Working | Child PID | +| $UID | Working | PS Owner UID | +| $PWD | Working | Working Directory | + +note : '$VAR' does NOT expand Variable + +## Shell I/O control/redirection: + +| Token | Status | Comment | +| ---- | ------ | ------- | +| . | Working | use same env | +| & | Working | start proc | +| \| | Working | pipe | +| < | Working | StdIn redirection | +| > | Working | StdOut redirection | +| >> | Working | Append StdOut | +| 1>> | Working | | +| 1> | Working | | +| 2>> | Working | StdErr redirection | +| 2> | Working | | + +## DRV,Drivers: + +| Name | Status | Comment | K.Ver | +| ---- | ------ | ------- | ----- | +| Console.DRV | Working | ANSI support in Progress. | 0.92 | +| DHGR.DRV | Working | 560x192 Mono/16 colors Mixed-Mode support | 0.9.1 | +| LanCeGS.DRV | Working | | 0.92 | +| Mouse.DRV | Working | Apple Mouse Card,//c Mouse Port | 0.9.1 | +| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 | +| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.92 | +| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.92 | +| Uthernet.DRV | Working | | 0.92 | +| Uthernet2.DRV | Working | | 0.92 | +| Uther2.AI.DRV | In Progress | With ARP/IP Offloading | 0.92 | + +## BIN,External Shell commands: +| Name | Status | Comment | K.Ver | +| ---- | ------ | ------- | ----- | +| CAT | Working | -A : Show All non printable caracters | 0.92 | +| | | -N : Number all output lines | | +| | | -S : Suppress repeated empty output lines | | +| CHGRP | In Progress | -C : Continue On Error | 0.9 | +| | | -R : Recurse subdirectories | | +| CHMOD | In Progress | -C : Continue On Error | 0.9 | +| | | -R : Recurse subdirectories | | +| CHOWN | In Progress | -C : Continue On Error | 0.9 | +| | | -R : Recurse subdirectories | | +| CHTYP | Working | -C : Continue On Error | 0.92 | +| | | -R : Recurse subdirectories | | +| CP | Working | -C : Continue On Error | 0.92 | +| | | -Q : Quiet | | +| | | -R : Recurse subdirectories | | +| | | -Y : Dont't Prompt For Override | | +| EDIT | Working | still missing : find/replace | 0.92 | +| FORMAT | In Progress | FORMAT \ [VOLUME.NAME] | 0.92 | +| | | -L : Low-Level Format *not currently supported | | +| | | -1..9 : Catalog Size (block count) | | +| KILL | Working | KILL \ PID | 0.92 | +| | | -0 : No Signal | | +| | | -1 : SIGQUIT | | +| LS | Working | -A : Print . & .. | 0.92 | +| | | -C : Single column listing | | +| | | -F : with -C, includes full path | | +| | | -L : long listing with size/date... | | +| | | -R : Recurse subdirectories | | +| LSDEV | Working | Dump device Drivers | 0.92 | +| LSOF | Working | List Open Files | 0.92 | +| MD5 | Working | MD5 \[ -D : String \| file \] | 0.92 | +| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.92 | +| MKDIR | Working | Make Directory| 0.92 | +| MORE | Working | MORE \ | 0.92 | +| | | -H : This help screen | | +| | | -N : Number all output lines | | +| | | -P : Page mode, no scroll | | +| | | -S : Process ESC codes | | +| NSCUTIL | Working | NSCUTIL DD/MM/YY,hh:mm:ss | 0.92 | +| | | Tool for setting time in NSC/DL1216E | | +| MV | Working | -C : Continue On Error | 0.92 | +| | | -Q : Quiet | | +| | | -R : Recurse subdirectories | | +| | | -Y : Dont't Prompt For Override | | +| PS | Working | List Processes| 0.92 | +| RM | Working | RM \[File/Dir, *,? wildcards allowed\] | 0.92 | +| | | -C : Continue On Error | | +| | | -Q : Quiet | | +| | | -R : Recurse subdirectories | | + +## Network (TCPIP) tools: +| Name | Status | Comment | K.Ver | +| ---- | ------ | ------- | ----- | +| ARP | Working | dump ARP cache, setup a static ARP entry | 0.92 | +| DNSINFO | Working | dump DNS cache, setup a static DNS entry | 0.92 | +| HTTPGET | In Progress | HTTPGET [port] | 0.93 | +| | | -U Url | | +| | | -F UrlFile | | +| IPCONFIG | Working | -D : Try to get IP address from DHCP | 0.92 | +| | | -E : Read ETC files | | +| | | -S : Set/Reset TCPIP configuration (-E, then -D if required) | | +| NETSTAT | Working | | 0.92 | +| PING | Working | PING | 0.92 | +| | | -1..9 : Ping Count | | +| TELNET | Working | TELNET [port] | 0.92 | + +## DEV tools: +| Name | Status | Comment | K.Ver | +| ---- | ------ | ------- | ----- | +| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9.1 | +| MEMDUMP | Working | Tool to track memory leak| 0.92 | +| ---- | ------ | ------- | ----- | +| RPCDUMP | In Progress | tool based on UDP socket API, renamed from RPCINFO | 0.92 | +| | | RPCDUMP | | +