cdc:nos2.source:opl.opl871:deck:sxucp
Deck SXUCP
Library Member Format: MODIFY
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.sxucp +++|PROC ALT$RP; 00002 M00S00002.sxucp +++|# TITLE ALT$RP - SSALTER REQUEST PROCESSOR. # 00003 M00S00003.sxucp +++| 00004 M00S00004.sxucp +++| BEGIN # ALT$RP # 00005 M00S00005.sxucp +++| 00006 M00S00006.sxucp +++|# 00007 M00S00007.sxucp +++|** ALT$RP - SSALTER REQUEST PROCESSOR. 00008 M00S00008.sxucp +++|* 00009 M00S00009.sxucp +++|* *ALT$RP* PROCESSES THE *SSALTER* TYPE 5 REQUESTS. 00010 M00S00010.sxucp +++|* 00011 M00S00011.sxucp +++|* PROC ALT$RP 00012 M00S00012.sxucp +++|* 00013 M00S00013.sxucp +++|* ENTRY P<CPR> = ADDRESS OF TYPE 5 *UCP* REQUEST BLOCK. 00014 M00S00014.sxucp +++|* 00015 M00S00015.sxucp +++|* EXIT THE *UNIT DEVICE TABLE* TRANSMITTED, OR THE *UNIT 00016 M00S00016.sxucp +++|* DEVICE TABLE* FIELD CHANGED. 00017 M00S00017.sxucp +++|# 00018 M00S00018.sxucp +++| 00019 M00S00019.sxucp +++|# 00020 M00S00020.sxucp +++|**** PROC ALT$RP - XREF LIST BEGIN. 00021 M00S00021.sxucp +++|# 00022 M00S00022.sxucp +++| 00023 M00S00023.sxucp +++| XREF 00024 M00S00024.sxucp +++| BEGIN 00025 M00S00025.sxucp +++| PROC ABORT; # INTERFACE TO *ABORT* # 00026 M00S00026.sxucp +++| PROC MESSAGE; # ABORT A *UCP* # 00027 M00S00027.sxucp +++| PROC KILL$UC; # ABORT A UCP # 00028 M00S00028.sxucp +++| PROC LLRQENQ; # *LLRQ* ENGUEUER # 00029 M00S00029.sxucp +++| PROC UCP$RES; # ISSUE RESPONSE TO *UCP* # 00030 M00S00030.sxucp +++| PROC UCP$WRI; # PASS DATA TO *UCP* # 00031 M00S00031.sxucp +++| END 00032 M00S00032.sxucp +++| 00033 M00S00033.sxucp +++|# 00034 M00S00034.sxucp +++|**** PROC ALT$RP - XREF LIST END. 00035 M00S00035.sxucp +++|# 00036 M00S00036.sxucp +++| 00037 M00S00037.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00038 M00S00038.sxucp +++|*CALL COMBFAS 00039 M00S00039.sxucp +++|*CALL COMBCPR
Line S00040 Modification History | |
---|---|
M01 (Removed by) | sxucp1 |
Seq # *Modification Id* Act ----------------------------+ 00040 M01S00040.sxucp1 ---|*CALL,COMBFET 00041 M00S00041.sxucp +++|*CALL COMBLRQ 00042 M00S00042.sxucp +++|*CALL COMBUCR 00043 M00S00043.sxucp +++|*CALL COMBUDT 00044 M00S00044.sxucp +++|*CALL COMXCTF 00045 M00S00045.sxucp +++|*CALL COMXLTC 00046 M00S00046.sxucp +++|*CALL COMXMSC 00047 M00S00047.sxucp +++| 00048 M00S00048.sxucp +++| ITEM BYNR U; # OFF/SET BIT ADDRESS #
Line S00049 Modification History | |
---|---|
M01 (Removed by) | sxucp1 |
Seq # *Modification Id* Act ----------------------------+ 00049 M01S00049.sxucp1 ---| ITEM CHAN$CH B; # CHANNEL STATUS CHANGE FLAG # 00050 M00S00050.sxucp +++| ITEM LLRADR U; # *LLRQ* ENTRY ADDRESS # 00051 M00S00051.sxucp +++| ITEM PMMR U; # STATUS BIT # 00052 M00S00052.sxucp +++| ITEM RETCODE U; # RETURN CODE # 00053 M00S00053.sxucp +++| ITEM STAT U; # STATUS OF *UDT* BIT # 00054 M00S00054.sxucp +++| ITEM UDTQ U; # UDT ADDRESS # 00055 M00S00055.sxucp +++| 00056 M00S00056.sxucp +++| BASED 00057 M00S00057.sxucp +++| ARRAY UDTBIT [0:0] P(1); # ALTER *UDT* AREA # 00058 M00S00058.sxucp +++| BEGIN 00059 M00S00059.sxucp +++| ITEM UDT$BIT U(00,00,60); 00060 M00S00060.sxucp +++| END 00061 M00S00061.sxucp +++| 00062 M00S00062.sxucp +++| 00063 M00S00063.sxucp +++| IF CPR$RQC[0] LQ REQTYP5"RES5" ## 00064 M00S00064.sxucp +++| OR CPR$RQC[0] GQ REQTYP5"LSTREQTYP5" 00065 M00S00065.sxucp +++| THEN 00066 M00S00066.sxucp +++| BEGIN # IF REQUEST CODE IS INCORRECT # 00067 M00S00067.sxucp +++| KILL$UC(KILLCODE"INVRQC"); # ABORT THE UCP # 00068 M00S00068.sxucp +++| RETURN; 00069 M00S00069.sxucp +++| END 00070 M00S00070.sxucp +++| 00071 M00S00071.sxucp +++|# 00072 M00S00072.sxucp +++|* RETURN THE UNIT DEVICE TABLE TO THE UCP. 00073 M00S00073.sxucp +++|# 00074 M00S00074.sxucp +++| 00075 M00S00075.sxucp +++| IF CPR$RQC[0] EQ REQTYP5"SSA$PUDT" ## 00076 M00S00076.sxucp +++| THEN 00077 M00S00077.sxucp +++| BEGIN # TRANFERS THE UDT TO THE UCP # 00078 M00S00078.sxucp +++| UDTQ = UDTCADR + CPR$ADDR3[0]; 00079 M00S00079.sxucp +++| UCP$WRI(CPR$ADDR2[0],CPR$ADDR4[0],UDTQ,RETCODE); 00080 M00S00080.sxucp +++| IF RETCODE EQ SFRCUCPGON 00081 M00S00081.sxucp +++| THEN 00082 M00S00082.sxucp +++| BEGIN 00083 M00S00083.sxucp +++| RETURN; 00084 M00S00084.sxucp +++| END 00085 M00S00085.sxucp +++| 00086 M00S00086.sxucp +++| IF RETCODE EQ SFRCBDUCPA 00087 M00S00087.sxucp +++| THEN 00088 M00S00088.sxucp +++| BEGIN 00089 M00S00089.sxucp +++| KILL$UC(KILLCODE"INVADDR"); 00090 M00S00090.sxucp +++| RETURN; 00091 M00S00091.sxucp +++| END 00092 M00S00092.sxucp +++| 00093 M00S00093.sxucp +++| IF RETCODE NQ 0 00094 M00S00094.sxucp +++| THEN 00095 M00S00095.sxucp +++| BEGIN 00096 M00S00096.sxucp +++| FE$RTN[0] = "ALT$RP."; 00097 M00S00097.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 00098 M00S00098.sxucp +++| ABORT; 00099 M00S00099.sxucp +++| END 00100 M00S00100.sxucp +++| 00101 M00S00101.sxucp +++| ELSE 00102 M00S00102.sxucp +++| BEGIN 00103 M00S00103.sxucp +++| 00104 M00S00104.sxucp +++| IF INITIALIZE 00105 M00S00105.sxucp +++| THEN 00106 M00S00106.sxucp +++| BEGIN # BEFORE INITIALIZATION # 00107 M00S00107.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP5"SSA$OK"; 00108 M00S00108.sxucp +++| END 00109 M00S00109.sxucp +++| ELSE 00110 M00S00110.sxucp +++| BEGIN # AFTER INITIALIZATION # 00111 M00S00111.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP5"OK5"; 00112 M00S00112.sxucp +++| END 00113 M00S00113.sxucp +++| 00114 M00S00114.sxucp +++| UCP$RES; 00115 M00S00115.sxucp +++| RETURN; 00116 M00S00116.sxucp +++| END 00117 M00S00117.sxucp +++| 00118 M00S00118.sxucp +++| END # RETURN OF UDT # 00119 M00S00119.sxucp +++| 00120 M00S00120.sxucp +++|# 00121 M00S00121.sxucp +++|* CHANGE A PATH NOD. 00122 M00S00122.sxucp +++|# 00123 M00S00123.sxucp +++| 00124 M00S00124.sxucp +++| UDTQ = CPR$UDTQ[0]+UDTCADR; # UDT RELATIVE ADDRESS # 00125 M00S00125.sxucp +++| BYNR = CPR$BYNR[0]; # OFF SET BIT ADDRESS # 00126 M00S00126.sxucp +++| 00127 M00S00127.sxucp +++| P<UDTBIT> = UDTQ; 00128 M00S00128.sxucp +++| IF CPR$PMMR[0] 00129 M00S00129.sxucp +++| THEN 00130 M00S00130.sxucp +++| BEGIN 00131 M00S00131.sxucp +++| PMMR = 1; 00132 M00S00132.sxucp +++| END 00133 M00S00133.sxucp +++| 00134 M00S00134.sxucp +++| ELSE 00135 M00S00135.sxucp +++| BEGIN 00136 M00S00136.sxucp +++| PMMR = 0; 00137 M00S00137.sxucp +++| END 00138 M00S00138.sxucp +++| 00139 M00S00139.sxucp +++| STAT = B<BYNR,1> UDT$BIT[0]; # CHECK FOR BIT ALREADY SET # 00140 M00S00140.sxucp +++| IF STAT EQ PMMR 00141 M00S00141.sxucp +++| THEN 00142 M00S00142.sxucp +++| BEGIN 00143 M00S00143.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP5"SSA$UIRC"; 00144 M00S00144.sxucp +++| UCP$RES; 00145 M00S00145.sxucp +++| RETURN; 00146 M00S00146.sxucp +++| END 00147 M00S00147.sxucp +++| 00148 M00S00148.sxucp +++| ELSE 00149 M00S00149.sxucp +++| BEGIN 00150 M00S00150.sxucp +++| B<BYNR,1> UDT$BIT[0] = PMMR; # SET OPTION BIT #
Line S00151 Modification History | |
---|---|
M01 (Removed by) | sxucp1 |
Seq # *Modification Id* Act ----------------------------+ 00151 M01S00151.sxucp1 ---| IF BYNR GQ 48 00152 M01S00152.sxucp1 ---| THEN 00153 M01S00153.sxucp1 ---| BEGIN # SET CHANNEL STATUS BIT ONLY # 00154 M01S00154.sxucp1 ---| CHAN$CH = TRUE; 00155 M01S00155.sxucp1 ---| P<MWBTMP> = LOC(UD$CAMF[CPR$CUORD[0]]); 00156 M01S00156.sxucp1 ---| P<FETMWB> = MWB$ADDR[CPR$CIF[0]]; 00157 M01S00157.sxucp1 ---| FMW$CHON[0] = CPR$PMMR[0]; # SET CHANNEL STATUS IN WRITE FET # 00158 M01S00158.sxucp1 ---| GOTO CALLDRVR; 00159 M01S00159.sxucp1 ---| END # CHANNEL STATUS SET # 00160 M01S00160.sxucp1 ---| 00161 M00S00161.sxucp +++| B<BYNR+1,1> UDT$BIT[0] = 1; # SET *ACK* FLAG # 00162 M00S00162.sxucp +++| END 00163 M00S00163.sxucp +++| 00164 M00S00164.sxucp +++|# 00165 M00S00165.sxucp +++|* CHECK FOR INITIALIZATION. 00166 M00S00166.sxucp +++|# 00167 M00S00167.sxucp +++|
Line S00168 Modification History | |
---|---|
M01 (Removed by) | sxucp1 |
Seq # *Modification Id* Act ----------------------------+ 00168 M01S00168.sxucp1 ---|CALLDRVR: 00169 M00S00169.sxucp +++| IF INITIALIZE 00170 M00S00170.sxucp +++| THEN 00171 M00S00171.sxucp +++| BEGIN 00172 M00S00172.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP5"SSA$OK"; 00173 M00S00173.sxucp +++| UCP$RES; 00174 M00S00174.sxucp +++| RETURN; 00175 M00S00175.sxucp +++| END 00176 M00S00176.sxucp +++| 00177 M00S00177.sxucp +++|# 00178 M00S00178.sxucp +++|* SET UP A *LLRQ* ENTRY. 00179 M00S00179.sxucp +++|# 00180 M00S00180.sxucp +++| 00181 M00S00181.sxucp +++| 00182 M00S00182.sxucp +++| LLRQENQ(LLRADR); 00183 M00S00183.sxucp +++| P<LLRQ> = LLRADR; 00184 M00S00184.sxucp +++| LLR$LTCT[0] = LTCENTRY; 00185 M00S00185.sxucp +++| LLR$UCPRA[0] = UCP$ADDR[0]; 00186 M00S00186.sxucp +++| LLR$WORD4[0] = CPR3[0]; 00187 M00S00187.sxucp +++| LLR$WORD5[0] = CPR2[0]; 00188 M00S00188.sxucp +++| LLR$PRCNME[0] = REQTYP4"INITHW"; 00189 M00S00189.sxucp +++| LLR$CU[0] = CPR$CUORD[0]; 00190 M00S00190.sxucp +++| LLR$UDTQ[0] = UDTQ; 00191 M00S00191.sxucp +++| LLR$BYNR[0] = BYNR; 00192 M00S00192.sxucp +++| LLR$PMMR[0] = PMMR; 00193 M00S00193.sxucp +++| 00194 M00S00194.sxucp +++| LTC$LLRQA[LTCENTRY] = LLRADR;
Line S00195 Modification History | |
---|---|
M01 (Removed by) | sxucp1 |
Seq # *Modification Id* Act ----------------------------+ 00195 M01S00195.sxucp1 ---| 00196 M01S00196.sxucp1 ---| IF CHAN$CH 00197 M01S00197.sxucp1 ---| THEN 00198 M01S00198.sxucp1 ---| BEGIN # SET CHANNEL CHANGE REQUEST # 00199 M01S00199.sxucp1 ---| LLR$CHAN = TRUE; 00200 M01S00200.sxucp1 ---| LLR$CIF[0] = CPR$CIF[0]; # PASS CHANNEL INTERFACE # 00201 M01S00201.sxucp1 ---| END # CHANNEL CHANGE REQUEST COMPLETE # 00202 M00S00202.sxucp +++| RETURN; 00203 M00S00203.sxucp +++| 00204 M00S00204.sxucp +++| END # ALT$PR # 00205 M00S00205.sxucp +++| 00206 M00S00206.sxucp +++| TERM 00207 M00S00207.sxucp +++|PROC CONNECT; 00208 M00S00208.sxucp +++|# TITLE CONNECT - ESTABLISH LONG TERM CONNECTION. # 00209 M00S00209.sxucp +++| 00210 M00S00210.sxucp +++| BEGIN # CONNECT # 00211 M00S00211.sxucp +++| 00212 M00S00212.sxucp +++|# 00213 M00S00213.sxucp +++|** CONNECT - ESTABLISH LONG TERM CONNECTION. 00214 M00S00214.sxucp +++|* 00215 M00S00215.sxucp +++|* *CONNECT* PROCESSES *UCP* CONNECT REQUESTS. 00216 M00S00216.sxucp +++|* 00217 M00S00217.sxucp +++|* PROC CONNECT 00218 M00S00218.sxucp +++|* 00219 M00S00219.sxucp +++|* ENTRY THE CONNECT REQUEST TO BE PROCESSED IS IN ARRAY 00220 M00S00220.sxucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. 00221 M00S00221.sxucp +++|* 00222 M00S00222.sxucp +++|* EXIT THE LONG TERM CONNECTION HAS BEEN ESTABLISHED, THE 00223 M00S00223.sxucp +++|* *LTCT* ENTRY FOR THE CONNECTING *UCP* HAS BEEN BUILT, 00224 M00S00224.sxucp +++|* AND A RESPONSE HAS BEEN SENT BACK TO THE *UCP*. 00225 M00S00225.sxucp +++|* 00226 M00S00226.sxucp +++|* MESSAGES * EXEC ABNORMAL, CONNECT.* 00227 M00S00227.sxucp +++|# 00228 M00S00228.sxucp +++| 00229 M00S00229.sxucp +++|# 00230 M00S00230.sxucp +++|**** PROC CONNECT - XREF LIST BEGIN. 00231 M00S00231.sxucp +++|# 00232 M00S00232.sxucp +++| 00233 M00S00233.sxucp +++| XREF 00234 M00S00234.sxucp +++| BEGIN 00235 M00S00235.sxucp +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO # 00236 M00S00236.sxucp +++| PROC KILL$UC; # ABORT A *UCP* # 00237 M00S00237.sxucp +++| PROC MESSAGE; # CALLS *MESSAGE* MACRO # 00238 M00S00238.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 00239 M00S00239.sxucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST COMPLETE 00240 M00S00240.sxucp +++| # 00241 M00S00241.sxucp +++| END 00242 M00S00242.sxucp +++| 00243 M00S00243.sxucp +++|# 00244 M00S00244.sxucp +++|**** PROC CONNECT - XREF LIST END. 00245 M00S00245.sxucp +++|# 00246 M00S00246.sxucp +++| 00247 M00S00247.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00248 M00S00248.sxucp +++| 00249 M00S00249.sxucp +++|*CALL COMBFAS 00250 M00S00250.sxucp +++|*CALL COMBCPR 00251 M00S00251.sxucp +++|*CALL COMBMAP 00252 M00S00252.sxucp +++|*CALL COMBUCR 00253 M00S00253.sxucp +++|*CALL COMXCTF 00254 M00S00254.sxucp +++|*CALL COMXLTC 00255 M00S00255.sxucp +++|*CALL COMXMSC 00256 M00S00256.sxucp +++| 00257 M00S00257.sxucp +++| 00258 M00S00258.sxucp +++| ITEM J U; # COUNTER # 00259 M00S00259.sxucp +++| ITEM ORD$MRFT U; # *MRFT* ORDINAL # 00260 M00S00260.sxucp +++| ITEM UCPSWAPPED B; # UCP WAS SWAPPED OUT # 00261 M00S00261.sxucp +++| 00262 M00S00262.sxucp +++| 00263 M00S00263.sxucp +++| 00264 M00S00264.sxucp +++| 00265 M00S00265.sxucp +++|# 00266 M00S00266.sxucp +++|* ABORT *UCP* IF *DRYUP* FLAG IS SET. 00267 M00S00267.sxucp +++|# 00268 M00S00268.sxucp +++| 00269 M00S00269.sxucp +++| IF DRYUP 00270 M00S00270.sxucp +++| THEN 00271 M00S00271.sxucp +++| BEGIN 00272 M00S00272.sxucp +++| KILL$UC(KILLCODE"CLOSED"); 00273 M00S00273.sxucp +++| RETURN; 00274 M00S00274.sxucp +++| END 00275 M00S00275.sxucp +++| 00276 M00S00276.sxucp +++|# 00277 M00S00277.sxucp +++|* REQUESTOR ID HAS TO BE IN RANGE. 00278 M00S00278.sxucp +++|# 00279 M00S00279.sxucp +++| 00280 M00S00280.sxucp +++| IF CPR$RQI[0] EQ REQNAME"RQIFIRST" OR ## 00281 M00S00281.sxucp +++| CPR$RQI[0] GQ REQNAME"RQILAST" 00282 M00S00282.sxucp +++| THEN 00283 M00S00283.sxucp +++| BEGIN 00284 M00S00284.sxucp +++| KILL$UC(KILLCODE"NOTAUTH"); 00285 M00S00285.sxucp +++| RETURN; 00286 M00S00286.sxucp +++| END 00287 M00S00287.sxucp +++| 00288 M00S00288.sxucp +++|# 00289 M00S00289.sxucp +++|* SYSTEM LONG TERM CONNECTION HAS TO BE CLEARED. 00290 M00S00290.sxucp +++|# 00291 M00S00291.sxucp +++| 00292 M00S00292.sxucp +++| IF LTCENTRY NQ 0 00293 M00S00293.sxucp +++| THEN 00294 M00S00294.sxucp +++| BEGIN 00295 M00S00295.sxucp +++| KILL$UC(KILLCODE"MULCON"); 00296 M00S00296.sxucp +++| RETURN; 00297 M00S00297.sxucp +++| END 00298 M00S00298.sxucp +++|
Line S00299 Modification History | |
---|---|
M01 (Removed by) | mse0005 |
Seq # *Modification Id* Act ----------------------------+ 00299 M01S00299.mse0005 ---|# 00300 M01S00300.mse0005 ---|* 1. *SSMOVE* CAN HAVE MULTIPLE CONNECTIONS, BUT ONLY ONE 00301 M01S00301.mse0005 ---|* PER FAMILY AT ONE TIME. 00302 M01S00302.mse0005 ---|* 00303 M01S00303.mse0005 ---|* 2. ONLY ONE OF THE THREE UTILITIES *SSLABEL*, *SSDEBUG*, 00304 M01S00304.mse0005 ---|* OR *SSVAL* CAN BE CONNECTED AT ANY ONE TIME. 00305 M01S00305.mse0005 ---|* 00306 M01S00306.mse0005 ---|* 3. OTHER REQUESTORS CAN ONLY HAVE ONE REQUEST UP 00307 M01S00307.mse0005 ---|* AT A TIME. 00308 M01S00308.mse0005 ---|# 00309 M01S00309.mse0005 ---| 00310 M01S00310.mse0005 ---| IF CPR$RQI[0] EQ REQNAME"RQIMOVE" 00311 M01S00311.mse0005 ---| # # 00312 M01S00312.mse0005 ---| AND DSC$FAM NQ 0 00313 M01S00313.mse0005 ---| THEN # *SSMOVE* CONFLICT # 00314 M01S00314.mse0005 ---| BEGIN 00315 M01S00315.mse0005 ---| KILL$UC(KILLCODE"UTLCONF"); 00316 M01S00316.mse0005 ---| RETURN; 00317 M01S00317.mse0005 ---| END 00318 M01S00318.mse0005 ---| 00319 M01S00319.mse0005 ---| IF CPR$RQI[0] NQ REQNAME"RQIMOVE" 00320 M01S00320.mse0005 ---| THEN 00321 M01S00321.mse0005 ---| BEGIN # CHECK MULTIPLE RUNS AND UTILITY CONFLICTS # 00322 M01S00322.mse0005 ---| IF CONIND[CPR$RQI[0]] 00323 M01S00323.mse0005 ---| THEN 00324 M01S00324.mse0005 ---| BEGIN 00325 M01S00325.mse0005 ---| KILL$UC(KILLCODE"MULRUN"); 00326 M01S00326.mse0005 ---| RETURN; 00327 M01S00327.mse0005 ---| END 00328 M01S00328.mse0005 ---| 00329 M01S00329.mse0005 ---| ELSE 00330 M01S00330.mse0005 ---| BEGIN # CHECK UTILITY CONFLICTS # 00331 M01S00331.mse0005 ---| IF CPR$RQI[0] LQ REQNAME"RQIVALD" 00332 M01S00332.mse0005 ---| THEN 00333 M01S00333.mse0005 ---| BEGIN 00334 M01S00334.mse0005 ---| IF CONIND[REQNAME"RQILABL"] OR CONIND[REQNAME"RQIDBUG"] OR 00335 M01S00335.mse0005 ---| CONIND[REQNAME"RQIVALD"] 00336 M01S00336.mse0005 ---| THEN 00337 M01S00337.mse0005 ---| BEGIN 00338 M01S00338.mse0005 ---| KILL$UC(KILLCODE"UTLCONF"); 00339 M01S00339.mse0005 ---| RETURN; 00340 M01S00340.mse0005 ---| END 00341 M01S00341.mse0005 ---| 00342 M01S00342.mse0005 ---| END 00343 M01S00343.mse0005 ---| 00344 M01S00344.mse0005 ---| END # CHECK UTILITY CONFLICT # 00345 M01S00345.mse0005 ---| 00346 M01S00346.mse0005 ---| END # CHECK MULTIPLE RUNS AND UTILITY CONFLICTS # 00347 M01S00347.mse0005 ---|
Line S00001 Modification History | |
---|---|
M01 (Added by) | mse0005 |
Seq # *Modification Id* Act ----------------------------+ 00348 M01S00001.mse0005 +++|# 00349 M01S00002.mse0005 +++|* 1. MULTIPLE COPIES OF *SSMOVE* CAN BE RUN AT A TIME, HOWEVER, 00350 M01S00003.mse0005 +++|* ONLY ONE COPY OF *SSMOVE* THAT IS IN THE PROCESS OF 00351 M01S00004.mse0005 +++|* DESTAGING FILES CAN BE CONNECTED AT A TIME. *MULTIPLE RUN* 00352 M01S00005.mse0005 +++|* 00353 M01S00006.mse0005 +++|* 2. MULTIPLE COPIES OF *SSLABEL*, *SSDEBUG* OR *SSVAL* CAN NOT 00354 M01S00007.mse0005 +++|* BE CONNECTED. *MULTIPLE RUN* 00355 M01S00008.mse0005 +++|* 00356 M01S00009.mse0005 +++|* 3. *SSLABEL*, *SSDEBUG* OR *SSVAL* CAN NOT BE CONNECTED WHILE 00357 M01S00010.mse0005 +++|* ANOTHER COPY OF THESE UTILITIES ARE CONNECTED. 00358 M01S00011.mse0005 +++|* *UTILITY CONFLICT* 00359 M01S00012.mse0005 +++|* 00360 M01S00013.mse0005 +++|* 4. *SSVAL* CAN NOT BE CONNECTED WHILE *SSMOVE* IS IN THE 00361 M01S00014.mse0005 +++|* PROCESS OF DESTAGING FILES. *SSMOVE* CAN NOT BE CONNECTED 00362 M01S00015.mse0005 +++|* WHEN *SSVAL* IS CONNECTED. *UTILITY CONFLICT* 00363 M01S00016.mse0005 +++|# 00364 M01S00017.mse0005 +++| 00365 M01S00018.mse0005 +++| IF CPR$RQI[0] EQ REQNAME"RQIMOVE" 00366 M01S00019.mse0005 +++| THEN 00367 M01S00020.mse0005 +++| BEGIN # *SSMOVE* REQUEST # 00368 M01S00021.mse0005 +++| IF DSC$FAM NQ 0 00369 M01S00022.mse0005 +++| THEN 00370 M01S00023.mse0005 +++| BEGIN # MULTIPLE RUN # 00371 M01S00024.mse0005 +++| KILL$UC(KILLCODE"MULRUN"); 00372 M01S00025.mse0005 +++| RETURN; 00373 M01S00026.mse0005 +++| END # MULTIPLE RUN # 00374 M01S00027.mse0005 +++| 00375 M01S00028.mse0005 +++| IF CONIND[REQNAME"RQIVALD"] 00376 M01S00029.mse0005 +++| THEN 00377 M01S00030.mse0005 +++| BEGIN # UTILITY CONFLICT # 00378 M01S00031.mse0005 +++| KILL$UC(KILLCODE"UTLCONF"); 00379 M01S00032.mse0005 +++| RETURN; 00380 M01S00033.mse0005 +++| END # UTILITY CONFLICT # 00381 M01S00034.mse0005 +++| 00382 M01S00035.mse0005 +++| END # *SSMOVE* REQUEST # 00383 M01S00036.mse0005 +++| 00384 M01S00037.mse0005 +++| ELSE 00385 M01S00038.mse0005 +++| BEGIN # NOT *SSMOVE* REQUEST # 00386 M01S00039.mse0005 +++| IF CONIND[CPR$RQI[0]] 00387 M01S00040.mse0005 +++| THEN 00388 M01S00041.mse0005 +++| BEGIN # MULTIPLE RUN # 00389 M01S00042.mse0005 +++| KILL$UC(KILLCODE"MULRUN"); 00390 M01S00043.mse0005 +++| RETURN; 00391 M01S00044.mse0005 +++| END # MULTIPLE RUN # 00392 M01S00045.mse0005 +++| 00393 M01S00046.mse0005 +++| ELSE 00394 M01S00047.mse0005 +++| BEGIN # NOT MULTIPLE RUN # 00395 M01S00048.mse0005 +++| IF (CPR$RQI[0] EQ REQNAME"RQILABL") ## 00396 M01S00049.mse0005 +++| OR (CPR$RQI[0] EQ REQNAME"RQIDBUG") ## 00397 M01S00050.mse0005 +++| OR (CPR$RQI[0] EQ REQNAME"RQIVALD") 00398 M01S00051.mse0005 +++| THEN 00399 M01S00052.mse0005 +++| BEGIN # *SSLABEL*, *SSDEBUG* OR *SSVAL* REQUEST # 00400 M01S00053.mse0005 +++| IF ((CONIND[REQNAME"RQILABL"]) ## 00401 M01S00054.mse0005 +++| OR (CONIND[REQNAME"RQIDBUG"]) ## 00402 M01S00055.mse0005 +++| OR (CONIND[REQNAME"RQIVALD"])) ## 00403 M01S00056.mse0005 +++| OR ((CPR$RQI[0] EQ REQNAME"RQIVALD") AND (DSC$FAM NQ 0)) 00404 M01S00057.mse0005 +++| THEN 00405 M01S00058.mse0005 +++| BEGIN # UTILITY CONFLICT # 00406 M01S00059.mse0005 +++| KILL$UC(KILLCODE"UTLCONF"); 00407 M01S00060.mse0005 +++| RETURN; 00408 M01S00061.mse0005 +++| END # UTILITY CONFLICT # 00409 M01S00062.mse0005 +++| 00410 M01S00063.mse0005 +++| END # *SSLABEL*, *SSDEBUG* OR *SSVAL* REQUEST # 00411 M01S00064.mse0005 +++| 00412 M01S00065.mse0005 +++| END # NOT MULTIPLE RUN # 00413 M01S00066.mse0005 +++| 00414 M01S00067.mse0005 +++| END # NOT *SSMOVE* REQUEST # 00415 M01S00068.mse0005 +++| 00416 M00S00348.sxucp +++|# 00417 M00S00349.sxucp +++|* FIND AN EMPTY LONG TERM CONNECT TABLE ENTRY AND 00418 M00S00350.sxucp +++|* ASSIGN THE *UCP* TO THE ENTRY. SET THE SYSTEM LONG 00419 M00S00351.sxucp +++|* TERM CONNECT BIT. 00420 M00S00352.sxucp +++|# 00421 M00S00353.sxucp +++| 00422 M00S00354.sxucp +++| FASTFOR LTCENTRY = 1 STEP 1 UNTIL LTCTCNT 00423 M00S00355.sxucp +++| DO 00424 M00S00356.sxucp +++| BEGIN # SEARCH *LTCT* FOR AN EMPTY SLOT # 00425 M00S00357.sxucp +++| IF LTC$SFJBSN[LTCENTRY] EQ 0 00426 M00S00358.sxucp +++| THEN 00427 M00S00359.sxucp +++| BEGIN # SET UP LONG TERM CONNECTION # 00428 M00S00360.sxucp +++| UCPSWAPPED = TRUE; 00429 M00S00361.sxucp +++| REPEAT WHILE UCPSWAPPED 00430 M00S00362.sxucp +++| DO 00431 M00S00363.sxucp +++| BEGIN # REPEAT WHILE SWAPPED # 00432 M00S00364.sxucp +++| SFFC[0] = SFSLTC; 00433 M00S00365.sxucp +++| SFCALL(SFBLKPTR,RCL); 00434 M00S00366.sxucp +++| IF SFRC[0] EQ SFRCSWPOUT 00435 M00S00367.sxucp +++| THEN 00436 M00S00368.sxucp +++| BEGIN 00437 M00S00369.sxucp +++| SFFC[0] = SFSWPI; 00438 M00S00370.sxucp +++| SFCALL(SFBLKPTR,RCL); 00439 M00S00371.sxucp +++| END 00440 M00S00372.sxucp +++| 00441 M00S00373.sxucp +++| ELSE 00442 M00S00374.sxucp +++| BEGIN 00443 M00S00375.sxucp +++| UCPSWAPPED = FALSE; 00444 M00S00376.sxucp +++| END 00445 M00S00377.sxucp +++| 00446 M00S00378.sxucp +++| END # REPEAT WHILE SWAPPED # 00447 M00S00379.sxucp +++| 00448 M00S00380.sxucp +++| IF SFRC[0] NQ 0 00449 M00S00381.sxucp +++| THEN 00450 M00S00382.sxucp +++| BEGIN # PROCESS UNEXPECTED RESPONSE # 00451 M00S00383.sxucp +++| IF SFRC[0] EQ SFRCUCPGON 00452 M00S00384.sxucp +++| THEN 00453 M00S00385.sxucp +++| BEGIN 00454 M00S00386.sxucp +++| RETURN; 00455 M00S00387.sxucp +++| END 00456 M00S00388.sxucp +++| 00457 M00S00389.sxucp +++| ELSE 00458 M00S00390.sxucp +++| BEGIN 00459 M00S00391.sxucp +++| FE$RTN[0] = "CONNECT."; 00460 M00S00392.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 00461 M00S00393.sxucp +++| ABORT; 00462 M00S00394.sxucp +++| END 00463 M00S00395.sxucp +++| 00464 M00S00396.sxucp +++| END # PROCESS UNEXPECTED RESPONSE # 00465 M00S00397.sxucp +++| 00466 M00S00398.sxucp +++| LTC$WORD1[LTCENTRY] = UCP$WORD1[0]; 00467 M00S00399.sxucp +++| LTC$WORD2[LTCENTRY] = 0; 00468 M00S00400.sxucp +++| LTC$RQI[LTCENTRY] = CPR$RQI[0]; 00469 M00S00401.sxucp +++| LTC$UCPA[LTCENTRY] = UCP$ADDR[0]; 00470 M00S00402.sxucp +++| LTC$WORD3[LTCENTRY] = CPR3[0]; 00471 M00S00403.sxucp +++| CONIND[CPR$RQI[0]] = TRUE; 00472 M00S00404.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP1"OK1"; 00473 M00S00405.sxucp +++| UCP$RES; 00474 M00S00406.sxucp +++| RETURN; 00475 M00S00407.sxucp +++| END # SET UP LONG TERM CONNECTION # 00476 M00S00408.sxucp +++| 00477 M00S00409.sxucp +++| END # SEARCH *LTCT* FOR AN EMPTY SLOT # 00478 M00S00410.sxucp +++| 00479 M00S00411.sxucp +++|# 00480 M00S00412.sxucp +++|* ABORT IF THERE ARE NO LONG TERM CONNECT TABLE ENTRIES 00481 M00S00413.sxucp +++|* AVAILABLE. 00482 M00S00414.sxucp +++|# 00483 M00S00415.sxucp +++| 00484 M00S00416.sxucp +++| FE$RTN[0] = "CONNECT."; 00485 M00S00417.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 00486 M00S00418.sxucp +++| ABORT; 00487 M00S00419.sxucp +++| END # CONNECT # 00488 M00S00420.sxucp +++| 00489 M00S00421.sxucp +++| TERM 00490 M00S00422.sxucp +++|PROC KILL$UC((MCODE)); 00491 M00S00423.sxucp +++|# TITLE KILL$UC - ABORT A *UCP*. # 00492 M00S00424.sxucp +++| BEGIN # KILL$UC # 00493 M00S00425.sxucp +++| 00494 M00S00426.sxucp +++|# 00495 M00S00427.sxucp +++|** KILL$UC - ABORT A *UCP*. 00496 M00S00428.sxucp +++|* 00497 M00S00429.sxucp +++|* *KILL$UC* ABORTS A *UCP*. 00498 M00S00430.sxucp +++|* 00499 M00S00431.sxucp +++|* PROC KILL$UC((MCODE)) 00500 M00S00432.sxucp +++|* 00501 M00S00433.sxucp +++|* ENTRY MCODE = MESSAGE CODE ORDINAL. 00502 M00S00434.sxucp +++|* THE JOB SEQUEUNCE NUMBER FROM THE OFFENDING *UCP* IS 00503 M00S00435.sxucp +++|* IN ARRAY *UCPR*. THE BASE POINTER FOR *UCPR* IS 00504 M00S00436.sxucp +++|* ALREADY SET. 00505 M00S00437.sxucp +++|* 00506 M00S00438.sxucp +++|* EXIT A DAYFILE MESSAGE HAS BEEN ISSUED TO EXPLAIN WHY THE 00507 M00S00439.sxucp +++|* *UCP* IS BEING ABORTED, AND AN *SF.REGR* HAS BEEN 00508 M00S00440.sxucp +++|* ISSUED TO ABORT THE OFFENDING *UCP*. 00509 M00S00441.sxucp +++|* 00510 M00S00442.sxucp +++|* MESSAGES * EXEC ABNORMAL, KILL$UC.* 00511 M00S00443.sxucp +++|* * XXXX ABORTED - NOT CONNECTED.* 00512 M00S00444.sxucp +++|* * XXXX ABORTED - ALREADY CONNECTED.* 00513 M00S00445.sxucp +++|* * XXXX ABORTED - MULTIPLE REQUESTS.* 00514 M00S00446.sxucp +++|* * XXXX ABORTED - MULTIPLE RUN.* 00515 M00S00447.sxucp +++|* * XXXX ABORTED - INCORRECT REQUEST TYPE.* 00516 M00S00448.sxucp +++|* * XXXX ABORTED - INCORRECT REQUEST CODE.* 00517 M00S00449.sxucp +++|* * XXXX ABORTED - UTILITY CONFLICT.* 00518 M00S00450.sxucp +++|* * XXXX ABORTED - CARTRIDGE ACTIVE.* 00519 M00S00451.sxucp +++|* * XXXX ABORTED - SSEXEC IS CLOSED.* 00520 M00S00452.sxucp +++|* * XXXX ABORTED - INCORRECT ADDRESS.* 00521 M00S00453.sxucp +++|* XXXX = JOB SEQUENCE NUMBER. 00522 M00S00454.sxucp +++|* 00523 M00S00455.sxucp +++|# 00524 M00S00456.sxucp +++| 00525 M00S00457.sxucp +++| ITEM MCODE U; # MESSAGE-CODE ORDINAL # 00526 M00S00458.sxucp +++| 00527 M00S00459.sxucp +++|# 00528 M00S00460.sxucp +++|**** PROC KILL$UC - XREF LIST BEGIN. 00529 M00S00461.sxucp +++|# 00530 M00S00462.sxucp +++| 00531 M00S00463.sxucp +++| XREF 00532 M00S00464.sxucp +++| BEGIN 00533 M00S00465.sxucp +++| PROC ABORT; # INTERFACE TO *ABORT* MACRO # 00534 M00S00466.sxucp +++| PROC MESSAGE; # INTERFACE TO *MESSAGE* MACRO # 00535 M00S00467.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 00536 M00S00468.sxucp +++| END 00537 M00S00469.sxucp +++| 00538 M00S00470.sxucp +++|# 00539 M00S00471.sxucp +++|**** PROC KILL$UC - XREF LIST END. 00540 M00S00472.sxucp +++|# 00541 M00S00473.sxucp +++| 00542 M00S00474.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00543 M00S00475.sxucp +++|*CALL COMBFAS 00544 M00S00476.sxucp +++|*CALL COMBUCR 00545 M00S00477.sxucp +++|*CALL COMXLTC 00546 M00S00478.sxucp +++|*CALL COMXMSC 00547 M00S00479.sxucp +++| 00548 M00S00480.sxucp +++|# 00549 M00S00481.sxucp +++|* ABORT MESSAGE DEFINITION. 00550 M00S00482.sxucp +++|# 00551 M00S00483.sxucp +++| 00552 M00S00484.sxucp +++| ARRAY DISPMESS [0:0] S(5); 00553 M00S00485.sxucp +++| BEGIN 00554 M00S00486.sxucp +++| ITEM MESSJBSN C(00,00,04); # JOB NAME # 00555 M00S00487.sxucp +++| ITEM MESSFLR C(00,24,03) = [" "]; 00556 M00S00488.sxucp +++| ITEM MESSABT C(00,42,10) = ["ABORTED - "]; 00557 M00S00489.sxucp +++| ITEM MESSREASON C(01,42,21); 00558 M00S00490.sxucp +++| ITEM MESSTERMTR C(03,48,12) = [0]; 00559 M00S00491.sxucp +++| END 00560 M00S00492.sxucp +++| 00561 M00S00493.sxucp +++|# 00562 M00S00494.sxucp +++|* REASON WHY *UCP* IS BEING ABORTED. 00563 M00S00495.sxucp +++|# 00564 M00S00496.sxucp +++| 00565 M00S00497.sxucp +++| ARRAY ABTREASON [KILLCODE"NOTAUTH":KILLCODE"LASTCODE"] S(3); 00566 M00S00498.sxucp +++| BEGIN 00567 M00S00499.sxucp +++| ITEM REASONMESS C(00,00,21) = ["NOT AUTHORIZED.", 00568 M00S00500.sxucp +++| "NOT CONNECTED.", 00569 M00S00501.sxucp +++| "ALREADY CONNECTED.", 00570 M00S00502.sxucp +++| "MULTIPLE REQUESTS.", 00571 M00S00503.sxucp +++| "MULTIPLE RUN.", 00572 M00S00504.sxucp +++| "INVALID REQUEST TYPE.", 00573 M00S00505.sxucp +++| "INVALID REQUEST CODE.", 00574 M00S00506.sxucp +++| "UTILITY CONFLICT.", 00575 M00S00507.sxucp +++| "CARTRIDGE ACTIVE.", 00576 M00S00508.sxucp +++| "SSEXEC IS CLOSED.", 00577 M00S00509.sxucp +++| "INVALID ADDRESS.", 00578 M00S00510.sxucp +++| "LAST ENTRY."]; 00579 M00S00511.sxucp +++| END 00580 M00S00512.sxucp +++| 00581 M00S00513.sxucp +++| 00582 M00S00514.sxucp +++| 00583 M00S00515.sxucp +++| 00584 M00S00516.sxucp +++| 00585 M00S00517.sxucp +++|# 00586 M00S00518.sxucp +++|* REASON CODE HAS TO BE WITHIN RANGE. 00587 M00S00519.sxucp +++|# 00588 M00S00520.sxucp +++| 00589 M00S00521.sxucp +++| IF MCODE LS KILLCODE"NOTAUTH" OR MCODE GQ KILLCODE"LASTCODE" 00590 M00S00522.sxucp +++| THEN 00591 M00S00523.sxucp +++| BEGIN 00592 M00S00524.sxucp +++| FE$RTN[0] = "KILLUCP."; 00593 M00S00525.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 00594 M00S00526.sxucp +++| ABORT; 00595 M00S00527.sxucp +++| END 00596 M00S00528.sxucp +++| 00597 M00S00529.sxucp +++| MESSJBSN[0] = UCP$JBSN[0]; 00598 M00S00530.sxucp +++| MESSREASON[0] = REASONMESS[MCODE]; 00599 M00S00531.sxucp +++| MESSAGE(DISPMESS,3); 00600 M00S00532.sxucp +++| 00601 M00S00533.sxucp +++|# 00602 M00S00534.sxucp +++|* ABORT THE *UCP* VIA A *SFCALL* REQUEST. 00603 M00S00535.sxucp +++|# 00604 M00S00536.sxucp +++| 00605 M00S00537.sxucp +++|REPEATREGR: 00606 M00S00538.sxucp +++| SFFP[0] = 0; 00607 M00S00539.sxucp +++| SFUCPA[0] = 2; 00608 M00S00540.sxucp +++| SFSCPA[0] = LOC(DISPMESS); 00609 M00S00541.sxucp +++| SFFC[0] = SFREGR; 00610 M00S00542.sxucp +++| SFJBSN[0] = UCP$JBSN[0]; 00611 M00S00543.sxucp +++| SFFSTA[0] = UCP$FSTA[0]; 00612 M00S00544.sxucp +++| SFCALL(SFBLKPTR,RCL); 00613 M00S00545.sxucp +++| 00614 M00S00546.sxucp +++|# 00615 M00S00547.sxucp +++|* SWAPIN *UCP* IF OUT. 00616 M00S00548.sxucp +++|# 00617 M00S00549.sxucp +++| 00618 M00S00550.sxucp +++| IF SFRC[0] EQ SFRCSWPOUT 00619 M00S00551.sxucp +++| THEN 00620 M00S00552.sxucp +++| BEGIN 00621 M00S00553.sxucp +++| SFFC[0] = SFSWPI; 00622 M00S00554.sxucp +++| SFCALL(SFBLKPTR,RCL); 00623 M00S00555.sxucp +++| GOTO REPEATREGR; 00624 M00S00556.sxucp +++| END 00625 M00S00557.sxucp +++| 00626 M00S00558.sxucp +++|# 00627 M00S00559.sxucp +++|* ABORT IF *SFERROR* NOT *UCP* ABORTED OR UNDEFINED. 00628 M00S00560.sxucp +++|# 00629 M00S00561.sxucp +++| 00630 M00S00562.sxucp +++| IF SFRC[0] NQ 0 00631 M00S00563.sxucp +++| THEN 00632 M00S00564.sxucp +++| BEGIN 00633 M00S00565.sxucp +++| IF SFRC[0] NQ SFRCUCPGON 00634 M00S00566.sxucp +++| THEN 00635 M00S00567.sxucp +++| BEGIN 00636 M00S00568.sxucp +++| FE$RTN[0] = "KILLUCP."; 00637 M00S00569.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 00638 M00S00570.sxucp +++| ABORT; 00639 M00S00571.sxucp +++| END 00640 M00S00572.sxucp +++| 00641 M00S00573.sxucp +++| END 00642 M00S00574.sxucp +++| 00643 M00S00575.sxucp +++| RETURN; 00644 M00S00576.sxucp +++| END # KILL$UC # 00645 M00S00577.sxucp +++| 00646 M00S00578.sxucp +++| TERM 00647 M00S00579.sxucp +++|PROC LINK$RP; 00648 M00S00580.sxucp +++|# TITLE LINK$RP - PRELIMINARY LINKAGE PROCESSING. # 00649 M00S00581.sxucp +++| BEGIN # LINK$RP # 00650 M00S00582.sxucp +++| 00651 M00S00583.sxucp +++| 00652 M00S00584.sxucp +++|# 00653 M00S00585.sxucp +++|** LINK$RP - PRELIMINARY LINKAGE PROCESSING. 00654 M00S00586.sxucp +++|* 00655 M00S00587.sxucp +++|* *LINK$RP* DOES PRELIMINARY PROCESSING OF *UCP* LINKAGE 00656 M00S00588.sxucp +++|* REQUESTS AND THEN CALLS THE APPROPRIATE MODULE TO DO 00657 M00S00589.sxucp +++|* THE DETAILED PROCESSING OF THE REQUEST. 00658 M00S00590.sxucp +++|* 00659 M00S00591.sxucp +++|* PROC LINK$RP 00660 M00S00592.sxucp +++|* 00661 M00S00593.sxucp +++|* ENTRY THE TYPE 1 UCP REQUEST TO BE PROCESSED IS IN ARRAY 00662 M00S00594.sxucp +++|* *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY SET. 00663 M00S00595.sxucp +++|* 00664 M00S00596.sxucp +++|* EXIT THE TYPE 1 REQUEST HAS BEEN PROCESSED AND A RESPONSE 00665 M00S00597.sxucp +++|* HAS BEEN SENT BACK TO THE UCP INDICATING COMPLETION 00666 M00S00598.sxucp +++|* OF THE REQUEST. 00667 M00S00599.sxucp +++|# 00668 M00S00600.sxucp +++| 00669 M00S00601.sxucp +++|# 00670 M00S00602.sxucp +++|**** PROC LINK$RP - XREF LIST BEGIN. 00671 M00S00603.sxucp +++|# 00672 M00S00604.sxucp +++| 00673 M00S00605.sxucp +++| XREF 00674 M00S00606.sxucp +++| BEGIN 00675 M00S00607.sxucp +++| PROC CONNECT; # ESTABLISH LONG TERM CONNECTION # 00676 M00S00608.sxucp +++| PROC KILL$UC; # ABORT A *UCP* # 00677 M00S00609.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 00678 M00S00610.sxucp +++| PROC UCP$DON; # TERMINATE *UCP* REQUEST PROPERLY 00679 M00S00611.sxucp +++| # 00680 M00S00612.sxucp +++| END 00681 M00S00613.sxucp +++| 00682 M00S00614.sxucp +++|# 00683 M00S00615.sxucp +++|**** PROC LINK$RP - XREF LIST END. 00684 M00S00616.sxucp +++|# 00685 M00S00617.sxucp +++| 00686 M00S00618.sxucp +++| 00687 M00S00619.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00688 M00S00620.sxucp +++|*CALL COMBFAS 00689 M00S00621.sxucp +++|*CALL COMBCPR 00690 M00S00622.sxucp +++|*CALL COMBUCR 00691 M00S00623.sxucp +++|*CALL COMXMSC 00692 M00S00624.sxucp +++| 00693 M00S00625.sxucp +++|# 00694 M00S00626.sxucp +++|* LIST FOR PROCESSING LINKAGE REQUESTS. 00695 M00S00627.sxucp +++|# 00696 M00S00628.sxucp +++| 00697 M00S00629.sxucp +++| SWITCH TYP1SW:REQTYP1 00698 M00S00630.sxucp +++| PRCON:CONNECT, 00699 M00S00631.sxucp +++| PRDISC:DISCONNECT; 00700 M00S00632.sxucp +++| 00701 M00S00633.sxucp +++| 00702 M00S00634.sxucp +++| 00703 M00S00635.sxucp +++| 00704 M00S00636.sxucp +++| 00705 M00S00637.sxucp +++|# 00706 M00S00638.sxucp +++|* REQUEST CODE HAS TO BE A VALID LINKAGE REQUEST CODE. 00707 M00S00639.sxucp +++|# 00708 M00S00640.sxucp +++| 00709 M00S00641.sxucp +++| IF CPR$RQC[0] EQ REQTYP1"RES1" ## 00710 M00S00642.sxucp +++| OR CPR$RQC[0] GQ REQTYP1"LSTREQTYP1" 00711 M00S00643.sxucp +++| THEN 00712 M00S00644.sxucp +++| BEGIN 00713 M00S00645.sxucp +++| KILL$UC(KILLCODE"INVRQC"); 00714 M00S00646.sxucp +++| RETURN; 00715 M00S00647.sxucp +++| END 00716 M00S00648.sxucp +++| 00717 M00S00649.sxucp +++| 00718 M00S00650.sxucp +++|# 00719 M00S00651.sxucp +++|* PROCESS THE APPROPRIATE LINKAGE REQUEST AND THEN RETURN TO 00720 M00S00652.sxucp +++|* THE CALLER. 00721 M00S00653.sxucp +++|# 00722 M00S00654.sxucp +++| 00723 M00S00655.sxucp +++| GOTO TYP1SW[CPR$RQC[0]]; 00724 M00S00656.sxucp +++| 00725 M00S00657.sxucp +++| 00726 M00S00658.sxucp +++|PRCON: 00727 M00S00659.sxucp +++| CONNECT; 00728 M00S00660.sxucp +++| RETURN; 00729 M00S00661.sxucp +++| 00730 M00S00662.sxucp +++| 00731 M00S00663.sxucp +++|PRDISC: 00732 M00S00664.sxucp +++| UCP$DON; 00733 M00S00665.sxucp +++| RETURN; 00734 M00S00666.sxucp +++| 00735 M00S00667.sxucp +++| 00736 M00S00668.sxucp +++| END # LINK$RP # 00737 M00S00669.sxucp +++| 00738 M00S00670.sxucp +++| TERM 00739 M00S00671.sxucp +++|PROC QUE$RP; 00740 M00S00672.sxucp +++|# TITLE QUE$RP - QUEUABLE REQUEST PROCESSOR. # 00741 M00S00673.sxucp +++| 00742 M00S00674.sxucp +++| BEGIN # QUE$RP # 00743 M00S00675.sxucp +++| 00744 M00S00676.sxucp +++|# 00745 M00S00677.sxucp +++|** QUE$RP - QUEUABLE REQUEST PROCESSOR. 00746 M00S00678.sxucp +++|* 00747 M00S00679.sxucp +++|* *QUE$RP* DOES PRELIMINARY PROCESSING OF TYPE 4 *UCP* REQUESTS. 00748 M00S00680.sxucp +++|* A LOW LEVEL REQUEST QUEUE ENTRY IS SET UP. FOR AN UNLOAD 00749 M00S00681.sxucp +++|* CARTRIDGE REQUEST, THE UTILITY CARTRIDGE TABLE IS CLEARED. 00750 M00S00682.sxucp +++|* 00751 M00S00683.sxucp +++|* PROC QUE$RP 00752 M00S00684.sxucp +++|* 00753 M00S00685.sxucp +++|* ENTRY POINTERS TO THE UCP REQUEST BEING PROCESSED AND 00754 M00S00686.sxucp +++|* THE *LTCT* ENTRY CORRESPONDING TO THE REQUEST HAVE 00755 M00S00687.sxucp +++|* BEEN SET. 00756 M00S00688.sxucp +++|* 00757 M00S00689.sxucp +++|* EXIT IF AN INCORRECT REQUEST CODE OR A UTILITY CONFLICT IS 00758 M00S00690.sxucp +++|* DISCOVERED, THE UCP WILL BE ABORTED AND CONTROL WILL 00759 M00S00691.sxucp +++|* RETURN TO THE CALLER. 00760 M00S00692.sxucp +++|* 00761 M00S00693.sxucp +++|* NOTES *QUE$RP* MUST NOT BE CALLED IF THE *LLRQ* IS FULL. 00762 M00S00694.sxucp +++|# 00763 M00S00695.sxucp +++| 00764 M00S00696.sxucp +++|# 00765 M00S00697.sxucp +++|**** PROC QUE$RP - XREF LIST BEGIN. 00766 M00S00698.sxucp +++|# 00767 M00S00699.sxucp +++| 00768 M00S00700.sxucp +++| XREF 00769 M00S00701.sxucp +++| BEGIN 00770 M00S00702.sxucp +++| PROC ADD$LNK; # ADD ENTRY TO END OF CHAIN # 00771 M00S00703.sxucp +++| PROC KILL$UC; # ABORT A UCP # 00772 M00S00704.sxucp +++| PROC LLRQENQ; # *LLRQ* ENQUEUER # 00773 M00S00705.sxucp +++| END 00774 M00S00706.sxucp +++| 00775 M00S00707.sxucp +++|# 00776 M00S00708.sxucp +++|**** PROC QUE$RP - XREF LIST END. 00777 M00S00709.sxucp +++|# 00778 M00S00710.sxucp +++| 00779 M00S00711.sxucp +++| DEF LISTCON #0#; 00780 M00S00712.sxucp +++|*CALL COMBFAS 00781 M00S00713.sxucp +++|*CALL COMBCHN 00782 M00S00714.sxucp +++|*CALL COMBCPR 00783 M00S00715.sxucp +++|*CALL COMBLRQ 00784 M00S00716.sxucp +++|*CALL COMXLTC 00785 M00S00717.sxucp +++|*CALL COMXMSC 00786 M00S00718.sxucp +++|*CALL COMBUCR 00787 M00S00719.sxucp +++| 00788 M00S00720.sxucp +++| ITEM LLRADR U; # *LLRQ* ENTRY ADDRESS # 00789 M00S00721.sxucp +++| 00790 M00S00722.sxucp +++| SWITCH REQCODE:REQTYP4 00791 M00S00723.sxucp +++| REQ1:LOAD$CART, 00792 M00S00724.sxucp +++| REQ2:UNLD$CART, 00793 M00S00725.sxucp +++| REQ3:CP$RAW$AU, 00794 M00S00726.sxucp +++| REQ4:WRT$LAB, 00795 M00S00727.sxucp +++| REQEND:LSTREQTYP4; 00796 M00S00728.sxucp +++| 00797 M00S00729.sxucp +++| CONTROL EJECT; 00798 M00S00730.sxucp +++| 00799 M00S00731.sxucp +++| IF CPR$RQC[0] LQ REQTYP4"RES4" ## 00800 M00S00732.sxucp +++| OR CPR$RQC[0] GQ REQTYP4"LSTREQTYP4" 00801 M00S00733.sxucp +++| THEN # IF REQUEST CODE IS INCORRECT # 00802 M00S00734.sxucp +++| BEGIN 00803 M00S00735.sxucp +++| KILL$UC(KILLCODE"INVRQC"); # ABORT THE UCP # 00804 M00S00736.sxucp +++| RETURN; 00805 M00S00737.sxucp +++| END 00806 M00S00738.sxucp +++| 00807 M00S00739.sxucp +++| IF CPR$RQC[0] EQ REQTYP4"LOAD$CART" 00808 M00S00740.sxucp +++| THEN # IF LOAD CARTRDIGE REQUEST # 00809 M00S00741.sxucp +++| BEGIN # LOAD CARTRDIGE REQUEST # 00810 M00S00742.sxucp +++| IF LTC$CART[LTCENTRY] 00811 M00S00743.sxucp +++| THEN # IF *UTCT* NOT EMPTY # 00812 M00S00744.sxucp +++| BEGIN 00813 M00S00745.sxucp +++| KILL$UC(KILLCODE"MULCART"); # CARTRIDGE ALREADY ACTIVE # 00814 M00S00746.sxucp +++| RETURN; 00815 M00S00747.sxucp +++| END 00816 M00S00748.sxucp +++| ELSE 00817 M00S00749.sxucp +++| BEGIN # SET UP *LLRQ* ENTRY # 00818 M00S00750.sxucp +++| LLRQENQ(LLRADR); 00819 M00S00751.sxucp +++| P<LLRQ> = LLRADR; 00820 M00S00752.sxucp +++| LLR$LTCT[0] = LTCENTRY; 00821 M00S00753.sxucp +++| LLR$UCPRA[0] = UCP$ADDR[0]; 00822 M00S00754.sxucp +++| LLR$WORD4[0] = CPR3[0]; 00823 M00S00755.sxucp +++| LLR$WORD5[0] = CPR2[0]; 00824 M00S00756.sxucp +++| LTC$LLRQA[LTCENTRY] = LLRADR; 00825 M00S00757.sxucp +++| END 00826 M00S00758.sxucp +++| 00827 M00S00759.sxucp +++| END # LOAD CARTRIDGE REQUEST # 00828 M00S00760.sxucp +++| 00829 M00S00761.sxucp +++| IF CPR$RQC[0] EQ REQTYP4"UNLD$CART" 00830 M00S00762.sxucp +++| THEN # IF UNLOAD CARTRIDGE REQUEST # 00831 M00S00763.sxucp +++| BEGIN 00832 M00S00764.sxucp +++| LTC$CART[0] = FALSE; 00833 M00S00765.sxucp +++| END 00834 M00S00766.sxucp +++| 00835 M00S00767.sxucp +++| IF CPR$RQC[0] NQ REQTYP4"LOAD$CART" 00836 M00S00768.sxucp +++| THEN 00837 M00S00769.sxucp +++| BEGIN # NO BUILD OF *LLRQ* # 00838 M00S00770.sxucp +++| P<LLRQ> = LTC$LLRQA[LTCENTRY]; 00839 M00S00771.sxucp +++| LLR$DR[0] = 0; # CLEAR OLD RESPONSE CODE # 00840 M00S00772.sxucp +++| LLR$PRCST[0] = 0; 00841 M00S00773.sxucp +++| LLR$RQC[0] = CPR$RQC[0]; # NEW REQUEST CODE # 00842 M00S00774.sxucp +++| LLR$WORD4[0] = CPR3[0]; 00843 M00S00775.sxucp +++| LLR$YZ[0] = CPR$YZ[0]; 00844 M00S00776.sxucp +++| LLR$ADDR2[0] = CPR$ADDR2[0]; 00845 M00S00777.sxucp +++| END 00846 M00S00778.sxucp +++| 00847 M00S00779.sxucp +++|# 00848 M00S00780.sxucp +++|* SIMULATED CASE COMMAND FOR SETTING PROCESS NAME. 00849 M00S00781.sxucp +++|# 00850 M00S00782.sxucp +++| 00851 M00S00783.sxucp +++|CORCOD: 00852 M00S00784.sxucp +++| GOTO REQCODE[CPR$RQC[0]]; 00853 M00S00785.sxucp +++| 00854 M00S00786.sxucp +++|REQ1: # LOAD CARTRIDGE # 00855 M00S00787.sxucp +++| LLR$PRCNME[0] = REQTYP4"LOAD$CART"; 00856 M00S00788.sxucp +++| RETURN; 00857 M00S00789.sxucp +++| 00858 M00S00790.sxucp +++|REQ2: # UNLOAD CARTRIDGE # 00859 M00S00791.sxucp +++| LLR$PRCNME[0] = REQTYP4"UNLD$CART"; 00860 M00S00792.sxucp +++| GOTO REQEND; 00861 M00S00793.sxucp +++| 00862 M00S00794.sxucp +++|REQ3: # COPY RAW STREAM # 00863 M00S00795.sxucp +++| LLR$PRCNME[0] = REQTYP4"CP$RAW$AU"; 00864 M00S00796.sxucp +++| GOTO REQEND; 00865 M00S00797.sxucp +++| 00866 M00S00798.sxucp +++|REQ4: # WRITE LABEL # 00867 M00S00799.sxucp +++| LLR$PRCNME[0] = REQTYP4"WRT$LAB"; 00868 M00S00800.sxucp +++| GOTO REQEND; 00869 M00S00801.sxucp +++| 00870 M00S00802.sxucp +++|REQEND: 00871 M00S00803.sxucp +++| 00872 M00S00804.sxucp +++|# 00873 M00S00805.sxucp +++|* END SIMULATED CASE COMMAND FOR SETTING PROCESS NAME. 00874 M00S00806.sxucp +++|# 00875 M00S00807.sxucp +++| 00876 M00S00808.sxucp +++| ADD$LNK(LTC$LLRQA[LTCENTRY],LCHN"LL$READY",0); 00877 M00S00809.sxucp +++| RETURN; 00878 M00S00810.sxucp +++| 00879 M00S00811.sxucp +++| END # QUE$RP # 00880 M00S00812.sxucp +++| 00881 M00S00813.sxucp +++| TERM 00882 M00S00814.sxucp +++|PROC TYP2$RP; 00883 M00S00815.sxucp +++|# TITLE TYP2$RP - TYPE 2 REQUEST PROCESSOR. # 00884 M00S00816.sxucp +++| 00885 M00S00817.sxucp +++| BEGIN # TYP2$RP # 00886 M00S00818.sxucp +++| 00887 M00S00819.sxucp +++|# 00888 M00S00820.sxucp +++|** TYP2$RP - TYPE 2 REQUEST PROCESSOR. 00889 M00S00821.sxucp +++|* 00890 M00S00822.sxucp +++|* *TYP2$RP* DOES PRELIMINARY PROCESSING OF TYPE 2 *UCP* REQUESTS. 00891 M00S00823.sxucp +++|* THE APPROPRIATE MODULE IS CALLED TO DO DETAILED PROCESSING OF 00892 M00S00824.sxucp +++|* THE REQUEST. 00893 M00S00825.sxucp +++|* 00894 M00S00826.sxucp +++|* PROC TYP2$RP 00895 M00S00827.sxucp +++|* 00896 M00S00828.sxucp +++|* ENTRY THE POINTER TO THE *UCP* REQUEST BEING PROCESSED 00897 M00S00829.sxucp +++|* HAS BEEN SET (BASED ARRAY *CPR*). 00898 M00S00830.sxucp +++|* 00899 M00S00831.sxucp +++|* EXIT IF AN INCORRECT REQUEST CODE WAS DETECTED, THE *UCP* 00900 M00S00832.sxucp +++|* HAS BEEN ABORTED, ELSE *ACTVMF* HAS BEEN CALLED. 00901 M00S00833.sxucp +++|# 00902 M00S00834.sxucp +++| 00903 M00S00835.sxucp +++|# 00904 M00S00836.sxucp +++|* PROC TYP2$RP - XREF LIST BEGIN. 00905 M00S00837.sxucp +++|# 00906 M00S00838.sxucp +++| 00907 M00S00839.sxucp +++| XREF 00908 M00S00840.sxucp +++| BEGIN 00909 M00S00841.sxucp +++| PROC DSSETUP; # SETUP DESTAGE PROCESSING # 00910 M00S00842.sxucp +++| PROC KILL$UC; # ABORT A *UCP* # 00911 M00S00843.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 00912 M00S00844.sxucp +++| PROC UCP$RES; # ISSUE RESPONSE TO A *UCP* # 00913 M00S00845.sxucp +++| END 00914 M00S00846.sxucp +++| 00915 M00S00847.sxucp +++|# 00916 M00S00848.sxucp +++|* PROC TYP2$RP - XREF LIST END. 00917 M00S00849.sxucp +++|# 00918 M00S00850.sxucp +++| 00919 M00S00851.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00920 M00S00852.sxucp +++|*CALL COMBFAS 00921 M00S00853.sxucp +++|*CALL COMBCPR 00922 M00S00854.sxucp +++|*CALL COMBUCR 00923 M00S00855.sxucp +++|*CALL,COMXLTC 00924 M00S00856.sxucp +++|*CALL,COMXMSC 00925 M00S00857.sxucp +++| 00926 M00S00858.sxucp +++| ITEM STAT U; # STATUS # 00927 M00S00859.sxucp +++| CONTROL EJECT; 00928 M00S00860.sxucp +++| IF CPR$RQC[0] LQ REQTYP2"RES2" ## 00929 M00S00861.sxucp +++| OR CPR$RQC[0] GQ REQTYP2"LSTREQTYP2" 00930 M00S00862.sxucp +++| THEN # IF INCORRECT REQUEST CODE # 00931 M00S00863.sxucp +++| BEGIN 00932 M00S00864.sxucp +++| KILL$UC(KILLCODE"INVRQC"); # ABORT THE *UCP* # 00933 M00S00865.sxucp +++| RETURN; 00934 M00S00866.sxucp +++| END 00935 M00S00867.sxucp +++| 00936 M00S00868.sxucp +++|# 00937 M00S00869.sxucp +++|* CALL *DSSETUP* TO INITIATE DESTAGE PROCESSING. 00938 M00S00870.sxucp +++|* IF PROBLEMS WITH THIS INITIATION OR IF THE NO-WAIT OPTION IS 00939 M00S00871.sxucp +++|* SELECTED, ISSUE AN IMMEDIATE REPLY TO *SSMOVE*. OTHERWISE, 00940 M00S00872.sxucp +++|* SAVE THE LONG-TERM CONNECT TABLE ORDINAL SO A REPLY CAN 00941 M00S00873.sxucp +++|* BE RETURNED UPON COMPLETION OF DESTAGING. 00942 M00S00874.sxucp +++|# 00943 M00S00875.sxucp +++| 00944 M00S00876.sxucp +++| DSSETUP(CPR$FAM[0],STAT); 00945 M00S00877.sxucp +++| 00946 M00S00878.sxucp +++| IF STAT NQ 0 00947 M00S00879.sxucp +++| THEN 00948 M00S00880.sxucp +++| BEGIN STAT = RESPTYP2"MRFERR"; END 00949 M00S00881.sxucp +++| ELSE BEGIN STAT = RESPTYP2"OK2"; 00950 M00S00882.sxucp +++| IF NOT CPR$NW[0] 00951 M00S00883.sxucp +++| THEN # CAUSE *SSMOVE* TO BE ROLLED UNTIL DESTAGING 00952 M00S00884.sxucp +++| IS COMPLETE # 00953 M00S00885.sxucp +++| BEGIN 00954 M00S00886.sxucp +++| LTC$SFUCPA[LTCENTRY] = 0; 00955 M00S00887.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 00956 M00S00888.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPO; 00957 M00S00889.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),NRCL); 00958 M00S00890.sxucp +++| DSC$LTCT = LTCENTRY; 00959 M00S00891.sxucp +++| RETURN; 00960 M00S00892.sxucp +++| END 00961 M00S00893.sxucp +++| 00962 M00S00894.sxucp +++| END 00963 M00S00895.sxucp +++| 00964 M00S00896.sxucp +++|# 00965 M00S00897.sxucp +++|* REPLY IMMEDIATELY. 00966 M00S00898.sxucp +++|# 00967 M00S00899.sxucp +++| 00968 M00S00900.sxucp +++| LTC$RQR[LTCENTRY] = STAT; 00969 M00S00901.sxucp +++| UCP$RES; 00970 M00S00902.sxucp +++| RETURN; 00971 M00S00903.sxucp +++| END # TYP2$RP # 00972 M00S00904.sxucp +++| 00973 M00S00905.sxucp +++| TERM 00974 M00S00906.sxucp +++|PROC UCP$DON; 00975 M00S00907.sxucp +++|# TITLE UCP$DON - TERMINATE *UCP* REQUEST PROPERLY. # 00976 M00S00908.sxucp +++| 00977 M00S00909.sxucp +++| BEGIN # UCP$DON # 00978 M00S00910.sxucp +++| 00979 M00S00911.sxucp +++|# 00980 M00S00912.sxucp +++|** UCP$DON - TERMINATE *UCP* REQUEST PROPERLY. 00981 M00S00913.sxucp +++|* 00982 M00S00914.sxucp +++|* *UCP$DON* CLEANS UP THE LONG TERM CONNECT TABLE 00983 M00S00915.sxucp +++|* ENTRY AND ANY OUTSTANDING REQUESTS WHEN A *UCP* 00984 M00S00916.sxucp +++|* TERMINATES WHILE STILL HAVING A LONG TERM 00985 M00S00917.sxucp +++|* CONNECTION WITH *SSEXEC*. 00986 M00S00918.sxucp +++|* 00987 M00S00919.sxucp +++|* PROC UCP$DON 00988 M00S00920.sxucp +++|* 00989 M00S00921.sxucp +++|* ENTRY THE DISCONNECT REQUEST OR TERMINATION NOTICE IS IN 00990 M00S00922.sxucp +++|* ARRAY *CPR*. THE BASE POINTER FOR *CPR* IS ALREADY 00991 M00S00923.sxucp +++|* SET. THE *LTCT* ENTRY FOR THE REQUESTING *UCP* IS 00992 M00S00924.sxucp +++|* POINTED TO BY *LTCENTRY*. 00993 M00S00925.sxucp +++|* 00994 M00S00926.sxucp +++|* EXIT THE REQUEST/NOTICE HAS BEEN PROCESSED. 00995 M00S00927.sxucp +++|* 00996 M00S00928.sxucp +++|* MESSAGES * EXEC ABNORMAL, UCP$DON.* 00997 M00S00929.sxucp +++|* 00998 M00S00930.sxucp +++|* NOTE IT IS ASSUMED THAT THE *LTCENTRY* FOR THE *UCP* 00999 M00S00931.sxucp +++|* IS SET ON ENTRY. THE REQUEST AREA FOR THE UCP, 01000 M00S00932.sxucp +++|* AS DEFINED IN *COMBCPR*, IS USED AS A COUNTER 01001 M00S00933.sxucp +++|* TO CLEAR THE TEST POINTS IF THE CONDITIONS ARE 01002 M00S00934.sxucp +++|* PROPER. 01003 M00S00935.sxucp +++|# 01004 M00S00936.sxucp +++| 01005 M00S00937.sxucp +++|# 01006 M00S00938.sxucp +++|**** PROC UCP$DON - XREF LIST BEGIN. 01007 M00S00939.sxucp +++|# 01008 M00S00940.sxucp +++| 01009 M00S00941.sxucp +++| XREF 01010 M00S00942.sxucp +++| BEGIN 01011 M00S00943.sxucp +++| PROC ABORT; # ABORTS PROCESSING # 01012 M00S00944.sxucp +++| PROC ADD$LNK; # ADD ENTRY TO END OF CHAIN # 01013 M00S00945.sxucp +++| PROC LLRQENQ; # LOW LEVEL REQUEST QUEUE ENQUEUER 01014 M00S00946.sxucp +++| # 01015 M00S00947.sxucp +++| PROC MESSAGE; # ISSUES DAYFILE MESSAGE # 01016 M00S00948.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 01017 M00S00949.sxucp +++| PROC UCP$RES; # NOTIFY *UCP* OF REQUEST 01018 M00S00950.sxucp +++| COMPLETION # 01019 M00S00951.sxucp +++| END 01020 M00S00952.sxucp +++| 01021 M00S00953.sxucp +++|# 01022 M00S00954.sxucp +++|**** PROC UCP$DON - XREF LIST END. 01023 M00S00955.sxucp +++|# 01024 M00S00956.sxucp +++| 01025 M00S00957.sxucp +++| DEF OVERRIDE #3#; # N.OVERRIDE ON UCP # 01026 M00S00958.sxucp +++| 01027 M00S00959.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01028 M00S00960.sxucp +++|*CALL COMBFAS 01029 M00S00961.sxucp +++|*CALL COMBCHN 01030 M00S00962.sxucp +++|*CALL COMBCPR 01031 M00S00963.sxucp +++|*CALL COMBLRQ 01032 M00S00964.sxucp +++|*CALL COMBMAT 01033 M00S00965.sxucp +++|*CALL COMBUCR 01034 M00S00966.sxucp +++|*CALL COMXCTF 01035 M00S00967.sxucp +++|*CALL COMXLTC 01036 M00S00968.sxucp +++|*CALL COMXMSC 01037 M00S00969.sxucp +++| 01038 M00S00970.sxucp +++| ITEM I U; # COUNTER # 01039 M00S00971.sxucp +++| ITEM LLRQE U; # ADDRESS OF THE *LLRQ* FROM 01040 M00S00972.sxucp +++| *LLRQENQ* # 01041 M00S00973.sxucp +++| ITEM MATCH B; # LOOP CONTROL FLAG # 01042 M00S00974.sxucp +++| ITEM RESTRT B=FALSE; # RESTART ALL PROCESSES AT A STEP 01043 M00S00975.sxucp +++| POINT # 01044 M00S00976.sxucp +++| ITEM UCPSWAPPED B; # UCP WAS SWAPPED OUT # 01045 M00S00977.sxucp +++| 01046 M00S00978.sxucp +++| 01047 M00S00979.sxucp +++| 01048 M00S00980.sxucp +++| 01049 M00S00981.sxucp +++| 01050 M00S00982.sxucp +++|# 01051 M00S00983.sxucp +++|* IF THE *UCP* HAS AN *LLRQ* ENTRY, FLAG THE *LLRQ* THAT 01052 M00S00984.sxucp +++|* 01053 M00S00985.sxucp +++|* THE *UCP* HAS ABORTED. IF AN CARTRIDGE IS LOADED, CLEAN-UP 01054 M00S00986.sxucp +++|* WILL UNLOAD THE CARTRIDGE. 01055 M00S00987.sxucp +++|# 01056 M00S00988.sxucp +++| 01057 M00S00989.sxucp +++| 01058 M00S00990.sxucp +++| IF LTC$LLRQA[LTCENTRY] NQ 0 01059 M00S00991.sxucp +++| THEN 01060 M00S00992.sxucp +++| BEGIN # SET ABORT FLAG # 01061 M00S00993.sxucp +++| P<LLRQ> = LTC$LLRQA[LTCENTRY]; 01062 M00S00994.sxucp +++| LLR$UCPABT[0] = TRUE; 01063 M00S00995.sxucp +++| IF LTC$CART[LTCENTRY] ## 01064 M00S00996.sxucp +++| AND LLR$RS[0] EQ PROCST"COMPLETE" ## 01065 M00S00997.sxucp +++| AND LTC$RQI[LTCENTRY] NQ REQNAME"RQIDBUG" 01066 M00S00998.sxucp +++| THEN 01067 M00S00999.sxucp +++| BEGIN # SET UNLOAD OF CARTRIDGE # 01068 M00S01000.sxucp +++| LLR$RQC[0] = REQTYP4"UNLD$CART"; 01069 M00S01001.sxucp +++| LLR$DR[0] = 0; # CLEAR OLD FIELDS # 01070 M00S01002.sxucp +++| LLR$PRCST[0] = 0; 01071 M00S01003.sxucp +++| LLR$PRCNME[0] = REQTYP4"UNLD$CART"; 01072 M00S01004.sxucp +++| ADD$LNK(LTC$LLRQA[LTCENTRY],LCHN"LL$READY",0); 01073 M00S01005.sxucp +++| END # END OF UNLOAD CARTRIDGE # 01074 M00S01006.sxucp +++| END # END OF *LLRQ* CLEAN UP # 01075 M00S01007.sxucp +++| 01076 M00S01008.sxucp +++|# 01077 M00S01009.sxucp +++|* CLOSE OUT THE CONNECTION. 01078 M00S01010.sxucp +++|# 01079 M00S01011.sxucp +++| 01080 M00S01012.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01081 M00S01013.sxucp +++| 01082 M00S01014.sxucp +++| IF UCP$STAT[0] NQ 0 01083 M00S01015.sxucp +++| THEN 01084 M00S01016.sxucp +++| BEGIN # PROCESS THE *UCP* TERMINATION NOTICE # 01085 M00S01017.sxucp +++| LTC$SFUCPA[LTCENTRY] = -1; 01086 M00S01018.sxucp +++| UCPSWAPPED = TRUE; 01087 M00S01019.sxucp +++| REPEAT WHILE UCPSWAPPED 01088 M00S01020.sxucp +++| DO 01089 M00S01021.sxucp +++| BEGIN # PROCESS SWAPPED *UCP* # 01090 M00S01022.sxucp +++| LTC$SFFC[LTCENTRY] = SFENDT; 01091 M00S01023.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01092 M00S01024.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01093 M00S01025.sxucp +++| THEN 01094 M00S01026.sxucp +++| BEGIN 01095 M00S01027.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01096 M00S01028.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01097 M00S01029.sxucp +++| END 01098 M00S01030.sxucp +++| 01099 M00S01031.sxucp +++| ELSE 01100 M00S01032.sxucp +++| BEGIN 01101 M00S01033.sxucp +++| UCPSWAPPED = FALSE; 01102 M00S01034.sxucp +++| END 01103 M00S01035.sxucp +++| 01104 M00S01036.sxucp +++| END # PROCESS SWAPPED *UCP* # 01105 M00S01037.sxucp +++| 01106 M00S01038.sxucp +++| END # PROCESS THE *UCP* TERMINATION NOTICE # 01107 M00S01039.sxucp +++| 01108 M00S01040.sxucp +++| ELSE 01109 M00S01041.sxucp +++| BEGIN # PROCESS THE DISCONNECT REQUEST # 01110 M00S01042.sxucp +++| 01111 M00S01043.sxucp +++|# 01112 M00S01044.sxucp +++|* CLEAR THE LONG TERM CONNECT. 01113 M00S01045.sxucp +++|# 01114 M00S01046.sxucp +++| 01115 M00S01047.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY]; 01116 M00S01048.sxucp +++| UCPSWAPPED = TRUE; 01117 M00S01049.sxucp +++| REPEAT WHILE UCPSWAPPED 01118 M00S01050.sxucp +++| DO 01119 M00S01051.sxucp +++| BEGIN # WAIT FOR CONNECTION TO CLEAR # 01120 M00S01052.sxucp +++| LTC$SFFC[LTCENTRY] = SFCLTC; 01121 M00S01053.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01122 M00S01054.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01123 M00S01055.sxucp +++| THEN 01124 M00S01056.sxucp +++| BEGIN 01125 M00S01057.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01126 M00S01058.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01127 M00S01059.sxucp +++| END 01128 M00S01060.sxucp +++| 01129 M00S01061.sxucp +++| ELSE 01130 M00S01062.sxucp +++| BEGIN 01131 M00S01063.sxucp +++| UCPSWAPPED = FALSE; 01132 M00S01064.sxucp +++| END 01133 M00S01065.sxucp +++| 01134 M00S01066.sxucp +++| END # WAIT FOR CONNECTION TO CLEAR # 01135 M00S01067.sxucp +++| 01136 M00S01068.sxucp +++| IF LTC$SFRC[LTCENTRY] NQ 0 01137 M00S01069.sxucp +++| THEN 01138 M00S01070.sxucp +++| BEGIN 01139 M00S01071.sxucp +++| GOTO SFERR; 01140 M00S01072.sxucp +++| END 01141 M00S01073.sxucp +++| 01142 M00S01074.sxucp +++|# 01143 M00S01075.sxucp +++|* RETURN THE OK1 RESPONSE. 01144 M00S01076.sxucp +++|# 01145 M00S01077.sxucp +++| 01146 M00S01078.sxucp +++| LTC$RQR[LTCENTRY] = RESPTYP1"OK1"; 01147 M00S01079.sxucp +++| UCPSWAPPED = TRUE; 01148 M00S01080.sxucp +++| REPEAT WHILE UCPSWAPPED 01149 M00S01081.sxucp +++| DO 01150 M00S01082.sxucp +++| BEGIN # WAIT FOR RESPONSE TO BE PROCESSED # 01151 M00S01083.sxucp +++| LTC$SFFC[LTCENTRY] = SFWRIT; 01152 M00S01084.sxucp +++| LTC$SFSCPA[LTCENTRY] = LOC(LTC$RQR[LTCENTRY]); 01153 M00S01085.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY] + 2; 01154 M00S01086.sxucp +++| LTC$SFFP[LTCENTRY] = 1; 01155 M00S01087.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01156 M00S01088.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01157 M00S01089.sxucp +++| THEN 01158 M00S01090.sxucp +++| BEGIN 01159 M00S01091.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01160 M00S01092.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01161 M00S01093.sxucp +++| LTC$SFFP[LTCENTRY] = 0; 01162 M00S01094.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY]; 01163 M00S01095.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01164 M00S01096.sxucp +++| END 01165 M00S01097.sxucp +++| 01166 M00S01098.sxucp +++| ELSE 01167 M00S01099.sxucp +++| BEGIN 01168 M00S01100.sxucp +++| UCPSWAPPED = FALSE; 01169 M00S01101.sxucp +++| END 01170 M00S01102.sxucp +++| 01171 M00S01103.sxucp +++| END # WAIT FOR RESPONSE TO BE PROCESSED # 01172 M00S01104.sxucp +++| 01173 M00S01105.sxucp +++| IF LTC$SFRC[LTCENTRY] NQ 0 01174 M00S01106.sxucp +++| THEN 01175 M00S01107.sxucp +++| BEGIN 01176 M00S01108.sxucp +++| GOTO SFERR; 01177 M00S01109.sxucp +++| END 01178 M00S01110.sxucp +++| 01179 M00S01111.sxucp +++|# 01180 M00S01112.sxucp +++|* ACKNOWLEDGE REQUEST COMPLETION. 01181 M00S01113.sxucp +++|# 01182 M00S01114.sxucp +++| 01183 M00S01115.sxucp +++| UCPSWAPPED = TRUE; 01184 M00S01116.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY]; 01185 M00S01117.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01186 M00S01118.sxucp +++| LTC$SFFP[LTCENTRY] = 0; 01187 M00S01119.sxucp +++| REPEAT WHILE UCPSWAPPED 01188 M00S01120.sxucp +++| DO 01189 M00S01121.sxucp +++| BEGIN # WAIT UNTIL *ENDT* IS PROCESSED # 01190 M00S01122.sxucp +++| LTC$SFFC[LTCENTRY] = SFENDT; 01191 M00S01123.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01192 M00S01124.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01193 M00S01125.sxucp +++| THEN 01194 M00S01126.sxucp +++| BEGIN 01195 M00S01127.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01196 M00S01128.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01197 M00S01129.sxucp +++| END 01198 M00S01130.sxucp +++| 01199 M00S01131.sxucp +++| ELSE 01200 M00S01132.sxucp +++| BEGIN 01201 M00S01133.sxucp +++| UCPSWAPPED = FALSE; 01202 M00S01134.sxucp +++| END 01203 M00S01135.sxucp +++| 01204 M00S01136.sxucp +++| END # WAIT UNTIL *ENDT* IS PROCESSED # 01205 M00S01137.sxucp +++| 01206 M00S01138.sxucp +++| END # PROCESS THE DISCONNECT REQUEST # 01207 M00S01139.sxucp +++| 01208 M00S01140.sxucp +++|SFERR: 01209 M00S01141.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ 0 OR LTC$SFRC[LTCENTRY] EQ SFRCUCPGON 01210 M00S01142.sxucp +++| OR (LTC$SFRC[LTCENTRY] EQ SFRCUCPNET AND UCP$STAT[0] EQ 01211 M00S01143.sxucp +++| OVERRIDE) 01212 M00S01144.sxucp +++| THEN 01213 M00S01145.sxucp +++| BEGIN # CLEAR THE *LTCT* ENTRY # 01214 M00S01146.sxucp +++| CONIND[LTC$RQI[LTCENTRY]] = FALSE; 01215 M00S01147.sxucp +++| LTC$WORD0[LTCENTRY] = 0; 01216 M00S01148.sxucp +++| LTC$WORD1[LTCENTRY] = 0; 01217 M00S01149.sxucp +++| LTC$WORD2[LTCENTRY] = 0; 01218 M00S01150.sxucp +++| LTC$WORD3[LTCENTRY] = 0; 01219 M00S01151.sxucp +++| RETURN; 01220 M00S01152.sxucp +++| END # CLEAR THE *LTCT* ENTRY # 01221 M00S01153.sxucp +++| 01222 M00S01154.sxucp +++| ELSE 01223 M00S01155.sxucp +++| BEGIN # UNEXPECTED *SFCALL* RESPONSE # 01224 M00S01156.sxucp +++| FE$RTN[0] = "UCP$DON."; 01225 M00S01157.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 01226 M00S01158.sxucp +++| ABORT; 01227 M00S01159.sxucp +++| END # UNEXPECTED *SFCALL* RESPONSE # 01228 M00S01160.sxucp +++| 01229 M00S01161.sxucp +++| END # UCP$DON # 01230 M00S01162.sxucp +++| 01231 M00S01163.sxucp +++| TERM 01232 M00S01164.sxucp +++|PROC UCP$RES; 01233 M00S01165.sxucp +++|# TITLE UCP$RES - NOTIFY *UCP* OF REQUEST COMPLETE. # 01234 M00S01166.sxucp +++| 01235 M00S01167.sxucp +++| BEGIN # UCP$RES # 01236 M00S01168.sxucp +++| 01237 M00S01169.sxucp +++|# 01238 M00S01170.sxucp +++|** UCP$RES - NOTIFY *UCP* OF REQUEST COMPLETE. 01239 M00S01171.sxucp +++|* 01240 M00S01172.sxucp +++|* *UCP$RES* RETURNS THE REQUEST RESPONSE WORD TO THE *UCP* 01241 M00S01173.sxucp +++|* AND THEN NOTIFIES THE *UCP* (AND O/S) THAT THE PROCESSING 01242 M00S01174.sxucp +++|* OF THE REQUEST HAS BEEN COMPLETED. 01243 M00S01175.sxucp +++|* 01244 M00S01176.sxucp +++|* PROC UCP$RES 01245 M00S01177.sxucp +++|* 01246 M00S01178.sxucp +++|* ENTRY THE *LTCT* ENTRY POINTED TO BY *LTCENTRY* CONTAINS 01247 M00S01179.sxucp +++|* ALL THE INFORMATION NEEDED. 01248 M00S01180.sxucp +++|* 01249 M00S01181.sxucp +++|* EXIT IF THE *UCP* WAS SWAPPED OUT, AN *SF.SWPI* REQUEST 01250 M00S01182.sxucp +++|* HAS BEEN ISSUED AND THE SWAPPED-UCP FLAG IN THE *LTCT* 01251 M00S01183.sxucp +++|* ENTRY HAS BEEN SET. OTHERWISE, THE RESPONSE WORD HAS 01252 M00S01184.sxucp +++|* BEEN WRITTEN BACK TO THE *UCP* AND THE *UCP* HAS BEEN 01253 M00S01185.sxucp +++|* NOTIFIED THAT PROCESSING OF ITS LAST REQUEST HAS BEEN 01254 M00S01186.sxucp +++|* COMPLETED. 01255 M00S01187.sxucp +++|* 01256 M00S01188.sxucp +++|* MESSAGES * EXEC ABNORMAL, UCP$RES.* 01257 M00S01189.sxucp +++|* 01258 M00S01190.sxucp +++|# 01259 M00S01191.sxucp +++| 01260 M00S01192.sxucp +++|# 01261 M00S01193.sxucp +++|**** PROC UCP$RES - XREF LIST BEGIN. 01262 M00S01194.sxucp +++|# 01263 M00S01195.sxucp +++| 01264 M00S01196.sxucp +++| XREF 01265 M00S01197.sxucp +++| BEGIN 01266 M00S01198.sxucp +++| PROC ABORT; # ABORTS PROCESSING # 01267 M00S01199.sxucp +++| PROC MESSAGE; # ISSUES DAYFILE MESSAGE # 01268 M00S01200.sxucp +++| PROC RTIME; # GETS TIME SINCE DEADSTART # 01269 M00S01201.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 01270 M00S01202.sxucp +++| END 01271 M00S01203.sxucp +++| 01272 M00S01204.sxucp +++|# 01273 M00S01205.sxucp +++|**** PROC UCP$RES - XREF LIST END. 01274 M00S01206.sxucp +++|# 01275 M00S01207.sxucp +++| 01276 M00S01208.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01277 M00S01209.sxucp +++|*CALL COMBFAS 01278 M00S01210.sxucp +++|*CALL COMBUCR 01279 M00S01211.sxucp +++|*CALL COMXCTF 01280 M00S01212.sxucp +++|*CALL COMXIPR 01281 M00S01213.sxucp +++|*CALL COMXLTC 01282 M00S01214.sxucp +++|*CALL COMXMSC 01283 M00S01215.sxucp +++| 01284 M00S01216.sxucp +++| 01285 M00S01217.sxucp +++| 01286 M00S01218.sxucp +++| 01287 M00S01219.sxucp +++| 01288 M00S01220.sxucp +++|# 01289 M00S01221.sxucp +++|* RETURN REQUEST RESPONSE WORD TO THE *UCP*. 01290 M00S01222.sxucp +++|# 01291 M00S01223.sxucp +++| 01292 M00S01224.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY] + 2; 01293 M00S01225.sxucp +++| LTC$SFSCPA[LTCENTRY] = LOC(LTC$RQR[LTCENTRY]); 01294 M00S01226.sxucp +++| LTC$SFFP[LTCENTRY] = 1; 01295 M00S01227.sxucp +++| LTC$SFFC[LTCENTRY] = SFWRIT; 01296 M00S01228.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01297 M00S01229.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01298 M00S01230.sxucp +++| THEN 01299 M00S01231.sxucp +++| BEGIN # SWAPPED *UCP* # 01300 M00S01232.sxucp +++| LTC$UCPSW[LTCENTRY] = TRUE; 01301 M00S01233.sxucp +++| GLBUCPSW = TRUE; 01302 M00S01234.sxucp +++| LTC$SFUCPA[LTCENTRY] = 0; 01303 M00S01235.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01304 M00S01236.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01305 M00S01237.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),NRCL); 01306 M00S01238.sxucp +++| 01307 M00S01239.sxucp +++| IF UCP$EXPIR EQ 0 01308 M00S01240.sxucp +++| THEN 01309 M00S01241.sxucp +++| BEGIN 01310 M00S01242.sxucp +++| RTIME(RTIMESTAT[0]); 01311 M00S01243.sxucp +++| UCP$EXPIR = RTIMSECS[0] + UCP$INTV; 01312 M00S01244.sxucp +++| END 01313 M00S01245.sxucp +++| 01314 M00S01246.sxucp +++| RETURN; 01315 M00S01247.sxucp +++| END # SWAPPED *UCP* # 01316 M00S01248.sxucp +++| 01317 M00S01249.sxucp +++| ELSE 01318 M00S01250.sxucp +++| BEGIN 01319 M00S01251.sxucp +++| IF LTC$SFRC[LTCENTRY] NQ 0 AND LTC$SFRC[LTCENTRY] NQ 01320 M00S01252.sxucp +++| SFRCUCPGON 01321 M00S01253.sxucp +++| THEN # UNEXPECTED RESPONSE # 01322 M00S01254.sxucp +++| BEGIN 01323 M00S01255.sxucp +++| FE$RTN[0] = "UCP$RES."; 01324 M00S01256.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 01325 M00S01257.sxucp +++| ABORT; 01326 M00S01258.sxucp +++| END 01327 M00S01259.sxucp +++| 01328 M00S01260.sxucp +++| END 01329 M00S01261.sxucp +++| 01330 M00S01262.sxucp +++|# 01331 M00S01263.sxucp +++|* NOTIFY THE *UCP* THAT THE REQUEST IS COMPLETE. 01332 M00S01264.sxucp +++|# 01333 M00S01265.sxucp +++| 01334 M00S01266.sxucp +++| LTC$SFUCPA[LTCENTRY] = LTC$UCPA[LTCENTRY]; 01335 M00S01267.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01336 M00S01268.sxucp +++| LTC$SFFP[LTCENTRY] = 0; 01337 M00S01269.sxucp +++| LTC$SFFC[LTCENTRY] = SFENDT; 01338 M00S01270.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01339 M00S01271.sxucp +++| IF LTC$SFRC[LTCENTRY] EQ SFRCSWPOUT 01340 M00S01272.sxucp +++| THEN 01341 M00S01273.sxucp +++| BEGIN # *UCP* SWAPPED # 01342 M00S01274.sxucp +++| LTC$UCPSW[LTCENTRY] = TRUE; 01343 M00S01275.sxucp +++| GLBUCPSW = TRUE; 01344 M00S01276.sxucp +++| LTC$SFUCPA[LTCENTRY] = 0; 01345 M00S01277.sxucp +++| LTC$SFSCPA[LTCENTRY] = 0; 01346 M00S01278.sxucp +++| LTC$SFFC[LTCENTRY] = SFSWPI; 01347 M00S01279.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),NRCL); 01348 M00S01280.sxucp +++| 01349 M00S01281.sxucp +++| IF UCP$EXPIR EQ 0 01350 M00S01282.sxucp +++| THEN 01351 M00S01283.sxucp +++| BEGIN 01352 M00S01284.sxucp +++| RTIME(RTIMESTAT[0]); 01353 M00S01285.sxucp +++| UCP$EXPIR = RTIMSECS[0] + UCP$INTV; 01354 M00S01286.sxucp +++| END 01355 M00S01287.sxucp +++| 01356 M00S01288.sxucp +++| RETURN; 01357 M00S01289.sxucp +++| END # *UCP* SWAPPED # 01358 M00S01290.sxucp +++| 01359 M00S01291.sxucp +++| ELSE 01360 M00S01292.sxucp +++| BEGIN 01361 M00S01293.sxucp +++| IF LTC$SFRC[LTCENTRY] NQ 0 AND LTC$SFRC[LTCENTRY] NQ 01362 M00S01294.sxucp +++| SFRCUCPGON 01363 M00S01295.sxucp +++| THEN # UNEXPECTED RESPONSE # 01364 M00S01296.sxucp +++| BEGIN 01365 M00S01297.sxucp +++| FE$RTN[0] = "UCP$RES."; 01366 M00S01298.sxucp +++| MESSAGE(FEMSG[0],UDFL1); 01367 M00S01299.sxucp +++| ABORT; 01368 M00S01300.sxucp +++| END 01369 M00S01301.sxucp +++| 01370 M00S01302.sxucp +++| END 01371 M00S01303.sxucp +++| 01372 M00S01304.sxucp +++|# 01373 M00S01305.sxucp +++|* CLEAR THE REQUEST FROM THE LONG TERM CONNECT TABLE. 01374 M00S01306.sxucp +++|# 01375 M00S01307.sxucp +++| 01376 M00S01308.sxucp +++| LTC$UCPSW[LTCENTRY] = FALSE; 01377 M00S01309.sxucp +++| LTC$UCPA[LTCENTRY] = 0; 01378 M00S01310.sxucp +++| LTC$WORD3[LTCENTRY] = 0; 01379 M00S01311.sxucp +++| RETURN; 01380 M00S01312.sxucp +++| 01381 M00S01313.sxucp +++| END # UCP$RES # 01382 M00S01314.sxucp +++| 01383 M00S01315.sxucp +++| TERM 01384 M00S01316.sxucp +++|PROC UCP$RP; 01385 M00S01317.sxucp +++|# TITLE UCP$RP - PRELIMINARY PROCESSING OF *UCP* REQUESTS. # 01386 M00S01318.sxucp +++| 01387 M00S01319.sxucp +++| BEGIN # UCP$RP # 01388 M00S01320.sxucp +++| 01389 M00S01321.sxucp +++|# 01390 M00S01322.sxucp +++|** UCP$RP - PRELIMINARY PROCESSING OF *UCP* REQUESTS. 01391 M00S01323.sxucp +++|* 01392 M00S01324.sxucp +++|* *UCP$RP* DOES PRELIMINARY PROCESSING OF *UCP* REQUESTS AND CALLS 01393 M00S01325.sxucp +++|* THE APPROPRIATE MODULES TO DO FURTHER PROCESSING OF THE REQUESTS. 01394 M00S01326.sxucp +++|* 01395 M00S01327.sxucp +++|* PROC UCP$RP 01396 M00S01328.sxucp +++|* 01397 M00S01329.sxucp +++|* ENTRY A NEW *UCP* REQUEST HAS BEEN RECEIVED AND IF 01398 M00S01330.sxucp +++|* IT IS A TYPE 4 OR 5 REQUEST, AT LEAST ONE *LLRQ* 01399 M00S01331.sxucp +++|* ENTRY IS AVAILABLE ON THE *LLRQ* FREE SPACE CHAIN. 01400 M00S01332.sxucp +++|* 01401 M00S01333.sxucp +++|* EXIT TYPE 4 OR 5 REQUESTS HAVE BEEN ENQUEUED IN THE 01402 M00S01334.sxucp +++|* *LLRQ* FOR FUTURE PROCESSING. ALL OTHER REQUESTS HAVE 01403 M00S01335.sxucp +++|* BEEN PROCESSED TO COMPLETION. 01404 M00S01336.sxucp +++|* 01405 M00S01337.sxucp +++|* NOTES BEFORE SUBORDINATE ROUTINES ARE CALLED, THE BASE 01406 M00S01338.sxucp +++|* POINTERS FOR *CPR* AND *UCPR* ARE SET AND *LTCENTRY* 01407 M00S01339.sxucp +++|* IS SET TO POINT TO THE *LTCT* ENTRY FOR THE *UCP*. 01408 M00S01340.sxucp +++|# 01409 M00S01341.sxucp +++| 01410 M00S01342.sxucp +++|# 01411 M00S01343.sxucp +++|**** PROC UCP$RP - XREF LIST BEGIN. 01412 M00S01344.sxucp +++|# 01413 M00S01345.sxucp +++| 01414 M00S01346.sxucp +++| XREF 01415 M00S01347.sxucp +++| BEGIN 01416 M00S01348.sxucp +++| PROC ALT$RP; # PRELIMINARY PROCESSING OF 01417 M00S01349.sxucp +++| *SSALTER* REQUESTS # 01418 M00S01350.sxucp +++| PROC KILL$UC; # ABORT A *UCP* # 01419 M00S01351.sxucp +++| PROC LINK$RP; # PRELIMINARY LINKAGE PROCESSING # 01420 M00S01352.sxucp +++| PROC NONQ$RP; # PRELIMINARY PROCESSING OF TYPE 3 01421 M00S01353.sxucp +++| REQUEST # 01422 M00S01354.sxucp +++| PROC QUE$RP; # QUEUABLE REQUEST PROCESSOR # 01423 M00S01355.sxucp +++| PROC SFCALL; # ISSUES *SFCALL* REQUEST # 01424 M00S01356.sxucp +++| PROC TYP2$RP; # TYPE 2 REQUEST PROCESSOR # 01425 M00S01357.sxucp +++| PROC UCP$DON; # TERMINATE *UCP* REQUEST PROPERLY 01426 M00S01358.sxucp +++| # 01427 M00S01359.sxucp +++| END 01428 M00S01360.sxucp +++| 01429 M00S01361.sxucp +++|# 01430 M00S01362.sxucp +++|**** PROC UCP$RP - XREF LIST END. 01431 M00S01363.sxucp +++|# 01432 M00S01364.sxucp +++| 01433 M00S01365.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01434 M00S01366.sxucp +++|*CALL COMBFAS 01435 M00S01367.sxucp +++|*CALL COMBCHN 01436 M00S01368.sxucp +++|*CALL COMBCPR 01437 M00S01369.sxucp +++|*CALL COMBLRQ 01438 M00S01370.sxucp +++|*CALL COMBUCR 01439 M00S01371.sxucp +++|*CALL COMXCTF 01440 M00S01372.sxucp +++|*CALL,COMXJCA 01441 M00S01373.sxucp +++|*CALL COMXLTC 01442 M00S01374.sxucp +++|*CALL COMXMSC 01443 M00S01375.sxucp +++| 01444 M00S01376.sxucp +++| ITEM I U; # LOOP COUNTER # 01445 M00S01377.sxucp +++| ITEM J U; # LOOP COUNTER # 01446 M00S01378.sxucp +++| ITEM TESTEXIT B; # *FOR* LOOP CONTROL SWITCH # 01447 M00S01379.sxucp +++| ITEM UCPSWAPPED B; # UCP WAS SWAPPED OUT # 01448 M00S01380.sxucp +++|# 01449 M00S01381.sxucp +++|* STATUS SWITCH LIST TO PROCESS TYPE OF REQUEST. 01450 M00S01382.sxucp +++|# 01451 M00S01383.sxucp +++| 01452 M00S01384.sxucp +++| SWITCH TYPSW:TYP 01453 M00S01385.sxucp +++| TYPE1:TYP1, 01454 M00S01386.sxucp +++| TYPE2:TYP2, 01455 M00S01387.sxucp +++| TYPE3:TYP3, 01456 M00S01388.sxucp +++| TYPE4:TYP4, 01457 M00S01389.sxucp +++| TYPE5:TYP5; 01458 M00S01390.sxucp +++| 01459 M00S01391.sxucp +++| 01460 M00S01392.sxucp +++| 01461 M00S01393.sxucp +++| 01462 M00S01394.sxucp +++| 01463 M00S01395.sxucp +++| P<LTCT> = LTCTPTR; 01464 M00S01396.sxucp +++| 01465 M00S01397.sxucp +++|# 01466 M00S01398.sxucp +++|* THE FOLLOWING *FOR* LOOP IS THE MAIN CONTROL LOOP OF *UCP$RP*. 01467 M00S01399.sxucp +++|* THIS LOOP MAINTAINS CONTROL IN THIS PROCEDURE UNTIL THERE ARE 01468 M00S01400.sxucp +++|* NO MORE *UCP* REQUESTS TO BE STARTED. 01469 M00S01401.sxucp +++|# 01470 M00S01402.sxucp +++| 01471 M00S01403.sxucp +++| SLOWFOR I=0 WHILE RA$SSCINLK[0] ## 01472 M00S01404.sxucp +++| AND CHN$BOC[LCHN"LL$FRSPC"] NQ 0 01473 M00S01405.sxucp +++| DO 01474 M00S01406.sxucp +++| BEGIN # PROCESS *UCP* REQUEST # 01475 M00S01407.sxucp +++| P<UCPR> = RA$SSCAP[0]; 01476 M00S01408.sxucp +++| P<CPR> = RA$SSCAP[0] + 2; 01477 M00S01409.sxucp +++| 01478 M00S01410.sxucp +++|# 01479 M00S01411.sxucp +++|* SWITCH TO ALTERNATE *UCP* REQUEST RECEIVING AREA. 01480 M00S01412.sxucp +++|# 01481 M00S01413.sxucp +++| 01482 M00S01414.sxucp +++| RA$SSCAP[0] = LOC(UCPPARM[UCPPARMSW]); 01483 M00S01415.sxucp +++| IF UCPPARMSW EQ 0 01484 M00S01416.sxucp +++| THEN 01485 M00S01417.sxucp +++| BEGIN 01486 M00S01418.sxucp +++| UCPPARMSW = 1; 01487 M00S01419.sxucp +++| END 01488 M00S01420.sxucp +++| 01489 M00S01421.sxucp +++| ELSE 01490 M00S01422.sxucp +++| BEGIN 01491 M00S01423.sxucp +++| UCPPARMSW = 0; 01492 M00S01424.sxucp +++| END 01493 M00S01425.sxucp +++| 01494 M00S01426.sxucp +++| RA$SSCINLK[0] = FALSE; 01495 M00S01427.sxucp +++| TESTEXIT = FALSE; 01496 M00S01428.sxucp +++| SFJBSN[0] = UCP$JBSN[0]; 01497 M00S01429.sxucp +++| SFFSTA[0] = UCP$FSTA[0]; 01498 M00S01430.sxucp +++| 01499 M00S01431.sxucp +++| LTCENTRY = 0; 01500 M00S01432.sxucp +++| FASTFOR J = 1 STEP 1 WHILE J LQ LTCTCNT AND NOT TESTEXIT 01501 M00S01433.sxucp +++| DO 01502 M00S01434.sxucp +++| BEGIN # *LTCT* SEARCH # 01503 M00S01435.sxucp +++| IF UCP$JBSN[0] EQ LTC$SFJBSN[J] ## 01504 M00S01436.sxucp +++| AND UCP$FSTA[0] EQ LTC$SFFSTA[J] 01505 M00S01437.sxucp +++| THEN 01506 M00S01438.sxucp +++| BEGIN # *UCP* HAS AN ENTRY IN THE *LTCT* # 01507 M00S01439.sxucp +++| TESTEXIT = TRUE; 01508 M00S01440.sxucp +++| LTCENTRY = J; 01509 M00S01441.sxucp +++| END # *UCP* HAS AN ENTRY IN THE *LTCT* # 01510 M00S01442.sxucp +++| 01511 M00S01443.sxucp +++| ELSE 01512 M00S01444.sxucp +++| BEGIN 01513 M00S01445.sxucp +++| TEST J; 01514 M00S01446.sxucp +++| END 01515 M00S01447.sxucp +++| 01516 M00S01448.sxucp +++| END # *LTCT* SEARCH # 01517 M00S01449.sxucp +++| 01518 M00S01450.sxucp +++| IF UCP$STAT NQ 0 01519 M00S01451.sxucp +++| THEN 01520 M00S01452.sxucp +++| BEGIN # PROCESS TERMINATION NOTICE FROM O/S # 01521 M00S01453.sxucp +++| IF TESTEXIT 01522 M00S01454.sxucp +++| THEN 01523 M00S01455.sxucp +++| BEGIN # TERMINATING *UCP* WAS CONNECTED # 01524 M00S01456.sxucp +++| UCP$DON; 01525 M00S01457.sxucp +++| END # TERMINATING *UCP* WAS CONNECTED # 01526 M00S01458.sxucp +++| 01527 M00S01459.sxucp +++| ELSE 01528 M00S01460.sxucp +++| BEGIN # TERMINATING UCP NOT CONNECTED # 01529 M00S01461.sxucp +++| SFUCPA[0] = -1; 01530 M00S01462.sxucp +++| UCPSWAPPED = TRUE; 01531 M00S01463.sxucp +++| REPEAT WHILE UCPSWAPPED 01532 M00S01464.sxucp +++| DO 01533 M00S01465.sxucp +++| BEGIN # WAIT UNTIL *ENDT* IS PROCESSED # 01534 M00S01466.sxucp +++| SFFC[0] = SFENDT; 01535 M00S01467.sxucp +++| SFCALL(SFBLKPTR,RCL); 01536 M00S01468.sxucp +++| IF SFRC[0] EQ SFRCSWPOUT 01537 M00S01469.sxucp +++| THEN 01538 M00S01470.sxucp +++| BEGIN 01539 M00S01471.sxucp +++| SFFC[0] = SFSWPI; 01540 M00S01472.sxucp +++| SFCALL(SFBLKPTR,RCL); 01541 M00S01473.sxucp +++| END 01542 M00S01474.sxucp +++| 01543 M00S01475.sxucp +++| ELSE 01544 M00S01476.sxucp +++| BEGIN 01545 M00S01477.sxucp +++| UCPSWAPPED = FALSE; 01546 M00S01478.sxucp +++| END 01547 M00S01479.sxucp +++| 01548 M00S01480.sxucp +++| END # WAIT UNTIL *ENDT* IS PROCESSED # 01549 M00S01481.sxucp +++| 01550 M00S01482.sxucp +++| END # TERMINATING *UCP* NOT CONNECTED # 01551 M00S01483.sxucp +++| 01552 M00S01484.sxucp +++| TEST I; 01553 M00S01485.sxucp +++| END # PROCESS TERMINATION NOTICE FROM O/S # 01554 M00S01486.sxucp +++| 01555 M00S01487.sxucp +++| ELSE 01556 M00S01488.sxucp +++| BEGIN # PROCESS REQUEST FROM *UCP* # 01557 M00S01489.sxucp +++| IF NOT TESTEXIT 01558 M00S01490.sxucp +++| THEN 01559 M00S01491.sxucp +++| BEGIN # NOT IN *LTCT* SO REQUIRE A CONNECT # 01560 M00S01492.sxucp +++| IF CPR$RQT[0] EQ TYP"TYP1" ## 01561 M00S01493.sxucp +++| AND CPR$RQC[0] EQ REQTYP1"CONNECT" 01562 M00S01494.sxucp +++| THEN 01563 M00S01495.sxucp +++| BEGIN 01564 M00S01496.sxucp +++| LINK$RP; 01565 M00S01497.sxucp +++| END 01566 M00S01498.sxucp +++| 01567 M00S01499.sxucp +++| ELSE 01568 M00S01500.sxucp +++| BEGIN 01569 M00S01501.sxucp +++| KILL$UC(KILLCODE"NOTCON"); 01570 M00S01502.sxucp +++| END 01571 M00S01503.sxucp +++| 01572 M00S01504.sxucp +++| TEST I; 01573 M00S01505.sxucp +++| END # NOT IN *LTCT* SO REQUIRE A CONNECT # 01574 M00S01506.sxucp +++| 01575 M00S01507.sxucp +++| IF LTC$UCPA[LTCENTRY] NQ 0 01576 M00S01508.sxucp +++| THEN 01577 M00S01509.sxucp +++| BEGIN # PREVIOUS REQUEST NOT PROCESSED YET # 01578 M00S01510.sxucp +++| KILL$UC(KILLCODE"MULREQ"); 01579 M00S01511.sxucp +++| TEST I; 01580 M00S01512.sxucp +++| END # PREVIOUS REQUEST NOT PROCESSED YET # 01581 M00S01513.sxucp +++| 01582 M00S01514.sxucp +++| IF CPR$RQT[0] EQ TYP"TYP0" OR CPR$RQT[0] GQ TYP"TYPLST" 01583 M00S01515.sxucp +++| THEN 01584 M00S01516.sxucp +++| BEGIN # TYPE CODE OUT OF RANGE # 01585 M00S01517.sxucp +++| KILL$UC(KILLCODE"INVRQT"); 01586 M00S01518.sxucp +++| TEST I; 01587 M00S01519.sxucp +++| END # TYPE CODE OUT OF RANGE # 01588 M00S01520.sxucp +++| 01589 M00S01521.sxucp +++|# 01590 M00S01522.sxucp +++|* SET THE LONG TERM CONNECT TABLE ENTRY TO REFLECT THE CURRENT 01591 M00S01523.sxucp +++|* REQUEST. 01592 M00S01524.sxucp +++|# 01593 M00S01525.sxucp +++| 01594 M00S01526.sxucp +++| LTC$WORD3[LTCENTRY] = CPR3[0]; 01595 M00S01527.sxucp +++| LTC$UCPA[LTCENTRY] = UCP$ADDR[0]; 01596 M00S01528.sxucp +++| 01597 M00S01529.sxucp +++|# 01598 M00S01530.sxucp +++|* CALL THE APPROPRIATE REQUEST PROCESSOR. 01599 M00S01531.sxucp +++|# 01600 M00S01532.sxucp +++| 01601 M00S01533.sxucp +++| GOTO TYPSW[CPR$RQT[0]]; 01602 M00S01534.sxucp +++| 01603 M00S01535.sxucp +++|TYPE1: 01604 M00S01536.sxucp +++| LINK$RP; 01605 M00S01537.sxucp +++| TEST I; 01606 M00S01538.sxucp +++| 01607 M00S01539.sxucp +++|TYPE2: 01608 M00S01540.sxucp +++| TYP2$RP; 01609 M00S01541.sxucp +++| TEST I; 01610 M00S01542.sxucp +++| 01611 M00S01543.sxucp +++|TYPE3: 01612 M00S01544.sxucp +++| NONQ$RP; 01613 M00S01545.sxucp +++| TEST I; 01614 M00S01546.sxucp +++| 01615 M00S01547.sxucp +++|TYPE4: 01616 M00S01548.sxucp +++| QUE$RP; 01617 M00S01549.sxucp +++| TEST I; 01618 M00S01550.sxucp +++| 01619 M00S01551.sxucp +++|TYPE5: 01620 M00S01552.sxucp +++| ALT$RP; 01621 M00S01553.sxucp +++| TEST I; 01622 M00S01554.sxucp +++| 01623 M00S01555.sxucp +++| END # PROCESS REQUEST FROM *UCP* # 01624 M00S01556.sxucp +++| 01625 M00S01557.sxucp +++| END # PROCESS *UCP* REQUEST # 01626 M00S01558.sxucp +++| 01627 M00S01559.sxucp +++|# 01628 M00S01560.sxucp +++|* RETURN TO THE CALLER WHEN THERE IS NO REQUEST TO 01629 M00S01561.sxucp +++|* PROCESS OR NO REQUEST CAN BE PROCESSED. 01630 M00S01562.sxucp +++|# 01631 M00S01563.sxucp +++| 01632 M00S01564.sxucp +++| RETURN; 01633 M00S01565.sxucp +++| END # UCP$RP # 01634 M00S01566.sxucp +++| 01635 M00S01567.sxucp +++| TERM 01636 M00S01568.sxucp +++|PROC UCP$WRI((LLRQADDR2),(WORDCOUNT),(SCPADDR),RSTATUS); 01637 M00S01569.sxucp +++|# TITLE UCP$WRI - PASS DATA TO *UCP*. # 01638 M00S01570.sxucp +++| 01639 M00S01571.sxucp +++| BEGIN # UCP$WRI # 01640 M00S01572.sxucp +++| 01641 M00S01573.sxucp +++|# 01642 M00S01574.sxucp +++|** UCP$WRI - PASS DATA TO *UCP*. 01643 M00S01575.sxucp +++|* 01644 M00S01576.sxucp +++|* *UCP$WRI* ISSUES AN *SF.WRIT* TO TRANSFER INFORMATION BACK 01645 M00S01577.sxucp +++|* TO THE *UCP*. 01646 M00S01578.sxucp +++|* 01647 M00S01579.sxucp +++|* PROC UCP$WRI((LLRQADDR2),(WORDCOUNT),(SCPADDR),RSTATUS) 01648 M00S01580.sxucp +++|* 01649 M00S01581.sxucp +++|* ENTRY LLRQADDR2 = DESTINATION OF DATA IN *UCP*. 01650 M00S01582.sxucp +++|* WORDCOUNT = NUMBER OF WORDS TO BE TRANSFERRED 01651 M00S01583.sxucp +++|* TO *UCP*. 01652 M00S01584.sxucp +++|* SCPADDR = SOURCE OF DATA IN THE *SCP*. 01653 M00S01585.sxucp +++|* 01654 M00S01586.sxucp +++|* EXIT RSTATUS = *SFCALL* ERROR RETURNED TO THE CALLER. 01655 M00S01587.sxucp +++|* 01656 M00S01588.sxucp +++|* NOTE *LTCENTRY* CONTAINS THE ORDINAL OF THE *UCP* LONG 01657 M00S01589.sxucp +++|* TERM CONNECT TABLE ENTRY. 01658 M00S01590.sxucp +++|* 01659 M00S01591.sxucp +++|# 01660 M00S01592.sxucp +++| 01661 M00S01593.sxucp +++| ITEM LLRQADDR2 U; # DESTINATION OF DATA IN *UCP* # 01662 M00S01594.sxucp +++| ITEM WORDCOUNT U; # NUMBER OF WORDS TO BE 01663 M00S01595.sxucp +++| TRANSFERRED # 01664 M00S01596.sxucp +++| ITEM SCPADDR U; # SOURCE OF DATA IN *SCP* # 01665 M00S01597.sxucp +++| ITEM RSTATUS U; # *SFCALL* ERROR RETURNED TO 01666 M00S01598.sxucp +++| CALLER # 01667 M00S01599.sxucp +++| 01668 M00S01600.sxucp +++|# 01669 M00S01601.sxucp +++|**** PROC UCP$WRI - XREF LIST BEGIN. 01670 M00S01602.sxucp +++|# 01671 M00S01603.sxucp +++| 01672 M00S01604.sxucp +++| XREF 01673 M00S01605.sxucp +++| BEGIN 01674 M00S01606.sxucp +++| PROC SFCALL; # INTERFACE TO *SFCALL* MACRO # 01675 M00S01607.sxucp +++| END 01676 M00S01608.sxucp +++| 01677 M00S01609.sxucp +++|# 01678 M00S01610.sxucp +++|**** PROC UCP$WRI - XREF LIST END. 01679 M00S01611.sxucp +++|# 01680 M00S01612.sxucp +++| 01681 M00S01613.sxucp +++| 01682 M00S01614.sxucp +++| 01683 M00S01615.sxucp +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01684 M00S01616.sxucp +++|*CALL COMBFAS 01685 M00S01617.sxucp +++|*CALL COMBUCR 01686 M00S01618.sxucp +++|*CALL COMXLTC 01687 M00S01619.sxucp +++|*CALL COMXMSC 01688 M00S01620.sxucp +++| 01689 M00S01621.sxucp +++| 01690 M00S01622.sxucp +++| 01691 M00S01623.sxucp +++| 01692 M00S01624.sxucp +++| 01693 M00S01625.sxucp +++|# 01694 M00S01626.sxucp +++|* SET UP AN *SFCALL* REQUEST FOR AN *SF.WRIT* AND ISSUE IT. 01695 M00S01627.sxucp +++|# 01696 M00S01628.sxucp +++| 01697 M00S01629.sxucp +++| LTC$SFUCPA[LTCENTRY] = LLRQADDR2; 01698 M00S01630.sxucp +++| LTC$SFSCPA[LTCENTRY] = SCPADDR; 01699 M00S01631.sxucp +++| LTC$SFFP[LTCENTRY] = WORDCOUNT; 01700 M00S01632.sxucp +++| LTC$SFFC[LTCENTRY] = SFWRIT; 01701 M00S01633.sxucp +++| SFCALL(LOC(LTC$WORD0[LTCENTRY]),RCL); 01702 M00S01634.sxucp +++| RSTATUS = LTC$SFRC[LTCENTRY]; 01703 M00S01635.sxucp +++| RETURN; 01704 M00S01636.sxucp +++| END # UCP$WRI # 01705 M00S01637.sxucp +++| 01706 M00S01638.sxucp +++| TERM
cdc/nos2.source/opl.opl871/deck/sxucp.txt ยท Last modified: by 127.0.0.1