FOPMAP TITLE ' FOPMAP -- PROCESS #00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** MAP FOR JOB MANAGEMENT.' 00020000 *TITLEFOPMAP -- PROCESS MAP 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 (TRACE CONVENTION). 00130000 * REVISED 12-12-79 REM. PUT DEQ AFTER CLOSE. PREVIOUS 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 12-16-83 RSK. CHANGED RESERVE TO GLOBAL ENQUE. 00190000 * REVISED 7-24-85 RSK. 'CAPPED' FOR EXTENDED ADDRESSING. 00200000 * CHANGES MARKED BY 'EXT'. 00210001 *A 00220000 *A 00230000 *A CALL FOPMAP (RECORD) 00240000 *A INPUT RECORD = RECORD TO BE WRITTEN. 00250000 *A 00260000 *A 00270000 *A DESCRIPTION OF PROCESS MAP FILE. 00280000 *A DDNAME = SPARCMAP 00290000 *A DSNAME = DBG.SPARC.MAP 00300000 *A 00310000 *A 00320000 *A THIS PROGRAM PERFORMS THE FOLLOWING OPERATIONS: 00330000 *A 00340000 *A 1. READ THE JOB FILE CONTROL BLOCK. MODIFY THE JFCB TO 00350000 *A CHANGE THE DISPOSITION FROM SHR TO MOD, SO THAT THE 00360000 *A NEW RECORD WILL BE ADDED AT THE END OF THE FILE. 00370000 *A 00380000 *A 2. RESERVE (ENQUE) ON THE NAMES SPARCMAP AND DBG.SPARC.MAP 00390000 *A 00400000 *A 3. OPEN THE FILE. 00410000 *A 00420000 *A 4. WRITE THE RECORD. 00430000 *A BASIC SEQUENTIAL ASSESS METHOD (BSAM). 00440000 *A 00450000 *A 5. CLOSE THE FILE. 00460000 *A STATUS AUTOMATICALLY REVERTS TO SHR. 00470000 *A 00480000 *A 6. DEQUE ON THE NAMES IN (3). THIS SHOULD RELEASE THE FILE. 00490000 *A 00500000 * NOTE: THIS PROGRAM IS PATTERNED AFTER FOACCT WRITTEN BY 00510000 * FRANCIS COLLINS 08-10-75. 00520000 * 00530000 EJECT 00540000 R1 EQU 1 ADDRESS OF PARAMETER LIST. 00550000 R2 EQU 2 ADDRESS OF RECORD TO BE WRITTEN. 00560000 R3 EQU 3 00570000 R4 EQU 4 00580000 R5 EQU 5 LENGTH OF DD-ENTRY IN TASK INPUT/OUTPUT TABLE. 00590000 R6 EQU 6 ADDRESS OF DD-ENTRY IN TAST INPUT/OUTPUT TABLE. 00600000 R7 EQU 7 ADDRESS OF ADDRESS OF UNIT CONTROL BLOCK. 00610000 R8 EQU 8 ADDRESS OF QNAME PARAMETER FOR ENQUE AND DEQUE. 00620000 R9 EQU 9 ADDRESS OF RNAME PARAMETER FOR ENQUE AND DEQUE. 00630000 R10 EQU 10 ADDRESS OF JOB FILE CONTROL BLOCK AREA. 00640000 R11 EQU 11 ADDRESS OF DATA CONTROL BLOCK. 00650000 R12 EQU 12 BASE REGISTER = ADDRESS OF FOPMAP. 00660000 R13 EQU 13 00670000 R14 EQU 14 00680000 R15 EQU 15 00690000 SPACE 00700000 B0T14 EQU B'10110111' USED TO TURN OFF BITS 1 AND 4. 00710000 B1T0 EQU B'10000000' USED TO TURN ON BIT 0. 00720000 B1T4 EQU B'00001000' USED TO TURN ON BIT 4. 00730000 SPACE 2 00740000 PRINT GEN 00750000 FOPMAP CSECT 00760000 USING *,R15 00770000 B START 00780000 DC X'06',C'FOPMAP ' 00790000 DROP R15 00800000 START STM R14,R12,12(R13) SAVE REGISTERS 00810000 LR R12,R15 00820000 USING FOPMAP,R12 ESTABLISH REG 12 AS BASE 00830000 LA R11,SAVE 00840000 ST R11,8(R13) CHAIN SAVE AREA 00850000 ST R13,SAVE+4 POINTER TO OLD SAVE AREA 00860000 LR R13,R11 POINTER TO NEW SAVE 00870000 **************** ADDRESSING MODE SWITCH ****************** EXT 00880000 FOPMAP AMODE ANY EXT 00890000 FOPMAP RMODE 24 EXT 00900000 LA R4,FONEXT EXT 00910000 LA R5,RETURNIT EXT 00920000 BSM R5,R4 EXT 00930000 RETADD DC F'0' EXT 00940000 FONEXT DS 0H EXT 00950000 ST R5,RETADD EXT 00960000 SPACE 00970000 LA R11,DCB DCB ADDRESS. 00980000 USING IHADCB,R11 00990000 LA R10,JFCBAREA JFCB ADDRESS. 01000000 LA R9,RNAME 'SPARCMAP' 01010000 LA R8,QNAME 'DBG.SPARC.MAP' 01020000 SPACE 01030000 USING JFCB,R10 01040000 SPACE 01050000 L R2,0(R1) OBTAIN INPUT PARAMETERS 01060000 LA R2,0(R2) CLEAR FIRST BYTE OF REGISTER. 01070000 SPACE 01080000 RDJFCB ((R11),OUTPUT) LOOK FOR DD STATEMENT 'SPARCMAP' 01090000 LTR R15,R15 DD STATEMENT PRESENT? 01100000 BNZ GOBACK IF NOT, GET OUT 01110000 SPACE 01120000 ENQ ((R8),(R9),E,13,SYSTEMS) 01130000 OPEN ((R11),EXTEND) 01140000 WRITE DECB,SF,(R11),(R2) WRITE THE RECORD 01150000 LA R1,DECB 01160000 CHECK (R1) 01170000 SPACE 01180000 CLOSE ((R11)) 01190000 DEQ ((R8),(R9),13,SYSTEMS) 01200000 SPACE 01210000 GOBACK EQU * 01220000 **************** ADDRESSING RETURN ****************** EXT 01230000 L R5,RETADD EXT 01240000 BSM 0,R5 EXT 01250000 RETURNIT DS 0H EXT 01260000 L R13,SAVE+4 RESTORE POINTER TO SAVE AREA 01270000 LM R14,R12,12(R13) RESTORE REGISTERS 01280000 SR R15,R15 ZERO RETURN CODE 01290000 BR R14 RETURN 01300000 EJECT 01310000 SYNEXIT SYNADAF ACSMETH=BSAM 01320000 ST R14,SYNADR14 SAVE R14 FOR RETURN 01330000 LA R1,8(R1) SKIP OVER FIRST 8 BYTES 01340000 ST R1,SYNADMSA EXT. PARAMETER LIST 01350000 LA R1,SYNADMSA 01360000 L R15,=V(FOPERR) CALL FOPERR 01370000 BALR R14,R15 01380000 SYNADRLS RELEASE SYNAD SAVE AREA 01390000 L R14,SYNADR14 RESTORE R14 TO LEAVE SYNAD EXIT 01400000 ABEND 403 01410000 DS 0F 01420000 JFCBPNTR DC X'87',AL3(JFCBAREA) 01430000 JFCBAREA DC 176X'0' 01440000 DDNAME DC CL8'SPARCMAP' 01450000 QNAME DC CL8'SPARCMAP' 01460000 RNAME DC CL13'DBG.SPARC.MAP' 01470000 TIOTAD DC F'0' 01480000 SAVE DC 18F'0' 01490000 SYNADMSA DS F 01500000 SYNADRN DC A(SYNDSKA) ADDRESS OF RCD # FOR ERROR MESSAGE 01510000 SYNDSKA DC F'0' RCD # FOR FOPERR ERROR PRINT ROUTINE 01520000 SYNADR14 DS F 01530000 PRINT NOGEN 01540000 DCB DCB DDNAME=SPARCMAP, X01550000 DSORG=PS, X01560000 SYNAD=SYNEXIT, X01570000 EXLST=JFCBPNTR, X01580000 MACRF=(WC) 01590000 LTORG 01600000 JFCB DSECT 01610000 ORG JFCB+52 01620000 JFCBTSDM DS BL1 01630000 ORG JFCB+87 01640000 JFCBIND2 DS BL1 01650000 DCBD DSORG=PS 01660000 END 01670000