         MACRO                                                          00050003
         DLINTIN &N,&FLD,&EDIT                                          00100003
         GBLA  &IHBFNT,&IHBNSC(51),&IHBEND,&IHBI3,&IHBFLN               00150003
         GBLA  &IHBSIZ,&IHBFEA(14),&IHBDLH,&IHBFED                      00200003
         GBLB  &IHBIMG,&IHBFLD,&IHBDEL,&IHBPDL,&IHBER1                  00250003
         GBLB  &IHBFT(6)                                                00300003
         LCLA  &FLDLTH,&I5,&I6,&FONT,&BLEDIT,&HOLD,&I4,&I2              00350003
         LCLA  &FETEN,&FEDIG,&FEEND                                     00400003
         LCLB  &EDATCK,&F1,&F2,&F3,&F4,&F5,&F6,&F7,&F8,&F9,&F10,&CHEDIT 00450003
         LCLB  &B1,&B2,&B3,&B4,&B5,&B6,&B10                             00500003
         LCLC  &CHAR                                                    00550003
         ACTR  9999                                                     00600003
.* STATEMENTS FROM HERE TO .DL490 BUILD TABLE OF FIELD ENDS             00700003
         AIF   (&N GT 0).DL490         TABLE TO BE BUILT,NO BRANCH      00750003
&IHBDLH  SETA  0                       INIT CTR OF CHAR DELIM FIELDS    00800003
&I4      SETA  2                       INIT INDEX THRU FLDN KEYWORDS    00850003
&FEEND   SETA  &IHBEND                 INIT FIELD END INDICATOR         00900003
.DL470   AIF   (T'&SYSLIST(&I4,1) EQ 'O').DL480 FIELD END OMITTED       00950003
         AIF   (T'&SYSLIST(&I4,1) NE 'N').DL480 FIELD END DELIM,YES BR  01000003
         AIF   (&SYSLIST(&I4,1) LE &FEEND OR &SYSLIST(&I4,1) GT 88).DL4X01050003
               80                      FIELD END WITHIN LIMITS          01100003
&IHBFEA(&I4-1) SETA &SYSLIST(&I4,1)    MAKE TABLE ENTRY FOR FLD END     01150003
&FEEND   SETA  &SYSLIST(&I4,1)         CHANGE FIELD END INDICATION      01200003
.DL480   ANOP                                                           01250003
&I4      SETA  &I4+1                   INCREMENT INDEX                  01300003
         AIF   (&I4 LE 15).DL470       ALL FIELD ENDS CHECKED,NO CONT   01350003
         AGO   .END                                                     01400003
.* STATEMENTS .DL490 TO .DL500 CHECK PROPER SPEC OF FLDN AND EDIT KYWDS 01450003
.DL490   ANOP                                                           01500003
&IHBPDL  SETB  (&IHBDEL)               IND IF PREV FIELD CHAR DELIMTD   01550003
         AIF   ('&FLD' EQ '' AND '&EDIT' EQ '').END IF NO SPFCTN EXIT   01600003
         AIF   ('&FLD' NE '').DL500    IF JUST EDITN THEN ERR           01650003
         MNOTE 8,'***  IHB379  FLD PARAMETER MUST BE SPECIFIED WITH EDIX01700003
               T PARAMETER. EDIT&N IGNORED'                             01750003
         AGO   .END                     EXIT MACRO                      01800003
.* STATEMENTS .DL500 TO .DL550 CHECK FOR FIELD END INDICATION           01850003
.DL500   AIF   (T'&FLD(1) NE 'O').DL520 IF FLD END OMITTED THEN ERROR   01900003
.DL510   MNOTE 8,'***  IHB380  FIELD END FOR FLD&N INVALID. FIELD &N NOX01950003
               T GENERATED'                                             02000003
         AGO   .END                     EXIT MACRO                      02050003
.DL520   AIF   (T'&FLD(1) NE 'N').DL530 FIELD END CHAR DELIMTD,YES BRCH 02100003
         AIF   (&FLD(1) LE &IHBEND OR &FLD(1) GT 88).DL510 VALID ADDRSS 02150003
&HOLD    SETA  &FLD(1)-4                *                               02200003
&FETEN   SETA  &HOLD/10                 * SETUP FLD END ADDR            02250003
&FEDIG   SETA  &HOLD-(10*&FETEN)        *                               02300003
IHBE&SYSNDX EQU &FETEN*16+&FEDIG                                        02350003
&IHBDEL  SETB  0                        IND FLD NOT CHAR DELINTD        02400003
         AGO   .DL550                   GOTO CHECK FIELD LENGTH         02450003
.DL530   AIF   (K'&FLD(1) NE 1).DL540   IF ONLY 1 CHAR SPCFD THEN       02500003
IHBE&SYSNDX EQU C'&FLD(1)'                                              02550003
&IHBDEL  SETB  1                        IND FLD CHAR DELIMETED          02600003
         AGO   .DL550                   GOTO CHECK FIELD  LENGTH        02650003
.DL540   AIF   (K'&FLD(1) NE 4).DL545   IF 4 CHAR FALLTHRU              02700003
         AIF   ('&FLD(1)'(2,2) NE '''''' AND '&FLD(1)'(2,2) NE'&&').DL5X02750003
               10                       CHAR SPECIAL CASES              02800003
&CHAR    SETC  '&FLD(1)'(2,2)           YES SETUP FOR DC GENERATION     02850003
         AGO   .DL547                   GOTO SETUP EQU FOR DC GENERATN  02900003
.DL545   AIF   (K'&FLD(1) NE 3).DL510   CHAR DELIM SPCFD AS 3 CHAR      02950003
         AIF   ('&FLD(1)'(1,1) NE '''' OR '&FLD(1)'(3,1) NE '''').DL510 03000003
&CHAR    SETC  '&FLD(1)'(2,1)           SETUP FOR DC GENERATION         03050003
.DL547   ANOP                                                           03100003
IHBE&SYSNDX EQU C'&CHAR'                                                03150003
&IHBDEL  SETB  1                        INDICATE FIELD CHAR DELIMETED   03200003
.* STATEMENTS .DL550 THRU .DL580 CHECK FIELD LENGTH SUBOPERAND          03250003
.DL550   AIF   (T'&FLD(2) EQ 'O' AND &IHBIMG EQ 1).DL580 OMTD WITH IMAG 03300003
         AIF   (T'&FLD(2) NE 'O' AND &IHBIMG EQ 0).DL570 SPEC WITH EDIT 03350003
         AIF   (&IHBIMG EQ 0).DL560     IMAGE=YES WITH FIELD LENGTH,ERR 03400003
         MNOTE 8,'***  IHB381  FIELD LENGTH FOR FLD&N INVALID WITH IMAGX03450003
               E MODE. IGNORED'                                         03500003
         AGO   .DL580                   SKIP FLD LENGTH CHECK           03550003
.DL560   MNOTE 8,'***  IHB382  FIELD LENGTH FOR FLD&N INVALID. FIELD &NX03600003
                NOT GENERATED'                                          03650003
&IHBDEL  SETB  (&IHBPDL)               RESTORE CHAR DELIM INDICATION    03700003
         AGO   .END                    EXIT MACRO                       03750003
.DL570   AIF   (T'&FLD(2) NE 'N').DL560 FIELD LENGTH NUMERIC,NO ERROR   03800003
         AIF   (T'&FLD(2) EQ 'N' AND &FLD(2) EQ 0).DL560 FLD LNGTH=0,ER 03850003
         AIF   (&FLD(2) GT 127).DL560   FLD LENGTH GREATER THAN 127,ERR 03900003
&IHBFLN  SETA  &IHBFLN+&FLD(2)          ADD TO TOTAL OF FIELD LENGTHS   03950003
&FLDLTH  SETA  &FLD(2)                  SETUP FOR DC GENERATION         04000003
         AIF   (&IHBFLN LE 130).DL590   TOTAL FIELD LENGTHS GT 130,ERR  04050003
         MNOTE 8,'***  IHB383  TOTAL OF FIELD LENGTHS GT 130. FIELD &N X04100003
               NOT GENERATED'                                           04150003
&IHBFLN  SETA  &IHBFLN-&FLD(2)          RESTORE FIELD LENGTH TOTAL      04200003
&IHBDEL  SETB  (&IHBPDL)               RESTORE CHAR DELIM FLD INDICATOR 04250003
         AGO   .END                    EXIT MACRO                       04300003
.DL580   ANOP                                                           04350003
&FLDLTH  SETA  0                        IND FLD LENGTH OF 0             04400003
.* STATEMENTS .DL590 THRU .DL630 GENERATE NOSCAN FIELDS                 04450003
.DL590   AIF   (&IHBPDL EQ 1).DL620     PREV FLD CHAR DELIM,SKP NSCN GN 04500003
         AIF   (&IHBDEL EQ 0).DL594     IF FLD CHAR DELIMTD SKIP DOWN   04550003
&I2      SETA  1                        INIT INDEX IN FLD END TABLE     04600003
.DL592   AIF   (&IHBFEA(&I2) GT &IHBEND).DL596  *                       04650003
&I2      SETA  &I2+1                            *SERCH FOR FLD END IN   04700003
         AIF   (&I2 LE 14).DL592                * FIELD END TABLE       04750003
&IHBFED  SETA  89                      NOT FOUND, ASSUME FE ADDR OF 89  04800003
         AGO   .DL620                  SKIP NOSCAN GENERATION           04850003
.DL594   ANOP                                                           04900003
&IHBFED  SETA  &FLD(1)                 SET FLD ADDR TO THIS FLD S FLD   04950003
         AGO   .DL598                    END.  GOTO GEN NOSCAN FIELDS   05000003
.DL596   ANOP                                                           05050003
&IHBFED  SETA  &IHBFEA(&I2)            SET FLD ADDR TO THE NEXT FLDSEND 05100003
.DL598   AIF   (&IHBI3 EQ 0).DL620     ANY NOSCANS TO GENERATE,YES GEN  05150003
&I5      SETA  1                        INIT INDEX TO NOSCAN TABLE      05200003
.DL600   AIF   (&IHBNSC(&I5) LE &IHBEND).DL615 * NOSCAN FIELD TO BE     05250003
         AIF   (&IHBNSC(&I5) GE &IHBFED).DL620 *  HERE                  05300003
&IHBSIZ  SETA  &IHBSIZ+4                INCR FORM RECD SIZE             05350003
         AIF   (&IHBSIZ GT 212).DL605   MAX SIZE RCD ALREADY GEND       05400003
&HOLD    SETA  &IHBNSC(&I5)-4           *                               05450003
&FETEN   SETA  &HOLD/10                 * SETUP NOSCAN FLD END IN BCD   05500003
&FEDIG   SETA  &HOLD-(10*&FETEN)        *                               05550003
         DC    AL1(&FETEN*16+&FEDIG)    *** NOSCAN FIELD ***            05600003
         DC    AL1(128)                                                 05650003
         DC    AL1(0)                                                   05700003
         DC    AL1(0)                                                   05750003
         AGO   .DL610                                                   05800003
.DL605   ANOP                                                           05850003
&IHBER1  SETB  1                        IND MAX FR GENERATED ALREADY    05900003
.DL610   ANOP                                                           05950003
&IHBEND  SETA  &IHBNSC(&I5)             CHANGE LINE BEGIN INDICATION    06000003
&IHBNSC(&I5) SETA 0                     SET NOSCAN TAB ENTRY TO 0       06050003
.DL615   AIF   (&I5 EQ &IHBI3).DL620    TABLE ALL SEARCHED,NO CONT SRCH 06100003
&I5      SETA  &I5+1                    INCR INDEX TO NEXT TAB ENTRY    06150003
         AGO   .DL600                  CONTINUE TABLE SEARCH            06200003
.DL620   AIF   (&IHBDEL EQ 1).DL630    * IF THIS FIELD DELIMETED BY     06250003
&IHBEND  SETA  &FLD(1)                 * ADDRESS BUMP LINE BEGIN        06300003
.*STATEMENTS .DL630 THRU .DL680 CHECK FONT AND NCRIT SUBOPERANDS -FLDN  06350003
.DL630   ANOP                                                           06400003
&I6      SETA  3                       INIT INDEX TO FLDN KEYWORD       06450003
&EDATCK  SETB  1                       SETUP DEFAULT FOR NCRIT          06500003
         AIF   (T'&FLD(3) EQ 'O').DL650 3RD SUBOPER OF FLDN OMITTED     06550003
         AIF   ('&FLD(3)' NE 'NCRIT').DL640 3RD SUBOPER EQ NCRIT        06600003
&EDATCK  SETB  0                       SETUP FOR NCRIT                  06650003
&I6      SETA  4                       SET INDEX=4 OF FLDN KEYWORD      06700003
         AIF   (T'&FLD(4) EQ 'O').DL650 4TH SUBOPER-FLDN OMITTED        06750003
.DL640   ANOP                                                           06800003
&F1      SETB  ('&FLD(&I6)' EQ 'NUMB')                                  06850003
&F2      SETB  ('&FLD(&I6)' EQ 'ANB1')                                  06900003
&F3      SETB  ('&FLD(&I6)' EQ 'NUMA')                                  06950003
&F4      SETB  ('&FLD(&I6)' EQ 'ANA1')                                  07000003
&F5      SETB  ('&FLD(&I6)' EQ 'ANA2')                                  07050003
&F6      SETB  ('&FLD(&I6)' EQ 'NHP1')                                  07100003
&F7      SETB  ('&FLD(&I6)' EQ 'GOTH')                                  07150003
&F8      SETB  ('&FLD(&I6)' EQ 'NHP2')                                  07200003
&F9      SETB  ('&FLD(&I6)' EQ 'MRKA')                                  07250003
&F10     SETB  ('&FLD(&I6)' EQ 'MRKB')                                  07300003
         AIF   (&F1 OR &F2 OR &F3 OR &F4 OR &F5 OR &F6 OR &F7 OR &F8   X07350003
               OR &F9 OR &F10).DL660 VALID FONT SPECIFICATION,NO ERR    07400003
         MNOTE 8,'***  IHB384  FONT CODE FOR FLD&N INVALID. FONT ON DFRX07500003
                ASSUMED'                                                07550003
.DL650   ANOP                                                           07600003
&FONT    SETA  &IHBFNT                  USE FONT FROM DFR               07650003
         AGO   .DL678             SKIP FONT SETTING                     07700003
.DL660   ANOP                                                           07750003
&FONT    SETA  &F1*5+&F2*6+&F3*9+&F4*10+&F5*11+&F6*12+&F7*13+&F8*14+&F9X07800003
               +&F10*2                 SETUP FONT                       07850003
.DL678   ANOP      SETUP FOR FONT EQU NEEDED BY DFR GENERATION          08850003
&IHBFT(1) SETB ((&FONT EQ 9) OR &IHBFT(1))                              08900003
&IHBFT(2) SETB ((&FONT EQ 10) OR (&FONT EQ 11) OR &IHBFT(2))            08950003
&IHBFT(3) SETB ((&FONT EQ 5) OR (&FONT EQ 2) OR &IHBFT(3))              09000003
&IHBFT(4) SETB ((&FONT EQ 6) OR &IHBFT(4))                              09050003
&IHBFT(5) SETB ((&FONT EQ 12) OR (&FONT EQ 13) OR (&FONT EQ 14) OR     X09100003
               &IHBFT(5))                                               09150003
&IHBFT(6) SETB ((&FONT EQ 1) OR &IHBFT(6))                              09200003
         AIF   (N'&FLD LE &I6).DL680 TOO MANY SUBOPERS ON FLDN,YES ERR  09250003
         MNOTE 4,'***  IHB386  TOO MANY OPERANDS ON FLD&N -EXCESS OPERAX09300003
               NDS IGNORED'                                             09350003
.DL680   ANOP                                                           09400003
.* STATEMENTS .DL680 TO .DL820 CHECK EDITN KEYWORD                      09450003
&CHEDIT  SETB  0                       INIT DEFAULT OF NO EDCHAR        09500003
&BLEDIT  SETA  4                       INIT DEFAULT OF NOBLOF           09550003
         AIF   (&IHBIMG EQ 0).DL700    EDIT=YES SKIP TO CHK EDITN       09600003
         AIF   ('&EDIT' EQ '').DL820   EDITN SPECIFIED WITH IMAGE,ERR   09650003
         MNOTE 8,'***  IHB387  EDIT&N PARAMETER INVALID FOR IMAGE MODE.X09700003
                EDIT&N IGNORED'                                         09750003
         AGO   .DL820                  SKIP EDITN CHECK                 09800003
.DL700   AIF   (T'&EDIT(1) EQ 'O').DL750 EDITN OMITTED,ASSUME DEFAULTS  09850003
&BLEDIT  SETA  2                              SETUP FOR ALBLOF          09900003
         AIF   ('&EDIT(1)' EQ 'NOBLOF').DL750 NOBLOF SPECIFIED,YES BRCH 09950003
&BLEDIT  SETA  0                              SETUP FOR HLBLOF          10000003
         AIF   ('&EDIT(1)' EQ 'HLBLOF').DL750 HLBLOF SPECIFIED,YES BRCH 10050003
&BLEDIT  SETA  4                              SETUP FOR ALBLOF          10100003
         AIF   ('&EDIT(1)' EQ 'ALBLOF').DL750 ALBLOF SPECIFIED,YES BRCH 10150003
&BLEDIT  SETA  1                              SETUP FOR HLBHIF          10200003
         AIF   ('&EDIT(1)' EQ 'HLBHIF').DL750 HLBHIF SPECIFIED,YES BRCH 10250003
&BLEDIT  SETA  5                              SETUP FOR ALBHIF          10300003
         AIF   ('&EDIT(1)' EQ 'ALBHIF').DL750 ALBHIF SPECIFIED,YES BRCH 10350003
&BLEDIT  SETA  3                              SETUP FOR ALBNOF          10400003
         AIF   ('&EDIT(1)' EQ 'ALBNOF').DL750 ALBNOF SPECIFIED,YES BRCH 10450003
&BLEDIT  SETA  4                              ASSUME ALBLOF             10500003
         MNOTE 8,'***  IHB388  INVALID SPECIFICATION ON EDIT&N -ALBLOF X10550003
               ASSUMED'                                                 10600003
.DL750   AIF   ((&FONT GE 12 AND &BLEDIT GE 3) OR &FONT LT 12).DL760    10650003
         MNOTE 8,'***  IHB389  INVALID EDIT OPTION FOR NHP OR GOTH FIELX10700003
               D. ALBLOF ASSUMED'                                       10750003
&BLEDIT  SETA  4                              ASSUME ALBHIF FOR NHP FLD 10800003
.DL760   AIF   (T'&EDIT(2) EQ 'O').DL810      2ND SUBOPER OMITTED       10850003
         AIF   ('&EDIT(2)' EQ 'EDCHAR').DL800 EDCHAR SPCFD,NO ERR       10900003
         MNOTE 8,'***  IHB390  INVALID SPECIFICATION ON EDIT&N -EDCHAR X10950003
               ASSUMED'                                                 11000003
.DL800   ANOP                                                           11050003
&CHEDIT  SETB  1                       SETUP FOR EDCHAR                 11100003
.DL810   AIF   (N'&EDIT LE 2).DL820    TOO MANY EDITN OPERANDS,YES ERR  11150003
         MNOTE 4,'***  IHB391  TOO MANY OPERANDS ON EDIT&N. EXCESS OPERX11200003
               ANDS IGNORED'                                            11250003
.DL820   ANOP                                                           11300003
.* STATEMENTS .DL820 TO .END GENERATE FORMAT INFORMATION RECORD         11350003
&IHBSIZ  SETA  &IHBSIZ+4               INCR FR SIZE GENERATED           11400003
         AIF   (&IHBSIZ LE 212).DL830  MAX FR GEND ALREADY,YES ERR      11450003
&IHBFLD  SETB  1                       IND VALID FIELD GENERATED        11500003
&IHBER1  SETB  1                       IND MAX FR ALREADY GEND          11550003
         AGO   .END                    EXIT MACRO                       11600003
.DL830   AIF   (&IHBDEL EQ 1).DL840    THIS FIELD CHAR DELIMETED        11650003
&IHBDLH  SETA  0                       INIT CTR OF CHAR DELIM FLDS IN   11700003
         AGO   .DL850                    A ROW TO 0                     11750003
.DL840   ANOP                                                           11800003
&IHBDLH  SETA  &IHBDLH+1               INCR NO OF FLDS CHAR DELIMETED   11850003
         AIF   (&IHBEND+&IHBDLH LE &IHBFED).DL850 SPACE ON LINE FOR FLD 11900003
         MNOTE 8,'***  IHB392  NO SPACE FOR FIELD &N ON DOCUMENT LINE. X11950003
               FIELD &N IGNORED'                                        12000003
         AGO   .END                    EXIT MACRO                       12050003
.DL850   DC    AL1(IHBE&SYSNDX)    *** FIELD INFORMATION RECORD ***     12100003
&B10     SETB  (NOT &IHBDEL)           SETUP FOR FIELD INFO RCD GENRTN  12150003
         DC    AL1(&B10*128+&EDATCK*64+&BLEDIT) DEL,CRIT,BLNK-FILL      12200003
         DC    AL1(&CHEDIT*128+&FLDLTH)  EDCHAR,FIELD LENGTH            12250003
         DC    AL1(&FONT) FONT                                          12300003
&IHBFLD  SETB  1                       IND VALID FIELD GEND             12350003
.END     MEXIT                                                          12400003
         MEND                                                           12450003
