/*--------------------------------------------------------------------*/ /* This EXEC is used to install the UWUCOBOL LOADLIB file onto the */ /* A disk. Once this LOADLIB is created, you can copy it to the */ /* SAS Installation disk and add the LOADLIB name into the list of */ /* paths in the CONFIG SAS file. */ /* */ /* The following files should be uploaded from the diskette: */ /* */ /* diskette file name local file name */ /* INSTALL.CMS INSTALL EXEC A (this file) */ /* MODULE.CMS MODULE DUMP A */ /* TLKTLOAD.SAS TLKTLOAD SAS */ /* MODULE.DOC MODULE DOC (optional) */ /* */ /* The MODULE.DOC file contains documentation. It is not necessary */ /* for the installation. */ /* */ /* This EXEC creates a two-line file, TEMP SAS A3, and runs it. The */ /* file contains instructions to the TLKTLOAD SAS program to convert */ /* the MODULE DUMP file into a LOADLIB file. This EXEC also creates */ /* a TEXT file for a small test MODULE file called INT31001, again */ /* using a SAS program with hex data; no assembler is necessary. */ /* This EXEC then LOADs and GENMODs the MODULE file. This EXEC */ /* creates a sample SAS program that uses all the members of the */ /* MODULE LOADLIB plus the INT31001 MODULE to ensure everything */ /* installed correctly. Examine TEMP3 SASLOG to verify this. */ /*--------------------------------------------------------------------*/ /*-----create TEMP SAS A3 as a pgm to restore UWUCOBOL LOADLIB--------*/ queue ' %INCLUDE TLKTLOAD;' queue ' %TLKTLOAD(INFILE="MODULE DUMP A",OUTFILE="MODULE LOADLIB A");' queue 'EXECIO * DISKW TEMP1 SAS A3 1 F 80 (FINIS' 'SAS TEMP1' 'ERASE TEMP1 SASLOG' 'ERASE TEMP1 LISTING' /*-----create TEMP SAS A3 as a pgm to restore INT31001 TEXT-----------*/ queue 'DATA _NULL_; FILE "INT31001 TEXT"; ' queue ' INPUT (PART1-PART4)($HEX40. /); ' queue ' PUT (PART1-PART4)($CHAR20.); ' queue ' CARDS; ' queue '02C5E2C440404040404000204040000140404040' queue '404040400400000040000000C9D5E3F3F1F0F0F1' queue '0000000040000030404040404040404040404040' queue '404040404040404040404040F0F0F0F0F0F0F0F1' queue '02E3E7E3400000004040002A4040000290ECD00C' queue '5821000058320000413300015032000091801000' queue '4710F0244111000447F0F00498ECD00C07FE4040' queue '404040404040404040404040F0F0F0F0F0F0F0F2' queue '02C5D5C440404040404040404040404040404040' queue '404040404040404040404040F1F5F7F4F1E2C3F1' queue 'F0F340F0F2F0F1F9F3F3F0F84040404040404040' queue '404040404040404040404040F0F0F0F0F0F0F0F3' queue '; ' queue 'EXECIO * DISKW TEMP2 SAS A3 1 F 80 (FINIS' 'SAS TEMP2' 'ERASE TEMP2 SASLOG' /*-----create INT31001 MODULE file as a test pgm for COBOLINT---------*/ 'LOAD INT31001' 'GENMOD INT31001' 'ERASE INT31001 TEXT' 'ERASE LOAD MAP' /*-----create test program to verify COBOLINT was properly restored---*/ queue '*-----try first with no attribute table-----*;' queue 'DATA _NULL_;' queue ' X="00000001"X;' queue ' CALL MODULE("INT31001",X);' queue ' Y=INPUT(X,IB4.);' queue ' PUT Y= " (SHOULD BE 2)";' queue ' RUN;' queue 'DATA _NULL_;' queue ' X="00000001"X;' queue ' CALL COBOLINT("INT31001",X);' queue ' Y=INPUT(X,IB4.);' queue ' PUT Y= " (SHOULD BE 2)";' queue ' RUN;' queue '*-----create an attribute table-----*;' queue 'FILENAME SASCBTBL "SASCBTBL DATA A1";' queue 'DATA _NULL_; FILE SASCBTBL;' queue ' INPUT; PUT _INFILE_; CARDS4;' queue 'ROUTINE INT31001 MINARG=1 MAXARG=1;' queue 'ARG 1 FORMAT=IB4.;' queue ';;;;' queue '*-----try again with an attribute table-----*;' queue 'DATA _NULL_;' queue ' X=1;' queue ' CALL MODULE ("INT31001",X);' queue ' PUT X= " (SHOULD BE 2)";' queue ' RUN;' queue 'DATA _NULL_;' queue ' X=1;' queue ' CALL COBOLINT("INT31001",X);' queue ' PUT X= " (SHOULD BE 2)";' queue ' RUN;' queue 'X "ERASE SASCBTBL DATA A1";' queue 'data _null_;' queue ' x1=put("A",$byval4.); y1=input(x1,$byval4.);' queue ' x2=put("ABCDE",$cstr6.); y2=input(x2,$cstr6.);' queue ' put x1=$hex8. " (should be 000000C1)";' queue ' put y1= y1=$hex8. " (should be A and C1404040)";' queue ' put x2=$hex12. " (should be C1C2C3C4C500)";' queue ' put y2= y2=$hex12. " (should be ABCDE and C1C2C3C4C540)";' queue ' run;' queue 'EXECIO * DISKW TEMP3 SAS A 1 F 80 (FINIS' /*-----invoke the test program; user shown review TEMP SASLOG---------*/ 'SAS TEMP3 (SASLOAD=MODULE)' exit