IMD 1.16: 31/05/2007 20:26:59 FOGCPM.136 --FOGCPM136MEX114 COM MEX114 COM@-08-00 86 MEX11DOCTOCMEX11DOCWQ  !"#$%&'()*+,-MEX11DOCWQ ./0123456789:;<=MEX11DOCWQ >?@ABCDEFGHIJKLMMEX11DOCWQ .NOPQRS-CPM136 DOCREAD114 ME /TUVWXYBUFFERS DOCZ[\]MEX HLP^_`abcdefghijklmMEX HLPnopqrstuvwxyz{|}MEX HLP~MEX HLPMEX-EASYDOC3MEX-EASYFIXMEX-OVLYBUG This is the disk name. üT(   ï 0IÂQ4NúF$t0I0I `GGGGGX;> ((ABDEKLQRSTVX <<MEX HLPINI.MEXSRTELMABDEKLQRSTVXABDEKLQRSTVX0I++0I un-installed ++ ͯ 0I ++ Dialing overlay ͵ ,R2 y7! J~#fo> IIOH0IVIVV4V/PVXJ5 5W<y ʫG ʂQ ʔIc=Y=P{H͹G H{H<ʪW<ʫGùG!]͋JDM xt!9"\1\mSk*U G)!2Y:6X* "w 1\͋S0I MEX (Modem Executive) V1.14 *4X|-0IClone Level H͞G0I(for aid, type HELP or "?") Copyright (C) 1984, 1985 by NightOwl Software, Inc. }wP!F:Z#ʩ~ ʔx29Z{J:4 >2W2W!p " Z!Ä:W0I [TERM file open] 2W͏G1\!HSP2X ͪW!W~65:W1,R0I=READ aborted 29Z!W:9 /V͈I=!AHͿH>>HHX͂QX.  ʅ: o͏G͖ڒ͖ґ:W:; :X*½͌V:W2W* ZI" Z:W2W4V!y s":W2W͘J.í.͖0I=++ Unknown Command ++ $0I=++ Argument error ++ $=0I=++ Syntax Error +++ AI2W2W,R0I =READ parameter error: line #*:XH4V¨" Z7G~#ͶH xʨ~" Z!W~w~#foѷxÚ ȷ*R ͋J"YͷW͋J"YG:T 怰2T ɿAL .BEL*BY6JCOLfCA^CAL^CLLCPSJCLONŇDEU!DIA[DIDSL>EREXISJGLOBA-HELI KEـ"KEYӀ"LOA"LO{PHONPREFI4REAGREΈSAV"#SENDOU\SEG!SLEESSEWSTA$SUFFI=SYSTESJTER>TERM>TYPAWR!OFNOYEPOK|.PRINg.WAIu.͞VG! ~6H ͒ͪWI5w: ʯ ͞*W >2_X* Z"gX:W2iX!"dX2fX=27X4V'4Vғ:fX4,R#n͟¨͌V͇ͥ͹> J>*J~27X>27X!jX~Vͥ͟!fX~6t0IDialing: :7Xn>b|0I: Try #*dXH H>bo&<)~#foJ0I Connected @2X:O0I :_X: -?:: -?O*dX+|-?0IAny key to enter terminal mode...ͪW-?H t ¯-?0IBUSY Â0INO ANSWER Â0IABORTED ,R0IMODEM ERROR 0INO RING 0INO DIALTONE ͏0I Enter choice or phone number (ret key quits): X͂Q:X^:fX4͌VIVډͪV*dX^P*dX#"dX*gX" Z:iX2WÂ> J0IALDS #: 2X4V:Wʏ͇4V͹!< ~6w0I not found7vV͹J4VD͇|!*:7Xw! !jX{Jͭ:jX#V-V!ͼ$!jX {J͇|-F>27X4V/P427X*bX:8 O͚W ˜͞GxžG:W70I[phone library empty] ~ A!< :W x0I Phone Number Library x͞G0I| ͟I0I =͟I:W5:< > H~O#+ɯ29X:8 O*bX!+ k sS:9XF+Nwy#xͪIV =?̓V Ž!jX6 #°!jX*bX:8 O >+J 7~͟#~# Hb?# 0I =++ Phone library full ++ 7ɯ!>28X:Wʄ0I=--> Illegal STMT in line *:XH͞GH,R7YVY œ!({JND 0I READ active >2W!T ~w!":X8Z*]X^PZN29Z" Z:W2W>2>X4V?+!>X~4!8X454< Op#s#r:8X7 MEX* Z IV{B͌V}#͌VMB ?!>X?_!?X:+ *w z!\"w 2, " 226X\V ::*4X#"4X>26X*XiUͷW®DM!\5<"4X);ͪV0IZZzzz...|H+ ͒ͪW: 2XP2YX!\͡JͿKKL:Y_PX!\͡JͿK:] 4P< 0I Erasing: >K:XVn0I Ok? ͳHYn0I NOT v͞GP0IErased 0I Available commands: !I0I Single char commands: T,E,L,R,S Secondary options: A,B,D,E,K,L,Q,R,S,T,V,X :/ c:W̺4V*X#~#foڔ4V?U͌V4V40I Help is available for: ~͞G*X###͖Ҕ0I No help available0I for "~ ##HÇ*X"X>!Js#r!P2Xr͑*XGG!b  {JND *X#0I Help file format error! 7F:o # >2WP*XPP!7>2XX!\"X͡JͿK:X` *XP%H ͪW̹G : Kr¥Ñ:XA:X*XP0I ++ Done ++ 0I=++ Illegal file name ++ 7 7͞GB:W0I[ANY KEY]͹G0I : O:X *X###I* Z++!Y͡J!X~#\!Y[~!YN!Y[~<\w~#~\w~P< YP pw!XpU: <2YL5! 45ʐ*X !X *X : 0I =** Reply: ** G 4: O<oH͌ }ÂN # 7?q ~4G:( x? :_  2WHC U y=7?͌HI  : G7H> 7ͪW705 5q 0I =+++ SENDOUT aborted +++ 70I =++ SEND failed ++ 7!XpU~# ~}:- * N#!B[pUF{J0I=++ File: *XI0I not found ++ 74! PP: Xw.":Wʞ!0I Delete APPEND file (y/n) ?ͩH͞GYʞ!0INOT deleted ;DErasing: YP2W2W2W2W.":W!0IFile empty; X!;DClosing: :F:W!O"ͳ!YP<7?0I++ TERM file close error ++ 7:W0I=++ No File Open ++ <*X"Xn":WG*X{J"Xͳ!7ͶHF#w"7: 2X4VҔ":Wʺ#̓V2XG͑@·"0IIllegal key name7vV*X|".M*X#pU6x:Xv#ͦ#W#*X#v#͒#N+:Xwi#$U>2W>2X͘$#*`XG##2W);*$U!D$>2W=2X*`XG>H$:X;<);:X*Xw#N +"X*X}o|g"X:Xͦ#T] *X "X"X͠#͠#G͠#–#É#~#*X457#N+ ë#*X~#0I ~#H>=H#͞G##F##~##>"H^$ H>^H@HHH!$9$\ND !$9$ ::\V!e`$0IUnknown file type7u$ D$~#fo"`XPHNKEY"PHNKEY#!X" Z2W6Dұ$);7ʬ$ ʤ$ w#:W<2W¤$* "W" !W~6$P*W|" !"W: 2X!G4VI''͖5%!'>^#V#N#F#͖1%=%44VI% 4mVͲ&^#V#F#N#fig%454'f%/n%/!|%x%!%AION OFFڍ% 4Ͳ&~#foښ%w~H>HH H#I#%͞VG!~xͲ&^#V#F%##o&xSPH͟I:W%*X"X0IBatch filename buffer: :$ !USPH0I names!&"&:XW!XH&*X*) !XH&͞G*&͟I"&0I buffer: Size=N#F#bkePH>G0IUsed: ~#foePH^P>$G0IFree: HCAPKEY͟I H0I -- Misc: --!'I&!'I'!(I'!(I͞G0I -- Switches --0I -- Characters --0I -- Values --0ISet to read-onlyU'e'u'&!);%>Â''!,%>Â''!,% >!y”'͞GÙ'>)G'7͚W«'J „'';%(%(%&BUFFE%BUFFER%TER@SWITCU'CHAe'VAu'BAKFILm)BELO)CAPTURŧ+CHECKSUͩ)CI)CRË)DEBUǙ*DECIMAk+ERRI!*EXCLUDŷ*EXTEN+FILTE]*HEM+INITFIL*L1)LIS{*PRECH+QUEUʼn+RU)SILEN*SODELA+SPLI/+TA,WTECH?*XLIN*XO)CANCE:,ESp,SEU,TRIGGE,ALERr-CLOC0-REPLً,RETR,RTIMQ-PAGŴ-SEARCȓ-WCHA,WECHϬ,WLIN-RUB: bs-to-rub conversn..LF: T-file linefd apnd...BELL: console bell....... BAK: backup file creationCRC error check mode.....CHECKSUM:error check modeCIS: Compuserve protocol.+ , XON: T-file xon/xoff testXLINE: T-file EOL XON wt.ID: MEX ID in error msgs.. WTECHO: wait-for-echo....( FILTER: contrl char trap.LIST: printer device.....DEBUG: T-modem hex disply2 EXCLUDE (ignore SYS fils)3 INITFILE (startup file)..4 SILENT: READ cmd silencer9 EXTEND: READ cmd extender; SPLIT: phonelib split....< HEX: input radix......... DECIMAL: input radix..... QUEUE: T-mode queued I/O.Q CAPTURE: save-in-memory..WWPRECHO: echo modem to lstWSODELAY: SENDOUT time dly_ TAB: console TAB expandera TRIGGER char for SENDOUT. CANCEL char for SENDOUT.. SEP (cmd line separator). ESC (T-mode escape char). REPLY wait-time, SENDOUT.  secWECHO SENDOUT echo-wait..  secRETRY: SENDOUT retry-cnt.  WCHAR: T-trn chr wt delay msWLINE: T-trn lin wt delay d msCLOCK: speed of CPU...... RTIME: rcv file wait timr5 ; secALERT bell count.........:  SEARCH mode..............=  PAGE: lines per screen...  4V.?-.\V!> \c/0IGlobals: ! >  ~H#.! >  {J4V7.].}<4|4%"0 0IAlternate D/U: *0 |AH}H>:H\V*[4VڞG:WG͟Ig.ͩH&VͪV&V!B[4Vڣ.͞Vw# Œ.!B[{J͍/:WCbͿK2W2W:WR!g0.S!/.>A2 ! 6BT>E.2W>L2W>! ]ͶH2W c/: /2 :WDEMLTCS U2W͍/: /0I=Batch-send ready ;1t>2Yb3͞G2 H/>B2 ><æ=:] ʤ:: 2 !}2 "D3+"F3:;$Jx2=͙9r1P;J0>2 ͙9i8͇8:W<ĸ88(0:ͩ10> ><8`0=L0è9);æ=2X> U:2W: ›00I=Batch-receive ready t: ¶02Y)40>B2 æ=:] ʤ:02 HV3G͞G̀G!"D3 :>2X:$JM3: 16IReady to receive :W16ICRC>C+16IChecksum>6I mode Waiting...<5]12;J:l1E1<Jl1";æ=><: * |…1}ڣ1:L3G*F3}* ?Py!L3>K2 >K2 : ¶1* " ɯ2Yx5*X"Y5!\ Z͡JYN;2:3 1:f1*Y :X;2![~)!#2#~w+F5#2=!ww {J"Yx2\!Y41!Y51*X"Y: R2<>2 0I Multiple errors... :Wʋ20I Aborting 0IType Q to quit, R to retry: ͹G͞GͶHRQI2!\: ªI*D322* 733*D33: : 3!C3~60I >-HH>2C3* #*3: AIH Received # Sending # ͏<7 !]~<͋<33#3>u<0I ++ ERROR sending name ++ xP=l13>2~Y!]͏<>2}Y͏<2}Yґ46IFilename timeout 44ʭ4l1w#}4^42~YyQ<͋<4ʶ4 ʶ4 ʶ4!\G66I++ 2~Y4T42~Y2~Y͙9><<4è9*NQ:Q '505i5'5*HK:Q '57?>!WW7:Q >05i5>!W'W*W| 5q5!Y6!XN# 6 A#5~ 5#5~ ʘ5"{Y+#5~ ¨5:Y<2Y#5~ ʺ5è56 *{YZ~ 5# 55> #~ 5"{Y>2 >2Y2}Y͏W6:W>W6>C2W͋< 7W͋< 7/ʶ7: =60I ++ Bad sector # in Header :6z2 >2 !"W*J3*H3͋< 7w#z72 :W8Q͋< 7:8: G: @8<¨9͏< 7 8lP7: =60I ++ CRC error :66:6l15R8: Ҩ9: * H0I ++ 2: >w8><: <: /<>2 !"W*H3: ¤8~#<z¤82 *W|<}<>2Y2}Y͏<͏<Ҹ9>B2 2W:WRo60I =++ File Cancelled ++ =: : : : > :>*D3J"D3* #" }\bk #~?ʘ: 6: ):y ʞ::W‘:!9Z:Z‘:: ʑ:P0IFile exists. Erase? (Y/N): ͩHY7͞GÑ:\P 7ͪ:7ͪ:0I++ Null filename ++ KP7?0I++ ERROR: Directory Full ++7#P*}" !"} ; OKP7? H7);$J\P<7?0I ++ Close Error ++ 7*H3: _;!s;_;!W5;* yJ" : 7*XPP;! :X’;2W*X" Ps;>2 yñ;: ;*H3!;;* yJ" !W4~!X7?!WNp*X!\)<*WDM!"W*X!Yx5<" PPY<>J x5<0I ++ DISK full: saving partial file ++ ,;7:5 G*] <Ҡ<͙97ʫ<.·0IAwaiting ready signal ͞G͙9͋<ʨ9C!=w=!=r=P=è9: F#: AI6I requested x2WCRCChecksum: =: =͞G!\ͪI0I Transferred !\GaSq5͍/:Y/Û0>K2 ͙9R>: 6J: L>q2W2W: >/2 2 ! ~6Q:W:WF>: F>: >2W͞G-?ͧ>0I [Transfer Completed]  ʑ> ʑ> ʑ> ږ>Җ>HH>(HH>)H0I =Disconnecting... eɯ2 ͘J>>2X! ~6B4:] :W>OE-?!*X"X![Y {Jկ2W: #:͹C!"W>2W:` 2W:X!9"X"E:WOE?ͿW> \Fh?x?I?Ͷ?͕W*XͫG͹GGQ@?5L5G:2 š?:ʒ?xGI@ @*Xp#"XxH H!X4~Զ?:XG>4G??~# ?>.~?H?͞G!X"X2Ẍ́J!W:WrF>  !W:?:@x:&@x:@&@ rF:Ẅ́J>  &@  :+ \`@:`@!X~6: u@7?67ɸ͑@G7xͦ#?#>  7xͶHGEZ??@)B~rA#~wA##~}A#~A#~6B#~A@*X~0I Keystrings: ͺ#0I Terminal Control Sequences: : I0I + E: Exit terminal mode ?: Print help msg )BAxjA~^#V+ I#XÀͧ>Z?:!W~/w͞G͵EÖA!W45£Ä́E2WOEɹAAAABBSend BREAK to remoteDisconnect modemToggle printer on/offMemory-save onTransmit fileMemory-save off@NPSTU: !"B! !\G!lG0I File name? (RET quits): X͂Q:XBX!\͡JPB BB!HC~CͪW7#B C:CH:ēC 5CH4 :¢C:W NC>C:QC: O:WaC YC!:ʀC!:WʀC:WʀC!͋J:ēC{…C5L5̢C5°CL5ͪW¢CBP/D: C͋DCNDC;DCreating: P:;DExtending: >2W#P!!N#F p+q!PG:FDɯ! w! wAI!YͪI0I...+~#<‹DeD6+6#:= xD=~D=ʖD~D/QÁD*0 r+s#/DP7?xD~D:XD:W¸D3:;D:WL^_<2X!w:XD:p;E:W>D2_<2X!:W~E:XB~E7E?0I =[Term: : I0I + "?" for help] 0I ASCII capture :W!|EpE!tEAION :OFF 0I --> No ÞE0I --> 0ITerm-File Active 0IPrinter buffer :WE0ION 0IOFF :Wx:F> E> HF:XͰFyFFF!WWF FO":Q 6F*W|6Fx?!FͭF>2W*Xp#"X!W~<wZF*W#"W:G!W'WOGxHE͠FͰF05\F*WͷW*W}|ҁF͠FͭF:W!WxW>!>q54!?͋JDM5FL5 xF7!?͋JDM'5F> xF7>:H6# 6 #G6#G PPP#H> H> H* G:XG: 2X* G* G* G=!W HH> H>:W05 ̈HZH!WO DH:a > DH~HZH_HyTH: ZH* G vH sH54 464~vH H~~H!X~ʥH5¥H: w * GK> ͹GͶHH͹Ga{_)!o& H |H{I|H}HH I0HI0I: AI͞G ,I0ICTL-@HAI>2WAI~ʁI:WWI: }I~=lI lI:. ĈI|I~H }I }I #DI#2W* #F#͟I$HÔI~#HàI~==!AH+~#)!H>:H#I~ >.H~# HI͞G ~# HI##I H I͚WJ<$J$͔IH͞G$>2W: >è90I =++ Exit to system ++ :Y_1!P:W!h*Y G:*\~#{Jq5x4:T]=‘J* Z!\2X>J##" Z:W2WJx2X ~ J#Jx2X4VJ͌VͶH2XɅo$K!KxOy`K6# 6 #K6#K4VͪK#&K:5K̓VAHK@͌V:PK͌V:0OxGMKzK.ytK jKzK͢K*ʒK?‰K zKÛK>? ”K͢K›K̓VҫK~., :=ȷ!lZ{J2|2h=!A2SM2{M!]:e K 6?#K2MP!"X: 2YLPH͙GÃMG͙GxʈMHNÈM6 ͞GF#6#w#,N~TNͶHGͶHMN#7N#NN7#P2h:WžN>2W!\ Z N:\2,Z! Z\ NPN!,Z\ NP! Z\ NP<7N2W=Ɓo&-Z N] N2h2|~# xN0IFile open: * H: 4O0I (H0IH)0I records Send time: !O7P^#V* ?Pi`H0I mins, !O7P~SPͷW{O&H0I secs at :O͞G6ICTL-C cancels  0`@J0(   *Y!yg)ҒP>g>!o†Pr$s%# |P*WO*Y ~W$^"WP\YQQ"X/Q"X2X=PgoDQQ:XyQQ<Q=!<)!*XDQy)Q"X QQgo\Q] Qy!"#$ɯ2YG:9Z2Z2 ZQO*Z"]XXRQ6SQQ: Z!9 HßQXRQ6SQ"Z> y29Z#" Z*:X#":X2W2W:W RR8ZM!9Z~#"Z>9Z2 ZPYPP7:WYP!T ~w2W2W2W!Z8ZNkR"7?:Y/2Y>"ͿRR{7?:W>{RV`OҢRR:`>2WkRR}£R~#2W~#fo"   {J2}Y2~Y2W!   {J*"G"G"G"G"Gɯ2A[29Z>28Z!:Z"ŹW::ʬS2X:6XS*X" S:8 !+SPT"bXxS 6 #S*) "XT"X"X6* "X*6 "WT"W:/ 'T:o !SP'T6#"X!$#"X:% T"X6:& T"X6#6 !T"Y* iU" :$ T"Xz2X!" ~+"xV fV"ʫUͯU UYString too long.p/U^_V@4a4@_VRUNUTV/O4UVxGG Ux> > > > 0:?0A[?GJ4V44V:W7* Z~ 7?͌V4V:W7* Z~fVV4fVͶH͌V44V4>=GfV4͌VͶH!W~75* Z~#" ZͪV|}ͱV:  ʼV-VVV͌VIVV4IV͌VV_ySPV$V# ͶHVy W7AG?77.W#W7wɷ.W~N#F#^#V#SW~#FW~FW7+4#MW4###cW~#7+~w#bW5#~#fo#}wW|wW!s#r >2X2X!WW5NHSͪW7̹G7?ͫGĹG2Wɷ|g}o>2Wɯ2W[MEX] #CPM/MEX,CC,HC,PA,PL :+ x\\\ɯ2X7:X>\_I\!\~7͂`#\L6]_G_o_g!_w#]K_ѹ>/1]yJ>.͂`7AI?U>02Xi^!\G!D[" Z:A[==2WJ2[:C[2X:B[D]> !`AIaS̀G :L^:L^2X_^¦]!B[~#͞Dš]Ñ]:XBʳ]>͞D:X]3;L^.͂`R>7UL^> U!8`AIaS:;L^2 >2X>.͂`_.L^!B[D)^w#^x2A[^^x2A[^>!A^^);R>7ͫGĩH!O`AIP>͂`Û_>2 >.͂`2 :X<:x^>02X_ʗ^{^G6R8>/͂`{^C{2X!B[_2X>2 _ʸ^w#ì^2 K_^:XO:X^x2A[:X6R8>/͂`{^L^>.͂`{^!A[2X2 "X:X<: _>02X*XF#>ͬ_:X`ͬ_>2 ~` O_:X~O_G_G_O_>ͬ_~@ͬ_#'_2 >ͬ_{ n_>ͬ_{@ͬ_%_Ž_zv_ s_>ͬ_q_./ʢ_v_*XI?G,9R8 ___ʛ_____z__͂`k`k`_ʛ__`2X`_`zW{_z = Begin CIS Download = Begin CIS Upload = Aborting CIS transfer 5}`L5=C^= 5ʔ`C^È`4 MEX: a Modem Executive for CP/M-80 USER'S GUIDE Copyright (C) 1984 by Ronald G. Fowler All Rights Reserved  .pa .heMEXUser'sGuide Table of Contents TABLE OF CONTENTS 1) Overview: What is MEX?.................................1 2 Gettin started th physica mode overlay............2 Smartmodem overlay installation...................3 3) Som precepts Filespecs strin arguments an multipl command-lines........................4 Logging drives....................................4 4) Terminal mode..........................................6 APPEND secondary option...........................8 5) Single-character commands..............................8 6) Secondary commands (options)...........................8 7) Command descriptions..................................10 ALT, BELL, BYE, .................................10 CALL, CLONE......................................11 CLS, COLD, CPM, DEL, DIAL........................12 DIR, DSC, ERA, GLOBAL............................13 EXIT, HELP, ID, KEY..............................14 LOAD, SAVE, LOG..................................15 PHONE, PREFIX, SUFFIX............................16 READ.............................................17 REN, SENDOUT.....................................19 SET, SSET........................................20 SLEEP, STAT......................................21 TERM, TERMA, TYPE, SYSTEM, WRT...................22 8) STAT variables........................................23 ALERT, BAKFILE, BELL, BUFFER, CAPTURE............23 TRIGGER, CANCEL, CHAR, CHECKSUM, CRC, CIS........24 CLOCK, DEBUG.....................................25 HEX, DECIMAL, ERRID, EXCLUDE.....................26 EXTEND, ESC, FILTER, INITFILE....................27 LF, LIST, PAGE, PRECHO, REPLY....................28 RETRY, RTIME, RUB, SEARCH........................29 SODELAY, SPLIT, SILENT, SWITCH...................30 TAB, VAL, WCHAR, WLINE, WECHO, WTECHO............31 SEP, XLINE, XON..................................32 9) About the source code (and other stuff)...............33 10) Support...............................................34 11) Credits...............................................35 12) Distribution and a warning to illicit profit takers...36 APPENDICES A) MEX buffer allocation guide...........................37 B) Alternate Long Distance Service support...............39 C) Tips when using keystrings and SENDOUT................41 D) Using MEX at higher baud rates........................42 .pa  v(MEX11DOC.WS _ !"#$% r&'()*+,-./012345 S 6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXQo+'YZ[\]^_`abcdefghi D;:Vjklmnopqrstuvwx3u2-,yz{|}~E]0XO61*9H>8&!-vU+_%bҫqgB?Us쪚>Iܠ+Mll{>LҍNM8dщt%5ZȚF mB&R j tl-1h06&h<{ C;&;K:6F tQie19a@QՒe)R'  h/GaDfCj.*b@Iz;%Xj.*b@sґ}8K@ddUKh;{@AŀL> hC mQj JLޏ%}I,MvBl10ԑ`A-tY hu޳,>%\$ڶ4G+te)RBMg嚄;Gp 8A+]mK>%\$|X`R ; TN4Aʚb -JBf6VPehIi`HiJ]<V xN[ =JbA;%F IPgsZY6Ro>#FZڟYvȪ(&ԸAW>L:@rzpЛuՑ,yB'(4َmJKmy[p 8<Y,aepN{ |[#n u;!jiή>[ 5R!AŀL ieHg q/zVZ5G9ipNp >,Hn uWN>.PK҅;ScJ-I4J(m:Y#I{NVd$o;*:VR'?~Y`U'r&$ZRgJ7 ?-e Dd(Ȫ1-j˂471د|wU1p Ȣ$oPEWۨU!%K'Y%=Bep[vd,M`|ΨE`zYpBvw'`wZȚ,N[dUddQA6FH-yƨR&SGsR: Y-mh]\Ϛce~ xUNAZ[De&85Ci%GHޯ|#%Rքѓ2 'VD=G,a߀#++p(TMԂW4g (bYhPKFJzf!u}B>z@L!$AN1@MRY]4h  ZyzYLb%KqZW ju;%GUNQ+!R[ j1Esg rUQ]7I81| };9b@ƨ9z_bCjiA4X-vڲp{ 6,Ԏu[q (m:ǀڐiא ~ZJCWd ZTzLH&NM.͡Ԃ&A,tbhޏd lGY2 hGbB< !mЩ1{Ղ#3jcD_ʟ%{~6E Aͱ{wdXV|"$aHJ5ֳef ,ag&@):Z%)$AXKmЛRlz1(ZG c#9@VͱRaC>DY<(U2J1#UT9ʼnf24Ԃ[Ҳiޏ%bwwZ4^=}ٝ%#C iт zB'`eVm^KKC#'V3dYH-9 U}-<6rAIzptnԙ;Ȫ(ng:A6 }iJMZ]JK#j[[pz@43C%G޳Tz ^T (TM,8?|CȢsTB4轓.@!e:ǀ[˶+|Nprz/^kiA!ayZqb5K *1@B4K",6cwjAƉ-Z&=>_~88 ^6 ў#f#:@֤Y+1@-8%=?ـcH0J5WH瀕zQ,jAƉ-Zh bcɷXj i%)Cp +>ƒo{ye hsj,9(:,JL@i>ǀT=PjAƉ' Z,_v [,K.9(VC-8E}tѫ?}S^}齯 ˗{{{R1p Ī^;||~hWz˗{{{pJ4n+iwOd?Q)kƒ/v aP58ZqbUB.TMԂ+HmY8'X*}UʟaC pjzwoŊ /vNg gX;X),T^ YlPg1` Urj#8Zqbec%DѠ0A*;0\GV5=$# ĪAVELJ a$}{dg BV꽄,&`rP:5}p PiCB+&p44PgJGZ cr5-s j^>};h4iG( ȢdXOb }' jAƉm ( pnK+mAZƒo8GwqeeP 2N Q[D>tqeeP 2N;@-_r ZR8h&6F4b/ `*ދ0!cǀG62' ʂi1V%A%p Zqb ]N T9wy VL , RCLO?}p c0V'X-ޢ++iP 2NlQLd S|O wZ'Zqb$,a iLs>%Ԃ~ZJ@ӄ?ϣ%=J,bOOܭ{Qn)+U2^-8Ze8?Az_/cH)B~Zqb$tF-dDɪ !N ,I B3^u,έfJSMy,:1NjJ}B.TM# 895T  .)eЪ9,)ZGՂ[=JstqeeP 2NlaeQ:TiwCN! { 6A6Тv>}%@6`h!T8Z }tѫ?_2A6Ep^u2A-8$PD z*ScɷEΰRj7}Wx/_AXKP 2N*[bÃ˽=[c US Īˣ5vv>ݯw}O}t54;||[-cHPyld)BO!'{yY#82$aǀ[6e3p$'V~+_UbU28:CzZ\Z+~S/cHXRMΰ{yv_ Gj!d>I ay‚R&~6Eb -N.vtjAs\$hߡt_-Z9vw.Ԃh5EVE'X}`| ĪI&d+i0؂cPAz b BZa,$m-D J5:e$ dX5 dmd9*HOZ '9Z,A(uiKqBT4KZ'BN! ,A &ve+6D]%G9߅@=-uf,l0 4eV-Eivw.jE 3j! PMbBL9UsR8ϑUp''u!A-8EY \H fΐ%=EPK>Q%KMg B0V9i_4¹՟n[pj*=“{X7![:c@!2_^ jAƉU4A}JE-Y4#p,~,AB[RM22-ƒo;|;8bw95npЖm{C{5R Ns,(cov=}tKjP 隄=^8 2Fh KB.s[Ej*W~/#%RքԱ|~㇄UPo&z zK[Hsp \^f JKsj[q )!-Zm}!Jۇ(:GM+~vWxozg{^[87/\b\b*GWϞ ݛᓣq`wq|ī}399ٿ<*߭G}\p7;|[v2S稍\9<>LŷPgGo!L@G&=V lGY2 J7<>ˣUQ]R<' ձTZ8\(㎍N rJCu,a?3d-jiî,SQy!֌BQEo`eѹH3p$\(.+4 ꇕ(:GM+vO?{xwXҌ Yb LÃ??><Ã߾3"Ɛfר\_Ð%+vO?#orjcQ Fi~ C>=C?WoWwNm,ri iFi|,khCab=<;6 k ~khC~+C 2 awYu,!̦,He$`HiPvB-Qi0⧥b湝%=B! Yir 54u0"3wcɷ`ޔNAO3u, &e2jޏ̷Kw i2lʂd2'`04݇ F=3? d٨(Lf_ΰR! lGY[cl4Kr,a;޷2 JO(:GMVQLQL1 +FiK1Rl4Y57-H '5D7<gX᫓Ko~vܹ~7w_]/wn+3>zć;x/wv_U뺖,έf CuBO0"3qg?[ JK>LI+轥qBMf^ˆ437|対?ƒ?eJ4vR1Rl4Y ,_}sl;ʲd1RlhFNjj_}ƒ?eJ`1_ێl%Yp$<rFd&S\%QBo1Z-•w4S7ŧ3Jd5eYB2Np4PˍEit,i~X((UQ]YQ(+k%m('  ԛO:aS*Ȫ(z@lezR`&(yn[Ww e) ұ\@VE!t@Mp'5o!'8Ih#;CANPKChB* GpRb ձTZ8 |KHPYTdUBदY#p ![^8{f!'(JDzsYе8AVE!(a,ze"Ɛ(dUBq )Zǐp:\޷҅ـFQZz1P!YutH )i] +F 1[,@ Zsߠ.@{5O@ұ\@VE!Njz_/cH(JDzsY#Xp h  jiA4l1 Sه'`e0"3Q-9 ƒo85zUQ=݇;k w?j ez|V:گ|OE9o*_yQ|򕿇`w'tgO.lgxs}b/>:zlx_Fـsc00R+>aeX):#ji({Vf5KH h#'K=>Q[b o^F* &A~B’A eJG~Ǒ& Rwoz?a';42ճ;;%=Fs|xyы| tx,pn5v0΁R.φ"ޯ~~U`wM+!ֿG78}v7G/g٫φ*_eM25@pm!J,F_}6ncDtn 65}\P8]YbЪ9(:GgH6+)5d V8~~;Qb?^X2,>*eMx-R BTWbIZ8W~w.RBi&C#%B-Yǐ`8Q}VE!t$,g 5ǷP˶%C:SQ(} t iaz_ 0BjqB4Ja*R,Xs%߂cBqz/U>IXr(aFQLam L#aǀ* B1P8 GaDf2ji;'VTCiTi`!2 XZhKY*݀B҉ C{hz?|BjqB4pPgGo!L FlNsp EG{9 #g>ć;k wbB- +jM\c9f>GaDf2?UΩ10BuK 29 #2$pMBV@jEY d,͢=K?-Igp_) dhOKҙTW/; S* k8Z{ @gf t ՂlOKҙl^w?۹`YFVJ Ϊz Y0(ۖL^w?{qtRY"n%LORB+aP-_ V{:#5߫lAZ Ր jAƉU^w?[^`#-$C  ńΨcVґ=|obrsޯ!/;-i)MZH"@MY&%ߢ^ciz`2G2ciiLlZz/2Ebl$p$HU!LORz_KbOȪB t >ǐ,c@N!Dr# .0( Bn рc@gfC60$-zߪ9.0"3XΰRiBl1NibBRa)9 #2iPjGւ#aP-9ۯ|d +TJG 9xd[9;''{;?td0φ-H3qV:ҢKǀ׸Ss| 5Ȫ(?)dI}+TzYLTt#8&aM( ^w?[ Y' /;:4K]+RCNPPwb zq$1$8a /;-Q;MPm~g=d1AGU}[X ,$hV=!nig"@6f +U>sp@L10S^D:@4АYTX"\W3)L!8@G("5Dn Q(}5zPZh0U9h[,9 LJG1#zÄF.B`ji+ұФJV?`,ԙWYJLs0BjqBcɷ[9~BƒZkQ,ai #=tc0NYg#p s(:TWl-JG J+9Hr9I[@q|(VYGB_.@6PM*mKsbAHfji! <(UZqc0p,A8 ;eAHWÄ ZƑ&X b!9,i)}ꀱ[7%=Bi8||YaCBoV,AjʲXP+lS!p h -¹YBiz1$\UQ=JC6c@+]i6[=J LOpD ANPPj8+UPswONX ʶ9Z霝awc`I &x9 #2| t?wKw4X)Z5ǐ`P{>e c`"+C D]KJ|ݟGˆdH͇^OleweAٶ4G!H K# mBjEە GO˧O|i1P8ܩ98Q>N Ee<;|t;''{V,e|PK;yޯwONX$rA?$=Bg"GaDf2 J cHLs~P-!Dڽtg궐 ~xXF`wc`hϲ0ScH0T( -,Zs =;QjL 2_˳!awiIe@[RM Ҋ,p //rc&K wKwb %KrFd&@Lsp xw}T7CG1Mhe#|2g CBqHȪJyBQ)zovJ0lhG{G>bNUѕLI,aPN@+ WжS\,PK!8*ۄÝ+`UtL#j ґNΰR!EǀGGB tyrmB).T{;K2K5wKwayRcC6c@ˆ4#8jrbՠUsp h#K&'V sN Y]d! eV:2||v+=Ǘ'7b!G jb2XW[,+A=|0"3!$-lGw Y,aK(J;EXmdh?!8|8zX;*:~x?;`)To2V 8 X#ݯ|OHry:.On_KΑ$8آQE7X suT 59j0ZM1(-˓odpiPZaUE@!n(fh渀:$g#-$3ճ;;VSr G,`(\H}1E(LsFCbگ|E2mQZ3aiGG,4KXKz(LIӄtQ=KSJKVsp 0T(hbhAsFd&s?G@Lh߁l`(\P=KXtfy7T(bG{G9 #2ٯ|#%Rք޺HPK+_j 'O7װYAu,~sU!e)ВpSԸJ>D!f!'xO^%T9%kl1ORVf:jpg;ʲ4Bǒo8,g BctFlUQ]7G4LZPu@O.JGZ(VRp8$aރ(v ҵ0[ҳ;;%amǀ;Wsp X_0$~8/_#zl6c&轜$X,$UsH*Sj5%arzCB CB+]@mGY 89CJ]v06 H1fzދ#=|5cz#8?-ɬ>G+_g? @)lGYYBN!%a-CB.7mfC#\%]8*u=X{gSFU1+_ Hr94KgJ FJ]v0ِ h9zJ 'KcH©͆F~_W껇ؑzh/GaDf2Ȫ(U+!PvUQ((-;|B躁0F IRo\@sFd9* k;C aJKe$ |v\at V:2UvP-ZȢRopLڒFg\N\2A 6FTV:(G#-*+W+ 5) wXveXY ٔi~X+ 5) c]+iQٔizWo0LLZ8&%G8ۣv+ܵґA=G$C+_ &@, L!8@jM%]7xNf(LICp 0T(zH rFd&P&Zǀ* 8drt(GE e !GaDf2 "|s 0T(0 w=3=A9*jV%9 #2i{5ǀU.`@2i!T9cBq݇Q3e@N{#QKC+_}WHGxa<5v(+] X*m+_}J¬UQ][ܩU+CYZmX*ݠPl0[p VꍣiUQ]7XG „L!&tNdAR0-D4OG{Q Y# 8dUBद xSc!\I;MPg=KYZ-* kUƒhww}sS'K7!|bgxOo'G7ރǃuW_t_ zyH`&SH-^jB+UWs k\oZ/ߢP5}heҖ4:XePkf5eƃ>5v෯Jkl!Z&V:mKWCK2ƒv k\o/{ )G2ڶdPK* ~ ~RerFd&QU$ k\o[(TMhA+ж%SS{ IctZ_P& ƒ#_4LBT{{tg;oox/a(/JGi)kf5eJhLZÃ?_P^` 8GґK2¡P5ALx';?{|r9Y=| dd}!ScX B-sQ?ӊ #Ad.CV JG(JP?B0K`#H &SH- U[\pgG_b @XFBVE!t]w~#dY|Tʚ?VE!tkȎҶW!UQ]&X*m*_e hsj,9:5UQ=) e/-v'~Cp3p 9 #2iPV:JH 6ҍ{f24LF89=QU ݀c@]َ6dձTZOIgc@VE!vYb`i[I#%B-895"s)UQ=WW_]VON7S|*T4 4F5Bo ωԤId*5 zF lTA)RgW4c\dUBदz(Sٯ|+e$/Ȫ(*_e Y#؎l%5\тj#}iia"$L4`;jˣ7hwOE=φ=%ߠ,Azd 4tni'Ûo (>, |}rug;ܫ|OE9o*_{_}\brW^+e$^^"|1$^Y#7 8 @MRLZFڑmz1Pg\ƫ,aeVmQK+p s?V fSyq,[I 8 , j{>^LZ5Gi7h#;K .nY-Bi1@ud9Ƒ&@&BN) Q4  zoHH5Gp}V:zfAO),~__a >"|_}6(-`C\ V8~.jEZ1 jiҚ2?`p$ RWpDVE!t}U/cȪ(A6(-8.$9QcHpr`٢j֨19J~V=؎l( (&P:@ŀPp }VE!Njx}c;-H[ڎ4K0Fg>XAOE9򕿇~wov7W~,j)1Nb@3 JŝCBh;&p1l=KY>,tY hgOc,(m,M@VE!wR!:L#3h8R8AŀLCSn0| > c$7=<%>,?>:{}w{?>ի{XBp4b@S(5( {(WKsۄΉp' 9c.͡`-ή>zb@e2Hx|/w}[^+DmGYF0=pr DYAgȒYKwc@#j pRc.WFqGVQ6hIpiceV# S (J; ދ ,!G7Rc+UΡdآ(4A4c@o ʬ}`W)vdX5S 2NZ0S%ߢ>:yGig 0X$dщ ,a z}BoN{K'V C-+_=,#fB_ƀˣoUQ=pN{CX#n uYX-8>Ɛ&M,4NZsEM4JxN+FM ,dXF]iO!Wˣ!^ґ}p>EȾ|}GGˣ!nޫ|叝!a,:nzCL@FXk PRM 1$؎Z3$-詴@M1~+߭~qe$_ |/ $p 6 +Ud lu0ۄ*}WVfqB>ԂVzq .0(BA+i5\ _l6D-ΰf 64KC?-&!;ffC4Amu0GBWVfdXWW{XF5* W~.AVE!, v dBoQS+5ʲzӠ)}[p N0 XF@6b,C6c@I4!J'F-ƒot@VE!t}?p|t * G C^8 V=! j1b U.UspT6`Q+lk$Q7=<;';8zxW.+ftEAܫ|ob B-ǀ_Puc!4J,i†轜b O0| ;kY XF٠5D ʿMt[|@ʬ+__a OvUQ]_UO~ \ҫѪ9^}6%=!.nfTGF]Y1U9E-mVZSf7p=DVE!t}U_ FCdl#6@L:R' egUB04JT9G!b)XH} 0BjqV:گ|%* WO?NȪ(#*S4`EIח?NȪ(g==M8ih97aK!* G(Tח?F7!L!8@jz_/cH+ϠUs\ ـn V,LB w5lF -*[=AZsp (JDzsb@s$4B{:Sǐ f5Fߠ,a)d4bzߪyǀ! d٨i,e19NoV:j"@ږr&SH-P>IX6(8^_r ߠtcU:QzJd&Pg`HJ04ǀZZz@zDT?ܯ|s{/SdUBW|O~0Vy`e!0n >ǀ''BVE!t=KzZΉU1?Ill6D~ɯ95Bh8뿅ێle,%p,O~W`,ji;' ZI4O jE YYJG `@O+kAcHY_ agGǗ/)G7prB68zx AB+5X ji;'VTW(:GM+~ǿ/+}rˣNnw*}rxs2wUQ]_U;86+)s}F]T:IpW-b /H3 'jAƉ}_WjHUQ]_Uӿ@FXjJGv`e!0n >w5'`J3 I z*ؾ|8<]e+iQ?{2V:Ң(Q TepGY__^-OŪIX5v utԀBI}@FX' _`;ʲ݂cX*-4D4ǀV:Ңc OЪ9z #[K5IPL\ #JG D4G-mJscهѫ%* W~>9QBgh!UijV QȪ(6Au_M)8cXp "\j!Jq0"3BIGHs9#m!L(Vr"s)UQ=Btx栧 ϰR3|!ji(ۂd  U^Ls\.ж%3CT~tyj}W3U" ᬂ%G ?FjB OvFhےP+7=<]Z_UwZ1`p҂#AiX .$?Zl-W~?wU2NȪ(*_ᣓא .`WZh>F7JQCp ##Xsޮ,K6+)ԛWW{XFdUBW?I JK#!Ddp PzIP]j;eYHM9A9^>>zxYic?AVE!h*ؾ|^>W_|H\Vp$^>AVE!t]{oO}W/_Ib!G`l+ ^d֢}:#5[Drn)K*V̕ỄCV!AN1 ƐfS j#}ii ]wvd{(m`}a,v a8zx89c@#J 4ճzآP-D9j#!AQBii CIK&Rcjuvx䓄C2 z?d8^NeTWG:Ցz1򟠕.`, BN:Usp K#X z1RJ6GVE!=\2|kdUBW2oUQ=pN{Cd[)Mǀ;|FqMBgfAN13x r2FQbCv 85z?<==v,9B64,l  +U>3YEe_>OKЊ#͑UѕLsRkϱ;|I<|d#&eے!=7l̰R3iAs jU (-X =:ϑUQ]7`5cei1(ZW~ vYW/cHl>G!\(='ue#8ce}-ldawB)i&G5rFd&c'`eHo/Z-S3T9]YdPDvPS+J z''hE8'(b8Y#jC|y֗'$oY+6HH{TtS!J1>#MQ6 :bVHWjo ?~B_Ɛ?HȪ(A6(-(]p xN+FMQL X9I`2~L0dABL$Ϫ(T~6/_~HdZp$}3GX(nۿVEtY hV: Z5sZY6R'ґ}xZo8tī0aC`fSd2py* W~COȪ(A8 V=! YcH\VXrR%¹,ʢt,4Һ-rzP^QZe Ȫ(aWSH[Ãzy^^y2<^+?dB' ـ$GC1P| u~E©sH͇zs ~c8@VNMP-Zyǐpbo>SQtWˣϾ_|% YR6rAxҒ=3diޏ; &-iGpyUQ=XvNl!& cY+6_ʟaX)9 \](-1U9jiCxzbcQSp <Ȫ(3_v Lsp [m)8CVE!QEYu+!ۣoUQ=B!FC$ǀ.*b@s890¬fh0&wѠUsBP#,d}`yQp]236eVM+ꓷG7C_e1 ` z?W|+ 5rFd&cG1JS!J} ASp e19.ǐ䨋J]2pr޿ !Qo詴lg rtTOW`7!1AURiq#81֪,cɷb@fPZaǀB>y{t3˓W/,8H4'FרU+ꓷG7{RAJqlV_V=~7~O˽=kUBŀ ?>VޓG7C<>~o}[{o֧o|+  dh(k#=~u﫯_}rooNZH]2prP{O f彯ƒ˽=*Ԃ,. UA=y{t3㣛ὯO|H٬*GG7WjHxr:||By#dUBw Bw&4X-8 o^NȪ(%dN0td|BhٕNplGY<9>>yF BlPZQ- ΋ǏOz_/cHxr:||.m!iI 6agxs}ue#fޏ#M1`gxs}5* G JK B1`'`H}ـF e2Il%5 ҖMYI:KȪ=:brUQ=!48 iJ4GVE!cQS) ܠ3Rs4 u1ԛ Äp lH31j!!z;D4ǀBz>EȾ|_{r:||~˗_~ KlKjSX6Ro*ړGp;_KXb P+V<‡sC|嗰)6gK!,lٶiw+2I`)+=#pfz*Q1P %p OKӄыXn2?8JW;ÛK<>:>WʏcU"s)[JƇv㣣WWW{XFp}B_Ɛp:\UQ=BwCxUQ=FpPK',l`h̷(hf4:C[BmKI#Q¹-Ƒ&X~6 $t,iB zO JGKYY0FN`%LM(Y}B¹zcɷ0||ԙRǀl6,$A%p >ZoB).@N`)T55H(H&AIRcwYB,~+߭2JxVאM+~tV:Ң/;a?CNG!+ݿ߯<PK*_{_Ɛp:\VBlf!'zprBO^Chő 7}VE!t}?H6$dUB EkZBsF.УwKwC2G2tiTL~+\u2 VV:j L@6$FKNAdef B E,;kdUB C@' \:1uEY*=K>YYu>\ (YiM3=k>n0s j,`V\Hh r (,!1-[Bˮt>ǀ넅0R \@jzG7`HGBVE!t Q=ܯ|Oo # b2 XB:1;/^ힼF'(O0Y8G#/?F'( 'gH[p Ȫ(Nj%pmXA@͆F11&AN8ޖBNJGe l9,d&hENQ YS tjL-JcC`Qeh+Ml@VE!td+?W):aDALʹCN1tt4Kz8ʼz?d& 8tˆe1 8 e1 +cvJ`%/zR8MKM>^X0 &Ӏ4* G Nj~Fd 8dUB&˒KZ5ǀ?>:]0 &@N1ttHp h )咩ێ 2'3<>:]0 9sj5tS,+C& z_ZAAL>^X0 9deJAM1 z'5}sMB o^2=# d!F4Oe1 3Kz޿dz&df )ǀZQ:ޯ|O1VnV1U1!h5Ei%\ ]_%C^d.:aDALs,[I# 8dUBद)咥`,zfKaP28:aDALc~+L![8tˆL9ǀdUB&R z?؂cD&1wj=9' d1AP]R#a}|D'(`씕zɐ#2W/$< e *u৥䀬Y B&pnRr@,:G3ZK}z*;j_}i+,t- rp;|4 -8ZKWv?/>3Y]7;Ûz*_G _|fgx>^_<>:]0 &c2tYL0}ii9qX7O. xX:6Bۖ v7_?+Ti`WO. >=s`#m`whœkJve;rp3X:6Bۖ s~V:9P5Up}'ÏKG=s`#mk,$#i,Q*_e hsj,9ҹҲL 9zNQ%VscH t4Kz J-v Rk$c@ Ho*_{x5\?./# ?YxxƫG*_ڶdwWGV:j 7Ïw/?޿>:r|Pf if5e+T +4p Ȫ(2P,ׯ1||3p 8@- T \sp 8A+]S'pyz?(=9IȪ(',l ږ27Ro(LsdUBMU}q ji09j 1 z GiV+' +@,l0آ3ʧRJq9 #2Y_z'55K? ft?pW~?w[jH8 |1tUQ=J3 ,s!8?~Y 4S7G1EV(VfRb@EԊFHsp s*cHPn޷ґEݠB+(+_ i2#4򕿇txƭtEA|R({(:GMG| n?>~ytyr_]ibみvǿ89>9:]]^y:|rtܿ>:Ғū}Xy<o}N77=>~gG/N\᮴dwV=;|>ӣ/ͫ7S<{+-YWF1`p$95z * ktQu d2M+!֟~N7xovv˷'7}yfx3NAmÃG| ~?泣=Gig r)?oЪ98SitPg(ggjVA j ȑsѪ98t,{u~- _U2v7G/Ȫ(*_ы 95nRaI &f e#9T9cH(TMwB棝lP(;Ei- '8AVE!tdg rg1j&rL! 5"P5W~?wUH+)Ze3>z=<;ÛKl|pUp eJm!%\;X6Rof z5lFh[HfghsjL# `H}Q;Ûz/(R [\`'`H}3$c@M(4m+ zoH} \FeU,A+S`2Ԃ>'uH7T(n`#-$`Hawc0rVqCۢQ'p 0T(YBW@gh,4:tm?Iz`s[~,:#5j*WrN>O&$Xbz@H1p`eh[!agxs}5zUQ]|v^<~| }\l6r@5:C JVzr:|| *?~QG+J'F -8,ׯUQ]8&%縷F }MLq$4C)v7G/^c!S m iT R'j4C (GE#F t?'g4G73p v7G/^#Gȷ,9rFd9lcɷ=ǐ0"3!PFl1P'  |r.;Û a71,7#GaDf2Gc!z<=rFd9ZCb)8H$z 7ԑ&lWHr98Z&P9IKd23981jJ=l@O3QM#܍̷e~+rz \x[|agC8c`UyKG O tw;ӓ>~ V %k _*ChEfe,DRf7\X|Oв+`% \NȪ(g e0R \@mGYp c3fJ=E\x2,f?^=̈́]eW:4Jl1`g~BzQ6 ԛ0R \@rFd&lGYp QC m L>D9*!Й1ж4:@Ls e+_7 BˮtivȪ(g e`ǒs[#%5 ;ÛaHip'LZBieH?1_Bͷ`Y^MNl$;K  >^ d՞NퟠB!,Eg(SM:FMN,!h(-+_G OBˮtivȪ(g e`H[#Jq9 #2ǀi;ÛUQ=XHnЪ9z/Z9d2{YLn0VΨLTK}[p 0fu? z8GYl Q`iG >ğǝ#|!?~8#~wc`eѹ-,$7fS#h5Xrp,9z1$PFl>G@6?-V=بJ7Bi0;0\GVE!;C栧=ܯ|+e$ Ȫ(*_kȪ(Vj4KCnԂO ϰRjAƉ-z_+4AvUQ]v0z !CzUQ] VlH+U B=' |YU+3| B:1bgaPN!H]Y v aP5;Y@-85p)B>Ԃ3 )zQYG!)jBi &2 ,W~ɟ~_a ;dUBWpҢT^X. ]`UA, 5Z>ܯJx iT?ܹ@߫|Ǒ ACZp$ja)+][XHƝ1翃s , ϑ,47nBsp Kq$tdgУQҲ /,+Jv. ̦,HO5X-8̥8@A–F`Y XF@6 Q¹-JKmy0|c>##Xsؕe* ̷ v|K=²4u}38 @J=JdDPcɷ 5w , eW~?w[=,#ag^"|1$,ׯUQ=#nRBL,X#%=Bszɰ(d}d i214?@4hsjlTw%^lG{/+SQHMX#Q,K𳏏N?˛{|1_rzCX#Q+7Ïh}[;@MLOPgVceFd=K'ă˗_~Hd@=~\{x;?{|r Ã~嗰RV;ÛK , =,K||v}ߺ/a[lɠ&'V`YPK#LZBՄV:%]W; a8j 0$=jP(;V,n5^xxq@Sp bA{miGLfoP-aY,}_/Ԁ$\I;:pPg:J7(b0 Ic%9za,vȪ(gU+~g^߫|we ;i5VP\jH Ks߭~qe$,Ȫ(*_e XOBd|Y.\R W:fz٠ds[36`,9 NoJG~_bTdv[8+^ˆ4kdUB׳[p {轥t- c4>\?|_yT~?wUjHX~dB_ƐɷȪ(3RsV:j&,B:a|1O%=Y r[tb#`o`Wşo*_{xW=e+iQxɳU:J<{1m)OщԂ@La!`J] #f9:]_ pN(-:z!nV2v>YwUQ]_U;,lpJGxpG0ĥ lTGF]Y1U9E-mVZSf1P5YU+k) V, L!8@+zQ*˿|:A%tdZe Us{gXPPg C=ӄBA^}6ad;,?` )nPu@+]l:|;Qb?џza<Rքpg^b!GW!v%H1pd*_eMRMj5 H1pԀ[ B=4JPs>G74X-8,ׯUQ]W2֗%H1ptUW~}9<} ;k,+H1p 51Bjj1@ŀPg`YPs J[0Fs#MpC‬dC60$rƒo{CO?FVE!tm'`}9<}2(Pd\b(g&( (&P:I}LE7q__O_'&! ]oZ5G-cɷ`#1MPK5Iח?F* G rKUsH*Sj1PC4Au_+4e19ʿu]2!Oۄu){%T E@+7Z&\YD`@4AVE爩ޯ|+e$Z a8|_$\`g~ %[,b7nf Bo* G φSpJ04 ((3$m=tnKm(ARcr#ܩ9:>G4C!-s ʍƒo1"3f - %=Et-6A"$3W}_WjHx5B)*_W8j樥G 8drrhTbwwf r3BjqB4CVE!iGK#9Zm[2~+_=,#ՋǏX#U+_A6j C¹-.FOPڀ5^xx+!:#c@;'Yt\Aٶ4eҲ 4(T(-3Bz }{1p~N& %Kg ;kzWX5sk#- jAٶ49neEMLp plNb@s3Qbbm[2F(0#Zl-dUB+__a 'C,b?^?Y86A6  v,9b!QLQ-!4JbBbB ړzB-Ƒ&yth;9XCmizχ 9 L}#~O/NMMB4ԖXr!s\x CԀ1bA#aǀgqieےٯ~~Q=,#ayzGS]x}s^+9Њi_a!GGeJj1 GaDf'p 넬B1P8tN2{1~+_=,# a8|+v+ZMaH8ȁY Y#\N(}gpN 8] a8|؅5OF#{UG o?yaXrB)' x| LH(J.s[fWZ(vRC5F78mУKScH Q5Oȑs$8iIB+]@m[2v?~;<΋_B6El>87Jsԟ$c\P&VuQZY0?-ZI}NVFr,e%=J zϱl.0 f jB2FĔY8 z6 9 Rge ) eeF0I.h@ANdzN+_e ȍGQ:S+AiM8~;<΋_&ĔY* z՘df r1$tNϱ"a,Pv+nI[4G7Q#Q,DL!DM1)G-Z^4 cr~v0|6BB2K}ΨEJ}@#{^u d-X*_ʟ%A6Fh[Hf29Xر|B$i`iAFF !m 9Zhl ScіY`EIb,4GjzQ# _WjH8>B)*__'&;kر3aiYGX]i,BBgguJ{6BۖLasjL#tr&SH-P'g8zxcUt%=mKK?-IgjZC#F+CXm#;8rs&3R3&`!@4 je ~'R B9 #2+_T`#m4n,V X<(]RO8 z* GCX#9 e Vs:3UVn``PpdG(J;Ԓl-WFqH( +J1dUB0dY)v0҅?>uKη )G8C±*ҒYVFh/T]0CZ±G5}p 0R#n u;|tYJ`ˁmQǗG7"z>D6$8~@OYQג9U (-0؂cH8>5z_t!N T9MO<+&` B:1p!Aj$F 'T9Geے{Kw C6`g~ >f'Kη@$I:p$ C874O~Bե p ve/lZ\ HͤkUspT6d! h1b -!Uѕ̂:Xeu6BۖAƪt#jޏۉ&Z4BKKC|ˣa!GW;k,+H1pIJBlai B).!_Wh?@~w ـc񓿅T lG4JI7Pgإd]$i1vD#b0[ Dz}/?{ YL&(mǀˣoUQ=CG$(&BhҼ__+ I(-Z5LJ<&\`wi0+ϑ%Ku;%FGZK}R4GQ:{,sϡ:2>]Ylo!~#,K3PG;q 2A$XV=d1AMِp|yt`!\I,J+9v,9&Aj&zϲNW2^|0R ]UW/>d ,ׯaǒ-8)DRd  U v'gՋ 89 #2i`(\r%BjqB~Ή$2B:1\_F]%B7"~!\I SXY3p M ;'Op'p *+Pp 0ryLb 㓿#7ji;' >mKAYW 9 #2i"`@4LrA[98,cHXM=+٠3R3e$C24<Cbz@ܕStdgJA",+AYcBq%]7( /zߕ|?kg,J\։srz Sc!rF/zd>L0$-8lZTZ8%p 8>5:Xeu V 0\_ n+__a o t a8W|%=J avװc a8$pm0!(m{z]i"N \-98G2 X#;j`;ʲ݂c@M(RwF@!nQLy. 2olʂ47,ar8|2KY_? ? ߆x}cdU|B 89; nfHp$b@0Yi+/zOFxKOEMY} p=<>]d5dZZ6rP20|_Ov?8i aVdh,•d+_{bVp,tY  m Aq=<>]/TMLTK},4X-.Q' V V3c0"3!Ijp,tY WoP: ̿ jw0!ROaSڶd~+_=,#axzzr0R ]Uӓo \`g~ ;oQLAZ 5zZZ1pԀc@gfz1`w'r2FQbCv_Ɛp ,!ruNfRH&`g&$dUY|{f3cرgzac(Z!_WjH>:|q=B)*_B6rv,9=^u a8) UVR!AdjޫBI(`<(^+iQ) ΖI>z/sc#-;W'g GǗ/MM,#MٯJG e(A-h0&p$BW?i1|t|ziqH;,!H]YS_/cig +fW;tԠ5}\` 8V6BBZ+-z\/Ysp >:|q-Xr}`Qtb@O+޷F_IRotGǗ/lpt_U2Ûk,b>Zolp5XrB)'Hpi4,AN UVRs cѳY#ԔU-9< pBdhUG轜`wYBX v0 8fi* GpR zχ8gȢRc@VE!|O  z)z:\I}ΐ%=c@VE!Njz_iPZÛYJP-b8iǐ`8Q}VE!t$, #DZڟ\ UI}#4J A) * kIG@6>D'YiFH>ZoAEf:C3UQ=Xr qG'GG+__a Ýc,b$\`g~_a!GGeJjR<R W:drFd&3K(-Bp)nPu@[Rw̷h4BmKs(jYq~x?aٔ)dp[7. GaDfòzs>EM+Ýz1>'ޫ|szC+U͢#(L\sZW2\.X#U+r9d ,ׯaǒ-H1pI8G73p @+Sd٨>GaDf2  04RKǐ@O3u,Wg)6gKg NjjY@9@X Np i w0"3&5}p 0T(KwA@-mĊFPp 6 z'RgW4czd/KJGyY.}<>\!zo!tB9 #2KHra+_'blPZj3Ty.9ƒoq&d5eJ{G0B}lM@ˆd 88 #PsBoJ6"ZΉ~+rR3J+y&$4) b1$* _;H C li\.l`i >dz925 9scB֤lrFd&Ӏ19S4`WFqG1ǀ'=(Vf4ZG;''{Yt\V:j`h#L6Pg`Ys3<>\;8rs?>\7((Ls!6Cp |!H1ptUʟܜ,\~ ;kر|0R NRSq$4C)z;|0 )V10Wܜai9MMB+a+_b?wUd[R3FC JK#tF9Zs_ g | Sp NiawQ)\sjW'ʄ[e RM cͷȪ(g $7 Y#&X 2K5ݯ|+_=,#1H1ptU_v,9b!G pt3KS L!p{CB+]@m iT u-9.दh2A 2[daC\_WjHǀ'돾B).$aŸGkiQNl,-8 Ȫ(~+e$<9=B)*_' ,ׯaǒ-H1pQGGMǀ;H}u*>Gˆd!8tFj&s?'SV҉9rs~2`3R3jqY#F0BjqB4KzK tM5ZePZ8JGvp:|rH1ptUʟ\Y_c!\FY#؎l%5 U)XXJpSp \xB`,$D4%]K} ޲z3Kh HGέ'̷0Թ-PK9Q`9L!8͆H .L!p{t!A6,!J?鷐 %p 8Cl5Cp `2^[~NtxO rA3p 0Թ-`sN)jZ ~LWKdVH8> YiBרY8>^+TH8> , z꽝zr!\Iܫ|ǑLHx]CRVn ɳh?W~?w[jH8.O?B)*_@6r ʀ0R  ,[I 8 , j{!agxs}5* GKwLE7’PLHeK!&3p XH{0Cر|G?$&A ?.O E>-eJ!5GK_7*TiIf3d- _Voag^t<^+TH8.O?CVڲ5jz3\W*_q$Cx -8tY @0F1Ənp<b!8|O'B6r ʀ0R A-enpLڒbzJFhےd[DJ=:"NN`)+]QL;|t 9E@sFdyBk`P@zԔ0R'\$,Hr|PKKs]h L@G1 ƐfS p{G ֎h w,ejV!uL!X $!G7Rc2Z0Wp}zOGPڭKcH[͆j\$LTWp}zϿGPڭ\%arz'gO~YHp ȥ1٭fC5dKH' ZBZ1ZUz4ǀk\-ɑʟ헿1Gc5dKH' ZBlxP i44l߂l`Iޯ|+߫st=\0R ]U;G?H .`ǒ-H1pI8G7ы lʂ47 B紲l4 45&SH-P:@4cHW B/OnMɉmB)L!&F6BBN.ZBLZP5Q6ZȚ\ + ͒ @жRvLmg > ZXr\ttw+jM(!*v 9EP(д9*V4JJ?cR#HZ1Ro`PL+m<ܯ|og czxCDz j[^IKηB).$bpퟀsjjɐ ŷ&@d GeA+_=,#a a8|w\N .\KηX#pS 8l& [^%p ]T:ɁfZ֨1ۣoUQ='p YW~e0R \l`i9ǀZZ6rPT,X&Pg GA9E Mpi4p@ag&RLZ`,b@Oوz_K9AmKy dUt"OEaآRLJ=i6t4͆h'5OXF yZΉ-jE ӂ Z:$\@ŀ̳c8@p'Ԋp &#i~kXqtp2vN.7K,b9޼lp5XrB)fair WgȪ(IM 7h#_WjHdy a8|w>>Y; VSmq0r9dǀ5* GCI;* Xr{H1p_V2WX#U+\ XrB)." 5O{R3-=턮i('>eX@S&k٢HzL`2Y%G*l6DTKVW7 c~ia G7 ld4dT~+e$ a8|h9VSmq0R } 0Ӓ,7\NȪ(%!z欄BSwu JUF#__a ]B_ F#{U|v+=Ǘ'7,+H1pd?GveEMNlr[Yt.$҅6BBZ+nP+0LZPuHKMÝ:!~x?H{`#mi ,awc OV=~#ͱRa,|p$P+_)GBMN % D9 #2ǃӽROYtNZJa_fiP+Bi 1l߽tOYtNZJa+%||yr-jrb@2MjU( ޷F@^y`l$3M 'x99!S?Ԙ0T( =B0! η H4tt?H6`!G &V9Aʲz@v7G/^CMYH]/_#|?zx2>=B)*_o$A6 XW,b8)DRJ8ы}VE!t}? d, % ,ek;G1k;X)z? MrFd&$ԥ<"P Q'p 4KPL@Vd>O`s[e lTA)Y鶴4JKE9\,bh02B6P(߇(TPg`Y!B -<>OHl*b)amd޷p̪z__a /oFW@6rv,9b!GGRSq$4'h5Eʲz$=J\xBԀж4cH0T(0 d-FlU #KHҀrTT#GaDf2v8$@68%wHR#GaDf2 m L>L{CPv YC֨1 *˟$p m)\ۢQ5Fh[HkY 3j!kj@ƨ9jb,-QE"$Usp \xBz Sc!Cd3N 7f_w_ag&>GVE!ԛq'uG1EgSP=ǀYJBO4?j%KszR3PZ1`gxs}5ZagcCgaPg#7'X6R'ܭ{ YLPl0|u䣏JY8|SRf B-6r9rFd&_WjH>B)*_?I .\Fˆ4B)f B S+9 z0"3JK#!,uȪ(#MPZQe* W\IMe fS .`޸"3aHSQtT?Y>އ_ݫ|szC+UdUBװ #XG‡އQ~+_=,# a8|]| ;kر| b Ѷ)nPu@+]mKzr[C8Z`m L,A;C&\eA$ȷeDpR;VӄAH`#-$3R<_Dˆ4l`(\QcB1W.OnM JK#% 2[4`Y=&+󓄬d2v W(;1|'#zkؕe*~+_=,# H1ptU?: .\KηX#pS 80Bj Uޒ%Y XOwOn?hhKwl6c&Pg LZBo Ǒ&xt!Xqt3A(LcBq@4-lGTcP(-YѪ9(LsF7T( 8wD 8<;zx KwNf 95ܿ|wTPZ2 @+(lPKFJƒ*49 >A9&A6j 1Zr~vEC?-. M,z/,Դ , %=ɳE*d ޫ!3jc#Q¹-Nn (Y(40|`BmHstFm(#a>V& a*'^QG-JKsl*{{H[0Pl%I-[#չ0 aVӄΨ&di1$PR&A%p$9GszCDCSʁB4 :e޷jJﵥiΨI'dQגҳ ,t:/Hs L@4B(¹Y"Zp?  {b0 A-aFVf TwRgWR'\$XYtZqb`ٔKC tjL-p:\BQBg?d23^ZshL#uGJגrRY-=&SH-{*J'X*=KzYtb -vy  LẐ,B:1O]9poV[tFm(O ?kN>'M(Ï<`PKFJƒ*QMHMz?IX!1-0֖F(S; @uϑDGv &SH-1h B:1p#cre)EF " O茪Lx{1P3ȷ(8Unn1UΩ %7<6o5 !XǗsdw9ѧ'Ov3?Vf dNql*ڎH}?JFiQy;I3{(4džmdWxă?QxH؀ҊcdP)*p lƒ?ƒ#ZQHB8yV@+Vέ  *픮!5>4$˂>z,,W~?w'gX`Sf #a=r ѠSʁjb![8Zqbt+7,3,ׯF#;#Hs>+]KJ7X@BG&rC2ls|}ՇK2¡P5Vd3X0r{0V,[NF -F+Ce0)vLKC0Ӓ,[ʠ-4C% bw*ޯ|;Qb?џza<RքP-VWdžj?y6 895Rr!R#yB' ,;EYIc@M r+HOΰ;|4KGo!uveM#Boa͆,KUs$4dg_J`,9!-Q='AN1YXj^ O*3=c#O9YBVu=EAk I{5 (̂n1TO*ۖ෯e~]5Hrb24ߢ1?6B?BwFgܐp-Nn"؉b1\JWZ,?SYj}qF<|w:RbsH&@8{>ŒpLڒ%a(=ǐH-{t=%:6F֨12B(dDf53~Woܐ%!jZS1` 8ǽV6BۖbA=LJ5cag v:Xef '[ն3ce~ޏ%&^݄ΨipV,"!P 6US~@<&$Avw,A8/nΠ8i0bf#d19PgPłJ7Pg Gvz{˄֨12bwڈ ƒoqHqB spJ'p #aȥYw~?’yfG kiARWZZ6rPTB ހs2KFgT+ys2Kz ArYfRM LVFnw?s%ۄS%|tƎ=8Iـ2FCL>DVB@Osz1Q#OzP\YT%߂cU.e#3K5I( ̷}--9(YIBQi @+UQY@N&l  |ˢs[pS(̆j[[pz@4}N@ U&dխ B !h KnA * 2Y9IЂKCd 'tFrP-J-ƒo8zMHfYiKz u J 7GXW~C‹_'ne&NS3|{FgBԠUsXZ H ǒV{[# UsҲ@4@^gT+茪3بJ7BVEc@EQѪ9`3U,B`Eѹ4W*-\X+Xs_w*Ճ?^2~og~'_G>S/,gO}TʚٺH)>|ݫ:ҵ|Uٶdj,X*]/l,ejz9!umH}#GGJ,&QMRcѓk'hW~w.ΩUp]C^iQ,[ TL# ʶ%ӠU[[ԛ&A4`2҅ʈ :#5IX9 Hr/+IlAd!Z*Ns=Y/>_8Go{>@4 JoP.v^v/>~|׻GO?W/cB).9rGO֯JPS+55tY hޫ3lbj(m@mK~Q6bA)D~ދ&YC4f #NMhR|N a';'ۄLLV҉9RgjV8&SH-^޷dqieے% )N14߀ccH0,E@9Rˢ|?W`;Z5G+]mKWG:$<>ĝ#(P~@Q)Xp XW}$}ۇeZ:aX҉9eǀYuAٶ4I3p l['TL#i89 IpNeTIM&p `W1`d}?(&pn1$8a6dl[2G * #pSp L!p{CB&m`ǀB)ZC?-Iۢ4 l[22'owNƷpb@p (SYʿ1J'F f#Oqi iv[ HB6`)%Cp в_,+Z5Ǔ;'[3Ɵ![:n '@pr`"+mBs^BY~+# qYǐvNƷX#JM 8Bz uۉ ,Ъ9L!p{}Ŀ =J`#-?V:j ˂' +jMQڀ|J{6Bۖ%{bKSp H1p|OgzC >8N޷j~mW/1N 5RS,4:+c@+]H`#-QK ʶ%Ib lbʂiAٶdfSސ55 cQN1R W:.`P- xs7lPZ{CSp Kq+r:ǀAٶdf B`*GI(&轚~Z!;'cxXFe#3K5l)l!'+T4KE)*ma9ZnZv+uH&@6)kIBc@ Hb CJ?l[2s7EMԀc9@cOK*JK#!, US>a!' , jpg| @LsXҵ<;zw`P04A90BjZetAH}jAu 9"!=Dii>ćc981YsSq 8 .NY+IB)+9rFd&cQ6mKsbpBjY +&;#bAh @F-0`g#8H&Ip!6BN ':Vsp /,!1-J6 +z2iv+RC0lGT[l &B})QC!SXU,,p (Z FMAZ[T(E>~߿Q6 QtHp$ h5iUnnQP|h;|A eQAٶ4PA(SV3p @iE]G zo  *Ҧ Ƒ&X 0ROe]Yb޷jz* jSj-9p}/aiS3 )V| =D-)V|:F>z`P-Q9Wv[jAfNY+.@6C`U1`P-&N{5`!'( (PfpDHG%JY<[wZ>ŏ*_ZwZ>ŏ`혌LTzkiYL!b@n}yU+I]G5ǀ3т.>ǵ,t!9w띇e1 c1;|_C!bC/ ]2 jj+mAi>DRcUQő ,df r\pq-u? ^iN+S9 #23tڱ2o[ ή~xXF3^%{bp]cg#8<aT*7Xr,/zf Vۢ3?9X-8kUigi9|vXO@OEE;`* #-8JL"`/YL*脵ceF ~n r ϩKRVnYiMy 21@ŀ j)z/A8{";zpR!!Vc ,YB)Vg :aXdfz9U,࿂t݀aH[p e19D4GA-~K-[V=D[;0\Oprs NsX6RC6,eGDid9M0$[ !VbpbEv{GAgI+_ ej2`#,dƘ9d(Me1 M+?>C?'onn>яܟ૗/{|r׊CǐЪr`)+=Jɉ-ƒo8&dU8$c@;aXzQctFj~SvO?ۣ!^~w뷾ݽWSzC59l[2vL~+~W~SG#pJof NsҲ9 >IX^iG-v:#wB׳uJci "5eYpS3~Ϧ x*7 =k1 4]2o*_{_b^+~W~U6b @sbWv>IgSRPv3~LFpyձT3R8!P {W&{?;8V9XrTbQ N>(WW;|XO >=Y_}w{?z*_Xbq@XYSp4&tFicM+?>C?%^OOvGǧW_{roo;+?>C?%>X,O˯vO*_W%cL(JˠY[4GzvU H8^_^"ޯ~QsH8Uy$1lPS+50| 8x,AN1ŪhT' ZgSDCزbaW@@N1$/gUB!! XrcHs/b@f՘df -zo;ʲ]I}1@q9֗׿]u9ǀ* Ohp}; Kw;o= MQ["Vj%tF)z/<5X_^,dW'ب 88jPsSca;ʲYTlH0 3^rb@stL1@ŀ稥pTW~iwOd?Q)kƒg#]˧W~jukof QZ7\XBieHW2 Q,B€hd$5 6R';adGs6N2;گ|KcyLHMH1pba,6cHY_Y#pSPfh[9,77Q6X#.@6x9<~{tǑ&(رH1pFG7;;%=|"3YG`,CN>8*' +U>3kÄ ؕez95nD$1J+&,hFazUѕLUѕ̂f k MfB).O19,1޳FSS2V|fjNs%BLpz䗰+Tƴ 3KXPMbLjAƔp 0I.>ƒo1$<l>O#Q¹-V|fm ,9C\z'tFm(f--DWvOxe]YV=بJ7fO;|ޏ;G`,DEˆ4b@9*5}p 0T(W~ )8V D]p `ɿ[)zχ3>zY~+rxO =h[܀ckdUB '`E0OLlZ-9`@<&`gxs}59,7v՘df +z_v0 b,Lj3;ÛFR dCXң!G@6Py1hi٠mK(&Fh[Hf!GaDf2ыKwKz d3 GaLs=-F ʿ> Y9YH~_/cH0fd!zp `#7CЙ0"3&A z\NX#%Xsp(FKǀuBV/Fn6drFd9jiA4dFn"^~pg?I(SD-Z5_®,SneM*)zO"&dUBƒoq#71j~NΰRa,|҆ыX-{O%2 cɷ8=~KtFm(pS6l[2}gTYJ4|p `#7#GaDf2jz*/z9%3TXҵȪ(!.`P,ag#&!z_ڐɳ&AX&#Og?@4Fn6df 0agZfU{x%,ׯ<=_^+D{%̷ 8ԊMѪ9^jXfpR3wS!zoi>GX|WC|_NT؏;|^X25uבSV+_y~+[?$oZm[2 `OPbyXmǐ j{ qI]G5ǀ3т.>ǵ,t!9w띇e1 c1;|_C!bC/ ]2 jj+mAi>DȪ(!.`P,ag#&!z_ڐɳ&AX&#Og?@4Fn6df 0agZfU{x%,ׯ<=_^+D{%̷ 8ԊMѪ9^jXfpR3wS!zoi>GX|WC|_NT؏;|^X25 MEX 1.14 update documentation 20 July 1985 Ron Fowler NightOwl Software, Inc. ------------------------------------------------------------ This is release 1.14 of the MEX Modem EXecutive communications program. This release repairs several bugs reported in version 1.12, and adds support for 1k XMODEM file transfer packets (this modification has also been made to all of the commercial versions of MEX-PC and MexPlus, with release numbers of 1.40 and higher). ------------------------------------------------------------ Why 1k packets? With the current proliferation of 2400 baud modems, it has become obvious that throughput (i.e., efficiency) of file transfers could be higher if more data could be added to the fundamental unit of exchange (i.e., the "packet"). The reason for this is essentially the "stop and wait" nature of the Christensen protocol: send a packet, wait for an acknowledgement, send a packet, wait, etc. When the packet size is relatively small, as it has always been with Christensen protocol, this "turn-around" time be- comes a significant portion of the total time necessary to transfer a file. If the medium through which the transfer is taking place exhibits its own delay, the problem is compounded (all transfer media -- even hardwired RS232 connections -- have some media delay; this delay is much more pro- nounced in satellite telephone connections and packet-switched networks, such as Arpanet and Compuserve). Conversely, using a large packet size with an inherently noisy medium can not only destroy any gains realized by using a the larger packet, but can actually increase file transfer time, because retransmission of a large packet takes longer than retransmission of a small packet. So it seems logical that any large-packet protocol must also have the ability to "fall back", in the face of line noise, to the small packets that are so much more efficient in the noisy environment. MEX 1.14 implements this fallback feature; it uses nearly the same al- gorthm employed by Paul Homchick in his 1k-packet modifications to the public domain XMODEM program (version 10.8 at the time of this writing). Further, the 1K packet option is entirely user-selectable; if you don't want to use large packets, simply continue using MEX as you've always used it; there's no penalty for not using large packets. If you prefer the higher efficiency (and noisy lines are not a problem for you), simply append a "K" to the the "T" command when you're SENDING a file with MEX 1.14. In fact, you can make this change permanent by entering the command "GLOBAL K", then using the CLONE command to save your modified MEX 1.14 to disk (be advised, however, that if you do this, you run the risk of not being able to exchange files with versions of XMODEM or MEX that do not have the 1k packet capability, without expressly turning off the GLOBAL K). MEX 1.14, when receiving, is always prepared to receive 1k packets, in any mixture with 128-byte packets. Thus, when you're preparing MEX 1.14 to receive a file, you need take no special action (in fact, the 'K' option, while accepted, is ignored in a file receive). MEX, when transmitting, will adjust for line noise; after the third (not necessarily consecutive) error has occurred, MEX will calculate the ratio of errors to "virtual" 128-byte packets. If this ratio exceeds 1 error per each six 128-byte "virtual" packets, MEX will switch to 128-byte mode. Note that MEX will NOT switch to 128-byte mode until the next successive packet, however. Thus, once a packet has started as a 1k packet, it must finish as a 1k packet (otherwise, certain combinations of noise could cause the transfer to appear correct, but be received incorrectly). If you're using the batch option, MEX will always switch back to 1k packets at the beginning of the next file. Note that MEX 1.14 is fully compatible with the emerging YMODEM specif- ication authored by Chuck Forsberg of Omen Technology, insofar as 1K blocks are conerned (MEX does not "round up" an outgoing file to 1K, however -- it switches to 128-byte mode when the remaining outstanding byte count is less than 1024. This is permitted by the YMODEM spec- ification). Progress reporting You'll notice that while transferring files in 1k mode, MEX will print "logical" record numbers on the screen (actually the starting and end- ing record numbers of the 1k packet being sent or received). Note that this is the 128-byte record number, and bears to relation to the packet number, which is part of the packet "envelope", t increments by 1 for each 1k packet, and is of no consequence to the user. ------------------------------------------------------------ Bug fixes for version 1.14: 1) Previously, after opening a terminal file with TERM or TERMA, then issuing a CALL command, the caller would be left at command level rather than in terminal mode when the remote station was reached. This now works as expected. 2) Transferring a file using either Christensen or CIS protocols, with a term file open, would usually garbage the term file. Not any more. 3) Printer-buffering didn't work correctly when the buffer filled. This has been corrected. 4) Long ASCII captures would not be written to disk correctly if the capture buffer was greater than 32K (generally, this only happens in TurboDOS or CPM+ systems, that have large banked TPA's). This has been fixed. ------------------------------------------------------------ Files present in this library: MEX114.COM - The newly released Modem EXecutive -READ114.ME - This information file MEXOVL06.LQT - A list of all known MEX overlays (and a little hype for our commercial versions). (Note that the help file has not been re-issued with this revision). ------------------------------------------------------------  mode when the remote station was reached. This now works as expected. 2) Transferring a file using either Christensen or BUFFERS.DOC This file explains the buffering scheme used in MEX, and how you can change it using the MEXPAT overlay file. MEX employs a number of dynamically-allocated buffers for such things as terminal-file storage, printer buffer, keystrings, modem pre-read queue, and the phone library. The size of these buffers are defined in a fixed area of MEX; you can change their values by editing and assembling MEXPATxx.ASM, then using MLOAD to bind in the new values: ASM MEXPAT10 MLOAD MEXNEW.COM=MEX.COM,MEXPAT10 The variable labeled PSIZE in the MEXPAT file defines the number of Kbytes to use for the printer buffer. This can be set as low as 0, or as arb- itrarily large as you'd like. The variable labeled ASIZE performs a sim- ilar function for the terminal-mode file capture buffer, but must be set to 2 or greater, to reserve the minimum 2K space for file transfers. One of the two (and only one) must have the value 255 (0FFH); this defines a particular buffer as the "top" buffer ... ie, the buffer allocated after all other space has been allocated, and extends to the top of the TPA. This is usually the largest buffer, and I recommend that this be the terminal-mode capture buffer, since that is the most frequently used buffer. The PHSIZE label defines the maximum size of the phone library, in entries. Currently an entry is 37 bytes long, so the "standard" value for PHSIZE of 30 results in a phone library consuming more than 1100 bytes. Similarly, the KYSIZE variable defines the amount of space (in bytes) re- served for terminal-modem keystrings. The "standard" value is 400 bytes. If you don't use phone libraries or keystrings, either variable may be set to zero, and the resulting space reclaimed for the "top" buffer. Another buffer variable is the NSIZE label: this defines the size of the file-transfer batch filenames buffer (in Kbytes). For each 1K allocated to this buffer, you can transmit 85 files at a time. Hence, if 85 files are not enough, you can set NSIZE to 2 and transmit 170 files at a time. If you don't use batch file transfers, you can set this variable to 0, and reclaim the space for the "top" buffer. The XSIZE label defines the number of Kbytes for the file transfer disk buffer; note that this is not an allocated buffer, but resides within the terminal-mode file buffer. XSIZE is used to restrict the actual size of the buffer, and should be less than or equal to ASIZE. This restriction is necessary in systems with extremely slow floppy disks, since there is the possiblity of the remote end timing out while MEX flushes its disk buffer. PQSIZE defines the size of the queue used to service the modem at certain times (such as after sending an X-OFF to the remote when the terminal-file buffer fills up, during the overflow wait time ... also used to "watch" the modem while transmitting keystrings, SENDOUT strings, and within certain long loops, when there is a possibility of losing characters). This buffer must be a minimum of 2 bytes, and may be as arbitrarily large as you'd like. There is little to gain in increasing the size, however, unless you con- sistently run at speeds greater than 1200 baud. You may at some time see the message "Not enough memory for MEX!" ... this happens when there is not enough memory to meet MEX's minimum buffer re- quirements. Normally, this will only happen in small memory segments (when you're running a small CP/M system, for example, or running in a small MP/M segment), but you'll also see it if you've increased MEX's buffers too much. The only recovery possible is to reduce some of the buffers (or obtain more memory). l-file buffer fills up, during the overflow wait time ... also used to "watch" the modem while transmitting keystrings, SENDOUT strings, and within certain long loops, when there is a possibility of losing characters). This buffer must be a minimum ofALERsAPPEN:AL%BAKFILBELL-VABELL-CMĠBYŠBUFFECANCE̱CAL̸CAPTURCHACHECKSUCICLOCsCLONCLӠCOLCP͠CRDEBUDECIMA0DE̠DIAkDIDSàDU-SPEËERERRIEXCLUDEXTENhESôFILTEGLOBA)EXIԠHELHE0IINITFILpKE KEY LLISLOALOMULTɓPAGPHONwPRECHPREFI؄QUEUREAFRExREPLٙRETRٜRTIMRUSAVSEARC)SECON.SENDOUԆSEԠSINGL>SLEEЦSPLI6SSEԠSTA|STRINGTYPSILENSODELASUFFI؄SWITCSYSTE͠TATER TERM TERM-MODGVAWCHAAWECHWLINAWRԠWTECHϫTRIGGEұSEдXLIN&XOo Copyright (C) 1984 by Ronald G. Fowler  The HELP command with no arguments prints out a list of available help subjects (as you've probably guessed by now, since you are indeed read- ing this). The HELP.MEX file must, of course, be located in the drive and user areas as specified in your overlay configuration. Help will print a list of available topics. To see this list, do this: HELP ? To query the HELP database for any of the selected topics, do this: HELP for any topic-name displayed by "HELP ?". In general, HELP frames explain syntax with the use of the '[' and ']' characters (which denote optional items) and the '<>' characters (which indicate a data-type, such as or . % You may move freely among drives/user areas while the HELP file is opened; MEX will remember where to find it. Once opened, the HELP file will remain open for the duration of the session, unless a LOG command is executed.  WECHO is a STAT value variable that affects the use of the SENDOUT com- mand. WECHO is the time, in seconds, that SENDOUT will wait between characters during a reply from the remote, before considering the reply ended. This should not be confused with the REPLY variable, which is the maximum amount of time to wait, after sending a string, before con- sidering that no reply is forthcoming.  QUEUE is a STAT variable that enables or disables the MEX queued I/O functions. The overhead associated with the queues may cause you to lose characters in terminal mode at speeds above about 4800 baud (using a 4 MHz CPU); if you commonly run higher-speed hardwired connections, you'll want to turn QUEUE off. Although used for various purposes, the most significant use of queues within MEX is to catch 'overflow' characters from the remote after an X-OFF flow character is sent in terminal mode (when the ASCII capture buffer fills). With QUEUE turned off, there is a possibiity of lost characters in capture files if the size of such files exceed available memory space.  SODELAY is a STAT switch variable. When ON, SENDOUT strings and keystrings sent from terminal mode are tied to the WCHAR and WLINE delay variables, al- lowing convenient entry of passwords, etc. from a READ file. Note that, for SODELAY to have any effect, the WTECHO switch variable must be OFF (WTECHO takes precedence if both are active).  CAPTURE is a STAT switch variable that enables and disables recording of the save-in-memory terminal file. It works similarly to the terminal mode -S and -U commands, but allows access from the command line (and hence from a READ file). This variable can only be changed if a terminal mode capture file is open (see the TERM command). PRECHO is a STAT switch variable that enables and disables the logging of incoming characters to the printer. It is similar to the -P toggle command used in terminal mode. Changing this variable is most useful when executing from a READ file.  TERM is very similar to the 'T' single-character command ... it takes a file- name as an argument, and opens that file as an ASCII-capture file, but does not actually enter terminal mode. This is most useful within a READ file. TERMA does the same thing, but opens the file in APPEND mode (as if the single-character T had been entered with the A option). Examples: TERM WILLOW.SES <== opens file, returns to cmd mode TERMA SOURCE.LOG <== same, but opens file in appnd mode For more information on terminal mode, do HELP TERM-MODE. For more infor- mation on append mode, do HELP APPEND.  The ALT command supports the ALTernate drive/user for READ files as well as .PHN and .KEY (phone libraries and keystring files), and, if the 'A' (append) secondary option is in effect, the terminal-modem capture file. ALT allows you to change the alternate drive/user; its syntax is: ALT Examples: ALT B3: ALT A5: For more information on how alternate DU's are used, and how to set up the ALT search path, do HELP SEARCH.  SEARCH is a STAT variable that may take on the values 0, 1, 2 or 3. SEARCH specifies a search path for READ files, phone libraries, keystring files, and (if the append secondary option, 'A' is specified) terminal-mode ASCII capture files. These files normally are taken only from the currently logged DU; by modifying SEARCH, you can change the way MEX finds these files. Two drive/user areas are possible: the currently logged area ("logged" D/U) and the Alternate DU (do HELP ALT for information on changing the alternate). If SEARCH=0, then only the LOGGED DU is searched. If SEARCH=1, then only the ALT DU is searched. If SEARCH=2, then the LOGGED DU is searched; if the file is not found, then the ALT DU is searched. If SEARCH=3, then the ALT DU is searched; if the file is not found, then the LOGGED DU is searched.  HEX and DECIMAL modes HEX and DECIMAL are STAT value variables; they are mutually exclusive (ie, turning one ON turns the other OFF). These variables specify the default input radix of commands that take numeric arguments (e.g., SLEEP, STAT VAL <#>, the '#' spec in CALL commands, etc). If HEX mode is ON, then these numbers are considered Hexadecimal; if DECIMAL mode is on (MEX is distributed with DECIMAL ON), then they are considered decimal values. You can force a decimal number, regardless of the HEX or DECIMAL mode, by preceeding the number with a '$' character; similarly, the '#' character implies a decimal number. HEX mode has a side effect: it turns on HEX record count reporting in file transfers.  SPLIT is a STAT switch variable that affects the screen display of the phone library (done from the PHONE command or the CALL command). This variable may be turned off to force a more compact display (two en- tries per line, instead of one), but to work properly, requires a terminal with an 84-character line width. If SPLIT is disabled, any baud-rate codes associated with an entry will not be displayed.  MEX has a special feature that allows you to maintain 'log' files of your sessions; this is the 'A' secondary option (specified with the T, E or L primary commands when entering terminal mode IF a filename is specified). When you specify the 'A' secondary option, MEX will search the logged area (and/or the ALT area: do HELP ALT and HELP SEARCH for more information on searching) for the file specified. If found, MEX will scan to the end of the file, and append new data on to the end, rather than querying the user for an erase. If 'A' is not specified, MEX will limit its search to the currently logged DU, and, if the file is found, will ask you if it should erase the file. In either case, if the file is NOT found, MEX will create a new file in the currently logged DU.  WCHAR and WLINE: These are value variables that may be manipulated with the STAT command. They specify delay times in simple file transmissions done within terminal mode (with the T command). When you trans- fer a file, MEX will ask you whether you want to use these delays. WCHAR is the delay to use between characters.(0-9, in 10's of milliseconds) WLINE is the delay to use between lines (0-9, in 100's of milliseconds) WCHAR and WLINE delays are often needed for timesharing mainframes and BBS's written in BASIC, to allow the slower remote end to catch the entire file.  The READ command causes MEX to take command lines from a disk file. This can be handy for such things as controlling a set of file transfers (es- pecially when you can't be present for the entire session) and executing complicated login sequences automatically. READ, used with the EXTEND function (do "HELP EXTEND" for information on how to enter EXTEND mode) provides a means of extending MEX's command set. The syntax for READ is: READ [] [] ... \ \ \ ________\_____>> optional! , , ... etc. are described in succeeding frames. The READ file may contain any valid command EXCEPT another READ command. These commands may freely move among drives and user areas; MEX will re- member where the READ file is located. % Typically, READ files are created with a text editor, and may contain STAT commands to set MEX for a particular type of connection, DIAL commands to actually make the connection, and SENDOUT commands to log in at the destination. It's possible for an entire session to take place under a READ command. A READ file will terminate when the file ends, or when a CONTROL-C is seen at the console (aborting any command with CONTROL-C will abort the READ file).  It's important to note that, while you can use a READ file to enter the terminal mode, the READ file is not used while the terminal mode is active. When you exit terminal mode, the READ file starts again. Normally, READ commands echo on the screen when they execute. You can inhibit this, however, by manipulating the SILENT variable (do STAT SILENT ON to inhibit the command echo). The following frames deal with the READ command with parameters. % READ with PARAMETERS READ parameters are very similar to CPM's SUBMIT parameters; they are called ACTUAL parameters. If they are present in the command line, they will be plugged into the FORMAL parameters in the READ file. This substitution facility provides a powerful tool for generating multiple-purpose command files, as we'll see in the proceeding frames. Formal parameters occur in the READ file, and take the form {n}, where n is the parameter number; these numbers correspond sequentially with the ACTUAL parameters entered on the command line. The ACTUAL parameters in the command line are substituted for the FORMAL parameters in the READ file when the file is executed. A special form of FORMAL parameter allows a default value to be used if an ACTUAL parameter is not specified on the command line; this form is {n:} where n is the parameter number, and is any arbitrary text to be used as the default. % If the default form of the formal parameter is not used, AND no actual parameter is specified in the command line, execution will continue, but the parameter will be blank. Normally, the parameters in the READ command line are terminated by the space between parameters (or the end-of-line); spaces can be imbedded in the ACTUAL parameter by enclosing it in braces. The next frame will provide a simple example of READ with parameters. % Example, READ with parameters FILEGET.MEX contains the following lines: SENDOUT XMODEM S{2} {1:SENACA.DQR} R{2} {1:SENECA.DQR} ( {2} and {1:SENACA.DQR} are FORMAL parameters). This file can be used in several ways: READ FILEGET will simply transfer SENACA.DQR to your system READ FILEGET MEX.UPD will transfer MEX.UPD to your system READ FILEGET *.NEW B will transfer all NEW files in batch mode READ FILEGET USQ.DOC VT will transfer FILEGET, View it, goto Term mode The following line illustrates how to expand a parameter, using the above file: READ FILEGET {*.BOO NEWSTUFF.DOC} BX [use if MEX is running on remote] (Transfers all .BOO files and NEWSTUFF.DOC) in batch mode, then disconnects) If you turn the command extender on (STAT EXTEND ON), the READ in the above lines can be omitted, making the READ file look like a built-in command. This affects single-character commands somewhat: the disk is searched before the the command is checked for a single; you can avoid this by prefixing single- character command lines with a '*' (eg, *RQ FILE.FOO).  EXTEND is a STAT switch variable. When turned on, it modifies the way MEX's command decoding works: if a command is not found in MEX's command table, MEX will pass the entire command line on to READ, causing the command to look like a READ command (without READ being present on the command line). For more information, do "HELP READ".  The DIAL command performs the same task as the CALL command, except that after calling, DIAL returns to command mode (CALL goes to terminal mode). The syntax for DIAL is exactly the same as the syntax for CALL (do "HELP CALL" for more information on how to use both DIAL and CALL). DIAL is intended to be used in READ files, where it is desirable for the READ file to retain control after calling a number (READ files have no effect in terminal mode; thus using CALL in a READ file would pause ex- ecution of the read file when the distant end is reached).  INITFILE is a STAT switch variable. It determines whether or not MEX will look for the start-up file INI.MEX when it is first started. INITFILE is intended to be used prior to running CLONE, to prevent the cloned MEX from looking for INI.MEX. For more information about the CLONE command, do "HELP CLONE".  ALERT is a STAT value variable; it determines the number of times the console bell will ring when a remote computer is reached with the CALL command. ALERT works only on calls that have taken more than one dial- ing attempt to reach. ALERT is handy for dialing with the repeat option (do "HELP CALL" for more information about the repeat option): you can enter a number (or group of numbers) to be dialed; with ALERT set non-zero, you'll have an audible signal that a call has been completed.  The PHONE command may be used to query the phone number library, as well as for adding and deleting numbers. To add a number, use this form: PHONE = [] Where ID is a string (up to 8 characters) that you want to use to call out the number and is the telephone number. If already exists, it will be replaced. is an optional rate to be associated with the number, used by the CALL command. To remove a number, do PHONE = To see the entire library, do PHONE To see a single entry, do PHONE  The STAT command lets you examine certain system variables, and change certain others. In general, the syntax is as follows: STAT <<== to examine a variable STAT <<== to change a variable The NEW-VALUE will depend on the context of the keyword in question. For example, most of the switch-type variables are either ON or OFF, hence, STAT BAKFIL <<== prints out ON or OFF STAT BAKFIL ON <<== turns on BAKFIL STAT BAKFIL OFF <<== turns off BAKFIL The value-type variables, on the other hand, will print the number or text associated with that variable. Setting the value requires the entry in units associated with that value. For example, STAT REPLY 5 <== sets 5 seconds as SENDOUT reply time STAT WCHAR 4 <== set 40 ms as transmit-character delay tim during a terminal-mode file send % Some variables are read-only, most notably STAT BUFFER (which prints out the save-buffer and printer-buffer statistics). To obtain a list of all of the options that can be viewed or changed with the STAT command, do STAT ? You'll note that most of the keywords you'll see printed have their own HELP section.  SENDOUT allows you to send an arbitrary string out to the modem [see STRINGS]. This is most useful in indirect command file [see READ], but can often be useful in normal interactive mode. The syntax for SENDOUT is SENDOUT Before the specified string is transmitted, a PREFIX string, if any, is transmitted, followed by the string specified to SENDOUT, and terminated by a SUFFIX string (if any; the default suffix string is a return-code, normally terminating the line to the remote). After transmitting the string, MEX will wait for a reply from the remote, up to a pre-set number of seconds; any reply will printed on your screen. % Following are settings and variables which affect the SENDOUT command: SUFFIX: \ Both of these are described in the previous frame, and are PREFIX: / further explained in their own information sections. WTECHO: Manipulated by the STAT command, this switch-variable determines whether or not SENDOUT validates its transmission by waiting for characters to be echoed from the remote. If set to ON, then SENDOUT checks each printing character it transmits with the character as echoed by the remote. If a mismatch occurs, SENDOUT marks an error, sends a CANCEL character, and awaits a TRIGGER character from the remote. It then begins again, and repeats this cycle until either the transmission occurs without error, or the error count is exceeded (which aborts SENDOUT). If you use SENDOUT with WTECHO off, you'll also likely want to set TRIGGER to null (STAT TRIGGER ""), to avoid trigger-wait. % More factors affecting SENDOUT: RETRY Manipulated by the STAT command, this value-variable specifies the error-retry count for SENDOUT before aborting. CANCHR: Manipulated by the STAT command, this string-variable (single character) specifies the character to be transmitted to the remote to cancel the transmitted line after an error. TRIGGER:Manipulated by the STAT command, this string-variable (single character) is the character the SENDOUT command waits for after an error-cancel, before proceeding with the retry. If the other end doesn't echo, set TRIGGER to 0 (and WTECHO to OFF), and MEX will simply send its arguments and not worry about validating the echoed string (this is the technique you should use to send Smartmodem command strings, for example).  REPLY is a STAT keyword, and specifies the amount of time (in seconds) that the SENDOUT command will wait, after sending a string, for the remote end to send a reply. To query the REPLY constant, do: STAT REPLY To set the REPLY time, do: STAT REPLY where is the number of seconds to wait, between 0 and 255.  RETRY is a STAT keyword, and specifies the number of times the SENDOUT will attempt to send a string before aborting. Note that if the Wait-For- Echo switch (WTECHO) is off, RETRY will have no effect, since no error can occur. To query the RETRY constant, do: STAT RETRY To set the RETRY constant, do: STAT RETRY where is the number of retries, between 1 and 255.  MISCELLANEOUS COMMANDS BYE, SYSTEM, EXIT and CPM are keywords used to exit MEX and return to the operating system. Any open terminal file is closed before exiting. DEL is used to close and erase an open terminal file. DSC disconnects the modem (may not be implemented in all overlays). WRT is used to close and save an open terminal file. SET is a command defined entirely by the overlay; if your overlay doesn't implement SET, MEX will print an error message when SET is invoked. SSET is a similar command, intended for the Smartmodem overlays. BELL rings the console bell times (regardless of the BELL switch). CLS clears the screen (if supported by the overlay)  SLEEP is used to invoke a delay (handy sometimes in READ files). Syntax is: SLEEP n where n is the number of seconds to wait (a ^C from the console will abort the SLEEP command, as well as any active READ file). Sleep, used with the STAT CLOCK function, can be used to "tweak" the timing constants in MEX (by timing the actual SLEEP period, and ad- justing the CLOCK value until the SLEEP argument agrees with the actual measured time). This is especially useful with multi-tasking operating systems, such as MP/M and TurboDOS, where background processing wreaks havoc with the internal MEX timing constants.  WTECHO is a STAT keyword, and determines whether or not keystrings and SENDOUT command lines transmitted to the remote are validated by comparison with their echoed characters. When WTECHO is ON, all printing characters transmitted to the remote must echo correctly back from the host; this effectively halves the transmission rate, but provides error correction feedback for the SENDOUT command, allowing it to cancel a line and re-try. If you're sending command strings out to a line that doesn't echo the characters, you'll want to set WTECHO off. Additionally, if you're using the SENDOUT facility, you'll need to remove the trigger string (you can do this with STAT TRIGGER "" , which effectively removes the trigger character.  TRIGGER is a STAT keyword, and specifies the character the SENDOUT command will look for before sending out its argument. To disable the trigger-wait function altogether, do STAT TRIGGER "". CANCEL is a STAT keyword, and specifies the character the SENDOUT command will send to the remote to cancel the line after an error.  SEP is a STAT keyword, and allows you to change the command-line separator character. ESC is also a STAT keyword, and specifies your terminal-mode escape character, used to activate terminal-mode functions (such as capture and printer buffer on/off, etc). The argument is a single- character string. Example: STAT ESC "^I" changes your escape character to the TAB key.  Use the CALL command to dial numbers either from the library, or from the keyboard. If you specify more than one number on the command line, CALL will try each until one answers with a carrier tone. For example CALL 16165559033 SENACA will dial the first number; if busy, CALL will try the second. The special number '#' will cause the entire command line to be repeated if none of the dialed numbers responds with a carrier: CAL WESTWOOD 1-616-555-2040 TCBBS # will try all three numbers repeatedly until one answers. You may op- tionally place a limit on the number of retries by including a decimal number after the '#': CAL 555-1212 #48 Note that a ^C will abort dialing at any time. % Note that phone-library numbers may specify an optional baud rate (do HELP PHONE for information on how to specify a baud rate for a number). If a baud-rate is present, CALL will change the baud rate before dialing the number. Note that, for this feature to work, your hardware must be capable of changing the rate AND your overlay must implement the NEWBD vector. Most MEX overlays (overlays whose names start with "MXO-") allow this, if the hardware is capable of baud-rate change; most MDM overlays do NOT.  CLONE and COLD The CLONE command allows you to save a new copy of MEX, with the current options intact (including any defined keystrings and phone numbers). The syntax is: CLONE The COLD command re-starts MEX and erases any defined keystrings along with the phone library. This is the only way to erase the entire phone library with one command. The COLD command also allows you to remove the CIS protocol module (for those who don't need it): do this: STAT CIS OFF COLD CLONE Note that this removes the CIS module altogether (you can't get it back with the STAT CIS command). This frees up roughly 1K of memory.  The ERA command erases files. The syntax is as follows: ERA [V] The filename may be ambiguous (e.g., *.ASM, BOOT?.BAK). ERA always dis- plays a list of the files that are being erased. If you specify the optional 'V' after the filename, ERA will ask for verification before actually erasing the files (after displaying the names).  The DIR command works similarly to the CP/M DIR command, and displays the disk directory on the screen. DIR takes advantage of the DU spec- ification, thus "DIR B7:" will display all of the files in user 7 on drive B. System files will be excluded if the STAT variable 'EXCLUDE' is set to ON. If EXCLUDE is OFF, all files will be displayed. More examples: DIR C3:*.?Q? DIR LOGIN.MEX DIR 3:  LOAD and SAVE LOAD and SAVE are used to load and save phone number and keystring files. Both commands take a filename argument. Examples: LOAD A5:CBBSPHON.PHN <<== loads a phone # file LOAD ARPA.KEY <<== loads a keystring file SAVE C:NEWPHONE.PHN <<== saves phone # file SAVE 9:COMPUSRV.KEY <<== saves keystring file Note that the filetype determines what type of file is being saved (.PHN for phone number files, .KEY for keystring files). Any other filetype will generate an argument error.  Several MEX command take string arguments. These strings must be sur- rounded by quotatation marks, and may contain imbedded control char- acters (with the singular exception of binary zero, which will generate an argument error). The caret ("^") is used to prefix a control char- acter. Thus, you can specify multi-line strings within one string specification. Examples (note that that the control-character ^M is the carriage-return code, and ^J is a linefeed): KEY A="BILL USER;J^MWHATSNEW^MB:^MWHATSNEW^M" SENDOUT "SD B:*.ASM^MCRCK *.BIN^M" Note that the command-separator character may be included freely within a string; it separates your command strings outside of quotation marks only.  The ID command allows you to configure the MEX ID string (which is printed in the prompt, and in error messages, if the STAT ERRID switch is set to ON). This is useful if you're communicating with another computer running MEX; if each computer has a different ID string, you're never in doubt as to which one you're typing commands to, or which one printed an error message. The syntax for the ID command is ID (see "STRINGS") The string may be a multi-line string; it's length in the standard distributed MEX may not exceed 28 characters. This length may be different if your system overlay replaces the MEX defaults (in fact, the overlay may disable this command altogether; if the "INVALID COMMAND" message appears when you attempt to use the ID command, then this is probably the case).  CRC and CHECKSUM are STAT switches. The two are mutually exclusive (that is, turning one on turns the other off) and set the preferred type of error checking in Christensen file transfers. CHECKSUM is a simple sum of the outgoing record; CRC uses a more sophisticated technique employing polynomial arithmetic, and is thus a better method (more errors are detected, thus, there is less chance of an incorrect record being received as if it were valid). The original MODEM2 protocol employed only CHECKSUM detection; however, in the past few years, most versions of Christensen exchange programs have been rewritten to accept the CRC technique as well. MEX will adapt to transmitting programs using either type of validation. If MEX is the transmitter, it will switch modes after several failed attempts to transmit a file, thus allowing full compatibility with older modem programs.  CIS is a STAT switch: when ON, then Compuserve protcol file transfers are allowed while in terminal mode. If OFF, then the Compuserve transfer sequences from the remote end are ignored altogether (although they are printed on the screen as "normal" terminal-mode characters). CIS transfers are always done in terminal mode; there is no command to send or receive a file using CIS protocol, since the remote Compuserve end must initiate the transfer. Note that if you use the COLD command to restart MEX while the CIS switch is set to OFF, then the Compuserve file transfer module will be removed altogether from the running copy of MEX. If you subsequently use the CLONE command to create a new executable MEX.COM, the additional space formerly used by the CIS module (about 1000 bytes) will be available instead for your buffers. You will not be able to use STAT to turn the CIS switch back on (since there is no longer a CIS module in the system). This feature is intended for those users who do not need the ability to do Compuserve- rotocol transfers, and would rather not waste space on a feature they do not need.  FILTER is a STAT switch variable; when ON, then abnormal control characters are ignored when in terminal mode (with the exception of carriage-return, linefeed, backspace and tab). If OFF, then all characters from the remote will be displayed on the screen (and included in the ASCII-capture file, if active). FILTER ON is useful if you're working with a noisy connection, and random garbage characters on the line are erasing your screen, etc. If you're using a video-oriented text editor at the remote, you'll want to be sure FILTER is set to OFF, in order to allow the video-control characters to be accepted by MEX. Note that the CP/M end-of-file mark is specifically excluded from ASCII- capture files regardless of the setting of FILTER (although FILTER ON allows this character to go to the screen).  Miscellaneous STAT arguments BAKFILE: Switch: when ON, new files overwriting old files of the same name are renamed to type BAK. If off, such files are erased. PAGE: Value: sets the length of the screen page (0 stops pagination) CHAR: Lists all of the STAT variables that are CHARACTERS SWITCH: Lists all of the STAT variables that are SWITCHES VAL: Lists all of the STAT variables that are VALUES BELL: Switch: enables or disables the console BELL BUFFER: Prints out status information on the ASCII-save buffer. RUB: Switch: If ON, converts local backspace key to RUB TAB: Switch: enables or disables the MEX tab expander LIST: Switch: enables or disables the LIST device LF: Switch: if ON, linefeed append to carriage rtn in T-mode file send EXTEND: sets command-extend mode (command names not defined in MEX are passed to the READ command, which will search for a file of the same name). SILENT: inhibits command-echo in READ files.  EXCLUDE is a STAT switch variable; it modifies the action of commands that take multiple-filename arguments (such as DIR and the batch-transmit SB). If EXCLUDE is ON, then SYS files are skipped over by these commands. If EXCLUDE is OFF, then SYS files are included. Thus, you can exclude SYS files from a batchfile transmission by STATting the EXCLUDE switch ON. These files will also be exclude from DIR listings while EXCLUDE is ON.  DEBUG is a STAT switch that affects the Terminal mode in MEX. If DEBUG is ON, then characters received in Terminal mode are displayed in a form similar to CP/M's DDT dump (D) command: hex values on the left side of the screen and the ASCII block (as the output progresses) on the right. You'll note that the ASCII right-side display is "buffered" until 16 characters have been received. After the 16th, the ASCII right-side is printed. Therefore, if the remote's output pauses, you'll see only the hex values until the remote sends more output. Also, exiting Terminal mode will display any buffered ASCII. DEBUG is useful whenever it's necessary to know exactly what the remote is sending (for example, if you're connected to a time-share network, and can't transfer files, a DEBUG session can prove illuminating in determining just what is happening). In DEBUG mode, the FILTER flag is ignored, allowing all characters to reach the screen. Additionally, the CIS protocol is disabled while DEBUG is ON.  ERRID is a STAT switch that enables and disables the printing of the MEX ID string in error messages. The ID string is useful in applications where you're communicating with a remote computer running MEX (if each end has a different ID code, there is no problem confusing error messages), but if you typically use MEX only with RCPM systems or timesharing systems that don't run MEX, you'll likely want to turn off the ERRID switch, and shorten the error messages.  RTIME is a STAT value variable, and affects Christensen-protocol file transfers. RTIME is the amount of time (in seconds) that MEX will wait for a char- acter from the remote end before declaring a timeout, and initiating a record-retransmission sequence. RTIME is set for one second in the standard distribution MEX; this is more than adequate for RCPM work, and MEX-to-MEX file transfers where each end is running under a single user operating system. But when working with a mainframe-type connection (and sometimes when a remote MEX is running under MP/M), especially when a packet-switched network is part of the connection, character delays can easily exceed one second. In these environments, you'll want to set RTIME to a higher value (16 seconds is recommended; the maximum is 255).  The LOG command allows you to reset the drive (for switching disks) and, optionally, simultaneously change drive and/or user area. The command syntax is LOG where DU-SPEC is either or both of the new drive to log into and the new user area. An optional colon may follow the DU-SPEC. Examples: LOG B7 <<= reset, log in drive B user 7 LOG 7: <<= reset, log user 7 current drive LOG B: <<= reset, log drive B current user LOG <<= reset, retain current user/drive If either a terminal file or a READ file is open, the disk-reset will be denied (although any new drive/user will be logged) and a message printed. If you want to change drive and/or user without a disk reset, you can do so without the LOG command: just enter the DU spec at the MEX command prompt (in this case, the terminating colon is required).  The KEY command is used to manipulate the keystrings that are available in terminal mode. There are several forms of the command: KEY <<= prints out all of the keystrings KEY =[] <<= defines a new keystring Keyname is any valid ASCII character, except for the set defined as the terminal mode escape-sequence commands. In the second form, above, if is omitted, then the specified key- string is erased. Examples: KEY %="ATDT 14145559932" <<= sets up the '%' key KEY Q= <<= erases the Q keystring Note that KEY names that duplicate terminal-mode commands will be rejected by the KEY command, and an error message will be printed.  XLINE is a STAT switch that affects terminal-mode file transfers. If XLINE is set to ON, then the file will be transmitted, one line at a time; each succeeding line will not be transmitted until an X-ON character is received from the remote. XLINE is used with some timeshare and network computers, almost never with RCPM and BBS systems.  The GLOBAL command allows you to set the secondary options for the single- character commands. Any options set this way will then be active for the single-character commands whether or not they are specified. For example, if you prefer to go directly to terminal mode after a file transfer, do: GLOBAL T You can also set the VIEW mode for CIS transfers by doing GLOBAL V (note that this is the only way to "view" a CIS file transfer. For more information about secondary options, do "HELP SECOND".  The SECONDARY options are used only after the single-character commands (for more information on single-character commands, do "HELP SINGLE"), and modify the way the single-character commands work. Following is a list of the sec- ondary command options: COMMANDS OPT NAME USED WITH ACTION --- -------- --------- ------ A Append E,L,T Append to a terminal-mode file B Batch R and S Sets BATCH mode file transfers D Disconnect R and S Disconnects after a file transfer E Echo R and S Enter term-mode w/echo after a transfer L Local T,E Local-character echo Q Quiet R and S Sets "quiet mode" for file transfers R Recv-view R and S Shows received-characters only S Send-view R and S Shows transmitted characters only T Terminal-mode R and S Enter terminal mode after file xfer V View R and S Views the file transfer in ASCII X Exit R and S Disconnect and exit after transfer Note that these options are also effective in CIS transfers, if set with the GLOBAL command (for help on GLOBAL, do "HELP GLOBAL". % Examples of secondary options: Primary --+ Command |+---->secondary commands |||| |\ / [MEX] A0>>ST MYFILE.FOO <<== send MYFILE.FOO, go into Term. mode after [MEX] B9>>RVT CRACKER.JAK <<== receive file with view, enter Term mode [MEX] A3>>RQX MONKEY.SHN <<== recv file quietly, disconnect/exit after [MEX] A0>>RBT <<== recv batch files, Terminal mode after [MEX] A0>>T DISKFILE.SAV <<== enter term. mode, allow save to disk file (note that the actual copy to the file must be activated with ESC-S while in terminal mode) [MEX] B3>>TA DISKFILE.SAV <<== Enter term. mode, append to DISKFILE.SAV [MEX] A0>>E DISKFILE.SAV <<== same as previous, but with echo mode [MEX] A0>>S HELP.MEX <<== send file, no options (unless GLOBAL) [MEX] A0>>R MXO-SM10.ASM <<== receive file, no options (unless GLOBAL)  The most commonly used MEX commands are implemented as single character com- mands, for ease of use. These are: S: Send a file or group of files using Christensen protocol R: Receive a file or group of files using Christensen protocol T: Enter terminal mode (may specify an optional ASCII-save file argument) E: Enter terminal mode with echo (also takes optional filename argument) L: Enter terminal mode with local-echo only (filename ok here too). T, E, and L are all variations of terminal mode: T sends keyboard characters to the remote and prints characters received from the remote on the console. E mode echoes received characters back to the remote ("half duplex" mode), and L echoes keyboard characters on the console before they go out to the remote ("half duplex" in the other direction). Note that certain commands may be modified with secondary options (do "HELP SECOND" for more information on secondary options, and examples of single-character commands with and without secondary options.  TERMINAL MODE MEX terminal mode is entered with any of the single-character commands T, L, or E (for more information of the E and L variations, do "HELP SINGLE"). While in terminal mode, you are communicating as a console with the remote end as a console; your keyboard characters are transmitted to the remote, and the remote characters are displayed on your screen. There are several functions that are available to you from terminal mode, all of which are invoked by typing the escape-character (do "STAT ESC" at command level if you don't know your escape character) followed by one of several characters. These are explained in the next frame. % Terminal mode escape-sequences: -E exits back to command level -? prints a menu of escape sequences -S start copying incoming text into file buffer (see below) -U end (un-start) copying text into file buffer (see below) -P toggle copy-to-printer on/off (if enabled with STAT LIST) -T transmit a file to the remote (prompts for a filename) Note that -S and -U require a filename argument with the T when you enter terminal mode (otherwise, there is no file active to write the incoming text into). You can use -P to copy incoming text to the printer. The text is held in a buffer, and prints only as the printer is ready for a character. Thus, your printer may be slower than the modem, and you won't lose characters un- less the buffer fills up. The next frame explains terminal-mode files. % Terminal-mode files (also called CAPTURE or ASCII-SAVE files) are created by entering a filename with the T (or E or L) command; if the file already exists, you will be asked if the file should be erased. MEX will create the new file, and enter terminal mode. At this point, incoming text is not yet being saved; to start saving text, you must use the -S terminal-mode command. You can stop the save by using the -U command. You can perform as many start/stop sequences as you like (when text-save is active, you'll see a colon at the start of each line as a visual signal that the save is active). You can exit terminal mode and move freely among drives and user areas with- out affecting an open term-file. The LOG command will still be useable, but will not reset the disk (and will print a message to that effect). If you enter terminal mode with the T,E or L command WITH a filename, when a file is already open, the open file will be closed, and the new one opened. % You can transfer files using either Christensen or CIS protocols while a TERM file is open -- your buffer may be written to disk to make room, but nothing will be lost, and the file will still be open. To close the file when you're done saving text, exit terminal mode with -E, and use the WRT command. If you change your mind, and decide you don't want to keep the file after all, use the DEL command to erase the file entry and delete any text already saved in memory. The next frame explains what happens when the SAVE or PRINTER buffers fill. % When your printer or ASCII-save buffer fills, MEX will send ann X-OFF char- acter to the remote. MEX will then wait for the remote to stop, and will save up to an additional 150 characters into an auxiliary buffer (this buf- fer may be increased in size by modifying MEXPATxx.OVR). When the remote stops (or the auxiliary buffer fills) MEX will write the ASCII-save buffer to disk (if ASCII-save is active) and print characters until the printer buffer is half-full (if List-copy is on). Then MEX will re-start the remote by sending an X-OFF character. Note that for this scheme to work, the remote computer must respond to this X-ON/X-OFF "protocol" (most computers do, but *not* all!). The next frame describes the -T file transfer facility. % You can transmit a local disk file to the remote with -T; you will be prompted for a filename. If you have the XON and and XLINE variables turned off (do "HELP XON" and "HELP XOFF" for information about changing these), MEX will ask if you want to use the character and line delays for the file- send; these delays allow slow remote computers to receive files. The WCHAR and WLINE variables (see corresponding HELP sections) determine the time-delay values for each character, and each lines respectively (of course, you must have answered "Y" to the "want delays?" prompt. If either of the the XLINE or XON switches is ON, the delay prompt will be skipped, and delays will not be used. XLINE is a technique used by some mainframes: after a line is transmitted, MEX will not transmit another until receiving an X-ON character from the remote. XON is more frequently used: when XON is active, MEX will send characters at full speed, but monitor the remote for an X-OFF character. When an X-OFF is received, MEX will pause until the remote sends an X-ON character.  XON is a STAT switch variable that affects the terminal-mode file send (do "HELP TERM-MODE" for a full description of terminal-mode file send). When XON is set to ON, MEX will send all characters to the remote at full speed, but will monitor for an X-OFF character from the remote. When MEX sees the X-OFF, it will pause, allowing the remote to read all of the input MEX has transmitted. When MEX sees an X-ON character from the remote, it will resume the file transmission.  CLOCK is a STAT value variable; you may set this variable to any value be- tween 1 and 255. The value is the CPU clock speed in tens of Megahertz (hence, the speed may vary between .1 and 25.5 Mhz). You can then use the CLONE command to make this change permanent. CLOCK is useful for "tweaking" MEX under varying conditions of load when running under multi-tasking operating systems, such as MP/M and TurboDOS. When system load is heavy, you can decrease the CLOCK value, causing MEX to spend less time in its internal timing loops.  The REN command syntax is similar to the normal CPM REN, except that DU specifications may be employed in either the new OR the old filename (but not in both). In general the syntax is REN = Examples: [MEX] A0>>REN NEWFILE=OLDFILE (uses A0) [MEX] C9>>REN B6:REPORT.OLD=REPORT.DOC (uses B6) [MEX] B3>>REN 6:MYFILE=B:YOURFILE (uses B6) [MEX] D4>>REN ERROR=C9:BLUNDER (uses C9) % Note that the following REN commands will produce errors: [MEX] A0>>REN B3:SOMETHING=C:ELSE (ambig drives) [MEX] A0>>REN 6:ME=7:YOU (ambig user #'s) Note that ERA will prompt for erasure if the new name already exists. Further, before doing this, it checks for the existance of the old filename, and, if not found, aborts before checking for the the presence of the new name.  The TYPE command prints files on the console, similarly to the CP/M TYPE command, but with pagination: The syntax is:  TYPE <'P'> The optional 'P' will affect pagination at screen boundaries: if pagination is OFF ("STAT PAGE OFF") then 'P' will cause the file to be paged. If pagination is ON ("STAT PAGE ON"), then 'P' will inhibit pagination. Examples: A2>>COMMAND: TYPE REPORT.DOC (paged output if PAGE ON) A2>>COMMAND: TYPE REPORT.DOC P (inhibits paging if PAGE ON)  PREFIX and SUFFIX PREFIX and SUFFIX are used with the SENDOUT command (do "HELP SENDOUT" for more information on the SENDOUT command). PREFIX is used to manipulate a special PREFIX string, and SUFFIX is used to manipulate a SUFFIX string. The PREFIX string is transmitted ahead of any SENDOUT string, when the SENDOUT command is used, and the SUFFIX string is transmitted after. This simplifies the construction of complex, repetitive command lines to be sent to the remote. Either command without arguments prints the current value of the string. To change the string, enter the string on the command line after the command. Examples: PREFIX "XMODEM S " <<== sets a prefix PREFIX "" <<== sets null prefix string SUFFIX "^M" <<== set carriage-return as suffix  MEX supports the same drive/user specification for files as Rick Conn's ZCPR and ZCPR2: A file may be prefixed by either the drive name, the user number or both (this extends to batch file transmissions). Examples: [MEX] A3>>SB B3:*.ASM A9:*.OBJ C6:UPDATE.DOC [MEX] A0>>DIR A12:*.SUB [MEX] B3>>TYPE 5:REPORT.DOC [MEX] C3>>T B6:SESSION.LOG % LOGGING DRIVES: MEX supports relogging drive/user in two ways, both of which are pertinent to a discussion of DU specifications: - LOG command: Takes optional DU spec (trailing colon optional) resets disk system - At command prompt: simply enter the DU spec (colon required) Examples: [MEX] A0>>LOG (relogs current d/u: resets system) [MEX] A0>>LOG B: (relogs current user, drive b, resets) [MEX] A0>>LOG B7: (relogs drive b, user 7, resets) [MEX] A0>>B: (logs current user, drv B, no reset) [MEX] A0>>A9: (logs drive A, user 9, no reset).  MEX supports multiple commands on a line, both in READ files, and in dir- ectly typed commands. A command line may optionally be entered on the CP/M invocation command line, and this line may also contain multiple commands. Note that a READ command will "stack" any current multiple commands; when input from the READ file is exhausted, the remaining commands will then be executed (a control-C at any time will abort a running READ file and/or a multiple command line). The multiple command separator in the file as distributed is the semi- colon ";"). This character may be changed with the STAT command ("STAT ESC") or  in the patch file. The next frame contains examples of multiple command lines. % Examples: from CP/M: A>MEX DIR;READ MYFILE.MEX;SENDOUT "LOGOUT";BYE This example will bring up MEX, which will first print the directory, then begin executing MYFILE.USE, which may conain SENDOUT commands and R commands to send and receive files. When input from MYFILE.MEX is exhausted, MEX will send the string "LOGOUT" to the remote. Finally, MEX will execute the "BYE" command. from MEX: A3>>COMMAND: RB;SENDOUT "BYE";BYE This one receives a batch transmission, sends the string "BYE" (grace- fully logout from a remote CP/M system, for example), then disconnects and exits to CP/M. executed (a control-C at any time will abort a running READ file and/or a multiple command line). The multiple command separator in the file as distributed is the semi- colon ";"). This character may be changed with the STAT command ("STAT ESC") or  ================================================================= MEX-EASY.DOC 05/20/84 STEVE SANDERS ================================================================= S yo go MEX1 an can' quit figur ou wha step ar necessary to input the phone numbers and such... Well yo ar no alone hav mos o i figure ou afte week of playing with it and will pass on what little I do know. ENTRY OF PHONE LIBRARY ====================== Fro th ME promp ente "PHONŠ id=number" like this: [MEX] A0>>phone a=1-555-111-1111 or [MEX] A0>>phone alan=997-0020 The "id" string may be up to twelve characters or as few as one. By entering "PHONE" now, the following will be displayed: [MEX] A0>>phone A = 1-555-111-1111 ALAN = 997-0020 Th simples wa t ente pre-don librar i t mak u fil t b "READ i b MEX Us Wordsta i non-do mod an edi file called PHONE.PHN, enter the following: PHONE A=1-555-111-1111 PHONE ALAN=997-0020 PHONE id=numbers PHONE etc... Fil i a man a yo wan u t maximu o 30 numbers The bring up MEX and enter: [MEX] A0>>read phone.phn Yo wil the se ME "read i eac o th phon comman line unti i reache th en o th phone.ph file Yo ma no check the newly installed phone library by entering: [MEX] A0>>phone T mak thi ne librar permanen par o you MEX jus us th CLONŠ comman no t cop a imag o ME fro memor wit the library installed: [MEX] A0>>clone mex1.com Yo wil no hav ne fil calle MEX1.CO whic wil hav th phone library already in it. WHAT IS INI.MEX ?? =================== Whe ME i firs brough up i i pre-se t loo fo th fil calle INI.MEX Thi fil contain command t b REA i t ME whe i i firs initialized Thi i ver simila t th STARTUР comman unde ZCPR whic als hold multi-comman statemen t b execute afte col boot Yo ma creat INI.MEؠ wit Wordsta i non-do mod an includ an "legal MEX10 command line. Such as: GLOBAL T;ID "[ MY-MEX ] ";CAL A The form of the file is: command;command;command Each "legal" MEX command MUST BE seperated by semicolons. Thi woul mak th retur t termina (T mod defaul afte fil "R"eceiv o "S"en operation chang th I strin t rea " MY-ME ] rathe tha "[MEX]" an automaticall dia th number associated with the id "A". ... Or, you can forget INI.MEX altogether and just receive a "Can' fin INI.MEX erro messag o initialization Whic doe no hur anything i jus indicate tha th fil i no o th current drive/user if SEARCH = 0. INSTALLING "KEY" STRINGS ======================== Jus a MDM7x ha CTRL- logon yo ca se on u i ME muc th sam way Onc i "T"ermina mode th onl escap bac t comman stat i wit CTRL- followe b a "E" complet men o escap "CTRL-J function i see b enterin CTRL- followed by a "?" from Terminal mode. An othe ASCI ke characte i "legal definabl ke tha ca b use i Termina mod fo specia functions T se u th "L" key the same as the logon key in MDM7xx, enter: [MEX] A0>>key l="firstname;lastname^M" NOTE Th cara "^ indicate CTR ke an ^ i th sam a carriag return I MUS b insid th quot mark tha define the keystring entered. No onc yo ar connecte wit th remot syste an wis t send your logon in, simply enter a CTRL-J followed by an "L". I yo attemp t specif on o th character tha i alread use a Termina mod comman a erro i returned Als not tha ME wil alway promp yo wit "Synta error messag i the command you ar!e trying to enter is illegal. USING THE HELP COMMAND ====================== ME ha a extensiv on-lin HEL facilit i th HELP.ME i o th curren drive/use alon wit you MEX.CO file Fro th MEX prompt enter: [MEX] A0>>help ? Th complet lis o hel file availabl i displayed The just enter HELP followed by the command name desired: [MEX] A0>>help call This would list the help info for the auto-dial command CAL USING THE SENDOUT COMMAND ========================= Th SENDOU comman i use i .ME file fo automati operatio o MEX.CO wit th remot hos system Th SENDOU comman wil sen strin ou th mode por (henc th nam SENDOUT) Yo ca specif prefi an suffi fo al SENDOUԠ string allowin rea flexibility Mos commonl use woul b nul string for the prefix and a "^M" (carriage return) as the suffix. Th prefi an suffi ca b se b INI.ME a startu o define b yo afte ME i u an running Typ HEL PREFI o HEL SUFFIX for full info on this. I yo kno th DIRector o th syste yo ar calling yo can build a file like this: SENDOUT "XMODEM S B5:SD-88.LBR^M";R SD-88.LBR SENDOUT "XMODEM S B1:MEXNEWS.0Q2^M";R MEXNEWS.0Q2 SENDOUT "XMODEM S A0:RCPM-049.LQT^M";R RCPM-049.LQT DSC;EXIT Afte connectin wit th hos system signin in an enterin the CP/M system - use CTRL-J then E to get to command prompt. Let's say this file is called AUTO.MEX, use the following: [MEX] A0>>read auto.mex MEؠ wil no sen th command t th hos syste t XMODE͠ th thre file liste abov i th SENDOUԠ command an the initiate th "R"eceiv mod an sav al files Whe it' done MEؠ wil disconnec fro th hos (DSC) an exi ME t your CP/M operating system. ɠ thin yo ca se th possibilitie her ar endless Th abov sequenc coul hav bee performe UNATTENDED Thi ca sav yo lo o $$ o lon distanc charge i yo kno wha files you want in advance. Ther ar man mor command tha th one hav describe here bu thi shoul ge yo starte i th righ direction Jus remembe tha MEؠ ca b a simpl a a complicate a yo desire. It is a great program and will get even better.  th hos system signin in an enterin the CP/M system - use CTRL-J then E to get to command prompt. Let's say this file is called AUTO.MEX, use the following: [MEX] A0>>read auto.mex MEؠ wil no sen th command t th hos syste t XMODE͠ th thre file liste abov i th SENDOUԠ command an the initiate th "R"eceiv mod an sav al files Whe it' done MEؠ wil disconnec fro th hos (DSC) an exi ME t your CP/M operating system. ɠ thin yo ca se th possibilitie her ar endless Th abov sequenc coul hav bee performe UNATTENDED Thi ME-EASY.FI 06/20/84 I th documen fil ME-EASY.DO Stev Sander give som goo pointer fo usin th excellen ne mode progra MEX However i th firs sectio o Entr o th Phon Library h mention wa t mak u "pr-done librar wit you wor processor consistin o ME REA fil calle PHONE.PHN ful o PHON commands fo example: PHON A=-55-11-1111 Whe th fil i rea wit th REA comman i MEX th phon librar i buil on comman a tim quic an eas wa t maintai phon librar i separat file. However ther i mor efficien way instea o makin th fil ful o ME commands simpl mak th fil PHONE.PH (b sur t us th extensio .PHN) consistin o onl th label an phon numbers omittin th comman 'PHONE' Fo example: BA-ARE =48-561 120 bps BLUERIDG =77-259 30 bps MC =-80-23-775 120 bps PEGASU =99-572 120 bps Th forma o th line i importan th labe start a colum 1 th equal sig (= i colum 14 followe immediatel b th number Notic tha yo ca specif th bau rat o th syste (i th SE functio i implemente i you overlay) Thi labe mus star a colum 40. Thi fil ma b create on o tw ways wit you wor- processor observin th forma above o fro withi MEX b usin th SAV command T d this ru MEX ge t th comman leve an issu th command [MEX A0>>PHON PEGASUS=99-572 1200 [MEX A0>>PHON MCI=-80-23-775 1200 etc Not tha yo don' hav t worr abou th spacin i yo d i thi way Als notic tha yo don' hav t worr abou enterin the i alph-betica orde issu th comman 'PHONE b itsel an yo wil se tha ME ha alphabetize the fo you. Whe yo hav entere al th phon number yo want d th following: [MEX A0>>S"AV PHONE.PH -(not th .PH extension) Yo hav no create fil calle PHONE.PH wit you phon library T loa you phon numbe librar th nex tim yo ru MEX simpl giv th command: [MEX A0>>LOA PHONE.PHN an th librar wil loa directl int MEX withou havin t g throug th command o th REA fil describe i ME-EASY.DOC. Thi proces ca als b use t mak fil o KEYS Assig you keys: [MEX A0>>KE L=" [MEX A0>>KE A="HELLO!" etc Notic tha yo mus enclos you keystrin withi quotatio mark -th mark wil no b sent bu the ar require whe settin u th keys Whe yo hav entere al th key yo wil need giv th command: [MEX A0>>SAV KEYS.KE -(not th .KE extension) No yo hav fil calle KEYS.KE wit al you keystrings T loa thes keys giv th command: [MEX A0>>LOA KEYS.KEY Th INI.ME file a Stev explained contain command tha wil b ru whe yo firs loa MEX Wha hav don i create m INI.ME file containin thes commands: LOA PHONE.PHN LOA KEYS.KEY B doin this m phon numbe fil an keystring ar automaticall loade whe ru MEX Sinc thes ar externa file (outsid o th ME progra itself the ar eas t updat an chang wheneve like withou havin t CLON ne cop o MEX. On othe comment I Steve' SENDOU exampl showin unattende fil transfer woul ad on mor comman befor th DS command SENDOU "BYE" Thi i simpl mor gracefu wa o exitin th RCP/M. Hop thi help yo t us ME i i quit program! Wil Kac (713 39-8488  i thi way Als notic tha yo don' hav t worr abouKE -(not th .KE extension) No yo hav fil calle KEYS.KE wit al you keystrings T loa thes keys giv th command: [MEX A0>>LOA KEYS.KEY Th INI.ME file a Stev explained contain command tha wil b ru whe yTO: All programmers and users of MXO- series overlays FROM: Bob Abrahams, Los Angeles DATE: July 3, 1984 RE: CLONING bug in some MEX overlays In order to be properly "clonable", MEX overlays must meet two requirements: 1) Any initialization must not "destroy" the ability for the overlay initialization routine to be re-entered. (This is almost certainly okay in all working overlays.) - and - 2) Any settings in the overlay that can be changed during MEX execution should be programmed so that the initializa- tion section will set up the latest settings if cloned. For example, if the baud rate default is 1200 bps in the initial overlay, but the MEX program is cloned while set to 300 bps, then the cloned version should initialize at 300 bps. This fulfills the purposes of the CLONE function. Several overlays I've seen based on MDM7 versions do not do this properly, and a clone made at other than the original default setting will either still initialize at that original setting or work improperly. For the baud rate setting initialization, I recommend inserting a sequence to load the accumulator with MSPEED and calling the PBAUD (baud rate set from baud code) routine in your overlay. Then the only indicator of the initial baud rate is MSPEED, and that will be changed by any sub- sequent baud rate changes and will be cloned out. Other initialization parameters that are changeable with later SET ccommands should use a similar strategy. grammed so that the initializa- tion section will set up the latest settings if cloned. For example, if the baud rate default is 1200 bps in the initial overlay, but the MEX program is cloned while set to 300 bps, then the cloned version should initialize at 300 bps. This fulfills the purposes of the CLONE function. Several overlays I've seen based on MDM7 versions do not do this properly, and a clone made at other than the original default setting will either still initialize at that origin This is the release date of the disk. MEX-OVLYBUG MEX-OVLYBUG CHEKLIST$$$# Fog Library Disk FOG-CPM.136 Copyright (1986) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Disk 5 of 5. Modem EXecutive communications software. Filename Description -08-00 .86 This is the release date of the disk. -CPM136 .DOC This is the description of the disk contents. MEX114 .COM F6B6 24K ver. 1.14 [Modem EXecutive 71 of 79] Program file. MEX11DOC.TOC B906 3K ver. 1.14 [Modem EXecutive 72 of 79] Table of contents for MEX documentation. MEX11DOC.WQ 1E75 54K ver. 1.14 [Modem EXecutive 73 of 79] Squeezed MEX documentation for printing with WordStar. READ114 .ME B2DF 6K ver. 1.14 [Modem EXecutive 74 of 79] BUFFERS .DOC E1C6 4K ver. 1.14 [Modem EXecutive 75 of 79] Explains the MEX buffering scheme. MEX .HLP 7A34 52K ver. 1.14 [Modem EXecutive 76 of 79] On-line help file. MEX-EASY.DOC 9712 7K ver. 1.14 [Modem EXecutive 77 of 79] Short "cheat sheet" for getting MEX on line. MEX-EASY.FIX B8FC 4K ver. 1.14 [Modem EXecutive 78 of 79] More "cheating". MEX-OVLY.BUG 2411 2K ver. 1.14 [Modem EXecutive 79 of 79] scription -08-00 .86 This is the release $%&'