From: CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 27-JUL-1990 00:23:39.87 To: MRGATE::"ARISIA::EVERHART" CC: Subj: RE: Providing Multiple Software Versions in Parallel Received: by crdgw1.ge.com (5.57/GE 1.70) id AA26794; Fri, 20 Jul 90 21:05:24 EDT Received: From SUNRISE.ACS.SYR.EDU by CRVAX.SRI.COM with TCP; Fri, 20 JUL 90 12:56:02 PDT Date: Fri, 20 Jul 1990 15:25:10 EDT From: EALYON@SUNRISE.ACS.SYR.EDU (Edward A. Lyon) Message-Id: <900720152510.20202cc1@SUNRISE.ACS.SYR.EDU> Subject: RE: Providing Multiple Software Versions in Parallel To: Info-VAX@crvax.sri.com X-Vmsmail-To: COM%"Info-VAX@SRI.Com" On Wed, 25 Apr 90 16:08:27 EDT, I said >>> I'm ... developing software maintenance ... procedures ... >> In particular, I would like to use the following scenario, if possible: >> 0) Assume a command, CMND, that runs (perhaps by default) image IMG. >> 1) $ CMND /Qualifier(s) Parameter(s) runs SYS$SYSTEM:IMG.EXE >> 2) SYS$SYSTEM:IMG.EXE uses $CRELNM to DEFINE /Process /User_Mode IMG et al. >> 3) SYS$SYSTEM:IMG.EXE transfers control to the image specified by IMG >> 4) Image IMG runs with full access to CMND's parameters and qualifiers > ... In short, I would like to sneak some code to establish necessary > /User_Mode logical names in between the User's command and start-up > of the appropriate image; perhaps in the form > $ FORTRAN /Version = / So, what I want is to start some code executing, have it DEFINE some logical names, and replace itself with the proper image (without going through the DCL image run-down processing). Hmmm, sounds like what VMS does at image activation, I say. Referring to the "Internals and Data Structures" Manual, I find reference to the $IMGACT system service and its companion $IMGFIX :-) but am immediately told their use by mere mortals is completely unsupported. :-( Well, I say, I could just copy what DCL.EXE does. Referring to my VMS V4.4 microfiche, I see routine DCL$EXTIMAGE, "called ... to initiate execution of an external image", :-) but I find it calls DCL$FORCEXIT which calls DCL$RUNDOWN. :-( However, if I put appropriate things in various registers, I could change mode to supervisor and jump to the appropriate section of code beyond DCL$FORCEXIT and let DCL do all the work for me, can't I? Now, thoroughly emboldened, I even consider patching DCL.EXE to handle the /Version qualifier for me by executing a SETUP command procedure so I have the full power of the DCL internal commands for Image SetUp. Does anybody have any advice on how to proceed with one of these approaches? Thanks, in advance, for your consideration and any input you may have. Ed Lyon or Syracuse University Computing & Network Services VAX/VMS System Support