.PAGE SIZE 60,80.LEFT MARGIN 8.RIGHT MARGIN 72 .NO PERIOD .C;Performing a RSX-11M V3.2 SYSGEN under VAX/VMS .B2 .C;Frank J. Nagy .C;Fermi National Accelerator Laboratory .C;P. O. Box 500 Mail Stop 306 .C;Batavia, IL 60510 .B2 .PERIOD .BR.P;Before describing my experiences with a RSX-11M V3.2 SYSGEN done on a VAX-11/780 under VMS, a short description of our system and project will provide useful background information. We are upgrading the control system for Fermilab's high energy physics proton accelerator by replacing the aging Xerox 530's that form the current control system. The new computer system consists of two VAX-11/780's and twelve PDP-11/34's (initially). Unlike the old system in which each of the Xerox 530's was independent and controlled separate accelerator subsystems, the new system will be a network with processes divided among the systems on a functional basis rather than a "geographical" basis. .BR.P;The system was procured with the understanding that ^&all\& software development would be done on one of the VAX's (which also stands as a backup for the online control system VAX). On this basis, none of the PDP-11/34's have tape drives or other peripherals needed for a software development system; they only have single or dual RL02 disk systems. Since RSX-11M was the operating system of choice for the 11/34's, we were faced with the need to perform RSX-11M SYSGEN's on the VAX using the RL01/RL02 distribution kit. The remainder of this article was taken from the body of an memo written to instruct other programmers on the project in the intricacies of doing RSX-11M SYSGEN's on the VAX. .B2.P;This memo discusses the procedures needed to perform an RSX-11M SYSGEN on the VAX. This is based upon actual experience gained by myself over the week prior to July 5, 1981. The distribution kit used was the RL01/RL02 kit as copied from tape onto the four RL02 disks labeled RSXM26, MAPSRC, UNMSRC, and RLUTIL. Since we are only interested in a mapped system, the UNMSRC disk is not used in the SYSGEN. In point of fact, only the RSXM26 and MAPSRC disks are really used. Since our VAX is equipped with dual RL02 disk drives, the SYSGEN was done using RL02 disks only. In the future (distant?), we may be able to SYSGEN an RSX system onto an RL02 from an RM03 disk pack but for now we shall have to use both RL02 disk drives while doing a SYSGEN. .BR.P;The first step is to prepare a copy of the RSXM26 disk onto another RL02 disk. This additional disk will be the one on which the new system is generated. The RSXM26 disk ^&should not be used\& for SYSGEN's except as the input for a copy operation. The disk can be copied on the VAX using DSC1. This is done by loading the disks into the drives and then mounting them with VMS MOUNT commands. The RSXM26 input disk should be loaded with WRITE PROTECT, and can be additionally mounted with the /NOWRITE qualifier. The output disk must also be mounted, but as a foreign volume using the /FOREIGN qualifier. The commands to mount the volumes and run DSC1 are thus (assuming DCL is the current Command Line Interpreter): .B.I+10;&$ MOUNT/NOWRITE dln: RSXM26 .I+10;&$ MOUNT/FOREIGN dlm: .I+10;&$ MCR DSC1 dlm:=dln: .B.P;Before the SYSGEN can begin, a VMS system parameter must be modified. This parameter is CLISYMTBL and governs the size (in pages) of each process' Command Line Interpreter symbol table. The normal setting for CLISYMTBL is 20; a value of 36 is adequate for doing a SYSGEN. The parameter is modified by logging in as a privileged user and running the VMS SYSGEN program. This operation requires the CMKRNL privilege. The commands used to modify CLISYMTBL are thus: .B.I+10;&$ RUN SYS$SYSTEM:SYSGEN .I+10;^&SYSGEN>\&USE ACTIVE .I+10;^&SYSGEN>\&SET CLISYMTBL 36 .I+10;^&SYSGEN>\&WRITE ACTIVE .I+10;^&SYSGEN>\&EXIT .B;I then logged out since to do the RSX SYSGEN, you must have MCR as your Command Line Interpreter. Also, I ^&believe\& that the CLISYMTBL parameter only takes effect when a process is created (i.e., login time). .BR.P;To start the RSX SYSGEN, I logged in with the "/CLI=MCR" qualifier after my username. This established MCR as the CLI for this process. At this time our system-wide login command file (SYLOGIN.CMD) was invoked to give a greeting, to set the default file protection, and to assign the logical names TEC and MAK to invoke the TECO editor. My own LOGIN.CMD file was then started. Listings of my LOGIN.CMD and the RSXSYSGEN.CMD files are included with this memo. The RSXSYSGEN file was executed when I responded Y (YES) to the "Is an RSX-11M SYSGEN being done?" question. The RSXSYSGEN.CMD file was basically copied from the example in the ^&VAX-11/RSX-11M User's Guide\& with the following changes: .LIST0 .B.LE;Logical names LB0 and SY0 are assigned to LB and SY rather than directly to the target disk. .B.LE;Logical name TKB is assigned to SYS$SYSTEM:BIGTKB.TSK. This is the RSX task builder (not the VMS version TKB.EXE in the same area) copied to our RM03 to allow faster overlays. As with DEC's example, this version will also allow task images to have a default file type of .TSK (rather than .EXE for the VMS TKB). .B.LE;The logical names MAC, EDT, LBR, and PIP are assigned such that invoking one of these utilities will get the version from the VMS system disk. Like the change for TKB (above), this also allows the overlays to be loaded into memory faster. However, using the VMS MAC.EXE allows the assembly listings to be placed on magtape or another disk (DRC2_: in our case). .B.LE;Finally the SYSPRV, LOG__IO, and CMKRNL privileges are set. .END LIST Note that only a privileged user with the SETPRV privilege can use this procedure to do an RSX SYSGEN. Also note that the task builder being used is the RSX BIGTKB which will ^¬\& handle references to magtape or VMS device names (i.,e. DRC2:). For this reason, I had the task builder maps placed on the target disk in [1,34]. Since the target system disk is an RL02, there is plenty of space. .BR.P;After the login procedures complete, you must mount the copied RSXM26 disk. If you want the task builder maps spooled and they are to be written to [1,34] on this disk, then the disk must be mounted shareable so that the print symbiont can access the files. The commands to mount the disk and start the RSX SYSGEN are: .B.I+10;&> MOUNT{/SHARE} dln:RSXM26 .I+10;&> SET /UIC=[200,200] .I+10;&> @SYSGEN .B;You are now off and running in SYSGEN Phase I. Phase I should proceed exactly the same as doing a SYSGEN online under RSX-11M. Remember to answer NO to the question about running under the standalone RSX system. The Executive Sources are on the MAPSRC disk which I mounted on the other RL02 disk drive. If the MAPSRC disk itself is used, rather than a copy, several files must be cleaned-up after the SYSGEN (more about this later). .BR.P;Phase I should proceed normally, just as if done online under RSX. Before starting Phase II, the MAPSRC disk should be dismounted using the DMO command (but not physically dismounted). This will prevent an error message when MAPSRC is again mounted during Phase II. I had to modify SYSGEN2.CMD in order to have it perform properly. Without my patches, all the privileged task builds would fail because TKB could not find the command files. This was due to the method used to swap the assignments of LB and SY just before this point. In the current SYSGEN2.CMD file (Autopatch Level E), this will not work on the VAX and both SY and LB are assigned to the target disk rather than having SY assigned to the MAPSRC disk. I have modified the SYSGEN2.CMD file on the RSXM26 disk using a modified SYSGEN2.COR corrections file on our AUTOPATCHE1 disk so that a dual RL02 SYSGEN can be done on the VAX. The versions of SYSGEN2.CMD on the MAPSRC and UNMSRC disks have not been updated in this way! A listing of the SLP input file to update SYSGEN2.COR can be found at the end of this article. .BR.P;During Phase II of SYSGEN I attempted to edit the RSXBLD.CMD and SYSVMR.CMD files. I had the EDT editor abort with an access violation which seems to have been caused by having the UIC set to the wrong value. Or at least that appeared to be the cause in one case. In another case, I just tried again to edit (with EDT) RSXBLD.CMD and everything worked properly. I'm not really sure what the problem is here or if there is any but you should be aware of possible difficulties. After Phase II of SYSGEN was over and before continuing with anything else, I built two additional privileged tasks. The first of these was BIGIND.TSK since the version on the disk is built for the standalone distribution system. If you plan to do any SYSGEN's using the resulting RSX system, BIGIND must be re-built. Otherwise BIGIND.TSK should be deleted from the disk. The other task build was for MC2, the MCR catch-all task which implements the additional DCL-like commands. The following commands can be used to build these two tasks (after Phase II, MAPSRC is still mounted): .TAB STOPS 35 .B.I+10;&> SET /UIC=[1,24] .I+10;&> ASN dlm:=IN: !assign to MAPSRC disk .I+10;&> @MC2 !assemble MC2 .I+10;&> ASN dlm:=SY: !assign to MAPSRC disk .I+10;&> ASN dln:=LB: !target disk (already assigned) .I+10;&> ASN dln:=TK: !target disk for task image .I+10;&> TKB @BIGINDBLD !build BIGIND .I+10;&> TKB @MC2BLD !build MC2 .B;The MC2 listing file and the task builder maps are output to MP:[1,34] and MP is left assigned to the device for the privileged task build maps. .BR.P;After these were done, I copied MCR.OLB from [1,24] on the MAPSRC disk to [1,24] on the target system disk. This will be needed for a couple of task builds done for additional drivers and utility software from the KITSMISC (software kits) disk and is useful to have on a development system disk. Note that besides the addition of MC2 to MCR.OLB, the modules SDSOV, SETOV, and SPROV were replaced by different versions as the system I generated uses the full-duplex terminal driver (see below about restoring the MAPSRC disk). .BR.P;Phase III of the RSX SYSGEN can be skipped as the non-privileged task images can be copied from the KITSMISC Software Kits disc and the User Mode Diagnostics are useless with our systems. Instead, if desired, the MAPSRC disk can be dismounted and the RLUTIL disk mounted and the contents of [2,300] be copied from the RLUTIL disk to [2,300] on the target system disk. The UFD [2,300] contains the Installation Verification Program as described in the RSX SYSGEN manual. .BR.P;At this point the SYSGEN was complete as far as the VAX was concerned. Before removing the target system disk from the VAX, I used the KITSMISC disk to add some new SYSLIB routines and some new libraries to [1,1] (including the F4P libraries and object code files). I also copied the non-privileged utility tasks from KITSMISC and generated some additional privileged utility tasks and device drivers (including the PCL drivers). .BR.P;The remainder of the SYSGEN activities now move to a PDP-11. I have fixed our RSXM26 disks so that when booted with the hardware bootstrap, the mapped standalone system is started from [1,54]RSX11M.SYS;1. This is needed since Autopatch removed [1,50] as a mapped system was to be generated. The standalone system has also been saved with the BOOT task installed so that the proper version of BOO.TSK is used with the standalone system. After booting the standalone system, I typed control-Z when asked for the date and time and then typed "BOOT [1,54]RSX11M" to boot the system I just created. This system was started in XDT (selected as a SYSGEN option) and a "G" started RSX itself. The system was started with "SAV", but the boot block was not overwritten yet. After this system was rebooted, following the SAVe, I executed the SYSINS.CMD file to install the non-privileged utilities (such as BIGMAC and BIGTKB, etc.). After this executed properly, I saved the system with "SAV#/WB", rewriting the boot block so that a hardware bootstrap operation would boot the new system. At this point then, the [1,54] UFD was purged of all old versions (including the standalone RSX11M.SYS file) and all unneeded device driver files. The final task was then to run the Installation Verification Procedure to check out the system before replacing the old RSX Development System with the new version. .BR.P;Since I used the MAPSRC disk without first making a copy of it, I had to remove some files added by the SYSGEN. In [1,54] the new version of RSX11M.STB was deleted. Note that the ^&NEW\& version was deleted, a purge operation was not done! In [1,24] the SYSPAR.CMD file was deleted and MCR.OLB was replaced. The easiest way to fix MCR.OLB is to create a new version before doing the SYSGEN and then delete the ^&new\& version afterwards. When the full-duplex terminal driver is created, several object modules in MCR.OLB are replaced from the object file MCRTTFD.OBJ (also in [1,24]). After the SYSGEN, the old versions may be restored from MCRTTHD.OBJ so that subsequent SYSGEN's for the half-duplex terminal driver will be correct. The recommended procedure is to create a new MCR.OLB and then delete it after the SYSGEN. This keeps MCR.OLB from growing due to the many LBR replace operations. .BR.P;The disks used for this RSX SYSGEN contained an patched version of the RSX distribution kit. For this SYSGEN, Autopatch Level D was run on the VAX to bring the "virgin" distribution kit up to the latest patch level. For the most part, Autopatch Level D worked correctly after running a preparation file on the VAX. This preparation file (VAXPREP.CMD) is listed below. Its major purpose is to created the needed UFD's on the RSXM26 disk because PIP (on the VAX) cannot create a UFD. Subsequent to this SYSGEN, Autopatch Level E came out but was not nearly so easily installed using the VAX. Two major problems in the AUTOPATCH.CMD file were fixed in order to allow Autopatch E to be done using the VAX: .LIST 1 .LE;The use of on the VAX was replaced to avoid references to "SYn:" when "ddn:" (target disk) was expected. Note that this is the same problem that was corrected with the SYSGEN2.CMD file. .LE;All the LBR lines which extracted files from universal libraries of the form: .B.I+10;LBR OU:file.COR=[uic]CONCAT.ULB/EX:file .B;were fixed since some LBR bug caused OU to be flagged as an illegal device. The fix involved replacing OU by a symbol replacement operation where the symbol was defined to be the name of the target disk. This name had to be the physical device name (i.e. "DL1:") rather than a logical name in order for LBR to accept it. .END LIST With these changes then, Autopatch E was applied to the RSX kit which was then used by several other people to perform RSX SYSGEN's with no major problems. .B3.P;Since my initial attempts at doing the RSX-11M V3.2 SYSGEN on the VAX, several others have used my procedures to perform additional SYSGEN's on the VAX. At this time we have received the RSX-11M V4.0 distribution but have not yet attempted to SYSGEN an RSX V4 system using the VAX. We have not even tried to copy the RSX V4 tapes onto RL02 disks as I expect we will have problems using DSC1.EXE to do so. Hopefully we will attempt to generate an RSX V4 system this summer but based on reports of the difficulty of doing a V4.0 SYSGEN on a V3.2 RSX system I expect we will have many problems trying to do a V4.0 SYSGEN on the VAX. .PAGE.TAB STOPS 9,17,25,33,41,49,57,65,73 .C;Listing of file RSXSYSGEN.CMD .B .LITERAL .; .; RSXSYSGEN.CMD .; .; Used to make the logical name assignments to do an RSX SYSGEN .; on the VAX under VMS. From the VAX-11/RSX-11M USER'S GUIDE .; .; Modified: .; FJN 01-Jul-81 Make sure MAC used from SYS$SYSTEM: .; FJN 03-Jul-81 Straighten out assignments and .; make sure utilities used from SYS$SYSTEM .; FJN 05-Jul-81 Use BIGTKB.TSK on SYS$SYSTEM: .; ADT/KJC 25-Jan-82 Modify message concerning spooled maps .; and the MOU/SHARE command for clarity. .; .ENABLE SUBSTITUTION .; .; Get RSX target device is not entered as a parameter .; .IF P1 EQ "" .ASKS P1 Target device name .; .; Make sure the device name is ended by a colon .; .SETS TEMP P1[:] .IF TEMP NE ":" .SETS P1 P1+":" SHOW SYMBOL P1 .; .; Set default to target device .; SET DEFAULT 'P1' .; .; Assign SY, SY0, LB, and LB0 to target disk .; ASN 'P1'=SY: ASN SY:=SY0: ASN 'P1'=LB: ASN LB:=LB0: .; .; Equates MP0 and MP, also TK0 and TK .; ASN MP:=MP0: ASN TK:=TK0: .; .; Assigns equivalence names for TKB and VMR .; BIGTKB.TSK was directly copied from an RSX system. .; ASN SYS$SYSTEM:BIGTKB.TSK=TKB ASN 'P1'[1,54]VMR.TSK=VMR .; .; Make sure utilities used from SYS$SYSTEM: .; ASN SYS$SYSTEM:MAC=MAC ASN SYS$SYSTEM:EDT=EDT ASN SYS$SYSTEM:LBR=LBR ASN SYS$SYSTEM:PIP=PIP .; .; Set process privileges needed to do a SYSGEN .; SET PROCESS/PRIVILEGES=(SYSPRV,LOG_IO,CMKRNL) ; ; Note that the baseline system TKB is used. The maps ; cannot be sent to a non-RSX device or to magtape. They may ; be put on the target disk ('P1'). It must be mounted ; SHARE'd to allow the maps to be spooled to the printer: ; ; > MOU/SHARE 'P1'RSXM26 ; > SET /UIC=[200,200] ; > @SYSGEN ; .END LITERAL .PAGE .C;Listing of file [NAGY]LOGIN.CMD .B .LITERAL .; .; [NAGY]LOGIN.CMD .; .; Login command file for use with the MCR CLI .; .; Always set SYSPRV privilege SET PROCESS/PRIVILEGE=SYSPRV .; .; Ask if an RSX SYSGEN is to be done. .; .ASK SYSGEN Is an RSX-11M SYSGEN being done .IFT SYSGEN @SYS$SYSDISK:[SYSMGR.UTILITIES]RSXSYSGEN .; .; Assign some additional tasks .; ASN SYS$SYSTEM:PIP=CPY .; .END LITERAL .PAGE .C;Listing of VAXPREP.CMD .B .LITERAL .; .; [200,200]VAXPREP.CMD on Autopatch disk. .; .; Modifications: .; .; 14-Oct-81 FJN&KJC Brought up to level E by adding UFD [64,60] and .; INIT for scratch disk. .; 16-Oct-81 FJN Replace SET PROT by PIP to change UFD protections .; .ENABLE SUBSTITUTION .ENABLE GLOBAL ; ; ; AUTOPATCH Rev. E Preparation file for VAX/VMS. ; ; This command file is run on the VAX (under the MCR CLI) to prepare ; for performing an RSX Autopatch on the VAX. When logging in, add ; the qualifier /CLI=MCR after your name to use MCR as the command ; line interpreter. You must run on an account with SYSPRV (or ; SETPRV to enable SYSPRV) and CMKRNL to allow the user of SET UIC. ; Mount the Autopatch disk and then execute this command file ; via: ; @ddu:[200,200]VAXPREP ; ; .ASKS APDEV What device (ddu:) is the Autopatch disk mounted on? .; 1$: .ASK YESNO Do you want to initialize an ODS-1 scratch disk? .IFF YESNO .GOTO 2$ .ASKS [1:9.] SCRLBL Enter the volume label for the scratch disk .ASKS TMPDEV When ready, enter device (ddu:) with scratch disk loaded INIT/STRUCTURE=1/HEADERS=800. 'TMPDEV' 'SCRLBL' MOU 'TMPDEV' 'SCRLBL' .ASK YESNO Did the scratch disk mount successfully? .IFF YESNO .GOTO 1$ DMO 'TMPDEV' .; 2$: .ASKS SYSDEV When ready, enter device (ddu:) with RSXM26 disk MOU 'SYSDEV'RSXM26 .ASK DIDIT Did the RSXM26 disk mount successfully? .IFF DIDIT .GOTO 2$ ; ; Setting logical names SY: and SY0: (RSX default disk) to 'SYSDEV'. ; ASN 'SYSDEV'=SY: ASN 'SYSDEV'=SY0: ; ; Create UFDs for Autopatch files. ; Allow them to be "delete-able" so they can be removed by ; the (modified) Autopatch. ; UFD 'SYSDEV'[01,60]/UIC=[01,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[11,60]/UIC=[11,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[12,60]/UIC=[12,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[13,60]/UIC=[13,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[14,60]/UIC=[14,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[15,60]/UIC=[15,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[22,60]/UIC=[22,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[31,60]/UIC=[31,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[32,60]/UIC=[32,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[33,60]/UIC=[33,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[36,60]/UIC=[36,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[41,60]/UIC=[41,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[42,60]/UIC=[42,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[45,60]/UIC=[45,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[47,60]/UIC=[47,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[50,60]/UIC=[50,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[52,60]/UIC=[52,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[55,60]/UIC=[55,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[62,60]/UIC=[62,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[63,60]/UIC=[63,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[64,60]/UIC=[64,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[70,60]/UIC=[70,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[74,60]/UIC=[74,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[106,60]/UIC=[106,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[112,60]/UIC=[112,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[121,60]/UIC=[121,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[163,60]/UIC=[163,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[200,60]/UIC=[200,60]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[01,64]/UIC=[01,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[12,64]/UIC=[12,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[14,64]/UIC=[14,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[15,64]/UIC=[15,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[25,64]/UIC=[25,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[50,64]/UIC=[50,64]/PRO=[RWED,RWED,RWED,RWED] UFD 'SYSDEV'[121,64]/UIC=[121,64]/PRO=[RWED,RWED,RWED,RWED] PIP 'SYSDEV'[0,0]*.DIR/PR/SY:RWED/OW:RWED .; ; ; Setting default directory and device to 'SYSDEV'[200,200]. ; SET /UIC=[200,200] SET DEFAULT 'SYSDEV'[200,200] .; PIP SY:/NV='APDEV'AUTOPATCH.CMD ; ; Dismount the Autopatch disk (DMO 'APDEV') and then ; do "@AUTOPATCH" to begin the Autopatching process. ; .END LITERAL .PAGE .C;SLP correction file for [200,60]SYSGEN2.COR .B .LITERAL -12 .; FJN001 -- Correct ASN's and use of for VAX-based SYSGEN's .; .; FJN002 -- Permit editor selection rather than use EDI only .; .; FJN003 -- Add SET DEFAULT commands for doing SYSGEN on VAX .; <-115,115,/;FJN001/ .SETS TEMPS +"'':" .IF EQ 5 .SETS TEMPS "'F$LOGICAL()'" .IFT $RL .IF $PRV NE "'TEMPS'" .SETT $2RL <-128,,/;FJN001/ .IF EQ 5 .GOTO ONVAX1 <-131,131,/;FJN001/ .GOTO ENVAX1 .ONVAX1: .SETS TEMPS "'$PRV'" .IF $PRV EQ "SY:" .SETS TEMPS "'F$LOGICAL($PRV)'" .IFF $MLH ASN 'TEMPS'=LB: .SETS TEMPS "'F$LOGICAL()'" .IFF $MLH ASN 'TEMPS'=TK: .ENVAX1: .IFT $2RK .OR .IFT $2RL .SETT $2DSK <-137,138,/;FJN002/ .ASKEDI: .ASKS FJNEDI 5A. Which editor is preferred (EDI,EDT,TEC) .IF FJNEDI EQ "" .SETS FJNEDI "EDT" .IF FJNEDI NE "EDI" .IF FJNEDI NE "EDT" .IF FJNEDI NE "TEC" .GOTO ASKEDI .SETT EDITX .IFNINS 'FJNEDI' .SETF EDITX -17 <-214,216,/;FJN002/ .IFF $MLH .IFNINS 'FJNEDI' INS SY:$'FJNEDI' .IFF $MLH 'FJNEDI' ISBLD.CMD .IFF $MLH .IFF EDITX REM 'FJNEDI' -48 <-704,705,/;FJN002/ .IFF $MLH .IFNINS 'FJNEDI' INS SY:$'FJNEDI' <-707,707,/;FJN002/ .IFF $MLH .IFF EDITX REM 'FJNEDI' <-754,754,/;FJN001/ .700: .IF EQ 5 .GOTO ONVAX7 .SETS TEMPS +"''"+":" <-757,757,/;FJN001/ .GOTO ENVAX7 .ONVAX7: .SETS TEMPS "'F$LOGICAL()'" .SETS LBDISK "LB" .SETS TEMPS2 "'F$LOGICAL(LBDISK)'" .IF TEMPS2 EQ "" .SETS TEMPS2 $PRV .ENVAX7: .IFF $MLH .IFT $2DSK ASN =LB: <-760,,/;FJN003/ .IF EQ 5 SET DEFAULT SY:'' <-831,831,/;FJN001/ .KENNER: .IF EQ 5 .GOTO ONVAXK .SETS TEMPS +"''"+":" <-834,834,/;FJN001/ .GOTO ENVAXK .ONVAXK: .SETS TEMPS "'F$LOGICAL()'" .SETS TEMPS2 "'F$LOGICAL(LBDISK)'" .ENVAXK: .IFF $MLH .IFT $2DSK ASN =LB: <-837,,/;FJN003/ .IF EQ 5 SET DEFAULT SY:'' -56 <-1017,1019,/;FJN002/ .IFF $MLH .IFNINS 'FJNEDI' INS SY:$'FJNEDI' .IFF $MLH 'FJNEDI' SYSVMR.CMD .IFF $MLH .IFF EDITX REM 'FJNEDI' <-1025,1025,/;FJN001/ .IFF $MLH .IF NE 5 ASN SY:=LB: .IFF $MLH .IF EQ 5 ASN 'F$LOGICAL()'=LB: <-1050,1050,/;FJN001/ .IF NE 5 .SETS DV "''''" .IF EQ 5 .SETS DV "'F$LOGICAL()'" <-1111,1111,/;FJN002/ .IFF $MLH .IFF EDITX .IFINS 'FJNEDI' REM 'FJNEDI' / .END LITERAL