[comp.sys.atari.8bit] DIRT - a new DIR command

Ordania-DM@cup.portal.com (Charles K Hughes) (11/16/90)

  I just finished this program tonight and the net is the first public forum 
to receive it (aint you a lucky bunch of guinea pigs :)
  The program is called DIRT and it is better (in some ways) than the
standard DIR command.  This program is only useful to SpartaDOS users.

---------cut----------
begin 666 DIRT.ARC
M&@A$25)4+D-/30      /@4  &\51[8QW_L%   ,__X!@+(/"A-346! 0@!@y
M(8B&"52L -#"!0 8,63,H%'#Q@T<.70 X ' QP\ 080,(5+$R!$D290L8=+$y
MR1,H4:1,H5+%RA4L6;0 X-*00,J5+5_&G%GS9LZ=/7\&;5A@TR8B2:10 6&Ey
MC)PY:=ZX 1'#!8Q-0][ R2,GS1DT=,CFR $#Q! T8>2P*3,'Q!(7()#4><O7y
MJI4W;.JT*:,#!"0&5]/(*3.&SALY>1I#2F 5! @CD\N F$+9\M?&"JLZ1@ 8y
M$@$7D HX'L /BHDHCA.T\+P;Q*:&!APO !X @   9Z*XB0* "!$=*ERHV#0Iy
MBB,I/R -=[BK2JD%A:*54H A37;CYJ(5@@8* */;L: EVP3-@+OD3.Q,208"y
M'@)DP  !S3J@^ .&.YY$@4Q\\\&#1#(A0'- *@$T\DD4$+C#'RP#@-(/&/%!y
MT"$_8*C2RSQ/0#,B&*[<ULD)4;AS&W_P3 A (PG",XPK"4)3 ()10).+,[=!y
M0 LH\+#H(HSUW1=%?E.TEPH KL (S@KP$ !."] 0X8@H"OIB)130")!$ . @y
M4682 H 3Q)I:3K$F". 0L280X/1G #B;P", --0D\X^*H.P#1B.A1,%GD_CIy
MATPN*$21C [P2/"(%(I,D4L*DNH #0B01M%(&@I",@ T&+02P ') )$E,LA y
MHT N,(ZJ8*P#.$FKI/0- "4C$4#!RFV([)J,#_!,D P/\#R0#!?P+,!,L -By
MP$JPD "  C*,2"!LL*( L&LG:RB(#C/>0C-/*BJ0&T4G;421B@N=L"'O)ITLy
M%ZZQ*D#S #+,W ;/!L:Z  ^7\21C\ ;@(,!A)]6A _!MT&"3"@B-;"(J)Z)Vy
M$N0,#?MW,<11H ,-/>%.' 4\W_ +#P:=:(P.. /  X'* XXL,\W0V)/*"XW(y
M,D JHM8R-!H8M)%<([0,D.T BTQA"!7N&)T* XW@,K2HN0Q]HRX#-+++ *+ y
MP14Y$ 0 !B@'Y")!%)G, @4B$-S3"@2BCA)%*Q&(2HJ\11^==')/5QUVTZE0y
MT C8J80M=-EGIPW&E$R';70CM@Q=0M!DFVT%.2 <4 7;;L-]S-QUI[) (T(,y
M/4<C1 P-12-%#.U%(TAXW4@29 -P-C" $ H(&""D4(6(3 Q2!0@Z4,$$"U2 y
MHH H"Y3>R3E0*-,P- $H0W<\HKC0"@-1**! M@*(0H8C^$ 1_OG&B3*'(_>Xy
M[\+Y3L<?AB/VV ]_^FAP1#W\A[ZR.8(>4 "%  Y!!4%4(1</@-L"4'</.HVNy
M;0. 0B;T04%1", 1#(!"*A*P'J*%AQ4A],4(HM"+#HAJ@B! QN@"D(L$0"$2y
MT* ;/DH!#1RD8P#K@84 C!$-9X00 M=HQ0 D!0,?7:P12U0=ZX9V#MC)CG::y
MPYWN>!>NWP6/ &A  RB&EXH+9$UW7;M:Y8C6"*L=@'.0^QPK9C$ ,)0B BH*y
M(_%$)[GQK<P=*<@6--31"C#!(P.%E!26%.#'%B0*&M;P3R,3!0]F2(]RH(A"y
M+JJ3C!_ 0P'9>!L\"D"A1F22;NQHQ86:D4EHI()"8%">#:R@P%SH+1,3I%L%y
MP7'!KFG0&W,#1@"@40\IMBX5T;!B*F97NU180(N4XYTJSJ;&QWF.'*!0FRC^y
MT8H)HL.'"H"%/M*@@T8H  J** \,&F'#R;T1 B*\D0-F]P#W8< %$W1!"%W0y
M "BX8)XX:,4\TP&_L,U3&= P!S[]N<]^N@*>J9IG&F#0B0PZ YX0$$:X>I'!y
M9#11 2/+X,P. (UW@ $< @B' ! "&@A$25)4+D1/0P      1 P  &\5B+E-y
M#, 5   ,(" M())$"A405LK(F9/FC1L0,5S V!20P) W</+(27,&#1V(.7+ y
M #$$31@Y;,K, ;'$!0@D=3JJW 1I  @05-"D6;D3!!TT94#84<C0(42)(.24y
M21EF3M W9D 0- BB!8@P(-R4N0."3!JE8^B\D9,'!)N==!2",#-VTQ0X)^F$y
M(?)DBDN<:-[$1 .B39DP;C[.@5-F3!HS:<:$8<.F+%LY(&A(7 $BS<<[:1B#y
MN#-VS6;+? 'GV31T8<.'4$&\C3NW+H@R>,:4@?/Q\=&(FRA*+7@0L^8S:89>y
M-8LVC9LS(%(C3KF289O,)WV^\0D4Q!RY;LB<)+-;"H@Q;]JT <S=N%NX<N32y
MG<("1-X[94JW-W[]+_?4P.T81_XS*)TT?@VW7%!W-/6=4F&D1<9\'^4W$U9Gy
M7;=?<E'U=Q4==&PD1AUIK63;3PFNE5D9+N1VTQ5HE%6'4]U1\<.)2['!8&4>y
M-I66'.W-\=Y*%B:881H;=M@>>32"($89&"JT"8@/67@=>=MU]UUXXV5769.<y
M;19&'G/<E5-0B"UTV99%8O934F6<L=V2TY56%ALGG0'FB"M9-55OF;%AW7O4y
M@5F'9C@8F4>'%(J8DG5IZ!$4"@/.L8EB#QT)0AUP2 >1#2S 4%.F-0E**!L.y
MG9'"9D IU6=68XVGYU13BD>D0XWM^<8=CEH(*GR0V>"I2H4.B*BB(* @FJ%!y
MG8'@C=0!!D(.FS)KDQB#\NH;&YN8))R%E!(&F5? T<&C''6XH9B"*7A9G5/@y
M67FD5HA]U!.(']WYG;)'LLD&=V*!X,03!WDU&)QER99>&,81.T=[2JDI!QG,y
MK91:?U]=^&.0*I4("0$W?6D==MHMO%:JA5H(GJM6[J2#B2V"L,4*?+0 ATESy
MD-&%RB',O 4/9&PTE \\P/43SP.Z$4: X\VQA@]=T&037D_1=MI*)P6U8AG<y
M&<@68[/.<;)N*[?\<E,R!S1 3CUA])]1/4V-[W2#%79863UBJ"&'O#Y<7:,4y
M05) 'GI]IJ.E3I%X4Q)1\5W'QG&=:O9IGYV)U0DKG-#G0T\XP406U+WA5-X%y
M-)KL1^/1,09?%@8]=%!%>T:DM?Y5Y^/<::$PQZAM&X88U9Q/:V10$2IX%^$@y
M&(YX>HH[;929H8%P0@N2]_=0$$PP<2K> 14 ;U\)CC[]B$(3W91G16 Q1!%0y
M'/23Y@2"=FKMAZ6!>_6O TFW[+0C^9EFDO9.M;EE&_]0&ROZ2!C@0)CH'.DQy
MK2L#YWP6&BN9SB_FXAV2;K02I9A!+?DJW1NPAIGC2 QV*CE90!A0*:O 00YOy
M2$M8J-8>,5@&!".Q6U">1(<5[:I$(^2+571"!C*4P0TM?&$,"D5#&T(K+3B$y
M! .P8I63C"XX+#32"V40LG/)I88K.2*)\L: .EFG#F+P"EC$0I8@?J0&59SAy
M%8T8K20R@#M6\:$9Y!"&,_@E,%%TX4=T)4/$8?&&P0H<JM)RH==D)P5*N\D6y
M:I8QG?"$1]79UT$69Q0BO3 MC%F)O/*EHUDEQPVQ.A^+J*>WZ]%%7_S"GNA(y
M=S?NG0Y[1N.?P_PWKT@%!0YPD@T9.">:.Y3J*4VJSLBJQ)VS:*4]\?GAE1CBy
M0\7U!S*4=$.7$JDR(N!!!S,;2S6QV<C^G>TA3DE)6" 9E)Q!\7<5JHXU=? Qy
M.82.1IQ36WOP4"0+F5,XH'K#&JAV(72>B@CL?,P[T^84? $EF JLGAS#\*>/y
MW#,H/<GG/JM&A_:$;WSEFU1VU#(%(F"A1%P+0@N2P$UM;B$&+<A!22&S!2*$y
M@9MDF^4WBV2'Q:3A/J!4T48ATU$L7*5DCJJ>VI:9EC#<)YWEU%G3O@DU,;QAy
M*""MGA32M)V&I3$Y_FN//94:K,. P$%N&!4 KV-([B!O.. !E1LXITT+*64.y
M#5V)[B05KA-2+3$)"H,84N)/-TSGH=8AC.W<!YF>@)5SSCO50AO:%:X2='_4y
MW (#NU>&F3$-!)-]Y5C=)9Z[)F@ICMG@K13+511X533EXIS&,DNT .YN.#4]y
M"W=8&Q0B_="LZL,*%]K#@^1 Q@=]?<,"$X0&RA8)K),[U1CJ( >E! :SQ"U2y
M4^#J%S+<10I%:$)VA5 $*;"S"COE7$]!P(/>$LD'/KB*J?SZD=C>]$K#H:W%y
MEK:%!Z+N>Y;5F'UAZ9G-5J:S7OELK*XV6@O1EJV0V2H4 ^NVVQ4V*F4 C5H,y
M"T4W1)"_M7RM:#@W,A<*;::I\0T9%+,PJ%G)O=S9[^A.$H85+B2XG-MOZHY;y
M8:T>% 0J<($*I#L'ZD*V4ZBD0A'8^253^5=26!E,BX-R)#K 1YDGN)/DB#2Ly
M:/($-0M3RV/.PYKU6 HL;SB#&Q*5P)0-DSQW84(:]HD9I]A8(:AS+9(#N^1-y
M-/G)"/V@_ @9S9\:-*E0? %M7S#C:$9P$[ 9 YQ"Q[@^0^JUN%QRU=R0!U_"y
MV<]=>0.OV)N5,O S7Y)RRD>@8@8[ET7)LIFF;O3KR@"]RG\K>;2D"I8MA;3Gy
M5K;V;5_2@ =^*L;-+=H$&30]!S><X",D9G)A&,JB%XYGG^1LPU4T4VO(_%K9y
M"$2342?4GS:42%Z+F<-T..+7M[X&#QE*,EQ2O3LG>QHUL ;!1<EGOE]F6%)^y
MW02J>56&-ARIA_PLF#;O_&[20K$]#!R2 UN]12!K3-S,E<V4FMD3XRBZ#C[$y
M[9E^TI,!_<Y=5P9!$X(P!!N@4: A(L\FX*.98?Y00<$ZWUX&V:H[PISE>M(!y
M[:9SP:6L12G^F8Y$J8/"O6S",G<) J4=0J"\^ TH/)I.&][@%3.4Y84=![JEy
MAFV=Z02I,H7K6YM))UQ_38QNIYIZU=W'G=(4Y2'">S2LRL)U<6O4APF&>E#2y
MY16FBE!O,1A5%OKF7[.#,.U4;Q\_(2X'B8.GF6>UT!O$H(;"()OJ6ZR># 1/y
M>-<Z"+,HU-:![OH1%.3+U5:RJW[T C4.Y64A8/]I'E);O1EP_G"0XG0X]61@y
M%!IK:)F;>9)5I:>>!\NJ3 (!"6H@UBW9>>\FD8.<4JQ-\&1D0B;H"EI@=QJ7y
M;$'I?-,*J:8S=EYQ,D9]VL0)PTQ':8\G8 Z12UCZ$A3]8*5'/7QK%I<R*Q<Dy
MK7HT<'M]X5H6QP88USH],0>O)&J%PG>6\33P93C;LGU[UGTT@3$@$ 1$8 5!y
MX 3C0P0@4 53T%U3$&1#EC=C4QUR1$=V]'()PCAZE&DJ86RC9@:(81B+$2NPy
M@19&PB%2M$=7542.HD5%$BY#!2VJ@1[JX1IVEP1=X389]SE:0DZ[0U8% C?3y
ML4^SL21T- :>D1I8X2O7TQ.<-D=U9'/[TTV/5"A^!5WID1A_$AVQ50<*E"]Wy
MTD(^V!-N\E]P,!;8\1$9I()E8(8M&!@O:!3K]WO2=CU..#0KUQD3XA"R](-%y
M,G="85-5LQ)JA1P&4CHC4B2<IG:*MTMA8 ;(<B03LH)G^')I" ))\!!&U7>Gy
MT1ZK,3!>]GX@H"@H1!T=!R?($21'MQ+A<A;[%$IL8S](=X&#$W:'TW.\YTB3y
M\A]G00=7UQSA@20ZX4%QIQ?WTFFE01S"@3QZ45&;L#IA(!Q8L2%R,&8>Y$,,y
M82KY<A8=D19PIQ>0 2I&A6D_M!':TR.N-Q8LH'Y,,4J>5GQ:=WY6(FX!8C<Ay
M8BP%=QUU8(,]N(X3@A5Y<2@%(X'J]P9>:#^298!B,69U(&T]H2T7%!:QTF*Ry
M01MZ=2@Z!P)=,%_+&#Q]PSJR!P)Q0(<2XA .8VU4\G(KX82R%A0(,CK\E"!;y
M(P1/( 0@  558 1&4(*08 !"( 0EB (W$ ,V,"HR0 ,WT (X, ,U4 .;, 1,y
M4!?=A1-/\!)/H%T@4)5720,QD .C,@,V@ ,M0 -R.0.;$ 14$ 12X(1"$ 0Cy
M6#UP&2PT  ,X,"HW0 ,UT (U, ,P8 .;,)A!4 5'$! *<)@HD)B+N2PX8 ,My
M  ,R$ -D"05/8!#0$Q )4)4D@)B*R9@R\)@P4 ,V$ .;4 5.H15TP$Y/L#" y
MD09AT )$T 1 L%QPX )].#!LX (C@X+:5!,E<1+,\04P(1-S<)R4HIQ^N!C.y
M&1ZY\9LA. 5"DQDB-)THP2O7"74440.=4@0N<05-D8UG$)(9"%4@, *2B9NJy
M$2Z4%EMET!Y#$ 3+XIF421%0D!=:P4Z=&9L@< ,S( ,M< .-F0.; !H(1$E2y
M5"Y--C4      )\J  !O%42V)Y<7.   #/[\3<"!;H"!!T62R#.(90<(?@,Ly
M-"221 H5$%.>5)$RI B((4^(>#1 P$!#$!!*GM1 P(,A*%*>4!E"Q8.! #L<y
M0I'SADZ9,3[)@!"3A@X($@0V&$*2A(A()S8%Y 2!) T9,F7<#"T*P@6!#H:"y
M<&1JQ2:!J4'DC$&3QDX9H42-XB 0PM"4*D(H2K$)8NJ4.F+(I)'SD\X;.7FVy
M&A5"UY!((U*"'+$)9"J1,F;DA#G3)FM0Q2"8$" QJ,@3)C8W39U3QFA6H6_,y
M@&"3QDT9$&W"R%E31@X(*P1>& +9A$H0(3853+V#IO=MP[/?O%D#PLQAC'!Ty
MTPD#8@Z=.F9D@R&@@="0)$_*%K!";NKY)[\+7U=#@$&A)$Y$8K$)C0X!%X8(y
M(<422Q21A4T13"4$86%0QUMB;+PQ1AATI/&&&RR  $,/<! V!VM"^:&20X@0y
MP$('!0  Q51GM 8"5W7  0*#;(# UAEH=/?&BT:1\489<[AQ@E&2$'!""(5,y
M89Q%4[WHAD]RF.$<"'<4E6,8;N1!!UMNG.$"")R,"((I!%A@B!-5-"%$%48Ly
M$ 0B,$""0!"PB*D+ 1(40H051>2W  ( ] "HH  04U("@#I#@ *#$,$$%'\"y
M@(V8XM17"!1/X$=%I.P0T,!+F3I!A0R1VB,F  68Y) "!8Q0B!5!,-&4FX& y
M$$0/!@2:*ZZZ]LHKKQ04L,$"N^X:A" JK'"KL8*TX,*R 'C0JIN+P!"###/0y
M4(,--^"0@P[0]A!$(#R$>ZP//P2!0@$9$!MH$(\<-\1C1S"EQ!),-.'$$T'(y
M,&T0BT 1A11*5F'%%5ADH86Y@7 1;K$ \,"NN^+&*\2\11A1;Q+WYKMO$$84y
M$ *U A-,A<$(*_RPKQ!#D>I)6A2@P%)%!"&2%&048,("I9W60\],B L) 'I=y
M9$5O<UBH50PNP' KT&X4$(.;H SQ!AQYR)$&CD;%D$,.,'R$AFYL  G"$E\By
M40>.0#YM6M! XU& !-1:\08;=72F PB0$'"LS(98<=J:1C!2  5N(L+WG#^_y
M;<G<U!(QF'R([1T$*(#K1;@J$[^YN-L^ TT+NX3 9,04;C8" @A&$';;%)0'y
MX8NPAD!6Q!0T)3['WG$6 #H3R+SLD#0%6$ ($DSTZ4'I4IP^ <TV%R$%-\*#y
M8$X!&A1BA!-!-%%$ZHM_V7<0\!0P@?9!4$&%%&X:X@(D!=BJ3P$5$&)$\DZXy
MF0C?"011D@.#,$(3FN"F0:RN!4%P@ $ : 2G%/" 0<"  200P"QDP4V"6-WOy
M1&  58& !09(0"'ZM+XLV,  $2"$DM(7*4(1"@@&@, @\-?"00%*"0:X "&Xy
MYSUJ\<U-5#! >8B0ON_9,%!'="&@O(!"0A"A"4G PI\"H$0!H*&#)Y&# 5P%y
MDBJ(*E)3@<,;DE:A"SD).FP0 WADPP<#N* 03""<$21@@,HX9 QO:$-NW" 4y
MVMAF*&OL#0A08 ,:#$5+0$H!" QA /L0X7Z2B=30#+!(D5@A"1TIH%/ -16Ly
MV"$-8[B-&\+0&1!HP@ 4*%WZD%! %;A !;\CQ00E@  2A)%":!AE*5V!18?@y
MP@ 8T%X3@C"%)5#K!Y!PDS!Z"0)FN#%)D#P"&'5"F$^^H0YS ,%:=$.E,&23y
M.W/(3BBKPX;-@, :P"R$$Z(Y31#LZR)F*.<90  . Y3@/NP$U%22X 8[A($Vy
M0C%#&LJFR]O$TYSJ,, )PJ(^*21!".T, AWHH#4U^D2;><P.80YY47H8P 2%y
M2%\6H&!$ $R%#GF PVUB P(*430-%KU-;N9 '7\8@ ;:FT(1<I=$?3K$#7D3y
M@R!9FIDRW(8U0#E,-LTH&)J"  $'\* $#G"!DTQA.W(P"DL[](8S:*8-(.! y
M5$]B@@.HX"1#B!!K0(">(0@!!".XP2"?(!L\UD$.:TV"-IM#H1" 0 <I@,%8y
M':*# XAPA18AP@$6L,@A,.$).KV!$P8+ BP<P 5HO5IB\*A'+/6Q-K=18W@$y
M"9VB 7*TOA$#9=EP !I$83A/*,YQ:(D3AQS!1;7!"AY  )TMO4ZCVR$"9#':y
M63Z"P X'X  4[I.?(F"!ME/Q8V@#Z1M +/:UQ#&.$!1Q !-1X@ '>((/$/ #y
M3QP  408Q!.<4 14'* !KL*/?F@K"_"JE[V\.( "EBM?YQJ#LM"@ZDF(L"/?y
M8A1K+>7CWK1Q !V<!'XT38.,#"S0LH&@H"!@J8$YNT>AF* Z@_%.=\1Y&W(<y
M  4/+D!N>--2-M0H0G?HS8366AOHQ$BEOG'' 7"08M88Y9WD-&<:9(,E$)0!y
M#V,H9V[*J!4QUOA%V;1.'8R+CP.((,58*=M%_UFC(U,4G"3.I@ 0X$$&(, %y
M)1BO21UR5>VTU"A"/4-MW%";>;)T"L#ECFBEY!L+(* &)RA$%T4U%<^^F;?-y
M&4H9Y.P&.G<IP[(QL&GW+,BG'F 05+C"$U2   9$ 0C,U<\-:(" $$C!!T"+y
MKG2H8QW?O ;2LP$M",9[ "0(@@HQ0 ("%."J1S)!,E) 0 -"@ CB?,&Y2: "y
M%\A\ZQB8 0$?.#4E53V=ZEQ'H'@U2CC#,$XX(  !1A@$%*@P ST@@  S( 0"y
M8I "']1Q*FOY":NO\VJ64EH.&>H-3WPS9!#D 4A?<L2WD8!I36,"JFE&@#]$y
M<6X=L(+,)[$%Q!T"C(F#0!E0%3>YJ;%K5TTAFMY @ BI@ 0I%*$(Z$# "68Py
ME=J,@3"=>1)O"YQHV^#!*-O4#% $*8].?SK4SKT!/VIYZE0[I-\4,K)Q62K=y
M?..!*R%,@!$(@6PJ0" !(CBU D) [7G[QL! OAJ30:"!!"0 "?9+ I](D( #y
M1&&\ 7!! CZPW'7^^@BK<9&!W7#0>?8 !'[%00)6D(1"D-SD12@T&^X0ACQDy
M4PUYF_".;([SL>D<2B 0 J+2SB<F)$ "TN[+T67# Q+((&Q62( %BB ((\2@y
M2;[5BO1B(@40@*'M">^'&A)  !W0(0$&:'T,_)  #/R\OUBX0<MEXX,>D  'y
M84.$ZI/0>AG OCFREP+M02 )W(^7'YS@O0Y, ?SJPR(!+/#!5,K AK5B\S8Yy
MYS;FO>DDW9Z1YK?110)&$(57Q:HI$T!).7!2FN$&<U!.8[<=8F!AQ)  +6!Ky
M1L!RHX=H\&=Y\B=(/@(D0F(47V: "'@;SI  %9!P_'!2V <"L_<$M8<-XB<.y
MY1>![)  )T "@J81A.80+<*!B39IU(514V84]I  (;!<<<0F1C" #C$'8> 6y
M%+A7NG&!O@$ 6\=%-D@%+><&+U<&,:>#\'=-,J< "J "H0=OS3$&U $=K'$;y
M_;8E:9!-;=A2(\9MMT$!"@!N@S %4>0!"@ ";Y<K4^$&/0&'VQ9*&3('.^(Ay
M+H(""J!<T'1W)GA4)!9D\R0#"O !1F!X)7=RA69<_\1XCC<4!;@6(, #"G!Iy
M>(@%1J  +T"#'^>(=U2&9[@C:?@BLM$A96!-V.2$OL%XV00%"G "2) D1< Gy
M3E!H<4B(H(@EHMAO7,&+(* %"G !'A=->:=M?0<"9*  &Q",AZ>)#M&)C9=-y
M8A"*.>(&"G!8P]@G>+!U(E"#7F2%#I%EK7%4/W$A0C&(MR$("@ #A=>-B?>-y
MBQ>.R8B%:) A_697,O=WMG$&%-(6M\$("I ""0</CZ@57/&&1:9OUX$E>>")y
M7P)8(& )"M![H*  'J0*"I !)Q$:JV9MOC$'54('\99-M&"2)^$+=4AU6)!Ly
MR "&-#AH5" -"K  1"A'.< -I6AK3@ #Y@"&O19-\*  PU9LL75L.TD%^F"2y
M@K"4!+  !Y!FN>( 7MF' ( !"Z  -%B$1F $(N"5*. #"K "+'"6EY@0]4(%y
M-N"6<-D"0+  9[=#^%$$2N"7(Y0$=[DI"@!2(D527N"5@U!$:+  Z"8'"[  y
M:2E'., '>KE?AN"52AD#0[, (> $/O 2,3$3\)AY7!$V?\=5/K%S0J$)Q+*5y
M,4 *FXD$KN"96RD#N+  'D":2]$43Z$@7!$#(/!W57$560$"PC";3B #S+"9y
M06 -NND$,P .C 6<8C$$9$&<1B$#QVDK:L$6;B$4ZN"<,T /FSD%_E"=I,8 y
MOUF:=Y$7%>&=(% #X?D7@3$8(" !#!!\3D #',  )P:71& "!*J4-0 ##$ "y
MP/D8D8%W#B$$7&$#X7D9F;$96_@6?_6?6UD#1,  '?"6TW9'&:4;S[$C8":'y
M[L0 EF@(19 \Q'B%&28'6/%U.W)D7($%#+ !;VETQ*51*8J"IS$4/6H$,"JCy
M?:)XACAS1O9T1L$&#% "!%=$BN>)V92#%^9EN@B%Q_6?)P$(## S,9J.3J (y
M#&!J[O8/RT>!&Q5C&P6(DIA-E,  %6!K1?!Z#A%[**A]*@@"GD"@";</J,  y
MO2<+'IJGO,  1,E0Z_-0QL  ,O"C;].F]28;34>!6O%^V(@985 ';& 4,T4=y
MT,"H2& (F1:C?*(-8_J4=T<.##"5QE9U[C"FJ'H%JEH$^,  %B"!W;$&$M:$y
M^ @" M  9=8 -["22# E%\(&B;&&S;%1;VB(I62(605KHUJC() =6P("%F"Ly
M*]D " "8[*4"X.H0--  '8!6L.B2G?I)XX1M(N8#YTH5#>  _:>6<X0  8 #y
M4M  !Z!U.L %#<  1G (EO0%ZU4$9G"O^2I'M"0 .  ' "NP>M  "W"J^_(%y
MED0(#@M'$,NO.. (]PH%CC&,F%0$M(4)#8!NHM"R,\ *,&L+#6 !MD8$>MIBy
M6 H"D-<&,@(,&(NPPZBP[*4, !L%!1  !T -#= "TF9'8B-O3CJ+_89GVL$=y
M;H%72@,"-. "N^4- &L$@F %-( .,"L/,,L/#: !&OL$'#N,5RJ0/2LC"Q1\y
M9 L!8OFP1H@#&N  #F"REI2RM$4"#H!N+E"X,X ##F"S@H"S<?N)<YMY#C Sy
M&VM)3.  &>"JDN$7+D($>W.-5J! C1L#8)"W(+NW:N  "5!T;T,'#E!K@@ %y
MP^< LEJ558<("G02DH"Y*PD[NB&*K0:'W)HCG)"[#F$*HBN[L.  *A!HF*(Iy
MJ[&$\'=7A"%S3B9SM7%:? 8"NN  *'!/0,DB+D)09]"M+%4;<% '<-:#Q""Zy
M4Q #SE"X,8 -IJNO." .KZMU/L .KRNV4S #]I"_<,D# /  !^"_,Z  !JQUy
M7$ !!HS 'O  $7DIH4(%*&# MO:^,O  )L(#$GQ/SRLJ1O  '$ $@C %UN<0y
MXZB,.=)O<CJ\(  %#Q!\_ZL%#] "ONIR_J8C/+*M;U!CV00=.==29H!Y,$P&y
M#U !"Q7"HQ*]3)@8;O#!%*PI>&# ).!N " (,WS"-, (#[  >KN6.& )$@P%y
MJD1R.0 *'#P#JL#!,D +#_ "*0 JFI+"-D)_GC$YVXI+=RR.1J45> 0':? 6y
M/P "OH#!7(P,#W ";Q>&:'$5(.!**L #;^,#3GJI>[PE7R(-97S&2'"4#]  y
M9@P%JQ2Q.6 .!MS(+@ /H3S*I<RO.: /#Y  ;P<T!  !HNS)M#0 .>  $.!!y
M&  !&Y!9"&9H1Y8=QI6M(O#+)\$"$( !)R&O/;(C%985I'0;-L#,#@$$OWS"y
M,J $$'  5YPK5G=I0><%$ #&IRO&:!#.6J<"<@ !"$!PSB4#?*#-BP0!(W 2y
M1N"%0L$=5<(&9# A-EJ(L@BLDL<W   !*["27I8526-&8I 8K/&[7#)/P<L=y
M.&8AL8G/I!#.I8$%,. **3$#N  !$PR4P@ !'8"D&^M<J<E^:Y5D;R &0L5Oy
M=, ,Z1S&1H #UO#,6N<";1IC(&9<7 $.$* !X>9<-%"13XK,0L$5ZB#/]"S2y
M](#/_@#2]8P $1"P<.D"$A !"X"DPF655, !$< !;_EM0WT;6FH8.[)'>6 "y
M$; !11#2OLJG6P.(&^5;;0 #$= "RR5 Q+0$2-@=TMN$\;=S_*85!I:M.M#5y
M>$T$$4  ,N $E3T#6! !*5V%8A !P!C2RF>B3U(;=7 ;/SA02@<;LG%O;! !y
M'F0'$< "*^G".7IS$*TT&<*G1-T&V&04WC0'>7,;@##;*[DE20>(?_2&C/<Dy
M;_$E&/$&&4+4-&W3@J0($2 1#M&$#VV 2O,EE #;)^$)G'TF;@O3J! !%]"'y
MH@<"7A4&8B"(D2@+:3W8PU1,M(0 FR@4U7W3(, +$> !]EW8M)0 C_BD/N'=y
M9F0,$2#*PD3@NP8-:8T$5-D$5IELCYM-.FH4VB#>#D$.Y5W6,.T.7;W6"( /y
M$6"'3"T $K ![ UO$6+=7Y=H'F(4#" ! O[@Q738&I9HU8QA%B !EMV?&>L8y
MYXT%5* "4Q72-$ #4S7. . #$G !OAIA,I(=(F9@:=/B*>".-TB+AV9@KR8%y
M..[21YZ:?-K?@L057+#DSE4#9D W/#VQ$M ![TR&4AN\ 3W0NB$4>B !#6 $y
M%7[A5$ ($O"W.KX$^9T#CB#D,H )4[76 R *@"[HLWJ5K"#D,V +$M#9[P@,y
MM%35-: ,;HX%-D -4\7>WG#H X[?WY8#Z.#H\A#IXS4 _!#J(7U" 7@2$# !y
M,' 2@I,$O^97($ %B<9AAB9=?:QHRZE1()(A&C !^^P0O+B!B)9T7E4&26<&y
M4^9765 %0[ $?D4"N^X0+C !#>T03O &=Y A6I9-/D(E8V,41 VG*2K03AKOy
M.# !Z_J-QN4=5]--WE%GO)4&G?$E0E#NH3$!###H56<%"@\&$Z#9\;@CM,%By
M?)T;-:(7"2841_83ZGL;W+$6:T &3C4A+L:S"D\'$Z !;X< +^ >:%#R3L7My
M6#AV?C !&> RLC  ^S0$Q)$A;?56<04"B##Q;U<#)WM)'3$55,!^-?(>\CXEy
MT"%0QD5A V7-G2$)$W  +E,+ \ )$]  ;T<#2Y^RIC !)@(+$Z  3Z GT:0+y
M7>\RM#  Q# !"4 $*K0$,.$,73\"!0#VV# !XUI,,"$.$Q #93]"HB(%6>#Ty
M4/\1Z#'U?;TCZ5MY-$\=M6$=(, .<U\ N#  ]L#P2<_X)00 %.#U!9 + Z  y
MJ4^6%)#Z+J,+ ^ !LE\ NS  *$ !%C#.<# 559!73^!6<"57,D !"0 "YH$>y
M5L #%+ !23 ('6''0]"NP:N1OF$$%* !.C 510"E5&(E"69D<K!O,9SZTE\$y
M,J %%* "8'D [J%9OW$WPWUAU^RD=G WHM52#(*-Z-\1,^ &%("OIN_XM&0 y
M.( '%,  )BLX:HD#@D !!! #C$ !"!#]'3$#ED !,-!_).3XM'06;);8>Q=4y
M0R4;146/2857(  *=#C8.D43JD !9&_ZCD]+!4 +%.#@I[-35$!;OD !'H0,y
M%/ #)_$$*N78B18&<,!5'9(&%'(;@D$82848/(S<] Y_1<8@46T4V2L-%% #y
M)V%@FG$'+KEDT&WL;XB18F"(>.,3SKJEH?0ANI$'7\(-%.!!YD !BN\#2A^Xy
M3:\3/RQST'%-ON%)H"3RQC6\& 8/MP_V^D !9.\#9A^X'4$ %6 B#E !;@_Wy
M=X<!%8!>Z4\#(E !!P#X8,\"%7!I'4$#-E !JE_W0% !,/#R%+!/? 1*%'(;y
M#"(46T #73 C87 '(+ %*Q #-M %V#@Y2848(* $%:#ZM$\%%9 "+^_S#L%/y
M@C$A%W4UR[E-C<9^U3%E0+&U7E !JM_S:% !O>]NO^\0G#KTQ3\C%9#\RY\>y
M?% !T)_^-8#G9NBNV+](%7 !W>\0&Q[^W8K]"ET!E]81-: )%>!V6$P*%:#Zy
M=>\*%:#Z8(\+%:#ZMC  PE !QN=N)3 54/##,H?LQL4,%:#Z/6\-%2#.[@8'y
MX% !R;_\Z:$.%? EB7 $14 %Q];XCX^#+B+-2D=1SZH5@D$82848($ /%>!!y
M_E !/' 25W ;/F+M\6:&[HK]?CPAG.I;&S4AUBY4"98'7X( %B!5%O"][@;_y
M#F$U""88A)%4B&'_I00=@B$'^\\!%G!I'6$#)F !"A %.]0]10!]%L  @%L1y
MA(,#.F !!! #1.!GT=\1-N $%N!!6& !'' 2._%D!L97-YIAZOLE8F !'L0&y
M%N #O>MRMT'48\.$!I;_>%-*!94AAF9@@D$82848]M\9&6('%K #)T'=1=8Ay
M3^;7&::^,[(U:& 4@-CN'7]A@7@'AX$8+24&UV04@& !$' 27/&!<O EBF !y
M'D0)%N#BX[4 4[$33V9@?'6C@&H!JB\$ X *%J "90\]-W-2D5\$>V-@WN%Fy
M87 5'I)-LF !JD\$ \ +WYKTT',SQF !JE\$ P -%L"'/G \^,,B#MG#!D:^y
MW:H-%J#Z2#  Y& !;J=F[F !JI\$ X /%M#[6 S\PD_\(Q V G !R;_\Z<$ y
M%^!!%G !/;"224!D6H']&38&8W!7V12M93#=M^$CUBYG3,@=9$!*6B%4$\*Iy
M(' !,G 2S7A-^-X9169@[^<;8R..6],BOL%5"ZB%<_ E*G !'D0#TMAN!@ (y
M"J*^>Y7G&PF*VNX@99 '/G !'H!V0" $2Y"S'.F)!GWM]%X&2' !&P"6@ !Oy
M&0G^<] &TK$ESBH%%]![7' !XPH$0K $SG8!/="[TFTC4_*&CQT&V1LA 1^\y
M#"(8CY:]AM8A-4;P<' !)7 2!B88A)%4B '=4X &AT$'&8(&=8 &A0R2>G !y
M'D0(%W!I5/ $4. (%^  () (1U $5/ %L"(K1( )%\"/@Z O.9N1Y7\=T2I3y
MVFZ JPUK@D$82848(" *%Y"F"%L1QY8?K' !EZ8O,6 +%P !(! P#B4JQ];Xy
M60 ,%U!JF/8$4* ,%^!!U' !/.80'5)C7^ 9B %E1N9-@XQO/)P$)Y#R\8[<y
M6O5'TOPEWG !'H0.%_   >-0HG)LC9\%\G !'L0/%X!B)HI@/W[_QHS;"JX5y
MT@P"P.1!S_R5XZ4 &H !XCQ>EHD!ET923(,!"A %.]0]18 #.&"6@\U#19 #y
M0H !!  #3( !!?IM5H !\RQNZ@\&&$  ,* &&'!I)"4#=( !!#!\&(  T4]2y
M,8 ($J2[&* !)^%C;_92,95-M"%BG"!!)V$*&"#.7PT+&$#+*F0<5* +&# !y
M5/ #JX'0H"%7Q( !%$ %/X#G9@@:%NH,&(!>=Q@$\XL!%7#%"D &G809FC%/y
M<0$"XH !IA@$,< .&+ !(&4$Z;,^M'06#G&-7 &2]H !XOS5 ) !%$ %/X#Gy
M9@@:^)F2Z'6'_4(!&5 !5ZP <[ :@"$8J<45'I !IM@O*) !#0!21I ^Z[/+y
M,I !XOS5/) !$T %/[ :" T:AF0$&3 !5/ #JX'0H#$#,9P!%$ %/X#G9@@:y
MX*D%&8!>=Q@$,T &&=#[<!D&A3:>#@D:;I !IA@$,X '&=  (&4$Z;,^$2L(y
M&2#.7\T(&4 !5/ #>&Z&H&&<EI !Z'6'04 #H) !%7#%"H &4\$6RJD5<0$"y
MJI !IA@$-$ +&=  (&4$Z;,^M.4+&2#.7XT,&4 !5/ #>&Z&H!$VTI !Z"5Ny
M15 #W) !&'#%"O#[#N&:A<&A<6$]&7!I)%4#\) !B8D^#:4/&>!!Y(%BVVWLy
M25?M0\+#ED<&&0*(=R#P/%+(#J !P*P!'B0"&M "*_D$:]!X&0*(=T E;JUWy
M^'?'-KK'634'[S, 'Z0!R;K=>F4;'-I;=^78/I[ULY$5Y=O"3Z*B//)-<S &y
M:9 &(& #&D #)U$&<5 ';?%/GM'QV(A_B%U*P6M@,[#'6;54L@$$&I"L>YIHy
M9$ A90#=5B,8C\:&V=0&CL=^LG$'UX3O0B6\89"]V:L$&D#;;)9GPC4%,W)-y
M%?)'D"=B=W!- FWM=W 8:_ E5* !'N0%&J !)\%X,IDC!(T9H.JL'ZE(:* !y
M'B0'&N!!?* !'["2ZWX'&-5/O<&%LY$5Y8L&7V((&N!!0Z,!7SE> J )&G!Iy
M0R %,D *91<%,]0G.. *&D"4>D*,1( #N, 2,2 ,&H  T3\$4@"=&F !(% (y
M0B #Q#0$\'8A64L'?F4-&K "[P]O\D],YZ%70-4&_@T=UT0'EQ]K?P0.&G!Iy
M0R %-* .&N!I9Y(FA(,#]* !^V4_^(,#_L 2,8  &X  T3\$4N#D&^!!'+ !y
M/+"20F"8[B0316 YWS04%X)-T^W6>B>+1M6$W)[R.,!19F,"&_ #)T%463\;y
M65&^: #=QBY*AZ'Q(,#QR&Y<&1@D0X*--->&7P(#&^!!.K !'+"2ZWX'&-5/y
MO<&%V$@A9> "1+ !'N0$&R#.XR4 6+ !#0!2>](G1$!;8K !"E#V%90%;+ !y
M^P5T6& '&Z  25]!60 (&^#@R$=;BK !ES8$5@ #E+ !#7!/>](G1$!;GK !y
M:.E$4(0%.( *&U !4>!$1738M]4C%%(&LK !^Z4GQ$@$O# LBS0%0B #Q#0$y
MQK !7^EN 0 -&W!I0V %,: -&_  KX4F:L(FM&0 .$ .&\  4 !JR'<#[K !y
M!! #^+ !"!#]0V %,2  '*  _8=\#, !9V$!8C4%M1Y6^P5T6* "'(  =ST$y
M5B # MH [8A\M.4#8B7]5B #2, !#=".>](G1$!;4L !"!#]0V %,, %'(  y
M41!  V0&8B5M,  ''##/TF\%Y296[$T('(  4!!  ^0(8B7]5C #F, !'B0*y
M')"LVWT%4+_;\WX"09QHEB<4P)4A@'@'5'(;D"=BML&AT,$*'  !)]$A3U84y
M7V(+'.!!P, !(?#R"Y!W90,4VZJ^IT5<'79Q8N4R0C  U, !,[#XV],]_^C>y
M#HF">^,=;A8&5^$A2Q5IB<97-PH"WB!6+D,$ X . UKZV],]12 /8N4R16#Ky
M'- !+U\"+.*0/6Q@Y-NM!M !JH\$ \#2;J=F&M !JI\$ T "'=#[6 S\PD_\y
M(Q V+M !R;_\Z8$#'>!!0M !/;"224!D6H']&38&8W!7V12M93#=M^$CUBYGy
M3,@=9$!*6B%4$\*I3- !,G 2S7A-^-X9169@[^<;8R..6],BOL%5"ZB%<_ Ey
M5M !'@0&'< ![68 @# 52,#NM]@;&1)O9NB2:M !VT@(0" $2V#'XZCM#E(&y
MB8']=- !&##:'?^D%RD;4L9'?M !!' #B- !7^EN@" )'3"N0" $2R #G- !y
M?[5^X-\A-?8%GH$8,W)-%?)'IM !'@0+'>!!NM !'W 2Z][N@FCP<&!A/*&^y
MH/4^ P "Q- !'N0,'< #*VGL;MT:7^ 9B#$CVF[R3B*(=69AV,)1M^$9B.$Dy
M38@-'= #)R$8A)%4B '=2> :4)I-,9DC6= #,3 #%HH";6#:V>1CB@2MM_%Jy
MXM !'W 2+"48A)%4B %E,Z+M\48&7\(.'>!!]M !#9 (1U $5'!LC9\%T1("y
M+W\!?QA40]7:B#0%3JJE"N !JA_Z%. !;J=F'N !JL_Z*. !GN8#.$5"CB\#y
M'J#Z=<\#'N!I/E #IN_X1N !J@_V4. !;D=K6N !JM_S9. !XNQN<. &'I#\y
MRY\>>. !7UD LS  @N !O<<(-G$2EF 3)P$*'M #*[GN=T!<9F-@EB<4P)4Ay
M_@10#?EH&?DDB!'^W6I@JN !%7 28J<T6>J0;O EM& 3-^D!F+7=QOZ&/*&^y
MLC8V0;PC\<X:6?M/B%9GNP,"R. !T\XW \!N,Z+M4:T5W($M''4;GH$8(" -y
M'A ##S8 ,J!($'U7SS'O3>A2%17RW[11>%3^A<$-'D#;#@$) S #B@31=_4<y
M/I[U&"90=!#$B3:JYF 3)P$/'M  B7 $14 %7P KLD($^N !*O!: D(@!B+Sy
M>7X=XZCM#E(&B6&+'_+<!/ !?PD$0K $,^  'T  -X !'T  -R "']![+/ !y
MXPH$0K $,V #'^  () (1U $5'!LC9\%0/ !"!#]1V %,: $'_!7ZP?^_8;)y
M@D$82848Q?X!EW8$5A #7O !&G 2\6:&;_928A!E(684:/ !M*Q"QD$%<O !y
M-& $B7 $14 %7P KLD($JX$&UX3OMI&U=PP'*J45*+ AF"P8<J!(?/ !,] $y
M[C8T4Y&MUP3<*7]DH00'/<)^\^AA5*(U%W4URVD('_" B7 $14 %7P KLD($y
MJX'02D=1SRH;96 E:YY-/J;0'Z  _;>81: )'S#6PX$$2] $Q40*'Z  _;>8y
M1> *'^#5<8D+'R!UI<,$53 %PO !'L0,'R #)]$&IIU-G"6D&<*1H&%&A*$&y
MA1'$B>89B'%.'^!!X/ !M*Q"QD$%ZO !"] $CNI00D /'^  2) (1U $5/ %y
ML"(K1. /'S#6PX$$2] $Q80 ("!5(! #)P$'>)--G"6D&<*1H&%&W!9*<$ 'y
M09QHGH$8804"'O1AXPH%3% %4Q VM*Q"QD$%>[, 3>"H#I47(.  1I (1U $y
M5/ %L"(K1. $(.!!6  "%7 2\6:&39BM\>U!-3(SW+D$35!,=@ "7SE>"@ (y
M(.!V:J8((+!?^'1WE  "EQ;N,> )(*#.A%U,.( *(.#5"O #LO!4X38$32 #y
MO  ""B %.]0]18 #QO!4X38$32 #T  ";@=WV@ "^X5/KPH"ES8$32 #[@ "y
M!! #^/!4T1_N,2  (5!F(9 #*_G]I"1K8"<3D@C=21!I/I[U&(:1Q_5/5N&My
M(4#Q&?9'<N86CIUHH[K;)Y@$T13^*5\&<5 '_Z0AT!T"R>H0QGX;0':-91 'y
M=?!/V10VS+&<%YE-@ AG94#P[T<&7Z("(= ")Y$$D99H0':-AI8$T<3_SY%Hy
M2M@9+$ #(4 ")\&G8OXDB %E<'@&T@$;MO$E/A "'H0$(>#RZD2-MN4B0':-y
M4A "+" %^.2*46N&[FH&&+9D:_$"<KIDHL@%(9!KB7 $14 %7P KLD($^R0;y
M@.@:<5 '_Z2I3N)/ *5T%)489A "'@0'(> !*RD$;Y 'TTU_R&T4ED<&?@62y
M>A "'D0((>!V[A8 CA "']#]#K'AX=^M9R = 25/W>$BF! "'B0*(4 #)W$%y
M\Y[O*LJ%JPUK!B88A)%4B%'(Q<X6V<0*(:"21Y=-S)%T>7!-V/@&[T, (& +y
M(>!!P# R"%L1QY8?RA "'D0-(6 "*VDU_=0;7%@=KM,=E..#3_(EWA "'H0.y
M(?"5[B8 \A "EY8$1B #_# R_7<Z.T4%.&  ;;E<>](G1( #$" "!! #&B "y
M"!#]26 $,D "(K"'A2 $,D!,0^ "(O"5[K9C(F#.."L$(N!I9Y(FA(,#3" "y
M#&"RMH,[5( #5B "!$"Z(G  [<:O:B "\UP:.$L'''02?B ")G 2._%DU\2%y
MU>$ZW4$Y/BASB,!!NBL";C=>"\ )(J#Z0C  IM"69<\\IP,+(J#Z1#  NM"6y
M2<\\IT,,(J#Z13  SB ";C=>%H -(J#Z2#  XB ";J=F[" "JI\$HB\"!. #y
M # "R;_\Z<%K'D0!(U !*YE68W0;0U_\(. !(^!!*# ",^-8D%4$-R #(^!Vy
MX\4 /# "JM_S1C "XNQN<  %(Y#\RY\>6C "( "6M<56? 1*%"+R[BT=_*U6y
M9> "9# "?X46*>\CMI$AA/$=<N#8.R)<4_ E;@#X#8$'(Y#N&"$$,D!,0P "y
M+? 1%Y*U=/!-'#6DX"D8<D8'<^ "@@#X#<$((S S4R $,D!,0V )(R#.:PH*y
M(Z  _;<G?4($JC "IB@$,$ +(V#9OC "9X$,(W  4S!>"B -(X  =ST%0@ #y
MW# "X>5N.F .(_"W9Y(FA$-+!P /(^ W^C ")C(:X>5N,.  A&NR:*(F;$)+y
MP(04.B ").!!+$ "R;K=QOZ&/*&^LH9'_=0;=/!-(# #'"5*045:*CH'8Y &y
M:? E-D "'@0$;%<(0B #Q#0$2D "*/#R\+_=L!.ETB$C"(EY38K<P)WR5$ "y
M*@ %C?(H4X$#/OPA,&5A@B%G=/!-&R509W!7SPT"7D "'H0&Y'X2@O%)6'%(y
M(! #82,').!!?$ "XUH%%&$%AD ";J=F0T,"#KXG?4($NZP)).#@>](G1$!+y
M!$ *)# S3[ $54 15N *)"#.XX4!N,!V>J)VCR(,)*  5: GQ$@$S$ "#5 %y
M>D*,1$!;UD "#5 %>D*,1!"QX$ "#5 %>D*,1+#+ZL!V@H8$^$(%]( 4.^ /y
M)$#V>D*,1+#+"% "!S %XZ4 $E ""T $)POTHL(!)>#@>](G1+#+)E ",R,2y
M0"\J,% "!  #.E ""A",%&$%CT($):  5: GQ$@$3E "#5 %>D*,1$!;6% "y
M#5 %>D*,1!"Q8E "'L0&)5!+C?(H=E ")@(()4#V>D*,1+#+BE "X>5N,$ )y
M)<  )HLF:L(F.> ))8  (M HCX(*)9  24 (54 15B +)>!!O% "XJQFQE "y
MER8$03 #T% "GG8F:4(X.: -)>#5^T@.)3#/@R $04 #[E ";N=N(( /)<  y
M)HLF:L(F.2  )F#9#%!6:WT %F "\SP(0A $,P "934(0A $-* ")M![-& "y
M'N0#)J"2;*9W-#YE+745'C('2& "'B0%984BX"  7& "YY@D2T(%9F "!.  y
M&@A$25)462Y43$L     > ,  &\5;K@]:P\%   ,($!005,&Q)PW=>2,*3CFy
M#9F"9M[( 4$DB10J(-"$F0/"S1LZ(,24*>,&Q!DY9<+089,'Q!LX=-*T2:.Gy
M#!D6(!;*H1,F34DZ:'R>F;,I#$H0*,G4<4,FC!LZ..>P>7,'IU,R(."4D:,1y
M#L<R=DB&#$.&)8B'<]*<<6/31< I/A>"2'(V#5:@93:1C'D4CIPW:LJ, 6GFy
M;QN#/'>"H/,&A!F?:>:@ >'3)5L0=T:N 9$'X0DV;#*&";NX<1D\8^K,*8AWy
MD\\R;,J<<0JRX4,7FS8%3&(&A-/.ES5R#!.R#!TZ6T&T,8[&H<O>#=V$W2G4y
M-P@9-$*F 2G&I]&6;NJT$3G1)^.B)7&$S(,<1) I0Y+0#3]^*\XD)PZ' 0TBy
MI9PY;H$PA58V55<''(MI5-L;TFV5%H.^3<76)G>DP5\;8:S!&D%9_752&(>9y
ML1%R<N 6D!.--=3&<D\-)P9"('D$DFK5X377$T,(T1&(90S'5((%N<$C1V_Ty
M]A%!<FPRU1@JI<'@'#C!$=M&901(UQT;4582<6@D)$=+5]5%AALG$#92:&RDy
MH6%6=8!6'8SH]1=''2I!9&&5N@G$H5]O?'B8<,6)]5),,]6$%7%I'A=;5(UUy
M5L=GH:U6$'%FE'$'9F6D(0<9FP E%$=I:JB#;I 8P 89+9$1%E.DFDH&'F?-y
MA <+>;1Z*G%-(<<"'KD-@="I9')7$$%L:'43D#DYQ%IC&*X)E$K*25304@_]y
MQQ-388@1&V999@OG##" D"9;H#)XAE4_TN57&95.-(.XKW'$& C@XI8GBLFNy
MN)>+,"K7DHHLTL$1"A*)&\88F^&%4I$I]+<=DB"T$.T<(!4)Y":V%119A\;1y
MT1+%<O1T!AITM!"1'%ANRBAG".7DE$%UF-%N@G_5,3*R1VZ%,8-VO,%&'<AAy
MM=P<JW&41F^.<OM4:2"LX=&EIQV\4DO-7>HI1WSZB9E$:P"86T!!L'$03E=Sy
M*R^'CUF[F$P%X4?:'7)LA]R6'?89\F'/@G3P0C#9M,F@3KK!46%OX,TAP&&.y
M6\;*1U,&TE1O=+W85G%KN[AOCZ=$,<MU;.(T59BAD8>] 0WA5)D)^K29Q;]Yy
MZL89_8D]*4@VME'X7B$!/5=^,!]UT'(OHHJ9A6QT&I0;J_?V.W/5G:Q<E2#Hy
MD,(FD PPA$9RQ,81$C831!0:"%)%041-12Y.3U<   #]    ;Q6BMC%3.0$ y
M  P@0!!)(H6*BR!2AH"8@^9-'39D0(QYXX9.F#1N0-!!4P:$F3=LV+RY@_&,y
MQS1LRLS1L0D$I $#"[H@\D1A"Q!4RH2< R*/0Q -[VA\ Z+.G(XQ#0YYT@1$y
M&#<1R]@ID['-&SEE0H#0D:+ERZ0NEC:]286CTS%TZH1A P*.G#=GY(1IX\(Ky
M3((&F]BH 8*LV29AQNQ=Z%#.F(X3R72D0Q2LV+HN[Q;,XH(*DR5]000!02;-y
MG#%L+K8I(\?%2[M2B@0ATJ2("R=/KF0NZ_EDRKHO(Y<-0^<$3ZH.SZ!A >(,y
?4:QA(F[L2.;-&-L=W8S$/6 (FC!R4O)$4D>XRDT:    y
 
end

Ordania-DM@cup.portal.com (Charles K Hughes) (11/18/90)

  Okay all you masterminds out there...I need a FAST, SMALL routine that
converts a 3 byte binary number, into its 8byte ASCII equivalent.

  I have a routine in DIRT.M65 that does this, but it is pretty slow (and
pretty fast too compared to some of the ones I've seen).  Feel free to take 
a look at it.

  Anyway, the routine has to convert a 3 byte binary number to its 8 byte 
ATASCII equivalent.  That is it.  No other requirements.  You don't have to 
remove leading zeroes, you don't have to right or left justify the number. 
Just give me a routine that goes from 3 bytes binary to 8 bytes ATASCII.
  Think you can do it?  I checked about 8 different books, including a few 
non-6502 ones and they *ALL* did it in the exact same way unless the CPU
had a built in divide instruction.
  So, everyone, show me what a quack programmer I am and write me a faster
routine.  I'll even give you a whole 256 bytes to write it in (generous, 
aren't I? :).

  No cheating now...supercomputers are not allowed to compete.  What will you
win for your super-duper amazing binary->ascii converter?  Hey, honorable 
mention in the documentation of DIRT.

Thanks in advance
Charles Hughes

send mail to: Charles_K_Hughes@cup.portal.com

Ordania-DM@cup.portal.com (Charles K Hughes) (11/18/90)

  Here is a minor update for the DIRT.ARC file.  I realized I had left a bit
of text out of the DOC file.  Please substitute the following DIRT.DOC file 
in DIRT.ARC if you distribute it.
-Thanks  Chuck.

-------------------cut here--------------------------------------------------
           DIRT Version 1.0
    Copyright 1990 Charles K. Hughes*


  This is the version 1.0 release of DIRT - a new directory lister for
SpartaDOS.  Though meant specifically for 4.0+ it will work with any
version of SpartaDOS except for 1.1.

  DIRT will give a listing of files similar to the standard DIR command in
SpartaDOS, however, instead of giving the time a file was created, it gives
a listing of the attributes for that file.

  Why use DIRT?  Well, it is faster, shows the attributes, and is better
than the standard DIR command in two ways.  The first way is with regard
to very large files - DIRT will show the full 8 bytes of file size (files
can be up to 16,000,000 bytes long) where the normal DIR command only shows
the lower 6 bytes of file size (any file greater than 999,999 bytes will
have the upper digits truncated).  The second benefit is that DIRT can be
told to NOT display certain files, regardless of their attributes.



  The standard form of the command is:

  DIRT [+|-phasd] [!] [<drive><path><filename mask>]


  The options are used as follows:

  [+|-phasd]   This option is used to specify the attributes of the files
     you wish to see.  If you start the option with a '+' then ONLY those
     files that match the filename mask and have the attribute(s) specified
     will be listed.  If you start the option with a '-' then ALL the files
     that match the filename mask EXCEPT those with the specified
     attribute(s) set will be listed.  This option must appear before the
     path and filename.  The letters refer to the following attributes:
            p - protected, bit 0 of the status byte.
            h - hidden, bit 1 of status byte.
            a - archived, bit 2 of the status byte.
            s - subdirectory, bit 5 of the status byte.
            d - defragmented, bit 6 of the status byte. (see note at end)


  [!]  This is the NOT option and it tells DIRT to show only those files
     that DO NOT match the filename mask.  This option can be placed
     anywhere on the command line, even inside the other options.


  [Dx:] or [D:]  This option selects the drive.  If the Dx: format is
     used, x is the drive looked at.  If the D: format is used then the
     default drive is looked at, EXCEPT under SDX.

  [A-I:] or [1-9:] or [Da:] This option is valid only under SDX and is
     used instead of the drive options above.

     Regardless of the option, the drive (if given) must end with a colon
     or the results will be unpredicatable.  If no drive specifier is given
     then the default drive is used.


  [pathname]  The pathname must immediately follow the drive (if any).
     The pathname must be a valid pathname and end with a \, < or >.  If no
     pathname is given then the current path is assumed.  REMEMBER: Under
     SDX << and >> are not valid in a pathname.


  [filename mask]  The filename mask must immediately follow the pathname
     or the drive specifier if either is given.  The mask can be any
     combination of wildcards and valid filename characters.  If no
     filename mask is given, then *.* is assumed.


  NOTE: There must be a space between 'DIRT' and any options in order for
SpartaDOS to recognize the DIRT command.  Likewise, there must be a space
between the attribute option and the drive/pathname/mask option.  The
exclamation option can be placed anywhere and does not need to be set off
by spaces.

  The filename and options can be in upper, lower, or mixed case, DIRT
doesn't care because it makes them all upper case before reading them.
DIRT also ignores extra spaces between options EXCEPT there can be no
spaces embedded in or between the drive, path, and filename.


  The source code is included with this file.  It is in MAC65 format and
well commented (though not commented well :) so feel free to look through
it.  Anyone who wishes to modify it is free to do so but if you wish to
distribute the modified version you can only do so under these conditions:
     1) You must distribute the modified source code with the object code.
     2) You must give proper credit (to me and previous authors if any).
     3) You cannot sell the program though a small fee (less than $5) may
be charged for copying & distribution. [Anyone who wishes to sell the
program may contact me via the address below.]
     4) You must include this same set of conditions in your distribution.



  ADVANCED USERS NOTE:
   The defragmentation bit doesn't officially exist but bit 6 of the status
byte is unused by SpartaDOS so I decided that was the best way to keep
track of a file that is not fragmented.  This is of no particular value
to DIRT, but is very important to the defragmentation program that I am
working on.  This bit is only valid as long as the file is not modified
after being defragmented.  In addition, SpartaDOS may zero this flag but
is unlikely to set it.



  If you feel this utility is something you could never live without,
and have a burning desire to lighten your load and enrich the author,
please feel free to send some of that green stuff burning a hole in your
pocket [plutonium is perfectly acceptable :) ].


  If you have any questions or comments I can be reached at:

BOB PUFFS      BBS (716) 247-8355
CLOSER TO HOME BBS (419) 368-4413
ATARI BASE     BBS (408) 745-5306
BAAUG          BBS (408) 986-0215
PORTAL         BB$ (408) 725-0561
Usenet: Ordania-DM@cup.portal.com
   or   Charles_Hughes@cup.portal.com

Or USnail:
 Charles Hughes
 555 E. Washington Ave. #301
 Sunnyvale, CA 94086

 Phone: (408) 732-7749

 * All rights reserved.  This text may be freely distributed under the
following conditions - the text is not modified, no charge other than a
nominal copying fee is imposed, and if used in a printed or online
publication a copy of said publication be sent to the author's address
given above.  Commercial non-Atari-user-group publications must get
specific written permission from the author in order to use this material.
  In other words, if your publication isn't directly affiliated with an
Atari User Group, I reserve the right to charge you for printing my
material.  Atari specific online publications are exempt from this
requirement (Zmag, STReport, etc).

------------------------cut here---------------------------------------------

Ordania-DM@cup.portal.com (Charles K Hughes) (11/22/90)

  Well, I've got some good news and some bad news...

  First the bad news...there is one confirmed bug in DIRT.COM, located by
yours truly.  It isn't painful or nasty, so don't worry about it.
Apparently DIRT.COM skips the very first directory entry - not a major bug
but I should have a fix for it this weekend.
  Anybody else find any bugs?

  Ok, now the good news...I've figured out a way to convert a 3 byte binary
number to an 8 byte ASCII decimal number.  Not very impressive eh?  Well,
my way is fast and doesn't use any division.  It does, unfortunately,
require a 1200 byte table.  I'm working on this method right now, so if
it shows a significant improvement, I'll actually use it in DIRT 2.0.
  Also in DIRT 2.0, I will include the /M and /C switches (paged output
and count files respectively), and perhaps even support for the erased,
in use, and open for write bits.

  Is anybody interested in a directory compactor?  It would remove all the 
deleted & open for write files from a directory, and then deallocate
any extra sectors the directory is using.  Interested?

Charles_K_Hughes@cup.portal.com

aa384@cleveland.Freenet.Edu (Doug Wokoun) (11/23/90)

>  Ok, now the good news...I've figured out a way to convert a 3 byte binary
>number to an 8 byte ASCII decimal number.  Not very impressive eh?  Well,
>my way is fast and doesn't use any division.  It does, unfortunately,
>require a 1200 byte table.  I'm working on this method right now, so if
>it shows a significant improvement, I'll actually use it in DIRT 2.0.
>  Also in DIRT 2.0, I will include the /M and /C switches (paged output
>and count files respectively), and perhaps even support for the erased,
>in use, and open for write bits.

	Suggestion: instead of /M, use /P, so that it is the same as
the rest of SDX (I don't know how 3.2d works with respect to this)

>  Is anybody interested in a directory compactor?  It would remove all the 
>deleted & open for write files from a directory, and then deallocate
>any extra sectors the directory is using.  Interested?

	That's a nice idea!

	Another idea that I wish someone would implement is a 'MOVE' command
on the CLI (not an interactive type thing, but something on the command line)
to move files from one directory to another by moving only the directory
entry.  (Like COPY/DELETE, but much faster)

--
Doug Wokoun - (aa384)
   -  -  -  -  -
        |||
       / | \

Ordania-DM@cup.portal.com (Charles K Hughes) (11/23/90)

Doug Wokoun writes:
>
>
>>  Ok, now the good news...I've figured out a way to convert a 3 byte binary
>>number to an 8 byte ASCII decimal number.  Not very impressive eh?  Well,
>>my way is fast and doesn't use any division.  It does, unfortunately,
>>require a 1200 byte table.  I'm working on this method right now, so if
>>it shows a significant improvement, I'll actually use it in DIRT 2.0.
>>  Also in DIRT 2.0, I will include the /M and /C switches (paged output
>>and count files respectively), and perhaps even support for the erased,
>>in use, and open for write bits.
>
>	Suggestion: instead of /M, use /P, so that it is the same as
>the rest of SDX (I don't know how 3.2d works with respect to this)

  Oops. :)  I didn't look in the SDX manual before typing, I would have
caught the mistake when I did the update.  Any programs I create for 
SpartaDOS will generally follow the SDX formats.

  Off on a tangent... :)  I wrote up the new routine for 3 byte binary to 8
byte ascii decimal and calculated the difference between the new routine 
and the old.  The new routine should be about 5 times as fast as the old one
take up about 3 times as much memory (100 bytes total - max :) but will
require a 650 byte table - this table will be generated dynamically rather 
than being included in the code.  This makes the DIRT command slower if it 
doesn't find any files to display, but much faster if it displays even 1 
file.

>
>>  Is anybody interested in a directory compactor?  It would remove all the 
>>deleted & open for write files from a directory, and then deallocate
>>any extra sectors the directory is using.  Interested?
>
>	That's a nice idea!
>
>	Another idea that I wish someone would implement is a 'MOVE' command
>on the CLI (not an interactive type thing, but something on the command line)
>to move files from one directory to another by moving only the directory
>entry.  (Like COPY/DELETE, but much faster)

  Me too...of course, that also happens to be another utility that I need for
the disk compactor, so you'll see it eventually.

>
>--
>Doug Wokoun - (aa384)

Charles_K_Hughes@cup.portal.com

aa384@cleveland.Freenet.Edu (Doug Wokoun) (11/23/90)

>  Well, I've got some good news and some bad news...
>
>  First the bad news...there is one confirmed bug in DIRT.COM, located by
>yours truly.  It isn't painful or nasty, so don't worry about it.
>Apparently DIRT.COM skips the very first directory entry - not a major bug
>but I should have a fix for it this weekend.
>  Anybody else find any bugs?

	I think I've found something: I have a directory 'MAC_65' which does
not work with DIRT.  The '_' is legal with SDX, but the program thinks it's
bad input or something.  I haven't noticed DIRT skipping the first directory
entry.  Maybe I had an erased file in the first position, if that's what
it was.

>  Me too...of course, that also happens to be another utility that I need for
>the disk compactor, so you'll see it eventually.

	Sounds good.  Good luck...

--
Doug Wokoun - (aa384)
   -  -  -  -  -
        |||
       / | \

Ordania-DM@cup.portal.com (Charles K Hughes) (11/25/90)

  ARGGGH!

Doug writes:
>
>
>>  Well, I've got some good news and some bad news...
>>
>>  First the bad news...there is one confirmed bug in DIRT.COM, located by
>>yours truly.  It isn't painful or nasty, so don't worry about it.
>>Apparently DIRT.COM skips the very first directory entry - not a major bug
>>but I should have a fix for it this weekend.
>>  Anybody else find any bugs?
>
>	I think I've found something: I have a directory 'MAC_65' which does
>not work with DIRT.  The '_' is legal with SDX, but the program thinks it's
>bad input or something.

  Grumble, grumble, grumble.  I checked this one out real quick the other day
and sure enough it is there.  This is a simple bug to fix, but I really wish 
I hadn't made such a stupid mistake in the first place. :(

>I haven't noticed DIRT skipping the first directory
>entry.  Maybe I had an erased file in the first position, if that's what
>it was.

  Guess what, upon further testing, DIRT is not repeating the skipping
behavior. :)

>
>>  Me too...of course, that also happens to be another utility that I need for
>>the disk compactor, so you'll see it eventually.
>
>	Sounds good.  Good luck...
>
>--
>Doug Wokoun - (aa384)

Charles_K_Hughes@cup.portal.com

tim@uxa.cso.uiuc.edu (/// Nigel \)) (11/26/90)

Charles K Hughes writes:

>  Is anybody interested in a directory compactor?  It would remove all the 
>deleted & open for write files from a directory, and then deallocate
>any extra sectors the directory is using.  Interested?

Couldn't this just be accomplished by copying all the files from one disk to 
another?  Hmmm....
--

 |     |~~     /\    |~~~~~~~ | /~~/  /      Tim Elliott     Tag@uiuc.edu
_|_____| |    /  \   | |~~~~~ |/  /  /  A Knife and A Fork/A Bottle and A Cork
 |     | |   /    \  | |_____ |\  \  \     That's the Way to Spell New York   
 |     |__  /____  \ |_______ | \  \__\          -Information Society

Ordania-DM@cup.portal.com (Charles K Hughes) (11/26/90)

Tim Elliot asks:
>Charles K Hughes writes:
>
>>  Is anybody interested in a directory compactor?  It would remove all the 
>>deleted & open for write files from a directory, and then deallocate
>>any extra sectors the directory is using.  Interested?
>
>Couldn't this just be accomplished by copying all the files from one disk to 
>another?  Hmmm....

  Yep, but most people don't have removable harddrives, or a drive that they
can use just for this purpose.  In addition, you can't just say
"copy D1:*.* D2:*.*" if D1 has any subdirectories; you need to use a program
for backing up the harddrive.  Invariably, these programs require that you
put in a floppy disk, pull it out, put in another, ad infinitum.  If you
don't want to make a backup, reformat the drive, and then restore the drive
(taking several hours of attended operation) you can use a compaction program
instead to clean up the harddrive.

>--
>Tim Elliott     Tag@uiuc.edu

Charles_K_Hughes@cup.portal.com

cummins@d.cs.okstate.edu (John Cummins) (11/28/90)

In article <1990Nov26.012220.2181@ux1.cso.uiuc.edu> you write:
>
>Couldn't this just be accomplished by copying all the files from one disk to 
>another?  Hmmm....
>--
>
> |     |~~     /\    |~~~~~~~ | /~~/  /      Tim Elliott     Tag@uiuc.edu

Yes... but think of the advantage of loading 1 or 2k of directory, swaping
around a few lines of information and writing it back out to disk.  Beats
the heck out of copying not only the directory entries, but all the associated
data to another partition and back. (in terms of speed)

If you do it one directory ar a tine, the head won't even have to move more
than one track on an optimized disk.

John Cummins
cummins@d.cs.okstate.edu