============================================================================================================= ============================================================================================================= Installation Instructions SAS/C(r) Software for CMS ============================================================================================================= ============================================================================================================= COPYRIGHT (c) 1996 by SAS Institute Inc. All rights reserved. The contents of this data set/library, supplied as part of one or more Institute Program Products (IPP) are proprietary licensed material, property of SAS Institute Inc., Cary, North Carolina 27512, USA. The incorporation of customer modifications into the material contained herein to form an updated work does not obviate or nullify any SAS Institute proprietary rights. Permission is hereby granted to reproduce the SAS Institute supplied material contained herein for normal installation, maintenance, and backup purposes, as well as the ordinary, usual, customary, and intended purposes for which the material is supplied, including, but not limited to, original production on hard copy of actual executions and/or terminal sessions. Reproduction under other circumstances is permitted for purposes within the scope of the customer's own use of the licensed material provided the reproduction carries this notice. ============================================================================================================= ============================================================================================================= Table of Contents Chapter 1: How to Use These Instructions..............................1 Chapter 2: The Target Minidisk........................................3 New Release Minidisk Allocation......................................3 Concurrent Release Minidisk Allocation...............................3 Chapter 3: Installation on Minidisk...................................5 Installing All SAS/C Software Products...............................5 Chapter 4: Character Set Translation Tables...........................7 Modifying the Character Set Translation Tables.......................7 Changing the Default Translation Table...............................9 Providing Character Translation for C++ Tracebacks..................11 Chapter 5: SAS/C CSL Customization...................................13 Merging the SAS/C CSL Transient Library.............................13 Maclib Concatenation................................................13 Customize CSL NFS Defaults..........................................13 NFS Security Considerations.........................................14 Chapter 6: ISPF Panels...............................................17 SAS/C(r) ISPF Panel Installation....................................17 Chapter 7: Maintenance...............................................19 SAS/C Code Maintenance (Usage Notes and Zaps).......................19 VM System Maintenance...............................................22 Minidisk Accessing..................................................23 Changing Default Names for CICS Modules and Transient Data Queues...24 Product License Maintenance.........................................25 Chapter 8: Segment Installation......................................27 NON-XA Segment Installation.........................................27 XA Segment Installation.............................................29 Chapter 9: Installation Verification.................................33 Library and Segment Considerations..................................33 Verify SAS/C(r) Compiler Installation...............................33 Verify SAS/C(r) Compiler with FSSL Installation.....................34 Verify SAS/C(r) Compiler with C++ Development System Installation...34 Chapter 10: How Dynamic Loading Works................................37 Transient Library Loading...........................................37 Compiler Loading....................................................38 Chapter 11: SAS/C(r) Online Documentation............................39 Appendix A: Utility Command Formats..................................41 LCDEFS EXEC.........................................................41 L$GENSEG EXEC.......................................................43 LC3370 MODULE.......................................................45 APPLYZAP............................................................46 XLTHDR..............................................................49 Appendix B: SAS/C(r) Common Installation Files.......................51 Appendix C: SAS/C(r) Compiler Product Files..........................53 Core Contents.......................................................53 CMS EXEC Files......................................................53 CICS Preprocessor and Libraries.....................................54 ILC Files...........................................................54 ISPF Files..........................................................56 Help Files..........................................................57 Utility/Misc. Files.................................................58 SAMPLES and Setinit Data............................................58 Assembler Macros, Systems Programming Environment, and GOS Interface Files................................................58 Appendix D: SAS/C(r) Resident Product Files..........................59 Core Contents.......................................................59 CMS EXEC Files......................................................59 CICS Preprocessor and Libraries.....................................60 ILC Files...........................................................60 Help Files..........................................................62 Utility/Misc. Files.................................................62 Assembler Macros, Systems Programming Environment, and GOS Interface Files................................................62 Appendix E: SAS/C(r) FSSL Product Files..............................63 Appendix F: SAS/C(r) C++ Development System Product Files............65 Core Contents.......................................................65 CMS EXEC Files......................................................65 Help Files..........................................................65 Setinit Data........................................................65 Appendix G: SAS/C(r) CSL Product Files...............................67 Appendix H: Dumping the Limited Distribution Library Files...........71 Appendix I: Dumping the SAS/C(r) CSL Limited Redistribution Files....73 Appendix J: Reference Publications...................................75 ============================================================================================================= Using This Book Purpose This document describes the installation and customization of the SAS/C Software products. Depending upon which products your site has licensed, the installation medium may have any combination of the SAS/C Software (for example, just the SAS/C Compiler or the SAS/C Resident Library, the SAS/C Compiler and the SAS/C FSSL Library, or the SAS/C Compiler and the SAS/C C++ Development System). To allow for this flexibility, the install process loads all products to disk without regard to the specific products on the installation medium. Chapter 1, "How to Use These Instructions" on page 1 serves as an introduction and as an outline of the install process please read this chapter before beginning the installation. Additionally, this guide contains valuable information on product maintenance and other topics that will be useful in the future. Please keep this document for later reference. Products The products that may be installed with these instructions are: --------------------------------------------------------------------------------------------- Release Products --------------------------------------------------------------------------------------------- 6.00C SAS/C Compiler SAS/C Resident Library SAS/C FSSL SAS/C C++ Development System SAS/C CSL (ESA mode only) --------------------------------------------------------------------------------------------- Conventions You will see several type styles in this book. Style conventions are summarized here: --------------------------------------------------------------------------------------------- Convention Description --------------------------------------------------------------------------------------------- roman is the basic type style used for most text in this book. UPPERCASE is used for MVS and CMS commands and data set names. ROMAN monospace is used for C and C++ language elements in the text and in programming code. It is also used for workstation commands and filenames. UPPERCASE is used for C and C++ language elements that you must MONOSPACE enter in uppercase. italic indicates one of two things. In regular text an italicized word means that it is important, or is being defined. In examples italics means to substitute your own value for an item. --------------------------------------------------------------------------------------------- Federal Government Rights Notice If your installation is a Federal Government site or a Federal Government Prime Contractor site, you are responsible for the information contained in a usage rights notice that has been included on the installation media. Please review the Government Rights Notice information contained in the file GOVNOTE DATA as soon as the installation is completed. Summary of Changes The following changes have been made in the installation and maintenance procedures since the previous release. . For SAS/C release 6.00, we will no longer use the terms non-bimodal CMS or bimodal CMS. We will continue to ship two versions of the compiler on CMS but they will be referred to as 370 mode and ESA mode. The 370 mode compiler was previously referred to as nonbimodal, and the ESA mode was previously referred to as bimodal. ============================================================================================================= Chapter 1: How to Use These Instructions These instructions cover a variety of SAS/C software product installation media. Depending on what products a site has licensed, the product installation medium may contain any combination of the SAS/C software. Regardless of the product combination, the basic install process is the same. Throughout these instructions you will find references to 370 mode CMS and ESA mode CMS, XA systems and NON-XA systems. 370 mode is used to refer to the CMS associated with VM/SP release 5 or earlier. ESA mode is used to refer to the CMS associated with VM/XA, VM/ESA and VM/SP release 6. XA is used to refer to VM systems that support the System/370 Extended Architecture, VM/XA SP R1 or later. NON-XA is used to refer to systems that support only System/370 Architecture, VM/SP and VM/HPO systems. There are two versions of the SAS/C compiler products for CMS: ESA mode and 370 mode. The ESA mode compiler and the 370 mode compiler generate the same code. The 370 mode version of the compiler and programs developed with it run under CMS for VM/SP Releases 4, 5, 6 and later. The 370 mode version will also run under CMS for VM/XA SP Release 1, 2 and later and VM/ESA in tolerance mode (XA-mode but only AMODE 24). The ESA mode CMS version runs under the CMS associated with VM/SP Release 6 and later, as well as VM/XA SP Release 1, 2 and later and VM/ESA. Under VM/XA or VM/ESA, programs may run in exploitation mode, that is, they may run AMODE 31, taking advantage of storage above the 16-megabyte line. The ESA mode version does not run in Releases 4, and 5 of CMS. You should decide which version (370 mode or ESA mode) of the SAS/C products you need to install before beginning your installation. Every installation consists of the following steps: 1. Allocate a target minidisk. See Chapter 2, "The Target Minidisk" on page 3. 2. Load the SAS/C software products to disk. See Chapter 3, "Installation on Minidisk" on page 5. 3. Optionally, edit and replace the default character set translation table. See, Chapter 4, "Character Set Translation Tables" on page 7. 4. For installation of SAS/C CSL, merge the CSL transients. See Chapter 5, "SAS/C CSL Customization" on page 13. 5. Optionally, install the ISPF panels. See Chapter 6, "ISPF Panels" on page 17. 6. Validate the installation. See Chapter 9, "Installation Verification" on page 33. 7. Your SAS/C products are shipped without maintenance applied. You may want to apply maintenance now. See Chapter 7, "Maintenance" on page 19. 8. Optionally, install the compiler, debugger, and transient library in a DCSS (NON-XA systems only). See "NON-XA Segment Installation" on page 27. 9. Optionally, install the compiler, debugger, and transient library in a saved segment (XA systems only). See "XA Segment Installation" on page 29. ============================================================================================================= Chapter 2: The Target Minidisk New Release Minidisk Allocation We recommend that you install SAS/C software on a private minidisk. Do not install this release on the same minidisk as a previous release. Such an installation would replace existing files from an earlier release with new copies, thus erasing the earlier release files. During the installation, make sure that you do not have any disk accessed that contains an earlier release. Format the minidisk using the CMS FORMAT command before loading any of the installation files. We recommend that you use a 4K minidisk block size. See the table below for the minimum disk size for your specific installation. --------------------------------------------------------------------------------------------- Products Size in 4K Blocks --------------------------------------------------------------------------------------------- SAS/C Compiler 6300 SAS/C Resident Library 2680 SAS/C FSSL 789 SAS/C C++ 848 SAS/C Compiler and SAS/C FSSL 7089 SAS/C Compiler and SAS/C C++ 7148 SAS/C Compiler, SAS/C FSSL, and SAS/C C++ 7937 SAS/C Resident Library and SAS/C FSSL 3469 SAS/C CSL 16100 SAS/C Usage Notes and Zaps 1825 --------------------------------------------------------------------------------------------- Concurrent Release Minidisk Allocation We recommend that you install SAS/C FSSL and SAS/C C++ on the same minidisk as the SAS/C Compiler and Utilities. Do not install this release of SAS/C FSSL or SAS/C C++ on the same minidisk as a previous release of SAS/C FSSL or SAS/C C++. Such an installation would replace existing files from the earlier release with new copies, thus erasing the earlier release files. During the installation, make sure that you do not have any disk accessed that contains an earlier release. ============================================================================================================= Chapter 3: Installation on Minidisk Installing All SAS/C Software Products The SAS/C(r) products are shipped on an unlabeled tape (or other medium type requested by your site) that was created using the CMS VMFPLC2 command. The installation medium contains any number of files separated by single tape marks and terminated by two tape marks. The first file on the first tape is SASCINST EXEC, the installation EXEC. The first tape also contains the SAS/C products for 370 mode systems. This file may include SAS/C(r) Compiler, SAS/C(r) Resident Library, SAS/C(r) FSSL, or SAS/C(r) C++ Development System. The usage notes file for 370 mode systems follows the products file on the first tape. The SAS/C products for ESA mode systems may reside on the first tape after the 370 mode systems files, or on subsequent tapes. The SAS/C products for ESA mode systems may include SAS/C Compiler, SAS/C Resident Library, SAS/C FSSL, SAS/C C++ Development System, or SAS/C(r) CSL. The usage notes file for ESA mode systems follows the products file. Appendix B through Appendix G contain lists of the relevant logical files. The SASCINST EXEC will prompt you for a filemode to be used as the target minidisk for usage notes installation. If you choose to enter a filemode at this time, the usage notes will be installed on this target minidisk during the product files installation. You may choose not to install the usage notes at this time, in which case you should press return at the prompt. See "SAS/C Code Maintenance (Usage Notes and Zaps)" on page 19 for instructions on installing the Usage Notes and Zaps using the USAGE option of the SASCINST EXEC. To install your SAS/C software, follow these steps: 1. Mount the first tape. Mount tape number 1 at address 181 of your virtual machine. 2. Load SASCINST EXEC. Remove the installation EXEC, SASCINST EXEC, from the first tape to your target minidisk by issuing the commands: VMFPLC2 REW VMFPLC2 LOAD * * fm where: fm is the filemode letter of the target minidisk. 3. Execute SASCINST EXEC. Use SASCINST EXEC to load ONLY ONE, either the 370 mode files OR the ESA mode files, onto the target minidisk allocated in Chapter 2 on page 3. Use the SASCINST EXEC that came on this tape, not one from a previously installed tape. You must run SASCINST EXEC after each tape is mounted. The first tape should still be attached. SASCINST EXEC will tell you when to mount the subsequent tapes if required. For ESA mode installations, issue the command: SASCINST ESA tapenumber fm For 370 mode installations, issue the command: SASCINST 370 tapenumber fm where: tapenumber is the number (1-9) of the tape currently mounted fm is the filemode letter of the target minidisk. ============================================================================================================= Chapter 4: Character Set Translation Tables Any C source compiled with the SAS/C compiler must use the source file representations specified in the translation table. Modifying the source file representation of some characters in the tables may require that you edit existing C source that contains the default representation to replace occurrences of the changed character. Otherwise, syntax errors will occur when the source is compiled. This includes any source code that was shipped with the product, such as header files. We have supplied a utility, XLTHDR, to help you translate libraries of C header files. See "XLTHDR" on page 49 for information on using this utility. Modifying the Character Set Translation Tables Since the C language uses some characters that may not be available on all terminals and printers, the SAS/C compiler, the debugger, the C++ Development System and the OMD370 utility accept alternate representations of some of the more common problem characters. These representations are kept in a table that forms part of the transient library. This section tells you how to alter this table to suit your needs. Contents of the Default Table For each character, the table contains two input and two output representations. The compiler, C++ Development System, and OMD370 accept two representations of each character in a source file. The debugger accepts two representations of each character in its commands. These are the primary and alternate representations. The compiler and OMD370 can produce either of two representations of each character in a LISTING file. These are the print and the overstrike representation. The overstrike representation is produced by printing a second character directly over the first. This representation requires a pair of hex digits. The default table contains the following representations: --------------------------------------------------------------------------------------------- Source File Representations Listing File Representations Character Primary Alternate Print Overstrike --------------------------------------------------------------------------------------------- left brace 'C0' '8B' '8B' '4C' '4F' right brace 'D0' '9B' '9B' '6E' '4F' left bracket 'AD' 'AD' 'AD' '4C' '60' right bracket 'BD' 'BD' 'BD' '6E' '60' circumflex '5F' '71' '5F' '5F' '40' tilde 'A1' 'A1' 'A1' '7D' '60' backslash 'E0' 'BE' 'BE' '7E' '61' bar '4F' '6A' '4F' '4F' '40' pound sign '7B' '7B' '7B' '7B' '40' exclamation point '5A' '5A' '5A' '5A' '40' --------------------------------------------------------------------------------------------- The primary and alternate representations do not have to be different. For instance, the primary and alternate representations of the tilde are the same. Also, the second overstrike character can be a blank (X'40), as for the bar, above. Note: Changes in the character translations table may affect the standard C header files and any source code shipped as part of your SAS/C software. See the SAS/C Compiler and Library Users Guide, Chapter 3 "Language Definition" for more information on representations of special characters. You can change the default translations by replacing the default table with one of the alternate tables provided or by creating your own table. Changing the Default Translation Table Changing the default translation table requires two steps: 1. Select an alternate table from the ones provided on the installation medium or create your own by editing one of the supplied tables. For additional information, see "Step 1: Select an alternate or create a new table" on page 9. 2. Invoke the LCDEFS utility to replace the table in LSCRTL LOADLIB, LCARES TXTLIB, and CICSARES TXTLIB. Step 1: Select an alternate or create a new table The code to create three alternate character translation tables as well as the code used to create the default table is provided on the installation medium as members of LSU MACLIB. L$DCST is the code used to define the default translation table L$DCSP defines a translation table that is suitable for use when compiling C programs that have been copied to a mainframe from an IBM PC-3270. L$DCSC defines a translation table that uses a cents sign as the alternate and print representation of the backslash. L$DCSD defines a translation table that supports the use of IBM EBCDIC code pages 1047 and 37. You can use one of these alternate tables without changing it, or you can edit one to create your own table. Creating Your Own Translation Table The easiest way to define your own translation table is to copy L$DCSC, L$DCSP, L$DCST, or L$DCSD from LSU MACLIB by using the MEMBER option of the XEDIT command or the MOVEFILE command, and modify it to fit your requirements. Note: Specify the member name as the filename and ASSEMBLE as the filetype. The translation table is defined by a call to the CHARSET macro. The CHARSET macro has ten keyword parameters, one for each character. Each parameter takes five operands, one for each possible representation. The assembler code to define the default table is shown below. The first operand is the primary representation, the second is the alternate representation, the third is the print representation, and the fourth and fifth are the overstrike representation. To define your own table, simply change the hexadecimal code for the operands you wish to change. CHARSET LBRACE=(C0,8B,8B,4C,4F), + RBRACE=(D0,9B,9B,6E,4F), + LBRACK=(AD,AD,AD,4C,60), + RBRACK=(BD,BD,BD,6E,60), + CIRCUM=(5F,71,5F,5F,40), + TILDE=(A1,A1,A1,7D,60), + BSLASH=(E0,BE,BE,7E,61), + BAR=(4F,6A,4F,4F,40), + POUND=(7B,7B,7B,7B,40), + EXCLAIM=(5A,5A,5A,5A,40) END Step 2: Invoke LCDEFS to Replace the Table The LCDEFS EXEC, provided on the installation medium, reassembles the table and replaces it in LSCRTL LOADLIB (the transient library file), LCARES TXTLIB (the all resident library), and CICSARES TXTLIB (the CICS all resident library). Caution: Write Accessed A disk. You must have the minidisk that contains LSCRTL LOADLIB, LCARES TXTLIB, and CICSARES TXTLIB accessed for write as your A disk. If not, LCDEFS will create an invalid LSCRTL LOADLIB on the A disk. If this happens, erase the invalid copy, access the target minidisk correctly, and repeat this step. Invoke LCDEFS with the following: LCDEFS -TRANS filename where: filename is the filename of the table ASSEMBLE file, which should be located on your A disk. LCDEFS issues the GLOBAL command for LCUSER MACLIB, which contains the CHARSET macro, invokes the ASSEMBLE command to reassemble the table, and, finally, invokes the LKED command to replace the table in LSCRTL LOADLIB, LCARES TXTLIB, and CICSARES TXTLIB. See Appendix A on page 41 for a detailed description of the LCDEFS command. If the ASSEMBLE and LKED commands complete successfully, LCDEFS then asks if you want to compress LSCRTL LOADLIB. If you respond with "yes," LCDEFS invokes the LOADLIB command with the COMPRESS option for LSCRTL LOADLIB. You should make sure that you have enough room on the minidisk for the temporary copy that the LOADLIB command creates. Caution: Non-Zero Return Code from LKED. In the unlikely event that the LKED command returns a non-zero return code (LCDEFS displays the return code after the command completes), the table has been replaced with an unusable version. Do not attempt to use the compiler until the problem has been corrected. Consult the appropriate IBM documentation for the meanings of the return codes and error messages that are produced by the LKED command. Providing Character Translation for C++ Tracebacks Tracebacks for C++ programs may include function names which contain unusual EBCDIC characters. If your site uses C++, and has defined a special character translate table due to non-standard definitions of such characters, you may need to modify the runtime library to enable use of this table when C++ tracebacks are produced. This change introduces some overhead into the execution of all C programs, so you should make the change only if you use C++, do not use the standard tables, and are concerned about the readability of special characters in C++ tracebacks. This change is in the form of a zap applied to the SAS/C resident library (LC370STD TXTLIB). If you expect to run C++ programs under CICS, you should also apply the zap to the CICS resident library (LC370CIC TXTLIB) and the CICS/VSE resident library (LC370VSE TXTLIB). This zap is provided on your installation medium as part of the Usage Notes and Zaps product as member Z6000492 in ZAP MACLIB. The ESA mode version is listed below. * NAME: Z6000492 PRODUCT: SASC CATEGORY: SPEC SYSTEM: CMS/ESA * DATE: 19MAR96 STATUS: DZ+UT USAGE-ID: LIBRARY-C0492 * * Providing character translation tables for C++ tracebacks * * NOTE: APPLY TO LC370STD TXTLIB(STANDARD RESIDENT LIBRARY), * LC370CIC TXTLIB (CICS RESIDENT LIBRARY) AND * LC370VSE TXTLIB (CICS/VSE RESIDENT LIBRARY) USING * THE APPLYZAP UTILITY. THE FAILING PROGRAM SHOULD BE * RELINKED. * END NAME L$CMAINB L$CMAINB STDOBJ VER 07C0 47F0,93FA REP 07C0 4700,93FA LOG Z6000492 ZAPLOG L$CMAINB Providing character translation tables for C++ trac NAME L$CMAINH L$CMAINH CICSOBJ CICSVSEO VER 0888 47F0,94AE REP 0888 4700,94AE LOG Z6000492 ZAPLOG L$CMAINH Providing character translation tables for C++ trac ============================================================================================================= Chapter 5: SAS/C CSL Customization Merging the SAS/C CSL Transient Library The SAS/C CSL transients are shipped in the file named CSLRTL LOADLIB. This loadlib must be merged with the compiler transients (LSCRTL LOADLIB). The CSLMERGE EXEC is provided on the installation medium to perform this task for you. You should run this exec to merge the CSLRTL LOADLIB with the LSCRTL LOADLIB before using the SAS/C CSL product. To execute the exec issue: CSLMERGE cslfilemode compfilemode where: cslfilemode is the SAS/C CSL minidisk compfilemode is the SAS/C compiler minidisk These filemodes may be the same or different depending on where you installed your SAS/C CSL product. The compiler minidisk (specified as compfilemode) should be a write accessed disk. Maclib Concatenation The SAS/C CSL header files are shipped in the file named SASCCSL MACLIB. This maclib should be concatenated before the standard C macro library, LC370 MACLIB. You should issue a GLOBAL command to set up this concatenation before using the SAS/C CSL product. Customize CSL NFS Defaults Before running any CSL NFS application, some customization will need to occur at your site. Technical Report C-113 documents various customizations which can be performed on a per-site basis. Please read and understand Technical Report C-113 before modifying CSL NFS defaults with the following zap. Before any user can access an NFS file, he must be authorized by a login server running on an NFS Server. There are several methods to obtain this authorization. These methods are documented in Technical Report C-113. If no alternate method is used, the default login host name will be NFSLOGINH. If your site wants to change this default, you can tailor and apply the following zap: * NAME: Z6000934 PRODUCT: SASC CATEGORY: SPEC SYSTEM: CMS/ESA * DATE: 19MAR96 STATUS: DZ+UT USAGE-ID: CSL-C0934 * * Custom zap to change the default NFS login server name * * NOTE: APPLY TO SASCCSL LOADLIB (CSL TRANSIENT * LIBRARY). * * THIS ZAP SHOULD BE USED ONLY AS A LAST RESORT. SEVERAL * OTHER METHODS ARE AVAILABLE FOR FINDING THE NFS * LOGIN HOST NAME. SEE C-113 FOR DETAILS. * THE DEFAULT VALUE IS "NFSLOGINHOST" (LOWER CASE). * * NOTE: CODE YOUR OWN VALUE FOR THE HOSTNAME. * UP TO 256 BYTES MAY BE SPECIFIED. THE NEW VALUE * MUST BE NULL TERMINATED. * * EXAMPLE: CHANGE HOSTNAME TO "LOGINSERV.ABC.COM" * REP 0000 D3D6,C7C9 * REP 0004 D5E2,C5D9 * REP 0008 E54B,C1C2 * REP 000C C34B,C3D6 * REP 0010 D400 * * END NAME L$NNC0A L$NNLOG$ CSLLOAD2 VER 0000 9586,A293 VER 0004 9687,8995 VER 0008 8896,A2A3 VER 000C 0000,0000 VER 0010 0000,0000 VER 0014 0000,0000 VER 0018 0000,0000 VER 001C 0000,0000 * REP 0000 0000,0000 REP 0004 0000,0000 REP 0008 0000,0000 REP 000C 0000,0000 REP 0010 0000,0000 REP 0014 0000,0000 REP 0018 0000,0000 LOG Z6000934 ZAPLOG L$NNLOG$ Custom zap to change the default NFS login server n NFS Security Considerations Use of the NFS client feature requires that a login server be installed on one of the NFS server systems. The source for two login servers is available in (UNIX format) tar files. Your organization will need to install one or both of these on an NFS server system if it does not already have one running (such as for PC-NFS). More information on login server installation and configuration is contained in Technical Report C-113, Chapter 11, and the login server source distributions. Please note that the login servers must be run with root authority to be recognized as authoritative by the SAS/C CSL NFS client library. The remainder of this section discusses security risks associated with using the SAS/C CSL NFS client implementation. These risks are being clearly documented in order to help administrators of NFS servers assess the risks involved in granting access to MVS and CMS users. Note that while the methods of attack are documented here in order to reduce their distribution beyond system administrators, programmers who understand mainframe operating systems, TCP/IP, RPC and NFS might comprehend these weaknesses without reading about them. See the discussions of nfslogin and NFS security in the SAS/C CSL documentation for a more complete discussion of NFS security. The risks discussed here are to files on NFS servers. NFS server security problems pose no threat to the mainframe unless files on the server contain mainframe passwords. Furthermore, managers of NFS servers generally have some flexibility in choosing the file that they make available to clients on a particular remote host. The following methods of attack are practical for knowledgeable mainframe programmers: . The SAS/C CSL NFS client library has strict requirements for login on an NFS login server. NFS file accesses are based on UNIX user information obtained from this login. A programmer could write an NFS client implementation using an RPC library and use that (lax) implementation instead of the SAS/C implementation. On UNIX this is prevented by the requirement that "root" users bind reserved ports in TCP/IP. Current mainframe TCP/IP implementations do not have restrictions on who can bind a reserved port. Thus this method attack becomes possible. Note that this problem is present regardless of whether or not the SAS/C CSL product is installed on your system. . Because the SAS/C CSL product runs in the user's address space, a mainframe programmer might be able to disassemble the code and zap appropriate instructions so that access is allowed without a valid login. We have taken steps to make this harder to do, but it will always be possible as long as the SAS/C CSL libraries run in the user's address space. Another method of attack is applicable only to sites that are not running a RACF-compatible security system. . A user could setup a login server on a machine that he controls (a PC for instance), and then direct his logins to that machine. This method of attack is not possible if the SAS/C CSL generalized resource security is enabled, because generalized resource mechanism allows the security administrator to control the IP addresses of machines that can be used as login servers. Other methods of attack would be relatively difficult compared to these. ============================================================================================================= Chapter 6: ISPF Panels SAS/C(r) ISPF Panel Installation The SAS/C Compiler ISPF files were loaded in Chapter 3 on page 5 as part of the SAS/C Compiler product. If you intend to install these files on your ISPF minidisk, please read all of these instructions carefully before continuing. In order for ISPF to invoke the SAS/C compiler, there are two steps which must be performed. The first step is to install the SAS/C ISPF files on your ISPF minidisk. Secondly, certain site dependent panels must be modified so that SAS/C can be chosen as an option. Step 1: Copy the SAS/C ISPF files from the Compiler Disk to your ISPF Minidisk 1. Link to your ISPF disk in write mode. 2. Copy all SAS/C ISPF files to your ISPF disk. These files are LSCPLIB MACLIB, LSCMLIB MACLIB, and LSC* EXEC files. The files were designed to be compatible with the distributed ISPF Version 3.2 panels, but should work with version 2.2 and above. Step 2: Modification of Site Dependent ISPF Files There are several files which must be modified in order to allow ISPF to invoke the SAS/C Compiler products. Each modification is discussed briefly below. Customizing Foreground Panels You may place the SAS/C ISPF dialogs in conjunction with the standard foreground dialogs or in any other location as desired. Panel ISRFPA (Foreground Selection) The menu item for the SAS/C ISPF dialogs should be added to the PANEL definition, for example: 15 - SAS/C Compiler Products Next add the item number for the SAS/C compiler products to the verification list, for example: VER(,NB,LIST,1,2,3,...,15) Finally add the SAS/C compiler products panel to the selection list, for example: &ZSEL = TRANS(TRUNC(&ZCMD, '.') . . . 15,'PANEL(LSCF)' . . . Panel ISR40000 (Foreground Help) The menu item for the SAS/C ISPF dialogs should be added to the PANEL definition, for example: 15 - SAS/C Compiler Products Add the SAS/C compiler products panel to the selection list, for instance: &ZSEL = TRANS(TRUNC(&ZCMD, '.') . . . 15,LSC##TUT . . . Other Panels To add the SAS/C compiler products dialogs to some location other than the standard foreground panel simply modify the necessary panels to invoke the SAS/C panels LSCF and LSC##TUT. Note: The debugger does NOT require ISPF to run in fullscreen mode. However, it can take advantage of ISPF services when installed in accordance with the previous installation steps and invoked from the SAS/C ISPF dialog. Note: The LSC#FPRT panel makes use of panel ISRFPPRT (The standard ISPF print program and panel) to print the listing, if requested. Depending on how ISPF was installed, the LSC#FPRT may need to be changed to reflect another print program/panel. Step 3: Modification of SAS/C ISPF Files Step 3.1: Modifying SAS/C ISPF dialogs for HyperText tools This step should not be performed if the SAS/C FSSL product has not been installed. In order to invoke the HyperText compiler and viewer from ISPF, a dialog panel must be modified. The modification is discussed below. Foreground Change the lines in LSCF from 4A, 'CMD(LSC#NOFS)' 4B, 'CMD(LSC#NOFS)' to 4A, 'CMD(LSCFHSTR)' 4B, 'CMD(LSCFVSTR)' Step 3.2: Modifying SAS/C ISPF dialogs for C++ tools This step should not be performed if the SAS/C C++ product has not been installed. In order to invoke the SAS/C C++ Development System from ISPF there are two dialog panels which must be modified. The modification is discussed below. Foreground Change the lines in LSCF from 1C, 'CMD(LSC#NOXX)' to 1C, 'CMD(LSCFXSTR)' ============================================================================================================= Chapter 7: Maintenance To maintain your SAS/C products, you may need to perform: . SAS/C code maintenance (usage notes and zaps) . VM system maintenance . Minidisk accessing . Changing CICS transient data queue and load module names . SAS/C software license maintenance. SAS/C Code Maintenance (Usage Notes and Zaps) The Technical Support Division of SAS Institute Inc. provides machine-readable usage notes and zaps for the SAS/C Compiler and related products to assist you in diagnosing and correcting known problems with the products. The usage notes and zaps product on your installation medium contain all usage notes and zaps from the current release back to release 4.50. If you would like to receive the most current usage notes and zaps, please call Technical Support at (919) 677-8008 or request them in writing from the SAS Institute Distribution Center. Usage Notes Description Usage notes are intended to be used as a reference in the event that you encounter a problem with one of the products. If your problem has already been reported, it may be documented in a usage note. The usage note will indicate whether there is a zap to correct the problem. Cautions and warnings about side effects will also be described in the usage note. Zap Description Zaps are fixes for problems reported in the Usage Notes. The zaps are contained in a library along with zap indexes. A zap index is a list of the zaps that are applicable to a particular release (such as 6.00C) and in a specific zap category (such as REQUIRED). Zap indexes have a name of the form $rrrxxxx, where rrr are the digits of the release number and xxxx are the first four characters of the zap category. Therefore a zap index of all the zaps classified as REQUIRED for release 6.00C would be named $600REQU. All zaps are classified as belonging to one of the following maintenance categories: . REQUIRED - These zaps correct severe problems with incorrect execution, code generation, etc. These zaps should be applied by all sites that license the specified product on the specified operating system. . RECOMMENDED - These zaps can be applied without adverse effects at the discretion of the site. . SPECIAL CONSIDERATION - These zaps are only for specific situations, or require special instructions to be applied. These zaps require that you read the corresponding usage note before deciding whether to apply it. We do not recommend you apply them unless you have encountered the specific situation it describes. . REMOVE -These zaps were found to cause problems and should be removed from your system. You should read the corresponding usage note for details. The Usage Notes and the Zap libraries are updated regularly and it is recommended that the SAS/C Software Representative maintain the product on a regular basis by applying all the zaps that are listed as required, recommended, and removal. Installing the Usage Notes and Zaps The SAS/C Usage Notes, Zaps, and associated libraries and utilities for all VM systems are on your installation media. These files were created using the CMS VMFPLC2 command. The Usage Notes and Zaps for ESA mode systems are on the nth tape, where n is the number of tapes that you received. The Usage Notes and Zaps for 370 mode systems are on tape number one. If you did not install the Usage Notes and Zaps as part of the products installation in Chapter 3 on page 5, you may do so now by using the USAGE option of the SASCINST EXEC. You should load only the Usage Notes for your specific operating system - ESA mode or 370 mode. We recommend that you install the Usage Notes and Zaps on a minidisk with a block size of 4K and at least 1300 available blocks. ESA Mode Installation To copy the usage notes files to the target minidisk for ESA mode installations: 1. You received n number of tapes. Mount the nth tape at address 181 of your virtual machine. 2. Issue the command: SASCINST ESA tapenumber fm (USAGE Where: tapenumber - is the number (1-9) of the tape currently mounted fm - is the filemode letter of the target minidisk 370 Mode Installation To copy the usage notes files to the target minidisk for 370 mode installations: 1. Mount tape number 1 at address 181 of your virtual machine. 2. Issue the command: SASCINST 370 1 fm (USAGE Where: fm - is the filemode letter of the target minidisk CMS Disk Files The following is a list of the CMS disk files that should appear on the target minidisk. ##README NOTE a brief description of each the other Usage Notes files ##UPDATE NOTE brief description of changes to the tape or content APPLYZAP EXEC a utility to apply or report on zaps APPLYZAP MODULE (ESA mode systems only) part of APPLYZAP utility APPLYZAP LOADLIB (370 mode systems only) part of APPLYZAP utility UUDECODE MODULE a utility to decode encoded files UUDECODE HELP help file for the UUDECODE utility UUENCODE MODULE a utility to create encoded, mailable binary, files UUENCODE HELP help file for the UUENCODE utility USAGE MACLIB the Usage Notes library ZAP MACLIB the zap library Applying Maintenance The APPLYZAP utility provided as part of the SAS/C Usage Notes and Zaps product is the recommended utility for applying maintenance in the form of zaps to SAS/C products. The complete format of the APPLYZAP command is given in "APPLYZAP" on page 46. Provided as part of the ZAP MACLIB there is a special APPLYZAP input file, named $rrrAUTO where rrr is the compiler release number. This file contains all, if any, of the required, recommended and removal zaps for the specified release of the compiler product. It is recommended that you apply all of the required, recommended and removal zaps as follows: 1. Ensure that the SAS/C compiler product minidisk is write accessed. If you installed the Usage Notes and Zaps on a different minidisk, this disk must be write accessed also. 2. Issue the command: APPLYZAP INPUT $600AUTO NOTERM ECHO Note: Sites with additional add-on products, such as, FSSL and C++, will need to make modifications to the member $rrrAUTO of the ZAP MACLIB before the above job, APPLYZAP, is submitted. The $rrrAUTO members are distributed with APPLY commands for add-on products are commented out. If you choose to apply automatic maintenance to an add-on product, "uncomment" the appropriate APPLY commands. The following $600auto sample illustrates that the 6.00C FSSL and 6.00C C++ zaps will be applied in addition to the zaps for the SAS/C compiler product. The APPLY $600FSSL and APPLY $600CXX lines at the bottom of the $600AUTO file are uncommented to ensure that the 6.00C FSSL and 6.00C C++ zaps are applied. * USE THIS FILE TO AUTOMATICALLY APPLY ALL OF THE REQUIRED, * RECOMMENDED, AND REMOVAL ZAPS TO THE 6.00C SAS/C * COMPILER PRODUCT. APPLY $600FIRS APPLY $600RECO * * NOTE:APPLY $600FSSL - WILL APPLY ZAPS TO THE 6.00 RELEASE OF THE * FULL SCREEN SUPPORT LIBRARY (FSSL). * * APPLY $600CXX - WILL APPLY ZAPS TO *ONLY* THE 6.00C RELEASE OF * THE C++ TRANSLATOR. * * IF ANY OF THE ABOVE APPLY STATEMENTS DO NOT EXIST BELOW, THERE ARE NO * REQUIRED, RECOMMENDED, OR REMOVAL ZAPS FOR THAT * RELEASE. * * UNCOMMENT (REMOVE THE LEADING "*") ANY OF THE FOLLOWING STATEMENTS * THAT ARE APPROPRIATE FOR THE ADD-ON PRODUCTS YOU MAY HAVE. * APPLY $600FSSL APPLY $600CXX For more information on the APPLYZAP utility refer to the ##UPDATE NOTE file included on your installation medium as well as the SAS Technical Report C-114, A Guide for the SAS/C Compiler Consultant. Segment Maintenance If you have installed the product in a segment and you need to apply a zap to the transient library (LSCRTL LOADLIB), to the compiler (LC370 LOADLIB), or to the debugger (L$DEBUG LOADLIB), simply apply the zap to the appropriate LOADLIB file using the APPLYZAP command and execute L$GENSEG, as before, with the updated LOADLIBs. Caution: Re-save Product. If you do not re-save the updated product in the segment, your C programs will not be able to access the updated LOADLIBs. VM System Maintenance Sites running VM/SP release 6 will need to ensure that following APARS have been applied to their systems. APAR VM36615 This is the "Commit Without Close" enhancement for VM/SP release 6. The commit without close enhancement is required by the SAS/C Library I/O functions afflush and fsync. APAR VM44113 This is the APAR for DMSREAD, where DMSREAD was returning the wrong number of bytes read. The DMSREAD APAR is required to use the SAS/C Library I/O functions. Minidisk Accessing The core compiler files, EXECs, and HELP files have been assigned a filemode of x2, where x is the filemode letter. The rest of the files are loaded with a filemode of x1. You can hide the less frequently used files by accessing the minidisk using the CMS ACCESS command: ACCESS cuu x/x * * x2 where x is the filemode letter at which the minidisk is to be accessed. This saves access time and storage in the user's virtual machine. Changing Default Names for CICS Modules and Transient Data Queues Your site may wish to change the default names that the SAS/C CICS library uses for the CICS transient load modules and/or the Extrapartition Transient Data Queues in order to resolve name conflicts. The following generic zap can be applied to the CICS resident libraries (LC370CIC TXTLIB and LC370VSE TXTLIB) to change the default names. You might wish to apply this zap if the default extrapartition transient data queue names (SASE, SASO, and SASR) are already in use at your site. Similarly, you might wish to apply this zap if the default CICS transient library program names (which all start with the three character prefix LSH) are already in use at your site. Use the APPLYZAP utility to apply the zap. Unless you have a very good reason for doing so, we recommend that you DO NOT change these defaults. Notes: . If you change the default three character prefix for the transient data queue names and this change is not done during product installation, then all relevant user application programs must be relinked. Instead of relinking, you may apply the zap to the L$C$PFXH CSECT in the appropriate user load module. You must change the module name in the NAME statement to refer to your user load module when applying the zap to a user program. Two CICS transient library programs must also be zapped: LSHSTG and LSHSTGM. These programs are invoked by the library to support the =storage run-time option. . If you decide to change the three character load module name prefix you must also modify the PPT entries. In addition, the load modules in SASC.CICSLOAD must be renamed as well. It is important that the alias names for these members be preserved, otherwise it will be impossible to apply zaps and other maintenance that you receive from the Institute. * NAME: Z6000158 PRODUCT: SASC CATEGORY: SPEC SYSTEM: CMS * DATE: 27FEB96 STATUS: DZ+UT USAGE-ID: LIBRARY-C0158 * * How to change default CICS TD queue and transient library names * * NOTE: APPLY TO LC370CIC TXTLIB(CICS RESIDENT LIBRARY) AND * LC370VSE TXTLIB(CICS/VSE RESIDENT LIBRARY) USING * THE APPLYZAP UTILITY. * * THE USER MUST CODE THEIR OWN VALUES FOR THE * DEFAULT THREE CHARACTER PREFIX OF THE CICS * EXTRAPARTITION TRANSIENT DATA QUEUE NAMES AND/OR * THE CICS TRANSIENT LIBRARY PROGRAM NAMES. * * EEEE,EE - DEFAULT EXTRAPARTITION TD QUEUE NAME PREFIX * FFFF,FF - DEFAULT TRANSIENT LIBRARY PROGRAM NAME PREFIX * * END NAME L$C$PFXH L$C$PFXH CICSOBJ CICSVSEO VER 0000 E2C1,E200 VER 0004 D3E2,C800 REP 0000 EEEE,EE REP 0004 FFFF,FF LOG Z6000158 ZAPLOG L$C$PFXH How to change default CICS TD queue and transient l You do not have to replace data that you are not changing. For example, to change the default three character prefix of the extrapartition transient data queue names from SAS to USR use the following: NAME L$C$PFXH L$C$PFXH VER 0000 E2C1,E200 REP 0000 E4E2,D9 Product License Maintenance Your SAS/C products were shipped with current license information so you do not need to initialize the license information during the installation procedure. You will need to update the license information when you renew your SAS/C software license. The license information for SAS/C software is contained within each licensed load module. The information used to update the license is known as the data. A copy of the setinit data used for your site is provided as one of the files on your installation medium. It is named SETLC1 DATA. The data in this file correspond to the data that were used to individually license your copy of the product before shipment. For SAS/C C++, the setinit data is also provided on your installation medium in a file named SETCXX DATA. When you renew your license, you will be provided with a new SETLC1 DATA file, or for C++, SETCXX DATA file. Update the license information by running the LC3370 utility provided on your installation medium. The LC3370 utility modifies LC370 LOADLIB, DSECT2C MODULE, and CXX LOADLIB. Before issuing the LC3370 command, make sure that you have write access to the minidisk containing the LC370 LOADLIB, the DSECT2C MODULE and your new SETLC1 DATA files. To setinit the SAS/C C++ product, you will need write access to the minidisk containing the CXX LOADLIB and your new SETCXX DATA file. To update the license in the compiler enter the following command: LC3370 NATIVE SETLC1 To update the license in the DSECT2C utility enter the following command: LC3370 DSECT2C SETLC1 To update the license in the C++ translator enter the following command: LC3370 LCXX SETCXX Each invocation of LC3370 prints a listing file on your A-disk named SETINIT LISTING. Note: If you have the SAS/C Compiler installed in a segment, after updating the license, you must re-save the compiler in the segment. It will not be necessary to redefine the segment. Just invoke the L$GENSEG utility according to the instructions in "NON-XA Segment Installation" on page 27 or "XA Segment Installation" on page 29. ============================================================================================================= Chapter 8: Segment Installation NON-XA Segment Installation These instructions apply only when you are installing SAS/C software in a saved segment under a NON-XA operating system. If you are using a XA operating system, use the procedure outlined in "XA Segment Installation" on page 29 to install SAS/C in a saved segment. Before creating the segment, you may wish to read "How Dynamic Loading Works" on page 37 for a discussion of how dynamic loading works. Note: You must have a CP privilege class of E in order to install in a segment. The following instructions assume a reasonable familiarity with discontiguous shared segment support in NON-XA systems. If you need additional information on this topic, you should consult a VM systems programmer at your site or refer to the manuals listed in Appendix J, "Reference Publications" on page 75. The installation of the SAS/C loadlibs in a segment under NON-XA systems has three steps. You must do the following: 1. Select a name for the segment in which you wish to install. 2. Define a discontiguous saved segment. 3. Invoke the segment installation utility L$GENSEG. Step 1: Select segment name in which you wish to install By default, all SAS/C load modules assume that all loadlibs have NOT been installed in a segment. Use the LCDEFS utility (provided on the installation medium) to set the segment name. Invoke LCDEFS as follows: LCDEFS newname ( CCOMPILER LIBRARY Installations with the SAS/C Full Screen Support Library, or the SAS/C C++ Development System should append "FSSL" or "CXX" as appropriate. LCDEFS newname ( CCOMPILER LIBRARY FSSL CXX where newname is the name you wish to use for the segment. The complete format of LCDEFS EXEC is given in Appendix A on page 41. Step 2: Define a discontiguous saved segment Allocate and format DASD space on a CP owned volume. The DCSS should be large enough to hold all of the SAS/C products you wish to install. For the SAS/C Compiler, the C++ Development System and associated libraries at least 1393 4K pages (88 64K segments, or 5,632K). For just the SAS/C Compiler and associated libraries at least 1069 4K pages (67 64K segments, or 4,288K). Note: DCSS minimum size is the same for installations both with and without SAS/C FSSL. Update the DMKSNT assemble file with a NAMESYS macro. The DCSS should be shared and protected. The following is a sample NAMESYS macro for a segment named SASC600. ********************************************************************** *** *** SAS/C COMPILER segment *** *** 00nnnnnn-00mmmmmm (SHARED AND PROTECTED) *** *** STORED ON DASD VM0001 *** *** MACRO GENERATED 21MAR91 *** *****************************************************************SASC600 NAMESYS SYSSIZE=64K,VSYSADR=IGNORE,VSYSRES=, + SYSBLOK=, + SYSNAME=SASC600, + SYSVOL=VM0001, + SYSSTRT=(nnn,mmm), + SYSPGCT=nnn, + SYSPGNM=(nnn-mmm), + SYSHRSG=(nnn,...) Assemble the DMKSNT file to create a new entry in the system name table for your saved segment. Rebuild the CP nucleus containing the new system name table. Note: For more information on defining and saving discontiguous saved segments refer to the appropriate IBM publications. See Appendix J on page 75 for a list of references. Step 3: Invoke the installation utility L$GENSEG The L$GENSEG EXEC invokes the GENCSEG utility with an appropriate parameter list. Since GENCSEG will issue the SAVESYS command, you must have a CP privilege class of E in order to save the segment. The GENCSEG utility confirms the virtual machine size, loads the members of the specified loadlibs and then issues the CP SAVESYS command to save the segment. As GENCSEG loads, a message is issued for each member or alias in the loadlib files. When the process is completed and the segment is saved, the following message is issued: LSCG015 Note: 'seg_name' DCSS saved. GENCSEG also creates a record of the segment installation in a file called GENCSEG LISTING A1. You may wish to copy this file to the target minidisk for later reference. Next, you will need to: 1. Define your virtual machine so that you have enough virtual storage to contain the segment, the loader tables, and the storage required by CMS and the segment installation utilities. The exact virtual storage required varies depending on the release of CMS you are using, but in general you should define storage (via the CP DEFINE command) at least 1M (one megabyte) more than the highest address in the segment. The segment installation utilities will not attempt to save the segment if your virtual machine does not have enough virtual storage. Consult your systems programmer if you are unsure about how much storage to define. 2. Access the target minidisk containing the SAS/C loadlibs to be installed in the segment. 3. Invoke L$GENSEG with the correct parameters, as follows: L$GENSEG segment_name ( CCOMPILER LIB FSSL DEBUG Installations with the SAS/C C++ Development System should append "CXX". L$GENSEG segment_name ( CCOMPILER LIB FSSL DEBUG CXX where segment_name is the name you wish to use for the segment. 4. After the segment has been saved, reduce the virtual storage to the normal size. XA Segment Installation These instructions apply only when you are installing SAS/C software in a saved segment under an XA operating system. If you are using a NON-XA operating system, use the procedure outlined in "NON-XA Segment Installation" on page 27 to install SAS/C in a saved segment. Before creating the segment, you may wish to read "How Dynamic Loading Works" on page 37 for a discussion of how dynamic loading works. Note: You must have a CP privilege class of E in order to install in a segment. The following instructions assume a reasonable familiarity with segment support in XA operating systems. If you need additional information on this topic, you should consult a VM systems programmer at your site or refer to the manuals listed in Appendix J on page 75. The installation of the SAS/C loadlibs in a segment under an XA operating system has four parts. You must do the following: 1. Determine whether you want to install in a segment that attaches above 16 Mb. 2. Select a name or names for the segment or segments in which you wish to install. 3. Use the DEFSEG command to define a skeleton system data file for each segment. 4. Invoke the segment installation utility, L$GENSEG. Step 1: Determine if you want a segment above 16Mb The SAS/C Compiler, the C++ Development System and the majority of the run time library is RMODE ANY, and may be installed in a segment that attaches above 16Mb. Other SAS/C loadlibs including parts of the transient library, and the full screen transient library have RMODE 24 and must be installed in a segment that attaches below 16Mb. This presents two practical choices: . Install all your SAS/C loadlibs in the same segment, below 16Mb. . Install the SAS/C Compiler, the C++ Development System and the majority of the run time library in a segment above 16Mb, and the remainder of the SAS/C loadlibs and the parts of the run time library that must reside below 16MB in a separate segment below 16Mb. Note: A segment above 16M, cannot be used by virtual machines running in 370-mode. If some users will be running in 370-mode, then any segment they will use must be installed below the 16M line. Step 2: Selecting a name(s) for the segment(s) By default, all SAS/C load modules assume that the SAS/C libraries and loadlibs have NOT been installed in a segment. Use the LCDEFS utility (provided on the installation medium) to set the segment name or names. . If you wish to install all your SAS/C loadlibs in one segment below 16MB, you must set the name of the segment in all of the modules. Invoke LCDEFS as follows: LCDEFS newname ( CCOMPILER LIBRARY Installations with the SAS/C Full Screen Support Library, or the SAS/C C++ Development System should append FSSL or CXX as appropriate: LCDEFS newname ( CCOMPILER LIBRARY FSSL CXX where newname is the name you wish to use for the segment. . To install in a segment above 16MB you must set the segment names for both the segment above 16MB and the segment below 16MB. To do so invoke LCDEFS as follows: LCDEFS hiseg -NODCSS loseg ( CCOMPILER LIB Installations with the SAS/C Full Screen Support Library, or the SAS/C C++ Development System should append FSSL or CXX as appropriate LCDEFS hiseg -NODCSS loseg ( CCOMPILER LIB FSSL CXX where: hiseg - is the name of the segment above 16MB loseg - is the name of the segment below 16MB. The complete format of LCDEFS EXEC is given in Appendix A on page 41. Step 3: Use the DEFSEG command to define a skeleton system data file for each segment To define a single segment named SASC600, below 16MB, issue the following DEFSEG command. DEFSEG SASC600 hexpage1-hexpage2 SR where: hexpage1 and hexpage2 - is the range of pages to be saved. SR - is the page descriptor code for the saved segment and indicates that a virtual machine has shared, read/only access to the pages. The range must start on a megabyte boundary and for installations without the SAS/C C++ Development System should comprise at least 1096 (X'448') 4K pages of storage. Installations with the SAS/C C++ Development System should comprise at least 1421 (X'58D') 4K pages of storage. For example, the following DEFSEG command defines a skeleton for a segment large enough for installations with the SAS/C C++ Development System, that attaches at 8Mb. DEFSEG SASC600 800-D8D SR To define a segment above 16MB and the requisite segment below 16MB, issue two DEFSEG commands. For installations with the SAS/C C++ Development System the segment above 16MB should comprise at least 1352 (X'548') 4K pages of storage. The segment below 16MB should be at least 70 (X'46') 4K pages of storage. For installations without the SAS/C C++ Development System the segment above 16MB should comprise at least 1027 (X'403') 4K pages of storage. The segment below 16MB should be at least 70 (X'46') 4K pages of storage. For example, to install in the SASC60HI segment, and a segment named SASC60LO. The SASC60HI segment could attach at 64Mb and the SASC60LO segment could attach at 8Mb. The following DEFSEG commands define the appropriate skeleton files for installations with the SAS/C C++ Development System. DEFSEG SASC60HI 2800-2D48 SR DEFSEG SASC60LO 800-846 SR Step 4: Invoke the L$GENSEG exec The L$GENSEG EXEC invokes the GENCSEG utility with an appropriate parameter list. Since GENCSEG will issue the SAVESEG command, you must have a CP privilege class of E in order to save the segment. The GENCSEG utility confirms the virtual machine size, loads the members of the specified loadlibs and then issues the CP SAVESEG command to save the segment. As GENCSEG loads, a message is issued for each member or alias in the loadlib files. When that process is completed, for each segment saved, the following message is issued: LSCG015 Note: 'seg_name' segment saved. GENCSEG also creates a record of the segment installation in a file called GENCSEG LISTING A1. You may wish to copy this file to the target minidisk for later reference. Next, you will need to: 1. Define your virtual machine so that you have enough virtual storage to contain the segment, the loader tables, and the storage required by CMS and the segment installation utilities. The exact virtual storage required varies depending on the release of CMS you are using, but in general you should define storage (via the CP DEFINE command) at least 1M (one megabyte) more than the highest address in the segment. The segment installation utilities will not attempt to save the segment if your virtual machine does not have enough virtual storage. Consult your systems programmer if you are unsure about how much storage to define. 2. To install in a single segment below 16MB, invoke the L$GENSEG exec as follows: L$GENSEG seg name ( FORCE CCOMPILER LIBRARY DEBUG FSSL Installations with the SAS/C C++ Development System should append CXX. L$GENSEG seg name ( FORCE CCOMPILER LIBRARY DEBUG FSSL CXX where: seg name - is the name you wish to use for the segment. If you are installing in a segment above 16MB, you may invoke the L$GENSEG exec, specifying both the segment above 16MB and the requisite segment below 16MB as follows: L$GENSEG seg1 seg2 (CCOMPILER LIBRARY DEBUG FSSL Installations with the SAS/C C++ Development System should append "CXX". L$GENSEG seg1 seg2 (CCOMPILER LIBRARY DEBUG FSSL CXX where: seg1 - is the name of the segment above 16MB seg2 - is the name of the segment below 16MB. 3. After L$GENSEG has completed, redefine the virtual storage to the normal size. ============================================================================================================= Chapter 9: Installation Verification Library and Segment Considerations By default, all C programs produced with the compiler and libraries you just installed, will be disabled for segments. So the verification program, will use the first SAS/C transient library in the CMS disk search order. Therefore, We recommend that at compile time and at run time you have no other release of the SAS/C compiler or transient library on an accessed minidisk. If an older version of the transient library is accessed by the compiler the following error message is issued. LSCX048 Most recent C runtime library modules not available. Use version 95152C60 (6.00C) or later to avoid problems. Other problems may also occur. Verify SAS/C(r) Compiler Installation To verify the compiler installation you need to compile, link, and run a sample C program. The member FTOC of SAMPLC MACLIB is provided on the installation medium for this purpose. The procedure for compiling, linking, and executing this program is given below. For more information on compiling, linking, debugging, and executing C programs, refer to the SAS/C manuals listed in the Appendix J on page 75. To produce an executable version of FTOC C and run it, enter the following commands: 1. XEDIT SAMPLC MACLIB (MEMBER FTOC 2. FILE FTOC C A 3. GLOBAL MACLIB LC370 4. LC370 FTOC 5. GLOBAL TXTLIB LC370BAS LC370STD 6. LOAD FTOC 7. GENMOD FTOC 8. FTOC FTOC will output a simple table of temperatures on both the celsius and fahrenheit scales resembling the one below. 0 -17.8 20 -6.7 40 4.4 60 15.6 80 26.7 100 37.8 120 48.9 140 60.0 160 71.1 180 82.2 200 93.3 220 104.4 240 115.6 260 126.7 280 137.8 300 148.9 The LC370 command invokes the SAS/C compiler. During execution, the compiler will produce a source listing named FTOC LISTING. This source listing file will be created either on the same disk as FTOC C (if that disk is write-accessed) or on your A-disk. To confirm that the correct version of the compiler and transient library are being executed. Check the first page of the FTOC LISTING file and ensure that the release number is 6.00C. If you are not accessing the newest release of the transient library, either the compiler or FTOC will issue a library warning message. Verify SAS/C(r) Compiler with FSSL Installation To verify the compiler and the full screen support library installation you need to compile, link, and run a sample full screen program. The SAMPLC MACLIB contains a member named CALENDAR. The procedure for compiling, linking, and executing this program is given below. For more information on compiling, linking, debugging, and executing C programs, refer to the SAS/C manuals listed in Appendix J on page 75. To produce an executable version of CALENDAR, enter the following CMS commands: 1. XEDIT SAMPLC MACLIB (MEMBER CALENDAR 2. FILE CALENDAR C A 3. GLOBAL MACLIB L$FSSL LC370 4. LC370 CALENDAR (EXTNAME 5. GLOBAL TXTLIB L$FSSL LC370BAS LC370STD 6. COOL CALENDAR (GENMOD 7. CALENDAR The LC370 command invokes the SAS/C compiler. During execution, the compiler will produce a source listing named CALENDAR LISTING. This file will be created either on the same disk as CALENDAR C (if that disk is write-accessed) or on your A-disk. To confirm that the correct version of the compiler and transient library are being executed. Check the first page of the CALENDAR LISTING file and ensure that the release number is 6.00C. If you are not accessing the newest release of the transient library, either the compiler or CALENDAR will issue a library warning message. Verify SAS/C(r) Compiler with C++ Development System Installation To verify the compiler and the C++ development system installation you need to compile, link, and run a sample C++ program. The FTOC member of SAMPLCXX MACLIB is provided on the installation medium for this purpose. The procedure for compiling, linking, and executing this program is given below. To produce an executable version of FTOC CXX and run it, enter the following commands: 1. XEDIT SAMPLCXX MACLIB(MEMBER FTOC 2. FILE FTOC CXX A 3. GLOBAL MACLIB LCXX370 LC370 4. LCXX FTOC 5. GLOBAL TXTLIB LC370BAS LC370STD 6. COOL FTOC (CXX GENMOD 7. FTOC FTOC will output a simple table of temperatures on both the celsius and fahrenheit scales resembling the one below. 0 -17.8 20 -6.7 40 4.4 60 15.6 80 26.7 100 37.8 120 48.9 140 60.0 160 71.1 180 82.2 200 93.3 220 104.4 240 115.6 260 126.7 280 137.8 300 148.9 The LCXX command invokes the SAS/C C++ Development System. During execution, the C++ Development System emits the following line: SAS/C C++ 6.00C (CMS) To confirm that the correct version of the C++ Development System is being executed, check your output line and ensure that the release number is 6.00C. ============================================================================================================= Chapter 10: How Dynamic Loading Works Transient Library Loading All C load modules produced by the SAS/C compiler (including the debugger, the compiler itself, and your own load modules) can access the transient library from one of three locations: . CMS nucleus extensions . Discontiguous Saved Segment (DCSS) . LSCRTL LOADLIB The CMS nucleus extension location is usually only useful in testing situations since the function must first be loaded via the CMS command NUCXLOAD. Library load modules in nucleus extensions provide a way of superseding the load modules in the LSCRTL LOADLIB and the DCSS. The LSCRTL LOADLIB location is the most easily used. The only restriction is that the CMS minidisk upon which LSCRTL LOADLIB exists must be accessed at the time the C load module is executed. Each member is loaded into user memory as required by the load module and unloaded when no longer needed. The discontiguous saved segment or (DCSS) location offers a number of advantages but does require that segment searching be enabled and that the segment be installed at your site. Of course, no matter which location is used, the loading and unloading of transient library load modules occurs invisibly. Note: By default segmenting searching is disabled. That is every module created with SAS/C, including the modules shipped as part of the SAS/C product, will not search for a segment containing the SAS/C Transient Library unless segment searching is enabled. See "Enabling Segment Search" on page 38. The decision of which location to load from is made at program initialization. Each C load module determines whether or not a given transient library load module exists as a nucleus extension by calling the CMS NUCEXT function with the QUERY plist. If the transient library functions are available as nucleus extensions (not the usual case), they are accessed as such. If the function is not a nucleus extension and if segment searching has been enabled, then the C load module will search for a segment. If the segment has been defined (as determined by DIAGNOSE Code X'64', in VM/SP, or the SEGMENT macro in ESA mode CMS), the segment is attached to the user's virtual machine and the transient library functions are accessed from the segment. If the segment is not defined or segment searching is not enabled, then the functions are loaded from LSCRTL LOADLIB. Finally, if LSCRTL LOADLIB does not exist on any accessed disk, the program terminates with a warning message, LSCX012 Unable to load runtime I/O routines, execution cannot continue. Note: A C program only attempts to attach the segment once, at program initialization. If the LSCRTL LOADLIB has been installed in a segment, then LSCRTL LOADLIB is not required to be on an accessed disk. When more than one C program is active at the same time in the same virtual machine or when the debugger is being used, transient library functions are shared by the programs. That is, only one copy of a load module will be loaded and all active C programs use that copy. Information about what load modules are active is maintained in a control block anchored by a nucleus extension named LSCEVRG. This nucleus extension is created automatically when a C program is likely to invoke a separate C program (for example, when the =debug run-time option is in effect). LSCEVRG is deleted during termination of the last active C program. Compiler Loading The SAS/C Compiler can be accessed from a segment or from the LC370 LOADLIB. The compiler is invoked with the LC370 EXEC which calls a special loader module for each phase of the compiler. If segment searching has been enabled and the segment exists, then the loader module invokes the appropriate phase of the compiler from the segment. Otherwise, it is invoked from LC370 LOADLIB. Note: These loader modules are shipped with segment searching disabled. They will by default, invoke the compiler only from the LC370 LOADLIB. Segment Advantages There are at least three benefits to installing the SAS/C loadlibs in a saved segment: . The functions do not occupy user memory, allowing C programs to run in a smaller virtual machine. . The time required to load the functions is shorter since all of the functions are loaded at once when the segment is attached. Thus, C programs run faster. . The minidisk containing the loadlibs does not need to be accessed for the programs to execute. Enabling Segment Search Provided as part of the SAS/C Compiler is the utility LCDEFS. This exec can enable segment searching for the transient library and the compiler. LCDEFS EXEC therefore provides a method of maintaining multiple levels of the compiler/library system in different segments or a production level in the segment and a test level on disk. See Appendix A on page 41 for more information on the format and options of the LCDEFS utility. ============================================================================================================= Chapter 11: SAS/C(r) Online Documentation The following SAS/C(r) documentations are now available online in HTML format: SAS/C(r) Software Diagnostic Messages, First Edition, Release 6.00 SAS/C(r) Cross-Platform Compiler & C++ Development System: Usage and Reference, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 1, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 2, Release 6.00 These books are provided on your installation media in one file called SASCHTML TAR. This file was automatically installed during the installation process in "Installation on Minidisk" on page 5. To use the online documentation, you need to port SASCHTML TAR to a system where you have an HTML server. The server needs to be one that supports ASCII because the HTML files included in the TAR file are in ASCII format. Extract the individual HTML files from SASCHTML TAR using the tar or pax program available on most systems supporting HTML You should then open sasctp.html, which is the page containing links to the four books. If you need assistance accessing the SAS/C online documentation, please contact SAS/C Technical Support. ============================================================================================================= Appendix A: Utility Command Formats LCDEFS EXEC The LCDEFS utility provides two services. It changes the segment search target or reassembles and link-edits the character set translation table macro. FORMAT +----------------------------------------------------------------------+ | | + + | | LCDEFS | | newname (oldname (newname2 (oldname2))) | | | | | | | | | | -NODCSS (oldname (-NODCSS (oldname2))) | ( (options ()) | | | | | | | | | -TRANS filename | | | | + + | | | Options: CCompiler | | | CXx | | | FSsl | | | LIBrary | | | FORCE_nodcss | | | PRINT | +--------+-------------------------------------------------------------+ OPERANDS newname is the new name for the segment you wish the C modules specified by the options to be loaded from. oldname is the current name set for the segment. If not specified the default oldname is -NODCSS. newname2 is the new name for the segment below 16MB (when newname is above 16MB) that the C load libraries specified by the options are to be loaded from. oldname2 is the current name set for the segment below 16MB (when newname is above 16MB). If not specified the default oldname is -NODCSS. -NODCSS is a special name used to disable segment searching for transient functions. -TRANS indicates that you wish to reassemble and replace the default compiler translation table according to the directions in Chapter 4, "Character Set Translation Tables" on page 7. filename is the filename of the macro to modify the translation table, which has a filetype of ASSEMBLE. OPTIONS CCOMPILER specifies the SAC/C Compiler should be searched for in the segment specified by the name arguments. CXX specifies the SAS/C C++ Development System should be searched for in the segment specified by the name arguments. FSSL specifies the Full Screen Support Library should be searched for in the segment specified by the name arguments. LIBRARY specifies the SAS/C run time library should be searched for in the segment specified by the name arguments. FORCE_NODCSS is only valid when the new name arguments are -NODCSS. It causes segment searching to be disabled for the load libraries specified as options (see above). PRINT specifies that all output from the ZAP command is printed on the printer. USAGE NOTES 1. Invoking LCDEFS with -NODCSS as the oldname as in, LCDEFS xxxxxxx -NODCSS (CCOMPILER LIBRARY FSSL CXX re-enables segment searching in all SAS/C load libraries, using xxxxxxx as the name of the segment. 2. Invoking LCDEFS with -NODCSS as newname disables segment searching for the load libraries specified as options. LCDEFS -NODCSS oldname (CCOMPILER LIBRARY FSSL disables segment searching all SAS/C modules even if a segment exists. 3. Invoking LCDEFS with a newname of SASC550 and an oldname of -NODCSS as in, LCDEFS SASC550 -NODCSS (LIBRARY would enable segment searching for the transient (run-time) library. Each subsequently created module will seek to attach the SASC550 segment for the run-time library. 4. When installing in a segment above 16MB will usually require a segment below 16MB also. Invoking LCDEFS with a newname of SASC55HI, an oldname of -NODCSS and a newname2 of SASC55LO as in, LCDEFS SASC55HI -NODCSS SASC55LO (LIBRARY could be used to enable segment searching for the transient (run-time) library in a segment (SASC55HI) above 16MB. Some parts of the transient library will only run below 16MB, so a segment (SASC55LO) below 16MB is also required for this type of installation. L$GENSEG EXEC The L$GENSEG utility invokes the SAS/C GENCSEG segment installation utility with the arguments appropriate for installing SAS/C load libraries in segments. The GENCSEG utility then installs each member of the specified loadlibs in the named segment or segments. GENCSEG checks the RMODE of each member and compares it to the segments load address. If the segment is below 16MB by default only the RMODE 24 members are loaded. If the segment is above 16MB by default only the RMODE ANY members are loaded. FORMAT +-----------+----------------------------------------+ | | | | L$GENSEG | dcssname (dcssname2) (options...())) | | | | | | | | | Options: CCompiler | | | CXX | | | Debugger | | | Library | | | Fssl | | | FORCE | | | Edit | | | | +-----------+----------------------------------------+ OPERANDS dcssname is the name of the segment. dcssname2 is used to specify the name of a second segment when installing in a segment above 16MB that requires a segment below 16mb. OPTIONS CCompiler specifies that the SAS/C Compiler is to be installed in the segment. The compiler load modules are contained in LC370 LOADLIB. CXX specifies that the SAS/C C++ Development System is to be installed in the segment named. The C++ load modules are contained in CXX LOADLIB. Debugger specifies that the SAS/C source-level debugger is to be installed in the segment or segments named. The debugger is contained in L$DEBUG LOADLIB. Library specifies that the SAS/C transient (run-time) library is to be installed in the segment or segments named. The library is contained in LSCRTL LOADLIB. Fssl specifies that the Full Screen Support Library is to be installed in the segment. The FSSL transient library is contained in L$FSSL LOADLIB. FORCE causes GENCSEG to attempt to install all members of the specified loadlibs regardless of the RMODE of the members in the named segment. Edit specifies that the installation should be emulated only, that is, that GENCSEG should execute but not actually save the segment. This option can be useful if you are undecided about what the segment page ranges should be. EXAMPLES 1. To install the compiler and library in a segment below 16MB with the name LSCRTL, invoke L$GENSEG with the options CCOMPILER, LIBRARY and FORCE as follows: L$GENSEG LSCRTL (CCOMPILER LIBRARY FORCE 2. To install only the compiler in a segment named LSCCOMP, invoke L$GENSEG with only the CCOMPILER option as follows: L$GENSEG LSCCOMP (CCOMPILER 3. To install the library and Fssl in a segment named LSCRTL4, invoke L$GENSEG with the LIBRARY and FSSL options as follows: L$GENSEG LSCRTL4 (LIBRARY FSSL 4. To install the compiler, debugger, C++ and the libraries in a segment above 16MB named HISASC, requires a segment below 16MB, named for example LOSASC. Invoke L$GENSEG with the CCOMPILER, DEBUGGER, CXX, LIBRARY and FSSL options as follows: L$GENSEG HISASC LOSASC (CCOMPILER DEBUG CXX LIBRARY FSSL LC3370 MODULE The LC3370 utility updates the license information in the SAS/C Compiler, the DSECT2C Utility, and the SAS/C C++ Development System. FORMAT +---------+--------------------------------------+ | | | | LC3370 | NATIVE | | | or | | | DSECT2C >> | | | or | | | LCXX | +---------+--------------------------------------+ OPERANDS NATIVE specifies the SAS/C Compiler as the target of the command. DSECT2C specifies the DSECT2C Utility as the target of the command. LCXX specifies the SAS/C C++ Development System as the target of the command. fname is the file name of the data file used to initialize or renew your license information. The default is SETINIT. ftype is the file type of the data file used to initialize or renew your license information. The default is DATA. In order to assign a file type a file name must also be specified. fmode is the file mode of the data file used to initialize or renew your license information. The default is A1. In order to assign a file mode, a file name and file type must also be specified. USAGE NOTES 1. Before issuing the LC3370 command make sure you have write access to the target minidisk. 2. To renew your license for the SAS/C Compiler and the DSECT2C utility, use a new SETLC1 DATA file and run LC3370 with both the NATIVE and DSECT2C operands. 3. To renew your license for the SAS/C C++ Development System, use a new SETCXX DATA file and run LC3370 with the LCXX operand. 4. The LC3370 DSECT2C command modifies DSECT2C MODULE and prints a listing file on your A-disk named SETINIT LISTING. 5. The LC3370 NATIVE command modifies LC370 LOADLIB and prints a listing file on your A-disk named SETINIT LISTING. 6. The LC3370 LCXX command modifies CXX LOADLIB and prints a listing file on your A-disk named SETINIT LISTING. APPLYZAP APPLYZAP is a utility for applying maintenance in the form of zaps to SAS/C products. APPLYZAP preprocesses the specified zaps, selects the appropriate zap utilities, saves a record of the zaps and can create reports on applied zaps. FORMAT +----------+---------------------------------+ | | + + | | APPLYZAP | | NOCHECK | | | | | ECHO | | | | | NOERROR | | | | | FILEDEF | | | | | INPUT zname | | | | | NOLIST | | | | | LINKNAME lnkn | | | | | OVERRIDE | | | | | NOPRECK | | | | | REPORT | | | | | NOTERM | | | | | UPPER | | | | | ZAPNAME zapu | | | | + + | +----------+---------------------------------+ where: zname is the name of file with a filetype of ZAP or member of a maclib filedefed as SYSZLIB, which contains APPLYZAP control statements. APPLYZAP control statements are any statements valid for the ZAP or ZAPTEXT commands plus the additional APPLYZAP input commands as discussed below. lnkn is the name of a linkage editor utility to be used instead of LKED. zapu is the name of a ZAP utility to be used instead of ZAP. APPLYZAP OPERANDS NOCHECK does not validate any checksums. The short form is !C. The default is CHECK. ECHO displays how the input is read, how the output zap cards are formed, and the actual command used to apply the zap. There is no short form. The default is NOECHO. NOERROR causes termination if any error occurs. The short form is !E. The default is to be tolerant of errors. FILEDEF allows user filedefs to override the default library file name associated with a libname key word. The short form is -F. The default is NOFILEDEF. INPUT zname used to override the default input file (SYSZIN ZAP) which contains ZAP control statements or APPLYZAP input commands. APPLYZAP first checks for a file zname on an accessed disk with filetype of ZAP then it checks for a member zname in a maclib filedefed to SYSZLIB. There is no short form. NOLIST prevents the generation of a list of applied zaps. The short form is !L. The default is LIST. LINKNAME lnkn overrides the default linkage editor. The short form is -Klnkn. The default is LKED. OVERRIDE passes the zap directly to the IBM zap utility even if APPLYZAPS records indicate the zap has already been applied. The short form is -O. The default is NOOVERRIDE. NOPRECK does not check for prerequisite zaps. The short form is !P. The default is PRECK. REPORT produces a zap information report. The short form is -R. The default is NOREPORT. NOTERM suppresses diagnostic output to the terminal. The short form is -T. The default is TERM. UPPER uppercases all output. The short form is -U. The default is NOUPPER. ZAPNAME zapu overrides the default utility to be used for applying zaps to LOADLIBS, TXTLIBS, and MODULES. The short form is -Zzapu. The default utility is ZAP. INPUT COMMANDS APPLY fileid specifies a input file to be preprocessed. APPLYZAP first checks for a file fileid on an accessed disk with filetype of ZAP then it checks for a member fileid in a maclib filedefed to SYSZLIB. REPORT ZAP=zapname LIB=libname produces a zap applied report based on the ZAP= and LIB= parameters. Specifying a ZAP=zapname allows the user to narrow the range of a report to only that particular zap. Specifying LIB=libname narrows the report to the specified library. To report on all the zaps or all of the libraries, an * may be used for ZAP= and LIB=. Either a LIB= or a ZAP= must be specified on the REPORT command. SYSTEM command passes a command to the operating system. APPLYZAP USAGE NOTES 1. If no INPUT parameter is specified then the default input file SYSZIN ZAP * is used. if SYSZIN ZAP * is not found then processing terminates immediately. 2. APPLYZAP refers to the various parts of the SAS/C Compiler Product by ddname or libname. Refer to the APPLYZAP EXEC for the default ddnames. 3. The FILEDEF operand allows overriding the default file definitions associated with the libname keywords. For example, if the LC370STD TXTLIB is renamed XYZ TXTLIB, the following filedef could be used to enable APPLYZAP (using the FILEDEF operand) to zap the XYZ TXTLIB. FILEDEF STDOBJ DISK XYZ TXTLIB A 4 The LIB=libname parameter of report identifies the target of the report. To report on all the zaps or all of the libraries, an * may be used in ZAP= and LIB=. Either a LIB= or a ZAP= must be specified on the REPORT command. For example, REPORT ZAP=* LIB=* Reports all zaps and libraries REPORT ZAP=* Reports all zaps and libraries REPORT LIB=* Reports all zaps and libraries REPORT LIB=LOAD Reports all zaps applied to the LOAD library. REPORT ZAP=Z5501111 Reports on zap Z5501111 for all libraries REPORT ZAP=Z5501111 LIB=LOAD Reports on zap Z5501111 for the LOAD library. XLTHDR The XLTHDR utility is a translator for libraries of C header files. The program converts a library of C header files using the customer-modified Compiler translate table and creates a new library of header files. XLTHDR replaces all occurrences of the primary values of the special characters with what is specified in the customer-modified translate table. The new maclib header files will be written to $filename MACLIB *. Format +---------+----------------------------------------+ | | | | XLTHDR | filename<.filetype<.filemode>> | | | | +---------+----------------------------------------+ OPERANDS filename is the file name of the library to be translated. filetype is the file type of the library to be translated. The default is MACLIB. filemode is the file mode of library to be translated. The default is *. ============================================================================================================= Appendix B: SAS/C(r) Common Installation Files --------------------------------------------------------------------------------------------- Filename File Type Description --------------------------------------------------------------------------------------------- COPYRITE FILE Copyright notice GOVTNOTE DATA Government Rights Notice --------------------------------------------------------------------------------------------- ============================================================================================================= Appendix C: SAS/C(r) Compiler Product Files Core Contents --------------------------------------------------------------------------------------------- Filename File Type Description --------------------------------------------------------------------------------------------- L$DEBUG LOADLIB Source level debugger L$DBRMT MODULE Remote debugger L$FSSL LOADLIB FSSL Transient Library LC370 LOADLIB Compiler Load Modules LSCRTL LOADLIB Transient library LC370 MACLIB Standard #include files CLINKS MODULE CLINK Loader COOLS MODULE COOL Loader DSECT2C MODULE DSECT to Structure Conversion Utility LCGOS MODULE Global Optimizer Loader LC1370S MODULE Compiler Loader (Phase 1) LC2370S MODULE Compiler Loader (Phase 2) OMD370 MODULE Object Code Disassembler CICSARES TXTLIB CICS all-resident library LCARES TXTLIB All-resident library LC370BAS TXTLIB Resident Library LC370STD TXTLIB Resident Library --------------------------------------------------------------------------------------------- CMS EXEC Files --------------------------------------------------------------------------------------------- Filename File Type Description --------------------------------------------------------------------------------------------- ARLIST EXEC AR370 Invocation CLINK EXEC CLINK Invocation COOL EXEC COOL Invocation LC370 EXEC Compiler Invocation OMD370 EXEC OMD370 Invocation $PROFAR$ XEDIT Sets XEDIT environment for ARLIST $PROFSL$ XEDIT Sets XEDIT environment for ARLIST LCXED XEDIT Compiler Invocation (from XEDIT) SASCDBG EXEC Remote debugger Invocation --------------------------------------------------------------------------------------------- CICS Preprocessor and Libraries --------------------------------------------------------------------------------------------- Filename File Type Description --------------------------------------------------------------------------------------------- LCCCP EXEC CICS Preprocessor Invocation LCCCP LOADLIB CICS Preprocessor LCCCP0 MODULE CICS Preprocessor LC370CIC TXTLIB CICS resident library for MVS LC370VSE TXTLIB CICS resident library for DOS VSE LC370SPC TXTLIB CICS resident library for SPE --------------------------------------------------------------------------------------------- ILC Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- ILCLINK EXEC ILCLINK Invocation (370 mode only) ILCLINK LOADLIB ILCLINK Utility (370 mode only) ILCLINK MODULE ILCLINK Utility (ESA mode only) L$CICMN TEXT ILC Text File L$ICB1C TEXT ILC Text File L$ICB1F TEXT ILC Text File L$ICB1L TEXT ILC Text File L$ICB1M TEXT ILC Text File L$ICB1P TEXT ILC Text File L$ICB1Q TEXT ILC Text File L$ICB1X TEXT ILC Text File L$ICB2C TEXT ILC Text File L$ICB2F TEXT ILC Text File L$ICB2L TEXT ILC Text File L$ICB2M TEXT ILC Text File L$ICB2P TEXT ILC Text File L$ICB2Q TEXT ILC Text File L$ICB2X TEXT ILC Text File L$IFORC TEXT ILC Text File L$IFORF TEXT ILC Text File L$IFO1C TEXT ILC Text File L$IFO1F TEXT ILC Text File L$IFO1L TEXT ILC Text File L$IFO1M TEXT ILC Text File L$IFO1P TEXT ILC Text File L$IFO1Q TEXT ILC Text File L$IFO1X TEXT ILC Text File L$IFO2C TEXT ILC Text File L$IFO2F TEXT ILC Text File L$IFO2L TEXT ILC Text File L$IFO2M TEXT ILC Text File L$IFO2P TEXT ILC Text File L$IFO2Q TEXT ILC Text File L$IFO2X TEXT ILC Text File L$IMIXD TEXT ILC Text File L$IMIXP TEXT ILC Text File L$IPASC TEXT ILC Text File L$IPASF TEXT ILC Text File L$IPASL TEXT ILC Text File L$IPASM TEXT ILC Text File L$IPASP TEXT ILC Text File L$IPASQ TEXT ILC Text File L$IPASX TEXT ILC Text File L$IPL1C TEXT ILC Text File L$IPL1F TEXT ILC Text File L$IPL1L TEXT ILC Text File L$IPL1M TEXT ILC Text File L$IPL1P TEXT ILC Text File L$IPL1Q TEXT ILC Text File L$IPL1X TEXT ILC Text File L$IPL2C TEXT ILC Text File L$IPL2F TEXT ILC Text File L$IPL2L TEXT ILC Text File L$IPL2M TEXT ILC Text File L$IPL2P TEXT ILC Text File L$IPL2Q TEXT ILC Text File L$IPL2X TEXT ILC Text File L$IVPSC TEXT ILC Text File L$IVPSF TEXT ILC Text File L$IVPSL TEXT ILC Text File L$IVPSM TEXT ILC Text File L$IVPSP TEXT ILC Text File L$IVPSQ TEXT ILC Text File L$IVPSX TEXT ILC Text File -------------------------------------------------------------------------------------------- ISPF Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LSC#APAR EXEC ISPF Dialog EXEC LSC#COPT EXEC ISPF Dialog EXEC LSC#CPAR EXEC ISPF Dialog EXEC LSC#DPAR EXEC ISPF Dialog EXEC LSC#HPAR EXEC ISPF Dialog EXEC LSC#IOPT EXEC ISPF Dialog EXEC LSC#IPAR EXEC ISPF Dialog EXEC LSC#KOPT EXEC ISPF Dialog EXEC LSC#KPAR EXEC ISPF Dialog EXEC LSC#LOPT EXEC ISPF Dialog EXEC LSC#LPAR EXEC ISPF Dialog EXEC LSC#NOFS EXEC ISPF Dialog EXEC LSC#NOXX EXEC ISPF Dialog EXEC LSC#OPAR EXEC ISPF Dialog EXEC LSC#XOPT EXEC ISPF Dialog EXEC LSC#XPAR EXEC ISPF Dialog EXEC LSC#2PAR EXEC ISPF Dialog EXEC LSCF#PRT EXEC ISPF Dialog EXEC LSCFCPRC EXEC ISPF Dialog EXEC LSCFCSTR EXEC ISPF Dialog EXEC LSCFDPRC EXEC ISPF Dialog EXEC LSCFDSTR EXEC ISPF Dialog EXEC LSCFHPRC EXEC ISPF Dialog EXEC LSCFHSTR EXEC ISPF Dialog EXEC LSCFIPRC EXEC ISPF Dialog EXEC LSCFISTR EXEC ISPF Dialog EXEC LSCFKPRC EXEC ISPF Dialog EXEC LSCFKSTR EXEC ISPF Dialog EXEC LSCFLPRC EXEC ISPF Dialog EXEC LSCFLSTR EXEC ISPF Dialog EXEC LSCFOPRC EXEC ISPF Dialog EXEC LSCFOSTR EXEC ISPF Dialog EXEC LSCFVSTR EXEC ISPF Dialog EXEC LSCFXPRC EXEC ISPF Dialog EXEC LSCFXSTR EXEC ISPF Dialog EXEC LSCF2PRC EXEC ISPF Dialog EXEC LSCF2STR EXEC ISPF Dialog EXEC LSCMLIB MACLIB ISPF Panels LSCPLIB MACLIB ISPF Messages -------------------------------------------------------------------------------------------- Help Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- ARLIST HELPLC ARLIST Help File CLINK HELPLC CLINK Help File COOL HELPLC COOL Help File DSECT2C HELPLC DSECT2C Help File ILCLINK HELPLC ILCLINK Help File LCCCP HELPLC CICS Preprocessor Help File LC370 HELPLC Compiler Help File OMD370 HELPLC OMD370 Help File LC HELPMENU LC Component Menu DBGHELP HYP Debugger hypertext help -------------------------------------------------------------------------------------------- Utility/Misc. Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- AR2UPDTE MODULE Converts AR370 archives to IEBUPDTE input format AR370 MODULE Creates and maintain AR370 archives DUMPRLDB EXEC Dumps the redistributable files to tape GENCSEG MODULE GENCSEG utility LCDEFS EXEC Changes segment name, translate table EXEC LC3370 MODULE SETINIT Utility L$GENSEG EXEC Segment installation utility UPDTE2AR MODULE Converts IEBUPDTE input format to AR370 archives XLTHDR MODULE Translates libraries of C header files -------------------------------------------------------------------------------------------- SAMPLES and Setinit Data -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- SETLC1 DATA SETINIT Input Data SAMPLC MACLIB Sample C programs, EXECs, etc. SAMPLCXX MACLIB Sample C++ programs SAMPLHDR MACLIB Sample header files SAMPLILC MACLIB ILC Samples SAMPLASM MACLIB Assembler Samples SAMPLAUX MACLIB Miscellaneous Samples -------------------------------------------------------------------------------------------- Assembler Macros, Systems Programming Environment, and GOS Interface Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LSU ERRMSGS GOS Error Messages LSU MACLIB Sample Source Code Files LCUSER MACLIB Assembler Macros LC370GOS TXTLIB GOS object code files LC370SPE TXTLIB SPE object code files -------------------------------------------------------------------------------------------- ============================================================================================================= Appendix D: SAS/C(r) Resident Product Files Core Contents -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- L$DEBUG LOADLIB Source level debugger L$DBRMT MODULE Remote debugger L$FSSL LOADLIB FSSL Transient Library LC370 LOADLIB CLINK Load Module LSCRTL LOADLIB Transient library CLINKS MODULE CLINK Loader COOLS MODULE COOL Loader CICSARES TXTLIB CICS all-resident library LCARES TXTLIB All-resident library LC370BAS TXTLIB Resident Library LC370STD TXTLIB Resident Library LCXX370 A C++ Library in AR370 Format -------------------------------------------------------------------------------------------- CMS EXEC Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- ARLIST EXEC AR370 Invocation CLINK EXEC CLINK Invocation COOL EXEC COOL Invocation $PROFAR$ XEDIT Sets XEDIT environment for ARLIST $PROFSL$ XEDIT Sets XEDIT environment for ARLIST SASCDBG EXEC Remote debugger Invocation -------------------------------------------------------------------------------------------- CICS Preprocessor and Libraries -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LC370CIC TXTLIB CICS resident library for MVS LC370VSE TXTLIB CICS resident library for DOS VSE LC370SPC TXTLIB CICS resident library for SPE -------------------------------------------------------------------------------------------- ILC Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- ILCLINK EXEC ILCLINK Invocation (370 mode only) ILCLINK LOADLIB ILCLINK Utility (370 mode only) ILCLINK MODULE ILCLINK Utility (ESA mode only) L$CICMN TEXT ILC Text File L$ICB1C TEXT ILC Text File L$ICB1F TEXT ILC Text File L$ICB1L TEXT ILC Text File L$ICB1M TEXT ILC Text File L$ICB1P TEXT ILC Text File L$ICB1Q TEXT ILC Text File L$ICB1X TEXT ILC Text File L$ICB2C TEXT ILC Text File L$ICB2F TEXT ILC Text File L$ICB2L TEXT ILC Text File L$ICB2M TEXT ILC Text File L$ICB2P TEXT ILC Text File L$ICB2Q TEXT ILC Text File L$ICB2X TEXT ILC Text File L$IFORC TEXT ILC Text File L$IFORF TEXT ILC Text File L$IFO1C TEXT ILC Text File L$IFO1F TEXT ILC Text File L$IFO1L TEXT ILC Text File L$IFO1M TEXT ILC Text File L$IFO1P TEXT ILC Text File L$IFO1Q TEXT ILC Text File L$IFO1X TEXT ILC Text File L$IFO2C TEXT ILC Text File L$IFO2F TEXT ILC Text File L$IFO2L TEXT ILC Text File L$IFO2M TEXT ILC Text File L$IFO2P TEXT ILC Text File L$IFO2Q TEXT ILC Text File L$IFO2X TEXT ILC Text File L$IMIXD TEXT ILC Text File L$IMIXP TEXT ILC Text File L$IPASC TEXT ILC Text File L$IPASF TEXT ILC Text File L$IPASL TEXT ILC Text File L$IPASM TEXT ILC Text File L$IPASP TEXT ILC Text File L$IPASQ TEXT ILC Text File L$IPASX TEXT ILC Text File L$IPL1C TEXT ILC Text File L$IPL1F TEXT ILC Text File L$IPL1L TEXT ILC Text File L$IPL1M TEXT ILC Text File L$IPL1P TEXT ILC Text File L$IPL1Q TEXT ILC Text File L$IPL1X TEXT ILC Text File L$IPL2C TEXT ILC Text File L$IPL2F TEXT ILC Text File L$IPL2L TEXT ILC Text File L$IPL2M TEXT ILC Text File L$IPL2P TEXT ILC Text File L$IPL2Q TEXT ILC Text File L$IPL2X TEXT ILC Text File L$IVPSC TEXT ILC Text File L$IVPSF TEXT ILC Text File L$IVPSL TEXT ILC Text File L$IVPSM TEXT ILC Text File L$IVPSP TEXT ILC Text File L$IVPSQ TEXT ILC Text File L$IVPSX TEXT ILC Text File -------------------------------------------------------------------------------------------- Help Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- ARLIST HELPLC ARLIST Help File CLINK HELPLC CLINK Help File COOL HELPLC COOL Help File DBGHELP HYP Debugger hypertext help ILCLINK HELPLC ILCLINK Help File LC HELPMENU LC Component Menu -------------------------------------------------------------------------------------------- Utility/Misc. Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- AR2UPDTE MODULE Converts AR370 archives to IEBUPDTE input format AR370 MODULE Create and maintain AR370 archives DUMPRLDB EXEC Dumps the redistributable files to tape GENCSEG MODULE GENCSEG utility UPDTE2AR MODULE Converts IEBUPDTE input format to AR370 archives -------------------------------------------------------------------------------------------- Assembler Macros, Systems Programming Environment, and GOS Interface Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LC370GOS TXTLIB GOS object code files LC370SPE TXTLIB Systems Programming Environment object code files -------------------------------------------------------------------------------------------- ============================================================================================================= Appendix E: SAS/C(r) FSSL Product Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- HC MODULE Hypertext Compiler HYPVIEW MODULE Hypertext Viewer L$FSARES TXTLIB SAS/C FSSL All-resident Library L$FSSL TXTLIB SAS/C FSSL Resident Library L$FSSL MACLIB SAS/C FSSL Header Files L$FSSLA MACLIB SAS/C FSSL Assembler DSECT Files SASCINTR HYP Introduction to SAS/C VIEWHLP HYP Hypertext Viewer help WDHYPOUT HYP Hypertext file used by windowing program -------------------------------------------------------------------------------------------- ============================================================================================================= Appendix F: SAS/C(r) C++ Development System Product Files Core Contents -------------------------------------------------------------------------------------------- Filename File Type Description ------------------------------------------------------------------------------------------- LCXX370 A C++ Library in AR370 Format CXX LOADLIB C++ Translator LCXX MODULE Translator Loader LCXX370 MACLIB Header Files for C++ ------------------------------------------------------------------------------------------- CMS EXEC Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LCXX EXEC Invokes the Translator -------------------------------------------------------------------------------------------- Help Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LCXX HELPLC LCXX Help File LC HELPMENU LC Component Menu -------------------------------------------------------------------------------------------- Setinit Data -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- SETCXX DATA Setinit input data -------------------------------------------------------------------------------------------- ============================================================================================================= Appendix G: SAS/C(r) CSL Product Files -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- LIBCSL A Resident library for NFS, SNMP-DPI and rexec() in AR370 archive format LIBOLDX A X10 compatibility library in AR370 archive format LIBRPC A Resident library for RPC and XDR in AR370 archive format LIBXAU A Resident library for X authorization in AR370 archive format LIBXAW A Resident library for Athena Widgets in AR370 archive format LIBXEXT A Resident library for X extensions in AR370 archive format LIBXI A Resident library for the X input Extensions in AR370 archive format LIBXM A Resident library for Motif in AR370 archive format LIBXMU A Resident library for X miscellaneous utilities in AR370 archive format LIBXT A Resident library for the X Intrinsics Toolkit in AR370 archive format LIBX11 A Resident library for Xlib in AR370 archive format XERROR DB Default X error database XKEYSYM DB Default X keysyms database CSLMERGE EXEC Tool that merges the transient libraries RPCGEN EXEC Invokes RPCGEN utility DUMPRCSL EXEC Dumps SAS/C CSL redistributable files to tape CSL HYP Hypertext help for NFS and other CSL components RPC HYP Hypertext help file for RPC X11 HYP Hypertext help for X windows CSLRTL LOADLIB NFS transients such as name and device routines that are combined with compiler transients SASCCSL LOADLIB All RPC and some NFS transients APPDEFS MACLIB Application defaults for X11 BITMAPS MACLIB Bitmaps for X11 CSLSAMPC MACLIB C source code sample program library CSLSAMPH MACLIB Sample program include files CSLSAMPR MACLIB Example REXX execs CSLSAMPX MACLIB RPCGEN source code SASCCSL MACLIB Header files for all CSL components APPRES MODULE Redistributable sample command ATOBM MODULE Redistributable sample command BITMAP MODULE Redistributable sample command BMTOA MODULE Redistributable sample command CAT MODULE Redistributable sample command CD MODULE Redistributable sample command CHMOD MODULE Redistributable sample command FEXIST MODULE Redistributable sample command LISTRES MODULE Redistributable sample command LN MODULE Redistributable sample command LS MODULE Redistributable sample command LSTAT MODULE Redistributable sample command MKDIR MODULE Redistributable sample command MOUNT MODULE Redistributable utility command MV MODULE Redistributable sample command NCP MODULE Redistributable sample command NFSLOGIN MODULE Redistributable utility command OCLOCK MODULE Redistributable sample command PORTMAP MODULE Redistributable utility command PWD MODULE Redistributable sample command READLINK MODULE Redistributable sample command REXEC MODULE Redistributable sample command RM MODULE Redistributable sample command RMDIR MODULE Redistributable sample command RPCGENE MODULE Non-redistributable utility command RPCINFO MODULE Redistributable utility command SHOWMNT MODULE Redistributable utility command STAT MODULE Redistributable sample command TOUCH MODULE Redistributable sample command UMASK MODULE Redistributable sample command UMOUNT MODULE Redistributable utility command VIEWRES MODULE Redistributable sample command XAUTH MODULE Redistributable sample command XCALC MODULE Redistributable sample command XCLIPBRD MODULE Redistributable sample command XCLOCK MODULE Redistributable sample command XCUTSEL MODULE Redistributable sample command XDPYINFO MODULE Redistributable sample command XFD MODULE Redistributable sample command XFONTSEL MODULE Redistributable sample command XHV MODULE Redistributable sample command XKILL MODULE Redistributable sample command XLOGO MODULE Redistributable sample command XLSATOMS MODULE Redistributable sample command XLSCLNTS MODULE Redistributable sample command XLSFONTS MODULE Redistributable sample command XMAG MODULE Redistributable sample command XMODMAP MODULE Redistributable sample command XMXREF MODULE Redistributable sample command XPROP MODULE Redistributable sample command XRDB MODULE Redistributable sample command XREFRESH MODULE Redistributable sample command XSET MODULE Redistributable sample command XSETROOT MODULE Redistributable sample command XSTDCMAP MODULE Redistributable sample command XWD MODULE Redistributable sample command XWININFO MODULE Redistributable sample command XWUD MODULE Redistributable sample command XXEDIT MODULE Redistributable sample command PCNFSDV2 TAR A source distribution for the SUN PCNFSD Version 2 login server in UNIX TAR format SASCUIDD TAR A source distribution for the SASCUIDD login server in UNIX TAR format XCMS TXT Default X color management system definitions -------------------------------------------------------------------------------------------- ============================================================================================================= Appendix H: Dumping the Limited Distribution Library Files The DUMPRLDB EXEC copies to tape all of the SAS/C programs and libraries that are redistributable at no charge. The DUMPRLDB EXEC will dump the following files to tape. -------------------------------------------------------------------------------------------- Filename File Type Description -------------------------------------------------------------------------------------------- L$DEBUG LOADLIB Source level debugger DBGHELP HYP Debugger hypertext help L$FSSL LOADLIB FSSL Transient Library LSCRTL LOADLIB Transient library GENCSEG MODULE GENCSEG utility CICSARES TXTLIB CICS all-resident library LCARES TXTLIB All-resident library -------------------------------------------------------------------------------------------- Your installation package includes the document Managing the SAS/C Transient Library which provides the requirements for vendors who plan to redistribute the transient library with their product. This document details the incompatibility issues that occurred when most of the SAS/C transient library was moved above the 16Mb line starting with release 5.50. Additional copies of the document are available by fax, email, or hardcopy by contacting SAS/C Technical Support and requesting a copy of TS496. Note: APPLYZAP MODULE and instructions for using APPLYZAP may be included with the Limited Distribution Library. ============================================================================================================= Appendix I: Dumping the SAS/C(r) CSL Limited Redistribution Files The DUMPRCSL EXEC copies to tape all of the SAS/C CSL programs and libraries that are redistributable at no charge. The DUMPRCSL EXEC will dump the following files to tape. --------------------------------------- Filename File Type --------------------------------------- CSLMERGE COMMANDS XERROR DB XKEYSYM DB CSLMERGE EXEC CSLRTL LOADLIB SASCCSL LOADLIB APPDEFS MACLIB BITMAPS MACLIB ACCESS MODULE APPRES MODULE ATOBM MODULE BITMAP MODULE BMTOA MODULE CAT MODULE CD MODULE CHMOD MODULE FEXIST MODULE LISTRES MODULE LN MODULE LS MODULE LSTAT MODULE MKDIR MODULE MOUNT MODULE MV MODULE NFSLOGIN MODULE OCLOCK MODULE PORTMAP MODULE PWD MODULE READLINK MODULE REXEC MODULE RM MODULE RMDIR MODULE RPCINFO MODULE SHOWMNT MODULE STAT MODULE TOUCH MODULE UMASK MODULE UMOUNT MODULE VIEWRES MODULE XAUTH MODULE XCALC MODULE XCLIPBRD MODULE XCLOCK MODULE XCUTSEL MODULE XDPYINFO MODULE XFD MODULE XFONTSEL MODULE XHV MODULE XKILL MODULE XLOGO MODULE XLSATOMS MODULE XLSCLNTS MODULE XLSFONTS MODULE XMAG MODULE XMODMAP MODULE XMXREF MODULE XPROP MODULE XRDB MODULE XREFRESH MODULE XSET MODULE XSETROOT MODULE XSTDCMAP MODULE XWD MODULE XWININFO MODULE XWUD MODULE XXEDIT MODULE PCNFSDV2 TAR SASCUIDD TAR XCMS TXT --------------------------------------- ============================================================================================================= Appendix J: Reference Publications For more complete information about VM/CMS and other topics related to the installation and maintenance of these products, refer to the following IBM publications or their equivalents for your system. For 370 mode systems see: VM/SP: CMS Command, SC19-6209 VM/SP: CP Command Reference, SC19-6211 VM/SP: Operator's Guide, SC19-6202 VM/SP: Installation Guide, SC24-5237 VM/SP: Planning Guide and Reference, SC19-6201 For ESA mode systems (VM/SP 5.5 or later and VM/ESA) see: VM/ESA: CMS User's Guide, SC24-5460 VM/ESA: CMS Command Reference, SC24-5461 VM/ESA: CP Command and Utility Reference, SC24-5519 VM/ESA: Installation Guide, SC24-5526 For more information on SAS/C, refer to the following publications: SAS/C(r) Compiler and Library User's Guide, Fourth Edition, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 1, Release 6.00 SAS/C(r) Library Reference, Third Edition, Volume 2, Release 6.00 SAS/C(r) Compiler Full-Screen Support Library User's Guide, Second Edition SAS/C(r) Debugger User's Guide and Reference, Third Edition SAS/C(r) Compiler Interlanguage Communication Feature User's Guide SAS/C(r) C++ Development System User's Guide, First Edition SAS/C(r) CICS User's Guide, Second Edition, Second Edition, Release 6.00 SAS/C(r) Compiler and Library Quick Reference Guide, First Edition, & Release 6.00 SAS(r) Technical Report C-113 SAS/C(r) Connectivity Support Library, Release 1.00 SAS(r) Technical Report C-114 A Guide for the SAS/C(r) Compiler Consultant SAS(r) Technical Report C-115 The Generalized Operating System Interface for the SAS/C(r) Compiler Run-Time System, Release 5.50 SAS/C(r) Cross-Platform Compiler and C++ Development System: Usage and Reference, First Edition, Release 6.00 SAS/C(r) Software: Changes and Enhancements to the SAS/C(r) Debugger & and C++ Development System, Release 6.00 SAS/C(r) Technical Report: SAS/C(r) Compiler and Library Diagnostic & Messages, Release 6.00