PROC SSINIT;
# TITLE SSINIT - OPEN CATALOG AND SMMAP INITIALIZER. #
BEGIN # SSINIT #
#
** SSINIT - OPEN CATALOG AND SMMAP INITIALIZER.
*
* PROC SSINIT.
*
* EXIT BUFFER AND TABLE POINTERS SET UP.
*
* NOTES *SSINIT* IS USED BY THE *MSS* UTILITIES
* TO SET UP BUFFER AND TABLE ADDRESSES FOR
* THE CATALOG AND SMMAP ACCESS ROUTINES.
* IT ALLOWS FOR 8 CATALOGS AND 8 SMMAPS
* TO BE OPEN AT A TIME.
#
DEF LISTCON #0#; # DO NOT LIST COMDECKS #
*CALL COMBFAS
*CALL COMBCMD
#
* FETS, BUFFERS AND TABLES.
#
ARRAY FETS [0:3] S(RFETL);;
ARRAY BUF$AST [1:ABUFLEN] P(1);;
ARRAY BUF$FCT[1:FCTBL] P(1);;
ARRAY BUF$MAP [1:MAPBUFL] P(1);;
ARRAY BUF$TEMP [1:FCTBL];;
ARRAY BUF$WORK [1:WBUFL] P(1);;
#
* OPEN CATALOG TABLE.
#
ARRAY T$OCT [0:7] P(OCTENTL);;
#
* OPEN SMMAP TABLE.
#
ARRAY T$OMT [1:MAXSM] P(OMTENTL);;
#
* PREAMBLE TABLE.
#
ARRAY T$PRM [0:7] P(14);;
CONTROL EJECT;
#
* SET UP BUFFER AND TABLE ADDRESSES.
#
FCTFADR = LOC(FETS[0]); # *FCT* FET #
P<FCTFET> = FCTFADR;
MAPFADR = LOC(FETS[1]); # MAP FET #
P<MAPFET> = MAPFADR;
TFETADR = LOC(FETS[2]); # TEMPORARY FET #
P<TFET> = TFETADR;
ASTBADR = LOC(BUF$AST); # *AST* I/O BUFFER #
FCTBADR = LOC(BUF$FCT[1]); # *FCT* I/O BUFFER #
P<FCTBUF> = FCTBADR;
MAPBADR = LOC(BUF$MAP[1]); # MAP BUFFER #
P<MAPBUF> = MAPBADR;
TBUFADR = LOC(BUF$TEMP[1]); # TEMPORARY BUFFER #
P<TBUF> = TBUFADR;
WBUFADR = LOC(BUF$WORK[1]); # WORKING BUFFER #
P<WBUF> = WBUFADR;
OCTLEN = 8; # *OCT* LENGTH #
OCTADR = LOC(T$OCT[0]); # OPEN CATALOG TABLE #
P<OCT> = OCTADR;
OMTADR = LOC(T$OMT[1]); # OPEN MAP TABLE #
P<OMT> = OMTADR;
PRMBADR = LOC(T$PRM[0]); # PREAMBLE TABLE #
P<PRMBUF> = PRMBADR;
RETURN;
END # SSINIT #
TERM