$XMODEM AQM8FREESP REL:-PTDPAT ASM;RXM-TD DOCR 3XMODEM COM^.WMDMLNK COMvXMODEM.AMa  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJoKLMNOPQRSTUVWXYZ[\]^_`׮U1(ٍP*|,s[CIMN&z)$ :,6U P}={}]jsYX3\X|T_p,, ]̗A\JpP²Hgy `C[CXtv_\;t[0.EP}=åX<(e‘P\("f3?UDb *zt ` [\4Ģ5%WnQI ?@ t `%*YҗT_p5utĐ?:Py$]>@ 5MdPuK %)$'CE,lgX<$Dj~X-v@]?-YudaWC?]X7P&FQ?/XƬOgv>?n1\j`¢_?z?b#*G\$I:Ÿǿd Y>;@ ߫ %#ϱQj|w*\Y;@ ߫ %#>Ǻ4rŬ3|:7?ckJi 9bVw߻T_P2akJ0!'Q+TJR²JJ4 KRxԨRG4&Hjn0A)C $,,jypx"LH7Rx%ϘQC |3rrIح+]ҊE0\211.'4 %%i-Ҹ<) 3 3-14 H $ҬH/$W}]T L`"M[0DWZшD$̗儺DH;¤1qG4M % :²}}z{ ڕ JᤕJR )lt,>=,,Nov8cʠJLdPҸ#eZah$ 4,% ˢqzUM 8c?hZtZ,>=,,M,?.ROɎr* KJψCĸ#>IbB]էW8^ug%ap>* Wb^ "L;RmxeaQ/gŹ3j7iqwħ8PjLHb >s^fA NԸH6\}zu2LvP'j"6}zuXmtu}zUdO7XOP}=~ yF;-չ2^ZpUboTaaY?|z`aYXrE I.|;*5);n$%#I1!XX>>T_0P2iqKZ.|AQ@}M I fTg5-}=TC=DŽ$̗L̯KR²²8Wȸ#.*C I.|iQI% ],,O3j7hZ jg^u`o(ѴH$)\V,ٴ>zY M^;8I 9 A,, O,, iFҸ#J'R;B0`ܴJ,&HHaP0kCoi\,J(yp(ָ咰 2<,jfUz{ՁdD"1%%肤R5akJX39~'[*sM(5*\!ԎŹP}=ß.Rd [²²QCLP. Ke鏋E[pkt(;N [PV(<8]wVF&Hv̊ dDE&"'5 %\;wʐ ꆅŝGV J'„DQ. DYX6a?ٝ2A\Za'(5*\!eN  ) Za'(5*\!çŎerIX*sM\$0( j~sqG)s$akJ ]=aaq3L& . BbdG !4$6ŀ;e$tZJr$H%ኜ4wD$taE[K4hdb vψi#zq\bp7']`M~s%eSjD,K~÷eӴ/ؚ P.I3bKs\bIGEń2Id24 \&7a"M2$(d#oPj\GdG u0M85tH0ܑJ<8<i )sm:RԏgE7E9`i?dG \E[oѡ4`kJXtT_6QnBE[oѡ4`kJea遅eaqoBKZRѸ#4%,, g^u`o(z*%ùP}="!AQ@q8sckb"zy:OdKe ]r¹[ vsg]$0( [gslMC#!9P²²8]*\wDiÄ\`p8O[BИʥV('sM3 Ą\`,}cRȗP.Br岹AE9k*;ڽXiK\U1SC3`qGl€ס1%g0i ri1R9LޖAx4q4+V+KB$PjgE_fg`o(AE 2rJ $ݠ5/,:0 xS,}AQQBĀrJ {E,iWz w\)$,% fŰgaYY=nZIbvge `C#I Wx a(KEIY1YX $nfUV,ew0caYO,, ӥI$(k/1( ψi%a)$wAKlMC,,Z^(\V#%94NQIh$'5ʥIpQ^E1şZa7<,,Hf4._Iߖ&_i"! ndū.Ĭv 0[P+OX$_$I_~ X41iC8ŸEGTR l ؅+5-kR2H,M?BEr/,jVd'p eP! ;%oiVடJJ$Za2X0;]? U&, x⡚uv~{$2gl^JbMV|?]? ͗?5PްfEV|?]? ͗?bBDET^/,IU'pGJ͂ .iI4+bQ]Mw.>H E" ^HEu5'pAV/WBG,i~<]? Rl|HB8baYO,, az>kqdĠ(`b~%\Pj;n$%,rYfŰgp؃Oj]дIt#)au۴_.wC O jV {.\{LdG4H+7Ԏ $SŠen/M8#Mh̯0!dr,Y@>3 CXiյ|= X]% C.KД_.% Hd7 X]fe4'6Y@NNXJ_C4 cȼ, MYXpM(B)rKe +q (, P~ `$Q. R$.Ro㹫2Sa[ )Ծ8wM5"!n:%)bf8sVdG(B)rKe{ui /l`pMX*sM$E, N'N',BFW}]TxYS*zn~ׅ68xaaYX| z'v,, W}ܾ{`[mG̗?b;e_X@_o {''sִQ.ɡjLmY K="^F%eP!8<-ږ cdy6gw''Yeִ$RZn$Lj$f„$'ٰI&Y05 fWf}tY@ 0s6_R,V/)4DR=A|'{kZdģƄ$M8~L߳,K= N9~b/)L+̗?wDE]P"fO_=uzģ|I#Yu|>n#I) NX@ 0m1YP[PQNX tVe)$RZኒ$ Ve_MSY+ʡv(d¶ GE|'_wHNg3B0tɴK76 ׄz'vjMp 5L/, NgsB߳~L²"Ž`uB ԓGSa,<.)L+$N  ėz2 "ԓCL2Nb 1h$N "ԓ_1v8-l²z0,, wư)S&HvricaY`$Qюe8?D&n =-$&Hլ`C,, ~J !l^aƜTP7Y fgwjV²q2<'R5a4=A78`Ytլj$f£Ƅ\[ CcJ;icaYԓʲCL2Nb 1~{Շ5n:4DF pìbWMӬJY@L2Nb 1~fŰ;U4RఇYz;edkt(lMC J6X@Lyb=q[~1~fŰU4R{a `郑fI)X@9"^uQq f8ɆyӿH !b VlIu3c6= (0Gī.=tc:}\oӿ| $'qnp-OzeY@9"^uQ~, ~1!Wb44gb6= (0Gī.3f}<>ADQQN0`kb 1[#U_Uj$W'(5*\,|uAQ1~,N?4Za6('sM ^dBY@\1\M;6- (O0N VY57,,xxxxxxxxxxxxxxxxx,, aW͊!!W&0NckbaY[[[[[[[[[[[[[[[[[[0NckdGi h%U_U^+$(UpIKJQ%[jG(5z[HRwĕ.ioF.Q. d?𧢜5z'v,,NeM 9*ʵ*1H (͊%.) |IcX%#WHIjV3 ˢf~z~(6_Ri]Xj2EB NX/R'.ݰ8`i1' 4ahv8sgOgY9:MacN*\X@LzRGzG咰5 ~3@5_.- &cg b=|I,}aaYtլ{ȊUJ (תdwjVT&JW~R;b1Y̲Y`OZ)pX41RZaN+)i U) ˢfE6b=tլXMȕpI$b=tլȪ`r%ATkU_H1slpduB `1s4m)Y@|1r%c, ΞfE|#&J̗?& PM`$Q. i|]5+*QhZti|_PO]G(^+Q1dtl2E%6椂AF郑,}YMY@_o ,R6!BbēKFXtլ=5-ƙdIHP+XXӢOZ.WRzĕVV8,[8XJeͲwjV mI 閅eaqo„1!WbUO ˢfEUfOU=O`r%Y@L, C5M =D$ # UzE1,ட@u5L Mv²xxxxxxxxxxxxxxxxxx²fq^H[i .zfaY8_ j_)؝6NXRӢmIaWJl#؎=MVn:Bb *yF0׫Up% fll(K4R$6:h/&f.䔠W}"1׫Up% {_?ܳ{n`GDbWJ{Mv!p7{_?g , C\ M])A5\V,[tS=M5a"RQnQ. ߻sZW,,qF$lJ$n$q(A+rrDL#ķnj$ Y&(a]y_?uD$o;m Q. Ke eP!p?, ǿRk"!&` *yU`V8ұgq2?drBP\(7bkIT,avk'spմ8XbFfwO0ͪ,7H7#HJiN'QjtAb 1-Վ$AY uZb/)DWZ Ȫ) bUYvzUv5LN'qGFb wi<N iס1%{m²>T@$\v-!+,]0}DдxS>,iq>@L~wi1`kBV&AfQR/K7$\6:hE$lMC."I=]J(5)s$aP>:K!ew'fo(;0QnZC%EcqMv(5\ )oHU`%$Qj)}mJV+JX*sM,P HI}"1_dy:gwfʆ` M*% I,&НsఇY=sW 6,na8Rk„ʥi©!լ`g]էW,, a+09wkX5z,aӧW`w8R*|RkӍ$02Y@'J̗?,`r0$\M8&*B$1*JVKe F*4,`RO`}aۄc+K8Y,}qfzkլ`]էW,, )&ᚰTX05=|T%)W}tY@ 0?Y/nV+,&Ԯi\$-V'R, C|{/)DӢ[Ht9~bkwMJbHrcPj< )3M5,`]IGUb *a}tY@ 0?Y/,)3 I5*) 8fw'/,7= _ftt +X#I\JlB"1_rI4-wzس8`~ g|B=vI\4), NgsVQNڸ#lMCY/R(g{$%%FQE=AP2b:-q&;MhoѡĠ(_P {$%%FQ2dnl:Om܄KJ,&T%,)3=EB DRfOPEHdq2@7.Ɏr,kt(1( J$Y/iwJ$ J$ ˢ~y0x>bq2@^=|I#Z*|0  ),kt(1( ,na8XRJ+4-"\NKLv`P~aX͊avVOU}z²p>bs5 Ws؝6Nb pӍ$ 6%h$ E/,`RO`칫eQ|<@_oSఇY=ŮYn¬=DjE J$HHaPX@ ?Vk;7KZhi zz2լ`gjfU²~3@]zۢlBFE]P"EB ~|Bq.$\ Tc²0U4R9 )im݃MVDR2Zy0__h\""F;MS"۰fŰ;U4RU6, ö;DQ_H*TX\ f:q%!L\R²/s8`~RZi$A C˜ݳ,%BJ+B CYX1jb wpXޑRk"!^ h},,%|T%)"4-Lv!' v.4bkBVV,,ƴÀ2KR,,~w1- {~`I)дHDb *yf}tY@ 0{"XИeP!0ѨH.c ,ட@\ m~ 2KR,, qI#: 1_rI ƄM] Bk 9x(5-дXXj\V,,~&(b[pd: +X@:H0_rIX@ 09~bBN/ $d?drݯtڽ& oMV2\TkU,,f$%f Ą$zr2T,ɪXRk&4WBRJ+I%Y@7Mʲ8eM6*K!Gxa4*bQؼPQN暐 s] 7l??&kW4+ b=dU#I eP!PQNJp!nZO4+ b=dqe ˅2r2]K3Vp9 {,nz `o(auB l2"tIX@ `iE yM=A7ddY`iE ,}iT'&LY@ PSKDݢT%-,FB9|3ryPhZWt'”n.HzZaUOW,M$:4%nrIG# rIr%²˲C`;ط`$Z=&kWzY766!/zFE9k*Y,B7]!F.4 &JRXjG,),=y&Y@yCj[goHY`w Y2G0bfOMGN+Q. e|>C`$5*(͊0y32_:K!ː`kT"q9*\Sqdqe %#%9Lȕ8/soHǘE+i0!WyM!-咅eM?{Y`Q. eZh]WC`+M$akT"q9*\Sb=dU#ITkUYtz`Z4+ b=dqeV$zŘbu"J"DŽrS!IbWƬI*QQUn:bwJ", C7Y` .ARJ, )<49zkhENOGKTkU[N>'H)d#I, ,, Z)(תDXH,ட@7]!bCRJ+IE7E:M}t,$*ʵ*-V'R,M6l df8^qFb,V, CY" scNbfb;5HI׾i`$h[RRQ&=DŽrfEz!Y@L{$2(p!nZO4+ b=dqeV$zDjE/b v(5: 1_A`K3 =A7qXGlޡigH!fq$c6,chRR.?'b %#Jr2ׄ9 ↔io0_R,V,, cI&̗?& 7l{+͊BbC{ȪG/)L+p!nZO4+ b=dqe ˅2r2~͗?&,nYtY`ҊeaAK (תyŮ1y?NѵыdD~ANѵыEEV% "_ٹ?",nY `$QQNJ؎)M5,)dU,f5=ĝk v(H*?Oq=&/ "fPؒrE+rbӍ͞ Y|`$O7S!_blU~]br `\"1M>/0fY )5 *Gn>'nv %#5KQQUn:JX]?,n,CGG$ƬJLȕ# DѵыZhGAR9b 咰 4;1S8R4DcB$oi02_b²ȪI!CW͊4 ؄\rIǑ&b`$F,, 4`%\eU"/~3J4G8O˜{Y`+1!W, ,, aW͊uAGD$TkUBIea#WϮ^?O-V'R\v I*bu" ˢfźft5Mȕ, CW 8|dH!b1\Ä\b=tլrJtՉ E YY `*ʵ*-V'R, )X\v I*Y@LQQUn:bY5*„\, oU""$JK2ȀrJEW͊~3@/8#1L+S!,f rI8YcNbfb;5HI׾i`$h[RRQYHIb| U&J4 +X؝6N| (b-,n]5+"mޡipwUS+Lȕr߰fE| !W\KŊeU"t@:F+Q.{Y`%bj Uz񥛳,,]5+b#W\7&oL W`\R2KR3b MY"JyhE$\,K|3M'Bp^Ts\caɅr,,1za`&HB$,α $(תd}t,n!5*8YF!EV, CW +HH ʵ+q8Ӎ$4C/V&HX@L6!W,*K! IFEr$US𡚦$%a_P;KBEV% bFr\oF.1J`PPhZL *\S8MNKTrdaQ. I)0 '$h\hENR9bp%J2bA`B+YXKBEV%%3iQ. I)0 '$xQ. wJUXa8i%g߂ ޿DŽrpM`$F;|3rrI('smePMr~3v`߂xʵ+\, CVM`d ߌ\1S8i(,.B_,ҬD, NH }  %E=0Oߌ\$%! [H e(IXX prI(ת\/DP. c6EX[4TqxaaQ. jЊԊ 7= )zV^XUB `%$Q. & knX@7M!ֳzYX,f?`RO` `[WNд4dY5eaYX|}} z:"4-!& ТHL"p0`iږ9.虅e~0U4R&fVQNڸ#;e$ gPg), Ξ iVִxCɈ I,& EB 쬞bWMӬJYXjfUb=d1ͪ&$Q. KJI%E;լ`jfU²e? W>nN'Qj̵J7xjtq첸#؄MFzۢ,"Ȅ R+? ,":="P{a `郑#qI)pEI-߽ýiId2"! X%EN +wYX___>}>+:`|.q [Y@9FQ.Uahݷ9 ogY^TkUbN\Ią")IE~4wYX֏ء\C$,\ju²71n!)4Xqb=lBQd~ YQH咰5 ab~%Э}YMl AEV%z$ Y d'B94-:-WRrGd1gi_ C] SPla4!|3rr$"|ۜea7'l?xwK4R0!'YXRHlB$'1)/,j `[p9MSm6Yq `w8Rckbf8֓j`$]\X@LmQwVȡ,`eX#3 =A=/ִxCɈHɴK7HsZWbcI ~ؾ'QjLȕ1' ,nzFhZtZz;edb68gsRA`k7#(A +wcF/,ட@=Ϊ,caYXK KHeN i{)-)TbkbaYԓYr_w5*/BbkBV_6_R'#,nSkZn4ypaBN_wlhGѾV(É~I$²0 =A=f"}ܾt65 =}`Mߒ04NKl•?XVbس, ɬ~y`MN#J [zRb=T0H|3r+Jp$PlaMChtZb&ʜh7bwYXdV?"z2 ~fOPOfYj_) 7ıEzۢX@ Y,_ Pe1Eݱ^Y@C=5z,}ѧ,7= Rp2/)(ʥV7SYfPeWÔ[{ޜTP7XE)?w,, a|) 1.)D1!BӢ\"4 | [FQ.7#(AɅap%zkqhZtZ>,K1d7l{ j†Q.QؚЅ~3@:q`[䤺"x" M&DŽ +X/ Y fo3P ,`]͞ ~²8]F%Iuơ\>mQKn$h\IT q0!BӢ\ QKn01WZepxyfaY@_o{{$QKn0AImQKn 0QnZC%hu",#L(ZaP=,b' c`$qE) 4ׄm,RHKsM#w#0O>??+:UR!ACcJI*$TVxj{ +X؝6NԸՉ"p7{YO: % 4ׄ䤺a_HNaW咰5 +dGi , s8rIՉ!taE,n5FbMN*|^ +Xav (b[p7{'6_RieP Tc`Z\!|#IlMCRQavk(ƞ\ ־aVTW6 ׄiCY*46cWqY@_o{{$rIؚ01 fWf}bYU\?"^tk_@gSkJg-*ʵ*׾aVTWH[T$,[tV=5!'4Up^ak)YUBi Y:+{E"WR*t#tqjD㯤4Z,_ P;mDq[ [ 71ˊ* %Jb1Eݱ~dV|N#*Qj$|I# b+%)BӢؚЅ*|KRP.B#*daY~fWɣ.$咐\E$lMCHNP ,n5 WlI}ؚT7,H ز5@1U[;mDqE)taE8H5MдF/)C_TPg), b'%d~ ({GXE+@:Y@Y f6N 4-&4 "%, C] SPlaMCV/\acN*|ۜe16;@` `KI,\juX@C=~3@*-PʥV[,\juŸ[Sa[ WǢ} 6!zpl\vA Wc_ewb'6_R>HL(Z,pì gum[0!WD*K]qY@_o {/)V+)-)T, *Zk|AJfŰ;:YcaY{~RC7aBN8`s6_>by!&$[Tz `MNKLȕ#&Koլ`gv,, a:}`KNK Mp~R0!'Y@ 0ii9b[p~fOPOfGkZtZQjLȕ,Wf}tl}/ $߯l"aRBRdy=Ol3 =A=/ii9~D1!W"^ұNa2KR, &R)9-$%, N9~b;s X,ndV|DE刹vҸzUv5L,}0ߌ\⊒$[{1\bGĀϱqowYVbձ;E=/ДB\7,@VdͲ)AN0.YV G+8,`! w~grpiY8yz;e;e[NP(תLX@L2N,| *ʵ*Y@yGDiVtxa1IUHQƕ&R+( Tc `apjCS5zNӭqSX؆\j2bEZ@`+J;w ԊұmȥVh9 k_@gS{$n:Bݢ\2a1a)-͵) n:4 B0OEVeǕqɹ[Úe8?D/` O jV {!zX@`=^X@Ly `w8%ftՉW-$%, N'Y@9KFXY[v(5$Z%j ڕ ɟY/, C7Ib#*ѸAjz՘"-ƕe85z#I\-iv!&Hq%)S?u `WF]sO78O, COמ{ڳzz?]{S[kb=USSIK„rwZI SIPla 뱛L&2(SX$LvDex(b&X@LnRU=dGTqɃԊE)5h((QI(é!,7P)u P. +!Zq8/9 ( YU\?-$T$h΋j3 7q &KrIx {ub=q[iǘ~-̧rjHԿ^ǘ~?^X@VMYXi-i82~}Ȫ8[2^Xtm>?^./|?_.oq~r6gaY8CFvlZP`;ܛ$(&#a:V:Jݻw1Wcӎos߰6k"ڔ|x,y:ga?b#ׅqE`\IeQ O09wkز~3v&KJlC.Bq@S[khR7:!lMCݷ9 oXT>O *4rBG,,yzɹ[ÖL 09wkX5v|5@1޳(XH زav PT>gjxaEZ\ Y USHNJ˜{L Y@&, ,, aSB/N NQn.-$*3b MoF.qIXXOzq8_3 ˢX_&n kkذɹ[ä`pMX@_o HW n$zz!w Ks\V%)'Ȋ=EdӢmII]4 'Y* %"EVtzlBI6zYX%&v4#jG-t²ȊUqDjE(ת\/djXl5H<-ږqbUq2l O%,% WcQ>(!*`(KEIqiѧ, ö;pO +*vZ(5iH,,_e$a@EV% e$%(rJ4Nj xZ-g/Krxg\k7e$72$,, w8?d[_Ǘ6dI %iѶ0H= KU8_*N=ӢmIa(KEIxwrGDݢvrJPQjtAiѶX@dUL3kӢmIa(KEI|BVv`OX0 rJtՉ )dUm8KӢmI8`ϟY@6{B9Ku|/HJ0#JIYX_)dUm-V'R[TkU&h%iѶX@ (ɕ[lMC, {#ߔzqLl sp؞v(5&yӢmY/_2?9ܭa&n  5lY@ ]5-lBU`1EXh[R,_ PrIߔrIxjtq ӊ{u&,`RO`zkPg),n_*ֻdDRJ+X \nZ,H (|@G$m8/9ZaB\P "]iE(תL>/_2?7hcWY )=Ā,UqXE ItՉZ Wb{XE I<-ږmKtk_@V4I&<-ږT$,EUr0$af8vմSSa[ Ȫ) KVeb=d]ѧVQBU@i 713Sb=tլ  Mn4 *\!Sʮ)F⛑K\% (0+7eqGlMCݷ9 ¾~015a|T%)ũY^HfEh49 ڕ3b夺kpUqS<̱$%x b *Tڡ\63^+akhe6H$&$TkU,,i;,*nL kyQQ1yffjOH0otɎdWY ) pQE - XXHn1\2aE̠6$ZRQ 5-:-WRz\;i܂X@_o`;v( ^fAx #'5ηs}W%DŽrJ,s^8ɢ2S!`-$JpKZPް,=Sf* )~Zw`:+笞bu5MS, jV {=Ai`Zb 1 z$aJ",nAfO,lJ+„r3 =AUP2[0eaqJV+K\N[̃RiiG#5Jfek'[ i[0QnZC%Jgġ<(eH"P.1NgġE`)qs¢"PnD`3 b=4_I0JRH4ggO,XӢrDIV+&kW&,, .iҬD('sm_񴐘 )4 &4 j²I=*JVH,FyP~KPdY5eaYX| 2KR*•.i²:S/=2ȀI*•.i?Ǥ*YEԊp^Ts|I?&Wb" &n M5\ˠB.IzI`&H\, - 6%Jdb}86 ׄdbz UHeP,RHlAݶtI)X@VMJ bLJ;̃RJJ$Z+1!W>#-A)C Ʌr oF.)&kW&#:VGVH(_HI<#VMB# Fi '$JqMj>,bŗq:yz{{a ʵ+&ܰi_S|>{L(׮LX@Lf 5 A)C i'B94-A)C cE̠ː0\2A3,n1=5-:-G̵-%%Ҹ# bGţyh0. \vZI4-&e~ >O݃=\;RQ@:쯤4F\D7, Y|y²~3@:؝2NbРv )zV< SIhF' !-lqƠ!N$W}]T={7c6xa,?/R'.#I;icq2<'E%*\ =Au5L\pJo#R PT~? I2%[ TWRЈᤕD1q²XPn/\1 ڕXRnYXE5ll 8gjدnr翃͂ /\%XRnXO?@` `2H\/d}t#I\%x,`spҟY ʧXӢr\;i܂X*JVmU$ʡԘ??,,]5+;r%̗A\BQ. W ˢf&n M5\ˠB.IzI`(Y@Zldb}86 ׄcXY1YIP(7, jVdr% HLd(7#&%%[0JRxV+FqG|Eb9x(54/\GsMh$.v(5 ʵ+ɅrψCFb)qs9H.pJ X] g~ɹ[)$\΋jb=4_I0JRH4ggO,XӢr\;i܂PR";,`ROἨ,ட@W͊/F| Fb~XBy²~I,}/[8#Mhp,,N5Ki, hLI\8iKBE9k㎸S MBy3\E8·`dV(QDiVՅG 咰!)I<α cYXl^\*\zFZYDqHmKQ.acF•7?&,,EHDIDb1Ygy5\;KP. bu"ńrfa-²8(Q|T%)TMc:ßq_~A$rI+4 pJR!Aԋe(Qe%o؎VĒpb=dUҔFx$dE;YqɃ3 ȞP2bBSG'p>K_h\i ;b1Y>',}7Qn!1_R,VhRR.Y@ } rjg.|fwOnl `o(1,T5$K*gpΦI+ |I,}ANhcaYX|}} 4f P;YĶ GEWMg8sv "4%bi 1{j²-K4ŠPjK}ܲ,,N&A8•咰5 "l^\ԆE#1׫Up%6mKEQ. [I<5:ğ噅eכjtZ{{$;iC0׫Up%6 PMHbEӉF;(}ܾg1zS5 +BO,*K!e4}fJJ\bu"i WR$'Y/R'.X4 qGOsRA`kdlִ5$K*YX %ؘ Ie(5*/)L wJHfH$984 A4.o%#,ԎȄeХjY`=}">HreP,7= 8gwO0)u$'G\GBs?Ol%xH̗A=qH$9fOYe,`]ұgq2|;Ol%ޕ/zF>Hr͞o*X05 cdy6Ol%Q/zF>Hr͞o*XXH\"-%aIQTbkBP. sRAݰ,zS׾.Tk`$1_(ENN'FP;j\qb=KMlBИsRAV'RؚЅa+Zj+}MŠX-DjEՉ"4&4xZ-)pO7,J_J0׫Up%6JEےԎXXGln0م)J9npE)lMCŠF4-:j¢v &SV8㎿4gE\E`*X@_o {'qdY]?~ 0 'Q/ $U0θ#jrI*㈅ePM gy}=D%yF;-'sZWvLl""lBX/R(}ѧ5ĆQ.Q*t-ll8Irr( .*Y@_o`;7\kBXHnt#)AE`qGUSfU C] SPla:4ƜTP7ŠݻosE_U N'Y@~?߽ÙƜTP7Չ!T%J|n>l ԓ2Ŵ,o3DQ. sRA`kBV²jwC΃4ڡn>Hrq,`]qavkoy6gwzSox$rIؘ W:BV²k€i]XJP. E/t^+1h[RhԸ[E_oYqgכjv@:, N=~Š\KLv!' Ʌr, `ɕ[taE, N?Y~5 +•9.%Jw̗A%,WPDjE,`]A`}ӉF;a  "Վ$AY@_o # ߿gwz|T+lMC.w"A I}f0̮` `}/zF5 +bE`LgU!Xr%]Xш KoH~}f,, drJT4.+>HE\@:F'"J|T%)4DX@ 8O`OB%)B`S#%)BX@7M`,,ட@\`Ki$²s-M5ahTt4$ɹ[C&n kˠPjWs4JO*4_Y=-8RfBƕ.iY ) =A~TP2Qci岹A1WrD$qz`ON0. ^B(5Jbp%tI+Sa[Eĸ~qTN;\ˠY*JViP$T& 0'eY5eaYIc`OF'Dp, Cgy `OF'kP/n!Q4FtZ XXEԊ04 *:DJ0 Tq}RY@&, ,,uuU`r0$\Z2ǥdYU渔D咰VbiF,X@f, K3Sa6lqj%h$ t_DjEq)YX .#gZK`dqI4G#LӠkRx"K$i%*9glnD7Ah$ HvY"MY@e4ewfGh$ ˢp؃&;MhGCӐB`$ ',Y1YXpO,, oXeW`$qҸ#(I‘Mߌ;beQeW1v8-l& {$+Jp$o$f==Sl]b=l;e%I8 SIPl!fߏ0=@Ll S(!הKiZtD%_P6VQ""KBѸ`5@5, CV"bHŹDjE(ZqAXH@5, CӬbWY ) k_@7M &kj²~MGSI-(I‘XXK<4 JdS4 ix+JpOulB#$W>,&0j`pM#IaEIb?9@_o {{$rI/ $|T%)Pg)\%I8gpd"P2"P{ ʛ\(I‘X]?O6ZXXdWӵ(Z= Ȫ)]H$(I‘XX___Ì\EB X*sM*€r2TbkbaYX|}} ;HHaPPjT&lMC,,,Yb=dU, ՏD$,&LpׄX/Rd؝2AE߂T~fuB8]`o(1!RN fO4X@]`#: IKEB "iV sWeVR -7·$Jf1ER, ,,E9/Rd޳:K!efjdEysOv Ke W)p7{EvXdy:OjWᑰT0qn:bUȮocW"ۀ4x*ub=lF#Y@VMB²kc *T+yQͱ!wK49 ˢ7o؎ I\k\/dכ}t$̗An^A`,`]J>H*VjtA"f+3 =A_o*xCɈ;USNH.caY[[[[[[[[[[[[[[[[[[eaY{ѳ,Tz/k]˚eaq$lu7FA pPK~W!W:aaY{?v|M]"oPl߯Y{?V -6t"oнe_1وNKi7Ϟt,-\5 "zEv E>놧T_ϰ톧E>vS"zM޳/]?rgaYn 71ˊ{ub=d[V= Rp7{r k_>nٻY05 ־}Fw?5@1vUD4cEZ@/ zM '_.aaY˟׾}6f,[f,WcQ>ef8vմSSa[ W ־}6f,׾} ( p,}W3HG,5 7cUY@|^A&ӌ +Xn gij²/\e),}= )6zc>'Э}W3Э}l2XqX]?r²'lɹ[C, ~ `KʛR$.R[ )_Sof5=kRbu"b=lc}t\|?,b^K KjâXMffjk{$B)r )tՉ 7U=EB s] -☲_P۹2G4-%aH\$X@'Yt4V RAbXREB i W-I%akBi1%)b}jLY@_o # )sUط%)7 &ᚰ Iq1z~շ9 ˢ\> ǮfYHUp^\q{ub=d[V= 7]i O*cw,,}.韺|Y@~faY!-_󞅯3lb_P|m7n}G(ƮS׾_?L ( Э}~L3pOe_~a2X@W3E~3@jZ) -tk_&ӌE/i"-`Wq_X@_o = , Ug Ez k_&ӌ +Xn d,\e),[_?i ûY`=X@W3Э}~L3(}{'lfO_X{MSgjxa4cjbǭX@ }RzۢX0 ew'/b1jb 1[j, IۜeM㋯jnxb_X_|0f,7Y k="^tk_&ӌ[_?ѳ:Ka'P+Xn ǭ}j²/:]?# brsI/~`~ d@:zНP@:Y@B"cjxa4c_Wq_X@_o +НY@_o  mfw,}~Hi ocWM>e1Eݱ_[_?g'\5 {x1e1Eݱ/(}%+zSa[ uonZ,RHY >~d ,[qw?5@1vUa2X@Pn d~YXSʮ) (Y@y1t/?{@_?|,(Ƣ}qiѧ, ö;XЭ}~L3p,}~Hi 0'0龰n^A4c ,[|0f, ,,qnxIbk†Q.YqSa[ }| C5 zfO_>^X@Lm_|b=d[V= t_$4), < MGJlC.bi1˚{~`Ha Ou pQ&WBpeIJY@Lɬ"}~-J\ҒBiV89~{j{d1&穯XX}D$,& EB !;W;²_[Pg),n_lq6, ö;02HY|)by:g1&穯X@ o(EK*4_X@/{ub=LfEY@ ?Ux$41wJv{~`HLtd|)= WǾq օn5 qؘ 7l{SarvӌqsSarŗ"_ q:rIŠP(i= 09Oi|B=vs?gw'Rd, {pO,qȢ`rְeft{~`z[P " =A7u=a}]OSᡚF3(yhR, N= {adRw8]qyFY ', < 7߳z6CYbew) "zr8`>Rw8rI8x"FЅ%,nד, s%B q"z1&穯X]?z²̊* NX1b尤ܬBV Q4X]zVXB4G#n: L,,zV`r0龰~3@:/sSarL L/,_(XO09wkزɹ[C&n k؎({Ei[0̮`w*,_ /,H ز~`}t\:K8{ұbi12g1&穯XL ,`RO`j²4;@_o {09wkXɹ[Ö{~`z[0'f ,lY &i7X@VMYX_|xa2X@_o = Hg8}Y~fO_>tk_|5c_>ft= 5L/, < t_X Ǐ,)>~|; 7U Tcb=lcaY?qocuWzۢX@L~wӪg,͞, C] SPl!f߳b f }meaӿ+QG8bao?=,,,bwfy:̪eao?=,b09wkXXE I,1ZZa@Go$ GbjxaI= X,Γ"fsI.ve9&R+B|3rIh9 5lYܭawcI=u=91GczY@zczfYY@_o`=,n{&Ôq `HTZI = Y@_o`=,7\e_ހS0(b[p7{u=aI= XI=- t_X@VMYXaxɹ[ä`[Ly&HZak\h*q,*K!e1Γ"f{8OE09wkX,nRzŸf}j,`RO`&&USE\,`rְG,t#)Aݢ5$ Gb~ Yܤq,&, {bftkUS YX V;DjAQ`aYnP¢}?6椂AV?I *(*aY=(p%Wlpd(p yi1_R,V J$,b7?@xB)rsuhĢ.FQ.J,sqb (7K<(]Pl2^xAEےV+,?.R,.6QnZC%.R,,Eub ('sMHJi.Eeqzb KJi^8buӡ?@ D0F%]5,YQ]eXJIQKnXUu5=@ ]A>?cB8lMC_ ,8eXEV%z$,nY}b (תDXH5,*. ITkU[NXԾ(-\l P+s4.4X*sM)/]vb kB$ .R)dڥ[$\4aA)C $,&f(p;e$\$0( whm,tS-\ M5%XR[z 8PUmPl6,&YmPlaنչPle,&ٹPlaeaqFwďH &yӢmIwD8JXXU(pϱmᆒ_XdUL_؞,*ζ_`bu"EEVeơ\mK`G nƗI& &2RQ,,ZXO%²(.Ϩ(ת$xZ-)~؞؞  ᛑKѳ,,nC"HJXX_XP}={lMo,6U6P}={{$qI%F;tՉE9@  5K,&z?K.V/\"P}=,,,~]׳T_p;E]?@ N".EVgx?@e%gx`/Џ#>xi(Lv9>}P}=Ҷ?B""zG/"'TXtմT_6!*8wUv> I\$0( (5*\!YVG(+ŗP}=ǿ7e$ +q Og'n! [&WbU,+P}=?؄$JBEV%mQwavջ˟,j_gئ]lImX4UP>nP}=6wkM"im~bT_ϰMݟlBv%>ng5 !}$}f3VQUn:bP}=>n}`Up^\[CM²jV%iѶX@/6!Ġ(i|9@{kBѸ`"C,% QQUIh[R,,b{`?8gsRA`k7#(A +wcF/,ட@=Ϊ,caYXK KHeN i{)-)TbkQT de$TU5 @f}P9zʣfQe2ad@:3@m5A@Ld !"'@22**d$&"!M@*Jr; TDPAT - patch file for TurboDOS / XMODEM ; uses COMM port ; ; EDITED: 07/14/84 SFK ; BASE EQU 100H ;start of TPA ; PORT EQU 0 ;0=modem port, 1=console port ; ;------------------------------------------------------------------- ; ; Jump table: The jump table must be in exactly the same sequence ; as the one in XMODEM. Note the ORG of 103H - This jump table has ; no jump to BEGIN. ; ORG BASE+3 ;start after JMP BEGIN ; if port CONOUT: JMP 0000 ;console out vector (MUST BE JMP 0 IF NOT IMPLEM.) else CONOUT: JMP COUT endif PMINIT: JMP MINIT ;initialize whatever has to be (or do RET) PUNINIT:JMP UNINIT ;undo whatever MINIT did (or RET) PSENDR: JMP SENDR ;send data byte on stack (POP PSW / OUT) PCAROK: JMP CAROK ;test for carrier. RET Z=ok, NZ=no carrier PMDIN: JMP MDIN ;receive data byte PGETCHR:JMP GETCHR ;must point to a RET PRCVRDY:JMP RCVRDY ;check receive ready RET Z=ready PSNDRDY:JMP SNDRDY ;check send ready RET Z=ready PSPEED: JMP SPEED ;get speed factor in ACC PSPARE1:JMP SPARE ;3 jumps for custom routines PSPARE2:JMP SPARE PSPARE3:JMP SPARE ; ;----------------------------------------------------------------------- ; GETCHR: ;no garbage collection done SPARE: ;for later use RET MINIT: mvi c,41 ;turn off ^@ via a user-defined func mvi b,0 mvi h,92h mvi l,0 jmp 50h ; UNINIT: mvi c,41 ;re-enable ^@ mvi b,0 mvi h,92h mvi l,1 jmp 50h ; ; SNDRDY - check if ready to send ; SNDRDY: xra a ;assume always ready ret ; if not port COUT: push b push d push h mvi d,1 jmp go endif ; ; SENDR - send character ; SENDR: pop psw push b push d push h mov e,a mvi d,port go: mvi c,36 call 50h pop h pop d pop b ret ; ; RCVRDY - check receive ready ; RET with Z = character available. ; return error code in A ; RCVRDY: push b push d push h mvi c,34 mvi d,port call 50h pop h pop d pop b ora a jnz rdy mvi a,0afh rdy equ $-1 ora a ret ; ; MDIN - receive a character (GETCHR is identical) ; MDIN: push b push d push h mvi c,35 mvi d,port call 50h pop h pop d pop b ret ; ; SPEED - This routine returns the speed code. ; 0=110, 1=300, 2=450, 3=600, 4=710, 5=1200 ; Load your speed byte from low memory, or ; simply MVI A,n and RET for default speed only ; ; the following will work correctly for 300 and 1200: ; SPEED: push b push d push h mvi c,38 mvi d,port call 50h lxi h,table ani 0fh add l mov l,a mvi a,0 adc h mov h,a mov a,m pop h pop d pop b ret ; ; table for baud rates (110,300,600,1200,2400,4800,9600,19200) ; invalid entries return 110 baud ; table: db 0,0,0,0,0,1,3,5,0,0,6,0,7,0,8,9 ; ; CAROK - check for presence of carrier. ; RET with Z = carrier on ; CAROK: push b push d push h mvi c,40 call 50h pop h pop d pop b xri 20h ani 20h RET END  mvi d,port call 50h pop h pop XM-TD (XMODEM-SENECA v2.xx) as of 11/21/84 This is all you need to get XMODEM running under TurboDOS. It will assemble for a "standard" setup with port 0 being the modem and port 1 being the console. the files: XMODEM.AQM (squeezed) source file for XMODEM. No real need to change this (except if you have a single LASTCALR file) TDPAT.ASM the patch file to overlay XMODEM with FREESP.REL free space calculator XMODEM expects to be able to call a user defined function (T-41) with H=91H and return the caller's access level. (Later, this function will be rewritten to return more than just 6 bytes of data and 122 bytes of trash). XMODEM will look for a file LASTCALR.nnn where nnn is the station number, zero filled. For example, LASTCALR.001 on the first slave, or LASTCALR.000 in a single user system. SYSLIB is presently required to produce XMODEM.COM. The following sequence must be followed to the letter: 0A}rmac xmodem $szpz ... 0A}link xmodem,freesp,syslib[s] ... 0A}mac tdpat $szpz ... then use MDMLNK (self explanatory) to combine XMODEM.COM and TDPAT.HEX. NOTE: there may (well, WILL...) be LINK error messages. best to ignore them as they don't do any harm. I don't know if I will clean up XMODEM further so that you don't have to use 2 assemblers to make XMODEM. Either way, I have included XMODEM>COM which is generated from the files in this LBR. h FREESP.REL free space calculator XMODEM expects to be able to call a user defined function (T-41) with H=91H an*C+6Kèp*[A~***)&.P)&.PR_$P"Pm>#P&P!o>g~ (P !9"1 )P: 2@ {3 2i2h. XMODEM-TD-SENECA v2.1 !^~P«+~R2k##~CʸûC»:]R2R:]2jR:R.Checksum enabled.(CRC is enabled). LRVS. ++ Examples of valid options: ++. (Uploads files to A!.:)  XMODEM L PRINT.LBR PRINT.INF to send a file from a library XMODEM L CATALOG CAT2.OBJ (.LBR extent may be omitted) XMODEM S FILENAME.TYP to send a file XMODEM R (or RC) FILENAME.TYP to receive a file XMODEM RP (or RPC) FILENAME.TYP to receive in a private area (The "C" in RC or RPC receives via checksum rather than CRC) NOTE: L option for MEMBERS only$F:jLĀ ͱ d5H 2^# 6 :RO J \ :jLE*c|H+"c>ͷ\ HF>2\:kj>2\!e>C®#>O®#>M®.Auto-renaming file to ".OBJ" !e6O#6B#6J.File will be received on :k:o:hA:n:k:q:i:p&o.: 6 .File open - ready to receive ͤ:ͳ  ( !F͛K͛Q#͏"l~!q#: `!]~ ++ No file name requested ++$ ~?ʰ*ʰ#Ÿ++ Wild-card options are not valid ++$͏"l:kq!X>2W~@Af2W#~:R^02\#~:,:\f~^&2\#~:f:jR:\G:W:\GLf_ :W_q0f:++ Improper drive/user combination ++$}~!#Ï#~ ɯ2^2]*ڀ̓ʓʨCʨʨ7*:R>:_>>Cͷ:^<2^ ڨ>C2Rè . ++ RECEIVED FILE CANCELLED ++R++ UNFINISHED FILE DELETED ++$\<++ Can't delete received file ++$:]Ž2_*ڀ̓W*ڀ̓/ʵz2eͪ*s*ڀ̓w#:RQ*ڀ̓:eG:f <“ *ڀ̓ ä>ͷ>ͷ:fͷ:f/ͷͪ*s~ͷ#@ yͷzͷ{ͷ *l \ :^<2^ ++ SEND FILE CANCELLED ++$1*Җ >ͷ*ң > ͷ++ XMODEM21 ABORTED ++$*f#"f*| >2Q. Record # *f(.H2Q=\<++ File exists, use a different name ++$2h2|\<++ Error: can't make file - directory may be full? ++$#\*}"c|++ No file with that name ++$2h2|\< :jL‘ . ++ No library file with that name ++ :] :^ :f‘ C ++ File is not for distribution, sorry ++$:jL9 \*"U!~ʍ ++ Library directory invalid? ++$ > #i #’ V#~i #~#i !~ #  #´ ^#V"`#^#V+"c*`"}22|\!{ #  A|ʬ *U|$ ++ File not found in library ++$+"U\!Aì !g~# M{ +~O{ +~C{ ++ Can't Send a .COM File ++$:@ *c|€ }QҀ .File open: *c:jL« #. ((.H) records Send time: _!Y ~*cͱ "q&. mins, !` _~ &. secs at !g _ . bps To cancel: use CTL-X  0J0( 110$300$450$600$710$1200$ +++ File is too large for nonmembers +++ $O)| g}oµ G\l& }o|g>o\<++ Can't close file ++$  |{0|}:u=2uL*s"s:r7\ʊ=ʙ++ File read error ++$! yʟX>2ry2u!5"s5*s"s:u<2u:uO\! 2u!"sͷ++ Error writing file ++$.GR774_7ͳO ͫa*|ʝ>2Q. ++ Carrier lost in XMODEM ++ :jRRA x¯ͳO _ý*Cʓ ʓ >C2R*l>]ͥ2|2h:jL"l!e~ ʗLH#~BH#~RH*l2Aåf~!#2}ւG:G++ Invalid library name ++$. ++ No library member file requested ++ !e6L#6B#6R%~!. y ґ #çy ҹ>  _:QKƐ'@'s.  . :h_\:i_K*~#;/Q:kK :k\~#dáLASTCALR000)**}|!"*{z*: _v!͐*#"*"ø*"!"**}>*#"ɯ22!""vâ>2 |k O:mk2_y2n O:o|2mLOG SYS5À**}|i!"*{z[*:2 _!͐U*#"*"*"!"**}>*#"ɯ22!""?>25!"< NO DIR SPACE: LOG$!"*}+"*}+"r**}|b!"*{zT*: _"͐@*#"*" DISK FULL: LOG$!"**#"#}͐0:q> :\¯<@ >>:jL!A S> !] S:jL >  ͤa > a,>  '.>0&o : |1{0~#S*}m">a:ʅ _͐< CANNOT CLOSE LOG$!"SO*SyO}o|g|g}!o¼"Sͳͳ*ST]*S|>_P===). Free upload space :͒.k 2ZE>2Zd[ [0͆e ]yz:Zz> ͆ɯ2Zy0͆w#Ø'ͻͻdͻ ͻ}0,}o|g ý}o|gy> ,y0,d 0, _y""> ,{y0,{O*. ; AA!9"12͟ MDMLNK v1.00 (c) ESKAY 03-26-84 Enter INPUT file name : >͖;͟ Enter name of .HEX file : >͖;͟ Enter OUTPUT file name : >͖:;"ªx* w# ":<2͟ INPUT FILE LOADED. *|g.""ºx;* w# ."!%"͊z |ͩB͟ CKSUM ERROR IN HEX FILE ͩ*wK*~:#ͩOͩWͩ_ͩ"~AڱO#~AG#͟ HEX FILE LOADED ^Œ":=2*~# "͂t S:͌^͟ FINISHED - RETURNING TO CP/M ͟ CANNOT CLOSE OUTFILE ͟ WRITE ERROR ͟ DIRECTORY FULL??? ͟ INPUT͟ HEX͟ file NOT FOUND - aborting. *MDMLNK $$$>22$կ~#:,B!B~FAA<2#~:C?2#~:CG~#:60 OxGx 2C~:J#~,U!m >?Z:G:O>͇~.#͇`ͧ`Ͳʧ*™>?Û#‡Ͳ#ß> §~F!=_.:;,<>ɾ>>>>>@!$Q-# ͛# ͛>v>ɯ>>>e2d !~#o|g6:dʖ!~ʖFw#É!:ͥ~#    êê êyʪ êyG>GO> *ê **** * *>^*@*O*. 9a{_HZW{HpW{r# x{͛H ͤ Hͤ|µ}~# xµ ~+ xÿ!$.