.; .; .; MCEBLD.CMD -- Commandfile to build the MCE Commandline editor .; .Sets VERS "V4.28" .; .; Copyright (c) 1987-1998 .; .; J.H. Hamakers, .; pAkUiT International .; Elsbes 40 .; 3069 LN Rotterdam .; The Netherlands .; Phone : +31 - 10 - 407 86 31 .; E-Mail : hamakers@pobox.com .; Internet : http://members.tripod.com/~hans_hamakers .; .; All rights reserved .; .; This software may be copied and distributed ONLY .; on a non profit basis and with the inclusion of .; the above copyright statement. .; .; .; >>>>> PLEASE CONTACT ME FOR PROBLEMS OR SUGGESTIONS <<<<< .; .; +---------------------------------------------------+ .; | See MCEREL.TXT for information about this release | .; +---------------------------------------------------+ .; .Enable Global .Enable Substitution .Disable Display .; .Sets IDNPRE "10" ! Identcode for MCEPRE (OCTAL) .Sets SAVFIL "MCESAVED.DAT" ! Saved Anwerfile ; ; +---------------+ ; | +-------+ | ; | / \ | ; | / D E C U S \ | D E C U S makes it work ; | \ P D P / | ; | \ S I G / | ; | +-------+ | ; +---------------+ ; ;MCEBLD.CMD -- Commandfile to build the MCE Commandline editor 'VERS' .If = "DCL" .Setf MCR .If = "MCR" .Sett MCR .IfDf MCR .Goto 10$ .Disable Quiet ; ;MCEBLD -- CLI "''" not supported ; .Exit .10$: ; .If P1 = "MAC" .Goto 50$ .If P1 = "LINK" .Goto 50$ .Disable Quiet ; ; This Commandfile builds YOUR version of MCE. It prompts for several ; options to be build in MCE. It creates a conditional assembly ; definition file called MCEPRE.MAC, two Commandfiles MCEASM.CMD and ; MCETKB.CMD and optionally a helpfile MCE.HLP. If you already have those ; files you can restart MCEBLD with "@MCEBLD MAC" to assemble and ; taskbuild or "@MCEBLD LINK" to taskbuild. ; ;***** ; ; MCEBLD can use saved answers from a previous session. ; ; MCEBLD can use the saved answers as default and still ask questions ; or it can directly use these answers and skip the questions which ; answers are defined. ; ; .20$: .Setf SAV .Ask Q MCEBLD -- Do you have a saved answer file [D:N] : .Iff Q .Goto 40$ .AskS [::SAVFIL] SAVFIL MCEBLD -- Name of the saved answer file [D:'SAVFIL'] : .TestFile 'SAVFIL' .If Eq 1 .Goto 30$ ; ;MCEBLD -- Error ! file 'SAVFIL' not found ! ; .Goto 20$ .30$: .Ask SAV MCEBLD -- Do you want to skip the questions [D:N] : @'SAVFIL' .40$: ; ;***** ; ; MCEBLD can save answers for a future session ; .Ask SAVOUT MCEBLD -- Do you want to save answers [D:N] : .Iff SAVOUT .Goto 50$ .AskS [::SAVFIL] SAVFIL MCEBLD -- Name of the saved answer file [D:'SAVFIL'] : .50$: .IfNdf $A$SV .Setf $A$SV ! Conditional for CRW/ASV .If P1 = "ASV" .Sett $A$SV ! Erasmus university R'dam .Ift $A$SV .Sets $INIDR "[2,2]" ! Change MCE.MAC to change .; ! directory .IfNdf $INIDR .Sets $INIDR "[1,2]" ! Init-file directory .; ! Change MCE.MAC to change .; ! directory .IfNdf PLUS .Setf PLUS .IfNdf $PRO .Setf $PRO .; .If = 6 .Sett PLUS .IfNdf $PRO .If = 11 .Sett $PRO .Sets HLPCHR " ABCDEFGHIJKLMNOPQRSTUVWXYZ" .Setn HLPNR 1. .Sets MAXHLP HLPCHR[HLPNR:HLPNR] .If P1 = "MAC" .Goto MAC .If P1 = "LINK" .Goto LINK .Ift $PRO .Goto 60$ ; ;***** .IfNdf $CLS .Goto 55$ .Ift SAV ; -- Multiple CLI support included : '$CLS' .Ift SAV .Goto 60$ .55$: ; ; The standard CLI (Commandline Interpreter) of RSX is MCR. ; When your system supports the use of other CLIs such as DCL than ; include multiple CLI support in MCE. ; .IfNdf $CLS .SetF $CLS .Iff $CLS .Sets X "N" .Ift $CLS .Sets X "Y" .Ask [$CLS] $CLS MCEBLD -- Want the multiple CLI support [D:'X'] ? ; .60$: ;***** .IfNdf $INI .Goto 70$ .Ift SAV ; -- MCE Init-file support : '$INI' .Ift SAV .Goto 140$ .70$: ; ; When Init-file support is included MCE reads initialization files .Iff $CLS ; which can contain Commanddefinitions Internal- and MCR-Commands. .Ift $CLS ; which can contain Commanddefinitions Internal- and CLI-Commands. ; ; Files are searched in this order: ; .Iff $CLS .Goto 100$ .Iff PLUS .Goto 80$ ; LB:'$INIDR'MCEINI.xxx ; followed by one of the two: ; either SY:[CurDir]MCEINI.xxx ; or SYS$LOGIN:MCEINI.xxx ; depending on the next question about the MCE Init-file user default ; directory. .Goto 90$ .80$: ; LB:'$INIDR'MCEINI.xxx, followed by SY:[CurDir]MCEINI.xxx, .90$: ; ; where "xxx" is the name of the CLI defined for the terminal invoking ; MCE and "CurDir" is the default directory at the startup of MCE. .Goto 130$ .100$: .Iff PLUS .Goto 110$ ; LB:'$INIDR'MCEINI.CMD ; followed by one of the two: ; either SY:[CurDir]MCEINI.CMD ; or SYS$LOGIN:MCEINI.CMD ; depending on the next question about the MCE Init-file user default ; directory. .Goto 120$ .110$: ; LB:'$INIDR'MCEINI.CMD, followed by SY:[CurDir]MCEINI.CMD, .120$: ; ; where "CurDir" is the default directory at the startup of MCE. .130$: ; ; This algorithm divides Commanddefinitions into 2 groups: ; A system-wide set in LB:'$INIDR', followed by a users private set. ; .IfNdf $INI .Setf $INI .Iff $INI .Sets X "N" .Ift $INI .Sets X "Y" .Ask [$INI] $INI MCEBLD -- Want the MCE Init-file support [D:'X'] ? ; .140$: .Iff $INI .Goto 150$ .Iff PLUS .Goto 150$ ;***** .IfNdf $SYL .Goto 145$ .Ift SAV ; -- SYS$LOGIN support included : '$SYL' .Ift SAV .Goto 150$ .145$: ; ; MCE can read the user''s Commanddefinitions from the current disk and ; directory or from the user''s login directory SYS$LOGIN: . MCE will ; check for the presence of Logical Name support before trying to read ; from SYS$LOGIN on your system and fall back to SY:[CurDir] if your ; system has no logical name support. ; .IfNdf $SYL .Setf $SYL .Iff $SYL .Sets X "N" .Ift $SYL .Sets X "Y" .Ask [$SYL] $SYL MCEBLD -- Want to read Commandfile from SYS$LOGIN: [D:'X'] ? ; .150$: .IfNdf $SYL .Setf $SYL ;***** .IfNdf $CMP .Goto 160$ .Ift SAV ; -- Compound Command support : '$CMP' .Ift SAV .Goto 170$ .160$: ; ; MCE allows definitions of compound Commands. ; Using the ampersand (&) sign one can define an MCE Command as a .Iff $CLS ; sequence of multiple MCR Commands : .Ift $CLS ; sequence of multiple CLI Commands : ; ; E.g. +>STAT := TIM & PIP /LI & ACT /ALL ..... etc. ; ; or directly: E.g. +>MAC @TASKASM & TKB @TASKTKB ; .IfNdf $CMP .Setf $CMP .Iff $CMP .Sets X "N" .Ift $CMP .Sets X "Y" .Ask [$CMP] $CMP MCEBLD -- Want the compound Command support [D:'X'] ? ; .170$: ;***** .IfNdf $STA .Goto 180$ .Ift SAV ; -- Statusline support : '$STA' .Ift SAV .Goto 190$ .180$: ; ; It is possible to include statusline support. ; The statusline shows the different settings and FIFO-parameters of ; MCE and can be switched on/off with MCE STATus on/off ; Line 24 is used for status information. ; .IfNdf $STA .Setf $STA .Iff $STA .Sets X "N" .Ift $STA .Sets X "Y" .Ask [$STA] $STA MCEBLD -- Want Statusline/Statusmessage support [D:'X'] ? .190$: .IfNdf $STADF .Setf $STADF .Iff $STADF .Sets X "N" .Ift $STADF .Sets X "Y" .Iff SAV .Ask [$STADF] $STADF MCEBLD -- Want statusline ON by default [D:'X'] ? .Ift SAV .Ift $STA ; -- Statusline ON by default : '$STADF' .Iff Sav ; ;***** .IfNdf $SIL .Goto 200$ .Ift SAV ; -- Startup and Exit messages support: '$SIL' .Ift SAV .Goto 210$ .200$: ; ; The startup and exit messages like : ; .Iff $CLS ; "MCE -- MCR Commandline Editor 'VERS'" and "MCE -- Exit" .Ift $CLS ; "MCE -- CLI Commandline Editor 'VERS'" and "MCE -- Exit" ; ; are optional. ; .IfNdf $SIL .Setf $SIL .Iff $SIL .Sets X "N" .Ift $SIL .Sets X "Y" .Ask [$SIL] $SIL MCEBLD -- Want Startup and exit messages [D:'X'] ? ; .210$: .Ift $PRO .Goto 290$ ;***** .IfNdf $RTVAL .Goto 220$ .IfNdf $HTVAL .Goto 220$ .Ift SAV .Goto 230$ .220$: ; ; When starting MCE via a remote terminal (RT: or HT:) problems may occur ; if the local system is VMS with its Commandline editor enabled. ; MCE can detect if it was started via a remote terminal and can do ; 3 different things : ; ; 1. Give the following message: ; ; MCE -- ** WARNING ** Started on a Remote Terminal. ; If your local system is OpenVMS with its Commandline ; editor enabled please type "MCE EXIT" ; ; 2. Give the following message and exit : ; ; MCE -- Started on a Remote Terminal. Exiting ..... ; ; 3. Do nothing ; .IfNdf $RTVAL .Setn $RTVAL 1. .Askn [1.:3.:$RTVAL] $RTVAL MCEBLD -- Which option for RT: [D:'$RTVAL'] : .IfNdf $HTVAL .Setn $HTVAL 1. .Askn [1.:3.:$HTVAL] $HTVAL MCEBLD -- Which option for HT: [D:'$HTVAL'] : ; .230$: .Setf RTMESS .Setf RTEXIT .Setf HTMESS .Setf HTEXIT .If $RTVAL = 1 .Sett RTMESS .If $RTVAL = 2 .Sett RTEXIT .If $HTVAL = 1 .Sett HTMESS .If $HTVAL = 2 .Sett HTEXIT .Ift SAV ; -- RT messages : 'RTMESS' .Ift SAV ; -- RT Exit : 'RTEXIT' .Ift SAV ; -- HT messages : 'HTMESS' .Ift SAV ; -- HT Exit : 'HTEXIT' ;***** .IfNdf $VT2 .Goto 240$ .Ift SAV ; -- VT2plus support : '$VT2' .Ift SAV .Goto 250$ .240$: ; ; VT2plus support enables the use of VT2xx, VT3xx, VT4xx and VT5xx ; terminals. The keys , and work as , and ; . The keys , etc. can also be used and it is possible ; to define the Functionkeys .. like : ; ; "F6 := TIM" ; ; pushing gives the time of day then. ; .IfNdf $VT2 .Setf $VT2 .Iff $VT2 .Sets X "N" .Ift $VT2 .Sets X "Y" .Ask [$VT2] $VT2 MCEBLD -- Want the VT2plus support [D:'X'] ? ; .250$: ;***** .Iff $VT2 .Goto 270$ .IfNdf $VT4 .Goto 260$ .Ift SAV ; -- VT4plus support : '$VT4' .Ift SAV .Goto 270$ .260$: ; ; On a VT4xx and a VT5xx terminal it is possible to use .. as ; normal Functionkeys. ; VT4plus support enables you to define those keys too if you answer "Y" ; to the following question. ; .IfNdf $VT4 .Setf $VT4 .Iff $VT4 .Sets X "N" .Ift $VT4 .Sets X "Y" .Ask [$VT4] $VT4 MCEBLD -- Want the VT4plus support [D:'X'] ? ; .270$: ;***** .IfNdf $TD2 .Goto 280$ .Ift SAV ; -- Tandberg TDV2230 support : '$TD2' .Ift SAV .Goto 290$ .280$: ; ; The keys of a Tandberg TDV2230 terminal can also be defined. ; .IfNdf $TD2 .Setf $TD2 .Iff $TD2 .Sets X "N" .Ift $TD2 .Sets X "Y" .Ask [$TD2] $TD2 MCEBLD -- Want the Tandberg TDV2230 function key support [D:'X'] ? ; .290$: ;***** .IfNdf $EDT .Goto 300$ .Ift SAV ; -- EDT-Keypad support : '$EDT' .Ift SAV .Goto 310$ .300$: ; .Iff $PRO ; Some edit functions can be performed on the VTxxx keypad, similar .Ift $PRO ; Some edit functions can be performed on the PRO keypad, similar ; to EDT, KED and K52. ; The Keypad-editing can be switched on/off with MCE KEYPad on/off ; .IfNdf $EDT .SetF $EDT .Iff $EDT .Sets X "N" .Ift $EDT .Sets X "Y" .Ask [$EDT] $EDT MCEBLD -- Want the EDT-Keypad editing support [D:'X'] ? .310$: .IfNdf $EDTDF .SetF $EDTDF .Iff $EDTDF .Sets X "N" .Ift $EDTDF .Sets X "Y" .Iff SAV .Ask [$EDTDF] $EDTDF MCEBLD -- Want EDT-Keypad editing ON by default [D:'X'] ? .Ift SAV .Ift $EDT ; -- EDT-Keypad ON by default : '$EDTDF' .Iff SAV ; ;***** .IfNdf $EXTPR .Goto 320$ .Ift SAV ; -- Extended Prompt support : '$EXTPR' .Ift SAV .Goto 330$ .320$: ; ; The MCE prompt can show if overstrike or insert mode is active ; by "+" and "-". ; It can also display if EDT-Keypad editing (when selected) ; is enabled when the statusline is off by ":" ; ; e.g. "+:>" ; ; The Extended Prompt can be switched on/off with MCE PROMpt on/off ; .IfNdf $EXTPR .SetF $EXTPR .Iff $EXTPR .Sets X "N" .Ift $EXTPR .Sets X "Y" .Ask [$EXTPR] $EXTPR MCEBLD -- Want the Extended Prompt [D:'X'] ? .330$: .IfNdf $PRMDF .SetF $PRMDF .Iff $PRMDF .Sets X "N" .Ift $PRMDF .Sets X "Y" .Iff SAV .Ask [$PRMDF] $PRMDF MCEBLD -- Want Extended Prompt ON by default [D:'X'] ? .Ift SAV .Ift $EXTPR ; -- Extended Prompt ON by default : '$PRMDF' .Iff SAV ; ;***** .IfNdf $UPR .Goto 340$ .Ift SAV ; -- User Prompt support : '$UPR' .Ift SAV .Goto 350$ .340$: ; ; MCE can accept a User Prompt. ; This prompt can be specified with MCE USPRompt . ; The maximum prompt size is 20 characters. ; .IfNdf $UPR .SetF $UPR .Iff $UPR .Sets X "N" .Ift $UPR .Sets X "Y" .Ask [$UPR] $UPR MCEBLD -- Want the User Prompt [D:'X'] ? ; .350$: ;***** .IfNdf $PWD .Goto 360$ .Ift SAV ; -- Password Locking : '$PWD' .Ift SAV .Goto 370$ .360$: ; ; MCE can lock a terminal with a password. ; Almost like the LOCK Command from Digital''s terminal servers. ; The maximum password-length is 8 characters. ; .IfNdf $PWD .SetF $PWD .Iff $PWD .Sets X "N" .Ift $PWD .Sets X "Y" .Ask [$PWD] $PWD MCEBLD -- Want the terminal password locking [D:'X'] ? ; .370$: ;***** .IfNdf $INSDF .Goto 380$ .IfNdf $OVSDF .Goto 380$ .Ift SAV ; -- Insert mode default : '$INSDF' .Ift SAV ; -- Overstrike mode default : '$OVSDF' .Ift SAV .Goto 390$ .380$: ; ; By default overstrike or insert mode stays active until it is .Iff $VT2 ; changed with . MCE can be build so that it sets .Ift $VT2 ; changed with or . MCE can be build so that it sets ; one of the modes active by default when it prompts for a new ; Command. This can be changed with the MCE INSErt on/off and the ; MCE OVERstrike on/off Commands. ; .IfNdf $INSDF .SetF $INSDF .Iff $INSDF .Sets X "N" .Ift $INSDF .Sets X "Y" .Ask [$INSDF] $INSDF MCEBLD -- Want MCE to set insert mode back by default [D:'X'] ? .IfNdf $OVSDF .SetF $OVSDF .Iff $OVSDF .Sets X "N" .Ift $OVSDF .Sets X "Y" .Iff $INSDF .Ask [$OVSDF] $OVSDF MCEBLD -- Want MCE to set overstrike mode back by default [D:'X'] ? ; .390$: ;***** .IfNdf $OLDDF .Goto 400$ .Ift SAV ; -- Save OLD Commands : '$OLDDF' .Ift SAV .Goto 410$ .400$: ; ; Default "old" Commands (retrieved from the FIFO and not edited) are ; saved again in the FIFO. MCE can be build so that it does not save ; them again. ; This mode can be changed with the MCE SVOLd on/off Command. ; ; .IfNdf $OLDDF .SetF $OLDDF .Iff $OLDDF .Sets X "N" .Ift $OLDDF .Sets X "Y" .Ask [$OLDDF] $OLDDF MCEBLD -- Want MCE to save "Old" Commands by default [D:'X'] ? ; .410$: ;***** .IfNdf $INTDF .Goto 420$ .Ift SAV ; -- Save Internal Commands : '$INTDF' .Ift SAV .Goto 430$ .420$: ; ; Default internal Commands are saved in the FIFO. MCE can be build ; so that it does not save them. ; This mode can be changed with the MCE SVINtern on/off Command. ; ; .IfNdf $INTDF .SetF $INTDF .Iff $INTDF .Sets X "N" .Ift $INTDF .Sets X "Y" .Ask [$INTDF] $INTDF MCEBLD -- Want MCE to save Internal Commands by default [D:'X'] ? ; .430$: .Ift $PRO .Goto 460$ ;***** .IfNdf $TMO .Goto 440$ .Ift SAV ; -- Time-Out Support : '$TMO' .Ift SAV .Goto 450$ .440$: ; ; When terminal Time-Out support is included the terminal is logged ; out after a given Time-Out time (TT0: only exits MCE). ; Optionally you can select a fixed Time-Out time or select that the ; user can change the time. ; .IfNdf $TMO .SetF $TMO .Iff $TMO .Sets X "N" .Ift $TMO .Sets X "Y" .Ask [$TMO] $TMO MCEBLD -- Want the terminal Time-Out support [D:'X'] ? .; .450$: .IfNdf $TMS .SetF $TMS .Ift SAV .Ift $TMO ; -- Time-Out Support change : '$TMS' .Iff $TMS .Sets X "N" .Ift $TMS .Sets X "Y" .Iff SAV .Ift $TMO .Ask [$TMS] $TMS MCEBLD -- Want to enable the user to change the values [D:'X'] ? .IfNdf $TMON .SetN $TMON 4. .Ift SAV .Ift $TMO ; -- Time-Out value : '$TMON' .Iff $TMS .SetS T "Enter number of Time-Out minutes " .Ift $TMS .SetS T "Enter default number of Time-Out minutes" .Iff SAV .Ift $TMO .Askn [2.:999.:$TMON] $TMON MCEBLD -- 'T' [2..999 D:'$TMON'] : .IfNdf $TMODF .SetF $TMODF .Ift SAV .Ift $TMO ; -- Time-Out default ON : '$TMODF' .Iff $TMODF .Sets X "N" .Ift $TMODF .Sets X "Y" .Iff SAV .Ift $TMO .Ift $TMS .Ask [$TMODF] $TMODF MCEBLD -- Want the Time-Out to be ON by default [D:'X'] ? ; .460$: ;***** .IfNdf $MINCH .Goto 470$ .Ift SAV ; -- Minimum Commandline length : '$MINCH%D' .Ift SAV .Goto 480$ .470$: ; ; Only Commandlines with a length greater than or equal to a given ; length are saved in the FIFO. ; The value can be changed with the MCE CMSZ n Command. ; Use a value of 79 if you don''t want to save at all. ; .IfNdf $MINCH .SetN $MINCH 4. .Askn [1.:79.:$MINCH] $MINCH MCEBLD -- Enter minimum Commandline length [1..79 D:'$MINCH%D'] : ; .480$: ;***** .IfNdf $MAXFI .Goto 490$ .Ift SAV ; -- Maximum FIFO length : '$MAXFI%D' .Ift SAV .Goto 500$ .490$: ; ; Specify the default maximum number of Commands which can be saved ; in the FIFO. The value can be changed with the MCE FISZ n Command. ; Note that the actual number of Commands that can be saved depends ; on the size of the Commands and the available MCE pool space. ; Information about MCE''s poolspace can be obtained by the ; MCE FREE Command. ; More poolspace can be created by installing MCE with a larger ; increment. INS $MCE/INC=xxx ; A value of 2400 will be enough in most cases. ; .IfNdf $MAXFI .Iff $STA .SetN $MAXFI 23. .IfNdf $MAXFI .Ift $STA .SetN $MAXFI 22. .Askn [1.:99.:'$MAXFI%D'.] $MAXFI MCEBLD -- Enter maximum number of entries in FIFO [1..99 D:'$MAXFI%D'] : ; .500$: .Iff PLUS .Goto 540$ ;***** .IfNdf $MU .Goto 510$ .Ift SAV ; -- Multi User task : '$MU' .Ift SAV .Goto 520$ .510$: ; .IfNdf $MU .SetF $MU .Ask [$MU] $MU MCEBLD -- Build MCE as a multi-user task [D:'$MU'] ? .520$: .IfNdf $ID .Goto 530$ .Ift SAV ; -- I&D Space task : '$ID' .Ift SAV .Goto 540$ .530$: ; .IfNdf $ID .SetF $ID .Ask [$ID] $ID MCEBLD -- Build MCE as an I & D Space task [D:'$ID'] ? .540$: .IfNdf $MU .SetF $MU .IfNdf $ID .SetF $ID .If P1 <> "ALL" .Goto 550$ .Sett $HLP .Sett $COP .Goto 610$ .550$: ; ;***** ; ; A helpfile MCE.HLP customized to your selections is created ; dynamically if you answer "Y" to the following question. .Iff $VT2 .Goto 560$ ; Note that if you don''t build the helpfile now, you can''t use ; the and keys to walk through the helpfile. .560$: ; .IfNdf $HLP .SetF $HLP .Iff $HLP .Sets X "N" .Ift $HLP .Sets X "Y" .Ask [$HLP] $HLP MCEBLD -- Create helpfile on LB: [D:'X'] ? .Ift $A$SV .OR .Iff $HLP .Goto 600$ .IfNdf $HLPDR .Goto 570$ .Ift SAV ; -- Help directory : '$HLPDR' .Ift SAV .Goto 580$ .570$: ; .IfNdf $HLPDR .Sets $HLPDR "[1,2]" .Asks [::$HLPDR] $HLPDR MCEBLD -- What is your Help Directory [D:'$HLPDR'] : ; .580$: ;***** .IfNdf $HLPNW .Goto 590$ .Ift SAV ; -- VERSION 2 Helpfile : '$HLPNW' .Ift SAV .Goto 600$ .590$: ; ; The helpfile can be created in two different versions. ; ; VERSION 1 : You can access this one by typing HELP MCE [topic.....] ; but you have to include a reference like : ; 1 MCE ; @MCE ; in MCR.HLP and DCL.HLP ; ; VERSION 2 : You can access this one by typing HELP /MCE [topic.....] ; This version does not need any editing of MCR.HLP and ; DCL.HLP ; .IfNdf $HLPNW .SetF $HLPNW .Iff $HLPNW .Sets X "N" .Ift $HLPNW .Sets X "Y" .Ask [$HLPNW] $HLPNW MCEBLD -- Do you want VERSION 2 [D:'X'] ? .600$: ; ;***** ; .IfNdf $COP .SetF $COP .Iff $COP .Sets X "N" .Ift $COP .Sets X "Y" .Ask [$COP] $COP MCEBLD -- When ready and successful copy MCE.TSK to LB: device [D:'X'] ? .IfNdf $SYSDR .Sets $SYSDR .Ift $COP .Asks [::$SYSDR] $SYSDR MCEBLD -- What is your Task Directory [D:'$SYSDR'] : .IfNdf $INS .SetF $INS .Iff $INS .Sets X "N" .Ift $INS .Sets X "Y" .Ift $COP .Ask [$INS] $INS MCEBLD -- Install task [D:'X'] ? .IfNdf $PRI .SetF $PRI .Iff $PRI .Sets X "N" .Ift $PRI .Sets X "Y" .Ask [$PRI] $PRI MCEBLD -- Print listing and map [D:'X'] ? .610$: ; .; .IfNdf $SRC .SetS $SRC "MCE.MAC" .Iff SAV .Goto 615$ .TestFile '$SRC' .If Ne 1 .Goto 612$ .Ask Q MCEBLD -- Use the sourcefile '$SRC' [D:N] ? .Ift Q .Goto 615$ .Goto 613$ .612$: ;MCEBLD -- Error ! file '$SRC' not found ! ; .613$: .AskS [::$SRC] $SRC MCEBLD -- File specification for MCE source [D:'$SRC'] : .Goto 610$ .615$: ;MCEBLD -- All questions asked ..... ; .IFF SAVOUT .GOTO 620$ ;MCEBLD -- Creating saved answer file 'SAVFIL' .Open 'SAVFIL' .Data .; .Data .; MCE - Saved answer file 'SAVFIL' .Data .; .Data .; Created on '' '