From: CSBVAX::MRGATE!SUTTON%BRANDEIS.BITNET@CUNYVM.CUNY.EDU@SMTP 19-MAR-1988 14:13 To: ARISIA::EVERHART Subj: RE: Chaining images... THE source Received: from MITVMA.MIT.EDU by KL.SRI.COM with TCP; Fri 18 Mar 88 13:25:12-PST Received: from BRANDEIS.BITNET by MITVMA.MIT.EDU ; Fri, 18 Mar 88 16:24:50 EST Date: Fri, 18 Mar 88 16:22 EST From: Subject: RE: Chaining images... THE source To: info-vax@kl.sri.com X-Original-To: com%"info-vax@kl.sri.com", SUTTON I got a message a few minutes ago (I wonder how many days it will be before this message gets to people), saying that it is not possible in a practical sense to "chain images". That is, "CALL" one image from another as if it were just a subroutine. I didn't think it was possible either until a message came in referring everyone to the LIB$FIND_IMAGE_SYMBOL routine (my apologies to the person who posted it, I don't remember your name). I wanted to see if it REALLY did what the manual seemed to say it did (sometimes the routine descriptions which don't include examples are vague or I'm simply too dumb to understand without an example). I looked in the Master Index to see if there were any references to the routine other than the description in the RTL manual. There were none and therefore no examples (I assume) in the manuals. So I went to the sources (the micro fiche) for clues and found two simple examples in the comments to the routine which convince me of the utility of the routine. Here's a transcript of what it says: -------------------------------------------------------------------------------- EXAMPLES: a) Using LIB$FIND_IMAGE_SYMBOL from BLISS STATUS = LIB$FIND_IMAGE_SYMBOL($DESCRIPTOR('EDTSHR'), $DESCRIPTOR('EDT$EDIT'), EDTADDR); (.EDTADDR)($DESCRIPTOR('FOO.INP'), $DESCRIPTOR('FOO.OUT')); b) Using LIB$FIND_IMAGE_SYMBOL from FORTRAN CALL LIB$FIND_IMAGE_SYMBOL('EDTSHR','EDT$EDIT',EDTADDR) CALL USER_CALL_SYMBOL(EDTADDR,%VAL(num_args),arg1,arg2,...) where USER_CALL_SYMBOL is the following MACRO routine: .ENTRY USER_CALL_SYMBOL, 0 MOVL @4(AP),R0 ;Get address to call CALLG 8(AP),(R0) ;Call the routine RET ;Return with status in R0 -------------------------------------------------------------------------------- SUTTON@BRANDEIS.BITNET