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.
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.