ibm:vm370-lib:cms:dmsext.assemble_hst
Table of Contents
DMSEXT History
References
- Fixes Applied : 6
- Latest Source Date : Tuesday, December 12, 1978
- Last Fix ID : [HRC380DS]
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
- R09732DS 607 MSDMSEXT072E IF &LOOP STATEMENT WITHIN AN &IF
- R15034DS 628 UV06028 DMSEXT FIX EXEC SO CALLERS OS EXITS NOT WIPED OUT
- R16203DS PTF PE VM15034 RESET
- HRC007DS V01 SUBSTITUTE VARIABLES FOR EXEC LABELS & MULT AND DIVIDE
- HRC309DS v03 EXEC now passes EPLIST when it calls CMS commands
- 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.
ibm/vm370-lib/cms/dmsext.assemble_hst.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator