* /* START OF SPECIFICATIONS **** 00060000 * 00070000 *01* MODULE-NAME = USSEND 00080000 * 00090000 *01* DESCRIPTIVE-NAME = USS END OF TABLE DEFINITION MACRO 00092000 * 00094000 *01* COPYRIGHT = NONE 00096000 * 00098000 *01* STATUS = RELEASE 2 00098400 * 00098800 *01* FUNCTION = THIS MACRO HAS TWO FUNCTIONS, A USER CALL WITH NO 00099200 * PARAMETERS WHICH SIGNIFIES THE END OF THE USS TABLE, AND AN 00099300 * INTERNAL CALL FROM USSTAB, USSPARM, USSCMD, USSMSG WHICH USES 00099400 * COMMON SUBROUTINES WITHIN USSEND FOR PARAMETER COUNTING, PADDING 00099500 * FOR HIGH ORDER ZEROES, AND A CHARACTER STRING GENERATOR. THE 00099600 * FIRST CALL WILL CAUSE ALL THE INTERNAL COUNTERS TO BE CLOSED OUT, 00102400 * AND AN END OF CHAIN PTR GENERATED FOR EACH BLOCK OR TABLE 00104400 * CREATED. THE ENTIRE USS TABLE IS ALIGNED TO END ON A FULL WORD 00104800 * BOUNDARY. 00105200 * 00108200 *02* CHARACTER-CODE-DEPENDENCIES = NONE 00111000 * 00113800 *02* DEPENDENCIES= NONE 00116600 * 00126600 *02* RESTRICTIONS = NONE 00128600 * 00130600 *02* REGISTER-CONVENTIONS = NONE 00132600 * 00133000 *02* PATCH-LABEL = NONE 00133100 * 00133200 *01* MODULE-TYPE = MACRO 00138800 * 00140800 *02* PROCESSOR = ASSEM-370R 00142800 * 00143200 *02* MACRO-SIZE = 57 STATEMENTS 00143600 * 00144000 *02* ATTRIBUTES = LIST-EXEC 00144100 * 00144200 *01* ENTRY-POINT = NA 00144300 * 00158200 *01* EXIT-NORMAL = NA 00168200 * 00170200 *01* EXIT-ERROR = NA 00170600 * 00171000 *01* EXTERNAL-REFERENCES = NONE 00171400 * 00171800 *01* TABLES = UDT (USS DEFINITION TABLE), VPB (COMMAND PROCESSING 00171900 * BLOCK), PPB (PARAMETER PROCESSING BLOCK), MPB (MESSAGE PROCESSING 00172000 * BLOCK) 00172800 * 00175100 *01* INNER-MACROS = USSEND 00175900 * 00176700 *01* SYSTEM-MACROS = NONE 00178700 * 00180700 *01* CHANGE-ACTIVITY = AS-FOLLOWS 00181100 * NEW MACRO - FIRST RELEASE 32 DOS/VS 00181200 * 04 OS/VS1 00181300 * 03 OS/VS2 00181500 * APAR OZ26263 ADDITIONAL VALIDITY CHECKS @ZA26263 00183500 **** END OF SPECIFICATIONS ***/ 00186000 MACRO 00188100 &LABEL USSEND &INC=,&PAD=,&GEN=,&NAME=,&OMIT=0 00190800 GBLA &C USSCMD MACRO COUNTER 00195400 GBLA &P USSPARM MACRO COUNTER 00200000 GBLA &M USSMSG MACRO COUNTER 00250000 GBLC &T MISC OUTPUT VARIABLE 00300000 GBLC &Q MISC OUTPUT VARIABLE 00350000 GBLC &N STATEMENT LABEL PREFIX 00400000 GBLB &Z SWITCH FOR USSTAB SPECIFIED 00420000 LCLC &F INTERNAL WORK VARIABLE 00450000 AIF (&Z EQ 1).SQ005 00460000 SPACE 1 00470000 MNOTE 4,'USSTAB MACRO NOT SPECIFIED' 00480000 .SQ005 ANOP 00490000 AIF ('&INC' EQ 'C').SQ030 00500000 AIF ('&INC' EQ 'P').SQ040 00550000 AIF ('&INC' EQ 'M').SQ050 00600000 AIF ('&PAD' NE '').SQ060 00650000 SPACE 1 00700000 AIF ('&NAME' EQ '').SQ070 00750000 AIF ('&GEN' NE '').SQ000 00800000 &LABEL EQU &OMIT HANDLE OMITTED PARAMETER 00850000 MEXIT 00900000 .SQ000 ANOP 00950000 &LABEL DC AL1(&NAME-*-1) LENGTH OF CHAR STRING 01000000 AIF ('&GEN'(1,1) EQ '''').SQ010 01050000 DC C'&GEN' CHARACTER STRING 01100000 AGO .SQ020 01150000 .SQ010 DC C&GEN CHARACTER STRING 01200000 .SQ020 ANOP 01250000 &NAME EQU * TO CALC CHAR STRING LENGTH 01300000 MEXIT 01350000 .SQ030 USSEND PAD=&C PAD USSCMD MACRO COUNTER 01400000 &T SETC '&Q' SET TEMP OUTPUT VARIABLE 01450000 &C SETA &C+1 INCREMENT USSCMD COUNTER 01500000 USSEND PAD=&C PAD USSCMD MACRO COUNTER 01550000 MEXIT 01600000 .SQ040 USSEND PAD=&P PAD USSPARM MACRO COUNTER 01650000 &T SETC '&Q' SET TEMP OUTPUT VARIABLE 01700000 &P SETA &P+1 INCREMENT USSPARM COUNTER 01750000 USSEND PAD=&P PAD USSPARM MACRO COUNTER 01800000 MEXIT 01850000 .SQ050 USSEND PAD=&M PAD USSMSG MACRO COUNTER 01900000 &T SETC '&Q' SET TEMP OUTPUT VARIABLE 01950000 &M SETA &M+1 INCREMENT USSMSG COUNTER 02000000 USSEND PAD=&M PAD USSMSG MACRO COUNTER 02050000 MEXIT 02100000 .SQ060 ANOP 02150000 &F SETC '0000000' 02200000 &Q SETC '&F'(1,8-K'&N-K'&PAD)'&PAD' 02250000 &Q SETC '&Q'(2,K'&Q-1) 02300000 MEXIT 02350000 .SQ070 USSEND PAD=&C PAD USSCMD MACRO COUNTER 02400000 &N.C&Q EQU 0 END USSCMD BLOCK QUEUE 02450000 USSEND PAD=&P PAD USSPARM MACRO COUNTER 02500000 &N.P&Q EQU 0 END USSPARM BLOCK QUEUE 02550000 USSEND PAD=&M PAD USSMSG MACRO COUNTER 02600000 &N.M&Q EQU 0 END USSMSG BLOCK QUEUE 02650000 SPACE 1 02700000 &LABEL DC 0F'0' ALIGN ON FULLWORD BOUNDARY 02750000 SPACE 1 02800000 MEND 02850000