.TITLE RMSRAC .IDENT /01.01/ ;JAN18APG .PSECT RMSFTN ;**-1 ; ; ; ;BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON ;B B ;R PURPOSE: A FORTRAN COMPATIBLE RMS INTERFACE R ;I I ;D D ;G AUTHOR: ARTHUR P. GAUGHAN, JR. G ;E E ;P DATE: 5/31/78 P ;O O ;R GLOBAL SYMBOLS DEFINED IN THIS MODULE: RMSRAC R ;T T ;! GLOBAL SYMBOLS REFERENCED IN THIS MODULE: ! ;T T ;E E ;X X ;T T ;R R ;O INPUTS: CALL RMSRAC (LUN,MODE,ISTAT) O ;N CALLG RMSRAC <#LUN,#MODE,#ISTAT> N ;! OUTPUTS: ISTAT ! ;! ! ;H HOUSEKEEPING: 18-JAN-80 APG FIX MODE SELECTION ;JAN18APG ;O ;**-1 ;R R ;S NOTES: S ;H H ;A A ;M M ;BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON ; ; ; .MCALL RABOF$,RAB$BT .MCALL SMACIT ; ; ; RABOF$ RMS$L ;DEFINE OFFSETS LOCALLY RAB$BT DFIN$L ;DEFINE RAB BIT PATTERNS LOCALLY SMACIT ;DEFINE SUPERMAC ; ; ; ;DEFINE FORTRAN COMPATIBLE PARAMETER BLOCK ; ; ; LUN=2 MODE=4 ISTAT=6 NULARG=-1 ; ; ; PROCEDURE RMSRAC,GLOBAL ; ; ; IFB (R5) NE #3 ;THREE ARGUMENTS??? TRAP ;IF NOT, QUIT HERE END IF ISTAT(R5) EQ #NULARG ;NO STATUS BLOCK? EMT ;IF NOT, QUIT HERE END ; ; ; IF LUN(R5) EQ #NULARG ;LUN SPECIFIED? LET @ISTAT(R5) := #XX$LUN ;IF NOT, SAY LUN NOT SPECIFIED $RETURN ;RETURN TO CALLER END LET R2 := @LUN(R5) ;PICK UP LUN LET R2 := R2 L.SHIFT 1 ;CONVERT TO WORD INDEX IF $$$FAB(R2) EQ #0 ;FILE ALREADY OPEN??? LET @ISTAT(R5) := #XX$OPN ;SAY FILE NOT OPEN $RETURN ;RETURN TO CALLER END IF $$$RAB(R2) EQ #0 ;RECORD STREAM ALREADY CONNECTED? LET @ISTAT(R5) := #XX$STM ;SAY STREAM NOT CONNECTED $RETURN ;RETURN TO CALLER END IF MODE(R5) EQ #NULARG ;ACCESS MODE SPECIFIED? LET @ISTAT(R5) := #XX$NOP ;SAY NO OPERATION POSSIBLE $RETURN END IF @MODE(R5) HI #2 ;LEGAL ACCESS MODE?? ;JAN18APG LET @ISTAT(R5) := #XX$RAC ;SET ILLEGAL ACCESS MODE ;**-1 $RETURN ;RETURN TO CALLER END ; ; ; LET R0 := $$$RAB(R2) ;PICK UP RAB ADDRESS CASE @MODE(R5) ;SELECT ACCESS MODE ;JAN18APG SEQUENTIAL ;JAN18APG RANDOM ;JAN18APG RFA ;JAN18APG END ;JAN18APG LET @ISTAT(R5) := #SU$SUC ;SET SUCCESS ;**-1 $RETURN ;RETURN TO CALLER ; ; ; ;CASED ROUTINES ;JAN18APG ; ;JAN18APG ; ;JAN18APG ; ;JAN18APG ENTRYPOINT SEQUENTIAL,LOCAL ;JAN18APG LET O$RAC(R0) :B= #RB$SEQ ;SET SEQUENTIAL ACCESS ;JAN18APG $RETURN ;JAN18APG ENTRYPOINT RANDOM,LOCAL ;JAN18APG LET O$RAC(R0) :B= #RB$KEY ;SET KEYED (RANDOM) ACCESS ;JAN18APG $RETURN ;JAN18APG ENTRYPOINT RFA,LOCAL ;JAN18APG LET O$RAC(R0) :B= #RB$RFA ;SET RFA ACCESS ;JAN18APG $RETURN ;JAN18APG ; ;JAN18APG ; ;JAN18APG ; ;JAN18APG ;/////////////////////////////////////////////////////////////////////// .END