*TITLEJCTEXT -- PROVIDES WITH INFORMATION ABOUT JOB 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A 00000020 *A SYSTEM PROGRAM SYS1.SUBLIB 00000030 *A MAINTAINED BY DATA PROCESSING 00000040 *A AUTHOR 00000050 *A DESIGNER 00000060 *A LANGUAGE S/370 ASSEMBLER 00000070 *A SYSTEM IBM (SEE CRAY) 00000070 *A WRITTEN 00000080 *A 00000090 *A 00000100 *A CALL JCTEXT(A, B, C, D, E1, E2, ... , EN) 00000110 *A A = AN 8-BYTE FIELD TO CONTAIN THE JOB NAME A8 00000120 *A B = A 4-BYTE FIELD TO CONTAIN THE READER START I4 00000130 *A TIME OF DAY - TIME IN CENTISECONDS 00000140 *A C = A 4-BYTE FIELD TO CONTAIN READER START DATE P4 00000150 *A (DATE IN PACKED DECIMAL FORMAT OOYYDDD) 00000160 *A D = A 20-BYTE FIELD TO CONTAIN THE SUBMITTER NAME A20 00000170 *A E1 = A FIELD OF SUFFICIENT SIZE TO ACCOMODATE THE 00000180 *A FIRST ACCOUNTING FIELD (LEFT JUSTIFIED) 00000190 *A E2 = A FIELD OF SUFFICIENT SIZE TO ACCOMODATE THE 00000200 *A SECOND ACCOUNTING FIELD (LEFT JUSTIFIED) 00000210 *A EN = A FIELD OF SUFFICIENT SIZE TO ACCOMODATE THE 00000220 *A LAST ACCOUNTING FIELD (LEFT JUSTIFIED) 00000230 *A 00000240 *A 00000250 *A E1, E1, ... , EN ARE ACCOUNTIN SUBPARAMETERS DELIMITED BY COMMAS. 00000260 *A A VARIABLE-LENGTH PARAMETER LIST IS USED, BUT AT LEAST ONE PARA- 00000270 *A METER (JOB NAME) MUST BE SPECIFIED. 00000280 *A 00000290 *A NOTE: JOB NAME, READER START TIME, AND READER START DATE 00000300 *A CONSTITUTE THE SMF JOB LOG NUMBER 00000310 *A 00000320 *A THIS ROUTINE PROVIDES THE CALLER WITH THE JOB NAME, READER START 00000330 *A TIME OF DAY, READER START DATE, PROGRAMMER (SUBMITTER) NAME, AND 00000340 *A ACCOUNTING FIELDS. READER START TIME AND DATE ARE THOSE RECORDED 00000350 *A BY THE OPERATING SYSTEM READER AT THE TIME THE JOB CARD IS 00000360 *A RECOGNIZED. THE OTHER INFORMATION IS TAKEN FROM THE JOB CARD, 00000370 *A EXACTLY AS CODED. JOB NAME IS LEFT JUSTIFIED IN AN 8-BYTE BLANK 00000380 *A FIELD, AND SUBMITTER IS ALSO LEFT JUSTIFIED IN A BLANK FIELD OF 00000390 *A 20 BYTES. ACCOUNTING FIELDS WILL BE LEFT JUSTIFIED IN THE CALLER 00000400 *A FIELDS INDICATED IN THE PARAMETER LIST. IF THE ACCOUNTING FIELD 00000410 *A IS SHORTER THAN THE AREA PROVIDED BY THE CALLER, THE REMAINDER 00000420 *A OF THE FIELD WILL BE UNCHANGED. IF THE ACCOUNTING FIELD IS 00000430 *A LONGER THAN THE AREA SUPPLIED BY THE CALLER, AN OVERFLOW INTO 00000440 *A AN UNKNOWN AREA WILL OCCUR. IT IS THEREFORE WISE TO PROVIDE A 00000450 *A BIG ENOUGH AREA. 00000460 *A 00000470 *A IF NO PARAMETER IS FOUND, THE RECEIVING AREA IS LEFT UNCHANGED. 00000480 *A 00000490 *A THIS ROUTINE WORKS IN VS2 RELEASE 2 (MVS) AND RELEASE 3; ITS 00000500 *A APPLICABILITY TO OTHER OPERATING SYSTEMS IS UNKNOWN. 00000510 *AEND 00000520 USER CSECT 00000530 R0 EQU 0 00000540 R1 EQU 1 00000550 R2 EQU 2 00000560 R3 EQU 3 00000570 R4 EQU 4 00000580 R5 EQU 5 00000590 R6 EQU 6 00000600 R7 EQU 7 00000610 R8 EQU 8 00000620 R9 EQU 9 00000630 R10 EQU 10 00000640 R11 EQU 11 00000650 R12 EQU 12 00000660 R13 EQU 13 00000670 R14 EQU 14 00000680 R15 EQU 15 00000690 STM R14,R12,12(R13) SAVE REGISTER CONTENTS 00000700 BALR R3,0 00000710 USING *,R3 00000720 LR R4,R1 SAVE PARM LIST POINTER 00000730 LA R5,16 ADDR OF CVT POINTER 00000740 L R6,0(R5) ADDR OF CVT 00000750 L R5,0(R6) ADDR OF TCBS 00000760 L R6,4(R5) GET ADDR OF 2ND TCB 00000770 L R5,180(R6) ADDR OF JSCB 00000780 L R6,260(R5) ADDR OF JCT PREFIX 00000790 L R5,56(R6) ADDR OF ACT PREFIX 00000800 SRL R5,8 SHIFT TO GET ADDR IN CORRECT POSITION 00000810 LA R6,24(R6) ADDR OF JOB NAME IN JCT 00000820 LA R5,24(R5) ADDR OF SUBMITTER NAME IN ACT 00000830 L R7,0(R4) ADDR WHERE CALLER WANTS JOB NAME 00000840 MVC 0(8,R7),0(R6) MOVE 8-BYTE JOB NAME 00000850 TM 0(R4),X'80' WAS THAT THE LAST PARM IN LIST 00000860 BO RETURN YES - BRANCH 00000870 LA R4,4(R4) BUMP PARM LIST POINTER 00000880 L R7,0(R4) ADDR WHERE CALLER WANTS SUBMITTER NAME 00000890 MVC 0(20,R7),0(R5) MOVE 20-BYTE NAME 00000900 TM 0(R4),X'80' LAST PARM 00000910 BO RETURN YES - BRANCH 00000920 LA R5,20(R5) ADDR OF # OF ACCTG FIELDS 00000930 L R2,0(R5) # OF ACCOUNTING FIELDS 00000940 LA R5,4(R5) ADDR OF 1ST ACCTG FIELD LENGTH BYTE 00000950 LA R6,ACCTLOOP BRANCH ADDR FOR BCTR 00000960 ACCTLOOP LA R4,4(R4) BUMP PARM LIST POINTER 00000970 L R7,0(R4) ADDR FOR THIS ACCTG FIELD 00000980 CLI 0(R5),0 IS THIS A REAL ACCTG FIELD 00000990 BNE GETLENG YES - BRANCH 00001000 LA R5,1(R5) NO - OMITTED - LENGTH BYTE ONLY 00001010 B CKPARM 00001020 GETLENG SR R8,R8 CLEAR A WORK REGISTER 00001030 IC R8,0(R5) INSERT LENGTH OF THIS ACCTG FIELD 00001040 BCTR R8,0 SUBTRACT 1 FROM LENGTH 00001050 EX R8,MOVEACCT MOVE WHATEVER LENGTH FIELD IS THERE 00001060 LA R8,2(R8) ADD BACK THE 1 PLUS 1-BYTE LENGTH FIELD 00001070 AR R5,R8 ADDR OF NEXT ACCTG FIELD LENGTH BYTE (IF THERE) 00001080 CKPARM TM 0(R4),X'80' LAST PARM 00001090 BO RETURN YES - BRANCH 00001100 BCTR R2,R6 LOOP UNTIL ALL FIELDS GOTTEN 00001110 RETURN LM R14,R12,12(R13) RESTORE REGISTER CONTENTS 00001120 SR R15,R15 ZERO RETURN CODE 00001130 BR R14 RETURN TO CALLER 00001140 MOVEACCT MVC 0(0,R7),1(R5) TO MOVE WHATEVER LENGTH ACCTG FIELD 00001150 END USER 00001160