*DECK READSR PROC READSR ( (FET),(WSA), LENGTH , STATIS ); BEGIN # READSR # *IF DEF,IMS # ** * * 1. PROC NAME AUTHOR DATE * READSR M. D. PICKARD 77/01/13 * * 2. FUNCTIONAL DESCRIPTION * READSR WILL READ ON RECORD FROM A FILE TO A WORKING STORAGE * AREA. * * 3. METHOD USED * IF THE FET IS A SEQUENTIAL FILE FET THEN FIRST, IN, OUT AND * LIMIT ARE SET AND READ IS CALLED TO READ THE RECORD. THE * RETURN STATUS IS SET. * * 4. ENTRY PARAMETERS * FET ADDRESS OF FILE ENVIRONMENT TABLE * WSA READ BUFFER ADDRESS * LENGTH LENGTH OF READ BUFFER * * 5. EXIT PARAMETERS * STATIS RETURN STATUS FIELD * RDEOR - END-OF-RECORD, READ SUCESSFUL * RDBFULL - BUFFER FULL, PART REC. READ * RDEOF - END-OF-FILE, NO RECORD READ * RDEOI - END-OF-INFORMATION, NO REC. READ * CRDEOR - EOR CODED FILE, READ SUCCESSFUL * CRDEOF - EOF CODED FILE, NO RECORD READ * CRDEOI - EOI CODED FILE, NO RECORD READ * CRDBFULL - BUFFER FULL CODED FILE, * PART RECORD READ * SEQRRAN - SEQUENTIAL REQ. ON RANDOM FILE * * 6. COMDECKS CALLED * SIODEFS SUPIO SYMPL DEFS * SIOBASE SUPIO BASED ARRAY DEFINITIONS * * 7. ROUTINES CALLED * READ READ MACRO SYMPL INTERFACE ROUTINE * RECALL ISSUE CPU RECALL TIL IO IS COMPLETE * * 8. DAYFILE MESSAGES * NONE. * # *ENDIF CONTROL NOLIST; # STOP LIST OF SIODEFS AND SIOBASE # *CALL SIODEFS *CALL SIOBASE CONTROL LIST; ITEM FET U, # FET ADDRESS # WSA U, # READ BUFFER # LENGTH U, # LENGTH OF READ BUFFER # STATIS U; # STATUS WORD # XREF BEGIN PROC READ; PROC RECALL; END P = FET; # FORMAT FET # IF NOT FETRAN[0] THEN # THIS IS A SEQUENTIAL FILE # BEGIN FETFST[0] = WSA; # SET FIRST # FETIN[0] = WSA; # SET IN FOR BUFFER EMPTY # FETOUT[0] = WSA; # SET OUT # FETLMT[0] = WSA + LENGTH + 1; # SET LIMIT # READ(SIOFET); # READ THE RECORD # RECALL(SIOFET); #WAIT TIL COMPLETE BIT IS SET # STATIS = FETSTAT[0]; # SET RETURN STATUS # LENGTH = FETIN[0] - FETFST[0]; # SET LENGTH OF RECORD READ # END ELSE # CAN NOT READSR ON A RANDOM FILE # STATIS = SEQRRAN; # SEQUENTIAL REQUEST ON RANDOM FILE # RETURN; END TERM # READSR #