         MACRO                                                          00050000
&N       BLSCAMSL &TEXT,&END=YES                                        00100000
.** START OF SPECIFICATIONS ******************************************* 00150000
.*                                                                      00200000
.*  MACRO NAME= BLSCAMSL                                                00250000
.*                                                                      00300000
.*  DESCRIPTIVE NAME= IPCS DAS ALLOCATION MODEL AMS SYSIN TEXT STREAM   00350057
.*                    GENERATOR                                         00400000
.*                                                                      00450000
.*  COPYRIGHT= NONE                                                     00500000
.*                                                                      00550000
.*  STATUS= SU57 RELEASE 1, LEVEL 0                                     00600057
.*                                                                      00650000
.*  FUNCTION=                                                           00700000
.*             PREPARE AN ACCESS METHOD SERVICES SYSIN TEXT STREAM IN   00750000
.*             RECFM=V FORMAT TO BE USED BY THE BLSCAAMS MODULE. THE    00800000
.*             GENERATED TEXT STREAM WILL RESIDE IN THE BLSCAMOD MODULE 00850000
.*                                                                      00900000
.*  NOTES= NONE                                                         00950057
.*                                                                      01000000
.*  MODULE TYPE= DATA AREA GENERATION MACRO                             01050057
.*                                                                      01100000
.*     PROCESSOR= ASSEMBLER F                                           01150057
.*                                                                      01200000
.*     ATTRIBUTES= REENTRABLE (READ ONLY DATA)                          01250057
.*                                                                      01300000
.*  ENTRY POINT= NONE                                                   01350057
.*                                                                      01400000
.*  INVOCATION SYNTAX=                                                  01450057
.*                                                                      01500000
.*    LOCSYMB BLSCAMSL POSITIONALPARM |,END=NO|                         01550057
.*                                                                      01600000
.*            LOCSYMB                                                   01650057
.*              4 TO 7 BYTE LOCATION SYMBOL NAME OF THE FORM AMSNN.     01690057
.*              NN IS THE LOCATION SYMBOL OF THIS MACRO'S PARENT MODEL. 01730057
.*              THE LOCATION SYMBOL WILL BE REFERENCED BY AN ADDRESS    01770057
.*              CONSTANT GENERATED BY THE BLSCAMMM MACRO. IF THE        01810057
.*              LOCSYMBOL IS OMITTED, THE BOUNDARY ALIGNMENT            01850057
.*              INSTRUCTION DC 0H'0' IS OMITTED TO PERMIT CONCATENATION 01890057
.*              OF BLSCAMSL INVOCATIONS TO BUILD A SINGLE IDCAMS SYSIN  01930057
.*              STREAM.                                                 01970057
.*                                                                      02010057
.*            POSITIONALPARM                                            02050057
.*              A MACRO POSITIONAL PARAMETER IN THE FORM:               02200057
.*                ('TEXT LINE 1','TEXT LINE 2',....,'TEXT LINE N')      02240057
.*              THE MAXIMUM LENGTH OF A TEXT LINE IS 71 BYTES. ONE BYTE 02280057
.*              OF BLANK IS CONCATENATED AS THE LEADING BYTE OF EACH    02320057
.*              LINE BECAUSE IDCAMS IGNORES THE FIRST BYTE OF EACH      02360057
.*              SYSIN RECORD.                                           02400057
.*                                                                      02440057
.*           END=NO                                                     02480057
.*              THIS KEYWORD WITH A VALUE OF 'NO' PREVENTS THE          02520057
.*              APPENDING TO THE TWO BYTE STRING OF ZEROS THAT          02650057
.*              INDICATES END OF SYSIN TEXT STREAM TO THE USING         02680057
.*              PROGRAM. THIS KEYWORD PERMITS THE CONCATENATION OF      02710057
.*              INVOCATIONS OF THE BLSCAMSL MACRO TO BUILD A SINGLE     02740057
.*              IDCAMS SYSIN TEXT STREAM.                               02770057
.*                                                                      02900000
.*  OUTPUT=  ASSEMBLER 'DC STATEMENTS ARE BUILT FOR EACH TEXT SEGMENT   02950057
.*           IN THE FORM:                                               02990057
.*               DC   HL2'L''TEXTSEG+4',HL2'0',C'TEXTSEG'               03030057
.*           FOLLOWING THE LAST TEXT SEGMENT, A TWO BYTE STRING OF      03070057
.*           HEX ZEROS IS APPENDED TO INDICATE END-OF-DATA IF THE 'END' 03110057
.*           KEYWORD IS NOT PRESENT WITH A VALUE OF 'NO'.               03150057
.*                                                                      03190057
.*  EXTERNAL REFERENCES= NONE                                           03230057
.*                                                                      03350000
.*  TABLES=  NONE                                                       03400057
.*                                                                      03440057
.*  MACRO=  NONE                                                        03480057
.*                                                                      03520057
.*  CHANGE ACTIVITY=                                                    03560057
.*        THIS MODULE IS WRITTEN FOR @G57LPSR                           03600057
.*                                                                      03640057
.*  MESSAGES ISSUED=                                                    03680057
.*     MSG. NO     MESSAGE TEXT                                         03720057
.*     MNOTE 8, SUB PARM NUMBER 'NN' EXCEEDS 71 BYTES. PARAMETER IS     03760057
.*           TRUNCATED                                                  03800057
.*                                                                      03840057
.** END OF SPECIFICATIONS ********************************************* 03880057
         LCLA  &CTR           LOOP COUNTER                              03920057
         LCLA  &NUM           NUMBER OF TEXT SEGMENTS                   03960057
         LCLA  &L             TEXT SEGMENT LENGTH                       04000057
         LCLA  &LL            TEXT SEGMENT MOVE LENGTH                  04040057
         LCLA  &LLL           TEXT SEGMENT LENGTH + 4                   04250057
         LCLC  &C             TEXT SEGMENT                              04290057
         LCLC  &CC            TRUNCATED TEXT SEGMENT                    04330057
         LCLC  &PAD           ONE BLANK                                 04370057
&CTR     SETA  0              INIT LOOP COUNTER                         04410057
&NUM     SETA  N'&TEXT        INIT LOOP LIMIT                           04450057
&PAD     SETC  ' '                                                      04490057
         AIF   (N'&N EQ 0).CNT  TEST FOR NO LOCSYMB                     04530057
&N       DC    0H'0'          ALIGN LIST                                04570057
         AGO   .CNT                                                     04610057
.LOOP    ANOP                                                           04650057
&C       SETC  '&TEXT(&CTR)'  TEXT SEGMENT                              04690057
&L       SETA  K'&C-1                                                   04730057
         AIF   (&L LE 72).OK  LENGTH OK                                 04770057
&L       SETA  72             TRUNCATED LENGTH                          04810057
         MNOTE 8,'SUB PARM NUMBER ''&CTR'' EXCEEDS 71 BYTES. PARAMETER *04850057
               IS TRUNCATED'                                            04890057
.OK      ANOP                                                           05100057
&LL      SETA  &L-1           MOVE LENGTH                               05150057
&LLL     SETA  &L+4           ENTRY LENGTH                              05200057
&CC      SETC  '&C'(2,&LL)    REMOVE QUOTES AND TRUNCATE IF NECESSARY   05250057
         DC    HL2'&LLL',HL2'0',CL&L'&PAD&CC' TEXT SEGMENT              05300057
.CNT     ANOP                                                           05350057
&CTR     SETA  &CTR+1         BUMP LOOP COUNTER                         05400057
         AIF   (&CTR LE &NUM).LOOP  TEST LOOP END                       05450057
         AIF   ('&END' EQ 'NO').MEND                                    05500057
         DC    HL2'0'         END OF TEXT                               05550057
.MEND    MEND                                                           05600057
