.TITLE RMSRAC .IDENT /01.00/ .PSECT RMSFTN ; ; ; ;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: H ;O O ;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 #RB$RFA ;LEGAL ACCESS MODE?? LET @ISTAT(R5) := #XX$RAC ;SET ILLEGAL ACCESS MODE $RETURN ;RETURN TO CALLER END ; ; ; LET R0 := $$$RAB(R2) ;PICK UP RAB ADDRESS LET O$RAC(R0) :B= @MODE(R5) ;SET ACCESS MODE LET @ISTAT(R5) := #SU$SUC ;SET SUCCESS $RETURN ;RETURN TO CALLER ; ; ; ;/////////////////////////////////////////////////////////////////////// .END