cdc:nos2.source:opl.opl871:deck:sxmain
Deck SXMAIN
Library Member Format: MODIFY
Listing Sections
- Deck SXMAIN Start
- Deck SXMAIN Part 1 (Line 2268)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.sxmain +++|PROC DOZER((EXPIRTIME)); 00002 M00S00002.sxmain +++| 00003 M00S00003.sxmain +++|# TITLE DOZER - PUT *SSEXEC* INTO RECALL. # 00004 M00S00004.sxmain +++| 00005 M00S00005.sxmain +++| BEGIN # DOZER # 00006 M00S00006.sxmain +++| 00007 M00S00007.sxmain +++|# 00008 M00S00008.sxmain +++|** DOZER - PUT *SSEXEC* INTO RECALL. 00009 M00S00009.sxmain +++|* 00010 M00S00010.sxmain +++|* *DOZER* ISSUES REPEATED *RECALL* REQUESTS UNTIL 00011 M00S00011.sxmain +++|* THE EXPIRATION TIME HAS BEEN REACHED, OR UNTIL 00012 M00S00012.sxmain +++|* ONE OF SEVERAL REACTIVATION CONDITIONS OCCURS. 00013 M00S00013.sxmain +++|* 00014 M00S00014.sxmain +++|* PROC DOZER((EXPIRTIME)) 00015 M00S00015.sxmain +++|* 00016 M00S00016.sxmain +++|* ENTRY (EXPIRTIME) = DELAY EXPIRATION TIME. 00017 M00S00017.sxmain +++|* 00018 M00S00018.sxmain +++|* EXIT ONE OF THE FOLLOWING CONDITIONS IS MET - 00019 M00S00019.sxmain +++|* 1. EXPIRATION TIME HAS BEEN REACHED. 00020 M00S00020.sxmain +++|* 2. THE *TDAM* BUFFER IS NOT EMPTY. 00021 M00S00021.sxmain +++|* 3. THE *UCP* BUFFER IS NOT EMPTY. 00022 M00S00022.sxmain +++|* 4. THE *K* DISPLAY BUFFER IS NOT EMPTY. 00023 M00S00023.sxmain +++|* 5. THE CPU DRIVER COMPLETE FLAG (*DRVRRECALL*) IS SET. 00024 M00S00024.sxmain +++|* 6. THE *IDLE* BIT IS SET. 00025 M00S00025.sxmain +++|* 7. THE STOM FILE IS NOT EMPTY. 00026 M00S00026.sxmain +++|# 00027 M00S00027.sxmain +++| 00028 M00S00028.sxmain +++| 00029 M00S00029.sxmain +++|# 00030 M00S00030.sxmain +++|**** PROC DOZER - XREF LIST BEGIN. 00031 M00S00031.sxmain +++|# 00032 M00S00032.sxmain +++| 00033 M00S00033.sxmain +++| XREF 00034 M00S00034.sxmain +++| BEGIN 00035 M00S00035.sxmain +++| PROC KCG; # KEEP COPIES GOING # 00036 M00S00036.sxmain +++| PROC RECALL; # SUSPEND PROCESSING # 00037 M00S00037.sxmain +++| PROC RTIME; # GET TIME SINCE LAST DEADSTART # 00038 M00S00038.sxmain +++| PROC SLAVERP; # CHECK SLAVE FILE # 00039 M00S00039.sxmain +++| END 00040 M00S00040.sxmain +++| 00041 M00S00041.sxmain +++|# 00042 M00S00042.sxmain +++|**** PROC DOZER - XREF LIST END. 00043 M00S00043.sxmain +++|# 00044 M00S00044.sxmain +++| 00045 M00S00045.sxmain +++| ITEM EXPIRTIME U; # EXPIRATION TIME # 00046 M00S00046.sxmain +++| 00047 M00S00047.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00048 M00S00048.sxmain +++|*CALL,COMBFAS 00049 M00S00049.sxmain +++|*CALL,COMBCHN 00050 M00S00050.sxmain +++|*CALL,COMBFET 00051 M00S00051.sxmain +++|*CALL,COMBKDD 00052 M00S00052.sxmain +++|*CALL,COMBUCR 00053 M00S00053.sxmain +++|*CALL,COMBUDT 00054 M00S00054.sxmain +++|*CALL,COMXCTF 00055 M00S00055.sxmain +++|*CALL,COMXIPR 00056 M00S00056.sxmain +++|*CALL,COMXJCA 00057 M00S00057.sxmain +++|*CALL,COMXMMF 00058 M00S00058.sxmain +++|*CALL,COMXMSC 00059 M00S00059.sxmain +++| 00060 M00S00060.sxmain +++| ITEM I U; # INDUCTION VARIABLE # 00061 M00S00061.sxmain +++| CONTROL EJECT; 00062 M00S00062.sxmain +++| 00063 M00S00063.sxmain +++|# 00064 M00S00064.sxmain +++|* ISSUE *RECALL* REQUESTS UNTIL EXPIRATION TIME, OR UNTIL 00065 M00S00065.sxmain +++|* ANOTHER CRITERIA FOR RESUMPTION OF PROCESSING IS MET. 00066 M00S00066.sxmain +++|# 00067 M00S00067.sxmain +++| 00068 M00S00068.sxmain +++| FASTFOR I = 0 WHILE RTIMSECS[0] LS EXPIRTIME 00069 M00S00069.sxmain +++| DO 00070 M00S00070.sxmain +++| BEGIN # ISSUE *RECALL* REQUESTS # 00071 M00S00071.sxmain +++| 00072 M00S00072.sxmain +++| RECALL(0); 00073 M00S00073.sxmain +++| 00074 M00S00074.sxmain +++| IF CHN$BOC[LCHN"KC$GOING"] NQ 0 00075 M00S00075.sxmain +++| THEN 00076 M00S00076.sxmain +++| BEGIN 00077 M00S00077.sxmain +++| KCG; 00078 M00S00078.sxmain +++| END 00079 M00S00079.sxmain +++| 00080 M00S00080.sxmain +++| IF (RA$TDAM[0] NQ 0 AND CHN$BOC[LCHN"RTD$FRSPC"] NQ 0) ## 00081 M00S00081.sxmain +++| OR RA$SSCINLK[0] ## 00082 M00S00082.sxmain +++| OR KB$CLEAR[0] NQ 0 ## 00083 M00S00083.sxmain +++| OR DRVRRECALL ## 00084 M00S00084.sxmain +++| OR CHN$BOC[LCHN"HL$PFMWAIT"] NQ 0 ## 00085 M00S00085.sxmain +++| OR CHN$BOC[LCHN"HL$DELAY"] NQ 0 ## 00086 M00S00086.sxmain +++| OR CHN$BOC[LCHN"LL$DELAY"] NQ 0 ## 00087 M00S00087.sxmain +++| OR RA$IDLEDWN[0] 00088 M00S00088.sxmain +++| THEN # RESUME *SSEXEC* ACTIVITY # 00089 M00S00089.sxmain +++| BEGIN 00090 M00S00090.sxmain +++| RETURN; 00091 M00S00091.sxmain +++| END 00092 M00S00092.sxmain +++| 00093 M00S00093.sxmain +++| RTIME(RTIMESTAT[0]); 00094 M00S00094.sxmain +++| 00095 M00S00095.sxmain +++|# 00096 M00S00096.sxmain +++|* PROCESS *SLAVE* REQUESTS. 00097 M00S00097.sxmain +++|# 00098 M00S00098.sxmain +++| 00099 M00S00099.sxmain +++| IF RTIMSECS[0] GQ STOM$EXPIR 00100 M00S00100.sxmain +++| 00101 M00S00101.sxmain +++| THEN 00102 M00S00102.sxmain +++| BEGIN 00103 M00S00103.sxmain +++| SLAVERP(EXPIRTIME); 00104 M00S00104.sxmain +++| END 00105 M00S00105.sxmain +++| 00106 M00S00106.sxmain +++| END # ISSUE *RECALL* REQUESTS # 00107 M00S00107.sxmain +++| 00108 M00S00108.sxmain +++| END # DOZER # 00109 M00S00109.sxmain +++| 00110 M00S00110.sxmain +++| TERM 00111 M00S00111.sxmain +++|PROC ENTDAM((TDAMIN),(NEWOK),TDAMOUT); 00112 M00S00112.sxmain +++| 00113 M00S00113.sxmain +++|# TITLE ENTDAM - ENTER NEW *TDAM* REQUEST FOR PROCESSING. # 00114 M00S00114.sxmain +++| 00115 M00S00115.sxmain +++| BEGIN # ENTDAM # 00116 M00S00116.sxmain +++| 00117 M00S00117.sxmain +++|# 00118 M00S00118.sxmain +++|** ENTDAM - ENTER NEW *TDAM* REQUEST FOR PROCESSING. 00119 M00S00119.sxmain +++|* 00120 M00S00120.sxmain +++|* *ENTDAM* ENTERS A NEW *TDAM* REQUEST FOR PROCESSING AS FOLLOWS: 00121 M00S00121.sxmain +++|* 1) FOR A STAGE REQUEST, IT SEARCHES THE *HLRQ* AND *RTRQ* CHAINS 00122 M00S00122.sxmain +++|* TO SEE IF THIS REQUEST HAS ALREADY BEEN ENTERED. 00123 M00S00123.sxmain +++|* 2) IF IT IS NOT A DUPLICATE OF A STAGE REQUEST, IF THE *NEWOK* 00124 M00S00124.sxmain +++|* PARAMETER ALLOWS IT, AND IF SPACE EXISTS IN THE *RTRQ* FREE 00125 M00S00125.sxmain +++|* SPACE CHAIN, THE *TDAM* ENTRY IS ADDED TO THE *RTRQ* CHAIN. 00126 M00S00126.sxmain +++|* 00127 M00S00127.sxmain +++|* ENTRY (TDAMIN) = LOCATION OF THE INCOMING *TDAM* REQUEST. 00128 M00S00128.sxmain +++|* (NEWOK) = 0, IT IS OK TO CREATE A NEW *RTRQ* ENTRY. 00129 M00S00129.sxmain +++|* 00130 M00S00130.sxmain +++|* EXIT (TDAMOUT) = LOCATION OF THE NEW OR DUPLICATE 00131 M00S00131.sxmain +++|* *TDAM* ENTRY. =0, IF NOT A DUPLICATE, AND 00132 M00S00132.sxmain +++|* A NEW *RTRQ* ENTRY WAS NOT CREATED. 00133 M00S00133.sxmain +++|* 00134 M00S00134.sxmain +++|# 00135 M00S00135.sxmain +++| 00136 M00S00136.sxmain +++| ITEM TDAMIN U; # LOCATION OF INCOMING *TDAM* 00137 M00S00137.sxmain +++| REQUEST # 00138 M00S00138.sxmain +++| ITEM NEWOK U; # CONTROLS CREATION OF NEW *RTRQ* 00139 M00S00139.sxmain +++| ENTRY # 00140 M00S00140.sxmain +++| ITEM TDAMOUT U; # LOCATION OF ACCEPTED *TDAM* 00141 M00S00141.sxmain +++| REQUEST # 00142 M00S00142.sxmain +++| 00143 M00S00143.sxmain +++|# 00144 M00S00144.sxmain +++|**** PROC ENTDAM - XREF LIST BEGIN. 00145 M00S00145.sxmain +++|# 00146 M00S00146.sxmain +++| 00147 M00S00147.sxmain +++| XREF 00148 M00S00148.sxmain +++| BEGIN 00149 M00S00149.sxmain +++| PROC ADD$LNK; # ADD ENTRY TO CHAIN # 00150 M00S00150.sxmain +++| PROC DEL$LNK; # DELETE ENTRY FROM CHAIN # 00151 M00S00151.sxmain +++| END 00152 M00S00152.sxmain +++| 00153 M00S00153.sxmain +++|# 00154 M00S00154.sxmain +++|**** PROC ENTDAM - XREF LIST END. 00155 M00S00155.sxmain +++|# 00156 M00S00156.sxmain +++| 00157 M00S00157.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00158 M00S00158.sxmain +++|*CALL,COMBFAS 00159 M00S00159.sxmain +++|*CALL,COMBCHN 00160 M00S00160.sxmain +++|*CALL,COMBTDM 00161 M00S00161.sxmain +++|*CALL,COMXHLR 00162 M00S00162.sxmain +++|*CALL,COMXJCA 00163 M00S00163.sxmain +++|*CALL,COMXMSC 00164 M00S00164.sxmain +++| 00165 M00S00165.sxmain +++| 00166 M00S00166.sxmain +++| ITEM ASAX U; # *ASA* VALUE FROM *TDAMIN* # 00167 M00S00167.sxmain +++| ITEM EVENTID U; # EVENT ID # 00168 M00S00168.sxmain +++| ITEM FAM C(7); # FAMILY FROM *TDAMIN* # 00169 M00S00169.sxmain +++| ITEM I I; # LOOP INDEX # 00170 M00S00170.sxmain +++| ITEM LINK U; # ADDRESS OF NEW CHAIN ENTRY # 00171 M00S00171.sxmain +++| ITEM OFFSET U; # INCREMENT TO GET TO *TDAM* ENTRY 00172 M00S00172.sxmain +++| FROM THE LINK ADDRESS # 00173 M00S00173.sxmain +++| ITEM SFX U; # SUBFAMILY INDEX FROM *TDAMIN* # 00174 M00S00174.sxmain +++| 00175 M00S00175.sxmain +++| BASED 00176 M00S00176.sxmain +++| ARRAY TDAMBUF [0:0] S(6); 00177 M00S00177.sxmain +++| BEGIN 00178 M00S00178.sxmain +++| ITEM TDAMBUF60 C(00,00,60); # *TDAM* REQUEST # 00179 M00S00179.sxmain +++| END 00180 M00S00180.sxmain +++| 00181 M00S00181.sxmain +++| CONTROL EJECT; 00182 M00S00182.sxmain +++| P<TDAM> = TDAMIN; 00183 M00S00183.sxmain +++| FAM = TDAMFAM[0]; 00184 M00S00184.sxmain +++| SFX = TDAMSBF[0]; 00185 M00S00185.sxmain +++| 00186 M00S00186.sxmain +++| P<ASA> = LOC(TDAMASA[0]); 00187 M00S00187.sxmain +++| ASAX = TDAMASA[0]; 00188 M00S00188.sxmain +++| 00189 M00S00189.sxmain +++| EVENTID = TDAMEVENT[0]; 00190 M00S00190.sxmain +++| 00191 M00S00191.sxmain +++|# 00192 M00S00192.sxmain +++|* SEARCH FOR DUPLICATE STAGE REQUEST IN *HLRQ* OR *RTRQ*. 00193 M00S00193.sxmain +++|# 00194 M00S00194.sxmain +++| 00195 M00S00195.sxmain +++| IF TDAMFC[0] EQ TDAMFCODE"STAGE" 00196 M00S00196.sxmain +++| THEN 00197 M00S00197.sxmain +++| BEGIN # SEARCH FOR DUPLICATE # 00198 M00S00198.sxmain +++| LINK = CHN$BOC[LCHN"HL$ACTV"]; 00199 M00S00199.sxmain +++| 00200 M00S00200.sxmain +++| REPEAT WHILE LINK NQ 0 00201 M00S00201.sxmain +++| DO 00202 M00S00202.sxmain +++| BEGIN # SEARCH HLRQ CHAIN # 00203 M00S00203.sxmain +++| P<HLRQ> = LINK; 00204 M00S00204.sxmain +++| P<TDAM> = LOC(HLR$TDAM[0]); 00205 M00S00205.sxmain +++| LINK = HLR$LNK2; 00206 M00S00206.sxmain +++| 00207 M00S00207.sxmain +++| IF FAM EQ TDAMFAM[0] ## 00208 M00S00208.sxmain +++| AND SFX EQ TDAMSBF[0] ## 00209 M00S00209.sxmain +++| AND ASAX EQ TDAMASA[0] 00210 M00S00210.sxmain +++| THEN # MATCH FOUND # 00211 M00S00211.sxmain +++| BEGIN 00212 M00S00212.sxmain +++| TDAMOUT = LOC(TDAM[0]); 00213 M00S00213.sxmain +++| 00214 M00S00214.sxmain +++| IF TDAMEVENT[0] EQ 0 00215 M00S00215.sxmain +++| THEN 00216 M00S00216.sxmain +++| BEGIN 00217 M00S00217.sxmain +++| TDAMEVENT[0] = EVENTID; 00218 M00S00218.sxmain +++| END 00219 M00S00219.sxmain +++| 00220 M00S00220.sxmain +++| RETURN; 00221 M00S00221.sxmain +++| END # MATCH MADE # 00222 M00S00222.sxmain +++| 00223 M00S00223.sxmain +++| END # SEARCH OF HLRQ CHAIN COMPLITE # 00224 M00S00224.sxmain +++| 00225 M00S00225.sxmain +++| LINK = CHN$BOC[LCHN"RTD$ACT"]; 00226 M00S00226.sxmain +++| 00227 M00S00227.sxmain +++| REPEAT WHILE LINK NQ 0 00228 M00S00228.sxmain +++| DO 00229 M00S00229.sxmain +++| BEGIN # SEARCH CHAIN # 00230 M00S00230.sxmain +++| P<TDAM> = LINK + 1; 00231 M00S00231.sxmain +++| P<LINKWRD> = LINK; 00232 M00S00232.sxmain +++| LINK = LINK$ADR[0]; 00233 M00S00233.sxmain +++| 00234 M00S00234.sxmain +++| IF FAM EQ TDAMFAM[0] ## 00235 M00S00235.sxmain +++| AND SFX EQ TDAMSBF[0] ## 00236 M00S00236.sxmain +++| AND ASAX EQ TDAMASA[0] 00237 M00S00237.sxmain +++| THEN # MATCH FOUND # 00238 M00S00238.sxmain +++| BEGIN 00239 M00S00239.sxmain +++| TDAMOUT = LOC(TDAM[0]); 00240 M00S00240.sxmain +++| IF TDAMEVENT[0] EQ 0 00241 M00S00241.sxmain +++| THEN 00242 M00S00242.sxmain +++| BEGIN 00243 M00S00243.sxmain +++| TDAMEVENT[0] = EVENTID; 00244 M00S00244.sxmain +++| END 00245 M00S00245.sxmain +++| 00246 M00S00246.sxmain +++| RETURN; 00247 M00S00247.sxmain +++| END 00248 M00S00248.sxmain +++| 00249 M00S00249.sxmain +++| END # SEARCH CHAIN # 00250 M00S00250.sxmain +++| 00251 M00S00251.sxmain +++| END # SEARCH FOR DUPLICATE # 00252 M00S00252.sxmain +++| 00253 M00S00253.sxmain +++|# 00254 M00S00254.sxmain +++|* IF OK, PLACE REQUEST IN A NEW *RTRQ* ENTRY. 00255 M00S00255.sxmain +++|# 00256 M00S00256.sxmain +++| 00257 M00S00257.sxmain +++| LINK = CHN$BOC[LCHN"RTD$FRSPC"]; 00258 M00S00258.sxmain +++| 00259 M00S00259.sxmain +++| IF (NEWOK EQ 0) ## 00260 M00S00260.sxmain +++| AND (LINK NQ 0) 00261 M00S00261.sxmain +++| THEN # ADD TO *RTRQ* # 00262 M00S00262.sxmain +++| BEGIN 00263 M00S00263.sxmain +++| TDAMOUT = LINK+1; 00264 M00S00264.sxmain +++| P<TDAM> = LINK+1; 00265 M00S00265.sxmain +++| DEL$LNK(LINK,LCHN"RTD$FRSPC",0); 00266 M00S00266.sxmain +++| ADD$LNK(LINK,LCHN"RTD$ACT",0); 00267 M00S00267.sxmain +++| P<TDAMBUF> = TDAMIN; 00268 M00S00268.sxmain +++| TDAMREQST[0] = TDAMBUF60[0]; 00269 M00S00269.sxmain +++| IF (TDAMFC[0] EQ TDAMFCODE"STAGE" ## 00270 M00S00270.sxmain +++| AND CHN$BOC[LCHN"HL$FRSPC"] NQ 0) ## 00271 M00S00271.sxmain +++| OR (TDAMFC[0] NQ TDAMFCODE"STAGE") 00272 M00S00272.sxmain +++| THEN 00273 M00S00273.sxmain +++| BEGIN 00274 M00S00274.sxmain +++| STG$MSK = 0; 00275 M00S00275.sxmain +++| END 00276 M00S00276.sxmain +++| 00277 M00S00277.sxmain +++| END 00278 M00S00278.sxmain +++| 00279 M00S00279.sxmain +++| ELSE 00280 M00S00280.sxmain +++| BEGIN 00281 M00S00281.sxmain +++| TDAMOUT = 0; 00282 M00S00282.sxmain +++| END 00283 M00S00283.sxmain +++| 00284 M00S00284.sxmain +++| RETURN; 00285 M00S00285.sxmain +++| END # ENTDAM # 00286 M00S00286.sxmain +++| 00287 M00S00287.sxmain +++| TERM 00288 M00S00288.sxmain +++|PROC FLUSHMS; 00289 M00S00289.sxmain +++| 00290 M00S00290.sxmain +++|# TITLE FLUSHMS - FLUSH THE *MTOS* BUFFERS. # 00291 M00S00291.sxmain +++| 00292 M00S00292.sxmain +++| BEGIN # FLUSHMS # 00293 M00S00293.sxmain +++| 00294 M00S00294.sxmain +++|# 00295 M00S00295.sxmain +++|** FLUSHMS - FLUSH THE *MTOS* BUFFERS. 00296 M00S00296.sxmain +++|* 00297 M00S00297.sxmain +++|* *FLUSHMS* IS CALLED TO UPDATE THE MASTER-TO-SLAVE 00298 M00S00298.sxmain +++|* (*MTOS*) COMMUNICATION FILE BY REWRITING THE *MTOS* 00299 M00S00299.sxmain +++|* FILE BUFFER TO THE LINK DEVICE. 00300 M00S00300.sxmain +++|* 00301 M00S00301.sxmain +++|* PROC FLUSHMS. 00302 M00S00302.sxmain +++|* 00303 M00S00303.sxmain +++|* ENTRY THE *FET* AND BUFFER FOR THE *MTOS* FILE 00304 M00S00304.sxmain +++|* ARE INITIALIZED. 00305 M00S00305.sxmain +++|* 00306 M00S00306.sxmain +++|* EXIT THE VARIABLE *MTOS$EXPIR* IS UPDATED TO 00307 M00S00307.sxmain +++|* INDICATE THE NEXT TIME THIS PROCEDURE SHOULD 00308 M00S00308.sxmain +++|* BE CALLED. IF THE *DRYUP* FLAG IS SET, OR 00309 M00S00309.sxmain +++|* IF NO SLAVE MAINFRAMES REMAIN DEFINED, *MTOS$EXPIR* 00310 M00S00310.sxmain +++|* IS SET TO A LARGE VALUE. 00311 M00S00311.sxmain +++|* 00312 M00S00312.sxmain +++|* MESSAGES 00313 M00S00313.sxmain +++| * EXEC SMF MODE - ALL SLAVES OMITTED.* 00314 M00S00314.sxmain +++|* A MESSAGE INDICATING THAT THE *SSEXEC* 00315 M00S00315.sxmain +++|* IS UNABLE TO COMMUNICATE WITH ANY *SSSLV* 00316 M00S00316.sxmain +++|* PROGRAM AND IS NOW RUNNING IN SINGLE 00317 M00S00317.sxmain +++|* MAINFRAME MODE. 00318 M00S00318.sxmain +++|* 00319 M00S00319.sxmain +++|# 00320 M00S00320.sxmain +++| 00321 M00S00321.sxmain +++| 00322 M00S00322.sxmain +++|# 00323 M00S00323.sxmain +++|**** PROC FLUSHMS - XREF LIST BEGIN. 00324 M00S00324.sxmain +++|# 00325 M00S00325.sxmain +++| 00326 M00S00326.sxmain +++| XREF 00327 M00S00327.sxmain +++| BEGIN 00328 M00S00328.sxmain +++| PROC MESSAGE; # ISSUE MESSAGE # 00329 M00S00329.sxmain +++| PROC PDATE; # GET PACKED DATE AND TIME # 00330 M00S00330.sxmain +++| PROC REWIND; # REWIND FILE # 00331 M00S00331.sxmain +++| PROC REWRITR; # REWRITE FILE # 00332 M00S00332.sxmain +++| PROC RTIME; # GET TIME SINCE DEADSTART # 00333 M00S00333.sxmain +++| END 00334 M00S00334.sxmain +++| 00335 M00S00335.sxmain +++|# 00336 M00S00336.sxmain +++|**** PROC FLUSHMS - XREF LIST END. 00337 M00S00337.sxmain +++|# 00338 M00S00338.sxmain +++| 00339 M00S00339.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00340 M00S00340.sxmain +++|*CALL,COMBFAS 00341 M00S00341.sxmain +++|*CALL,COMBFET 00342 M00S00342.sxmain +++|*CALL,COMXCTF 00343 M00S00343.sxmain +++|*CALL,COMXIPR 00344 M00S00344.sxmain +++|*CALL,COMXMMF 00345 M00S00345.sxmain +++| 00346 M00S00346.sxmain +++| 00347 M00S00347.sxmain +++| ARRAY MSGOMITALL [0:0] S(4); # SLAVE OMITTED MESSAGE # 00348 M00S00348.sxmain +++| BEGIN 00349 M00S00349.sxmain +++| ITEM MSGO$TEXT C(00,00,38) # MESSAGE TEXT # 00350 M00S00350.sxmain +++| = [" EXEC SMF MODE - ALL SLAVES OMITTED."]; 00351 M00S00351.sxmain +++| ITEM MSGO$EOL U(03,48,12) = [0]; # END OF LINE # 00352 M00S00352.sxmain +++| END 00353 M00S00353.sxmain +++| 00354 M00S00354.sxmain +++| 00355 M00S00355.sxmain +++| CONTROL EJECT; 00356 M00S00356.sxmain +++| 00357 M00S00357.sxmain +++|# 00358 M00S00358.sxmain +++|* UPDATE THE HEADER INFORMATION OF THE *MTOS* FILE. 00359 M00S00359.sxmain +++|# 00360 M00S00360.sxmain +++| 00361 M00S00361.sxmain +++| MSH$MWC[0] = MSH$MWC[0] + 1; 00362 M00S00362.sxmain +++| PDATE(PDATESTAT[0]); 00363 M00S00363.sxmain +++| MSH$PDATE[0] = PDATEV[0]; 00364 M00S00364.sxmain +++| 00365 M00S00365.sxmain +++|# 00366 M00S00366.sxmain +++|* SET UP THE TIME TO NEXT FLUSH THE *MTOS* BUFFERS. 00367 M00S00367.sxmain +++|# 00368 M00S00368.sxmain +++| 00369 M00S00369.sxmain +++| RTIME(RTIMESTAT[0]); 00370 M00S00370.sxmain +++| IF SLVACTIVE 00371 M00S00371.sxmain +++| THEN # USE SMALL DELAY # 00372 M00S00372.sxmain +++| BEGIN 00373 M00S00373.sxmain +++| MTOS$EXPIR = RTIMSECS[0] + SLRP$INTV; 00374 M00S00374.sxmain +++| END 00375 M00S00375.sxmain +++| 00376 M00S00376.sxmain +++| ELSE # USE LARGE DELAY # 00377 M00S00377.sxmain +++| BEGIN 00378 M00S00378.sxmain +++| MTOS$EXPIR = RTIMSECS[0] + SLAV$INTV; 00379 M00S00379.sxmain +++| END 00380 M00S00380.sxmain +++| 00381 M00S00381.sxmain +++| IF DRYUP OR SLAVECTR EQ 0 00382 M00S00382.sxmain +++| THEN 00383 M00S00383.sxmain +++| BEGIN 00384 M00S00384.sxmain +++| MTOS$EXPIR = MAXSECS; 00385 M00S00385.sxmain +++| MSH$IDLE[0] = TRUE; 00386 M00S00386.sxmain +++| END 00387 M00S00387.sxmain +++| 00388 M00S00388.sxmain +++| IF SLAVECTR EQ 0 00389 M00S00389.sxmain +++| THEN 00390 M00S00390.sxmain +++| BEGIN 00391 M00S00391.sxmain +++| MESSAGE(MSGOMITALL,SYSUDF1); 00392 M00S00392.sxmain +++| END 00393 M00S00393.sxmain +++| 00394 M00S00394.sxmain +++|# 00395 M00S00395.sxmain +++|* WRITE THE *MTOS* BUFFER TO THE *MTOS* FILE. 00396 M00S00396.sxmain +++|# 00397 M00S00397.sxmain +++| 00398 M00S00398.sxmain +++| REWIND(MTOSM,RCL); 00399 M00S00399.sxmain +++| P<FETSET> = LOC(MTOSM); 00400 M00S00400.sxmain +++| FET$OUT[0] = FET$FRST[0]; 00401 M00S00401.sxmain +++| FET$IN[0] = FET$FRST[0] + L$MTOS; 00402 M00S00402.sxmain +++| REWRITR(MTOSM,RCL); 00403 M00S00403.sxmain +++| RETURN; 00404 M00S00404.sxmain +++| END # FLUSHMS # 00405 M00S00405.sxmain +++| 00406 M00S00406.sxmain +++| TERM 00407 M00S00407.sxmain +++|PROC MAINLP; 00408 M00S00408.sxmain +++| 00409 M00S00409.sxmain +++|# TITLE MAINLP - MAIN LOOP OF *SSEXEC*. # 00410 M00S00410.sxmain +++| 00411 M00S00411.sxmain +++| BEGIN # MAINLP # 00412 M00S00412.sxmain +++| 00413 M00S00413.sxmain +++|# 00414 M00S00414.sxmain +++|** MAINLP - MAIN LOOP OF *SSEXEC*. 00415 M00S00415.sxmain +++|* 00416 M00S00416.sxmain +++|* *MAINLP* IS THE MAIN PROCESSING LOOP WHICH IS CALLED 00417 M00S00417.sxmain +++|* BY *MSASDIR*. 00418 M00S00418.sxmain +++|* 00419 M00S00419.sxmain +++|* PROC MAINLP 00420 M00S00420.sxmain +++|* 00421 M00S00421.sxmain +++|* ENTRY INITIALIZATION HAS BEEN PERFORMED. 00422 M00S00422.sxmain +++|* 00423 M00S00423.sxmain +++|* EXIT PROCESSING HAS BEEN TERMINATED IN RESPONSE 00424 M00S00424.sxmain +++|* TO THE *N.IDLE* COMMAND FROM THE CONSOLE 00425 M00S00425.sxmain +++|* OR BY A FATAL ERROR CONDITION. 00426 M00S00426.sxmain +++|# 00427 M00S00427.sxmain +++| 00428 M00S00428.sxmain +++|# 00429 M00S00429.sxmain +++|**** PROC MAINLP - XREF LIST BEGIN. 00430 M00S00430.sxmain +++|# 00431 M00S00431.sxmain +++| 00432 M00S00432.sxmain +++| XREF 00433 M00S00433.sxmain +++| BEGIN 00434 M00S00434.sxmain +++| PROC CKPFETC; # CHECK *UGET* COMPLETE # 00435 M00S00435.sxmain +++| PROC FLUSHMS; # FLUSH M-TO-S FILE # 00436 M00S00436.sxmain +++| PROC GETACT; # GET ACTIVITY COUNT # 00437 M00S00437.sxmain +++| PROC KCG; # KEEP COPIES GOING # 00438 M00S00438.sxmain +++| PROC KPROC; # *K* DISPLAY PROCESSOR # 00439 M00S00439.sxmain +++| PROC SSOVL; # LOAD *MSAS* OVERLAYS # 00440 M00S00440.sxmain +++| PROC RCLTEST; # PERFORM RECALL TEST # 00441 M00S00441.sxmain +++| PROC RTIME; # GET TIME SINCE LAST DEADSTART # 00442 M00S00442.sxmain +++| PROC RTRNBUF; # RETURN BUFFER SPACE # 00443 M00S00443.sxmain +++| PROC SCAN$LTCT; # SCAN THE *LTCT* # 00444 M00S00444.sxmain +++| PROC SLAVERP; # SLAVE REQUEST PROCESSOR # 00445 M00S00445.sxmain +++| PROC TERMTST; # PERFORM TEMINATION TEST # 00446 M00S00446.sxmain +++| PROC TRYTDAM; # SERVICE THE *TDAM* BUFFER # 00447 M00S00447.sxmain +++| PROC WAKE$UP; # REACTIVATE DELAYED PROCESSES # 00448 M00S00448.sxmain +++| END 00449 M00S00449.sxmain +++| 00450 M00S00450.sxmain +++|# 00451 M00S00451.sxmain +++|**** PROC MAINLP - XREF LIST END. 00452 M00S00452.sxmain +++|# 00453 M00S00453.sxmain +++| 00454 M00S00454.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00455 M00S00455.sxmain +++|*CALL,COMBFAS 00456 M00S00456.sxmain +++|*CALL,COMBCHN 00457 M00S00457.sxmain +++|*CALL,COMBCPR 00458 M00S00458.sxmain +++|*CALL,COMBOVL 00459 M00S00459.sxmain +++|*CALL,COMBTDM 00460 M00S00460.sxmain +++|*CALL,COMXCTF 00461 M00S00461.sxmain +++|*CALL,COMXJCA 00462 M00S00462.sxmain +++|*CALL,COMXMFD 00463 M00S00463.sxmain +++|*CALL,COMXMSC 00464 M00S00464.sxmain +++| 00465 M00S00465.sxmain +++| ITEM STAT I; # STATUS RETURN VALUE # 00466 M00S00466.sxmain +++| 00467 M00S00467.sxmain +++| CONTROL EJECT; 00468 M00S00468.sxmain +++| 00469 M00S00469.sxmain +++|# 00470 M00S00470.sxmain +++|* REPEAT MAIN LOOP UNTIL *TERMINATE* FLAG IS SET. 00471 M00S00471.sxmain +++|# 00472 M00S00472.sxmain +++| 00473 M00S00473.sxmain +++| TERMINATE = FALSE; 00474 M00S00474.sxmain +++| 00475 M00S00475.sxmain +++| REPEAT WHILE NOT TERMINATE 00476 M00S00476.sxmain +++| DO 00477 M00S00477.sxmain +++| BEGIN # MAIN PROCESSING LOOP # 00478 M00S00478.sxmain +++| 00479 M00S00479.sxmain +++|# 00480 M00S00480.sxmain +++|* SET *DRYUP* FLAG IF *IDLEDOWN* IS SET. 00481 M00S00481.sxmain +++|# 00482 M00S00482.sxmain +++| 00483 M00S00483.sxmain +++| DRYUP = RA$IDLEDWN[0]; 00484 M00S00484.sxmain +++| 00485 M00S00485.sxmain +++|# 00486 M00S00486.sxmain +++|* SERVICE THE *K* DISPLAY BUFFER. 00487 M00S00487.sxmain +++|# 00488 M00S00488.sxmain +++| 00489 M00S00489.sxmain +++| KPROC; 00490 M00S00490.sxmain +++| 00491 M00S00491.sxmain +++|# 00492 M00S00492.sxmain +++|* SERVICE THE *TDAM* BUFFER. 00493 M00S00493.sxmain +++|# 00494 M00S00494.sxmain +++| 00495 M00S00495.sxmain +++| IF RA$TDAM[0] NQ 0 ## 00496 M00S00496.sxmain +++| AND CHN$BOC[LCHN"RTD$FRSPC"] NQ 0 00497 M00S00497.sxmain +++| THEN 00498 M00S00498.sxmain +++| BEGIN 00499 M00S00499.sxmain +++| TRYTDAM; 00500 M00S00500.sxmain +++| END 00501 M00S00501.sxmain +++| 00502 M00S00502.sxmain +++|# 00503 M00S00503.sxmain +++|* PERIODICALLY SCAN *LTCT* FOR SWAPPED *UCP*-S. 00504 M00S00504.sxmain +++|# 00505 M00S00505.sxmain +++| 00506 M00S00506.sxmain +++| RTIME(RTIMESTAT[0]); 00507 M00S00507.sxmain +++| IF RTIMSECS[0] GQ UCP$EXPIR 00508 M00S00508.sxmain +++| THEN 00509 M00S00509.sxmain +++| BEGIN 00510 M00S00510.sxmain +++| SCAN$LTCT; 00511 M00S00511.sxmain +++| END 00512 M00S00512.sxmain +++| 00513 M00S00513.sxmain +++| 00514 M00S00514.sxmain +++| IF GLPFMFL 00515 M00S00515.sxmain +++| THEN 00516 M00S00516.sxmain +++| BEGIN 00517 M00S00517.sxmain +++| GOTO NEXTCHK; 00518 M00S00518.sxmain +++| END 00519 M00S00519.sxmain +++| 00520 M00S00520.sxmain +++|# 00521 M00S00521.sxmain +++|* TEST FOR REASON TO LOAD NEW WORK OVERLAY. 00522 M00S00522.sxmain +++|# 00523 M00S00523.sxmain +++| 00524 M00S00524.sxmain +++|# 00525 M00S00525.sxmain +++|* PERIODICALLY RECLAIM CATALOG AND SMA MAP INTERLOCKS. 00526 M00S00526.sxmain +++|# 00527 M00S00527.sxmain +++| 00528 M00S00528.sxmain +++| RTIME(RTIMESTAT[0]); 00529 M00S00529.sxmain +++| IF GLBINTLK AND RTIMSECS[0] GQ ITLK$EXPIR 00530 M00S00530.sxmain +++| THEN # RECLAIM CATALOG INTERLOCKS # 00531 M00S00531.sxmain +++| BEGIN 00532 M00S00532.sxmain +++| RCLMCAT = TRUE; 00533 M00S00533.sxmain +++| END 00534 M00S00534.sxmain +++| 00535 M00S00535.sxmain +++| IF MAPINTLK AND RTIMSECS[0] GQ MAP$EXPIR 00536 M00S00536.sxmain +++| THEN # RECLAIM SMA MAP INTERLOCKS # 00537 M00S00537.sxmain +++| BEGIN 00538 M00S00538.sxmain +++| RCLMMAP = TRUE; 00539 M00S00539.sxmain +++| END 00540 M00S00540.sxmain +++| 00541 M00S00541.sxmain +++| IF RCLMCAT OR RCLMMAP 00542 M00S00542.sxmain +++| THEN 00543 M00S00543.sxmain +++| BEGIN 00544 M00S00544.sxmain +++| SSOVL(LNEWWORK,0); # LOAD *NEWWORK* OVERLAY # 00545 M00S00545.sxmain +++| GOTO NEXTCHK; 00546 M00S00546.sxmain +++| END 00547 M00S00547.sxmain +++| 00548 M00S00548.sxmain +++|# 00549 M00S00549.sxmain +++|* CHECK FOR REQUEST IN *UCP* BUFFER WHICH CAN BE PROCESSED. 00550 M00S00550.sxmain +++|* IF THE REQUEST IS TYPE 4 OR AN UPDATE-UDT TYPE 5, THERE 00551 M00S00551.sxmain +++|* MUST BE AN AVAILABLE *LLRQ* ENTRY AND FULL INITIALIZATION 00552 M00S00552.sxmain +++|* MUST NOT BE IN PROGRESS. 00553 M00S00553.sxmain +++|# 00554 M00S00554.sxmain +++| 00555 M00S00555.sxmain +++| IF RA$SSCINLK[0] 00556 M00S00556.sxmain +++| THEN # *UCP* BUFFER CONTAINS REQUEST # 00557 M00S00557.sxmain +++| BEGIN # CHECK *UCP* REQUEST # 00558 M00S00558.sxmain +++| P<CPR> = RA$SSCAP[0] + 2; 00559 M00S00559.sxmain +++| 00560 M00S00560.sxmain +++| IF ((CPR$RQT[0] EQ TYP"TYP4" ## 00561 M00S00561.sxmain +++| OR (CPR$RQT[0] EQ TYP"TYP5" ## 00562 M00S00562.sxmain +++| AND CPR$RQC[0] EQ REQTYP5"SSA$UUDT")) ## 00563 M00S00563.sxmain +++| AND (CHN$BOC[LCHN"LL$FRSPC"] NQ 0 ## 00564 M00S00564.sxmain +++| AND NOT INITIALIZE)) ## 00565 M00S00565.sxmain +++| OR (CPR$RQT[0] NQ TYP"TYP4" ## 00566 M00S00566.sxmain +++| AND NOT (CPR$RQT[0] EQ TYP"TYP5" ## 00567 M00S00567.sxmain +++| AND CPR$RQC[0] EQ REQTYP5"SSA$UUDT")) 00568 M00S00568.sxmain +++| THEN # REQUEST CAN BE PROCESSED # 00569 M00S00569.sxmain +++| BEGIN 00570 M00S00570.sxmain +++| SSOVL(LNEWWORK,0); # LOAD *NEWWORK* OVERLAY # 00571 M00S00571.sxmain +++| GOTO NEXTCHK; 00572 M00S00572.sxmain +++| END 00573 M00S00573.sxmain +++| 00574 M00S00574.sxmain +++| END # CHECK *UCP* REQUEST # 00575 M00S00575.sxmain +++| 00576 M00S00576.sxmain +++|# 00577 M00S00577.sxmain +++|* CHECK IF DESTAGING IS TO BE INITIATED. 00578 M00S00578.sxmain +++|# 00579 M00S00579.sxmain +++| 00580 M00S00580.sxmain +++| IF (DSC$INIT NQ 0) ## 00581 M00S00581.sxmain +++| AND (NOT INITIALIZE) ## 00582 M00S00582.sxmain +++| AND (CHN$BOC[LCHN"HL$FRSPC"] NQ 0) 00583 M00S00583.sxmain +++| THEN 00584 M00S00584.sxmain +++| BEGIN 00585 M00S00585.sxmain +++| SSOVL(LNEWWORK,0); # LOAD *NEWWORK* OVERLAY # 00586 M00S00586.sxmain +++| GOTO NEXTCHK; 00587 M00S00587.sxmain +++| END 00588 M00S00588.sxmain +++| 00589 M00S00589.sxmain +++| 00590 M00S00590.sxmain +++|# 00591 M00S00591.sxmain +++|* CHECK *RTRQ* FOR *TDAM* REQUEST WHICH CAN BE PROCESSED. 00592 M00S00592.sxmain +++|# 00593 M00S00593.sxmain +++| 00594 M00S00594.sxmain +++| IF CHN$BOC[LCHN"RTD$ACT"] NQ 0 ## 00595 M00S00595.sxmain +++| AND (NOT INITIALIZE) ## 00596 M00S00596.sxmain +++| AND (STG$MSK EQ 0) 00597 M00S00597.sxmain +++| THEN # CAN PROCESS *TDAM* REQUESTS # 00598 M00S00598.sxmain +++| BEGIN 00599 M00S00599.sxmain +++| SSOVL(LNEWWORK,0); # LOAD *NEWWORK* OVERLAY # 00600 M00S00600.sxmain +++| GOTO NEXTCHK; 00601 M00S00601.sxmain +++| END 00602 M00S00602.sxmain +++| 00603 M00S00603.sxmain +++|# 00604 M00S00604.sxmain +++|* CHECK EXPIRATION TIME FOR PROCESSING *SLAVE* REQUESTS. 00605 M00S00605.sxmain +++|# 00606 M00S00606.sxmain +++| 00607 M00S00607.sxmain +++| 00608 M00S00608.sxmain +++|NEXTCHK: 00609 M00S00609.sxmain +++| RTIME(RTIMESTAT[0]); 00610 M00S00610.sxmain +++| IF RTIMSECS[0] GQ STOM$EXPIR ## 00611 M00S00611.sxmain +++| AND GLBDSFL 00612 M00S00612.sxmain +++| THEN # CAN ACCEPT SLAVE REQUESTS # 00613 M00S00613.sxmain +++| BEGIN 00614 M00S00614.sxmain +++| SLAVERP(0); 00615 M00S00615.sxmain +++| END 00616 M00S00616.sxmain +++| 00617 M00S00617.sxmain +++|# 00618 M00S00618.sxmain +++|* PERIODICALLY FLUSH MASTER-TO-SLAVE FILE. 00619 M00S00619.sxmain +++|# 00620 M00S00620.sxmain +++| 00621 M00S00621.sxmain +++| IF RTIMSECS[0] GQ MTOS$EXPIR 00622 M00S00622.sxmain +++| THEN 00623 M00S00623.sxmain +++| BEGIN 00624 M00S00624.sxmain +++| FLUSHMS; 00625 M00S00625.sxmain +++| END 00626 M00S00626.sxmain +++| 00627 M00S00627.sxmain +++|# 00628 M00S00628.sxmain +++|* CHECK FOR PFM REQUEST COMPLETE BEFORE PROCESSING 00629 M00S00629.sxmain +++|* MORE HLRQ REQUESTS. 00630 M00S00630.sxmain +++|# 00631 M00S00631.sxmain +++| 00632 M00S00632.sxmain +++| 00633 M00S00633.sxmain +++| IF GLPFMFL 00634 M00S00634.sxmain +++| THEN 00635 M00S00635.sxmain +++| BEGIN 00636 M00S00636.sxmain +++| CKPFETC(NAME[0],PFMSTAT);
Line S00637 Modification History | |
---|---|
M01 (Removed by) | sxmain3 |
Seq # *Modification Id* Act ----------------------------+ 00637 M01S00637.sxmain3 ---| IF PFMSTAT LS 0 00638 M01S00638.sxmain3 ---| THEN 00639 M01S00639.sxmain3 ---| BEGIN # PFM REQUEST NOT COMPLETE # 00640 M01S00640.sxmain3 ---| GLPFMFL = TRUE; 00641 M01S00641.sxmain3 ---| END 00642 M01S00642.sxmain3 ---| 00643 M01S00643.sxmain3 ---| ELSE 00644 M01S00644.sxmain3 ---| BEGIN # PFM REQUEST COMPLETE # 00645 M01S00645.sxmain3 ---| GLPFMFL = FALSE; 00646 M01S00646.sxmain3 ---| END
Line S00001 Modification History | |
---|---|
M01 (Added by) | sxmain3 |
Seq # *Modification Id* Act ----------------------------+ 00647 M01S00001.sxmain3 +++| GLPFMFL = PFMSTAT LS 0; # SET IF PFM REQUEST NOT COMPLETE # 00648 M00S00647.sxmain +++| END # PFM REQUEST COMPLETE # 00649 M00S00648.sxmain +++| 00650 M00S00649.sxmain +++| 00651 M00S00650.sxmain +++|# 00652 M00S00651.sxmain +++|* SERVICE HIGH LEVEL PROCESSES. 00653 M00S00652.sxmain +++|# 00654 M00S00653.sxmain +++| 00655 M00S00654.sxmain +++| IF CHN$BOC[LCHN"HL$DELAY"] NQ 0 00656 M00S00655.sxmain +++| THEN # *HLRQ* DELAY CHAIN POPULATED # 00657 M00S00656.sxmain +++| BEGIN 00658 M00S00657.sxmain +++| WAKE$UP; # REACTIVATE DELAYED PROCESSES # 00659 M00S00658.sxmain +++| END 00660 M00S00659.sxmain +++| 00661 M00S00660.sxmain +++| IF (NOT GLPFMFL) # PFM UGET/UREPLACE ACTIVE # 00662 M00S00661.sxmain +++| AND (NOT INITIALIZE) #DELAY DURING FULL INITIALIZATION # 00663 M00S00662.sxmain +++| AND ((CHN$BOC[LCHN"HL$READY"] NQ 0) ## 00664 M00S00663.sxmain +++| OR (CHN$BOC[LCHN"HL$PFMWAIT"] NQ 0)) 00665 M00S00664.sxmain +++| THEN # ADVANCE HIGH LEVEL REQUESTS # 00666 M00S00665.sxmain +++| BEGIN 00667 M00S00666.sxmain +++| SSOVL(LHLRQMTR,0); # LOAD *HLRQMTR* OVERLAY # 00668 M00S00667.sxmain +++| END 00669 M00S00668.sxmain +++| 00670 M00S00669.sxmain +++|# 00671 M00S00670.sxmain +++|* RETURN BUFFER SPACE IF POSSIBLE. 00672 M00S00671.sxmain +++|# 00673 M00S00672.sxmain +++| 00674 M00S00673.sxmain +++| IF GLBRTRNB 00675 M00S00674.sxmain +++| THEN 00676 M00S00675.sxmain +++| BEGIN # GLOBAL FLAG SET # 00677 M00S00676.sxmain +++| GETACT(STAT); 00678 M00S00677.sxmain +++| P<ACTSTAT> = LOC(STAT); 00679 M00S00678.sxmain +++| IF ACT$STCNT[0] EQ 0 00680 M00S00679.sxmain +++| THEN # NO CURRENT ACTIVITY # 00681 M00S00680.sxmain +++| BEGIN 00682 M00S00681.sxmain +++| RTRNBUF; 00683 M00S00682.sxmain +++| END 00684 M00S00683.sxmain +++| 00685 M00S00684.sxmain +++| END # GLOBAL FLAG SET # 00686 M00S00685.sxmain +++| 00687 M00S00686.sxmain +++|# 00688 M00S00687.sxmain +++|* SERVICE LOW LEVEL PROCESSES. 00689 M00S00688.sxmain +++|# 00690 M00S00689.sxmain +++| 00691 M00S00690.sxmain +++| IF CHN$BOC[LCHN"LL$DELAY"] NQ 0 00692 M00S00691.sxmain +++| THEN # *LLRQ* DELAY CHAIN POPULATED # 00693 M00S00692.sxmain +++| BEGIN 00694 M00S00693.sxmain +++| WAKE$UP; # REACTIVATE DELAYED PROCESSES # 00695 M00S00694.sxmain +++| END 00696 M00S00695.sxmain +++| 00697 M00S00696.sxmain +++| RTIME(RTIMESTAT[0]); 00698 M00S00697.sxmain +++| IF DRVRRECALL ## 00699 M00S00698.sxmain +++| OR (CHN$BOC[LCHN"LL$READY"] NQ 0) ## 00700 M00S00699.sxmain +++| THEN # LOW LEVEL REQUESTS TO ADVANCE # 00701 M00S00700.sxmain +++| BEGIN 00702 M00S00701.sxmain +++| SSOVL(LLLRQMTR,0); # LOAD *LLRQMTR* OVERLAY # 00703 M00S00702.sxmain +++| END 00704 M00S00703.sxmain +++| 00705 M00S00704.sxmain +++|# 00706 M00S00705.sxmain +++|* KEEP COPY OPERATIONS GOING. 00707 M00S00706.sxmain +++|# 00708 M00S00707.sxmain +++| 00709 M00S00708.sxmain +++| IF CHN$BOC[LCHN"KC$GOING"] NQ 0 00710 M00S00709.sxmain +++| THEN 00711 M00S00710.sxmain +++| BEGIN 00712 M00S00711.sxmain +++| KCG; 00713 M00S00712.sxmain +++| END 00714 M00S00713.sxmain +++| 00715 M00S00714.sxmain +++|# 00716 M00S00715.sxmain +++|* DETERMINE IF *SSEXEC* CAN GO INTO RECALL. 00717 M00S00716.sxmain +++|# 00718 M00S00717.sxmain +++| 00719 M00S00718.sxmain +++| RCLTEST; 00720 M00S00719.sxmain +++| 00721 M00S00720.sxmain +++|# 00722 M00S00721.sxmain +++|* CHECK *DRYUP* FLAG. 00723 M00S00722.sxmain +++|# 00724 M00S00723.sxmain +++| 00725 M00S00724.sxmain +++| IF DRYUP 00726 M00S00725.sxmain +++| THEN # DO TERMINATION TEST # 00727 M00S00726.sxmain +++| BEGIN 00728 M00S00727.sxmain +++| TERMTST; 00729 M00S00728.sxmain +++| END 00730 M00S00729.sxmain +++| 00731 M00S00730.sxmain +++| END # MAIN PROCESSING LOOP # 00732 M00S00731.sxmain +++| 00733 M00S00732.sxmain +++|# 00734 M00S00733.sxmain +++|* EXIT FROM MAIN LOOP. 00735 M00S00734.sxmain +++|# 00736 M00S00735.sxmain +++| 00737 M00S00736.sxmain +++| RETURN; 00738 M00S00737.sxmain +++| 00739 M00S00738.sxmain +++| END # MAINLP # 00740 M00S00739.sxmain +++| 00741 M00S00740.sxmain +++| TERM 00742 M00S00741.sxmain +++|PROC MNGMEM((MEMCHNG),RESP); 00743 M00S00742.sxmain +++| 00744 M00S00743.sxmain +++|# TITLE MNGMEM - MANAGE MEMORY. # 00745 M00S00744.sxmain +++| 00746 M00S00745.sxmain +++| BEGIN # MNGMEM # 00747 M00S00746.sxmain +++| 00748 M00S00747.sxmain +++|# 00749 M00S00748.sxmain +++|** MNGMEM - MANAGE MEMORY. 00750 M00S00749.sxmain +++|* 00751 M00S00750.sxmain +++|* *MNGMEM* PROCESSES REQUESTS FOR AN INCREASE OR DECREASE 00752 M00S00751.sxmain +++|* IN USABLE MEMORY. BASED ON THE CURRENT UNUSED MEMORY AND 00753 M00S00752.sxmain +++|* THE AMOUNT OF CHANGE REQUESTED, A *MEMORY* CALL IS MADE 00754 M00S00753.sxmain +++|* AND FIELD LENGTH VALUES ARE UPDATED. 00755 M00S00754.sxmain +++|* 00756 M00S00755.sxmain +++|* MNGMEM((MEMCHNG),RESP). 00757 M00S00756.sxmain +++|* 00758 M00S00757.sxmain +++|* ENTRY (MEMCHNG) = CHANGE IN MEMORY REQUESTED. 00759 M00S00758.sxmain +++|* 00760 M00S00759.sxmain +++|* EXIT (RESP) - RESPONSE TO MEMORY REQUEST. 00761 M00S00760.sxmain +++|* = 0, REQUEST DENIED. 00762 M00S00761.sxmain +++|* = OTHER, * FWA* OF NEW MEMORY BLOCK IF AN 00763 M00S00762.sxmain +++|* INCREASE IN MEMORY WAS REQUESTED. 00764 M00S00763.sxmain +++|# 00765 M00S00764.sxmain +++| 00766 M00S00765.sxmain +++| ITEM MEMCHNG I; # CHANGE IN MEMORY REQUESTED # 00767 M00S00766.sxmain +++| ITEM RESP U; # RESPONSE TO MEMORY REQUEST # 00768 M00S00767.sxmain +++| 00769 M00S00768.sxmain +++|# 00770 M00S00769.sxmain +++|**** PROC MNGMEM - XREF LIST BEGIN. 00771 M00S00770.sxmain +++|# 00772 M00S00771.sxmain +++| 00773 M00S00772.sxmain +++| XREF 00774 M00S00773.sxmain +++| BEGIN 00775 M00S00774.sxmain +++| PROC MEMORY; # REQUEST MEMORY CHANGE # 00776 M00S00775.sxmain +++| END 00777 M00S00776.sxmain +++| 00778 M00S00777.sxmain +++|# 00779 M00S00778.sxmain +++|**** PROC MNGMEM - XREF LIST END. 00780 M00S00779.sxmain +++|# 00781 M00S00780.sxmain +++| 00782 M00S00781.sxmain +++| DEF MEMAU #O"100"#; # MEMORY ALLOCATION UNIT # 00783 M00S00782.sxmain +++| 00784 M00S00783.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00785 M00S00784.sxmain +++|*CALL,COMBFAS 00786 M00S00785.sxmain +++|*CALL,COMXMSC 00787 M00S00786.sxmain +++| 00788 M00S00787.sxmain +++| ITEM AMTMEM I; # AMOUNT OF MEMORY NEEDED # 00789 M00S00788.sxmain +++| ITEM BLKMEM I; # MEMORY BLOCK SIZE # 00790 M00S00789.sxmain +++| 00791 M00S00790.sxmain +++| ARRAY MEMSTAT [0:0] P(1); # MEMORY REQUEST # 00792 M00S00791.sxmain +++| BEGIN 00793 M00S00792.sxmain +++| ITEM MEMVAL U(00,00,30); # NEW FIELD LENGTH VALUE # 00794 M00S00793.sxmain +++| END 00795 M00S00794.sxmain +++| 00796 M00S00795.sxmain +++| CONTROL EJECT; 00797 M00S00796.sxmain +++| 00798 M00S00797.sxmain +++|# 00799 M00S00798.sxmain +++|* CALCULATE SIZE OF FIELD LENGTH TO REQUEST. 00800 M00S00799.sxmain +++|# 00801 M00S00800.sxmain +++| 00802 M00S00801.sxmain +++| IF (MEMCHNG GQ 0 ## 00803 M00S00802.sxmain +++| AND MEMCHNG GR UNU$FL) ## 00804 M00S00803.sxmain +++| OR ((UNU$FL - MEMCHNG) GQ MEMAU) 00805 M00S00804.sxmain +++| THEN 00806 M00S00805.sxmain +++| BEGIN # MEMORY REQUEST NEEDED # 00807 M00S00806.sxmain +++| AMTMEM = MEMCHNG - UNU$FL; 00808 M00S00807.sxmain +++| IF AMTMEM GQ 0 00809 M00S00808.sxmain +++| THEN # IF *FL* TO BE INCREASED # 00810 M00S00809.sxmain +++| BEGIN 00811 M00S00810.sxmain +++| BLKMEM = (((AMTMEM - 1)/MEMAU) + 1) * MEMAU; 00812 M00S00811.sxmain +++| END 00813 M00S00812.sxmain +++| 00814 M00S00813.sxmain +++| ELSE # IF *FL* TO BE DECREASED # 00815 M00S00814.sxmain +++| BEGIN 00816 M00S00815.sxmain +++| BLKMEM = ((AMTMEM / MEMAU) * MEMAU); 00817 M00S00816.sxmain +++| END 00818 M00S00817.sxmain +++| 00819 M00S00818.sxmain +++| MEMVAL[0] = CUR$FL + BLKMEM; 00820 M00S00819.sxmain +++| 00821 M00S00820.sxmain +++|# 00822 M00S00821.sxmain +++|* REQUEST FIELD LENGTH CHANGE AND UPDATE RELEVANT VALUES. 00823 M00S00822.sxmain +++|# 00824 M00S00823.sxmain +++| 00825 M00S00824.sxmain +++| MEMORY("CM",MEMSTAT,RCL,NA); 00826 M00S00825.sxmain +++| IF MEMVAL[0] NQ (CUR$FL + BLKMEM) 00827 M00S00826.sxmain +++| THEN # IF MEMORY REQUEST DENIED # 00828 M00S00827.sxmain +++| BEGIN 00829 M00S00828.sxmain +++| RESP = 0; 00830 M00S00829.sxmain +++| RETURN; 00831 M00S00830.sxmain +++| END 00832 M00S00831.sxmain +++| 00833 M00S00832.sxmain +++| CUR$FL = MEMVAL[0]; # UPDATE *FL* VALUES # 00834 M00S00833.sxmain +++| NFLCHNG = NFLCHNG + 1; 00835 M00S00834.sxmain +++| IF CUR$FL GR MAX$FL 00836 M00S00835.sxmain +++| THEN # UPDATE MAXIMUM *FL* REACHED # 00837 M00S00836.sxmain +++| BEGIN 00838 M00S00837.sxmain +++| MAX$FL = CUR$FL; 00839 M00S00838.sxmain +++| END 00840 M00S00839.sxmain +++| 00841 M00S00840.sxmain +++| END # MEMORY REQUEST NEEDED # 00842 M00S00841.sxmain +++| 00843 M00S00842.sxmain +++| RESP = NEXTADR; # RETURN *FWA* OF MEMORY AREA TO 00844 M00S00843.sxmain +++| CALLER # 00845 M00S00844.sxmain +++| NEXTADR = NEXTADR + MEMCHNG; 00846 M00S00845.sxmain +++| UNU$FL = CUR$FL - NEXTADR; 00847 M00S00846.sxmain +++| RETURN; 00848 M00S00847.sxmain +++| END # MNGMEM # 00849 M00S00848.sxmain +++| 00850 M00S00849.sxmain +++| TERM 00851 M00S00850.sxmain +++|PROC MSASDIR; 00852 M00S00851.sxmain +++| 00853 M00S00852.sxmain +++|# TITLE MSASDIR - *SSEXEC* DIRECTOR. # 00854 M00S00853.sxmain +++| 00855 M00S00854.sxmain +++| BEGIN # MSASDIR # 00856 M00S00855.sxmain +++| 00857 M00S00856.sxmain +++|# 00858 M00S00857.sxmain +++|** MSASDIR - *SSEXEC* DIRECTOR. 00859 M00S00858.sxmain +++|* 00860 M00S00859.sxmain +++|* *MSASDIR* IS THE OVERALL DIRECTOR WHICH INITIATES 00861 M00S00860.sxmain +++|* THE MAJOR PHASES OF *SSEXEC* ACTIVITY. IF THE 00862 M00S00861.sxmain +++|* *MASTER/*SLAVE* FLAG IN *CMR* INDICATES *SLAVE* 00863 M00S00862.sxmain +++|* MODE, A JOB ADVANCE OCCURS AND *SSSLV* IS LOADED. 00864 M00S00863.sxmain +++|* *MSASDIR* CALLS *STARTUP* TO DO ALL INITIALIZATION, 00865 M00S00864.sxmain +++|* AND THEN CALLS *MAINLP* FROM WHICH ALL MAJOR PROCESSING 00866 M00S00865.sxmain +++|* ROUTINES ARE CALLED. WHEN TERMINATION CONDITIONS 00867 M00S00866.sxmain +++|* OCCUR, CONTROL RETURNS TO *MSASDIR*, WHICH THEN CALLS 00868 M00S00867.sxmain +++|* *WRAPUP* TO DO ALL NORMAL TERMINATION PROCESSING. 00869 M00S00868.sxmain +++|* 00870 M00S00869.sxmain +++|* PROC MSASDIR 00871 M00S00870.sxmain +++|* 00872 M00S00871.sxmain +++|* ENTRY CONTROL COMMAND PARAMETERS HAVE BEEN PLACED IN JOB 00873 M00S00872.sxmain +++|* COMMUNICATION AREA AND CONTROL REGISTER R1 IS SET 00874 M00S00873.sxmain +++|* TO 0 (INITIAL LOAD OF EXEC) OR *RESTART* (DEFINED 00875 M00S00874.sxmain +++|* IN *COMXMSC*). 00876 M00S00875.sxmain +++|* 00877 M00S00876.sxmain +++|* EXIT TERMINATION IS DUE TO ONE OF THE FOLLOWING 00878 M00S00877.sxmain +++|* 1. *MSAS* HAS BEEN TERMINATED NORMALLY VIA 00879 M00S00878.sxmain +++|* AN *N.IDLE* CONSOLE COMMAND. R1 IS UNCHANGED. 00880 M00S00879.sxmain +++|* 00881 M00S00880.sxmain +++|* MESSAGES 00882 M00S00881.sxmain +++|* * SSEXEC TERMINATING.*. 00883 M00S00882.sxmain +++|* * SLAVE MODE - LOADING SSSLV.*. 00884 M00S00883.sxmain +++|* * FATAL INITIALIZATION ERROR.*. 00885 M00S00884.sxmain +++|* * OPERATOR IDLE OF EXEC.*. 00886 M00S00885.sxmain +++|# 00887 M00S00886.sxmain +++| 00888 M00S00887.sxmain +++| 00889 M00S00888.sxmain +++|# 00890 M00S00889.sxmain +++|**** PROC MSASDIR - XREF LIST BEGIN. 00891 M00S00890.sxmain +++|# 00892 M00S00891.sxmain +++| 00893 M00S00892.sxmain +++| XREF 00894 M00S00893.sxmain +++| BEGIN 00895 M00S00894.sxmain +++| PROC ABORT; # CALLS *ABORT* MACRO # 00896 M00S00895.sxmain +++| PROC GETMI; # GET MACHINE INFORMATION # 00897 M00S00896.sxmain +++| PROC SSOVL; # LOAD *MSAS* OVERLAYS # 00898 M00S00897.sxmain +++| PROC MAINLP; # MAIN PROCESSING LOOP # 00899 M00S00898.sxmain +++| PROC MESSAGE; # ISSUE MESSAGE # 00900 M00S00899.sxmain +++| PROC STARTUP; # *SSEXEC* INITIALIZER # 00901 M00S00900.sxmain +++| END 00902 M00S00901.sxmain +++| 00903 M00S00902.sxmain +++|# 00904 M00S00903.sxmain +++|**** PROC MSASDIR - XREF LIST END. 00905 M00S00904.sxmain +++|# 00906 M00S00905.sxmain +++| 00907 M00S00906.sxmain +++| STATUS MSGTYPE # TYPE OF MESSAGE TO ISSUE # 00908 M00S00907.sxmain +++| HEADER, # MESSAGE HEADER # 00909 M00S00908.sxmain +++| SLAVE, # SLAVE MODE # 00910 M00S00909.sxmain +++| FATAL, # FATAL ERROR # 00911 M00S00910.sxmain +++| IDLE; # EXEC IDLED # 00912 M00S00911.sxmain +++| 00913 M00S00912.sxmain +++| CONTROL PRESET; 00914 M00S00913.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00915 M00S00914.sxmain +++|*CALL,COMBFAS 00916 M00S00915.sxmain +++|*CALL,COMBCMD 00917 M00S00916.sxmain +++|*CALL,COMBKDA 00918 M00S00917.sxmain +++|*CALL,COMBMCT 00919 M00S00918.sxmain +++|*CALL,COMBOVL 00920 M00S00919.sxmain +++|*CALL,COMBTDM 00921 M00S00920.sxmain +++|*CALL,COMBUCR 00922 M00S00921.sxmain +++|*CALL,COMBUDT 00923 M00S00922.sxmain +++|*CALL,COMXCTF 00924 M00S00923.sxmain +++|*CALL,COMXIPR 00925 M00S00924.sxmain +++|*CALL,COMXMFD 00926 M00S00925.sxmain +++|*CALL,COMXMMF 00927 M00S00926.sxmain +++|*CALL,COMXMSC 00928 M00S00927.sxmain +++| 00929 M00S00928.sxmain +++| ITEM TERMTYPE S:MSGTYPE; # TERMINATION TYPE # 00930 M00S00929.sxmain +++| 00931 M00S00930.sxmain +++| ARRAY MSGLINE [0:3] S(4); # CONTAINS DAYFILE MESSAGES # 00932 M00S00931.sxmain +++| BEGIN 00933 M00S00932.sxmain +++| ITEM MSGITEM C(00,00,38)=[ # CHARACTER STRINGS # 00934 M00S00933.sxmain +++| "$SSEXEC TERMINATING.", 00935 M00S00934.sxmain +++| "$MSAS MASTER DISABLED - ABORT.", 00936 M00S00935.sxmain +++| "$FATAL INITIALIZATION ERROR.", 00937 M00S00936.sxmain +++| "$OPERATOR IDLE OF EXEC."]; 00938 M00S00937.sxmain +++| ITEM MSGZERO U(03,48,12)=[0]; # ZERO BYTE TERMINATOR # 00939 M00S00938.sxmain +++| END 00940 M00S00939.sxmain +++| 00941 M00S00940.sxmain +++| CONTROL EJECT; 00942 M00S00941.sxmain +++| 00943 M00S00942.sxmain +++|# 00944 M00S00943.sxmain +++|* CHECK FOR *MASTER* OR *SLAVE* MAINFRAME STATUS. 00945 M00S00944.sxmain +++|# 00946 M00S00945.sxmain +++| 00947 M00S00946.sxmain +++| GETMI(CMRINFO[0],EVENT); 00948 M00S00947.sxmain +++| IF CMR$SLAVE[0] 00949 M00S00948.sxmain +++| THEN # *SLAVE* MODE INDICATED # 00950 M00S00949.sxmain +++| BEGIN 00951 M00S00950.sxmain +++| FATALERR = TRUE; 00952 M00S00951.sxmain +++| TERMTYPE = S"SLAVE"; 00953 M00S00952.sxmain +++| GOTO ENDJOB; # CAUSE JOB ADVANCE # 00954 M00S00953.sxmain +++| END 00955 M00S00954.sxmain +++| 00956 M00S00955.sxmain +++|# 00957 M00S00956.sxmain +++|* PERFORM *SSEXEC* INITIALIZATION. 00958 M00S00957.sxmain +++|# 00959 M00S00958.sxmain +++| 00960 M00S00959.sxmain +++| STARTUP; 00961 M00S00960.sxmain +++| 00962 M00S00961.sxmain +++| IF FATALERR 00963 M00S00962.sxmain +++| THEN # FATAL ERROR IN INITIALIZATION # 00964 M00S00963.sxmain +++| BEGIN 00965 M00S00964.sxmain +++| TERMTYPE = S"FATAL"; 00966 M00S00965.sxmain +++| GOTO ENDJOB; 00967 M00S00966.sxmain +++| END 00968 M00S00967.sxmain +++| 00969 M00S00968.sxmain +++|# 00970 M00S00969.sxmain +++|* ENTER MAIN PROCESSING LOOP. 00971 M00S00970.sxmain +++|# 00972 M00S00971.sxmain +++| 00973 M00S00972.sxmain +++| MAINLP; 00974 M00S00973.sxmain +++| 00975 M00S00974.sxmain +++|# 00976 M00S00975.sxmain +++|* PERFORM TERMINATION PROCESSING. 00977 M00S00976.sxmain +++|# 00978 M00S00977.sxmain +++| 00979 M00S00978.sxmain +++| SSOVL(LWRAPUP,0); 00980 M00S00979.sxmain +++| TERMTYPE = S"IDLE"; 00981 M00S00980.sxmain +++| 00982 M00S00981.sxmain +++|# 00983 M00S00982.sxmain +++|* ISSUE TERMINATION MESSAGES AND ADVANCE TO NEXT JOB STEP. 00984 M00S00983.sxmain +++|# 00985 M00S00984.sxmain +++| 00986 M00S00985.sxmain +++|ENDJOB: 00987 M00S00986.sxmain +++| MESSAGE(MSGLINE[MSGTYPE"HEADER"],SYSUDF1); 00988 M00S00987.sxmain +++| MESSAGE(MSGLINE[TERMTYPE],SYSUDF1); 00989 M00S00988.sxmain +++| IF FATALERR 00990 M00S00989.sxmain +++| THEN 00991 M00S00990.sxmain +++| BEGIN 00992 M00S00991.sxmain +++| ABORT; 00993 M00S00992.sxmain +++| END 00994 M00S00993.sxmain +++| 00995 M00S00994.sxmain +++| RETURN; 00996 M00S00995.sxmain +++| END # MSASDIR # 00997 M00S00996.sxmain +++| 00998 M00S00997.sxmain +++| TERM 00999 M00S00998.sxmain +++|PROC NEWWORK; 01000 M00S00999.sxmain +++| 01001 M00S01000.sxmain +++|# TITLE NEWWORK - ACQUIRES NEW WORK FOR *SSEXEC* TO PROCESS. # 01002 M00S01001.sxmain +++| 01003 M00S01002.sxmain +++| BEGIN # NEWWORK # 01004 M00S01003.sxmain +++| 01005 M00S01004.sxmain +++|# 01006 M00S01005.sxmain +++|** NEWWORK - ACQUIRES NEW WORK FOR *SSEXEC* TO PROCESS. 01007 M00S01006.sxmain +++|* 01008 M00S01007.sxmain +++|* *NEWWORK* DETERMINES IF ANY NEW WORK EXISTS WHICH 01009 M00S01008.sxmain +++|* CAN BE ACCEPTED AT THIS TIME. FOR ANY ACCEPTABLE 01010 M00S01009.sxmain +++|* NEW WORK, THE APPROPRIATE REQUEST PROCESSOR IS CALLED 01011 M00S01010.sxmain +++|* (*UCP*, *TDAM*, *SLAVE*, *SCAN$LTCT*, AND/OR *SSMOVE* 01012 M00S01011.sxmain +++|* REQUEST PROCESSOR). IF EITHER *RCLMCAT* OR *RCLMMAP* 01013 M00S01012.sxmain +++|* (DEFINED IN *ECTFCOM*) IS TRUE, THEN THE *RCLMLK* OVERLAY 01014 M00S01013.sxmain +++|* IS LOADED TO RECLAIM CATALOG OR MAP INTERLOCKS. 01015 M00S01014.sxmain +++|* 01016 M00S01015.sxmain +++|* PROC NEWWORK 01017 M00S01016.sxmain +++|* 01018 M00S01017.sxmain +++|* ENTRY TEST FOR NEW WORK IN *MAINLP* IS SUCCESSFUL. 01019 M00S01018.sxmain +++|* 01020 M00S01019.sxmain +++|* EXIT NEW REQUESTS PROCESSED AS FAR AS POSSIBLE. 01021 M00S01020.sxmain +++|# 01022 M00S01021.sxmain +++| 01023 M00S01022.sxmain +++|# 01024 M00S01023.sxmain +++|**** PROC NEWWORK - XREF LIST BEGIN. 01025 M00S01024.sxmain +++|# 01026 M00S01025.sxmain +++| 01027 M00S01026.sxmain +++| XREF 01028 M00S01027.sxmain +++| BEGIN 01029 M00S01028.sxmain +++| PROC CRELSLK; # RELEASE CATALOG INTERLOCKS # 01030 M00S01029.sxmain +++| PROC DSNTDAM; # GET NEXT DESTAGE REQUEST # 01031 M00S01030.sxmain +++| PROC HLRQENQ; # BUILD *HLRQ* ENTRY # 01032 M00S01031.sxmain +++| PROC SSOVL; # LOAD *MSAS* OVERLAYS # 01033 M00S01032.sxmain +++| PROC MOVERP; # *SSMOVE* REQUEST PROCESSOR # 01034 M00S01033.sxmain +++| PROC SCAN$LTCT; # SCAN LONG TERM CONNECT TABLE # 01035 M00S01034.sxmain +++| PROC SLAVERP; # *SSSLV* REQUEST PROCESSOR # 01036 M00S01035.sxmain +++| PROC TDAM$RP; # *TDAM* REQUEST PROCESSOR # 01037 M00S01036.sxmain +++| PROC UCP$RES; # REPLY TO A *UCP* # 01038 M00S01037.sxmain +++| PROC UCP$RP; # *UCP* REQUEST PROCESSOR # 01039 M00S01038.sxmain +++| END 01040 M00S01039.sxmain +++| 01041 M00S01040.sxmain +++|# 01042 M00S01041.sxmain +++|**** PROC NEWWORK - XREF LIST END. 01043 M00S01042.sxmain +++|# 01044 M00S01043.sxmain +++| 01045 M00S01044.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01046 M00S01045.sxmain +++|*CALL,COMBFAS 01047 M00S01046.sxmain +++|*CALL,COMBCHN 01048 M00S01047.sxmain +++|*CALL,COMBCPR 01049 M00S01048.sxmain +++|*CALL,COMBOVL 01050 M00S01049.sxmain +++|*CALL,COMBTDM 01051 M00S01050.sxmain +++|*CALL COMBUDT 01052 M00S01051.sxmain +++|*CALL COMBUCR 01053 M00S01052.sxmain +++|*CALL,COMXCTF 01054 M00S01053.sxmain +++|*CALL,COMXHLR 01055 M00S01054.sxmain +++|*CALL,COMXJCA 01056 M00S01055.sxmain +++|*CALL,COMXLTC 01057 M00S01056.sxmain +++|*CALL,COMXMFD 01058 M00S01057.sxmain +++|*CALL,COMXMSC 01059 M00S01058.sxmain +++| 01060 M00S01059.sxmain +++| 01061 M00S01060.sxmain +++|
Line S00001 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01062 M01S00001.sxmain1 +++| ITEM ACTIVEHLRQ I; # *HLRQ* COUNT # 01063 M00S01061.sxmain +++| ITEM HLRQADR U; # *HLRQ* ENTRY ADDRESS # 01064 M00S01062.sxmain +++| ITEM I I; # INDEX COUNTER #
Line S00002 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01065 M01S00002.sxmain1 +++| ITEM LINK I; # LINK TO NEXT *HLRQ* # 01066 M00S01063.sxmain +++| ITEM STAT U; # STATUS # 01067 M00S01064.sxmain +++| CONTROL EJECT; 01068 M00S01065.sxmain +++| 01069 M00S01066.sxmain +++|# 01070 M00S01067.sxmain +++|* PROCESS *UCP* REQUESTS. ALL TYPE 4 REQUESTS AND ALL UPDATE-UDT 01071 M00S01068.sxmain +++|* TYPE 5 REQUESTS REQUIRE AN AVAILABLE *LLRQ* ENTRY. 01072 M00S01069.sxmain +++|# 01073 M00S01070.sxmain +++| 01074 M00S01071.sxmain +++| IF RA$SSCINLK[0] 01075 M00S01072.sxmain +++| THEN # *UCP* BUFFER CONTAINS REQUEST # 01076 M00S01073.sxmain +++| BEGIN # CHECK *UCP* REQUEST # 01077 M00S01074.sxmain +++| P<CPR> = RA$SSCAP[0] + 2; 01078 M00S01075.sxmain +++| 01079 M00S01076.sxmain +++| IF ((CPR$RQT[0] EQ TYP"TYP4") ## 01080 M00S01077.sxmain +++| OR ((CPR$RQT[0] EQ TYP"TYP5") ## 01081 M00S01078.sxmain +++| AND (CPR$RQC[0] EQ REQTYP5"SSA$UUDT")) ## 01082 M00S01079.sxmain +++| AND (CHN$BOC[LCHN"LL$FRSPC"] NQ 0)) ## 01083 M00S01080.sxmain +++| OR ((CPR$RQT[0] NQ TYP"TYP4") ## 01084 M00S01081.sxmain +++| AND ((CPR$RQT[0] NQ TYP"TYP5") ## 01085 M00S01082.sxmain +++| OR (CPR$RQC[0] NQ REQTYP5"SSA$UUDT"))) 01086 M00S01083.sxmain +++| THEN # REQUEST CAN BE PROCESSED # 01087 M00S01084.sxmain +++| BEGIN 01088 M00S01085.sxmain +++| UCP$RP; 01089 M00S01086.sxmain +++| END 01090 M00S01087.sxmain +++| 01091 M00S01088.sxmain +++| END # CHECK *UCP* REQUEST # 01092 M00S01089.sxmain +++| 01093 M00S01090.sxmain +++|# 01094 M00S01091.sxmain +++|* PROCESS ONLY UCP REQUESTS IF IN FULL INITIALIZATION. 01095 M00S01092.sxmain +++|# 01096 M00S01093.sxmain +++| 01097 M00S01094.sxmain +++| IF INITIALIZE 01098 M00S01095.sxmain +++| THEN # STOP REQUEST PROCESSING # 01099 M00S01096.sxmain +++| BEGIN # EXIT # 01100 M00S01097.sxmain +++| RETURN; 01101 M00S01098.sxmain +++| END # EXIT # 01102 M00S01099.sxmain +++| 01103 M00S01100.sxmain +++|# 01104 M00S01101.sxmain +++|* RECLAIM CATALOG OR MAP INTERLOCKS IF NECESSARY. 01105 M00S01102.sxmain +++|# 01106 M00S01103.sxmain +++| 01107 M00S01104.sxmain +++| IF RCLMCAT OR RCLMMAP 01108 M00S01105.sxmain +++| THEN # INTERLOCKS TO BE RECLAIMED # 01109 M00S01106.sxmain +++| BEGIN 01110 M00S01107.sxmain +++| SSOVL(LRCLMLK,0); 01111 M00S01108.sxmain +++| END 01112 M00S01109.sxmain +++| 01113 M00S01110.sxmain +++|# 01114 M00S01111.sxmain +++|* PROCESS *TDAM* REQUESTS. 01115 M00S01112.sxmain +++|# 01116 M00S01113.sxmain +++| 01117 M00S01114.sxmain +++| IF CHN$BOC[LCHN"RTD$ACT"] NQ 0 ## 01118 M00S01115.sxmain +++| AND (STG$MSK EQ 0) 01119 M00S01116.sxmain +++| THEN # REQUEST CAN BE PROCESSED # 01120 M00S01117.sxmain +++| BEGIN 01121 M00S01118.sxmain +++| TDAM$RP; 01122 M00S01119.sxmain +++| END 01123 M00S01120.sxmain +++| 01124 M00S01121.sxmain +++|# 01125 M00S01122.sxmain +++|* CHECK IF DESTAGING IS TO BE INITIATED. 01126 M00S01123.sxmain +++|# 01127 M00S01124.sxmain +++|
Line S01125 Modification History | |
---|---|
M01 (Removed by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01128 M01S01125.sxmain1 ---| STAT = 0; 01129 M01S01126.sxmain1 ---| SLOWFOR I=1 STEP 1 UNTIL MAXSMUNIT 01130 M01S01127.sxmain1 ---| DO 01131 M01S01128.sxmain1 ---| BEGIN # CHECK FOR A DESTAGE SUBSPENDED # 01132 M01S01129.sxmain1 ---| IF SM$EXIST[I] 01133 M01S01130.sxmain1 ---| THEN 01134 M01S01131.sxmain1 ---| BEGIN 01135 M01S01132.sxmain1 ---| IF SM$DSRQF[I] 01136 M01S01133.sxmain1 ---| THEN 01137 M01S01134.sxmain1 ---| BEGIN # WAIT RESOURSE FREE UP # 01138 M01S01135.sxmain1 ---| STAT = 1; 01139 M01S01136.sxmain1 ---| GOTO SMFOUND; 01140 M01S01137.sxmain1 ---| END 01141 M01S01138.sxmain1 ---| END # END CHECK FOR DESTAGE SUBSPENDED # 01142 M01S01139.sxmain1 ---| END 01143 M01S01140.sxmain1 ---| 01144 M01S01141.sxmain1 ---|SMFOUND:
Line S00003 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01145 M01S00003.sxmain1 +++| IF DSC$INIT EQ 0 01146 M01S00004.sxmain1 +++| THEN 01147 M01S00005.sxmain1 +++| BEGIN 01148 M01S00006.sxmain1 +++| RETURN; 01149 M01S00007.sxmain1 +++| END 01150 M01S00008.sxmain1 +++| 01151 M01S00009.sxmain1 +++| ACTIVEHLRQ = 0; 01152 M01S00010.sxmain1 +++| LINK = CHN$BOC[LCHN"HL$ACTV"]; 01153 M01S00011.sxmain1 +++| 01154 M01S00012.sxmain1 +++| REPEAT WHILE LINK NQ 0 01155 M01S00013.sxmain1 +++| DO 01156 M01S00014.sxmain1 +++| BEGIN # SEARCH *HLRQ* CHAIN # 01157 M01S00015.sxmain1 +++| P<HLRQ> = LINK; 01158 M01S00016.sxmain1 +++| LINK = HLR$LNK2; 01159 M01S00017.sxmain1 +++| ACTIVEHLRQ = ACTIVEHLRQ + 1; 01160 M01S00018.sxmain1 +++| END # COUNT THE ACTIVE NUMBER OF *HLRQ-S* # 01161 M01S00019.sxmain1 +++| 01162 M01S00020.sxmain1 +++| IF ACTIVEHLRQ NQ 0 01163 M01S00021.sxmain1 +++| THEN 01164 M01S00022.sxmain1 +++| BEGIN # LET ONE OVER BUFFER COUNT START # 01165 M01S00023.sxmain1 +++| ACTIVEHLRQ = ACTIVEHLRQ - 1; 01166 M01S00024.sxmain1 +++| END 01167 M01S00025.sxmain1 +++| 01168 M01S00026.sxmain1 +++| IF ACTIVEHLRQ EQ MAX$ACHN 01169 M01S00027.sxmain1 +++| THEN 01170 M01S00028.sxmain1 +++| BEGIN 01171 M01S00029.sxmain1 +++| DSC$INIT = 0; 01172 M01S00030.sxmain1 +++| DSC$WRESRS = 1; 01173 M01S00031.sxmain1 +++| END 01174 M01S00032.sxmain1 +++| 01175 M00S01142.sxmain +++| IF (DSC$INIT NQ 0) ## 01176 M00S01143.sxmain +++| AND (CHN$BOC[LCHN"HL$FRSPC"] NQ 0) ##
Line S01144 Modification History | |
---|---|
M01 (Removed by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01177 M01S01144.sxmain1 ---| AND (STAT EQ 0) 01178 M00S01145.sxmain +++| THEN 01179 M00S01146.sxmain +++| BEGIN 01180 M00S01147.sxmain +++| 01181 M00S01148.sxmain +++| IF DSC$LKMSK NQ 0 01182 M00S01149.sxmain +++| THEN 01183 M00S01150.sxmain +++| BEGIN 01184 M00S01151.sxmain +++| CRELSLK(DSC$FAM,DSC$LKMSK,0,STAT); 01185 M00S01152.sxmain +++| DSC$LKMSK = 0; 01186 M00S01153.sxmain +++| END 01187 M00S01154.sxmain +++|
Line S01155 Modification History | |
---|---|
M01 (Removed by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01188 M01S01155.sxmain1 ---| DSC$INIT = 0; 01189 M00S01156.sxmain +++| HLRQENQ(HLRQADR); 01190 M00S01157.sxmain +++| P<HLRQ> = HLRQADR; 01191 M00S01158.sxmain +++| HLR$HPN[0] = HLRPN"DESTAGE"; 01192 M00S01159.sxmain +++| HLR$RESP[0] = ERRST"NXTSUBF"; 01193 M00S01160.sxmain +++| 01194 M00S01161.sxmain +++| DSNTDAM(HLRQADR); 01195 M00S01162.sxmain +++| 01196 M00S01163.sxmain +++| P<TDAM> = LOC(HLR$TDAM[0]); 01197 M00S01164.sxmain +++| IF TDAMFC[0] EQ TDAMFCODE"NOREQ" 01198 M00S01165.sxmain +++| THEN # DONE WITH DESTAGING # 01199 M00S01166.sxmain +++| BEGIN 01200 M00S01167.sxmain +++| LTCENTRY = DSC$LTCT; 01201 M00S01168.sxmain +++| IF DSC$LTCT NQ 0 AND LTC$RQI[LTCENTRY] EQ REQNAME"RQIMOVE" 01202 M00S01169.sxmain +++| THEN # REPLY TO *SSMOVE* # 01203 M00S01170.sxmain +++| BEGIN 01204 M00S01171.sxmain +++| LTC$RQR[LTCENTRY] = RESPTYP2"OK2"; 01205 M00S01172.sxmain +++| UCP$RES; # NOTIFY *SSMOVE* # 01206 M00S01173.sxmain +++| DSC$LTCT = 0; 01207 M00S01174.sxmain +++| END 01208 M00S01175.sxmain +++| 01209 M00S01176.sxmain +++| STG$MSK = 0; 01210 M00S01177.sxmain +++| DSC$FAM = 0;
Line S00033 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01211 M01S00033.sxmain1 +++| DSC$INIT = 0; 01212 M01S00034.sxmain1 +++| DSC$WRESRS = 0; 01213 M00S01178.sxmain +++| HLR$HPS[0] = PROCST"COMPLETE"; 01214 M00S01179.sxmain +++| END 01215 M00S01180.sxmain +++| 01216 M00S01181.sxmain +++| END 01217 M00S01182.sxmain +++| 01218 M00S01183.sxmain +++| 01219 M00S01184.sxmain +++| RETURN; 01220 M00S01185.sxmain +++| END # NEWWORK # 01221 M00S01186.sxmain +++| 01222 M00S01187.sxmain +++| TERM 01223 M00S01188.sxmain +++|PROC RCLTEST; 01224 M00S01189.sxmain +++| 01225 M00S01190.sxmain +++|# TITLE RCLTEST - TESTS RECALL CRITERIA FOR *SSEXEC*. # 01226 M00S01191.sxmain +++| 01227 M00S01192.sxmain +++| BEGIN # RCLTEST # 01228 M00S01193.sxmain +++| 01229 M00S01194.sxmain +++|# 01230 M00S01195.sxmain +++|** RCLTEST - TESTS RECALL CRITERIA FOR *SSEXEC*. 01231 M00S01196.sxmain +++|* 01232 M00S01197.sxmain +++|* *RCLTEST* CHECKS WHETHER THE CRITERIA FOR 01233 M00S01198.sxmain +++|* PUTTING *SSEXEC* INTO RECALL ARE MET. IF THE 01234 M00S01199.sxmain +++|* EARLIEST EXPIRATION TIME EXCEEDS A DEFINED 01235 M00S01200.sxmain +++|* THRESHOLD (*SWAPTHRESH*), *SSEXEC* ALSO REDUCES 01236 M00S01201.sxmain +++|* ITS FIELD LENGTH BEFORE GOING INTO RECALL. 01237 M00S01202.sxmain +++|* 01238 M00S01203.sxmain +++|* PROC RCLTEST 01239 M00S01204.sxmain +++|* 01240 M00S01205.sxmain +++|* ENTRY CALLED UNCONDITIONALLY BY *MAINLP* EACH 01241 M00S01206.sxmain +++|* TIME THROUGH THE LOOP. 01242 M00S01207.sxmain +++|* 01243 M00S01208.sxmain +++|* EXIT CRITERIA FOR RECALL ARE NOT MET, EXPIRATION 01244 M00S01209.sxmain +++|* TIME HAS BEEN REACHED, OR A CONDITION FOR 01245 M00S01210.sxmain +++|* RESUMING ACTIVITY HAS BEEN SATISFIED. 01246 M00S01211.sxmain +++|# 01247 M00S01212.sxmain +++| 01248 M00S01213.sxmain +++|# 01249 M00S01214.sxmain +++|**** PROC RCLTEST - XREF LIST BEGIN. 01250 M00S01215.sxmain +++|# 01251 M00S01216.sxmain +++| 01252 M00S01217.sxmain +++| XREF 01253 M00S01218.sxmain +++| BEGIN 01254 M00S01219.sxmain +++| PROC DOZER; # PUT *SSEXEC* INTO RECALL # 01255 M00S01220.sxmain +++| PROC GETACT; # GET ACTIVITY COUNT # 01256 M00S01221.sxmain +++| PROC RTIME; # GET TIME SINCE LAST DEADSTART # 01257 M00S01222.sxmain +++| PROC SWAPPER; # REDUCE FIELD LENGTH OF *SSEXEC* 01258 M00S01223.sxmain +++| # 01259 M00S01224.sxmain +++| END 01260 M00S01225.sxmain +++| 01261 M00S01226.sxmain +++|# 01262 M00S01227.sxmain +++|**** PROC RCLTEST - XREF LIST END. 01263 M00S01228.sxmain +++|# 01264 M00S01229.sxmain +++| 01265 M00S01230.sxmain +++| 01266 M00S01231.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01267 M00S01232.sxmain +++|*CALL,COMBFAS 01268 M00S01233.sxmain +++|*CALL,COMBCHN 01269 M00S01234.sxmain +++|*CALL,COMBKDA 01270 M00S01235.sxmain +++|*CALL,COMBKDD 01271 M00S01236.sxmain +++|*CALL,COMBTDM 01272 M00S01237.sxmain +++|*CALL,COMBUDT 01273 M00S01238.sxmain +++|*CALL,COMXCTF 01274 M00S01239.sxmain +++|*CALL,COMXIPR 01275 M00S01240.sxmain +++|*CALL,COMXJCA 01276 M00S01241.sxmain +++|*CALL,COMXMFD 01277 M00S01242.sxmain +++|*CALL,COMXMSC 01278 M00S01243.sxmain +++|
Line S00001 Modification History | |
---|---|
M01 (Added by) | msea025 |
Seq # *Modification Id* Act ----------------------------+ 01279 M01S00001.msea025 +++| ITEM I U; # COUNTER # 01280 M01S00002.msea025 +++| ITEM J U; # COUNTER # 01281 M00S01244.sxmain +++| ITEM EXPIRTIME U; # EXPIRATION TIME # 01282 M00S01245.sxmain +++| ITEM PPUSTAT U; # STATUS FROM *GETACT* # 01283 M00S01246.sxmain +++| 01284 M00S01247.sxmain +++| CONTROL EJECT; 01285 M00S01248.sxmain +++| 01286 M00S01249.sxmain +++|# 01287 M00S01250.sxmain +++|* RETURN IF THERE IS WORK TO BE DONE. 01288 M00S01251.sxmain +++|# 01289 M00S01252.sxmain +++| 01290 M00S01253.sxmain +++| IF (RA$TDAM[0] NQ 0 AND CHN$BOC[LCHN"RTD$FRSPC"] NQ 0) ## 01291 M00S01254.sxmain +++| OR RA$SSCINLK ## 01292 M00S01255.sxmain +++| OR KB$CLEAR[0] NQ 0 ## 01293 M00S01256.sxmain +++| OR DRVRRECALL 01294 M00S01257.sxmain +++| THEN 01295 M00S01258.sxmain +++| BEGIN 01296 M00S01259.sxmain +++| RETURN; 01297 M00S01260.sxmain +++| END 01298 M00S01261.sxmain +++| 01299 M00S01262.sxmain +++| IF (CHN$BOC[LCHN"RTD$ACT"] NQ 0 AND STG$MSK EQ 0 ## 01300 M00S01263.sxmain +++| AND NOT INITIALIZE) ## 01301 M00S01264.sxmain +++| OR (DSC$INIT NQ 0 AND CHN$BOC[LCHN"HL$FRSPC"] NQ 0 ## 01302 M00S01265.sxmain +++| AND NOT INITIALIZE) ## 01303 M00S01266.sxmain +++| OR CHN$BOC[LCHN"HL$READY"] NQ 0 ## 01304 M00S01267.sxmain +++| OR CHN$BOC[LCHN"LL$READY"] NQ 0 01305 M00S01268.sxmain +++| THEN # ACTIVE CHAINS NOT ALL EMPTY # 01306 M00S01269.sxmain +++| BEGIN 01307 M00S01270.sxmain +++| RETURN; 01308 M00S01271.sxmain +++| END 01309 M00S01272.sxmain +++| 01310 M00S01273.sxmain +++|# 01311 M00S01274.sxmain +++|* CALCULATE RECALL EXPIRATION AS THE MINIMUM OF VARIOUS 01312 M00S01275.sxmain +++|* OTHER EXPIRATION TIMES. 01313 M00S01276.sxmain +++|# 01314 M00S01277.sxmain +++| 01315 M00S01278.sxmain +++| EXPIRTIME = MAXTIME; 01316 M00S01279.sxmain +++| IF MINQ$EXPIR GR 0 01317 M00S01280.sxmain +++| THEN 01318 M00S01281.sxmain +++| BEGIN 01319 M00S01282.sxmain +++| EXPIRTIME = MINQ$EXPIR; 01320 M00S01283.sxmain +++| END 01321 M00S01284.sxmain +++| 01322 M00S01285.sxmain +++| IF ITLK$EXPIR GR 0 ## 01323 M00S01286.sxmain +++| AND ITLK$EXPIR LS EXPIRTIME 01324 M00S01287.sxmain +++| THEN 01325 M00S01288.sxmain +++| BEGIN 01326 M00S01289.sxmain +++| EXPIRTIME = ITLK$EXPIR; 01327 M00S01290.sxmain +++| END 01328 M00S01291.sxmain +++| 01329 M00S01292.sxmain +++| IF MAP$EXPIR GR 0 AND MAP$EXPIR LS EXPIRTIME 01330 M00S01293.sxmain +++| THEN 01331 M00S01294.sxmain +++| BEGIN 01332 M00S01295.sxmain +++| EXPIRTIME = MAP$EXPIR; 01333 M00S01296.sxmain +++| END 01334 M00S01297.sxmain +++| 01335 M00S01298.sxmain +++| IF UCP$EXPIR GR 0 ## 01336 M00S01299.sxmain +++| AND UCP$EXPIR LS EXPIRTIME 01337 M00S01300.sxmain +++| THEN 01338 M00S01301.sxmain +++| BEGIN 01339 M00S01302.sxmain +++| EXPIRTIME = UCP$EXPIR; 01340 M00S01303.sxmain +++| END 01341 M00S01304.sxmain +++| 01342 M00S01305.sxmain +++| IF KDIS$EXPIR GR 0 ## 01343 M00S01306.sxmain +++| AND KDIS$EXPIR LS EXPIRTIME 01344 M00S01307.sxmain +++| THEN 01345 M00S01308.sxmain +++| BEGIN 01346 M00S01309.sxmain +++| EXPIRTIME = KDIS$EXPIR; 01347 M00S01310.sxmain +++| END 01348 M00S01311.sxmain +++|
Line S00035 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 01349 M01S00035.sxmain1 +++| IF KSM$EXPIR GR 0 ## 01350 M01S00036.sxmain1 +++| AND KSM$EXPIR LS EXPIRTIME 01351 M01S00037.sxmain1 +++| THEN # SM DISPLAY UP # 01352 M01S00038.sxmain1 +++| BEGIN # PRESERVE # 01353 M01S00039.sxmain1 +++| EXPIRTIME = KSM$EXPIR; 01354 M01S00040.sxmain1 +++| END # PRESERVE # 01355 M01S00041.sxmain1 +++| 01356 M00S01312.sxmain +++|# 01357 M00S01313.sxmain +++|* PUT *SSEXEC* INTO RECALL. IF THE EXPIRATION TIME EXCEEDS A 01358 M00S01314.sxmain +++|* THRESHOLD, NO PP IS ACTIVE, THE * REQUEST K-DISPLAY* MESSAGE 01359 M00S01315.sxmain +++|* IS NOT ON THE *B-DISPLAY* AND NO CONNECTED *UCP*-S ARE SWAPPED 01360 M00S01316.sxmain +++|* OUT, REDUCE FIELD LENGTH FIRST. 01361 M00S01317.sxmain +++|# 01362 M00S01318.sxmain +++| 01363 M00S01319.sxmain +++| RTIME(RTIMESTAT[0]); 01364 M00S01320.sxmain +++| 01365 M00S01321.sxmain +++| IF (EXPIRTIME - RTIMSECS[0] GR SWAPTHRESH) ## 01366 M00S01322.sxmain +++| AND (NOT DRVRRECALL) ## 01367 M00S01323.sxmain +++| AND KREQCLEAR ## 01368 M00S01324.sxmain +++| AND (NOT GLBUCPSW) ## 01369 M00S01325.sxmain +++| AND CHN$BOC[LCHN"HL$ACTV"] EQ 0 01370 M00S01326.sxmain +++| 01371 M00S01327.sxmain +++| THEN 01372 M00S01328.sxmain +++| BEGIN
Line S00003 Modification History | |
---|---|
M01 (Added by) | msea025 |
Seq # *Modification Id* Act ----------------------------+ 01373 M01S00003.msea025 +++| IF (DSC$INIT EQ 0) 01374 M01S00004.msea025 +++| AND (DSC$WRESRS EQ 1) 01375 M01S00005.msea025 +++| THEN 01376 M01S00006.msea025 +++| BEGIN 01377 M01S00007.msea025 +++| DSC$INIT = 1; 01378 M01S00008.msea025 +++| DSC$WRESRS = 0; 01379 M01S00009.msea025 +++| SLOWFOR I = 1STEP 1 UNTIL MAXSMUNIT 01380 M01S00010.msea025 +++| DO 01381 M01S00011.msea025 +++| BEGIN 01382 M01S00012.msea025 +++| SM$DSRFW[I] = 0; 01383 M01S00013.msea025 +++| END 01384 M01S00014.msea025 +++| SLOWFOR J = 0 STEP 1 UNTIL MAXSF 01385 M01S00015.msea025 +++| DO 01386 M01S00016.msea025 +++| BEGIN 01387 M01S00017.msea025 +++| SCR$WTDRD[J] = FALSE; 01388 M01S00018.msea025 +++| END 01389 M01S00019.msea025 +++| END 01390 M00S01329.sxmain +++| GETACT(PPUSTAT); # CHECK FOR ACTIVE PPU # 01391 M00S01330.sxmain +++| P<ACTSTAT> = LOC(PPUSTAT);
Line S01331 Modification History | |
---|---|
M01 (Removed by) | msea025 |
Seq # *Modification Id* Act ----------------------------+ 01392 M01S01331.msea025 ---| IF ACT$STCNT[0] EQ 0
Line S00020 Modification History | |
---|---|
M01 (Added by) | msea025 |
Seq # *Modification Id* Act ----------------------------+ 01393 M01S00020.msea025 +++| IF (ACT$STCNT[0] EQ 0) 01394 M01S00021.msea025 +++| AND (DSC$INIT EQ 0) 01395 M00S01332.sxmain +++| THEN # NO ACTIVE PPU # 01396 M00S01333.sxmain +++| BEGIN 01397 M00S01334.sxmain +++| SWAPPER(EXPIRTIME); # REDUCE FIELD LENGTH AND RECALL # 01398 M00S01335.sxmain +++| RETURN; 01399 M00S01336.sxmain +++| END 01400 M00S01337.sxmain +++| 01401 M00S01338.sxmain +++| ELSE # PPU STILL ACTIVE # 01402 M00S01339.sxmain +++| BEGIN 01403 M00S01340.sxmain +++| EXPIRTIME = RTIMSECS[0] + SWAPTHRESH; 01404 M00S01341.sxmain +++| END 01405 M00S01342.sxmain +++| 01406 M00S01343.sxmain +++| END 01407 M00S01344.sxmain +++| 01408 M00S01345.sxmain +++| DOZER(EXPIRTIME); # ISSUE RECALL REQUEST # 01409 M00S01346.sxmain +++| 01410 M00S01347.sxmain +++| RETURN; 01411 M00S01348.sxmain +++| END # RCLTEST # 01412 M00S01349.sxmain +++| 01413 M00S01350.sxmain +++| TERM 01414 M00S01351.sxmain +++|PROC RCLMLK; 01415 M00S01352.sxmain +++| 01416 M00S01353.sxmain +++|# TITLE RCLMLK - RECLAIM INTERLOCKED CATALOGS AND MAPS. # 01417 M00S01354.sxmain +++| 01418 M00S01355.sxmain +++| BEGIN # RCLMLK # 01419 M00S01356.sxmain +++| 01420 M00S01357.sxmain +++|# 01421 M00S01358.sxmain +++|** RCLMLK - RECLAIM INTERLOCKED CATALOGS AND MAPS. 01422 M00S01359.sxmain +++|* 01423 M00S01360.sxmain +++|* *RCLMLK* RECLAIMS INTERLOCKED CATALOGS AND/OR SMA MAPS. 01424 M00S01361.sxmain +++|* 01425 M00S01362.sxmain +++|* PROC RCLMLK 01426 M00S01363.sxmain +++|* 01427 M00S01364.sxmain +++|* ENTRY (RCLMCAT) - RECLAIM CATALOG INTERLOCKS FLAG 01428 M00S01365.sxmain +++|* (DEFINED IN *ECTFCOM*). 01429 M00S01366.sxmain +++|* = TRUE, RECLAIM CATALOGS. 01430 M00S01367.sxmain +++|* = FALSE, DO NOT RECLAIM CATALOGS. 01431 M00S01368.sxmain +++|* (RCLMMAP) - RECLAIM SMA MAP INTERLOCKS FLAG 01432 M00S01369.sxmain +++|* (DEFINED IN *ECTFCOM*). 01433 M00S01370.sxmain +++|* = TRUE, RECLAIM MAPS. 01434 M00S01371.sxmain +++|* = FALSE, DO NOT RECLAIM MAPS. 01435 M00S01372.sxmain +++|* 01436 M00S01373.sxmain +++|* EXIT CATALOG AND/OR MAP INTERLOCKS HAVE BEEN RECLAIMED, AND 01437 M00S01374.sxmain +++|* EXPIRATION TIMES HAVE BEEN ADJUSTED IF NECESSARY. 01438 M00S01375.sxmain +++|* 01439 M00S01376.sxmain +++|* MESSAGES * EXEC ABNORMAL, RCLMLK.*. 01440 M00S01377.sxmain +++|# 01441 M00S01378.sxmain +++| 01442 M00S01379.sxmain +++|# 01443 M00S01380.sxmain +++|**** PROC RCLMLK - XREF LIST BEGIN. 01444 M00S01381.sxmain +++|# 01445 M00S01382.sxmain +++| 01446 M00S01383.sxmain +++| XREF 01447 M00S01384.sxmain +++| BEGIN 01448 M00S01385.sxmain +++| PROC ABORT; # ABORT PROCESSING # 01449 M00S01386.sxmain +++| PROC CRCLMLK; # RECLAIM CATALOG INTERLOCKS # 01450 M00S01387.sxmain +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 01451 M00S01388.sxmain +++| PROC MRCLMLK; # RECLAIM SMA MAP INTERLOCKS # 01452 M00S01389.sxmain +++| PROC RTIME; # GET CURRENT TIME # 01453 M00S01390.sxmain +++| PROC SETPFP; # SET FAMILY AND USER INDEX # 01454 M00S01391.sxmain +++| END 01455 M00S01392.sxmain +++| 01456 M00S01393.sxmain +++|# 01457 M00S01394.sxmain +++|**** PROC RCLMLK - XREF LIST END. 01458 M00S01395.sxmain +++|# 01459 M00S01396.sxmain +++| 01460 M00S01397.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01461 M00S01398.sxmain +++|*CALL,COMBFAS 01462 M00S01399.sxmain +++|*CALL,COMBCMS 01463 M00S01400.sxmain +++|*CALL,COMBPFP 01464 M00S01401.sxmain +++|*CALL,COMXCTF 01465 M00S01402.sxmain +++|*CALL,COMXIPR 01466 M00S01403.sxmain +++|*CALL,COMXMSC 01467 M00S01404.sxmain +++| 01468 M00S01405.sxmain +++| ITEM I I; # INDUCTION VARIABLE # 01469 M00S01406.sxmain +++| ITEM STAT I; # ERROR STATUS # 01470 M00S01407.sxmain +++| 01471 M00S01408.sxmain +++| CONTROL EJECT; 01472 M00S01409.sxmain +++| 01473 M00S01410.sxmain +++|# 01474 M00S01411.sxmain +++|* RECLAIM CATALOG INTERLOCKS. 01475 M00S01412.sxmain +++|# 01476 M00S01413.sxmain +++| 01477 M00S01414.sxmain +++| IF RCLMCAT 01478 M00S01415.sxmain +++| THEN 01479 M00S01416.sxmain +++| BEGIN # RECLAIM CATALOGS # 01480 M00S01417.sxmain +++| RCLMCAT = FALSE; 01481 M00S01418.sxmain +++| CRCLMLK(STAT); 01482 M00S01419.sxmain +++| END # RECLAIM CATALOGS # 01483 M00S01420.sxmain +++| 01484 M00S01421.sxmain +++|# 01485 M00S01422.sxmain +++|* RECLAIM SMA MAP INTERLOCKS. 01486 M00S01423.sxmain +++|# 01487 M00S01424.sxmain +++| 01488 M00S01425.sxmain +++| IF RCLMMAP 01489 M00S01426.sxmain +++| THEN 01490 M00S01427.sxmain +++| BEGIN # RECLAIM SMA MAPS # 01491 M00S01428.sxmain +++| PFP$WRD0[0] = 0; 01492 M00S01429.sxmain +++| PFP$FG1[0] = TRUE; 01493 M00S01430.sxmain +++| PFP$FG4[0] = TRUE; 01494 M00S01431.sxmain +++| PFP$FAM[0] = DEF$FAM; 01495 M00S01432.sxmain +++| PFP$UI[0] = DEF$UI; 01496 M00S01433.sxmain +++| SETPFP(PFP[0]); 01497 M00S01434.sxmain +++| IF PFP$STAT NQ OK 01498 M00S01435.sxmain +++| THEN 01499 M00S01436.sxmain +++| BEGIN 01500 M00S01437.sxmain +++| FE$RTN[0] = "RCLMLK."; 01501 M00S01438.sxmain +++| MESSAGE(FEMSG[0],UDFL1); 01502 M00S01439.sxmain +++| ABORT; 01503 M00S01440.sxmain +++| END 01504 M00S01441.sxmain +++| 01505 M00S01442.sxmain +++| RCLMMAP = FALSE; 01506 M00S01443.sxmain +++| MAPINTLK = FALSE; 01507 M00S01444.sxmain +++| MAP$EXPIR = 0; 01508 M00S01445.sxmain +++| FASTFOR I = 1 STEP 1 UNTIL MAXSM 01509 M00S01446.sxmain +++| DO 01510 M00S01447.sxmain +++| BEGIN 01511 M00S01448.sxmain +++| MRCLMLK(I,STAT); 01512 M00S01449.sxmain +++| IF STAT EQ CMASTAT"INTLK" 01513 M00S01450.sxmain +++| THEN 01514 M00S01451.sxmain +++| BEGIN 01515 M00S01452.sxmain +++| MAPINTLK = TRUE; 01516 M00S01453.sxmain +++| END 01517 M00S01454.sxmain +++| 01518 M00S01455.sxmain +++| END 01519 M00S01456.sxmain +++| 01520 M00S01457.sxmain +++| IF MAPINTLK 01521 M00S01458.sxmain +++| THEN 01522 M00S01459.sxmain +++| BEGIN 01523 M00S01460.sxmain +++| RTIME(RTIMESTAT[0]); 01524 M00S01461.sxmain +++| MAP$EXPIR = RTIMSECS[0] + MAP$INTV; 01525 M00S01462.sxmain +++| END 01526 M00S01463.sxmain +++| 01527 M00S01464.sxmain +++| END # RECLAIM SMA MAPS # 01528 M00S01465.sxmain +++| 01529 M00S01466.sxmain +++| END # RCLMLK # 01530 M00S01467.sxmain +++| 01531 M00S01468.sxmain +++| TERM 01532 M00S01469.sxmain +++|PROC SCAN$LTCT; 01533 M00S01470.sxmain +++| 01534 M00S01471.sxmain +++|# TITLE SCAN$LTCT - PROCESS SWAPPED OUT *UCP*-S. # 01535 M00S01472.sxmain +++| 01536 M00S01473.sxmain +++| BEGIN # SCAN$LTCT # 01537 M00S01474.sxmain +++| 01538 M00S01475.sxmain +++|# 01539 M00S01476.sxmain +++|** SCAN$LTCT - PROCESS SWAPPED OUT *UCP*-S. 01540 M00S01477.sxmain +++|* 01541 M00S01478.sxmain +++|* *SCAN$LTCT* SCANS THE *LTCT* TO REISSUE *UCP* RESPONSE CALLS 01542 M00S01479.sxmain +++|* FOR ENTRIES WHICH HAVE THE SWAPPED-UCP FLAG SET. IT IS CALLED 01543 M00S01480.sxmain +++|* PERIODICALLY FROM *MAINLP*. 01544 M00S01481.sxmain +++|* 01545 M00S01482.sxmain +++|* PROC SCAN$LTCT 01546 M00S01483.sxmain +++|* 01547 M00S01484.sxmain +++|* ENTRY IF THE GLOBAL SWAPPED *UCP* FLAG (*GLBUCPSW*) 01548 M00S01485.sxmain +++|* IS SET, AN ATTEMPT IS MADE TO RESPOND TO ANY 01549 M00S01486.sxmain +++|* PREVIOUSLY SWAPPED OUT *UCP*-S. IF *GLBUCPSW* 01550 M00S01487.sxmain +++|* IS NOT SET, NO PROCESSING IS DONE. 01551 M00S01488.sxmain +++|* 01552 M00S01489.sxmain +++|* EXIT ANY SWAPPED-OUT *UCP*-S HAVE BEEN PROCESSED. 01553 M00S01490.sxmain +++|# 01554 M00S01491.sxmain +++| 01555 M00S01492.sxmain +++|# 01556 M00S01493.sxmain +++|**** PROC SCAN$LTCT - XREF LIST BEGIN. 01557 M00S01494.sxmain +++|# 01558 M00S01495.sxmain +++| 01559 M00S01496.sxmain +++| XREF 01560 M00S01497.sxmain +++| BEGIN 01561 M00S01498.sxmain +++| PROC RTIME; # GET TIME SINCE LAST DEADSTART # 01562 M00S01499.sxmain +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 01563 M00S01500.sxmain +++| PROC UCP$RES; # NOTIFY *UCP* OF COMPLETION # 01564 M00S01501.sxmain +++| END 01565 M00S01502.sxmain +++| 01566 M00S01503.sxmain +++|# 01567 M00S01504.sxmain +++|**** PROC SCAN$LTCT - XREF LIST END. 01568 M00S01505.sxmain +++|# 01569 M00S01506.sxmain +++| 01570 M00S01507.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01571 M00S01508.sxmain +++|*CALL,COMBFAS 01572 M00S01509.sxmain +++|*CALL,COMBUCR 01573 M00S01510.sxmain +++|*CALL,COMXCTF 01574 M00S01511.sxmain +++|*CALL,COMXIPR 01575 M00S01512.sxmain +++|*CALL,COMXLTC 01576 M00S01513.sxmain +++|*CALL,COMXMSC 01577 M00S01514.sxmain +++| 01578 M00S01515.sxmain +++| CONTROL EJECT; 01579 M00S01516.sxmain +++| 01580 M00S01517.sxmain +++|# 01581 M00S01518.sxmain +++|* ONLY PROCESS SWAPPED OUT *UCP*-S. 01582 M00S01519.sxmain +++|# 01583 M00S01520.sxmain +++| 01584 M00S01521.sxmain +++| IF NOT GLBUCPSW 01585 M00S01522.sxmain +++| THEN 01586 M00S01523.sxmain +++| BEGIN 01587 M00S01524.sxmain +++| RETURN; 01588 M00S01525.sxmain +++| END 01589 M00S01526.sxmain +++| 01590 M00S01527.sxmain +++| UCP$EXPIR = 0; 01591 M00S01528.sxmain +++| 01592 M00S01529.sxmain +++| GLBUCPSW = FALSE; 01593 M00S01530.sxmain +++| FASTFOR LTCENTRY = 1 STEP 1 UNTIL LTCTCNT 01594 M00S01531.sxmain +++| DO 01595 M00S01532.sxmain +++| BEGIN # CHECK FOR *UCP* SWAPPED # 01596 M00S01533.sxmain +++| IF LTC$UCPSW[LTCENTRY] 01597 M00S01534.sxmain +++| THEN 01598 M00S01535.sxmain +++| BEGIN # CHECK SWAP IN STATUS # 01599 M00S01536.sxmain +++| IF LTC$SFFCC[LTCENTRY] 01600 M00S01537.sxmain +++| THEN 01601 M00S01538.sxmain +++| BEGIN 01602 M00S01539.sxmain +++| UCP$RES; 01603 M00S01540.sxmain +++| END 01604 M00S01541.sxmain +++| 01605 M00S01542.sxmain +++| ELSE 01606 M00S01543.sxmain +++| BEGIN 01607 M00S01544.sxmain +++| GLBUCPSW = TRUE; 01608 M00S01545.sxmain +++| RTIME(RTIMESTAT[0]); 01609 M00S01546.sxmain +++| UCP$EXPIR = RTIMSECS[0] + UCP$INTV; 01610 M00S01547.sxmain +++| END 01611 M00S01548.sxmain +++| 01612 M00S01549.sxmain +++| END # CHECK SWAP IN STATUS # 01613 M00S01550.sxmain +++| 01614 M00S01551.sxmain +++| END # CHECK FOR *UCP* SWAPPED # 01615 M00S01552.sxmain +++| 01616 M00S01553.sxmain +++| RETURN; 01617 M00S01554.sxmain +++| END # SCAN$LTCT # 01618 M00S01555.sxmain +++| 01619 M00S01556.sxmain +++| TERM 01620 M00S01557.sxmain +++|PROC SLAVERP(CALLERCTL); 01621 M00S01558.sxmain +++| 01622 M00S01559.sxmain +++|# TITLE SLAVERP - SLAVE REQUEST PROCESSOR. # 01623 M00S01560.sxmain +++| 01624 M00S01561.sxmain +++| BEGIN # SLAVERP # 01625 M00S01562.sxmain +++| 01626 M00S01563.sxmain +++|# 01627 M00S01564.sxmain +++|** SLAVERP - SLAVE REQUEST PROCESSOR. 01628 M00S01565.sxmain +++|* 01629 M00S01566.sxmain +++|* *SLAVERP* IS PERIODICALLY CALLED TO READ AND PROCESS THE 01630 M00S01567.sxmain +++|* COMMUNICATION FILE FROM EACH DEFINED *SSSLV*. AN INFORMATIVE 01631 M00S01568.sxmain +++|* OPERATOR MESSAGE WILL BE DISPLAYED FOR ANY *SSSLV* WHOSE 01632 M00S01569.sxmain +++|* ACTIVE/INACTIVE STATUS HAS CHANGED SINCE THE PREVIOUS TIME ITS 01633 M00S01570.sxmain +++|* COMMUNICATION FILE WAS READ. ALSO, THE STATUS OF EACH REQUEST 01634 M00S01571.sxmain +++|* BLOCK FOR EACH ACTIVE *SSSLV* IS EXAMINED TO DETERMINE IF ANY 01635 M00S01572.sxmain +++|* PROCESSING BY THE *SSEXEC* IS REQUIRED. IF STAGE REQUESTS ARE 01636 M00S01573.sxmain +++|* DETECTED, THEY ARE ADDED TO THE *HLRQ*. 01637 M00S01574.sxmain +++|* 01638 M00S01575.sxmain +++|* PROC SLAVERP(CALLERCTL) 01639 M00S01576.sxmain +++|* 01640 M00S01577.sxmain +++|* ENTRY (CALLERCTL) =0, IF CALLED BY *MAINLP*. 01641 M00S01578.sxmain +++|* .NQ. 0, IF CALLED BY *DOZER*. 01642 M00S01579.sxmain +++|* 01643 M00S01580.sxmain +++|* THE IDENTITY AND PREVIOUS STATUS OF EACH DEFINED SLAVE 01644 M00S01581.sxmain +++|* EXEC IS CONTAINED IN THE BUFFER FOR THE HEADER PORTION 01645 M00S01582.sxmain +++|* OF THE *MTOS* FILE. 01646 M00S01583.sxmain +++|* (NXTRB) = THE NEXT REQUEST BLOCK FROM WHICH A STAGE 01647 M00S01584.sxmain +++|* REQUEST WILL BE ACCEPTED. 01648 M00S01585.sxmain +++|* 01649 M00S01586.sxmain +++|* EXIT (CALLERCTL) =0, IF CALLED BY *DOZER* AND SLAVE 01650 M00S01587.sxmain +++|* REQUESTS NEED TO BE PROCESSED. 01651 M00S01588.sxmain +++|* UNCHANGED OTHERWISE. 01652 M00S01589.sxmain +++|* 01653 M00S01590.sxmain +++|* THE VARIABLE *STOM$EXPIR* IS UPDATED 01654 M00S01591.sxmain +++|* TO REFLECT THE NEXT TIME THIS PROCEDURE SHOULD BE 01655 M00S01592.sxmain +++|* CALLED. 01656 M00S01593.sxmain +++|* 01657 M00S01594.sxmain +++|* THE HEADER PORTION OF THE *MTOS* FILE BUFFER IS 01658 M00S01595.sxmain +++|* UPDATED TO REFLECT ANY NEW STATUS INFORMATION FOR EACH 01659 M00S01596.sxmain +++|* *SSSLV*. THE REPLY BLOCK PORTION OF THE *MTOS* FILE 01660 M00S01597.sxmain +++|* IS UPDATED TO REFLECT ANY RESPONSE TO REQUESTS IN THE 01661 M00S01598.sxmain +++|* REQUEST BLOCKS (SEE THE COMPOSITE REQUEST/REPLY BLOCK 01662 M00S01599.sxmain +++|* STATUS DESCRIPTION IN *COMXMMF*). 01663 M00S01600.sxmain +++|* 01664 M00S01601.sxmain +++|* NOTES IF THE *STOM* FILE FOR A GIVEN *SSSLV* ENCOUNTERS A 01665 M00S01602.sxmain +++|* READ ERROR OR IF THE FILE LENGTH IS DIFFERENT FROM 01666 M00S01603.sxmain +++|* WHAT IS EXPECTED, THE STATUS OF THAT *SSSLV* 01667 M00S01604.sxmain +++|* WILL BE SET TO UNDEFINED. IF THIS RESULTS IN NO 01668 M00S01605.sxmain +++|* DEFINED *SSSLV*, THEN THE *STOM$EXPIR* WORD WILL BE 01669 M00S01606.sxmain +++|* SET TO A VERY LARGE VALUE SO THE *SSSLV* REQUEST 01670 M00S01607.sxmain +++|* PROCESSOR IS NEVER CALLED. 01671 M00S01608.sxmain +++|* 01672 M00S01609.sxmain +++|* MESSAGES * EXEC - SLAVE N XXXX.* 01673 M00S01610.sxmain +++|* AN INFORMATIVE MESSAGE INDICATING THAT 01674 M00S01611.sxmain +++|* A CHANGE IN THE STATUS OF THE INDICATED 01675 M00S01612.sxmain +++|* *SSSLV* PROGRAM HAS BEEN DETECTED. THE 01676 M00S01613.sxmain +++|* NEW *SSSLV* STATUS IS INDICATED BY *XXXX*, 01677 M00S01614.sxmain +++|* WHICH CAN BE *ACTIVE* OR *INACTIVE*. 01678 M00S01615.sxmain +++|* 01679 M00S01616.sxmain +++|* * EXEC - SLAVE N OMITTED -* 01680 M00S01617.sxmain +++|* - STOM FILE ERROR.* 01681 M00S01618.sxmain +++|* THIS MESSAGE INDICATES THAT AN ERROR CONDITION 01682 M00S01619.sxmain +++|* WAS DETECTED WHILE READING THE COMMUNICATION 01683 M00S01620.sxmain +++|* FILE FROM THE SPECIFIED *SSSLV* PROGRAM. 01684 M00S01621.sxmain +++|* THE *SSEXEC* WILL CONTINUE TO OPERATE, BUT WILL 01685 M00S01622.sxmain +++|* NOT ATTEMPT TO RECEIVE REQUESTS FROM THE 01686 M00S01623.sxmain +++|* SPECIFIED *SSSLV* PROGRAM. 01687 M00S01624.sxmain +++|* 01688 M00S01625.sxmain +++|# 01689 M00S01626.sxmain +++| 01690 M00S01627.sxmain +++| ITEM CALLERCTL U; # CALLER IDENTIFICATION # 01691 M00S01628.sxmain +++| 01692 M00S01629.sxmain +++|# 01693 M00S01630.sxmain +++|**** PROC SLAVERP - XREF LIST BEGIN. 01694 M00S01631.sxmain +++|# 01695 M00S01632.sxmain +++| 01696 M00S01633.sxmain +++| XREF 01697 M00S01634.sxmain +++| BEGIN 01698 M00S01635.sxmain +++| PROC MESSAGE; # ISSUE MESSAGE MACRO # 01699 M00S01636.sxmain +++| PROC PDATE; # ISSUE PDATE MACRO # 01700 M00S01637.sxmain +++| PROC READ; # READ FILE # 01701 M00S01638.sxmain +++| PROC REWIND; # REWIND FILE # 01702 M00S01639.sxmain +++| PROC RTIME; # ISSUE RTIME MACRO # 01703 M00S01640.sxmain +++| PROC SLVRBP; # SLAVE REQUEST BLOCK PROCESSOR # 01704 M00S01641.sxmain +++| FUNC XCOD C(10); # INTEGER TO DISPLAY # 01705 M00S01642.sxmain +++| PROC ZSETFET; # INITIALIZE *FET* # 01706 M00S01643.sxmain +++| END 01707 M00S01644.sxmain +++| 01708 M00S01645.sxmain +++|# 01709 M00S01646.sxmain +++|**** PROC SLAVERP - XREF LIST END. 01710 M00S01647.sxmain +++|# 01711 M00S01648.sxmain +++| 01712 M00S01649.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01713 M00S01650.sxmain +++|*CALL,COMBFAS 01714 M00S01651.sxmain +++|*CALL,COMBFET 01715 M00S01652.sxmain +++|*CALL,COMXCTF 01716 M00S01653.sxmain +++|*CALL,COMXIPR 01717 M00S01654.sxmain +++|*CALL,COMXJCA 01718 M00S01655.sxmain +++|*CALL,COMXMMF 01719 M00S01656.sxmain +++|*CALL,COMXMSC 01720 M00S01657.sxmain +++| 01721 M00S01658.sxmain +++| 01722 M00S01659.sxmain +++| ITEM DELAY U; # NUMBER OF SECONDS UNTIL NEXT 01723 M00S01660.sxmain +++| READ OF *STOM* # 01724 M00S01661.sxmain +++| ITEM DELTART I; # CHANGE IN THRESHOLD # 01725 M00S01662.sxmain +++| ITEM PASSCTR U; # DUMMY INDUCION VARIABLE # 01726 M00S01663.sxmain +++| CONTROL EJECT; 01727 M00S01664.sxmain +++| 01728 M00S01665.sxmain +++| SLVACTIVE = FALSE; # ASSUME NO SLAVES ACTIVE # 01729 M00S01666.sxmain +++| DELAY = SLRP$INTV; 01730 M00S01667.sxmain +++| RELOOP = FALSE; 01731 M00S01668.sxmain +++| SLOWFOR PASSCTR = 1 STEP 1 UNTIL 2 01732 M00S01669.sxmain +++| DO 01733 M00S01670.sxmain +++| BEGIN # *STOM* SCAN # 01734 M00S01671.sxmain +++| IF (NOT RELOOP OR NXTRB NQ 0) ## 01735 M00S01672.sxmain +++| AND PASSCTR EQ 2 01736 M00S01673.sxmain +++| THEN # EXIT IF SECOND PASS NOT NEEDED 01737 M00S01674.sxmain +++| OR NOT USEFUL # 01738 M00S01675.sxmain +++| BEGIN 01739 M00S01676.sxmain +++| TEST PASSCTR; 01740 M00S01677.sxmain +++| END 01741 M00S01678.sxmain +++| 01742 M00S01679.sxmain +++| SLOWFOR SINDX = 1 STEP 1 UNTIL NUMSLV 01743 M00S01680.sxmain +++| DO 01744 M00S01681.sxmain +++| BEGIN # PROCESS NEXT SLAVE # 01745 M00S01682.sxmain +++| P<MTOSREPBLK> = LOC(MTOSHEAD) + L$MTOSH + (SINDX-1)*NUMRB; 01746 M00S01683.sxmain +++| IF NOT MSH$DEFD[SINDX] 01747 M00S01684.sxmain +++| THEN # SLAVE NOT DEFINED # 01748 M00S01685.sxmain +++| BEGIN 01749 M00S01686.sxmain +++| TEST SINDX; 01750 M00S01687.sxmain +++| END 01751 M00S01688.sxmain +++| 01752 M00S01689.sxmain +++|# 01753 M00S01690.sxmain +++|* READ *STOM* FILE. 01754 M00S01691.sxmain +++|# 01755 M00S01692.sxmain +++| 01756 M00S01693.sxmain +++| ZSETFET(LOC(STOMM),MSH$PFNS[SINDX],LOC(STOMMBUF), ## 01757 M00S01694.sxmain +++| STOMBUFL,SFETL); 01758 M00S01695.sxmain +++| P<STOMFILE> = LOC(STOMMBUF); 01759 M00S01696.sxmain +++| REWIND(STOMM,RCL); 01760 M00S01697.sxmain +++| READ(STOMM,RCL); 01761 M00S01698.sxmain +++| PDATE(PDATESTAT[0]); 01762 M00S01699.sxmain +++| RTIME(RTIMESTAT[0]); 01763 M00S01700.sxmain +++| 01764 M00S01701.sxmain +++|# 01765 M00S01702.sxmain +++|* CHECK FOR FILE LENGTH OK AND NO *CIO* ERRORS. 01766 M00S01703.sxmain +++|# 01767 M00S01704.sxmain +++| 01768 M00S01705.sxmain +++| IF (FET$AT[0] NQ 0) ## 01769 M00S01706.sxmain +++| OR (FET$IN[0]-FET$OUT[0] LS L$STOM) 01770 M00S01707.sxmain +++| THEN # *STOM* READ ERROR OR TOO SHORT # 01771 M00S01708.sxmain +++| BEGIN # ISSUE ERROR MESSAGE # 01772 M00S01709.sxmain +++| MSH$DEFD[SINDX] = FALSE; 01773 M00S01710.sxmain +++| SLAVECTR = SLAVECTR - 1; 01774 M00S01711.sxmain +++| CHAR10 = XCOD(SINDX); 01775 M00S01712.sxmain +++| SLVN$INDX[0] = C<9,1>CHAR10; 01776 M00S01713.sxmain +++| SLVN$STAT[0] = "OMITTED - "; 01777 M00S01714.sxmain +++| MESSAGE(SLVNSTAT,SYSUDF1); 01778 M00S01715.sxmain +++| MMFD$PROB[0] = "STOM FILE ERROR."; 01779 M00S01716.sxmain +++| MESSAGE(MMFDETAIL,SYSUDF1); 01780 M00S01717.sxmain +++| NXTRB = 0; 01781 M00S01718.sxmain +++| TEST SINDX; 01782 M00S01719.sxmain +++| END # ISSUE ERROR MESSAGE # 01783 M00S01720.sxmain +++| 01784 M00S01721.sxmain +++| IF DELAY GR SM$DELAY[0] ## 01785 M00S01722.sxmain +++| AND SM$DELAY[0] NQ 0 01786 M00S01723.sxmain +++| THEN 01787 M00S01724.sxmain +++| BEGIN 01788 M00S01725.sxmain +++| DELAY = SM$DELAY[0]; 01789 M00S01726.sxmain +++| END 01790 M00S01727.sxmain +++| 01791 M00S01728.sxmain +++|# 01792 M00S01729.sxmain +++|* CHECK FOR CHANGE IN STATUS OF SLAVE EXEC. 01793 M00S01730.sxmain +++|# 01794 M00S01731.sxmain +++| 01795 M00S01732.sxmain +++| SLVN$INDX[0] = C<6,1>MSH$PFNS[SINDX]; 01796 M00S01733.sxmain +++| IF SM$SWC[0] NQ MSH$SWC[SINDX] 01797 M00S01734.sxmain +++| THEN # SLAVE IS ACTIVE # 01798 M00S01735.sxmain +++| BEGIN # ACTIVE STATUS # 01799 M00S01736.sxmain +++| SLVACTIVE = TRUE; 01800 M00S01737.sxmain +++| IF MSH$STATS[SINDX] NQ S"ACTIVE" 01801 M00S01738.sxmain +++| THEN 01802 M00S01739.sxmain +++| BEGIN 01803 M00S01740.sxmain +++| SLVN$STAT[0] = "ACTIVE."; 01804 M00S01741.sxmain +++| MSH$STATS[SINDX] = S"ACTIVE"; 01805 M00S01742.sxmain +++| MESSAGE(SLVNSTAT,SYSUDF1); 01806 M00S01743.sxmain +++| END 01807 M00S01744.sxmain +++| 01808 M00S01745.sxmain +++| MSH$SSW[SINDX] = SM$SSW[0]; 01809 M00S01746.sxmain +++| MSH$TIMOUT[SINDX] = RTIMSECS[0] + SLAV$INTV; 01810 M00S01747.sxmain +++| END # ACTIVE STATUS # 01811 M00S01748.sxmain +++| 01812 M00S01749.sxmain +++| ELSE # CHECK FOR TIMEOUT # 01813 M00S01750.sxmain +++| BEGIN # CHECK STATUS # 01814 M00S01751.sxmain +++| IF MSH$TIMOUT[SINDX] LS RTIMSECS[0] 01815 M00S01752.sxmain +++| THEN 01816 M00S01753.sxmain +++| BEGIN 01817 M00S01754.sxmain +++| SLVN$STAT[0] = "INACTIVE."; 01818 M00S01755.sxmain +++| MESSAGE(SLVNSTAT,SYSUDF1); 01819 M00S01756.sxmain +++| NXTRB = 0; 01820 M00S01757.sxmain +++| MSH$TIMOUT[SINDX] = MAXSECS; 01821 M00S01758.sxmain +++| MSH$STATS[SINDX] = S"DEAD"; 01822 M00S01759.sxmain +++| TEST SINDX; 01823 M00S01760.sxmain +++| END 01824 M00S01761.sxmain +++| 01825 M00S01762.sxmain +++| ELSE 01826 M00S01763.sxmain +++| BEGIN 01827 M00S01764.sxmain +++| SLVACTIVE = TRUE; 01828 M00S01765.sxmain +++| END 01829 M00S01766.sxmain +++| 01830 M00S01767.sxmain +++| END # CHECK STATUS # 01831 M00S01768.sxmain +++| 01832 M00S01769.sxmain +++|# 01833 M00S01770.sxmain +++|* EXAMINE EACH REQUEST BLOCK ON THE *STOM* FILE 01834 M00S01771.sxmain +++|* AND PROCESS ACCORDING TO ITS COMPOSITE STATUS. 01835 M00S01772.sxmain +++|# 01836 M00S01773.sxmain +++| 01837 M00S01774.sxmain +++| IF SM$REQCTL[0] NQ MSH$REQCTL[SINDX] 01838 M00S01775.sxmain +++| THEN 01839 M00S01776.sxmain +++| BEGIN 01840 M00S01777.sxmain +++| IF (CALLERCTL EQ 0) 01841 M00S01778.sxmain +++| THEN # OK TO CALL *SLVRBP* # 01842 M00S01779.sxmain +++| BEGIN 01843 M00S01780.sxmain +++| SLVRBP; 01844 M00S01781.sxmain +++| END 01845 M00S01782.sxmain +++| 01846 M00S01783.sxmain +++| ELSE # RETURN TO CALLER # 01847 M00S01784.sxmain +++| BEGIN 01848 M00S01785.sxmain +++| CALLERCTL = 0; 01849 M00S01786.sxmain +++| RETURN; 01850 M00S01787.sxmain +++| END 01851 M00S01788.sxmain +++| 01852 M00S01789.sxmain +++| END 01853 M00S01790.sxmain +++| 01854 M00S01791.sxmain +++| END # PROCESS NEXT SLAVE # 01855 M00S01792.sxmain +++| 01856 M00S01793.sxmain +++| END # *STOM* SCAN # 01857 M00S01794.sxmain +++| 01858 M00S01795.sxmain +++|# 01859 M00S01796.sxmain +++|* ESTABLISH THE NEXT TIME THE SLAVE REQUEST PROCESSOR 01860 M00S01797.sxmain +++|* IS TO BE CALLED. 01861 M00S01798.sxmain +++|# 01862 M00S01799.sxmain +++| 01863 M00S01800.sxmain +++| IF NOT SLVACTIVE 01864 M00S01801.sxmain +++| THEN # USE LARGER DELAY INTERVAL # 01865 M00S01802.sxmain +++| BEGIN 01866 M00S01803.sxmain +++| DELAY = SLAV$INTV; 01867 M00S01804.sxmain +++| END 01868 M00S01805.sxmain +++| 01869 M00S01806.sxmain +++| RTIME(RTIMESTAT[0]); 01870 M00S01807.sxmain +++| STOM$EXPIR = RTIMSECS[0] + DELAY; 01871 M00S01808.sxmain +++| IF SLAVECTR EQ 0 OR DRYUP 01872 M00S01809.sxmain +++| THEN 01873 M00S01810.sxmain +++| BEGIN 01874 M00S01811.sxmain +++| SLVACTIVE = FALSE; 01875 M00S01812.sxmain +++| STOM$EXPIR = MAXSECS; 01876 M00S01813.sxmain +++| END 01877 M00S01814.sxmain +++| 01878 M00S01815.sxmain +++| RETURN; 01879 M00S01816.sxmain +++| END # SLAVERP # 01880 M00S01817.sxmain +++| 01881 M00S01818.sxmain +++| TERM 01882 M00S01819.sxmain +++|PROC SLVRBP; 01883 M00S01820.sxmain +++| 01884 M00S01821.sxmain +++|# TITLE SLVRBP - SLAVE REQUEST BLOCK PROCESSOR. # 01885 M00S01822.sxmain +++| 01886 M00S01823.sxmain +++| BEGIN # SLVRBP # 01887 M00S01824.sxmain +++| 01888 M00S01825.sxmain +++|# 01889 M00S01826.sxmain +++|** SLVRBP - SLAVE REQUEST BLOCK PROCESSOR. 01890 M00S01827.sxmain +++|* 01891 M00S01828.sxmain +++|* *SLVRBP* CHECKS THE STATUS OF EACH REQUEST BLOCK FOR THE 01892 M00S01829.sxmain +++|* CURRENT *SSSLV* AND DETERMINES IF ANY PROCESSING BY *SSEXEC* 01893 M00S01830.sxmain +++|* IS REQUIRED. 01894 M00S01831.sxmain +++|* 01895 M00S01832.sxmain +++|* PROC SLVRBP 01896 M00S01833.sxmain +++|* 01897 M00S01834.sxmain +++|* ENTRY (PDATEV[0]) = CURRENT PACKED DATE AND TIME. 01898 M00S01835.sxmain +++|* P<MTOSREPBLK> = REPLY BLOCK PORTION OF THE *MTOS* 01899 M00S01836.sxmain +++|* FILE. 01900 M00S01837.sxmain +++|* P<STOMFILE> = *STOM* FILE REQUEST BLOCKS. 01901 M00S01838.sxmain +++|* 01902 M00S01839.sxmain +++|* EXIT THE REPLY BLOCK PORTION OF THE *MTOS* FILE IS 01903 M00S01840.sxmain +++|* UPDATED TO REFLECT ANY RESPONSE TO REQUESTS IN THE 01904 M00S01841.sxmain +++|* REQUEST BLOCKS (SEE THE COMPOSITE REQUEST/REPLY 01905 M00S01842.sxmain +++|* BLOCK STATUS DESCRIPTION IN *COMXMMF*. 01906 M00S01843.sxmain +++|# 01907 M00S01844.sxmain +++| 01908 M00S01845.sxmain +++|# 01909 M00S01846.sxmain +++|**** PROC SLVRBP - XREF LIST BEGIN. 01910 M00S01847.sxmain +++|# 01911 M00S01848.sxmain +++| 01912 M00S01849.sxmain +++| XREF 01913 M00S01850.sxmain +++| BEGIN 01914 M00S01851.sxmain +++| PROC SLVTDAM; # SLAVE *TDAM* REQUEST PROCESSOR # 01915 M00S01852.sxmain +++| END 01916 M00S01853.sxmain +++| 01917 M00S01854.sxmain +++|# 01918 M00S01855.sxmain +++|**** PROC SLVRBP - XREF LIST END. 01919 M00S01856.sxmain +++|# 01920 M00S01857.sxmain +++| 01921 M00S01858.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01922 M00S01859.sxmain +++|*CALL,COMBFAS 01923 M00S01860.sxmain +++|*CALL,COMXIPR 01924 M00S01861.sxmain +++|*CALL,COMXMMF 01925 M00S01862.sxmain +++| 01926 M00S01863.sxmain +++| ITEM I I; # LOOP COUNTER # 01927 M00S01864.sxmain +++| ITEM REJCNT I; # REJECT COUNTER # 01928 M00S01865.sxmain +++| CONTROL EJECT; 01929 M00S01866.sxmain +++| 01930 M00S01867.sxmain +++| REJCNT = 0; 01931 M00S01868.sxmain +++| FASTFOR I = 1 STEP 1 UNTIL NUMRB 01932 M00S01869.sxmain +++| DO 01933 M00S01870.sxmain +++| BEGIN # PROCESS REQUEST BLOCKS # 01934 M00S01871.sxmain +++| 01935 M00S01872.sxmain +++| IF SM$SRC[I] EQ S"AVAIL" ## 01936 M00S01873.sxmain +++| AND MSR$MRC[I] EQ S"FINISHED" 01937 M00S01874.sxmain +++| THEN 01938 M00S01875.sxmain +++| 01939 M00S01876.sxmain +++|# 01940 M00S01877.sxmain +++|* MASTER REPLY CODE PROCCESSED BY SLAVE - MAKE REQUEST BLOCK 01941 M00S01878.sxmain +++|* AVAILABLE FOR NEW REQUESTS. 01942 M00S01879.sxmain +++|# 01943 M00S01880.sxmain +++| 01944 M00S01881.sxmain +++| BEGIN 01945 M00S01882.sxmain +++| MSR$MRC[I] = S"AVAIL"; 01946 M00S01883.sxmain +++| MSR$PDATE[I] = PDATEV[0]; 01947 M00S01884.sxmain +++| TEST I; # PROCESS NEXT REQUEST # 01948 M00S01885.sxmain +++| END 01949 M00S01886.sxmain +++| 01950 M00S01887.sxmain +++| IF SM$SRC[I] EQ S"CANCEL" ## 01951 M00S01888.sxmain +++| AND MSR$MRC[I] NQ S"FINISHED" 01952 M00S01889.sxmain +++| THEN 01953 M00S01890.sxmain +++| 01954 M00S01891.sxmain +++|# 01955 M00S01892.sxmain +++|* SLAVE CANCELLED THIS REQUEST - ACKNOWLEDGE CANCELLATION. 01956 M00S01893.sxmain +++|# 01957 M00S01894.sxmain +++| 01958 M00S01895.sxmain +++| BEGIN 01959 M00S01896.sxmain +++| MSR$MRC[I] = S"FINISHED"; 01960 M00S01897.sxmain +++| MSR$REPLY[I] = S"CANCELLED"; 01961 M00S01898.sxmain +++| MSR$PDATE[I] = PDATEV[0]; 01962 M00S01899.sxmain +++| TEST I; # PROCESS NEXT REQUEST # 01963 M00S01900.sxmain +++| END 01964 M00S01901.sxmain +++| 01965 M00S01902.sxmain +++| IF SM$SRC[I] EQ S"SUBMITTED" ## 01966 M00S01903.sxmain +++| AND MSR$MRC[I] EQ S"AVAIL" 01967 M00S01904.sxmain +++| THEN 01968 M00S01905.sxmain +++| 01969 M00S01906.sxmain +++|# 01970 M00S01907.sxmain +++|* SLAVE ISSUED A NEW *TDAM* REQUEST - PROCESS THIS REQUEST. 01971 M00S01908.sxmain +++|# 01972 M00S01909.sxmain +++| 01973 M00S01910.sxmain +++| BEGIN 01974 M00S01911.sxmain +++| SLVTDAM(I,REJCNT); 01975 M00S01912.sxmain +++| END 01976 M00S01913.sxmain +++| 01977 M00S01914.sxmain +++| END # PROCESS REQUEST BLOCKS # 01978 M00S01915.sxmain +++| 01979 M00S01916.sxmain +++| IF REJCNT EQ 0 01980 M00S01917.sxmain +++| THEN 01981 M00S01918.sxmain +++| BEGIN 01982 M00S01919.sxmain +++| MSH$REQCTL[SINDX] = SM$REQCTL[0]; 01983 M00S01920.sxmain +++| END 01984 M00S01921.sxmain +++| 01985 M00S01922.sxmain +++| END # SLVPRB # 01986 M00S01923.sxmain +++| 01987 M00S01924.sxmain +++| TERM 01988 M00S01925.sxmain +++|PROC SLVTDAM((RB),REJCNT); 01989 M00S01926.sxmain +++| 01990 M00S01927.sxmain +++|# TITLE SLVTDAM - SLAVE *TDAM* REQUEST PROCESSOR. # 01991 M00S01928.sxmain +++| 01992 M00S01929.sxmain +++| BEGIN # SLVTDAM # 01993 M00S01930.sxmain +++| 01994 M00S01931.sxmain +++|# 01995 M00S01932.sxmain +++|** SLVTDAM - SLAVE *TDAM* REQUEST PROCESSOR. 01996 M00S01933.sxmain +++|* 01997 M00S01934.sxmain +++|* *SLVTDAM* DOES THE PRELIMINARY PROCESSING OF A REQUEST FROM AN 01998 M00S01935.sxmain +++|* *STOM* FILE REQUEST BLOCK. STAGE REQUESTS WHICH DUPLICATE 01999 M00S01936.sxmain +++|* THOSE ALREADY IN PROCESS (*HLRQ*) OR QUEUED (*RTRQ*) ARE 02000 M00S01937.sxmain +++|* UPDATED TO INDICATE SLAVE ORIGIN. NON-DUPLICATE STAGE 02001 M00S01938.sxmain +++|* AND OTHER REQUESTS ARE QUEUED IN THE *RTRQ* ACTIVE CHAIN. 02002 M00S01939.sxmain +++|* 02003 M00S01940.sxmain +++|* PROC SLVTDAM((RB),REJCNT) 02004 M00S01941.sxmain +++|* 02005 M00S01942.sxmain +++|* ENTRY (NXTRB) = THE NEXT REQUEST BLOCK FROM WHICH A STAGE 02006 M00S01943.sxmain +++|* REQUEST WILL BE ACCEPTED. 02007 M00S01944.sxmain +++|* (PDATEV[0]) = PACKED DATE AND TIME. 02008 M00S01945.sxmain +++|* P<MTOSREPBLK> = REPLY BLOCK PORTION OF THE *MTOS* 02009 M00S01946.sxmain +++|* FILE. 02010 M00S01947.sxmain +++|* P<STOMFILE> = *STOM* FILE REQUEST BLOCKS. 02011 M00S01948.sxmain +++|* (RB) = REQUEST BLOCK INDEX. 02012 M00S01949.sxmain +++|* (REJCNT) = REJECT COUNTER. 02013 M00S01950.sxmain +++|* (SINDX) = SLAVE INDEX. 02014 M00S01951.sxmain +++|* 02015 M00S01952.sxmain +++|* MESSAGES * INCORRECT TDAM REQUEST.* 02016 M00S01953.sxmain +++|* 02017 M00S01954.sxmain +++|* NOTES IF A STAGE REQUEST FROM REQUEST BLOCK *J* OF *SSSLV* 02018 M00S01955.sxmain +++|* *I* CANNOT BE ENTERED INTO THE *HLRQ* FOR PROCESSING 02019 M00S01956.sxmain +++|* BECAUSE EITHER THE THRESHOLD FOR *SSSLV* STAGE 02020 M00S01957.sxmain +++|* REQUESTS HAS BEEN REACHED OR BECAUSE THE *HLRQ* IS 02021 M00S01958.sxmain +++|* FULL, *NXTRB* WILL BE SET TO REFLECT THE VALUES OF 02022 M00S01959.sxmain +++|* *I* AND *J*. WHEN THIS OCCURS, ALL NORMAL PROCESSING 02023 M00S01960.sxmain +++|* OF THE *STOM* FILES CONTINUES, EXCEPT THAT ALL 02024 M00S01961.sxmain +++|* NONDUPLICATE STAGE REQUESTS ARE IGNORED UNTIL THE ONE 02025 M00S01962.sxmain +++|* FROM *SSSLV* *I*, REQUEST BLOCK *J*, CAN BE ACCEPTED. 02026 M00S01963.sxmain +++|* WHEN THIS STAGE REQUEST IS FINALLY ACCEPTED, A SECOND 02027 M00S01964.sxmain +++|* SCAN OF ALL *STOM* FILES IS MADE TO SEE IF A 02028 M00S01965.sxmain +++|* PREVIOUSLY IGNORED STAGE REQUEST CAN NOW BE ACCEPTED. 02029 M00S01966.sxmain +++|# 02030 M00S01967.sxmain +++| 02031 M00S01968.sxmain +++| ITEM RB U; # REQUEST BLOCK INDEX # 02032 M00S01969.sxmain +++| ITEM REJCNT I; # REJECT COUNTER # 02033 M00S01970.sxmain +++| 02034 M00S01971.sxmain +++|# 02035 M00S01972.sxmain +++|**** PROC SLVTDAM - XREF LIST BEGIN. 02036 M00S01973.sxmain +++|# 02037 M00S01974.sxmain +++| 02038 M00S01975.sxmain +++| XREF 02039 M00S01976.sxmain +++| BEGIN 02040 M00S01977.sxmain +++| PROC ENTDAM; # ENTER *TDAM* REQUEST FOR 02041 M00S01978.sxmain +++| PROCESSING # 02042 M00S01979.sxmain +++| PROC MSG; # ISSUE MESSAGE # 02043 M00S01980.sxmain +++| PROC SRCHDS; # SEARCH FOR DUPLICATE STAGE # 02044 M00S01981.sxmain +++| END 02045 M00S01982.sxmain +++| 02046 M00S01983.sxmain +++|# 02047 M00S01984.sxmain +++|**** PROC SLVTDAM - XREF LIST END. 02048 M00S01985.sxmain +++|# 02049 M00S01986.sxmain +++| 02050 M00S01987.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02051 M00S01988.sxmain +++|*CALL,COMBFAS 02052 M00S01989.sxmain +++|*CALL,COMBTDM 02053 M00S01990.sxmain +++|*CALL,COMXCTF 02054 M00S01991.sxmain +++|*CALL,COMXIPR 02055 M00S01992.sxmain +++|*CALL,COMXMMF 02056 M00S01993.sxmain +++| 02057 M00S01994.sxmain +++| ITEM I U; # INDEX # 02058 M00S01995.sxmain +++| ITEM NEWTDAM U; # ADDRESS OF ACCEPTED *TDAM* 02059 M00S01996.sxmain +++| REQUEST # 02060 M00S01997.sxmain +++| ITEM STAT I; 02061 M00S01998.sxmain +++| ITEM THISRB U; 02062 M00S01999.sxmain +++| 02063 M00S02000.sxmain +++| CONTROL EJECT; 02064 M00S02001.sxmain +++| 02065 M00S02002.sxmain +++| P<TDAM> = LOC(SM$TDAM[RB]); 02066 M00S02003.sxmain +++| IF TDAMFC[0] LQ TDAMFCODE"NOREQ" ## 02067 M00S02004.sxmain +++| OR TDAMFC[0] EQ TDAMFCODE"DESTRLS" ## 02068 M00S02005.sxmain +++| OR TDAMFC[0] EQ TDAMFCODE"DESTAGE" ## 02069 M00S02006.sxmain +++| OR TDAMFC[0] GQ TDAMFCODE"FCEND" 02070 M00S02007.sxmain +++| THEN # ABANDON INCORRECT REQUESTS # 02071 M00S02008.sxmain +++| BEGIN 02072 M00S02009.sxmain +++| MSG(INVRQC,UDFL1); 02073 M00S02010.sxmain +++| MSR$MRC[RB] = S"FINISHED"; 02074 M00S02011.sxmain +++| MSR$REPLY[RB] = S"ABANDONED"; 02075 M00S02012.sxmain +++| MSR$PDATE[RB] = PDATEV[0]; 02076 M00S02013.sxmain +++| MTOS$EXPIR = 0; 02077 M00S02014.sxmain +++| END 02078 M00S02015.sxmain +++| 02079 M00S02016.sxmain +++|# 02080 M00S02017.sxmain +++|* PROCESS SLAVE *TDAM* REQUESTS. 02081 M00S02018.sxmain +++|# 02082 M00S02019.sxmain +++| 02083 M00S02020.sxmain +++| THISRB = SINDX * NUMRB + RB; 02084 M00S02021.sxmain +++| IF THISRB EQ NXTRB 02085 M00S02022.sxmain +++| THEN 02086 M00S02023.sxmain +++| BEGIN 02087 M00S02024.sxmain +++| NXTRB = 0; 02088 M00S02025.sxmain +++| END 02089 M00S02026.sxmain +++| 02090 M00S02027.sxmain +++| ENTDAM(P<TDAM>,NXTRB,NEWTDAM); 02091 M00S02028.sxmain +++| 02092 M00S02029.sxmain +++| IF NEWTDAM NQ 0 02093 M00S02030.sxmain +++| THEN # REQUEST ACCEPTED # 02094 M00S02031.sxmain +++| BEGIN # PROCESS REQUEST ACCEPTED # 02095 M00S02032.sxmain +++| P<TDAM> = NEWTDAM; 02096 M00S02033.sxmain +++| IF TDAMFC[0] NQ TDAMFCODE"STAGE" 02097 M00S02034.sxmain +++| THEN # REPLY TO INTERLOCK REQUEST # 02098 M00S02035.sxmain +++| BEGIN 02099 M00S02036.sxmain +++| MSR$MRC[RB] = S"FINISHED"; 02100 M00S02037.sxmain +++| MSR$REPLY[RB] = REPLY"OK"; 02101 M00S02038.sxmain +++| MTOS$EXPIR = 0; 02102 M00S02039.sxmain +++| MSR$PDATE[RB] = PDATEV[0]; 02103 M00S02040.sxmain +++| RETURN; 02104 M00S02041.sxmain +++| END 02105 M00S02042.sxmain +++| 02106 M00S02043.sxmain +++| TDAMOSLV[0] = TRUE; 02107 M00S02044.sxmain +++| 02108 M00S02045.sxmain +++|# 02109 M00S02046.sxmain +++|* REPLY TO STAGE REQUEST. 02110 M00S02047.sxmain +++|# 02111 M00S02048.sxmain +++| 02112 M00S02049.sxmain +++| IF TDAMSSN[0] EQ 0 02113 M00S02050.sxmain +++| THEN # ESTABLISH A STAGING SEQUENCE 02114 M00S02051.sxmain +++| NUMBER # 02115 M00S02052.sxmain +++| BEGIN 02116 M00S02053.sxmain +++| TDAMSSN[0] = NEXTSSN; 02117 M00S02054.sxmain +++| NEXTSSN = NEXTSSN + 1; 02118 M00S02055.sxmain +++| IF NEXTSSN GQ MAXSSN 02119 M00S02056.sxmain +++| THEN 02120 M00S02057.sxmain +++| BEGIN 02121 M00S02058.sxmain +++| NEXTSSN = 1; 02122 M00S02059.sxmain +++| END 02123 M00S02060.sxmain +++| 02124 M00S02061.sxmain +++| END 02125 M00S02062.sxmain +++| 02126 M00S02063.sxmain +++| MSR$SSN[RB] = TDAMSSN[0]; 02127 M00S02064.sxmain +++| MSR$MRC[RB] = S"ACCEPTED"; 02128 M00S02065.sxmain +++| END # PROCESS REQUEST ACCEPTED # 02129 M00S02066.sxmain +++| 02130 M00S02067.sxmain +++| ELSE # REQUEST NOT ACCEPTED # 02131 M00S02068.sxmain +++| BEGIN 02132 M00S02069.sxmain +++| REJCNT = REJCNT + 1; 02133 M00S02070.sxmain +++| 02134 M00S02071.sxmain +++| IF NXTRB NQ 0 02135 M00S02072.sxmain +++| THEN 02136 M00S02073.sxmain +++| BEGIN 02137 M00S02074.sxmain +++| RELOOP = RELOOP OR (THISRB LS NXTRB); 02138 M00S02075.sxmain +++| END 02139 M00S02076.sxmain +++| 02140 M00S02077.sxmain +++| ELSE 02141 M00S02078.sxmain +++| BEGIN 02142 M00S02079.sxmain +++| NXTRB = THISRB; 02143 M00S02080.sxmain +++| END 02144 M00S02081.sxmain +++| 02145 M00S02082.sxmain +++| RETURN; 02146 M00S02083.sxmain +++| END 02147 M00S02084.sxmain +++| 02148 M00S02085.sxmain +++| END # SLVTDAM # 02149 M00S02086.sxmain +++| 02150 M00S02087.sxmain +++| TERM 02151 M00S02088.sxmain +++|PROC STARTUP; 02152 M00S02089.sxmain +++| 02153 M00S02090.sxmain +++|# TITLE STARTUP - HANDLES ALL *SSEXEC* INITIALIZATION. # 02154 M00S02091.sxmain +++| BEGIN # STARTUP # 02155 M00S02092.sxmain +++| 02156 M00S02093.sxmain +++|# 02157 M00S02094.sxmain +++|** STARTUP - HANDLES ALL *SSEXEC* INITIALIZATION. 02158 M00S02095.sxmain +++|* 02159 M00S02096.sxmain +++|* THIS ROUTINE PERFORMS ALL HARDWARE AND NON-HARDWARE INITIALIZING 02160 M00S02097.sxmain +++|* OF *SSEXEC*. 02161 M00S02098.sxmain +++|* 02162 M00S02099.sxmain +++|* PROC STARTUP. 02163 M00S02100.sxmain +++|* 02164 M00S02101.sxmain +++|* EXIT ALL INITIALIZATION HAS BEEN PERFORMED. 02165 M00S02102.sxmain +++|* 02166 M00S02103.sxmain +++|* NOTES THIS ROUTINE CALLS THE OVERLAY *INITLZR* TO 02167 M00S02104.sxmain +++|* PERFORM *SSEXEC* INITIALIZATION, AND 02168 M00S02105.sxmain +++|* THEN ISSUES AN *INITHW* *LLRQ* REQUEST TO 02169 M00S02106.sxmain +++|* TO INITIALIZE THE *M860* HARDWARE. 02170 M00S02107.sxmain +++|# 02171 M00S02108.sxmain +++| 02172 M00S02109.sxmain +++|# 02173 M00S02110.sxmain +++|**** PROC STARTUP - XREF LIST BEGIN. 02174 M00S02111.sxmain +++|# 02175 M00S02112.sxmain +++| 02176 M00S02113.sxmain +++| XREF 02177 M00S02114.sxmain +++| BEGIN 02178 M00S02115.sxmain +++| PROC KPROC; # *K* DISPLAY PROCESSOR # 02179 M00S02116.sxmain +++| PROC KREQ; # ISSUE K-DISPLAY REQUEST # 02180 M00S02117.sxmain +++| PROC SSOVL; # LOAD *MSAS* OVERLAYS # 02181 M00S02118.sxmain +++| PROC LLRQENQ; # *LLRQ* ENQUEUER # 02182 M00S02119.sxmain +++| PROC MSG; # ISSUE DAYFILE MESSAGE # 02183 M00S02120.sxmain +++| PROC RECALL; # SUSPEND PROCESSING # 02184 M00S02121.sxmain +++| END 02185 M00S02122.sxmain +++| 02186 M00S02123.sxmain +++|# 02187 M00S02124.sxmain +++|**** PROC STARTUP - XREF LIST END. 02188 M00S02125.sxmain +++|# 02189 M00S02126.sxmain +++| 02190 M00S02127.sxmain +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02191 M00S02128.sxmain +++|*CALL,COMBFAS 02192 M00S02129.sxmain +++|*CALL,COMBCMD 02193 M00S02130.sxmain +++|*CALL,COMBCPR 02194 M00S02131.sxmain +++|*CALL,COMBKDD 02195 M00S02132.sxmain +++|*CALL,COMBLRQ 02196 M00S02133.sxmain +++|*CALL,COMBOVL 02197 M00S02134.sxmain +++|*CALL,COMBUCR 02198 M00S02135.sxmain +++|*CALL,COMBUDT 02199 M00S02136.sxmain +++|*CALL,COMXCTF 02200 M00S02137.sxmain +++|*CALL,COMXJCA 02201 M00S02138.sxmain +++|*CALL,COMXMSC 02202 M00S02139.sxmain +++| 02203 M00S02140.sxmain +++| 02204 M00S02141.sxmain +++| ITEM I U; # INDEX # 02205 M00S02142.sxmain +++| ITEM LLRADR U; # *LLRQ* ENTRY ADDRESS # 02206 M00S02143.sxmain +++| ITEM NOCUON B; # SET IF ALL CU-S OFF # 02207 M00S02144.sxmain +++| 02208 M00S02145.sxmain +++| 02209 M00S02146.sxmain +++|# 02210 M00S02147.sxmain +++|* BUFFER FOR K-DISPLAY WORDS. 02211 M00S02148.sxmain +++|# 02212 M00S02149.sxmain +++| 02213 M00S02150.sxmain +++| ARRAY KDISB [0:0] S(2); 02214 M00S02151.sxmain +++| BEGIN # K-DISPLAY WORDS # 02215 M00S02152.sxmain +++| ITEM KDIS$1 U(00,00,60); # K-DISPLAY WORD 1 # 02216 M00S02153.sxmain +++| ITEM KDIS$2 U(01,00,60); # K-DISPLAY WORD 2 # 02217 M00S02154.sxmain +++| END # K-DISPLAY WORDS # 02218 M00S02155.sxmain +++| 02219 M00S02156.sxmain +++|# 02220 M00S02157.sxmain +++|* GENERAL MESSAGE BUFFER. 02221 M00S02158.sxmain +++|# 02222 M00S02159.sxmain +++| 02223 M00S02160.sxmain +++| ARRAY MSGMB [0:0] S(5); 02224 M00S02161.sxmain +++| BEGIN # GENERAL # 02225 M00S02162.sxmain +++| ITEM MSG$LINE C(00,00,40); # MESSAGE LINE # 02226 M00S02163.sxmain +++| ITEM MSG$ZERO U(04,00,12) = [0]; # ZERO-BYTE TERMINATOR # 02227 M00S02164.sxmain +++| END # GENERAL # 02228 M00S02165.sxmain +++| 02229 M00S02166.sxmain +++| CONTROL EJECT; 02230 M00S02167.sxmain +++| 02231 M00S02168.sxmain +++| SSOVL(LINITLZR,0); # LOAD INITIZLIZATION OVERLAY # 02232 M00S02169.sxmain +++| 02233 M00S02170.sxmain +++| IF FATALERR 02234 M00S02171.sxmain +++| THEN # FATAL ERROR WHILE INITIALIZING # 02235 M00S02172.sxmain +++| BEGIN # ABORT # 02236 M00S02173.sxmain +++| RETURN; 02237 M00S02174.sxmain +++| END # ABORT # 02238 M00S02175.sxmain +++| 02239 M00S02176.sxmain +++|# 02240 M00S02177.sxmain +++|* SET THE INITIALIZATION FLAG TO TELL THE *UCP* REQUEST PROCESSORS 02241 M00S02178.sxmain +++|* THAT ALL M860 HARDWARE IS BEING INITIALIZED. WHEN THIS FLAG IS
Line S02179 Modification History | |
---|---|
M01 (Removed by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 02242 M01S02179.sxmain1 ---|* SET, NO PATH MAY BE VARIED TO MAINTENANCE MODE, AND *SSALTER* 02243 M01S02180.sxmain1 ---|* REQUESTS TO MODIFY THE UDT ARE NOT CONVERTED INTO INDIVIDUAL 02244 M01S02181.sxmain1 ---|* DRIVER HARDWARE REQUESTS.
Line S00042 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
Seq # *Modification Id* Act ----------------------------+ 02245 M01S00042.sxmain1 +++|* SET, *SSALTER* REQUESTS TO MODIFY THE UDT ARE NOT CONVERTED INTO 02246 M01S00043.sxmain1 +++|* INDIVIDUAL DRIVER HARDWARE REQUESTS.
Line S00044 Modification History | |
---|---|
M01 (Added by) | sxmain1 |
M02 (Removed by) | sxmain2 |
Seq # *Modification Id* Act ----------------------------+ 02247 M02S00044.sxmain2 ---|*/I,447 02248 M02S00045.sxmain2 ---|*/I,477 02249 M02S00046.sxmain2 ---|*/D,1334 02250 M00S02182.sxmain +++|# 02251 M00S02183.sxmain +++| 02252 M00S02184.sxmain +++| INITIALIZE = TRUE; # INDICATE FULL INITIALIZATION # 02253 M00S02185.sxmain +++| 02254 M00S02186.sxmain +++|# 02255 M00S02187.sxmain +++|* ALLOW *SSALTER* TO MODIFY THE UDT UNTIL A K-DISPLAY 02256 M00S02188.sxmain +++|* *GO* REPLY IS RECEIVED FROM THE OPERATOR. 02257 M00S02189.sxmain +++|# 02258 M00S02190.sxmain +++| 02259 M00S02191.sxmain +++| P<KWORD> = LOC(KDIS$1[0]); 02260 M00S02192.sxmain +++| KW$WORD[0] = 0; 02261 M00S02193.sxmain +++| KW$RPGO[0] = TRUE; # ALLOW GO RESPONSE # 02262 M00S02194.sxmain +++| KW$DF[0] = TRUE; # ISSUE MESSAGE TO JOB DAYFILE # 02263 M00S02195.sxmain +++| KW$LINE1[0] = KM"KM12"; # ISSUE UDT ALTERATION MESSAGE # 02264 M00S02196.sxmain +++| KW$LINE3[0] = 0; 02265 M00S02197.sxmain +++| KREQ(P<KWORD>,KLINK); # ISSUE K-DISPLAY MESSAGE # 02266 M00S02198.sxmain +++| REPEAT WHILE NOT KW$COMP[0] 02267 M00S02199.sxmain +++| DO # PROCESS *SSALTER* REQUESTS #
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/sxmain.txt ยท Last modified: by 127.0.0.1