FODMNG TITLE ' FODMNG -- ACCOUNTI#00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** NG RECORD FOR DISK MANAGEMENT.' 00020000 *TITLEFODMNG -- ACCOUNTING RECORD FOR DISK 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 02-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 AND IEZDEB MACROS. 00110000 * REVISED 7-18-79 FAC. RESERVE BEFORE OPEN AND DEQ AFTER CLOSE. 00120000 * ADD NAME AT START (TRACING CONVENTION). 00130000 * REVISED 12-12-79 REM. PUT DEQ AFTER CLOSE. PREVIOUS CHANGE NOT 00140000 * 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. REMOVE RESERVE AND ADD EXTEND OPTION. 00190000 * REVISED 7-15-85 RSK. 'CAPPED' TO USE 24 BIT ADDRESSING EVEN 00200000 * WHEN CALLED BY A 31 BIT MAIN. CHANGES 00210002 * MARKED BY 'EXT'. 00220002 *A 00230000 *A 00240000 *A CALL FODMNG (RECORD) 00250000 *A INPUT RECORD = ACCOUNTING RECORD TO BE WRITTEN. 00260000 *A 00270000 *A 00280000 *A DESCRIPTION OF DISK MANAGEMENT FILE. 00290000 *A DDNAME = SPARCDSN 00300000 *A DSNAME = DBG.SPARC.DSN 00310000 *A 00320000 *A 00330000 *A THIS PROGRAM PERFORMS THE FOLLOWING OPERATIONS: 00340000 *A 00350000 *A 1. ENQUE ON THE NAMES SPARCDSN AND DBG.SPARC.DSN 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. DEQUE ON THE NAMES IN (1). THIS SHOULD RELEASE THE FILE. 00430000 *A 00440000 *A 6. CLOSE THE FILE. 00450000 * 00460000 * NOTE: THIS PROGRAM IS PATTERNED AFTER FOACCT WRITTEN BY 00470000 * FRANCIS COLLINS 08-10-75. 00480000 * 00490000 SPACE 00500000 R1 EQU 1 ADDRESS OF PARAMETER LIST. 00510000 R2 EQU 2 ADDRESS OF "RECORD"--RECORD TO BE WRITTEN. 00520000 R3 EQU 3 NOT USED. 00530000 R4 EQU 4 NOT USED. 00540000 R5 EQU 5 LENGTH OF DD-ENTRY IN TASK INPUT/OUTPUT TABLE. 00550000 R6 EQU 6 ADDRESS OF DD-ENTRY IN TASK INPUT/OUTPUT TABLE. 00560000 R7 EQU 7 ADDRESS OF ADDRESS OF UNIT CONTROL BLOCK. 00570000 R8 EQU 8 ADDRESS OF QNAME PARAMETER FOR ENQUE AND DEQUE. 00580000 R9 EQU 9 ADDRESS OF RNAME PARAMETER FOR ENQUE AND DEQUE. 00590000 R10 EQU 10 ADDRESS OF JOB FILE CONTROL BLOCK AREA. 00600000 R11 EQU 11 ADDRESS OF DATA CONTROL BLOCK. 00610000 R12 EQU 12 BASE REGISTER = ADDRESS OF FODMNG 00620000 R13 EQU 13 ADDRESS OF SAVE AREA 00630000 R14 EQU 14 ADDRESS TO RETURN TO 00640000 R15 EQU 15 ADDRESS OF PROGRAM 00650000 SPACE 00660000 B0T14 EQU B'10110111' USED TO TURN OFF BITS 1 AND 4. 00670000 B1T0 EQU B'10000000' USED TO TURN ON BIT 0. 00680000 B1T4 EQU B'00001000' USED TO TURN ON BIT 4. 00690000 * 00700000 SPACE 00710000 PRINT GEN 00720000 FODMNG CSECT 00730000 USING *,R15 00740000 B START 00750000 DC X'06',C'FODMNG ' 00760000 DROP R15 00770000 START STM R14,R12,12(R13) SAVE REGISTERS 00780000 LR R12,R15 00790000 USING FODMNG,R12 ESTABLISH REG 12 AS BASE 00800000 LA R11,SAVE 00810000 ST R11,8(R13) CHAIN SAVE AREA 00820000 ST R13,SAVE+4 POINTER TO OLD SAVE AREA 00830000 LR R13,R11 POINTER TO NEW SAVE 00840000 SPACE 00850000 **************** ADDRESSING MODE SWITCH ****************** EXT 00860002 FODMNG AMODE ANY EXT 00870002 FODMNG RMODE 24 EXT 00880002 LA R4,FONEXT EXT 00890002 LA R5,RETURNIT EXT 00900002 BSM R5,R4 EXT 00910002 RETADD DC F'0' EXT 00920002 FONEXT DS 0H EXT 00930002 ST R5,RETADD EXT 00940002 **************** ADDRESSING MODE SWITCH ****************** EXT 00950002 SPACE 00960000 LA R11,DCB DCB ADDRESS. 00970000 USING IHADCB,R11 00980000 LA R10,JFCBAREA JFCB ADDRESS. 00990000 LA R9,RNAME 'SPARCDSN' 01000000 LA R8,QNAME 'DBG.SPARC.DSN' 01010000 SPACE 01020000 USING JFCB,R10 01030000 SPACE 01040000 L R2,0(R1) OBTAIN INPUT PARAMETERS. 01050000 LA R2,0(R2) CLEAR FIRST BYTE OF REGISTER. 01060000 SPACE 01070000 ENQ ((R8),(R9),E,13,SYSTEMS) 01080000 SPACE 01090000 OPEN ((R11),EXTEND) 01100000 EJECT 01110000 WRITE DECB,SF,(R11),(R2) WRITE THE RECORD 01120000 LA R1,DECB 01130000 CHECK (R1) 01140000 SPACE 01150000 CLOSE ((R11)) 01160000 DEQ ((R8),(R9),13,SYSTEMS) 01170000 SPACE 01180000 L R5,RETADD EXT 01190002 BSM 0,R5 EXT 01200002 RETURNIT DS 0H EXT 01210002 L R13,SAVE+4 RESTORE POINTER TO SAVE AREA 01220000 LM R14,R12,12(R13) RESTORE REGISTERS 01230000 SR R15,R15 ZERO RETURN CODE 01240000 BR R14 RETURN 01250000 EJECT 01260000 SYNEXIT SYNADAF ACSMETH=BSAM 01270000 ST R14,SYNADR14 SAVE R14 FOR RETURN 01280000 LA R1,8(R1) SKIP OVER FIRST 8 BYTES 01290000 ST R1,SYNADMSA EXT. PARAMETER LIST 01300000 LA R1,SYNADMSA 01310000 L R15,=V(FOPERR) CALL FOPERR 01320000 BALR R14,R15 01330000 SYNADRLS RELEASE SYNAD SAVE AREA 01340000 L R14,SYNADR14 RESTORE R14 TO LEAVE SYNAD EXIT 01350000 ABEND 402 01360000 DS 0F 01370000 JFCBPNTR DC X'87',AL3(JFCBAREA) 01380000 JFCBAREA DC 176X'0' 01390000 DDNAME DC CL8'SPARCDSN' 01400000 QNAME DC CL8'SPARCDSN' 01410000 RNAME DC CL13'DBG.SPARC.DSN' 01420000 TIOTAD DC F'0' 01430000 SAVE DC 18F'0' 01440000 SYNADMSA DS F 01450000 SYNADRN DC A(SYNDSKA) ADDRESS OF RCD # FOR ERROR MESSAGE 01460000 SYNDSKA DC F'0' RCD # FOR FOPERR ERROR PRINT ROUTINE 01470000 SYNADR14 DS F 01480000 PRINT NOGEN 01490000 DCB DCB DDNAME=SPARCDSN, X01500000 DSORG=PS, X01510000 SYNAD=SYNEXIT, X01520000 EXLST=JFCBPNTR, X01530000 MACRF=(WC) 01540000 LTORG 01550000 JFCB DSECT 01560000 ORG JFCB+52 01570000 JFCBTSDM DS BL1 01580000 ORG JFCB+87 01590000 JFCBIND2 DS BL1 01600000 DCBD DSORG=PS 01610000 END 01620000