SASC SAMPLE ASM Last Updated: 11MAR97 ===================== Copyright (c) 1996, SAS Institute Inc. Unpublished - All Rights Reserved This member contains a list and description of sample demonstrating the use of SAS/C and assembler communciation distributed with your SAS/C product. File: - Description: IUMTEXIT - TCPIP IUCV ISPF exit, which initializes the TCPIP multitasking environment. IBM has implemented a formal method which performs a similar function. Refer to IBM APAR PN56110, for additional details. ASM@C* - Assembler calling a statically linked INDEP C function See prolog in Member: ASM@CA C2ASM* - C main calling a statically linked assembler routine. The assembler routine uses CENTRY/CEXIT. See prolog in Member: C2ASMC LOADMA* - C main dynamically loading an assembler routine, the assembler routine is called via a local function pointer. Arugments are passed by the C main to the assembler routine. See prolog in Member: LOADMAC ALOADM* - This is a two part example that demonstrates how to maintain a single C execution framwork in a mixed C and assembler environment. This sample utilizes CENTRY/CEXIT (INDEP and non-IDEP), DSA extensions, CREGS, loadm(), unloadm(), _dynamn, calls to C library functions from assembler, calls to C functions from assembler. Part 1: ALOADMM - C main calls statically linked CENTRY (non-INDEP) assembler routine. The assembler routine dynamically loads and executes a non-INDEP C function. The same CRAB is used by all functions. See prolog in Member: ALOADMM Part 2: ALOADMA - INDEP assembler routine dynamically loads and executes a non-INDEP C function. The same CRAB is used by all functions. See prolog in Member: ALOADMA A2CMM* - Assembler program calling a C main via entry point MAIN. All arguments, parameters, and options are passed as a character string. This sample also demonstrates setting environment variables at runtime, redirection of stdout, inline machine code, calling non-library C fucntions from assembler, using System Interface Functions cuserid() and intratv(). See prolog in Member: A2CMMASM A2CMC* - Assembler program calling a C main via entry point $MAINC. Only arguments to the C main are allowed with entry point $MAINC. This sample also demonstrates redirection of stdout via C source, inline machine code, calling non-library C functions from assembler, and using System Interface Functions cuserid() and intratv(). A2CMC is a simple ALLRESIDENT applicaton to demontrate that a parameter list in this application is exactly the same as a normally linked C main. See prolog in Member: A2CMCASM A2CMO* - Assembler program calling a C main via entry point $MAINO. $MAINO provides for runtime options and for arguments to be passed on the call. This sample also demonstrates setting environment variables at runtime, redirection of stdout, inline machine code, calling non-library C functions from assembler, using System Interface Functions cuserid() and intratv(). See prolog in Member: A2CMOASM