*TITLE 'IEHMVSSS'                                                       00020000
*FUNCTION/OPERATION: THIS ROUTINE HANDLES THE ANALYSIS OF INPUT         00040000
*CONTROL CARDS.  IT RECEIVES PARAMETERS FROM IEHMVLSU ONE AT A          00060000
*TIME AND SETS SWITCHES AND BUILDS TABLES ACCORDINGLY IN THE            00080000
*PERMANENT WORK AREA                                                    00100002
*ENTRY POINTS: IEHMVESS                                                 00120000
*INPUT: PERMANENT WORK AREA, IEHMVV                                     00140002
*OUTPUT: PERMANENT WORK AREA, IEHMVV                                    00160002
*EXTERNAL ROUTINES: IEHMVLSU,IEHMVSSA                                   00180000
*EXITS - NORMAL TO IEHMVSST                                             00200000
*        ERROR TO IEHMVSSA                                              00220000
*TABLES/WORK AREAS: IEHMVV                                              00240000
*AA                                                                     00260000
*ATTRIBUTES: SERIALLY RE-USEABLE                                        00280000
*NOTES: SEE BELOW FOR SWITCH DESCRIPTION                                00300000
*                                                                       00320000
*                                                                       00340000
*                                                                       00360000
*BYTES USED AS                                                          00380000
*SWITCHES                A ONE EQUALS ON                                00400000
*                                                                       00420000
*LABEL OF SWITCH    DBLOOKFO   INDICATES WHAT PARAM CARD SCANNER        00440000
*                              IS LOOKING FOR.                          00460000
*                                                                       00480000
*               BIT POS 8      KEYWORD DDNAME                           00500000
*                       4      ANY KEYWORD                              00520000
*                       2      A TYPE CODE                              00540000
*                       1      A VOL ID                                 00560000
*                       8      SEQ NUMBER                               00580000
*                       4      A DATA SET NAME                          00600000
*                       2      A MEMBER NAME                            00620000
*                       1      EXPAND DATA                              00640000
*                 ALL BITS OF  COMMAND                                  00660000
*                                                                       00680000
*                                                                       00700000
*                   DBLOOKFO+1                                          00720000
*                                                                       00740000
*                                                                       00760000
*               BIT POS 8     I,E,R FILL  FILLING INCLUDE,EXCLUDE       00780000
*                             REPLACE BLOCK IN PERM WORK AREA           00800000
*                       4     ON WHEN PROCESSING INC EXC OR REP OR SEL  00820000
*                             CARDS                                     00840000
*                       2     COMPLEX  MORE THAN ONE TYPE-VOLID-SEQNO   00860000
*                             IN TO OR FROM LIST.                       00880000
*                       1     INCLUDE BLOCK WRITE OUT SW  ON WHEN BLOCK 00900000
*                             HAS BEEN WRITTEN ON WORK FILE  UT1        00920000
*                       8     EXCLUDE BLOCK WRITE OUT  ON WHEN BLOCK    00940000
*                             HAS BEEN WRITTEN ON UT2                   00960000
*                       4     INCLUDE CARD ENCOUNTERED                  00980000
*                       2     EXCLUDE ENCOUNTERED                       01000000
*                       1     SELECT  CARD ENCOUNTERED                  01020000
*                                                                       01040000
*                                                                       01060000
*                   IEHMVV74 + 14  CHECKS THE CONTENTS                  01080019
*                   OF INCLUDE BLOCK                                    01100000
*                                                                       01120000
*               BIT POS 8     DSNAME                                    01140000
*                       4     FROM  (TYPE-VOLID-SEQNO)                  01160000
*                       2     CVOL  (TYPE-VOLID-SEQNO)                  01180000
*                       1     MEMBER NAME                               01200000
*                       8     UNUSED                                    01220000
*                       4     UNUSED                                    01240000
*                       2     UNUSED                                    01260000
*                       1     UNUSED                                    01280000
*                                                                       01300000
*                                                                       01320000
*                        XSWITCHS                                       01340000
*                                                                       01360000
*               BIT  POS 8     SELECT CARD HAS BEEN OR IS BEING         01380000
*                             PROCESSED                                 01400000
*                       4     COMPLEX MEMBER  (MEMBER NAME LIST)        01420000
*                                                                       01440000
*                       2     MEMBER RENAME                             01460000
*                       1     UNUSED                                    01480000
*                       8     UNUSED                                    01500000
*                       4     UNUSED                                    01520000
*                       2     UNUSED                                    01540000
*                       1     UNUSED                                    01560000
*                                                                       01580000
*                                                                       01600000
*                        SWITCHRD       SET BY CARD SCANNER RTN         01620000
*                                                                       01640000
*               BIT  POS 8     SCAN ERROR     SYNTAX ERROR              01660000
*                                                                       01680000
*                       4     BYPASS   IF ON-NEXT ENTRY TO SCAN WILL    01700000
*                             RETURN OPERATOR FLD OF NEXT CARD          01720000
*                       2     END OF FILL ON SYSIN                      01740000
*                       1     SCAN RTN FIRST TIME IN                    01760000
*                                                                       01780000
*                       8     OPERATOR                                  01800000
*                                                                       01820000
*                       4     KEYWORD                                   01840000
*                                                                       01860000
*                       2     PARAMETER                                 01880000
*                                                                       01900000
*                       1     RIGHT PARENTHESIS                         01920000
*                                                                       01940000
*                                                                       01960000
*NOTE    ABOVE SWITCHES EXCEPT SWITCHRD ARE RESET TO ZEROS BEFORE       01980000
*        PROCESSING EACH IEHMOVE REQUEST                                02000000
*                                                                       02020000
*        SWITCHRD IS RESET TO ZEROS PRIOR TO GOING TO CARD SCANNER      02040000
*        FOR FIRST TIME ONLY                                            02060000
*                                                                       02080000
*                                                                       02100000
*                                                                       02120000
*                                                                       02140000
*                                                                       02160000
*                                                                       02180000
IEHMVSSS CSECT                                                          02200000
*A189224-189242,189260                       @XA19624-@YA19299-@ZA26187 02200199
*C189218,189248                              @XA19624-@YA19299-@ZA26187 02200299
*A070475-070478                                                @ZA24330 02201099
*A070557-070575                                                @ZA18348 02201199
*D070503,070521,070539,070557                                  @ZA18348 02201200
*               SU32 DELETIONS                                 @G32DSFS 02201300
*A066060,125900-126300,222900                                  @G32DSFS 02201400
*                                                              @G32DSFS 02201500
*A189213-189215,189217                       @XA15455-@YA14038-@ZA13783 02201600
*C189208-189212,189216,189219                @XA15455-@YA14038-@ZA13783 02201700
*A189204-189253,223540                                         @ZA11956 02201808
*A070404-070480,223460-223520                                  @ZA10933 02202808
*C023000                                                       @ZA10933 02205708
*A189220-189360                                                @ZA07336 02206408
*C169030                                                       @ZM30153 02207408
*A169034,202700,202720                                         @ZM30153 02210208
*A42300-42320,50900,59600-59700,90900-90940,114900-114999       YL026VC 02212008
*A223140-223160,234700-234780                                   YL026VC 02213008
*C26300,47800,60100,66080,91300-93200,115066-115133,115900      YL026VC 02214808
*C116400,116900,117400,117900-1183600,234880-2355330            YL026VC 02215808
*D35400-35600,52600,59800,60600-60800,94200-107920,115600       YL026VC 02217608
*D116000-116320,116600,117000-117200,117600,235600-129400       YL026VC 02220408
*C59700-60100,91400-93200,131400,139800,235300-235320            Y02918 02221408
*D90900-90940,140200-140400                                      Y02918 02223208
*A91320-91340,214900                                             Y02918 02224208
*A107860-107920,116260-116320                                   YA01196 02226008
*C047800,A066000,066200,222800                                   A37919 02228808
* 032800.033000                                                  A32046 02229808
* 161100,168800                                                    I276 02231608
* 010800,037200,039600,095800,106900,118000,1330000,137200,      A27307 02234408
* 142000,149400                                                  A27307 02235408
*3195                                                              7474 02242008
* 072200,084000,101600,144800,161200                             A21900 02243008
*  PRINT ERROR MESSAGE IF HAVE A COMMA INSTEAD OF AN EQUAL SIGN  A21900 02245008
*  AFTER MEMBER,FROMDD,TODD,PDS,EXPAND OR DEVICE KEYWORD         A21900 02246008
*3236169200,173400,179000,190400                                   DTOI 02248008
*A035700-035720,060900-060920,070500-070560                    @Z40CSJH 02249008
*A093700,094500-094520,107900-107920,116200-116400             @Z40CSJH 02250008
*A127500-127600,139700-139800,240100,131500-131688             @Z40CSJH 02251008
*C235466,091600,140000,131400                                  @Z40CSJH 02252008
*D091320-091340,234700-235026,235100-235399                    @Z40CSJH 02253008
         ENTRY IEHMVESS                                                 02254008
         USING IEHMVV,12                                                02255008
         USING IEHMVESS,DBBASE                                          02260000
         USING IEHMVESS+4096,DBBASE1                                    02280000
IEHMVESS SAVE (14,12),T,IEHMVSSS-OZ26187                       @ZA26187 02300099
         LR    DBBASE,15                 *                              02320000
         LA    DBBASE1,2048(DBBASE)        *****************            02340000
         LA    DBBASE1,2048(DBBASE1)          ***************           02360000
      IEHPRE   (14,1),TFC                                               02380000
       IEHMVV                                                           02400000
IEHMVSSS CSECT                                                          02420000
         SR    R1,R1                                                    02440000
         IC    R1,ESSENTRY             INSERT REENTRY BYTE              02460000
         EX    0,BRANCH(R1)            EXEC BRANCH BASED UPON VALUE     02480000
*                                      OF REENTRY BYTE                  02500000
BRANCH   B     DBTOSCA3                                                 02520000
         B     ERRPRNT1                                                 02540000
         B     DBSKIP4                                                  02560000
         B     DBSKIP2                                                  02580000
         B     DBMV3                                                    02600000
         B     DBCP3                                                    02620000
         B     DBTOSCAN                RETURN FROM CVOL MESSAGE YL026VC 02630002
DBTOSCAN DS    0H                                                       02640000
         TM    SWITCHRD,BYPASS         IS SCAN BYPASS SW ON             02660000
         BZ    DBTOSCA1                                                 02680000
         TM    DBLOOKFO+1,IERSW        TEST FOR E.E.R. BIT ON           02700000
         BO    DBTEST5                                                  02720000
         TM    DBCOMSW,X'3E'           IS SUB OPERATION BIT ON          02740000
         BZ    DBERR11                                                  02760000
         TM    DBCOMSW+1,TO             IS TO BIT ON                    02780000
         BZ    DBERR11                                                  02800000
         B     DBTEST5                                                  02820000
DBTOSCA1 DS    0H                                                       02840000
         MVI   ESSENTRY,X'00'          RESET RENTRY SW                  02860000
       IEHPOST (14),T                                                   02880000
         XCTL  EP=IEHMVESJ                                              02900000
DBTOSCA3 DS    0H                                                       02920000
         LM    R1,R2,IEHMVV90+136      LOAD SCAN REG POINTERS           02940000
         TM    DBFAADD,X'80'           HAS ERROR MESSAGE BEEN SAVED     02960000
         BO    ERRPRNT                 BRANCH IF YES                    02980000
DBTOSCA2 DS    0H                                                       03000000
          TM    SWITCHRD,SYSINEOF  END OF FILE ON SYSIN          A32046 03006020
          BO    DBEOFRTN           *B IF YES                     A32046 03012020
         TM    SWITCHRD,ERRSCAN        IS SCAN ERROR SWITCH ON          03020000
         BZ    DBTEST2                   BRANCH IF OFF                  03040000
         B     DBERR9                    SCAN ERROR MSG                 03060000
ERRPRNT  NI    DBFAADD,X'00'           RESET SAVED ERR MSG SW           03080000
         SR    R3,R3                                                    03100000
         IC    R3,IEHMVV00+130         SAVED MESSAGE NUMBER             03120000
         MVI   ESSENTRY,X'04'          SET RENTRY TO ERRPRNT1           03140000
         LA    R2,8                    CAUSE RETURN TO SSS              03160000
         B     ESAEXIT                                                  03180000
ERRPRNT1 DS    0H                                                       03200000
         MVI   ESSENTRY,X'00'          RESET REENTRY SW                 03220000
         LM    1,2,IEHMVV90+136                                         03240000
         B     DBTOSCA2                                                 03260000
DBTEST2   EQU   *                                                A32046 03280020
         BO    DBEOFRTN                  BRANCH TO EOF RTN IF YES       03300000
         TM    SWITCHRD,BYPASS         IS SCAN BYPASS SWITCH ON         03320000
         BZ    DBTEST3                   BRANCH IF OFF                  03340000
         LTR   DBLENGTH,DBLENGTH         SCAN LENGTH ZERO ?             03360000
         BNE   DBTEST3                   BRANCH IF NO                   03380000
         LTR   DBSCANAD,DBSCANAD         SCAN ADDRESS ZERO ?            03400000
         BNE   DBTEST3                   BRANCH IF NO                   03420000
DBTEST5  TM    DBLOOKFO,ANYKEY         LOOKING FOR A KEYWORD            03440000
         BO    DBSKIP1                                                  03460000
         B     DBERR9                    SCAN ERROR MSG                 03480000
DBSKIP1  TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP SWITCH ON         03500000
         BZ    DBSKIP3                                                  03520000
         TM    DBCOMSW,CATLOG          TEST CATALOG BIT        @Z40CSJH 03540008
         BO    DBSKIP4                                         @Z40CSJH 03560008
         TM    DBCOMSW,DSGROUP         TEST FOR DSGROUP BIT             03580000
         BZ    DBSKIP5                                                  03600000
         L     DBNXRPTR,DBIERPTR                                        03620000
         CLI   0(DBNXRPTR),C'I'                                         03640000
         BNE   DBSKIP4                                                  03660000
DBSKIP5  DS    0H                                                       03680000
         L     DBNXRPTR,DBNXTPTR         STORE INTO THE REQ BLOCK       03700000
         LA    DBNXRPTR,78(0,DBNXRPTR)  INCREMENT TO NEXT IERBLK A27307 03720019
         ST    DBNXRPTR,DBNXTPTR         AVAILABLE  ADDRESS IN THE      03740000
         L     DBNXRPTR,DBIERPTR         BLOCK  & ADD ONE TO THE        03760000
         A     DBNXRPTR,DBCTONE          COUNT OF INC,EXC,REP REQ'S     03780000
         ST    DBNXRPTR,DBIERPTR                                        03800000
         SRL   DBNXRPTR,24                                              03820000
         CH    DBNXRPTR,HONE                                            03840000
         BE    FROMTEST                                                 03860000
         B     DBSKIP2                                                  03880000
FROMTEST TM    DBCOMSW,DSGORPDS        TEST FOR DSGROUP OR PDS BIT      03900000
         BZ    WRITEUT1                 BRANCH EITHER                   03920000
         L     DBNXRPTR,DBIERPTR                                        03940000
         TM    IEHMVV74+14,X'40'       IS IER FROM SWITCH ON     A27307 03960019
         BO    WRITEUT1                                                 03980000
         B     FINDFROM                                                 04000000
DBSKIP2  TM    XSWITCHS,COMPLEXM       IS COMPLEX MEMBER SWITCH ON      04020000
         BZ    DBSKIP4                                                  04040000
        B     DBMEMRTN                                                  04060000
DBSKIP3  TM    DBCOMSW,DSNORPDS        TEST FOR DSNAME OR PDS BIT       04080000
         BZ    DBSKIP4                                                  04100000
         TM    DBCOMSW,FROM            IS FROM BIT ON                   04120000
         BZ    FINDFROM                                                 04140000
DBSKIP4  MVI   DBLOOKFO,OPERATOR       NOW LOOKING FOR AN OPERATOR      04160000
         B     DBTOSCA1                                                 04180000
DBTEST3  TM    DBLOOKFO,TYPCODE        LOOKING FOR A TYPE               04200000
         BO    DBDEVLUP                  GO TO DEVICE LOOKUP RTN        04220000
         TM    DBLOOKFO,OPERATR        LOOKING FOR AN OPERATOR          04240000
         BZ    DBOPLUP                   GO TO OPERATOR LOOKUP RTN      04260000
         TM    DBLOOKFO,ANYKEY         LOOKING FOR A KEYWORD            04280000
         BO    DBKEYLUP                  GO TO KEWORD LOOKUP RTN        04300000
         TM    DBLOOKFO,VOLID          LOOKING FOR A VOLUME ID          04320000
         BO    DBVIDRTN                  GO TO VOL.ID RTN               04340000
         TM    DBLOOKFO,KEYDDN         LOOKING FOR A DDNAME             04360000
         BO    DDNAMRTN                                                 04380000
         TM    DBLOOKFO,SEQNUMB        LOOKING FOR A SEQUENCE NUMBER    04400000
         BO    DBSEQRTN                  GO TO SEQ. NO. RTN             04420000
         TM    DBLOOKFO,DSNAME         LOOKING FOR A DATA SET NAME      04440000
         BO    DBNAMRTN                  GO TO NAME AND NODE RTN        04460000
         TM    DBLOOKFO,MEMNAME        LOOKING FOR A MEMBER NAME        04480000
         BO    DBMNMRTN                  GO TO MEMBER NAME RTN          04500000
         TM    DBLOOKFO,EXPDAT         LOOKING FOR EXPAND PARAM         04520000
         BO    EXPDATA                                                  04540000
         B     DBERR9                    SCAN ERROR MSG                 04560000
*********************************************************************** 04580000
**                                                                   ** 04600000
**            K E Y W O R D   L O O K U P   R O U T I N E            ** 04620000
**                                                                   ** 04640000
*********************************************************************** 04660000
DBKEYLUP STC   DBLENGTH,DBBYTE           SCAN LENGTH > EIGHT            04680000
         CLI   DBBYTE,8                                                 04700000
         BH    DBERR8                    LENGTH ERROR MSG               04720000
         LTR   DBLENGTH,DBLENGTH                                 A30933 04726020
         BZ    DBERR9              SIGNAL SYNTAX ERROR           A30933 04732020
         LA    DBR1,DBKWDTAB             SET UP CONTROL LOOP            04740000
         LA    DBR3,12                                                  04760000
         LA    DBCOMPR,DBKWDEND-12       TABLE LENGTH - UNIT    YL026VC 04780002
         MVI   DBSARG,X'40'                                             04800000
         MVC   DBSARG+1(7),DBSARG                                       04820000
         BCTR  DBLENGTH,0                                               04840000
         EX    DBLENGTH,DBKEY4           MOVE  SCAN KEYWD TO DBSARG     04860000
DBKEY3   CLC   DBSARG(8),0(DBR1)         LOOK UP IN TABLE               04880000
         BNE   DBKEY2                    FIND ?                         04900000
         LA    DBR1,8(0,DBR1)            SET UP TO BRANCH               04920000
         EX    0,0(DBR1,0)               EXECUTE BRANCH IN TABLE        04940000
DBKEY2   BXLE  DBR1,DBR3,DBKEY3          LOOP BACK TO DBKEY3            04960000
         B     DBERR7                    INVALID KWD MSG                04980000
DBKEY4   MVC   DBSARG(0),0(DBSCANAD)                                    05000000
*********************************************************************** 05020000
**                                                                   ** 05040000
**           O P E R A T O R   L O O K U P   R O U T I N E           ** 05060000
**                                                                   ** 05080000
*********************************************************************** 05090002
DBOPLUP  STC   DBLENGTH,DBBYTE           LENGTH > EIGHT ?               05100000
         CLI   DBBYTE,8                                                 05120000
         BNH   DBOPL1                                                   05140000
         B     DBERR8                    WRONG LENGTH MSG               05160000
DBOPL1   LA    DBR1,DBOPTAB              SET UP CONTROL LOOP            05180000
         LA    DBR3,12                                                  05200000
         LA    DBCOMPR,DBOPTAB+60                                       05220000
         MVI   DBSARG,BLANK            CLEAR AREA                       05240000
         MVC   DBSARG+1(7),DBSARG                                       05280000
         BCTR  DBLENGTH,0                                               05300000
         EX    DBLENGTH,DBOPLOP3         MOVE SCAN OPERATOR TO          05320000
DBOPCMP2 CLC   DBSARG(8),0(DBR1)         DBSARG                         05340000
         BNE   DBOPLOP2                  FIND ?                         05360000
         LA    DBR1,8(0,DBR1)            SET UP BRANCH IF YES           05380000
         EX    0,0(DBR1,0)               EXECUTE BRANCH IN TABLE        05400000
DBOPLOP2 BXLE  DBR1,DBR3,DBOPCMP2        LOOP TO CONTINUE LOOKING       05420000
         B     DBERR8                    INVALID OPERATOR MSG           05440000
DBOPLOP3 MVC   DBSARG(0),0(DBSCANAD)                                    05460000
*********************************************************************** 05480000
**                                                                   ** 05500000
**                   O P E R A T O R   T A B L E                     ** 05520000
**                                                                   ** 05540000
*********************************************************************** 05560000
         DS    0F                                                       05580000
DBOPTAB  DC    C'MOVE    '                                              05600000
         B     DBMVRTN                                                  05620000
         DC    C'COPY    '                                              05640000
         B     DBCPRTN                                                  05660000
         DC    C'INCLUDE '                                              05680000
         B     DBINCRTN                                                 05700000
         DC    C'EXCLUDE '                                              05720000
         B     DBEXCRTN                                                 05740000
         DC    C'REPLACE '                                              05760000
         B     DBREPRTN                                                 05780000
         DC    C'SELECT  '                                              05800000
         B     DBSELRTN                                                 05820000
*********************************************************************** 05840000
**                                                                   ** 05860000
**                    K E Y W O R D   T A B L E                      ** 05880000
**                                                                   ** 05900000
*********************************************************************** 05920000
DBKWDTAB DC    C'DSNAME  '                                              05940000
         B     DBDSNRTN                                                 05960002
         DC    C'DSGROUP '                                       Y02918 05970002
         B     DBDSGRTN                                          Y02918 06010002
         DC    C'PDS     '                                              06020000
         B     DBPDSRTN                                                 06040000
         DC    C'CATALOG '                                     @Z40CSJH 06060008
         B     DBCATRTN                                        @Z40CSJH 06080008
         DC    C'VOLUME  '                                              06100000
         B     DBVOLRTN                                                 06120000
         DC    C'FROM    '                                              06140000
         B     DBFRORTN                                                 06160000
         DC    C'TO      '                                              06180000
         B     DBTORTN                                                  06200000
         DC    C'CVOL    '                                              06220000
         B     DBCVORTN                                                 06240000
         DC    C'CATLG   '                                              06260000
         B     DBCLGRTN                                                 06280000
         DC    C'UNCATLG '                                              06300000
         B     DBUNCRTN                                                 06320000
         DC    C'EXPAND  '                                              06340000
         B     DBEXPRTN                                                 06360000
         DC    C'PASSWORD'                                              06380000
         B     DBSECRTN                                                 06400000
         DC    C'MEMBER  '                                              06420000
         B     DBMEMRTN                                                 06440000
         DC    CL8'RENAME'                                              06460000
         B     DBRENAME                                                 06480000
         DC    CL8'DUMP'                                                06500000
         B     DUMPRTN                                                  06520000
         DC    CL8'FROMDD'                                              06540000
         B     FROMDD                                                   06560000
         DC    CL8'TODD'                                                06580000
         B     TODD                                                     06600000
         DC    CL8'UNLOAD'                                       A37919 06603021
         B     UNLRTN                                            A37919 06606021
         DC    CL8'COPYAUTH'           RACF 2 KEYWORD          @G32DSFS 06606632
         B     DBATHRTN                BR TO KEYWORD RTN       @G32DSFS 06607332
DBKWDEND DS    0H                      END OF KEYWORD TABLE     YL026VC 06608002
UNLRTN   DS    0H                                                A37919 06609021
         OI    DBCOMSW+5,UNLOAD  USERS UNLOAD REQUEST            A37919 06612021
         B     CONTINUE                USER'S UNLOAD REQUEST     A37919 06615021
DUMPRTN  OI    DBCOMSW+3,DUMP          TURN ON DUMP SWITCH              06620000
CONTINUE DS    0H                                                A37919 06630021
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        06640000
         B     DBTOSCAN                                                 06660000
*********************************************************************** 06680000
**                                                                   ** 06700000
**             N A M E   OR   N O D E   R O U T I N E                ** 06720000
**                                                                   ** 06740000
*********************************************************************** 06760000
DBNAMRTN TM    SWITCHRD,PARAM          IS IT A PARAMETER                06780000
         BZ    DBERR6                     BRANCH IF NO                  06800000
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUIRED          06820000
         BO    DBNAM1                     BRANCH IF YES                 06840000
         LA    DBR1,44(DBNXRPTR)        UPDATE NEXT AVIL SPACE PTR      06860000
         ST    DBR1,DBNXTPTR                                            06880000
DBNAM1   MVI   0(DBNXRPTR),BLANK                                        06900000
         MVC   1(43,DBNXRPTR),0(DBNXRPTR) THE DATA SET NAME             06920000
         CH    DBLENGTH,DBFORTY4          LENGTH > FORTY FOUR           06940000
         BH    DBERR10                    LENGTH ERROR MSG              06960000
         LTR   DBLENGTH,DBLENGTH       IS LENGTH ZERO                   06980000
         BZ    DBERR10                 BRANCH IF YES                    07000000
         BCTR  DBLENGTH,0                 REDUCE LENGTH BY ONE          07020000
         EX    DBLENGTH,DBNAM2                                          07040000
         ST    DBLENGTH,SAVEREG2       SAVE REG2               @ZA10933 07040908
         ST    DBNXRPTR,SAVEREGB       SAVE REG11              @ZA10933 07041808
         SR    DBLENGTH,DBLENGTH       CLEAR REG2              @ZA10933 07042708
LOOP1    LA    DBNXRPTR,1(0,DBNXRPTR)  POINT TO NEXT CHARACTER @ZA10933 07043608
*                                       OF DSNAME              @ZA10933 07044508
         LA    DBLENGTH,1(0,DBLENGTH)  ADD ONE TO REG2         @ZA10933 07045408
         CLI   0(DBNXRPTR),X'40'       END OF DSNAME           @ZA10933 07046308
         BE    END                     YES                     @ZA10933 07047208
         CLI   0(DBNXRPTR),X'00'       END OF DSNAME           @ZA24330 07047599
         BE    END                     YES                     @ZA24330 07047799
         CLI   0(DBNXRPTR),X'4B'       CHECK FOR A PERIOD      @ZA10933 07048108
         BNE   LOOP1                   CHECK NEXT CHARACTER    @ZA10933 07049008
         CH    DBLENGTH,DBEIGHT        LENGTH > 8              @ZA10933 07049908
         BH    DBERR10                 LENGTH ERROR MSG        @ZA10933 07050300
         LA    DBNXRPTR,1(0,DBNXRPTR)  POINT TO NEXT CHARACTER @ZA10933 07050900
*                                       OF DSNAME              @ZA10933 07051500
         SR    DBLENGTH,DBLENGTH       CLEAR REG2              @ZA10933 07052100
         B     LOOP1                                           @ZA10933 07052700
END      CH    DBLENGTH,DBEIGHT        LENGTH > 8              @ZA10933 07053300
         BH    DBERR10                 LENGTH ERROR MSG        @ZA10933 07053900
         L     DBLENGTH,SAVEREG2       RELOAD REG2             @ZA10933 07054500
         L     DBNXRPTR,SAVEREGB       RELOAD REG11            @ZA10933 07055100
         TM    DBCOMSW,DSGROUP         WAS DSGROUP SPECIFIED   @ZA18348 07055700
         BZ    DBNAM1A                 NO-BRANCH               @ZA18348 07056300
         OI    DBCOMSW+5,X'20'         SET=NAME SWITCH         @ZA18348 07056900
DBNAM1A  EQU   *                       NO NAME BRANCH TO       @ZA18348 07057500
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        07060000
         B     DBTOSCAN                                                 07080000
DBNAM2   MVC   0(1,DBNXRPTR),0(DBSCANAD)                                07100000
*********************************************************************** 07120000
**                                                                   ** 07140000
**             M E M B E R   K E Y W O R D   R O U T I N E           ** 07160000
**                                                                   ** 07180000
*********************************************************************** 07200000
DBMEMRTN TM    SWITCHRD,PARAM          IS SCAN PARAM SWITCH ON  A21900  07210018
*                                       FOR A COMMA              A21900 07213018
         BNO   IERCHK                  IF NOT, BRANCH            A21900 07216018
         CLI   PARENCTR+1,ZERO         TEST WHETHER CHECKING     A21900 07219018
*                                       MEMBERNAMES INSIDE       A21900 07222018
*                                       PARENTHESES (CTR NOT 0)  A21900 07225018
         BE    DBERR8                  IF NOT, HAVE ERROR -      A21900 07228018
*                                       COMMA INSTEAD OF EQUAL   A21900 07231018
*                                       SIGN AFTER KEYWORD       A21900 07234018
IERCHK   TM    DBLOOKFO+1,IERSW        INC,EXC, OR REP REQUIRED  A21900 07237018
         BZ    DBERR7                     KWD NOT ALLOWED MSG           07240000
         L     DBNXRPTR,DBNXTPTR                                        07260000
         LA    DBNXRPTR,45(0,DBNXRPTR)    ADJ REG PTR TO MEMBER AREA    07280000
         MVI   DBLOOKFO,MEMNAME        NOW LOOKING FOR A MEMBER NAME    07300000
         B     DBTOSCAN                                                 07320000
DBMNMRTN CH    DBLENGTH,DBEIGHT           LENGTH > EIGHT ?              07340000
         BH    DBERR10                    LENGTH ERROR MSG              07360000
         LTR   DBLENGTH,DBLENGTH        IS LENGTH ZERO                  07380000
         BZ    DBMNM7                                                   07400000
         BCTR  DBLENGTH,0                 REDUCE LENGTH BY ONE          07420000
         TM    XSWITCHS,RENAME         IS MEMBER RENAME SWITCH ON       07440000
         BO    DBMNM5                                                   07460000
         B     DBMNM6                                                   07480000
DBMNM7   TM    XSWITCHS,COMPLEXM       IS COMPLEX MEMBER SWITCH ON      07500000
         BO    DBMNM8                   BRANCH IF YES                   07520000
         B     DBERR8                                                   07540000
DBMNM8   TM    SWITCHRD,RTPAREN        IS RIGHT PAREN BIT ON            07560000
         BO    DBMNM2                   BRANCH IF YES                   07580000
         B     DBERR8                                                   07600000
DBMNM5   NI    XSWITCHS,OFF            TURN OFF MEMBER  RENAME SWITCH   07620000
         B     DBMNM4                                                   07640000
DBMNM6   DS    0H                                                       07660000
         CLI   IEHMVV90+129,TWO         IS PAREN COUNT TWO              07680000
         BNE   DBMNM3                   BRANCH IF NO                    07700000
         OI    XSWITCHS,RENAME         TURN ON MEMBER RENAME SWITCH     07720000
DBMNM3   DS    0H                                                       07740000
         MVI   0(DBNXRPTR),BLANK                                        07760000
         MVC   1(7,DBNXRPTR),0(DBNXRPTR)  CLEAR MEMBER NAME AREA        07780000
         EX    DBLENGTH,DBMNM1            MOVE MEMBER NAME INTO LIST    07800000
DBMNM4   LA    DBNXRPTR,25(DBNXRPTR)   PIONT TO MEMBER RENAME SLOT DT0I 07820018
         MVI   0(DBNXRPTR),BLANK       CLEAR MEMBER RENAME SLOT         07840000
         MVC   1(7,DBNXRPTR),0(DBNXRPTR)                                07860000
         EX    DBLENGTH,DBMNM1          MOVE MEMBER NAME                07880000
         TM    XSWITCHS,RENAME         IS MEMBER RENAME SWITCH ON       07900000
         BO    DBMEMRTN                                                 07920000
         CLI   IEHMVV90+129,X'00'      IS PAREN COUNT ZERO              07940000
        BE    DBMNM2                   BRANCH IF YES                    07960000
         OI    XSWITCHS,COMPLEXM       TURN ON COMPLEX MEMBER SWITCH    07980000
         LA    DBSCANAD,2(DBLENGTH,DBSCANAD) CHECK FOR TWO RIGHT        08000000
         CLI   0(DBSCANAD),C')'              PARENTHISIS                08020000
         BE    DBMEMRTN                                                 08040000
        B     DBSKIP1                                                   08060000
DBMNM2   XC    XSWITCHS(1),XSWITCHS     TURN OFF SEL EXC AND MEMBER SW  08080000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR KEYWORD          08100000
         B     DBTOSCAN                                                 08120000
DBMNM1   MVC   0(1,DBNXRPTR),0(DBSCANAD) EXECUTED INST                  08140000
*********************************************************************** 08160000
**                                                                   ** 08180000
**       F R O M   A N D   TO   D D N A M E   R O U T I N E S        ** 08200000
**                                                                   ** 08220000
*********************************************************************** 08240000
TODD     L     DBNXRPTR,DBNXTPTR                                        08260000
         ST    DBNXRPTR,IEHMVV28+4      STORE ADDR OF TO DDNAME         08280000
         OI    DBCOMSW+3,TODDSW        TURN ON TODD SWITCH              08300000
         B     FROMDD1                                                  08320000
FROMDD   L     DBNXRPTR,DBNXTPTR                                        08340000
         ST    DBNXRPTR,IEHMVV28        STORE ADDR OF FROM DD NAME      08360000
         OI    IEHMVV20+3,X'02'         TURN ON FROM DD SW              08380000
FROMDD1  TM    SWITCHRD,PARAM          IS SCAN PARAM SWITCH ON  A21900  08390018
         BO    DBERR8                   BRANCH IF ON            A21900  08400018
         TM    DBLOOKFO+1,IERSW        INC,EXC, OR REP REQUIRED A21900  08410018
         BO    DBERR7                   BRANCH IF YES                   08420000
         MVI   DBLOOKFO,KEYDDN         NOW LOOKING FOR A DDNAME         08440000
         B     DBTOSCAN                                                 08460000
DDNAMRTN  CH   DBLENGTH,DBEIGHT         IS LENGTH OVER 8                08480000
         BH    DBERR10                  LENGTH ERROR MSG                08500000
         LTR   DBLENGTH,DBLENGTH        IS LENGTH OVER ZERO             08520000
         BZ    DBERR8                   INVALID PARAM MSG               08540000
         BCTR  DBLENGTH,0               REDUCE LENGTH BY ONE            08560000
         MVI   0(DBNXRPTR),BLANK       CLEAR DDNAME AREA                08580000
         MVC   1(7,DBNXRPTR),0(DBNXRPTR)                                08600000
         EX    DBLENGTH,DBMNM1          MOVE DDNAME INTO LIST           08620000
         LA    DBNXRPTR,44(DBNXRPTR)    BUMP AREA POINTER               08640000
         ST    DBNXRPTR,DBNXTPTR        STORE AREA POINTER              08660000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        08680000
         B     DBTOSCAN                                                 08700000
*********************************************************************** 08720000
**                                                                   ** 08740000
**             R E N A M E   K E Y W O R D   R O U T I N E           ** 08760000
**                                                                   ** 08780000
*********************************************************************** 08800000
DBRENAME TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      08820000
         BO    DBERR8                   BRANCH IF ON                    08840000
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUIRED          08860000
         BO    DBERR7                   KWD NOT ALLOWED                 08880000
         TM    DBCOMSW+3,RENAMESW       IS RENAME SWITCH ON             08900000
         BO    DBERR5                   BRANCH IF YES                   08920000
         OI    DBCOMSW+3,RENAMESW       TURN ON RENAME SWITCH           08940000
         L     DBNXRPTR,DBNXTPTR        PUT POINTER IN REG              08960000
         ST    DBNXRPTR,IEHMVV21+4      SET UP 'TO' DSNAME POINTER      08980000
         MVI   DBLOOKFO,DSNAME         NOW LOOKING FOR A NAME           09000000
         B     DBTOSCAN                                                 09020000
*********************************************************************** 09040000
**                                                                   ** 09060000
**               D S G R O U P   R O U T I N E                       ** 09080000
**                                                                   ** 09100000
*********************************************************************** 09120000
DBDSGRTN EQU   *                                                YL026VC 09130002
         TM    DBLOOKFO+1,IERSW         INC,EXC,OR REP REQUIRED  Y02918 09140002
         BO    DBDSG1                    BRANCH IF YES         @Z40CSJH 09160008
         TM    DBCOMSW,EQUKWD            EQUIVALENT KWD ALREADY  Y02918 09180002
         BO    DBERR5                    MULT KWD MSG            Y02918 09200002
         L     DBNXRPTR,DBNXTPTR                                 Y02918 09220002
         OI    DBCOMSW,DSGROUP         TURN ON DSGROUP SWITCH    Y02918 09240002
         TM    SWITCHRD,PARAM           SCAN PARAMETER SWITCH ON Y02918 09260002
         BZ    DBDSG2                    BRANCH IF NO            Y02918 09280002
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD Y02918 09300002
         B     DBTOSCAN                                          Y02918 09320002
DBDSG2   MVI   DBLOOKFO,DSNAME         NOW LOOKING FOR A NAME           09340000
         ST    DBNXRPTR,DBNNPTR                                         09360000
         NI    DBCOMSW+5,X'DF'         CLEAR=NAME SWITCH       @Z40CSJH 09370008
         B     DBTOSCAN                                                 09380000
DBDSG1   L     DBNXRPTR,DBNXTPTR         PUT PTR IN REG                 09400000
         TM    DBCOMSW,CATLOG          IS CATALOG BIT ON       @Z40CSJH 09420008
         BO    DBDSG3                  BRANCH YES              @Z40CSJH 09440008
         TM    DBCOMSW,DSGROUP         IS DSGROUP BIT ON                09460000
         BZ    DBDSG4                  BRANCH IF NO                     09480000
         L     DBR1,IEHMVV26           LOAD PTR TO IER BLOCK            09500000
         CLI   0(DBR1),C'I'            IS IT AN INCLUDE BLOCK           09520000
         BNE   DBDSG3                  BRANCH IF NO                     09540000
DBDSG4   DS    0H                                                       09560000
         OI    IEHMVV74+14,X'80'       DSNAME BIT ON IN IER SW   A27307 09580019
         LA    DBNXRPTR,1(0,DBNXRPTR)    ADJ PTR IN REG TO NAME AREA    09600000
         MVI   DBLOOKFO,DSNAME         NOW LOOKING FOR A NAME           09620000
         B     DBTOSCAN                                                 09640000
DBDSG3   LA    DBR1,44(DBNXRPTR)       BUMP PERM WORK AREA PTR          09660000
         ST    DBR1,DBNXTPTR                                            09680000
         ST    DBNXRPTR,IEHMVV21+4     STORE TO DSNAME PTR              09700000
         MVI   DBLOOKFO,DSNAME         NOW LOOKING FOR A NAME           09720000
         B     DBTOSCAN                                                 09740000
*********************************************************************** 09760000
**                                                                   ** 09780000
**         D S N A M E   K E Y W O R D   R O U T I N E               ** 09800000
**                                                                   ** 09820000
*********************************************************************** 09840000
DBDSNRTN TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      09860000
         BO    DBERR8                                                   09880000
         TM    DBLOOKFO+1,IERSW        IS INC,EXC,OR REP REQUIRED       09900000
         BO    DBDSG1                                                   09920000
         TM    DBCOMSW,EQUKWD           IS EQUIVALENT KWD ALREADY IN    09940000
         BO    DBERR5                    MULTIPLE KWD MSG               09960000
         L     DBNXRPTR,DBNXTPTR                                        09980000
         MVC   DBNNPTR(4),DBNXTPTR       NEXT AVAIL. ADDR. TO DBNNPTR   10000000
         OI    DBCOMSW,DSNSW           TURN ON DSNAME SWITCH IN COMSW   10020000
         B     DBDSG2                                                   10040000
*********************************************************************** 10060000
**                                                                   ** 10080000
**              P D S   K E Y W O R D   R O U T I N E                ** 10100000
**                                                                   ** 10120000
*********************************************************************** 10140000
DBPDSRTN TM    SWITCHRD,PARAM          IS SCAN PARAM SWITCH ON  A21900  10150018
         BO    DBERR8                   BRANCH IF ON            A21900  10160018
         TM    DBLOOKFO+1,IERSW        INC,EXC, OR REP REQUIRED A21900  10170018
         BO    DBDSG1                                                   10180000
         TM    DBCOMSW,EQUKWD           IS EQUIVALENT KWD ALREADY IN    10200000
         BO    DBERR5                    MULTABLE KWD MSG               10220000
         OI    DBCOMSW,PDS             TURN ON PDS KEYWORD SWITCH       10240000
         L     DBNXRPTR,DBNXTPTR                                        10260000
         MVC   DBNNPTR(4),DBNXTPTR       SET UP NODE/NAME PTR           10280000
         B     DBDSG2                                                   10300000
*********************************************************************** 10320000
**                                                                   ** 10340000
**         V O L U M E   K E Y W O R D   R O U T I N E               ** 10360000
**                                                                   ** 10380000
*********************************************************************** 10400000
DBVOLRTN TM    SWITCHRD,PARAM          IS PARAMETER SWITCH ON ?         10420000
         BO    DBERR8                    INVALID PARAM MSG              10440000
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUIRED ?        10460000
         BO    DBERR7                    KWD NOT ALLOWED                10480000
         TM    DBCOMSW,EQUKWD     KEYWORD ALREADY IN               7474 10486017
         BM    DBERR5             MULTIPLE KEYWORD ERROR           7474 10492017
         TM    DBCOMSW,X'03'             EQUIVALENT KWD ALREADY IN ?    10500000
         BO    DBERR5                    MULT KED MSG                   10520000
         OI    DBCOMSW,X'03'             TURN ON VOLUME SW              10540000
         B     DBFRO4                                                   10560000
*********************************************************************** 10580000
**                                                                   ** 10600000
**             F R O M   K E Y W O R D   R O U T I N E               ** 10620000
**                                                                   ** 10640000
*********************************************************************** 10660000
DBFRORTN TM    SWITCHRD,PARAM          IS PARAMETER SWITCH ON ?         10680000
         BO    DBERR8                    INVALID PARAM MSG              10700000
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUIRED ?        10720000
         BO    DBFRO1                    BRANCH IF YES                  10740000
         TM    DBCOMSW,X'03'             EQUIVALENT KWD ALREADY IN ?    10760000
         BO    DBERR5                    MULT KWD MSG                   10780000
         TM    DBCOMSW+1,CVOL          TEST FOR 'CVOL' USED    @Z40CSJH 10786008
         BO    DBERR5                    EXCLUDES USE OF 'FROM'@Z40CSJH 10792008
         OI    DBCOMSW,FROM            TURN ON FROM SWITCH              10800000
DBFRO4   MVI   DBLOOKFO,TYPCODE         NOW LOOKING FOR A TYPE          10820000
         L     DBNXRPTR,DBNXTPTR        LOAD NEXT AVILIBLE POINTER      10840000
         LA    DBNXRPTR,2(DBNXRPTR)     BUMP IT 2 FOR LATER SCRATCHING  10860000
         ST    DBNXRPTR,DBNXTPTR                                        10880000
         ST    DBNXRPTR,DBFLPTR         SET UP FROM L-ST PTR            10900000
         B     DBTOSCAN                                                 10920000
DBFRO1   L     DBNXRPTR,DBNXTPTR         PUT PTR IN REG                 10940000
         OI    IEHMVV74+14,X'40'       TURN ON IER FROM SW       A27307 10960019
IERVOL   LA    DBNXRPTR,53(0,DBNXRPTR)     ADJUST POINTER TO FROM AREA  10980000
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR A TYPE           11000000
         B     DBTOSCAN                                                 11020000
*********************************************************************** 11040000
**                                                                   ** 11060000
**               T O   K E Y W O R D   R O U T I N E                 ** 11080000
**                                                                   ** 11100000
*********************************************************************** 11120000
DBTORTN  TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      11140000
         BO    DBERR8                    INVALID PARAMETER MSG          11160000
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUIRED          11180000
         BO    DBERR7                    KWD NOT ALLOWED MSG            11200000
         TM    DBCOMSW+1,TO            CHECK IF KEYWORD IS ALREADY IN   11220000
         BO    DBERR5                    MULTABLE KWD MSG               11240000
         OI    DBCOMSW+1,TO            TURN ON TO KEYWORD SWITCH        11260000
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR A TYPE           11280000
         L     DBNXRPTR,DBNXTPTR        LOAD NEXT AVILIBLE POINTER      11300000
         LA    DBNXRPTR,2(DBNXRPTR)     BUMP IT 2 FOR LATER SCRATCHING  11320000
         ST    DBNXRPTR,DBNXTPTR                                        11340000
         ST    DBNXRPTR,DBTLPTR         SET UP TO LIST PTR              11360000
         ST    DBNXRPTR,DBTLPTR+4      SET ACTIVE TO VOL PTR            11380000
         B     DBTOSCAN                                                 11400000
*********************************************************************** 11440008
**                                                                   ** 11499908
**             C V O L   K E Y W O R D   R O U T I N E               ** 11540008
**                                                                   ** 11590008
** LINES 114500-118466 WERE REACTIVATED IN                     @Z40CSJH 11600008
** SUPPORT OF THE EXTENDED MVS CVOL FUNCTION                   @Z40CSJH 11610008
*********************************************************************** 11640008
DBCVORTN TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      11690008
         BO    DBERR8                    INVALID PARAMETER MSG          11740008
         TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUESTED ?       11800008
         BO    DBCVO2                    BRANCH IF YES                  11810008
         TM    DBCOMSW+1,CVOL          IS KEYWORD ALREADY IN            11820008
         BO    DBERR5                    MULTABLE KWD MSG               11830008
         TM    DBCOMSW,FROM            TEST FOR 'FROM' USED     XA00425 11832008
         BO    DBERR5                    EXCLUDES USE OF 'CVOL' XA00425 11834008
         OI    DBCOMSW+1,CVOL          TURN ON CVOL KEYWORD SWITCH      11836008
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR A TYPE           11836408
         L     DBNXRPTR,DBNXTPTR        LOAD NEXT AVILIBLE POINTER      11836808
         LA    DBNXRPTR,2(DBNXRPTR)     BUMP IT 2 FOR LATER SCRATCHING  11837208
         ST    DBNXRPTR,DBCVPTR         SET UP CVOL LIST PTR            11837608
         ST    DBNXRPTR,DBNXTPTR                                        11838008
         B     DBTOSCAN                                                 11838408
DBCVO2   L     DBNXRPTR,DBNXTPTR         PUT PTR IN REG                 11838808
         OI    IEHMVV74+14,X'20'       TURN ON EIR CVOL SW       A27307 11839208
         B      IERVOL         YES BRANCH                               11840008
*********************************************************************** 11850008
**                                                                   ** 11860000
**             C A T L G   K E Y W O R D   R O U T I N E             ** 11880000
**                                                                   ** 11900000
*********************************************************************** 11920000
DBCLGRTN TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUEST           11940000
         BO    DBERR7                    KWD NOT ALLOWED MSG            11960000
         TM    DBCOMSW+1,CATLG         IS KEYWORD ALREADY IN            11980000
         BO    DBERR5                    MULTABLE KWD MSG               12000000
         TM    DBCOMSW,MOVE            IS THIS A MOVE REQUESTED ?       12020000
         BO    DBERR7                                                   12040000
         OI    DBCOMSW+1,CATLG         TURN ON CATLG KEYWORD SWITCH     12060000
         B     DBTOSCAN                                                 12080000
*********************************************************************** 12100000
**                                                                   ** 12120000
**             U N C A T L G   K E Y W O R D   R O U T I N E         ** 12140000
**                                                                   ** 12160000
*********************************************************************** 12180000
DBUNCRTN TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUESTED ?       12200000
*                                                                       12220000
         BO    DBERR7                    KWD NOT ALLOWED MSG            12240000
         TM    DBCOMSW+1,UNCATLG       IS KEYWORD ALREADY IN            12260000
         BO    DBERR5                    MULTABLE KWD MSG               12280000
         OI    DBCOMSW+1,UNCATLG       TURN ON UNCATLG KEYWORD SWITCH   12300000
         B     DBTOSCAN                                                 12320000
*********************************************************************** 12340000
**                                                                   ** 12360000
**         S E C U R I T Y   K E Y W O R D   R O U T I N E           ** 12380000
**                                                                   ** 12400000
*********************************************************************** 12420000
DBSECRTN TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUESTED ?       12440000
         BO    DBERR7                    KWD NOT ALLOWED MSG            12460000
         TM    DBCOMSW+1,SECURITY      IS KEYWORD ALREADY IN            12480000
         BO    DBERR5                    MULTABLE KWD MSG               12500000
         OI    DBCOMSW+1,SECURITY      TURN ON SECURITY KEYWORD SWITCH  12520000
         B     DBTOSCAN                                                 12540000
***************************************************************@G32DSFS 12550032
**                                                             @G32DSFS 12554032
**         C O P Y A U T H   K E Y W O R D   R O U T I N E     @G32DSFS 12558032
**                                                             @G32DSFS 12562032
***************************************************************@G32DSFS 12566032
DBATHRTN TM    DBCOMSW+5,COPYAUTH      IS KEYWORD ALREADY IN   @G32DSFS 12570032
         BO    DBERR5                    MULTIPLE KWD MSG      @G32DSFS 12574032
         OI    DBCOMSW+5,COPYAUTH      TURN ON COPYAUTH KEYWORD@G32DSFS 12578032
         B     DBTOSCAN                BR TO SCAN FOR PARMS    @G32DSFS 12582032
***************************************************************@G32DSFS 12586032
**                                                                   ** 12590032
**         C A T A L O G   K E Y W O R D   R O U T I N E             ** 12594032
**                                                                   ** 12598032
** LINES 125900-129599 WERE REACTIVATED                        @Z40CSJH 12602032
** IN SUPPORT OF THE EXTENDED CVOL FUNCTION                    @Z40CSJH 12606032
*********************************************************************** 12610032
DBCATRTN TM    DBLOOKFO+1,IERSW        INC,EXC,OR REP REQUESTED ?       12614032
         BO    DBDSG1                  BRANCH IF YES                    12618032
***************************************************************@G32DSFS 12630132
         TM    DBCOMSW,EQUKWD           IS EQUIVALENT KWD ALREADY IN    12640008
         BO    DBERR5                    MULTABLE KWD MSG               12650008
         OI    DBCOMSW,CATLOG          TURN ON CATALOG KEYWORD SWITCH   12660008
         TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      12670008
         BO    DBCAT2                                                   12680008
         L     DBNXRPTR,DBNXTPTR                                        12690008
         ST    DBNXRPTR,DBNNPTR                                         12700008
         MVI   0(DBNXRPTR),BLANK       CLEAR JJ BYTE AREA               12710008
         MVC   1(43,DBNXRPTR),0(DBNXRPTR)                               12720008
         MVI   DBLOOKFO,DSNAME         NOW LOOKING FOR A NAME           12730008
         B     DBTOSCAN                                                 12740008
DBCAT2   MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        12750008
         B     DBTOSCAN                                                 12760008
*********************************************************************** 12960000
**                                                                   ** 12980000
**               I N C L U D E   O P E R A T O R                     ** 13000000
**                                                                   ** 13020000
*********************************************************************** 13040000
DBINCRTN DS    0C                                                       13060000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 13080000
         TM    DBCOMSW,MOVECOPY        MOVE OR COPY SWITCH ALREADY ON   13100000
         BZ    DBERR4                    MUST FOLLOW MOVE OR COPY OP    13120000
         TM    DBCOMSW,PDS               INCLUDE PERMITTED ?   @Z40CSJH 13140008
         BO    DBINC2                   YES-INCLUDE OK         @Z40CSJH 13143008
         TM    DBCOMSW,X'10'            IS IT DSGROUP          @Z40CSJH 13146008
         BZ    DBERR1                   NO-INCL NOT OK         @Z40CSJH 13149008
         TM    DBCOMSW+1,X'40'          CVOL SPECIFIED         @Z40CSJH 13152008
         BZ    DBERR1                   NO-INCLUDE NOT OK      @Z40CSJH 13155008
DBINC2   TM    DBLOOKFO+1,FRSTIER       IS FIRST I,E,R SW ON   @Z40CSJH 13160008
         BO    DBINC3                                                   13200000
         OI    DBLOOKFO+1,FRSTIER      TURN ON FIRST INC,EXC,OR REP SW  13220000
         MVC   DBIERPTR(4),DBNXTPTR      PUT IER BLOCK CHAIN ADDR IN    13240000
DBINC3   L     DBNXRPTR,DBNXTPTR         REQ BLOCK***J*PUT PTR IN REG   13260000
         MVI   0(DBNXRPTR),C'I'          PUT '2' IN FIRST BYTE OF REQBL 13280000
         MVI   IEHMVV74+14,X'00'                                 A27307 13300019
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        13320000
         OI    DBLOOKFO+1,INCLUDE      TURN INCLUDE SWITCH ON           13340000
         B     DBTOSCAN                                                 13360000
*********************************************************************** 13380000
**                                                                   ** 13400000
**               R E P L A C E   O P E R A T O R                     ** 13420000
**                                                                   ** 13440000
*********************************************************************** 13460000
DBREPRTN DS    0C                                                       13480000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 13500000
         TM    DBCOMSW,MOVECOPY         IS MOVE COPY SW ALREADY ON      13520000
         BZ    DBERR4                    MUST FOLLOW MOVE OR COPY OP    13540000
         TM    DBCOMSW,PDS             IS PDS SWITCH ON                 13560000
         BZ    DBERR3                    REPLACE NOT VALID  IGNORED     13580000
         TM    DBLOOKFO+1,FRSTIER      IS FIRST INC,EXC,OR REP SW ON    13600000
         BO    DBREP3                                                   13620000
         OI    DBLOOKFO+1,FRSTIER      TURN ON FIRST INC,EXC,OR REP SW  13640000
         MVC   DBIERPTR(4),DBNXTPTR      PUT IER BLOCK CHAIN ADDR IN    13660000
DBREP3   L     DBNXRPTR,DBNXTPTR         REQ BLOCK ***SET UP REG PTR    13680000
         MVI   0(DBNXRPTR),C'R'          PUT 'CH IN FIRST BYTE OF IERBL 13700000
         MVI   IEHMVV74+14,X'00'                                 A27307 13720019
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        13740000
         OI    DBLOOKFO+1,REPLACE      TURN REPLACE SWITCH ON           13760000
         B     DBTOSCAN                                                 13780000
*********************************************************************** 13800000
**                                                                   ** 13820000
**                E X C L U D E   O P E R A T O R   R O U T I N E    ** 13840000
**                                                                   ** 13860000
*********************************************************************** 13880000
DBEXCRTN DS    0C                                                       13900000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 13920000
         TM    DBCOMSW,MOVECOPY         IS MOVE COPY SW ALREADY ON      13940000
         BZ    DBERR4                    MUST FOLLOW MOVE OR COPY OP    13960000
         TM    DBCOMSW,X'0C'            PDS OR CATALOG         @Z40CSJH 13962008
         BM    DBEXC2                   BRANCH ON EITHER       @Z40CSJH 13964008
         TM    DBCOMSW,X'10'            IS IT DSGROUP          @Z40CSJH 13966008
         BZ    DBERR2                   NO-INVALID ERROR       @Z40CSJH 13968008
         TM    DBCOMSW+1,X'40'          CVOL SPECIFIED         @Z40CSJH 13970008
         BO    DBEXC6                   BR IF YES-EXCLUDE OK   @Z40CSJH 13972008
         B     DBERR2                   EXCLUDE INVALID        @Z40CSJH 13974008
DBEXC2   TM    DBCOMSW,PDS              IS IT PDS              @Z40CSJH 13980008
         BZ    DBEXC6                   BR IF NOT              @Z40CSJH 14000008
         MVI   XSWITCHS,SELECT         TURN ON SEL EXC MULT MEMBER SW   14060000
DBEXC5   TM    DBLOOKFO+1,FRSTIER      IS FIRST INC,EXC,OR REP SW ON    14080000
         BO    DBEXC3                                                   14100000
         OI    DBLOOKFO+1,FRSTIER      TURN ON FIRST INC,EXC,OR REP SW  14120000
         MVC   DBIERPTR(4),DBNXTPTR      PUT ADDR OF IER CHAIN IN REQBL 14140000
DBEXC3   L     DBNXRPTR,DBNXTPTR         SET UP REQ PTR                 14160000
         MVI   0(DBNXRPTR),C'E'          PUT 'E' IN FIRST BYTE OF IERBL 14180000
         MVI   IEHMVV74+14,X'C0'       TURN ON FROM ,CVOL SW     A27307 14200019
         OI    DBLOOKFO+1,EXCLUDE      TURN EXCLUDE SWITCH ON           14220000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        14240000
         B     DBTOSCAN                                                 14260000
DBEXC6   TM    DBLOOKFO+1,EXC          IS EXC SWITCH ON                 14280000
         BO    DBERR2                  BRANCH YES                       14300000
         OI    DBLOOKFO+1,EXCLUDE      TURN EXCLUDE SWITCH ON           14320000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        14340000
         B     DBTOSCAN                                                 14360000
*********************************************************************** 14380000
**                                                                   ** 14400000
**          E X P A N D   K E Y W O R D   R O U T I N E              ** 14420000
**                                                                   ** 14440000
*********************************************************************** 14460000
DBEXPRTN TM    SWITCHRD,PARAM          IS SCAN PARAM SWITCH ON  A21900  14470018
         BO    DBERR8                   BRANCH IF ON            A21900  14480018
         TM    DBCOMSW+1,EXPAND        IS KEYWORD ALREADY IN    A21900  14490018
         BO    DBERR5                    MULTABLE KWD MSG               14500000
         TM    DBLOOKFO+1,IERSW        WAS INC,EXC,OR REP REQUESTED     14520000
         BO    DBERR7                   KWD NOT ALLOWED                 14540000
         XC    IEHMVV25+2,IEHMVV25+2    CLEAR EXP DATA ARE A            14560000
         OI    DBCOMSW+1,EXPAND        TURN ON EXPAND KEYWORD SWITCH    14580000
         MVI   DBLOOKFO,EXPDAT         NOW LOOKING FOR EXPAND DATA      14600000
         B     DBTOSCAN                                                 14620000
DBSELRTN DS    0C                                                       14640000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 14660000
         TM    DBCOMSW,MOVECOPY         IS MOVE COPY SW ALREADY ON      14680000
         BZ    DBERR4                                                   14700000
         TM    DBCOMSW,PDS             IS PDS SWITCH ON                 14720000
         BZ    DBERR14                                                  14740000
         TM    DBLOOKFO+1,EXC          ARE THERE ANY PRECEDING EXCLUDES 14760000
         BO    DBERR14                                                  14780000
         MVI   XSWITCHS,SELECT         TURN ON SEL EXC MULT MEMBER SW   14800000
         TM    DBLOOKFO+1,INC          ARE THERE ANY PRECEDING INCLUDES 14820000
         BO    DBSEL3                                                   14840000
         OI    DBLOOKFO+1,X'41'          TURN ON IER AND SELECT SW      14860000
         MVC   DBIERPTR(4),DBNXTPTR      SET UP IER BLOCK POINTER       14880000
DBSEL3   L     DBNXRPTR,DBNXTPTR                                        14900000
         MVI   0(DBNXRPTR),C'I'          MOVE I INTO THE BLOCK          14920000
         MVI   IEHMVV74+14,X'E0'     TURN ON FROM,CVOL,DSN SW    A27307 14940019
*                                      IN THE INCLUDE BLOCK             14960000
         L     DBR1,IEHMVV21                                            14980000
         MVC   1(44,DBNXRPTR),0(DBR1)    MOVE DS NAME INTO BLOCK        15000000
         L     DBR1,IEHMVV22                                            15020000
         MVC   53(12,DBNXRPTR),0(DBR1)  MOVE FROM INEO INTO BLOCK       15040000
DBSEL4   TM    DBCOMSW+1,CVOL          IS CVOL SWITCH ON                15060000
         BZ    DBSEL5                    BRANCH IF NO                   15080000
         L     DBR1,IEHMVV24                                            15100000
         MVC   65(12,DBNXRPTR),0(DBR1)   MOVE CVOL INFO INTO BLOCK      15120000
DBSEL5   MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        15140000
         OI    DBLOOKFO+1,SELENCNT     TURN ON SELECT ENCOUNTERED SW    15160000
         B     DBTOSCAN                                                 15180000
EXPDATA  TM    SWITCHRD,PARAM          IS SCAN PARAMETER SWITCH ON      15200000
         BZ    DBERR8                   BRANCH IF NO                    15220000
         LTR   DBLENGTH,DBLENGTH        IS LENGTH ZERO                  15240000
         BC    13,DBERR10               BRANCH IF YES                   15260000
         CH    DBLENGTH,DBTWO           IS LENGTH TWO                   15280000
         BH    DBERR10                  LENGTH ERROR                    15300000
EXPD3    BCTR  DBLENGTH,0               REDUCE LENGTH BY ONE            15320000
         EX    DBLENGTH,EXPD4                                           15340000
         CVB   DBR1,IEHMVV00                                            15360000
         STH   DBR1,IEHMVV25+2                                          15380000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        15400000
         B     DBTOSCAN                                                 15420000
EXPD4    PACK  0(8,12),0(1,DBSCANAD)                                    15440000
*********************************************************************** 15460000
**                                                                   ** 15480000
**          C O P Y   O P E R A T O R   R O U T I N E                ** 15500000
**                                                                   ** 15520000
*********************************************************************** 15540000
DBCPRTN  DS    0C                                                       15560000
         TM    DBCOMSW,MOVECOPY         IS MOVE COPY SW ALREADY ON      15580000
         BNE   DBCP2                     BRANCH IF YES                  15600000
DBCP3    OI    DBCOMSW,COPY            TURN ON COPY SWITCH              15620000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 15640000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        15660000
         B     DBTOSCAN                                                 15680000
DBCP2    MVI   ESSENTRY,X'14'                                           15700000
         B     SCAEXIT1                                                 15720000
*********************************************************************** 15740000
**                                                                   ** 15760000
**             M O V E   O P E R A T O R   R O U T I N E             ** 15780000
**                                                                   ** 15800000
*********************************************************************** 15820000
DBMVRTN  DS    0C                                                       15840000
         TM    DBCOMSW,MOVECOPY         IS MOVE COPY SW ALREADY ON      15860000
         BNE   DBMV2                     BRANCH IF YES                  15880000
DBMV3    OI    DBCOMSW,MOVE            TURN ON MOVE SWITCH              15900000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 15920000
         MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        15940000
         B     DBTOSCAN                                                 15960000
DBMV2    MVI   ESSENTRY,X'10'                                           15980000
         B     SCAEXIT1                                                 16000000
*********************************************************************** 16020000
**                                                                   ** 16040000
**            D E V I C E   L O O K U P   R O U T I N E              ** 16060000
**                                                                   ** 16080000
*********************************************************************** 16100000
DBDEVLUP L     R0,IEHMVV74+16          ADD OF DEVNAMET             I276 16102019
         LTR   R0,R0                   IS DEVNAMET LOADED          I276 16104019
         BNZ   LOADED                  YES                         I276 16106019
         LOAD  EP=DEVNAMET             LOAD DEVICE NAME TABLE      I276 16108019
         ST    R0,IEHMVV74+16          SAVE ADDR OF DEVNAMET       I276 16110019
         L     R1,IEHMVV90+136         RESET R1                    I276 16112019
LOADED   TM    SWITCHRD,PARAM          IS SCAN PARM SWITCH ON      I276 16114019
         BO    DBERR8                   BRANCH IF ON            A21900  16120018
         TM    SWITCHRD,RTPAREN        IS RIGHT PAREN BIT ON    A21900  16130018
         BO    DBVID4                                                   16140000
         TM    DBLOOKFO+1,COMPLEX      IS COMPLEX LIST BIT ON           16160000
         BO    DBDEV5                    BRANCH IF YES                  16180000
         CLI   IEHMVV90+129,X'00'      IS PAREN COUNT ZERO              16200000
         BE    DBDEV5                    BRANCH IF YES                  16220000
         OI    DBLOOKFO+1,COMPLEX      TURN ON COMPLEX BIT              16240000
DBDEV5   STC   DBLENGTH,DBBYTE           SAVE THE LENGTH                16260000
         CLI   DBBYTE,8                  LENGTH > EIGHT ?               16280000
         BNH   DBDEV1                    BRANCH IF NO                   16300000
         B     DBERR8                    INVALID PARAMETER MSG          16320000
DBDEV1   DS    0C                                                       16340000
         L     DBAVIL2,IEHMVV74+16     PUT ADDR OF DEVNAMET IN R   I276 16360019
         LA    DBAVIL3,12                                               16380000
         SR    DBAVIL0,DBAVIL0                                          16400000
         M     DBAVIL0,0(0,DBAVIL2)     CALC LENGTH OF TABLE            16420000
         LA    DBAVIL0,12                                               16440000
         SR    DBAVIL3,DBAVIL0          REDUCE LENGTH BY 12             16460000
*                                       LOAD COMPR WITH THE ADDR OF THE 16480000
*                                       TABLE PLUS TWELEVE LESS THAN    16500000
*                                       THE LENGTH OF THE TABLE         16520000
         LA    DBCOMPR,4(DBAVIL3,DBAVIL2)                               16540000
         LA    DBR3,12                  SET UP TABLE LOOK UP            16560000
         LA    DBR1,4(DBAVIL2)          ADDR OF TABLE                   16580000
         MVI   DBSARG,BLANK            CLEAR AREA                       16600000
         MVC   DBSARG+1(7),DBSARG                                       16620000
         XC    UNIT(5),UNIT            RESET SPECIFIC UNIT NAME TO DT0I 16626018
*                                      ZERO                        DT0I 16632018
         BCTR  DBLENGTH,0                REDUCE LENGTH BY ONE           16640000
         EX    DBLENGTH,DBDEV4           MOVE TYPE TO SARG              16660000
DBDEV2   CLC   DBSARG(8),0(DBR1)         COMPARE TO DEVICE TYPE TABLE   16680000
         BNE   DBDEV3                                                   16700000
         ST    DBR1,DBREENTR            SAVE TABLE ENTRY ADDRESS        16720000
         CLI   10(DBR1),X'80'                                           16740000
         BE    DBDVTAPE                                                 16760000
         CLI   10(DBR1),X'20'                                           16780000
         BE    DBDVDISK                                                 16800000
         CLI   10(DBR1),X'08'                                           16820000
         BE    DBDVDISK                                                 16840000
         B     DBERR13                                                  16860000
DBDEV3   BXLE  DBR1,DBR3,DBDEV2          LOOP HERE                      16900000
         L     DBR1,16                 GET PTR TO UCBLUT           DT0I 16901018
         L     DBR1,40(DBR1)                                       DT0I 16902018
CHECKUCB ICM   DBR3,3,0(DBR1)           GET PTR TO UCB         @ZM30153 16903003
         N     DBR3,FOXES               CLEAR TOP HALF         @ZM30153 16903403
         TM    0(DBR1),X'FF'           TEST FOR END OF UCBLUT      DT0I 16904018
         BC    14,NOTEND                BRANCH ON NOT END          DT0I 16905018
         TM    1(DBR1),X'FF'           CHECK FOR DEFINITE END      DT0I 16906018
         BC    1,DBERR8                BRANCH TO INDICATE NO       DT0I 16907018
*                                      MATCH FOUND                 DT0I 16908018
NOTEND   LTR   DBR3,DBR3               CHECK FOR ZERO ENTRY        DT0I 16909018
         BZ    NXTUCB                  BRANCH ON YES               DT0I 16910018
         CLC   DBSARG(3),13(DBR3)      CHECK FOR UNIT NAME         DT0I 16911018
         BE    FOUND                   BRANCH WHEN FOUND           DT0I 16912018
NXTUCB   LA    DBR1,2(DBR1)            BRANCH TO NEXT UCBLUT ENTRY DT0I 16913018
         B     CHECKUCB                BRANCH TO CHECK NEXT UCB    DT0I 16914018
FOUND    LA    DBR3,8(DBR3)            UPDATE SO DEVICE TYPE IS    DT0I 16915018
*                                      SAME OFFSET IN UCB AS IN DNTDT0I 16916018
         ST    DBR3,DBREENTR           SAVE IT FOR NEXT RTN        DT0I 16917018
         MVC   UNIT(5),DBSARG          SAVE SPECIFIC UNIT          DT0I 16918018
         CLI   10(DBR3),X'80'          CHECK IF TAPE               DT0I 16919018
         BE    DBDVTAPE                BRANCH ON YES               DT0I 16920018
         CLI   10(DBR3),X'20'          TEST FOR DA                 DT0I 16921018
         BE    DBDVDISK                BRANCH ON YES               DT0I 16922018
         CLI   10(DBR3),X'08'          TEST FOR UNIT RECORD        DT0I 16923018
         BE    DBDVDISK                 BRANCH ON YES              DT0I 16924018
         B     DBERR13                 IF NONE OF ABOVE CONSIDER ITDT0I 16925018
*                                      AN ERROR                    DT0I 16926018
DBDEV4   MVC   DBSARG(1),0(DBSCANAD)     EXECUTED INST                  16940000
*********************************************************************** 16960000
**                                                                   ** 16980000
**            V O L U M E   I D   R O U T I N E                      ** 17000000
**                                                                   ** 17020000
*********************************************************************** 17040000
DBVIDRTN MVI 0(DBNXRPTR),BLANK          CLEAR VOL ID AREA               17060000
         MVC   1(5,DBNXRPTR),0(DBNXRPTR)                                17080000
         LTR   DBLENGTH,DBLENGTH         IS LENGTH ZERO                 17100000
         BZ    DBVID17                   BRANCH IF YES                  17120000
         LA    DBR1,6                    CAUSE VD  ID TO BE             17140000
         SR    DBR1,DBLENGTH             RIGHT JUSTIFIED                17160000
         BL    DBERR10                   BRANCH IF LENGTH   SIX         17180000
         LR    DBR1,DBNXRPTR                                            17200000
         BCTR  DBLENGTH,0                REDUCE LENGTH BY ONE           17220000
         EX    DBLENGTH,DBVID2           MOVE VOL ID INTO LIST          17240000
DBVID17  LA    DBNXRPTR,6(DBNXRPTR)      ADJ NXT AREA PTR               17260000
         TM    DBACTTYP,TAPE            IS THE TYPE A TAPE              17280000
         BO    DBVID3                    BRANCH IF YES                  17300000
         XC    0(2,DBNXRPTR),0(DBNXRPTR) CLEAR SEQ NO. AREA             17320000
         LA    DBNXRPTR,7(DBNXRPTR)       ADJUST TO NEXT TYPE SLOT DT0I 17340018
         TM    DBLOOKFO+1,COMPLEX      IS COMPLEX SWITCH ON             17360000
         BO    DBVID16                   BRANCH IF YES                  17380000
         CLI   IEHMVV90+129,X'00'      IS PAREN COUNT ZERO              17400000
         BE    DBVID4                    BRANCH IF YES                  17420000
         B     DBDVD1                                                   17440000
DBVID16  LH    DBR1,IEHMVV90+128       PUT PAREN COUNT IN REG           17460000
         BCTR  DBR1,0                                                   17480000
         LTR   DBR1,DBR1                 IS REG ZERO                    17500000
         BH    DBDVD1                                                   17520000
         BM    DBVID4                                                   17540000
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR A TYPE           17560000
         B     DBTOSCAN                                                 17580000
DBVID11  LH    DBR1,IEHMVV90+128       PUT PAREN COUNT IN REG           17600000
         BCTR  DBR1,0                    REDUCE REG BY ONE              17620000
         LTR   DBR1,DBR1                                                17640000
         BH    DBVID12                                                  17660000
         BM    DBVID4                                                   17680000
         XC    0(2,DBNXRPTR),0(DBNXRPTR) CLEAR SEQ NO. AREA             17700000
         LA    DBNXRPTR,2(DBNXRPTR)      ADJ PTR TO NEXT TYPE SLOT      17720000
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR A TYPE           17740000
         B     DBTOSCAN                                                 17760000
DBVID2   MVC   0(1,DBR1),0(DBSCANAD)     EXECUTED INST                  17780000
DBVID3   TM    DBLOOKFO+1,COMPLEX      IS COMPLEX SWITCH ON             17800000
         BO    DBVID11                   BRANCH IF YES                  17820000
         CLI   IEHMVV90+129,X'00'      IS PAREN COUNT ZERO              17840000
         BNE   DBVID12                   BRANCH IF NO                   17860000
         XC    0(2,DBNXRPTR),0(DBNXRPTR) CLEAR SEQ NO. AREA             17880000
         LA    DBNXRPTR,7(DBNXRPTR)    ADJUST TO NEXT TYPE SLOT    DT0I 17900018
         B     DBVID4                    GO TO END OF LIST RTN          17920000
DBVID12  XC    0(2,DBNXRPTR),0(DBNXRPTR) CLEAR SEQ NO. AREA             17940000
         MVI   DBLOOKFO,SEQNUMB        NOW LOOKING FOR A SEQ NUMBER     17960000
         B     DBTOSCAN                                                 17980000
*********************************************************************** 18000000
**                                                                   ** 18020000
**            E N D   O F   L I S T   R O U T I N E                  ** 18040000
**                                                                   ** 18060000
*********************************************************************** 18080000
DBVID4   MVI   DBLOOKFO,ANYKEY         NOW LOOKING FOR A KEYWORD        18100000
         NI    DBLOOKFO+1,X'DF'          TURN OFF COMPLEX BIT           18120000
         TM    DBLOOKFO+1,IERSW        WAS INC,EXC,OR REP REQUESTED     18140000
         BO    DBTOSCAN                                                 18160000
         CLC   DBNXTPTR(4),IEHMVV22     COMP TO FROM LST PTR            18180000
         BNE   DBVID6                                                   18200000
         LA    DBR1,IEHMVV22                                            18220000
         B     DBVID7                                                   18240000
DBVID6   CLC   DBNXTPTR(4),IEHMVV23     COMP TP TO LST PTR              18260000
         BNE   DBVID8                                                   18280000
         LA    DBR1,IEHMVV23                                            18300000
         B     DBVID7                                                   18320000
DBVID8   CLC   DBNXTPTR(4),IEHMVV24     COMP TO CVOL LST PTR            18340000
         BNE   DBVID9                                                   18360000
         LA    DBR1,IEHMVV24                                            18380000
         B     DBVID7                                                   18400000
DBVID9   B     DBERR9                                                   18420000
DBVID7   ST    DBNXRPTR,DBNXTPTR         UP NEXT AVIL PTR               18440000
         LH    DBAVIL0,DBENTCT           PLACE ENTRY COUNT              18460000
         STC   DBAVIL0,0(0,DBR1)         IN LEFT MOST BYTE OF LIST PTR  18480000
         STC   DBAVIL0,4(0,DBR1)         DO SOMETHING                   18500000
         SR    DBAVIL0,DBAVIL0                                          18520000
         STH   DBAVIL0,DBENTCT                                          18540000
         B     DBTOSCAN                                                 18560000
*********************************************************************** 18580000
**                                                                   ** 18600000
**          S E Q U E N C E   N U M B E R   R O U T I N E            ** 18620000
**                                                                   ** 18640000
*********************************************************************** 18660000
DBSEQRTN MVI   IEHMVV00,BLANK          CLEAR DOUBLE WORD TO BLANKS      18680000
         MVC   IEHMVV00+1(7),IEHMVV00                                   18700000
         LTR   DBLENGTH,DBLENGTH         IS LENGTH ZERO                 18720000
         BZ    DBSEQ17                   BRANCH IF YES                  18740000
*                                      CAUSE SEQ FLD TO BE RIGHT        18760000
*                                      JUSTIFIED IN DOUBLE WORD         18780000
         LA    DBR1,4                  MAX LENGTH OF SEQ FLD            18800000
         SR    DBR1,DBLENGTH                                            18820000
         BL    DBERR10                   BRANCH IF LENGTH  2            18840000
         LA    DBAVIL0,IEHMVV00+4      RIGHT WORD OF DOUBLE WORD        18860000
         AR    DBR1,DBAVIL0                                             18880000
         BCTR  DBLENGTH,0                                               18900000
         EX    DBLENGTH,DBVID2           MOVE SEQ. NO. INTO LIST        18920000
         ST    DBSCANAD,SAVEREG3       SAVE REG3               @ZA11956 18920208
         AR    DBSCANAD,DBLENGTH       POINT AT SEQ NO         @ZA13783 18920408
         CLI   1(DBSCANAD),X'5D'       IS NEXT A RIGHT         @ZA13783 18920608
*                                      PARENTHESIS ?           @ZA13783 18920808
         BNE   OK                      NO, BRANCH              @ZA13783 18921008
         CLI   2(DBSCANAD),X'40'       IS IT A BLANK AFTER     @ZA13783 18921208
*                                      RIGHT PARENTHESIS ?     @ZA13783 18921408
         BE    OK                      YES, BRANCH             @ZA11956 18921608
         CLI   2(DBSCANAD),X'6B'       IS IT A COMMA AFTER     @ZA26187 18921899
*                                      RIGHT PARENTHESIS ?     @ZA26187 18922499
         BE    OK                      YES, BRANCH             @ZA26187 18923099
         TM    IEHMVV20+5,X'04'        IS RIGHT SWITCH ON      @ZA26187 18923699
*                                      SET IN IEHMVESJ         @ZA26187 18924299
         BNO   DBERR9                  NO, ERROR               @ZA26187 18924899
OK       L     DBSCANAD,SAVEREG3       RELOAD REG3             @ZA11956 18925499
         NI    IEHMVV20+5,X'FB'        RESET RIGHT SWITCH      @ZA26187 18926099
         LA    DBLENGTH,1(0,DBLENGTH)  ADD ONE TO LENGTH       @ZA07336 18928008
LOOP     CLI   0(DBR1),X'F0'          CHECK DIGIT RANGE OF 1-9 @ZA07336 18932008
         BL    DBERR9                  ERROR                   @ZA07336 18936008
         CLI   0(DBR1),X'F9'                                   @ZA07336 18938008
         BH    DBERR9                  ERROR                   @ZA07336 18940008
         LA    DBR1,1(0,DBR1)          ADD ONE TOO CHECK NEXT  @ZA07336 18944008
*                                      DIGIT IF ANY            @ZA07336 18948008
         BCT   DBLENGTH,LOOP           END OF SEQ LIST         @ZA07336 18952008
         PACK  IEHMVV00(8),IEHMVV00(8)                                  18956008
         CVB   DBAVIL0,IEHMVV00                                         18960000
         STC   DBAVIL0,1(DBNXRPTR)    PUT SEQ NO. IN LIST               18980000
         SRL   DBAVIL0,8                                                19000000
         STC   DBAVIL0,0(DBNXRPTR)                                      19020000
DBSEQ17  LA    DBNXRPTR,7(DBNXRPTR)      ADJ PTR IN REG            DTOI 19040018
         TM    DBLOOKFO+1,COMPLEX      IS COMPLEX SWITCH ON             19060000
         BO    DBSEQ1                   BRANCH IF YES                   19080000
         CLI   IEHMVV90+129,X'00'      IS PAREN COUNT ZERO              19100000
         BE    DBVID4                                                   19120000
         B     DBDVT1                                                   19140000
DBSEQ1   LH    DBR1,IEHMVV90+128       PUT PAREN COUNT IN REG           19160000
         BCTR  DBR1,0                   REDUCE IT BY ONE                19180000
         LTR   DBR1,DBR1                TEST CONTENTS OF REG            19200000
         BNE   DBDVT1                   BRANCH IF NOT ZERO              19220000
         MVI   DBLOOKFO,TYPCODE        NOW LOOKING FOR TYPE             19240000
         B     DBTOSCAN                                                 19260000
*********************************************************************** 19280000
**                                                                   ** 19300000
**             D E V I C E    =   T A P E                            ** 19320000
**                                                                   ** 19340000
*********************************************************************** 19360000
DBDVTAPE MVI   DBACTTYP,TAPE            SET ACTIVE TYPE TO TAPE         19380000
DBDVT1   L     DBR1,DBREENTR            LOAD ADDR OF DEVICE TABLE ENTRY 19400000
         MVC   0(4,DBNXRPTR),8(DBR1)    MOVE TYPE CODE TO COMM AREA     19420000
         MVC   12(5,DBNXRPTR),UNIT     SAVE SPECIFIC NAME          DT0I 19430018
         B     DBDVD2                                                   19440000
*********************************************************************** 19460000
**                                                                   ** 19480000
**             D E V I C E    =   D I S K                            ** 19500000
**                                                                   ** 19520000
*********************************************************************** 19540000
DBDVDISK MVI   DBACTTYP,DISK            SET ACTIVE TYPE TO DISK         19560000
DBDVD1   L     DBR1,DBREENTR            LOAD ADDR OF DEVICE TABLE ENTRY 19580000
         MVC   0(4,DBNXRPTR),8(DBR1)    MOVE TYPE CODE TO COMM AREA     19600000
         MVC   12(5,DBNXRPTR),UNIT     SAVE SPECIFIC NAME          DT0I 19610018
DBDVD2   LA    DBNXRPTR,4(0,DBNXRPTR)   ADJ PTR TO VOL.ID. SLOT         19620000
         MVI   DBLOOKFO,VOLID           NOW LOOKING FOR VOL ID          19640000
         LH    DBAVIL0,DBENTCT           PUT COUNT INTO REG             19660000
         LA    DBAVIL0,1(DBAVIL0)        ADD ONE TO COUNT               19680000
         STH   DBAVIL0,DBENTCT           SAVE COUNT                     19700000
         B     DBTOSCAN                                                 19720000
CLEAR    LTR   0,0                       IS LEGNTH ZERO                 19740000
         BC    8,0(14)                   RETURN IF YES                  19760000
         MVI   0(1),X'00'                SET PROPOEATION BYTE           19780000
         BCTR  0,0                                                      19800000
         LTR   0,0                       IS LENGTH ZERO                 19820000
         BC    8,0(14)                   RETURN IF YES                  19840000
         LA    15,255                    MAX PROPOGATION FACTOR IN R15  19860000
CLEAR3   CLR   0,15                      IS MAX LARGER THAN LENGTH      19880000
         BNH   CLEAR2                    BRANCH IF NO                   19900000
         EX    15,CLEAR1                 EXECUTE MVC INSTRUCTION        19920000
         SR    0,15                                                     19940000
         AR    1,15                                                     19960000
         B     CLEAR3                                                   19980000
CLEAR2   LTR   0,0                                                      20000000
         BC    8,0(14)                                                  20020000
         XR    15,0                                                     20040000
         XR    0,15                                                     20060000
         XR    15,0                                                     20080000
         EX    15,CLEAR1                                                20100000
         BR    14                                                       20120000
CLEAR1   MVC   1(1,1),0(1)                                              20140000
*********************************************************************** 20160000
**                                                                   ** 20180000
**    REQUEST BLOCK --  MISC DC,DS,EQUATE STATEMENTS                 ** 20200000
**                                                                   ** 20220000
*********************************************************************** 20240000
         DS    0F                                                       20260000
FOXES    DC    X'0000FFFF'              BIT SETTING TO         @ZM30153 20270003
*                                       CLEAR REGISTER         @ZM30153 20272003
DBTWELVE DC    H'12'                                                    20280000
DBEIGHT  DC    XL2'08'                                                  20300000
         DS    0H                                                       20320000
HONE     DC    X'0001'                                                  20340000
         DS    0H                                                       20360000
DBTWO    DC    X'0002'                                                  20380000
UNIT     DC    XL5'00'                 SPECIFIC UNIT NAME          DT0I 20390018
R0       EQU   0                                                        20400000
R1       EQU   1                                                        20420000
R2       EQU   2                                                        20440000
R3       EQU   3                                                        20460000
R4       EQU   4                                                        20480000
DBAVIL1  EQU   0                                                        20500000
DBSCANAD EQU   1                         ADDR RETURNED FROM SCAN PROG   20520000
DBLENGTH EQU   2                         LENG RETURNED FROM SCAN PROG   20540000
DBR1     EQU   3                         MAINLY FOR CONTROL LOOPS       20560000
DBR3     EQU   4                         MAINLY FOR CONTROL LOOPS       20580000
DBCOMPR  EQU   5                         MAINLY FOR CONTROL LOOPS       20600000
DBAVIL3  EQU   7                                                        20620000
DBBASE1  EQU   8                                                        20640000
DBAVIL0  EQU   6                                                        20660000
DBBASE   EQU   9                                                        20680000
DBAVIL2  EQU   10                                                       20700000
DBNXRPTR EQU   11                                                       20720000
DBAVIL5  EQU   12                                                       20740000
DBSAVR   EQU   13                        PTR TO SAVE AREA (LINKAGES)    20760000
DBRET    EQU   14                        RETURN REG       (LINKAGES)    20780000
DBBRTO   EQU   15                        BRANCH TO ADDR   (LINKAGES)    20800000
DBCOMSW  EQU   IEHMVV20                                                 20820000
DBNNPTR  EQU   IEHMVV21                                                 20840000
DBFLPTR  EQU   IEHMVV22                                                 20860000
DBTLPTR  EQU   IEHMVV23                                                 20880000
DBCVPTR  EQU   IEHMVV24                                                 20900000
DBEXPPTR EQU   IEHMVV25                                                 20920000
DBIERPTR EQU   IEHMVV26                                                 20940000
DBFAADD  EQU   IEHMVV27                                                 20960000
DBNXTPTR EQU   IEHMVV10                                                 20980000
DBELPTR  EQU   IEHMVV10+4                                               21000000
DBENTCT  EQU   IEHMVV27+8                                               21020000
DBREENTR EQU   IEHMVV27+4                                               21040000
ESSENTRY EQU   IEHMVV27+4                                               21060000
ESTENTRY EQU   IEHMVV27+5                                               21080000
DBSARG   EQU   IEHMVV27+12                                              21100000
DBACTTYP EQU   IEHMVV27+30                                              21120000
DBBYTE   EQU   IEHMVV27+31                                              21140000
NOTEAREA EQU   IEHMVV27+20                                              21160000
DBLOOKFO EQU   IEHMVV27+24                                              21180000
XSWITCHS EQU   IEHMVV27+28                                              21200000
SWITCHRD EQU   IEHMVV90                                                 21220000
DISK     EQU   X'02'                                                    21240000
EQUKWD   EQU   X'3C'                                                    21260000
RENAMESW EQU   X'04'                                                    21280000
TWO      EQU   X'02'                                                    21300000
TAPE     EQU   X'01'                                                    21320000
BYPASS   EQU   X'40'                                                    21340000
IERSW    EQU   X'80'                                                    21360000
TO       EQU   X'80'                                                    21380000
ERRSCAN  EQU   X'80'                                                    21400000
SYSINEOF EQU   X'20'                                                    21420000
ANYKEY   EQU   X'40'                                                    21440000
DSGROUP  EQU   X'10'                                                    21460000
DSGORPDS EQU   X'18'                                                    21480000
DSGORVOL EQU   X'12'                                             Y02918 21490002
DSNORPDS EQU   X'28'                                                    21500000
FROM     EQU   X'01'                                                    21520000
OPERATOR EQU   X'00'                                                    21540000
TYPCODE  EQU   X'20'                                                    21560000
OPERATR  EQU   X'FF'                                                    21580000
VOLID    EQU   X'10'                                                    21600000
KEYDDN   EQU   X'80'                                                    21620000
SEQNUMB  EQU   X'08'                                                    21640000
DSNAME   EQU   X'04'                                                    21660000
MEMNAME  EQU   X'02'                                                    21680000
DUMP     EQU   X'01'                                                    21700000
PARAM    EQU   X'02'                                                    21720000
RENAME   EQU   X'20'                                                    21740000
RTPAREN  EQU   X'01'                                                    21760000
OFF      EQU   X'DF'                                                    21780000
BLANK    EQU   C' '                                                     21800000
TODDSW   EQU   X'40'                                                    21820000
DSNSW    EQU   X'20'                                                    21840000
PDS      EQU   X'08'                                                    21860000
CVOL     EQU   X'40'                                                    21880000
CATLG    EQU   X'10'                                                    21900000
MOVE     EQU   X'80'                                                    21920000
UNCATLG  EQU   X'20'                                                    21940000
SECURITY EQU   X'08'                                                    21960000
CATLOG   EQU   X'04'                                                    21980000
CARDPRNT EQU   X'10'                                                    22000000
MOVECOPY EQU   X'C0'                                                    22020000
FRSTIER  EQU   X'40'                                                    22040000
INCLUDE  EQU   X'84'                                                    22060000
REPLACE  EQU   X'86'                                                    22080000
SELECT   EQU   X'80'                                                    22100000
EXCLUDE  EQU   X'82'                                                    22120000
EXPAND   EQU   X'04'                                                    22140000
EXPDAT   EQU   X'01'                                                    22160000
EXC      EQU   X'02'                                                    22180000
INC      EQU   X'40'                                                    22200000
SELENCNT EQU   X'81'                                                    22220000
COPY     EQU   X'40'                                                    22240000
COMPLEX  EQU   X'20'                                                    22260000
COMPLEXM EQU   X'40'                                                    22280000
UNLOAD   EQU   X'40'                                             A37919 22290021
COPYAUTH EQU   X'10'                   COPYAUTH KEYWORD        @G32DSFS 22295032
RDDCB    EQU   IEHMVV90+48                                              22300000
PARENCTR EQU   IEHMVV90+X'80'          COUNT OF OPEN PARENTHESES A21900 22306018
ZERO     EQU   X'00'                                             A21900 22312018
CVOLPASS EQU   X'03'                   CVOL BYPASS SWITCH       YL026VC 22314002
CVOLMSG  EQU   X'13'                   CVOL MESSAGE NUMBER      YL026VC 22316002
         DS    0F                                                       22320000
DBSIX    DC    H'06'                                                    22340000
SAVEREGB DS    F                       SAVE AREA FOR REG11     @ZA10933 22346008
SAVEREG2 DS    F                       SAVE AREA FOR REG2      @ZA10933 22352008
SAVEREG3 DS    F                       SAVE AREA FOR REG3      @ZA11956 22356008
         DS    0F                                                       22360000
DBCTONE  DC    XL4'01000000'                                            22380000
MASK1    DC    XL4'00000030'                                            22400000
         DS    0F                                                       22420000
DBFORTY4 DC    X'002C'                                                  22440000
*                                                                       22460000
*                                                                       22480000
*                                                                       22500000
*                                                                       22520000
*                                                                       22540000
DBERR1   LA    R3,1                                                     22560000
         B     ERRDUMP                                                  22580000
DBERR2   LA    R3,2                                                     22600000
         B     ERRDUMP                                                  22620000
DBERR3   LA    R3,3                                                     22640000
         B     ERRDUMP                                                  22660000
DBERR4   LA    R3,4                                                     22680000
         B     ERRDUMP                                                  22700000
DBERR5   LA    R3,5                                                     22720000
         B     ERRDUMP                                                  22740000
DBERR6   LA    R3,6                                                     22760000
         B     ERRDUMP                                                  22780000
DBERR7   LA    R3,7                                                     22800000
         B     ERRDUMP                                                  22820000
DBERR8   LA    R3,8                                                     22840000
         B     ERRDUMP                                                  22860000
DBERR9   LA    R3,9                                                     22880000
         B     ERRDUMP                                                  22900000
DBERR10  LA    R3,10                                                    22920000
         B     ERRDUMP                                                  22940000
DBERR11  LA    R3,11                                                    22960000
         B     ERRDUMP                                                  22980000
DBERR12  LA    R3,13                                                    23000000
         B     ERRDUMP                                                  23020000
DBERR13  LA    R3,14                                                    23040000
         B     ERRDUMP                                                  23060000
DBERR14  LA    R3,15                                                    23080000
         B     ERRDUMP                                                  23100000
DBERR15  LA    R3,12                                                    23120000
         B     ERRDUMP                                                  23140000
DBEOFRTN OI    XSWITCHS+1,X'20'         TURN ON END OF INPUT SW         23160000
         TM    IEHMVV20,X'C0'                                           23180000
         BZ    RET2                                                     23200000
          TM    SWITCHRD,ERRSCAN   SYNTAX ERROR                  A32046 23203020
          BZ    SCAEXIT1           *B IF NOT                     A32046 23206020
          LA    R2,16              CAUSE MSG MODULE TO GO TO ESK A32046 23209020
          LA    R3,9               INDIC MSG # 309               A32046 23212020
          B     ESAEXIT                                          A32046 23215020
         B     SCAEXIT1                                                 23220000
ERRDUMP  DS    0C                                                       23240000
         TM    IEHMVV20+3,X'20'        HAS CARD BEEN PRINTED            23260000
         BZ    SAVMESS                 BRANCH IF NO                     23280000
         MVI   ESSENTRY,X'00'          RESET RENTRY SW                  23300000
         MVI   ESTENTRY,X'00'          RESET RENTRY SW                  23320000
         OI    SWITCHRD,BYPASS    TURN SCAN BYPASS SWITCH ON       7474 23330017
         LA    R2,12                   CAUSE MSG MODULE TO XCTL TO EST  23340000
ESAEXIT  EQU   *                                                        23360000
       IEHPOST (14),T                                                   23380000
        XCTL  EP=IEHMVESA                                               23400000
INIT1    DS    0H                                                       23420000
         MVI   ESTENTRY,X'00'          RESET RENTRY SW                  23440000
         B     ESTEXIT                                                  23460000
SCAEXIT1 DS    0H                                                       23502802
         MVI ESTENTRY,X'0C'            SET EST ENTRY TO SCAEXIT1        23506402
         B     ESTEXIT                 WRITE MESSAGE           @Z40CSJH 23546608
FINDFROM DS    0H                                                       23553302
         MVI   ESTENTRY,X'04'          SET EST ENTRY TO FINDFROM        23560000
         B     ESTEXIT                                                  23580000
WRITEUT1 MVI   ESTENTRY,X'08'          SET EST ENTRY TO WRITEUT1        23600000
         B     ESTEXIT                                                  23620000
ESTEXIT  DS    0H                                                       23640000
       IEHPOST (14),T                                                   23660000
         XCTL  (4,12),EP=IEHMVEST                                       23680000
RET2     DS    0H                                                       23700000
       IEHPOST (14),T                                                   23720000
         XCTL  (4,12),EP=IEHMVESK                                       23740000
ERRDUMP1 DS    0H                                                       23760000
         MVI   DBREENTR,X'00'                                           23780000
         TM    XSWITCHS+1,X'20'         IS END OF INPUT ON              23800000
         BO    RET2                                                     23820000
         OI    SWITCHRD,BYPASS         TURN ON SCAN BYPASS SWITCH       23840000
         TM    SWITCHRD,SYSINEOF       IS SCAN EOF SWITCH ON            23860000
         BO    RET2                                                     23880000
         OI    DBCOMSW+3,CARDPRNT      TURN ON CARDPRINT CONTROL SWITCH 23900000
         B     INIT1                                                    23920000
SAVMESS  OI    DBFAADD,X'80'           TURN ON SAVE MESS SW             23940000
        STC   R3,IEHMVV00+130         SAVE MESSAGE NUMBER               23960000
         B     ERRDUMP1                                                 23980000
         DS    0F                                                       24000000
PATCH    DS    10F                      PATCH AREA             @Z40CSJH 24010008
         END                                                            24020000
