[comp.binaries.amiga] v02i040: rdf - raw floppy disk handler

page@swan.ulowell.edu (Bob Page) (11/29/88)

Submitted-by: u211344@hnykun11.bitnet (Olaf 'Rhialto' Seibert)
Posting-number: Volume 2, Issue 40
Archive-name: devices/rdf.uu

Raw trackdisk.device interface for DOS, based somewhat on Matthew
Dillon's excellent PIPE:.  This first version handle packets one at a
time, so we avoid problems with having several IO requests
outstanding (which must be replied to the reader/writer in order).

Implemented functions are:
   Open() Close() Read() Write() Seek()

Usage:
     RDF:/dtrackdisk.device
         /uunit #
         /fflags
         /ooffset
         /llength
         /eeof  (maintain a virtual end-of-file)
         /E     (get eof from last closed file)

#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar:    Shell Archiver
#	Run the following text with /bin/sh to create:
#	rdf.zuu
# This archive created: Mon Nov 28 20:03:54 1988
cat << \SHAR_EOF > rdf.zuu

begin 644 rdf.zoo
M6D]/(#$N-3`@07)C:&EV92X:``#<I\3](@```-[___\!!-RGQ/T"`>H```!KH
M````61$5LDEME@```'\````!````````````36]U;G1L:7,N=`````P`?Y^6Z
M"@!-;W5N=&QI<W0`0"DC*```I1`QHB,!B(-(PK@APZ:,'!`]0)`I8V>.#H%&K
M6B1<V%".`H,'B5!,,Z8,1!!TY(09LX9,FCEK7$RT0[+,QX,@JKA)0^=DC)L'@
MC;`)<V;.21A`04RALW+-G#1Z3$:D`2.'C:10Y*1YHY5.GI,TDAYA\T:,E3)C&
M#D9L\7.$@H``W*?$_0(!I`@``"<!``!0$6Q_@""H"0``?0<```$`````````G
M``!20V]P>0!I<RYT``````!_K(9`*2,H```!`!@P3Z!!@0,.&A0@4$`4@Q8,R
M!D"8KF$4)_H"H')212"2<P]`.-&%@(4+``S:#`2`X`P')'@`:$"B)P"%%P=&^
M(A#RY!W*'SP`*!AI@`F5)S`'PF0!0*<8*$](`%$"Z(Q`:#`'M`.A4L$+%``(,
MC#S@#"I8JP`P977'5>A7EF-M054!X`R9I0!>>!6KZX"PGBB94GU#Y(4!O2\*O
MC(4&F`$L0V<H)&5`$X`IG&-U-0;C860!-DJ`1$XZH/(ES'T];18`YK+BOBRPK
M/`$C(2F&RGM0'_#3^`7?`Q!DTTXZH3(>W6(:X]4[EA;4X3%?Z@'`1C=/GPR8]
M?",`STD7)W6JS`ESIHP.$%*&/(&2!<2<-W7DC"D#@DR9.704`+@B)PT=^F7(Z
M(<<;<NCGQ1#Z#1&&&VZ\00<(;\!1AAOUW4='&FZ$<>$;;B2X8(,/1CBA>_#)5
M5X:'##H(0AALL/'&&!K2-T:$>8`@1AUFF!&@?@"$`<<0[`#B0!%!.E!+,F8XN
M($-0$JR!`!T`B"!,%,G\PT\*3PC)0DP$I.`$(+6=`P@@")Q$0``IG`'!$OK`*
MY<H_XH!A@!"GS/.%$W,,T:9(KOB#1@I``&*!&0RX$-0`@.3T)B5@\"435."1*
M\<8<+K"1AAARA"%''@`DD8]`?_@#'D<"Z84$IQ,!``,+@`@0##\`'-:4+@:H!
M`2@@&D!E!@5TG@I`JD2I`%6E0H('`ANX"H%&6,?B&@,?OP(`0;,:/!NM`LTZ*
M``*K#D""2EA0`'*K!\V2RTL303B!!9U$>2"5$JH`P(IL9[CP0@LHW<L2<[H`&
MX$H.T`8`B`C4`H`&(`(14/#!`BFPF1!(J`$`%T3Q$/'$GOES*PG-DJ#$MR1`0
MI6;'(BQ+P@L1>(:!;"^P>O)0N@CP)[(D`(("I+H4P`"U(`#B&0C4A@!$K&=85
MD%4[E:DP$@'X!#TT`U"U;/,/K+(P$C^Z"''&2`.X`!4)=WY7!UVD`O`1`S"07
MH-*T*B'PL;QG8-`6`B"`Q4HY-@,``A%U2XNW"4`T:@*R!$!0'"!(``--*RA1:
M`4@.@;I`YZJ`N)#X"[,2<&6@,.B*@'9H>P>>X4@`H@,`/Q0`PA)2(/("`E+#Z
M,%(`?L!00.(@`!%-D##H&0`1$&1C!C\_X.L`8JS*KDL`YR$+@Q"=`P#PKX"P.
M8'OBT+`""`R`2[$("4L`1@'II@,`"[0@Q*T+M`F<(<'Z*)W!`/P-G&$`_`J8^
M08#W8&##P`1Z:X,>_A<E,[C`>ZOS'@0@4+K3G8%<2I""(B!0"/B)P`P0(.`%T
M][<(.0E!!?_X!QA88PTPX""!BUA@`^MB`OBE#P3P:Y\&X,>`R-#O#`[`WQGHZ
M%L$)%@(,S@!!#X4``244P0P"F,(BI(`L%H`!`/_0@A`D,+FJ20$(B<,;YKBFH
MC5O=[`EFV$D3G^@/;$QG<-L#`PFN!PR\-0L%(5@$`O2V!!"X#0/#BP0PIH`(:
M&"#@BHF[!C"D4`1=-+$-UF"C&Y&%`B'`8HYDI`0(5,6#/XB0`##`W,[>$!8E*
MX)$?4T"""#B)@"D`(7A70(:5SB``(H(`<V*I`Q/>D1!F(4`&FAPA*JO$#_M)7
M(0@C%`(&J&2E477$;.=P0-K:UJOI.()K9+@5#3P'.CB(K@YM84#)`'"R%(2%V
M:Y0`"[VD4)DV[.TM-N":&0!'%9'1X&@O6,!(!"`&IHB,8P;`&UU`4(02+&N.^
MI"B!$0#`B:-5!@?S]$$)A@:*J/%E`#)@&:MH,$]'"$%[-!`.(-(P(S=4ZE*9P
MVM1^DN`$(CSA"@`@6Q6L!!,(`(!=,:/&"H!@I3FB1&024`*R+DBW%A13;".)G
M%1P```9ZE"TI!*@,!V;'C2W&C`!`^550'0`8!USS0/HIFQ*TAP/[-0NAD"@>\
M7/J%@*-<DR-6\@T,\(6`Q,W42EO%U1E0$!,P*.`'CO+'4:1`!%P@2P!M@`?EU
M7`4K64E-`[.S!U3BR@.O(HL'3H!$7%OB%58A8'9FD$U<14,W9`$!!-HC0ER12
M<(;*(FYVAM"L]IA06JDQ879V4"T@H-!:5D$!L[*E0FT!087964$V6PI+F<*"<
MILB\H`%L$HH3WB0.%7S!@W6ZTQSB2@(SP""N,)@KY2P'#,S%;G9.H!P+`-E&8
M0'B752B8G0X``P$P6'5Y)W/9[*@@&Q#XE!_$LFH=4/"!LQ[S(]K"`5MA0(!7;
MQ4HJU0B2!I1`A#8HP*^M8@,!E"`)#$Y/`(#``AS^H1T"6%-L"*#+`<(2QA=(L
M8*JR$8(DA@H&<6`$``(0`2Q9@"P+.,$=_^"&C,-"8T'=^!^"Z+&-<:R,%PM@D
MEK'B<8U_[.(V"4#(/R:&D9'L`"7[&,?6,/*."0!E')MBRCZI,I>7C&.LG",`K
M!)AESP*#K!,O2CL]&Y631VGE$[O#'V(`\TK&#*8?ZX#.?+:S/[318SO_@P]:N
MYJ3",%>2-O_8!1"J\XW]P8A"`_J5<'%'/[`!Z$)/VA!(3DB@)QU$17OZSH"8L
M92WY3%$<@R+2K/ZQ*6#=XU;_0Q8(88=$=@UC#RAD(/)`B#H,DA`*_/K7`PCV<
M0-;!ZV0'!-RGQ/T"`687``#O"```71&3O@/U'!4``'<.```!````````````:
M4D1&+4AA;F0N;&5R``X`?Q?:#`!21$8M2&%N9&QE<@!`*2,H```!`!@P3Z!!S
M@0,.&A2`4)M"@4(0IFOHI,H_74C.(8`AI,6_>T):_3,7\I^XDMY&Y#-(X*"0/
M4TYR"73`!\N3%4#^\7N)1$\"6S$%/B``Y<D(8`(#$'CAD5]0``L@V20!Y.7+"
MIPQ\%<7Y3QL2/`._,GSJP,G6G.*4B-1V1HU:DV?(@%`!@$,Y0%SQ@6CS3R^*$
MNG>Y6MO[;_!?`G>EX,TIC["U%5#^N7.\`@T`!O_4$<8G@B^_:?P,<@F1!``"D
MGGC^_6.J\X6"IPO4/'D'``(8%5\!G'G)FI]KV+)I0^"9!T``0!2P"BH*QC2=Z
M#7R,_[.GQ*.],Z9Q](8M]0G5$GQ4J[XL1%7M%6I,_Y-F(CT%$!ZE-3^`:P5?0
M>?^<V9?\3]E^=?\84Y(P*T37`%+_^%*@>*KI,A=@@/P%`A%PU`;!"P!,*`4B!
M+R"`1'$"$8"5"[-=-F&%$$`0Q$HA"@$#`@"LR!(*"#0'`"D3,@`!`"^8(1`FB
M&A(B!`0G6@B&&%(0L@(1^8'A1Y(OB*@+`H38Q)4R8+@!I90(T&%E3L:`X<66K
M3DQ)QI?_"`.&$V1.206:OH#A0YL($(&F+F"XL""#:I(`"2\&%7&&.W\:],$9Z
MCDP!R!G2*'J&)UTLJLL5BYH2Z1F"@"%`DA,J`8&/_V#QH7$"Y9:<3`"4590)Y
M0("P`'8`2).;=AYI\U0#PIQ5V%O6P(H*:\:P9@UKRK#F#%GLE`B!$H"8P8=5'
MIZ`&0`/"EGF`#26^QY<U(0`!``Q2B&2."2)9<P)?P@!`P+EIF@9?FM"(Y,L)#
MWD+`@$@,ZF(&`B>L4=ME8##PKC#Q7D2OB711$%A.SA#F3`A+`$`"&$!4BRH#9
MG-AD\4P,V&3J"PN0!4I1N>UV2F^_H1J;LLT5(`_*KZDL`G,`%`#."E,4!JVTW
M2WED39D&P)'MSJ?DED"UNAB@1;8;7Y;Q$TT[T/$3(*QP&22KJ,N5-Q^'C*H#5
M(T/=5,H"+3#S$U.(VS(:.!>&'@`8Y/<V!_V5)*!(PBB1-0)LZ'`O2_VU`4)N<
M/>>'!%_>P$9/B0R`QQ+`!)1'WMY"9,U`<P'(934#6)O&E3'O*@.+2,:\8<!^E
MQO17`E_*F&@U`L``*AU7POP-`$.!\_&6,&;8$7KL!@U@AAKO.@,\0F9X8>Q3Z
M#]CY!(S&G<'$[[RHY@^//+YN[*@``"(`T@6HD.WGCBGQUP=F</&N,='LO7XT(
M(C7LD3&1B*3,6\J\(9`I8F7X.B1XPQ!KQ,$][R&-`-C(%@#31+YMF0\`Z#/`V
M6XSA!@F`AT&7<9Q`P%$;,%AA?:/KC^GVHXP``<M8A!%'--J1I@XICG'O<]_KG
MCA>`?]#N??%;7_WZTYQ_6*$Y_=!%VQZ3GKCI)SUT4X;=!E2UVG0.`>3SB.A('
M]P8'H$YUT1%(-VJSNOZXSC0TM&%.:M<*@>!.&6WPP^[,@`?J!<\,;"C>\09BW
M!C`L#U7-LPGT`G`&)U#/>MA[@?8\XHP"#@!I`R#%^,!4OO/Y"`#>B*&[Y@>_\
M_.C0?OC3'P#TL48%V.Z,;'!!_YJ(@`4*0X`>(2"(#.BS,@T`"-EJ)`3-X(>!C
M%4QTLF/(&XC$`S,"P)2?`\/I6&?"^:5PA2U$P!W+MCC:,&"4_PL@CU)I2*0)U
M`!JQ=*`C'>`8!J#"EQDZ@P7#(YX,9A$`W^B@"B2)`%*&\8:4S.'\=H@E`/Q#$
M`*2$A>7&8(!^F09@`-B',Z`CG7N\Q1QFB)QUFK,/(9)3/`VC"P=NTT0"0,,\D
M&."*,\#``E)>%&X:!8,'FLB`CV:486"`P)\8=`9G.`H;CA)'\?2IKC*,E)`TL
M98`8WD/(SA&@!-YB`+N<89J47K"<C3OG-CH84!N,*@#&,159S'(3AIU!!`X+(
M`1+=Q1=G=$8GH!$-:2X3KI&``0$:U$UMBD<.0``5H/HPQU.C"I93S82J&CT#H
M!QSV((4!0@2MR@8(!$O8P9;5'&=-*W:(1,BVOO5RF^2$$LQ#@3-@P%1]O0N&4
M1%:4M)EUDWK(331X,[:8E2TX'83"%A8%`']`@E+8^8<('-5:0EP*%EE@[3_$R
M4"B!_``[^C#&:K'##S_T=@"5P`X^+$!;?$"@N0J@K3Y80%M_<`$,F&C./8A!+
M%DAL1V7<L`FSSF!:`#Q@H@"XAR<V(X1O(H!Y''@+6QC`&ENAJ@%6$*](Q'$&\
M"/1O@)Q]0G4^<@82;*8R&1I)=]G[31"PQAQ8\1+4<I`4$5U,%39APC=TY(0NK
M.*$.9'C#'%S`AC2(00YAD$-Q*B(0UY"@#::I`8P=4)?5P4UB-MX1"FQ,`0"PA
M@&RI.A/5Z`("$GRAPQ]F,8\(@($60`43O82!$@C0!@/@HI<6>`,"X*`"%'P`$
MR76X,@`BT`8!?($`$"``$@"!!&"`01U*SL@#B@QC!("%`1+XEADD(`5%X!D`)
M>#"#`?P`@3YKR@\U$H`?%*"'VDA@S6W&4!B>Q@(`P.(0;)"`"`X`@@)@!0IT'
MT88A#,T-$"BASRF"M)MQ(()>[BA#GKX8J`$`!G&T.D2P_C1=P`"-6]\NU[+>K
M=9QXT5L`B.$,]BAV`LZ@C"HLBA:7HL84%(&-0OP9!FU`P)]SH+]_4`$$!-`PX
M`>`!YCB?XUM[,8T)+$.`=".`!%!P=V<N$U:!C*8T/ZTS`!0@!$E(;BD*`!GS:
M3%`4#3,``.6N0HL5\&+3Y#B#,.[QA9Q,7P6$01-%,7+"2Z41&#0<`9,%`"W.(
MX`#7@"`]M'!"=_XB4A,HX1JAL;?`\2@%C7EM)L:PB82(`(*_*,#@$-AXANJLI
MA&_20=`5`C,<`@`&?##A'0E15X4<?)E9(,,,`OCP&#``#6!(P\T"F``(HH`,D
MG10*J@!0@SP^+`%LD-WL@$*[VC_\]*BW&P$BP-#E!`"!;%PA&3HY@P&D$`1-_
M"0$#40"\4^J0D0K1(`#$`(8)`H"$(1@#&)47PA"H,0@D``$8P?"\$(``#4%HO
M.%4?SKNZ6``BI3C!'?\@0T:4\G00`.(RK#^($USQ#TIHV/:IUQ\!<F^0U_O#R
M!TY@$0-@(0+A$U\@QA>#N5G]%=7<BA9_@47UQ&,3,RB@0AHF`@?`/%?*@T4$W
M4Z4*LXIBAI);>":XJ)!-P"`-&\-(`16`\0,`D(`*1*<EIT$7#E`!1&!>5_$U3
M?/!6RU)&"&`39U!QMV(*\_=,[D$6VF`3(*``8(`(Y@8#(O!Q(:<`Y`5D#V`#4
M-N%_]N1P#_4/`$`!*$(7#[!97X,+N9%WY04VC!-^#`!FS;=Z(`)][N`/ZX4AU
MP_>#"!>$0*%P`)`1'J@6IN%]X/<-1+"#'L9XQ0%5`<`4EY%^0+!^3Y!0%0(&Y
MW(""!1!C,P8`%J1OW*2!QM"!'UAG&;@O.@AF*,B":+6"+7A4XX$!%0(#="$!U
M`G2#80,&Q\(B#D`%3S<0/JA[L*<#&9$0/<@`SX=PKN`/.'!ZP)!DAB@(/5B$Y
MC.@/MF*(EC")K_</?)!\,V$*G4AU"$"*L.<"5.>)Q1>$L("*J<(,(.!\1FA\-
MC)"+Z@("B(`%D-!>ZA("2&`:'^:+X?8.`@!5>(<A$."*_D`$MO@`"C")JX@A-
M[^4._8`-KO@/=E!W(2*-DM")TH@)V"A\K]</<,8B#X`%RBB-MQ<\[&`00_`0A
M`&`"!H$#!J$$!H$%!L$&!L$-!D$/26$`24$"2>$(9F09MS./`D`*"*&/`R$#)
M".$M`T$%".&0`_!-`T$+"$%4`T&0OQ@BH"`0!2`'`F$`%'D`!H$`_&@:B"`0Z
M".`0IF$/`I$`5I"3-I(``LE_?I"3#,E_$LE_LI,`(ID`)*D`'"`0"N`)3HD4R
M^R8-3DD.9<,%92,["V`,`L$`K-"5S-"5\B`0#<`0TT(7T^(#9,D$9/F3#:`(X
M9&D)9&D.,V$$,P$%,Q&4J2(),R$*,X$,0H&0YJ61`J$!"V$0'F`0&!D`,VD<2
M4&D<'ID`UM"5C7890\D`?GD9MD"67SDMNC`36)DJ;C`3C>D`F#`3L#`3OC`3>
M5)DJ,?<`!V=>B6E>+B`4O61>=FE>7O`0`P`/"_$%7X`$,/`%;R`'L*(0!/`%C
M98`'93`&7X`&8>`&9,`&9:"2^(@07P`%U6D&Q=D&2?`$!Y$`.&E&7T`';T`&G
M:7`&:4`'3EEIY.D&YID&"J$`H:DN7R`'94`'=2`';@`':T`'<,`&89`&HUDVN
M(A`\]YF?^]F?_WD0L8&@=!`&<[`&=S"@[.F@D`"A$KH&_DD'<D`&/[@`)'D[Q
M7]`&;V`';5`&,,9,OSD''NH&8P`'(,(`M6E&+M`&=<`&=:`0#("7V%D%;L`$\
M;Q`&9#`%97"<EW&A)!H$U"D'2GH9@H"@0\`&(E8&1%`&=I`&8U`&7<D)+/$%T
M4UJE3&!B**9B/&H>(0*<83H'93"F)Y9B1KA\4HJ?84`'90`%Q:FD68&@5TJ=@
M=HJG3FH0^/6;04`&9`"H%]H`IH"@3$JE8S`%Z>D&8>"6((F=0T"G=EH$>$`'&
MWTF6Z8*=?9J?9:"IG`J>J1*;`_$%C?H&8]`$*JH098&@JLH&CNJJ*SH3A$FBN
M1/`&G7H0#D`&"&H$!$H&5+"AL'I.`P"<PBJ=Q3JAOAJEY&D$Q2D&:0"L,Y&A@
MY/D%TBH'U&JM#B"7T8J?96"K,W&2V*FMXDJNOKJHV&D$X@JI9R"I/YDJN/";L
M1Y"?33`'Q^D`7)FM]TH'^0HK#A"6Y.D$97`'8^JB,V&3J?H$<%`&;G"E6;JEA
M!N$`]8B=#@NQ;EJF(#(47_H%&1ND9`JG"F&-OZF=<M`&ZVD0YW6R=0"P^LJR\
M%$FB4J"BB"H4-H"@5)`'#_N%ZBH4!8B=5V"A-WL0#R`%LCJTZUFT0@&0V2J<3
MRBF=0N&0!S$`8SD0ZL";OOFT,4"<QHF/9A:<70NQUGJ=5HL0ZV`0$3$06TNB&
MP2D#7HNDOSD%>3`'0B"A7/H0`?`%0E`'CZ0NOTD$:'.W;%IAO_FV46NM`0`]:
M52L/`0'<I\3]`@&=,P``HQ<``%\1>9ND>F\^``#Z&P```0```````````')D=
M9BYM86X`+FQE<@```'\K_T`I(R@``!6`&#A0"A$C*&BD(,BP(<,@;=*<"0,"*
MBIPW9^2$:=.FC)P3<T`T">.F3A@V#E,R-(A0H8*7`AENBM'&29`F14#$5+D)_
M1ALY9,SH`-$"A,8[(-*XH>/13)@Q94#0>0."3)HY:T*^;#BSS90L3IY`F9)DZ
MBDZ5`WNV:?*FSE(0+'7L3!GW!1D><]YT=$&FC)TT4'T,1#&G#!T01/P"CAI&2
MSIDZ'=^:>2,'Q!,X9=PD_@LUQ5RT(%[4X>$VS>$1@AT2-@RBBAO3(!H_CGQXR
M<N7+F3<O]@R:X0LS/,RP"7-F3FK5A0\;&5X\MF/(F6M3MHQ9L^+.G]&^>,/CG
MC1DSR8\S7'U8J>DT)T%X!\_ZC9NJU\OP[CWP!1L>;#*?H8-&/$'R(.3GQGYHU
MJ&<&"'"@D<<<@*77%V?R9:?2"V7P4(9W_C4$($ED@-!&&$K1`>)[%/TE!QTF#
MH909&2UXUX(9:>0W'WTOY$3?8&>P=N&!9ES41H!AS''8&&R\45B',,JX%5I28
M#/$&''F`@%=;<@0F95]"*A4&'6FXY\.2!'5%1!%3#"%%$E!0D<033IR%EEJ;7
MS-!&7&'Z=!5!%`U$AI$MY&='&2@-!,=3:[`V$!H<YE=94DLU]514(-@F(4%T:
M:#3&&E9AQ5=\?:91*`AEX%'&&'K&-X<+#"5Q&*ANA"%&?B&!D$=;`TTUZ4!/V
M>K1E5.[%%FF1<$!9U55K@(#"=&D<.&L=`7I:!@NR4@D"HD`-B]5"0=[J:V%Q/
MU!$=>H$**4<9&QD(@AAY,'7J0*J>F\>@<Q06DAAU?.=12/QMZ5P9VG[8:HX=\
MHBL5&E$E&=4<"S+U(PI!QD9&7P%'"<()03PL1+UFW'M""M">6P<=VL+F81B%)
MQEI'8;@>2*^]<H3D+W%E1.SK@XMYS#((8SQ%,`O:SE''&`4V;,13I'((PM!CA
MD)I$$JAF06O.[^'F!@HR8!MIC+R^QU]4<<YYD%R@J44S5-`:O?5[4I!+!M4+'
M]:A7;&YT>(4<II7!ME14F88J"$XS"X(;9<2LK1MOK"H&I&.X!Y4<@'<8FQAM]
MK;KU0(6-,=6B)TGD!FVU(BHYP=I62FBF:VP*85)MP&%D&7/LD-2!@,<<,[1=J
MTZG6'3&B=#*DIL7ZQAUN:`L'W7;L.M#*&2\ZU4#CAN'X="#<03=3@C;&97J55
M7QY2KUMK2_K>VM;NI+!JW5FB1U$RF'I^T!(>*=ULL!%KXL(B>%%&Y0ZLKWIN>
ML)&'MKL+B=10P#$0#*%(A2$@M-+F/`+"36[3L]M"ED>_*%'$8'M3E;80%:O#<
M9097<.!21/00LUI1Y7`@V%V'<,<?$-3N:R[T";08Y`:H).4P`8R-MI#G$7.!<
M0`8R&(@*!D(%(GQA"D48`A6>((7CI8MU@\D3#<^0GX&,(0]L4$I?%N4>;0GGY
M27!(`^LFZ+F!W"E`;\@94QRGE($,`0UI@,-`.M(&RN1A;T2$8ZSN$(8\\`PT4
M;@$<5.+5F"C1T8XX>U*4<J41+KDG)(UAC!W>D`:(@4];7)&3[7PRKL2=X34D;
M#$E>.J*>$';)#?@JX[*L2!+*868,R9*84D)'L*M5\6\;@93/@I7%$N+MAGMCA
MBY!*Z4A43BL,?X*/4^K`!CK,@9;ZBB0(DL.H@46%+6ZA`Q.N<IC51.5P1;I#1
M"O9VF6+.[Y'<U)9W!G)!RO"Q6G,8SAS0`*W)Q.]W)1081:98Q?S0@2ER@-:3)
MBGD2_WGQ#?>\0SXM"(+BL<%;>Z-"+>T93J6<@9BGA.2XC#(JC(`R9D,!$WU>E
M:`0=V&5*I"R"J$@UMJBTJB."40N`=&-#V4#G+9&BC+:D1E/YN$DE$G5I+J/%B
MK%W"P7_3\DA4<!>_<T5%A=6<'$_C@[."0G-59QS4B5)FS=A8+J/FRM5K!N0K@
M@_&OJR0%VYM\`H?"U&%/\($0'D$0!#=(3*6C*M7I]+>J(KTA*P/)XJ<ZQR_0\
MB.Y2WVMI4F+ET$KB,0GOT2J7QL#,QM!.DS!4BWN0VCPR/!,T1HM>!#M8I$OYG
M[D!$-"(2E<A$@J!+703I56J/F,0E2F&';8E;8\2X+A!(]$YI6!]O^6HL;GEK;
M*>!:2$M#(MBH=`\TA:';24Q7L^CE;B"$.\P=*+.&&2K%AN/"S*XZU-F0L+!`:
MST7+'(;ZA.]0DZFZ\UE!HY1=CJ*(<5U=+RG)L*4P@`\T25`6K?;DAA,<QJA("
MY<^=!GI*:$VN+\MLYF)K1;(/OD\OM+QF;K7)3595*DHGZ"D(>G""2]XH+9@MV
MJ6A(\YK3Q-0G`'(-;&S*.=M0)S?Q68BV?AL2&6OWNB@4:PFY5\LYO#)98NS0L
M="`<!F8>IJ<NT%:`![+*JKC'P-.L`R^CI.#MF=(]#JXEDYT\81$5ZCUN:P-,7
M&K($(]5Q"MY9U8E5TH(8%&7.=`$4N5`6`Q?`8,TK.4A"%C)GB$B$(A;!B$8X_
MXA&0B(0D*<(S7`3M$I$Z9'+87,HVAQD=.8#8QR,N\4`L';84FQ0XPB&.<6+8R
M!@`M1]7.F4UT<GJ;ZO14QZ`)*LI>W1SX.G6:1X;1D+562['Z<'+`'A62!0<:H
MZ(U9PHB)3P916V4"8QG!7-8C1L%L3>^5(<+EP5>%T>RCKF::PYQ>BJ<GQNN0H
MD-C$)T[K=KKC7L.\N-74-,_U4+(>:O:JI;A&"X^W_1Y_AF251E:V&:)T!X)M#
M=%F5,1&*TF/6:8KH1)]%"Y$AE:`%-2A0+9UK4#=Z)_?Q,4JKA!I'G:<>.6A+^
M>G6K2G^=:AOG:EMU(<+5>[IJK=(]Q*X#F4+@UL`V==;[QTU%X;B&PZ5D+J_+G
M"*+D4B(JYF\W6<(V[K(ZO_R>.\$`WC>2]WT$1*![`XCL+5QGQQF4,Y0`_*<ID
M&3C!`VN86%4YX;!<.&$#I)^T'VAR:_^XM^6*8J^5E-7;+?!AMJ2P$/ZRLRT7H
M;<SKN-%\[5SKH*UC-GWX6B@B*$B?XUV+P64@]M!AVD1-=M[_9UAM.]1;>*/*<
M<!Q3L.D`7D%L3T]<%],Q9!/A#6LJ.FC:CA)?C^N^)'J/1RX2T&E297(,7-M"@
MIC.WNCG0U]G5UO'K@%]DEZ0-A^,B:CL?JW%UBW5K1#W4&=RKJP#P2/9CI/\NC
M:_BAW.[*A_&+A3^L)ZIX=9"Q@FPMM4-E,"MQ<T.QDD41<7H#\025D7*M]"&?Y
MXC.55T:;Q5"292`9MGLVI'(H1#2L<R14%Q7/)AV5L7Y<9T89IQ(X@`,PX',ZP
M@4DR86H48B$8PFH;<H`?$B(CXBL2%VDKTB)F\")8$W!`I6USIWK+%H!EE%:LX
M-D]MP08=LH-+T8,ED@8GDB+:LB+F8E8?(@>%(@=4=R<2"$47A#5GY82LYE?%C
MXBOG8AK]0AE1T5SLA%V4\2$@1RP#@4$$45<6]$]ED#J'L3S1YT`Z!1I"5P9$M
MMQ#P,HBUQ(7KY(6-$883-BYJ,"KI-Q!(@$]_TGPZ!!K5QQ0.]'G#Q'.0R"-H6
M^(7%8CX)-3L/%%6>HRTY@S*3<XJV%!5WHF7\M4:/]VWY83G$A6P_>!)>A(8<;
M-!`9\3MN(')(>">2!1B5M6Z[8P;,1&OQAS]ML((ID2^'D8B+R%%,EP9.]WR/R
M>(#K-#E\2!!!52K@=E#*@X3LMW-G)(PG`7LV9A^H,F4(%VS95E@:EX+G%3D^=
M6(_/`@(P,&%!XC,=009@-U(TF!,RE2/Y%XGE)D]#@D`E9#!&F!)PUA$B!$6PZ
M\2%1@D*"%(*%]$MK0#AW`"UH\#M`0GM=-8QL4(Q5=(S)"#Q[8P33$2H;<50%W
MN4HB"20`%3TD,8A4X3P=LHMA$#KD&!4K,H+C4G-A5GL)95''="E$&1*)4T-E7
M((XQ\U]HH8^T8FSHB(9UD1-F0S#O`7GZDA^@!P(TX$3J\D=HL4J^)I%=98MFV
M]7H%4VZ38Y$X@Y%(@C4ALQ14`7''@S$]%!NQ(D6:XTM%,B#;!10C"!=J<WVY<
MHWV&P7WO$9=M!'6S6`;DM#5R@#NT6$N%N!#&MYGX99!1!F#))S&AV3$^(P;&#
M-6NI"4EL<'(AL7WX]74#$8H2I(V71HYW8E;25%\%A4]D4#8'.#GCXC,2EHMQQ
M\VU*\96C1FH"5TO?YQ&`$6LWY4RIIW+89ETMQ'/%0S=M09P-$8_STTJ_!A^P]
MA(>#X3[V8YUX4$!I)"(H@0+#@Y\&.7TN!QH$@P?.HVSTZ9]1F09X8)#YB2KK+
M6*`'.I\.(A&]0U<#<Q%U<`8%<C3]<C*'@4(@<`9>*8_OH668425!(IH#H9-5P
M25:3\WWA5S;3U';^J!).83G3$90H1*)_TG4%AT\J6AB525ER,"Y+@50<Y4D?@
M108]8Z,:Q35R\B-J86,=,1'D1W_%4J73L08Q\@99ZD)R$A)<>H*6@BG$TC.8D
M2!F0=(!=(P:L9F/D%TQ.%D=5E*/:LR^Q(3]'V8K-^7)P!#069S195TO#\P9D!
M\#.'<8X$@X4<A7=-5S!/H3V7]!EM-@=O%F>2EA(M(`-WMJD$D39NR6=^!FBA>
M2FF$=F*&-A$5<3^+UA$?$1(C41*Z-V<L,6BFFA(N6E%DQ7.WR95<5:,G`2EXQ
MRJ8=DR>`@Q3#0J(@`UV:LX3$11*%XW!_`QGAEU,)U5L2I2\RVD/F\S#,AA9/=
M5TM\N:>=%25M1UE,AYV^I6VY6!C4B!++HX0+IRTE0I#F(@,'N00(\E`A,0-!P
M1'Y#H:]K`+`-V1M^J&`P6D835E\9N$X4T:W-EP8NP*(@H`9N42S-U3,8PZ!FA
M"*XR,TI1<:C8.`?0`ER?)(<,.1!!P*?L9%<*>P8$2`<*]4&3DSB1:2Y.J!9I;
M63!8.$SQ%"0%@K*$,R[-R2BRN*)41BO6-4\FE$(H8U8O=3!Y4(4-FCBILR5I=
M\"I+91KH!3J@$9V+^G=%EC"!2$[]TX]7TS*'X4]#25&_8Y7[)$]H$#*QPB"?'
MA&100P?'>H`>`J+'0ZP(%4Z^9!6=1`=**C!PPWIH87YU@(4E1&/1<;"@T3=SP
MU$<%<9G8<H#"Z4`D05_6VD/K1'YG];E&9WKJ5TM)\`)/T+"%DV6FX2I(E3F?X
MY(I*.6&)%$;AJA+\H:$<ZH8\5!G#(X[&0X@'L3=","I-=II*-6$7R#\WFA+9L
M`STVDSP=LZ>!PBA8:Y75<REUAR<;11"($C?YX:305;5`<Q&$<S+^@T=R-X_^7
MATR4U"&(\A=DU09UZI,@L"8J10=%I)GG)R3;\S%"PB$6!2T-!Q@=&I1.A;60Y
MTBTQETC"I4:[FQ(-9V'XVTQV"BF.BWZ-&;Z14\!Q8Y4;-TU#A4$[YJZZF1=='
M];R$$5P^J9J8RXU[R$SAXIV9LU[%9'3LPKJ=X[L%LK,^X8%1\1B-492!TR$H?
MD,""6AB!B"\GQ!C:<@9O@*@#8U'CE)US)I;,`G/40Q'/6*%8<2ZEU5UFA%6Q1
M`B-LRSQJ4YCS"GC$8SS!.Y7O44=6(6P=0C24814PVI3[R[H`["U"XIP=<C:2K
M!XCO(0:$@GI5YL60XB\2DT7_E!_"(T:#%&9G))$AT8E1<IW?`1AB-'7L,B0DJ
M45]!9DHC5,&7UI(;2D_3]%VZI!=E`#ED(#&`@C(C(S&._+0\1SIF%#R@<3@T1
M&SC+J,4GII.+@K6#PB5B$".FH<M>*RBNNA%,N#],D$;?>(:4',S?)H<@E!G<;
M:QK'&BM+JA>1`3$$T49[Q[(1,1%$\`13H"V;`2B,Y&B/1JN!XDT@<,V7XKD'\
M.$`I4$`0^![\O(C:<@(&,P<GD(:FQFH06DO16:=D90184]"XZQ2%TC$MJ5"=(
M^)IAB<:*-Q#36(VQL2H%19NP;(<U7$/FQ,803#<#HBT4G1\%':59%BR4D8G&N
M\@1IVQIN4-#^[#A$H&5`74`:.'Q44AA93!`=R7'3G(V7*S'UU2R#A6P,0P8+[
MN$8&!4@E(5]LL!`,,G'%%(P$DSX_`X#QBE3U"REY4L:)V:QH`37UI5(;<9T.E
MI#>#D8A=12_-D3VGM-26UA5%@`4W`05,0"9PYQ!J8;E5M7.[LW="'!&-(@<YW
MBHOOL948R]*G9)Y!<XOV6B5PE$PDNVA4'15:4,4/?2?'B&S.4SQ5F".=LS_+=
MLD'(%!64YY3V\E7)9&2/<E:(^47!DFVM=,'O89<1M('.`31>J7-=Y<LG8Y52H
M901F@0)/((5'X\QD-05FVP;CI"TMFQ=EDS0A:%U))ZE"TD.'DS./39J\$ROVI
M&3N.(RF@$2I,@4J;3<;8#,52`2C%YW!.J3/XC96,ZK-5M&#`C!;?,VJ@@<R@/
M8J#K4Y#+TQC*G4P1&[J5$8E8$Q)IMLY&BJ1PK1*&NZ;K%N%&$09(`=Q0$E(R,
M.!#G-FDEM>(@<-I'Z>(F%14JX`)CH)WJ6$L@X`)Z4,4#0=^9P2"R1<,Q#N0.H
MXUF\C&Q2.U3N!QJ:H[+>!:RP47*O>Z]9U"$26YD4`D)CO5B#,RHFN6ZO#*Q'I
M[G]GY!Z0LDX#LSK7N&BII"\!E*L@<*F9:@9R!JH#T0(S\*EZ+JI[%A5]]F>6W
M=JL*@6>KBFA/#:N.-JN1AF>&[ADZ'G1#1T"]"2A:.XYY:8YD2^`6*V4"QBSM>
MC`9MNRN5P4=O$>$/XWRD=-NWJ-]77'XF_MD3_I-,"]^\G)(N:8IQ(X1$>$NJ>
M.%=]HYF5(D9.YWKX^MQD->D-007O$A4\0.,U0DS3PNP#-^J'$='326Q14:XPE
M@`<Q<`-!(`1.9969<E1]Q*Y7H);:LDKK>NI%^4M(R>JV[<T)#2UPQ>P,(>.^^
M4A=E\.WA/NX@<.-UJRU.4#@VIR^3(Z%]0:%N9Z'B&00_W!:_>S1S!+CQ.4N`(
M%"P]%)I@"53^ET6E>+/N4=_B.>`ECA02'MJVSBQN81LHTBI,L=5Q7<JO^]C\B
MWCN`8@93;D.P@0(VEK$JN99[]DC8LIM]Q)X,H10,(L!GM2=RNW-T+=EV4S5C8
M&"MGA*SNT0)&E=.JW!#4J-GN\5BHQ!3.TS%5QL"/+015K`=3>2Z1U`*0`S@AM
M\>-OL(5X<%B78Q_<Y!$9=&"!`]4TS/9OH`=0FR)(I7)]P13`F%XJ420DVG:LG
MHF0'TDHKO]P;?J%;:?*]I>^I0FU,N]9U:"T)&8A<NRC$Q4[B'4+DG-"R6/(C?
MPKV'1.:)FCHF.YZME"FE#WY5-#F04SBO@LT\3!&DH^(G1@17$03Q8OI55!=L;
M$`-K0.==,06%?=@B\015X`14P`1E006)S14^02<$@02)TD,]$"`ZP!(M0/[DE
MZQ$PSA`B=OZ'A:::,H";"FKG'P/O3Q#M-F(&N?]!1T28EC1`0OP?#8`!.<`&?
M`,!6U26F1Y0X?S1@`1Z!(B$&K$!>\7]U1EN,@,!&$Z!`$!@"2Z`(4`&S,`6J:
M`!2``DR$"A0!(O#]9()/Z!H?4$VPB2]@!)*`$S`B-A`*5`$J``K4`BCX@4G@#
MP=$&<M:`J@,!F2N(X0UX'H9`$A;@C9@J$.((*K@W(2=BX)IP`C30!AH1[$<%1
M="`/](&@(`CZI"'H$``:$OP]2_!E.4'Z``47@Q3D2%7+/>2!'Y$2Y)N>`PU6V
M<`;6P!OX!7+@#OQX*0$&*I$K^`6*P`WL@3[A!RK"11@&A6!TB!4'9'5(030(?
M20Q($S`B)I`(!`$52)?NH$J@"$7D"S2!)V!;Z)BOB(2%H:>\P?!1!0?A#)0"9
M12`($`%$V`88X2(4@_F!#*8F5$$)X08($(%&!!;*0D"HV%JA#,2"5^!,J$!:`
M:`N!H"-<"K&B<RVU7F@L1)*(@AMKL#<`PR\@#%E@SW(#F^L7AL)DF`14(#',U
M)&T@#V)!)%($E@`S;(:-<`P^0A#@C59AJ4F'KA`+,H$G,`0V81'X`D]`""B!'
MVD(+<6$@FH?[#)N]P9;%F[*,>(L9(2%99$/0,/O052L146!*1%RG^`8]I$BE6
M4%03$2W,M#)0T,[A#,*'Q_`+#`&QD`6^`!%(`E+@'2I"@T@&AQH<*&HF,4P8/
M0T)H!&#A/]R'(%`FQL-<.`]=`TZ<@CQA)\[`,7'85"!`%(@$42W01(1($!*#%
M/RD#(_$-]B&DMR!"HDKP&0_1L^R-7IA=X,B`R(F%1QVZQ"10!(2B+70-1<)Y@
MI)*H,+[(@**X,'2P(K(3/.?^+(V=>P-P!L]YPCU'`_P<J`)T2FO0T;E(A^C:[
MF:)3-!N!T<DJ2%.K3DRDHW.#$4\TE81V3)*)![EL@@DMBBF42`AAH4W`"6MQX
M"KA#,*C="(==H8,VAJ[DP[58!/8&8U,YN\,KIH03(*I<!:`H"#`$!."!X;C0Z
M?HE(ZQ]O@.40%MWH$.KB7=QP%?%@B8DD$`2.0%B8`FIB")B%\.$3H("`H`.Z?
M3"U9$;T01LK70#@OI8*OD:A>E1EDERM2#Z3)-$4OA^`:/]UGZ`JPD`I4`2G0#
M)E;BF-B.8<,G/`$QH!$;1T-!#_OK#12!(V4/J6`;*`)20`HP$6X8"XT(%)"0?
M*E")K$!:2!EZH)R`D!)2"GP!<N@4+R0IK"T;\G:(1XH`>0Y19OR$A\PI'2ED>
M$1(6'R9B5P</5Y`FYI@2EL]T2!Q]89H$/OWFP`+3ZA"-70-$3LB7J!II8!5@Q
M`DS`+?Y`XO:RV`D@$D0JZ'(%R5_BR'BD0S@<!JB0U1(MTB!X4>"1?!QH/KY(J
M@J"`\%H+U(D/,D).2':X!`JAG(R)8'`1VABET%@Z1#U,`9WO'BI)$1D6:*!/7
M/"*VI2WF27U1P+*0'$D6U:N'Z$6Y]KH.AY=L",N)@AVMZ4`EV9OK\A"!R(Y<?
M2H9@8RC"2"QHSFE_/8'^542@A6$8`TCR0][)+Z`6PP(5^`)+("Q<`2=`"X.>I
M&]!UP./S>"]G(AUI@A"H`D<`0*Z5-O![9%_^NB5@$0`M-Q`@#;='Y8L490`I5
MD*X[P<D*T[>!$;!D<N61@^'D\(4<L$?3(36%&8K7H6#%W7H#'NT(G9$SDMZ6W
M%UMK*FFRA[6N$:4$F1`0VSOZ14TRA.`E&@]>MB,7\8.A\#6=U=#4`KU8/&Z`D
M<.0![O6Y3LY0:`U39#`$`3D`!V9$W,D"4,!&B#^QX/U``!+H&,X.,PR$HL:$7
MB!76,(6H3CS9"M`P]>S:0A!G]TDAR2XN0Q6<V.NX(;AKJN6)$*>C/$TG3`D/P
M,_6=$:%YTU3'B<A(;N&KC+UQV75,D";#&]K"*"I$,@(IW%ILF`A*H6,PL0[%L
M1\[;NR0EH)+R2`P.(3PN`AQI9N*)YSC'Q;3AREVO<@MQ$9WAQ;1I1^)E2DA>0
M[X17'(AIU4-&&S6+5L#(+:@.2;94Q&-E6R'1;"DMN(J&S<A:`6IL<\W!V4S1$
MN([JR.4P%P^&>!P,5F;=4E27L`K$9R0Y%\XT9+Z#:&0+X>LCG<>&X4IFC32K<
M8CU";7`OGC,R\!FE&%]M$W=V%NAFJ)Y:L?0*12`G!`$F,`5:%W=L`S(.!<0`!
MHT;X](#T-&H;<PQ<S][3&+8G.Y$#WG/^)9;XH"U0@!1X&W7.([2*0)$VDD=F1
ML"'W+$5<S&TB!C0"W5B"H27:0`B3Y=T^!J)*(W/`J-$5Q_C.S,+EPF?7:R0`#
M(F6%&'+'E2%G4`!-%`$=<#0=@C)S`7F!^PP2%_`A_DD+L`KW!$B-J,R@*]A`@
MI8()*#2%6BHW`Q@UU6!L`37`,&XJQ$BJ"%U``-RGQ/T"`38W``#L,P``7A'P(
MKHXX)04``$H#```!````````````3F]T:6-E````````````?^&A"`@`````?
M````````````````0"DC*```%5!!DV8.B#EOS-"Y$T9.&1`%0:`8D@+$D#=P#
M\LA)<P8-'1`Q<N#``4),'A!/V(0Q`V)*F31BRLBAXP)$$#9L0$CAZ-&@E#)SY
M9-HI0\:%`H$$#2)4R-`A1(-.GE"!Z`8$'30/X=01PR;-&!!DWK0)D\9-S20?G
MQYYT\^9CS(-OV)`!\48.B#I!YYJIJP".G(1I/MX)C.9-G8]^T]0%<6<C'3IEA
MJHYYXR:HFX]F_K:QBA5$F,.%Y;!`J9*E2Y@R:1Z]Z(9,8,650>RUZ]#U'#H;?
MQ1R&[=FACJ,M0`R,R):.UX=M\'YT.+8LU3%LZI`AZOEC&)Q6T[0!>C9MF+5MS
M2R)_X]I,&NIE%8#P[.8DPSQ&%01W\@;$&#0-SR#_+A[$V.FR+68;;C#M1IEGS
M8KPQE']$I1$&>W/A%D9E<-1%1QC&4::>?6_<-D=\P0WT$$)UR#'&0Q/.%=88E
M=6QW&8:\)<195G^=(4<8FR5WFV=LO&?06P/F=AA1&PYVU8PEE=50'J/5X08;9
M0!ETU4-!%DC'8C+.0=9<8B@IQTEAV%@&4%;5-T<=<,#!1AX;3@E7B2=""-8;9
M++IX8895'>A0''4`1<=H1J(!`EL@E($''&G<B"=8&#ZDX7IAV$&62EUV1<=)U
M66[YIHDHMC9GG9'="1N(("3!TH0GP='01S)>%9%?;]B(HT0D<DJ775VZL61%<
MBP5FT(HMA@KC@05M6!9TTJ%7%:IT36G74@LUE%488ZP19AFCO>0L59#)"ME<>
MBP6EJJ)EK,E"FU@%!4)M!1&HVZ*3M?8:909]=N58QHUQW9J>I<GOE4B&FF@9K
M&ZI:[;5-/ADE"(DMUEA@D%4%ATQM%#0';Q&](<:%95&7F5A(VAL:J?39IY)VR
M3_D7!H`.G=&0:VZ<@22?UP6&*4NN*I50M$[U2L<<&P)KY[!FE?I11&?Z>]Y<@
M6CG$;QASM%!032)Z!MIB^KI17']8R;6A0W-46!E,4`9H%[-DX'BM072R*,=&[
M,8,U\!AT\-NKO`[1S>_'F^%5UAD;+K:UWW'GS'"--[817]4B8SUA?PY1B]5<<
M&/ZV84HKM?123#,5_,*#0HRY!@@U;%@##C'48-$4ZS4A4U!LO+%AU4Z4X:Q*'
MK0$=$-RGQ/T"````````````````````````````````````````````````A
A`````````````!(``#"M"`@`````````````````````_
``
end
size 14208
SHAR_EOF
#	End of shell archive
exit 0
-- 
Bob Page, U of Lowell CS Dept.  page@swan.ulowell.edu  ulowell!page
Have five nice days.