&PA      PROC  &P,4                                                     ATT00010
ATTACH   NAME  0                                                        ATT00020
.*       ATTACH ECB-ADDR,ENTRY-POINT,ERROR-ADDR,PRIORITY                ATT00030
.*                                                                      ATT00040
.*       SUMMARY OF CODE GENERATED                                      ATT00050
.*       NOTE: LABELS ARE NOT GENERATED BY THE MACRO. THE DISPLACEMENTS ATT00060
.*             TO THE LABELS ARE CALCULATED AND GENERATED BY THE MACRO. ATT00070
.*                                                                      ATT00080
.*       NUMBER OF BYTES GENERATED IS BETWEEN 10 AND 36.                ATT00090
.*                                                                      ATT00100
.*       P1 AND P2 ARE REQUIRED PARAMETERS. P3 AND P4 ARE OPTIONAL.     ATT00110
.*       P1 MAY BE AN ADDRESS,OR REGISTER 1 (EXPRESSED AS (1) OR 1).    ATT00120
.*       P2 MAY BE AN ADDRESS,OR REGISTER 0 (EXPRESSED AS (0) OR 0).    ATT00130
.*       P3 MAY BE AN ADDRESS,OR REGISTER N  EXPRESSED AS (N)           ATT00140
.*       P4 MUST BE A POSITIVE NUMBER R EXPRESSED WITHOUT PARENETHESES  ATT00150
.*                                                                      ATT00160
.*       &AA IS DEFINED AS &P(1) NOT EQUAL TO ONE.                      ATT00170
.*       &AA=0 IS DEFINED AS &P(1)=1.                                   ATT00180
.*       &BB IS DEFINED AS &P(2) NOT EQUAL TO ZERO.                     ATT00190
.*       &BB=0 IS DEFINED AS &P(2)=0.                                   ATT00200
.*       &CC IS DEFINED AS &P(3)> 0.                                    ATT00210
.*       &CC=0 IS DEFINED AS &P(3)=0  OR  &P(3) IS OMITTED.             ATT00220
.*                                                                      ATT00230
.*       CODE GENERATED                 CONDITIONS                      ATT00240
.*       CNOP  0,4                      &AA  OR  &BB                    ATT00250
.*       L     1,ACON1                  &AA                             ATT00260
.*       L     0,ACON2                  &BB                             ATT00270
.*       SLL   0,8                      &BB=0                           ATT00280
.*       IC    0,YCON1                  &BB=0  AND  &CC                 ATT00290
.*       B     HERE                     &AA OR &BB OR (&BB=0 AND &CC)   ATT00300
.* ACON1 DC    AL4(&P1)                 &AA                             ATT00310
.* ACON2 DC    AL3(&P2)                 &BB                             ATT00320
.*             AL1(&P4)                 &BB                             ATT00330
.* YCON1 DC    AL1(&P4)                 &BB=0  AND  &CC                 ATT00340
.*             AL1(0)                   &BB=0  AND  &CC                 ATT00350
.* HERE  EQU   *                                                        ATT00360
.*       SVC   19                                                       ATT00370
.*       LTR   0,0                                                      ATT00380
.*       .........                                                      ATT00390
.*       BMR   &P3                                                      ATT00400
.*       .........                                                      ATT00410
.*  OR   BM    &P3                                                      ATT00420
.*       .........                                                      ATT00430
.*  OR   BNM   *+6                                                      ATT00440
.*       SVC   28                                                       ATT00450
.*       .........                                                      ATT00460
.*                                                                      ATT00470
.*                                                                      ATT00480
         LCL   &X,&AA,&BB,&CC                                           ATT00490
         DO    '&P(1)'=''                                               ATT00500
         PNOTE *,'PARAMETER 1 MISSING'                                  ATT00510
         ENDO                                                           ATT00520
         DO    '&P(2)'=''                                               ATT00530
         PNOTE *,'PARAMETER 2 MISSING'                                  ATT00540
         ENDO                                                           ATT00550
&AA      SET   ('&P(1)'='(1)')++('&P(1)'='1')=0                         ATT00560
&BB      SET   ('&P(2)'='(0)')++('&P(2)'='0')=0                         ATT00570
&CC      SET   ('&P(4)'='')++('&P(4)'='0')=0                            ATT00580
.*                                                                      ATT00590
&X       SET   '&PA.        '(1,8)                                      ATT00600
&X           DS    0H                                                   ATT00610
         DO    &AA++&BB                                                 ATT00620
                   CNOP  0,4                                            ATT00630
         ENDO                                                           ATT00640
&X       SET   12+4*((&BB=0)**&CC)                                      ATT00650
         DO    &AA                                                      ATT00660
                   L     1,*+&X                                         ATT00670
         ENDO                                                           ATT00680
&X       SET   8+(4*&AA)                                                ATT00690
         DO    &BB                                                      ATT00700
                   L     0,*+&X                                         ATT00710
         ENDO                                                           ATT00720
         DO    &BB=0                                                    ATT00730
                   SLL   0,8                                            ATT00740
         ENDO                                                           ATT00750
&X       SET   8+(4*&AA)                                                ATT00760
         DO    (&BB=0)**&CC                                             ATT00770
                   IC    0,*+&X                                         ATT00780
         ENDO                                                           ATT00790
&X       SET   4+(4*&AA)+4*&BB+2*((&BB=0)**&CC)                         ATT00800
         DO    &AA++&BB++((&BB=0)**&CC)                                 ATT00810
                   B     *+&X                                           ATT00820
         ENDO                                                           ATT00830
         DO    &AA                                                      ATT00840
                   DC    AL4(&P(1))                                     ATT00850
         ENDO                                                           ATT00860
         DO    &BB                                                      ATT00870
                   DC    AL3(&P(2))                                     ATT00880
         DO    &CC                                                      ATT00890
                   DC    AL1(&P(4))                                     ATT00900
         ENDO                                                           ATT00910
         DO    &CC=0                                                    ATT00920
                   DC    AL1(0)                                         ATT00930
         ENDO                                                           ATT00940
         ENDO                                                           ATT00950
         DO    (&BB=0)**&CC                                             ATT00960
                   DC    AL1(&P(4))                                     ATT00970
                   DC    AL1(0)                                         ATT00980
         ENDO                                                           ATT00990
                   SVC   19             ATTACH                          ATT01000
                   LTR   0,0            R0<0 IF ERROR OCCURRED          ATT01010
         DO    '&P(3)'=''                                               ATT01020
                   BNM   *+6                                            ATT01030
                   SVC   28             CANCEL IF ERROR                 ATT01040
         GOTO  .EXIT                                                    ATT01050
         ENDO                                                           ATT01060
         DO    '&P(3)'(1,1)='('                                         ATT01070
                   BMR   &P(3)                                          ATT01080
         GOTO  .EXIT                                                    ATT01090
         ENDO                                                           ATT01100
                   BM    &P(3)                                          ATT01110
.EXIT    LABEL                                                          ATT01120
         END                                                            ATT01130
