User Tools

Site Tools


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