M HZPM2Z3INS HZP 'rMAKE HZP MAKERCP HZP&/MCAT HZP5.5MCOPY HZPc$MDU HZPv xMENU HLPMENU HZPm MENU1 HZPv fMENUCK HZPºMEX+2Z HZP(MEX2Z HZP qMKDIR HZP$VAMKLINE HZP MOVE HZPMTEST HZPMU HZP[MU31 HZP5MYLOAD HZP vM.HLP$4#3#3[M-HELP 11/14/91]( A@@0H2iu!hZS<ΆSht4 23)A`tedrY X"FCb: ]z'ltgbߓ=t9$Rqɪ2`Z@oIfM g)$(&`oROY6djH͝$VHD:$ڳ{ :-' rAy=h\})57#cD1;9~&f6®\ em]izJYp=d ćTi,3UNW7 %ę )Py*@- lJVT>i J0 + N] 6 5T (N  ! **4(oܱ 1&,cfJ@d.Ȇ8}Ow&1 4hEM.e<"AU5=(bs3O"[0kUERptStU$&X!)jqDX=RrAAfj3ZuL:KI;$ 'AbB ] nq80mAQ>P-bGu! EəPąd~ TRԩ2?nJuI&>Ka:!1#Κ6% Mm, M*t&m MXхOQ]MX YR Z P ' r'zu#n9X26GB 視B U`JE$o-m!@cWUD,\ZoS͵9Raa '^MYn͝e 2: u}7c!6T9uam#P` E@Х 5I FA0O-&}4$vMAKE.HLP((([M-HELP 1/12/89]# A@@FM Ȣ<X@4i=Dse" V2fy Ny^L0 3s9c1s5<2I1dFB E:̦8l0FZ h1 gqx ^n9w)m8'y@U9Ѣh Myl&Ӯp 7M)es1\2O&std9]TH %~O,@d9Nݮ45qoIPJ|fsoQonѡs\lrdeX%wpgW1OprO ,A^mF)L[gKxьK1?l[7!}gȱ)hVlc V%0c$q@tw$ՖpaDg9-AGwq=1?Fyei1l]u8n| 1LPV^,Y.Vx P1g_:i1kŰoP< WƔlS@dlk!,52m6ֶ۲m2U ZH3䵊^wۥ Ȧrd? /םMpWqIzab'HofcypxlLeoXDE \_RE nV[.tD8LBDtE[FB wLt^L#cv]:W1$MR=LB- nU@ѦE Oh{?fǎ vS/OxdS9)z~kHEa[en {1 oѪs͸Pne:ήGv v a @U< hHvMAKERCP.HLP[M-HELP 10/9/88]# A@@FM Ȣ X@4i=Dsq@ e9&t A: 󐼘a:NgA$s:Rb!k3\xd1$cB   EÈ@ /'#%cW̆O&jZ *&xez':E<Md@o3^tQ4TL 6̆\%0JI`AV3݇0j"Rs1 C@NF<ѭXb6E3~;;L7MWY'IYߡ|^@yޑXou'%qivJH<.J`P.[kQIAReMZUnFt!?1VYPaf9EaNhrMb>~ĈB Od2ԙ0\$bq&2Ί(OV M9ȿH(S$ݲKĦV9(4c9E elB$( G644"z dORzM $&Td=EP3&,ƤC23&nE/$gȑU!7y^\A d9݄"P&D` ([QU zlxM'2ܹ , "` e I ¨/ " `)%$(<X&Dll" ?P1ഽÝiGjY4gu s&T;bru3re\ ^A DBD3tȕkI~` עbh՟mhOV汾|M[boFN*Ge Jd%I69?wlHx&4,T򥨕Њ,j.(e'·{a+:RS|9 )Ȓ^d2B@%\vMCAT.HLP S V T[M-HELP 10/13/89]# A@@FM!J<X@4i=Dse" V2fy Ny^L0 3s9c1s52 ap &wB - ѴZ ]D3ɸa$]ٓ B8fS`&v!:嶀^, SC1^D jbN~Lvzb)ly)ʲӅu ba/J!,A}*pwxlzQѓ6?V酡i` IkRÐKW0}a oa 鰳@Ι+"KG9#w[k,\2+Q>E tO“БZ䂛MkIr7B@bzWRDC%A 0@ӺB2(R<Ȓn`+#‚bX)$[#gJD jA$HPr5"#VH, 8A#`+KON,Du4h$'YzZA.kڄ`޵T egX9cPMlUi}:}HM 8> ' ":4bJvz(|C{[噯!zRDbLQpUQ/IwF6: [0FZZ9$5nPAAX-8Pڂ槯4+`kABVLzւ*<P@(b :",8 1:bC:$P(s.Bݒ m k9nzAXH #ZlU$ʹx$Ǵ$YQ%nHl /e2)1 xp  8@y4eb[vځx/!O@&rvR{ʼv$EЈBK!<RJCBL "F(Ά:Dž,D2!j˺K(}HJ3).x Ux[,YrS,Yieº v5 ^%!}=vV X`` %27*nrcz !9ƍ_k\4N?fAPP;,hUs=ԳhPPh)9M\3JUet*4a %CLzc6Y<ikׯ143u#LÝ+ fHYRܘx<8UR%!a?%GH(e }p+%E;svhKc'ABdUC:47[G}4-0 <!g 0a|&6.`nB'[s2f%,$~T4kC0*<gy44qkrr"nqBA2$!h"w@1nrxXCE؛$`mqV?oxHo5Q12_ 'TU!gs-ԩI-Q'Kh75e%`EhnسcxC0=~tcV>TNrƊ8Xoc* F(P.r8$Wϊ1-9QvX#!#0&)_)6Lؾ1ŊBCǟ$L&צ<4.}IeNU5biuIIK]aT2v*A/B(qD":]CJv 4Wtr&r:ĜlDWUi-U;ת>Q"4Hx)~'dQ6"f1?Gu[iW7BK֋}F7M-hV8Pk\AARY=xt} mY) {hG4Ei F /#]3$wgnA0cw@ADn 6sm=PU0E#A cw-&'cʇG3{~}RxRRf!]w)W41!Db0#.ɑVq4CgD"z$,b#aǿvGU99ʏw*{s*Rx*g%tO'+72O<"n{Řdc 'c Vyp݈c"PAG;9er"6 J?Ksr3T{Lf3"R@H*@Ғi(.zZWVJBN*FWAt:&A-jxR$G36]0ʀW}'эk0YB$_PA*kp,+9,#29RIV^"!9Bx# Q֍Pf]f'''٨0CAzICYRY'X(ق}0Mk~I~G0 @q-:` -AjFn 11.uHtr1k:"w *lEgxRTk~%)j(8CU%BsRw/Ua(1`@K?l2K6+¾QA56 MB*h}BFvNEErQ"dPE"SD40E B",$qb:B.5V2xF601*K$ø_|˫}"^  ]<4}?QOF5* q.vR³~[3eP%"X1%+60t$%aD7I,c][ѐM">KFR~h[ɆMen"3+(jJ?xƿj\Y<([ZߑN -01nn˷ę݋Dؚ;K!qQRu\@)i6Ex` "PTctiBlNQ!Il U%$9>KDL!Mxt?y!`"D<%Þұbp UC׊\]%,UFX=|Y ]5?e,At{RLhV0߬g>+ fQQ<[ C]d 'k˰lECl9$(@7FrP:1RAA+<1M”1!],v1ksAm)8#o!Rp˜F@YeCI&_<#}0zTld/)\P:Ģ(ī1FĮ%ƕ:gUm μy0v`o'7_ /-R-?\SrapuXg0 K/q@Q7y˚oSメ4|!D'rԻ'I6pP.8 'ybb\!&B pM>kW_UBHbG?B k$-1KcAEWA\mj~ݦ%YcAc"5PgRlV-DAp4ͭ zJ<  ).n[j@nj AYưk!ͷ(|73QMz/ֵ;q}$RG3JBbEW:Rn,d%6"LMy7|&ωN,לT~.%ZNJkBkbp j~>D|t2[bA.FH83x#," B} q@"H!g%!8&!g9O<ѭ2a@yl0*Wm3YH.9Kcs/-$g"et}ԗ%۳D!3'D}ސb {;*7{O!bzJn2F$;srۡSB+Dz;"wײת!T`k`"qIN2uܨ"v# `(hDAkĜM-/N#2£n jnryKzwioTı+`pQC`RYL}*s!|Xnu"m<0c pPA/(}AiaC;%Pb#:G (CW024[!%0ݕVY?*WWiqB8'?g)12RtjB!l)(.C)"V&5Hgs$a 10Z$yZ>U\C,`5"ǃ:Y1G6<_ L,+Jm ߥ 2 "~D {63ޏVS)2b*-ƿ_χ6"@0Kf*;Ҝ67½{>*7UJ%}+f*czͥ.{>-$P&GA(%U9^Y'K@eB#Z'MNdq]kA"v?CZyqM,e<V޽<>/8pUspAj*v "Z!ybu:F(P'&])N/Q&dӗX^(C3'pC15[=xr }}vV? ϼ ;ؼ!YO4ݧ">sb u7`=8qÎIaDRU<`je#0 dVvMCOPY.HLP[m-help 6/12/88]%  "&ȺMPX, S4Ac9D2+NG3INCA/&NS@I9αԀi9xp1Ap܅ s #͆I1hgE@S<p:K:N7qr9NgWp6haTFEAWh , fFf4Cxnf 1\RI3gcIGL'3rqSk:.'b^v]ڎY| ##2RځH@(2 ,s1nwlSU V< EMDF0۰;sWX'B'".H?Fѷ0L:0̖ M&{cw( "񵧣 \:tu8@5Xj7b*  /|G<jW^k9W&aw{7Wy4Z@21nz[R. OФl83 CHc'uPƚ,mXtO%Xf+j4ؔG ;Oz Ɩl8 O zs$u uAǜ2WJl:-fL*k0x*N3g hU`cV1 B`q(2o5); 2!D2ksLC!YϜۆS ј3BGISO9MՀt:3H0aW EEH 8a&:7 16cC gU9R<TbyMu )pya2l9.Ĕ`I{tpSH"d1b521\qO =]ND>Μ] \M*^j[9LJf"έo T Ga&YgR7e-74x7X D!B)7V % :=^[:MPA5\Ѽ'vMDU.HLP&E&F&F[M-HELP 6/26/90]# A@@HM"E2y6#A`iLz2#))D8@ e9&t A: 󐼘a:NgA$s:b!k@25G24dEDQ#M„j6t:Daxat2$*UAEZbAd-Up$.hŢly:ksQ \=mثg$2G[ylGfqӻƝ Aj4e{Jڵ n0/RcĮ?O^1擪3ƽF^G r|ht %cf,C  Ƭ HO%#&ӡNŬ0u1<5R!5'o/wd~.*{XB !Q!55 QA 5HC |9DbZNMz"s΋s^lXDòT S6⟣G5ohА Dx(; The ZCPR3 MENU Shell -- ZCPR3 Utilities -- 1 - MENU  2 - MENUCK  -- Using MENU -- -- Programming MENU -- U - Using MENU  P - Programming *.MNU Files  S - Summary of User Cmds  C - *.MNU Internal Commands  E - MENU Error Messages  M - Programming Cmd Summary  Z - MENU and ZCPR3  :1  Command  MENU 3.9  Syntax  MENU <-- run MENU.MNU or MENU ufn <-- run menu contained in file  Function  MENU is the ZCPR3 menu front-end processor. It is a ZCPR3 Shell which reads a *.MNU file and processes commands from it.  Options  None  Comments  MENU is a true ZCPR3 Shell. It is described in this HELP file.  Selected Error Messages  "No Command Line" means that the ZCPR3 System does not support an external Command Line Buffer. MENU must have this to run. "No Shell Stack" means that the ZCPR3 System does not support a Shell Stack. MENU must have this to run. "Shell Stack Full" means that the Shell Stack is full and MENU cannot push itself onto the stack. "Shell Stack Entry Size" means that the Shell Stack elements are too short for MENU to store its parameters. "TPA Full" means that there is not enough room in the TPA to load the *.MNU file.  Examples of Use  See this HELP file MENU is the ZCPR3 Menu-Oriented Command Preprocessor. It acts as a front-end to ZCPR3, providing a menu-oriented user interface to ZCPR3. Its function can be represented by the following diagram: ------ ------ ------ ------ |M | |Z | |B | |P | User | E | | C | | D | | g | Menu ---->| N |--->| P |--->| O |--->| m | Command | U| | R| | S| | s| | | | 2| | | | | ------ ------ ------ ------ The "User Menu Command" is a single character that the user strikes which instructs MENU to perform a function. Once MENU begins processing this function, it builds a command line for ZCPR3, optionally asking the user for further input (such as a file name), and then passes the command line to ZCPR3 via the Command Line Buffer. ZCPR3 then runs the command line returns to MENU. MENU builds command lines based on simple input from the user. The user need never know what the actual command line is. The command line itself is always of the form: As an example, a command built by MENU to run XDIR with user input for a file name specification, could look like the following: XDIR When MENU is executed, it builds the list of files to be displayed, and then looks for the desired menu file. It begins its search in the current directory, and continues along the system path until either it has found the menu file, or all directories in the path have been searched without success. If the menu file is found, it will be read into memory, and the first menu displayed. If it was not found, an error message will be generated. If no menu file is specified, then MENU will default to MENU.MNU. If the user has supplied a file ID with both the menu file name and type, MENU will use this file. If only the file name is specified, the default file type of MNU is assumed. The MENU.MNU file can contain up to 255 menus to be processed by MENU. The MENU will begin processing at the first menu in MENU.MNU. MENU itself is a COM file, like any other program under ZCPR3. Unlike most other programs, however, it generates command lines to be executed by ZCPR3 and stores its return command in the Shell Stack. In this way a loop is set up: -->--+->- MENU ->- ZCPR3 ->-+ ^ v | | +-<- Command Line -<---+ Only MENU itself or a ZCPR3 tool like SHCTRL can terminate this loop. If the MENU programmer wishes, he can set up the MENU.MNU file so that this loop will never be exited, or he can set up the file to allow anyone to exit at any time or just a special person who knows a password to exit when he wishes to. There is a lot of flexibility designed into the system, and it will be discussed later in the section on programming MENU.MNU files. A MENU.MNU file can be set up to execute any ZCPR3 command or sequence of commands. The MENU.MNU file can also be set up to not allow the user to leave MENU, to allow him to leave MENU at will, or to allow him to leave MENU only if he knows a password. This HELP file is divided into two basic parts. The info sections on "Using MENU" and "Summary of MENU Commands" are designed to be read by a person wanting to use MENU but not wanting to learn how MENU works or how to program it. These sections describe how to move from one menu to another, how to issue MENU commands, and how to leave MENU if the option is presented to him. The other sections of this HELP file describe the programming aspects of MENU and are intended to be used as an online reference for the MENU programmer. The MENU command programming summary is especially useful in that it provides a summary of the commands which the MENU programmer may issue to MENU within a *.MNU file. :U When MENU is first invoked, it will be installed as a Shell. If commands are pending, control will return to the ZCPR3 command processor for the next command in the line. When the command line is exhausted, ZCPR3 will realize that a shell has been installed and invoke MENU as a shell. If there are no pending commands, however, MENU will begin the menu command processing immediately. When MENU begins execution as a Shell, it will load the menu file, and then one of three things will happen: 1) A MENU will appear and be paged up to fill the screen; a command prompt will appear at the bottom of the menu 2) A MENU will appear and not be paged up to fill the screen; a command prompt will appear at the bottom of the menu 3) A command prompt will appear with no menu (this is called the Expert Mode) If at any time a Menu Display is garbled or the user desires to see the current Menu (as sometimes happens when you are in Expert Mode), just strike the RETURN key. The RETURN key refreshes the menu at all times. The prompt which appears at the bottom of your Menu display has the following general form: Command (CR=Menu,^C=Z3,*=1st Menu,<=Prev Menu,>=Next Menu) - There can be up to 255 menus in one MENU.MNU file. The MENU command prompt varies to reflect this. For instance, if only one Menu was present and the option to abort out of MENU to ZCPR3 was not available, then the Menu Command prompt would take its simplest form, looking like: Command (CR=Menu) - Strike the RETURN key at this time to refresh the Menu Display or strike the character of a Menu Option. These are the only choices, and striking a character which is not the RETURN key or a menu option results in the bell sounding. If the the option to exit to ZCPR3 was available and there is only one Menu in the MENU.MNU file, then the command line will look like this: Command (CR=Menu,^C=Z3) - The option of aborting to ZCPR3 by striking Control-C (hold down on the Control, or CTRL, key and strike the letter C) is now available. This will return to ZCPR3 and exit MENU. One brief note on option letters before going on. If one of your options is a letter in the range from A to Z, then case is not significant, and you can invoke the option A, say, by striking an upper- or lower-case A. If there is more than one menu in the *.MNU file, the command line options become slightly more complex, but they are still quite easy to follow. In the following examples, assume that the option to exit to ZCPR3 is off, so the "^C=Z3" option will NOT appear. From the first menu in the file, the command line will look like the following: Command (CR=Menu,>=Next Menu) - To advance to the next menu, strike the ">" or the "." character. On most keyboards, ">" is the shift of the ".", so MENU permits easy movement without having to worry about shifting the keyboard all the time. If at the last menu in the file, the command line will look like the following: Command (CR=Menu,*=1st Menu,<=Prev Menu) - This allows the user to strike the "*" character to jump back to the first menu in his *.MNU file. If "<" or "," is stuck ("<" is usually the shift of the ","), then the user will back up one menu to the previous menu in the file. If the user is somewhere in the middle of the MENU.MNU file, his command line will look like this: Command (CR=Menu,*=1st Menu,<=Prev Menu,>=Next Menu) - Again, "*" will go directly to the first menu, "<" or "," will go to the previous menu, and ">" or "." will go to the next menu. Striking the RETURN key will refresh the menu display. One last option the user has under MENU involves access to a System Menu. This menu is special in that there is only one way to get to it -- via the "$" command. The System Menu is intended to give priveleged users access to special commands that the rest of the users can't run. If a System Menu is available, MENU will respond to the "$" command with the prompt: Pass? The user is given one chance to type in the correct password to enter the System Menu. If he is wrong, the message "Password Error" will appear and he will be returned to the menu he came from. If he is correct, he will enter the System Menu. Physically, the System Menu is always the last menu in the file, and its command prompt is: Command (=Menu,*=1st Menu,<=Prev Menu) - If the user is at the menu just before the System Menu, the ">" will not function to allow him to enter it, even tho there technically is a "Next Menu". The ">" option in the command line will not appear. The only way to enter a System Menu is thru the "$" command. In summary, moving about within MENU is quite easy. "*" moves the user to the first menu, "<" to the previous menu, ">" to the next menu, and "$" to the System Menu. :S The full Menu Command Line looks like the following: Command (=Menu,^C=Z3,*=1st Menu,<=Prev Menu,>=Last Menu) - The Menu Commands are: Command Function Refresh Menu Display (RETURN Key) ^C Exit to ZCPR3 (Control-C) * Jump to the First Menu < or , Jump to the Previous Menu > or . Jump to the Next Menu $ Jump to the System Menu (Password Required) other Menu Option or Invalid Command; letters are automatically capitalized, so a=A :P  Programming *.MNU Files  The *.MNU file is simply a text file which may be created with any conventional CP/M editor, including WordStar. MENU ignores the Most Significant Bit of all bytes, so editors like WordStar, which occasionally set this bit, can be used. All *.MNU files have the same general structure. The first line is either a global option line or the beginning of a menu display. If a global option line, it begins with the character "-", and this character is immediately followed by global option characters. The global option line, then looks like this: -options After the global option line, if any, comes the first menu. Each menu is structured as follows: #options # menu commands The following are two sample Menu File structures: -options #options #options # # commands commands ## #options # commands ## There are four option characters. In using them, case is not significant. These option characters are: Option Function C Display Command Line to User D Display Menu to User P Page Out Menu Display X Allow User to Exit to ZCPR3 The C option displays the command line built by MENU to the user. This option is primarily intended for debugging purposes, to allow the programmer to see what commands are being built. It is instructive to the user, however, and may be employed for that purpose as well. The D option displays the menu to the user. If the display function is not turned on, we are in Expert Mode, and the commands are available without a menu display. RETURN, of course, can be used to invoke the display if necessary. The P option pages out the menu display. If the page function is engaged, then the MENU program outputs combinations until 24 lines have been printed on the screen. This is somewhat more attractive and eliminates old text from previous commands, allowing the user to concentrate on his current set of options. However, it is annoying if the user is accessing the system, say, at 300 baud via a dial up. It is for this reason that the MENU programmer has this option. Finally, the X option enables the facility which permits the user to type ^C and return to ZCPR3. When MENU first comes up, all options are turned off: C is OFF -- no command display to user D is OFF -- no menu display to user P is OFF -- no menu display paging X is OFF -- user cannot exit to CP/M The global options line, which, if present, is the first line of the file, turns on these options for the course of the session in general. That is, if a global options line like -DPx is used (case is insignificant), then menu display, paging, and exit to ZCPR3 will be available for all menus. The global options line affects all menus. The global options line turns on the indicated options for all menus in general. However, the same options may be presented on the first line of each menu immediately after the "#" character to temporarily complement the current option for only that menu. If an option is NOT included in the global options line, it is turned OFF for all menus in general. The defaults selected by using the global options line are overridden on a per-menu basis by the local menu options. Example: -dpx #x This menu is displayed and paged, but no exit to ZCPR3 is permitted # commands #dx This menu is not displayed and the user may not exit to ZCPR3. # commands #c This menu is displayed, paged, and the user may exit to ZCPR3. Additionally, the MENU-generated commands are printed to the user. # commands ## Any option that may appear on the global options line may also appear on the options line for a particular menu. The menu options line supports one additional option, viz. "$". This option declares the following menu to be a System Menu. In programming a *.MNU file, the MENU programmer MUST place the System Menu as the last menu in the file if it is going to have one. To do otherwise is flagged as an error. The following illustrates a *.MNU file containing a System Menu: -dp # This menu is displayed and paged, but the user may not exit to ZCPR3. # commands #$x This is a System Menu, and it is displayed, paged, and the user may exit to ZCPR3. ## If a menu is a System Menu, the "$" character must immediately follow the "#". In the case of the letter options in both the global and local cases, the order is not important ("dpx" means the same as "xpd"). The password used to enter a System Menu is hard-coded in. It may be altered by reassembly or use of DDT. Note that this password can be upper- and lower-case, and case is significant. :C  *.MNU Commands  This section describes the technique and options available for creating command lines in *.MNU files. The information herein is organized into the following subject areas: o Syntax of the command line o :nn Option o ! Option o "text" prompts and input o Variables ($C, $D, $U, $Fn, $Nn, $Tn, $$) o Highlighting (^A, ^B)  Syntax  The commands in a *.MNU file follow a simple structure. Each command occupies only one line, and blank lines in the command group are not permitted. The command line is structured as follows: l[o][command] where: l is the single character used to invoke the command note that it may be upper- or lower-case o is an opening option, which is one of: :nn -- go to Menu nn ! -- have MENU wait when the command is finished command is an optional ZCPR3 command; note that if the option is ":nn", then a command here makes no sense  nn Opt  The ":nn" option tells MENU to move to a different menu in the *.MNU file. The first menu is number 1. Example: -dpx # 1st Menu: A - Goto Menu 2 3 - Goto Menu 3 # a:2 3:3 # 2nd Menu Command: 3 - Goto Menu 3 # 3:3 #x 3rd Menu Command: 2 - Goto Menu 2 # 2:2 ##  :nn Opt  In the first menu, the user may strike: "a" or "A" to goto Menu 2 "3" to goto Menu 3 ">" or "." to goto the next menu (Menu 2) ^C to goto ZCPR3 In the second menu, the user may strike: "3" to goto Menu 3 "*" or "<" or "," to goto Menu 1 ">" or "." to goto Menu 3 ^C to goto ZCPR3 In the third menu, the user may strike: "2" or "<" or "," to goto Menu 2 "*" to goto Menu 1  ! Opt  The "!" option causes MENU to pause and ask the user to "Strike Any Key" before continuing after the command line has been processed. In this way, if a command generates information to be read by the user before MENU clears his screen, the "!" option may be used to give the user all the time he wants to read this display.  "prompt"  Embedded within any command line may be a prompt for user input. This prompt takes the form of "prompt to user" When encountered, MENU will advance to the next line and print the text contained within the quotes. MENU will then wait for the user to input any text he desires followed by a RETURN. At this point, the text the user input is capitalized and placed into the command line at the point of the prompt. If the prompt appears at the end of a MENU command line, the trailing quote is not required. As many prompts as desired may appear within a MENU command line. Examples:  "prompt"  -dxp # A - Run XDIR without Pause or Input B - Run XDIR and Pause before Returning to MENU C - Run XDIR, Allow User Input, and Pause before Returning to MENU M - Run MCOPY, Allow User Input of Dest Dir, Allow User Input of Source Dir and File, and Pause before returning to MENU Z - Run Any ZCPR3 Command and Pause before Returning to MENU # m!mcopy "Destination Dir? "="Source DIR:AFN? " z!"Enter Command Line -- axdir b!xdir c!xdir "Enter Ambiguous File Name -- ##  "prompt"  Note the Space right before the "Prompt form in the C command. This space is significant to keep the command and user input from running together. This "run together" is desired for the Z command. Also note the dual prompt for the M command. With the M command, the following prompts will appear (and sample input): Destination Dir? BACKUP: Source DIR:AFN? *.TXT and the following command line is built: MCOPY BACKUP:=*.TXT  Variables  The command text which is specified in the MENU command line can contain embedded variables which MENU will expand when the command line is processed. These variables, which are denoted by a dollar sign ($) followed by one or two characters, are defined as follows: Variable Expands as -------- ---------- $C Current DIR ('Noname' if not defined) $D Current Disk $U Current User Area $Fn FILENAME.TYP for ZCPR3 System File n $Nn FILENAME for ZCPR3 System File n $Tn TYP for ZCPR3 System File n $$ Place a single $ in command line These variables can also be used in the menu display itself, and their values will be substituted when the display is generated. Example:  Variables  -dpx # Menu to Run M80 Assembler Current File: $F1 Directory: $D$U F - Define File E - Edit $F1 P - Page $F1 A - Assemble $F1 # fsetfile 1 "Filename? " eedit $f1 azex m80 $n1 ppage $f1 ##  Variables  Notes: 1. The ZCPR3 utility SETFILE is used to define the name of a ZCPR3 System File. There are four System Files available, and they can be referenced by $F1 to $F4, $N1 to $N4, and $T1 to $T4. 2. The A command shows the execution of ZEX. MENU is a true ZCPR3 Shell, and, as such, ZEX commands can be issued from it and will run on top of it. The prompt for the ZEX command lines will be "Menu>". 3. Assuming that "MYFILE.MAC" is assigned to the ZCPR3 System File 1 and the user is logged into disk B user 1, the following screen shows how the display and the resulting command lines will be expanded when execution occurs:  Variables   Display  Menu to Run M80 Assembler Current File: MYFILE.MAC Directory: B1 F - Define File E - Edit MYFILE.MAC P - Page MYFILE.MAC A - Assemble MYFILE.MAC  Command Lines   Menu Command   Expansion  fsetfile 1 "Filename? " SETFILE 1 "Filename? " eedit $f1 EDIT MYFILE.MAC azex m80 $n1 ZEX M80 MYFILE ppage $f1 PAGE MYFILE.MAC  Highlighting  Just like the HELP utility can take advantage of the highlighting facility provided in the Z3TCAP, so can MENU. For those ZCPR3 Systems with a properly-installed TCAP, MENU will use the clear screen command to refresh the user's screen and highlighting can be enabled and disabled by embedding ^A (to turn on highlighting) and ^B (to turn off highlighting) into the *.MNU file. It is recommended that when highlighting is turned on, it should be turned off in the same line for consistency sake and appearance. Example:  Highlighting  # ^AThis is highlighted^B and this is not # will appear with "This is highlighted" in a highlighted mode like this:  This is highlighted and this is not  Closing   Closing Notes  As many commands as the printable ASCII character set (without lower-case letters and the MENU command characters) will allow are permitted by MENU. The text, however, for each menu must be able to fit on a screen with the command prompt at the bottom. This means that the text cannot exceed 22 lines. MENU fits in nicely to the ZCPR3 System of programs. The information section on "MENU's Relationship to the ZCPR3 System" explains how MENU and the other ZCPR3 programs work together. The following ASCII characters may NOT be used as commands since they are used elsewhere: # % , . < > * :M  MENU Programming Command Summary  Each MENU command occupies only one line, and blank lines in the command group are not permitted. The command line is structured as follows: l[o][command] where: l is the single character used to invoke the command note that it may be upper- or lower-case o is an opening option, which is one of: :nn -- go to Menu nn ! -- have MENU wait when the command is finished command is an optional ZCPR3 command; note that if the option is ":nn", then a command here makes no sense The MENU commands are:  Command   Function  :nn Goto Menu nn, where the first menu is Menu 1 ! Wait after command line is executed before processing the menu "Prompt" Prompt the user for input and accept it The MENU variables are:  Variable   Expands to  $C Current DIR ('Noname' if not defined) $D Current Disk $U Current User $Fn FILENAME.TYP for System File n $Nn FILENAME for System File n $Tn TYP for System File n $$ $ Note: System Files can be defined by the SETFILE command. The Highlighting Embedded Characters are: ^A Turn ON Highlighting ^B Turn OFF Highlighting Note: It is recommended that if highlighting is turned on, it should be turned off in the same line. The following ASCII characters may NOT be used as commands since they are used elsewhere: # % , . < > * :Z  MENU's Relationship to the ZCPR3 System  MENU, like most of the ZCPR3 utilities, interacts with the system as a whole and cannot be used with systems other than ZCPR3. In particular, MENU requires the ZCPR3 Multiple Command Line Buffer and Shell Stack facilities to be available to it and cannot run without them. MENU invokes command lines via the Command Line Buffer and returns to itself thru the Shell Stack. It also uses the ZCPR3 System Files for some of its variables and the Z3TCAP facility for its screen manipulation (highlighting). MENU is installed by Z3INS. Also, CD (Change Directory) and STARTUP (or, ST for CD) can come into play with MENU. When CD logs into to new directory, it looks for the file ST.COM and executes it if there is one. ST is simply STARTUP renamed, and STARTUP will load the Multiple Command Line Buffer with a command line and then terminate. From the point of view of MENU, the command loaded by ST could be MENU. The effect of this is to automatically enter MENU when the user employs CD to enter a given directory. Hence, by using CD, a user can enter a directory and suddenly find himself in a menu instead of at the ZCPR3 command level. This is good for applications where a directory is set aside for a specific purpose and only certain operations are to be performed in it, such as cataloging disks or handling accounts. Now that MENU is running for the directory, a MENU command could be another CD to another directory. Or it could simply be a DU: form. Example: #dp A - Enter ZCPR Directory B - Enter A0: # acd zcpr: ba0: # Here, if A is issued, then CD will move into ZCPR: and execute ST.COM if there is one there. If B is issued, the user is logged into A0:. MENU is the next command in both cases (command lines are "CD ZCPR;MENU" and "A0:;MENU"), so MENU automatically reinvokes and looks for MENU.MNU. If it finds it, we are in another MENU system, and, if it doesn't, we are back to ZCPR3 command level. Under the A option, if CD finds ST.COM, ST will execute its function and, unless this function pops the Shell Stack (SHPOP command), MENU will reinvoke after it is complete. Under the B option, we will run MENU next and simply exit if a MENU.MNU file is not found. :E  MENU Error Messages  In order to make MENU as small as possible, the error messages have been reduced to a minimum. MENU provides a minimum indication that something is wrong and aborts. The program MENUCK is designed to tell you more specifically what is wrong. MENUCK is a *.MNU Syntax Checker, and it looks for all sorts of error conditions that can occur in a *.MNU file. MENU provides the following minimal error messages:  Message   Meaning  No Shell Stack Shell Stack Not Available No Command Line Command Line Buffer Not Avail Shell Stack Full Shell Stack is Full Shell Stack Entry Size Shell Stack Entries are too short for MENU cmd line File x.typ Not Found Menu File Not Found TPA Full Memory is Full User Command is in Error Password Error Invalid Password Given Structure Error *.MNU File Structure Error :2  Command  MENUCK 1.3  Syntax  MENUCK dir:ufn <-- default file type is MNU  Function  MENUCK is used to check the syntax of a *.MNU file for the ZCPR3 Menu Shell, MENU. MENU is optimized for size and speed, and, in keeping it small, built-in diagnostics were reduced to the minimum. MENUCK is intended to be used to analyze *.MNU files and provide informative diagnostics on any syntactical errors with them.  Options  None  Comments  MENUCK checks to see if the size of the *.MNU file is too large for the TPA available to the MENU command. This is an additional check beyond the normal syntax check. MENUCK identifies the location of errors by line number. The first line in the file is line number 1.  Selected Error Messages  Self-Explanatory.  Examples of Use  MENUCK MYMENU -- perform check on MYMENU.MNU vMENU.HLP[m-help 6/12/88]%  #&IQq MPX, S4Ac9D2+NG3INCA/&NS@I9αԀi9x $ `CAp%sh " - ѴZ \D3ɸa9J *8syPh2Cctɺ ܖlMycC2fijSj 11Ӹ:9nh7@2x6 sC #+Z4"c~2IH43 cF1(w25܄ H, C \10 H2jp4o)$̋èl2`@7 !&n2.ʍ:g$631F; -@ Ǥn?cH:'d-Ԗ>l@9r̓4O8C "6!9JA"MCC0iΟ03K+OX! X3Cjp8cĜ[C0+NACvEqxmR<<+' 4!lKC6P݆@]Hcp+t O@藍r+7AffL] Ar ! +O*8xbȡΰ!f2bkңԌ6pB./ñ:« 9 \&,:BL`7 su^ kJΗ0 ȳ|ޖ=o7N;# ۧ29$0@" x$\۲6G0N#f'/8)*8'Hb;(<2loL7P41K%'hF@*G01Pr@dQBy$y edvMENU1.HLP##0#2[M-HELP 11/14/91]( A@@FM"<X@4i=Dse" V2fy Ny^L0 3s9c1s5<3I1f7 B9LqleF- ш- Et0++8=9wAp&v „ =S@yr\GKD2Hf 6΢1`t̂C $ l6B"l 01P 壦vomvhtT *SjFlb&jknm(>!pԜY^JΖcardfF1h\LZ ^a=^ `~S{$e1Z=lӄuF$_SACAv%r@ aqR!WU pm 5p5gZV:S@eSG8ŌiNь 喜6GCxf+-kh`2 ᡡAe-0B e`U d (M) PCK29"_ ͝`2A$ 9D\ڽL*P Mt4"ҀQa$DpZR9 MFc#=d `7S(0C+r"xe\`0(f @ =і p6L ;6gpք{όdǨU}p%c@4in BB'k!NY`6(7Ю ts"IvurbZ/ L;uUKBAuH;h rW /LE.zm%і$N *e:ztPքZ8:/3 7ft M#0`S"FII9)oBlN (bRd,dVH3ʀrXb4l6Ĕ`5!$bAA S# dl&-B]c'8ܡ:@( @vMENUCK.HLP[m-help 6/12/88]%  !&IR,\C'a0 '(Pr2b CSo7Bo9 ɆtNg3} "Nf@35#2@A"\3&n9Np/ a$MF ሴ@S< _)8\4P /1er#u Q| aA*樀i6i˓-%Le7=DQo1sfOda쐀o0}}9rrMm/nrdWs `6 #ɶbz5s9#p / 6r݄ ,0=c2Ҽ$̓0 V:-* *~1#9/7 0v}G;'IX ƟH<2rYɿ,!4&6C,o mL04gCClɎG\ Ý jH@1DB!Cp\A%` 6H|rP0!p< Xx2Y@W uY>uj|ZVͨR<I< 14"dHtNm#`\E]W`@+;*2 a=ڝ4z9 dQ@ԐPҴĀJvMEX+2Z.HLPI  [M-HELP 1/1/91]# A@@BM"c"иfO&`(, )OFQe1"H#n'Sr 'C) $gX@ D4q'f)٤0 &#It<;&}kao^M|XH" ɴK}$_hmjQs]V?&]ŅQ-zɋ_kZmAFwgln&$h~-_XFF0bXAB֔alF4rf[ÆB "eرǘnFЂB'$.`DK2`kI tP(ad1U aYej[E8 À) P14`9dib abwê9V|FU HX9G1i&UB݇H qjaq^P~ToT~a&H"A@Hw!je p,WYRD1 l>kqv5uKNdželL>dO< aIllMDKGyY5N(< Jij\ YF(lJzq\gf wFQBjQeph鶄-`\PE5ЇAߕ=Re4,pMػ}h%G Szmg+FGf\gi1{^X.\]!": whhAb'^ +ƅCGqUlHR V,Ϝx퍬,gϭ ,pv?tbɁB+1X0CqiHpBpC #\"m͜3+chƕ62oIHFfy%Q`Ȃu,e Ad9+F[K 2 s t?. Hr-a8AT 2HINY #RY i.%ʘ"f`!kP#kcC\ǕP5D5c$SBA}mؔs,B3Ɨ#kiJqCxcd:ǟ(B H*BRv"sa &mp RП[+Mj>H~%!!*FHr(PHXpl;ܝ0ҳYL*&H`T8"j8 v01.ȝ@3LYbʁ|F@N\^A0Qp'A@f &^]yT48SYV5pfowk;*AL*xPbޏB5%AI;!&߃(Uu~!\)2ъ3 ţrpTpcG$ *NStt`JL{F` M}E!fh2`k[f #&C3\jE(wDsɝI?Ro! @TɔxhEK`A͛nC$:7eJ lQ-UCef,՜Ye$Tn2*,sP6cSqdUχӦ@gYɖQ<ENR䃍 SZ͜B?Ü]{3]1:ΩX*p wN'Q;qƇ ŒI](8$  Ʀ٢u#|j>nx^,H1$H,([| 9UK-#9恇6Ǜ Zv<2궃rttyAzJlIPSINȥ1 vMEX2Z.HLP[M-HELP 10/22/88]# A@@DM"Eq MPX, S4Ac9D2+NG3INCA/&NS@I9αi9 xRB0j4" B9Lqle FB- $Ѵ^ \DS\_I:2\4 " ylfS-8Nw2]0 #AfT77L挩p:LY)߮ !9.uL& C(bQ&p0'Sqni71Mm6QGeRa@Ms$Ts1dSTL NQxY6M2dpfqi$bGo!AGvlvvGn_uaRPBDWw]r"fQ$1PhXWu^v1hFDRWfqXiv#׬vƹ~=FLO[9 g,Xwdt|5<F5J;k8`iPFhќ')]^hKW:diA֝ DRD Hqtt+}s4{'eq>fSr1fHkcV%xi: Xx_^T J$ژCI\|VRxyO($z*`D4Ndy6w D(5pYQI9E \~G 2VM„Au}J=ݯ_xA'bx-GH 2^@a ex/oaq!BEkuANFy݁Xy vbm{#@7` cJ8%kƟ3I,8њE/@+s&OδF q9 q0!1)+֚# sc\ muㆬ2gX.2XV @1dYSk1F,WMv P0 d+l\tx N|rLR  8wW5WHlp׳ST! Ўv$Wݖfp5:D2L<쓣+YTB)|;`;H-hhsohE6XMp4*Y3FrU*7aշfL[0N*Yj ѢU:y쮮Ժ7ź?K8az ;3wP 9B'zpg $(:‹m4ޛ&Hp硻@(@KQ6r95xn@D  KtQ>(pO"N a9ZAN_ڞQQP+~g?4rεW93H*wD u2dj'$dXs H^T|VN(Vw6茰d):N jpT;TAV>A7UB9 Iw (RM-$Z|pE=20l2Ce,jqLɯ>3Daɏ8ա]qGKzE (v @ & al+4p4P[Pm1PzEP2xoǍd"\6X;) qa?b\ PpftS < S9 CILmFLBخ@J'3>L` ӓy\C'7KNij\l0pF;T"8Mۢ8$ixMʰ?[o2RyJLۯsz. xq]3s1!0a醽+!䐳sۙ/ Fti!.=fg F4) Վ!9:MlxNٱK"Ɵ6b&*'drN8^V*< 5 Yy?Cx-H:x32i=1صa9984+P+S肤h2z#G9H( z93Z*Ix )x'<0,0H@ X!)(x!CX"(+C;$!'%4 BD0%Z?`$:356,뜉,C z,<D.I+TJKL*GDZE5,Q\S$EGLVDW«Ũh]X(TidCΔL1S9s"wK w̓DIY8ȖPB;FBHBZ@d"̡эѸ-=.0 *Ie"* 2Y+@z0,: ٸ!"a *=; S '8Yh19ɚ'0K4$ pb P q< ;?;kR,!⑂:+ :$)j%?i73 44ѐy)xҴ˓@0ض4((0a̔(2 Lߐ#*A`+w)jܻdO 0M?zLhÜ Ӊr*0 B0q=H4Rٳdƍ^:b*\$zB{-p h">K wфXEMOI\ϣDϼ믺 3Ο$yyJ:94. >3>_DU4 ȏB:%;Pl^д4ݸ0'8O|+@ '`9Ex2(DEU 0673@+) әOQOŠ*sqK[Tӳ &AEZ4>BɄ <D Rs  `drI[rN-e @"4 >Թ%d' ":v34;KL [B7,}iLGk)Np:, /HsJUx7bOeМߝ5E=P7U9P=)p2؋L0)65 i)H$ c9AU ̷+Wp|ꬢo4'O(Œ8ĘH 1E1')+V8'-8ůHу|qyHS7:d$è. a3*؜(2yܒXgˉ%ග;+aa Ո@ŝY mZ 2ɾ"4յʩ%(8pl6MØwN9477`8ܗɜ=eٙfH:¶ #i*М*9e_\">j"؊[u oi +60V;v˅8ɥ`♨uH+*( '_ۓ6X̚C?04J$vEr4@+C~빏N b"JӷA8i7t)7.J1?ib0th0C @TA`A.J CP# x\!"~" h,(!,3iBp:K2, a{+\""$ s2H3*A=kL(/L  :'Li>6 ;2#; P28(MN-ՍKS3X $J81&T% DV56Tu(SC A&"pA94AFbr\9 'kU ȶM'wwz1N26L(1'K1"}{3M73 #8݋o$=9Lj0i`;8$cM2#Зhepr1>#ͱp0@K."(d>p?"\"°@ %iV* "&pIƫ!@8iVsx03p$F%Uspn.RPߑmz2fLQh`$'`7 VT;?oHw۲n!Vv܃c zn8&qF3.{=醶v) :mA Ϝ2Do,ϝÀݯ@B:١0xl3t{!xO7Namwqb$1e#O>PC" (t cעCrKP4@HvMOVE.HLPUS[M-HELP 12/13/89]# A@@FM'<X@4i=Dse" V2fy Ny^L0 3s9c1s5ap|F! Fc!d.yr2a~e4F#!xs)- ѵ6R:Y#-dZ-Vut]SL(i qdaa2]q#Ln:Oy/7P!B0RL"Cl N ie9b:fӊ$':ia;[X!LCu B2H7 R !@c&}@Pi=P sI.8 ne+{.n a1dꅠ3mRQ6 - ]u'dn ,P9' xm:( [|I1y5]' f0 `CL @`)HH3tN- @r?r`  4y[B|pS#$0iq'U :n0CDy*~27@݂tl CG $OP вm0pLƓ)@m2g7ge|!fЁ!Դ. DuyFQ[OEg1pF'I{Wa Pek A-zh|Qy AR^Qru0wtNAveu!XyGVhsFUWOY\pm>|Fzv܄niAuITlu']ˌ)RbrLG 5݀[ak!y!Kƺ_dFuD P1Fw WZƹ%sDAHS&4x rB}.( JyfWD-6mH0 C nP GfkQ+z| ) q+02fָn`6s' KB{ g0Ns7 bxB h9vMU.HLP[m-help 6/12/88]% @()ӑi2MAH &cp ',&c9p e9DMu: !y0t'HBER%Ā"H Ё@S KɭQ燉M&3 @twM\n5V(sIєO3)Powk'f4;rm̹!$+@C0 gSezM pЌ` &c4(cC˻a1 | LHHYK6!4N;C!"B!b8 {vɑ(zՑYXCt6 À#J6r;q`e RA h.ACwqB _SP,< [vƴr3){DQvDcE@ dG$KC hhr2 o:XcFgAS, ܆ܼt4N5+nmL$Ǚ'I+fc= mxhQG&Q0ފS HeqEN: J8tqr~]G\; Nq?5/)l A(xPE47K<wRgB^ɂE}΍I@(AM]BF9ëYx3}f.$l c*v܉Xz%PG1ɂ^ Q>/&Yԓа1ePbu&12 Yؙh AY7"CHq~t ,m#i?PȖxÒ UZ`0@VԤLP)ޑm)g|KXg p08A`J G}҆q>)9-XDp $6@ 'C9 ¤3 l9ڣ~q2iX}*u&ą`28s@(DʘJGx0s_ guA)?ʹ0"rpr&2ޙc~ÔB^n+8 @I MgJA) ip6Ғ4# (v*ܣMڈHbȑQRl*GWX!'VH"lrլΓ"y_!ݚ#d>.Y(MLB6 OPm`|Q[u.8ntgp<%{v4RW.u*>A(В'hd[BǙ-gy:H Q %^PϪ;ru_ oӣ O0VHfjE|WFi RKRl!@(ӝhk@/3`a)$*3 Bbb{8oN89܄M*+cMݧ bD𸨔xD8"0[#'+/yR'/us @^-)༼9yEHvR Z3b\X1g**j9ui\0= AJ['h~NWNdgA粒KD a#0@Jfٸa0$&& sؗIiSkJ2(U% KXL //j `d pu \\@%3F͙8gAɞ0 YiPd4nٷ=Oۺ1 $ρ1XooJ[-D$,HB&D="SδYF r12rk[cZ'%z|%t7~~ڣ^0*.M ŐzD4rGSHToK+3`8tE%+DTO :`l:{:Á4 ;3Q;Ow+zbDcY%$!)JJBz5T;ĩI kkM&r/Jo0V%dQuAps(aDtq82B8r,14uEZPpǞzToDDYQPXRBYbN[BVg2XBW0U#aI4IbcWTpg%bA7 yxn4(0<fA\UY]=S!U"bB]OP-Jb!/>%`Ba .hBahEBO;R,=5e=+OX`q\D,$W?wp+SsYp-C2R .tS,C32A$r&PBUefW.r[#Ҟy-(N4]b)2B!JRDbB-!"`q $ `9[q!"A&) 2A6:Xa@!DXH@EQcb/ x@!= N`U;kOA:\0:AvMYLOAD.HLP[M-HELP 6/15/91]( A@@BM,  O&`(, )OFQe1"H#n'Sr 'C) $gX@ D4q|ړWb:}F7 uQh0rh5 'p)QQdb  ]'D:"l@W( CFݦF5[vya ڱEqG7Aefl9 }~{ P F]HX2 o j YVuk1APva ^m/`[!t[[ -@=4C"ԵWxu ubX[)n)ADΥn))njzŮו<xh2XPLIKcS h\wG5nJuZ,¬2FA"Q_ieAGeisY\P.spׁr|^ĭ3 CHAB²l&䠮qA1Ӑ|_34,\@ɡb~ 4vhyv;0I @>^;'l(HDWRsWaʒ#NmZĖǘwC$ˆο @A72>WL2 Cf`«J, y:>`DXJnnE H?g GILFQy.Q: ["fc^Q s2^Y?Bf,53X"Eg`ߢTP2wbW1@i q}0T9G *P%jp(7BnD_>2n] !>S+0& <ZQFRh 2^SeVE DGRA@a0cO*m:?^3Ӕ|OyjA+0$D 0L m`7YR` p1rG)椣XmTi 귤}^nC/]Ŏb@2v IWuʫć4ɥUx;q\+^R(7*q'q@0QcϹĊ@}hBe&B, dzJ(#M+qv 3q* 9:Ev\Bn瀑"^] Nh}p1^$:ڱCmU 5]R߳e z` A:* "Tܝy,X7 @xEL]C^a8"y02*W~e,!'jRb 5% 0"fH |zt^zBK2`pQf išObXdh+<+ Bx)Z]KF'8&AJZMEʮN̺€A $Bc zujWSZGRMa65V([Z8 1cuD^b-7QO<$|gjjb4nǏԮS%{ƚZZSA56.$\r'dSaD@*6Z#5S, vUv;=Wbxn晽 ¡h QH^kJ;Sp$ضKޒ#㨹JSJr&M$S D`jsQ}0VE%Bu:(Y)8稓a2EILL:6CuYxgcrdCL`K@%̵^ S/>X1XXXeREV@Jc8h'Mm{SFYK܍M\H=B W;+$%Am '*8t7;1vzSu|%QMS=e|f:HTkqa?#`ub傁PSE^PIA ]V^TA!nR. ׶NAi1$+A;&ԖMӹtQ"||m'mW*R}agM'- 38 e$=}rGnh`n1>ZŎNțX󁸈q"^0 ?CۂuןW?MɃB`XG:iC>*rO7x0MMGhOE8UW@yXE7tYdQ#"Gg^7&8;Z Y>{qDžq9)\L~uBwf«r"FZ-`GdjEQ,D%ҟ7f!.&&w.$3 BGӿIa2/aiuZ4vd*@"XDUhl$5Zqo$1gaDVG[8rtPQ|9tt )PtsZE&n/1D+gx3Dz+t<iS1)<Buh_~ Dq?lrQzه ELgbbL']J27i)L&M%oRqhg ($4gr"_u[Fu$UD8W\ I1`H)VS Ai8bdz>_֟,'UJU;'yiAwPyrf'T8 CFs^'v/C(,V (Vt &A?D\WXU7;,$sG!A;ji Hӂ GFI6+~aXY#hatÁ`fY&#y9Y |֭tEQp.YEa3y+ ϤrrGYr,S @O4/0O!v%ES*ʮVR񕱠&?GEFU03jvqڛA1Ǒ:%SJ/F NoQ:X:AH5/8ba/.TIdU06S—7ƭESp -`lD֍]/+sI1#:U09_O28EXGY]Hp 5@+ !0 ` u`(2AApBb:n6Pgig#ZQ~