FOTIME TITLE ' FOTIME -- PROCESS #00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** TIMES FOR JOB MANAGEMENT.' 00020000 *TITLEFOTIME -- PROCESS TIMES FOR JOB MANAGEMENT 00030000 *A AUTHOR W. V. REDWINE 00040000 *A DESIGNER W. V. REDWINE 00050000 *A LANGUAGE S/370 ASSEMBLER F 00060000 *A SYSTEM IBM (SEE CRAY) 00070000 *A WRITTEN 2-14-77 00080000 * REVISED 4-01-77 BY W.V. REDWINE. CHANGED ENQ TO RESERVE AND 00090000 * MODIFIED DEQ ACCORDINGLY. 00100000 * 4-04-77 BY R. MCMILLAN TO ADD DCBD ANDIEZDEB MACROS. 00110000 * REVISED 7-18-79 FAC. RESERVE BEFORE OPEN AND CLOSE BEFORE DEQ. 00120000 * ADD NAME AT START (TRACING CONVENTION). 00130000 * REVISED 12-12-79 REM. PUT DEQ AFTER CLOSE. PROVIOUS CHANGE WAS 00140000 * NOT MADE. 00150000 * REVISED 4-18-80 HHL. ADDED PARAMETERS TO BE PASSED TO SYNAD 00160000 * ERROR MSG PRINT ROUTINE (FOPERR) TO PRINT 00170000 * RELATIVE RECORD # (0 FOR THIS ROUTINE) 00180000 * REVISED 4-28-83 CMP. CHANGE RESERVE TO ENQ AND USE EXTEND OPT 00190000 * REVISED 7-15-85 RSK. 'CAPPED' TO USE 24 BIT ADDRESSING EVEN 00200000 * WHEN CALLED BY A 31 BIT MAIN. CHANGES ARE 00210001 * MARKED 'EXT'. 00220001 *A 00230000 *A 00240000 *A CALL FOTIME (RECORD) 00250000 *A INPUT RECORD = RECORD TO BE WRITTEN. 00260000 *A 00270000 *A 00280000 *A DESCRIPTION OF PROCESS TIMES FILE. 00290000 *A DDNAME = SPARCTIM 00300000 *A DSNAME = DBG.SPARC.TIME 00310000 *A 00320000 *A 00330000 *A THIS PROGRAM PERFORMS THE FOLLOWING OPERATIONS: 00340000 *A 00350000 *A 1. RESERVE (ENQUE) ON THE NAMES SPARCTIM AND DBG.SPARC.TIME 00360000 *A 00370000 *A 2. OPEN THE FILE. 00380000 *A 00390000 *A 3. WRITE THE RECORD. 00400000 *A BASIC SEQUENTIAL ASSESS METHOD (BSAM). 00410000 *A 00420000 *A 4. CLOSE THE FILE. 00430000 *A 00440000 *A 5. DEQUE ON THE NAMES IN (1). THIS SHOULD RELEASE THE FILE. 00450000 *A 00460000 * NOTE: THIS PROGRAM IS PATTERNED AFTER FOACCT WRITTEN BY 00470000 * FRANCIS COLLINS 08-10-75. 00480000 * 00490000 EJECT 00500000 R0 EQU 0 00510000 R1 EQU 1 ADDRESS OF PARAMETER LIST. 00520000 R2 EQU 2 ADDRESS OF RECORD TO BE WRITTEN. 00530000 R3 EQU 3 00540000 R4 EQU 4 00550000 R5 EQU 5 LENGTH OF DD-ENTRY IN TASK INPUT/OUTPUT TABLE. 00560000 R6 EQU 6 ADDRESS OF DD-ENTRY IN TAST INPUT/OUTPUT TABLE. 00570000 R7 EQU 7 ADDRESS OF ADDRESS OF UNIT CONTROL BLOCK. 00580000 R8 EQU 8 ADDRESS OF QNAME PARAMETER FOR ENQUE AND DEQUE. 00590000 R9 EQU 9 ADDRESS OF RNAME PARAMETER FOR ENQUE AND DEQUE. 00600000 R10 EQU 10 ADDRESS OF JOB FILE CONTROL BLOCK AREA. 00610000 R11 EQU 11 ADDRESS OF DATA CONTROL BLOCK. 00620000 R12 EQU 12 BASE REGISTER = ADDRESS OF FOTIME. 00630000 R13 EQU 13 00640000 R14 EQU 14 00650000 R15 EQU 15 00660000 SPACE 00670000 B0T14 EQU B'10110111' USED TO TURN OFF BITS 1 AND 4. 00680000 B1T0 EQU B'10000000' USED TO TURN ON BIT 0. 00690000 B1T4 EQU B'00001000' USED TO TURN ON BIT 4. 00700000 SPACE 2 00710000 FOTIME CSECT 00720000 USING *,R15 00730000 B START 00740000 DC X'06',C'FOTIME ' 00750000 DROP R15 00760000 START STM R14,R12,12(R13) SAVE REGISTERS 00770000 LR R12,R15 00780000 USING FOTIME,R12 ESTABLISH REG 12 AS BASE 00790000 LA R11,SAVE 00800000 ST R11,8(R13) CHAIN SAVE AREA 00810000 ST R13,SAVE+4 POINTER TO OLD SAVE AREA 00820000 LR R13,R11 POINTER TO NEW SAVE 00830000 SPACE 00840000 **************** ADDRESSING MODE SWITCH ****************** EXT 00850001 FOTIME AMODE ANY EXT 00860001 FOTIME RMODE 24 EXT 00870001 LA R4,FONEXT EXT 00880001 LA R5,RETURNIT EXT 00890001 BSM R5,R4 EXT 00900001 RETADD DC F'0' EXT 00910001 FONEXT DS 0H EXT 00920001 ST R5,RETADD EXT 00930001 LA R11,DCB DCB ADDRESS. 00940000 USING IHADCB,R11 00950000 LA R10,JFCBAREA JFCB ADDRESS. 00960000 LA R9,RNAME 'SPARCTIM' 00970000 LA R8,QNAME 'DBG.SPARC.TIM' 00980000 SPACE 00990000 USING JFCB,R10 01000000 SPACE 01010000 L R2,0(R1) OBTAIN INPUT PARAMETERS 01020000 LA R2,0(R2) CLEAR FIRST BYTE OF REGISTER. 01030000 SPACE 01040000 ENQ ((R8),(R9),E,13,SYSTEMS) 01050000 SPACE 01060000 OPEN ((R11),EXTEND) 01070000 EJECT 01080000 WRITE DECB,SF,(R11),(R2) WRITE THE RECORD 01090000 LA R1,DECB 01100000 CHECK (R1) 01110000 SPACE 01120000 CLOSE ((R11)) 01130000 DEQ ((R8),(R9),13,SYSTEMS) 01140000 SPACE 01150000 L R5,RETADD EXT 01160001 BSM 0,R5 EXT 01170001 RETURNIT DS 0H EXT 01180001 L R13,SAVE+4 RESTORE POINTER TO SAVE AREA 01190000 LM R14,R12,12(R13) RESTORE REGISTERS 01200000 SR R15,R15 ZERO RETURN CODE 01210000 BR R14 RETURN 01220000 EJECT 01230000 SYNEXIT SYNADAF ACSMETH=BSAM 01240000 ST R14,SYNADR14 SAVE R14 FOR RETURN 01250000 LA R1,8(R1) SKIP OVER FIRST 8 BYTES 01260000 ST R1,SYNADMSA EXT. PARAMETER LIST 01270000 LA R1,SYNADMSA 01280000 L R15,=V(FOPERR) CALL FOPERR 01290000 BALR R14,R15 01300000 SYNADRLS RELEASE SYNAD SAVE AREA 01310000 L R14,SYNADR14 RESTORE R14 TO LEAVE SYNAD EXIT 01320000 ABEND 404 01330000 DS 0F 01340000 SPACE 01350000 JFCBPNTR DC X'87',AL3(JFCBAREA) 01360000 JFCBAREA DC 176X'0' 01370000 DDNAME DC CL8'SPARCTIM' 01380000 QNAME DC CL8'SPARCTIM' 01390000 RNAME DC CL13'DBG.SPARC.TIM' 01400000 TIOTAD DC F'0' 01410000 SAVE DC 18F'0' 01420000 SYNADMSA DS F 01430000 SYNADRN DC A(SYNDSKA) ADDRESS OF RCD # FOR ERROR MSG 01440000 SYNDSKA DC F'0' RCD # FOR FOPERR ERROR PRINT ROUTINE 01450000 SYNADR14 DS F 01460000 PRINT NOGEN 01470000 DCB DCB DDNAME=SPARCTIM, X01480000 DSORG=PS, X01490000 SYNAD=SYNEXIT, X01500000 EXLST=JFCBPNTR, X01510000 MACRF=(WC) 01520000 LTORG 01530000 JFCB DSECT 01540000 ORG JFCB+52 01550000 JFCBTSDM DS BL1 01560000 ORG JFCB+87 01570000 JFCBIND2 DS BL1 01580000 DCBD DSORG=PS 01590000 END 01600000