         MACRO                                                          00050082
&NAME    FULLSCR &CHARS,&BLANK=YES,&TRIGGER=,&LCOUNT=00,&CARRIER=00,&FUX00100082
               LLO=IEDQFSCR,&EXPFLS=NO                         @OZ35823 00150082
         GBLA  &IEDQZD,&IEDQZE(64),&IEDQZL(256)                         00200082
         GBLB  &IEDQZA(64)                                              00250082
         LCLB  &ERROR                                                   00300082
         LCLB  &TROPT,&LCOPT,&CAOPT,&CHRPRES                            00350082
         LCLB  &EXPY                                           @OZ35823 00370082
         LCLA  &LEN                                                     00400082
         LCLC  &LABEL,&TRIGERC                                          00450082
.*C000000-999999                                               @OY18039 00500082
.*A003500,011000,050500,051000,051500                          @OZ35823 00500182
.*C001500                                                      @OZ35823 00500282
         AIF   (&IEDQZA(9)).TSOMH                                       00550082
         MNOTE 12,'*** IHB312  MUST FOLLOW STARTMH MACRO WITH TSOMH=YESX00600082
               '                                                        00650082
         AGO   .MEND                                                    00700082
.TSOMH   ANOP                                                           00750082
         AIF   (&IEDQZA(3) OR &IEDQZA(5)).MHERROR                       00800082
         AGO   .MHNORM                                                  00850082
.MHERROR ANOP                                                           00900082
         MNOTE 12,'*** IHB070  SEQUENCE ERROR-MUST FOLLOW INBUF, OUTHEAX00950082
               DER, OR OUTBUF MACROS'                                   01000082
&ERROR   SETB  1                                                        01050082
.MHNORM  ANOP                                                           01100082
         AIF   (('&EXPFLS' EQ 'YES') OR ('&EXPFLS' EQ 'NO')).EXPGOOD    01102082
         MNOTE 12,'*** IHB300 EXPFLS OPERAND INVALID AS SPECIFIED'      01104082
&ERROR   SETB  1                                                        01106082
         AGO   .GOODCOM                                        @OZ35823 01108082
.EXPGOOD ANOP                                                  @OZ35823 01110082
         AIF   ('&EXPFLS' EQ 'NO').EXPNORM                     @OZ35823 01112082
         AIF   ('&CHARS' EQ '' AND '&TRIGGER' EQ '').REGEXP    @OZ35823 01114082
         MNOTE 12,'*** IHB300 TRIGGER AND CHARS OPERANDS INVALID AS SPEX01116082
               CIFIED'                                                  01118082
&ERROR   SETB  1                                               @OZ35823 01120082
         AGO   .GOODCOM                                        @OZ35823 01122082
.REGEXP  ANOP                                                  @OZ35823 01124082
         AIF   ('&LCOUNT' EQ '00' AND '&CARRIER' EQ '00').GOODEXP       01126082
         MNOTE 12,'*** IHB300 LCOUNT AND CARRIER OPERANDS INVALID AS SPX01128082
               ECIFIED'                                                 01130082
&ERROR   SETB  1                                               @OZ35823 01132082
         AGO   .GOODCOM                                        @OZ35823 01134082
.GOODEXP ANOP                                                  @OZ35823 01136082
&EXPY    SETB  1                                               @OZ35823 01138082
         AGO   .GOODCOM                                        @OZ35823 01140082
.EXPNORM ANOP                                                  @OZ35823 01142082
         AIF   (('&TRIGGER' NE '' AND '&CHARS' EQ '') OR ('&TRIGGER' EQX01150082
                '' AND '&CHARS' NE '')).GOODCOM                         01200082
         AIF   ('&TRIGGER' EQ '' AND '&CHARS' EQ '' AND NOT &IEDQZA(2))X01250082
               .GOODCOM                                                 01300082
         MNOTE 12,'*** IHB300 TRIGGER AND CHARS OPERANDS INVALID AS SPEX01350082
               CIFIED'                                                  01400082
&ERROR   SETB  1                                                        01450082
.GOODCOM ANOP                                                           01500082
         AIF   (&ERROR).MEND                                            01550082
&LABEL   SETC  'IEDM'.'&SYSNDX'                                         01600082
         AIF   ('&CHARS' EQ '').SUBGRP                                  01650082
         IEDQCHAR 8,&CHARS                                              01700082
         AIF   (NOT &IEDQZA(24)).CHRNORM                                01750082
         MNOTE 12,'*** IHB300 &CHARS OPERAND INVALID AS SPECIFIED'      01800082
&ERROR   SETB  1                                                        01850082
.CHRNORM ANOP                                                           01900082
         SPACE 1                                                        01950082
         IEDQSCAN &IEDQZD,&CHARS,&BLANK                                 02000082
         AIF   (&IEDQZA(24)).MEND                                       02050082
&CHRPRES SETB  1                                                        02100082
         LTR   15,15                    CONCHARS FOUND                  02150082
         LA    15,4                     SET DEFAULT RETURN CODE         02200082
         BNP   &LABEL                   BRANCH IF NO                    02250082
         L     1,IEDADBUF               GET BUFFER ADDRESS              02300082
         STH   15,24(,1)                UPDATE SCAN POINTER             02350082
.SUBGRP  ANOP                                                           02400082
&LEN     SETA  11                                                       02450082
&TRIGERC SETC  'X''6D'''                                                02500082
         AIF   ('&TRIGGER' EQ '').LCCHECK                               02550082
&TRIGERC SETC  '&TRIGGER'                                               02600082
         AIF   ('&TRIGGER'(1,1) EQ 'X' AND '&TRIGGER'(K'&TRIGGER,1) EQ X02650082
               '''').NOTROPT                                            02700082
&TROPT   SETB  1                                                        02750082
&LEN     SETA  &LEN+4                                                   02800082
         AGO   .LCCHECK                                                 02850082
.NOTROPT ANOP                                                           02900082
         AIF   (K'&TRIGGER NE 5).TRERROR                                02950082
         AIF   ('&TRIGGER'(2,1) NE '''' AND '&TRIGGER'(5,1) NE '''').TRX03000082
               ERROR                                                    03050082
         AGO   .TRSET                                                   03100082
.TRERROR ANOP                                                           03150082
         MNOTE 8,'*** IHB289  TRIGGER VALUE MUST BE A HEXADECIMAL DIGITX03200082
               '                                                        03250082
&ERROR   SETB  1                                                        03300082
         AGO   .LCCHECK                                                 03350082
.TRSET   ANOP                                                           03400082
         AIF   ('&TRIGGER' NE 'X''00''' AND '&TRIGGER' NE 'X''FF''' ANDX03450082
                &IEDQZA(2)).OUTERR                                      03500082
         AGO   .LCCHECK                                                 03550082
.OUTERR  ANOP                                                           03600082
         MNOTE 12,'*** IHB300 &TRIGGER OPERAND INVALID AS SPECIFIED'    03650082
&ERROR   SETB  1                                                        03700082
.LCCHECK ANOP                                                           03750082
         AIF   (T'&LCOUNT EQ 'N').LCLIM                                 03800082
&LCOPT   SETB  1                                                        03850082
&LEN     SETA  &LEN+4                                                   03900082
         AGO   .CACHECK                                                 03950082
.LCLIM   ANOP                                                           04000082
         AIF   (&LCOUNT LE 24).CACHECK                                  04050082
         MNOTE 8,'*** IHB290  LCOUNT VALUE MUST BE LESS THAN OR EQUAL TX04100082
               O DECIMAL 24'                                            04150082
&ERROR   SETB  1                                                        04200082
.CACHECK ANOP                                                           04250082
         AIF   (T'&CARRIER EQ 'N').CALIM                                04300082
&CAOPT   SETB  1                                                        04350082
&LEN     SETA  &LEN+4                                                   04400082
         AGO   .ALCHECK                                                 04450082
.CALIM   ANOP                                                           04500082
         AIF   (&CARRIER LE 80).ALCHECK                                 04550082
         MNOTE 8,'*** IHB291  CARRIAGE VALUE MUST BE LESS THAN OR EQUALX04600082
                TO DECIMAL 80'                                          04650082
&ERROR   SETB  1                                                        04700082
.ALCHECK ANOP                                                           04750082
         AIF   (&ERROR).MEND                                            04800082
         SPACE 1                                                        04850082
         IEDQVCON 69,IEDQFSC                                            04900082
         BAL   1,*+5+&LEN                                               04950082
         DC    AL1(&IEDQZE(48)),AL1(&LEN)                               05000082
         DC    AL1(&IEDQZL(5))                                          05050082
         AIF   (NOT &EXPY).REGFS                               @OZ35823 05060082
         DC    BL1'&LCOPT&CAOPT&TROPT&CHRPRES&EXPY.000'                 05070082
         AGO   .EXPFS                                          @OZ35823 05080082
.REGFS   ANOP                                                  @OZ35823 05090082
         DC    BL1'&LCOPT&CAOPT&TROPT&CHRPRES.0000'                     05100082
.EXPFS   ANOP                                                  @OZ35823 05120082
         AIF   (&LCOPT).LOPTION                                         05150082
         AIF   (NOT &EXPY).REGLC                               @OZ35823 05160082
         DC    AL1(2)                                          @OZ35823 05170082
         AGO   .DOCA                                           @OZ35823 05180082
.REGLC   ANOP                                                  @OZ35823 05190082
         DC    AL1(&LCOUNT)                                             05200082
         AGO   .DOCA                                                    05250082
.LOPTION ANOP                                                           05300082
         DC    AL1(0)                                                   05350082
.DOCA    ANOP                                                           05400082
         AIF   (&CAOPT).COPTION                                         05450082
         DC    AL1(&CARRIER)                                            05500082
         AGO   .CKOPT                                                   05550082
.COPTION ANOP                                                           05600082
         DC    AL1(0)                                                   05650082
.CKOPT   ANOP                                                           05700082
         AIF   (&TROPT OR &CHRPRES).TOPTION                             05750082
         DC    &TRIGERC                                                 05800082
         AGO   .ALDON                                                   05850082
.TOPTION ANOP                                                           05900082
         DC    AL1(0)                                                   05950082
.ALDON   ANOP                                                           06000082
         IEDQVCON 31,IEDQAE                                             06050082
         DC    AL1(&IEDQZE(31)),AL1(4),AL1(&FULLO),AL1(03)              06100082
         AIF   (NOT &LCOPT).CAGEN                                       06150082
         DC    AL1(&IEDQZE(31)),AL1(4),AL1(&LCOUNT),AL1(05)             06200082
.CAGEN   ANOP                                                           06250082
         AIF   (NOT &CAOPT).TRGEN                                       06300082
         DC    AL1(&IEDQZE(31)),AL1(4),AL1(&CARRIER),AL1(05)            06350082
.TRGEN   ANOP                                                           06400082
         AIF   (NOT &TROPT).GENCODE                                     06450082
         DC    AL1(&IEDQZE(31)),AL1(4),AL1(&TRIGGER),AL1(05)            06500082
.GENCODE ANOP                                                           06550082
         DC    XL1'00'                                                  06600082
         L     15,IEDUI                                                 06650082
         BALR  14,15                                                    06700082
&LABEL   EQU   *                                                        06750082
         SPACE 2                                                        06800082
.MEND    ANOP                                                           06850082
         MEND                                                           06900082
