Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.sx3ucp +++|PROC ADDCAR;
00002 M00S00002.sx3ucp +++|# TITLE ADDCAR - ADD CARTRIDGE TO SUB-FAMILY. #
00003 M00S00003.sx3ucp +++|
00004 M00S00004.sx3ucp +++| BEGIN # ADDCAR #
00005 M00S00005.sx3ucp +++|
00006 M00S00006.sx3ucp +++|#
00007 M00S00007.sx3ucp +++|** ADDCAR - ADD CATRIDGE TO SUB-FAMILY.
00008 M00S00008.sx3ucp +++|*
00009 M00S00009.sx3ucp +++|* *ADDCAR* UPDATES THE *SMMAP*, *FCT*, AND *AST* (IN THAT
00010 M00S00010.sx3ucp +++|* ORDER) TO REFLECT THE ADDITION OF THE CARTRIDGE TO THE
00011 M00S00011.sx3ucp +++|* SUB-FAMILY.
00012 M00S00012.sx3ucp +++|*
00013 M00S00013.sx3ucp +++|* PROC ADDCAR
00014 M00S00014.sx3ucp +++|*
00015 M00S00015.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00016 M00S00016.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00017 M00S00017.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
00018 M00S00018.sx3ucp +++|* *LTCENTRY*.
00019 M00S00019.sx3ucp +++|*
00020 M00S00020.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
00021 M00S00021.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
00022 M00S00022.sx3ucp +++|* OF THE REQUEST.
00023 M00S00023.sx3ucp +++|*
00024 M00S00024.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
00025 M00S00025.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
00026 M00S00026.sx3ucp +++|* = OK3 OK
00027 M00S00027.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
00028 M00S00028.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
00029 M00S00029.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
00030 M00S00030.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
00031 M00S00031.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
00032 M00S00032.sx3ucp +++|#
00033 M00S00033.sx3ucp +++|
00034 M00S00034.sx3ucp +++|#
00035 M00S00035.sx3ucp +++|**** PROC ADDCAR - XREF LIST BEGIN.
00036 M00S00036.sx3ucp +++|#
00037 M00S00037.sx3ucp +++|
00038 M00S00038.sx3ucp +++| XREF
00039 M00S00039.sx3ucp +++| BEGIN
00040 M00S00040.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
00041 M00S00041.sx3ucp +++| #
00042 M00S00042.sx3ucp +++| PROC ANLZAST; # ANALYZE THE *AST* #
00043 M00S00043.sx3ucp +++| PROC CEXTSC; # EXTEND SUBCATALOG #
00044 M00S00044.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
00045 M00S00045.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
00046 M00S00046.sx3ucp +++| *UCP* ERRORS #
00047 M00S00047.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
00048 M00S00048.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
00049 M00S00049.sx3ucp +++| PROC LOANFCTQ; # ADD OR RECLAIM *FCTQ* ENTRY #
00050 M00S00050.sx3ucp +++| PROC MFLUSH; # FLUSH MAP TO FILE #
00051 M00S00051.sx3ucp +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE
00052 M00S00052.sx3ucp +++| CALLER #
00053 M00S00053.sx3ucp +++| PROC MPUTENT; # MAP ENTRY TO THE MAP FILE BUFFER
00054 M00S00054.sx3ucp +++| #
00055 M00S00055.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
00056 M00S00056.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
00057 M00S00057.sx3ucp +++| #
00058 M00S00058.sx3ucp +++| PROC UASTPRM; # UPDATE *AST* AND *PRM* #
00059 M00S00059.sx3ucp +++| END
00060 M00S00060.sx3ucp +++|
00061 M00S00061.sx3ucp +++|#
00062 M00S00062.sx3ucp +++|**** PROC ADDCAR - XREF LIST END.
00063 M00S00063.sx3ucp +++|#
00064 M00S00064.sx3ucp +++|
00065 M00S00065.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00066 M00S00066.sx3ucp +++|*CALL COMBFAS
00067 M00S00067.sx3ucp +++|*CALL COMBCMD
00068 M00S00068.sx3ucp +++|*CALL COMBCMS
00069 M00S00069.sx3ucp +++|*CALL COMBCPR
00070 M00S00070.sx3ucp +++|*CALL COMBMAP
00071 M00S00071.sx3ucp +++|*CALL COMBMCT
00072 M00S00072.sx3ucp +++|*CALL COMXFCQ
00073 M00S00073.sx3ucp +++|*CALL COMXLTC
00074 M00S00074.sx3ucp +++|*CALL COMXMSC
00075 M00S00075.sx3ucp +++|
00076 M00S00076.sx3ucp +++|
00077 M00S00077.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS FROM
00078 M00S00078.sx3ucp +++| *ACQ$FCT* #
00079 M00S00079.sx3ucp +++| ITEM FCTNUM U; # NUMBER OF ENTRIES TO ADD #
00080 M00S00080.sx3ucp +++| ITEM FXS U; # INDEX TO AST$AUSF #
00081 M00S00081.sx3ucp +++| ITEM FXL U; # INDEX TO AST$AULF #
00082 M00S00082.sx3ucp +++| ITEM GRTO U; # TOTAL SPACE IN GROUP #
00083 M00S00083.sx3ucp +++| ITEM GPX U; # BEST GROUP #
00084 M00S00084.sx3ucp +++| ITEM GPS U; # BEST ORDINAL #
00085 M00S00085.sx3ucp +++| ITEM I U; # COUNTER #
00086 M00S00086.sx3ucp +++| ITEM LENCOUNT I; # LENGTH COUNT #
00087 M00S00087.sx3ucp +++| ITEM POS I; # POSITION #
00088 M00S00088.sx3ucp +++| ITEM POINT U; # HOLDS POINTER TO SET LINKAGE #
00089 M00S00089.sx3ucp +++| ITEM START U; # BEGINNING LOOP COUNTER #
00090 M00S00090.sx3ucp +++| ITEM STARTLN U; # STARTING LENGTH #
00091 M00S00091.sx3ucp +++| ITEM SORL U; # SMALL OR LARGE FILE LOOP #
00092 M00S00092.sx3ucp +++| ITEM TERMX U; # TERMINATION OF LOOP #
00093 M00S00093.sx3ucp +++| ITEM WORD I; # LINK FIELD WORD #
00094 M00S00094.sx3ucp +++| ITEM ORD I; # *AST* ORDINAL #
00095 M00S00095.sx3ucp +++|
00096 M00S00096.sx3ucp +++|
00097 M00S00097.sx3ucp +++|
00098 M00S00098.sx3ucp +++|
00099 M00S00099.sx3ucp +++|
00100 M00S00100.sx3ucp +++|#
00101 M00S00101.sx3ucp +++|* GET THE MAP ENTRY FOR THE REQUEST.
00102 M00S00102.sx3ucp +++|#
00103 M00S00103.sx3ucp +++|
00104 M00S00104.sx3ucp +++| LOANFCTQ(0);
00105 M00S00105.sx3ucp +++| MGETENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
00106 M00S00106.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00107 M00S00107.sx3ucp +++| THEN
00108 M00S00108.sx3ucp +++| BEGIN
00109 M00S00109.sx3ucp +++| GOTO ERRORTN;
00110 M00S00110.sx3ucp +++| END
00111 M00S00111.sx3ucp +++|
00112 M00S00112.sx3ucp +++| P<SMUMAP> = LOC(MAPBUFR);
00113 M00S00113.sx3ucp +++|
00114 M00S00114.sx3ucp +++|#
00115 M00S00115.sx3ucp +++|* GET THE *AST* AND EXPAND THE CATALOG IF THE REQUIRED
00116 M00S00116.sx3ucp +++|* *FCT* ENTRY DOES NOT PHYSICALLY EXIST.
00117 M00S00117.sx3ucp +++|#
00118 M00S00118.sx3ucp +++|
00119 M00S00119.sx3ucp +++| P<AST> = ASTBADR;
00120 M00S00120.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
00121 M00S00121.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00122 M00S00122.sx3ucp +++| THEN
00123 M00S00123.sx3ucp +++| BEGIN
00124 M00S00124.sx3ucp +++| GOTO ERRORTN;
00125 M00S00125.sx3ucp +++| END
00126 M00S00126.sx3ucp +++|
00127 M00S00127.sx3ucp +++| IF (PRM$ENTRC[CPR$CSU[0]] + 15) LS CPR$FCT[0]
00128 M00S00128.sx3ucp +++| THEN # EXPAND TO INCLUDE REQUIRED ENTRY
00129 M00S00129.sx3ucp +++| #
00130 M00S00130.sx3ucp +++| BEGIN
00131 M00S00131.sx3ucp +++| FCTNUM = CPR$FCT[0] - PRM$ENTRC[CPR$CSU[0]] - 15;
00132 M00S00132.sx3ucp +++| CEXTSC(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],FCTNUM,0,ERRSTAT);
00133 M00S00133.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00134 M00S00134.sx3ucp +++| THEN
00135 M00S00135.sx3ucp +++| BEGIN
00136 M00S00136.sx3ucp +++| GOTO ERRORTN;
00137 M00S00137.sx3ucp +++| END
00138 M00S00138.sx3ucp +++|
00139 M00S00139.sx3ucp +++| END
00140 M00S00140.sx3ucp +++|
00141 M00S00141.sx3ucp +++| ORD = CPR$FCT[0];
00142 M00S00142.sx3ucp +++|
00143 M00S00143.sx3ucp +++|#
00144 M00S00144.sx3ucp +++|* GET THE *FCTQ* ENTRY.
00145 M00S00145.sx3ucp +++|#
00146 M00S00146.sx3ucp +++|
00147 M00S00147.sx3ucp +++|
00148 M00S00148.sx3ucp +++| ACQ$FCT(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0], ##
00149 M00S00149.sx3ucp +++| CPR$FCT[0],FCTEADDR,0,ERRSTAT);
00150 M00S00150.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00151 M00S00151.sx3ucp +++| THEN
00152 M00S00152.sx3ucp +++| BEGIN
00153 M00S00153.sx3ucp +++| GOTO ERRORTN;
00154 M00S00154.sx3ucp +++| END
00155 M00S00155.sx3ucp +++|
00156 M00S00156.sx3ucp +++|#
00157 M00S00157.sx3ucp +++|* UPDATE THE MAP ENTRY WITH THE *CSN*.
00158 M00S00158.sx3ucp +++|#
00159 M00S00159.sx3ucp +++|
00160 M00S00160.sx3ucp +++| P<FCT> = FCTEADDR + FCTQHL;
00161 M00S00161.sx3ucp +++| CM$CSND[0] = CPR$CSND[0];
00162 M00S00162.sx3ucp +++| CM$CCOD[0] = CPR$CCOD[0];
00163 M00S00163.sx3ucp +++| CM$FCTORD[0] = CPR$FCT[0];
00164 M00S00164.sx3ucp +++| MPUTENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
00165 M00S00165.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00166 M00S00166.sx3ucp +++| THEN
00167 M00S00167.sx3ucp +++| BEGIN
00168 M00S00168.sx3ucp +++| GOTO ERRORTN;
00169 M00S00169.sx3ucp +++| END
00170 M00S00170.sx3ucp +++|
00171 M00S00171.sx3ucp +++|
00172 M00S00172.sx3ucp +++|#
00173 M00S00173.sx3ucp +++|* UPDATE THE *FCT* WITH THE *CSN* OF THE CARTRIDGE, AND
00174 M00S00174.sx3ucp +++|* THE *FAULF* AND THE *FAUSF*.
00175 M00S00175.sx3ucp +++|#
00176 M00S00176.sx3ucp +++|
00177 M00S00177.sx3ucp +++| FCT$CSND[0] = CPR$CSND[0];
00178 M00S00178.sx3ucp +++| FCT$FAUSF[0] = 1;
00179 M00S00179.sx3ucp +++| FCT$FAULF[0] = CPR$B[0] + 1;
00180 M00S00180.sx3ucp +++| FCT$CCOD[0] = CPR$CCOD[0];
00181 M00S00181.sx3ucp +++| FCT$ORD[0] = CPR$FCT[0];
00182 M00S00182.sx3ucp +++| FCT$FLGS[0] = 0;
00183 M00S00183.sx3ucp +++| FCT$OCL[0] = 0;
00184 M00S00184.sx3ucp +++| FCT$OCL1[0] = 0;
00185 M00S00185.sx3ucp +++| FCT$OCL2[0] = 0;
00186 M00S00186.sx3ucp +++| FCT$FTST[0] = INFTST;
00187 M00S00187.sx3ucp +++| FCT$SPAU[0] = INSPAU;
00188 M00S00188.sx3ucp +++| FCT$PRUS[0] = INPRUS;
00189 M00S00189.sx3ucp +++| FCT$AVOT[0] = INAVOT;
00190 M00S00190.sx3ucp +++| FCT$CDP[0] = CPR$B[0] + 1;
00191 M00S00191.sx3ucp +++| FCT$OCLF[0] = 0;
00192 M00S00192.sx3ucp +++| FCT$STRD[0] = CPR$STRD[0];
00193 M00S00193.sx3ucp +++| FCT$STWR[0] = CPR$STWR[0];
00194 M00S00194.sx3ucp +++| FCT$SRDE[0] = CPR$SRDE[0];
00195 M00S00195.sx3ucp +++| FCT$SWRE[0] = CPR$SWRE[0];
00196 M00S00196.sx3ucp +++| FCT$HRDE[0] = CPR$HRDE[0];
00197 M00S00197.sx3ucp +++| FCT$STDM[0] = CPR$STDM[0];
00198 M00S00198.sx3ucp +++| FCT$CRLD[0] = CPR$CRLD[0];
00199 M00S00199.sx3ucp +++| FCT$LDER[0] = CPR$LDER[0];
00200 M00S00200.sx3ucp +++| FCT$Y[0] = CPR$Y[0];
00201 M00S00201.sx3ucp +++| FCT$Z[0] = CPR$Z[0];
00202 M00S00202.sx3ucp +++| IF CPR$B[0] EQ 0
00203 M00S00203.sx3ucp +++| THEN # SET FOR END CASE #
00204 M00S00204.sx3ucp +++| BEGIN
00205 M00S00205.sx3ucp +++| FCT$FAUSF[0] = 0;
00206 M00S00206.sx3ucp +++| END
00207 M00S00207.sx3ucp +++|
00208 M00S00208.sx3ucp +++| IF CPR$B[0] EQ 1931
00209 M00S00209.sx3ucp +++| THEN
00210 M00S00210.sx3ucp +++| BEGIN
00211 M00S00211.sx3ucp +++| FCT$FAULF[0] = 0;
00212 M00S00212.sx3ucp +++| END
00213 M00S00213.sx3ucp +++|
00214 M00S00214.sx3ucp +++|
00215 M00S00215.sx3ucp +++|#
00216 M00S00216.sx3ucp +++|* INITIALIZE CARTRIDGE LINK FIELD IN *FCT*.
00217 M00S00217.sx3ucp +++|#
00218 M00S00218.sx3ucp +++|
00219 M00S00219.sx3ucp +++| SLOWFOR SORL = 1 STEP 1 UNTIL 2
00220 M00S00220.sx3ucp +++| DO # FOR LARGE AND SMALL FILES #
00221 M00S00221.sx3ucp +++| BEGIN
00222 M00S00222.sx3ucp +++| IF SORL EQ 1
00223 M00S00223.sx3ucp +++| THEN # SET LINKAGE FOR LARGE FILES #
00224 M00S00224.sx3ucp +++| BEGIN
00225 M00S00225.sx3ucp +++| TERMX = CPR$B[0] + 1;
00226 M00S00226.sx3ucp +++| POINT = 0;
00227 M00S00227.sx3ucp +++| START = INAVOT;
00228 M00S00228.sx3ucp +++| END
00229 M00S00229.sx3ucp +++|
00230 M00S00230.sx3ucp +++| IF SORL EQ 2
00231 M00S00231.sx3ucp +++| THEN # SET LINKAGE FOR SMALL FILES #
00232 M00S00232.sx3ucp +++| BEGIN
00233 M00S00233.sx3ucp +++| TERMX = 1;
00234 M00S00234.sx3ucp +++| POINT = 0;
00235 M00S00235.sx3ucp +++| START = CPR$B[0];
00236 M00S00236.sx3ucp +++| END
00237 M00S00237.sx3ucp +++|
00238 M00S00238.sx3ucp +++| LENCOUNT = 0;
00239 M00S00239.sx3ucp +++| SLOWFOR I = START STEP -1 UNTIL TERMX
00240 M00S00240.sx3ucp +++| DO # INITIALIZE FIELDS #
00241 M00S00241.sx3ucp +++| BEGIN
00242 M00S00242.sx3ucp +++| WORD = FCT$WD(I);
00243 M00S00243.sx3ucp +++| POS = FCT$WP(I);
00244 M00S00244.sx3ucp +++| FCT$CLFG(WORD,POS) = 0;
00245 M00S00245.sx3ucp +++| FCT$LEN(WORD,POS) = LENCOUNT;
00246 M00S00246.sx3ucp +++| IF (I - INAVVS + LENCOUNT) LQ 0
00247 M00S00247.sx3ucp +++| THEN
00248 M00S00248.sx3ucp +++| BEGIN
00249 M00S00249.sx3ucp +++| FCT$LINK(WORD,POS) = 1;
00250 M00S00250.sx3ucp +++| END
00251 M00S00251.sx3ucp +++|
00252 M00S00252.sx3ucp +++| ELSE
00253 M00S00253.sx3ucp +++| BEGIN
00254 M00S00254.sx3ucp +++| FCT$LINK(WORD,POS) = I - INAVVS + LENCOUNT;
00255 M00S00255.sx3ucp +++| END
00256 M00S00256.sx3ucp +++|
00257 M00S00257.sx3ucp +++| IF (SORL EQ 1) AND ((I - INAVVS + LENCOUNT) LS TERMX)
00258 M00S00258.sx3ucp +++| THEN # SHORT VOLUME FOR LARGE FILES #
00259 M00S00259.sx3ucp +++| BEGIN
00260 M00S00260.sx3ucp +++| FCT$LINK(WORD,POS) = TERMX;
00261 M00S00261.sx3ucp +++| END
00262 M00S00262.sx3ucp +++|
00263 M00S00263.sx3ucp +++| IF LENCOUNT EQ INAVVS OR I EQ TERMX
00264 M00S00264.sx3ucp +++| THEN
00265 M00S00265.sx3ucp +++| BEGIN
00266 M00S00266.sx3ucp +++| FCT$CAUF(WORD,POS) = 0;
00267 M00S00267.sx3ucp +++| FCT$LINK(WORD,POS) = POINT;
00268 M00S00268.sx3ucp +++| POINT = I;
00269 M00S00269.sx3ucp +++| END
00270 M00S00270.sx3ucp +++|
00271 M00S00271.sx3ucp +++| ELSE
00272 M00S00272.sx3ucp +++| BEGIN
00273 M00S00273.sx3ucp +++| FCT$CAUF(WORD,POS) = 1;
00274 M00S00274.sx3ucp +++| END
00275 M00S00275.sx3ucp +++|
00276 M00S00276.sx3ucp +++|
00277 M00S00277.sx3ucp +++| LENCOUNT = LENCOUNT + 1;
00278 M00S00278.sx3ucp +++| IF LENCOUNT GR INAVVS
00279 M00S00279.sx3ucp +++| THEN # MAXIMUM VOLUME FOUND #
00280 M00S00280.sx3ucp +++| BEGIN
00281 M00S00281.sx3ucp +++| LENCOUNT = 0;
00282 M00S00282.sx3ucp +++| END
00283 M00S00283.sx3ucp +++|
00284 M00S00284.sx3ucp +++| END
00285 M00S00285.sx3ucp +++|
00286 M00S00286.sx3ucp +++| END
00287 M00S00287.sx3ucp +++|
00288 M00S00288.sx3ucp +++|
00289 M00S00289.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
00290 M00S00290.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00291 M00S00291.sx3ucp +++| THEN
00292 M00S00292.sx3ucp +++| BEGIN
00293 M00S00293.sx3ucp +++| GOTO ERRORTN;
00294 M00S00294.sx3ucp +++| END
00295 M00S00295.sx3ucp +++|
00296 M00S00296.sx3ucp +++|#
00297 M00S00297.sx3ucp +++|* UPDATE *AST* AND PREAMBLE.
00298 M00S00298.sx3ucp +++|#
00299 M00S00299.sx3ucp +++|
00300 M00S00300.sx3ucp +++| AST$1ST[ORD] = 0;
00301 M00S00301.sx3ucp +++| AST$2ND[ORD] = 0;
00302 M00S00302.sx3ucp +++| AST$AULF[ORD] = INAVOT - CPR$B[0];
00303 M00S00303.sx3ucp +++| AST$AUSF[ORD] = CPR$B[0];
00304 M00S00304.sx3ucp +++| AST$GR[ORD] = CPR$GR[0];
00305 M00S00305.sx3ucp +++| AST$GRT[ORD] = CPR$GRT[0];
00306 M00S00306.sx3ucp +++| AST$AAF[ORD] = TRUE;
00307 M00S00307.sx3ucp +++| AST$NOCLF[ORD] = FALSE;
00308 M00S00308.sx3ucp +++|
00309 M00S00309.sx3ucp +++|
00310 M00S00310.sx3ucp +++| AST$STAT[ORD] = ASTENSTAT"ASS$CART";
00311 M00S00311.sx3ucp +++| ANLZAST(CPR$CSU[0],-1,-1,FXS,FXL,GPX,GPS);
00312 M00S00312.sx3ucp +++| PRM$MXAUS[CPR$CSU[0]] = AST$AUSF[FXS];
00313 M00S00313.sx3ucp +++| PRM$MXAUL[CPR$CSU[0]] = AST$AULF[FXL];
00314 M00S00314.sx3ucp +++| PRM$MXAUGR[CPR$CSU[0]] = GPS;
00315 M00S00315.sx3ucp +++|
00316 M00S00316.sx3ucp +++| UASTPRM(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],FCTEADDR,ERRSTAT);
00317 M00S00317.sx3ucp +++| CWTAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
00318 M00S00318.sx3ucp +++|
00319 M00S00319.sx3ucp +++|#
00320 M00S00320.sx3ucp +++|* PASS THE REQUEST STATUS TO THE *UCP* AND RETURN TO CALLER.
00321 M00S00321.sx3ucp +++|#
00322 M00S00322.sx3ucp +++|
00323 M00S00323.sx3ucp +++|ERRORTN:
00324 M00S00324.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00325 M00S00325.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00326 M00S00326.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
00327 M00S00327.sx3ucp +++| LOANFCTQ(-1);
00328 M00S00328.sx3ucp +++| MFLUSH;
00329 M00S00329.sx3ucp +++| CFLUSH(CPR$FAM[0],CPR$SUB[0],0,ERRSTAT);
00330 M00S00330.sx3ucp +++| UCP$RES;
00331 M00S00331.sx3ucp +++| RETURN;
00332 M00S00332.sx3ucp +++|
00333 M00S00333.sx3ucp +++| END # ADDCAR #
00334 M00S00334.sx3ucp +++|
00335 M00S00335.sx3ucp +++| TERM
00336 M00S00336.sx3ucp +++|PROC ADDCSU;
00337 M00S00337.sx3ucp +++|# TITLE ADDCSU - ADD *SM* SUB-CATALOG. #
00338 M00S00338.sx3ucp +++|
00339 M00S00339.sx3ucp +++| BEGIN # ADDCSU #
00340 M00S00340.sx3ucp +++|
00341 M00S00341.sx3ucp +++|#
00342 M00S00342.sx3ucp +++|** ADDCSU - ADD *SM* SUB-CATALOG.
00343 M00S00343.sx3ucp +++|*
00344 M00S00344.sx3ucp +++|* *ADDCSU* ADDS A SUB-CATALOG TO THE CATALOG SO AS TO
00345 M00S00345.sx3ucp +++|* ACCOMADATE AN ADDITIONAL *SM*.
00346 M00S00346.sx3ucp +++|*
00347 M00S00347.sx3ucp +++|* PROC ADDCSU
00348 M00S00348.sx3ucp +++|*
00349 M00S00349.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00350 M00S00350.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00351 M00S00351.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
00352 M00S00352.sx3ucp +++|* *LTCENTRY*.
00353 M00S00353.sx3ucp +++|*
00354 M00S00354.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
00355 M00S00355.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
00356 M00S00356.sx3ucp +++|* OF THE REQUEST.
00357 M00S00357.sx3ucp +++|*
00358 M00S00358.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
00359 M00S00359.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
00360 M00S00360.sx3ucp +++|* = OK3 OK
00361 M00S00361.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
00362 M00S00362.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
00363 M00S00363.sx3ucp +++|* = SUB$CAT$EX SUBCATALOG ALREADY EXISTS
00364 M00S00364.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
00365 M00S00365.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
00366 M00S00366.sx3ucp +++|#
00367 M00S00367.sx3ucp +++|
00368 M00S00368.sx3ucp +++|#
00369 M00S00369.sx3ucp +++|**** PROC ADDCSU - XREF LIST BEGIN.
00370 M00S00370.sx3ucp +++|#
00371 M00S00371.sx3ucp +++|
00372 M00S00372.sx3ucp +++| XREF
00373 M00S00373.sx3ucp +++| BEGIN
00374 M00S00374.sx3ucp +++| PROC CADDSC; # ADD SUBCATALOG #
00375 M00S00375.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
00376 M00S00376.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
00377 M00S00377.sx3ucp +++| *UCP* ERRORS #
00378 M00S00378.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
00379 M00S00379.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
00380 M00S00380.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
00381 M00S00381.sx3ucp +++| #
00382 M00S00382.sx3ucp +++| END
00383 M00S00383.sx3ucp +++|
00384 M00S00384.sx3ucp +++|#
00385 M00S00385.sx3ucp +++|**** PROC ADDCSU - XREF LIST END.
00386 M00S00386.sx3ucp +++|#
00387 M00S00387.sx3ucp +++|
00388 M00S00388.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00389 M00S00389.sx3ucp +++|*CALL COMBFAS
00390 M00S00390.sx3ucp +++|*CALL COMBCMD
00391 M00S00391.sx3ucp +++|*CALL COMBCMS
00392 M00S00392.sx3ucp +++|*CALL COMBCPR
00393 M00S00393.sx3ucp +++|*CALL COMBMAP
00394 M00S00394.sx3ucp +++|*CALL COMBMCT
00395 M00S00395.sx3ucp +++|*CALL COMXLTC
00396 M00S00396.sx3ucp +++|*CALL COMXMSC
00397 M00S00397.sx3ucp +++|
00398 M00S00398.sx3ucp +++|
00399 M00S00399.sx3ucp +++| ITEM FCTNUM U; # *FCT* ENTRY INCREMENT #
00400 M00S00400.sx3ucp +++| ITEM I U; # COUNTER #
00401 M00S00401.sx3ucp +++| ITEM K U; # COUNTER #
00402 M00S00402.sx3ucp +++|
00403 M00S00403.sx3ucp +++|
00404 M00S00404.sx3ucp +++|
00405 M00S00405.sx3ucp +++|
00406 M00S00406.sx3ucp +++|
00407 M00S00407.sx3ucp +++|#
00408 M00S00408.sx3ucp +++|* CREATE A SUB-CATALOG FOR THE *SM*.
00409 M00S00409.sx3ucp +++|#
00410 M00S00410.sx3ucp +++|
00411 M00S00411.sx3ucp +++| FCTNUM = NUMFCT;
00412 M00S00412.sx3ucp +++| CADDSC(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],FCTNUM,0,ERRSTAT);
00413 M00S00413.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00414 M00S00414.sx3ucp +++| THEN
00415 M00S00415.sx3ucp +++| BEGIN
00416 M00S00416.sx3ucp +++| GOTO ERRORTN;
00417 M00S00417.sx3ucp +++| END
00418 M00S00418.sx3ucp +++|
00419 M00S00419.sx3ucp +++|#
00420 M00S00420.sx3ucp +++|* GET THE AVAILABLE STREAM TABLE (*AST*).
00421 M00S00421.sx3ucp +++|#
00422 M00S00422.sx3ucp +++|
00423 M00S00423.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
00424 M00S00424.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00425 M00S00425.sx3ucp +++| THEN
00426 M00S00426.sx3ucp +++| BEGIN
00427 M00S00427.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00428 M00S00428.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00429 M00S00429.sx3ucp +++| UCP$RES;
00430 M00S00430.sx3ucp +++| RETURN;
00431 M00S00431.sx3ucp +++| END
00432 M00S00432.sx3ucp +++|
00433 M00S00433.sx3ucp +++|#
00434 M00S00434.sx3ucp +++|* SET STATUS OF ENTRIES TO UNASSIGNED CUBE.
00435 M00S00435.sx3ucp +++|#
00436 M00S00436.sx3ucp +++|
00437 M00S00437.sx3ucp +++| P<AST> = ASTBADR;
00438 M00S00438.sx3ucp +++| SLOWFOR I = 16 STEP 1 UNTIL (MAXORD + 15)
00439 M00S00439.sx3ucp +++| DO # SET *AST* STATUS #
00440 M00S00440.sx3ucp +++| BEGIN
00441 M00S00441.sx3ucp +++| AST$STAT[I] = ASTENSTAT"UNASS$CUB";
00442 M00S00442.sx3ucp +++| END
00443 M00S00443.sx3ucp +++|
00444 M00S00444.sx3ucp +++| AST$NAME[15] = "*AST* ";
00445 M00S00445.sx3ucp +++| AST$SM[15] = CPR$CSU[0];
00446 M00S00446.sx3ucp +++|
00447 M00S00447.sx3ucp +++|#
00448 M00S00448.sx3ucp +++|* REWRITE *AST*.
00449 M00S00449.sx3ucp +++|#
00450 M00S00450.sx3ucp +++|
00451 M00S00451.sx3ucp +++| CWTAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
00452 M00S00452.sx3ucp +++|
00453 M00S00453.sx3ucp +++|#
00454 M00S00454.sx3ucp +++|* SEND RESPONSE TO *UCP* AND RETURN TO CALLER.
00455 M00S00455.sx3ucp +++|#
00456 M00S00456.sx3ucp +++|
00457 M00S00457.sx3ucp +++|ERRORTN:
00458 M00S00458.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00459 M00S00459.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00460 M00S00460.sx3ucp +++| CFLUSH(CPR$FAM[0],CPR$SUB[0],0,ERRSTAT);
00461 M00S00461.sx3ucp +++| UCP$RES;
00462 M00S00462.sx3ucp +++| RETURN;
00463 M00S00463.sx3ucp +++|
00464 M00S00464.sx3ucp +++| END # ADDCSU #
00465 M00S00465.sx3ucp +++|
00466 M00S00466.sx3ucp +++| TERM
00467 M00S00467.sx3ucp +++|PROC ADDCUBE;
00468 M00S00468.sx3ucp +++|# TITLE ADDCUBE - ASSIGN CUBE TO SUB-FAMILY. #
00469 M00S00469.sx3ucp +++|
00470 M00S00470.sx3ucp +++| BEGIN # ADDCUBE #
00471 M00S00471.sx3ucp +++|
00472 M00S00472.sx3ucp +++|#
00473 M00S00473.sx3ucp +++|** ADDCUBE - ASSIGN CUBE TO SUB-FAMILY.
00474 M00S00474.sx3ucp +++|*
00475 M00S00475.sx3ucp +++|* *ADDCUBE* UPDATES THE *SMMAP*, *FCT*, AND *AST*
00476 M00S00476.sx3ucp +++|* TO REFLECT THE ASSIGNMENT OF THE CUBICLE TO THE SUB-FAMILY.
00477 M00S00477.sx3ucp +++|*
00478 M00S00478.sx3ucp +++|* PROC ADDCUBE
00479 M00S00479.sx3ucp +++|*
00480 M00S00480.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00481 M00S00481.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00482 M00S00482.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
00483 M00S00483.sx3ucp +++|* *LTCENTRY*.
00484 M00S00484.sx3ucp +++|*
00485 M00S00485.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
00486 M00S00486.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
00487 M00S00487.sx3ucp +++|* OF THE REQUEST.
00488 M00S00488.sx3ucp +++|*
00489 M00S00489.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
00490 M00S00490.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
00491 M00S00491.sx3ucp +++|* = OK3 OK
00492 M00S00492.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
00493 M00S00493.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
00494 M00S00494.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
00495 M00S00495.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
00496 M00S00496.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
00497 M00S00497.sx3ucp +++|#
00498 M00S00498.sx3ucp +++|
00499 M00S00499.sx3ucp +++|#
00500 M00S00500.sx3ucp +++|**** PROC ADDCUBE - XREF LIST BEGIN.
00501 M00S00501.sx3ucp +++|#
00502 M00S00502.sx3ucp +++|
00503 M00S00503.sx3ucp +++| XREF
00504 M00S00504.sx3ucp +++| BEGIN
00505 M00S00505.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
00506 M00S00506.sx3ucp +++| #
00507 M00S00507.sx3ucp +++| PROC CEXTSC; # EXTEND SUBCATALOG #
00508 M00S00508.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
00509 M00S00509.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
00510 M00S00510.sx3ucp +++| *UCP* ERRORS #
00511 M00S00511.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
00512 M00S00512.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
00513 M00S00513.sx3ucp +++| PROC MFLUSH; # FLUSH MAP TO FILE #
00514 M00S00514.sx3ucp +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE
00515 M00S00515.sx3ucp +++| CALLER #
00516 M00S00516.sx3ucp +++| PROC MPUTENT; # MAP ENTRY TO THE MAP FILE BUFFER
00517 M00S00517.sx3ucp +++| #
00518 M00S00518.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
00519 M00S00519.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
00520 M00S00520.sx3ucp +++| #
00521 M00S00521.sx3ucp +++| END
00522 M00S00522.sx3ucp +++|
00523 M00S00523.sx3ucp +++|#
00524 M00S00524.sx3ucp +++|**** PROC ADDCUBE - XREF LIST END.
00525 M00S00525.sx3ucp +++|#
00526 M00S00526.sx3ucp +++|
00527 M00S00527.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00528 M00S00528.sx3ucp +++|*CALL COMBFAS
00529 M00S00529.sx3ucp +++|*CALL COMBCMD
00530 M00S00530.sx3ucp +++|*CALL COMBCMS
00531 M00S00531.sx3ucp +++|*CALL COMBCPR
00532 M00S00532.sx3ucp +++|*CALL COMBMAP
00533 M00S00533.sx3ucp +++|*CALL COMBMCT
00534 M00S00534.sx3ucp +++|*CALL COMXFCQ
00535 M00S00535.sx3ucp +++|*CALL COMXLTC
00536 M00S00536.sx3ucp +++|*CALL COMXMSC
00537 M00S00537.sx3ucp +++|
00538 M00S00538.sx3ucp +++|
00539 M00S00539.sx3ucp +++| ITEM FCTNUM U; # *FCT* ENTRY INCREMENT #
00540 M00S00540.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS RETURNED
00541 M00S00541.sx3ucp +++| FROM *ACQ$FCT* #
00542 M00S00542.sx3ucp +++| ITEM ORD U; # ORDINAL OF *AST*/*FCT* ENTRY #
00543 M00S00543.sx3ucp +++| ITEM I U; # COUNTER #
00544 M00S00544.sx3ucp +++| ITEM K U; # COUNTER #
00545 M00S00545.sx3ucp +++|
00546 M00S00546.sx3ucp +++|
00547 M00S00547.sx3ucp +++|
00548 M00S00548.sx3ucp +++|
00549 M00S00549.sx3ucp +++|
00550 M00S00550.sx3ucp +++|#
00551 M00S00551.sx3ucp +++|* GET ALLOCATION SUMMARY TABLE FOR THE FAMILY.
00552 M00S00552.sx3ucp +++|#
00553 M00S00553.sx3ucp +++|
00554 M00S00554.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
00555 M00S00555.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00556 M00S00556.sx3ucp +++| THEN
00557 M00S00557.sx3ucp +++| BEGIN
00558 M00S00558.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00559 M00S00559.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00560 M00S00560.sx3ucp +++| UCP$RES;
00561 M00S00561.sx3ucp +++| RETURN;
00562 M00S00562.sx3ucp +++| END
00563 M00S00563.sx3ucp +++|
00564 M00S00564.sx3ucp +++| FCTNUM = NUMFCT;
00565 M00S00565.sx3ucp +++|
00566 M00S00566.sx3ucp +++|
00567 M00S00567.sx3ucp +++|#
00568 M00S00568.sx3ucp +++|* GET THE MAP ENTRY FOR THE *XY* COORDINATES OF THE REQUEST.
00569 M00S00569.sx3ucp +++|#
00570 M00S00570.sx3ucp +++|
00571 M00S00571.sx3ucp +++| MGETENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
00572 M00S00572.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00573 M00S00573.sx3ucp +++| THEN
00574 M00S00574.sx3ucp +++| BEGIN
00575 M00S00575.sx3ucp +++| GOTO ERRORTN;
00576 M00S00576.sx3ucp +++| END
00577 M00S00577.sx3ucp +++|
00578 M00S00578.sx3ucp +++|
00579 M00S00579.sx3ucp +++|#
00580 M00S00580.sx3ucp +++|* UPDATE THE MAP AND *FCT* TO REFLECT A CUBE BEING ASSIGNED
00581 M00S00581.sx3ucp +++|* TO A FAMILY.
00582 M00S00582.sx3ucp +++|#
00583 M00S00583.sx3ucp +++|
00584 M00S00584.sx3ucp +++| P<FCT> = FCTEADDR + FCTQHL;
00585 M00S00585.sx3ucp +++| P<SMUMAP> = LOC(MAPBUFR);
00586 M00S00586.sx3ucp +++| CM$FMLYNM[0] = CPR$FAM[0];
00587 M00S00587.sx3ucp +++| CM$SUB[0] = CPR$SUB[0];
00588 M00S00588.sx3ucp +++| CM$CODE[0] = CUBSTAT"SUBFAM";
00589 M00S00589.sx3ucp +++| CM$CSND[0] = " ";
00590 M00S00590.sx3ucp +++| MPUTENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
00591 M00S00591.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
00592 M00S00592.sx3ucp +++| THEN
00593 M00S00593.sx3ucp +++| BEGIN
00594 M00S00594.sx3ucp +++| GOTO ERRORTN;
00595 M00S00595.sx3ucp +++| END
00596 M00S00596.sx3ucp +++|
00597 M00S00597.sx3ucp +++|
00598 M00S00598.sx3ucp +++|
00599 M00S00599.sx3ucp +++|
00600 M00S00600.sx3ucp +++|
00601 M00S00601.sx3ucp +++|#
00602 M00S00602.sx3ucp +++|* RETURN THE RESPONSE TO THE UCP, REWRITE THE ALLOCATION
00603 M00S00603.sx3ucp +++|* SUMMARY TABLE, AND RETURN TO THE CALLER.
00604 M00S00604.sx3ucp +++|#
00605 M00S00605.sx3ucp +++|
00606 M00S00606.sx3ucp +++|ERRORTN:
00607 M00S00607.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00608 M00S00608.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00609 M00S00609.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
00610 M00S00610.sx3ucp +++| MFLUSH;
00611 M00S00611.sx3ucp +++| UCP$RES;
00612 M00S00612.sx3ucp +++| RETURN;
00613 M00S00613.sx3ucp +++|
00614 M00S00614.sx3ucp +++| END # ADDCUBE #
00615 M00S00615.sx3ucp +++|
00616 M00S00616.sx3ucp +++| TERM
00617 M00S00617.sx3ucp +++|PROC CONVER3((REQTYPE),(REQCODE),(MCSTAT),RSTATUS);
00618 M00S00618.sx3ucp +++|# TITLE CONVER3 - CONVERT MAP/CATALOG ERRORS TO *UCP* ERRORS. #
00619 M00S00619.sx3ucp +++|
00620 M00S00620.sx3ucp +++| BEGIN # CONVER3 #
00621 M00S00621.sx3ucp +++|
00622 M00S00622.sx3ucp +++|#
00623 M00S00623.sx3ucp +++|** CONVER3 - CONVERT MAP/CATALOG ERRORS TO *UCP* ERRORS.
00624 M00S00624.sx3ucp +++|*
00625 M00S00625.sx3ucp +++|* PROC CONVER3((REQTYPE),(REQCODE),(MCSTAT),RSTATUS)
00626 M00S00626.sx3ucp +++|*
00627 M00S00627.sx3ucp +++|* ENTRY REQTYPE - REQUEST TYPE (TYPE 3).
00628 M00S00628.sx3ucp +++|* REQCODE - REQUEST CODE (VALID TYPE 3 CODE).
00629 M00S00629.sx3ucp +++|* MCSTAT - MAP/CATALOG ERROR CODE.
00630 M00S00630.sx3ucp +++|*
00631 M00S00631.sx3ucp +++|* EXIT RSTATUS - *UCP* ERROR CODE.
00632 M00S00632.sx3ucp +++|*
00633 M00S00633.sx3ucp +++|* MESSAGES * EXEC ABNORMAL, CONVER3. *
00634 M00S00634.sx3ucp +++|#
00635 M00S00635.sx3ucp +++|
00636 M00S00636.sx3ucp +++| ITEM REQTYPE U; # REQUEST TYPE #
00637 M00S00637.sx3ucp +++| ITEM REQCODE U; # REQUEST CODE #
00638 M00S00638.sx3ucp +++| ITEM MCSTAT U; # MAP/CATALOG ERROR CODE #
00639 M00S00639.sx3ucp +++| ITEM RSTATUS U; # *UCP* ERROR CODE RETURNED #
00640 M00S00640.sx3ucp +++|
00641 M00S00641.sx3ucp +++|#
00642 M00S00642.sx3ucp +++|**** PROC CONVER3 - XREF LIST BEGIN.
00643 M00S00643.sx3ucp +++|#
00644 M00S00644.sx3ucp +++|
00645 M00S00645.sx3ucp +++| XREF
00646 M00S00646.sx3ucp +++| BEGIN
00647 M00S00647.sx3ucp +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO #
00648 M00S00648.sx3ucp +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO #
00649 M00S00649.sx3ucp +++| END
00650 M00S00650.sx3ucp +++|
00651 M00S00651.sx3ucp +++|#
00652 M00S00652.sx3ucp +++|**** PROC CONVER3 - XREF LIST END.
00653 M00S00653.sx3ucp +++|#
00654 M00S00654.sx3ucp +++|
00655 M00S00655.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00656 M00S00656.sx3ucp +++|*CALL COMBFAS
00657 M00S00657.sx3ucp +++|*CALL COMBCMS
00658 M00S00658.sx3ucp +++|*CALL COMBCPR
00659 M00S00659.sx3ucp +++|*CALL,COMXMSC
00660 M00S00660.sx3ucp +++|
00661 M00S00661.sx3ucp +++| ARRAY ERRMAP [CMASTAT"NOERR":CMASTAT"STATLAST"] P(1);
00662 M00S00662.sx3ucp +++| BEGIN
00663 M00S00663.sx3ucp +++| ITEM ERR$RCV U(00,00,60) = [ # RESPONSE CODE VALIDITY #
00664 M00S00664.sx3ucp +++| O"37777000000000000000", # NO ERROR #
00665 M00S00665.sx3ucp +++| O"37775000000000000000", # FILE INTERLOCKED #
00666 M00S00666.sx3ucp +++| O"00000000000000000000", # FILE ALREADY OPEN #
00667 M00S00667.sx3ucp +++| O"37774000000000000000", # FILE NOT OPEN #
00668 M00S00668.sx3ucp +++| O"00000000000000000000", # FILE NOT OPEN IN *MODIFY* MODE #
00669 M00S00669.sx3ucp +++| O"00000000000000000000", # FILE ALREADY INITIALIZED #
00670 M00S00670.sx3ucp +++| O"04000000000000000000", # SUBCATALOG ALREADY EXISTS #
00671 M00S00671.sx3ucp +++| O"37674000000000000000", # NO SUCH SUBCATALOG #
00672 M00S00672.sx3ucp +++| O"37775000000000000000", # *CIO* ERROR #
00673 M00S00673.sx3ucp +++| O"33370000000000000000", # ORDINAL OUT OF RANGE #
00674 M00S00674.sx3ucp +++| O"00001000000000000000", # MAP/CATALOG *ATTACH* ERROR #
00675 M00S00675.sx3ucp +++| O"00000000000000000000", # MAP/CATALOG *DEFINE* ERROR #
00676 M00S00676.sx3ucp +++| O"24400000000000000000", # TEMPORARY FILE *DEFINE* ERROR #
00677 M00S00677.sx3ucp +++| O"24400000000000000000", # TEMPORARY FILE *ATTACH* ERROR #
00678 M00S00678.sx3ucp +++| O"24400000000000000000", # TEMPORARY FILE *PURGE* ERROR #
00679 M00S00679.sx3ucp +++| O"24400000000000000000", # TEMPORARY FILE *RENAME* ERROR #
00680 M00S00680.sx3ucp +++| O"00000000000000000000", # *OCT* FULL #
00681 M00S00681.sx3ucp +++| ];
00682 M00S00682.sx3ucp +++| END
00683 M00S00683.sx3ucp +++|
00684 M00S00684.sx3ucp +++| SWITCH CONV$LIST:CMASTAT # CONVERSION LIST #
00685 M00S00685.sx3ucp +++| CONV0:NOERR, # NO ERROR #
00686 M00S00686.sx3ucp +++| CONV1:INTLK, # FILE INTERLOCKED #
00687 M00S00687.sx3ucp +++| CONV2:NOTOPEN, # FILE NOT OPENED #
00688 M00S00688.sx3ucp +++| CONV4:SCEXISTS, # SUBCATALOG ALREADY EXISTS #
00689 M00S00689.sx3ucp +++| CONV5:NOSUBCAT, # NO SUCH SUBCATALOG #
00690 M00S00690.sx3ucp +++| CONV6:CIOERR, # *CIO* ERROR #
00691 M00S00691.sx3ucp +++| CONV8:ORDERR, # ORDINAL OUT OF RANGE #
00692 M00S00692.sx3ucp +++| CONV6:ATTERR, # MAP/CATALOG *ATTACH* ERROR #
00693 M00S00693.sx3ucp +++| CONV6:DEFERR, # MAP/CATALOG *DEFINE* ERROR #
00694 M00S00694.sx3ucp +++| CONV6:TDEFERR, # TEMPORARY FILE *DEFINE* ERROR #
00695 M00S00695.sx3ucp +++| CONV6:TATTERR, # TEMPORARY FILE *ATTACH* ERROR #
00696 M00S00696.sx3ucp +++| CONV6:TPRGERR, # TEMPORARY FILE *PURGE* ERROR #
00697 M00S00697.sx3ucp +++| CONV6:TRNMERR; # TEMPORARY FILE *RENAME* ERROR #
00698 M00S00698.sx3ucp +++| CONTROL EJECT;
00699 M00S00699.sx3ucp +++|
00700 M00S00700.sx3ucp +++|#
00701 M00S00701.sx3ucp +++|* TEST FOR AN INVALID ERROR CODE.
00702 M00S00702.sx3ucp +++|#
00703 M00S00703.sx3ucp +++|
00704 M00S00704.sx3ucp +++| IF REQTYPE NQ TYP"TYP3" ##
00705 M00S00705.sx3ucp +++| OR MCSTAT GQ CMASTAT"STATLAST" ##
00706 M00S00706.sx3ucp +++| OR REQCODE GQ REQTYP3"LSTREQTYP3" ##
00707 M00S00707.sx3ucp +++| OR B<REQCODE,1>ERR$RCV[MCSTAT] EQ 0
00708 M00S00708.sx3ucp +++| THEN
00709 M00S00709.sx3ucp +++| BEGIN
00710 M00S00710.sx3ucp +++| FE$RTN[0] = "CONVER3.";
00711 M00S00711.sx3ucp +++| MESSAGE(FEMSG[0],UDFL1);
00712 M00S00712.sx3ucp +++| ABORT;
00713 M00S00713.sx3ucp +++| END
00714 M00S00714.sx3ucp +++|
00715 M00S00715.sx3ucp +++|#
00716 M00S00716.sx3ucp +++|* SIMULATED CASE STATEMENT TO CONVERT THE MAP/CATALOG ERROR CODE
00717 M00S00717.sx3ucp +++|* TO THE APPROPRIATE *UCP* ERROR CODE.
00718 M00S00718.sx3ucp +++|#
00719 M00S00719.sx3ucp +++|
00720 M00S00720.sx3ucp +++| GOTO CONV$LIST[MCSTAT];
00721 M00S00721.sx3ucp +++|
00722 M00S00722.sx3ucp +++|CONV0: # NO ERROR #
00723 M00S00723.sx3ucp +++| RSTATUS = RESPTYP3"OK3";
00724 M00S00724.sx3ucp +++| RETURN;
00725 M00S00725.sx3ucp +++|
00726 M00S00726.sx3ucp +++|CONV1: # CATALOG/MAP INTERLOCKED #
00727 M00S00727.sx3ucp +++| RSTATUS = RESPTYP3"C$M$INTLCK";
00728 M00S00728.sx3ucp +++| RETURN;
00729 M00S00729.sx3ucp +++|
00730 M00S00730.sx3ucp +++|CONV2: # CATALOG/MAP NOT OPEN #
00731 M00S00731.sx3ucp +++| RSTATUS = RESPTYP3"C$M$NOPEN";
00732 M00S00732.sx3ucp +++| RETURN;
00733 M00S00733.sx3ucp +++|
00734 M00S00734.sx3ucp +++|CONV4: # SUBCATALOG ALREADY EXISTS #
00735 M00S00735.sx3ucp +++| RSTATUS = RESPTYP3"SUB$CAT$EX";
00736 M00S00736.sx3ucp +++| RETURN;
00737 M00S00737.sx3ucp +++|
00738 M00S00738.sx3ucp +++|CONV5: # NO SUCH SUBCATALOG #
00739 M00S00739.sx3ucp +++| RSTATUS = RESPTYP3"NO$SUB$CAT";
00740 M00S00740.sx3ucp +++| RETURN;
00741 M00S00741.sx3ucp +++|
00742 M00S00742.sx3ucp +++|CONV6: # PERMANENT FILE PROBLEM #
00743 M00S00743.sx3ucp +++| RSTATUS = RESPTYP3"PF$PROB";
00744 M00S00744.sx3ucp +++| RETURN;
00745 M00S00745.sx3ucp +++|
00746 M00S00746.sx3ucp +++|CONV8: # ORDINAL OUT OF RANGE #
00747 M00S00747.sx3ucp +++| RSTATUS = RESPTYP3"ILLEG$ORD";
00748 M00S00748.sx3ucp +++| RETURN;
00749 M00S00749.sx3ucp +++|
00750 M00S00750.sx3ucp +++|#
00751 M00S00751.sx3ucp +++|* END SIMULATED CASE STATEMENT TO CONVERT THE MAP/CATALOG
00752 M00S00752.sx3ucp +++|* ERROR CODE TO THE APPROPRIATE *UCP* ERROR CODE.
00753 M00S00753.sx3ucp +++|#
00754 M00S00754.sx3ucp +++|
00755 M00S00755.sx3ucp +++| END # CONVER3 #
00756 M00S00756.sx3ucp +++|
00757 M00S00757.sx3ucp +++| TERM
00758 M00S00758.sx3ucp +++|PROC GETPD;
00759 M00S00759.sx3ucp +++|# TITLE GETPD - RETURNS LAST *PRG$ORPH* DATE AND TIME. #
00760 M00S00760.sx3ucp +++|
00761 M00S00761.sx3ucp +++| BEGIN # GETPD #
00762 M00S00762.sx3ucp +++|
00763 M00S00763.sx3ucp +++|#
00764 M00S00764.sx3ucp +++|** GETPD - RETURNS LAST *PRG$ORPH* DATE AND TIME.
00765 M00S00765.sx3ucp +++|* *GETPD* RETURNS THE DATE AND TIME AT WHICH THE LAST
00766 M00S00766.sx3ucp +++|* *PRG$ORPH* REQUEST FROM *SSVAL* WAS PROCESSED.
00767 M00S00767.sx3ucp +++|* THE DATE AND TIME IS RETURNED VIA THE *CSN* FIELD
00768 M00S00768.sx3ucp +++|* OF THE RESPONSE WORD.
00769 M00S00769.sx3ucp +++|*
00770 M00S00770.sx3ucp +++|* PROC GETPD
00771 M00S00771.sx3ucp +++|*
00772 M00S00772.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00773 M00S00773.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00774 M00S00774.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
00775 M00S00775.sx3ucp +++|* *LTCENTRY*.
00776 M00S00776.sx3ucp +++|*
00777 M00S00777.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
00778 M00S00778.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
00779 M00S00779.sx3ucp +++|* OF THE REQUEST.
00780 M00S00780.sx3ucp +++|*
00781 M00S00781.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
00782 M00S00782.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
00783 M00S00783.sx3ucp +++|* = OK3 OK
00784 M00S00784.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
00785 M00S00785.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
00786 M00S00786.sx3ucp +++|* = RESUB$REQ RESUBMIT REQUEST
00787 M00S00787.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
00788 M00S00788.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
00789 M00S00789.sx3ucp +++|#
00790 M00S00790.sx3ucp +++|
00791 M00S00791.sx3ucp +++|#
00792 M00S00792.sx3ucp +++|**** PROC GETPD - XREF LIST BEGIN.
00793 M00S00793.sx3ucp +++|#
00794 M00S00794.sx3ucp +++|
00795 M00S00795.sx3ucp +++| XREF
00796 M00S00796.sx3ucp +++| BEGIN
00797 M00S00797.sx3ucp +++| PROC CGETPD; # GET PURGE DATE #
00798 M00S00798.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
00799 M00S00799.sx3ucp +++| *UCP* ERRORS #
00800 M00S00800.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
00801 M00S00801.sx3ucp +++| #
00802 M00S00802.sx3ucp +++| END
00803 M00S00803.sx3ucp +++|
00804 M00S00804.sx3ucp +++|#
00805 M00S00805.sx3ucp +++|**** PROC GETPD - XREF LIST END.
00806 M00S00806.sx3ucp +++|#
00807 M00S00807.sx3ucp +++|
00808 M00S00808.sx3ucp +++|
00809 M00S00809.sx3ucp +++|
00810 M00S00810.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00811 M00S00811.sx3ucp +++|*CALL COMBFAS
00812 M00S00812.sx3ucp +++|*CALL COMBCPR
00813 M00S00813.sx3ucp +++|*CALL COMBMAP
00814 M00S00814.sx3ucp +++|*CALL COMXLTC
00815 M00S00815.sx3ucp +++|
00816 M00S00816.sx3ucp +++| ITEM LASTPRG U; # LAST PURGE DATE AND TIME #
00817 M00S00817.sx3ucp +++|
00818 M00S00818.sx3ucp +++|
00819 M00S00819.sx3ucp +++|
00820 M00S00820.sx3ucp +++|
00821 M00S00821.sx3ucp +++|
00822 M00S00822.sx3ucp +++| CGETPD(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],LASTPRG,0,ERRSTAT);
00823 M00S00823.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00824 M00S00824.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00825 M00S00825.sx3ucp +++| LTC$DATE[LTCENTRY] = LASTPRG;
00826 M00S00826.sx3ucp +++| UCP$RES;
00827 M00S00827.sx3ucp +++| RETURN;
00828 M00S00828.sx3ucp +++|
00829 M00S00829.sx3ucp +++| END # GETPD #
00830 M00S00830.sx3ucp +++|
00831 M00S00831.sx3ucp +++| TERM
00832 M00S00832.sx3ucp +++|PROC LOANFCTQ(ACTION);
00833 M00S00833.sx3ucp +++|
00834 M00S00834.sx3ucp +++|# TITLE LOANFCTQ - ADD OR RECLAIM AN *FCTQ* ENTRY FOR *UCP* PROCS. #
00835 M00S00835.sx3ucp +++|
00836 M00S00836.sx3ucp +++| BEGIN # LOANFCTQ #
00837 M00S00837.sx3ucp +++|
00838 M00S00838.sx3ucp +++|#
00839 M00S00839.sx3ucp +++|** LOANFCTQ - ADD OR RECLAIM AN *FCTQ* ENTRY FOR *UCP* PROCESSING.
00840 M00S00840.sx3ucp +++|*
00841 M00S00841.sx3ucp +++|* THIS PROCEDURE PROVIDES AN *FCTQ* ENTRY WHICH CAN BE USED
00842 M00S00842.sx3ucp +++|* BY THE CALLING *UCP* REQUEST PROCESSOR IN THE EVENT THE NORMAL
00843 M00S00843.sx3ucp +++|* *FCTQ* ENTRIES ARE IN USE BY *HLRQ* PROCESSING. THE CALLING
00844 M00S00844.sx3ucp +++|* PROCEDURES RULES ARE TO CALL *LOANFCTQ* PRIOR TO THE *ACQ$FCT*
00845 M00S00845.sx3ucp +++|* CALL TO ENSURE AN AVAILABLE *FCTQ* ENTRY. AFTER CALLING
00846 M00S00846.sx3ucp +++|* *RLS$FCT*, *LOANFCTQ* IS AGAIN CALLED TO TAKE THE TEMPORARY
00847 M00S00847.sx3ucp +++|* *FCTQ* ENTRY OUT OF THE *FCTQ* FREE SPACE CHAIN.
00848 M00S00848.sx3ucp +++|*
00849 M00S00849.sx3ucp +++|* PROC LOANFCTQ(ACTION)
00850 M00S00850.sx3ucp +++|*
00851 M00S00851.sx3ucp +++|* ENTRY ACTION = 0, AN *FCTQ* ENTRY TO BE MADE AVAILABLE.
00852 M00S00852.sx3ucp +++|* = X, THE *FCTQ* ENTRY IS TO BE RECLAIMED.
00853 M00S00853.sx3ucp +++|*
00854 M00S00854.sx3ucp +++|* EXIT THE *FCTQ* FREE SPACE CHAIN IS PROPERLY ADJUSTED.
00855 M00S00855.sx3ucp +++|#
00856 M00S00856.sx3ucp +++|
00857 M00S00857.sx3ucp +++| ITEM ACTION U; # REQUESTED PROCESSING ACTION #
00858 M00S00858.sx3ucp +++|
00859 M00S00859.sx3ucp +++|#
00860 M00S00860.sx3ucp +++|**** PROC LOANFCTQ - XREF LIST BEGIN.
00861 M00S00861.sx3ucp +++|#
00862 M00S00862.sx3ucp +++|
00863 M00S00863.sx3ucp +++| XREF
00864 M00S00864.sx3ucp +++| BEGIN
00865 M00S00865.sx3ucp +++| PROC ADD$LNK; # ADD ENTRY TO A CHAIN #
00866 M00S00866.sx3ucp +++| PROC DEL$LNK; # DELETE ENTRY FROM A CHAIN #
00867 M00S00867.sx3ucp +++| PROC ZFILL; # ZERO FILL AN ARRAY #
00868 M00S00868.sx3ucp +++| END
00869 M00S00869.sx3ucp +++|
00870 M00S00870.sx3ucp +++|#
00871 M00S00871.sx3ucp +++|**** PROC LOANFCTQ - XREF LIST END.
00872 M00S00872.sx3ucp +++|#
00873 M00S00873.sx3ucp +++|
00874 M00S00874.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00875 M00S00875.sx3ucp +++|
00876 M00S00876.sx3ucp +++|*CALL,COMBFAS
00877 M00S00877.sx3ucp +++|*CALL,COMBCHN
00878 M00S00878.sx3ucp +++|*CALL,COMBMCT
00879 M00S00879.sx3ucp +++|*CALL,COMXFCQ
00880 M00S00880.sx3ucp +++|
00881 M00S00881.sx3ucp +++| ARRAY LOANERFCTQ [0:0] S(FCTQHL);; # *FCTQ* HEADER #
00882 M00S00882.sx3ucp +++| ARRAY LOANERFCT [0:0] S(FCTENTL);; # *FCT* ENTRY #
00883 M00S00883.sx3ucp +++|
00884 M00S00884.sx3ucp +++|
00885 M00S00885.sx3ucp +++| IF ACTION EQ 0
00886 M00S00886.sx3ucp +++| THEN
00887 M00S00887.sx3ucp +++| BEGIN
00888 M00S00888.sx3ucp +++| ZFILL(LOANERFCTQ[0],FCTQHL+FCTENTL);
00889 M00S00889.sx3ucp +++| ADD$LNK(LOC(LOANERFCTQ[0]),LCHN"FCT$FRSPC",0);
00890 M00S00890.sx3ucp +++| END
00891 M00S00891.sx3ucp +++|
00892 M00S00892.sx3ucp +++| ELSE
00893 M00S00893.sx3ucp +++| BEGIN
00894 M00S00894.sx3ucp +++| DEL$LNK(LOC(LOANERFCTQ[0]),LCHN"FCT$FRSPC",0);
00895 M00S00895.sx3ucp +++| END
00896 M00S00896.sx3ucp +++|
00897 M00S00897.sx3ucp +++| RETURN;
00898 M00S00898.sx3ucp +++| END # LOANFCTQ #
00899 M00S00899.sx3ucp +++|
00900 M00S00900.sx3ucp +++| TERM
00901 M00S00901.sx3ucp +++|PROC MAPRCLM;
00902 M00S00902.sx3ucp +++|# TITLE MAPRCLM - RE-ATTACHES DESIGNATED MAP FILE. #
00903 M00S00903.sx3ucp +++|
00904 M00S00904.sx3ucp +++| BEGIN # MAPRCLM #
00905 M00S00905.sx3ucp +++|
00906 M00S00906.sx3ucp +++|#
00907 M00S00907.sx3ucp +++|** MAPRCLM - RE-ATTACHES DESIGNATED MAP FILE.
00908 M00S00908.sx3ucp +++|*
00909 M00S00909.sx3ucp +++|* *MAPRCLM* RE-ATTACHES THE DESIGNATED MAP FILE.
00910 M00S00910.sx3ucp +++|*
00911 M00S00911.sx3ucp +++|* PROC MAPRCLM
00912 M00S00912.sx3ucp +++|*
00913 M00S00913.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00914 M00S00914.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00915 M00S00915.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
00916 M00S00916.sx3ucp +++|* *LTCENTRY*.
00917 M00S00917.sx3ucp +++|*
00918 M00S00918.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
00919 M00S00919.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
00920 M00S00920.sx3ucp +++|* OF THE REQUEST.
00921 M00S00921.sx3ucp +++|*
00922 M00S00922.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
00923 M00S00923.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
00924 M00S00924.sx3ucp +++|* = OK3 OK
00925 M00S00925.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
00926 M00S00926.sx3ucp +++|*
00927 M00S00927.sx3ucp +++|* MESSAGES * EXEC ABNORMAL, MAPRCLM.*
00928 M00S00928.sx3ucp +++|#
00929 M00S00929.sx3ucp +++|
00930 M00S00930.sx3ucp +++|#
00931 M00S00931.sx3ucp +++|**** PROC MAPRCLM - XREF LIST BEGIN.
00932 M00S00932.sx3ucp +++|#
00933 M00S00933.sx3ucp +++|
00934 M00S00934.sx3ucp +++| XREF
00935 M00S00935.sx3ucp +++| BEGIN
00936 M00S00936.sx3ucp +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO #
00937 M00S00937.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
00938 M00S00938.sx3ucp +++| *UCP* ERRORS #
00939 M00S00939.sx3ucp +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO #
00940 M00S00940.sx3ucp +++| PROC MRCLMLK; # RECLAIM MAP INTERLOCK. #
00941 M00S00941.sx3ucp +++| PROC SETPFP; # SET FAMILY AND USER INDEX #
00942 M00S00942.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST
00943 M00S00943.sx3ucp +++| COMPLETE. #
00944 M00S00944.sx3ucp +++| END
00945 M00S00945.sx3ucp +++|
00946 M00S00946.sx3ucp +++|#
00947 M00S00947.sx3ucp +++|**** PROC MAPRCLM - XREF LIST END.
00948 M00S00948.sx3ucp +++|#
00949 M00S00949.sx3ucp +++|
00950 M00S00950.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
00951 M00S00951.sx3ucp +++|*CALL COMBFAS
00952 M00S00952.sx3ucp +++|*CALL COMBCPR
00953 M00S00953.sx3ucp +++|*CALL COMBMAP
00954 M00S00954.sx3ucp +++|*CALL COMBPFP
00955 M00S00955.sx3ucp +++|*CALL COMXLTC
00956 M00S00956.sx3ucp +++|*CALL COMXMSC
00957 M00S00957.sx3ucp +++|
00958 M00S00958.sx3ucp +++|
00959 M00S00959.sx3ucp +++|
00960 M00S00960.sx3ucp +++|
00961 M00S00961.sx3ucp +++|
00962 M00S00962.sx3ucp +++| PFP$WRD0[0] = 0; # SET FAMILY AND USER INDEX #
00963 M00S00963.sx3ucp +++| PFP$FG1[0] = TRUE;
00964 M00S00964.sx3ucp +++| PFP$FG4[0] = TRUE;
00965 M00S00965.sx3ucp +++| PFP$FAM[0] = DEF$FAM;
00966 M00S00966.sx3ucp +++| PFP$UI[0] = DEF$UI;
00967 M00S00967.sx3ucp +++| SETPFP(PFP);
00968 M00S00968.sx3ucp +++| IF PFP$STAT[0] NQ 0
00969 M00S00969.sx3ucp +++| THEN # FAMILY NOT FOUND #
00970 M00S00970.sx3ucp +++| BEGIN
00971 M00S00971.sx3ucp +++| FE$RTN[0] = "MAPRCLM.";
00972 M00S00972.sx3ucp +++| MESSAGE(FEMSG[0],UDFL1); # ISSUE ERROR MESSAGE #
00973 M00S00973.sx3ucp +++| ABORT;
00974 M00S00974.sx3ucp +++| END
00975 M00S00975.sx3ucp +++|
00976 M00S00976.sx3ucp +++| MRCLMLK(CPR$CSU[0],ERRSTAT);
00977 M00S00977.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
00978 M00S00978.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
00979 M00S00979.sx3ucp +++| UCP$RES;
00980 M00S00980.sx3ucp +++| RETURN;
00981 M00S00981.sx3ucp +++|
00982 M00S00982.sx3ucp +++| END # MAPRCLM #
00983 M00S00983.sx3ucp +++|
00984 M00S00984.sx3ucp +++| TERM
00985 M00S00985.sx3ucp +++|PROC MAPRELS;
00986 M00S00986.sx3ucp +++|# TITLE MAPRELS - RETURNS THE DESIGNATED MAP FILE. #
00987 M00S00987.sx3ucp +++|
00988 M00S00988.sx3ucp +++| BEGIN # MAPRELS #
00989 M00S00989.sx3ucp +++|
00990 M00S00990.sx3ucp +++|#
00991 M00S00991.sx3ucp +++|** MAPRELS - RETURNS THE DESIGNATED MAP FILE.
00992 M00S00992.sx3ucp +++|*
00993 M00S00993.sx3ucp +++|* *MAPRELS* RETURNS THE DESIGNATED MAP FILE.
00994 M00S00994.sx3ucp +++|*
00995 M00S00995.sx3ucp +++|* PROC MAPRELS
00996 M00S00996.sx3ucp +++|*
00997 M00S00997.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
00998 M00S00998.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
00999 M00S00999.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
01000 M00S01000.sx3ucp +++|* *LTCENTRY*.
01001 M00S01001.sx3ucp +++|*
01002 M00S01002.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01003 M00S01003.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01004 M00S01004.sx3ucp +++|* OF THE REQUEST.
01005 M00S01005.sx3ucp +++|*
01006 M00S01006.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
01007 M00S01007.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
01008 M00S01008.sx3ucp +++|* = OK3 OK
01009 M00S01009.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
01010 M00S01010.sx3ucp +++|#
01011 M00S01011.sx3ucp +++|
01012 M00S01012.sx3ucp +++|#
01013 M00S01013.sx3ucp +++|**** PROC MAPRELS - XREF LIST BEGIN.
01014 M00S01014.sx3ucp +++|#
01015 M00S01015.sx3ucp +++|
01016 M00S01016.sx3ucp +++| XREF
01017 M00S01017.sx3ucp +++| BEGIN
01018 M00S01018.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
01019 M00S01019.sx3ucp +++| *UCP* ERRORS #
01020 M00S01020.sx3ucp +++| PROC MRELSLK; # RETURN A MAP FILE #
01021 M00S01021.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
01022 M00S01022.sx3ucp +++| #
01023 M00S01023.sx3ucp +++| END
01024 M00S01024.sx3ucp +++|
01025 M00S01025.sx3ucp +++|#
01026 M00S01026.sx3ucp +++|**** PROC MAPRELS - XREF LIST END.
01027 M00S01027.sx3ucp +++|#
01028 M00S01028.sx3ucp +++|
01029 M00S01029.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01030 M00S01030.sx3ucp +++|*CALL COMBFAS
01031 M00S01031.sx3ucp +++|*CALL COMBCPR
01032 M00S01032.sx3ucp +++|*CALL COMXLTC
01033 M00S01033.sx3ucp +++|
01034 M00S01034.sx3ucp +++|
01035 M00S01035.sx3ucp +++|
01036 M00S01036.sx3ucp +++|
01037 M00S01037.sx3ucp +++|
01038 M00S01038.sx3ucp +++| LTC$RQR[LTCENTRY] = RESPTYP3"OK3";
01039 M00S01039.sx3ucp +++| MRELSLK(CPR$CSU[0]);
01040 M00S01040.sx3ucp +++| UCP$RES;
01041 M00S01041.sx3ucp +++| RETURN;
01042 M00S01042.sx3ucp +++|
01043 M00S01043.sx3ucp +++| END # MAPRELS #
01044 M00S01044.sx3ucp +++|
01045 M00S01045.sx3ucp +++| TERM
01046 M00S01046.sx3ucp +++|PROC NONQ$RP;
01047 M00S01047.sx3ucp +++|# TITLE NONQ$RP - PRELIMINARY PROCESSING OF TYPE 3 REQUEST. #
01048 M00S01048.sx3ucp +++|
01049 M00S01049.sx3ucp +++| BEGIN # NONQ$RP #
01050 M00S01050.sx3ucp +++|
01051 M00S01051.sx3ucp +++|
01052 M00S01052.sx3ucp +++|#
01053 M00S01053.sx3ucp +++|** NONQ$RP - PRELIMINARY PROCESSING OF TYPE 3 REQUEST.
01054 M00S01054.sx3ucp +++|*
01055 M00S01055.sx3ucp +++|* *NONQ$RP DOES PRELIMINARY PROCESSING OF TYPE 3 *UCP* REQUESTS
01056 M00S01056.sx3ucp +++|* AND CALLS THE PROPER MODULE TO DO THE DETAILED PROCESSING OF
01057 M00S01057.sx3ucp +++|* THE REQUESTS.
01058 M00S01058.sx3ucp +++|*
01059 M00S01059.sx3ucp +++|* PROC NONQ$RP
01060 M00S01060.sx3ucp +++|*
01061 M00S01061.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
01062 M00S01062.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
01063 M00S01063.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
01064 M00S01064.sx3ucp +++|* *LTCENTRY*.
01065 M00S01065.sx3ucp +++|*
01066 M00S01066.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01067 M00S01067.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01068 M00S01068.sx3ucp +++|* OF THE REQUEST.
01069 M00S01069.sx3ucp +++|#
01070 M00S01070.sx3ucp +++|
01071 M00S01071.sx3ucp +++|#
01072 M00S01072.sx3ucp +++|**** PROC NONQ$RP - XREF LIST BEGIN.
01073 M00S01073.sx3ucp +++|#
01074 M00S01074.sx3ucp +++|
01075 M00S01075.sx3ucp +++| XREF
01076 M00S01076.sx3ucp +++| BEGIN
01077 M00S01077.sx3ucp +++| PROC KILL$UC; # ABORT A *UCP* #
01078 M00S01078.sx3ucp +++| PROC SSOVL; # LOAD *MSAS* OVERLAYS #
01079 M00S01079.sx3ucp +++| END
01080 M00S01080.sx3ucp +++|
01081 M00S01081.sx3ucp +++|#
01082 M00S01082.sx3ucp +++|**** PROC NONQ$RP - XREF LIST END.
01083 M00S01083.sx3ucp +++|#
01084 M00S01084.sx3ucp +++|
01085 M00S01085.sx3ucp +++|
01086 M00S01086.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01087 M00S01087.sx3ucp +++|*CALL COMBFAS
01088 M00S01088.sx3ucp +++|*CALL COMBCPR
01089 M00S01089.sx3ucp +++|*CALL COMBOVL
01090 M00S01090.sx3ucp +++|*CALL COMBUCR
01091 M00S01091.sx3ucp +++|*CALL COMXMSC
01092 M00S01092.sx3ucp +++|
01093 M00S01093.sx3ucp +++|#
01094 M00S01094.sx3ucp +++|* SWITCH LIST TO PROCESS THE TYPE 3 REQUESTS.
01095 M00S01095.sx3ucp +++|#
01096 M00S01096.sx3ucp +++|
01097 M00S01097.sx3ucp +++| SWITCH TYP3SW:REQTYP3
01098 M00S01098.sx3ucp +++| ADDCUBEL:ADD$CUBE,
01099 M00S01099.sx3ucp +++| ADDCARTL:ADD$CART,
01100 M00S01100.sx3ucp +++| ADDCSUL:ADD$CSU,
01101 M00S01101.sx3ucp +++| RMVCSUL:RMV$CSU,
01102 M00S01102.sx3ucp +++| RMVCUBEL:RMV$CUBE,
01103 M00S01103.sx3ucp +++| RMVCARTL:RMV$CART,
01104 M00S01104.sx3ucp +++| UPDCATL:UPD$CAT,
01105 M00S01105.sx3ucp +++| UPDMAPL:UPD$MAP,
Line S01106 Modification History |
M01 (Removed by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01106 M01S01106.sx3ucp1 ---| PURGORPHL:PURG$ORPH,
Line S00001 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01107 M01S00001.sx3ucp1 +++| RELSETUPL:REL$SETUP,
01108 M00S01107.sx3ucp +++| PURGFRAGL:PURG$FRAG,
01109 M00S01108.sx3ucp +++| PURGFCTL:PURG$FCT,
01110 M00S01109.sx3ucp +++| GTPRGDATEL:GT$PRGDATE,
01111 M00S01110.sx3ucp +++| RELMPLKL:REL$MPLK,
01112 M00S01111.sx3ucp +++| RECMPLKL:REC$MPLK;
01113 M00S01112.sx3ucp +++|
01114 M00S01113.sx3ucp +++|
01115 M00S01114.sx3ucp +++|
01116 M00S01115.sx3ucp +++|
01117 M00S01116.sx3ucp +++|
01118 M00S01117.sx3ucp +++|#
01119 M00S01118.sx3ucp +++|* REQUEST CODE HAS TO BE VALID.
01120 M00S01119.sx3ucp +++|#
01121 M00S01120.sx3ucp +++|
01122 M00S01121.sx3ucp +++| IF CPR$RQC[0] EQ REQTYP3"RES3" ##
01123 M00S01122.sx3ucp +++| OR CPR$RQC[0] GQ REQTYP3"LSTREQTYP3"
01124 M00S01123.sx3ucp +++| THEN
01125 M00S01124.sx3ucp +++| BEGIN
01126 M00S01125.sx3ucp +++| KILL$UC(KILLCODE"INVRQC");
01127 M00S01126.sx3ucp +++| RETURN;
01128 M00S01127.sx3ucp +++| END
01129 M00S01128.sx3ucp +++|
01130 M00S01129.sx3ucp +++|#
01131 M00S01130.sx3ucp +++|* CALL THE APPROPRIATE PROCESSOR AND THEN RETURN TO THE CALLER.
01132 M00S01131.sx3ucp +++|#
01133 M00S01132.sx3ucp +++|
01134 M00S01133.sx3ucp +++| GOTO TYP3SW[CPR$RQC[0]];
01135 M00S01134.sx3ucp +++|
01136 M00S01135.sx3ucp +++|ADDCUBEL:
01137 M00S01136.sx3ucp +++| SSOVL(LADDCUBE,0);
01138 M00S01137.sx3ucp +++| RETURN;
01139 M00S01138.sx3ucp +++|
01140 M00S01139.sx3ucp +++|ADDCARTL:
01141 M00S01140.sx3ucp +++| SSOVL(LADDCAR,0);
01142 M00S01141.sx3ucp +++| RETURN;
01143 M00S01142.sx3ucp +++|
01144 M00S01143.sx3ucp +++|
01145 M00S01144.sx3ucp +++|ADDCSUL:
01146 M00S01145.sx3ucp +++| SSOVL(LADDCSU,0);
01147 M00S01146.sx3ucp +++| RETURN;
01148 M00S01147.sx3ucp +++|
01149 M00S01148.sx3ucp +++|RMVCUBEL:
01150 M00S01149.sx3ucp +++| SSOVL(LRMVCUBE,0);
01151 M00S01150.sx3ucp +++| RETURN;
01152 M00S01151.sx3ucp +++|
01153 M00S01152.sx3ucp +++|RMVCARTL:
01154 M00S01153.sx3ucp +++| SSOVL(LRMVCAR,0);
01155 M00S01154.sx3ucp +++| RETURN;
01156 M00S01155.sx3ucp +++|
01157 M00S01156.sx3ucp +++|RMVCSUL:
01158 M00S01157.sx3ucp +++| SSOVL(LRMVCSU,0);
01159 M00S01158.sx3ucp +++| RETURN;
01160 M00S01159.sx3ucp +++|
01161 M00S01160.sx3ucp +++|UPDCATL:
01162 M00S01161.sx3ucp +++| SSOVL(LUPDCAT,0);
01163 M00S01162.sx3ucp +++| RETURN;
01164 M00S01163.sx3ucp +++|
01165 M00S01164.sx3ucp +++|UPDMAPL:
01166 M00S01165.sx3ucp +++| SSOVL(LUPDMAP,0);
01167 M00S01166.sx3ucp +++| RETURN;
01168 M00S01167.sx3ucp +++|
01169 M00S01168.sx3ucp +++|PURGFRAGL:
Line S01169 Modification History |
M01 (Removed by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01170 M01S01169.sx3ucp1 ---| SSOVL(LPURGCHN,0);
Line S00002 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01171 M01S00002.sx3ucp1 +++| SSOVL(LRESETUP,0);
01172 M00S01170.sx3ucp +++| RETURN;
01173 M00S01171.sx3ucp +++|
Line S01172 Modification History |
M01 (Removed by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01174 M01S01172.sx3ucp1 ---|PURGORPHL:
01175 M01S01173.sx3ucp1 ---| SSOVL(LPURGCHN,0);
Line S00003 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01176 M01S00003.sx3ucp1 +++|RELSETUPL:
01177 M01S00004.sx3ucp1 +++| SSOVL(LRESETUP,0);
01178 M00S01174.sx3ucp +++| RETURN;
01179 M00S01175.sx3ucp +++|
01180 M00S01176.sx3ucp +++|PURGFCTL:
01181 M00S01177.sx3ucp +++| SSOVL(LPURGFCT,0);
01182 M00S01178.sx3ucp +++| RETURN;
01183 M00S01179.sx3ucp +++|
01184 M00S01180.sx3ucp +++|GTPRGDATEL:
01185 M00S01181.sx3ucp +++| SSOVL(LGETPD,0);
01186 M00S01182.sx3ucp +++| RETURN;
01187 M00S01183.sx3ucp +++|
01188 M00S01184.sx3ucp +++|RELMPLKL:
01189 M00S01185.sx3ucp +++| SSOVL(LMAPRELS,0);
01190 M00S01186.sx3ucp +++| RETURN;
01191 M00S01187.sx3ucp +++|
01192 M00S01188.sx3ucp +++|RECMPLKL:
01193 M00S01189.sx3ucp +++| SSOVL(LMAPRCLM,0);
01194 M00S01190.sx3ucp +++| RETURN;
01195 M00S01191.sx3ucp +++|
01196 M00S01192.sx3ucp +++| END # NONQ$RP #
01197 M00S01193.sx3ucp +++|
01198 M00S01194.sx3ucp +++| TERM
01199 M00S01195.sx3ucp +++|PROC PURGFCT;
01200 M00S01196.sx3ucp +++|# TITLE PURGFCT - DELETE *FCT* ENTRY FROM USE. #
01201 M00S01197.sx3ucp +++|
01202 M00S01198.sx3ucp +++| BEGIN # PURGFCT #
01203 M00S01199.sx3ucp +++|
01204 M00S01200.sx3ucp +++|#
01205 M00S01201.sx3ucp +++|** PURGFCT - DELETE *FCT* ENTRY FROM USE.
01206 M00S01202.sx3ucp +++|*
01207 M00S01203.sx3ucp +++|* *PURGFCT* DELETES AN *FCT* ENTRY AND UPDATES THE *AST*
01208 M00S01204.sx3ucp +++|* AND PREAMBLE.
01209 M00S01205.sx3ucp +++|* *FCT* ENTRY.
01210 M00S01206.sx3ucp +++|*
01211 M00S01207.sx3ucp +++|* PROC PURGFCT
01212 M00S01208.sx3ucp +++|*
01213 M00S01209.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
01214 M00S01210.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
01215 M00S01211.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
01216 M00S01212.sx3ucp +++|* *LTCENTRY*.
01217 M00S01213.sx3ucp +++|*
01218 M00S01214.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01219 M00S01215.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01220 M00S01216.sx3ucp +++|* OF THE REQUEST.
01221 M00S01217.sx3ucp +++|*
01222 M00S01218.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
01223 M00S01219.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
01224 M00S01220.sx3ucp +++|* = OK3 OK
01225 M00S01221.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
01226 M00S01222.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
01227 M00S01223.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
01228 M00S01224.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
01229 M00S01225.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
01230 M00S01226.sx3ucp +++|#
01231 M00S01227.sx3ucp +++|
01232 M00S01228.sx3ucp +++|#
01233 M00S01229.sx3ucp +++|**** PROC PURGFCT - XREF LIST BEGIN.
01234 M00S01230.sx3ucp +++|#
01235 M00S01231.sx3ucp +++|
01236 M00S01232.sx3ucp +++| XREF
01237 M00S01233.sx3ucp +++| BEGIN
01238 M00S01234.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
01239 M00S01235.sx3ucp +++| #
01240 M00S01236.sx3ucp +++| PROC ANLZAST; # ANALYZE *AST* #
01241 M00S01237.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
01242 M00S01238.sx3ucp +++| PROC CNTFS; # COUNT FREE STREAMS #
01243 M00S01239.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
01244 M00S01240.sx3ucp +++| *UCP* ERRORS #
01245 M00S01241.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
01246 M00S01242.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
01247 M00S01243.sx3ucp +++| PROC LOANFCTQ; # ADD OR RECLAIM *FCTQ* ENTRY #
01248 M00S01244.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
01249 M00S01245.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
01250 M00S01246.sx3ucp +++| #
01251 M00S01247.sx3ucp +++| PROC UPDAST; # UPDATE THE *AST* #
01252 M00S01248.sx3ucp +++| PROC ZFILL; # ZERO FILLS A BUFFER #
01253 M00S01249.sx3ucp +++| END
01254 M00S01250.sx3ucp +++|
01255 M00S01251.sx3ucp +++|#
01256 M00S01252.sx3ucp +++|**** PROC PURGFCT - XREF LIST END.
01257 M00S01253.sx3ucp +++|#
01258 M00S01254.sx3ucp +++|
01259 M00S01255.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01260 M00S01256.sx3ucp +++|*CALL COMBFAS
01261 M00S01257.sx3ucp +++|*CALL COMBCHN
01262 M00S01258.sx3ucp +++|*CALL COMBCMD
01263 M00S01259.sx3ucp +++|*CALL COMBCMS
01264 M00S01260.sx3ucp +++|*CALL COMBCPR
01265 M00S01261.sx3ucp +++|*CALL COMBMAP
01266 M00S01262.sx3ucp +++|*CALL COMBMCT
01267 M00S01263.sx3ucp +++|*CALL COMXFCQ
01268 M00S01264.sx3ucp +++|*CALL COMXLTC
01269 M00S01265.sx3ucp +++|*CALL COMXMSC
01270 M00S01266.sx3ucp +++|
01271 M00S01267.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS #
01272 M00S01268.sx3ucp +++| ITEM FROMCHAIN U; # CHAIN TO MOVE *FCT* ENTRY FROM #
01273 M00S01269.sx3ucp +++| ITEM FXL I; # INDEX FOR LARGE *AU*S #
01274 M00S01270.sx3ucp +++| ITEM FXS I; # INDEX FOR SMALL *AU*S #
01275 M00S01271.sx3ucp +++| ITEM GPS I; # BEST GROUP #
01276 M00S01272.sx3ucp +++| ITEM GPX I; # BEST ORDINAL #
01277 M00S01273.sx3ucp +++| ITEM I U; # COUNTER #
01278 M00S01274.sx3ucp +++| CONTROL EJECT;
01279 M00S01275.sx3ucp +++|
01280 M00S01276.sx3ucp +++|#
01281 M00S01277.sx3ucp +++|* GET THE *FCTQ* ENTRY FOR THE REQUEST.
01282 M00S01278.sx3ucp +++|#
01283 M00S01279.sx3ucp +++|
01284 M00S01280.sx3ucp +++| LOANFCTQ(0);
01285 M00S01281.sx3ucp +++|
01286 M00S01282.sx3ucp +++| ACQ$FCT(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0], ##
01287 M00S01283.sx3ucp +++| CPR$FCT[0],FCTEADDR,0,ERRSTAT);
01288 M00S01284.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01289 M00S01285.sx3ucp +++| THEN
01290 M00S01286.sx3ucp +++| BEGIN
01291 M00S01287.sx3ucp +++| GOTO ERRORTN;
01292 M00S01288.sx3ucp +++| END
01293 M00S01289.sx3ucp +++|
01294 M00S01290.sx3ucp +++|#
01295 M00S01291.sx3ucp +++|* GET THE ALLOCATION SUMMARY TABLE.
01296 M00S01292.sx3ucp +++|#
01297 M00S01293.sx3ucp +++|
01298 M00S01294.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
01299 M00S01295.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01300 M00S01296.sx3ucp +++| THEN
01301 M00S01297.sx3ucp +++| BEGIN
01302 M00S01298.sx3ucp +++| GOTO ERRORTN;
01303 M00S01299.sx3ucp +++| END
01304 M00S01300.sx3ucp +++|
01305 M00S01301.sx3ucp +++|
01306 M00S01302.sx3ucp +++| P<FCT> = FCTEADDR + FCTQHL;
01307 M00S01303.sx3ucp +++|
01308 M00S01304.sx3ucp +++|#
01309 M00S01305.sx3ucp +++|* SET *AST* STATUS TO UNASSIGNED CUBE, AND UPDATE PREAMBLE.
01310 M00S01306.sx3ucp +++|#
01311 M00S01307.sx3ucp +++|
01312 M00S01308.sx3ucp +++| P<AST> = ASTBADR;
01313 M00S01309.sx3ucp +++| ZFILL(AST[CPR$FCT[0]],2);
01314 M00S01310.sx3ucp +++| AST$STAT[CPR$CSU[0]] = ASTENSTAT"UNASS$CUB";
01315 M00S01311.sx3ucp +++|
01316 M00S01312.sx3ucp +++| ANLZAST(CPR$CSU[0],-1,-1,FXS,FXL,GPX,GPS);
01317 M00S01313.sx3ucp +++| PRM$MXAUS[CPR$CSU[0]] = AST$AUSF[FXS];
01318 M00S01314.sx3ucp +++| PRM$MXAUL[CPR$CSU[0]] = AST$AULF[FXL];
01319 M00S01315.sx3ucp +++| PRM$MXAUGR[CPR$CSU[0]] = GPS;
01320 M00S01316.sx3ucp +++| CWTAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
01321 M00S01317.sx3ucp +++| ZFILL(FCT,FCTENTL);
01322 M00S01318.sx3ucp +++|
01323 M00S01319.sx3ucp +++|ERRORTN:
01324 M00S01320.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
01325 M00S01321.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
01326 M00S01322.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
01327 M00S01323.sx3ucp +++| LOANFCTQ(-1);
01328 M00S01324.sx3ucp +++| CFLUSH(CPR$FAM[0],CPR$SUB[0],0,ERRSTAT);
01329 M00S01325.sx3ucp +++| UCP$RES;
01330 M00S01326.sx3ucp +++| RETURN;
01331 M00S01327.sx3ucp +++|
01332 M00S01328.sx3ucp +++| END # PURGFCT #
01333 M00S01329.sx3ucp +++|
01334 M00S01330.sx3ucp +++| TERM
01335 M00S01331.sx3ucp +++|PROC PURGCHN;
01336 M00S01332.sx3ucp +++|# TITLE PURGCHN - PURGE FRAGMENTED AND ORPHAN CHAINS. #
01337 M00S01333.sx3ucp +++|
01338 M00S01334.sx3ucp +++| BEGIN # PURGCHN #
01339 M00S01335.sx3ucp +++|
01340 M00S01336.sx3ucp +++|#
01341 M00S01337.sx3ucp +++|** PURGCHN - PURGE FRAGMENTED AND ORPHAN CHAINS.
01342 M00S01338.sx3ucp +++|*
01343 M00S01339.sx3ucp +++|* *PURGCHN MAKES THE SPACE OCCUPIED BY A FILE FRAGMENT OR AN
01344 M00S01340.sx3ucp +++|* ORPHAN FILE AVAILABLE FOR RE-USE. THIS PROCEDURE PROCESSES
01345 M00S01341.sx3ucp +++|* BOTH PURGE FRAGMENT AND PURGE ORPHAN REQUESTS.
01346 M00S01342.sx3ucp +++|*
01347 M00S01343.sx3ucp +++|* PROC PURGCHN
01348 M00S01344.sx3ucp +++|*
01349 M00S01345.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
01350 M00S01346.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
01351 M00S01347.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
01352 M00S01348.sx3ucp +++|* *LTCENTRY*.
01353 M00S01349.sx3ucp +++|*
01354 M00S01350.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01355 M00S01351.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01356 M00S01352.sx3ucp +++|* OF THE REQUEST.
01357 M00S01353.sx3ucp +++|*
01358 M00S01354.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
01359 M00S01355.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
01360 M00S01356.sx3ucp +++|* = OK3 OK
01361 M00S01357.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
01362 M00S01358.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
01363 M00S01359.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
01364 M00S01360.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
01365 M00S01361.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
01366 M00S01362.sx3ucp +++|* = NFROZ$FRAG NON FROZEN FRAGMENT.
01367 M00S01363.sx3ucp +++|*
01368 M00S01364.sx3ucp +++|* MESSAGES * EXEC ABNORMAL, PURGCHN. *
01369 M00S01365.sx3ucp +++|*
01370 M00S01366.sx3ucp +++|#
01371 M00S01367.sx3ucp +++|
01372 M00S01368.sx3ucp +++|#
01373 M00S01369.sx3ucp +++|**** PROC PURGCHN - XREF LIST BEGIN.
01374 M00S01370.sx3ucp +++|#
01375 M00S01371.sx3ucp +++|
01376 M00S01372.sx3ucp +++| XREF
01377 M00S01373.sx3ucp +++| BEGIN
01378 M00S01374.sx3ucp +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO #
01379 M00S01375.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
01380 M00S01376.sx3ucp +++| #
01381 M00S01377.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
01382 M00S01378.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
01383 M00S01379.sx3ucp +++| *UCP* ERRORS #
01384 M00S01380.sx3ucp +++| PROC CPUTPD; # PUT PURGE DATE #
01385 M00S01381.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
01386 M00S01382.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
01387 M00S01383.sx3ucp +++| PROC LOANFCTQ; # ADD OR RECLAIM *FCTQ* ENTRY #
01388 M00S01384.sx3ucp +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO #
01389 M00S01385.sx3ucp +++| PROC OCTSRCH; # SEARCHES *OCT* FOR ENTRY #
01390 M00S01386.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
01391 M00S01387.sx3ucp +++| PROC RLSVOL; # RELEASE VOLUME #
01392 M00S01388.sx3ucp +++| PROC UASTPRM; # UPDATE AST AND PREAMBLE #
01393 M00S01389.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
01394 M00S01390.sx3ucp +++| #
01395 M00S01391.sx3ucp +++| PROC UPDAST; # UPDATE THE *AST* #
01396 M00S01392.sx3ucp +++| END
01397 M00S01393.sx3ucp +++|
01398 M00S01394.sx3ucp +++|#
01399 M00S01395.sx3ucp +++|**** PROC PURGCHN - XREF LIST END.
01400 M00S01396.sx3ucp +++|#
01401 M00S01397.sx3ucp +++|
01402 M00S01398.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01403 M00S01399.sx3ucp +++|*CALL COMBFAS
01404 M00S01400.sx3ucp +++|*CALL COMBCMD
01405 M00S01401.sx3ucp +++|*CALL COMBCMS
01406 M00S01402.sx3ucp +++|*CALL COMBCPR
01407 M00S01403.sx3ucp +++|*CALL COMBMAP
01408 M00S01404.sx3ucp +++|*CALL COMBMCT
01409 M00S01405.sx3ucp +++|*CALL COMXFCQ
01410 M00S01406.sx3ucp +++|*CALL COMXLTC
01411 M00S01407.sx3ucp +++|*CALL COMXMSC
01412 M00S01408.sx3ucp +++|
01413 M00S01409.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS #
01414 M00S01410.sx3ucp +++| ITEM FCTERR B; # SWITCH USED TO INDICATE MAIN
01415 M00S01411.sx3ucp +++| LOOP WAS TERMINATED BECAUSE OF
01416 M00S01412.sx3ucp +++| AN ERROR #
01417 M00S01413.sx3ucp +++| ITEM FCTNBR U; # *FCT* TO FIND #
01418 M00S01414.sx3ucp +++| ITEM FCTAU U; # *AU* TO BE RELEASED #
01419 M00S01415.sx3ucp +++| ITEM FROZERR B; # NON-FROZEN-FRAGMENT ERROR FOUND
01420 M00S01416.sx3ucp +++| WHICH DOES NOT REQUIRE
01421 M00S01417.sx3ucp +++| CONVERSION #
01422 M00S01418.sx3ucp +++| ITEM FRSTTIME B; # FIRST TIME SWITCH #
01423 M00S01419.sx3ucp +++| ITEM GRX ; # GROUP #
01424 M00S01420.sx3ucp +++| ITEM I I; # COUNTER #
01425 M00S01421.sx3ucp +++| ITEM NEWFCT U; # USED TO HOLD THE
01426 M00S01422.sx3ucp +++| OFF-CARTRIDGE-LINK *FCT* #
01427 M00S01423.sx3ucp +++| ITEM NEWAU U; # NEXT *AU* TO RELEASE #
01428 M00S01424.sx3ucp +++| ITEM ORD I; # *OCT* ORDINAL #
01429 M00S01425.sx3ucp +++| ITEM PRGDONE B; # SWITCH TO CONTROL MAIN LOOP #
01430 M00S01426.sx3ucp +++| ITEM RLSCNTL B; # SWITCH TO CONTROL FOLLOWING A
01431 M00S01427.sx3ucp +++| STREAM PATH WITHIN AN *FCT* #
01432 M00S01428.sx3ucp +++|
01433 M00S01429.sx3ucp +++|
01434 M00S01430.sx3ucp +++|
01435 M00S01431.sx3ucp +++|
01436 M00S01432.sx3ucp +++|
01437 M00S01433.sx3ucp +++|#
01438 M00S01434.sx3ucp +++|* GET THE ALLOCATION SUMMARY TABLE.
01439 M00S01435.sx3ucp +++|#
01440 M00S01436.sx3ucp +++|
01441 M00S01437.sx3ucp +++| LOANFCTQ(0);
01442 M00S01438.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
01443 M00S01439.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01444 M00S01440.sx3ucp +++| THEN
01445 M00S01441.sx3ucp +++| BEGIN
01446 M00S01442.sx3ucp +++| GOTO ERRORTN;
01447 M00S01443.sx3ucp +++| END
01448 M00S01444.sx3ucp +++|
01449 M00S01445.sx3ucp +++|#
01450 M00S01446.sx3ucp +++|* GET THE MAXIMUM *FCT* ORDINAL.
01451 M00S01447.sx3ucp +++|#
01452 M00S01448.sx3ucp +++|
01453 M00S01449.sx3ucp +++| OCTSRCH(CPR$FAM[0],CPR$SUB[0],ORD,0,ERRSTAT);
01454 M00S01450.sx3ucp +++|
01455 M00S01451.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01456 M00S01452.sx3ucp +++| THEN
01457 M00S01453.sx3ucp +++| BEGIN
01458 M00S01454.sx3ucp +++| GOTO ERRORTN;
01459 M00S01455.sx3ucp +++| END
01460 M00S01456.sx3ucp +++|
01461 M00S01457.sx3ucp +++| P<PREAMBLE> = OCT$PRMA[ORD];
01462 M00S01458.sx3ucp +++|
01463 M00S01459.sx3ucp +++| IF PRM$SCW1[CPR$CSU[0]] EQ 0
01464 M00S01460.sx3ucp +++| THEN
01465 M00S01461.sx3ucp +++| BEGIN
01466 M00S01462.sx3ucp +++| ERRSTAT = CMASTAT"NOSUBCAT";
01467 M00S01463.sx3ucp +++| GOTO ERRORTN;
01468 M00S01464.sx3ucp +++| END
01469 M00S01465.sx3ucp +++|
01470 M00S01466.sx3ucp +++|#
01471 M00S01467.sx3ucp +++|* ESTABLISH THE NECESSARY BEGINNING CONTROLS FOR THE MAIN LOOP.
01472 M00S01468.sx3ucp +++|#
01473 M00S01469.sx3ucp +++|
01474 M00S01470.sx3ucp +++| FRSTTIME = TRUE;
01475 M00S01471.sx3ucp +++| PRGDONE = FALSE;
01476 M00S01472.sx3ucp +++| FCTNBR = CPR$FCT[0];
01477 M00S01473.sx3ucp +++| GRX = FCTNBR/MAXGRT;
01478 M00S01474.sx3ucp +++| FCTAU = CPR$AU[0];
01479 M00S01475.sx3ucp +++| P<AST> = ASTBADR;
01480 M00S01476.sx3ucp +++| FCTERR = FALSE;
01481 M00S01477.sx3ucp +++| FROZERR = FALSE;
01482 M00S01478.sx3ucp +++|
01483 M00S01479.sx3ucp +++|#
01484 M00S01480.sx3ucp +++|* GET THE *FCT* ENTRY. FOLLOW THE AU PATH WITHIN THE *FCT*
01485 M00S01481.sx3ucp +++|* RELEASING AU-S. THE AU PATH WILL TERMINATE WHEN
01486 M00S01482.sx3ucp +++|* EITHER A NON-BUSY AU OR THE LAST AU (AS DEFINED
01487 M00S01483.sx3ucp +++|* BY CHAIN CONTROL) IS FOUND. WHENEVER THE AU PATH CROSSES
01488 M00S01484.sx3ucp +++|* *FCT*-S (DETERMINED BY THE OFF-CARTRIDGE-LINK CONTROL), THE
01489 M00S01485.sx3ucp +++|* AVAILABLE AU TABLE IS UPDATED TO REFLECT THE CURRENT
01490 M00S01486.sx3ucp +++|* CONDITION OF THE *FCT* AND THE MAIN LOOP IS REPEATED.
01491 M00S01487.sx3ucp +++|* IF A AU PATH DOES NOT CROSS *FCT* BOUNDARIES,
01492 M00S01488.sx3ucp +++|* THE MAIN LOOP WILL ONLY BE EXECUTED ONCE.
01493 M00S01489.sx3ucp +++|#
01494 M00S01490.sx3ucp +++|
01495 M00S01491.sx3ucp +++| REPEAT WHILE NOT PRGDONE
01496 M00S01492.sx3ucp +++| DO
01497 M00S01493.sx3ucp +++| BEGIN # MAIN LOOP #
01498 M00S01494.sx3ucp +++|
01499 M00S01495.sx3ucp +++|#
01500 M00S01496.sx3ucp +++|* GET THE *FCT* ENTRY.
01501 M00S01497.sx3ucp +++|#
01502 M00S01498.sx3ucp +++|
01503 M00S01499.sx3ucp +++| ACQ$FCT(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0], ##
01504 M00S01500.sx3ucp +++| FCTNBR,FCTEADDR,0,ERRSTAT);
01505 M00S01501.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01506 M00S01502.sx3ucp +++| THEN
01507 M00S01503.sx3ucp +++| BEGIN
01508 M00S01504.sx3ucp +++| FCTERR = TRUE;
01509 M00S01505.sx3ucp +++| PRGDONE = TRUE;
01510 M00S01506.sx3ucp +++| TEST DUMMY;
01511 M00S01507.sx3ucp +++| END
01512 M00S01508.sx3ucp +++|
01513 M00S01509.sx3ucp +++| P<FCT> = FCTEADDR + FCTQHL;
01514 M00S01510.sx3ucp +++|
01515 M00S01511.sx3ucp +++|#
01516 M00S01512.sx3ucp +++|* FRAGMENTED AU-S MUST HAVE THE FIRST AU FROZEN.
01517 M00S01513.sx3ucp +++|#
01518 M00S01514.sx3ucp +++|
01519 M00S01515.sx3ucp +++| IF FRSTTIME AND CPR$RQC[0] EQ REQTYP3"PURG$FRAG"
01520 M00S01516.sx3ucp +++| THEN
01521 M00S01517.sx3ucp +++| BEGIN
01522 M00S01518.sx3ucp +++| FRSTTIME = FALSE;
01523 M00S01519.sx3ucp +++| IF FCT$FRCF(FCT$WD(CPR$AU[0]),FCT$WP(CPR$AU[0])) EQ OFF
01524 M00S01520.sx3ucp +++| THEN
01525 M00S01521.sx3ucp +++| BEGIN
01526 M00S01522.sx3ucp +++| ERRSTAT = RESPTYP3"NFROZ$FRAG";
01527 M00S01523.sx3ucp +++| FCTERR = TRUE;
01528 M00S01524.sx3ucp +++| PRGDONE = TRUE;
01529 M00S01525.sx3ucp +++| FROZERR = TRUE;
01530 M00S01526.sx3ucp +++| TEST DUMMY;
01531 M00S01527.sx3ucp +++| END
01532 M00S01528.sx3ucp +++|
01533 M00S01529.sx3ucp +++| END
01534 M00S01530.sx3ucp +++|
01535 M00S01531.sx3ucp +++|#
01536 M00S01532.sx3ucp +++|* SEARCH THE VOLUME CHAIN RELEASING VOLUMES.
01537 M00S01533.sx3ucp +++|#
01538 M00S01534.sx3ucp +++|
01539 M00S01535.sx3ucp +++|
01540 M00S01536.sx3ucp +++| RLSCNTL = FALSE;
01541 M00S01537.sx3ucp +++|
01542 M00S01538.sx3ucp +++| SLOWFOR I = 0 WHILE NOT RLSCNTL
01543 M00S01539.sx3ucp +++| DO
01544 M00S01540.sx3ucp +++| BEGIN # RELEASE LOOP #
01545 M00S01541.sx3ucp +++|
01546 M00S01542.sx3ucp +++|#
01547 M00S01543.sx3ucp +++|* A NONBUSY AU ENDS THE AU PATH SEARCH.
01548 M00S01544.sx3ucp +++|#
01549 M00S01545.sx3ucp +++|
01550 M00S01546.sx3ucp +++| IF FCT$FBF(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ OFF
01551 M00S01547.sx3ucp +++| THEN
01552 M00S01548.sx3ucp +++| BEGIN
01553 M00S01549.sx3ucp +++| RLSCNTL = TRUE;
01554 M00S01550.sx3ucp +++| PRGDONE = TRUE;
01555 M00S01551.sx3ucp +++| TEST I;
01556 M00S01552.sx3ucp +++| END
01557 M00S01553.sx3ucp +++|
01558 M00S01554.sx3ucp +++| RLSCNTL = ##
01559 M00S01555.sx3ucp +++| FCT$LINK(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ 0 ##
01560 M00S01556.sx3ucp +++| OR FCT$CC(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ CHAINCON"LAST"##
01561 M00S01557.sx3ucp +++| OR FCT$CC(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ CHAINCON"ONLY";
01562 M00S01558.sx3ucp +++|
01563 M00S01559.sx3ucp +++|
01564 M00S01560.sx3ucp +++|#
01565 M00S01561.sx3ucp +++|* DETERMINE WHETHER THE AU PATH CROSSES *FCT* BOUNDARIES.
01566 M00S01562.sx3ucp +++|* IF IT DOES, PICK UP THE NEW *FCT* TO USE.
01567 M00S01563.sx3ucp +++|#
01568 M00S01564.sx3ucp +++|
01569 M00S01565.sx3ucp +++| IF FCT$CLKOCL(FCT$WD(FCTAU),FCT$WP(FCTAU)) NQ 0
01570 M00S01566.sx3ucp +++| THEN
01571 M00S01567.sx3ucp +++| BEGIN # OFF-CARTRIDGE LINK #
01572 M00S01568.sx3ucp +++| RLSCNTL = TRUE;
01573 M00S01569.sx3ucp +++| IF FCT$CLKOCL(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ 1
01574 M00S01570.sx3ucp +++| THEN
01575 M00S01571.sx3ucp +++| BEGIN
01576 M00S01572.sx3ucp +++| B<0,1>FCT$OCLF[0] = 0;
01577 M00S01573.sx3ucp +++| NEWFCT = GRX * 16 + FCT$OCL[0];
01578 M00S01574.sx3ucp +++| END
01579 M00S01575.sx3ucp +++|
01580 M00S01576.sx3ucp +++| ELSE
01581 M00S01577.sx3ucp +++| BEGIN
01582 M00S01578.sx3ucp +++| IF FCT$CLKOCL(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ 2
01583 M00S01579.sx3ucp +++| THEN
01584 M00S01580.sx3ucp +++| BEGIN
01585 M00S01581.sx3ucp +++| B<1,1>FCT$OCLF[0] = 0;
01586 M00S01582.sx3ucp +++| NEWFCT = GRX * 16 + FCT$OCL1[0];
01587 M00S01583.sx3ucp +++| END
01588 M00S01584.sx3ucp +++|
01589 M00S01585.sx3ucp +++| ELSE
01590 M00S01586.sx3ucp +++| BEGIN
01591 M00S01587.sx3ucp +++| B<2,1>FCT$OCLF[0] = 0;
01592 M00S01588.sx3ucp +++| NEWFCT = GRX * 16 + FCT$OCL2[0];
01593 M00S01589.sx3ucp +++| END
01594 M00S01590.sx3ucp +++|
01595 M00S01591.sx3ucp +++| END
01596 M00S01592.sx3ucp +++|
01597 M00S01593.sx3ucp +++| IF NEWFCT GR (PRM$ENTRC[CPR$CSU[0]] + 15) OR NEWFCT LS 16
01598 M00S01594.sx3ucp +++| THEN # *FCT* OUT OF RANGE #
01599 M00S01595.sx3ucp +++| BEGIN
01600 M00S01596.sx3ucp +++| RLSCNTL = TRUE;
01601 M00S01597.sx3ucp +++| PRGDONE = TRUE;
01602 M00S01598.sx3ucp +++| GOTO EXIT$RLS;
01603 M00S01599.sx3ucp +++| END
01604 M00S01600.sx3ucp +++|
01605 M00S01601.sx3ucp +++| END # OFF-CARTRIDGE LINK #
01606 M00S01602.sx3ucp +++|
01607 M00S01603.sx3ucp +++|
01608 M00S01604.sx3ucp +++| IF FCT$CLKOCL(FCT$WD(FCTAU),FCT$WP(FCTAU)) EQ 0 ##
01609 M00S01605.sx3ucp +++| AND RLSCNTL
01610 M00S01606.sx3ucp +++| THEN
01611 M00S01607.sx3ucp +++| BEGIN
01612 M00S01608.sx3ucp +++| PRGDONE = TRUE;
01613 M00S01609.sx3ucp +++| END
01614 M00S01610.sx3ucp +++|
01615 M00S01611.sx3ucp +++|
01616 M00S01612.sx3ucp +++|
01617 M00S01613.sx3ucp +++| NEWAU = FCT$LINK(FCT$WD(FCTAU),FCT$WP(FCTAU));
01618 M00S01614.sx3ucp +++|
01619 M00S01615.sx3ucp +++|EXIT$RLS: # CLEAR AU DETAIL #
01620 M00S01616.sx3ucp +++| RLSVOL(0,FCTEADDR,FCTAU, ##
01621 M00S01617.sx3ucp +++| FCT$LEN(FCT$WD(FCTAU),FCT$WP(FCTAU))+1);
01622 M00S01618.sx3ucp +++| FCTAU = NEWAU;
01623 M00S01619.sx3ucp +++| END # RELEASE LOOP #
01624 M00S01620.sx3ucp +++|
01625 M00S01621.sx3ucp +++|
01626 M00S01622.sx3ucp +++|#
01627 M00S01623.sx3ucp +++|* UPDATE *AST* AND PREAMBLE FOR TO MATCH *FCT*.
01628 M00S01624.sx3ucp +++|#
01629 M00S01625.sx3ucp +++|
01630 M00S01626.sx3ucp +++| UASTPRM(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],FCTEADDR,ERRSTAT);
01631 M00S01627.sx3ucp +++|
01632 M00S01628.sx3ucp +++|
01633 M00S01629.sx3ucp +++|#
01634 M00S01630.sx3ucp +++|* UPDATE THE *FCT* ENTRY.
01635 M00S01631.sx3ucp +++|#
01636 M00S01632.sx3ucp +++|
01637 M00S01633.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
01638 M00S01634.sx3ucp +++| FCTNBR = NEWFCT;
01639 M00S01635.sx3ucp +++| END # MAIN LOOP #
01640 M00S01636.sx3ucp +++|
01641 M00S01637.sx3ucp +++|#
01642 M00S01638.sx3ucp +++|* IF ANY ERRORS IN MAIN LOOP, PROCESSING DOES NOT CONTINUE.
01643 M00S01639.sx3ucp +++|#
01644 M00S01640.sx3ucp +++|
01645 M00S01641.sx3ucp +++| IF FCTERR
01646 M00S01642.sx3ucp +++| THEN
01647 M00S01643.sx3ucp +++| BEGIN
01648 M00S01644.sx3ucp +++| GOTO ERRORTN;
01649 M00S01645.sx3ucp +++| END
01650 M00S01646.sx3ucp +++|
01651 M00S01647.sx3ucp +++|#
01652 M00S01648.sx3ucp +++|* UPDATE THE DATE AND TIME ON THE PURGE ORPHAN REQUEST.
01653 M00S01649.sx3ucp +++|#
01654 M00S01650.sx3ucp +++|
Line S01651 Modification History |
M01 (Removed by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01655 M01S01651.sx3ucp1 ---| IF CPR$RQC[0] EQ REQTYP3"PURG$ORPH"
Line S00005 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01656 M01S00005.sx3ucp1 +++| IF CPR$RQC[0] NQ REQTYP3"PURG$FRAG"
01657 M00S01652.sx3ucp +++| THEN
01658 M00S01653.sx3ucp +++| BEGIN
01659 M00S01654.sx3ucp +++| CPUTPD(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],0,ERRSTAT);
01660 M00S01655.sx3ucp +++| END
01661 M00S01656.sx3ucp +++|
01662 M00S01657.sx3ucp +++|ERRORTN:
01663 M00S01658.sx3ucp +++| IF NOT FROZERR
01664 M00S01659.sx3ucp +++| THEN
01665 M00S01660.sx3ucp +++| BEGIN
01666 M00S01661.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
01667 M00S01662.sx3ucp +++| END
01668 M00S01663.sx3ucp +++|
01669 M00S01664.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
01670 M00S01665.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
01671 M00S01666.sx3ucp +++| LOANFCTQ(-1);
01672 M00S01667.sx3ucp +++| CFLUSH(CPR$FAM[0],CPR$SUB[0],0,ERRSTAT);
Line S01668 Modification History |
M01 (Removed by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01673 M01S01668.sx3ucp1 ---| UCP$RES;
Line S00006 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01674 M01S00006.sx3ucp1 +++| IF CPR$RQC[0] EQ REQTYP3"PURG$FRAG"
01675 M01S00007.sx3ucp1 +++| THEN # SSDEBUG CALL ENDS HERE #
01676 M01S00008.sx3ucp1 +++| BEGIN
01677 M01S00009.sx3ucp1 +++| UCP$RES;
01678 M01S00010.sx3ucp1 +++| END
01679 M01S00011.sx3ucp1 +++|
01680 M00S01669.sx3ucp +++| RETURN;
01681 M00S01670.sx3ucp +++|
01682 M00S01671.sx3ucp +++|
01683 M00S01672.sx3ucp +++| END
01684 M00S01673.sx3ucp +++|
01685 M00S01674.sx3ucp +++| TERM
Line S00012 Modification History |
M01 (Added by) | sx3ucp1 |
Seq # *Modification Id* Act
----------------------------+
01686 M01S00012.sx3ucp1 +++|PROC RESETUP;
01687 M01S00013.sx3ucp1 +++|#TITLE RESETUP - CATALOG RELEASE PROCESSING AND SETUP. #
01688 M01S00014.sx3ucp1 +++|
01689 M01S00015.sx3ucp1 +++| BEGIN # RESETUP #
01690 M01S00016.sx3ucp1 +++|
01691 M01S00017.sx3ucp1 +++|#
01692 M01S00018.sx3ucp1 +++|** RESETUP - CATALOG RELEASE PROCESSING AND SETUP.
01693 M01S00019.sx3ucp1 +++|*
01694 M01S00020.sx3ucp1 +++|* * RESETUP PROCESSES THE UCP REQUEST WHICH RELEASES *SFMCAT*
01695 M01S00021.sx3ucp1 +++|* SPACE FOR A LIST OF FILES ON FILE *RELCOM* WHICH IS SENT
01696 M01S00022.sx3ucp1 +++|* BY *SSVAL*.
01697 M01S00023.sx3ucp1 +++|*
01698 M01S00024.sx3ucp1 +++|* PROC RESETUP
01699 M01S00025.sx3ucp1 +++|*
01700 M01S00026.sx3ucp1 +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
01701 M01S00027.sx3ucp1 +++|* *CPR*. THE *LTCT* ENTRY FOR THE REQUESTING UCP IS
01702 M01S00028.sx3ucp1 +++|* POINTED TO BY *LTCENTRY*. THIS REQUEST INDICATES
01703 M01S00029.sx3ucp1 +++|* THAT A LIST OF FILES TO BE RELEASED IS AVAILABLE ON
01704 M01S00030.sx3ucp1 +++|* FILE *RELCOM*.
01705 M01S00031.sx3ucp1 +++|*
01706 M01S00032.sx3ucp1 +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01707 M01S00033.sx3ucp1 +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01708 M01S00034.sx3ucp1 +++|* OF THE REQUEST. THE CHAINS IN THE LIST HAVE BEEN
01709 M01S00035.sx3ucp1 +++|* PUT ON THE FREE SPACE CHAIN.
01710 M01S00036.sx3ucp1 +++|*
01711 M01S00037.sx3ucp1 +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
01712 M01S00038.sx3ucp1 +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
01713 M01S00039.sx3ucp1 +++|* = OK3 OK
01714 M01S00040.sx3ucp1 +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
01715 M01S00041.sx3ucp1 +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
01716 M01S00042.sx3ucp1 +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
01717 M01S00043.sx3ucp1 +++|* = PF$PROB PERMANENT FILE PROBLEM
01718 M01S00044.sx3ucp1 +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
01719 M01S00045.sx3ucp1 +++|*
01720 M01S00046.sx3ucp1 +++|* MESSAGES * EXEC ABNORMAL, RESETUP. *
01721 M01S00047.sx3ucp1 +++|*
01722 M01S00048.sx3ucp1 +++|#
01723 M01S00049.sx3ucp1 +++|
01724 M01S00050.sx3ucp1 +++|#
01725 M01S00051.sx3ucp1 +++|**** PROC RESETUP LIST BEGIN.
01726 M01S00052.sx3ucp1 +++|#
01727 M01S00053.sx3ucp1 +++|
01728 M01S00054.sx3ucp1 +++| XREF
01729 M01S00055.sx3ucp1 +++| BEGIN
01730 M01S00056.sx3ucp1 +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO #
01731 M01S00057.sx3ucp1 +++| PROC BZFILL; # ZERO BLANK FILL #
01732 M01S00058.sx3ucp1 +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
01733 M01S00059.sx3ucp1 +++| *UCP* ERRORS #
01734 M01S00060.sx3ucp1 +++| PROC CPUTPD; # PUT PURGE DATE #
01735 M01S00061.sx3ucp1 +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO #
01736 M01S00062.sx3ucp1 +++| PROC PFD; # PERMANENT FILE ACCESS #
01737 M01S00063.sx3ucp1 +++| PROC PURGCHN; # PUT CHAIN ON FREE SPACE #
01738 M01S00064.sx3ucp1 +++| PROC READ; # READ *CIO* BUFFER #
01739 M01S00065.sx3ucp1 +++| PROC READW; # READ TO WORKING BUFFER #
01740 M01S00066.sx3ucp1 +++| PROC RETERN; # RETURN LOCAL FILE #
01741 M01S00067.sx3ucp1 +++| PROC SETPFP; # SET PF PARAMETERS #
01742 M01S00068.sx3ucp1 +++| PROC UASTPRM; # UPDATE AST AND PREAMBLE #
01743 M01S00069.sx3ucp1 +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST
01744 M01S00070.sx3ucp1 +++| COMPLETE #
01745 M01S00071.sx3ucp1 +++| PROC ZSETFET; # SET UP FILE *FET* #
01746 M01S00072.sx3ucp1 +++| END
01747 M01S00073.sx3ucp1 +++|
01748 M01S00074.sx3ucp1 +++|#
01749 M01S00075.sx3ucp1 +++|**** PROC PURGCHN - XREF LIST END.
01750 M01S00076.sx3ucp1 +++|#
01751 M01S00077.sx3ucp1 +++|
01752 M01S00078.sx3ucp1 +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01753 M01S00079.sx3ucp1 +++|*CALL COMBFAS
01754 M01S00080.sx3ucp1 +++|*CALL COMBBZF
01755 M01S00081.sx3ucp1 +++|*CALL COMBCPR
01756 M01S00082.sx3ucp1 +++|*CALL COMBMCT
01757 M01S00083.sx3ucp1 +++|*CALL COMBPFP
01758 M01S00084.sx3ucp1 +++|*CALL COMBPFS
01759 M01S00085.sx3ucp1 +++|*CALL COMSPFM
01760 M01S00086.sx3ucp1 +++|*CALL COMTVLD
01761 M01S00087.sx3ucp1 +++|*CALL COMTVLF
01762 M01S00088.sx3ucp1 +++|*CALL COMXFCQ
01763 M01S00089.sx3ucp1 +++|*CALL COMXLTC
01764 M01S00090.sx3ucp1 +++|*CALL COMXMSC
01765 M01S00091.sx3ucp1 +++|
01766 M01S00092.sx3ucp1 +++| ITEM I I; # COUNTER #
01767 M01S00093.sx3ucp1 +++| ITEM STATW I; # ERROR STATUS #
01768 M01S00094.sx3ucp1 +++| ITEM SAVEPT I; # SAVE POINTER #
01769 M01S00095.sx3ucp1 +++|
01770 M01S00096.sx3ucp1 +++| ARRAY CPRARRAY [0:0] S(CPRLEN);;
01771 M01S00097.sx3ucp1 +++|
01772 M01S00098.sx3ucp1 +++|
01773 M01S00099.sx3ucp1 +++|#
01774 M01S00100.sx3ucp1 +++|* PROCESS SSDEBUG CALL, *PURGE FRAGMENT*.
01775 M01S00101.sx3ucp1 +++|#
01776 M01S00102.sx3ucp1 +++|
01777 M01S00103.sx3ucp1 +++| IF CPR$RQC[0] EQ REQTYP3"PURG$FRAG"
01778 M01S00104.sx3ucp1 +++| THEN # DELINK FRAGMENT #
01779 M01S00105.sx3ucp1 +++| BEGIN
01780 M01S00106.sx3ucp1 +++| PURGCHN;
01781 M01S00107.sx3ucp1 +++| RETURN;
01782 M01S00108.sx3ucp1 +++| END
01783 M01S00109.sx3ucp1 +++|
01784 M01S00110.sx3ucp1 +++|#
01785 M01S00111.sx3ucp1 +++|* SWITCH TO SPECIFIED FAMILY.
01786 M01S00112.sx3ucp1 +++|#
01787 M01S00113.sx3ucp1 +++|
01788 M01S00114.sx3ucp1 +++| PFP$WRD0[0] = 0;
01789 M01S00115.sx3ucp1 +++| PFP$FAM[0] = CPR$FAM[0];
01790 M01S00116.sx3ucp1 +++| PFP$UI[0] = DEF$UI;
01791 M01S00117.sx3ucp1 +++| PFP$FG1[0] = TRUE;
01792 M01S00118.sx3ucp1 +++| PFP$FG4 = TRUE;
01793 M01S00119.sx3ucp1 +++| SETPFP(PFP);
01794 M01S00120.sx3ucp1 +++|
01795 M01S00121.sx3ucp1 +++| IF PFP$STAT NQ 0
01796 M01S00122.sx3ucp1 +++| THEN # PROCESS ERROR #
01797 M01S00123.sx3ucp1 +++| BEGIN
01798 M01S00124.sx3ucp1 +++| FE$RTN[0] = "RESETUP.";
01799 M01S00125.sx3ucp1 +++| MESSAGE(FEMSG[0],UDFL1);
01800 M01S00126.sx3ucp1 +++| ABORT;
01801 M01S00127.sx3ucp1 +++| END
01802 M01S00128.sx3ucp1 +++|
01803 M01S00129.sx3ucp1 +++|
01804 M01S00130.sx3ucp1 +++|#
01805 M01S00131.sx3ucp1 +++|* ATTACH *RELCOM* FILE GENERATED BY SSVAL.
01806 M01S00132.sx3ucp1 +++|#
01807 M01S00133.sx3ucp1 +++|
01808 M01S00134.sx3ucp1 +++| RELNAME = RELLFN;
01809 M01S00135.sx3ucp1 +++| BZFILL(RELNAME,TYPFILL"ZFILL",7);
01810 M01S00136.sx3ucp1 +++| PFD("ATTACH",RELNAME,0,"M","W","RC",STATW,0);
01811 M01S00137.sx3ucp1 +++| IF STATW NQ OK
01812 M01S00138.sx3ucp1 +++| THEN # ATTACH ERROR #
01813 M01S00139.sx3ucp1 +++| BEGIN
01814 M01S00140.sx3ucp1 +++| FE$MSG[0] = " FILE PROBLEM, ";
01815 M01S00141.sx3ucp1 +++| FE$RTN[0] = "RESETUP.";
01816 M01S00142.sx3ucp1 +++| MESSAGE(FEMSG[0],UDFL1);
01817 M01S00143.sx3ucp1 +++| ABORT;
01818 M01S00144.sx3ucp1 +++| END
01819 M01S00145.sx3ucp1 +++|
01820 M01S00146.sx3ucp1 +++|#
01821 M01S00147.sx3ucp1 +++|* READ *RELCOM* FILE.
01822 M01S00148.sx3ucp1 +++|#
01823 M01S00149.sx3ucp1 +++|
01824 M01S00150.sx3ucp1 +++| RELFADR = LOC(RELCFILE);
01825 M01S00151.sx3ucp1 +++| RELBADR = LOC(RELCBUF);
01826 M01S00152.sx3ucp1 +++| ZSETFET(RELFADR,RELLFN,RELBADR,LFIXBUF);
01827 M01S00153.sx3ucp1 +++| READ(RELCFILE,RCL);
01828 M01S00154.sx3ucp1 +++| SAVEPT = P<CPR>;
01829 M01S00155.sx3ucp1 +++| P<CPR> = LOC(CPRARRAY);
01830 M01S00156.sx3ucp1 +++|
01831 M01S00157.sx3ucp1 +++|
01832 M01S00158.sx3ucp1 +++|#
01833 M01S00159.sx3ucp1 +++|* PROCESS EACH ENTRY.
01834 M01S00160.sx3ucp1 +++|#
01835 M01S00161.sx3ucp1 +++|
01836 M01S00162.sx3ucp1 +++|
01837 M01S00163.sx3ucp1 +++| SLOWFOR I = 0 STEP 1 WHILE STATW EQ OK
01838 M01S00164.sx3ucp1 +++| DO
01839 M01S00165.sx3ucp1 +++| BEGIN # MAIN LOOP #
01840 M01S00166.sx3ucp1 +++| READW(RELCFILE,CPRARRAY,CPRLEN,STATW);
01841 M01S00167.sx3ucp1 +++| IF STATW NQ OK
01842 M01S00168.sx3ucp1 +++| THEN
01843 M01S00169.sx3ucp1 +++| BEGIN
01844 M01S00170.sx3ucp1 +++| TEST I;
01845 M01S00171.sx3ucp1 +++| END
01846 M01S00172.sx3ucp1 +++|
01847 M01S00173.sx3ucp1 +++|#
01848 M01S00174.sx3ucp1 +++|* DELINK FILE CHAIN.
01849 M01S00175.sx3ucp1 +++|#
01850 M01S00176.sx3ucp1 +++|
01851 M01S00177.sx3ucp1 +++| PURGCHN;
01852 M01S00178.sx3ucp1 +++|
01853 M01S00179.sx3ucp1 +++| IF LTC$RQR[LTCENTRY] NQ OK
01854 M01S00180.sx3ucp1 +++| THEN # ERROR IN PURGCHN #
01855 M01S00181.sx3ucp1 +++| BEGIN
01856 M01S00182.sx3ucp1 +++| STATW = O"777";
01857 M01S00183.sx3ucp1 +++| TEST I;
01858 M01S00184.sx3ucp1 +++| END
01859 M01S00185.sx3ucp1 +++|
01860 M01S00186.sx3ucp1 +++|#
01861 M01S00187.sx3ucp1 +++|* WRITE TEMP FILE FOR DEBUGGING PURPOSES.
01862 M01S00188.sx3ucp1 +++|#
01863 M01S00189.sx3ucp1 +++|
01864 M01S00190.sx3ucp1 +++|
01865 M01S00191.sx3ucp1 +++| END # MAIN LOOP #
01866 M01S00192.sx3ucp1 +++|
01867 M01S00193.sx3ucp1 +++| RETERN(RELCFILE,RCL);
01868 M01S00194.sx3ucp1 +++| P<CPR> = SAVEPT;
01869 M01S00195.sx3ucp1 +++| CPR$RQR[0] = LTC$RQR[LTCENTRY];
01870 M01S00196.sx3ucp1 +++| LTC$DATE[LTCENTRY] = I - 1; # FILE RELEASE COUNT #
01871 M01S00197.sx3ucp1 +++| UCP$RES;
01872 M01S00198.sx3ucp1 +++| RETURN;
01873 M01S00199.sx3ucp1 +++| END # RESETUP #
01874 M01S00200.sx3ucp1 +++|
01875 M01S00201.sx3ucp1 +++| TERM
01876 M00S01675.sx3ucp +++|PROC RMVCAR;
01877 M00S01676.sx3ucp +++|# TITLE RMVCAR - REMOVE CARTRIDGE FROM SUB-FAMILY. #
01878 M00S01677.sx3ucp +++|
01879 M00S01678.sx3ucp +++| BEGIN # RMVCAR #
01880 M00S01679.sx3ucp +++|
01881 M00S01680.sx3ucp +++|#
01882 M00S01681.sx3ucp +++|** RMVCAR - REMOVE CARTRIDGE FROM SUB-FAMILY.
01883 M00S01682.sx3ucp +++|*
01884 M00S01683.sx3ucp +++|* *RMVCAR* UPDATES THE *AST*, *FCT*, AND *SMMAP*
01885 M00S01684.sx3ucp +++|* TO REFLECT THAT THE GIVEN CARTRIDGE IS NO LONGER ASSIGNED TO
01886 M00S01685.sx3ucp +++|* THE SUB-FAMILY.
01887 M00S01686.sx3ucp +++|*
01888 M00S01687.sx3ucp +++|* PROC RMVCAR
01889 M00S01688.sx3ucp +++|*
01890 M00S01689.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
01891 M00S01690.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
01892 M00S01691.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
01893 M00S01692.sx3ucp +++|* *LTCENTRY*.
01894 M00S01693.sx3ucp +++|*
01895 M00S01694.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
01896 M00S01695.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
01897 M00S01696.sx3ucp +++|* OF THE REQUEST.
01898 M00S01697.sx3ucp +++|*
01899 M00S01698.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
01900 M00S01699.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
01901 M00S01700.sx3ucp +++|* = OK3 OK
01902 M00S01701.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
01903 M00S01702.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
01904 M00S01703.sx3ucp +++|* = NO$SUB$CAT NO SUCH SUBCATALOG
01905 M00S01704.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
01906 M00S01705.sx3ucp +++|* = MSC$NEMPTY CARTRIDGE NOT EMPTY
01907 M00S01706.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
01908 M00S01707.sx3ucp +++|#
01909 M00S01708.sx3ucp +++|
01910 M00S01709.sx3ucp +++|#
01911 M00S01710.sx3ucp +++|**** PROC RMVCAR - XREF LIST BEGIN.
01912 M00S01711.sx3ucp +++|#
01913 M00S01712.sx3ucp +++|
01914 M00S01713.sx3ucp +++| XREF
01915 M00S01714.sx3ucp +++| BEGIN
01916 M00S01715.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
01917 M00S01716.sx3ucp +++| #
01918 M00S01717.sx3ucp +++| PROC ANLZAST; # ANALYZE THE *AST* #
01919 M00S01718.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
01920 M00S01719.sx3ucp +++| PROC CNTFS; # COUNT FREE STREAMS #
01921 M00S01720.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
01922 M00S01721.sx3ucp +++| *UCP* ERRORS #
01923 M00S01722.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
01924 M00S01723.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
01925 M00S01724.sx3ucp +++| PROC LOANFCTQ; # ADD OR RECLAIM *FCTQ* ENTRY #
01926 M00S01725.sx3ucp +++| PROC MFLUSH; # FLUSH MAP TO FILE #
01927 M00S01726.sx3ucp +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE
01928 M00S01727.sx3ucp +++| CALLER #
01929 M00S01728.sx3ucp +++| PROC MPUTENT; # MAP ENTRY TO THE MAP FILE BUFFER
01930 M00S01729.sx3ucp +++| #
01931 M00S01730.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
01932 M00S01731.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
01933 M00S01732.sx3ucp +++| #
01934 M00S01733.sx3ucp +++| PROC UPDAST; # UPDATE THE *AST* #
01935 M00S01734.sx3ucp +++| PROC ZFILL; # ZERO FILL ARRAY #
01936 M00S01735.sx3ucp +++| END
01937 M00S01736.sx3ucp +++|
01938 M00S01737.sx3ucp +++|#
01939 M00S01738.sx3ucp +++|**** PROC RMVCAR - XREF LIST END.
01940 M00S01739.sx3ucp +++|#
01941 M00S01740.sx3ucp +++|
01942 M00S01741.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
01943 M00S01742.sx3ucp +++|*CALL COMBFAS
01944 M00S01743.sx3ucp +++|*CALL COMBCMD
01945 M00S01744.sx3ucp +++|*CALL COMBCMS
01946 M00S01745.sx3ucp +++|*CALL COMBCPR
01947 M00S01746.sx3ucp +++|*CALL COMBMAP
01948 M00S01747.sx3ucp +++|*CALL COMBMCT
01949 M00S01748.sx3ucp +++|*CALL COMXFCQ
01950 M00S01749.sx3ucp +++|*CALL COMXLTC
01951 M00S01750.sx3ucp +++|*CALL COMXMSC
01952 M00S01751.sx3ucp +++|
01953 M00S01752.sx3ucp +++| ITEM ERRCONV B; # ERROR CODE CONVERSION FLAG #
01954 M00S01753.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS FROM
01955 M00S01754.sx3ucp +++| *ACQ$FCT* #
01956 M00S01755.sx3ucp +++| ITEM FXL U; # BEST ORDINAL FOR ALLOCATION #
01957 M00S01756.sx3ucp +++| ITEM FXS U; # BEST ORDINAL FOR ALLOCATION #
01958 M00S01757.sx3ucp +++| ITEM GPS U; # BEST GROUP ORDINAL #
01959 M00S01758.sx3ucp +++| ITEM GPX U; # BEST GROUP #
01960 M00S01759.sx3ucp +++| ITEM I U; # COUNTER #
01961 M00S01760.sx3ucp +++| ITEM ORD I; # *AST* ORDINAL #
01962 M00S01761.sx3ucp +++| ITEM SAVEY U; # SAVED Y COORDINATE #
01963 M00S01762.sx3ucp +++| ITEM SAVEZ U; # SAVED Z COORDINATE #
01964 M00S01763.sx3ucp +++|
01965 M00S01764.sx3ucp +++|
01966 M00S01765.sx3ucp +++|
01967 M00S01766.sx3ucp +++|
01968 M00S01767.sx3ucp +++|
01969 M00S01768.sx3ucp +++|#
01970 M00S01769.sx3ucp +++|* GET THE MAP ENTRY FOR THE REQUEST.
01971 M00S01770.sx3ucp +++|#
01972 M00S01771.sx3ucp +++|
01973 M00S01772.sx3ucp +++| LOANFCTQ(0);
01974 M00S01773.sx3ucp +++| ERRCONV = TRUE;
01975 M00S01774.sx3ucp +++| MGETENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
01976 M00S01775.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01977 M00S01776.sx3ucp +++| THEN
01978 M00S01777.sx3ucp +++| BEGIN
01979 M00S01778.sx3ucp +++| GOTO ERRORTN;
01980 M00S01779.sx3ucp +++| END
01981 M00S01780.sx3ucp +++|
01982 M00S01781.sx3ucp +++|#
01983 M00S01782.sx3ucp +++|* GET THE *FCTQ* ENTRY FOR THE REQUEST.
01984 M00S01783.sx3ucp +++|#
01985 M00S01784.sx3ucp +++|
01986 M00S01785.sx3ucp +++|
01987 M00S01786.sx3ucp +++| ACQ$FCT(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0], ##
01988 M00S01787.sx3ucp +++| CPR$FCT[0],FCTEADDR,0,ERRSTAT);
01989 M00S01788.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
01990 M00S01789.sx3ucp +++| THEN
01991 M00S01790.sx3ucp +++| BEGIN
01992 M00S01791.sx3ucp +++| GOTO ERRORTN;
01993 M00S01792.sx3ucp +++| END
01994 M00S01793.sx3ucp +++|
01995 M00S01794.sx3ucp +++|
01996 M00S01795.sx3ucp +++|#
01997 M00S01796.sx3ucp +++|* GET THE ALLOCATION SUMMARY TABLE.
01998 M00S01797.sx3ucp +++|#
01999 M00S01798.sx3ucp +++|
02000 M00S01799.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
02001 M00S01800.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
02002 M00S01801.sx3ucp +++| THEN
02003 M00S01802.sx3ucp +++| BEGIN
02004 M00S01803.sx3ucp +++| GOTO ERRORTN;
02005 M00S01804.sx3ucp +++| END
02006 M00S01805.sx3ucp +++|
02007 M00S01806.sx3ucp +++|
02008 M00S01807.sx3ucp +++| P<FCT> = FCTEADDR + FCTQHL;
02009 M00S01808.sx3ucp +++| P<AST> = ASTBADR;
02010 M00S01809.sx3ucp +++|
02011 M00S01810.sx3ucp +++|#
02012 M00S01811.sx3ucp +++|* VERIFY THAT THE CARTRIDGE IS FREE AND UPDATE *AST*.
02013 M00S01812.sx3ucp +++|#
02014 M00S01813.sx3ucp +++|
02015 M00S01814.sx3ucp +++| ORD = CPR$FCT[0];
02016 M00S01815.sx3ucp +++| IF (AST$AULF[ORD] + AST$AUSF[ORD] + AST$FLAWS[ORD]) NQ INAVOT
02017 M00S01816.sx3ucp +++| THEN # CARTRIDGE IS NOT FREE #
02018 M00S01817.sx3ucp +++| BEGIN
02019 M00S01818.sx3ucp +++| ERRSTAT = RESPTYP3"MSC$NEMPTY";
02020 M00S01819.sx3ucp +++| ERRCONV = FALSE; # BYPASS CODE CONVERSION #
02021 M00S01820.sx3ucp +++| GOTO ERRORTN;
02022 M00S01821.sx3ucp +++| END
02023 M00S01822.sx3ucp +++|
02024 M00S01823.sx3ucp +++|#
02025 M00S01824.sx3ucp +++|* UPDATE PREAMBLE.
02026 M00S01825.sx3ucp +++|#
02027 M00S01826.sx3ucp +++|
02028 M00S01827.sx3ucp +++|
02029 M00S01828.sx3ucp +++| AST$1ST[ORD] = 0;
02030 M00S01829.sx3ucp +++| AST$2ND[ORD] = 0;
02031 M00S01830.sx3ucp +++| AST$STAT[ORD] = ASTENSTAT"UNASS$CART";
02032 M00S01831.sx3ucp +++|
02033 M00S01832.sx3ucp +++| ANLZAST(CPR$CSU[0],-1,-1,FXS,FXL,GPX,GPS);
02034 M00S01833.sx3ucp +++| PRM$MXAUS[CPR$CSU[0]] = AST$AUSF[FXS];
02035 M00S01834.sx3ucp +++| PRM$MXAUL[CPR$CSU[0]] = AST$AULF[FXL];
02036 M00S01835.sx3ucp +++| PRM$MXAUGR[CPR$CSU[0]] = GPS;
02037 M00S01836.sx3ucp +++|
02038 M00S01837.sx3ucp +++|
02039 M00S01838.sx3ucp +++| CWTAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
02040 M00S01839.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
02041 M00S01840.sx3ucp +++| THEN
02042 M00S01841.sx3ucp +++| BEGIN
02043 M00S01842.sx3ucp +++| GOTO ERRORTN;
02044 M00S01843.sx3ucp +++| END
02045 M00S01844.sx3ucp +++|
02046 M00S01845.sx3ucp +++|#
02047 M00S01846.sx3ucp +++|* REMOVE THE CARTRIDGE FROM THE *FCT* AND MAP (*CSN* = 0).
02048 M00S01847.sx3ucp +++|#
02049 M00S01848.sx3ucp +++|
02050 M00S01849.sx3ucp +++| ZFILL(FCT,FCTENTL);
02051 M00S01850.sx3ucp +++| FCT$CSND[0] = " ";
02052 M00S01851.sx3ucp +++| P<SMUMAP> = LOC(MAPBUFR);
02053 M00S01852.sx3ucp +++| CM$CSND[0] = " ";
02054 M00S01853.sx3ucp +++| CM$CCOD[0] = 0;
02055 M00S01854.sx3ucp +++| CM$FLAG1[0] = FALSE; # CLEAR ERROR FLAG IN MAP ENTRY #
02056 M00S01855.sx3ucp +++| CM$FCTORD[0] = 0;
02057 M00S01856.sx3ucp +++|
02058 M00S01857.sx3ucp +++| MPUTENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
02059 M00S01858.sx3ucp +++|
02060 M00S01859.sx3ucp +++|ERRORTN:
02061 M00S01860.sx3ucp +++| IF ERRCONV
02062 M00S01861.sx3ucp +++| THEN # CONVERT ERROR CODE #
02063 M00S01862.sx3ucp +++| BEGIN
02064 M00S01863.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
02065 M00S01864.sx3ucp +++| END
02066 M00S01865.sx3ucp +++|
02067 M00S01866.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
02068 M00S01867.sx3ucp +++| RLS$FCT(FCTEADDR,0,ERRSTAT);
02069 M00S01868.sx3ucp +++| LOANFCTQ(-1);
02070 M00S01869.sx3ucp +++| MFLUSH;
02071 M00S01870.sx3ucp +++| CFLUSH(CPR$FAM[0],CPR$SUB[0],0,ERRSTAT);
02072 M00S01871.sx3ucp +++| UCP$RES;
02073 M00S01872.sx3ucp +++| RETURN;
02074 M00S01873.sx3ucp +++|
02075 M00S01874.sx3ucp +++| END # RMVCAR #
02076 M00S01875.sx3ucp +++|
02077 M00S01876.sx3ucp +++| TERM
02078 M00S01877.sx3ucp +++|PROC RMVCSU;
02079 M00S01878.sx3ucp +++|# TITLE RMVCSU - REMOVES *SM* FROM SUB-FAMILY CATALOG. #
02080 M00S01879.sx3ucp +++|
02081 M00S01880.sx3ucp +++| BEGIN # RMVCSU #
02082 M00S01881.sx3ucp +++|
02083 M00S01882.sx3ucp +++|#
02084 M00S01883.sx3ucp +++|** RMVCSU - REMOVES *SM* FROM SUB-FAMILY CATALOG.
02085 M00S01884.sx3ucp +++|*
02086 M00S01885.sx3ucp +++|* *RMVCSU* REMOVES A *SM* FROM THE
02087 M00S01886.sx3ucp +++|* CATALOG FOR A SUB-FAMILY.
02088 M00S01887.sx3ucp +++|*
02089 M00S01888.sx3ucp +++|* PROC RMVCSU
02090 M00S01889.sx3ucp +++|*
02091 M00S01890.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
02092 M00S01891.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
02093 M00S01892.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
02094 M00S01893.sx3ucp +++|* *LTCENTRY*.
02095 M00S01894.sx3ucp +++|*
02096 M00S01895.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
02097 M00S01896.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
02098 M00S01897.sx3ucp +++|* OF THE REQUEST.
02099 M00S01898.sx3ucp +++|*
02100 M00S01899.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
02101 M00S01900.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
02102 M00S01901.sx3ucp +++|* = OK3 OK
02103 M00S01902.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
02104 M00S01903.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
02105 M00S01904.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
02106 M00S01905.sx3ucp +++|#
02107 M00S01906.sx3ucp +++|
02108 M00S01907.sx3ucp +++|#
02109 M00S01908.sx3ucp +++|**** PROC RMVCSU - XREF LIST BEGIN.
02110 M00S01909.sx3ucp +++|#
02111 M00S01910.sx3ucp +++|
02112 M00S01911.sx3ucp +++| XREF
02113 M00S01912.sx3ucp +++| BEGIN
02114 M00S01913.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
02115 M00S01914.sx3ucp +++| *UCP* ERRORS #
02116 M00S01915.sx3ucp +++| PROC CRMVSC; # REMOVE SUBCATALOG #
02117 M00S01916.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
02118 M00S01917.sx3ucp +++| #
02119 M00S01918.sx3ucp +++| END
02120 M00S01919.sx3ucp +++|
02121 M00S01920.sx3ucp +++|#
02122 M00S01921.sx3ucp +++|**** PROC RMVCSU - XREF LIST END.
02123 M00S01922.sx3ucp +++|#
02124 M00S01923.sx3ucp +++|
02125 M00S01924.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
02126 M00S01925.sx3ucp +++|*CALL COMBFAS
02127 M00S01926.sx3ucp +++|*CALL COMBCMS
02128 M00S01927.sx3ucp +++|*CALL COMBCPR
02129 M00S01928.sx3ucp +++|*CALL COMBMAP
02130 M00S01929.sx3ucp +++|*CALL COMXLTC
02131 M00S01930.sx3ucp +++|
02132 M00S01931.sx3ucp +++|
02133 M00S01932.sx3ucp +++|
02134 M00S01933.sx3ucp +++|
02135 M00S01934.sx3ucp +++|
02136 M00S01935.sx3ucp +++| CRMVSC(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],0,ERRSTAT);
02137 M00S01936.sx3ucp +++| CONVER3(CPR$RQT[0],CPR$RQC[0],ERRSTAT,ERRSTAT);
02138 M00S01937.sx3ucp +++| LTC$RQR[LTCENTRY] = ERRSTAT;
02139 M00S01938.sx3ucp +++| UCP$RES;
02140 M00S01939.sx3ucp +++| RETURN;
02141 M00S01940.sx3ucp +++|
02142 M00S01941.sx3ucp +++| END # RMVCSU #
02143 M00S01942.sx3ucp +++|
02144 M00S01943.sx3ucp +++| TERM
02145 M00S01944.sx3ucp +++|PROC RMVCUBE;
02146 M00S01945.sx3ucp +++|# TITLE RMVCUBE - REMOVE CUBICLE FROM FAMILY. #
02147 M00S01946.sx3ucp +++|
02148 M00S01947.sx3ucp +++| BEGIN # RMVCUBE #
02149 M00S01948.sx3ucp +++|
02150 M00S01949.sx3ucp +++|#
02151 M00S01950.sx3ucp +++|** RMVCUBE - REMOVE CUBICLE FROM FAMILY.
02152 M00S01951.sx3ucp +++|*
02153 M00S01952.sx3ucp +++|* *RMVCUBE* UPDATES THE *AST*, *FCT* AND *SMMAP* (IN THAT
02154 M00S01953.sx3ucp +++|* ORDER) TO REFLECT THAT THE GIVEN CUBICLE IS NO LONGER
02155 M00S01954.sx3ucp +++|* ASSIGNED TO THE SUB-FAMILY.
02156 M00S01955.sx3ucp +++|*
02157 M00S01956.sx3ucp +++|* PROC RMVCUBE
02158 M00S01957.sx3ucp +++|*
02159 M00S01958.sx3ucp +++|* ENTRY THE TYPE 3 UCP REQUEST TO BE PROCESSED IS IN ARRAY
02160 M00S01959.sx3ucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. THE
02161 M00S01960.sx3ucp +++|* *LTCT* ENTRY FOR THE REQUESTING UCP IS POINTED TO BY
02162 M00S01961.sx3ucp +++|* *LTCENTRY*.
02163 M00S01962.sx3ucp +++|*
02164 M00S01963.sx3ucp +++|* EXIT THE TYPE 3 REQUEST HAS BEEN PROCESSED AND A RESPONSE
02165 M00S01964.sx3ucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION
02166 M00S01965.sx3ucp +++|* OF THE REQUEST.
02167 M00S01966.sx3ucp +++|*
02168 M00S01967.sx3ucp +++|* RESPONSES ARE RETURNED VIA LTC$RQR[LTCENTRY].
02169 M00S01968.sx3ucp +++|* THESE RESPONSE CODE VALUES ARE DEFINED IN *COMBCPR*.
02170 M00S01969.sx3ucp +++|* = OK3 OK
02171 M00S01970.sx3ucp +++|* = C$M$INTLCK CATALOG/MAP INTERLOCKED
02172 M00S01971.sx3ucp +++|* = C$M$NOPEN CATALOG/MAP NOT OPEN
02173 M00S01972.sx3ucp +++|* = PF$PROB PERMANENT FILE PROBLEM
02174 M00S01973.sx3ucp +++|* = ILLEG$ORD ORDINAL OUT OF RANGE
02175 M00S01974.sx3ucp +++|#
02176 M00S01975.sx3ucp +++|
02177 M00S01976.sx3ucp +++|#
02178 M00S01977.sx3ucp +++|**** PROC RMVCUBE - XREF LIST BEGIN.
02179 M00S01978.sx3ucp +++|#
02180 M00S01979.sx3ucp +++|
02181 M00S01980.sx3ucp +++| XREF
02182 M00S01981.sx3ucp +++| BEGIN
02183 M00S01982.sx3ucp +++| PROC ACQ$FCT; # FIND THE *FCTQ* ENTRY FOR CALLER
02184 M00S01983.sx3ucp +++| #
02185 M00S01984.sx3ucp +++| PROC CFLUSH; # FLUSHES THE CATALOG I/O BUFFER #
02186 M00S01985.sx3ucp +++| PROC CONVER3; # CONVERT MAP/CATALOG ERRORS TO
02187 M00S01986.sx3ucp +++| *UCP* ERRORS #
02188 M00S01987.sx3ucp +++| PROC CRDAST; # READ ALLOCATION SUMMARY TABLE #
02189 M00S01988.sx3ucp +++| PROC CWTAST; # WRITE ALLOCATION SUMMARY TABLE #
02190 M00S01989.sx3ucp +++| PROC MFLUSH; # FLUSH MAP TO FILE #
02191 M00S01990.sx3ucp +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE
02192 M00S01991.sx3ucp +++| CALLER #
02193 M00S01992.sx3ucp +++| PROC MPUTENT; # MAP ENTRY TO THE MAP FILE BUFFER
02194 M00S01993.sx3ucp +++| #
02195 M00S01994.sx3ucp +++| PROC RLS$FCT; # RELEASE *FCTQ* ENTRY #
02196 M00S01995.sx3ucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE
02197 M00S01996.sx3ucp +++| #
02198 M00S01997.sx3ucp +++| PROC UPDAST; # UPDATE THE *AST* #
02199 M00S01998.sx3ucp +++| END
02200 M00S01999.sx3ucp +++|
02201 M00S02000.sx3ucp +++|#
02202 M00S02001.sx3ucp +++|**** PROC RMVCUBE - XREF LIST END.
02203 M00S02002.sx3ucp +++|#
02204 M00S02003.sx3ucp +++|
02205 M00S02004.sx3ucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
02206 M00S02005.sx3ucp +++|*CALL COMBFAS
02207 M00S02006.sx3ucp +++|*CALL COMBCMD
02208 M00S02007.sx3ucp +++|*CALL COMBCMS
02209 M00S02008.sx3ucp +++|*CALL COMBCPR
02210 M00S02009.sx3ucp +++|*CALL COMBMAP
02211 M00S02010.sx3ucp +++|*CALL COMBMCT
02212 M00S02011.sx3ucp +++|*CALL COMXFCQ
02213 M00S02012.sx3ucp +++|*CALL COMXLTC
02214 M00S02013.sx3ucp +++|*CALL COMXMSC
02215 M00S02014.sx3ucp +++|
02216 M00S02015.sx3ucp +++| ITEM FCTEADDR U; # *FCTQ* ENTRY ADDRESS #
02217 M00S02016.sx3ucp +++| ITEM I U; # COUNTER #
02218 M00S02017.sx3ucp +++| ITEM ORD I; # *AST* ORDINAL #
02219 M00S02018.sx3ucp +++|
02220 M00S02019.sx3ucp +++|
02221 M00S02020.sx3ucp +++|
02222 M00S02021.sx3ucp +++|
02223 M00S02022.sx3ucp +++|
02224 M00S02023.sx3ucp +++|#
02225 M00S02024.sx3ucp +++|* GET THE MAP ENTRY FOR THE REQUEST.
02226 M00S02025.sx3ucp +++|#
02227 M00S02026.sx3ucp +++|
02228 M00S02027.sx3ucp +++| MGETENT(CPR$CSU[0],SMORD,LOC(MAPBUFR),ERRSTAT);
02229 M00S02028.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
02230 M00S02029.sx3ucp +++| THEN
02231 M00S02030.sx3ucp +++| BEGIN
02232 M00S02031.sx3ucp +++| GOTO ERRORTN;
02233 M00S02032.sx3ucp +++| END
02234 M00S02033.sx3ucp +++|
02235 M00S02034.sx3ucp +++|
02236 M00S02035.sx3ucp +++|#
02237 M00S02036.sx3ucp +++|* GET THE ALLOCATION SUMMARY TABLE.
02238 M00S02037.sx3ucp +++|#
02239 M00S02038.sx3ucp +++|
02240 M00S02039.sx3ucp +++| P<AST> = ASTBADR;
02241 M00S02040.sx3ucp +++| CRDAST(CPR$FAM[0],CPR$SUB[0],CPR$CSU[0],ASTBADR,0,ERRSTAT);
02242 M00S02041.sx3ucp +++| IF ERRSTAT NQ CMASTAT"NOERR"
02243 M00S02042.sx3ucp +++| THEN
02244 M00S02043.sx3ucp +++| BEGIN
02245 M00S02044.sx3ucp +++| GOTO ERRORTN;
02246 M00S02045.sx3ucp +++| END
02247 M00S02046.sx3ucp +++|
02248 M00S02047.sx3ucp +++|#
02249 M00S02048.sx3ucp +++|* UPDATE *AST* AND PREAMBLE.