× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Retrieving a system pointer.
  • From: David Morris <dmorris@xxxxxxxxxxxxx>
  • Date: Thu, 25 Sep 1997 13:02:25 -0600

Last week I posted a question regarding system pointers.  I am trying to use
the activate bound program API which requires a system pointer.  There are
other ways to activate a program but using this API allows me to retrieve an
activation mark which I am hoping will allow duplicated procedure names
within service programs to be accessed.  The only way I know of to retrieve a
system pointer is via MI or C.   We do not have a C compiler.  I am therefore
relegated to using MI.

I no longer have access to the functional concepts manual so I have to work
backwards from a few programs I created several years ago.  Here is what I
have so far.  It seems to work.  I get back a reasonable looking pointer that in
debug says SYP and refers to the service program name and library.  It also
refers to an authority which is all zeros.

I pass this pointer value to the activate program API and get back a return
value that is supposed to be an activation mark.  I receive no errors on this
call.  I then pass this activation mark to the get export API with the name of
the procedure that I am trying to get a procedure pointer for.  I get back a
*NULL pointer and no error in the error parameter.  If I pass an invalid
procedure name I do get an error.

If anyone has any experience with these sorts of things I would really
appreciate some help.  I have included the MI source that I used to return the
system pointer.  It is hard coded to service programs.

ENTRY * (*ENTRY) EXT;                              
DCL SPCPTR P01         PARM;                       
DCL SPCPTR P02         PARM;                       
DCL OL     *ENTRY      (P01,P02) EXT PARM MIN(0);  
                                                   
DCL DD     #PARM1      CHAR(10)  BAS(P01);         
DCL SYSPTR #PARM2                BAS(P02);         
                                                   
DCL DD     OBJ         CHAR(34)  STAT     BDRY(16);
DCL DD     OBJTYP      CHAR(01)  DEF(OBJ) POS(01); 
DCL DD     SUBTYP      CHAR(01)  DEF(OBJ) POS(02); 
DCL DD     OBJNAM      CHAR(30)  DEF(OBJ) POS(03); 
DCL DD     RQDAUT      CHAR(02)  DEF(OBJ) POS(33); 
                                                   
DCL DD     AUT         CHAR(02)  INIT(X'5F00');    
                                                   
CPYBLAP    OBJNAM,     #PARM1,   ' ';              
CPYBLA     OBJTYP,     X'02';                      
CPYBLA     SUBTYP,     X'03';                      
RSLVSP     #PARM2,     OBJ,      *,       AUT;     
                                                   
BRK'RTX';                                          
RTX         *;                                     
PEND;

Thank you for any input.

David Morris 
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to "MIDRANGE-L@midrange.com".
| To unsubscribe from this list send email to MAJORDOMO@midrange.com
|    and specify 'unsubscribe MIDRANGE-L' in the body of your message.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.