//LOADMAJ JOB ............................................. <== Verify /*JOBPARM FETCH //* //** * //** Copyright (c) 1995 - SAS Institute, Inc. * //** Unpublished - All Rights Reserved * //** * //** Name : LOADMAJ * //** * //** Purpose: Demonstrate how to dynamically load an assembler * //** routine from a SAS/C using loadm() and unloadm(). * //** value. * //** * //** Function: Compile, assemble, and lked'it source files listed * //** below. * //** * //** Source : MVS - prefix.SAMPLE.ASM members - * //** LOADMAA - dynamically loaded assembler routine * //** LOADMAC - C main which dynamically loads an assebmler* //** routine * //** * //** Details: See prefix.SAMPLE.ASM(LOADMAC) * //** * //** NOTE: Ensure the statments indicated by '<== Verify' have been * //** customized for your local environment. 'prefix is the * //** installation defined high level qualifier for the SAS/C * //** product. * //** * //********************************************************************* //* * //* Use HLASM to assemble the assembler routine which will be * //* dynamically loaded by the C main. * //* * //* Options NODECK and OBJECT are to control how the assembler will * //* handle the output object deck. * //* * //********************************************************************* //* //LOADED EXEC hlasmcl, <== Verify // PARM.ASM='NODECK,OBJECT' //ASM.SYSIN DD DSN=prefix.SAMPLE.ASM(LOADMAA), <== Verify y // DISP=SHR //LKED.SYSLMOD DD DSN=your.load.library(LOADMAA), <== Verify y // DISP=OLD //* //********************************************************************* //* * //* Compile the C function will will call the assembler routine. * //* * //********************************************************************* //* //COMPILE EXEC LC370CL //C.SYSLIN DD DSN=your.object.library(LOADMAC), <== Verify // DISP=OLD //C.SYSIN DD DSN=prefix.SAMPLE.ASM(LOADMAC), <== Verify // DISP=SHR //LKED.SYSLMOD DD DSN=your.load.library(LOADMAC), <== Verify // DISP=OLD //* //********************************************************************* //* * //* Execute the sample. * //* * //********************************************************************* //* //GO EXEC PGM=LOADMAC //STEPLIB DD DSN=your.load.library, <== Verify // DISP=SHR // DD DSN=prefix.LOAD, <== Verify // DISP=SHR //SYSPRINT DD SYSOUT=A //SYSTERM DD SYSOUT=A //SYSUDUMP DD SYSOUT=A /* //