.TITLE RECATR .IDENT /050984/ ; ; ROUTINE TO ACCESS THE FORTRAN LOGICAL UNIT BLOCK (LUB) OF AN OPEN FILE, ; AND RETURN THE VALUE OF THE RECORD ATTRIBUTES BYTE (F.RATT) OF THE ; ASSOCIATED FCS FILE DESCRIPTOR BLOCK (FDB) ; ; BY: R. RHODERICK ; USEPA/HERL/NTD ; MD74B ; Research Triangle Park, NC 27711 ; ; FORTRAN CALL: ; CALL RECATR(LUN,ATTRIB,ERR) ; BYTE LUN LUN WITH FILE OPEN ON IT ; BYTE ATTRIB RETURNED RECORD ATTRIBUTES: ; BIT 0 = 1 : FD.FTN (CARRIAGECONTROL='FORTRAN') ; BIT 1 = 1 : FD.CR (CARRIAGECONTROL='LIST') ; BOTH BITS 0,1 = 0 : (CARRIAGECONTROL='NONE') ; BYTE ERR RETURNED VALUE = 1: SUCCESS ; 0: ERROR ; ; ** NOTE THAT THIS ROUTINE WILL RETURN AN ATTRIBUTE BYTE OF 000, AND ; AN ERROR CODE OF 1 (SUCCESS) WHEN NO FILE IS OPEN ON THE LUN. THERE ; MUST BE A FILE OPEN ON THE LUN TO RETURN A MEANINGFUL ATTRIBUTES BYTE D.FDB = 12. ;THIS OFFSET DEFINITION COMES FROM THE FORTRAN SYMBOL DEFINITION ; PREFIX FILE, LB:[1,1]FCS.MAC RECATR:: ;START OF ROUTINE CLRB @6(R5) ;INITIALLY ASSUME ERROR RETURN MOVB @2(R5),R2 ;PUT LUN OF OPEN FILE IN R2 CALL $FCHNL ;GET ADDRESS OF THIS LUN'S LUB IN R0 BCS 50$ ;ERROR - NO LUB FOR THIS LUN ADD #D.FDB,R0 ;ADD FDB OFFSET TO LUB ADDRESS MOVB F.RATT(R0),@4(R5) ;RETURN FDB RECORD ATTRIBUTE BYTE MOVB #1,@6(R5) ;RETURN SUCCESS STATUS TO CALLER 50$: RETURN ;RETURN TO CALLER .END