From: CSBVAX::MRGATE!info-vax-request@kl.sri.com@SMTP 3-APR-1988 12:15 To: ARISIA::EVERHART Subj: Re: Chaining images... THE source Received: from ucbvax.berkeley.edu by KL.SRI.COM with TCP; Mon 28 Mar 88 02:43:37-PST Received: by ucbvax.berkeley.edu (5.59/1.26) id AA29717; Mon, 28 Mar 88 01:44:19 PST Received: from USENET by ucbvax.Berkeley.EDU with netnews for info-vax@kl.sri.com (info-vax@kl.sri.com) (contact usenet@ucbvax.Berkeley.EDU if you have questions) Date: 28 Mar 88 02:17:22 GMT From: garry@tcgould.tn.cornell.edu (Garry Wiegand) Organization: Cornell Engineering && Ithaca Software, Inc. Subject: Re: Chaining images... THE source Message-Id: <4202@batcomputer.tn.cornell.edu> Sender: info-vax-request@kl.sri.com To: info-vax@kl.sri.com In a recent article carl@CITHEX.CALTECH.EDU (Carl J Lydick) wrote: >I'm one of the people who referred you to LIB$FIND_IMAGE_SYMBOL. Let me point >out again that this works only with SHAREABLE images. This means that you >can't chain most images that are linked to be run via a command from the DCL >level... Now, if you want to be a real wiz, what you do is: A) get your DCL command line from wherever and nibble off the command verb. Either use a hard lookup table (ie, "DELE" -> SYS$SYSTEM:DELETE) or a program like Verb as a subroutine to find the right image to activate. B) Activate that image with SYS$IMGACT - it doesn't have to be a shareable image. C) call Find_Image_Symbol on DCLTABLES.EXE to get the address of the real DCL tables (the name I forget, use ANAL/IMAGE to see it) (the tables are up in P1 space too, I think, if you prefer) D) Tell CLI to parse up the command line please E) Call the entry point of DELETE, DIRECTORY, or whoever the image turned out to be *as a subroutine*. It don't know/can't tell that it isn't running as a normal DCL call, calls CLI like usual, and everything works out. I leave trapping out possible SYS$EXIT calls from the called program as an exercise for the reader. I used to have the code for this and a bunch of other nonsense 3-4 years, but I just looked around in all the dusty places and don't see it anymore. ((Before we got involved in graphics, we were playing some ideas for some new VMS utilities. I got involved in the above in the course of adding an some new switches/abilities to existing VMS commands - I could have just duplicated the previous VMS functionality and gone on, but that was tedious and I also didn't want to have to *keep* duplicating DEC's functionality. So we just used Dec's programs as subroutines of our own.)) Oh, the functionality involved was an "UNDELETE" command, with related switches DIR/DELETED, DELETE/REALLY, etc etc etc. All blended in nicely. Cute. (Normal-delete became a surreptious Rename to an invisible parallel directory tree.) Never did get around to trying to sell the various things - people still are just barely interested in non-Dec *hardware* - VMS add-on software was/is an even tougher row to hoe. garry wiegand (garry@oak.cadif.cornell.edu - ARPA) (garry@crnlthry - BITNET)