* INCLUDES ZTR 00624 00050002 * /* START OF SPECIFICATIONS **** 00100002 * 00150002 *01* MODULE-NAME = FUNCT 00200002 * 00250002 *01* DESCRIPTIVE-NAME = USER MACRO TO GENERATE DVT FUNCTIONS 00300002 * 00350002 *01* COPYRIGHT = XXXX-XXX COPYRIGHT IBM CORP 1973 00400002 * 00450002 *01* STATUS = RELEASE 1 00500002 * 00550002 *01* FUNCTION = USER INVOKES IN FOLLOWING MANNER 00600002 * FUNCT PROC=NAME,COND=,DIST=,DVC=,EXCEPT=,ATTACH=,CU=,LINE= 00650002 * 00700002 * PROC=NAME REQUIRED 00750002 * COND ='PATTERN' - 2 BYTE HEX CODE 00800002 * DIST=OUTMOST/INMOST - INMOST IS DEFAULT 00850002 * DVC=NAME - 4 BYTE DEVICE NAME 00900002 * EXCEPT=NAME - 4 BYTE DEVICE NAME 00950002 * ATTACH=L/R - LOCAL OR REMOTE FLAG 01000002 * CU=(SA,CLUS,CLCM,MCOMP) - STAND ALONE,CLUSTER CONTROL, 01050002 * CLUSTER COMPONENT OR 01100002 * MULTI COMPONENT FLAGS 01110002 * LINE=(S/NS,PP/MP,SS/BSC/DLC) - SWITCH/NON-SWITCHED 01150002 * POINT - POINT/MULTI-POINT 01200002 * STOP-START/BSC/DLC FLAGS 01250002 *01* NOTES = 01300002 * 01350002 * GENERAL CODE GENERATED IS AS FOLLOWS 01400002 * DC CL8'NAME' PROC NAME 01450002 * DC XL1'PATTERN' 0 UNLESS COND SPECIFIED 01500002 * DC AL3(0) RESERVED BYTES 01550002 * DC AL1(OPT) WHERE OPT IS AS FOLLOWS 01600002 * 128 = '80' UNCONDITIONAL 01650002 * 64 = '40' CONDITIONAL 01700002 * 32 = '20' EXCEPT SPECIFIED 01750002 * 16 = '10' QUALIFIED 01800002 * 8 = '08' DIST=INMOST 01850002 * 4 = '04' DIST=OUTMOST 01900002 * 2 = '02' RESERVED 01950002 * 1 = '01' RESERVED 02000002 * DC AL3(0) RESERVED BYTES 02050002 * DC CL4'NAME' 4 CHARACTER DEVICE NAME 02100002 * DC H'0' RESERVED BYTES 02150002 * DC AL1(CUATT) WHERE CUATT IS 02200002 * 128 = '80' LOCAL FLAG 02250002 * 64 = '40' REMOTE FLAG 02300002 * 32 = '20' STAND ALONE FLAG 02350002 * 16 = '10' MULTI-COMPONENT 02400002 * 8 = '08' CLUSTER CONTROL 02450002 * 4 = '04' CLUSTER COMPONENT 02500002 * 2 = '02' RESERVED 02550002 * 1 = '01' RESERVED 02600002 * DC AL1(LINET) WHERE LINET IS 02650002 * 128 = '80' NON-SWITCHED 02700002 * 64 = '40' SWITCHED 02750002 * 32 = '20' POINT-POINT 02800002 * 16 = '10' MULTIPOINT 02850002 * 8 = '08' START-STOP 02900002 * 4 = '04' BSC 02950002 * 2 = '02' DLC 03000002 * 1 = '01' RESERVED 03050002 * 03100002 * FOLLOWING IS LIST OF MNOTES USED: 03150002 * MNOTE 8,'DVT MACRO NOT ISSUED PRIOR TO FUNCT MACRO' 03200002 * MNOTE *,'COND PATTERN HAS ZERO INSERTED ON LEFT' 03250002 * MNOTE 8,'INVALID COND PATTERN SUPPLIED' 03300002 * MNOTE 8,'DVC NAME MUST BE LESS THAN 5 CHARACTERS' 03350002 * MONTE 8,'EXCEPT NAME MUST BE LESS TAHN 5 CHARACTERS' 03400002 * MNOTE 8,'ATTACH SPECIFICATION MUST BE L OR R' 03450002 * MNOTE 8,'CU SA SPECIFICATION IS INCORRECT' 03500002 * MNOTE 8,'CU CLUS SPECIFICATION IS INCORRECT' 03550002 * MNOTE 8,'CU CLCM SPECIFICATION IS INCORRECT' 03600002 * MNOTE 8,'CU MCOMP SPECIFICATION IS INCORRECT' 03610002 * MNOTE 8,'LINE S/NS SPECIFICATION IS INCORRECT' 03650002 * MNOTE 8,'LINE PP/MP SPECIFICATION IS INCORRECT' 03700002 * MNOTE 8,'LINE SS/BSC/DLC SPECIFICATION IS INCORRECT' 03750002 * MNOTE 8,'INVALID DIST PARAMETER SPECIFIED' 03800002 * MNOTE 8,'PROCESS NAME MUST BE LESS THAN 9 CHARACTERS' 03850002 * MNOTE 8,'PROCESS NAME NOT SPECIFIED' 03900002 * 03950002 *02* CHARACTER-CODE-DEPENDENCIES = NONE 04000002 * 04050002 *02* DEPENDENCIES = STRTMODE & DVT MACROS, SKELETEL DVT READ MODULE 04100002 * (ISTOCCSD) 04150002 * 04200002 *02* RESTRICTIONS = NONE 04250002 * 04300002 *02* REGISTER-CONVENTIONS = NONE 04350002 * 04400002 *02* PATCH-LABEL = NONE 04450002 * 04500002 *01* MODULE-TYPE = MACRO 04550002 * 04600002 *02* PROCESSOR = ASSEMBLER 04650002 * 04700002 *02* MACRO-SIZE = 189 STATEMENTS 04750002 * 04800002 *02* ATTRIBUTES = LIST 04850002 * 04900002 *01* ENTRY-POINT = NA 04950002 * 05000002 *01* EXIT-NORMAL = NA 05050002 * 05100002 *01* EXIT-ERROR = NA 05150002 * 05200002 *01* EXTERNAL-REFERENCES = NONE 05250002 * 05300002 *02* DATA-SETS = NONE 05350002 * 05400002 *02* DATA-AREA = NONE 05450002 * 05500002 *02* CONTROL-BLOCKS-SYSTEM = NONE 05550002 * 05600002 *02* CONTROL-BLOCKS-ATCAM = NONE 05650002 * 05700002 *01* TABLES = NONE 05750002 * 05800002 *01* INNER-MACROS = NONE 05850002 * 05900002 *01* SYSTEM-MACROS = NONE 05950002 * 06000002 *01* CHANGE-ACTIVITY = DCR'S 1K0266,K3079 06050002 * 06100002 **** END OF SPECIFICATIONS ***/ 06150002 MACRO 06200002 FUNCT &PROC=,&COND=,&DIST=INMOST,&DVC=,&EXCEPT=,&ATTACH=, *06250002 &CU=,&LINE= 06300002 GBLA &CNT FUNCTION COUNTER 06350002 GBLB &B,&C DVT AND FUNCT USED 06400002 LCLB &A ERROR FLAG BIT 06450002 LCLA &D,&E,&F,&I CODE GENERATION LOCALS 06500002 LCLA &P,&L,&M,&DD 06550002 LCLC &N 06600002 LCLC &G,&H 06650002 &N SETC ' ' 06700002 &G SETC '00' 06750002 &A SETB 1 SET ERROR FLAG OFF 06800002 AIF (&B EQ 1).A4 DVT USAGE SET 06850002 MNOTE 8,'DVT MACRO NOT ISSUED PRIOR TO FUNCT MACRO' 06900002 &A SETB 0 SET ERROR FLAG ON 06950002 .A4 AIF ('&COND' EQ '').A7 07000002 AIF (K'&COND GT 4).A5 07050002 AIF ('&COND'(1,1) NE '''').A5 07100002 &I SETA (K'&COND) 07150002 AIF ('&COND'(&I,1) NE '''').A5 07200002 &I SETA &I-2 07250002 AIF (&I EQ 2).A45 07300002 MNOTE *,'COND PATTERN HAS ZERO INSERTED ON LEFT' 07350002 .A45 ANOP 07400002 &D SETA 64 SET TYPE = COND ('40') 07450002 &G SETC '&COND'(2,&I) SET PATTERN 07500002 AGO .A7 07550002 .A5 MNOTE 8,'INVALID COND PATTERN SUPPLIED' 07600002 &A SETB 0 SET ERROR FLAG ON 07650002 AGO .A7 07700002 .A7 ANOP 07750002 .* IF NO DVC SPECIFIED SKIP TO EXCEPT CHECK 07800002 AIF ('&DVC' EQ '' ).FJR1 07850002 .* IF DEVICE NAME NOT LESS THAN 5 CHARS GIVE ERROR MSG 07900002 AIF (K'&DVC GT 4 ).ERRF1 07950002 &N SETC '&DVC' SET DEVICE TYPE 08000002 AGO .FJR2 CONTINUE WITH ATTACH CHECK 08050002 .ERRF1 MNOTE 8,'DVC NAME MUST BE LESS THAN 5 CHARACTERS' 08100002 &A SETB 0 INDICATE ERROR 08150002 AGO .FJR2 CONTINUE WITH ATTACH CHECK 08200002 .* IF NO EXCEPT SPECIFIED, SKIP TO ATTACH PARM 08250002 .FJR1 AIF ('&EXCEPT' EQ '' ).FJR2 08300002 .* IF EXCEPT NAME NOT LESS THAN 5 CHARS GIVE ERROR MSG 08350002 AIF (K'&EXCEPT GT 4 ).ERRF2 08400002 &N SETC '&EXCEPT' SET NAME OF DEVICE TYPE 08450002 &P SETA 32 SET EXCEPT FLAG 08500002 AGO .FJR2 CONTINUE WITH ATTACH PARM 08550002 .ERRF2 MNOTE 8,'EXCEPT NAME MUST BE LESS THAN 5 CHARACTERS' 08600002 &A SETB 0 08650002 .* CHECK FOR VALID ATTACH PARM. MUST BE NULL, 'L' OR 'R' 08700002 .FJR2 AIF ('&ATTACH' EQ '' ).FJR4X 08750002 AIF ('&ATTACH' NE 'R' ).FJR3 08800002 &L SETA &L+64 SET REMOTE FLAG 08850002 AGO .FJR4 CONTINUE WITHCU PARM 08900002 .FJR3 AIF ('&ATTACH' NE 'L' ).ERRF3 08950002 &L SETA &L+128 SET LOCAL FLAG 09000002 AGO .FJR4 CONTINUE WITH CU PARM 09050002 .FJR4X ANOP SET DEFAULT TO BITS ON 09100002 &L SETA &L+128+64 09150002 AGO .FJR4 09200002 .ERRF3 MNOTE 8,'ATTACH SPECIFICATION MUST BE L OR R' 09250002 &A SETB 0 SET ERROR FLAG 09300002 .* CU MUST BE (SA,CLUS,CLCM,MCOMP) OR NULL 09350002 .FJR4 AIF ('&CU' EQ '' ).FJR7X 09400002 AIF ('&CU(1)' EQ '' ).FJR5 09450002 AIF ('&CU(1)' NE 'SA' ).ERRF4A 09500002 &L SETA &L+32 09550002 AGO .FJR5 09600002 .ERRF4A MNOTE 8,'CU SA SPECIFICATION IS INCORRECT' 09650002 &A SETB 0 09700002 .FJR5 AIF ('&CU(2)' EQ '' ).FJR6 09750002 AIF ('&CU(2)' NE 'CLUS' ).ERRF4B 09800002 &L SETA &L+8 09850002 AGO .FJR6 09900002 .ERRF4B MNOTE 8,'CU CLUS SPECIFICATION IS INCORRECT' 09950002 &A SETB 0 10000002 .FJR6 AIF ('&CU(3)' EQ '' ).FJR7 10050002 AIF ('&CU(3)' NE 'CLCM' ).ERRF4C 10100002 &L SETA &L+4 10150002 AGO .FJR7 10200002 .ERRF4C MNOTE 8,'CU CLCM SPECIFICATION IS INCORRECT' 10210002 &A SETB 0 10220002 .FJR7 AIF ('&CU(4)' EQ '' ).FJR8 10230002 AIF ('&CU(4)' NE 'MCOMP' ).ERRF4D 10240002 &L SETA &L+16 10242002 AGO .FJR8 10244002 .FJR7X ANOP SET DEFAULT BITS ON 10250002 &L SETA &L+32+16+8+4 10300002 AGO .FJR8 10350002 .ERRF4D MNOTE 8,'CU MCOMP SPECIFICATION IS INCORRECT' 10400002 &A SETB 0 10450002 .* LINE PARAMETER MUST BE NULL, OR (S/NS,PP/MP,SS/BSC/DLC) 10500002 .FJR8 AIF ('&LINE' EQ '' ).FJR16X 10550002 AIF ('&LINE(1)' EQ '' ).FJR10X 10600002 AIF ('&LINE(1)' NE 'S' ).FJR9 10650002 &M SETA &M+64 SET SWITCHED LINE FLAG 10700002 AGO .FJR10 CONTINUE WITH PP/MP TEST 10750002 .FJR9 AIF ('&LINE(1)' NE 'NS' ).ERRF5 10800002 &M SETA &M+128 SET NON-SWITHED LINE FLAG 10850002 AGO .FJR10 CONTINUE WITH PP/MP TEST 10900002 .FJR10X ANOP 10950002 &M SETA &M+128+64 11000002 AGO .FJR10 11050002 .ERRF5 MNOTE 8,'LINE S/NS SPECIFICATION IS INCORRECT' 11100002 &A SETB 0 SET ERROR FLAG 11150002 .FJR10 AIF ('&LINE(2)' EQ '' ).FJR13X 11200002 AIF ('&LINE(2)' NE 'PP' ).FJR11 11250002 &M SETA &M+32 SET POINT TO POINT FLAG 11300002 AGO .FJR13 GO TO SS/BSC TEST 11350002 .FJR11 AIF ('&LINE(2)' NE 'MP' ).ERRF6 11400002 &M SETA &M+16 SET MULTIPOINT FLAG 11450002 AGO .FJR13 GO TO SS/BSC TEST 11500002 .FJR13X ANOP 11550002 &M SETA &M+32+16 11600002 AGO .FJR13 11650002 .ERRF6 MNOTE 8,'LINE PP/MP SPECIFICATION IS INCORRECT' 11700002 &A SETB 0 SET ERROR FLAG 11750002 .FJR13 AIF ('&LINE(3)' EQ '' ).FJR16Y 11800002 AIF ('&LINE(3)' NE 'SS' ).FJR14 11850002 &M SETA &M+8 SET START STOP LINE FLAG 11900002 AGO .FJR16 CONTINUE WITH TYPE TESTS 11950002 .FJR14 AIF ('&LINE(3)' NE 'BSC' ).FJR16Z 12000002 &M SETA &M+4 SET BSC LINE FLAG 12050002 AGO .FJR16 CONTINUE WITH TYPE TESTS 12060002 .FJR16Z AIF ('&LINE(3)' NE 'DLC' ).ERRF7 12070002 &M SETA &M+2 SET DLC LINE FLAG 12080002 AGO .FJR16 GO TO TYPE TESTS 12100002 .FJR16X ANOP 12150002 &M SETA &M+128+64+32+16 12200002 .FJR16Y ANOP 12250002 &M SETA &M+8+4+2 12300002 AGO .FJR16 12350002 .ERRF7 MNOTE 8,'LINE SS/BSC/DLC SPECIFICATION IS INCORRECT' 12400002 &A SETB 0 SET ERROR FLAG 12450002 .* QUALIFIED TYPE FLAG IS SET IF ANY OF FOLLOWING WAS SPECIFIED 12500002 .* DVC,EXCEPT,ATTACH,CU, OR LINE 12550002 .* UNCONDITIONAL TYPE FLAG IS SET IF NONE OF THE FOLLOWING IS SET: 12600002 .* DVC,EXCEPT,ATTACH,CU, LINE, OR COND 12650002 .* COND TYPE IS SET IF COND WAS SPECIFIED 12700002 .FJR16 AIF ('&DVC' NE '' ).FJR17 12750002 AIF ('&EXCEPT' NE '' ).FJR17 12800002 AIF ('&ATTACH' NE '' ).FJR17 12850002 AIF ('&CU' NE '' ).FJR17 12900002 AIF ('&LINE' NE '' ).FJR17 12950002 AIF ('&COND' EQ '' ).FJR18 13000002 &D SETA 64 SET CONDITIONAL TYPE FLAG 13050002 AGO .FJR19 CONTINUE WITH INMOST/OUTMOST 13100002 .FJR17 ANOP 13150002 &DD SETA 16 SET QUALIFIED TYPE FLAG 13200002 AIF ('&COND' EQ '' ).FJR19 13250002 &D SETA 64 13300002 AGO .FJR19 CONTINUE WITH INMOST/OUTMOST 13350002 .FJR18 ANOP 13400002 &D SETA 128 SET UNCONDITIONAL TYPE FLAG 13450002 .FJR19 ANOP 13500002 AIF ('&DIST' EQ 'OUTMOST').A9 13550002 AIF ('&DIST' EQ 'INMOST').A8 13600002 MNOTE 8,'INVALID DIST PARAMETER SPECIFIED' 13650002 &A SETB 0 SET ERROR FLAG ON 13700002 AGO .A10 13750002 .A8 ANOP 13800002 &E SETA 8 SET DIST = INMOST ('08') 13850002 AGO .A10 13900002 .A9 ANOP 13950002 &E SETA 4 SET DIST = OUTMOST ('04') 14000002 .A10 AIF ('&PROC' EQ '').A12 14050002 AIF (K'&PROC GT 8).A11 14100002 &H SETC '&PROC' 14150002 AGO .A13 14200002 .A11 MNOTE 8,'PROCESS NAME MUST BE LESS THAN 9 CHARACTERS' 14250002 &A SETB 0 SET ERROR FLAG ON 14300002 AGO .A13 14350002 .A12 MNOTE 8,'PROCESS NAME NOT SPECIFIED' 14400002 &A SETB 0 SET ERROR FLAG ON 14450002 .A13 AIF (&A EQ 0).A14 ERROR FLAG ON 14500002 &C SETB 1 SET FUNCT ON 14550002 &CNT SETA &CNT+1 14600002 &F SETA &D+&E+&P+&DD SET SDVPARM VALUE 14650002 DC CL8'&H' SDVNAME FIELD 14700002 DC XL1'&G' SDVOPTNS FIELD 14750002 DC XL1'0' 14760002 DC H'0' 14800002 DC H'&F' SDVID FIELD 14850002 DC XL2'00' 14900002 DC CL4'&N' SDVTTYPE FIELD 14950002 DC H'0' SDVFEAT FIELD 15000002 DC AL1(&L) SDVCUATT FIELD 15050002 DC AL1(&M) SDVLINET FIELD 15100002 DC F'0' FOR DCR 3440.1 15110002 MEXIT 15150002 .A14 ANOP 15200002 MEND 15250002