*DECK CLOSSIO
PROC CLOSSIO ( (FET),(OPTION) );
BEGIN # CLOSSIO #
*IF DEF,IMS
#
**
*
* 1. PROC NAME AUTHOR DATE
* CLOSSIO M. D. PICKARD 77/01/10
*
* 2. FUNCTIONAL DESCRIPTION
* CLOSSIO WILL CLOSE A SUPIO RANDOM FILE.
*
* 3. METHOD USED
* IF THE FET IS RANDOM AND THE INDEX IS A SUPIO INDEX, CLOSE
* IS CALLED TO WRITE THE INDEX AS THE RECORD BEFORE THE EOI.
*
* 4. ENTRY PARAMETERS
* FET ADDRESS OF THE FET
* OPTION CLOSE OPTION
* 0 - WITH REWIND
* "NR" - NO REWIND
* "REWIND" WITH REWIND
* "UNLOAD" WITH REWIND AND UNLOAD
*
* 5. EXIT PARAMETERS
* NONE.
*
* 6. COMDECKS CALLED
* SIODEFS SUPIO SYMPL DEFS
* SIOBASE SUPIO BASED ARRAY DEFINITIONS
*
* 7. ROUTINES CALLED
* CLOSE MACREL CLOSE SYMPL INTERFACE
* RECALL MACREL CPU RECALL SYMPL INTERFACE
*
* 8. DAYFILE MESSAGES
* NONE.
*
#
*ENDIF
CONTROL NOLIST; # STOPS LIST OF SIODEFS AND SIOBASE #
*CALL SIODEFS
*CALL SIOBASE
CONTROL LIST;
ITEM
FET U, # FET ADDRESS #
OPTION C(10); # CLOSE OPTION #
XREF
BEGIN
PROC CLOSE;
PROC RECALL;
END
P<SIOFET> = FET; # FORMAT FET #
IF FETRAN[0]
THEN # FILE IS RANDOM #
BEGIN
P<SIOINDX> = FETINDX[0];
IF SIONAME[0] EQ "SUPIOINDEX"
THEN # FILE HAS SUPIO INDEX #
BEGIN
CINDX[0] = 0; # SET CURRENT POISITON #
IF ( ( LINDX[0] + 1 ) * 2 ) GQ MINSIOI
THEN # USE CALCULATED INDEX LENGTH #
FETINDL[0] = ( LINDX[0] + 1 ) * 2; # REAL LENGTH OF INDEX #
ELSE # USE MINIMUM LENGTH #
FETINDL[0] = MINSIOI; # MINIMUM SIO INDEX LENGTH #
CLOSE(SIOFET,OPTION); # CLOSE THE FILE #
RECALL(SIOFET); # WAIT TIL COMPLETE BIT SET #
END
END
RETURN;
END
TERM # CLOSSIO #