Table of Contents

DMSEXT History

References

Update History

CMS File Input : DMSEXT ASSEMBLE
Date : 12/12/1978 8:26:00 AM
VM Context : MAINT(393)
File Name : DMSEXT.ASSEMBLE.Z1.txt
Modified : 1/16/2021 7:31:31 AM
Created : 1/16/2021 7:31:31 AM

Update Order

  1. R09732DS 607 MSDMSEXT072E IF &LOOP STATEMENT WITHIN AN &IF
  2. R15034DS 628 UV06028 DMSEXT FIX EXEC SO CALLERS OS EXITS NOT WIPED OUT
  3. R16203DS PTF PE VM15034 RESET
  4. HRC007DS V01 SUBSTITUTE VARIABLES FOR EXEC LABELS & MULT AND DIVIDE
  5. HRC309DS v03 EXEC now passes EPLIST when it calls CMS commands
  6. HRC380DS v03 Make &TRACE a synonym of &CONTROL

R09732DS

Date Monday Dec 17, 1979 11:15:00 AM
Loaded from MAINT(193)
       R09732DS: ./ R 615000 $ 615000
       R09732DS:          MVC   TEN6(TWENTY4,PTR),LAST3  REPLACE WITH NON       @VA09732
 BEGIN APPLY >>> ./ R 615000 $ 615000
   END APPLY >>> ./ R 615000 $ 615000
Update Succeeded
Update Execution Time 23 milliseconds.

R15034DS

Date Monday Feb 15, 1982 09:29:00 AM
Loaded from MAINT(193)
       R15034DS: ./ D 0659000 0664000
 BEGIN APPLY >>> ./ D 0659000 0664000
   END APPLY >>> ./ D 0659000 0664000
Update Succeeded
Update Execution Time 23 milliseconds.

R16203DS

Date Wednesday Feb 08, 2006 02:31:00 PM
Loaded from MAINT(193)
       R16203DS: ./ R 658000 665000 $ 658000 1000                                        00048000
       R16203DS:          MVC   LASTCMND(8),0(R1)                                        0049000
       R16203DS:          TM    OSSFLAGS,OSRESET                                         0050000
       R16203DS:          BNO   OSCLEAR                                                  0051000
       R16203DS:          SVC   203                                                      0052000
       R16203DS:          DC    H'12'                                                    0053000
       R16203DS:          MVI   OSSFLAGS,X'00'                                           0054000
       R16203DS: OSCLEAR  EQU   *                                                        0055000
       R16203DS:          ICM   R1,B'1000',=X'0D'                                        0056000
 BEGIN APPLY >>> ./ R 658000 665000 $ 658000 1000                                        00048000
   END APPLY >>> ./ R 658000 665000 $ 658000 1000                                        00048000
Update Succeeded
Update Execution Time 31 milliseconds.

HRC007DS

Date Friday Feb 10, 2006 09:53:00 AM
Loaded from MAINT(093)
       HRC007DS: ./ I 00418000          $ 418100 100                   02/10/06 09:53:10
       HRC007DS:          MVC   TEMPD2,TEMPD   HERE FOR SUBSTITUTE ROUTINE      HRC007DS
       HRC007DS:          LA    R6,TEMPD2      ADDR OF LABEL TO SUBSTITUTE      HRC007DS
       HRC007DS:          L     R15,ASUBSTIT   ADDR SUBSTITUTION ROUTINE        HRC007DS
       HRC007DS:          BALR  RET,R15        GOTO ROUTINE                     HRC007DS
       HRC007DS:          MVC   TEMPD,TEMPD2   REPLACE FOR OTHER ROUTINES       HRC007DS
       HRC007DS:          CLC   TEMPD(8),GOLAB DOES IT MATCH                    HRC007DS
       HRC007DS:          BE    GOTOHERE       YES....                          HRC007DS
       HRC007DS: ./ I 01329000          $ 1329070 70                   02/10/06 09:53:10
       HRC007DS:          SPACE ,                                               HRC007DS
       HRC007DS: ERRDIVZ  LA    R10,MERRDIVZ   DIVIED BY ZERO ERROR             HRC007DS 01328000
       HRC007DS:          B     LEAVE                                           HRC007DS 01329000
       HRC007DS: ./ I 01459900          $ 1459920 20                   02/10/06 09:53:10
       HRC007DS: ERR30    DC    C'EXEC DIVIDE BY ZERO'                          HRC007DS 01459300
       HRC007DS: MERRDIVZ DC    AL1(L'ERR30)                                    HRC007DS 01459600
       HRC007DS:          DC    X'1E'                                           HRC007DS 01459900
       HRC007DS: ./ I 01879000          $ 1879200 200                  02/10/06 09:53:10
       HRC007DS:          CLC   24(2,PTR),=CL2'* '       MULTIPLY?              HRC007DS 01878000
       HRC007DS:          BE    TIMES          BRANCH IF SO                     HRC007DS 01879000
       HRC007DS:          CLC   24(2,PTR),=CL2'/ '       DIVIDE?                HRC007DS 01878000
       HRC007DS:          BE    DIVIDE         BRANCH IF SO                     HRC007DS 01879000
       HRC007DS: ./ I 01961000          $ 1961300 300                  02/10/06 09:53:10
       HRC007DS: TIMES    EQU   *                                               HRC007DS 01961000
       HRC007DS: DIVIDE   EQU   *                                               HRC007DS 01961000
       HRC007DS: ./ R 01987000          $ 1987490 490                  02/10/06 09:53:10
       HRC007DS:          BNE   ASGNUML                  NO, KEEP CHECKING      HRC007DS
       HRC007DS: ./ I 01988000          $ 1988040 40                   02/10/06 09:53:10
       HRC007DS:          B     ASGNEND        CONTINUE WITH CHECK FOR OVERFLOW HRC007DS
       HRC007DS: ASGNUML  CLC   0(2,R6),=CL2'* '   TIMES                        HRC007DS
       HRC007DS:          BNE   ASGNDIV        NO....                           HRC007DS
       HRC007DS:          CVB   R1,CVDSPACE    GET MULTIPLIER                   HRC007DS
       HRC007DS:          ZAP   CVDSPACE(8),TEMPD(5)                            HRC007DS
       HRC007DS:          CVB   R15,CVDSPACE   MULTIPLICAND                     HRC007DS
       HRC007DS:          MR    R0,R15         MULTIPLY                         HRC007DS
       HRC007DS:          SLDA  R0,32          CHECK FOR OVERFLOW               HRC007DS
       HRC007DS:          CVD   R0,CVDSPACE    CONVERT                          HRC007DS
       HRC007DS:          MVC   TEMPD+4(1),CVDSPACE+7 GET SIGN IN CASE OVERFLOW HRC007DS
       HRC007DS:          BO    OVERFLOW                                        HRC007DS
       HRC007DS:          ZAP   TEMPD(5),CVDSPACE(8)                            HRC007DS
       HRC007DS:          B     ASGNEND        CONT CHECK FOR OVERFLOW          HRC007DS
       HRC007DS: ASGNDIV  CLC   0(2,R6),=CL2'/ '   DIVIDE?                      HRC007DS
       HRC007DS:          BNE   ERRASS         ERROR IF NOT                     HRC007DS
       HRC007DS:          CVB   R15,CVDSPACE   GET DIVISOR                      HRC007DS
       HRC007DS:          ZAP   CVDSPACE(8),TEMPD(5)                            HRC007DS
       HRC007DS:          CVB   R1,CVDSPACE    DIVIDEND                         HRC007DS
       HRC007DS:          LTR   R15,R15                                         HRC007DS
       HRC007DS:          BZ    ERRDIVZ        CAN'T DIVIDE BY ZERO             HRC007DS
       HRC007DS:          SLR   R0,R0          CLEAR FOR DIVIDE                 HRC007DS
       HRC007DS:          DR    R0,R15         DIVIDE                           HRC007DS
       HRC007DS:          CVD   R1,CVDSPACE    QUOTIENT                         HRC007DS
       HRC007DS:          ZAP   TEMPD(5),CVDSPACE(8)                            HRC007DS
       HRC007DS: ./ R 02215080 02215880 $ 2215470 390                  02/10/06 09:53:10
       HRC007DS:          SPACE ,                                               HRC007DS
       HRC007DS: ./ R 02678000 02679000 $ 2678090 90                   02/10/06 09:53:10
       HRC007DS:          SPACE 2                                               HRC007DS
       HRC007DS: TOKCHK   DS    0H                                              HRC007DS
       HRC007DS:          DC    64X'FF'                                         HRC007DS
       HRC007DS:          DC    X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' BLANK       HRC007DS
       HRC007DS:          DC    X'FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFF' $           HRC007DS
       HRC007DS:          DC    16X'FF'                                         HRC007DS
       HRC007DS:          DC    X'FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF' # @         HRC007DS
       HRC007DS:          DC    64X'FF'                                         HRC007DS
       HRC007DS:          DC    X'FF000000000000000000FFFFFFFFFFFF' A-I         HRC007DS
       HRC007DS:          DC    X'FF000000000000000000FFFFFFFFFFFF' J-R         HRC007DS
       HRC007DS:          DC    X'FFFF0000000000000000FFFFFFFFFFFF' S-Z         HRC007DS
       HRC007DS:          DC    X'00000000000000000000FFFFFFFFFFFF' 0-9         HRC007DS
       HRC007DS:          EJECT ,                                               HRC007DS 02679000
       HRC007DS: ./ I 02730000          $ 2730500 500                  02/10/06 09:53:10
       HRC007DS: TEMPD2   DS    D              LOCAL TEMP AREA                  HRC007DS 02729000
 BEGIN APPLY >>> ./ I 00418000          $ 418100 100                   02/10/06 09:53:10
   END APPLY >>> ./ I 00418000          $ 418100 100                   02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 01329000          $ 1329070 70                   02/10/06 09:53:10
   END APPLY >>> ./ I 01329000          $ 1329070 70                   02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 01459900          $ 1459920 20                   02/10/06 09:53:10
   END APPLY >>> ./ I 01459900          $ 1459920 20                   02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 01879000          $ 1879200 200                  02/10/06 09:53:10
   END APPLY >>> ./ I 01879000          $ 1879200 200                  02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 01961000          $ 1961300 300                  02/10/06 09:53:10
   END APPLY >>> ./ I 01961000          $ 1961300 300                  02/10/06 09:53:10
 BEGIN APPLY >>> ./ R 01987000          $ 1987490 490                  02/10/06 09:53:10
   END APPLY >>> ./ R 01987000          $ 1987490 490                  02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 01988000          $ 1988040 40                   02/10/06 09:53:10
   END APPLY >>> ./ I 01988000          $ 1988040 40                   02/10/06 09:53:10
 BEGIN APPLY >>> ./ R 02215080 02215880 $ 2215470 390                  02/10/06 09:53:10
   END APPLY >>> ./ R 02215080 02215880 $ 2215470 390                  02/10/06 09:53:10
 BEGIN APPLY >>> ./ R 02678000 02679000 $ 2678090 90                   02/10/06 09:53:10
   END APPLY >>> ./ R 02678000 02679000 $ 2678090 90                   02/10/06 09:53:10
 BEGIN APPLY >>> ./ I 02730000          $ 2730500 500                  02/10/06 09:53:10
   END APPLY >>> ./ I 02730000          $ 2730500 500                  02/10/06 09:53:10
Update Succeeded
Update Execution Time 47 milliseconds.

HRC309DS

Date Friday May 08, 2009 02:38:00 PM
Loaded from MAINT(093)
       HRC309DS: ./ I 00128000          $ 128050 50                    05/08/09 14:38:57
       HRC309DS: *               The address of the command's parameter list is HRC309DS 00128050
       HRC309DS: *               passed in R1.  The high order byte of R1 is    HRC309DS 00128100
       HRC309DS: *               set to one of the following values:            HRC309DS 00128150
       HRC309DS: *               x'0D'  &CONTROL CMS or &CONTROL ALL is in      HRC309DS 00128200
       HRC309DS: *                      effect.  (No change from VM/370 R6.)    HRC309DS 00128250
       HRC309DS: *               x'01'  &CONTROL OFF is in effect.  (This is as HRC309DS 00128300
       HRC309DS: *                      a call from EXEC 2 or REXX.)            HRC309DS 00128350
       HRC309DS: *               The CMS commands ERASE (DMSERS) LISTFILE       HRC309DS 00128400
       HRC309DS: *               (DMSLST), RENAME (DMSRNM) and STATE (DMSSTT)   HRC309DS 00128450
       HRC309DS: *               control what messages they emit based on the   HRC309DS 00128500
       HRC309DS: *               setting of this flag byte.                     HRC309DS 00128550
       HRC309DS: *                                                              HRC309DS 00128600
       HRC309DS: *               The address of the command's extended paramter HRC309DS 00128650
       HRC309DS: *               list (the untranslated, untokenized command    HRC309DS 00128700
       HRC309DS: *               string) is passed in R0.                       HRC309DS 00128750
       HRC309DS: ./ I 00194000          $ 194100 100                   05/08/09 14:38:57
       HRC309DS:          USING SUBSTIT,R7                                      HRC309DS 00194100
       HRC309DS:          LA    R7,EPLBUILD    get address of EPLIST code       HRC309DS 00194200
       HRC309DS:          DROP  R7                                              HRC309DS 00194300
       HRC309DS:          ST    R7,AEPLBLD     save its address                 HRC309DS 00194400
       HRC309DS: ./ I 00457000          $ 457100 100                   05/08/09 14:38:57
       HRC309DS:          MVC   RAWBUF,UNSCND  save unscanned line for EPLIST   HRC309DS 00457100
       HRC309DS:          ST    R0,RAWBUFLN    and save the length              HRC309DS 00457200
       HRC309DS:          SR    R1,R1                                           HRC309DS 00457300
       HRC309DS:          ST    R1,CMDLSTRT    initialize this variable         HRC309DS 00457400
       HRC309DS: ./ I 00527000          $ 527100 100                   05/08/09 14:38:57
       HRC309DS:          SR    R15,R15        get a zero                       HRC309DS 00527100
       HRC309DS:          C     R15,CMDLSTRT   been here before                 HRC309DS 00527200
       HRC309DS:          BNE   IFLOOP1        yes, so don't save it again      HRC309DS 00527300
       HRC309DS:          ST    R9,CMDLSTRT    save start of command line       HRC309DS 00527400
       HRC309DS: IFLOOP1  DS    0H                                              HRC309DS 00527500
       HRC309DS: ./ R 00669000          $ 669000                       05/08/09 14:38:57
       HRC309DS:          ICM   R1,B'1000',=X'01' yes - use x'01' instead       HRC309DS 00669000
       HRC309DS: ./ I 00670000          $ 670100 100                   05/08/09 14:38:57
       HRC309DS:          SPACE 1                                               HRC309DS 00670100
       HRC309DS:          L     R15,AEPLBLD    get EPLIST build routine address HRC309DS 00670200
       HRC309DS:          BALR  R14,R15        build EPLIST (R0 is updated)     HRC309DS 00670300
       HRC309DS:          SPACE 1                                               HRC309DS 00670400
       HRC309DS: ./ R 01400000                                         05/08/09 14:38:57
       HRC309DS: ERRMSG   DC    C'EXT072E Error in EXEC file '                  HRC309DS 01400000
       HRC309DS: ./ R 01401000                                         05/08/09 14:38:57
       HRC309DS: ERRLINE  DC    C', line '                                      HRC309DS 01401000
       HRC309DS: ./ R 01404000                                         05/08/09 14:38:57
       HRC309DS: ERR1     DC    C'File not found'                               HRC309DS 01404000
       HRC309DS: ./ R 01407000 01408000 $ 1407000 1000                 05/08/09 14:38:57
       HRC309DS: ERR2     DC    X'50E2D2C9D74096994050C7D6E3D6408599999699'              01407000
       HRC309DS: *              ABOVE SAYS &SKIP or &GOTO error                          01408000
       HRC309DS: ./ R 01411000                                         05/08/09 14:38:57
       HRC309DS: ERR3     DC    C'Bad file format'                              HRC309DS 01411000
       HRC309DS: ./ R 01414000                                         05/08/09 14:38:57
       HRC309DS: ERR4     DC    C'Too many arguments'                           HRC309DS 01414000
       HRC309DS: ./ R 01417000                                         05/08/09 14:38:57
       HRC309DS: ERR5     DC    C'Max depth of loop nesting exceeded'           HRC309DS 01417000
       HRC309DS: ./ R 01420000                                         05/08/09 14:38:57
       HRC309DS: ERR6     DC    C'Error reading file'                           HRC309DS 01420000
       HRC309DS: ./ R 01423000                                         05/08/09 14:38:57
       HRC309DS: ERR7     DC    C'Invalid syntax'                               HRC309DS 01423000
       HRC309DS: ./ R 01426000                                         05/08/09 14:38:57
       HRC309DS: ERR8     DC    C'Invalid form of condition'                    HRC309DS 01426000
       HRC309DS: ./ R 01429000                                         05/08/09 14:38:57
       HRC309DS: ERR9     DC    C'Invalid assignment'                           HRC309DS 01429000
       HRC309DS: ./ R 01432000                                         05/08/09 14:38:57
       HRC309DS: ERR10    DC    C'Misuse of special variable'                   HRC309DS 01432000
       HRC309DS: ./ R 01435000 01436000 $ 1435000 1000                 05/08/09 14:38:57
       HRC309DS: ERR11    DC    X'C5999996994089954050C5D9D9D6D9408183A3899695'          01435000
       HRC309DS: *     ABOVE SAYS 'Error in &ERROR action'                               01436000
       HRC309DS: ./ R 01439000                                         05/08/09 14:38:57
       HRC309DS: ERR12    DC    C'Conversion error'                             HRC309DS 01439000
       HRC309DS: ./ R 01442000                                         05/08/09 14:38:57
       HRC309DS: ERR13    DC    C'Too many tokens in statement'                 HRC309DS 01442000
       HRC309DS: ./ R 01445000                                         05/08/09 14:38:57
       HRC309DS: ERR14    DC    C'Misuse of built-in function'                  HRC309DS 01445000
       HRC309DS: ./ R 01448000                                         05/08/09 14:38:57
       HRC309DS: ERR15    DC    C'EOF found in loop'                            HRC309DS 01448000
       HRC309DS: ./ R 01451000                                         05/08/09 14:38:57
       HRC309DS: ERR16    DC    C'Invalid control word'                         HRC309DS 01451000
       HRC309DS: ./ R 01454000                                         05/08/09 14:38:57
       HRC309DS: ERR17    DC    C'EXEC arithmetic underflow'                    HRC309DS 01454000
       HRC309DS: ./ R 01457000                                         05/08/09 14:38:57
       HRC309DS: ERR18    DC    C'EXEC arithmetic overflow'                     HRC309DS 01457000
       HRC309DS: ./ R 01459300                                         05/08/09 14:38:57
       HRC309DS: ERR19    DC    C'Invalid char in variable symbol'              HRC309DS 01459300
       HRC309DS: ./ R 01459920                                         05/08/09 14:38:57
       HRC309DS: ERR30    DC    C'EXEC divide by zero'                          HRC309DS 01459920
       HRC309DS: ./ R 02680000          $ 2680000 5                    05/08/09 14:38:57
       HRC309DS: EPLBUILD DS    0H                                              HRC309DS 02680000
       HRC309DS: * EPLBUILD builds an extended PLIST setting R0 to point to it. HRC309DS 02680005
       HRC309DS: * The untranslated argument string is in RAWBUF, and it scans  HRC309DS 02680010
       HRC309DS: * that string for words that begin with &.  SUBSTIT is called  HRC309DS 02680015
       HRC309DS: * to retrieve the value for the variable, and that value is    HRC309DS 02680020
       HRC309DS: * substuted for the variable in RAWBUF.  Thus the EPLIST       HRC309DS 02680025
       HRC309DS: * correctly contains any variable values from the EXEC         HRC309DS 02680030
       HRC309DS: * procedure.  Note that truncation of the argument string will HRC309DS 02680035
       HRC309DS: * occur if substitution causes the string to grow longer than  HRC309DS 02680040
       HRC309DS: * 130 bytes.                                                   HRC309DS 02680045
       HRC309DS:          USING *,R15                                           HRC309DS 02680050
       HRC309DS:          STM   R2,R14,EPLSAVE save the registers we use        HRC309DS 02680055
       HRC309DS:          LA    R3,RAWBUF      point to start of command line   HRC309DS 02680060
       HRC309DS: * If the command was called as the clause in an &IF or &ERROR  HRC309DS 02680065
       HRC309DS: * instruction, then RAWBUF points to the start of the EXEC     HRC309DS 02680070
       HRC309DS: * line, not the start of the command line.  We fix this.       HRC309DS 02680075
       HRC309DS:          SLR   R5,R5                                           HRC309DS 02680080
       HRC309DS:          C     R5,CMDLSTRT                                     HRC309DS 02680085
       HRC309DS:          BZ    EPBLD4                                          HRC309DS 02680090
       HRC309DS:          S     R2,CMDLSTRT    has EXEC discarded tokens?       HRC309DS 02680095
       HRC309DS:          BZ    EPBLD4         no, so proceed normally          HRC309DS 02680100
       HRC309DS:          LR    R5,R2          R5 is num of bytes skipped       HRC309DS 02680105
       HRC309DS:          SRL   R5,3           calc number of words to skip     HRC309DS 02680110
       HRC309DS:          A     R3,RAWBUFLN    get end of command line          HRC309DS 02680115
       HRC309DS:          BCTR  R3,0           decrement for BXLE               HRC309DS 02680120
       HRC309DS:          LA    R2,1           loop increment                   HRC309DS 02680125
       HRC309DS:          LA    R4,RAWBUF      get start of command line again  HRC309DS 02680130
       HRC309DS: EPBLD1   DS    0H                                              HRC309DS 02680135
       HRC309DS: * Loop to skip R5 words in the command line.                   HRC309DS 02680140
       HRC309DS:          CLI   0(R4),C' '     look for space after this word   HRC309DS 02680145
       HRC309DS:          BE    EPBLD2         found it                         HRC309DS 02680150
       HRC309DS:          BXLE  R4,R2,EPBLD1   keep looping if not              HRC309DS 02680155
       HRC309DS:          B     EPBLD4         should never get here!           HRC309DS 02680160
       HRC309DS: EPBLD2   DS    0H                                              HRC309DS 02680165
       HRC309DS:          CLI   0(R4),C' '     eat up spaces between words      HRC309DS 02680170
       HRC309DS:          BNE   EPBLD3         found next word                  HRC309DS 02680175
       HRC309DS:          BXLE  R4,R2,EPBLD2   keep looping if not              HRC309DS 02680180
       HRC309DS: EPBLD3   DS    0H                                              HRC309DS 02680185
       HRC309DS:          SR    R5,R2          decrement count of words to skip HRC309DS 02680190
       HRC309DS:          BH    EPBLD1         keep looping: more words to skip HRC309DS 02680195
       HRC309DS:          LA    R3,1(R3)       point to end of command line     HRC309DS 02680200
       HRC309DS:          ST    R3,EPLARGND    store in EPLIST                  HRC309DS 02680205
       HRC309DS:          BCTR  R3,0           decrement for BXLE               HRC309DS 02680210
       HRC309DS:          B     EPBLD6         continue scanning normally       HRC309DS 02680215
       HRC309DS: EPBLD4   DS    0H                                              HRC309DS 02680220
       HRC309DS:          A     R3,RAWBUFLN    get end of command line          HRC309DS 02680225
       HRC309DS:          ST    R3,EPLARGND    store in EPLIST                  HRC309DS 02680230
       HRC309DS:          BCTR  R3,0           decrement for BXLE               HRC309DS 02680235
       HRC309DS:          LA    R2,1           loop increment                   HRC309DS 02680240
       HRC309DS:          LA    R4,RAWBUF      get start of command line again  HRC309DS 02680245
       HRC309DS: EPBLD5   DS    0H                                              HRC309DS 02680250
       HRC309DS:          CLI   0(R4),C' '     eat up spaces between words      HRC309DS 02680255
       HRC309DS:          BNE   EPBLD6         found next word                  HRC309DS 02680260
       HRC309DS:          BXLE  R4,R2,EPBLD5   keep looping if not              HRC309DS 02680265
       HRC309DS: EPBLD6   DS    0H                                              HRC309DS 02680270
       HRC309DS: * At this point R4 points to "start" of command line.          HRC309DS 02680275
       HRC309DS:          ST    R4,EPLCMD      store command name in EPLIST     HRC309DS 02680280
       HRC309DS: EPLOOP1  DS    0H                                              HRC309DS 02680285
       HRC309DS: * Loop to find the end of the command name. We scan for blanks HRC309DS 02680290
       HRC309DS: * as well as open and close parentheses.                       HRC309DS 02680295
       HRC309DS:          CLI   0(R4),C' '     is it a space?                   HRC309DS 02680300
       HRC309DS:          BE    EPCMD1         found it                         HRC309DS 02680305
       HRC309DS:          CLI   0(R4),C'('     is it an open parenthesis?       HRC309DS 02680310
       HRC309DS:          BE    EPCMD2         this is the start of arguments   HRC309DS 02680315
       HRC309DS:          CLI   0(R4),C')'     is it a close parenthesis?       HRC309DS 02680320
       HRC309DS:          BE    EPCMD2         this is the start of arguments   HRC309DS 02680325
       HRC309DS:          BXLE  R4,R2,EPLOOP1  keep looping if not              HRC309DS 02680330
       HRC309DS:          B     EPCMD2         no arguments                     HRC309DS 02680335
       HRC309DS: EPCMD1   DS    0H                                              HRC309DS 02680340
       HRC309DS:          LA    R4,1(R4)       next byte is start of arguments  HRC309DS 02680345
       HRC309DS:          ST    R4,EPLARGBG    store start of arguments         HRC309DS 02680350
       HRC309DS:          B     ENEXTARG       look for start of next argument  HRC309DS 02680355
       HRC309DS: EPCMD2   DS    0H                                              HRC309DS 02680360
       HRC309DS:          ST    R4,EPLARGBG    store start of arguments         HRC309DS 02680365
       HRC309DS:          LA    R4,1(R4)       next byte is blank or next arg   HRC309DS 02680370
       HRC309DS:          B     ENEXTARG       look for start of next argument  HRC309DS 02680375
       HRC309DS:          SPACE 1                                               HRC309DS 02680380
       HRC309DS: EARGSCAN DS    0H                                              HRC309DS 02680385
       HRC309DS: * Scan the argument string, substituting EXEC variable values  HRC309DS 02680390
       HRC309DS: * for any variables we find.  During the scan:                 HRC309DS 02680395
       HRC309DS: *    R3  points to last byte of the argument string.           HRC309DS 02680400
       HRC309DS: *    R4  advances through the string as we scan.               HRC309DS 02680405
       HRC309DS: *    R5  saves the start of the current argument.              HRC309DS 02680410
       HRC309DS:          LR    R5,R4          save start of argument           HRC309DS 02680415
       HRC309DS: EARGSCN1 DS    0H                                              HRC309DS 02680420
       HRC309DS: * Scan for the argument end.  R4 will advance as we scan.      HRC309DS 02680425
       HRC309DS:          CLI   0(R4),C' '     are we pointing to a space?      HRC309DS 02680430
       HRC309DS:          BE    EGOTARG        yes, we're at the end of the arg HRC309DS 02680435
       HRC309DS:          CLI   0(R4),C'('     is this arg an open paren?       HRC309DS 02680440
       HRC309DS:          BE    EARGSCN2                                        HRC309DS 02680445
       HRC309DS:          CLI   0(R4),C')'     is this arg a close paren?       HRC309DS 02680450
       HRC309DS:          BE    EARGSCN2                                        HRC309DS 02680455
       HRC309DS:          BXLE  R4,R2,EARGSCN1 keep looping if not              HRC309DS 02680460
       HRC309DS:          B     EGOTARG        go process the last argument     HRC309DS 02680465
       HRC309DS: EARGSCN2 DS    0H                                              HRC309DS 02680470
       HRC309DS:          LA    R4,1(R4)       start of next argument           HRC309DS 02680475
       HRC309DS:          B     ENEXTARG                                        HRC309DS 02680480
       HRC309DS: EGOTARG  DS    0H                                              HRC309DS 02680485
       HRC309DS: * R5 points to the argument start, R4 to the byte after.       HRC309DS 02680490
       HRC309DS:          CLI   0(R5),X'50'    is argument a possible variable? HRC309DS 02680495
       HRC309DS:          BNE   ENEXTARG       no, so no substitution required  HRC309DS 02680500
       HRC309DS:          SPACE 1                                               HRC309DS 02680505
       HRC309DS: * The argument is most likely an EXEC variable  Lucky for us   HRC309DS 02680510
       HRC309DS: * there is a subroutine that will substitute its value.        HRC309DS 02680515
       HRC309DS:          MVC   EXECVAR,=C'        ' clear the field            HRC309DS 02680520
       HRC309DS:          LR    R7,R4                                           HRC309DS 02680525
       HRC309DS:          SR    R7,R5          calculate length of argument     HRC309DS 02680530
       HRC309DS:          LA    R6,8                                            HRC309DS 02680535
       HRC309DS:          CR    R7,R6          greater than 8?                  HRC309DS 02680540
       HRC309DS:          BNH   EARGSCN3       no, it is OK                     HRC309DS 02680545
       HRC309DS:          LR    R7,R6          truncate at 8                    HRC309DS 02680550
       HRC309DS: EARGSCN3 DS    0H                                              HRC309DS 02680555
       HRC309DS:          LR    R0,R7          save length of argument          HRC309DS 02680560
       HRC309DS:          BCTR  R7,0           less 1 for EX                    HRC309DS 02680565
       HRC309DS:          LA    R6,EXECVAR     variable for SUBSTIT to scan     HRC309DS 02680570
       HRC309DS:          EX    R7,MVVALARG    MVC from R5 to R6 for R7 bytes   HRC309DS 02680575
       HRC309DS:          LR    R7,R15         save our base register           HRC309DS 02680580
       HRC309DS:          L     R15,ASUBSTIT   address of SUBSTIT               HRC309DS 02680585
       HRC309DS:          BALR  RET,R15        substitute the variable          HRC309DS 02680590
       HRC309DS:          LR    R15,R7         recover our base register        HRC309DS 02680595
       HRC309DS:          SPACE 1                                               HRC309DS 02680600
       HRC309DS: * We must copy the EXEC variable value to replace the variable HRC309DS 02680605
       HRC309DS: * name in the argument string.                                 HRC309DS 02680610
       HRC309DS:          LA    R8,1           loop increment                   HRC309DS 02680615
       HRC309DS:          LA    R9,7(R6)       end of value (less 1 for BXLE)   HRC309DS 02680620
       HRC309DS:          LR    R7,R6          start of value                   HRC309DS 02680625
       HRC309DS: EARGSCN4 DS    0H                                              HRC309DS 02680630
       HRC309DS:          CLI   0(R7),C' '     end of value yet?                HRC309DS 02680635
       HRC309DS:          BE    EARGSCN5       yes, reached end of the value    HRC309DS 02680640
       HRC309DS:          BXLE  R7,R8,EARGSCN4 keep looping if not              HRC309DS 02680645
       HRC309DS: EARGSCN5 DS    0H                                              HRC309DS 02680650
       HRC309DS:          SR    R7,R6          get length of value              HRC309DS 02680655
       HRC309DS:          LR    R10,R7         save it                          HRC309DS 02680660
       HRC309DS:          SR    R7,R0          room needed (could be negative)  HRC309DS 02680665
       HRC309DS:          LR    R14,R7         save it                          HRC309DS 02680670
       HRC309DS:          BZ    ECOPYVAL       no need to make room for value   HRC309DS 02680675
       HRC309DS:          CR    R4,R3          and are we at the last argument? HRC309DS 02680680
       HRC309DS:          BH    ECOPYVAL       no need to make room for value   HRC309DS 02680685
       HRC309DS:          SPACE 1                                               HRC309DS 02680690
       HRC309DS: * Now we move the string after the current arg to make room    HRC309DS 02680695
       HRC309DS: * for the token we are going to substitute.  We first move it  HRC309DS 02680700
       HRC309DS: * to a temporary buffer to avoid overwriting it with the MVC.  HRC309DS 02680705
       HRC309DS:          LA    R9,1(R3)       1st byte after argstring         HRC309DS 02680710
       HRC309DS:          SR    R9,R4          this way we copy the null byte   HRC309DS 02680715
       HRC309DS:          LA    R8,TEMPBUF                                      HRC309DS 02680720
       HRC309DS:          EX    R9,MVARGTMP    MVC from R4 to R8 for R9 bytes   HRC309DS 02680725
       HRC309DS:          LR    R7,R4          target for second move           HRC309DS 02680730
       HRC309DS:          AR    R7,R14         make room for variable value     HRC309DS 02680735
       HRC309DS:          EX    R9,MVTMPARG    MVC from R8 to R7 for R9 bytes   HRC309DS 02680740
       HRC309DS: ECOPYVAL DS    0H                                              HRC309DS 02680745
       HRC309DS: * At last we copy the variable value into the argument string. HRC309DS 02680750
       HRC309DS: * Then we adjust the argument string scan and end pointers,    HRC309DS 02680755
       HRC309DS: * truncating the string if necessary.                          HRC309DS 02680760
       HRC309DS:          LTR   R10,R10        check the length of the value    HRC309DS 02680765
       HRC309DS:          BH    EARGSCN6       go copy it                       HRC309DS 02680770
       HRC309DS:          SR    R4,R2          prevent double blanks in eplist  HRC309DS 02680775
       HRC309DS:          B     EARGSCN7                                        HRC309DS 02680780
       HRC309DS: EARGSCN6 DS    0H                                              HRC309DS 02680785
       HRC309DS:          BCTR  R10,0          decrement value len by 1 for EX  HRC309DS 02680790
       HRC309DS:          EX    R10,MVARGVAL   MVC from R6 to R5 for R10 bytes  HRC309DS 02680795
       HRC309DS: EARGSCN7 DS    0H                                              HRC309DS 02680800
       HRC309DS:          AR    R3,R14         adjust argument end pointer      HRC309DS 02680805
       HRC309DS:          LA    R8,RAWBUF+BUFL end of buffer -1                 HRC309DS 02680810
       HRC309DS:          CR    R3,R8          have we overrun the buffer?      HRC309DS 02680815
       HRC309DS:          BNH   EARGSCN8       branch if not                    HRC309DS 02680820
       HRC309DS:          LR    R3,R8          truncate it                      HRC309DS 02680825
       HRC309DS: EARGSCN8 DS    0H                                              HRC309DS 02680830
       HRC309DS:          AR    R4,R14         adjust scan pointer              HRC309DS 02680835
       HRC309DS: ENEXTARG DS    0H                                              HRC309DS 02680840
       HRC309DS: * R4 points to the first char after the end of an argument.    HRC309DS 02680845
       HRC309DS: * Loop to find the start of the next argument.  But first      HRC309DS 02680850
       HRC309DS: * check to see if we are at the end.                           HRC309DS 02680855
       HRC309DS:          CR    R4,R3          are we at the end?               HRC309DS 02680860
       HRC309DS:          BH    EARGEND        yes, go finish up                HRC309DS 02680865
       HRC309DS: EARGSCN9 DS    0H                                              HRC309DS 02680870
       HRC309DS:          CLI   0(R4),C' '     is it still a space?             HRC309DS 02680875
       HRC309DS:          BNE   EARGSCAN       no, so found start of next arg   HRC309DS 02680880
       HRC309DS:          BXLE  R4,R2,EARGSCN9 keep looping if not              HRC309DS 02680885
       HRC309DS: EARGEND  DS    0H                                              HRC309DS 02680890
       HRC309DS: * We have reached the end of the argument list.                HRC309DS 02680895
       HRC309DS:          ST    R4,EPLARGND    store end of args in EPLIST      HRC309DS 02680900
       HRC309DS:          SLR   R2,R2          get a zero                       HRC309DS 02680905
       HRC309DS:          ST    R2,EPLUWORD    and store it in the EPLIST       HRC309DS 02680910
       HRC309DS:          SPACE 1                                               HRC309DS 02680915
       HRC309DS: * Our work here is done.  Point R0 to the EPLIST and return.   HRC309DS 02680920
       HRC309DS:          LA    R0,EPLIST      pass the extended PLIST          HRC309DS 02680925
       HRC309DS:          LM    R2,R14,EPLSAVE restore the registers            HRC309DS 02680930
       HRC309DS:          DROP  R15                                             HRC309DS 02680935
       HRC309DS:          BR    R14            return to our caller             HRC309DS 02680940
       HRC309DS:          SPACE 1                                               HRC309DS 02680945
       HRC309DS: MVARGTMP MVC   0(0,R8),0(R4)  make room for variable value     HRC309DS 02680950
       HRC309DS: MVARGVAL MVC   0(0,R5),0(R6)  copy to arg string from sub area HRC309DS 02680955
       HRC309DS: MVTMPARG MVC   0(0,R7),0(R8)  make room for variable value     HRC309DS 02680960
       HRC309DS: MVVALARG MVC   0(0,R6),0(R5)  copy arg to val sub area         HRC309DS 02680965
       HRC309DS:          EJECT                                                 HRC309DS 02680970
       HRC309DS: FREEST   DSECT                                                 @V305614 02680975
       HRC309DS: ./ I 02746000          $ 2746050 50                   05/08/09 14:38:57
       HRC309DS: *        Next two buffers are 6 bytes longer than needed to    HRC309DS 02746050
       HRC309DS: *        allow for overrun during variable substitution.       HRC309DS 02746100
       HRC309DS:          DS    0F                                              HRC309DS 02746150
       HRC309DS: BUFL     EQU   129            max length of RAWBUF/TEMPBUF -1  HRC309DS 02746200
       HRC309DS: CMDLSTRT DS    F              saved start of command line      HRC309DS 02746250
       HRC309DS: RAWBUF   DS    CL136          unscanned untranslated input buf HRC309DS 02746300
       HRC309DS: TEMPBUF  DS    CL136          to avoid MVC overwrite           HRC309DS 02746350
       HRC309DS: RAWBUFLN DS    F              length of line in RAWBUF         HRC309DS 02746400
       HRC309DS: AEPLBLD  DS    A              address of EPLIST subroutine     HRC309DS 02746450
       HRC309DS: EPLSAVE  DS    13F            EPLBUILD register save area      HRC309DS 02746500
       HRC309DS: EXECVAR  DS    CL8            for EXEC variable substitution   HRC309DS 02746550
       HRC309DS:          EPLIST CSECT                                          HRC309DS 02746600
 BEGIN APPLY >>> ./ I 00128000          $ 128050 50                    05/08/09 14:38:57
   END APPLY >>> ./ I 00128000          $ 128050 50                    05/08/09 14:38:57
 BEGIN APPLY >>> ./ I 00194000          $ 194100 100                   05/08/09 14:38:57
   END APPLY >>> ./ I 00194000          $ 194100 100                   05/08/09 14:38:57
 BEGIN APPLY >>> ./ I 00457000          $ 457100 100                   05/08/09 14:38:57
   END APPLY >>> ./ I 00457000          $ 457100 100                   05/08/09 14:38:57
 BEGIN APPLY >>> ./ I 00527000          $ 527100 100                   05/08/09 14:38:57
   END APPLY >>> ./ I 00527000          $ 527100 100                   05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 00669000          $ 669000                       05/08/09 14:38:57
   END APPLY >>> ./ R 00669000          $ 669000                       05/08/09 14:38:57
 BEGIN APPLY >>> ./ I 00670000          $ 670100 100                   05/08/09 14:38:57
   END APPLY >>> ./ I 00670000          $ 670100 100                   05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01400000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01400000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01401000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01401000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01404000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01404000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01407000 01408000 $ 1407000 1000                 05/08/09 14:38:57
   END APPLY >>> ./ R 01407000 01408000 $ 1407000 1000                 05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01411000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01411000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01414000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01414000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01417000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01417000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01420000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01420000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01423000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01423000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01426000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01426000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01429000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01429000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01432000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01432000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01435000 01436000 $ 1435000 1000                 05/08/09 14:38:57
   END APPLY >>> ./ R 01435000 01436000 $ 1435000 1000                 05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01439000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01439000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01442000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01442000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01445000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01445000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01448000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01448000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01451000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01451000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01454000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01454000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01457000                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01457000                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01459300                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01459300                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 01459920                                         05/08/09 14:38:57
  ***WARNING***  >>>  Automatic Resequencing Suppressed
   END APPLY >>> ./ R 01459920                                         05/08/09 14:38:57
 BEGIN APPLY >>> ./ R 02680000          $ 2680000 5                    05/08/09 14:38:57
   END APPLY >>> ./ R 02680000          $ 2680000 5                    05/08/09 14:38:57
 BEGIN APPLY >>> ./ I 02746000          $ 2746050 50                   05/08/09 14:38:57
   END APPLY >>> ./ I 02746000          $ 2746050 50                   05/08/09 14:38:57
Update Succeeded
Update Execution Time 172 milliseconds.

HRC380DS

Date Sunday Nov 09, 2008 05:45:00 PM
Loaded from MAINT(093)
       HRC380DS: ./ I 00949000          $ 949100 100                   11/09/08 16:45:57
       HRC380DS: CJS      EQU   *              in memory of Chris Stephenson    HRC380DS 00949100
       HRC380DS:          OI    TFLAG,NOMSG    turn off NOMSG for EXEC 2 compat HRC380DS 00949200
       HRC380DS: ./ I 02270000          $ 2270100                      11/09/08 16:45:57
       HRC380DS:          DC    AL2(CJS-EXECTOR)                                HRC380DS 02270100
       HRC380DS: ./ I 02299000          $ 2299100                      11/09/08 16:45:57
       HRC380DS:          DC    X'50',CL7'TRACE  '                              HRC380DS 02299100
 BEGIN APPLY >>> ./ I 00949000          $ 949100 100                   11/09/08 16:45:57
   END APPLY >>> ./ I 00949000          $ 949100 100                   11/09/08 16:45:57
 BEGIN APPLY >>> ./ I 02270000          $ 2270100                      11/09/08 16:45:57
   END APPLY >>> ./ I 02270000          $ 2270100                      11/09/08 16:45:57
 BEGIN APPLY >>> ./ I 02299000          $ 2299100                      11/09/08 16:45:57
   END APPLY >>> ./ I 02299000          $ 2299100                      11/09/08 16:45:57
Update Succeeded
Update Execution Time 31 milliseconds.