User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:sxmain

Deck SXMAIN

Library Member Format: MODIFY

Listing Sections

Source

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