pete@wlbr.EATON.COM (Pete Lyall) (12/23/88)
This is a repost of the 6809/os9 version of the 'ar' tool. It is an archiver/compresser similar in operation to the MS-DOS 'arc' command. This was posted in response to numerous requests from people who had missed the last posting (about a year ago). If you have the 6809 version of OS9, you will *need* this tool. Pete =========================== CUT HERE ============================ #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # ar.readme # ar.doc # ar.uue # This archive created: Thu Jul 30 11:17:06 1987 export PATH; PATH=/bin:$PATH if test -f 'ar.readme' then echo shar: will not over-write existing file "'ar.readme'" else sed 's/^X//' << \SHAR_EOF > 'ar.readme' XThe other two files that follow in this archive are: X Xa) Ar.doc Xb) Ar.uue X XAr.doc is Carl Kreider's original documentation for using 'ar'. Some Xfolks have found it a little tough to interpret, so in a nutshell, Xhere are a few brief examples: X XCreating an 'ar' file: X====================== X XAssume that you want to stuff all the sources, '.h' files, and '.doc' Xfiles from a given directory into an 'ar'chive. You would chd to the Xaffected directory and type: X Xar -u myjunk *.c *.h *.doc X XThis says: X Xcreate or update an archive file called 'myjunk.ar' (the '.ar' suffix Xis automatically added and handled), and in it place all files with Xsuffixes of '.c', '.h', and '.doc'. X X XBursting an 'ar' file: X====================== X XTo unpack all the files from the archive created above, we would type: X Xar -x myjunk X XIf just the '.c' files were desired: X Xar -x myjunk *.c X XListing a file from within an 'ar' file without unpacking it: X============================================================= X XIf you were just interested in reading the '.doc' files, but didn't Xwant to use the disk space to unpack it (or the time), you could Xtype: X Xar -p myjunk *doc X XI find this especially useful for handling documentation on my system. XI keep it all in 'ar' files in a raw, pre-text formatter (like Nroff) Xstyle. When I want a copy of documetation, I just: X Xar -p docfiles <desired_filename> ! text -I -q X XWhich pipes it directly through the formatter, which could then be Xpiped into the spooler, redirected to another file, or whatever. X XLooking at the contents of an 'ar file: X======================================= X Xar -t myjunk X XJust looking for the C sources: X Xar -t myjunk *.c X X X------------------------------------------------------------ X XIn order to use the file 'ar.uue' packaged herein, you Xmust use the 'uudecode' utility that I recently posted Xto the comp.sys.m6809 group. The syntax should be: X Xuudecode ar.uue X XThe file 'ar' should be created. You should then place this command in Xyour CMDS directory, and ensure the attributes are set for execution. X XPete Lyall X====================================================================== X SHAR_EOF fi # end of overwriting check if test -f 'ar.doc' then echo shar: will not over-write existing file "'ar.doc'" else sed 's/^X//' << \SHAR_EOF > 'ar.doc' XAr is a utility modeled loosely after the archive utility in the Kernigan & XPlauger book, Software Tools. It's purpose is to gather together files into a Xcommon file, in order to save space, to keep related files together, to ease Xthe transmission of files by telephone, and other similar uses. It will use XLempel-Zev compression on text files, so substantial space savings can Xresult. Several versions of the same file can be kept in one archive without Xfile name contention. X XThe command line syntax is: X X Ar <-command>[options] <archive_name> [file_specification(s)] X XThe items enclosed in <> are required and those in [] are optional. The Xcommands available operate on the archive in some way: X X -p print a file(s) to standard output X -t print a table of contents for the archive X -u update/add file(s) to the archive X -x extract file(s) from the archive X XThe options modify the behavior of a command: X X -a causes all old files to be included in the command X -s supresses compress on storage, no effect on retrieval X -z names of files to process are read on standard input X XMost of these commands and modifiers are obvious, but not so the detail Xoperation. A version number is kept as part of the header record associated Xwith each file in the archive. The current file has a version number of '0'. XOlder versions of files with the same names have succedingly greater numbers. XCommands normally operate on current copies, or those with a version of '0'. XThe 'a' option will cause all to be selected. To avoid name conflicts on Xextraction, the version number for all but the current version will be Xappended to the name of the created file. X XA file spec can include the meta characters '?' (matches any character) and X'*' (matches any string of characters). Thus the following examples are valid Xfile specifications: X X *.c matches ar.c, dir.c, but not dir.h or dir.cc X ar.? matches ar.c, ar.h, but not ar.ch X a*z matches az, abz, abcz, abcdz, etc. X *.* matches anything with a dot in it X * matches anything and everything X XMeta characters can be used for files both bound for the archive and for files Xto be extracted. The p, t, and x commands default to '*' if no explicit file Xlist is given. The u command MUST have a file spec. The file specification Xcan include a path list if it is not absolute. That is, '/d0/work/*.c' will Xnot be accepted, but 'work/*.c' will be. During extraction, if the directory Xin the path list of the archived file cannot be found, it will be created. XHere are some sample command lines: X X ar -pa archfile print all files, even old versions X ar -p archfile print all current files X ar -p archfile *.c print all current files with '.c' suffix X ar -p archfile file.c print only 'file.c' X XThe x and t commands would work the same way, but the u command is slightly Xdifferent. Sample command lines follow: X X ar -us archfile *.c add all files with '.c' suffix without compression X ar -u archfile * add ALL files using compression unless binary X ar -u archfile file.c add only 'file.c' X XIf a file with the same name as the one to be added exists in the archive Xalready, the version number of the existing one is incremented and the new Xversion is added to the end of the archive. The atribute section of the file Xdescriptor is saved in the archive and restored to the file (as much as is Xpossible) on extraction. OS9 limits this to owner, creation date, and last Xmodified date. Size of course will be the same, but the file permissions will Xdefault to some value. It is possible (I do it in 'arc') to preserve Xpermissions, but that requires that the disk be opened raw and written raw. I Xwould prefer not to do that here. X XPre-extension is used during extraction to avoid segment table overflow Xproblems, and will be added to update as soon as the mechanism becomes clear. X XThere is no way in the first version of 'ar' to recover space of obsoleted or Xupdated files, or to delete files. This did not seem important, given the Xdesign goal. This can be simulated with a burst/re-archive operation, which Xis, in principle, how 'ar' will have to do it. It is easy to add if it proves Xnecessary for more general use of 'ar'. X XThe concatenation of two '.ar' files is still an archive, with certain Xlimitations. If a duplicate file with duplicate version appears in both Xarchives prior to concatenation, only the last one physically in the archive Xfile will be saved on extraction. One could, of course, double the size of X'ar' with all manner of prompting, perusing, and choosing in cases like that Xbut I prefer to rely on the inate ability of the user deal with such problems Xoutside of 'ar'. X XThe archive file is opened in update only if necessary, so the last modified Xdate of the archive is not disturbed by extraction or perusal. This should go Xa long way toward making rational backup of archives possible. X X X SHAR_EOF fi # end of overwriting check if test -f 'ar.uue' then echo shar: will not over-write existing file "'ar.uue'" else sed 's/^X//' << \SHAR_EOF > 'ar.uue' Xbegin ar XMA\TQ[ -$8'U !E/54'R J:@I\ P'R;X.30@-$!/7Z? 6B;[KN0SA#")0E4T XM$#&-,!NNH2<$C=CN8C/) &NH2<"C<Q/$:/D)P2GP"#W[F+LH2<',(W_J!<! XM ^RA)P4PQ!< ^C)D-1"OR0'-$*_) 8W, 'MR0'),<D!CS#DIH#FR0'*P1TG XM5($-)U"!("<$@2PF!*: (/"!(B<$@2<F'J^A;,D!RC0"IH"!#2<$H>0F]C4$ XM;Q^!#2<BIH @PC ?KZ$P 6S) <J!#2<,@2 G"($L)P2F@"#P;Q\@I##) 8TT XM$.S) <DT!C'$C0H7 (EOXF_B%R]+,*E"5:^I =<0[ZD!RQ#OJ0'9S/^",.NL XMJ0'9) JLJ0'7)1ZOJ0'9.2HJ*BH@4U1!0TL@3U9%4D9,3U<@*BHJ*@TPC.3& XMSS0$A@(0C@!D$#^,;^(7+OOLJ0'+HZD!V3GLJ0'9HZD!USDT$#"K,(LT$.RA XM,,OLA.-B[800K.0F\3)D.31 S/^M%_^+,G<7'9>N;S "KV_L'NVI =WL;1"# XM ,M$JYO, *O;^P>[68? >:$P2TG Q<+KJYF, &O9N:$'30&%RB/,F+G:.QF XMPP ![68T!A<!!#)BKF\P J]O[![MJ0'?- 87)]$R8NUD[*D !30&[*D!W^-F XMP__]- 87)Z,R9.U^)RCLJ0 %- ;LJ0'?- ;L:,, !#0&%PL<[>07)V<R9#0& XM%R=4,F3MJ0'?YFC!=28%S !( )/7S0&[.@1- ;LZ!&# /MZ!$T!A<%_3)F XM[7XF%>9HP74F#S"-##PT$$]?- 87"^8R9.9HP74F*C"-#$(T$.RI =\T!A<> XM^#)D[>0F03"-## T$.RI =\T!A<>XS)D[>0@+#"-#!XT$.RI =\T!A<>SC)D XM[>0F%^RI =\T!C"-# 4T$.RI =LT!A<+BC)F[.0T!N9J'30&%P!<,F0R:37 XM-$#,_[H7_C,@1:YD, &O9.8?'30&%R=C,F(? 2 @S ![:D !R HS ![:D XM"2 ?S ![:D "R 6%PI0(!&, &$GVXP <R??C !Z)^,@ZN;X!":V-< T0,S_ XMN!?]W>9E'1\!("SL9C0&%P$Y( ?L9C0&%P(X,F(@,T]?( /, $T!NQH- :- XM)C)D(" 7"?T@&XP 9"<6C !T)\J, '4GSHP <"?4C !X)],@X#7 -$#,_U 7 XM_84RZ)SLJ0 !$"8 R3"-"S T$!<&+A8 N^RI $@+,P 30&,&PT$.QDPP " XM- 87$44R9A"# $G%^;H42<*[*D !Q"# $G".ST[>3LY";.[.0F'<P 30& XM,.A.[ (T!NR$- ;LZ&XT!A<A 3)H%@!D[.AJ)A8P8C00,*D 2#00[.AL- 87 XM!Y R9B!),&HT$#"-"JXT$!<><3)D,&(T$!<&:C)B[>AB,&(T$.SH9#0&[.AL XM- 87!V R9C#H4C00KNAD[ @T!A</@C)D[.AB- 87(M4R8C!B-!#LZ&HT!A<% XMUS)D$(/__Q F_RTRZ&0UP#1 S/\^%_R.,NB:[*D 28+,(T*3C00%P4Y,F(P XMC0I%-! 7'?4R8C"-"GTT$!<=ZC)B,(T*M#00%QW?,F(6 *WLJ0 !%@">S ! XM- 8PZ! T$.QHPP "- 87$"LR9A"# $0)@!CYNA5)PSLJ0 '$(, 1 F %(P XMZ%#L C0&[(0T!C#H8S00%P]",F+L C0&[(0T!N;H91TT!N;H9ATT!N;H9QTT XM!N;H:!TT!N;H:1TT!N;H9QTT!C#H(C00,(T*;#00%QU5,N@8S !- 8PZ%+L XM C0&[(0T!NSH<#0&%Q^=,FCL^ 3M9.QD$";_6C!F-!#LZ&PT!A<$SS)D$(/_ XM_Q F_STRZ&8UP#1 S/] %_N&,NB,%@"=[*D 18 <LP 30&,.@<-!#LZ!3# XM (T!A</5#)F[6P0@P !)E#FZ&'# 'GZ&', $T!LS_H#0&S/__- ;LZ'XT XM!A<?(3)H[.AX- ;, $T!LP 8#0&,.@8-! 7'&\R:.U^)A$PC0G<-!#LJ0'; XM- 87"$<R9.SX$.WH$.SH$! F_X3, $T!C#H7NP"- ;LA#0&[.A^- 87'LPR XM:##H$C00[.AZ- 87! @R9!"#__\0)O],[*D 18!V3"-"9\T$.SH$L, C0& XM%QL8,F3MZ'(F)>RI =L0@P#6$"<!LNSH$,, C0&,(T)=300[*D!VS0&%P?% XM,F;LZ!## (T!C"-"6LT$!<;^S)D[*D "282[.AR- 87(;TR8NUN$(.'S28$ XM3U\@ \P N?H8.RI ,T!C#H%#00%R*Y,F3, " T!LP 0C0&,.@>-! 7#K<R XM9NSH$,, C0&,.@<-! 7(I,R9##H8C00KNAT[ @T!A<,K3)D3U_GZ&'LZ'(T XM!A<?#3)B,&0T$.SH>C0&%Q\/,F(7)-/LZ'@T!LP 30&S !@- 8PZ!@T$!<; XM(S)H,&@T$#!F[ (T!NR$- 8PZ'$T$!<,\C)B%R01[ (T!NR$- :-! & U XM$!<C_A<DB3!H[ (T!NR$- :NZ'SL"#0&%PRA,F8PZ%PT$##H%#00[.AV- ;L XMZ'XT!A<$UC)F%R17,.0T$.SH>C0&%QZ",F(7)$;LZ'(T!A<?>3)B3U\T!C!F XM[ (T!NR$- ;LZ'XT!A<=)C)H[.AX- ;, $T!LP 8#0&,.@8-! 7&G0R:.U^ XM)AGLZ!## (T!C"-"!,T$.RI =LT!A<&1#)F3U\T!C!B[ (T!NR$- ;LZ'XT XM!A<<V#)H[/@0[>@0[.@0$";^'3#D[ (T!NR$- :NZ'SL"#0&%POA,F8RZ'0U XMP#1 S/]:%_B_,NBD3U_M8A8!-.SH9"<FS _- ;L^&0T!A<AJ3)D[7XF+,P XM*C0&[/AD- 87(98R9.U^)AGL8C0&KNAD, *OZ&3L'C0&%P$T,F+CX2"W,&:O XMZ%I/7^>$S O- :NZ&0P J_H9.P>[>A8- 87(6<R9.WH6"<R[.A6- ;LZ%PT XM!A<@L3)DS O- ;LZ%PT!A<A1#)D[>A6'P%/7^>$[.A8PP ![>A8( SLZ%;M XMZ%CLZ%KMZ%;F^%HG!>SH6B &,(T'&Q\0- 87#.TR8NUDYOA:$"< 6,P +Z[H XM5C !K^A6YQ\@2<P 30&[&(T!NSH6C0&%R"D,F0T!NSH7#0&%PNP,F;M?B<F XM[*D!WS0&[.A<- 87#%0R9.U^)Q+L8C0&[.A<- 87 %<R8N/A[6+L9#0&%PR; XM,F+MY!"#__\0)O^D[.A@P___[>A@@___$";^O.RI LG(2 4YF8G$.QB- 8P XM:#00C1@R8N/A[6(P9C00%Q@$[>$FX>QB,NA<-< T0,S_M!?W.S)^YO@&P2\F XM%.QF- 8PC09)-!#, $T!A<$6S)F[&8T!A<?O#)BPP #- 87 S$R8NWD[*D XM 28,[.3MJ0'A[:D 2 *[.3MN0'A[:D!X>QF- ;LJ0'APP "- 87'U$R9$]? XM[;D!X<P 3)B-< T0,S_M!?VQNQD- ;, $T!LP 8#0&[&PT!A<7R3)H[7XF XM!<S__S7 S '- ;LJ0 #- ;L:C0&%Q]),F;M?B<0,(T%Q300S !- 87 [LR XM9$]?-< T0,S_;A?V<C+HN.SH3,, ".WD(%A/7^?TS "!- ;LZ$[# @T!A<C XM,S)D$(/__R8QS "_- ;LZ$[# @T!A<C*C)D$(/__R89[.A,PP (- 8PC05] XM-!#LJ0';- 87 U4R9LP +Z[D, &OY.<?S O- ;L8C0&%Q\',F3MY! F_Y3L XMZ$S# @T!C!F-! 7'EXR9*[H3.:(3R<CKNA,YHA/'30&,(T%/#00,&@T$!<> XM;S)B,&@PBS00%Q=A,F8PC04F-! P9C00%Q84,F3M8B85,&0T$#"-!1$T$.RI XM =LT!A<"TC)F[.A,PP!9- 87"+\R8NP"- ;LA#0&KF;L"#0&%PB*,F;L8C+H XM2#7 -$#,_ZX7]68R>C!B-!"NZ! PB$H7(#ZN;N:(3AT? 18 HNQJ- 87'&0R XM8NWD$(/__R81,(T$O#00[*D!VS0&%P)G,F3L;#0&[&(T!A<:EC)D$(/__R81 XM,(T$LC00[*D!VS0&%P)#,F0PJ0'/-! P9!<@"!<?WQ<?\J:$J@&J JH#$";_ XMG18!!C!B[ (T!NR$- ;LZ! T!NSH$#0&%P[$,FCMY!"#__X0)@#C,(T$>2 $ XM,(T$FS00S !- 87 >HR9!8 RJ]^)Z", (GNR#B-$#,_[ 7])<R>C!B-!"- XM! U$!<?;:YNYHA.'1\!%@"#[&HT!NQB- 87&><R9!"#__\F$S"-!& T XM$.RI =LT!A<!E#)D( 4P8A<?3>QL- 87&V@R8NWD$(/__R;$KFSL!D_$("=+ XM,(T$2300[*D!VR I,&(T$.QL- ;LZ! T!A<);C)F[>00@__])B4PC00]( 0P XMC01=-!#, $T!A<!-S)D( VO?A G_Z*, (GPR#A,&(SJ0'/-$ 7'L<R9C7 XM-$#,_[87\]0R?NQF- 87'4LR8NWD)A$PC00R-!#LJ0';- 87 /$R9.SD%@$G XM-$#,_[@7\Z<PC00F-! PJ0!5-! 7%2@R9#"-!#4T$#"I %4T$!<5%S)D,(T$ XM3C00,*D 5300%Q4&,F0PC01C-! PJ0!5-! 7%/4R9#"-!((T$#"I %4T$!<4 XMY#)D,(T$H#00,*D 5300%Q33,F0PC02[-! PJ0!5-! 7%,(R9#"-!-@T$#"I XM %4T$!<4L3)D,(T$\C00,*D 5300%Q2@,F0PC04)-! PJ0!5-! 7%(\R9#"- XM!1XT$#"I %4T$!<4?C)D,(T%.S00,*D 5300%Q1M,F0PC058-! PJ0!5-! 7 XM%%PR9,P 2 X-$#,_[07\KWLJ0'=- 8PC05--! PJ0!5-! 7%#@R9NQJ- ;L XM:C0&[&HT!C"I %4T$!<4(3)H[&0T!A<AOC)B-< K05(P+C K "YA<@!N;VYE XM(&]F('1H92!T87)G971S(&9O=6YD#0!R*P!W*P!R &-A;B=T(&9I;F0@)7,- XM "H 97AT<F%C=&EN9R \)7,^#0 J " @(" @(" @(" @(" @(" @(" @(" @ XM(" @(" @(" @(" @(" @(" @(" @(" @(" @("!F:6QE(" @<W1O<F5D#0 @ XM(&9I;&4@;F%M92 @(" @(" @(" @(" @(" @("!V97(@(" @9FEL92!D871E XM(" @(" @<VEZ92 @("!S:7IE#0 M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM XM+2TM+2 M+2T@+2TM+2TM+2TM+2TM+2T@(" M+2TM+2 @("TM+2TM#0 E+3(Y XM<R E,F0@("4P,F0O)3 R9"\E,#)D("4P,F0Z)3 R9" E-VQD("4W;&0- '=R XM:71E(&9A:6QU<F4@;VX@9&5L971E#0!R &-A;B=T(&9I;F0@)7,- &%R8VAI XM=FEN9R \)7,^#0!W<FET92!E<G)O<B!O;B!H96%D97(@9F]R("5S#0 N &%B XM<V]L=71E('!A=&@@:6QL96=A;" \)7,^#0!F:6QE(&YO="!A<F-H:79E(&]R XM(&1A;6%G960- &-A;B=T(&UA:V4@/"5S/@T +B5D '< 8W)E871E(&9A:6QU XM<F4@;VX@)7,- ')E860@97)R;W(@=VAI;&4@8V]P>6EN9PT =W)I=&4@97)R XM;W(@=VAI;&4@8V]P>6EN9PT 87)C:&EV92!D86UA9V5D(&]R(&9I;&4@;F]T XM(&-O;7!R97-S960- '5N:VYO=VX@8V]M<')E<W-I;VX@86QG;PT =W)I=&4@ XM97)R;W(@=VAI;&4@8V]P>6EN9PT <F5A9"!E<G)O<B!W:&EL92!C;W!Y:6YG XM#0!S=')I;F<@=&%B;&4@;W9E<F9L;W<@;VX@8V]M<')E<W-I;VX- '5N:VYO XM=VX@8V]M<')E<W-I;VX@86QG;PT 0V%N)W0@9V5T(&UE;6]R>0T 07(@5C$N XM,B M(&%R8VAI=F4@9FEL92!M86YA9V5R#0!5<V%G93H@($%R("T\8VUD/EL\ XM;6]D:69I97(^72!;9FEL92 N+B!=#0 @(" @(" \8VUD/B!I<R!O;F4@;V8@ XM=&AE(&9O;&QO=VEN9SH- " @(" @(" @('0@('-H;W<@=&%B;&4@;V8@8V]N XM=&5N=',@9F]R(&%R8VAI=F4- " @(" @(" @('4@('5P9&%T92]A9&0@9FEL XM92AS*2!T;R!T:&4@87)C:&EV90T (" @(" @(" @<" @<')I;G0@9FEL92AS XM*2!F<F]M('1H92!A<F-H:79E#0 @(" @(" @("!X("!E>'1R86-T(&9I;&4H XM<RD@9G)O;2!T:&4@87)C:&EV90T (" @(" @/&UO9&EF:65R/B!I<R!O;F4@ XM;V8@=&AE(&9O;&QO=VEN9SH- " @(" @(" @(&$@(&%L;"!V97)S:6]N<R H XM9F]R(&5X=')A8W0I#0 @(" @(" @("!S("!S=7!R97-S(&9I;&4@8V]M<')E XM<W-I;VX- " @(" @(" @('H@(')E860@;F%M97,@9F]R(#QC;60^(&9R;VT@ XM<W1D(&EN#0 -(" @(" @1FEL92!N86UE<R!C86X@:6YC;'5D92!T:&4@;65T XM82!C:&%R<R *B!A;F0@/RP@;W(@<&%T:"!L:7-T<RX- "5S.B -$#,_ZX7 XM[5DR=NQNYV', _G8NSH$.UDS 0[68PY#00S "-("0T0,S_KA?M,S)V[&[G XM8<P #^=B[.@0[63, !#M9C#D-!#, (XT!A<< S)D,FHUP#1 S/^R%^T$,GPP XMY#00[&HT!LP C0&%QDF,F86 ,XT0,S_M!?LY3!F[ (T!NR$- ;L:#0&S " XM- 87&4DR:#7 -$#,_[87[,,R?##D-!"-! U$!<7F3#D-! P8NP"- ;L XMA#0&KFXP :]NYA]/%Q=F%Q;N-!#, @7%ZH7%W$PY#00,&+L C0&[(0T!JYN XM, &O;N8?3Q<7/A<6QC00S (%Q>"%Q=),.0T$#!B[ (T!NR$- :N;C !KV[F XM'T\7%Q87%IXT$,P "!<76A<7(3#D-! P8NP"- ;LA#0&YO@.3Q<6\Q<6>Q<7 XM!C#D,ZD!SS1 %Q;[,F0UP#1 S/^U%^P([F8R?Q8 4^;DP2HF(.9J'30&-$#L XM:30&C=XR9NU^)P;, $6 &3FP";C%@!;YL00)P!5YN3!/R8$,T$@'>;D'30& XMYFPG#.; '30&%Q3I,F(@ ^; '1"CX28NYFHG$JYE, &O9>8?'30&%Q3+,F(@ XM":YE, &O9>8?'>?D$";_B.;$)@7, $@ D]?,F$UP#1 S/_ %^MR( KF::YD XM, &O9.<?[&;#___M9H/__R;J-< T0,S_N!?K4.YF( _FP"8$3U\UP.QDPP ! XM[63F^ 0=- 87%&/MY.;$'30&%Q19,F(0H^$GU^;$'30&%Q1*[>3F^ 8=- 87 XM%#\R8J/A-< T0,S_N!?K LP @30&[&8T!A<8;3)D-< T0,S_M1?JZC)_S @ XM- 8PJ0'C-!#L:30&%QAD,F;M?BX%S/__(!OFJ0'CY^0GV^;D3\1_$(, +A G XM_\XPJ0'C'Q R837 -$#,_ZH7ZJ0R=LP+L^WD3U\6 $7LJ0(+6$E825A),*D" XM+S"+-!#LJ0(+6$E825A),*D"+S"+3U_M NWQ[*D""UA)6$E823"I B\PB^RI XM @OM!NRI @O# 'MJ0(+[*D""Q"# 0 0+?^K%P@3,*D"%300C00 "-1 7 XM%1;LZ! T!LP C0&S !- 8P9C00%PMG,FCL;C0&%Q$O,F+M9A8 >NQF6$E8 XM25A),*D"+S"+[ +M9.QD)Q7L9%A)6$E823"I B\PB^P&$*-H(R'LZ! T!NQH XM- 87 80R9.QF- ;L:C0&%P"!,F3M8NQH(!?L9%A)6$E823"I B\PB^P&$*-H XM)@;L9.UF(!/L9%A)6$E823"I B\PB^R$%O^6KF[L!D_$$"83[&XT!A<0GC)B XM[6@0@___$";_:NSH$#0&[&@T!A<!&3)D[.@0- ;,__\T!A<!"C)DKN@2-! P XMJ0(5%Q0Q3U\R:C7 -$#,_\ 7Z3SLJ0(+$*.I @<M!<S__37 [*D""UA)6$E8 XM23"I B\PBT]?[0+LJ0(+6$E825A),*D"+S"+[&3M!NQF6$E825A),*D"+S"+ XM[@+O?B<5'S!825A)6$DPJ0(O,(OL!A"C9",K[*D""UA)6$E823"I B\PB^^$ XM[&9825A)6$DPJ0(O,(OLJ0(+[0(6 %7N9A\P6$E825A),*D"+S"+[(3M9NU^ XM)Q7L9EA)6$E823"I B\PB^P&$*-D(]/LJ0(+6$E825A),*D"+S"+[&;MA!\P XM6$E825A),*D"+S"+[*D""^V$[*D""\, >VI @M/7S7 -$#,_[(7Z$8R?NQF XM$"P 6NRI @TO1NQH- ;LJ0(-PP '- ;, @7$['M8C0&S !- 8PJ0(9-! 7 XM"6$R:#"I A4T$.P"- ;LA#0&[&87$LP7$E07$M]/7^VI @WL:#0&%PXZ,F)/ XM7Q8 VNQF- 87 -<R8NRI @WCJ0(%[:D"#30&[*D"!5A)6$E821"CX28[[&@T XM!NRI @4T!LP 30&,*D"&300%PCT,F@PJ0(5-!#L C0&[(0T!NRI @47$ET7 XM$>47$G!/7^VI @WLJ0(+$*.I @D0+P!L[*D"#2\[[&@T!NRI @4T!LP 30& XM,*D"&300%PBF,F@PJ0(5-!#L C0&[(0T!NRI @47$@\7$9<7$B)/7^VI @WL XMJ0(%PP ![:D"!1"CJ0(#)@;LJ0('( _, $T!NRI @47$RK#___MJ0(),F(U XMP#1 S/^P%^;^,G;LJ0(-1U9'5D=61U;M9NRI @U/Q _M:..I @40@P 0+C', XM !"CJ0(%HVCM9.QF6$DPJ0(9,(LT$.QH6$DPJ0(9,(OLA#0&S/__- ;LJ0(% XM%@!WS 0HVCM8NRI @6C8NWD[&9823"I ADPBS00[&A823"I ADPB^R$- ;, XM__\T!NQH%Q*0I.#DX#0&[.@2- ;L9A<2::K@ZN#M\<P $*/D[63L9L, 5A) XM,*D"&3"+-!#L:,, 5A),*D"&3"+[(0T!LS__S0&[&87$DE#4S0&[&H7$D!# XM4Z3@Y. T!NSH$C0&[&H7$BZJX.K@[?$R:C7 -$#,]]@7Y@,RZ?@DS ?0[>D' XMT.SI!^ T!LP 30&S "- 8PZ0?@-! 7!O<R:!"# $M"NSI!]H0@PNS)P;, XM__X6 >@7 Y<PJ0(5-! PZ0?F[ (T!NR$- :-! (U$!<0%1<0BT]?%@!9 XM[*D""UA)6$E823"I B\PBS00[*D""UA)6$E823"I B\PBT]?[0+M\>RI @M8 XM25A)6$DPJ0(O,(M/7^T$[*D""UA)6$E823"I B\PB^RI @OM!NRI @O# 'M XMJ0(+[*D""Q"# 0 0+?^7[.D'X#0&%P%4,F+MZ0?4[>D'V.SI!^(T!NSI!]HT XM!A<*BS)D%@$6[.D'UNWI!]+LZ0?6$*.I @L0+0!6[.D'T,/__^WI!] PY#"+ XM[.D'V.>$[.D'U" W[.D'T,/__^WI!] PY#"+-!#LZ0?86$E825A),*D"+S"+ XM[ ;G\>SI!]9825A)6$DPJ0(O,(OL!.WI!];LZ0?6$(,! "R[[.D'T,/__^WI XM!] PY#"+-!#LZ0?86$E825A),*D"+S"+[ ;MZ0?:Y_'LZ0?B- ;,!]"CZ0?2 XM- ;, $T!NSI!]8P9C"+-! 7!9XR:,P'T.WI!]#LJ0(+[>D'UA"CJ0('+#?L XMZ0?66$E825A),*D"+S"+[.D'U.T$[.D'UEA)6$E823"I B\PB^SI!]CM!NRI XM @O# 'MJ0(+[.D'TNWI!]3LZ0?@- :-&#)B[>D'UA"#__\0)O[4[.D'UC+I XM!]PUP#1 S/^R%^/1,G[LJ0(-$*.I TL#>RI @L0HZD""1 O -3LJ0(+$*.I XM @DO*^RI @7# 'MJ0(%$*.I @,F!NRI @<@#\P 30&[*D"!1</H</__^VI XM @DPJ0(5[ (T!NR$- :-! U$!<-[2]&,*D"%>P"- ;LA#0&[*D"!1<. XM(Q<-U2\&[*D"!2 $[*D"%^VI WL9C0&[*D #30&S !- 8PJ0(9-! 7!$(R XM:.VI TN!<S__R!,,*D"%300[ (T!NR$- ;LJ0 -%PW6%PUS%PWI3U_MJ0(- XM[*D"!</__S0&[*D #5A)6$E82:/A[:D #8T4[>3LJ0(-XZD"!>VI @WLY#)B XM-< T0,S_MA?BQ3)Z[*D"#4=61U9'5D=6[6+LJ0(-3\0/[63CJ0(%$(, $"X< XM[&)823"I ADPB^R$- ;, !"CJ0(%HV87#HH@0<P $*-D- ;LJ0(%H^'MY.QB XM6$DPJ0(9,(OLA#0&[&(7#GTT!NQDPP !6$DPJ0(9,(OLA#0&S 0HV07#DNJ XMX.K@- ;,__\T!NRI @47#E!#4Z3@Y. R9C7 -$#,_[X7XB7, OMJ0(#S ) XM[:D"!<P 30&[*D"!1<.),/__^VI @G, $T!NRI @,7#A'#___MJ0('-< Y XM-$ SJ4(O-$#F9\%D)V7!;R<0P7@G,L%8)RZ&;.W!;\0UQC!HY@/$!\LPY\#& XM XT$)O(@-F2$9@%F F8#6B;UIH2J :H"J@,YQ" T!#!IY@/$#S0$AC#!"2\$ XMAC>K8:O@I\#&!(W.)N8R8:[D;\07!,0UQN9H*BO, "C:NUJS XFFB:.UH XM$(. "81[ (F#3"- %NF@*? )OH6_X#&+>? ,*D #T_&"C0"- 8@,VSD[&VC XM NUM[&OB :*$[6LD[NQMXP+M;>QKZ0&IA.UKYN1M8B8%72<&;&++,.? , 1O XMY&IA)LOF;LLPY\ R8R"K+3(Q-#<T.#,V-#@ -$ SJ0 [[$9/Q ,0)P!H,TTT XM0#"I 0NLX2+KS #([:D!VQ8 5C7 -$#N:"8$C=$? ^]^)T;L9.U(KF;F <$K XM)PBN9N8"P2LF!NQ&R@,@'NQ&- ;F^ C!<B<'YO@(P60F!<P 2 #S "JN#J XMX.U&[$+C2^U$[<0?,#7 3U\UP#1 [F0R?$]?[>2N:N8!'1\!(!ZN:N8"P2LF XM!<P !R (S $( /, /MY" 5,&06 &BO?B<,C !X)]F, "LGYB#KYO@*'1\! XM%@!<[.3* 2 \[.3* C0&-$ 7#8\R9.UB$(/__R<6S "- 9/7S0&- ;L:#0& XM%PWD,F@@1>SDR@(T!C1 %PT#( OLY,J!- 8T0!<-5S)D[6(@)S(<S #+[:D! XMVT]?(!R, '(0)_^=C !A$"?_G(P =R?"C !D)\H@V^QB,F0UP#1 3U\T!NQH XM- ;L:#0&%@!+-$#L9C0&[&8T!A?_'#)D'P,1@___)@1/7R U3U\@)#1 [&@T XM!A<%EC)B[&8T!NQF- 87_O0R9!\#[WXL!$]?( _L:#0&[&@T!C1 %_Z#,F8U XMP#1 [F0@ N? ,*D .S00%P98,F+!#2<*$(/__R;I3U\@!&_$[&0UP#1 [F;L XM9#0&( JNY.> K^3!#2<5,U_O?BL/[&HT!A<&(3)B$(/__R;A;_00@___)@1/ XM7R "[&8R8C7 -%;N:$]?("/L:B 6[&XT!A<%]#)B$(/__R<7Y\#LY(, >WD XM)N;L8L, >UB$*-L+=8R8C7&-%;N:$]?("/L:B 6KF[FP#06%P04,F00@___ XM)Q7LY(, >WD)N;L8L, >UB$*-L+=8R8C7&-$ S9C"I $CL9" (-$ S:*YD XM[&:OJ4)#,(T"+B 0-$#L9.VI0D,S:.QF,(T"*#1&-!"-!S)F-< R:#GN9#)X XM( FN;NR!KVZM^ KFP"?JP24F]5^&?>WDYV?G8N; P2TF!.=GYL#!,"<"QB#G XM9N9?%P&M[6/FP,$N)@OG8N; %P&>[>3FP,%C)[@T0,%F)S;!92<RP6<G+L%% XM)RK!1R<FP6PG0\%S)V'!9"=YP6\0)P$9P7@0)P#+P5@0)P#%P74G=C5 ((+L XM930&,.@2[&1M9B8#S &-!;,?0#M:.9?3S0&%P7X(!LT0*[H$NP"- ;LA#0& XM, 2OZ!;FP.]F- 87^XTR:!\#%@"LC6\? S1 %P80,F)M9"<'$*-B(@+M8A< XMR!8 DHU/-'9-*A! 4(( [>3&+>? ( 2-/#1VS %[6*G9#"I #,U!B =;.2C XMA"3ZXX$T!.9A;6,F!5TG!FQCRS#GP&]A-01J82;ARS#GP&_$,F0@/3.I0D6N XMZ!+L@:_H$CG$(.=GC>TT1L0/- 2&,,$)+P2&-ZMLJ^"GP.SD1%9$5D161%;M XMY";@;\2N8HT3,F(U0(TL-4 6_H_FA*;"IX#GQ#1 K.$E\CF-J31&Q ?+,.? XM[.1$5D161%;MY";N(,@T0!<%.C)B0%"" .-G[6=M:R8+C1X@!^; )PRM^ [L XM9(, >UD*O!M:R<"C08YYFRM^!#L:8, >UI*O(Y;^)OXC-?,*D!"R 7[.18 XM2>WD6$E82>/DZ\") (, ,.WDYL2FA80()N,UAJZI0D,T%A<!H#)D.:ZI0D/G XM@*^I0D-OA#DT0.YD,GH0)P$*[$;% Q G 0*%@"8*-$ 7 _ R8A8 Q84!)Q8T XM0!<"/S)BID:$_J=&[$+C2^U$%@"I[,00HT00) "B,&(T$#!N%P:TKN@0)PB, XM $G'!8 ;S!B-!#L C0&[(0T!C1 %P#-,F(7!A@7!H[L2Q<&<.P"- ;LA#0& XM,&;L C0&[(0T!C"- )(7!@PL!S!F%P8I( (P9A<%_BT?[&3CQ.WD$*-")13L XMY!"C1"0-[.3MQ.9'Q._G1Q8 6NSH$!"# $F&3!L-!#L C0&[(0T!NQ$H\07 XM!@P7!:D7!A_L1.W$YD?$[^='[.@0- 8P;NP"- ;LA#0&[$@T!A<) #)H[ (T XM!NR$- 8PC0 4%P6*)@7,__\@ D]?,F8UP #_____3U\? 306[&8T%A?^ XMS#)H.31 [F0G!NQ&Q ,F#3"I <_,___MA.T"-<"$@"8'-$ 7 K(R8LP 30& XM7S0&- ;L2#0&%PB5,FCL C0&[(0T!J9&A $G!.Q"( +L1#0&[,2CX1<%7!<$ XMY#7 -$#N9NQ&A(#$(L$")CB!@"<'-$ 7 F0R8NQ&Q 0G+,P 30&,&?L2#06 XMYD?$0"<%%P@N( ,7"! R9A"#__\F.>9'RB#G1\S__S7 A $F"31 %P"I[>$F XM[J[$YF7G@*_$K$0D#.9'Q$ G#^9EP0TF"31 %P"([>$FS>QD-< T0.YFYF0T XM1A?_>.9IYV$7_W$R9#7 -$ PJ0 [QA T!#00C0HU$# -:N0F]#7$-$#N9! G XM_Y/L1A G_XW$ B<(-$"-%S)B( )/7S0&[$@T!A<'/S)B3U_M1C7&-$#N9! G XM_V;L1L0BP0(0)O]<A( F!S1 %P&(,F(T0(T$,F(UP#1 [F0R?*9&A $F(^S$ XM$*-$)QQ/7S0&-$ 7_HXR8NP"- ;LA#0&[$@T!A<'1S)H[,2C0NUB$"< 7NQ& XMA $0)P!6Q$ G+>Q"("$T!NS$- ;L2#0&%P<.,F;MY!"#__\G*.QBH^3M8NS$ XMX^3MQ.QB)MD@)>QB- ;L0C0&[$@T!A<&RC)F$*-B)P_F1\H@YT?L1.W$S/__ XM(!"F1HH!IT;L0NW$XTOM1$]?,F0UP#1 [F0G6:9&A $F4Z[$K$0D4N: K\1/ XM-< T0.YF)T#F1\0!)SKL9!"#__\G,J[$K$(G+.>"(-TT0.YD-,"-P>UB$(/_ XM_R<*C;<0@___)P*F8S)D-<#&$" "QB#J1^='S/__-<#L1H2 Q#'! 2;Q@8 G XM!S1 %P!<,F(PJ0 [-! 1H^$F$>9'Q$ G"S"I $@T$!?^G3)BYD?$""<5[$LT XM!JY"[$@T%N9'Q$ G$A<%XB 0S !- 8P2J]"[$@T%A<%KS)F[7XGCRN1KD(P XMBZ]$KD(6_S\T0.YDYD?%P"8?,NC@,.3L2#063U\T!A<$*,9 IF8G L: ,N@F XMZD?G1Z9&BH"G1L0,)CGL2R8%S $ [4OL0B81[$LT!A<&;C)B[4(0@___)P3& XM"" +,$JO0LP >U+Q@3J1^='[$+C2^U$[<0UP#"- ,?$#D -$#N9JYDC18? XM 2 &-$#N9JYDYL#G@";Z[&0UP*YBYH F_# ?'Q Y-$"N9.YF( 3FP"<'YL3@ XM@"?V4!TUP#1 [F3FP";\,U\?,*-D-< T8*YF[F@0KFHG%" (,3\G#N; )PKF XMQ." )_)0'2 "3U\UX#1 [F2N9N: Y\ J^L1_YU]OQ.QD-< T0*YD[F8T4$_F XMP"?^3^UBC08G]3)D-<"N8N: )PCA92;X'Q @%T\YKF+, $T!B &X6<F J_D XMYH F]C4&@P !.4_F8S"I 0NFBX0$)Q7$WT\Y3^9C,*D!"Z:+A (G!,H@3SGL XM8CGL8L, _U\T!EA)6$DT!A<$ZC)B-4 0@___)Q > ^U",T0T0(UR,F+NJ0&+ XM.31&[&;# -$5D16PP ![>2NJ0&+)A(PJ4)/KZD!BZ^I0D]/7^VI0E'NA" $ XM'S'NQ.Q"$*/D)2(F!NS$[80@$.Q"H^3M0EA)6$DSR^SD[4*OJ0&+,T0?," . XM$:.I 8LFS!?_<2;'3U\R8C7 -$;N9C-<KJD!BR 0K(0E"A&CY"(3$:.$)0ZN XMA*_D$:/D(^D1HX0DY#1 [$)825A)X^$0HX0F$#00KH3L C40XT+M0NR4( +L XMA.W$[ )825A)X^0T!A&CX28,[ +C0NT"[,3MA" "[X2OJ0&+(([L9.,"[:D! XMT>QBZ0&IA.VI <\6 .?L9*,"[:D!T>QBX@&BA.VI <\6 -+L8A"CA"82[&00 XMHP(G"R4&A@$<_B #3X$!- 'L8>UE-0$R9#D7 +K, "C NT"S X@&BA.V$ XM.>R$0U/MJ0'/[ )#4S"I <_M CDPJ0'/[0(?B1T?B>V$.3"I <_M F^$;P$Y XM-" 0KF3LA.VD[ +M(C40'B$U!NWD.<P >,"[0+LA,D B0#MA#GL H, >T" XM[(3" (( [80YKF(T!!< 0#4$72<+: -I FD!:81:)O4U!NWD.:YB- 07 "0U XM!%TG"V>$9@%F F8#6B;U-0;MY#D?J#40KV(R8C"I <\?BCGLA.VI <_L C"I XM <_M CF# G"C0&,GYOY&]A("XU!NWDS M%@"9@P )_$T!C)^;^1O84TJ XM"$!0@@!C8>UB[&8J"$!0@@!C8>UFA@%,:&-I8BKYI^3L9F]F;V>C8B0&XV(< XM_B "&@%I9VEF9&)F8VKD)NCM8FUA)PCL9D!0@@#M9JYD[&;M9*]FKF+L9#)F XM.5TG$V=B9F-:)OD@"ETG!V1B9F-:)OGL8C0&[&+M9.SD,F0Y72?P:&-I8EHF XM^2#G[:D!VS0D$#\,-200/P@Y-&"F:>9G)S3! 2<RP0(G%,$%)Q#!!B<FP0XG XM(,$/)QG&T" %$#^-) 4U8!8"QJ_X"JYJ[P)/7S7@$*YLKFH0/XTU8!8"MS1@ XMIFGF9R=(P0(G0L$#)T#!!"<WP0HG2,$+)S3!#"= P0TG,,$/)RC!$"<DP1$G XM'L$4)Q?!%2<3P1DG#\$:)Q#!&R<<QM U8!8"8Q"N;NYLKFH@#!^)IFNN;!"N XM;N[H$! _CC5@%@)/KF*F91 _A"4#$#^/%@) KF+F91 _A18"-J9E( *& JYB XM$#^0%@(HIF,0/X(0)0(6'XE/.:YBIF4?B<0DR@L0/X,D3L':)B:F986 )B"$ XM!ZYB$#^$)1<T0HX #.$Q@(0/XXU0B0K- 00/X\U!!8!UJYBIF7F9Q _@R7R XM(!3!VB;L$#^')>>N8J9EYF<0/X,E[!^)3SFN8J9E$#^$$"4!IA^)3SFF8Q _ XMCQ8!HS0@KF:F91"N:#0@$#^)) W!TR8$3U\UL#4P%@%]'R UL#0@IF6N9A"N XM:#0@$#^+(-TT(!"N:"<.IF6N9A _BB0%-2 6 50?(#6@-" 0KF@G]:9EKF80 XM/XP@Y31 [&HF",X (X " T$(, 2<E$(, B<4QO=/[:D!V\S__S"I <_M XMA.T"-<"F9<8"$#^-)>4@":9EQ@40/XTEVA\PXVCMJ0'1'P,?$.EGJ68KR!\! XM[:D!SZ9E$#^();LPJ0'/-<#LJ0'-- ;L9!"CJ4)3)28T($]?$#\'XV80/P<? XM(#4@) ;,__\R8CGMJ0'-XZE"4Z/D[:E"4S)B[*E"4S0&HV3MJ4)3[*D!S:/A XM- 9/KN2G@*RI <TE^#6&[&+CJ0'7)2$0HZD!V20:- :NJ0'73ZSD) 2G@"#X XM[*D!US40KZD!USG,__\Y[&(T(! _!R0%S/__-: ?(#4@[:D!S4]?[:E"4SDT XM8*9GQCDT!LP0/S0&[FSL0:Y$$*Y&[DBMY#1P3,__\Y3U\Y3^VI =O,__\Y)?5/7SD7 @7]L[L8A _!CD 0 !C #H<. XMCP .YK* 7UX0 F): ]"0 !AJ "<0 #Z &0 * XM)Q #Z !D H 0 ( 0 !& ( XM XM XM XM 0$! 0$! 0$! XM$1$1$1$! 0$! 0$! 0$! 0$! 0$! 0$P(" @(" @(" @(" @(" @2$A(2$A( XM2$A(2" @(" @("!"0D)"0D(" @(" @(" @(" @(" @(" @(" B @(" @($1$ XM1$1$1 0$! 0$! 0$! 0$! 0$! 0$! 0$(" @( $ " 4 P 07( G'VJ X Xend SHAR_EOF fi # end of overwriting check # End of shell archive exit 0 -- Pete Lyall (OS9 Users Group VP)| DELPHI: OS9UGVP | Eaton Corp.(818)-706-5693 Compuserve: 76703,4230 (OS9 Sysop) OS9 (home): (805)-985-0632 (24hr./1200 baud) Internet: pete@wlbr.eaton.com UUCP: {hacgate,jplgodo,voder}!wlbr!pete