cdc:nos2.source:opl.opl871:deck:sxinit
Deck SXINIT
Library Member Format: MODIFY
Listing Sections
- Deck SXINIT Start
- Deck SXINIT Part 1 (Line 2047)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.sxinit +++|PROC CALCTS; 00002 M00S00002.sxinit +++|# TITLE CALCTS - CALCULATE TABLE SPACE. # 00003 M00S00003.sxinit +++| BEGIN # CALCTS # 00004 M00S00004.sxinit +++| 00005 M00S00005.sxinit +++|# 00006 M00S00006.sxinit +++|** CALCTS - CALCULATE TABLE SPACE. 00007 M00S00007.sxinit +++|* 00008 M00S00008.sxinit +++|* THIS PROCEDURE WILL CALCULATE THE NUMBER OF ENTRIES AND THE SPACE 00009 M00S00009.sxinit +++|* REQUIRED FOR EACH OF THE VARIABLE TABLES, AND STORE THE RESULTS 00010 M00S00010.sxinit +++|* IN THE ARRAY *MAT*. 00011 M00S00011.sxinit +++|* 00012 M00S00012.sxinit +++|* EXIT TABLE CALCULATIONS COMPLETED. 00013 M00S00013.sxinit +++|# 00014 M00S00014.sxinit +++| 00015 M00S00015.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00016 M00S00016.sxinit +++|*CALL COMBFAS 00017 M00S00017.sxinit +++|*CALL COMBCMD 00018 M00S00018.sxinit +++|*CALL COMBLBL 00019 M00S00019.sxinit +++|*CALL COMBLRQ 00020 M00S00020.sxinit +++|*CALL COMBMAT 00021 M00S00021.sxinit +++|*CALL COMBMCT 00022 M00S00022.sxinit +++|*CALL COMBTDM 00023 M00S00023.sxinit +++|*CALL COMBUDT 00024 M00S00024.sxinit +++|*CALL COMXBST 00025 M00S00025.sxinit +++|*CALL COMXCTF 00026 M00S00026.sxinit +++|*CALL COMXEXP 00027 M00S00027.sxinit +++|*CALL COMXFCQ 00028 M00S00028.sxinit +++|*CALL COMXHLR 00029 M00S00029.sxinit +++|*CALL,COMXIPR 00030 M00S00030.sxinit +++|*CALL COMXINT 00031 M00S00031.sxinit +++|*CALL COMXLTC
Line S00001 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00032 M01S00001.sxinit2 +++|*CALL COMXMFD 00033 M00S00032.sxinit +++|*CALL COMXMSC 00034 M00S00033.sxinit +++| 00035 M00S00034.sxinit +++| ITEM TEMPCOUNT U; # TEMPORARY COUNT FIELD # 00036 M00S00035.sxinit +++| CONTROL EJECT; 00037 M00S00036.sxinit +++| 00038 M00S00037.sxinit +++|# 00039 M00S00038.sxinit +++|* CALCULATES THE SPACE REQUIRED AND THE NUMBER OF ENTRIES FOR EACH 00040 M00S00039.sxinit +++|* OF THE VARIABLE TABLES, AND STORES THE RESULTS IN THE ARRAY 00041 M00S00040.sxinit +++|* *MAT*. 00042 M00S00041.sxinit +++|# 00043 M00S00042.sxinit +++| 00044 M00S00043.sxinit +++| TEMPCOUNT = Q+2; 00045 M00S00044.sxinit +++| 00046 M00S00045.sxinit +++| MAT$COUNT[MAT$ENTRY"HLRQ"] = TEMPCOUNT; 00047 M00S00046.sxinit +++| MAT$SPACE[MAT$ENTRY"HLRQ"] = HLRQLEN * TEMPCOUNT; 00048 M00S00047.sxinit +++| 00049 M00S00048.sxinit +++| 00050 M00S00049.sxinit +++| MAT$COUNT[MAT$ENTRY"LLRQ"] = TEMPCOUNT; 00051 M00S00050.sxinit +++| MAT$SPACE[MAT$ENTRY"LLRQ"] = LLRQENTL * TEMPCOUNT; 00052 M00S00051.sxinit +++| 00053 M00S00052.sxinit +++| MAT$COUNT[MAT$ENTRY"RTRQ"] = Q * RTRQ$SPACE; 00054 M00S00053.sxinit +++| MAT$SPACE[MAT$ENTRY"RTRQ"] = (TDAMLEN + 1) * (Q * RTRQ$SPACE); 00055 M00S00054.sxinit +++| 00056 M00S00055.sxinit +++| MAT$COUNT[MAT$ENTRY"FCTQ"] = Q; # SET FCTQ FIELD # 00057 M00S00056.sxinit +++| MAT$SPACE[MAT$ENTRY"FCTQ"] = (FCTQHL+FCTENTL) * Q; 00058 M00S00057.sxinit +++| 00059 M00S00058.sxinit +++| BSTL = MAXCTN * 2; 00060 M00S00059.sxinit +++| MAT$COUNT[MAT$ENTRY"BST"] = BSTL; 00061 M00S00060.sxinit +++| MAT$SPACE[MAT$ENTRY"BST"] = BSTENTL * BSTL; 00062 M00S00061.sxinit +++| 00063 M00S00062.sxinit +++| LTCTCNT = FAMCNT + 3; 00064 M00S00063.sxinit +++| MAT$COUNT[MAT$ENTRY"LTCT"] = FAMCNT + 3; 00065 M00S00064.sxinit +++| MAT$SPACE[MAT$ENTRY"LTCT"] = LTCL * (FAMCNT + 3); 00066 M00S00065.sxinit +++| 00067 M00S00066.sxinit +++| MAT$COUNT[MAT$ENTRY"MRFT"] = FAMCNT; 00068 M00S00067.sxinit +++| MAT$SPACE[MAT$ENTRY"MRFT"] = MRFTLEN * FAMCNT; 00069 M00S00068.sxinit +++| 00070 M00S00069.sxinit +++| MAT$COUNT[MAT$ENTRY"OMT"] = MAXSM; 00071 M00S00070.sxinit +++| MAT$SPACE[MAT$ENTRY"OMT"] = OMTENTL * MAXSM; 00072 M00S00071.sxinit +++| 00073 M00S00072.sxinit +++| MAT$COUNT[MAT$ENTRY"OCT"] = 8 * FAMCNT; 00074 M00S00073.sxinit +++| MAT$SPACE[MAT$ENTRY"OCT"] = OCTENTL * 8 * FAMCNT; 00075 M00S00074.sxinit +++| 00076 M00S00075.sxinit +++| MAT$COUNT[MAT$ENTRY"PREAMBLE"] = 8 * FAMCNT; 00077 M00S00076.sxinit +++| MAT$SPACE[MAT$ENTRY"PREAMBLE"] = PRMTLEN * 8 * FAMCNT * 3; 00078 M00S00077.sxinit +++| 00079 M01S00002.sxinit2 +++| MAT$COUNT[MAT$ENTRY"SCR$BUF"] = BSTL; 00080 M01S00003.sxinit2 +++| MAT$SPACE[MAT$ENTRY"SCR$BUF"] = SCCBL * BSTL; 00081 M01S00004.sxinit2 +++| 00082 M00S00078.sxinit +++| MAT$COUNT[MAT$ENTRY"UDT$CONT"] = MAXCTN; 00083 M00S00079.sxinit +++| MAT$SPACE[MAT$ENTRY"UDT$CONT"] = UDTCUL + 1; # HEADER INCLUDED # 00084 M00S00080.sxinit +++| 00085 M00S00081.sxinit +++| MAT$COUNT[MAT$ENTRY"UDT$SM"] = MAXSMUNIT; 00086 M00S00082.sxinit +++| MAT$SPACE[MAT$ENTRY"UDT$SM"] = UDTSML; 00087 M00S00083.sxinit +++| 00088 M00S00084.sxinit +++| MAT$COUNT[MAT$ENTRY"CAT$FET"] = 1; 00089 M00S00085.sxinit +++| MAT$SPACE[MAT$ENTRY"CAT$FET"] = RFETL; 00090 M00S00086.sxinit +++| 00091 M00S00087.sxinit +++| MAT$COUNT[MAT$ENTRY"CAT$BUF"] = 1; 00092 M00S00088.sxinit +++| MAT$SPACE[MAT$ENTRY"CAT$BUF"] = FCTBL; 00093 M00S00089.sxinit +++| 00094 M00S00090.sxinit +++| MAT$COUNT[MAT$ENTRY"MAP$FET"] = 1; 00095 M00S00091.sxinit +++| MAT$SPACE[MAT$ENTRY"MAP$FET"] = RFETL; 00096 M00S00092.sxinit +++| 00097 M00S00093.sxinit +++| MAT$COUNT[MAT$ENTRY"MAP$BUF"] = 1; 00098 M00S00094.sxinit +++| MAT$SPACE[MAT$ENTRY"MAP$BUF"] = MAPBUFL; 00099 M00S00095.sxinit +++| 00100 M00S00096.sxinit +++| MAT$COUNT[MAT$ENTRY"TEMP$FET"] = 1; 00101 M00S00097.sxinit +++| MAT$SPACE[MAT$ENTRY"TEMP$FET"] = RFETL * 2; 00102 M00S00098.sxinit +++| 00103 M00S00099.sxinit +++| MAT$COUNT[MAT$ENTRY"TEMP$BUF"] = 1; 00104 M00S00100.sxinit +++| MAT$SPACE[MAT$ENTRY"TEMP$BUF"] = TBUFL; 00105 M00S00101.sxinit +++| 00106 M00S00102.sxinit +++| MAT$COUNT[MAT$ENTRY"TEMP$WB"] = 1; 00107 M00S00103.sxinit +++| MAT$SPACE[MAT$ENTRY"TEMP$WB"] = WBUFL; 00108 M00S00104.sxinit +++| 00109 M00S00105.sxinit +++| MAT$COUNT[MAT$ENTRY"AST$BUF"] = 1; 00110 M00S00106.sxinit +++| MAT$SPACE[MAT$ENTRY"AST$BUF"] = ABUFLEN; 00111 M00S00107.sxinit +++| 00112 M00S00108.sxinit +++| MAT$COUNT[MAT$ENTRY"LABBUF"] = 1; 00113 M00S00109.sxinit +++| MAT$SPACE[MAT$ENTRY"LABBUF"] = LABLEN; 00114 M00S00110.sxinit +++|
Line S00111 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00115 M01S00111.sxinit3 ---| MAT$COUNT[MAT$ENTRY"MW$BUFS"] = MAXCTN * CHANPC; 00116 M01S00112.sxinit3 ---| MAT$SPACE[MAT$ENTRY"MW$BUFS"] = MAXCTN * CHANPC *
Line S00001 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00117 M01S00001.sxinit3 +++| MAT$COUNT[MAT$ENTRY"MW$BUFS"] = MAXCTUNIT * CHANPC; 00118 M01S00002.sxinit3 +++| MAT$SPACE[MAT$ENTRY"MW$BUFS"] = MAXCTUNIT * CHANPC * 00119 M00S00113.sxinit +++| (MWBUFL + SFMWL + 1); 00120 M00S00114.sxinit +++| # READ BUFFER ADDRESS INCLUDED # 00121 M00S00115.sxinit +++|
Line S00116 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00122 M01S00116.sxinit3 ---| MAT$COUNT[MAT$ENTRY"MR$BUFS"] = MAXCTN * CHANPC; 00123 M01S00117.sxinit3 ---| MAT$SPACE[MAT$ENTRY"MR$BUFS"] = MAXCTN * CHANPC * (MRBUFL+SFMRL);
Line S00003 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00124 M01S00003.sxinit3 +++| MAT$COUNT[MAT$ENTRY"MR$BUFS"] = MAXCTUNIT * CHANPC; 00125 M01S00004.sxinit3 +++| MAT$SPACE[MAT$ENTRY"MR$BUFS"] = MAXCTUNIT*CHANPC*(MRBUFL+SFMRL); 00126 M00S00118.sxinit +++|
Line S00119 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00127 M01S00119.sxinit3 ---| MAT$COUNT[MAT$ENTRY"SBT"] = MAXCTN + (2 * MAXSMUNIT) + 1; 00128 M01S00120.sxinit3 ---| MAT$SPACE[MAT$ENTRY"SBT"] = (MAXCTN+(2*MAXSMUNIT)+1) * MSGLT;
Line S00005 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00129 M01S00005.sxinit3 +++| MAT$COUNT[MAT$ENTRY"SBT"] = MAXCTUNIT + (2 * MAXSMUNIT) + 1; 00130 M01S00006.sxinit3 +++| MAT$SPACE[MAT$ENTRY"SBT"] = (MAXCTUNIT+(2*MAXSMUNIT)+1) * MSGLT; 00131 M00S00121.sxinit +++| 00132 M00S00122.sxinit +++| END # CALCTS # 00133 M00S00123.sxinit +++| 00134 M00S00124.sxinit +++| TERM 00135 M00S00125.sxinit +++|PROC CRAST((FCTX),(QADDR),(ASTADDR)); 00136 M00S00126.sxinit +++| 00137 M00S00127.sxinit +++|# TITLE CRAST - CREATE *AST* ENTRY. # 00138 M00S00128.sxinit +++| BEGIN # CRAST # 00139 M00S00129.sxinit +++| 00140 M00S00130.sxinit +++|# 00141 M00S00131.sxinit +++|** CRAST - CREATE *AST* ENTRY. 00142 M00S00132.sxinit +++|* 00143 M00S00133.sxinit +++|* THIS PROCEDURE WILL SCAN THE *FCT* ENTRY AT ORDINAL *FCTX* TO 00144 M00S00134.sxinit +++|* CREATE THE CORRESPONDING TRIAL *AST* ENTRY TO BE 00145 M00S00135.sxinit +++|* CHECKED WITH THE EXISTING AST IN THE PROCEDURE OPENCAT. 00146 M00S00136.sxinit +++|* 00147 M00S00137.sxinit +++|* PROC CRAST((FCTX),(QADDR),(ASTADDR)) 00148 M00S00138.sxinit +++|* 00149 M00S00139.sxinit +++|* ENTRY (FCTX) = ORDINAL OF *FCT* ENTRY. 00150 M00S00140.sxinit +++|* (QADDR) = ADDRESS OF *FCTQ* ENTRY. 00151 M00S00141.sxinit +++|* (ASTADDR) = ADDRESS OF *AST* BUFFER. 00152 M00S00142.sxinit +++|* 00153 M00S00143.sxinit +++|* EXIT *AST* ENTRY HAS BEEN CONSTRUCTED. 00154 M00S00144.sxinit +++|# 00155 M00S00145.sxinit +++| 00156 M00S00146.sxinit +++| ITEM FCTX U; # ORDINAL OF *FCT* ENTRY # 00157 M00S00147.sxinit +++| ITEM QADDR U; # ADDRESS OF *FCTQ* ENTRY # 00158 M00S00148.sxinit +++| ITEM ASTADDR U; # ADDRESS OF *AST* BUFFER # 00159 M00S00149.sxinit +++| 00160 M00S00150.sxinit +++| DEF SPACES #" "#; # SPACES # 00161 M00S00151.sxinit +++| 00162 M00S00152.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00163 M00S00153.sxinit +++| 00164 M00S00154.sxinit +++|*CALL COMBFAS 00165 M00S00155.sxinit +++|*CALL COMBMCT 00166 M00S00156.sxinit +++|*CALL COMXCTF 00167 M00S00157.sxinit +++|*CALL COMXFCQ 00168 M00S00158.sxinit +++|*CALL COMXINT 00169 M00S00159.sxinit +++|*CALL COMXMSC 00170 M00S00160.sxinit +++| 00171 M00S00161.sxinit +++| ITEM ATBNDRY B; # TRUE IF AT *CDP* OR DONE # 00172 M00S00162.sxinit +++| ITEM DONE B; # TRUE IF AFTER LAST AU # 00173 M00S00163.sxinit +++| ITEM I U; # INDEX # 00174 M00S00164.sxinit +++| ITEM LASTBUSY U; # LAST PROTECTED AU # 00175 M00S00165.sxinit +++| ITEM NXTFREE U; # NEXT (EXPECTED) FREE VOLUME # 00176 M00S00166.sxinit +++| ITEM PREVVOL U; # AU OF PREVIOUS VOLUME # 00177 M00S00167.sxinit +++| ITEM TEMP U; # TEMPORARY # 00178 M00S00168.sxinit +++| ITEM THISAU U; # LOOP INDEX # 00179 M00S00169.sxinit +++| ITEM TOTAU U; # TOTAL AU AVAILABLE FOR 00180 M00S00170.sxinit +++| ALLOCATION # 00181 M00S00171.sxinit +++| ITEM VOLLN U; # NUMBER OF (EXPECTED) 00182 M00S00172.sxinit +++| CONTINUATION AU # 00183 M00S00173.sxinit +++| 00184 M00S00174.sxinit +++| 00185 M00S00175.sxinit +++| CONTROL EJECT; 00186 M00S00176.sxinit +++| 00187 M00S00177.sxinit +++| P<FCT> = QADDR + FCTQHL; 00188 M00S00178.sxinit +++| P<AST> = ASTADDR; 00189 M00S00179.sxinit +++| IF AST$STAT[FCTX] NQ ASTENSTAT"ASS$CART" 00190 M00S00180.sxinit +++| THEN 00191 M00S00181.sxinit +++| BEGIN 00192 M00S00182.sxinit +++| RETURN; 00193 M00S00183.sxinit +++| END 00194 M00S00184.sxinit +++| 00195 M00S00185.sxinit +++|# 00196 M00S00186.sxinit +++|* DET OFF CARTRIDGE LINK AND ALLOCATION ALLOWED FLAGS IS AST. 00197 M00S00187.sxinit +++|# 00198 M00S00188.sxinit +++| 00199 M00S00189.sxinit +++| AST$NOCLF[FCTX] = FCT$OCLF[FCTX] EQ 7; 00200 M00S00190.sxinit +++| AST$AAF[FCTX] = NOT ( FCT$IAF[0] OR FCT$LCF[0] OR ## 00201 M00S00191.sxinit +++| FCT$EEF[0] OR FCT$SEF[0] OR ## 00202 M00S00192.sxinit +++| FCT$FCF[0]) OR (FCT$ORD[0] NQ FCTX); 00203 M00S00193.sxinit +++| 00204 M00S00194.sxinit +++|# 00205 M00S00195.sxinit +++|* THE OBJECTIVES OF THE FOLLOWING ANALYSIS OF THE *FCT* ENTRY 00206 M00S00196.sxinit +++|* ARE THREEFOLD: 00207 M00S00197.sxinit +++|* 00208 M00S00198.sxinit +++|* 1) COUNT THE AU AVAILABLE FOR ALLOCATION. 00209 M00S00199.sxinit +++|* 00210 M00S00200.sxinit +++|* 2) IDENTIFY THE FREE AU WHICH CAN SAFELY BE ALLOCATED 00211 M00S00201.sxinit +++|* FOR STORAGE OF FILE DATA, LEAVING ALONE THOSE AU 00212 M00S00202.sxinit +++|* WHICH ARE UNALLOCATED, BUT ARE FLAGGED, FLAWED OR 00213 M00S00203.sxinit +++|* INCLUDED WITHIN THE COUNT OF CONTINUATION AU OF 00214 M00S00204.sxinit +++|* AN AU OR VOLUME WHICH IS ALLOCATED. 00215 M00S00205.sxinit +++|* 00216 M00S00206.sxinit +++|* 3) RE-ORGANIZE THESE USABLE AU INTO VOLUMES AND REBUILD 00217 M00S00207.sxinit +++|* THE CHAIN OF AVAILABLE VOLUMES FOR USE BY THE ALLOCATOR. 00218 M00S00208.sxinit +++|* 00219 M00S00209.sxinit +++|* A LOOP EXAMINES EACH AU IN THE *FCT* ENTRY. EACH AU IS 00220 M00S00210.sxinit +++|* REJECTED AS BEING AVAILABLE IF IT IS BUSY, FLAWED, OR HAS 00221 M00S00211.sxinit +++|* OTHER FLAGS SET. AN AU WHICH IS EXPECTED TO BE A 00222 M00S00212.sxinit +++|* CONTINUATION AU FOR A VOLUME AVAILABLE FOR ALLOCATION IS 00223 M00S00213.sxinit +++|* ACCEPTED IN THE VOLUME IF IT IS NOT BUSY OR FLAGGED. 00224 M00S00214.sxinit +++|* ANY AU WHICH IS NOT BUSY, FLAGGED, OR PART OF A VOLUME IS 00225 M00S00215.sxinit +++|* TREATED AS THE START OF A NEW VOLUME, AND PROPERLY LINKED 00226 M00S00216.sxinit +++|* INTO THE CHAIN OF FREE VOLUMES. 00227 M00S00217.sxinit +++|* 00228 M00S00218.sxinit +++|* THE FOLLOWING SEQUENCE OF STEPS IS TAKEN TO ACHIEVE THE ABOVE: 00229 M00S00219.sxinit +++|* 00230 M00S00220.sxinit +++|* 1) DETERMINE IF THIS AU IS JUST AFTER A BOUNDARY POINT, 00231 M00S00221.sxinit +++|* I.E., IT IS JUST AFTER THE LAST AU FOR SHORT OR LONG FILES. 00232 M00S00222.sxinit +++|* 00233 M00S00223.sxinit +++|* 2) IF A VOLUME OF FREE AU IS BEING ACCUMULATED, REDUCE THE 00234 M00S00224.sxinit +++|* VOLUME LENGTH IF IT WOULD OTHERWISE INCLUDE AN AU WHICH 00235 M00S00225.sxinit +++|* SHOULD NOT BE PART OF THE VOLUME. 00236 M00S00226.sxinit +++|* 00237 M00S00227.sxinit +++|* 3) IF THIS AU IS JUST AFTER A BOUNDARY POINT (SEE STEP 1), 00238 M00S00228.sxinit +++|* - VERIFY THAT THE FREE VOLUME CHAIN IS TERMINATED WITH A 00239 M00S00229.sxinit +++|* LINK=0. 00240 M00S00230.sxinit +++|* - SAVE THE COUNT OF FREE AU IN THE *FCT* HEADER. 00241 M00S00231.sxinit +++|* - IF AT START OF AU FOR LONG FILES, RESET COUNTERS. 00242 M00S00232.sxinit +++|* 00243 M00S00233.sxinit +++|* 4) IF THIS AU IS BUSY, 00244 M00S00234.sxinit +++|* - SET A VARIABLE SO THAT ANY AU WHICH ARE CLAIMED TO 00245 M00S00235.sxinit +++|* BE CONTINUATION AU ARE NOT TREATED AS AVAILABLE FOR 00246 M00S00236.sxinit +++|* ALLOCATION REGARDLESS OF THEIR *FCT* ENTRY. 00247 M00S00237.sxinit +++|* - LOOP TO EXAMINE THE NEXT AU. 00248 M00S00238.sxinit +++|* 00249 M00S00239.sxinit +++|* 5) IF THE AU IS PROTECTED (SEE STEP 4) OR FLAGGED, LOOP TO 00250 M00S00240.sxinit +++|* EXAMINE THE NEXT AU. 00251 M00S00241.sxinit +++|* 00252 M00S00242.sxinit +++|* 6) PROCESS THE AU WHICH IS REALLY AVAILABLE FOR ALLOCATION. 00253 M00S00243.sxinit +++|* - CLEAR CONTINUATION FLAG..FORCE A HEAD OF VOLUME STATUS. 00254 M00S00244.sxinit +++|* - ADJUST IF NECESSARY THE FREE VOLUME LINKAGE TO POINT 00255 M00S00245.sxinit +++|* TO THIS AU (VOLUME). 00256 M00S00246.sxinit +++|* - SAVE LENGTH FIELD AS THE COUNT OF NUMBER OF EXPECTED 00257 M00S00247.sxinit +++|* CONTINUATION AU. 00258 M00S00248.sxinit +++|* - SAVE LINK FIELD AS THE NEXT EXPECTED FREE VOLUME. 00259 M00S00249.sxinit +++|* - SAVE THE ID OF THIS VOLUME IN CASE ITS LENGTH HAS 00260 M00S00250.sxinit +++|* TO BE REDUCED (SEE STEP 2), OR ITS LINK HAS TO BE 00261 M00S00251.sxinit +++|* ADJUSTED (SEE ABOVE SUBSTEP). 00262 M00S00252.sxinit +++|# 00263 M00S00253.sxinit +++| 00264 M00S00254.sxinit +++| FCT$FLAWS[0] = 0; 00265 M00S00255.sxinit +++| PREVVOL = 0; 00266 M00S00256.sxinit +++| NXTFREE = FCT$FAUSF[0]; 00267 M00S00257.sxinit +++| TOTAU = 0; 00268 M00S00258.sxinit +++| VOLLN = 0; 00269 M00S00259.sxinit +++| LASTBUSY = 0; 00270 M00S00260.sxinit +++| DONE = FALSE; 00271 M00S00261.sxinit +++| 00272 M00S00262.sxinit +++| FOR THISAU = 1 STEP 1 WHILE NOT DONE 00273 M00S00263.sxinit +++| DO 00274 M00S00264.sxinit +++| BEGIN # THISAU LOOP # 00275 M00S00265.sxinit +++| 00276 M00S00266.sxinit +++|# 00277 M00S00267.sxinit +++|* STEP 1 - DETERMINE IF AT A BOUNDARY POINT. 00278 M00S00268.sxinit +++|# 00279 M00S00269.sxinit +++| 00280 M00S00270.sxinit +++| SETFCTX(THISAU); 00281 M00S00271.sxinit +++| DONE = THISAU GR FCT$AVOT[0]; 00282 M00S00272.sxinit +++| ATBNDRY = (THISAU EQ FCT$CDP[0]) OR DONE; 00283 M00S00273.sxinit +++| 00284 M00S00274.sxinit +++|# 00285 M00S00275.sxinit +++|* STEP 2 - IF IN A SEQUENCE OF CONTINUATION AU, VERIFY THAT 00286 M00S00276.sxinit +++|* THIS AU CAN BE INCLUDED. IF NOT, CORRECT VOLUME LENGTH. 00287 M00S00277.sxinit +++|# 00288 M00S00278.sxinit +++| 00289 M00S00279.sxinit +++| IF VOLLN NQ 0 00290 M00S00280.sxinit +++| THEN 00291 M00S00281.sxinit +++| BEGIN # STEP 2 # 00292 M00S00282.sxinit +++| FCT$CLFG(0,0) = FCT$CLFG(FWD,FPS); 00293 M00S00283.sxinit +++| FCT$CAUF(0,0) = 1-FCT$CAUF(0,0); 00294 M00S00284.sxinit +++| 00295 M00S00285.sxinit +++| IF (FCT$FLGS1(0,0) EQ 0) ## 00296 M00S00286.sxinit +++| AND NOT ATBNDRY 00297 M00S00287.sxinit +++| THEN # AU IS OK AS A CONTINUATION AU # 00298 M00S00288.sxinit +++| BEGIN 00299 M00S00289.sxinit +++| TOTAU = TOTAU + 1; 00300 M00S00290.sxinit +++| FCT$CLFG(FWD,FPS) = 0; 00301 M00S00291.sxinit +++| FCT$CAUF(FWD,FPS) = 1; 00302 M00S00292.sxinit +++| FCT$LEN(FWD,FPS) = VOLLN - 1; 00303 M00S00293.sxinit +++| FCT$LINK(FWD,FPS) = PREVVOL; 00304 M00S00294.sxinit +++| VOLLN = VOLLN - 1; 00305 M00S00295.sxinit +++| TEST THISAU; 00306 M00S00296.sxinit +++| END 00307 M00S00297.sxinit +++| 00308 M00S00298.sxinit +++| ELSE # TERMINATE THIS VOLUME AND ADJUST 00309 M00S00299.sxinit +++| ITS LENGTH # 00310 M00S00300.sxinit +++| BEGIN 00311 M00S00301.sxinit +++| SETFCTX(PREVVOL); 00312 M00S00302.sxinit +++| FCT$LEN(FWD,FPS) = FCT$LEN(FWD,FPS) - VOLLN; 00313 M00S00303.sxinit +++| VOLLN = 0; 00314 M00S00304.sxinit +++| END 00315 M00S00305.sxinit +++| 00316 M00S00306.sxinit +++| END # STEP 2 # 00317 M00S00307.sxinit +++| 00318 M00S00308.sxinit +++|# 00319 M00S00309.sxinit +++|* STEP 3 - PROCESS BOUNDARY CONDITION. 00320 M00S00310.sxinit +++|# 00321 M00S00311.sxinit +++| 00322 M00S00312.sxinit +++| IF ATBNDRY 00323 M00S00313.sxinit +++| THEN 00324 M00S00314.sxinit +++| BEGIN # STEP 3 # 00325 M00S00315.sxinit +++| SETFCTX(PREVVOL); 00326 M00S00316.sxinit +++| IF NXTFREE NQ 0 00327 M00S00317.sxinit +++| THEN # SET LINK TO ZERO # 00328 M00S00318.sxinit +++| BEGIN 00329 M00S00319.sxinit +++| FCT$LINK(FWD,FPS) = 0; 00330 M00S00320.sxinit +++| END 00331 M00S00321.sxinit +++| 00332 M00S00322.sxinit +++| IF DONE 00333 M00S00323.sxinit +++| THEN # FINISHED AU FOR LONG FILES # 00334 M00S00324.sxinit +++| BEGIN 00335 M00S00325.sxinit +++| AST$AULF[FCTX] = TOTAU; 00336 M00S00326.sxinit +++| IF FCT$FAULF[0] EQ 0 00337 M00S00327.sxinit +++| THEN 00338 M00S00328.sxinit +++| BEGIN 00339 M00S00329.sxinit +++| AST$AULF[FCTX] = 0; 00340 M00S00330.sxinit +++| END 00341 M00S00331.sxinit +++| 00342 M00S00332.sxinit +++| TEST THISAU; 00343 M00S00333.sxinit +++| END 00344 M00S00334.sxinit +++| 00345 M00S00335.sxinit +++| ELSE # FINISHED AU FOR SHORT FILES # 00346 M00S00336.sxinit +++| BEGIN 00347 M00S00337.sxinit +++| AST$AUSF[FCTX] = TOTAU; 00348 M00S00338.sxinit +++| TOTAU = 0; 00349 M00S00339.sxinit +++| PREVVOL = 0; 00350 M00S00340.sxinit +++| NXTFREE = FCT$FAULF[0]; 00351 M00S00341.sxinit +++| END 00352 M00S00342.sxinit +++| 00353 M00S00343.sxinit +++| END # STEP 3 # 00354 M00S00344.sxinit +++| 00355 M00S00345.sxinit +++|# 00356 M00S00346.sxinit +++|* STEP 4 - PROCESS AU BUSY. 00357 M00S00347.sxinit +++|# 00358 M00S00348.sxinit +++| 00359 M00S00349.sxinit +++| SETFCTX(THISAU); 00360 M00S00350.sxinit +++| IF FCT$FBF(FWD,FPS) EQ 1 00361 M00S00351.sxinit +++| THEN # AU IS BUSY, PROTECT ALL AU 00362 M00S00352.sxinit +++| COVERED BY LENGTH FIELD # 00363 M00S00353.sxinit +++| BEGIN 00364 M00S00354.sxinit +++| TEMP = THISAU + FCT$LEN(FWD,FPS); 00365 M00S00355.sxinit +++| IF TEMP GR LASTBUSY 00366 M00S00356.sxinit +++| THEN 00367 M00S00357.sxinit +++| BEGIN 00368 M00S00358.sxinit +++| LASTBUSY = TEMP; 00369 M00S00359.sxinit +++| END 00370 M00S00360.sxinit +++| 00371 M00S00361.sxinit +++| TEST THISAU; 00372 M00S00362.sxinit +++| END 00373 M00S00363.sxinit +++| 00374 M00S00364.sxinit +++|# 00375 M00S00365.sxinit +++|* STEP 5 - SKIP ANY AU THAT ARE PROTECTED OR FLAGGED. 00376 M00S00366.sxinit +++|# 00377 M00S00367.sxinit +++| 00378 M00S00368.sxinit +++| FCT$CAUF(FWD,FPS) = 0; # CLEAR CONTINUATION AU FLAG # 00379 M00S00369.sxinit +++| 00380 M00S00370.sxinit +++| IF FCT$FAUF(FWD,FPS) NQ 0 00381 M00S00371.sxinit +++| THEN # COUNT FLAWED AU # 00382 M00S00372.sxinit +++| BEGIN 00383 M00S00373.sxinit +++| FCT$FLAWS[0] = FCT$FLAWS[0] + 1; 00384 M00S00374.sxinit +++| END 00385 M00S00375.sxinit +++| 00386 M00S00376.sxinit +++| IF THISAU LQ LASTBUSY ## 00387 M00S00377.sxinit +++| OR (FCT$FLGS1(FWD,FPS) NQ 0) 00388 M00S00378.sxinit +++| THEN 00389 M00S00379.sxinit +++| BEGIN 00390 M00S00380.sxinit +++| TEST THISAU; 00391 M00S00381.sxinit +++| END 00392 M00S00382.sxinit +++| 00393 M00S00383.sxinit +++|# 00394 M00S00384.sxinit +++|* STEP 6 - ENSURE THE VOLUME HEADED BY THIS AU IS IN THE 00395 M00S00385.sxinit +++|* FREE SPACE CHAIN. 00396 M00S00386.sxinit +++|* - IF THE NEXT EXPECTED FREE VOLUME (*NXTFREE*) 00397 M00S00387.sxinit +++|* IS BEYOND THIS AU, INSERT THIS AU IN THE MIDDLE 00398 M00S00388.sxinit +++|* OF THE CHAIN. 00399 M00S00389.sxinit +++|* - IF THE NEXT EXPECTED FREE VOLUME IS PRIOR TO THIS 00400 M00S00390.sxinit +++|* AU, CORRECT THE LINK FIELD OF THE PREVIOUS VOLUME 00401 M00S00391.sxinit +++|* BY LINKING TO THIS AU. 00402 M00S00392.sxinit +++|* - USE THE VOLUME LENGTH AND LINK FIELDS AS SPECIFIED 00403 M00S00393.sxinit +++|* BY THIS AU-S *FCT* ENTRY. IF THEY ARE NOT CORRECT, 00404 M00S00394.sxinit +++|* STEP 2 WILL REDUCE THE LENGTH, AND STEP 3 OR THIS 00405 M00S00395.sxinit +++|* STEP WILL CORRECT THE LINK FIELD. 00406 M00S00396.sxinit +++|# 00407 M00S00397.sxinit +++| 00408 M00S00398.sxinit +++| IF THISAU NQ NXTFREE 00409 M00S00399.sxinit +++| THEN # NEED TO CORRECT LINKAGE # 00410 M00S00400.sxinit +++| BEGIN # CORRECT LINKAGE # 00411 M00S00401.sxinit +++| IF THISAU LS NXTFREE 00412 M00S00402.sxinit +++| THEN # ADD THIS AU (VOLUME) TO CURRENT 00413 M00S00403.sxinit +++| CHAIN # 00414 M00S00404.sxinit +++| BEGIN 00415 M00S00405.sxinit +++| FCT$LINK(FWD,FPS) = NXTFREE; 00416 M00S00406.sxinit +++| END 00417 M00S00407.sxinit +++| 00418 M00S00408.sxinit +++|# 00419 M00S00409.sxinit +++|* ADJUST LINK FIELD OF PREVIOUS ENTRY TO POINT TO THIS VOLUME. 00420 M00S00410.sxinit +++|# 00421 M00S00411.sxinit +++| 00422 M00S00412.sxinit +++| IF PREVVOL EQ 0 00423 M00S00413.sxinit +++| THEN # UPDATE FREE SPACE POINTERS # 00424 M00S00414.sxinit +++| BEGIN 00425 M00S00415.sxinit +++| IF THISAU LS FCT$CDP[0] 00426 M00S00416.sxinit +++| THEN # UPDATE SHORT FILE POINTER # 00427 M00S00417.sxinit +++| BEGIN 00428 M00S00418.sxinit +++| FCT$FAUSF[0] = THISAU; 00429 M00S00419.sxinit +++| END 00430 M00S00420.sxinit +++| 00431 M00S00421.sxinit +++| ELSE # UPDATE LONG FILE POINTER # 00432 M00S00422.sxinit +++| BEGIN 00433 M00S00423.sxinit +++| FCT$FAULF[0] = THISAU; 00434 M00S00424.sxinit +++| END 00435 M00S00425.sxinit +++| 00436 M00S00426.sxinit +++| END 00437 M00S00427.sxinit +++| 00438 M00S00428.sxinit +++| ELSE # UPDATE PREVIOUS LINK # 00439 M00S00429.sxinit +++| BEGIN 00440 M00S00430.sxinit +++| SETFCTX(PREVVOL); 00441 M00S00431.sxinit +++| FCT$LINK(FWD,FPS) = THISAU; 00442 M00S00432.sxinit +++| END 00443 M00S00433.sxinit +++| 00444 M00S00434.sxinit +++| END # CORRECT LINKAGE # 00445 M00S00435.sxinit +++| 00446 M00S00436.sxinit +++| SETFCTX(THISAU); 00447 M00S00437.sxinit +++| TOTAU = TOTAU + 1; 00448 M00S00438.sxinit +++| PREVVOL = THISAU; 00449 M00S00439.sxinit +++| NXTFREE = FCT$LINK(FWD,FPS); 00450 M00S00440.sxinit +++| VOLLN = FCT$LEN(FWD,FPS); 00451 M00S00441.sxinit +++| TEST THISAU; 00452 M00S00442.sxinit +++| END # THISAU LOOP # 00453 M00S00443.sxinit +++| 00454 M00S00444.sxinit +++| FCT$CLFG(0,0) = 0; 00455 M00S00445.sxinit +++| RETURN; 00456 M00S00446.sxinit +++| END # CRAST # 00457 M00S00447.sxinit +++| 00458 M00S00448.sxinit +++| TERM 00459 M00S00449.sxinit +++|PROC GETRTP; 00460 M00S00450.sxinit +++|# TITLE GETRTP - GETS AND PROCESSES RUN TIME PARAMETERS. # 00461 M00S00451.sxinit +++| 00462 M00S00452.sxinit +++| BEGIN # GETRTP # 00463 M00S00453.sxinit +++| 00464 M00S00454.sxinit +++|# 00465 M00S00455.sxinit +++|** GETRTP - GETS AND PROCESSES RUN TIME PARAMETERS. 00466 M00S00456.sxinit +++|* 00467 M00S00457.sxinit +++|* THIS ROUTINE WILL GET AND PROCESS THE TUNING PARAMETER 00468 M00S00458.sxinit +++|* AND THE TRACE MODE PARAMETER. 00469 M00S00459.sxinit +++|* 00470 M00S00460.sxinit +++|* PROC GETRTP 00471 M00S00461.sxinit +++|* 00472 M00S00462.sxinit +++|* EXIT THE RUN TIME PARAMETERS HAVE BEEN PROCESSED. 00473 M00S00463.sxinit +++|* 00474 M00S00464.sxinit +++|* MESSAGE 1) EXEC ABORT - SYNTAX ERROR. 00475 M00S00465.sxinit +++|* 00476 M00S00466.sxinit +++|* 2) *Q* PARAMETER TOO LARGE - 00477 M00S00467.sxinit +++|* MAXIMUM ALLOWABLE VALUE SUBSTITUTED. 00478 M00S00468.sxinit +++|* 00479 M00S00469.sxinit +++|* 3) *Q* PARAMETER TOO SMALL - 00480 M00S00470.sxinit +++|* MINIMUM ALLOWABLE VALUE SUBSTITUTED. 00481 M00S00471.sxinit +++|# 00482 M00S00472.sxinit +++| 00483 M00S00473.sxinit +++|# 00484 M00S00474.sxinit +++|**** PROC GETRTP - XREF LIST BEGIN. 00485 M00S00475.sxinit +++|# 00486 M00S00476.sxinit +++| 00487 M00S00477.sxinit +++| XREF 00488 M00S00478.sxinit +++| BEGIN 00489 M00S00479.sxinit +++| PROC EXTAB; # SETS UP PARAMETER LIST # 00490 M00S00480.sxinit +++| PROC MESSAGE; # ISSUES MESSAGE TO DAYFILE # 00491 M00S00481.sxinit +++| PROC XARG; # CRACK PARAMETER LIST # 00492 M00S00482.sxinit +++| PROC XDXB; # CONVERT DECIMAL TO BINARY # 00493 M00S00483.sxinit +++| END 00494 M00S00484.sxinit +++| 00495 M00S00485.sxinit +++|# 00496 M00S00486.sxinit +++|**** PROC GETRTP - XREF LIST END. 00497 M00S00487.sxinit +++|# 00498 M00S00488.sxinit +++| 00499 M00S00489.sxinit +++| 00500 M00S00490.sxinit +++| 00501 M00S00491.sxinit +++| DEF DEC$TYPE #1#; # DECIMAL TYPE CONVERSION # 00502 M00S00492.sxinit +++| DEF QAVERAGE #10#; # AVERAGE TUNING PARAMETER VALUE # 00503 M00S00493.sxinit +++| DEF QMAXIMUM #50#; # MAXIMUM TUNING PARAMETER VALUE # 00504 M00S00494.sxinit +++| DEF QMINIMUM #6#; # MINIMUM TUNING PARAMETER VALUE # 00505 M00S00495.sxinit +++| DEF SYNTAXOK #0#; # NO SYNTAX ERRORS # 00506 M00S00496.sxinit +++| 00507 M00S00497.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00508 M00S00498.sxinit +++|*CALL COMBFAS 00509 M00S00499.sxinit +++|*CALL COMXCTF 00510 M00S00500.sxinit +++|*CALL COMXEXP 00511 M00S00501.sxinit +++|*CALL COMXINT 00512 M00S00502.sxinit +++|*CALL,COMXJCA 00513 M00S00503.sxinit +++| 00514 M00S00504.sxinit +++| ITEM ARGLIST U; # ADDRESS OF ARGUMENT LIST # 00515 M00S00505.sxinit +++| ITEM ARG$Q I; # INTEGER TUNING PARAMETER # 00516 M00S00506.sxinit +++| ITEM DFLT B; # DEFAULT *Q* FLAG # 00517 M00S00507.sxinit +++| ITEM FLAG U; # STATUS FLAG FOR ASARG # 00518 M00S00508.sxinit +++| ITEM OPTION U; # OPTION TO SKIP PROGRAM NAME # 00519 M00S00509.sxinit +++| 00520 M00S00510.sxinit +++|# 00521 M00S00511.sxinit +++|* MESSAGE BUFFER. 00522 M00S00512.sxinit +++|# 00523 M00S00513.sxinit +++| 00524 M00S00514.sxinit +++| ARRAY MSGBUF[0:0] P(5); 00525 M00S00515.sxinit +++| BEGIN # ARRAY MSGBUF # 00526 M00S00516.sxinit +++| ITEM MSG$LINE C(00,00,40); # MESSAGE LINE # 00527 M00S00517.sxinit +++| ITEM MSG$RZRO C(04,00,12); # ZERO BYE TERMINATOR # 00528 M00S00518.sxinit +++| END # ARRAY MSGBUF # 00529 M00S00519.sxinit +++| 00530 M00S00520.sxinit +++| CONTROL EJECT; 00531 M00S00521.sxinit +++| 00532 M00S00522.sxinit +++|# 00533 M00S00523.sxinit +++|* GET THE RUN TIME PARAMETERS. 00534 M00S00524.sxinit +++|# 00535 M00S00525.sxinit +++| 00536 M00S00526.sxinit +++| EXTAB(ARGLIST); # SET UP ARGUMENT LIST # 00537 M00S00527.sxinit +++| OPTION = 0; # SKIP OVER PROGRAM NAME # 00538 M00S00528.sxinit +++| XARG(ARGLIST,OPTION,FLAG); # GET PARAMETERS # 00539 M00S00529.sxinit +++| 00540 M00S00530.sxinit +++| IF FLAG NQ SYNTAXOK 00541 M00S00531.sxinit +++| THEN 00542 M00S00532.sxinit +++| BEGIN # IF SYNTAX ERRORS DETECTED BY ASARG # 00543 M00S00533.sxinit +++| MSG$LINE[0] = " EXEC ABORT - SYNTAX ERRORS. "; 00544 M00S00534.sxinit +++| MESSAGE(MSGBUF[0],UDFL1); # ERROR MESSAGE TO DAYFILE # 00545 M00S00535.sxinit +++| FATALERR = TRUE; 00546 M00S00536.sxinit +++| RETURN; 00547 M00S00537.sxinit +++| END # IF SYNTAX ERRORS DETECTED BY ASARG # 00548 M00S00538.sxinit +++| 00549 M00S00539.sxinit +++|# 00550 M00S00540.sxinit +++|* CHANGE DISPLAY CODE *S* PARAMETER TO DECIMAL INTEGER. IF 00551 M00S00541.sxinit +++|* *S* PARAMETER IS NOT FOUND ON CONTROL COMMAND, *ARG$S* 00552 M00S00542.sxinit +++|* WILL BE SET TO -1. 00553 M00S00543.sxinit +++|# 00554 M00S00544.sxinit +++| 00555 M00S00545.sxinit +++| XDXB(ARG$SC[0],DEC$TYPE,ARG$S); 00556 M00S00546.sxinit +++| 00557 M00S00547.sxinit +++|# 00558 M00S00548.sxinit +++|* SET THE SMALLEST *HLRQ* COUNT. 00559 M00S00549.sxinit +++|# 00560 M00S00550.sxinit +++| 00561 M00S00551.sxinit +++| Q = MAXSMUNIT * 2; # SET MAXIMUN AND DEFAULT *HLRQ* COUNT # 00562 M00S00552.sxinit +++| IF MIMHLRQ LS Q 00563 M00S00553.sxinit +++| THEN 00564 M00S00554.sxinit +++| BEGIN # FORCE THE SMALLEST *HLRQ* COUNT # 00565 M00S00555.sxinit +++| Q = MIMHLRQ; 00566 M00S00556.sxinit +++| END 00567 M00S00557.sxinit +++| 00568 M00S00558.sxinit +++| 00569 M00S00559.sxinit +++|# 00570 M00S00560.sxinit +++|* SET *RA$TRACE* TO *TRUE* IF *TM* PARAMETER SPECIFIED. 00571 M00S00561.sxinit +++|# 00572 M00S00562.sxinit +++| 00573 M00S00563.sxinit +++| RA$TRACE = (ARG$T NQ -1); 00574 M00S00564.sxinit +++| 00575 M00S00565.sxinit +++| RETURN; 00576 M00S00566.sxinit +++| END # GETRTP # 00577 M00S00567.sxinit +++| 00578 M00S00568.sxinit +++| TERM 00579 M00S00569.sxinit +++|PROC GETUDT; 00580 M00S00570.sxinit +++|# TITLE GETUDT - DETERMINES THE PROPERTIES OF THE CONFIGURATION. # 00581 M00S00571.sxinit +++| 00582 M00S00572.sxinit +++| BEGIN # GETUDT # 00583 M00S00573.sxinit +++| 00584 M00S00574.sxinit +++|# 00585 M00S00575.sxinit +++|** GETUDT - DETERMINES THE PROPERTIES OF THE CONFIGURATION. 00586 M00S00576.sxinit +++|* 00587 M00S00577.sxinit +++|* THIS ROUTINE WILL INITIALIZE VARIABLES DEFINING THE 00588 M00S00578.sxinit +++|* CONFIGURATION OF THE CONTROLLERS AND STORAGE MODULES. 00589 M00S00579.sxinit +++|* 00590 M00S00580.sxinit +++|* PROC GETUDT. 00591 M00S00581.sxinit +++|* 00592 M00S00582.sxinit +++|* ENTRY M860 HARDWARE CONFIGURATION EXISTS. 00593 M00S00583.sxinit +++|* 00594 M00S00584.sxinit +++|* EXIT CONFIGURATION INFORMATION HAS BEEN PROCESSED. 00595 M00S00585.sxinit +++|* 00596 M00S00586.sxinit +++|* MESSAGES 1) ATTACH ERROR - BUDT FILE BUSY. 00597 M00S00587.sxinit +++|* 00598 M00S00588.sxinit +++|* 2) ATTACH ERROR - BUDT FILE NOT FOUND. 00599 M00S00589.sxinit +++|* 00600 M00S00590.sxinit +++|* 3) BUDT CONTROLLER ENTRY COUNT EXCEEDED. 00601 M00S00591.sxinit +++|* 00602 M00S00592.sxinit +++|* 4) BUDT CONTROLLER TABLE READ ERROR. 00603 M00S00593.sxinit +++|* 00604 M00S00594.sxinit +++|* 5) BUDT READ ERROR. 00605 M00S00595.sxinit +++|* 00606 M00S00596.sxinit +++|* 6) BUDT SM ENTRY COUNT EXCEEDED. 00607 M00S00597.sxinit +++|* 00608 M00S00598.sxinit +++|* 7) BUDT SM TABLE READ ERROR. 00609 M00S00599.sxinit +++|* 00610 M00S00600.sxinit +++|* 8) EST ORDINAL XX - NO UDT ENTRY. 00611 M00S00601.sxinit +++|* 00612 M00S00602.sxinit +++|* 9) EST READ ERROR. 00613 M00S00603.sxinit +++|* 00614 M00S00604.sxinit +++|* 10) EST/UDT CHANNEL MISMATCH. 00615 M00S00605.sxinit +++|* 00616 M00S00606.sxinit +++|* 11) MORE CHANNELS THAN MSG FETS. 00617 M00S00607.sxinit +++|* 00618 M00S00608.sxinit +++|* 12) VERIFY ERROR ON EST ENTRY XX. 00619 M00S00609.sxinit +++|* 00620 M00S00610.sxinit +++|* NOTES *INITTAB* MUST BE CALLED BEFORE *GETUDT* SO THAT AN 00621 M00S00611.sxinit +++|* I/O BUFFER IS AVAILABLE TO READ THE BUDT INTO 00622 M00S00612.sxinit +++|* *SSEXEC*. 00623 M00S00613.sxinit +++|* 00624 M00S00614.sxinit +++|* *KINIT* MUST BE CALLED BEFORE *GETUDT* SO THAT A 00625 M00S00615.sxinit +++|* K-DISPLAY MESSAGE CAN BE ISSUED ALLOWING THE OPERATOR 00626 M00S00616.sxinit +++|* TO RUN *SSALTER* TO MODIFY THE UDT. 00627 M00S00617.sxinit +++|* 00628 M00S00618.sxinit +++|* THE *UCP* INTERFACE MUST BE INITIALIZED BEFORE 00629 M00S00619.sxinit +++|* *GETUDT* IS CALLED SO THAT *SSALTER* MAY BE RUN. 00630 M00S00620.sxinit +++|# 00631 M00S00621.sxinit +++| 00632 M00S00622.sxinit +++|# 00633 M00S00623.sxinit +++|**** PROC GETUDT - XREF LIST BEGIN. 00634 M00S00624.sxinit +++|# 00635 M00S00625.sxinit +++| 00636 M00S00626.sxinit +++| XREF 00637 M00S00627.sxinit +++| BEGIN 00638 M00S00628.sxinit +++| PROC ATTACH; # ATTACH FILE # 00639 M00S00629.sxinit +++| PROC BZFILL; # BLANK OR ZERO FILLS # 00640 M00S00630.sxinit +++| PROC PFD; # PFM ENTRY # 00641 M00S00631.sxinit +++| PROC SETPFP; # SETS USER INDEX AND FAMILY # 00642 M00S00632.sxinit +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO # 00643 M00S00633.sxinit +++| PROC RDEST; # READ EST ENTRIES # 00644 M00S00634.sxinit +++| PROC READ; # READS FILE TO I/O BUFFER # 00645 M00S00635.sxinit +++| PROC READW; # READS FILE TO WORKING BUFFER # 00646 M00S00636.sxinit +++| PROC RETERN; # RETURNS FILE # 00647 M00S00637.sxinit +++| PROC RTIME; # GET REAL TIME # 00648 M00S00638.sxinit +++| FUNC XCOD C(10); # CONVERT OCTAL TO DISPLAY # 00649 M00S00639.sxinit +++| PROC ZSETFET; # SETS UP *FET* # 00650 M00S00640.sxinit +++| END 00651 M00S00641.sxinit +++| 00652 M00S00642.sxinit +++|# 00653 M00S00643.sxinit +++|**** PROC GETUDT - XREF LIST END. 00654 M00S00644.sxinit +++|# 00655 M00S00645.sxinit +++| 00656 M00S00646.sxinit +++| DEF CNTYPE #"SS"#; # CONTROLLER TYPE #
Line S00001 Modification History | |
---|---|
M01 (Added by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00657 M01S00001.sxinit4 +++| DEF DOWNSTATUS #3#; # CONTROLLER EST *DOWN* STATUS # 00658 M00S00647.sxinit +++| DEF ESTCHAN(CUO,UCHO) #B<13+(UCHO*6),5>EST$WORD[0]#; 00659 M00S00648.sxinit +++| # EST CHANNEL #
Line S00649 Modification History | |
---|---|
M01 (Removed by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00660 M01S00649.sxinit2 ---| DEF ESTON(CUO,UCHO) #B<12+(UCHO*6),1>EST$WORD[0]#;
Line S00005 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00661 M01S00005.sxinit2 +++| DEF ESTON(UCHO) # B<12+(UCHO*6),1>EST$WORD[0]#; 00662 M00S00650.sxinit +++| # EST CHANNEL STATUS # 00663 M00S00651.sxinit +++| DEF FILLSIZE #7#; # FILL SIZE FOR *BZFILL* # 00664 M00S00652.sxinit +++| DEF FIRSTCHAN #1#; # PRIMARY EST CHANNEL INDEX #
Line S00002 Modification History | |
---|---|
M01 (Added by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00665 M01S00002.sxinit4 +++| DEF IDLESTATUS #1#; # CONTROLLER EST *IDLE* STATUS # 00666 M01S00003.sxinit4 +++| DEF OFFSTATUS #2#; # CONTROLLER EST *OFF* STATUS # 00667 M01S00004.sxinit4 +++| DEF ONSTATUS #0#; # CONTROLLER EST *ON* STATUS # 00668 M00S00653.sxinit +++| DEF READMODE #1#; # READ MODE FOR ATTACH # 00669 M00S00654.sxinit +++| DEF UDTEX(CUO,CIFO) #B<CIFO,1>UD$CHEX[CUO]#; 00670 M00S00655.sxinit +++| # SET IF CHANNEL EXISTS # 00671 M00S00656.sxinit +++| 00672 M00S00657.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00673 M00S00658.sxinit +++|*CALL COMBFAS 00674 M00S00659.sxinit +++|*CALL COMBBZF 00675 M00S00660.sxinit +++|*CALL COMBCMD 00676 M00S00661.sxinit +++|*CALL COMBCPR 00677 M00S00662.sxinit +++|*CALL,COMBFET 00678 M00S00663.sxinit +++|*CALL COMBKDD 00679 M00S00664.sxinit +++|*CALL COMBMAT 00680 M00S00665.sxinit +++|*CALL,COMBPFP 00681 M00S00666.sxinit +++|*CALL COMBPFS 00682 M00S00667.sxinit +++|*CALL COMBUCR 00683 M00S00668.sxinit +++|*CALL COMBUDT 00684 M00S00669.sxinit +++|*CALL COMSPFM 00685 M00S00670.sxinit +++|*CALL COMXBST 00686 M00S00671.sxinit +++|*CALL COMXCTF 00687 M00S00672.sxinit +++|*CALL COMXINT 00688 M00S00673.sxinit +++|*CALL COMXJCA 00689 M00S00674.sxinit +++| 00690 M00S00675.sxinit +++|
Line S00007 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00691 M01S00007.sxinit3 +++| ITEM BITMAPPOS U; # BIT POSITION IN EST ORD BIT MAP # 00692 M01S00008.sxinit3 +++| ITEM BITMAPWORD U; # EST ORDINAL BIT MAP WORD # 00693 M00S00676.sxinit +++| ITEM BUFL U; # I/O BUFFER LENGTH # 00694 M01S00009.sxinit3 +++| ITEM DESIREDORD I; # EST ORD TO CHECK IN BIT MAP # 00695 M00S00677.sxinit +++| ITEM ESTNUM U; # COUNT OF EST ENTRIES READ # 00696 M00S00678.sxinit +++| ITEM ESTORD C(10); # DISPLAY CODE EST ORDINAL # 00697 M00S00679.sxinit +++| ITEM NUM I; # NUMBER OF EST ENTRIES # 00698 M00S00680.sxinit +++| ITEM FETL U; # TEMP BUFFER FET LENGTH # 00699 M00S00681.sxinit +++| ITEM FOUND B; # SET IF EST/UDT MATCH FOUND # 00700 M00S00682.sxinit +++| ITEM I U; # INDEX # 00701 M00S00683.sxinit +++| ITEM J U; # INDEX # 00702 M00S00684.sxinit +++| ITEM K I; # INDEX # 00703 M00S00685.sxinit +++| ITEM LFN C(7); # BUDT LOCAL FILENAME # 00704 M00S00686.sxinit +++| ITEM PASSWORD C(7); # BUDT FILE PASSWORD # 00705 M00S00687.sxinit +++| ITEM STAT U; # FUNCTION RETURN STATUS # 00706 M00S00688.sxinit +++| ITEM TMPCCNT U; # TEMP CHANNEL COUNT # 00707 M00S00689.sxinit +++| 00708 M00S00690.sxinit +++|# 00709 M00S00691.sxinit +++|* ARRAY TO MARK SS-TYPE EQUIPMENT. 00710 M00S00692.sxinit +++|# 00711 M00S00693.sxinit +++|
Line S00694 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00712 M01S00694.sxinit3 ---| ARRAY EQBITS [0:0] S(9);
Line S00010 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00713 M01S00010.sxinit3 +++| ARRAY EQBITS [0:8] S(9); 00714 M00S00695.sxinit +++| BEGIN
Line S00696 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00715 M01S00696.sxinit3 ---| ITEM EQUSED U;
Line S00011 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00716 M01S00011.sxinit3 +++| ITEM EQUSED U(00,00,60); # BIT MAP WORD # 00717 M00S00697.sxinit +++| END 00718 M00S00698.sxinit +++| 00719 M00S00699.sxinit +++| 00720 M00S00700.sxinit +++|# 00721 M00S00701.sxinit +++|* EST BUFFER. 00722 M00S00702.sxinit +++|# 00723 M00S00703.sxinit +++| 00724 M00S00704.sxinit +++| ARRAY ESTB [0:0] S(2); 00725 M00S00705.sxinit +++| BEGIN # EST # 00726 M00S00706.sxinit +++| ITEM EST$WORD U(00,00,60); # EST WORD #
Line S00005 Modification History | |
---|---|
M01 (Added by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00727 M01S00005.sxinit4 +++| ITEM EST$STAT U(00,10,02); # CONTROLLER STATUS # 00728 M00S00707.sxinit +++| ITEM EST$CHBDWN B(00,12,01); # CHANNEL *B* DOWN # 00729 M00S00708.sxinit +++| ITEM EST$CHB U(00,13,05); # CHANNEL *B* # 00730 M00S00709.sxinit +++| ITEM EST$CHADWN B(00,18,01); # CHANNEL *A* DOWN # 00731 M00S00710.sxinit +++| ITEM EST$CHA U(00,19,05); # CHANNEL *A* # 00732 M00S00711.sxinit +++| ITEM EST$CHDDWN B(00,24,01); # CHANNEL *D* DOWN # 00733 M00S00712.sxinit +++| ITEM EST$CHD U(00,25,05); # CHANNEL *D* # 00734 M00S00713.sxinit +++| ITEM EST$CHCDWN B(00,30,01); # CHANNEL *C* DOWN # 00735 M00S00714.sxinit +++| ITEM EST$CHC U(00,31,05); # CHANNEL *C* #
Line S00715 Modification History | |
---|---|
M01 (Removed by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00736 M01S00715.sxinit4 ---| ITEM EST$OFF B(00,36,01); # CONTROLLER OFF # 00737 M00S00716.sxinit ---| ITEM EST$CONT U(00,37,11); # CONTROLLER TYPE # 00738 M00S00717.sxinit ---| ITEM EST$CNCT U(00,48,03); # CONNECT CODE # 00739 M00S00718.sxinit ---| END # EST # 00740 M00S00719.sxinit ---| 00741 M00S00720.sxinit ---| 00742 M00S00721.sxinit ---|# 00743 M00S00722.sxinit ---|* UDT CHANNEL ARRAY. 00744 M00S00723.sxinit ---|# 00745 M00S00724.sxinit ---| 00746 M00S00725.sxinit ---| ARRAY UDTCH [0:MAX$CH] S(1); 00747 M00S00726.sxinit ---| BEGIN
Line S00006 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00748 M01S00006.sxinit2 +++| ITEM UDTCWORD U(00,00,06); # CHANNEL WORD # 00749 M00S00727.sxinit +++| ITEM UDTBSTAT B(00,00,01); # CHANNEL STATUS (BOOLEAN) # 00750 M00S00728.sxinit +++| ITEM UDTSTAT U(00,00,01); # CHANNEL STATUS # 00751 M00S00729.sxinit +++| ITEM UDTCHAN U(00,01,05); # CHANNEL NUMBER # 00752 M00S00730.sxinit +++| END 00753 M00S00731.sxinit +++| 00754 M00S00732.sxinit +++| 00755 M00S00733.sxinit +++|# 00756 M00S00734.sxinit +++|* *MISSING UDT ENTRY* ERROR MESSAGE BUFFER. 00757 M00S00735.sxinit +++|# 00758 M00S00736.sxinit +++| 00759 M00S00737.sxinit +++| ARRAY MISMB [0:0] S(4); 00760 M00S00738.sxinit +++| BEGIN # MESSAGE BUFFER # 00761 M00S00739.sxinit +++| ITEM MIS$1 C(00,00,13) = [" EST ORDINAL "]; 00762 M00S00740.sxinit +++| ITEM MIS$NUM U(01,18,24); # EST ORDINAL # 00763 M00S00741.sxinit +++| ITEM MIS$2 C(01,42,16) = [" - NO UDT ENTRY."]; 00764 M00S00742.sxinit +++| ITEM MIS$ZRO U(03,18,42) = [0]; # ZERO-BYTE TERMINATOR # 00765 M00S00743.sxinit +++| END # MESSAGE BUFFER # 00766 M00S00744.sxinit +++| 00767 M00S00745.sxinit +++| 00768 M00S00746.sxinit +++|# 00769 M00S00747.sxinit +++|* GENERAL ERROR MESSAGE BUFFER. 00770 M00S00748.sxinit +++|# 00771 M00S00749.sxinit +++| 00772 M00S00750.sxinit +++| ARRAY MSGMB [0:0] S(5); 00773 M00S00751.sxinit +++| BEGIN # MESSAGE BUFFER # 00774 M00S00752.sxinit +++| ITEM MSG$LINE C(00,00,40); # MESSAGE LINE # 00775 M00S00753.sxinit +++| ITEM MSG$ZRO U(04,00,12) = [0]; # ZERO-BYTE TERMINATOR # 00776 M00S00754.sxinit +++| END # MESSAGE BUFFER # 00777 M00S00755.sxinit +++| 00778 M00S00756.sxinit +++| 00779 M00S00757.sxinit +++|# 00780 M00S00758.sxinit +++|* *VERIFY* ERROR MESSAGE BUFFER. 00781 M00S00759.sxinit +++|# 00782 M00S00760.sxinit +++| 00783 M00S00761.sxinit +++| ARRAY VERMB [0:0] S(4); 00784 M00S00762.sxinit +++| BEGIN # MESSAGE BUFFER # 00785 M00S00763.sxinit +++| ITEM VER$1 C(00,00,27) = [" VERIFY ERROR ON EST ENTRY "]; 00786 M00S00764.sxinit +++| ITEM VER$NUM C(02,42,24); # EST ORDINAL # 00787 M00S00765.sxinit +++| ITEM VER$2 C(03,06,06) = ["."]; 00788 M00S00766.sxinit +++| ITEM VER$ZRO U(03,12,48) = [0]; # ZERO-BYTE TERMINATOR # 00789 M00S00767.sxinit +++| END # MESSAGE BUFFER # 00790 M00S00768.sxinit +++| 00791 M00S00769.sxinit +++| 00792 M00S00770.sxinit +++| CONTROL EJECT; 00793 M00S00771.sxinit +++| 00794 M00S00772.sxinit +++|# 00795 M00S00773.sxinit +++|* READ BUDT INTO TEMPORARY BUFFER. 00796 M00S00774.sxinit +++|# 00797 M00S00775.sxinit +++| 00798 M00S00776.sxinit +++| LFN = BUDT; 00799 M00S00777.sxinit +++| PASSWORD = BUDTPW; 00800 M00S00778.sxinit +++| BZFILL(LFN,TYPFILL"ZFILL",FILLSIZE); # CLEAR FILENAME # 00801 M00S00779.sxinit +++| BZFILL(PASSWORD,TYPFILL"ZFILL",FILLSIZE); # CLEAR PASSWORD # 00802 M00S00780.sxinit +++| PFP$UI = DEF$UI; # SET *SETPFP* PARAMETERS # 00803 M00S00781.sxinit +++| PFP$FAM = FAM$NAME[DEFAULTORD]; 00804 M00S00782.sxinit +++| PFP$FG1 = TRUE; 00805 M00S00783.sxinit +++| PFP$FG4 = TRUE; 00806 M00S00784.sxinit +++| SETPFP(PFP[0]); # SET USER INDEX AND FAMILY # 00807 M00S00785.sxinit +++| 00808 M00S00786.sxinit +++|# 00809 M00S00787.sxinit +++|* TRY ATTACHING BUDT FILE 10 TIMES BEFORE TERMINATING. 00810 M00S00788.sxinit +++|# 00811 M00S00789.sxinit +++| SLOWFOR I = 0 STEP 1 UNTIL 10 00812 M00S00790.sxinit +++| DO 00813 M00S00791.sxinit +++| BEGIN 00814 M00S00792.sxinit +++| PFD("ATTACH",LFN,0,"PW",PASSWORD,"RC",PFSTAT,"NA",0,"UP",0,0); 00815 M00S00793.sxinit +++| 00816 M00S00794.sxinit +++| IF PFSTAT EQ OK 00817 M00S00795.sxinit +++| THEN 00818 M00S00796.sxinit +++| BEGIN # BUDT ATTACHED # 00819 M00S00797.sxinit +++| GOTO ENDCON; 00820 M00S00798.sxinit +++| END 00821 M00S00799.sxinit +++| END # ATTACH BUDT LOOP # 00822 M00S00800.sxinit +++| 00823 M00S00801.sxinit +++|ENDCON: 00824 M00S00802.sxinit +++| 00825 M00S00803.sxinit +++| IF PFSTAT NQ OK 00826 M00S00804.sxinit +++| THEN # PROCESS ATTACH ERROR # 00827 M00S00805.sxinit +++| BEGIN # ABORT # 00828 M00S00806.sxinit +++| MSG$LINE[0] = " ATTACH ERROR - BUDT FILE BUSY."; 00829 M00S00807.sxinit +++| IF PFP$STAT[0] NQ FBS 00830 M00S00808.sxinit +++| THEN # BUDT FILE NOT FOUND # 00831 M00S00809.sxinit +++| BEGIN # NOT FOUND # 00832 M00S00810.sxinit +++| MSG$LINE[0] = " ATTACH ERROR - BUDT FILE NOT FOUND."; 00833 M00S00811.sxinit +++| END # NOT FOUND # 00834 M00S00812.sxinit +++| 00835 M00S00813.sxinit +++| GOTO GETUDT1; 00836 M00S00814.sxinit +++| END # ABORT # 00837 M00S00815.sxinit +++| 00838 M00S00816.sxinit +++| BUFL = MAT$SPACE[MAT$ENTRY"TEMP$BUF"]; 00839 M00S00817.sxinit +++| FETL = MAT$SPACE[MAT$ENTRY"TEMP$FET"]; 00840 M00S00818.sxinit +++| ZSETFET(TFETADR,LFN,TBUFADR,BUFL,FETL); 00841 M00S00819.sxinit +++| READ(TFET,RCL); # READ BUDT WITH AUTO-RECALL # 00842 M00S00820.sxinit +++| 00843 M00S00821.sxinit +++|# 00844 M00S00822.sxinit +++|* READ BUDT FROM TEMPORARY BUFFER INTO UDT SPACE. 00845 M00S00823.sxinit +++|# 00846 M00S00824.sxinit +++| 00847 M00S00825.sxinit +++| P<UDT$WORD> = UDTCADR; 00848 M00S00826.sxinit +++| READW(TFET,UDT$WORD,1,STAT); 00849 M00S00827.sxinit +++| IF STAT NQ OK 00850 M00S00828.sxinit +++| THEN # READ COMPLETED WITH ERRORS # 00851 M00S00829.sxinit +++| BEGIN # ABORT # 00852 M00S00830.sxinit +++| MSG$LINE[0] = " BUDT READ ERROR."; 00853 M00S00831.sxinit +++| GOTO GETUDT1; 00854 M00S00832.sxinit +++| END # ABORT # 00855 M00S00833.sxinit +++| 00856 M00S00834.sxinit +++| IF UDT$LINE$CUN[0] GR MAXCTN 00857 M00S00835.sxinit +++| THEN # CONTROLLER TABLE TOO LARGE # 00858 M00S00836.sxinit +++| BEGIN # ABORT # 00859 M00S00837.sxinit +++| MSG$LINE[0] = " BUDT CONTROLLER ENTRY COUNT EXCEEDED."; 00860 M00S00838.sxinit +++| GOTO GETUDT1; 00861 M00S00839.sxinit +++| END # ABORT # 00862 M00S00840.sxinit +++|
Line S00841 Modification History | |
---|---|
M01 (Removed by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00863 M01S00841.sxinit2 ---| IF UDT$LINE$SMN[0] GR MAXSMUNIT
Line S00007 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00864 M01S00007.sxinit2 +++| IF UDT$LINE$SMN[0] GR MAXSM 00865 M00S00842.sxinit +++| THEN # SM TABLE TOO LARGE # 00866 M00S00843.sxinit +++| BEGIN # ABORT # 00867 M00S00844.sxinit +++| MSG$LINE[0] = " BUDT SM ENTRY COUNT EXCEEDED."; 00868 M00S00845.sxinit +++| GOTO GETUDT1; 00869 M00S00846.sxinit +++| END # ABORT # 00870 M00S00847.sxinit +++| 00871 M00S00848.sxinit +++| UDT$WORDCNT[0] = MAT$SPACE[MAT$ENTRY"UDT$CONT"] 00872 M00S00849.sxinit +++| + MAT$SPACE[MAT$ENTRY"UDT$SM"]; 00873 M00S00850.sxinit +++| 00874 M00S00851.sxinit +++| READW(TFET,UDT$CN,UDTCUL,STAT); # STORE CU TABLE # 00875 M00S00852.sxinit +++| IF STAT NQ OK 00876 M00S00853.sxinit +++| THEN # READ COMPLETED WITH ERRORS # 00877 M00S00854.sxinit +++| BEGIN # ABORT # 00878 M00S00855.sxinit +++| MSG$LINE[0] = " BUDT CONTROLLER TABLE READ ERROR."; 00879 M00S00856.sxinit +++| GOTO GETUDT1; 00880 M00S00857.sxinit +++| END # ABORT # 00881 M00S00858.sxinit +++| 00882 M00S00859.sxinit +++| READW(TFET,UDT$SMA,UDTSML,STAT); # STORE *SM* TABLE # 00883 M00S00860.sxinit +++| IF STAT NQ OK 00884 M00S00861.sxinit +++| THEN # READ COMPLETED WITH ERRORS # 00885 M00S00862.sxinit +++| BEGIN # ABORT # 00886 M00S00863.sxinit +++| MSG$LINE[0] = " BUDT SM TABLE READ ERROR."; 00887 M00S00864.sxinit +++| GOTO GETUDT1; 00888 M00S00865.sxinit +++| END # ABORT # 00889 M00S00866.sxinit +++| 00890 M00S00867.sxinit +++| RETERN(TFET,RCL); # RETURN BUDT WITH AUTO-RECALL # 00891 M00S00868.sxinit +++| RETERN(TFET,RCL); 00892 M00S00869.sxinit +++| 00893 M00S00870.sxinit +++|# 00894 M00S00871.sxinit +++|* INITIALIZE UDT CONTROLLER AND SM ENTRIES. 00895 M00S00872.sxinit +++|# 00896 M00S00873.sxinit +++|
Line S00874 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00897 M01S00874.sxinit3 ---| EQUSED = 0;
Line S00012 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00898 M01S00012.sxinit3 +++| SLOWFOR I = 1 STEP 1 UNTIL 9 00899 M01S00013.sxinit3 +++| DO # PRESET EST ORDINAL BIT MAP # 00900 M01S00014.sxinit3 +++| BEGIN # PRESET # 00901 M01S00015.sxinit3 +++| EQUSED[I] = 0; 00902 M01S00016.sxinit3 +++| END # PRESET # 00903 M00S00875.sxinit +++| 00904 M00S00876.sxinit +++| MAX$ACHN = 0; # PRESET ACTIVE CHANNEL COUNT # 00905 M00S00877.sxinit +++| SLOWFOR I = 1 STEP 1 WHILE UD$EXIST[I] AND I LQ MAXCTN 00906 M00S00878.sxinit +++| DO # PRESET CONTROLLER ENTRIES # 00907 M00S00879.sxinit +++| BEGIN # PRESET # 00908 M00S00880.sxinit +++| NUM = 1; 00909 M00S00881.sxinit +++| ESTNUM = UD$ESTO[I]; 00910 M00S00882.sxinit +++| RDEST(ESTB,NUM,ESTNUM); # READ EST ENTRY # 00911 M00S00883.sxinit +++| IF NUM NQ 1 00912 M00S00884.sxinit +++| THEN # ABORT ON READ ERROR # 00913 M00S00885.sxinit +++| BEGIN 00914 M00S00886.sxinit +++| MSG$LINE[0] = "EST READ ERROR."; 00915 M00S00887.sxinit +++| GOTO GETUDT1; 00916 M00S00888.sxinit +++| END 00917 M00S00889.sxinit +++| 00918 M00S00890.sxinit +++| IF EST$CONT[0] NQ CNTYPE # CONTROLLER TYPE MISMATCH # 00919 M00S00891.sxinit +++| OR EST$CNCT[0] NQ UD$CUDA[I] # CONNECT MISMATCH # 00920 M00S00892.sxinit +++| THEN # CONTROLLER ENTRY IS INCORRECT # 00921 M00S00893.sxinit +++| BEGIN # ABORT # 00922 M00S00894.sxinit +++| ESTORD = XCOD(UD$ESTO[I]); # SET EST ORDINAL IN MESSAGE # 00923 M00S00895.sxinit +++| VER$NUM[0] = C<6,4>ESTORD; 00924 M00S00896.sxinit +++| MESSAGE(VERMB,SYSUDF1); 00925 M00S00897.sxinit +++| FATALERR = TRUE; 00926 M00S00898.sxinit +++| RETURN; 00927 M00S00899.sxinit +++| END # ABORT # 00928 M00S00900.sxinit +++|
Line S00901 Modification History | |
---|---|
M01 (Removed by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00929 M01S00901.sxinit4 ---| UD$CUON[I] = NOT EST$OFF[0]; # MOVE CU STATUS #
Line S00006 Modification History | |
---|---|
M01 (Added by) | sxinit4 |
Seq # *Modification Id* Act ----------------------------+ 00930 M01S00006.sxinit4 +++| UD$CUON[I] = EST$STAT[0] EQ ONSTATUS # MOVE CU STATUS # 00931 M01S00007.sxinit4 +++| OR EST$STAT[0] EQ IDLESTATUS;
Line S00902 Modification History | |
---|---|
M01 (Removed by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00932 M01S00902.sxinit2 ---| UDTCHAN[0] = UD$CHANA[I]; # COPY UDT CHANNEL INFO # 00933 M01S00903.sxinit2 ---| UDTCHAN[1] = UD$CHANB[I]; 00934 M01S00904.sxinit2 ---| UDTCHAN[2] = UD$CHANC[I]; 00935 M01S00905.sxinit2 ---| UDTCHAN[3] = UD$CHAND[I];
Line S00008 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00936 M01S00008.sxinit2 +++| UDTCWORD[0] = UD$CHANA[I]; # COPY UDT CHANNEL INFO # 00937 M01S00009.sxinit2 +++| UDTCWORD[1] = UD$CHANB[I]; 00938 M01S00010.sxinit2 +++| UDTCWORD[2] = UD$CHANC[I]; 00939 M01S00011.sxinit2 +++| UDTCWORD[3] = UD$CHAND[I]; 00940 M00S00906.sxinit +++| TMPCCNT = 0; # PRESET TEMP CHANNEL COUNT # 00941 M00S00907.sxinit +++| SLOWFOR J = 0 STEP 1 UNTIL MAX$CH 00942 M00S00908.sxinit +++| DO # SCAN EST ENTRY FOR CHANNELS # 00943 M00S00909.sxinit +++| BEGIN # SCAN EST # 00944 M00S00910.sxinit +++| IF J EQ FIRSTCHAN # IN CASE CHANNEL 0 # 00945 M00S00911.sxinit +++| OR ESTCHAN(I,J) NQ 0 00946 M00S00912.sxinit +++| THEN # EST CHANNEL FOUND # 00947 M00S00913.sxinit +++| BEGIN # FOUND # 00948 M00S00914.sxinit +++| FOUND = FALSE; 00949 M00S00915.sxinit +++| SLOWFOR K = 0 STEP 1 UNTIL MAX$CH 00950 M00S00916.sxinit +++| DO # SCAN ARRAY FOR CHANNEL MATCH # 00951 M00S00917.sxinit +++| BEGIN # SCAN UDT # 00952 M00S00918.sxinit +++| IF UDTEX(I,K) NQ 0 # UDT CHANNEL FOUND # 00953 M00S00919.sxinit +++| AND ESTCHAN(I,J) EQ UDTCHAN[K] # CHANNELS MATCH # 00954 M00S00920.sxinit +++| THEN # MOVE CHANNEL STATUS TO UDT # 00955 M00S00921.sxinit +++| BEGIN # STATUS # 00956 M00S00922.sxinit +++| FOUND = TRUE;
Line S00923 Modification History | |
---|---|
M01 (Removed by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00957 M01S00923.sxinit2 ---| UDTSTAT[K] = 1 - ESTON(I,J); # TOGGLE SO ON IF SET # 00958 M00S00924.sxinit ---| MAX$ACHN = MAX$ACHN + UDTSTAT[K]; # COUNT CHANNELS # 00959 M00S00925.sxinit ---| TMPCCNT = TMPCCNT + 1;
Line S00012 Modification History | |
---|---|
M01 (Added by) | sxinit2 |
Seq # *Modification Id* Act ----------------------------+ 00960 M01S00012.sxinit2 +++| IF ESTON(J) EQ 1 00961 M01S00013.sxinit2 +++| THEN # CHANNEL OFF IN EST # 00962 M01S00014.sxinit2 +++| BEGIN # OFF # 00963 M01S00015.sxinit2 +++| UDTBSTAT[K] = FALSE; # TURN OFF CHANNEL IN UDT # 00964 M01S00016.sxinit2 +++| END # OFF # 00965 M01S00017.sxinit2 +++| 00966 M00S00926.sxinit +++| END # STATUS # 00967 M00S00927.sxinit +++| 00968 M00S00928.sxinit +++| END # SCAN UDT # 00969 M00S00929.sxinit +++| 00970 M00S00930.sxinit +++| IF NOT FOUND 00971 M00S00931.sxinit +++| THEN # CHANNEL MISMATCH # 00972 M00S00932.sxinit +++| BEGIN # ABORT # 00973 M00S00933.sxinit +++| GOTO GETUDT2; 00974 M00S00934.sxinit +++| END # ABORT # 00975 M00S00935.sxinit +++| 00976 M00S00936.sxinit +++| END # FOUND # 00977 M00S00937.sxinit +++| 00978 M00S00938.sxinit +++| END # SCAN EST # 00979 M00S00939.sxinit +++| 00980 M00S00940.sxinit +++| IF TMPCCNT NQ (UDTEX(I,0) + UDTEX(I,1) + 00981 M00S00941.sxinit +++| UDTEX(I,2) + UDTEX(I,3)) 00982 M00S00942.sxinit +++| THEN # CHANNEL MISMATCH # 00983 M00S00943.sxinit +++| BEGIN # ABORT # 00984 M00S00944.sxinit +++| GOTO GETUDT2; 00985 M00S00945.sxinit +++| END # ABORT # 00986 M00S00946.sxinit +++| 00987 M00S00947.sxinit +++| UD$CHANA$O[I] = UDTBSTAT[0]; # COPY CHANNEL STATUSES TO UDT # 00988 M00S00948.sxinit +++| UD$CHANB$O[I] = UDTBSTAT[1]; 00989 M00S00949.sxinit +++| UD$CHANC$O[I] = UDTBSTAT[2]; 00990 M00S00950.sxinit +++| UD$CHAND$O[I] = UDTBSTAT[3]; 00991 M00S00951.sxinit +++| P<UDT$MSG> = LOC(UD$MSG[I]); 00992 M00S00952.sxinit +++| MS$MSQN$CN[0] = I; # STORE CONTROLLER ORDINAL #
Line S00953 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00993 M01S00953.sxinit3 ---| B<UD$ESTO[I],1>EQUSED = 1;
Line S00017 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 00994 M01S00017.sxinit3 +++| BITMAPWORD = UD$ESTO[I]/60; 00995 M01S00018.sxinit3 +++| BITMAPPOS = UD$ESTO[I] - (BITMAPWORD * 60); 00996 M01S00019.sxinit3 +++| B<BITMAPPOS,1>EQUSED[BITMAPWORD] = 1; # NOTE ORD PROCESSED # 00997 M00S00954.sxinit +++| END # PRESET # 00998 M00S00955.sxinit +++| 00999 M00S00956.sxinit +++| SLOWFOR I= 1 STEP 1 UNTIL MAX$ACHN 01000 M00S00957.sxinit +++| DO 01001 M00S00958.sxinit +++| BEGIN 01002 M00S00959.sxinit +++| BST$AUTH[I] = TRUE; 01003 M00S00960.sxinit +++| END 01004 M00S00961.sxinit +++| 01005 M00S00962.sxinit +++|
Line S00963 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01006 M01S00963.sxinit3 ---| SLOWFOR I = 1 STEP 1 WHILE NUM EQ 1
Line S00020 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01007 M01S00020.sxinit3 +++| SLOWFOR BITMAPWORD = 0 STEP 1 WHILE NUM EQ 1 01008 M00S00964.sxinit +++| DO # FIND UNUSED M860 EST ENTRIES # 01009 M00S00965.sxinit +++| BEGIN # FIND #
Line S00966 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01010 M01S00966.sxinit3 ---| NUM = 1; 01011 M01S00967.sxinit3 ---| RDEST(ESTB,NUM,I);
Line S00021 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01012 M01S00021.sxinit3 +++| SLOWFOR BITMAPPOS = 0 STEP 1 UNTIL 59 01013 M01S00022.sxinit3 +++| DO # SCAN EST ORDINAL BIT MAP WORD # 01014 M01S00023.sxinit3 +++| BEGIN # WORD # 01015 M01S00024.sxinit3 +++| DESIREDORD = BITMAPPOS + (BITMAPWORD * 60); 01016 M01S00025.sxinit3 +++| IF DESIREDORD EQ 0 01017 M01S00026.sxinit3 +++| THEN # AVOID READING ENTIRE EST # 01018 M01S00027.sxinit3 +++| BEGIN # SKIP # 01019 M01S00028.sxinit3 +++| TEST BITMAPPOS; # ONLY READ INDIVIDUAL ENTRIES # 01020 M01S00029.sxinit3 +++| END # SKIP # 01021 M01S00030.sxinit3 +++| 01022 M01S00031.sxinit3 +++| NUM = 1; 01023 M01S00032.sxinit3 +++| RDEST(ESTB,NUM,DESIREDORD); 01024 M01S00033.sxinit3 +++| IF NUM NQ 1 01025 M01S00034.sxinit3 +++| THEN # EST ORDINAL NON-EXISTENT # 01026 M01S00035.sxinit3 +++| BEGIN # END # 01027 M01S00036.sxinit3 +++| TEST BITMAPWORD; # REACHED END OF EST # 01028 M01S00037.sxinit3 +++| END # END # 01029 M01S00038.sxinit3 +++| 01030 M00S00968.sxinit +++| IF EST$CONT[0] EQ CNTYPE
Line S00969 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01031 M01S00969.sxinit3 ---| AND B<I,1>EQUSED EQ 0
Line S00039 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01032 M01S00039.sxinit3 +++| AND B<BITMAPPOS,1>EQUSED[BITMAPWORD] EQ 0 01033 M00S00970.sxinit +++| THEN # UNPROCESSED ENTRY FOUND # 01034 M00S00971.sxinit +++| BEGIN # MESSAGE #
Line S00972 Modification History | |
---|---|
M01 (Removed by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01035 M01S00972.sxinit3 ---| ESTORD = XCOD(I); # SET EST ORDINAL IN MESSAGE #
Line S00040 Modification History | |
---|---|
M01 (Added by) | sxinit3 |
Seq # *Modification Id* Act ----------------------------+ 01036 M01S00040.sxinit3 +++| ESTORD = XCOD(DESIREDORD); # SET EST ORDINAL IN MESSAGE # 01037 M00S00973.sxinit +++| MIS$NUM[0] = C<6,4>ESTORD; 01038 M00S00974.sxinit +++| MESSAGE(MISMB,SYSUDF1); 01039 M00S00975.sxinit +++| END # MESSAGE # 01040 M00S00976.sxinit +++| 01041 M01S00041.sxinit3 +++| END # WORD # 01042 M01S00042.sxinit3 +++| 01043 M00S00977.sxinit +++| END # FIND # 01044 M00S00978.sxinit +++| 01045 M00S00979.sxinit +++| SLOWFOR I = 1 STEP 1 WHILE SM$EXIST[I] AND I LQ MAXSMUNIT 01046 M00S00980.sxinit +++| DO # PRESET SM ENTRIES # 01047 M00S00981.sxinit +++| BEGIN # PRESET # 01048 M00S00982.sxinit +++| P<UDT$MSG> = LOC(D0$MSG[I]); 01049 M00S00983.sxinit +++| MS$MSQN$CN[0] = I; # STORE SM ORDINAL # 01050 M00S00984.sxinit +++| MS$MSQN$D0[0] = TRUE; # SET DRD 0 FLAG # 01051 M00S00985.sxinit +++| P<UDT$MSG> = LOC(D1$MSG[I]); 01052 M00S00986.sxinit +++| MS$MSQN$CN[0] = I; # STORE SM ORDINAL # 01053 M00S00987.sxinit +++| MS$MSQN$D1[0] = TRUE; # SET DRD 1 FLAG # 01054 M00S00988.sxinit +++| END # PRESET # 01055 M00S00989.sxinit +++| 01056 M00S00990.sxinit +++|# 01057 M00S00991.sxinit +++|* INITIALIZE MESSAGE READ AND WRITE BUFFER FETS. 01058 M00S00992.sxinit +++|# 01059 M00S00993.sxinit +++| 01060 M00S00994.sxinit +++| P<FETMWB> = MWRBADR + 1; # ALLOW FOR READ BUFFER PTR # 01061 M00S00995.sxinit +++| P<FETMRB> = MRDBADR; 01062 M00S00996.sxinit +++| SLOWFOR I = 1 STEP 1 WHILE UD$EXIST[I] AND (I LQ MAXCTN) 01063 M00S00997.sxinit +++| DO # CHECK UDT CHANNELS # 01064 M00S00998.sxinit +++| BEGIN # CHECK # 01065 M00S00999.sxinit +++| CHT$WORD[0] = UD$CHANA[I]; # PRESET TEMPORARY CHANNEL ARRAY # 01066 M00S01000.sxinit +++| CHT$WORD[1] = UD$CHANB[I]; 01067 M00S01001.sxinit +++| CHT$WORD[2] = UD$CHANC[I]; 01068 M00S01002.sxinit +++| CHT$WORD[3] = UD$CHAND[I]; 01069 M00S01003.sxinit +++| SLOWFOR J = 0 STEP 1 WHILE J LQ MAX$CIF 01070 M00S01004.sxinit +++| DO # FIND ON CHANNELS # 01071 M00S01005.sxinit +++| BEGIN # FIND # 01072 M00S01006.sxinit +++| IF CHT$ON[J] 01073 M00S01007.sxinit +++| AND (CHT$CHAN[J] NQ 0 OR J EQ 0) 01074 M00S01008.sxinit +++| THEN # INITIALIZE ASSOCIATED MSG FETS # 01075 M00S01009.sxinit +++| BEGIN # INITIALIZE # 01076 M00S01010.sxinit +++| IF P<FETMWB> GQ (MWRBADR + MAT$SPACE[MAT$ENTRY"MW$BUFS"]) 01077 M00S01011.sxinit +++| THEN # MORE CHANNELS THAN MSG FETS # 01078 M00S01012.sxinit +++| BEGIN # ABORT # 01079 M00S01013.sxinit +++| MSG$LINE[0] = " MORE CHANNELS THAN MSG FETS."; 01080 M00S01014.sxinit +++| GOTO GETUDT1; 01081 M00S01015.sxinit +++| END # ABORT # 01082 M00S01016.sxinit +++| 01083 M00S01017.sxinit +++| P<FETMRA> = P<FETMWB> - 1; 01084 M00S01018.sxinit +++| FRA$MRBADR[0] = P<FETMRB>; # MESSAGE READ BUFFER ADDRESS # 01085 M00S01019.sxinit +++| 01086 M00S01020.sxinit +++| FMW$FIRST[0] = P<FETMWB> + SFMWL; # PRESET WRITE BUFFER # 01087 M00S01021.sxinit +++| FMW$IN[0] = FMW$FIRST[0]; 01088 M00S01022.sxinit +++| FMW$OUT[0] = FMW$FIRST[0]; 01089 M00S01023.sxinit +++| FMW$CHAN[0] = CHT$CHAN[J]; 01090 M00S01024.sxinit +++| FMW$CHON[0] = TRUE; 01091 M00S01025.sxinit +++| FMW$LIMIT[0] = FMW$FIRST[0] + MWBUFL; 01092 M00S01026.sxinit +++| 01093 M00S01027.sxinit +++| FMR$CU[0] = I; # PRESET READ BUFFER # 01094 M00S01028.sxinit +++| FMR$FIRST[0] = P<FETMRB> + SFMRL; 01095 M00S01029.sxinit +++| FMR$IN[0] = FMR$FIRST[0]; 01096 M00S01030.sxinit +++| FMR$OUT[0] = FMR$FIRST[0]; 01097 M00S01031.sxinit +++| FMR$CHAN[0] = CHT$CHAN[J]; 01098 M00S01032.sxinit +++| FMR$CIF[0] = J; 01099 M00S01033.sxinit +++| FMR$LIMIT[0] = FMR$FIRST[0] + MRBUFL; 01100 M00S01034.sxinit +++| P<KWORD> = LOC(FMR$KWORDS[0]); # PRESET K-DISPLAY WORDS # 01101 M00S01035.sxinit +++| KW$COMP[0] = TRUE; 01102 M00S01036.sxinit +++| 01103 M00S01037.sxinit +++| P<MWBTMP> = LOC(UD$CAMF[I]); 01104 M00S01038.sxinit +++| MWB$ADDR[J] = P<FETMWB>; # SET FET ADDRESS IN CU ORDINAL # 01105 M00S01039.sxinit +++| P<FETMWB> = P<FETMWB> + SFMWL + MWBUFL + 1; # NEXT FETS # 01106 M00S01040.sxinit +++| P<FETMRB> = P<FETMRB> + SFMRL + MRBUFL; 01107 M00S01041.sxinit +++| END # INITIALIZE # 01108 M00S01042.sxinit +++| 01109 M00S01043.sxinit +++| END # FIND # 01110 M00S01044.sxinit +++| 01111 M00S01045.sxinit +++| END # CHECK # 01112 M00S01046.sxinit +++| 01113 M00S01047.sxinit +++| RETURN; 01114 M00S01048.sxinit +++| 01115 M00S01049.sxinit +++|GETUDT2: 01116 M00S01050.sxinit +++| MSG$LINE[0] = " EST/UDT CHANNEL MISMATCH."; 01117 M00S01051.sxinit +++| 01118 M00S01052.sxinit +++|GETUDT1: 01119 M00S01053.sxinit +++| MESSAGE(MSGMB,SYSUDF1); # ABORT PROCESSING # 01120 M00S01054.sxinit +++| FATALERR = TRUE; 01121 M00S01055.sxinit +++| RETURN; 01122 M00S01056.sxinit +++| END # GETUDT # 01123 M00S01057.sxinit +++| 01124 M00S01058.sxinit +++| TERM 01125 M00S01059.sxinit +++|PROC INITDAM; 01126 M00S01060.sxinit +++|# TITLE INITDAM - INITIALIZE *TDAM* INTERFACE. # 01127 M00S01061.sxinit +++| BEGIN # INITDAM # 01128 M00S01062.sxinit +++| 01129 M00S01063.sxinit +++|# 01130 M00S01064.sxinit +++|*** INITDAM - INITAILIZE *TDAM* INTERFACE. 01131 M00S01065.sxinit +++|* 01132 M00S01066.sxinit +++|* THIS ROUTINE WILL INITIALIZE THE *TDAM* INTERFACE 01133 M00S01067.sxinit +++|* AND ISSUE AN EVENT TO SWAP IN THE JOBS WAITING FOR *MSAS*. 01134 M00S01068.sxinit +++| 01135 M00S01069.sxinit +++|* PROC INITDAM. 01136 M00S01070.sxinit +++|* 01137 M00S01071.sxinit +++|* ENTRY *SSEXEC* HAS BEEN INITIALIZED AND READY TO BE 01138 M00S01072.sxinit +++|* CALLED BY WAITING JOBS. 01139 M00S01073.sxinit +++|* 01140 M00S01074.sxinit +++|* EXIT *TDAM* INTERFACE HAS BEEN INITIALIZED AND 01141 M00S01075.sxinit +++|* EVENT TO SWAP IN WAITING JOBS HAS BEEN ISSUED. 01142 M00S01076.sxinit +++|# 01143 M00S01077.sxinit +++| 01144 M00S01078.sxinit +++|# 01145 M00S01079.sxinit +++|**** PROC INITDAM - XREF LIST BEGIN. 01146 M00S01080.sxinit +++|# 01147 M00S01081.sxinit +++| 01148 M00S01082.sxinit +++| XREF 01149 M00S01083.sxinit +++| BEGIN 01150 M00S01084.sxinit +++| PROC EESET; # ENTERS EVENT IN EVENT TABLE # 01151 M00S01085.sxinit +++| PROC SYSTEM; # CALLS *SYSTEM* MACRO # 01152 M00S01086.sxinit +++| PROC ZFILL; # ZERO FILLS BUFFER # 01153 M00S01087.sxinit +++| END 01154 M00S01088.sxinit +++| 01155 M00S01089.sxinit +++|# 01156 M00S01090.sxinit +++|**** PROC INITDAM - XREF LIST END. 01157 M00S01091.sxinit +++|# 01158 M00S01092.sxinit +++| 01159 M00S01093.sxinit +++| DEF NO$EQUIP #0#; # NO EQUIPMENT VALUE # 01160 M00S01094.sxinit +++| 01161 M00S01095.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01162 M00S01096.sxinit +++|*CALL COMBFAS 01163 M00S01097.sxinit +++|*CALL,COMBCDD 01164 M00S01098.sxinit +++|*CALL COMBTDM 01165 M00S01099.sxinit +++|*CALL COMBUDT 01166 M00S01100.sxinit +++|*CALL COMXCTF 01167 M00S01101.sxinit +++|*CALL COMXINT 01168 M00S01102.sxinit +++|*CALL,COMXJCA 01169 M00S01103.sxinit +++| 01170 M00S01104.sxinit +++| ITEM I U; # INDEX # 01171 M00S01105.sxinit +++| 01172 M00S01106.sxinit +++| 01173 M00S01107.sxinit +++| 01174 M00S01108.sxinit +++| 01175 M00S01109.sxinit +++| 01176 M00S01110.sxinit +++|# 01177 M00S01111.sxinit +++|* INITIALIZE *TDAM* INTERFACE AND ISSUE EVENT TO SWAP IN JOBS 01178 M00S01112.sxinit +++|* WAITING FOR *MSAS*. 01179 M00S01113.sxinit +++|# 01180 M00S01114.sxinit +++| 01181 M00S01115.sxinit +++| P<TDAM> = LOC(RA$TDAM); 01182 M00S01116.sxinit +++| ZFILL(TDAM,TDAMLEN); 01183 M00S01117.sxinit +++| 01184 M00S01118.sxinit +++| EESET$EQ[0] = NO$EQUIP; # USE NO EQUIPMENT VALUE # 01185 M00S01119.sxinit +++| EESET(EVENT); # SET EVENT INTO EVENT TABLE # 01186 M00S01120.sxinit +++| 01187 M00S01121.sxinit +++| 01188 M00S01122.sxinit +++|# 01189 M00S01123.sxinit +++|* PRESET ALL PP CALL BLOCK ENTRIES. 01190 M00S01124.sxinit +++|# 01191 M00S01125.sxinit +++| 01192 M00S01126.sxinit +++| SLOWFOR I = 1 STEP 1 UNTIL PPCBTSIZE 01193 M00S01127.sxinit +++| DO # SET PARAMETER WORD ADDRESS # 01194 M00S01128.sxinit +++| BEGIN # SET ADDRESS # 01195 M00S01129.sxinit +++| PPU$1SS[I] = "1SS"; 01196 M00S01130.sxinit +++| PPU$PADDR[I] = LOC(PPU$WORD1[I]); 01197 M00S01131.sxinit +++| PPU$DRCL[I] = LOC(DRVRRECALL); 01198 M00S01132.sxinit +++| END # SET ADDRESS # 01199 M00S01133.sxinit +++| 01200 M00S01134.sxinit +++| PPU$FC[1] = IRTDAM; 01201 M00S01135.sxinit +++| PPCBENCNT = PPCBENCNT+1; # INCREMENT PPCALL COUNT # 01202 M00S01136.sxinit +++| SPC$SPC[0] = "SPC"; 01203 M00S01137.sxinit +++| SPC$ADDR[0] = LOC(PPTMP); 01204 M00S01138.sxinit +++| PPT$WORD0[0] = PPU$WORD0[1]; 01205 M00S01139.sxinit +++| SLOWFOR I = 0 WHILE PPT$WORD0[0] NQ 0 01206 M00S01140.sxinit +++| DO 01207 M00S01141.sxinit +++| BEGIN 01208 M00S01142.sxinit +++| SYSTEM(SPC,RCL); 01209 M00S01143.sxinit +++| END 01210 M00S01144.sxinit +++| 01211 M00S01145.sxinit +++| END # INITDAM # 01212 M00S01146.sxinit +++| 01213 M00S01147.sxinit +++| TERM 01214 M00S01148.sxinit +++|PROC INITFAM; 01215 M00S01149.sxinit +++|# TITLE INITFAM - INITIALIZES SUBFAMILY PARAMETERS. # 01216 M00S01150.sxinit +++| 01217 M00S01151.sxinit +++| BEGIN # INITFAM # 01218 M00S01152.sxinit +++| 01219 M00S01153.sxinit +++|# 01220 M00S01154.sxinit +++|** INITFAM - INITIALIZES SUBFAMILY PARAMETERS. 01221 M00S01155.sxinit +++|* 01222 M00S01156.sxinit +++|* PROC INITFAM. 01223 M00S01157.sxinit +++|# 01224 M00S01158.sxinit +++| 01225 M00S01159.sxinit +++|# 01226 M00S01160.sxinit +++|**** PROC INITFAM - XREF LIST BEGIN. 01227 M00S01161.sxinit +++|# 01228 M00S01162.sxinit +++| 01229 M00S01163.sxinit +++| XREF 01230 M00S01164.sxinit +++| BEGIN 01231 M00S01165.sxinit +++| PROC ABORT; # CALLS *ABORT* MACRO # 01232 M00S01166.sxinit +++| PROC BZFILL; # BLANK OR ZERO FILLS # 01233 M00S01167.sxinit +++| PROC GETFAM; # GETS TABLE OF FAMILIES # 01234 M00S01168.sxinit +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO # 01235 M00S01169.sxinit +++| PROC PFD; # PERMANENT FILE REQUEST DELAYS # 01236 M00S01170.sxinit +++| PROC RETERN; # RETURNS FILE # 01237 M00S01171.sxinit +++| PROC RMVBLNK; # REMOVE MULTIPLE BLANKS # 01238 M00S01172.sxinit +++| PROC SETPFP; # SETS USER INDEX AND FAMILY # 01239 M00S01173.sxinit +++| FUNC XCOD I; # CHANGES INTEGER TO DISPLAY # 01240 M00S01174.sxinit +++| PROC XWOD; # CHANGES INTEGER TO OCTAL # 01241 M00S01175.sxinit +++| PROC ZSETFET; # SETS UP *FET* # 01242 M00S01176.sxinit +++| END 01243 M00S01177.sxinit +++| 01244 M00S01178.sxinit +++|# 01245 M00S01179.sxinit +++|**** PROC INITFAM - XREF LIST END. 01246 M00S01180.sxinit +++|# 01247 M00S01181.sxinit +++| 01248 M00S01182.sxinit +++| DEF FILLSIZE #7#; # FILL SIZE FOR *BZFILL* # 01249 M00S01183.sxinit +++| DEF NUM$MST #4#; # NUMBER OF *MSA-S* # 01250 M00S01184.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01251 M00S01185.sxinit +++|*CALL COMBFAS 01252 M00S01186.sxinit +++|*CALL COMBBZF 01253 M00S01187.sxinit +++|*CALL COMBPFP 01254 M00S01188.sxinit +++|*CALL COMBPFS 01255 M00S01189.sxinit +++|*CALL COMBUDT 01256 M00S01190.sxinit +++|*CALL COMXCTF 01257 M00S01191.sxinit +++|*CALL COMXINT 01258 M00S01192.sxinit +++|*CALL COMXMSC 01259 M00S01193.sxinit +++|*CALL COMSPFM 01260 M00S01194.sxinit +++| 01261 M00S01195.sxinit +++| 01262 M00S01196.sxinit +++| ITEM ATLEASTONE B; # AT LEAST ONE FOUND FLAG # 01263 M00S01197.sxinit +++| ITEM BADNUM U; # BAD FILE INDEX # 01264 M00S01198.sxinit +++| ITEM BLKFILL S:TYPFILL = S"BFILL"; # BLANK FILL # 01265 M00S01199.sxinit +++| ITEM BLKFOUND B; # BLANK FOUND FLAG # 01266 M00S01200.sxinit +++| ITEM FOUND B; # ITEM FOUND FLAG # 01267 M00S01201.sxinit +++| ITEM I U; # INDEX # 01268 M00S01202.sxinit +++| ITEM J U; # INDEX # 01269 M00S01203.sxinit +++| ITEM K U; # INDEX # 01270 M00S01204.sxinit +++| ITEM MSGTEMP C(8); # ITEM FOR *BZFILL* # 01271 M00S01205.sxinit +++| ITEM NUM$FAM U; # NUMBER OF *GETFAM* ENTRIES # 01272 M00S01206.sxinit +++| ITEM UI U; # USER INDEX # 01273 M00S01207.sxinit +++| 01274 M00S01208.sxinit +++| 01275 M00S01209.sxinit +++|# 01276 M00S01210.sxinit +++|* ARRAY TO DISPLAY BAD FILE INFORMATION. 01277 M00S01211.sxinit +++|# 01278 M00S01212.sxinit +++| 01279 M00S01213.sxinit +++| ARRAY BADFILE[0:MAXSF] P(3); 01280 M00S01214.sxinit +++| BEGIN 01281 M00S01215.sxinit +++| ITEM BAD$PFN C(00,00,07); # FILE NAME # 01282 M00S01216.sxinit +++| ITEM BAD$FAM C(00,42,08); # FAMILY NAME # 01283 M00S01217.sxinit +++| ITEM BAD$INDEX C(01,30,06); # USER INDEX # 01284 M00S01218.sxinit +++| END 01285 M00S01219.sxinit +++| 01286 M00S01220.sxinit +++|# 01287 M00S01221.sxinit +++|* ARRAY TO USER INDEX DISPLAY CODE. 01288 M00S01222.sxinit +++|# 01289 M00S01223.sxinit +++| 01290 M00S01224.sxinit +++| ARRAY DIS[0:0] P(2); 01291 M00S01225.sxinit +++| BEGIN 01292 M00S01226.sxinit +++| ITEM DIS$UI C(01,24,06); # USER INDEX IN DISPLAY CODE # 01293 M00S01227.sxinit +++| END 01294 M00S01228.sxinit +++| 01295 M00S01229.sxinit +++|# 01296 M00S01230.sxinit +++|* ARRAY TO HOLD *SFMCAT* FILE NAME. 01297 M00S01231.sxinit +++|# 01298 M00S01232.sxinit +++| 01299 M00S01233.sxinit +++| ARRAY CAT[0:0]; 01300 M00S01234.sxinit +++| BEGIN # CAT # 01301 M00S01235.sxinit +++| ITEM CAT$PFN C(00,00,07) = ["SFMCAT "]; # FILE NAME # 01302 M00S01236.sxinit +++| ITEM CAT$UNID C(00,36,01); # UNIQUE IDENTIFIER # 01303 M00S01237.sxinit +++| END # CAT # 01304 M00S01238.sxinit +++| 01305 M00S01239.sxinit +++| 01306 M00S01240.sxinit +++|# 01307 M00S01241.sxinit +++|* MESSAGE BUFFER. 01308 M00S01242.sxinit +++|# 01309 M00S01243.sxinit +++| 01310 M00S01244.sxinit +++| ARRAY MSGBUF[0:0] P(5); 01311 M00S01245.sxinit +++| BEGIN # ARRAY MSGBUF # 01312 M00S01246.sxinit +++| ITEM MSG$LINE C(00,00,40); # MESSAGE LINE # 01313 M00S01247.sxinit +++| ITEM MSG$RZRO C(04,00,12); # ZERO BYE TERMINATOR # 01314 M00S01248.sxinit +++| END # ARRAY MSGBUF # 01315 M00S01249.sxinit +++| 01316 M00S01250.sxinit +++| ARRAY SC$FET [0:0] P(SFETL); 01317 M00S01251.sxinit +++| ; 01318 M00S01252.sxinit +++| CONTROL EJECT; 01319 M00S01253.sxinit +++| 01320 M00S01254.sxinit +++|# 01321 M00S01255.sxinit +++|* FUNCTION 2 - ANALYZE FAMILIES. 01322 M00S01256.sxinit +++|* 01323 M00S01257.sxinit +++|* FIND NUMBER AND NAMES OF FAMILIES WITH ALL SUBFAMILY CATALOGS. 01324 M00S01258.sxinit +++|# 01325 M00S01259.sxinit +++| 01326 M00S01260.sxinit +++| NFAM = 1; 01327 M00S01261.sxinit +++| 01328 M00S01262.sxinit +++| SSID = ATAS; 01329 M00S01263.sxinit +++| GETFAM(FAMT,NUM$FAM,LINK[0],DEFAULTORD,SSID); 01330 M00S01264.sxinit +++| DEF$FAM = FAM$NAME[DEFAULTORD]; 01331 M00S01265.sxinit +++| 01332 M00S01266.sxinit +++| 01333 M00S01267.sxinit +++|# 01334 M00S01268.sxinit +++|* ATTEMPT TO ATTACH EACH *SFMCAT* FILE FOR EACH FAMILY. 01335 M00S01269.sxinit +++|* THE FOLLOWING ACTIONS WILL BE TAKEN DEPENDING ON THE NUMBER 01336 M00S01270.sxinit +++|* OF FILES ATTACHED 01337 M00S01271.sxinit +++|* 01338 M00S01272.sxinit +++|* 1) IF NONE, DO NOTHING, 01339 M00S01273.sxinit +++|* 2) IF EIGHT, SAVE THE FAMILY NAME, 01340 M00S01274.sxinit +++|* 3) IF SOME BUT NOT EIGHT, ISSUE ERROR MESSAGE. 01341 M00S01275.sxinit +++|# 01342 M00S01276.sxinit +++| 01343 M00S01277.sxinit +++| SLOWFOR I = 1 STEP 1 UNTIL NUM$FAM 01344 M00S01278.sxinit +++| DO 01345 M00S01279.sxinit +++| BEGIN # CHECK ALL FAMILIES FOR EIGHT CATALOGS # 01346 M00S01280.sxinit +++| 01347 M00S01281.sxinit +++| ATLEASTONE = FALSE; # AT LEAST ONE FOUND FLAG # 01348 M00S01282.sxinit +++| FOUND = TRUE; # CATALOG FOUND FLAG # 01349 M00S01283.sxinit +++| BADNUM = 0; # BAD FILE INDEX # 01350 M00S01284.sxinit +++| 01351 M00S01285.sxinit +++| SLOWFOR J = 0 STEP 1 UNTIL MAXSF 01352 M00S01286.sxinit +++| DO 01353 M00S01287.sxinit +++| BEGIN # CHECK CATALOG FOR EACH SUBFAMILY # 01354 M00S01288.sxinit +++| 01355 M00S01289.sxinit +++| PFP$UI = DEF$UI + J; # SET USER INDEX FOR *SETPFP* # 01356 M00S01290.sxinit +++| PFP$FAM = FAM$NAME[I]; # SET FAMILY NAME FOR *SETPFP* # 01357 M00S01291.sxinit +++| PFP$FG1 = TRUE; # SET FAMILY BIT FOR *SETPFP* # 01358 M00S01292.sxinit +++| PFP$FG4 = TRUE; # SET INDEX BIT FOR *SETPFP* # 01359 M00S01293.sxinit +++| SETPFP(PFP); # SET USER INDEX AND FAMILY # 01360 M00S01294.sxinit +++| 01361 M00S01295.sxinit +++|# 01362 M00S01296.sxinit +++|* IF UNABLE TO DO A *SETPFP* ON A FAMILY, IGNORE CATALOG VALIDATION 01363 M00S01297.sxinit +++|* AND CONTINUE WITH THE NEXT FAMILY. 01364 M00S01298.sxinit +++|# 01365 M00S01299.sxinit +++| 01366 M00S01300.sxinit +++| IF PFP$STAT NQ 0 01367 M00S01301.sxinit +++| THEN 01368 M00S01302.sxinit +++| BEGIN 01369 M00S01303.sxinit +++| TEST I; # NEXT FAMILY # 01370 M00S01304.sxinit +++| END 01371 M00S01305.sxinit +++| 01372 M00S01306.sxinit +++| CAT$UNID[0] = XCOD(J); # CHANGE INDEX TO DISPLAY CODE # 01373 M00S01307.sxinit +++| PFD("ATTACH",CAT$PFN,0,"RC", ## 01374 M00S01308.sxinit +++| PFSTAT,"NA",0,"UP",0,0); 01375 M00S01309.sxinit +++| IF PFSTAT EQ 0 OR PFSTAT EQ FBS 01376 M00S01310.sxinit +++| THEN 01377 M00S01311.sxinit +++| BEGIN # IF ATTACH SUCCESSFUL # 01378 M00S01312.sxinit +++| ATLEASTONE = TRUE; 01379 M00S01313.sxinit +++| END # IF ATTACH SUCCESSFUL # 01380 M00S01314.sxinit +++| 01381 M00S01315.sxinit +++| ELSE 01382 M00S01316.sxinit +++| BEGIN # ERROR OTHER THAN FILE BUSY OR UTILITY ACTIVE # 01383 M00S01317.sxinit +++| UI = DEF$UI + J; 01384 M00S01318.sxinit +++| XWOD(UI,DIS); 01385 M00S01319.sxinit +++| 01386 M00S01320.sxinit +++| BAD$PFN[BADNUM] = CAT$PFN[0]; # SAVE FILE NAME # 01387 M00S01321.sxinit +++| MSGTEMP = FAM$NAME[I]; 01388 M00S01322.sxinit +++| BZFILL(MSGTEMP,BLKFILL,FILLSIZE); 01389 M00S01323.sxinit +++| BAD$FAM[BADNUM] = MSGTEMP; # SAVE FAMILY NAME # 01390 M00S01324.sxinit +++| BAD$INDEX[BADNUM] = DIS$UI; # SAVE USER INDEX # 01391 M00S01325.sxinit +++| 01392 M00S01326.sxinit +++| BADNUM = BADNUM + 1; # INCREMENT COUNT # 01393 M00S01327.sxinit +++| FOUND = FALSE; # CATALOG NOT ATTACHED # 01394 M00S01328.sxinit +++| END # ERROR OTHER THAN FILE BUSY OR UTILITY ACTIVE # 01395 M00S01329.sxinit +++| 01396 M00S01330.sxinit +++| ZSETFET(LOC(SC$FET[0]),CAT$PFN,0,0,SFETL); 01397 M00S01331.sxinit +++| RETERN(SC$FET[0],RCL); 01398 M00S01332.sxinit +++| 01399 M00S01333.sxinit +++| END # CHECK CATALOG FOR EACH SUBFAMILY # 01400 M00S01334.sxinit +++| 01401 M00S01335.sxinit +++| IF FOUND 01402 M00S01336.sxinit +++| THEN 01403 M00S01337.sxinit +++| BEGIN # IF EIGHT CATALOGS EXIST # 01404 M00S01338.sxinit +++| NAMEFAM[NFAM] = FAM$NAME[I]; # SAVE FAMILY NAME # 01405 M00S01339.sxinit +++| NFAM = NFAM + 1; # INCREMENT FAMILY COUNT # 01406 M00S01340.sxinit +++| END # IF EIGHT CATALOGS EXIST # 01407 M00S01341.sxinit +++| 01408 M00S01342.sxinit +++| ELSE 01409 M00S01343.sxinit +++| BEGIN # CHECK FOR AT LEAST ONE SUCCESSFUL ATTACH # 01410 M00S01344.sxinit +++| IF ATLEASTONE 01411 M00S01345.sxinit +++| THEN 01412 M00S01346.sxinit +++| BEGIN # OUTPUT MESSAGE FOR EACH BAD FILE # 01413 M00S01347.sxinit +++| SLOWFOR J = 0 STEP 1 WHILE J LS BADNUM 01414 M00S01348.sxinit +++| DO 01415 M00S01349.sxinit +++| BEGIN # FOR EACH BAD FILE # 01416 M00S01350.sxinit +++| MSG$LINE[0] = " ATTACH ERROR ON SFM SUBFAMILY CATALOG."; 01417 M00S01351.sxinit +++| MESSAGE(MSGBUF,UDFL1); 01418 M00S01352.sxinit +++| 01419 M00S01353.sxinit +++| MSGPFN[0] = BAD$PFN[J]; 01420 M00S01354.sxinit +++| MSGFAM[0] = BAD$FAM[J]; 01421 M00S01355.sxinit +++| MSGUI[0] = BAD$INDEX[J]; 01422 M00S01356.sxinit +++| 01423 M00S01357.sxinit +++| MSG$LINE[0] = MSG$TEXT[0]; 01424 M00S01358.sxinit +++| RMVBLNK(MSGBUF[0],40); 01425 M00S01359.sxinit +++| MESSAGE(MSGBUF,UDFL1); 01426 M00S01360.sxinit +++| END # FOR EACH BAD FILE # 01427 M00S01361.sxinit +++| 01428 M00S01362.sxinit +++| END # OUTPUT MESSAGE FOR EACH BAD FILE # 01429 M00S01363.sxinit +++| 01430 M00S01364.sxinit +++| END # CHECK FOR AT LEAST ONE SUCCESSFUL ATTACH # 01431 M00S01365.sxinit +++| 01432 M00S01366.sxinit +++| END # CHECK ALL FAMILIES FOR EIGHT CATALOGS # 01433 M00S01367.sxinit +++| 01434 M00S01368.sxinit +++| NFAM = NFAM - 1; # SET FAMILY COUNT # 01435 M00S01369.sxinit +++| 01436 M00S01370.sxinit +++|# 01437 M00S01371.sxinit +++|* SET THE FATAL ERROR FLAG IF THERE ARE NO FAMILIES WITH 01438 M00S01372.sxinit +++|* EIGHT *SFM* CATALOGS. 01439 M00S01373.sxinit +++|# 01440 M00S01374.sxinit +++| 01441 M00S01375.sxinit +++| IF NFAM EQ 0 01442 M00S01376.sxinit +++| THEN 01443 M00S01377.sxinit +++| BEGIN # NO FAMILY WITH 8 CATALOGS FOUND # 01444 M00S01378.sxinit +++| FATALERR = TRUE; 01445 M00S01379.sxinit +++| 01446 M00S01380.sxinit +++| MSG$LINE[0] = " INITIALIZATION PROBLEMS -"; 01447 M00S01381.sxinit +++| MESSAGE(MSGBUF[0],UDFL1); 01448 M00S01382.sxinit +++| 01449 M00S01383.sxinit +++| MSG$LINE[0] = " NO FAMILY WITH 8 CATALOGS FOUND."; 01450 M00S01384.sxinit +++| MESSAGE(MSGBUF[0],UDFL1); 01451 M00S01385.sxinit +++| END # NO FAMILY WITH 8 CATALOGS FOUND # 01452 M00S01386.sxinit +++| 01453 M00S01387.sxinit +++| END # INITFAM # 01454 M00S01388.sxinit +++| 01455 M00S01389.sxinit +++| TERM 01456 M00S01390.sxinit +++|PROC INITFLG; 01457 M00S01391.sxinit +++|# TITLE INITFLG - INITIALIZES ASSORTED FLAGS AND COUNTERS. # 01458 M00S01392.sxinit +++| 01459 M00S01393.sxinit +++| BEGIN # INITFLG # 01460 M00S01394.sxinit +++| 01461 M00S01395.sxinit +++|# 01462 M00S01396.sxinit +++|** INITFLG - INITIALIZES ASSORTED FLAGS AND COUNTERS. 01463 M00S01397.sxinit +++|* 01464 M00S01398.sxinit +++|* THIS PROCEDURE WILL INITIALIZE ASSORTED FLAGS AND COUNTERS. 01465 M00S01399.sxinit +++|* 01466 M00S01400.sxinit +++|* PROC INITFLG. 01467 M00S01401.sxinit +++|* 01468 M00S01402.sxinit +++|* EXIT FLAGS HAVE BEEN INITIALIZED. 01469 M00S01403.sxinit +++|# 01470 M00S01404.sxinit +++| 01471 M00S01405.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01472 M00S01406.sxinit +++|*CALL COMBFAS 01473 M00S01407.sxinit +++|*CALL COMBCMD 01474 M00S01408.sxinit +++|*CALL COMBLBL 01475 M00S01409.sxinit +++|*CALL COMBMAT 01476 M00S01410.sxinit +++|*CALL COMBUCR 01477 M00S01411.sxinit +++|*CALL COMBUDT 01478 M00S01412.sxinit +++|*CALL COMXBST 01479 M00S01413.sxinit +++|*CALL COMXCTF 01480 M00S01414.sxinit +++|*CALL COMXINT 01481 M00S01415.sxinit +++| CONTROL EJECT; 01482 M00S01416.sxinit +++| 01483 M00S01417.sxinit +++|# 01484 M00S01418.sxinit +++|* INITIALIZE FLAGS. 01485 M00S01419.sxinit +++|# 01486 M00S01420.sxinit +++| 01487 M00S01421.sxinit +++| CURESERVED = FALSE; # CONTROLLER RESERVED FLAG # 01488 M00S01422.sxinit +++| DRVRRECALL = FALSE; # DRIVER RECALL FLAG # 01489 M00S01423.sxinit +++| DRYUP = FALSE; # DRY-UP FLAG # 01490 M00S01424.sxinit +++| EXEC = TRUE; # MSAS EXECUTIVE FLAG # 01491 M00S01425.sxinit +++| GLBINTLK = FALSE; # GLOBAL CATALOG INTERLOCK FLAG # 01492 M00S01426.sxinit +++| GLBSTFL = TRUE; # GLOBAL STAGE FLAG # 01493 M00S01427.sxinit +++| GLBDSFL = TRUE; # GLOBAL DESTAGE FLAG # 01494 M00S01428.sxinit +++| GLBUCPSW = FALSE; # GLOBAL *UCP* SWAPPED FLAG # 01495 M00S01429.sxinit +++| LABELBUSY = FALSE; # LABEL BUFFER BUSY FLAG # 01496 M00S01430.sxinit +++| TERMINATE = FALSE; # TERMINATE FLAG # 01497 M00S01431.sxinit +++| 01498 M00S01432.sxinit +++|# 01499 M00S01433.sxinit +++|* INITIALIZE COUNTS. 01500 M00S01434.sxinit +++|# 01501 M00S01435.sxinit +++| 01502 M00S01436.sxinit +++| SMCNT = NSM; # NUMBER OF *SM-S* # 01503 M00S01437.sxinit +++| FAMCNT = NFAM; # NUMBER OF FAMILIES # 01504 M00S01438.sxinit +++| PPCBENCNT = 0; # CALL BLOCK ACTIVE ENTRY COUNT # 01505 M00S01439.sxinit +++| 01506 M00S01440.sxinit +++|# 01507 M00S01441.sxinit +++|* INITIALIZE THRESHOLDS. 01508 M00S01442.sxinit +++|# 01509 M00S01443.sxinit +++| 01510 M00S01444.sxinit +++| 01511 M00S01445.sxinit +++|# 01512 M00S01446.sxinit +++|* INITIALIZE DELAY EXPIRATION TIMES. 01513 M00S01447.sxinit +++|# 01514 M00S01448.sxinit +++| 01515 M00S01449.sxinit +++| ITLK$EXPIR = 0; # RECLAIM CATALOG INTERLOCKS # 01516 M00S01450.sxinit +++| MINQ$EXPIR = 0; # MINIMUM QUEUE DELAY EXPIRATION # 01517 M00S01451.sxinit +++| KDIS$EXPIR = 0; # K-DISPLAY REFRESH # 01518 M00S01452.sxinit +++| 01519 M00S01453.sxinit +++|# 01520 M00S01454.sxinit +++|* INITIALIZE ASSORTED POINTERS. 01521 M00S01455.sxinit +++|# 01522 M00S01456.sxinit +++| 01523 M00S01457.sxinit +++| SFBLKPTR = LOC(SFPARMBLK); 01524 M00S01458.sxinit +++| END # INITFLG # 01525 M00S01459.sxinit +++| 01526 M00S01460.sxinit +++| TERM 01527 M00S01461.sxinit +++|PROC INITLZR; 01528 M00S01462.sxinit +++|# TITLE INITLZR - SEQUENCES *SSEXEC-S* INITIALIZATION STEPS. # 01529 M00S01463.sxinit +++| BEGIN # INITLZR # 01530 M00S01464.sxinit +++| 01531 M00S01465.sxinit +++|# 01532 M00S01466.sxinit +++|*** INITLZR - SEQUENCES *SSEXEC-S* INITIALIZATION STEPS. 01533 M00S01467.sxinit +++|* 01534 M00S01468.sxinit +++|* THIS ROUTINE WILL MAKE CALLS TO SUBROUTINES AND MACROES TO 01535 M00S01469.sxinit +++|* PERFORM ALL NON-HARDWARE INITIALIZATION STEPS FOR *SSEXEC*. 01536 M00S01470.sxinit +++|* 01537 M00S01471.sxinit +++|* PROC INITLZR. 01538 M00S01472.sxinit +++|* 01539 M00S01473.sxinit +++|* ENTRY CALLED FROM *SSEXEC*. 01540 M00S01474.sxinit +++|* 01541 M00S01475.sxinit +++|* EXIT PARAMETERS HAVE BEEN PROCESSED AND ALL NON-HARDWARE 01542 M00S01476.sxinit +++|* INITIALIZATION STEPS HAVE BEEN EXECUTED OR THE FATAL 01543 M00S01477.sxinit +++|* ERROR FLAG HAS BEEN SET. 01544 M00S01478.sxinit +++|* 01545 M00S01479.sxinit +++|* NOTES THIS INITIALIZATION ROUTINE MAKES PROCEDURE CALLS TO 01546 M00S01480.sxinit +++|* DO THE FOLLOWING: 01547 M00S01481.sxinit +++|* 01548 M00S01482.sxinit +++|* 1) GET THE RUN TIME PARAMETERS, 01549 M00S01483.sxinit +++|* 2) INITIALIZE SUBFAMILY PARAMETERS, 01550 M00S01484.sxinit +++|* 3) INITIALIZE ASSORTED FLAGS, 01551 M00S01485.sxinit +++|* 4) INITIALIZE ASSORTED TABLES, 01552 M00S01486.sxinit +++|* 5) INITIALIZE FOR MULTI-MAINFRAMES, 01553 M00S01487.sxinit +++|* 6) ADVISE SYSTEM OF KEYBOARD BUFFER, 01554 M00S01488.sxinit +++|* 7) REQUEST ACTIVE SUBSYSTEM STATUS, 01555 M00S01489.sxinit +++|* 8) INITIALIZE UDT INTERFACE, 01556 M00S01490.sxinit +++|* 9) INITIALIZE *TDAM* INTERFACE. 01557 M00S01491.sxinit +++|# 01558 M00S01492.sxinit +++| 01559 M00S01493.sxinit +++|# 01560 M00S01494.sxinit +++|**** PROC INITLZR - XREF LIST BEGIN. 01561 M00S01495.sxinit +++|# 01562 M00S01496.sxinit +++| 01563 M00S01497.sxinit +++| XREF 01564 M00S01498.sxinit +++| BEGIN 01565 M00S01499.sxinit +++| PROC CALLSS; # ISSUES REQUEST TO SUBSYSTEM # 01566 M00S01500.sxinit +++| PROC GETMI; # GETS MACHINE INFORMATION # 01567 M00S01501.sxinit +++| PROC GETRTP; # GETS RUN TIME PARAMETERS # 01568 M00S01502.sxinit +++| PROC GETSPS; # GET SYSTEM ORIGIN PRIVILEDGES # 01569 M00S01503.sxinit +++| PROC GETUDT; # GETS UNIT DEVICE TABLE # 01570 M00S01504.sxinit +++| PROC INITDAM; # INITIALIZES *TDAM* INTERFACE # 01571 M00S01505.sxinit +++| PROC INITFAM; # INITIALIZE SUBFAMILY PARAMETERS 01572 M00S01506.sxinit +++| # 01573 M00S01507.sxinit +++| PROC INITFLG; # INITIALIZES FLAGS # 01574 M00S01508.sxinit +++| PROC OPENCAT; # OPEN CATALOGS AND MAPS # 01575 M00S01509.sxinit +++| PROC INITSRP; # INITIALIZES FOR *MMF* MODE # 01576 M00S01510.sxinit +++| PROC INITTAB; # INITIALIZES ASSORTED TABLES # 01577 M00S01511.sxinit +++| PROC KINIT; # INITIALIZES *K* DISPLAY # 01578 M00S01512.sxinit +++| PROC RTIME; # INTERFACE TO *RTIME* MACRO # 01579 M00S01513.sxinit +++| END 01580 M00S01514.sxinit +++| 01581 M00S01515.sxinit +++|# 01582 M00S01516.sxinit +++|**** PROC INITLZR - XREF LIST END. 01583 M00S01517.sxinit +++|# 01584 M00S01518.sxinit +++| 01585 M00S01519.sxinit +++| DEF NOPARAM #-1#; # NO PARAMETER SPECIFIED # 01586 M00S01520.sxinit +++| DEF SECOND #1#; # SWITCH FOR SECOND BUFFER # 01587 M00S01521.sxinit +++| DEF SS$SYS #0#; # REQUEST SUBSYSTEM STATUS CODE # 01588 M00S01522.sxinit +++| DEF RSLEN #1#; # RETURN USER STATUS # 01589 M00S01523.sxinit +++| 01590 M00S01524.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01591 M00S01525.sxinit +++|*CALL COMBFAS 01592 M00S01526.sxinit +++|*CALL COMBCPR 01593 M00S01527.sxinit +++|*CALL COMBUCR 01594 M00S01528.sxinit +++|*CALL COMXCTF 01595 M00S01529.sxinit +++|*CALL COMXEXP 01596 M00S01530.sxinit +++|*CALL COMXINT 01597 M00S01531.sxinit +++|*CALL,COMXJCA 01598 M00S01532.sxinit +++| ITEM FAMSRP C(7); # FAMILY FOR *INITSRP* # 01599 M00S01533.sxinit +++| ITEM MFINDEX U; # MACHINE INDEX FOR *INITSRP* # 01600 M00S01534.sxinit +++| ITEM PBLOCK U = 0; # PARAMETER BLOCK # 01601 M00S01535.sxinit +++| ITEM SS U; # SUBSYSTEM QUEUE PRIORITY # 01602 M00S01536.sxinit +++| 01603 M00S01537.sxinit +++| 01604 M00S01538.sxinit +++| ARRAY SPSSTAT [0:0] S(RSLEN); 01605 M00S01539.sxinit +++| BEGIN 01606 M00S01540.sxinit +++| ITEM SPS$STATUS U(00,48,12); # RETURN STATUS # 01607 M00S01541.sxinit +++| END 01608 M00S01542.sxinit +++| 01609 M00S01543.sxinit +++| CONTROL EJECT; 01610 M00S01544.sxinit +++| 01611 M00S01545.sxinit +++|# 01612 M00S01546.sxinit +++|* READ AND SAVE RTIME. 01613 M00S01547.sxinit +++|# 01614 M00S01548.sxinit +++| 01615 M00S01549.sxinit +++| RTIME(RTIMESTAT); 01616 M00S01550.sxinit +++| FIRSTRTIME = RTIMSECS[0]; 01617 M00S01551.sxinit +++| 01618 M00S01552.sxinit +++|# 01619 M00S01553.sxinit +++|* CHECK SYSTEM ORIGIN PRIVILEDGES. 01620 M00S01554.sxinit +++|# 01621 M00S01555.sxinit +++| 01622 M00S01556.sxinit +++| 01623 M00S01557.sxinit +++| GETSPS(SPSSTAT); 01624 M00S01558.sxinit +++| IF SPS$STATUS NQ 0 01625 M00S01559.sxinit +++| THEN 01626 M00S01560.sxinit +++| BEGIN 01627 M00S01561.sxinit +++| FATALERR = TRUE; 01628 M00S01562.sxinit +++| END 01629 M00S01563.sxinit +++| 01630 M00S01564.sxinit +++|# 01631 M00S01565.sxinit +++|* SET UP *RA* POINTER. 01632 M00S01566.sxinit +++|# 01633 M00S01567.sxinit +++| 01634 M00S01568.sxinit +++| P<RA$AREA> = 0; 01635 M00S01569.sxinit +++| 01636 M00S01570.sxinit +++|# 01637 M00S01571.sxinit +++|* CALL *GETRTP* TO PROCESS RUN TIME PARAMETERS. 01638 M00S01572.sxinit +++|# 01639 M00S01573.sxinit +++| 01640 M00S01574.sxinit +++| GETRTP; 01641 M00S01575.sxinit +++| 01642 M00S01576.sxinit +++| IF FATALERR 01643 M00S01577.sxinit +++| THEN 01644 M00S01578.sxinit +++| BEGIN # IF FATAL ERROR # 01645 M00S01579.sxinit +++| RETURN; 01646 M00S01580.sxinit +++| END # IF FATAL ERROR # 01647 M00S01581.sxinit +++| 01648 M00S01582.sxinit +++|# 01649 M00S01583.sxinit +++|* CALL *INITFAM* TO INITIALIZE SUBFAMILY PARAMETERS. 01650 M00S01584.sxinit +++|# 01651 M00S01585.sxinit +++| 01652 M00S01586.sxinit +++| INITFAM; 01653 M00S01587.sxinit +++| 01654 M00S01588.sxinit +++| IF FATALERR 01655 M00S01589.sxinit +++| THEN 01656 M00S01590.sxinit +++| BEGIN # IF FATAL ERROR # 01657 M00S01591.sxinit +++| RETURN; 01658 M00S01592.sxinit +++| END # IF FATAL ERROR # 01659 M00S01593.sxinit +++| 01660 M00S01594.sxinit +++|# 01661 M00S01595.sxinit +++|* CALL *INITFLG* TO INITIALIZE ASSORTED FLAGS. 01662 M00S01596.sxinit +++|# 01663 M00S01597.sxinit +++| 01664 M00S01598.sxinit +++| INITFLG; 01665 M00S01599.sxinit +++| 01666 M00S01600.sxinit +++|# 01667 M00S01601.sxinit +++|* CALL *INITTAB* TO INITIALIZE ASSORTED TABLES. 01668 M00S01602.sxinit +++|# 01669 M00S01603.sxinit +++| 01670 M00S01604.sxinit +++| INITTAB; 01671 M00S01605.sxinit +++| 01672 M00S01606.sxinit +++| IF FATALERR 01673 M00S01607.sxinit +++| THEN 01674 M00S01608.sxinit +++| BEGIN 01675 M00S01609.sxinit +++| RETURN; 01676 M00S01610.sxinit +++| END 01677 M00S01611.sxinit +++| 01678 M00S01612.sxinit +++|# 01679 M00S01613.sxinit +++|* CALL *INITSRP* TO INITIALIZE FOR MULTI-MAINFRAMES. 01680 M00S01614.sxinit +++|# 01681 M00S01615.sxinit +++| 01682 M00S01616.sxinit +++| GETMI(CMRINFO,EVENT); 01683 M00S01617.sxinit +++| 01684 M00S01618.sxinit +++| EESET$EVT = EESET$ASXE; # MSAS SET UP # 01685 M00S01619.sxinit +++| EESET$ASXE = 0; 01686 M00S01620.sxinit +++| 01687 M00S01621.sxinit +++| IF ARG$SC EQ NOPARAM 01688 M00S01622.sxinit +++| THEN 01689 M00S01623.sxinit +++| BEGIN # *S* NOT SPECIFIED # 01690 M00S01624.sxinit +++| FAMSRP = FAM$NAME[LINK$ORD[0]]; 01691 M00S01625.sxinit +++| MFINDEX = CMR$MFID[0]; 01692 M00S01626.sxinit +++| END # *S* NOT SPECIFIED # 01693 M00S01627.sxinit +++| 01694 M00S01628.sxinit +++| ELSE 01695 M00S01629.sxinit +++| BEGIN # *S* PARAMETER SPECIFIED # 01696 M00S01630.sxinit +++| FAMSRP = DEF$FAM; 01697 M00S01631.sxinit +++| MFINDEX = ARG$S; 01698 M00S01632.sxinit +++| END # *S* PARAMTER SPECIFIED # 01699 M00S01633.sxinit +++| 01700 M00S01634.sxinit +++| INITSRP(CMR$MID[0],MFINDEX,FAMSRP); 01701 M00S01635.sxinit +++| 01702 M00S01636.sxinit +++|# 01703 M00S01637.sxinit +++|* CALL *KINIT* TO INITIALIZE *K* DISPLAY. 01704 M00S01638.sxinit +++|# 01705 M00S01639.sxinit +++| 01706 M00S01640.sxinit +++| KINIT; 01707 M00S01641.sxinit +++| 01708 M00S01642.sxinit +++|# 01709 M00S01643.sxinit +++|* CALL *CALLSS* MACRO TO REQUEST ACTIVE SUBSYSTEM STATUS AND 01710 M00S01644.sxinit +++|* INITIALIZE RA.SSC AND *UCPPARMSW* FOR INCOMING *UCP* REQUESTS. 01711 M00S01645.sxinit +++|* *UPCPARMSW* INDICATES WHICH BUFFER THE NEXT *UCP* REQUEST 01712 M00S01646.sxinit +++|* WILL USE. 01713 M00S01647.sxinit +++|# 01714 M00S01648.sxinit +++| 01715 M00S01649.sxinit +++| SS = SS$SYS; # REQUEST ACTIVE STATUS CODE # 01716 M00S01650.sxinit +++| CALLSS(SS,PBLOCK,NRCL); # REQUEST ACTIVE STATUS # 01717 M00S01651.sxinit +++| 01718 M00S01652.sxinit +++| RA$SSWWRD[0] = 0; 01719 M00S01653.sxinit +++| RA$SSCINLK = FALSE; 01720 M00S01654.sxinit +++| RA$SSCPP = TRUE; 01721 M00S01655.sxinit +++| RA$SSCXP = 0; 01722 M00S01656.sxinit +++| RA$SSCVF = TRUE; 01723 M00S01657.sxinit +++| RA$SSCLP = CPRLEN + 2; 01724 M00S01658.sxinit +++| RA$SSCAP = LOC(PRAMUCP); # SET *UCP* PARAMETER ADDRESS # 01725 M00S01659.sxinit +++| RA$SSPN = "SSEXEC"; 01726 M00S01660.sxinit +++| RA$SSCODE = SSID; 01727 M00S01661.sxinit +++| UCPPARMSW = SECOND; # SET NEXT BUFFER SWITCH # 01728 M00S01662.sxinit +++| 01729 M00S01663.sxinit +++|# 01730 M00S01664.sxinit +++|* CALL *GETUDT* TO INITIALIZE UDT INTERFACE. 01731 M00S01665.sxinit +++|# 01732 M00S01666.sxinit +++| 01733 M00S01667.sxinit +++| GETUDT; 01734 M00S01668.sxinit +++| 01735 M00S01669.sxinit +++| IF FATALERR 01736 M00S01670.sxinit +++| THEN 01737 M00S01671.sxinit +++| BEGIN # IF FATAL ERROR # 01738 M00S01672.sxinit +++| RETURN; 01739 M00S01673.sxinit +++| END # IF FATAL ERROR # 01740 M00S01674.sxinit +++| 01741 M00S01675.sxinit +++|# 01742 M00S01676.sxinit +++|* CALL OPENCAT TO INITIALIZE THE OCT AND OMT TABLES AND 01743 M00S01677.sxinit +++|* TO FIND ANY DESCREPENCIES IN THE AST. 01744 M00S01678.sxinit +++|# 01745 M00S01679.sxinit +++| OPENCAT; 01746 M00S01680.sxinit +++| 01747 M00S01681.sxinit +++|# 01748 M00S01682.sxinit +++|* INITIALIZE *TDAM* INTERFACE AND ISSUE EVENT TO SWAP IN JOBS 01749 M00S01683.sxinit +++|* WAITING FOR *MSAS*. 01750 M00S01684.sxinit +++|# 01751 M00S01685.sxinit +++| 01752 M00S01686.sxinit +++| INITDAM; 01753 M00S01687.sxinit +++| 01754 M00S01688.sxinit +++| END # INITLZR # 01755 M00S01689.sxinit +++| 01756 M00S01690.sxinit +++| TERM 01757 M00S01691.sxinit +++|PROC INITSRP((MID),(MIDX),(LINKFAM)); 01758 M00S01692.sxinit +++|# TITLE INITSRP - INITIALIZE SLAVE REQUEST PROCESSOR. # 01759 M00S01693.sxinit +++| 01760 M00S01694.sxinit +++| BEGIN # INITSRP # 01761 M00S01695.sxinit +++| 01762 M00S01696.sxinit +++|# 01763 M00S01697.sxinit +++|** INITSRP - INITIALIZE THE SLAVE REQUEST PROCESSOR. 01764 M00S01698.sxinit +++|* 01765 M00S01699.sxinit +++|* *INITSRP* INITIALIZES THE *SSEXEC* FOR MULTIMAINFRAME 01766 M00S01700.sxinit +++|* PROCESSING. IT WILL INITIALIZE THE *MTOS* FILE WHICH IS USED TO 01767 M00S01701.sxinit +++|* COMMUNICATE WITH EACH *SLVEXEC*. IT WILL ALSO ATTACH IN 01768 M00S01702.sxinit +++|* READ-ALLOW-MODIFY MODE THE *STOM* FILES FROM ALL POSSIBLE SLAVE 01769 M00S01703.sxinit +++|* MAINFRAMES SO STAGING REQUESTS FROM *SLVEXEC* PROGRAMS CAN BE 01770 M00S01704.sxinit +++|* ACCEPTED AND PROCESSED. 01771 M00S01705.sxinit +++|* 01772 M00S01706.sxinit +++|* PROC INITSRP((MID),(MIDX),(LINKFAM)) 01773 M00S01707.sxinit +++|* 01774 M00S01708.sxinit +++|* ENTRY (MID) = 2 CHARACTER ID OF THE MASTER MAINFRAME. 01775 M00S01709.sxinit +++|* (MIDX) = MACHINE INDEX (1-4) OF THE MASTER MAINFRAME. 01776 M00S01710.sxinit +++|* (LINKFAM) = NAME OF THE FAMILY ON WHICH THE 01777 M00S01711.sxinit +++|* COMMUNICATION FILES RESIDE, OR ARE TO 01778 M00S01712.sxinit +++|* RESIDE. 01779 M00S01713.sxinit +++|* 01780 M00S01714.sxinit +++|* EXIT THE VARIABLES *STOM$EXPIR* AND *MTOS$EXPIR* (IN 01781 M00S01715.sxinit +++|* *COMXCTF*) ARE INITIALIZED TO INDICATE THE TIMES WHEN 01782 M00S01716.sxinit +++|* THE *STOM* FILES SHOULD BE MONITORED AND THE *MTOS* 01783 M00S01717.sxinit +++|* FILE SHOULD BE UPDATED, RESPECTIVELY. IF THE 01784 M00S01718.sxinit +++|* *SSEXEC* IS TO RUN IN SINGLE MAINFRAME MODE, THESE 01785 M00S01719.sxinit +++|* TIMES ARE SET TO THE LARGEST POSSIBLE VALUE. 01786 M00S01720.sxinit +++|* 01787 M00S01721.sxinit +++|* NOTES THE *SSEXEC* WILL RUN IN SINGLE MAINFRAME MODE IF ANY 01788 M00S01722.sxinit +++|* OF THE FOLLOWING CONDITIONS ARE MET. 01789 M00S01723.sxinit +++|* 1) THE MAINFRAME IS NOT IN MULTIMAINFRAME 01790 M00S01724.sxinit +++|* MODE. 01791 M00S01725.sxinit +++|* 2) THE *SETPFP* REQUEST FAILS. 01792 M00S01726.sxinit +++|* 3) THE *MTOS* FILE EXISTS, BUT CANNOT BE 01793 M00S01727.sxinit +++|* ATTACHED IN MODIFY MODE. 01794 M00S01728.sxinit +++|* 4) THE *MTOS* FILE DOES NOT EXIST, BUT 01795 M00S01729.sxinit +++|* CANNOT BE DEFINED. 01796 M00S01730.sxinit +++|* 5) NO VALID SLAVE MAINFRAMES CAN BE 01797 M00S01731.sxinit +++|* IDENTIFIED. 01798 M00S01732.sxinit +++|* 01799 M00S01733.sxinit +++|* ANOTHER MAINFRAME WILL NOT BE RECOGNIZED AS A VALID 01800 M00S01734.sxinit +++|* SLAVE MAINFRAME IF ANY OF THE FOLLOWING IS TRUE. 01801 M00S01735.sxinit +++|* 1) THE *STOM* FILE CANNOT BE ATTACHED IN 01802 M00S01736.sxinit +++|* READ-ALLOW-MODIFY MODE. 01803 M00S01737.sxinit +++|* 01804 M00S01738.sxinit +++|* 2) THE LENGTH OF THE *STOM* FILE INDICATES 01805 M00S01739.sxinit +++|* THAT THE *SLVEXEC* IS WORKING WITH A 01806 M00S01740.sxinit +++|* DIFFERENT SET OF INSTALLATION 01807 M00S01741.sxinit +++|* PARAMETERS. 01808 M00S01742.sxinit +++|* 01809 M00S01743.sxinit +++|* MESSAGES 01810 M00S01744.sxinit +++|* * EXEC MMF INITIALIZATION OK.* 01811 M00S01745.sxinit +++|* AN INFORMATIVE MESSAGE NOTING THAT *SSEXEC* 01812 M00S01746.sxinit +++|* IS READY TO RUN IN MULTIMAINFRAME MODE. 01813 M00S01747.sxinit +++|* 01814 M00S01748.sxinit +++|* * EXEC MMF INITIALIZATION FAILED -* 01815 M00S01749.sxinit +++|* * - ALL SLAVES OMITTED.* -OR- 01816 M00S01750.sxinit +++|* * - ATTACH MTOS FAILED.* -OR- 01817 M00S01751.sxinit +++|* * - DEFINE MTOS FAILED.* -OR- 01818 M00S01752.sxinit +++|* * - MTOS FILE BUSY.* -OR- 01819 M00S01753.sxinit +++|* * - SETPFP PROBLEM.* 01820 M00S01754.sxinit +++|* A MESSAGE INDICATING THAT THE *SSEXEC* PROGRAM 01821 M00S01755.sxinit +++|* WILL NOT RUN IN MULTIFRAME MODE FOR THE REASON 01822 M00S01756.sxinit +++|* NOTED ON THE SECOND LINE. 01823 M00S01757.sxinit +++|* 01824 M00S01758.sxinit +++|* * EXEC IN SINGLE MAINFRAME MODE.* 01825 M00S01759.sxinit +++|* AN INFORMATIVE MESSAGE INDICATING THAT THE 01826 M00S01760.sxinit +++|* *SSEXEC* PROGRAM IS RUNNING IN A SINGLE 01827 M00S01761.sxinit +++|* MAINFRAME CONFIGURATION. 01828 M00S01762.sxinit +++|* 01829 M00S01763.sxinit +++|* * EXEC - SLAVE N XXXX.* 01830 M00S01764.sxinit +++|* XXXX = ACTIVE/IDLE. 01831 M00S01765.sxinit +++|* AN INFORMATIVE MESSAGE INDICATING THAT *SSEXEC* 01832 M00S01766.sxinit +++|* IS READY TO COMMUNICATE WITH THE *SSSLV* 01833 M00S01767.sxinit +++|* PROGRAM WHICH IS RUNNING ON MAINFRAME *N*. 01834 M00S01768.sxinit +++|* 01835 M00S01769.sxinit +++|* * EXEC - SLAVE N OMITTED -* 01836 M00S01770.sxinit +++|* * - NO STOM FILE.* -OR- 01837 M00S01771.sxinit +++|* * - STOM FILE LENGTH PROBLEM.* 01838 M00S01772.sxinit +++|* A MESSAGE INDICATING THAT *SSEXEC* WILL NOT 01839 M00S01773.sxinit +++|* COMMUNICATE WITH AN *SSSLV* PROGRAM, IF ANY, ON 01840 M00S01774.sxinit +++|* MAINFRAME *N* FOR THE REASON NOTED IN THE 01841 M00S01775.sxinit +++|* SECOND LINE. 01842 M00S01776.sxinit +++|* 01843 M00S01777.sxinit +++|# 01844 M00S01778.sxinit +++| 01845 M00S01779.sxinit +++| 01846 M00S01780.sxinit +++| ITEM MID C(2); # MACHINE ID OF MASTER MF # 01847 M00S01781.sxinit +++| ITEM MIDX U; # INDEX (1-4) OF MASTER MF # 01848 M00S01782.sxinit +++| ITEM LINKFAM C(7); # NAME OF LINK FAMILY # 01849 M00S01783.sxinit +++| 01850 M00S01784.sxinit +++|# 01851 M00S01785.sxinit +++|**** PROC INITSRP - XREF LIST BEGIN. 01852 M00S01786.sxinit +++|# 01853 M00S01787.sxinit +++| 01854 M00S01788.sxinit +++| XREF 01855 M00S01789.sxinit +++| BEGIN 01856 M00S01790.sxinit +++| PROC MESSAGE; # ISSUES MESSAGE MACRO # 01857 M00S01791.sxinit +++| PROC PDATE; # ISSUE PDATE MACRO # 01858 M00S01792.sxinit +++| PROC PFD; # PERMANENT FILE REQUEST DELAYS # 01859 M00S01793.sxinit +++| PROC READ; # READ FILE # 01860 M00S01794.sxinit +++| PROC READW; # READ LINE # 01861 M00S01795.sxinit +++| PROC REWIND; # REWIND FILE # 01862 M00S01796.sxinit +++| PROC RETERN; # RETURN FILE # 01863 M00S01797.sxinit +++| PROC RTIME; # ISSUE RTIME MACRO # 01864 M00S01798.sxinit +++| PROC SETPFP; # ISSUE SETPFP MACRO # 01865 M00S01799.sxinit +++| PROC WRITER; # WRITE FILE # 01866 M00S01800.sxinit +++| FUNC XCOD C(10); # INTEGER TO DISPLAY # 01867 M00S01801.sxinit +++| PROC ZFILL; # ZERO FILL AN ARRAY # 01868 M00S01802.sxinit +++| PROC ZSETFET; # INITIALIZE *FET* # 01869 M00S01803.sxinit +++| END 01870 M00S01804.sxinit +++| 01871 M00S01805.sxinit +++|# 01872 M00S01806.sxinit +++|**** PROC INITSRP - XREF LIST END. 01873 M00S01807.sxinit +++|# 01874 M00S01808.sxinit +++| 01875 M00S01809.sxinit +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01876 M00S01810.sxinit +++| 01877 M00S01811.sxinit +++| 01878 M00S01812.sxinit +++|*CALL,COMBFAS 01879 M00S01813.sxinit +++|*CALL,COMBFET 01880 M00S01814.sxinit +++|*CALL,COMBPFP 01881 M00S01815.sxinit +++|*CALL COMBPFS 01882 M00S01816.sxinit +++|*CALL,COMXCTF 01883 M00S01817.sxinit +++|*CALL COMXINT 01884 M00S01818.sxinit +++|*CALL,COMXIPR 01885 M00S01819.sxinit +++|*CALL,COMXMMF 01886 M00S01820.sxinit +++|*CALL,COMSPFM 01887 M00S01821.sxinit +++| 01888 M00S01822.sxinit +++| 01889 M00S01823.sxinit +++| 01890 M00S01824.sxinit +++| ARRAY MMFSTAT [0:0] S(4); 01891 M00S01825.sxinit +++| BEGIN 01892 M00S01826.sxinit +++| ITEM MMF$TEXT C(00,00,38) # INITIALIZATION STATUS # 01893 M00S01827.sxinit +++| =[" EXEC MMF INITIALIZATION STATUS"]; 01894 M00S01828.sxinit +++| ITEM MMF$STAT C(02,30,09); # OK/FAILED - # 01895 M00S01829.sxinit +++| ITEM MMF$END U(03,48,12) =[0]; # END OF LINE # 01896 M00S01830.sxinit +++| END 01897 M00S01831.sxinit +++| 01898 M00S01832.sxinit +++| 01899 M00S01833.sxinit +++| ARRAY RBBUF [0:0] S(RBSIZE);; # SCRATCH BUFFER # 01900 M00S01834.sxinit +++| 01901 M00S01835.sxinit +++| 01902 M00S01836.sxinit +++| 01903 M00S01837.sxinit +++| ITEM PFNAME C(7); # PERMANENT FILE NAME # 01904 M00S01838.sxinit +++| ITEM RB U; # INDEX TO A REQUEST BLOCK # 01905 M00S01839.sxinit +++| ITEM STAT U; # SCRATCH STATUS WORD # 01906 M00S01840.sxinit +++| ITEM STATM S:EXECSTAT; # STATUS OF MMF INITIALIZATION # 01907 M00S01841.sxinit +++| ITEM STATS S:EXECSTAT; # STATUS OF A SLAVE # 01908 M00S01842.sxinit +++| ITEM THISSLV U; # SCRATCH WORD # 01909 M00S01843.sxinit +++| 01910 M00S01844.sxinit +++| CONTROL EJECT; 01911 M00S01845.sxinit +++| 01912 M00S01846.sxinit +++|# 01913 M00S01847.sxinit +++|* INITIALIZE VARIOUS ITEMS AND POINTERS. 01914 M00S01848.sxinit +++|# 01915 M00S01849.sxinit +++| 01916 M00S01850.sxinit +++| STATM = S"INITPROB"; 01917 M00S01851.sxinit +++| L$STOM = (NUMRB + 1) * RBSIZE; 01918 M00S01852.sxinit +++| L$MTOSH = (MAXSLV + 1) * 3; 01919 M00S01853.sxinit +++| L$MTOS = L$MTOSH + NUMRB * NUMSLV; 01920 M00S01854.sxinit +++| P<MTOSHEAD> = LOC(MTOS$BUF); 01921 M00S01855.sxinit +++| P<MTOSM> = LOC(MTOB$FET); 01922 M00S01856.sxinit +++| P<STOMMBUF> = LOC(STOM$BUF); 01923 M00S01857.sxinit +++| STOMBUFL = STOM$BFL; 01924 M00S01858.sxinit +++| 01925 M00S01859.sxinit +++| ZSETFET(LOC(MTOSM),MTOSMLFN,LOC(MTOSHEAD),L$MTOS + 1,SFETL); 01926 M00S01860.sxinit +++| 01927 M00S01861.sxinit +++| IF MIDX EQ 0 01928 M00S01862.sxinit +++| THEN # SINGLE MAINFRAME MODE # 01929 M00S01863.sxinit +++| BEGIN 01930 M00S01864.sxinit +++| STATM = S"SMF"; 01931 M00S01865.sxinit +++| GOTO INITMASTER; 01932 M00S01866.sxinit +++| END 01933 M00S01867.sxinit +++| 01934 M00S01868.sxinit +++|# 01935 M00S01869.sxinit +++|* ISSUE A *SETPFP* SO THE COMMUNICATION FILES 01936 M00S01870.sxinit +++|* CAN BE ATTACHED. 01937 M00S01871.sxinit +++|# 01938 M00S01872.sxinit +++| 01939 M00S01873.sxinit +++| PFP$WRD0[0] = 0; 01940 M00S01874.sxinit +++| PFP$FAM[0] = LINKFAM; 01941 M00S01875.sxinit +++| PFP$FG1[0] = TRUE; # CHANGE FAMILY # 01942 M00S01876.sxinit +++| PFP$FG4[0] = TRUE; # CHANGE USER INDEX # 01943 M00S01877.sxinit +++| PFP$UI[0] = DEF$UI; 01944 M00S01878.sxinit +++| SETPFP(PFP); 01945 M00S01879.sxinit +++| IF PFP$STAT[0] NQ 0 01946 M00S01880.sxinit +++| THEN 01947 M00S01881.sxinit +++| BEGIN 01948 M00S01882.sxinit +++| MMFD$PROB[0] = "SETPFP PROBLEM."; 01949 M00S01883.sxinit +++| GOTO INITMASTER; 01950 M00S01884.sxinit +++| END 01951 M00S01885.sxinit +++| 01952 M00S01886.sxinit +++|# 01953 M00S01887.sxinit +++|* ATTACH THE *MTOS* FILE IN MODIFY MODE, 01954 M00S01888.sxinit +++|* AND READ IT TO THE *MTOS* BUFFER. 01955 M00S01889.sxinit +++|* USE THE *STOM* FILE BUFFER AND *FET* TO READ THE *MTOS* FILE. 01956 M00S01890.sxinit +++|# 01957 M00S01891.sxinit +++| 01958 M00S01892.sxinit +++| ZSETFET(LOC(STOMM),MTOSMLFN,LOC(STOMMBUF),STOMBUFL,SFETL); 01959 M00S01893.sxinit +++| PFD("ATTACH",MTOSMLFN,MTBSPFN,"PW",MTOSPW, 01960 M00S01894.sxinit +++| "M","M", "RC",PFSTAT,"NA",0,"UP",0,0); 01961 M00S01895.sxinit +++| IF PFSTAT EQ FBS 01962 M00S01896.sxinit +++| THEN # FILE BUSY # 01963 M00S01897.sxinit +++| BEGIN 01964 M00S01898.sxinit +++| MMFD$PROB[0] = "MTOS FILE BUSY."; 01965 M00S01899.sxinit +++| GOTO INITMASTER; 01966 M00S01900.sxinit +++| END 01967 M00S01901.sxinit +++| 01968 M00S01902.sxinit +++| 01969 M00S01903.sxinit +++| IF PFSTAT EQ OK 01970 M00S01904.sxinit +++| THEN # READ *MTOS* # 01971 M00S01905.sxinit +++| BEGIN 01972 M00S01906.sxinit +++| READ(STOMM,RCL); 01973 M00S01907.sxinit +++| READW(STOMM,MTOSHEAD,L$MTOS,STAT); 01974 M00S01908.sxinit +++| END 01975 M00S01909.sxinit +++| 01976 M00S01910.sxinit +++| 01977 M00S01911.sxinit +++| 01978 M00S01912.sxinit +++| IF PFSTAT NQ OK ## 01979 M00S01913.sxinit +++| OR MSH$NUMSLV[0] NQ NUMSLV ## 01980 M00S01914.sxinit +++| OR MSH$NUMRB[0] NQ NUMRB 01981 M00S01915.sxinit +++| THEN # INITIALIZE THE *MTOS* FILE # 01982 M00S01916.sxinit +++| BEGIN 01983 M00S01917.sxinit +++| PFSTAT = 1; 01984 M00S01918.sxinit +++| MSH$NUMSLV[0] = NUMSLV; 01985 M00S01919.sxinit +++| MSH$NUMRB[0] = NUMRB; 01986 M00S01920.sxinit +++| STAT = 1; 01987 M00S01921.sxinit +++| END 01988 M00S01922.sxinit +++| 01989 M00S01923.sxinit +++|# 01990 M00S01924.sxinit +++|* INITIALIZE THE MASTER STATUS INFORMATION. 01991 M00S01925.sxinit +++|# 01992 M00S01926.sxinit +++| 01993 M00S01927.sxinit +++| MSH$PFNM[0] = MTBSPFN; 01994 M00S01928.sxinit +++| MSH$MIDM[0] = MID; 01995 M00S01929.sxinit +++| MSH$MIDX[0] = MIDX; 01996 M00S01930.sxinit +++| 01997 M00S01931.sxinit +++| 01998 M00S01932.sxinit +++| IF PFSTAT NQ OK 01999 M00S01933.sxinit +++| THEN 02000 M00S01934.sxinit +++| BEGIN # CREATE *MTOS* # 02001 M00S01935.sxinit +++| 02002 M00S01936.sxinit +++|# 02003 M00S01937.sxinit +++|* CREATE A NEW *MTOS* PERMANENT FILE WHICH 02004 M00S01938.sxinit +++|* HAS THE MASTER HEADER INFORMATION. 02005 M00S01939.sxinit +++|* REATTACH THE *MTOS* FILE IN MODIFY MODE 02006 M00S01940.sxinit +++|* SO THE *SSSLV* PROGRAMS CAN READ IT. 02007 M00S01941.sxinit +++|# 02008 M00S01942.sxinit +++| 02009 M00S01943.sxinit +++| RETERN(STOMM,RCL); 02010 M00S01944.sxinit +++| PFD("PURGE",MTBSPFN,"PW",MTOSPW,"RC",PFSTAT,"UP",0,0); 02011 M00S01945.sxinit +++| PFD("DEFINE",MTOSMLFN,MTBSPFN,"PW",MTOSPW,"BR","N", "R", 02012 M00S01946.sxinit +++| LINK$DT[0],"RC",PFSTAT,"UP",0,0); 02013 M00S01947.sxinit +++| IF PFSTAT NQ OK 02014 M00S01948.sxinit +++| THEN # CAN NOT DEFINE # 02015 M00S01949.sxinit +++| BEGIN 02016 M00S01950.sxinit +++| MMFD$PROB[0] = "DEFINE MTOS FAILED."; 02017 M00S01951.sxinit +++| GOTO INITMASTER; 02018 M00S01952.sxinit +++| END 02019 M00S01953.sxinit +++| 02020 M00S01954.sxinit +++| P<FETSET> = LOC(MTOSM); 02021 M00S01955.sxinit +++| FET$IN[0] = FET$FRST[0] + L$MTOS; 02022 M00S01956.sxinit +++| WRITER(MTOSM,RCL); 02023 M00S01957.sxinit +++| PFD("ATTACH",MTOSMLFN,MTBSPFN,"PW",MTOSPW,"M","M", "RC",PFSTAT 02024 M00S01958.sxinit +++| ,"NA",0,"UP",0,0); 02025 M00S01959.sxinit +++| IF PFSTAT NQ OK 02026 M00S01960.sxinit +++| THEN # ABNORMAL ERROR # 02027 M00S01961.sxinit +++| BEGIN 02028 M00S01962.sxinit +++| MMFD$PROB[0] = "ATTACH MTOS FAILED."; 02029 M00S01963.sxinit +++| GOTO INITMASTER; 02030 M00S01964.sxinit +++| END 02031 M00S01965.sxinit +++| 02032 M00S01966.sxinit +++| END # CREATE *MTOS* # 02033 M00S01967.sxinit +++| 02034 M00S01968.sxinit +++| STATM = S"ACTIVE"; 02035 M00S01969.sxinit +++| 02036 M00S01970.sxinit +++| 02037 M00S01971.sxinit +++| 02038 M00S01972.sxinit +++| 02039 M00S01973.sxinit +++|# 02040 M00S01974.sxinit +++|* ATTACH AND READ THE *STOM* COMMUNICATION FILE 02041 M00S01975.sxinit +++|* FROM EACH POSSIBLE SLAVE AND INITIALIZE THE 02042 M00S01976.sxinit +++|* HEADER AND EACH REPLY BLOCK STATUS FOR EACH SLAVE. 02043 M00S01977.sxinit +++|# 02044 M00S01978.sxinit +++| 02045 M00S01979.sxinit +++| SINDX = 1; 02046 M00S01980.sxinit +++| P<STOMFILE> = LOC(RBBUF);
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/sxinit.txt ยท Last modified: (external edit)