Path: utzoo!utgpu!water!watmath!clyde!rutgers!mit-eddie!uw-beaver!cornell!batcomputer!garry From: garry@batcomputer.tn.cornell.edu (Garry Wiegand) Newsgroups: comp.os.vms Subject: Re: Chaining images... THE source Message-ID: <4202@batcomputer.tn.cornell.edu> Date: 28 Mar 88 02:17:22 GMT Reply-To: garry@oak.cadif.cornell.edu Organization: Cornell Engineering && Ithaca Software, Inc. Lines: 48 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)