qÃ[VAX-11 Librarian V2A.00à˜ÊE8Š ‡VTDPUT˜&INTEGERKPJIGDATEJULDATELDISTr@˜VTBLINK=VTBOXAR?VTBRIGHTrGETFIX4GETWORDK8INDEXCRKr\WORKSETZYYDDDDYYMMDDraFORMATR/GETCHAREGETFILE­Ä”]E8Š?/* FUNCTION PROMPTS FOR A FIXED BINARY(31) CHECKING FOR RANGE. / A REPROMPT IS ISSUED FOR INVALID ANSWERS. */ADCL GETFIX EXTERNAL ENTRY(CHAR(*) VARYING, /* PROMPT STRING */G CHAR(*) VARYING) /* RANGE SPECIFICATION */A RETURNS(FIXED BINARY(31)); /* NUMERIC VALUE */ww­ ‘^E8Š?/* FUNCTION RETURNS BIT(1) TRUE IF PROGRAM IS RUNNING BATCH AND. FALSE IF PROGRAM IS RUNNING INTERACTIVE. */)DCL BATCH EXTERNAL ENTRY RETURNS(BIT(1));ww­èˆ^E8ŠB /* LOP (TEXT_STRING, DELIMITER_LIST, DELIMITER_FOUND) RETURNS THEE FIRST TOKEN FOUND IN TEXT_STRING, PLACES THE DELIMITING CHARACTERD IN DELIMITER_FOUND, AND MODIFIES TEXT_STRING BY LOPPING OFF BOTH# THE TOKEN AND THE DELIMITER. */H DCL LOP EXTERNAL ENTRY (CHAR(*)VARYING, CHAR(*)VARYING, CHAR(*)VARYING) RETURNS (CHAR(*)VARYING);ww­ ]Á^E8Š4 /* FUNCTION TRANSLATES A STRING TO ALL UPPERCASE */ H DCL UPPER EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww­à”`ðI8Š4 /* FUNCTION TRANSLATES A STRING TO ALL UPPERCASE */ H DCL UPPER EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww­€ ñI8ŠB /* LOP (TEXT_STRING, DELIMITER_LIST, DELIMITER_FOUND) RETURNS THEE FIRST TOKEN FOUND IN TEXT_STRING, PLACES THE DELIMITING CHARACTERD IN DELIMITER_FOUND, AND MODIFIES TEXT_STRING BY LOPPING OFF BOTH# THE TOKEN AND THE DELIMITER. */H DCL LOP EXTERNAL ENTRY (CHAR(*)VARYING, CHAR(*)VARYING, CHAR(*)VARYING) RETURNS (CHAR(*)VARYING);ww ­@ÿåqx8ŠC/* FUNCTION RETURNS CHARACTER STRING CENTERED IN A LARGER CHARACTER STRING */EDCL CENTER EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING FOR CENTERING */K FIXED BINARY(31)) /* LENGTH OF RETURNED STRING */3 RETURNS(CHAR(*) VARYING);ww­ §©‡g8Š0/* FUNCTION RETURNS REVERSED CHARACTER STRING */EDCL REVERSE EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(CHAR(*) VARYING);ww­àX@Àg8Š%INCLUDE BATCH;%INCLUDE GETFIX; %INCLUDE LOP;%INCLUDE REVERSE;%INCLUDE UPPER;ww­€3'ky8Š%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE GETFIX; %INCLUDE LOP;%INCLUDE REVERSE;%INCLUDE UPPER;ww ­€ô©1ˆ8Š9/* PROCEDURE LDIST ACCEPTS TWO STRINGS AS INPUT ARGUMENTS3 AND RETURNS LENGTH OF LONGER STRING, LEVENSHTEIN5 DISTANCE BETWEEN THE TWO STRINGS, I.E. THE MINIMAL5 NUMBER OF SUBSTITUTIONS, INSERTIONS, AND DELETIONS5 NEEDED TO CHANGE ONE STRING TO THE OTHER. IT ALSO2 RETURNS THE LENGTH OF THE LONGER STRING AND THE5 RATIO OF THE LEVENSHTEIN DISTANCE TO LENGTH OF THE LONGER STRING. */=DCL LDIST EXTERNAL ENTRY(CHAR(*) VARYING, /* FIRST STRING */>  CHAR(*) VARYING, /* SECOND STRING */H FIXED BINARY(31), /* LENGTH OF LONGER STRING */E FIXED BINARY(31), /* LEVENSHTEIN DISTANCE */I FLOAT BINARY(53));/* RATIO DISTANCE TO LENGTH */ww­`òÆ1ˆ8Š%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE GETFIX;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE REVERSE;%INCLUDE UPPER;ww ­Àí è9Š=/* FUNCTION TAKES A NUMBER BETWEEN 1 AND 36524 AND INTERPRETSL? IT AS A NUMBER OF DAYS SINCE DEC. 31, 1899. YYMMDD RETURNS U9 A FIELD OF LENGTH ZERO IF ARGUMENT IS OUT OF BOUNDS */+DCL YYMMDD EXTERNAL ENTRY(FIXED BINARY(31)), RETURNS(CHAR(*) VARYING);ww ­Â7<)9Š@/* PROCEDURE SCANS ARGUMENT FOR N-TH WORD DEFINED BY DELIMITERS.: UNLIKE SAS ADJACENT DELIMITERS ARE TREATED AS SEPARATE - DELIMITERS AND A NULL WORD IS RETURNED. */DCL SCAN@ EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING TO BE SCANNED */7 FIXED BINARY(31), /* WORD NUMBER */6 CHAR(*) VARYING) /* DELIMITERS */9 RETURNS(CHAR(*) VARYING); /* WORD RETURNED */ww ­ ëÐñç9Š=/* PROCEDURE TAKES DATE IN THE FORM YYMMYY AND RETURNS NUMBER; OF DAYS SINCE DEC. 31, 1899. JULDATE RETURNS -1 IF DATED IS INVALID. MISSING VALUES, DELIMITERS, CHARACTER FORMAT MONTHS,3 AND THE SPECIAL STRING 'TODAY' ARE SUPPORTED. */+DCL JULDATE EXTERNAL ENTRY(CHAR(*) VARYING)- RETURNS(FIXED BINARY(31));ww­ hóç9Š%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE GETFIX;%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE REVERSE;%INCLUDE SCAN;%INCLUDE UPPER;%INCLUDE YYMMDD;ww ­¦(È:ŠI /* FUNCTION DETERMINES WHETHER FIRST ARGUMENT MATCHES (OR IS UNAMBIGUOUSSH ABBREVIATION OF) ANY OF THE KEYWORDS LISTED IN THE SECOND ARGUMENT, D AND RETURNS THE MATCHING KEYWORD (OR NULL STRING IF NO MATCH) */A DCL TESTWORD EXTERNAL ENTRY (CHAR (*) VARYING, CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww ­®å´:ŠA/* FUNCTION RETURNS A CHARACTER STRING WHICH CONSISTS OF THE FULL; SET OF ASCII CODES MINUS THOSE IN THE ARGUMENT, I.E. THE CHARACTER COMPLEMENT. */CDCL CHARC EXTERNAL ENTRY(CHAR(*) VARYING) /* CHARACTER SET */@ RETURNS (CHAR(*) VARYING); /* COMPLEMENT */ww­ Qà:ŠD/* FUNCTION RETURNS BIT(1) TRUE IF ARGUMENT CAN BE INTERPRETED AS A 3 FLOATING POINT NUMBER BY A GET LIST STATEMENT */E<DCL NUMERIK EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(BIT(1));wwUDE REVERSE;%INCLUDE SCAN;%INCLUDE UPPER;%INCLUDE YYMMDD;ww­ x :Š: /* FUNCTION CHECKS WHETHER ARGUMENT CONTAINS ONLY NUMERIC4 CHARACTERS AND BLANKS. RETURNS TRUE OR FALSE */<DCL NUMERIC EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(BIT(1));ww);ww­ × ú :Š= /* FUNCTION CHECKS WHETHER ARGUMENT CONTAINS ONLY ALPHABETIC> CHARACTERS, NUMERICS AND BLANKS. RETURNS TRUE OR FALSE */?DCL ALPHAMERIC EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(BIT(1));ww­€^n†:Š%INCLUDE ALPHABETIC%INCLUDE ALPHAMERIC%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE CHARC;%INCLUDE GETFIX;%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE NUMERIC;%INCLUDE REVERSE;%INCLUDE SCAN;%INCLUDE UPPER;%INCLUDE YYMMDD;ww­@µÆì :Š= /* FUNCTION CHECKS WHETHER ARGUMENT CONTAINS ONLY ALPHABETIC4 CHARACTERS AND BLANKS. RETURNS TRUE OR FALSE */?DCL ALPHABETIC EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(BIT(1));ww­£É:Š%INCLUDE ALPHABETIC;%INCLUDE ALPHAMERIC;%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE CHARC;%INCLUDE GETFIX;%INCLUDE INTEGERK%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE NUMERIC;%INCLUDE NUMERIK%INCLUDE REVERSE;%INCLUDE SCAN;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww ­@°ìœj;Š; /* FUNCTION RETURNS CHARACTER STRING WITH TRAILING BLANKS,D IF ANY, REMOVED. IF INPUT STRING IS ALL BLANK, A NULL STRING IS RETURNED. */H DCL RTRIM EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);wwCLUDE REVERSE;%INCLUDE SCAN;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww­€EÒù:ŠD/* FUNCTION RETURNS BIT(1) TRUE IF ARGUMENT CAN BE INTERPRETED AS A 0 FIXED POINT NUMBER BY A GET LIST STATEMENT */=DCL INTEGERK EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(BIT(1));ww­àg”û:Š%INCLUDE ALPHABETIC;%INCLUDE ALPHAMERIC;%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE CHARC;%INCLUDE GETFIX;%INCLUDE INTEGERK%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE NUMERIC;%INCLUDE NUMERIK%INCLUDE REVERSE;%INCLUDE SCAN;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww ­`C˜‰j;Š: /* FUNCTION RETURNS CHARACTER STRING WITH LEADING BLANKS,D IF ANY, REMOVED. IF INPUT STRING IS ALL BLANK, A NULL STRING IS RETURNED. */H DCL LTRIM EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww­@\lŠj;Š%INCLUDE ALPHABETIC;%INCLUDE ALPHAMERIC;%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE CHARC;%INCLUDE GETFIX;%INCLUDE INTEGERK;%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE LTRIM;%INCLUDE NUMERIC;%INCLUDE NUMERIK;%INCLUDE REVERSE;%INCLUDE RTRIM;%INCLUDE SCAN; %INCLUDE SUM;%INCLUDE SUMFIX;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww­ »Èj;ŠE/* FUNCTION RETURNS SUM OF A DOUBLE PRECISION FLOATING POINT ARRAY */CGDCL SUM EXTERNAL ENTRY((*) FLOAT BINARY(53)) RETURNS(FLOAT BINARY(53));Lww%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE LTRIM;%INCLUDE NUMERIC;%INCLUDE NUMERIK;%INCLUDE REVERSE;%INCLUDE RTRIM;%INCLUDE SCAN; %INCLUDE SUM;%INCLUDE SUMFIX;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww ­À0í¯j;ŠG /* FUNCTION RETURNS CHARACTER STRING WITH LEADING AND TRAILING BLANKS,D IF ANY, REMOVED. IF INPUT STRING IS ALL BLANK, A NULL STRING IS RETURNED. */G DCL TRIM EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww­@¤ó°j;Š%INCLUDE ALPHABETIC;%INCLUDE ALPHAMERIC;%INCLUDE BATCH;%INCLUDE CENTER;%INCLUDE CHARC;%INCLUDE GETFIX;%INCLUDE INTEGERK;%INCLUDE JULDATE;%INCLUDE LDIST; %INCLUDE LOP;%INCLUDE LTRIM;%INCLUDE NUMERIC;%INCLUDE NUMERIK;%INCLUDE REVERSE;%INCLUDE RTRIM;%INCLUDE SCAN; %INCLUDE SUM;%INCLUDE SUMFIX;%INCLUDE TESTWORD;%INCLUDE UPPER;%INCLUDE YYMMDD;ww0­ é)ÍÈ=ŠA/* PROCEDURE DOES SEARCHES AND INSERTIONS DOWN A HEIGHT-BALANCED U BINARY TREE */EDCL TREE EXTERNAL ENTRY* (POINTER, /* POINTER TO TREE HEADER */A POINTER, /* POINTER TO NODE TO BE SEARCHED FOR AND STORED */I2 FIXED BIN(31), /* TYPE AND LENGTH DESCRIPTION1 +N = N CHARS (NOT VARYING), 0 = FIXED BINARY(31), -1 = FLOAT BINARY(24)/ -2 = FLOAT BINARY(53) */7 ­ d›áj;Š:/* FUNCTION RETURNS SUM OF A LONGWORD FIXED POINT ARRAY */JDCL SUMFIX EXTERNAL ENTRY((*) FIXED BINARY(31)) RETURNS(FIXED BINARY(31));ww ­à\D’^?ŠB/* FUNCTION PROMPTS FOR A STRING OF CHARACTERS VERIFYING THAT ALL < CHARACTERS ENTERED ARE CONTAINED IN THE THIRD ARGUMENT IF$ THESE CHARACTERS ARE NON-NULL. */@DCL GETCHAR EXTERNAL ENTRY(CHAR(*) VARYING, /* PROMPT STRING */I FIXED BINARY(31), /* NUMBER CHARS REQUESTED */;@ CHAR(*) VARYING) /* VERIFY STRING */, RETURNS(CHAR(*) VARYING);ww 1 FIXED BIN(31), /* OFFSET OF KEY FROM NODE START */J POINTER); /* THIS POINTER IS SET EQUAL TO THE SECOND ARGUMENT IFE THE NODE IS INSERTED, OTHERWISE IT POINTS THE M ADDRESS WHERE A NODE WITH A DUPLICATE KEY WAS FOUND */>/* SUPPORT ROUTINE IN MACRO FOR TREE SEARCH AND INSERT ROUTINE@ TREECMPR COMPARES KEYS FOR BALANCED TREE STORAGE ALGORITHM */DCL TREECMPR EXTERNAL ENTRY4 (POINTER, /* POINTER TO FIRST NODE */5 POINTER, /* POINTER TO SECOND NODE */> FIXED BIN(31), /* TYPE AND LENGTH CODE AS IN TREE */< FIXED BIN(31), /* KEY OFFSET FROM START OF NODE */0 FIXED BIN(31)); /* RESULT OF COMPARISON- FIRST>SECOND = +1- FIRST=SECOND = 00 FIRST/* PROCEDURE PROMPTS FOR A FILE NAME. FILE MUST ALREADY EXIST> OR A REPROMPT IS ISSUED. FULL NAME OF FILE IS RETURNED ALA% PLI FILE DISPLAY EXPANDED_TITLE */CDCL GETFILE EXTERNAL ENTRY(CHAR(*) VARYING) /* PROMPT STRING */D RETURNS (CHAR(*) VARYING); /* FULL FILE NAME */ww­àÜÜÇ|FŠA/* PROCEDURE FORCES PROGRAM TO HIBERNATE FOR A NUMBER OF SECONDS.= SECONDS ARGUMENT MUST BE BETWEEN 0 AND 86400 (ONE DAY). */8DCL WAIT EXTERNAL ENTRY(FIXED BINARY(31)); /* SECONDS */ww­à[RLŠ>/* SUBROUTINE SETS THE LINESIZE OF A VT100-COMPATIBLE TERMINAL TO 132 CHARACTERS */DCL VT132 EXTERNAL ENTRY;ww­grLŠ>/* SUBROUTINE SETS THE LINESIZE OF A VT100-COMPATIBLE TERMINAL TO 80 CHARACTERS */DCL VT80 EXTERNAL ENTRY;ww­ ²PŠB/* PROCEDURE REVERSES THE DATA COMPRESSION EFFECTS OF THE COMPRESSE ROUTINE BY EXPANDING MULTIPLE OCCURENCES OF THE SECOND ARGUMENT */3DCL EXPAND EXTERNAL ENTRY(CHAR(*) VARYING,CHAR(1));ww­ 6/PŠA/* PROCEDURE COMPRESSES THE FIRST ARGUMENT BY CONVERTING MULTIPLED OCCURENCES OF THE SECOND ARGUMENT TO A SINGLE OCCURRENCE FOLLOWED BY A COUNT */5DCL COMPRESS EXTERNAL ENTRY(CHAR(*) VARYING,CHAR(1));ww­ Ô6Û¥PŠ8/* FUNCTION DOES SOUNDEX ENCODING OF CHARACTER STRING */=DCL SOUNDEX EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(CHAR(4));ww­à¼qæÊPŠD/* FUNCTION RETURNS DATE IN WORDS CONVERTED FROM JULDATE ARGUMENT */GDCL WORDDATE EXTERNAL ENTRY(FIXED BINARY(31)) RETURNS(CHAR(*) VARYING);ww ­@,{?ÚPŠ@/* FUNCTION CHECKS FOR DUPLICATES DURING RUN OF PROGRAM, RETURNS< LOGICAL VALUE TO INDICATE WHETHER KEY HAS BEEN PASSED IN  PREVIOUS CALLS */=DCL DUPLICATE EXTERNAL ENTRY(CHAR(*) VARYING, /* KEY VALUE */C POINTER) /* POINTER TO LIST */B RETURNS(BIT(1)); /* TRUE IF DUPLICATEF FALSE IF NEW VALUE */wwM­€øµ>ZŠB/* PROCEDURE PRINTS TARGET LABELS FOR ANY RECTANGULAR LABEL STOCK< THE FILE "LABELS" MUST BE DECLARED "OUTPUT PRINT" IN THE  CALLING PROCEDURE */DCL TARGET EXTERNAL  ENTRY(FIXED BIN(31),-/* NUMBER OF LABELS ACROSS THE LABEL STOCK */ FIXED BIN(31),7/* NUMBER OF LABELS DOWN ONE PAGE OF THE LABEL STOCK */ FIXED BIN(31),F/* MAXIMUM NUMBER OF CHARACTERS TO BE PRINTED ACROSS A SINGLE LABEL */ FIXED BIN(31),C/* NUMBER OF SPACES TO BE LEFT BLANK BETWEEN LABELS HORIZONTALLY */ FIXED BIN(31),'/* MAXIMUM NUMBER OF LINES PER LABEL */ FIXED BIN(31),=/* NUMBER OF LINES TO BE SKIPPED BETWEEN LABELS VERTICALLY */ FIXED BIN(31));wwO­À‡IZŠB/* PROCEDURE PRINTS TARGET LABELS FOR ANY RECTANGULAR LABEL STOCK< THE FILE "LABELS" MUST BE DECLARED "OUTPUT PRINT" IN THE  CALLING PROCEDURE */DCL TARGET EXTERNAL  ENTRY(FIXED BIN(31),-/* NUMBER OF LABELS ACROSS THE LABEL STOCK */ FIXED BIN(31),7/* NUMBER OF LABELS DOWN ONE PAGE OF THE LABEL STOCK */ FIXED BIN(31),F/* MAXIMUM NUMBER OF CHARACTERS TO BE PRINTED ACROSS A SINGLE LABEL */ FIXED BIN(31),C/* NUMBER OF SPACES TO BE LEFT BLANK BETWEEN LABELS HORIZONTALLY */ FIXED BIN(31),'/* MAXIMUM NUMBER OF LINES PER LABEL */ FIXED BIN(31));=/* NUMBER OF LINES TO BE SKIPPED BETWEEN LABELS VERTICALLY */wwQ­ F¸^Š-/* JIG compares two input strings and returns, the value 1.0 if they are identical or if/ they would be identical but for the reversal. of a pair of characters or the insertion or& deletion of one duplicate character1 thus JIG('111234444','111324444') returns 1.0,( and so does JIG('PHILLIPS','PHILIPS'). JIG('MCDONALD','MACDONALD') returns 0.888888 a JIG result of 1.0, or greater than some arbitrarily7 chosen threshold value (e.g., .83), might be used to8 determine "matches" in comparing data known not to be? error free */3 DCL JIG EXTERNAL ENTRY(CHAR(*) VAR, CHAR(*) VAR)% RETURNS(FLOAT BINARY(53));ww ­êydŠA/* FUNCTION REMOVES ALL CHARACTERS WHICH ARE NOT CONTAINED IN THE- SECOND ARGUMENT FROM THE FIRST ARGUMENT */FDCL FILTER EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING TO BE FILTERED */E CHAR(*) VARYING) /* ALLOWABLE CHARACTERS */@ RETURNS(CHAR(*) VARYING);/* FILTERED STRING */ww­9•‡dŠ?/* PROCEDURE MULTIPLIES MATRICES PASSED AS THE SECOND AND THIRD; ARGUMENTS RETURNING THE PRODUCT AS THE FIRST ARGUMENT. 8 EACH ENTRY OF ARGUMENT ONE IS THE DOT PRODUCT OF THE @ CORRESPONDING ROW OF ARGUMENT TWO BY THE CORRESPONDING COLUMN@ OF ARGUMENT THREE. APPROPRIATE HIGH AND LOW DIMENSIONS MUST , BE COMPATIBLE OR EXECUTION IS STOPPED. */.DCL MATMULT EXTERNAL ENTRY((*,*),(*,*),(*,*));wwU­À$¹‰dŠ?/* PROCEDURE MULTIPLIES MATRICES PASSED AS THE SECOND AND THIRD; ARGUMENTS RETURNING THE PRODUCT AS THE FIRST ARGUMENT. 8 EACH ENTRY OF ARGUMENT ONE IS THE DOT PRODUCT OF THE @ CORRESPONDING ROW OF ARGUMENT TWO BY THE CORRESPONDING COLUMN@ OF ARGUMENT THREE. APPROPRIATE HIGH AND LOW DIMENSIONS MUST , BE COMPATIBLE OR EXECUTION IS STOPPED. */>DCL MATMULT EXTERNAL ENTRY((*,*) FLOAT BINARY(53), /* A X B */> (*,*) FLOAT BINARY(53), /* A */> (*,*) FLOAT BINARY(53));/* B */ww W­ ÓÅ<‹dŠ?/* PROCEDURE MULTIPLIES MATRICES PASSED AS THE SECOND AND THIRD; ARGUMENTS RETURNING THE PRODUCT AS THE FIRST ARGUMENT. 8 EACH ENTRY OF ARGUMENT ONE IS THE DOT PRODUCT OF THE @ CORRESPONDING ROW OF ARGUMENT TWO BY THE CORRESPONDING COLUMN@ OF ARGUMENT THREE. APPROPRIATE HIGH AND LOW DIMENSIONS MUST , BE COMPATIBLE OR EXECUTION IS STOPPED. */=DCL MATRXC EXTERNAL ENTRY((*,*) FLOAT BINARY(53), /* A X B */= (*,*) FLOAT BINARY(53), /* A */= (*,*) FLOAT BINARY(53));/* B */ww ­}«dŠ?/* PROCEDURE MULTIPLIES MATRICES PASSED AS THE SECOND AND THIRD; ARGUMENTS RETURNING THE PRODUCT AS THE FIRST ARGUMENT. : MULTIPLICATION IS ELEMENT BY ELEMENT. APPROPRIATE HIGHD AND LOW DIMENSIONS MUST BE COMPATIBLE OR EXECUTION IS STOPPED. */?DCL MATEXE EXTERNAL ENTRY((*,*) FLOAT BINARY(53), /* A DOT B */= (*,*) FLOAT BINARY(53), /* A */= (*,*) FLOAT BINARY(53));/* B */ww­À~£3äfŠ4 /* FUNCTION TRANSLATES A STRING TO ALL LOWERCASE */ H DCL LOWER EXTERNAL ENTRY (CHAR (*) VARYING) RETURNS (CHAR (*) VARYING);ww­7ä…ÈjŠI/* FUNCTION RETURNS DATE IN FORM YYDDD CONVERTED FROM JULDATE ARGUMENT */DDCL YYDDD EXTERNAL ENTRY(FIXED BINARY(31)) RETURNS(CHAR(*) VARYING);ww­ÀÝæ~œkŠ>/* FUNCTION DOES A WILDCARD SEARCH OF FILES IN A DIRECTORY. */EDCL WILDCARD EXTERNAL ENTRY(CHAR(*) VARYING) RETURNS(CHAR(*)VARYING);ww ­À%V‰oŠB/* PROCEDURE ATTEMPTS TO AJUST WORKING SET SIZE TO NUMBER OF PAGES? SET IN ARGUMENT. CURRENT QUOTAS OR SYSTEM MINIMUMS/MAXIMUMS CANNOT BE BYPASSED. */-DCL WORKSET EXTERNAL ENTRY(FIXED BINARY(31));ww­¦ÈØ¡rŠ9/* PROCEDURE INVOKES A DYNAMICALLY CALLABLE SUBROUTINE */)DCL VXLNKCL ENTRY(ANY) OPTIONS(VARIABLE);ww­N*Ù¡rŠ7/* PROCEDURE LOADS A DYNAMICALLY CALLABLE SUBROUTINE */<DCL VXLOADR ENTRY(CHAR(*) VARYING, /* EXTERNAL IMAGE NAME */6 PTR); /* ENTRY ADDRESS */ww­À!| ÄuŠE/* PROCEDURE CHAINS TO A NEW PROGRAM. NO ARGUMENTS MAY BE PASSED. */*DCL CHAIN EXTERNAL ENTRY(CHAR(*) VARYING);ww­ ‚¿|Š?/* ROUTINE PRINTS LONG STRING WITH RULER FORMATTED IN CHUNKS OF A FIXED WIDTH */9DCL FORMAT EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING */9 FIXED BINARY(31)); /* WIDTH */ww­€ÃJê|Š?/* ROUTINE PRINTS LONG STRING WITH RULER FORMATTED IN CHUNKS OF A FIXED WIDTH */9DCL FORMAT EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING */9 FIXED BINARY(31), /* WIDTH */B FILE VARIABLE); /* PRINT FILE NAME */ww ­€H Ó|Š?/* ROUTINE PRINTS LONG STRING WITH RULER FORMATTED IN CHUNKS OF A FIXED WIDTH */9DCL FORMAT EXTERNAL ENTRY(CHAR(*) VARYING, /* STRING */9 FIXED BINARY(31), /* WIDTH */9 FILE); /* PRINT FILE NAME */ww­@“ƒ ƒŠD/* PROCEDURE TO CLOSE A DATA SECTION (FLUSH MODIFIED PAGES & RELEASE VIRTUAL ADDRESS SPACE) */ DCL DSCLOSE ENTRY(PTR);ww­%¥ ƒŠH/* PROCEDURE 'OPENS' A PRIVATE DATA SECTION, CREATING A NEW FILE IF NONE EXISTS ALREADY */G DCL DSOPENON ENTRY(PTR, FIXED BIN(31), CHAR(*) VAR, FIXED BIN(31));ww­àdÈ ƒŠE/* PROCEDURE TAKES A CHECKPOINT (WRITES MODIFIED PAGE FAULT CLUSTERS)7 OF A DATA SECTION, AND WAITS FOR I/O TO COMPLETE */+ DCL DSCHKPTW ENTRY(PTR, FIXED BIN(31));ww­@×ïߊŠB/* PROCEDURE 'OPENS' A PRIVATE DATA SECTION FOR READ-ONLY ACCESS*/F DCL DSOPENRO ENTRY(PTR, FIXED BIN(31), CHAR(*) VAR, FIXED BIN(31))( RETURNS(FIXED BIN(31));ww¾dDSOPENROEgžDSREWINDEK DUPLICATEHEXPANDRRFILTERR­@žTÒ‡Š7/* PROCEDURE 'OPENS' A READONLY PRIVATE DATA SECTION */D DCL DSMAP ENTRY(PTR, FIXED BIN(31), CHAR(*) VAR, FIXED BIN(31));ww­@襎ŠK/* Procedure to 'get' a record/line from a file treated as a data section*/)DCL DSGET ENTRY(PTR, PTR, FIXED BIN(31));ww­àØ+¥ŽŠ</* PROCEDURE TO 'REWIND' A FILE TREATED AS A DATA SECTION */DCL DSREWIND ENTRY(PTR);ww­ ‡