Deck SSBLD

Library Member Format: MODIFY

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.ssbld   +++|PRGM SSBLD;
00002  M00S00002.ssbld   +++|
00003  M00S00003.ssbld   +++|
00004  M00S00004.ssbld   +++|# TITLE SSBLD - MAIN ROUTINE OF SSBLD.                                #
00005  M00S00005.ssbld   +++|
00006  M00S00006.ssbld   +++|      BEGIN  # SSBLD #
00007  M00S00007.ssbld   +++|
00008  M00S00008.ssbld   +++|#
00009  M00S00009.ssbld   +++|***   SSBLD - BUILD UDT FOR SSEXEC.
00010  M00S00010.ssbld   +++|*
00011  M00S00011.ssbld   +++|*     SSBLD ATTACHES THE FILE SPECIFIED BY THE CONTROL STATEMENT
00012  M00S00012.ssbld   +++|*     CALL AND BUILDS A DIRECT ACCESS PERMANENT FILE - BUDT
00013  M00S00013.ssbld   +++|*     UNDER USER INDEX 377760B.
00014  M00S00014.ssbld   +++|*
00015  M00S00015.ssbld   +++|*
00016  M00S00016.ssbld   +++|*     SSBLD(PARAMETER1,PARAMTER2)      - PARAMETERS ARE OPTIONAL.
00017  M00S00017.ssbld   +++|*
00018  M00S00018.ssbld   +++|*     PARAMETER     DESCRIPTION
00019  M00S00019.ssbld   +++|*
00020  M00S00020.ssbld   +++|*     CF            USE DIRECT ACCESS PERMANENT FILE *SUDT* UNDER
00021  M00S00021.ssbld   +++|*                   UI = 377760B AS INPUT FOR BUILDING THE UDT.
00022  M00S00022.ssbld   +++|*
00023  M00S00023.ssbld   +++|*     CF=LFN        USE DIRECT ACCESS PERMANENT FILE *LFN* UNDER
00024  M00S00024.ssbld   +++|*                   UI = 377760B AS INPUT FOR BUILDING THE UDT.
00025  M00S00025.ssbld   +++|*
00026  M00S00026.ssbld   +++|*     CF OMITTED    SAME AS CF.
00027  M00S00027.ssbld   +++|*
00028  M00S00028.ssbld   +++|*     BF            USE DIRECT ACCESS PERMANENT FILE *BUDT* UNDER
00029  M00S00029.ssbld   +++|*                   UI = 377760B FOR DESTINATION BUDT FILE.
00030  M00S00030.ssbld   +++|*
00031  M00S00031.ssbld   +++|*     BF=LFN        USE DIRECT ACCESS PERMANENT FILE *LFN* UNDER
00032  M00S00032.ssbld   +++|*                   UI = 377760B FOR DESTINATION BUDT FILE.
00033  M00S00033.ssbld   +++|*
00034  M00S00034.ssbld   +++|*     BF OMITTED    SAME AS BF.
00035  M00S00035.ssbld   +++|*
00036  M00S00036.ssbld   +++|*     MESSAGES
00037  M00S00037.ssbld   +++|*
00038  M00S00038.ssbld   +++|*     SSBLD ABORT - SYNTAX ERROR.
00039  M00S00039.ssbld   +++|*      SSBLD - MUST BE SYSTEM ORIGIN.
00040  M00S00040.ssbld   +++|*     SSBLD - CANNOT RE-ATTACH BUDT FILE.
00041  M00S00041.ssbld   +++|*     SSBLD - NO SOURCE CONFIGURATION FILE.
00042  M00S00042.ssbld   +++|*     SSBLD - SUDT FILE BUSY.
00043  M00S00043.ssbld   +++|*     SSBLD - BUDT FILE BUSY.
00044  M00S00044.ssbld   +++|*     SSBLD - UNABLE TO DEFINE BUDT FILE.
00045  M00S00045.ssbld   +++|*     SSBLD - BUDT FILE PROBLEMS.
00046  M00S00046.ssbld   +++|*     SSBLD - COMPLETE.
00047  M00S00047.ssbld   +++|*
00048  M00S00048.ssbld   +++|*
00049  M00S00049.ssbld   +++|*
Line S00050 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00050  M01S00050.281l803 ---|*     COPYRIGHT CONTROL DATA CORP., 1982.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00051  M01S00001.281l803 +++|*     COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00052  M00S00051.ssbld   +++|#
00053  M00S00052.ssbld   +++|
00054  M00S00053.ssbld   +++|#
00055  M00S00054.ssbld   +++|****  PRGM SSBLD - XREF LIST BEGIN.
00056  M00S00055.ssbld   +++|#
00057  M00S00056.ssbld   +++|
00058  M00S00057.ssbld   +++|      XREF
00059  M00S00058.ssbld   +++|        BEGIN
00060  M00S00059.ssbld   +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
00061  M00S00060.ssbld   +++|        PROC BLTAB;                  # SETS UP ARGUMENT LIST #
00062  M00S00061.ssbld   +++|        PROC BZFILL;                 # BLANK OR ZERO FILL A BUFFER #
00063  M00S00062.ssbld   +++|        PROC GETPFP;                 # GET USER INDEX AND FAMILY #
00064  M00S00063.ssbld   +++|        PROC GETSPS;                 # GET SYSTEM ORIGIN PRIVILEDGES #
00065  M00S00064.ssbld   +++|        PROC MESSAGE;                # CALLS MESSAGE MACRO #
00066  M00S00065.ssbld   +++|        PROC NEXTLIN;                # READ NEXT LINE #
00067  M00S00066.ssbld   +++|        PROC PFD;                    # *PFM* REQUEST INTERFACE #
00068  M00S00067.ssbld   +++|        PROC RDSUDT;                 # READ CONFIGURATION FILE SOURCE #
00069  M00S00068.ssbld   +++|        PROC RETERN;                 # RETURN A FILE #
00070  M00S00069.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* #
00071  M00S00070.ssbld   +++|        PROC WTBUDT;                 # WRITE UDT TO DISK FILE #
00072  M00S00071.ssbld   +++|        PROC XARG;                   # CRACK PARAMETER LIST #
00073  M00S00072.ssbld   +++|        END
00074  M00S00073.ssbld   +++|
00075  M00S00074.ssbld   +++|#
00076  M00S00075.ssbld   +++|****  PRGM SSBLD - XREF LIST END.
00077  M00S00076.ssbld   +++|#
00078  M00S00077.ssbld   +++|
00079  M00S00078.ssbld   +++|      DEF SMMAX      #"H"#;          # MAXIMUM SM VALUE #
00080  M00S00079.ssbld   +++|      DEF SMMIN      #"A"#;          # MINIMUM SM VALUE #
00081  M00S00080.ssbld   +++|      DEF NOPARAM    #-1#;           # NO PARAMETER SPECIFIED #
00082  M00S00081.ssbld   +++|      DEF PROCNAME   #"SSBLD."#;     # PROCEDURE NAME #
00083  M00S00082.ssbld   +++|      DEF RSLEN      #1#;        # RETURN STATUS LENGTH #
00084  M00S00083.ssbld   +++|      DEF SYNTAXOK   #0#;            # SYNTAX OK #
00085  M00S00084.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00086  M00S00085.ssbld   +++|
00087  M00S00086.ssbld   +++|                                               CONTROL PRESET;
00088  M00S00087.ssbld   +++|*CALL COMBFAS
00089  M00S00088.ssbld   +++|*CALL COMBBZF
00090  M00S00089.ssbld   +++|*CALL COMBCMD
00091  M00S00090.ssbld   +++|*CALL COMBCMS
00092  M00S00091.ssbld   +++|*CALL COMBPFP
00093  M00S00092.ssbld   +++|*CALL COMBUDT
00094  M00S00093.ssbld   +++|*CALL COMSPFM
00095  M00S00094.ssbld   +++|*CALL COMTBLD
00096  M00S00095.ssbld   +++|*CALL COMTBLP
00097  M00S00096.ssbld   +++|
00098  M00S00097.ssbld   +++|      ITEM ARGLIST    U;             # ADDRESS OF ARGUMENT TABLE #
00099  M00S00098.ssbld   +++|      ITEM FLAG       U;             # ERROR FLAG FOR ASARG #
00100  M00S00099.ssbld   +++|      ITEM OPTION     I;             # OPTION TO SKIP PROGRAM NAME #
00101  M00S00100.ssbld   +++|
00102  M00S00101.ssbld   +++|      ARRAY MSGDETAIL1 [0:0] P(4);
00103  M00S00102.ssbld   +++|        BEGIN  # ARRAY MSGDETAIL1 #
00104  M00S00103.ssbld   +++|        ITEM LEAD1      C(00,00,01) = [" "];  # LEADING BLANK #
00105  M00S00104.ssbld   +++|        ITEM MSGPFNH    C(00,06,04) = ["PFN="];  # PFN= #
00106  M00S00105.ssbld   +++|        ITEM MSGPFN     C(00,30,07);  # FILE NAME #
00107  M00S00106.ssbld   +++|        ITEM MSGFAMH    C(01,12,09) = [", FAMILY="];  # FAMILY = #
00108  M00S00107.ssbld   +++|        ITEM MSGFAM     C(02,06,08);  # FAMILY AND COMMA #
00109  M00S00108.ssbld   +++|        ITEM MSGZRO1    U(03,00,12) = [0];  # TERMINATOR #
00110  M00S00109.ssbld   +++|        END  # ARRAY MSGDETAIL1 #
00111  M00S00110.ssbld   +++|
00112  M00S00111.ssbld   +++|
00113  M00S00112.ssbld   +++|      ARRAY SPSSTAT [0:0] S(RSLEN);
00114  M00S00113.ssbld   +++|        BEGIN
00115  M00S00114.ssbld   +++|        ITEM SPS$STATUS U(00,48,12); # RETURN STATUS #
00116  M00S00115.ssbld   +++|        END
00117  M00S00116.ssbld   +++|
00118  M00S00117.ssbld   +++|                                               CONTROL EJECT;
00119  M00S00118.ssbld   +++|
00120  M00S00119.ssbld   +++|#
00121  M00S00120.ssbld   +++|*     GET SYSTEM ORIGIN PRIVILEDGES.
00122  M00S00121.ssbld   +++|#
00123  M00S00122.ssbld   +++|
00124  M00S00123.ssbld   +++|      GETSPS(SPSSTAT);
00125  M00S00124.ssbld   +++|      IF SPS$STATUS NQ 0
00126  M00S00125.ssbld   +++|      THEN
00127  M00S00126.ssbld   +++|        BEGIN
00128  M00S00127.ssbld   +++|        BLMSG$LN[0] = " SSBLD - MUST BE SYSTEM ORIGIN.";
00129  M00S00128.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00130  M00S00129.ssbld   +++|        ABORT;                       # ABORT #
00131  M00S00130.ssbld   +++|        END
00132  M00S00131.ssbld   +++|
00133  M00S00132.ssbld   +++|#
00134  M00S00133.ssbld   +++|*     SAVE THE USER-S CURRENT FAMILY AND INDEX IN COMMON.
00135  M00S00134.ssbld   +++|#
00136  M00S00135.ssbld   +++|
00137  M00S00136.ssbld   +++|      GETPFP(PFP[0]);
00138  M00S00137.ssbld   +++|      USER$FAM[0] = PFP$FAM[0];
00139  M00S00138.ssbld   +++|      USER$UI[0] = PFP$UI[0];
00140  M00S00139.ssbld   +++|
00141  M00S00140.ssbld   +++|
00142  M00S00141.ssbld   +++|#
00143  M00S00142.ssbld   +++|*     CRACK THE PARAMETERS ON THE *SSBLD* CALL.
00144  M00S00143.ssbld   +++|#
00145  M00S00144.ssbld   +++|
00146  M00S00145.ssbld   +++|      BLTAB(ARGLIST);                # SET UP THE ARGUMENT LIST #
00147  M00S00146.ssbld   +++|      OPTION = 0;                    # SKIP OVER PROGRAM NAME #
00148  M00S00147.ssbld   +++|      XARG(ARGLIST,OPTION,FLAG);     # CRACK THE PARAMETERS #
00149  M00S00148.ssbld   +++|
00150  M00S00149.ssbld   +++|      IF FLAG NQ SYNTAXOK
00151  M00S00150.ssbld   +++|      THEN
00152  M00S00151.ssbld   +++|        BEGIN
00153  M00S00152.ssbld   +++|        BLMSG$LN[0] = " SSBLD ABORT - SYNTAX ERROR.";
00154  M00S00153.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);     # SYNTAX ERROR MESSAGE #
00155  M00S00154.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00156  M00S00155.ssbld   +++|        END
00157  M00S00156.ssbld   +++|
00158  M00S00157.ssbld   +++|#
00159  M00S00158.ssbld   +++|*     ATTACH SSEXEC UDT SOURCE FILE.
00160  M00S00159.ssbld   +++|#
00161  M00S00160.ssbld   +++|
00162  M00S00161.ssbld   +++|      CFNAME = DARG$CF[0];
00163  M00S00162.ssbld   +++|      BZFILL(CFNAME,TYPFILL"ZFILL",7);  # ZERO FILL FILE NAME #
00164  M00S00163.ssbld   +++|        BEGIN
00165  M00S00164.ssbld   +++|        PFD("ATTACH",CFNAME,0,"M","R","RC",FLAG,"NA",0,0);
00166  M00S00165.ssbld   +++|        IF FLAG NQ OK
00167  M00S00166.ssbld   +++|        THEN
00168  M00S00167.ssbld   +++|          BEGIN  # PROCESS ATTACH ERROR FLAG #
00169  M00S00168.ssbld   +++|          IF FLAG EQ FBS
00170  M00S00169.ssbld   +++|          THEN                       # SSEXEC UDT SOURCE FILE BUSY #
00171  M00S00170.ssbld   +++|            BEGIN
00172  M00S00171.ssbld   +++|            BLMSG$LN[0] = " SSBLD - SUDT FILE BUSY.";
00173  M00S00172.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00174  M00S00173.ssbld   +++|            RESTPFP(PFP$ABORT);      # RETORE USER-S PFP AND ABORT #
00175  M00S00174.ssbld   +++|            END
00176  M00S00175.ssbld   +++|
00177  M00S00176.ssbld   +++|            BEGIN
00178  M00S00177.ssbld   +++|            BLMSG$LN[0] = " SSBLD - NO SOURCE CONFIGURATION FILE. ";
00179  M00S00178.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00180  M00S00179.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00181  M00S00180.ssbld   +++|            END
00182  M00S00181.ssbld   +++|
00183  M00S00182.ssbld   +++|          END  # PROCESS ATTACH ERROR FLAG #
00184  M00S00183.ssbld   +++|
00185  M00S00184.ssbld   +++|        END
00186  M00S00185.ssbld   +++|
00187  M00S00186.ssbld   +++|#
00188  M00S00187.ssbld   +++|*     ATTACH SSEXEC UDT BINARY FILE.
00189  M00S00188.ssbld   +++|#
00190  M00S00189.ssbld   +++|
00191  M00S00190.ssbld   +++|      CFNAME = DARG$BF[0];
00192  M00S00191.ssbld   +++|      BZFILL(CFNAME,TYPFILL"ZFILL",7);
00193  M00S00192.ssbld   +++|        BEGIN
00194  M00S00193.ssbld   +++|        PFD("ATTACH",CFNAME,0,"M","W","RC",FLAG,"NA",0,"PW",BUDTPW,0);
00195  M00S00194.ssbld   +++|        IF FLAG NQ OK
00196  M00S00195.ssbld   +++|        THEN
00197  M00S00196.ssbld   +++|          BEGIN  # PROCESS ATTACH ERROR FLAG #
00198  M00S00197.ssbld   +++|          IF FLAG EQ FBS
00199  M00S00198.ssbld   +++|          THEN                       # COMMUNICATION FILE BUSY #
00200  M00S00199.ssbld   +++|            BEGIN
00201  M00S00200.ssbld   +++|            BLMSG$LN[0] = " SSBLD - BUDT FILE BUSY.";
00202  M00S00201.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00203  M00S00202.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00204  M00S00203.ssbld   +++|            END
00205  M00S00204.ssbld   +++|
00206  M00S00205.ssbld   +++|          IF FLAG EQ FNF
00207  M00S00206.ssbld   +++|          THEN                       # FILE DOES NOT EXIST #
00208  M00S00207.ssbld   +++|            BEGIN
00209  M00S00208.ssbld   +++|            PFD("DEFINE",CFNAME,0,"RC",FLAG,0,"PW",BUDTPW,0);
00210  M00S00209.ssbld   +++|            IF FLAG NQ OK
00211  M00S00210.ssbld   +++|            THEN                     # PROCESS DEFINE ERROR #
00212  M00S00211.ssbld   +++|              BEGIN
00213  M00S00212.ssbld   +++|              BLMSG$LN[0] = " SSBLD - UNABLE TO DEFINE BUDT FILE.";
00214  M00S00213.ssbld   +++|              MESSAGE(BLMSG[0],SYSUDF1);
00215  M00S00214.ssbld   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00216  M00S00215.ssbld   +++|              END
00217  M00S00216.ssbld   +++|
00218  M00S00217.ssbld   +++|            END
00219  M00S00218.ssbld   +++|
00220  M00S00219.ssbld   +++|          ELSE                       # ABNORMAL TERMINATION #
00221  M00S00220.ssbld   +++|            BEGIN
00222  M00S00221.ssbld   +++|            BLMSG$LN[0] = " SSBLD - BUDT FILE PROBLEMS. ";
00223  M00S00222.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00224  M00S00223.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00225  M00S00224.ssbld   +++|            END
00226  M00S00225.ssbld   +++|
00227  M00S00226.ssbld   +++|          END  # PROCESS ATTACH ERROR FLAG #
00228  M00S00227.ssbld   +++|
00229  M00S00228.ssbld   +++|        END
00230  M00S00229.ssbld   +++|
00231  M00S00230.ssbld   +++|#
00232  M00S00231.ssbld   +++|*     READ THE CONFIGURATION SOURCE FILE AND GENERATE UDT.
00233  M00S00232.ssbld   +++|#
00234  M00S00233.ssbld   +++|
00235  M00S00234.ssbld   +++|      RDSUDT;
00236  M00S00235.ssbld   +++|
00237  M00S00236.ssbld   +++|#
00238  M00S00237.ssbld   +++|*     WRITE THE UDT TO DISK.
00239  M00S00238.ssbld   +++|#
00240  M00S00239.ssbld   +++|
00241  M00S00240.ssbld   +++|      WTBUDT;
00242  M00S00241.ssbld   +++|
00243  M00S00242.ssbld   +++|#
00244  M00S00243.ssbld   +++|*     REATTACH UDT FILE, CLEANUP, AND EXIT.
00245  M00S00244.ssbld   +++|#
00246  M00S00245.ssbld   +++|
00247  M00S00246.ssbld   +++|      PFD("ATTACH",CFNAME,0,"M","R","RC",FLAG,"PW",BUDTPW,0);
00248  M00S00247.ssbld   +++|      IF FLAG NQ OK
00249  M00S00248.ssbld   +++|      THEN                           # PERMANENT FILE PROBLEM #
00250  M00S00249.ssbld   +++|        BEGIN
00251  M00S00250.ssbld   +++|        BLMSG$LN[0] = " SSBLD - CANNOT RE-ATTACH BUDT FILE.";
00252  M00S00251.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00253  M00S00252.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00254  M00S00253.ssbld   +++|        END
00255  M00S00254.ssbld   +++|
00256  M00S00255.ssbld   +++|      RETERN(BL$FET[0],RCL);
00257  M00S00256.ssbld   +++|      BLMSG$LN[0] = " SSBLD COMPLETE.";  # SSBLD COMPLETE #
00258  M00S00257.ssbld   +++|      MESSAGE(BLMSG[0],UDFL1);
00259  M00S00258.ssbld   +++|      RESTPFP(PFP$END);              # RESTORE USER-S *PFP* #
00260  M00S00259.ssbld   +++|
00261  M00S00260.ssbld   +++|      END  # SSBLD #
00262  M00S00261.ssbld   +++|
00263  M00S00262.ssbld   +++|    TERM
00264  M00S00263.ssbld   +++|PROC RDSUDT;
00265  M00S00264.ssbld   +++|
00266  M00S00265.ssbld   +++|
00267  M00S00266.ssbld   +++|# TITLE RDSUDT - READ *SUDT* OR OTHER SPECIFIED FILE TO MEMORY.       #
00268  M00S00267.ssbld   +++|
00269  M00S00268.ssbld   +++|      BEGIN  # RDSUDT #
00270  M00S00269.ssbld   +++|
00271  M00S00270.ssbld   +++|#
00272  M00S00271.ssbld   +++|**    RDSUDT - READ CONFIGURATION SOURCE FILE TO MEMORY.
00273  M00S00272.ssbld   +++|*
00274  M00S00273.ssbld   +++|*     THIS PROCEDURE READS THE M860 CONFIGURATION SOURCE
00275  M00S00274.ssbld   +++|*     FILE TO SSBLD-S MEMORY FOR INTERPRETATION PRIOR
00276  M00S00275.ssbld   +++|*     TO SSBLD GENERATING THE *BUDT* FILE.
00277  M00S00276.ssbld   +++|*     RDSUDT READS THE CONFIGURATION FILE ONE LINE AT
00278  M00S00277.ssbld   +++|*     TIME. THESE STATEMENTS MUST APPEAR IN A SPECIFIED ORDER.
00279  M00S00278.ssbld   +++|*     IF NOT, RDSUDT WILL ABORT THE JOB.  THE ORDER IS:
00280  M00S00279.ssbld   +++|*
00281  M00S00280.ssbld   +++|*       ALL *CU* STATEMENTS APPEAR FIRST.
00282  M00S00281.ssbld   +++|*       ALL *CIF* STATEMENTS APPREAR NEXT.
00283  M00S00282.ssbld   +++|*       ALL *DTI* STATEMENTS APPEAR NEXT.
00284  M00S00283.ssbld   +++|*       ALL *DTO* STATEMENTS APPEAR NEXT.
00285  M00S00284.ssbld   +++|*       ALL *DIF* STATEMENTS APPEAR NEXT.
00286  M00S00285.ssbld   +++|*       ALL *DRC* STATEMENTS APPEAR NEXT.
00287  M00S00286.ssbld   +++|*       ALL *DRD* STATEMENTS APPEAR NEXT.
00288  M00S00287.ssbld   +++|*       ALL *AIF* STATEMENTS APPEAR NEXT.
00289  M00S00288.ssbld   +++|*       ALL *SM* STATEMENTS APPEAR LAST.
00290  M00S00289.ssbld   +++|*
00291  M00S00290.ssbld   +++|*     THE ABOVE STATEMENTS ARE THE ONLY LEGAL MNEMONIC
00292  M00S00291.ssbld   +++|*     DESCRIPTORS ALLOWED. USE OF ANY OTHER DESCRIPTOR
00293  M00S00292.ssbld   +++|*     WILL CAUSE *SSBLD* TO ABORT.
00294  M00S00293.ssbld   +++|*
00295  M00S00294.ssbld   +++|*     AN ASTERISK (*) IN COLUMN ONE INDICATES A COMMENT
00296  M00S00295.ssbld   +++|*     STATEMENT.
00297  M00S00296.ssbld   +++|*
00298  M00S00297.ssbld   +++|*
00299  M00S00298.ssbld   +++|*     PROC RDSUDT.
00300  M00S00299.ssbld   +++|*
00301  M00S00300.ssbld   +++|*     ENTRY   NONE.
00302  M00S00301.ssbld   +++|*
00303  M00S00302.ssbld   +++|*     EXIT    CONFIGURATION SOURCE FILE READ TO MEMORY.
00304  M00S00303.ssbld   +++|*             IT WILL BE SCANNED FOR SYNTACTICAL CORRECTNESS
00305  M00S00304.ssbld   +++|*             AND CORRECT ORDER.
00306  M00S00305.ssbld   +++|*
00307  M00S00306.ssbld   +++|*     MESSAGES
00308  M00S00307.ssbld   +++|*
00309  M00S00308.ssbld   +++|*     RDSUDT - CONFIGURATION FILE EMPTY.
00310  M00S00309.ssbld   +++|*     RDSUDT - INCORRECT *CU* COUNT.
00311  M00S00310.ssbld   +++|*     RDSUDT - MISSING *SM* COUNT COMMAND.
00312  M00S00311.ssbld   +++|*     RDSUDT - CAN-T CRACK *SM* COMMAND.
00313  M00S00312.ssbld   +++|*     RDSUDT - CH/CIF CONFLICT.
00314  M00S00313.ssbld   +++|*     RDSUDT - INCORRECT *SM* COUNT.
00315  M00S00314.ssbld   +++|*     RDUSDT - NULL DIRECTIVE.
00316  M00S00315.ssbld   +++|*     RDSUDT - *CU* COMMAND MISSING/OUT OF PLACE.
00317  M00S00316.ssbld   +++|*     RDSUDT - INCORRECT EST ORDINAL.
00318  M00S00317.ssbld   +++|*     RDSUDT - *CU* ENTRY MISSING = SIGN.
00319  M00S00318.ssbld   +++|*     RDSUDT - CHANNEL 0 NOT FIRST CHANNEL.
00320  M00S00319.ssbld   +++|*     RDSUDT - MISSING CHANNELS ON *CU* COMMAND.
00321  M00S00320.ssbld   +++|*     RDSUDT - *CIF* COMMAND MISSING = SIGN.
00322  M00S00321.ssbld   +++|*     RDSUDT - *DTI* COMMAND MISSING = SIGN.
00323  M00S00322.ssbld   +++|*     RDSUDT - *DTO* COMMAND MISSING = SIGN.
00324  M00S00323.ssbld   +++|*     RDSUDT - *DIF* COMMAND MISSING = SIGN.
00325  M00S00324.ssbld   +++|*     RDSUDT - *DRC* COMMAND MISSING = SIGN.
00326  M00S00325.ssbld   +++|*     RDSUDT - *AIF* COMMAND MISSING = SIGN.
00327  M00S00326.ssbld   +++|*     RDSUDT - *SM* COMMAND MISSING = SIGN.
00328  M00S00327.ssbld   +++|*     RDSUDT - *SM* COMMAND MISSING COMMA.
00329  M00S00328.ssbld   +++|*     RDSUDT - INCORRECT DEVICE ADDRESS.
00330  M00S00329.ssbld   +++|*     RDSUDT - EXTRA ENTRIES ON DIRECTIVE.
00331  M00S00330.ssbld   +++|*     RDSUDT - INCORRECT CONFIGURATION FILE HEADER.
00332  M00S00331.ssbld   +++|*     RDSUDT - STATEMENT OUT OF ORDER.
00333  M00S00332.ssbld   +++|*     RDSUDT - INCORRECT STATUS.
00334  M00S00333.ssbld   +++|*     RDSUDT - INCORRECT COMMAND TERMINATOR.
00335  M00S00334.ssbld   +++|*     RDSUDT - EXTRA PATHS TO *DRD*.
00336  M00S00335.ssbld   +++|*     RDSUDT - EXTRA PATHS TO *SM*.
00337  M00S00336.ssbld   +++|*     RDSUDT - SOURCE FILE STATEMENT CONFLICT.
00338  M00S00337.ssbld   +++|*     RDSUDT - COMMAND SYNTAX ERROR.
00339  M00S00338.ssbld   +++|*     RDSUDT - INCORRECT STATEMENT MNEMONIC.
00340  M00S00339.ssbld   +++|*     RDSUDT - STATEMENT OUT OF ORDER.
00341  M00S00340.ssbld   +++|*     RDSUDT - CONFIGURATION FILE STATEMENT CONFLICT.
Line S00341 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00342  M01S00341.ssbld1  ---|*     RDSUDT - CONFIGURATION FILE EMPTY.
Line S00001 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00343  M01S00001.ssbld1  +++|*     RDSUDT - SM STATEMENT - INCORRECT DS VALUE.
00344  M01S00002.ssbld1  +++|*     RDSUDT - SM STATEMENT - INCORRECT ST VALUE.
00345  M01S00003.ssbld1  +++|*     RDSUDT - INVALID AIF PATHS.
00346  M00S00342.ssbld   +++|*
00347  M00S00343.ssbld   +++|#
00348  M00S00344.ssbld   +++|
00349  M00S00345.ssbld   +++|#
00350  M00S00346.ssbld   +++|****  PROC RDSUDT - XREF LIST BEGIN.
00351  M00S00347.ssbld   +++|#
00352  M00S00348.ssbld   +++|
00353  M00S00349.ssbld   +++|      XREF
00354  M00S00350.ssbld   +++|        BEGIN
00355  M00S00351.ssbld   +++|        PROC BZFILL;                 # BLANK OR ZERO FILLS AN ITEM #
00356  M00S00352.ssbld   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
00357  M00S00353.ssbld   +++|        PROC NEXTLIN;                # READ NEXT LINE AND CHECK IT #
00358  M00S00354.ssbld   +++|        PROC NEXTPRM;                # GET NEXT PARAMETER, CHECK IT #
00359  M00S00355.ssbld   +++|        PROC READ;                   # READS A FILE #
00360  M00S00356.ssbld   +++|        PROC READC;                  # READ ONE LINE #
00361  M00S00357.ssbld   +++|        PROC READW;                  # DATA TRANSFER ROUTINE #
00362  M00S00358.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00363  M00S00359.ssbld   +++|                                       OR RETURN #
00364  M00S00360.ssbld   +++|        PROC RETERN;                 # RETURNS A FILE #
00365  M00S00361.ssbld   +++|        PROC REWIND;                 # REWINDS A FILE #
00366  M00S00362.ssbld   +++|        PROC UPDRDST;                # UPDATE NODE STATUS #
00367  M00S00363.ssbld   +++|        FUNC XDXB;                   # CONVERT DISPLAY CODE TO BINARY #
00368  M00S00364.ssbld   +++|        PROC ZFILL;                  # ZERO FILLS A BUFFER #
00369  M00S00365.ssbld   +++|        PROC ZSETFET;                # SETS UP A FET #
00370  M00S00366.ssbld   +++|        END
00371  M00S00367.ssbld   +++|
00372  M00S00368.ssbld   +++|
00373  M00S00369.ssbld   +++|#
00374  M00S00370.ssbld   +++|****  PROC RDSUDT - XREF LIST END.
00375  M00S00371.ssbld   +++|#
00376  M00S00372.ssbld   +++|
00377  M00S00373.ssbld   +++|      DEF MSG$BADEST #" RDSUDT - INCORRECT EST ORDINAL. "#;
00378  M00S00374.ssbld   +++|      DEF MSG$BADADR #" RDSUDT - INCORRECT DEVICE ADDRESS. "#;
00379  M00S00375.ssbld   +++|      DEF MSG$BADENT #" RDSUDT - EXTRA ENTRIES ON DIRECTIVE."#;
00380  M00S00376.ssbld   +++|      DEF MSG$BADNUM #" RDSUDT - INCORRECT CONFIGURATION FILE HEADER."#;
00381  M00S00377.ssbld   +++|      DEF MSG$BADST  #" RDSUDT - INCORRECT STATEMENT MNEMONIC."#;
00382  M00S00378.ssbld   +++|      DEF MSG$BDORD  #" RDSUDT - STATEMENT OUT OF ORDER."#;
00383  M00S00379.ssbld   +++|      DEF MSG$BDST   #" RDSUDT - INCORRECT STATUS."#;
00384  M00S00380.ssbld   +++|      DEF MSG$BDTERM #" RDSUDT - INCORRECT COMMAND TERMINATOR. "#;
00385  M00S00381.ssbld   +++|      DEF MSG$EXDRD  #" RDSUDT - EXTRA PATHS TO *DRD*."#;
00386  M00S00382.ssbld   +++|      DEF MSG$EXPATH #" RDSUDT - EXTRA PATHS TO *SM*."#;
00387  M00S00383.ssbld   +++|      DEF MSG$INCCU  #" RDUSDT - INCORRECT *CU* COUNT."#;
00388  M00S00384.ssbld   +++|      DEF MSG$INCSM  #" RDSUDT - INCORRECT *SM* COUNT."#;
00389  M01S00004.ssbld1  +++|      DEF MSG$INVAIF #" RDSUDT - INVALID AIF PATHS."#;
00390  M01S00005.ssbld1  +++|      DEF MSG$SM$DS  #" RDSUDT - SM STATEMENT - INCORRECT DS VALUE."#;
00391  M01S00006.ssbld1  +++|      DEF MSG$SM$ST  #" RDSUDT - SM STATEMENT - INCORRECT ST VALUE."#;
00392  M00S00385.ssbld   +++|      DEF MSG$STCON  #" RDSUDT - SOURCE FILE STATEMENT CONFLICT"#;
00393  M00S00386.ssbld   +++|      DEF MSG$SYNER  #" RDSUDT - COMMAND SYNTAX ERROR"#;
00394  M00S00387.ssbld   +++|      DEF PROCNAME   #"RDSUDT."#;    # PROC NAME #
00395  M00S00388.ssbld   +++|      DEF ZERO       #0#;            # CONSTANT ZERO #
00396  M00S00389.ssbld   +++|
00397  M00S00390.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00398  M00S00391.ssbld   +++|*CALL COMBFAS
00399  M00S00392.ssbld   +++|*CALL COMBBZF
00400  M00S00393.ssbld   +++|*CALL COMBFET
00401  M00S00394.ssbld   +++|*CALL COMBTDM
00402  M00S00395.ssbld   +++|*CALL COMBUDT
00403  M00S00396.ssbld   +++|*CALL COMSPFM
00404  M00S00397.ssbld   +++|*CALL COMTBLD
00405  M00S00398.ssbld   +++|*CALL COMTBLP
00406  M00S00399.ssbld   +++|*CALL COMTOUT
00407  M00S00400.ssbld   +++|
00408  M00S00401.ssbld   +++|      ITEM ACCESSOR   I;             # DEVICE ADDRESS OF M861 #
00409  M00S00402.ssbld   +++|      ITEM ARGLIST    I;             # ARGUMENT LIST ADDRESS #
00410  M00S00403.ssbld   +++|      ITEM BUFP       I;             # FWA OF BUFFER #
00411  M00S00404.ssbld   +++|      ITEM CHAR1      C(1);          # ONE CHARACTER #
00412  M00S00405.ssbld   +++|      ITEM CHAR2      C(2);          # TWO CHARACTERS #
00413  M01S00007.ssbld1  +++|      ITEM CHAR3      C(3);          # THREE CHARACTERS #
00414  M00S00406.ssbld   +++|      ITEM CUNUM      I;             # ORDINAL OF CURRENT *CU* #
00415  M00S00407.ssbld   +++|      ITEM CUXX       I;             # ORDINAL OF PRIMARY *CU* #
00416  M00S00408.ssbld   +++|      ITEM CUYY       I;             # ORDINAL OF SECONDARY *CU* #
00417  M00S00409.ssbld   +++|      ITEM NCOL       I;             # NEXT COLUMN NUMBER #
00418  M00S00410.ssbld   +++|      ITEM SCOL       I;             # STARTING COLUMN NUMBER #
00419  M00S00411.ssbld   +++|      ITEM DEVTYPE    C(3);          # DEVICE NMEMONIC #
00420  M00S00412.ssbld   +++|      ITEM DIRNUM     I;             # DIRECTIVE NUMBER #
00421  M00S00413.ssbld   +++|      ITEM DIRLINE    C(90);         # DIRECTIVE TEXT LINE #
00422  M00S00414.ssbld   +++|      ITEM DRDNUM     I;             # ORDINAL OF CURRENT *DRD* #
00423  M00S00415.ssbld   +++|      ITEM EOR        B;             # END-OF-RECORD FLAG #
00424  M00S00416.ssbld   +++|      ITEM FETP       I;             # FWA OF FET #
00425  M00S00417.ssbld   +++|      ITEM FOUND      B;             # LOOP EXIT CONTROL #
00426  M00S00418.ssbld   +++|      ITEM ARGKEY2    C(2);          # ARGUMENT KEY - 2 CHARACTERS #
00427  M00S00419.ssbld   +++|      ITEM ARGKEY3    C(3);          # ARGUMENT KEY - 3 CHARACTERS #
00428  M00S00420.ssbld   +++|      ITEM NKEY2      C(2);          # DIRECTIVE KEY - 2 CHARACTER #
00429  M00S00421.ssbld   +++|      ITEM OKEY2      C(2);          # DIRECTIVE KEY - 2 CHARACTER #
00430  M00S00422.ssbld   +++|      ITEM NKEY3      C(3);          # DIRECTIVE KEY - 3 CHARACTER #
00431  M00S00423.ssbld   +++|      ITEM OKEY3      C(3);          # DIRECTIVE KEY - 3 CHARACTER #
00432  M00S00424.ssbld   +++|      ITEM KEYOK      B;             # CONTROL VARIABLE #
00433  M00S00425.ssbld   +++|      ITEM MASK       I;             # MASK FOR SPECIAL FILE NAMES #
00434  M00S00426.ssbld   +++|      ITEM I          I;             # LOOP INDEX #
00435  M00S00427.ssbld   +++|      ITEM J          I;             # LOOP INDEX #
00436  M00S00428.ssbld   +++|      ITEM K          I;             # LOOP INDEX #
Line S00429 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00437  M01S00429.ssbld1  ---|      ITEM L          I;             # LOOP INDEX #
00438  M00S00430.ssbld   ---|      ITEM LFN        C(7);          # FILE NAME #
00439  M00S00431.ssbld   ---|      ITEM MAXARG     I;             # MAXIMUM NUMBER OF ARGUMENTS #
00440  M00S00432.ssbld   ---|      ITEM LOOPC      B;             # LOOP CONTROL VARIABLE #
00441  M00S00433.ssbld   ---|      ITEM LOOPK      B;             # LOOP CONTROL VARIABLE #
00442  M00S00434.ssbld   ---|      ITEM LOOPL      B;             # LOOP CONTROL #
00443  M00S00435.ssbld   ---|      ITEM NUMCH      I;             # NUMBER OF CHARACTERS #
00444  M00S00436.ssbld   ---|      ITEM ORD        I;             # ORDINAL OF DEVICE TYPE #
Line S00008 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00445  M01S00008.ssbld1  +++|      ITEM SAVEDORD   I;             # SAVED DRD ORDINAL #
00446  M00S00437.ssbld   +++|      ITEM SMNUM      I;             # ORDINAL OF CURRENT *SM* #
00447  M00S00438.ssbld   +++|      ITEM STAT       I;             # STATUS OF PROCEDURE CALL #
00448  M00S00439.ssbld   +++|      ITEM TERMINATOR C(1);          # TERMINATING CHARACTER #
00449  M00S00440.ssbld   +++|      ITEM TMPI       I;             # INTEGER SCRATCH #
00450  M00S00441.ssbld   +++|      ITEM TMPJ       I;             # INTEGER SCRATCH #
00451  M00S00442.ssbld   +++|
00452  M00S00443.ssbld   +++|      ARRAY MSG [1:2] S(2);          # MESSAGES DISPLAYED #
00453  M00S00444.ssbld   +++|        BEGIN
00454  M00S00445.ssbld   +++|        ITEM MSGW       C(00,00,20) =  ##
00455  M00S00446.ssbld   +++|          [ "CONFIGURATION FILE READ ",
00456  M00S00447.ssbld   +++|        "                    " ];
00457  M00S00448.ssbld   +++|        END
00458  M00S00449.ssbld   +++|
00459  M00S00450.ssbld   +++|
00460  M00S00451.ssbld   +++|
00461  M00S00452.ssbld   +++|#
00462  M00S00453.ssbld   +++|*     SWITCH STATEMENT
00463  M00S00454.ssbld   +++|#
00464  M00S00455.ssbld   +++|
00465  M00S00456.ssbld   +++|      SWITCH DIRECTIVE NULL,
00466  M00S00457.ssbld   +++|      M862CTLR,
00467  M00S00458.ssbld   +++|      CHANIF,
00468  M00S00459.ssbld   +++|      DEVICETI,
00469  M00S00460.ssbld   +++|      DEVICETO,
00470  M00S00461.ssbld   +++|      DEVICEIF,
00471  M00S00462.ssbld   +++|      DATARC,
00472  M00S00463.ssbld   +++|      NULL,
00473  M00S00464.ssbld   +++|      ACCIF,
00474  M00S00465.ssbld   +++|      NULL,
00475  M00S00466.ssbld   +++|      M861SM;
00476  M00S00467.ssbld   +++|
00477  M00S00468.ssbld   +++|
00478  M00S00469.ssbld   +++|
00479  M00S00470.ssbld   +++|                                               CONTROL EJECT;
00480  M00S00471.ssbld   +++|
00481  M00S00472.ssbld   +++|#
00482  M00S00473.ssbld   +++|*     SET UP FET FOR CONFIGURATION FILE AND REWIND IT.
00483  M00S00474.ssbld   +++|#
00484  M00S00475.ssbld   +++|
00485  M00S00476.ssbld   +++|      LFN = DARG$CF[0];
00486  M00S00477.ssbld   +++|      FETP = LOC(BL$FET[0]);
00487  M00S00478.ssbld   +++|      BUFP = LOC(BL$BUF[0]);
00488  M00S00479.ssbld   +++|      ZSETFET(FETP,LFN,BUFP,BLBUFL,SFETL);
00489  M00S00480.ssbld   +++|      READ(BL$FET[0],NRCL);
00490  M00S00481.ssbld   +++|      EOR = FALSE;
00491  M00S00482.ssbld   +++|
00492  M00S00483.ssbld   +++|#
00493  M00S00484.ssbld   +++|*     READ FIRST 2 CARDS OF CONFIGURATION SOURCE FILE.
00494  M00S00485.ssbld   +++|*     CARD 1 CONTAINS NUMBER OF CU-S (LEFT-JUSTIFIED)
00495  M00S00486.ssbld   +++|*     CARD 2 CONTAINS NUMBER OF SM-S (LEFT-JUSTIFIED)
00496  M00S00487.ssbld   +++|#
00497  M00S00488.ssbld   +++|
00498  M00S00489.ssbld   +++|      READC(BL$FET[0],DIRLINE,9,STAT);
00499  M00S00490.ssbld   +++|      BZFILL(DIRLINE,TYPFILL"BFILL",90);
00500  M00S00491.ssbld   +++|      IF STAT NQ 0
00501  M00S00492.ssbld   +++|      THEN
00502  M00S00493.ssbld   +++|        BEGIN
00503  M00S00494.ssbld   +++|        BLMSG$LN[0] = " RDSUDT - CONFIGURATION FILE EMPTY.";
00504  M00S00495.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00505  M00S00496.ssbld   +++|        END
00506  M00S00497.ssbld   +++|
00507  M00S00498.ssbld   +++|      STAT = XDXB(C<0,1>DIRLINE,1,NUM$CU);
00508  M00S00499.ssbld   +++|      IF STAT NQ 0
00509  M00S00500.ssbld   +++|      THEN
00510  M00S00501.ssbld   +++|        BEGIN
00511  M00S00502.ssbld   +++|        BLMSG$LN[0] = MSG$BADENT;
00512  M00S00503.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00513  M00S00504.ssbld   +++|        RESTPFP(PFP$ABORT);
00514  M00S00505.ssbld   +++|        END
00515  M00S00506.ssbld   +++|
00516  M00S00507.ssbld   +++|      BLMSG$LN[0] = DIRLINE;
00517  M00S00508.ssbld   +++|      MESSAGE(BLMSG[0],SYSUDF1);
00518  M00S00509.ssbld   +++|      P<UDT$WORD> = LOC(BL$UDT$HDR);
00519  M00S00510.ssbld   +++|      IF NUM$CU GR MAXCTN OR NUM$CU LQ ZERO
00520  M00S00511.ssbld   +++|      THEN
00521  M00S00512.ssbld   +++|        BEGIN
00522  M00S00513.ssbld   +++|        BLMSG$LN[0] = MSG$INCCU;
00523  M00S00514.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00524  M00S00515.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00525  M00S00516.ssbld   +++|        END
00526  M00S00517.ssbld   +++|
00527  M00S00518.ssbld   +++|#
00528  M00S00519.ssbld   +++|*      SAVE COUNT OF M862-S
00529  M00S00520.ssbld   +++|#
00530  M00S00521.ssbld   +++|
00531  M00S00522.ssbld   +++|      UDT$LINE$CUN = NUM$CU;
00532  M00S00523.ssbld   +++|
00533  M00S00524.ssbld   +++|      READC(BL$FET[0],DIRLINE,9,STAT);
00534  M00S00525.ssbld   +++|      BZFILL(DIRLINE,TYPFILL"BFILL",90);
00535  M00S00526.ssbld   +++|      IF STAT NQ 0
00536  M00S00527.ssbld   +++|      THEN
00537  M00S00528.ssbld   +++|        BEGIN
00538  M00S00529.ssbld   +++|        BLMSG$LN[0] = " MISSING *SM* COUNT COMMAND.";
00539  M00S00530.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);   # ERROR MESSAGE #
00540  M00S00531.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00541  M00S00532.ssbld   +++|        END
00542  M00S00533.ssbld   +++|
00543  M00S00534.ssbld   +++|      STAT = XDXB(C<0,1>DIRLINE,1,NUM$SM);
00544  M00S00535.ssbld   +++|      IF STAT NQ 0
00545  M00S00536.ssbld   +++|      THEN
00546  M00S00537.ssbld   +++|        BEGIN
00547  M00S00538.ssbld   +++|        BLMSG$LN[0]= " RDSUDT - CAN-T CRACK *SM* COMMAND. ";
00548  M00S00539.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00549  M00S00540.ssbld   +++|        RESTPFP(PFP$ABORT);
00550  M00S00541.ssbld   +++|        END
00551  M00S00542.ssbld   +++|
00552  M00S00543.ssbld   +++|      BLMSG$LN[0] = DIRLINE;
00553  M00S00544.ssbld   +++|      MESSAGE(BLMSG[0],SYSUDF1);
00554  M00S00545.ssbld   +++|      IF NUM$SM GR MAXSM OR NUM$SM LQ ZERO
00555  M00S00546.ssbld   +++|      THEN
00556  M00S00547.ssbld   +++|        BEGIN
00557  M00S00548.ssbld   +++|        BLMSG$LN[0] = MSG$INCSM;
00558  M00S00549.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00559  M00S00550.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00560  M00S00551.ssbld   +++|        END
00561  M00S00552.ssbld   +++|
00562  M00S00553.ssbld   +++|      UDT$LINE$SMN = NUM$SM;
00563  M00S00554.ssbld   +++|
00564  M00S00555.ssbld   +++|#
00565  M00S00556.ssbld   +++|*      INITIALIZE *BUDT* POSITIONING COUNTERS.
00566  M00S00557.ssbld   +++|#
00567  M00S00558.ssbld   +++|
00568  M00S00559.ssbld   +++|      CUNUM = 0;
00569  M00S00560.ssbld   +++|      SMNUM = 0;
00570  M00S00561.ssbld   +++|
00571  M00S00562.ssbld   +++|#
00572  M00S00563.ssbld   +++|*      READ DIRECTIVES FROM SOURCE FILE
00573  M00S00564.ssbld   +++|#
00574  M00S00565.ssbld   +++|
00575  M00S00566.ssbld   +++|
00576  M00S00567.ssbld   +++|      EOR = FALSE;
00577  M00S00568.ssbld   +++|      SLOWFOR DIRNUM = 1 STEP 1 WHILE NOT EOR
00578  M00S00569.ssbld   +++|      DO
00579  M00S00570.ssbld   +++|        BEGIN
00580  M00S00571.ssbld   +++|
00581  M00S00572.ssbld   +++|        NEXTLIN(DIRLINE,STAT,TMPI);
00582  M00S00573.ssbld   +++|        IF STAT NQ 0
00583  M00S00574.ssbld   +++|        THEN
00584  M00S00575.ssbld   +++|          BEGIN
00585  M00S00576.ssbld   +++|          EOR = TRUE;
00586  M00S00577.ssbld   +++|          TEST DIRNUM;
00587  M00S00578.ssbld   +++|          END
00588  M00S00579.ssbld   +++|
00589  M00S00580.ssbld   +++|        BLMSG$LN[0] = DIRLINE;
00590  M00S00581.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00591  M00S00582.ssbld   +++|
00592  M00S00583.ssbld   +++|        GOTO DIRECTIVE[TMPI];
00593  M00S00584.ssbld   +++|
00594  M00S00585.ssbld   +++|NULL:
00595  M00S00586.ssbld   +++|        BLMSG$LN[0] = " RDSUDT - NULL DIRECTIVE. ";
00596  M00S00587.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00597  M00S00588.ssbld   +++|        RESTPFP(PFP$ABORT);
00598  M00S00589.ssbld   +++|
00599  M00S00590.ssbld   +++|M862CTLR:
00600  M00S00591.ssbld   +++|        CUNUM = CUNUM + 1;
00601  M00S00592.ssbld   +++|        P<UDT$CN> = LOC(BL$UDT$M862[CUNUM]);
00602  M00S00593.ssbld   +++|        ARGKEY2 = C<0,2>DIRLINE;
00603  M00S00594.ssbld   +++|        ARGKEY3 = "   ";
00604  M00S00595.ssbld   +++|        IF ARGKEY2 NQ NM$KEY2[2]
00605  M00S00596.ssbld   +++|        THEN
00606  M00S00597.ssbld   +++|          BEGIN
00607  M00S00598.ssbld   +++|          BLMSG$LN[0] =              ##
00608  M00S00599.ssbld   +++|            " RDSUDT - *CU* COMMAND MISSING/OUT OF PLACE.";
00609  M00S00600.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00610  M00S00601.ssbld   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S PFP AND ABORT #
00611  M00S00602.ssbld   +++|          END
00612  M00S00603.ssbld   +++|
Line S00604 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00613  M01S00604.ssbld1  ---|        STAT = XDXB(C<2,2>DIRLINE,0,TMPI);
Line S00009 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00614  M01S00009.ssbld1  +++|        STAT = XDXB(C<2,3>DIRLINE,0,TMPI);  # ASSUME 3-CHAR EST ORD #
00615  M01S00010.ssbld1  +++|        SCOL = 5;
00616  M00S00605.ssbld   +++|        IF STAT NQ 0
00617  M00S00606.ssbld   +++|        THEN
00618  M00S00607.ssbld   +++|          BEGIN
Line S00608 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00619  M01S00608.ssbld1  ---|          BLMSG$LN[0] = MSG$BADEST;
00620  M01S00609.ssbld1  ---|          MESSAGE(BLMSG[0],SYSUDF1);
00621  M01S00610.ssbld1  ---|          RESTPFP(PFP$ABORT);
Line S00011 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00622  M01S00011.ssbld1  +++|          STAT = XDXB(C<2,2>DIRLINE,0,TMPI);  # ASSUME 2-CHAR EST ORD #
00623  M01S00012.ssbld1  +++|          SCOL = 4;
00624  M01S00013.ssbld1  +++|          IF STAT NQ 0
00625  M01S00014.ssbld1  +++|          THEN                       # BAD EST ORDINAL #
00626  M01S00015.ssbld1  +++|            BEGIN  # EXIT #
00627  M01S00016.ssbld1  +++|            BLMSG$LN[0] = MSG$BADEST;
00628  M01S00017.ssbld1  +++|            MESSAGE(BLMSG[0],SYSUDF1);
00629  M01S00018.ssbld1  +++|            RESTPFP(PFP$ABORT);
00630  M01S00019.ssbld1  +++|            END  # EXIT #
00631  M01S00020.ssbld1  +++|
00632  M00S00611.ssbld   +++|          END
00633  M00S00612.ssbld   +++|
Line S00613 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00634  M01S00613.ssbld1  ---|        IF TMPI LS 10 OR TMPI GR MAXEST
Line S00021 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00635  M01S00021.ssbld1  +++|        IF (TMPI LS O"10") OR (TMPI GR MAXEST)
00636  M00S00614.ssbld   +++|        THEN
00637  M00S00615.ssbld   +++|          BEGIN
00638  M00S00616.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00639  M00S00617.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00640  M00S00618.ssbld   +++|          RESTPFP(PFP$ABORT);
00641  M00S00619.ssbld   +++|          END
00642  M00S00620.ssbld   +++|
00643  M00S00621.ssbld   +++|        UD$ESTO[1] = TMPI;
Line S00622 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00644  M01S00622.ssbld1  ---|        IF C<4,1>DIRLINE NQ "="
Line S00022 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00645  M01S00022.ssbld1  +++|        IF C<SCOL,1>DIRLINE NQ "="
00646  M00S00623.ssbld   +++|        THEN
00647  M00S00624.ssbld   +++|          BEGIN
00648  M00S00625.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *CU* ENTRY MISSING = SIGN.";
00649  M00S00626.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00650  M00S00627.ssbld   +++|          RESTPFP(PFP$ABORT);
00651  M00S00628.ssbld   +++|          END
00652  M00S00629.ssbld   +++|
Line S00630 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00653  M01S00630.ssbld1  ---|        STAT = XDXB(C<5,1>DIRLINE,0,TMPI);
Line S00023 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00654  M01S00023.ssbld1  +++|        SCOL = SCOL + 1;
00655  M01S00024.ssbld1  +++|        CHAR1 = C<SCOL,1>DIRLINE;
00656  M01S00025.ssbld1  +++|        STAT = XDXB(CHAR1,0,TMPI);
00657  M00S00631.ssbld   +++|        IF STAT NQ 0
00658  M00S00632.ssbld   +++|        THEN
00659  M00S00633.ssbld   +++|          BEGIN
00660  M00S00634.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00661  M00S00635.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00662  M00S00636.ssbld   +++|          RESTPFP(PFP$ABORT);
00663  M00S00637.ssbld   +++|          END
00664  M00S00638.ssbld   +++|
00665  M00S00639.ssbld   +++|        IF (TMPI EQ 1) OR (TMPI EQ 3) OR (TMPI EQ 5) OR (TMPI EQ 7)
00666  M00S00640.ssbld   +++|          THEN
00667  M00S00641.ssbld   +++|          BEGIN
00668  M00S00642.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00669  M00S00643.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00670  M00S00644.ssbld   +++|          RESTPFP(PFP$ABORT);
00671  M00S00645.ssbld   +++|          END
00672  M00S00646.ssbld   +++|
00673  M01S00026.ssbld1  +++|        SCOL = SCOL + 1;
00674  M01S00027.ssbld1  +++|        IF C<SCOL,1>DIRLINE NQ COMMA
00675  M01S00028.ssbld1  +++|        THEN                         # BAD SYNTAX #
00676  M01S00029.ssbld1  +++|          BEGIN  # EXIT #
00677  M01S00030.ssbld1  +++|          BLMSG$LN[0] = MSG$SYNER;
00678  M01S00031.ssbld1  +++|          MESSAGE(BLMSG[0],SYSUDF1);
00679  M01S00032.ssbld1  +++|          RESTPFP(PFP$ABORT);
00680  M01S00033.ssbld1  +++|          END  # EXIT #
00681  M01S00034.ssbld1  +++|
00682  M00S00647.ssbld   +++|#
00683  M00S00648.ssbld   +++|*      STORE M862 DEVICE ADDRESS AND SET EXISTENCE FLAG.
00684  M00S00649.ssbld   +++|#
00685  M00S00650.ssbld   +++|
00686  M00S00651.ssbld   +++|        UD$CUDA[1] = TMPI;
00687  M00S00652.ssbld   +++|        UD$EXIST[1] = TRUE;
Line S00653 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00688  M01S00653.ssbld1  ---|        SCOL=7;
Line S00035 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00689  M01S00035.ssbld1  +++|        SCOL = SCOL + 1;
00690  M00S00654.ssbld   +++|        DEVTYPE = "CH";
00691  M00S00655.ssbld   +++|        NUMCH = 2;
00692  M00S00656.ssbld   +++|        LOOPC = FALSE;
00693  M00S00657.ssbld   +++|        SLOWFOR J = 1 STEP 1 WHILE ( NOT LOOPC )
00694  M00S00658.ssbld   +++|        DO
00695  M00S00659.ssbld   +++|          BEGIN
00696  M00S00660.ssbld   +++|          NEXTPRM(DIRLINE,SCOL,DEVTYPE,  ##
00697  M00S00661.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR);
00698  M00S00662.ssbld   +++|
00699  M00S00663.ssbld   +++|#
00700  M00S00664.ssbld   +++|*     INSERT *CH* DATA INTO BUDT
00701  M00S00665.ssbld   +++|#
00702  M00S00666.ssbld   +++|
00703  M00S00667.ssbld   +++|          IF ( ORD EQ 0 ) AND ( J NQ 1 ) AND ( STAT NQ 2 )
00704  M00S00668.ssbld   +++|          THEN
00705  M00S00669.ssbld   +++|            BEGIN
00706  M00S00670.ssbld   +++|            BLMSG$LN[0] = " RDSUDT - CHANNEL 0 NOT FIRST CHANNEL.";
00707  M00S00671.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00708  M00S00672.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
00709  M00S00673.ssbld   +++|            END
00710  M00S00674.ssbld   +++|
00711  M00S00675.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 1 )
00712  M00S00676.ssbld   +++|          THEN
00713  M00S00677.ssbld   +++|            BEGIN
00714  M00S00678.ssbld   +++|            UD$CHANA[1] = ORD;
00715  M00S00679.ssbld   +++|            UD$CHEX0[1] = TRUE;
00716  M00S00680.ssbld   +++|            IF STAT EQ 1
00717  M00S00681.ssbld   +++|            THEN
00718  M00S00682.ssbld   +++|              BEGIN
00719  M00S00683.ssbld   +++|              UD$CHANA$O[1] = TRUE;
00720  M00S00684.ssbld   +++|              END
00721  M00S00685.ssbld   +++|
00722  M00S00686.ssbld   +++|            ELSE
00723  M00S00687.ssbld   +++|              BEGIN
00724  M00S00688.ssbld   +++|              UD$CHANA$O[1] = FALSE;
00725  M00S00689.ssbld   +++|              END
00726  M00S00690.ssbld   +++|
00727  M00S00691.ssbld   +++|            END
00728  M00S00692.ssbld   +++|
00729  M00S00693.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 1 )
00730  M00S00694.ssbld   +++|          THEN
00731  M00S00695.ssbld   +++|            BEGIN
00732  M00S00696.ssbld   +++|            UD$CHANA[1] = 0;
00733  M00S00697.ssbld   +++|            UD$CHANA$O[1] = FALSE;
00734  M00S00698.ssbld   +++|            END
00735  M00S00699.ssbld   +++|
00736  M00S00700.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 2 )
00737  M00S00701.ssbld   +++|          THEN
00738  M00S00702.ssbld   +++|            BEGIN
00739  M00S00703.ssbld   +++|            UD$CHANB[1] = ORD;
00740  M00S00704.ssbld   +++|            UD$CHEX1[1] = TRUE;
00741  M00S00705.ssbld   +++|            IF STAT EQ 1
00742  M00S00706.ssbld   +++|            THEN
00743  M00S00707.ssbld   +++|              BEGIN
00744  M00S00708.ssbld   +++|              UD$CHANB$O[1] = TRUE;
00745  M00S00709.ssbld   +++|              END
00746  M00S00710.ssbld   +++|
00747  M00S00711.ssbld   +++|            ELSE
00748  M00S00712.ssbld   +++|              BEGIN
00749  M00S00713.ssbld   +++|              UD$CHANB$O[1] = FALSE;
00750  M00S00714.ssbld   +++|              END
00751  M00S00715.ssbld   +++|
00752  M00S00716.ssbld   +++|            END
00753  M00S00717.ssbld   +++|
00754  M00S00718.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 2 )
00755  M00S00719.ssbld   +++|          THEN
00756  M00S00720.ssbld   +++|            BEGIN
00757  M00S00721.ssbld   +++|            UD$CHANB[1] = 0;
00758  M00S00722.ssbld   +++|            UD$CHANB$O[1] = FALSE;
00759  M00S00723.ssbld   +++|            END
00760  M00S00724.ssbld   +++|
00761  M00S00725.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 3 )
00762  M00S00726.ssbld   +++|          THEN
00763  M00S00727.ssbld   +++|            BEGIN
00764  M00S00728.ssbld   +++|            UD$CHANC[1] = ORD;
00765  M00S00729.ssbld   +++|            UD$CHEX2[1] = TRUE;
00766  M00S00730.ssbld   +++|            IF STAT EQ 1
00767  M00S00731.ssbld   +++|            THEN
00768  M00S00732.ssbld   +++|              BEGIN
00769  M00S00733.ssbld   +++|              UD$CHANC$O[1] = TRUE;
00770  M00S00734.ssbld   +++|              END
00771  M00S00735.ssbld   +++|
00772  M00S00736.ssbld   +++|            ELSE
00773  M00S00737.ssbld   +++|              BEGIN
00774  M00S00738.ssbld   +++|              UD$CHANC$O[1] = FALSE;
00775  M00S00739.ssbld   +++|              END
00776  M00S00740.ssbld   +++|
00777  M00S00741.ssbld   +++|            END
00778  M00S00742.ssbld   +++|
00779  M00S00743.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 3 )
00780  M00S00744.ssbld   +++|          THEN
00781  M00S00745.ssbld   +++|            BEGIN
00782  M00S00746.ssbld   +++|            UD$CHANC[1] = 0;
00783  M00S00747.ssbld   +++|            UD$CHANC$O[1] = FALSE;
00784  M00S00748.ssbld   +++|            END
00785  M00S00749.ssbld   +++|
00786  M00S00750.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 4 )
00787  M00S00751.ssbld   +++|          THEN
00788  M00S00752.ssbld   +++|            BEGIN
00789  M00S00753.ssbld   +++|            UD$CHAND[1] = ORD;
00790  M00S00754.ssbld   +++|            UD$CHEX3[1] = TRUE;
00791  M00S00755.ssbld   +++|            IF STAT EQ 1
00792  M00S00756.ssbld   +++|            THEN
00793  M00S00757.ssbld   +++|              BEGIN
00794  M00S00758.ssbld   +++|              UD$CHAND$O[1] = TRUE;
00795  M00S00759.ssbld   +++|              END
00796  M00S00760.ssbld   +++|
00797  M00S00761.ssbld   +++|            ELSE
00798  M00S00762.ssbld   +++|              BEGIN
00799  M00S00763.ssbld   +++|              UD$CHAND$O[1] = FALSE;
00800  M00S00764.ssbld   +++|              END
00801  M00S00765.ssbld   +++|
00802  M00S00766.ssbld   +++|            END
00803  M00S00767.ssbld   +++|
00804  M00S00768.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 4 )
00805  M00S00769.ssbld   +++|          THEN
00806  M00S00770.ssbld   +++|            BEGIN
00807  M00S00771.ssbld   +++|            UD$CHAND[1] = 0;
00808  M00S00772.ssbld   +++|            UD$CHAND$O[1] = FALSE;
00809  M00S00773.ssbld   +++|            END
00810  M00S00774.ssbld   +++|
00811  M00S00775.ssbld   +++|          IF TERMINATOR EQ PERIOD
00812  M00S00776.ssbld   +++|          THEN
00813  M00S00777.ssbld   +++|            BEGIN
00814  M00S00778.ssbld   +++|            LOOPC = TRUE;
00815  M00S00779.ssbld   +++|            TEST J;
00816  M00S00780.ssbld   +++|            END
00817  M00S00781.ssbld   +++|
00818  M00S00782.ssbld   +++|          IF J GR MAX$CH
00819  M00S00783.ssbld   +++|          THEN
00820  M00S00784.ssbld   +++|            BEGIN
00821  M00S00785.ssbld   +++|            BLMSG$LN[0] =            ##
00822  M00S00786.ssbld   +++|              "RDSUDT - MISSING CHANNELS ON *CU* COMMAND.";
00823  M00S00787.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00824  M00S00788.ssbld   +++|            RESTPFP(PFP$ABORT);
00825  M00S00789.ssbld   +++|            END
00826  M00S00790.ssbld   +++|
00827  M00S00791.ssbld   +++|          SCOL = NCOL;
00828  M00S00792.ssbld   +++|          TEST J;
00829  M00S00793.ssbld   +++|          END
00830  M00S00794.ssbld   +++|
00831  M00S00795.ssbld   +++|        TEST DIRNUM;
00832  M00S00796.ssbld   +++|
00833  M00S00797.ssbld   +++|CHANIF:
00834  M00S00798.ssbld   +++|        IF( ARGKEY2 NQ NM$KEY2[2] ) AND (ARGKEY3 NQ "   ")
00835  M00S00799.ssbld   +++|        THEN
00836  M00S00800.ssbld   +++|          BEGIN
00837  M00S00801.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
00838  M00S00802.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00839  M00S00803.ssbld   +++|          RESTPFP(PFP$ABORT);
00840  M00S00804.ssbld   +++|          END
00841  M00S00805.ssbld   +++|
00842  M00S00806.ssbld   +++|        ARGKEY3 = NM$KEY3[3];
00843  M00S00807.ssbld   +++|
00844  M00S00808.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
00845  M00S00809.ssbld   +++|        IF STAT NQ 0
00846  M00S00810.ssbld   +++|        THEN
00847  M00S00811.ssbld   +++|          BEGIN
00848  M00S00812.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
00849  M00S00813.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00850  M00S00814.ssbld   +++|          RESTPFP(PFP$ABORT);
00851  M00S00815.ssbld   +++|          END
00852  M00S00816.ssbld   +++|
00853  M00S00817.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 3
00854  M00S00818.ssbld   +++|        THEN
00855  M00S00819.ssbld   +++|          BEGIN
00856  M00S00820.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
00857  M00S00821.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00858  M00S00822.ssbld   +++|          RESTPFP(PFP$ABORT);
00859  M00S00823.ssbld   +++|          END
00860  M00S00824.ssbld   +++|
00861  M00S00825.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
00862  M00S00826.ssbld   +++|        THEN
00863  M00S00827.ssbld   +++|          BEGIN
00864  M00S00828.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *CIF* COMMAND MISSING = SIGN.";
00865  M00S00829.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00866  M00S00830.ssbld   +++|          RESTPFP(PFP$ABORT);
00867  M00S00831.ssbld   +++|          END
00868  M00S00832.ssbld   +++|
00869  M00S00833.ssbld   +++|        SCOL = 5;
00870  M00S00834.ssbld   +++|        DEVTYPE = NM$KEY3[4];
00871  M00S00835.ssbld   +++|        NUMCH = 3;
00872  M00S00836.ssbld   +++|        LOOPC = FALSE;
00873  M00S00837.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
00874  M00S00838.ssbld   +++|        DO
00875  M00S00839.ssbld   +++|          BEGIN
00876  M00S00840.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
00877  M00S00841.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
00878  M00S00842.ssbld   +++|          IF STAT NQ 2
00879  M00S00843.ssbld   +++|          THEN
00880  M00S00844.ssbld   +++|            BEGIN
00881  M00S00845.ssbld   +++|
00882  M00S00846.ssbld   +++|#
00883  M00S00847.ssbld   +++|*      CHECK FOR VALID CHANNELS AND CIF LASHUPS.
00884  M00S00848.ssbld   +++|#
00885  M00S00849.ssbld   +++|
00886  M00S00850.ssbld   +++|            IF ( ( TMPI EQ 0 )       ##
00887  M00S00851.ssbld   +++|              AND ( UD$CHANA[1] EQ 0 )  ##
00888  M00S00852.ssbld   +++|              AND ( UD$CHANB[1] NQ 0 ) )  ##
00889  M00S00853.ssbld   +++|              OR ( ( TMPI EQ 1 )     ##
00890  M00S00854.ssbld   +++|              AND ( UD$CHANB[1] EQ 0 ) )  ##
00891  M00S00855.ssbld   +++|              OR ( ( TMPI EQ 2 )     ##
00892  M00S00856.ssbld   +++|              AND ( UD$CHANC[1] EQ 0 ) )  ##
00893  M00S00857.ssbld   +++|              OR ( ( TMPI EQ 3 )     ##
00894  M00S00858.ssbld   +++|              AND ( UD$CHAND[1] EQ 0 ) )  ##
00895  M00S00859.ssbld   +++|            THEN
00896  M00S00860.ssbld   +++|              BEGIN
00897  M00S00861.ssbld   +++|              BLMSG$LN[0]= " RDSUDT - CH/CIF CONFLICT. ";
00898  M00S00862.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1)  ##
00899  M00S00863.ssbld   +++|                ;
00900  M00S00864.ssbld   +++|              RESTPFP ( PFP$ABORT );  # RESTORE USER-S PFP AND ABORT #
00901  M00S00865.ssbld   +++|              END
00902  M00S00866.ssbld   +++|
00903  M00S00867.ssbld   +++|            CIFI ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
00904  M00S00868.ssbld   +++|            END
00905  M00S00869.ssbld   +++|
00906  M00S00870.ssbld   +++|          IF STAT EQ 1
00907  M00S00871.ssbld   +++|          THEN
00908  M00S00872.ssbld   +++|            BEGIN
00909  M00S00873.ssbld   +++|            CIFI ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
00910  M00S00874.ssbld   +++|            END
00911  M00S00875.ssbld   +++|
00912  M00S00876.ssbld   +++|          IF TERMINATOR EQ PERIOD
00913  M00S00877.ssbld   +++|          THEN
00914  M00S00878.ssbld   +++|            BEGIN
00915  M00S00879.ssbld   +++|            LOOPC = TRUE;
00916  M00S00880.ssbld   +++|            TEST J;
00917  M00S00881.ssbld   +++|            END
00918  M00S00882.ssbld   +++|
00919  M00S00883.ssbld   +++|          IF J EQ MAX$DTI
00920  M00S00884.ssbld   +++|          THEN
00921  M00S00885.ssbld   +++|            BEGIN
00922  M00S00886.ssbld   +++|            LOOPC = TRUE;
00923  M00S00887.ssbld   +++|            TEST J;
00924  M00S00888.ssbld   +++|            END
00925  M00S00889.ssbld   +++|
00926  M00S00890.ssbld   +++|          SCOL = NCOL;
00927  M00S00891.ssbld   +++|          END
00928  M00S00892.ssbld   +++|
00929  M00S00893.ssbld   +++|        SCOL = NCOL;
00930  M00S00894.ssbld   +++|
00931  M00S00895.ssbld   +++|        DEVTYPE = NM$KEY3[5];
00932  M00S00896.ssbld   +++|        LOOPC = FALSE;
00933  M00S00897.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
00934  M00S00898.ssbld   +++|        DO
00935  M00S00899.ssbld   +++|          BEGIN
00936  M00S00900.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
00937  M00S00901.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
00938  M00S00902.ssbld   +++|          IF STAT NQ 2
00939  M00S00903.ssbld   +++|          THEN
00940  M00S00904.ssbld   +++|            BEGIN
00941  M00S00905.ssbld   +++|
00942  M00S00906.ssbld   +++|#
00943  M00S00907.ssbld   +++|*      CHECK FOR VALID CHANNELS AND CIF LASHUPS.
00944  M00S00908.ssbld   +++|#
00945  M00S00909.ssbld   +++|
00946  M00S00910.ssbld   +++|            IF ( ( TMPI EQ 0 )       ##
00947  M00S00911.ssbld   +++|              AND ( UD$CHANA[1] EQ 0 )  ##
00948  M00S00912.ssbld   +++|              AND ( UD$CHANB[1] NQ 0 ) )  ##
00949  M00S00913.ssbld   +++|              OR ( ( TMPI EQ 1 )     ##
00950  M00S00914.ssbld   +++|              AND ( UD$CHANB[1] EQ 0 ) )  ##
00951  M00S00915.ssbld   +++|              OR ( ( TMPI EQ 2 )     ##
00952  M00S00916.ssbld   +++|              AND ( UD$CHANC[1] EQ 0 ) )  ##
00953  M00S00917.ssbld   +++|              OR ( ( TMPI EQ 3 )     ##
00954  M00S00918.ssbld   +++|              AND ( UD$CHAND[1] EQ 0 ) )  ##
00955  M00S00919.ssbld   +++|            THEN
00956  M00S00920.ssbld   +++|              BEGIN
00957  M00S00921.ssbld   +++|              BLMSG$LN[0]= " RDSUDT - CH/CIF CONFLICT. ";
00958  M00S00922.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1);
00959  M00S00923.ssbld   +++|              RESTPFP ( PFP$ABORT );  # RESTORE USER-S PFP AND ABORT #
00960  M00S00924.ssbld   +++|              END
00961  M00S00925.ssbld   +++|
00962  M00S00926.ssbld   +++|            CIFO ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
00963  M00S00927.ssbld   +++|            END
00964  M00S00928.ssbld   +++|
00965  M00S00929.ssbld   +++|          IF STAT EQ 1
00966  M00S00930.ssbld   +++|          THEN
00967  M00S00931.ssbld   +++|            BEGIN
00968  M00S00932.ssbld   +++|            CIFO ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
00969  M00S00933.ssbld   +++|            END
00970  M00S00934.ssbld   +++|
00971  M00S00935.ssbld   +++|          IF TERMINATOR EQ PERIOD
00972  M00S00936.ssbld   +++|          THEN
00973  M00S00937.ssbld   +++|            BEGIN
00974  M00S00938.ssbld   +++|            LOOPC = TRUE;
00975  M00S00939.ssbld   +++|            TEST J;
00976  M00S00940.ssbld   +++|            END
00977  M00S00941.ssbld   +++|
00978  M00S00942.ssbld   +++|          IF J EQ MAX$DTO
00979  M00S00943.ssbld   +++|          THEN
00980  M00S00944.ssbld   +++|            BEGIN
00981  M00S00945.ssbld   +++|            LOOPC = TRUE;
00982  M00S00946.ssbld   +++|            TEST J;
00983  M00S00947.ssbld   +++|            END
00984  M00S00948.ssbld   +++|
00985  M00S00949.ssbld   +++|          SCOL = NCOL;
00986  M00S00950.ssbld   +++|          END
00987  M00S00951.ssbld   +++|
00988  M00S00952.ssbld   +++|        TEST DIRNUM;
00989  M00S00953.ssbld   +++|
00990  M00S00954.ssbld   +++|DEVICETI:
00991  M00S00955.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[3] )
00992  M00S00956.ssbld   +++|          THEN
00993  M00S00957.ssbld   +++|          BEGIN
00994  M00S00958.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
00995  M00S00959.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00996  M00S00960.ssbld   +++|          RESTPFP(PFP$ABORT);
00997  M00S00961.ssbld   +++|          END
00998  M00S00962.ssbld   +++|
00999  M00S00963.ssbld   +++|        ARGKEY3 = NM$KEY3[4];
01000  M00S00964.ssbld   +++|
01001  M00S00965.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01002  M00S00966.ssbld   +++|        IF STAT NQ 0
01003  M00S00967.ssbld   +++|        THEN
01004  M00S00968.ssbld   +++|          BEGIN
01005  M00S00969.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01006  M00S00970.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01007  M00S00971.ssbld   +++|          RESTPFP(PFP$ABORT);
01008  M00S00972.ssbld   +++|          END
01009  M00S00973.ssbld   +++|
01010  M00S00974.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01011  M00S00975.ssbld   +++|        THEN
01012  M00S00976.ssbld   +++|          BEGIN
01013  M00S00977.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01014  M00S00978.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01015  M00S00979.ssbld   +++|          RESTPFP(PFP$ABORT);
01016  M00S00980.ssbld   +++|          END
01017  M00S00981.ssbld   +++|
01018  M00S00982.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01019  M00S00983.ssbld   +++|        THEN
01020  M00S00984.ssbld   +++|          BEGIN
01021  M00S00985.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DTI* COMMAND MISSING = SIGN.";
01022  M00S00986.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01023  M00S00987.ssbld   +++|          RESTPFP(PFP$ABORT);
01024  M00S00988.ssbld   +++|          END
01025  M00S00989.ssbld   +++|
01026  M00S00990.ssbld   +++|        SCOL = 5;
01027  M00S00991.ssbld   +++|        DEVTYPE = NM$KEY3[6];
01028  M00S00992.ssbld   +++|        NUMCH = 3;
01029  M00S00993.ssbld   +++|        LOOPC = FALSE;
01030  M00S00994.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01031  M00S00995.ssbld   +++|        DO
01032  M00S00996.ssbld   +++|          BEGIN
01033  M00S00997.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01034  M00S00998.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01035  M00S00999.ssbld   +++|          IF STAT NQ 2
01036  M00S01000.ssbld   +++|          THEN
01037  M00S01001.ssbld   +++|            BEGIN
01038  M00S01002.ssbld   +++|            DTI01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01039  M00S01003.ssbld   +++|            END
01040  M00S01004.ssbld   +++|
01041  M00S01005.ssbld   +++|          IF STAT EQ 1
01042  M00S01006.ssbld   +++|          THEN
01043  M00S01007.ssbld   +++|            BEGIN
01044  M00S01008.ssbld   +++|            DTI01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01045  M00S01009.ssbld   +++|            END
01046  M00S01010.ssbld   +++|
01047  M00S01011.ssbld   +++|          IF TERMINATOR EQ PERIOD
01048  M00S01012.ssbld   +++|          THEN
01049  M00S01013.ssbld   +++|            BEGIN
01050  M00S01014.ssbld   +++|            LOOPC = TRUE;
01051  M00S01015.ssbld   +++|            TEST J;
01052  M00S01016.ssbld   +++|            END
01053  M00S01017.ssbld   +++|
01054  M00S01018.ssbld   +++|          IF J GR MAX$DIF
01055  M00S01019.ssbld   +++|          THEN
01056  M00S01020.ssbld   +++|            BEGIN
01057  M00S01021.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01058  M00S01022.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01059  M00S01023.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01060  M00S01024.ssbld   +++|            END
01061  M00S01025.ssbld   +++|
01062  M00S01026.ssbld   +++|          SCOL = NCOL;
01063  M00S01027.ssbld   +++|          END
01064  M00S01028.ssbld   +++|
01065  M00S01029.ssbld   +++|        TEST DIRNUM;
01066  M00S01030.ssbld   +++|DEVICETO:
01067  M00S01031.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[4] )
01068  M00S01032.ssbld   +++|          THEN
01069  M00S01033.ssbld   +++|          BEGIN
01070  M00S01034.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01071  M00S01035.ssbld   +++|          MESSAGE( BLMSG[0],SYSUDF1);
01072  M00S01036.ssbld   +++|          RESTPFP(PFP$ABORT);
01073  M00S01037.ssbld   +++|          END
01074  M00S01038.ssbld   +++|
01075  M00S01039.ssbld   +++|        ARGKEY3 = NM$KEY3[5];
01076  M00S01040.ssbld   +++|
01077  M00S01041.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01078  M00S01042.ssbld   +++|        IF STAT NQ 0
01079  M00S01043.ssbld   +++|        THEN
01080  M00S01044.ssbld   +++|          BEGIN
01081  M00S01045.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01082  M00S01046.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01083  M00S01047.ssbld   +++|          RESTPFP(PFP$ABORT);
01084  M00S01048.ssbld   +++|          END
01085  M00S01049.ssbld   +++|
01086  M00S01050.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01087  M00S01051.ssbld   +++|        THEN
01088  M00S01052.ssbld   +++|          BEGIN
01089  M00S01053.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01090  M00S01054.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01091  M00S01055.ssbld   +++|          RESTPFP(PFP$ABORT);
01092  M00S01056.ssbld   +++|          END
01093  M00S01057.ssbld   +++|
01094  M00S01058.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01095  M00S01059.ssbld   +++|        THEN
01096  M00S01060.ssbld   +++|          BEGIN
01097  M00S01061.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DTO* COMMAND MISSING = SIGN.";
01098  M00S01062.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01099  M00S01063.ssbld   +++|          RESTPFP(PFP$ABORT);
01100  M00S01064.ssbld   +++|          END
01101  M00S01065.ssbld   +++|
01102  M00S01066.ssbld   +++|        SCOL = 5;
01103  M00S01067.ssbld   +++|        DEVTYPE = NM$KEY3[6];
01104  M00S01068.ssbld   +++|        NUMCH = 3;
01105  M00S01069.ssbld   +++|        LOOPC = FALSE;
01106  M00S01070.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01107  M00S01071.ssbld   +++|        DO
01108  M00S01072.ssbld   +++|          BEGIN
01109  M00S01073.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01110  M00S01074.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01111  M00S01075.ssbld   +++|          IF STAT NQ 2
01112  M00S01076.ssbld   +++|          THEN
01113  M00S01077.ssbld   +++|            BEGIN
01114  M00S01078.ssbld   +++|            DTO01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01115  M00S01079.ssbld   +++|            END
01116  M00S01080.ssbld   +++|
01117  M00S01081.ssbld   +++|          IF STAT EQ 1
01118  M00S01082.ssbld   +++|          THEN
01119  M00S01083.ssbld   +++|            BEGIN
01120  M00S01084.ssbld   +++|            DTO01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01121  M00S01085.ssbld   +++|            END
01122  M00S01086.ssbld   +++|
01123  M00S01087.ssbld   +++|          IF TERMINATOR EQ PERIOD
01124  M00S01088.ssbld   +++|          THEN
01125  M00S01089.ssbld   +++|            BEGIN
01126  M00S01090.ssbld   +++|            LOOPC = TRUE;
01127  M00S01091.ssbld   +++|            TEST J;
01128  M00S01092.ssbld   +++|            END
01129  M00S01093.ssbld   +++|
01130  M00S01094.ssbld   +++|          IF J GR MAX$DIF
01131  M00S01095.ssbld   +++|          THEN
01132  M00S01096.ssbld   +++|            BEGIN
01133  M00S01097.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01134  M00S01098.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01135  M00S01099.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01136  M00S01100.ssbld   +++|            END
01137  M00S01101.ssbld   +++|
01138  M00S01102.ssbld   +++|          SCOL = NCOL;
01139  M00S01103.ssbld   +++|          END
01140  M00S01104.ssbld   +++|
01141  M00S01105.ssbld   +++|        TEST DIRNUM;
01142  M00S01106.ssbld   +++|DEVICEIF:
01143  M00S01107.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[5] )
01144  M00S01108.ssbld   +++|          THEN
01145  M00S01109.ssbld   +++|          BEGIN
01146  M00S01110.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01147  M00S01111.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01148  M00S01112.ssbld   +++|          RESTPFP(PFP$ABORT);
01149  M00S01113.ssbld   +++|          END
01150  M00S01114.ssbld   +++|
01151  M00S01115.ssbld   +++|        ARGKEY3 = NM$KEY3[6];
01152  M00S01116.ssbld   +++|
01153  M00S01117.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01154  M00S01118.ssbld   +++|        IF STAT NQ 0
01155  M00S01119.ssbld   +++|        THEN
01156  M00S01120.ssbld   +++|          BEGIN
01157  M00S01121.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01158  M00S01122.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01159  M00S01123.ssbld   +++|          RESTPFP(PFP$ABORT);
01160  M00S01124.ssbld   +++|          END
01161  M00S01125.ssbld   +++|
01162  M00S01126.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01163  M00S01127.ssbld   +++|        THEN
01164  M00S01128.ssbld   +++|          BEGIN
01165  M00S01129.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01166  M00S01130.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01167  M00S01131.ssbld   +++|          RESTPFP(PFP$ABORT);
01168  M00S01132.ssbld   +++|          END
01169  M00S01133.ssbld   +++|
01170  M00S01134.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01171  M00S01135.ssbld   +++|        THEN
01172  M00S01136.ssbld   +++|          BEGIN
01173  M00S01137.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DIF* COMMAND MISSING = SIGN.";
01174  M00S01138.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01175  M00S01139.ssbld   +++|          RESTPFP(PFP$ABORT);
01176  M00S01140.ssbld   +++|          END
01177  M00S01141.ssbld   +++|
01178  M00S01142.ssbld   +++|        SCOL = 5;
01179  M00S01143.ssbld   +++|        DEVTYPE = NM$KEY3[7];
01180  M00S01144.ssbld   +++|        NUMCH = 3;
01181  M00S01145.ssbld   +++|        LOOPC = FALSE;
01182  M00S01146.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01183  M00S01147.ssbld   +++|        DO
01184  M00S01148.ssbld   +++|          BEGIN
01185  M00S01149.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01186  M00S01150.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01187  M00S01151.ssbld   +++|          IF STAT NQ 2
01188  M00S01152.ssbld   +++|          THEN
01189  M00S01153.ssbld   +++|            BEGIN
01190  M00S01154.ssbld   +++|            DIF01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01191  M00S01155.ssbld   +++|            END
01192  M00S01156.ssbld   +++|
01193  M00S01157.ssbld   +++|          IF STAT EQ 1
01194  M00S01158.ssbld   +++|          THEN
01195  M00S01159.ssbld   +++|            BEGIN
01196  M00S01160.ssbld   +++|            DIF01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01197  M00S01161.ssbld   +++|            END
01198  M00S01162.ssbld   +++|
01199  M00S01163.ssbld   +++|          IF TERMINATOR EQ PERIOD
01200  M00S01164.ssbld   +++|          THEN
01201  M00S01165.ssbld   +++|            BEGIN
01202  M00S01166.ssbld   +++|            LOOPC = TRUE;
01203  M00S01167.ssbld   +++|            TEST J;
01204  M00S01168.ssbld   +++|            END
01205  M00S01169.ssbld   +++|
01206  M00S01170.ssbld   +++|          IF J GR MAX$DRC
01207  M00S01171.ssbld   +++|          THEN
01208  M00S01172.ssbld   +++|            BEGIN
01209  M00S01173.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01210  M00S01174.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01211  M00S01175.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01212  M00S01176.ssbld   +++|            END
01213  M00S01177.ssbld   +++|
01214  M00S01178.ssbld   +++|          SCOL = NCOL;
01215  M00S01179.ssbld   +++|          END
01216  M00S01180.ssbld   +++|
01217  M00S01181.ssbld   +++|        TEST DIRNUM;
01218  M00S01182.ssbld   +++|DATARC:
01219  M00S01183.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[6] )
01220  M00S01184.ssbld   +++|          THEN
01221  M00S01185.ssbld   +++|          BEGIN
01222  M00S01186.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01223  M00S01187.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01224  M00S01188.ssbld   +++|          RESTPFP(PFP$ABORT);
01225  M00S01189.ssbld   +++|          END
01226  M00S01190.ssbld   +++|
01227  M00S01191.ssbld   +++|        ARGKEY3 = NM$KEY3[7];
01228  M00S01192.ssbld   +++|
01229  M00S01193.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01230  M00S01194.ssbld   +++|        IF STAT NQ 0
01231  M00S01195.ssbld   +++|        THEN
01232  M00S01196.ssbld   +++|          BEGIN
01233  M00S01197.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01234  M00S01198.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01235  M00S01199.ssbld   +++|          RESTPFP(PFP$ABORT);
01236  M00S01200.ssbld   +++|          END
01237  M00S01201.ssbld   +++|
Line S01202 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01238  M01S01202.ssbld1  ---|        IF TMPI LS 0 OR TMPI GR 1
Line S00036 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01239  M01S00036.ssbld1  +++|        IF TMPI LS 0
01240  M01S00037.ssbld1  +++|          OR TMPI GR MAX$DRC
01241  M00S01203.ssbld   +++|        THEN
01242  M00S01204.ssbld   +++|          BEGIN
01243  M00S01205.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01244  M00S01206.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01245  M00S01207.ssbld   +++|          RESTPFP(PFP$ABORT);
01246  M00S01208.ssbld   +++|          END
01247  M00S01209.ssbld   +++|
01248  M00S01210.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01249  M00S01211.ssbld   +++|        THEN
01250  M00S01212.ssbld   +++|          BEGIN
01251  M00S01213.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DRC* ENTRY MISSING = SIGN.";
01252  M00S01214.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01253  M00S01215.ssbld   +++|          RESTPFP(PFP$ABORT);
01254  M00S01216.ssbld   +++|          END
01255  M00S01217.ssbld   +++|
01256  M00S01218.ssbld   +++|        SCOL = 5;
01257  M00S01219.ssbld   +++|        DEVTYPE = NM$KEY3[8];
01258  M00S01220.ssbld   +++|        NUMCH = 3;
01259  M00S01221.ssbld   +++|        LOOPC = FALSE;
01260  M00S01222.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01261  M00S01223.ssbld   +++|        DO
01262  M00S01224.ssbld   +++|          BEGIN
01263  M00S01225.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01264  M00S01226.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01265  M00S01227.ssbld   +++|          IF STAT NQ 2
01266  M00S01228.ssbld   +++|          THEN
01267  M00S01229.ssbld   +++|            BEGIN
01268  M01S00038.ssbld1  +++|            IF ((TMPI LQ 1) AND (ORD GR MAX$DRD))
01269  M01S00039.ssbld1  +++|                                     # DRCS 0/1 ONLY GO TO DRDS 0-7 #
01270  M01S00040.ssbld1  +++|              OR ((TMPI GQ 2) AND (ORD LQ MAX$DRD))
01271  M01S00041.ssbld1  +++|                                     # DRC 2/3 ONLY GO TO DRDS 8-15 #
01272  M01S00042.ssbld1  +++|            THEN                     # DRC-DRD PATHS NOT CORRECT #
01273  M01S00043.ssbld1  +++|              BEGIN
01274  M01S00044.ssbld1  +++|              BLMSG$LN[0] = MSG$BADADR;
01275  M01S00045.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01276  M01S00046.ssbld1  +++|              RESTPFP(PFP$ABORT);
01277  M01S00047.ssbld1  +++|              END
01278  M01S00048.ssbld1  +++|
01279  M00S01230.ssbld   +++|            IF TMPI EQ 0
01280  M00S01231.ssbld   +++|            THEN
01281  M00S01232.ssbld   +++|              BEGIN
01282  M00S01233.ssbld   +++|              DRC00 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01283  M00S01234.ssbld   +++|              END
01284  M00S01235.ssbld   +++|
Line S01236 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01285  M01S01236.ssbld1  ---|            ELSE
Line S00049 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01286  M01S00049.ssbld1  +++|            IF TMPI EQ 1
01287  M01S00050.ssbld1  +++|            THEN
01288  M00S01237.ssbld   +++|              BEGIN
01289  M00S01238.ssbld   +++|              DRC01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01290  M00S01239.ssbld   +++|              END
01291  M00S01240.ssbld   +++|
01292  M01S00051.ssbld1  +++|            IF TMPI EQ 2
01293  M01S00052.ssbld1  +++|            THEN
01294  M01S00053.ssbld1  +++|              BEGIN
01295  M01S00054.ssbld1  +++|              DRC02  ( 1, TMPI, ORD, PATH$DF"U$EXISTS", 1);
01296  M01S00055.ssbld1  +++|              END
01297  M01S00056.ssbld1  +++|
01298  M01S00057.ssbld1  +++|            IF TMPI EQ 3
01299  M01S00058.ssbld1  +++|            THEN
01300  M01S00059.ssbld1  +++|              BEGIN
01301  M01S00060.ssbld1  +++|              DRC03 ( 1, TMPI, ORD, PATH$DF"U$EXISTS", 1);
01302  M01S00061.ssbld1  +++|              END
01303  M01S00062.ssbld1  +++|
01304  M00S01241.ssbld   +++|            END
01305  M00S01242.ssbld   +++|
01306  M00S01243.ssbld   +++|          IF STAT EQ 1
01307  M00S01244.ssbld   +++|          THEN
01308  M00S01245.ssbld   +++|            BEGIN
01309  M00S01246.ssbld   +++|            IF TMPI EQ 0
01310  M00S01247.ssbld   +++|            THEN
01311  M00S01248.ssbld   +++|              BEGIN
01312  M00S01249.ssbld   +++|              DRC00 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01313  M00S01250.ssbld   +++|              END
01314  M00S01251.ssbld   +++|
Line S01252 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01315  M01S01252.ssbld1  ---|            ELSE
Line S00063 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01316  M01S00063.ssbld1  +++|          IF TMPI EQ 1
01317  M01S00064.ssbld1  +++|          THEN
01318  M00S01253.ssbld   +++|              BEGIN
01319  M00S01254.ssbld   +++|              DRC01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01320  M00S01255.ssbld   +++|              END
01321  M00S01256.ssbld   +++|
01322  M01S00065.ssbld1  +++|          IF TMPI EQ 2
01323  M01S00066.ssbld1  +++|          THEN
01324  M01S00067.ssbld1  +++|            BEGIN
01325  M01S00068.ssbld1  +++|            DRC02 ( 1, TMPI, ORD, PATH$DF"U$ON", 1 );
01326  M01S00069.ssbld1  +++|            END
01327  M01S00070.ssbld1  +++|
01328  M01S00071.ssbld1  +++|          IF TMPI EQ 3
01329  M01S00072.ssbld1  +++|          THEN
01330  M01S00073.ssbld1  +++|            BEGIN
01331  M01S00074.ssbld1  +++|            DRC03 ( 1, TMPI, ORD, PATH$DF"U$ON", 1 );
01332  M01S00075.ssbld1  +++|             END
01333  M01S00076.ssbld1  +++|
01334  M00S01257.ssbld   +++|            END
01335  M00S01258.ssbld   +++|
01336  M00S01259.ssbld   +++|          IF J GR MAX$DRD
01337  M00S01260.ssbld   +++|          THEN
01338  M00S01261.ssbld   +++|            BEGIN
01339  M00S01262.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01340  M00S01263.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01341  M00S01264.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01342  M00S01265.ssbld   +++|            END
01343  M00S01266.ssbld   +++|
01344  M00S01267.ssbld   +++|          IF TERMINATOR EQ PERIOD
01345  M00S01268.ssbld   +++|          THEN
01346  M00S01269.ssbld   +++|            BEGIN
01347  M00S01270.ssbld   +++|            LOOPC = TRUE;
01348  M00S01271.ssbld   +++|            TEST J;
01349  M00S01272.ssbld   +++|            END
01350  M00S01273.ssbld   +++|
01351  M00S01274.ssbld   +++|          SCOL = NCOL;
01352  M00S01275.ssbld   +++|          END
01353  M00S01276.ssbld   +++|
01354  M00S01277.ssbld   +++|        TEST DIRNUM;
01355  M00S01278.ssbld   +++|
01356  M00S01279.ssbld   +++|ACCIF:
01357  M00S01280.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[7] )
01358  M00S01281.ssbld   +++|          THEN
01359  M00S01282.ssbld   +++|          BEGIN
01360  M00S01283.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01361  M00S01284.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01362  M00S01285.ssbld   +++|          RESTPFP(PFP$ABORT);
01363  M00S01286.ssbld   +++|          END
01364  M00S01287.ssbld   +++|
01365  M00S01288.ssbld   +++|        ARGKEY3 = NM$KEY3[9];
01366  M00S01289.ssbld   +++|
01367  M00S01290.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01368  M00S01291.ssbld   +++|        IF STAT NQ 0
01369  M00S01292.ssbld   +++|        THEN
01370  M00S01293.ssbld   +++|          BEGIN
01371  M00S01294.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01372  M00S01295.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01373  M00S01296.ssbld   +++|          RESTPFP(PFP$ABORT);
01374  M00S01297.ssbld   +++|          END
01375  M00S01298.ssbld   +++|
01376  M00S01299.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01377  M00S01300.ssbld   +++|        THEN
01378  M00S01301.ssbld   +++|          BEGIN
01379  M00S01302.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01380  M00S01303.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01381  M00S01304.ssbld   +++|          RESTPFP(PFP$ABORT);
01382  M00S01305.ssbld   +++|          END
01383  M00S01306.ssbld   +++|
01384  M00S01307.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01385  M00S01308.ssbld   +++|        THEN
01386  M00S01309.ssbld   +++|          BEGIN
01387  M00S01310.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *AIF* ENTRY MISSING = SIGN.";
01388  M00S01311.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01389  M00S01312.ssbld   +++|          RESTPFP(PFP$ABORT);
01390  M00S01313.ssbld   +++|          END
01391  M00S01314.ssbld   +++|
01392  M00S01315.ssbld   +++|        SCOL = 5;
01393  M00S01316.ssbld   +++|        DEVTYPE = NM$KEY2[10];
01394  M00S01317.ssbld   +++|        NUMCH = 2;
01395  M00S01318.ssbld   +++|        LOOPC = FALSE;
01396  M00S01319.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01397  M00S01320.ssbld   +++|        DO
01398  M00S01321.ssbld   +++|          BEGIN
01399  M00S01322.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01400  M00S01323.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
Line S01324 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01401  M01S01324.ssbld1  ---|          IF STAT NQ 2
01402  M01S01325.ssbld1  ---|          THEN
01403  M01S01326.ssbld1  ---|            BEGIN
01404  M01S01327.ssbld1  ---|            AIF01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01405  M01S01328.ssbld1  ---|            END
01406  M01S01329.ssbld1  ---|
01407  M01S01330.ssbld1  ---|          IF STAT EQ 1
01408  M01S01331.ssbld1  ---|          THEN
01409  M01S01332.ssbld1  ---|            BEGIN
01410  M01S01333.ssbld1  ---|            AIF01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01411  M01S01334.ssbld1  ---|            END
01412  M01S01335.ssbld1  ---|
Line S00077 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01413  M01S00077.ssbld1  +++|          IF STAT NQ 2
01414  M01S00078.ssbld1  +++|          THEN                       # AIF PATH EXISTS #
01415  M01S00079.ssbld1  +++|            BEGIN  # EXISTS #
01416  M01S00080.ssbld1  +++|            IF TMPI EQ 0
01417  M01S00081.ssbld1  +++|            THEN                     # AIF0 PATH #
01418  M01S00082.ssbld1  +++|              BEGIN  # AIF0 #
01419  M01S00083.ssbld1  +++|              AIF0(1,ORD,PATH$DF"U$EXISTS",ON);
01420  M01S00084.ssbld1  +++|              END  # AIF0 #
01421  M01S00085.ssbld1  +++|
01422  M01S00086.ssbld1  +++|            ELSE                     # AIF1 PATH #
01423  M01S00087.ssbld1  +++|              BEGIN  # AIF1 #
01424  M01S00088.ssbld1  +++|              AIF1(1,ORD,PATH$DF"U$EXISTS",ON);
01425  M01S00089.ssbld1  +++|              END  # AIF1 #
01426  M01S00090.ssbld1  +++|
01427  M01S00091.ssbld1  +++|            END  # EXISTS #
01428  M01S00092.ssbld1  +++|
01429  M01S00093.ssbld1  +++|          IF STAT EQ 1
01430  M01S00094.ssbld1  +++|          THEN                       # AIF PATH TURNED ON #
01431  M01S00095.ssbld1  +++|            BEGIN  # ON #
01432  M01S00096.ssbld1  +++|            IF TMPI EQ 0
01433  M01S00097.ssbld1  +++|            THEN                     # AIF0 PATH #
01434  M01S00098.ssbld1  +++|              BEGIN  # AIF0 #
01435  M01S00099.ssbld1  +++|              AIF0(1,ORD,PATH$DF"U$ON",ON);
01436  M01S00100.ssbld1  +++|              END  # AIF0 #
01437  M01S00101.ssbld1  +++|
01438  M01S00102.ssbld1  +++|            ELSE                     # AIF1 PATH #
01439  M01S00103.ssbld1  +++|              BEGIN  # AIF1 #
01440  M01S00104.ssbld1  +++|              AIF1(1,ORD,PATH$DF"U$ON",ON);
01441  M01S00105.ssbld1  +++|              END  # AIF1 #
01442  M01S00106.ssbld1  +++|
01443  M01S00107.ssbld1  +++|            END  # ON #
01444  M01S00108.ssbld1  +++|
01445  M01S00109.ssbld1  +++|          IF (UD$AIF003[1] NQ 0 AND UD$AIF047[1] NQ 0)  ##
01446  M01S00110.ssbld1  +++|            OR (UD$AIF103[1] NQ 0 AND UD$AIF147[1] NQ 0)
01447  M01S00111.ssbld1  +++|          THEN                       # AIF GOES TO BOTH SETS OF SM-S #
01448  M01S00112.ssbld1  +++|            BEGIN  # EXIT #
01449  M01S00113.ssbld1  +++|            BLMSG$LN[0] = MSG$INVAIF;
01450  M01S00114.ssbld1  +++|            MESSAGE(BLMSG[0],SYSUDF1);
01451  M01S00115.ssbld1  +++|            RESTPFP(PFP$ABORT);
01452  M01S00116.ssbld1  +++|            END  # EXIT #
01453  M01S00117.ssbld1  +++|
01454  M00S01336.ssbld   +++|          IF TERMINATOR EQ PERIOD
01455  M00S01337.ssbld   +++|          THEN
01456  M00S01338.ssbld   +++|            BEGIN
01457  M00S01339.ssbld   +++|            LOOPC = TRUE;
01458  M00S01340.ssbld   +++|            TEST J;
01459  M00S01341.ssbld   +++|            END
01460  M00S01342.ssbld   +++|
01461  M00S01343.ssbld   +++|          IF J GR MAX$AC
01462  M00S01344.ssbld   +++|          THEN
01463  M00S01345.ssbld   +++|            BEGIN
01464  M00S01346.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01465  M00S01347.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01466  M00S01348.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01467  M00S01349.ssbld   +++|            END
01468  M00S01350.ssbld   +++|
01469  M00S01351.ssbld   +++|          SCOL = NCOL;
01470  M00S01352.ssbld   +++|          END
01471  M00S01353.ssbld   +++|
01472  M00S01354.ssbld   +++|        TEST DIRNUM;
01473  M00S01355.ssbld   +++|
01474  M00S01356.ssbld   +++|M861SM:
01475  M00S01357.ssbld   +++|        SMNUM = SMNUM + 1;
01476  M00S01358.ssbld   +++|        P<UDT$SMA> = LOC(BL$UDT$M861[SMNUM]);
01477  M00S01359.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[9] )
01478  M00S01360.ssbld   +++|          THEN
01479  M00S01361.ssbld   +++|          BEGIN
01480  M00S01362.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01481  M00S01363.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01482  M00S01364.ssbld   +++|          RESTPFP(PFP$ABORT);
01483  M00S01365.ssbld   +++|          END
01484  M00S01366.ssbld   +++|
01485  M00S01367.ssbld   +++|        ARGKEY2 = NM$KEY2[11];
01486  M00S01368.ssbld   +++|
01487  M00S01369.ssbld   +++|        IF ( C<2,1>DIRLINE LS "A" ) OR ( C<2,1>DIRLINE GR "H" )
01488  M00S01370.ssbld   +++|        THEN
01489  M00S01371.ssbld   +++|          BEGIN
01490  M00S01372.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01491  M00S01373.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01492  M00S01374.ssbld   +++|          RESTPFP(PFP$ABORT);
01493  M00S01375.ssbld   +++|          END
01494  M00S01376.ssbld   +++|
01495  M00S01377.ssbld   +++|        SM$ID[1] = C<2,1>DIRLINE;
01496  M00S01378.ssbld   +++|        SM$EXIST[1] = TRUE;
01497  M01S00118.ssbld1  +++|
01498  M01S00119.ssbld1  +++|#
01499  M01S00120.ssbld1  +++|*     INITIALIZE DRD STAGE/DESTAGE DEFAULTS, SUBJECT TO LATER CHANGE
01500  M01S00121.ssbld1  +++|#
01501  M01S00122.ssbld1  +++|
01502  M01S00123.ssbld1  +++|        SM$STNUM[1] = 2;
01503  M01S00124.ssbld1  +++|        SM$DSNUM[1] = 1;
01504  M00S01379.ssbld   +++|        IF C<3,1>DIRLINE NQ "="
01505  M00S01380.ssbld   +++|        THEN
01506  M00S01381.ssbld   +++|          BEGIN
01507  M00S01382.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *SM* ENTRY MISSING = SIGN.";
01508  M00S01383.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01509  M00S01384.ssbld   +++|          RESTPFP(PFP$ABORT);
01510  M00S01385.ssbld   +++|          END
01511  M00S01386.ssbld   +++|
01512  M00S01387.ssbld   +++|        IF ( C<4,2>DIRLINE NQ "ON" ) AND ( C<4,3>DIRLINE NQ "OFF" )
01513  M00S01388.ssbld   +++|          THEN
01514  M00S01389.ssbld   +++|          BEGIN
01515  M00S01390.ssbld   +++|          BLMSG$LN[0] = MSG$BDST;
01516  M00S01391.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01517  M00S01392.ssbld   +++|          RESTPFP(PFP$ABORT);
01518  M00S01393.ssbld   +++|          END
01519  M00S01394.ssbld   +++|
01520  M00S01395.ssbld   +++|        IF C<4,2>DIRLINE EQ "ON"
01521  M00S01396.ssbld   +++|        THEN
01522  M00S01397.ssbld   +++|          BEGIN
01523  M00S01398.ssbld   +++|          SCOL = 6;
01524  M00S01399.ssbld   +++|          SM$ON[1] = TRUE;
01525  M00S01400.ssbld   +++|          END
01526  M00S01401.ssbld   +++|
01527  M00S01402.ssbld   +++|        ELSE
01528  M00S01403.ssbld   +++|          BEGIN
01529  M00S01404.ssbld   +++|          SCOL = 7;
01530  M00S01405.ssbld   +++|          END
01531  M00S01406.ssbld   +++|
01532  M00S01407.ssbld   +++|        IF C<SCOL,1>DIRLINE NQ COMMA
01533  M00S01408.ssbld   +++|        THEN
01534  M00S01409.ssbld   +++|          BEGIN
01535  M00S01410.ssbld   +++|          BLMSG$LN[0] = "RDSUDT - *SM* COMMAND MISSING COMMA.";
01536  M00S01411.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01537  M00S01412.ssbld   +++|          RESTPFP(PFP$ABORT);
01538  M00S01413.ssbld   +++|          END
01539  M00S01414.ssbld   +++|
01540  M00S01415.ssbld   +++|        SCOL = SCOL +1;
01541  M00S01416.ssbld   +++|        IF C<SCOL,2>DIRLINE NQ NM$KEY2[10]
01542  M00S01417.ssbld   +++|        THEN
01543  M00S01418.ssbld   +++|          BEGIN
01544  M00S01419.ssbld   +++|          BLMSG$LN[0] = MSG$BADST;
01545  M00S01420.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01546  M00S01421.ssbld   +++|          RESTPFP(PFP$ABORT);
01547  M00S01422.ssbld   +++|          END
01548  M00S01423.ssbld   +++|
01549  M00S01424.ssbld   +++|        SCOL = SCOL+2;
01550  M00S01425.ssbld   +++|        CHAR1 = C<SCOL,1>DIRLINE;
01551  M00S01426.ssbld   +++|        STAT = XDXB(CHAR1,0,ACCESSOR);
01552  M00S01427.ssbld   +++|        IF STAT NQ 0
01553  M00S01428.ssbld   +++|        THEN
01554  M00S01429.ssbld   +++|          BEGIN
01555  M00S01430.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01556  M00S01431.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01557  M00S01432.ssbld   +++|          RESTPFP(PFP$ABORT);
01558  M00S01433.ssbld   +++|          END
01559  M00S01434.ssbld   +++|
Line S01435 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01560  M01S01435.ssbld1  ---|        IF ( ACCESSOR LS 0 ) OR ( ACCESSOR GR 3 )
Line S00125 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01561  M01S00125.ssbld1  +++|        IF ((ACCESSOR LS 0) OR (ACCESSOR GR 7))
01562  M00S01436.ssbld   +++|        THEN
01563  M00S01437.ssbld   +++|          BEGIN
01564  M00S01438.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01565  M00S01439.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01566  M00S01440.ssbld   +++|          RESTPFP(PFP$ABORT);
01567  M00S01441.ssbld   +++|          END
01568  M00S01442.ssbld   +++|
01569  M00S01443.ssbld   +++|        SCOL=SCOL+1;
01570  M00S01444.ssbld   +++|        IF C<SCOL,1>DIRLINE NQ COMMA
01571  M00S01445.ssbld   +++|        THEN
01572  M00S01446.ssbld   +++|          BEGIN
01573  M00S01447.ssbld   +++|          BLMSG$LN[0] = MSG$SYNER;
01574  M00S01448.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01575  M00S01449.ssbld   +++|          RESTPFP(PFP$ABORT);
01576  M00S01450.ssbld   +++|          END
01577  M00S01451.ssbld   +++|
01578  M00S01452.ssbld   +++|        SCOL = SCOL+1;
01579  M00S01453.ssbld   +++|
01580  M00S01454.ssbld   +++|#
01581  M00S01455.ssbld   +++|*     LINK M862-S WITH M861-S
01582  M00S01456.ssbld   +++|#
01583  M00S01457.ssbld   +++|
01584  M00S01458.ssbld   +++|        LOOPK = FALSE;
01585  M00S01459.ssbld   +++|        SLOWFOR J = 1 STEP 1 WHILE NOT LOOPK
01586  M00S01460.ssbld   +++|        DO
01587  M00S01461.ssbld   +++|          BEGIN
01588  M00S01462.ssbld   +++|          IF C<SCOL,1>DIRLINE EQ COMMA
01589  M00S01463.ssbld   +++|          THEN
01590  M00S01464.ssbld   +++|            BEGIN
01591  M00S01465.ssbld   +++|            SCOL = SCOL+1;
01592  M00S01466.ssbld   +++|            IF J GR MAX$SMCU
01593  M00S01467.ssbld   +++|            THEN
01594  M00S01468.ssbld   +++|              BEGIN
01595  M00S01469.ssbld   +++|              LOOPK = TRUE;
01596  M00S01470.ssbld   +++|              TEST J;
01597  M00S01471.ssbld   +++|              END
01598  M00S01472.ssbld   +++|
01599  M00S01473.ssbld   +++|            TEST J;
01600  M00S01474.ssbld   +++|            END
01601  M00S01475.ssbld   +++|
01602  M00S01476.ssbld   +++|          IF ( C<SCOL,2>DIRLINE NQ NM$KEY2[2] )  ##
01603  M00S01477.ssbld   +++|            AND ( C<SCOL,3>DIRLINE NQ NM$KEY3[8] )
01604  M00S01478.ssbld   +++|          THEN
01605  M00S01479.ssbld   +++|            BEGIN
01606  M00S01480.ssbld   +++|            BLMSG$LN[0] = MSG$STCON;
01607  M00S01481.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01608  M00S01482.ssbld   +++|            RESTPFP(PFP$ABORT);
01609  M00S01483.ssbld   +++|            END
01610  M00S01484.ssbld   +++|
01611  M00S01485.ssbld   +++|          IF C<SCOL,3>DIRLINE EQ NM$KEY3[8]
01612  M00S01486.ssbld   +++|          THEN
01613  M00S01487.ssbld   +++|            BEGIN
01614  M00S01488.ssbld   +++|            LOOPK = TRUE;
01615  M00S01489.ssbld   +++|            TEST J;
01616  M00S01490.ssbld   +++|            END
01617  M00S01491.ssbld   +++|
01618  M00S01492.ssbld   +++|          IF J GR MAX$SMCU
01619  M00S01493.ssbld   +++|          THEN
01620  M00S01494.ssbld   +++|            BEGIN
01621  M00S01495.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01622  M00S01496.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01623  M00S01497.ssbld   +++|            RESTPFP(PFP$ABORT);
01624  M00S01498.ssbld   +++|            END
01625  M00S01499.ssbld   +++|
01626  M00S01500.ssbld   +++|
01627  M00S01501.ssbld   +++|          SCOL = SCOL+2;
Line S01502 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01628  M01S01502.ssbld1  ---|          CHAR2 = C<SCOL,2>DIRLINE;
01629  M01S01503.ssbld1  ---|          STAT = XDXB(CHAR2,0,ORD);
Line S00126 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01630  M01S00126.ssbld1  +++|          CHAR3 = C<SCOL,3>DIRLINE;
01631  M01S00127.ssbld1  +++|          STAT = XDXB(CHAR3,0,ORD);  # ASSUME 3-CHARACTER CU ORDINAL #
01632  M00S01504.ssbld   +++|          IF STAT NQ 0
01633  M00S01505.ssbld   +++|          THEN
01634  M00S01506.ssbld   +++|            BEGIN
Line S01507 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01635  M01S01507.ssbld1  ---|            BLMSG$LN[0] = MSG$BADADR;
01636  M01S01508.ssbld1  ---|            MESSAGE(BLMSG[0],SYSUDF1);
01637  M01S01509.ssbld1  ---|            RESTPFP(PFP$ABORT);
Line S00128 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01638  M01S00128.ssbld1  +++|            CHAR2 = C<SCOL,2>DIRLINE;
01639  M01S00129.ssbld1  +++|            STAT = XDXB(CHAR2,0,ORD);  # ASSUME 2-CHARACTER CU ORDINAL #
01640  M01S00130.ssbld1  +++|            SCOL = SCOL + 2;
01641  M01S00131.ssbld1  +++|            IF STAT NQ 0
01642  M01S00132.ssbld1  +++|            THEN                     # BAD CONTROLLER ORDINAL #
01643  M01S00133.ssbld1  +++|              BEGIN  # EXIT #
01644  M01S00134.ssbld1  +++|              BLMSG$LN[0] = MSG$BADADR;
01645  M01S00135.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01646  M01S00136.ssbld1  +++|              RESTPFP(PFP$ABORT);
01647  M01S00137.ssbld1  +++|              END  # EXIT #
01648  M01S00138.ssbld1  +++|
01649  M00S01510.ssbld   +++|            END
01650  M00S01511.ssbld   +++|
Line S01512 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01651  M01S01512.ssbld1  ---|          SCOL = SCOL+3;
Line S00139 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01652  M01S00139.ssbld1  +++|          ELSE                       # BUMP POSITION COUNTER #
01653  M01S00140.ssbld1  +++|            BEGIN  # BUMP #
01654  M01S00141.ssbld1  +++|            SCOL = SCOL + 3;
01655  M01S00142.ssbld1  +++|            END  # BUMP #
01656  M01S00143.ssbld1  +++|
01657  M01S00144.ssbld1  +++|          IF C<SCOL,1>DIRLINE NQ COMMA
01658  M01S00145.ssbld1  +++|          THEN                       # BAD SYNTAX #
01659  M01S00146.ssbld1  +++|            BEGIN  # EXIT #
01660  M01S00147.ssbld1  +++|            BLMSG$LN[0] = MSG$SYNER;
01661  M01S00148.ssbld1  +++|            MESSAGE(BLMSG[0],SYSUDF1);
01662  M01S00149.ssbld1  +++|            RESTPFP(PFP$ABORT);
01663  M01S00150.ssbld1  +++|            END  # EXIT #
01664  M01S00151.ssbld1  +++|
01665  M01S00152.ssbld1  +++|            SCOL = SCOL + 1;
01666  M00S01513.ssbld   +++|          LOOPC = FALSE;
01667  M00S01514.ssbld   +++|          SLOWFOR K = 1 STEP 1 WHILE NOT LOOPC
01668  M00S01515.ssbld   +++|          DO
01669  M00S01516.ssbld   +++|            BEGIN
01670  M00S01517.ssbld   +++|            P<UDT$CN> = LOC(BL$UDT$M862[K]);
01671  M00S01518.ssbld   +++|            IF UD$ESTO[1] NQ ORD
01672  M00S01519.ssbld   +++|            THEN
01673  M00S01520.ssbld   +++|              BEGIN
01674  M00S01521.ssbld   +++|              IF K GQ MAXCTN
01675  M00S01522.ssbld   +++|              THEN
01676  M00S01523.ssbld   +++|                BEGIN
01677  M00S01524.ssbld   +++|                BLMSG$LN[0] = MSG$STCON;
01678  M00S01525.ssbld   +++|                MESSAGE(BLMSG[0],SYSUDF1);
01679  M00S01526.ssbld   +++|                RESTPFP(PFP$ABORT);
01680  M00S01527.ssbld   +++|                END
01681  M00S01528.ssbld   +++|
01682  M00S01529.ssbld   +++|              END
01683  M00S01530.ssbld   +++|
01684  M00S01531.ssbld   +++|            IF UD$ESTO[1] EQ ORD
01685  M00S01532.ssbld   +++|            THEN
01686  M00S01533.ssbld   +++|              BEGIN
01687  M00S01534.ssbld   +++|              LOOPC = TRUE;
01688  M00S01535.ssbld   +++|              TEST K;
01689  M00S01536.ssbld   +++|              END
01690  M00S01537.ssbld   +++|
01691  M00S01538.ssbld   +++|            TEST K;
01692  M00S01539.ssbld   +++|            END
01693  M00S01540.ssbld   +++|
01694  M00S01541.ssbld   +++|#
01695  M00S01542.ssbld   +++|*     INSERT ACCESSOR DEVICE ADDRESS INTO M861 TABLE
01696  M00S01543.ssbld   +++|#
01697  M00S01544.ssbld   +++|
01698  M00S01545.ssbld   +++|          SM$SUN[1] = ACCESSOR;
01699  M00S01546.ssbld   +++|
01700  M00S01547.ssbld   +++|#
01701  M00S01548.ssbld   +++|*     MOVE ACCESSOR LINKAGE TO M861 TABLE
01702  M00S01549.ssbld   +++|#
01703  M00S01550.ssbld   +++|
01704  M00S01551.ssbld   +++|          K = K-1;
01705  M00S01552.ssbld   +++|          IF ( SM$STS0[1] NQ 0 )  ##
01706  M00S01553.ssbld   +++|            AND ( SM$STS1[1] NQ 0 )
01707  M00S01554.ssbld   +++|          THEN
01708  M00S01555.ssbld   +++|            BEGIN
01709  M00S01556.ssbld   +++|            BLMSG$LN[0] = MSG$EXPATH;
01710  M00S01557.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);  # ERROR IN CONFIGURATION FILE #
01711  M00S01558.ssbld   +++|            RESTPFP(PFP$ABORT);
01712  M00S01559.ssbld   +++|            END
01713  M00S01560.ssbld   +++|
01714  M01S00153.ssbld1  +++|          IF B<(ACCESSOR*6)+PATH$DF"U$EXISTS",1>UD$AIF0[1] EQ ON
01715  M01S00154.ssbld1  +++|          THEN                       # AIF-AC PATH FOUND #
01716  M01S00155.ssbld1  +++|            BEGIN  # SM #
01717  M01S00156.ssbld1  +++|            B<ACCESSOR*6,6>UD$SMAIF[1] = SMNUM;  # LINK SM TO CU #
01718  M01S00157.ssbld1  +++|            END  # SM #
01719  M01S00158.ssbld1  +++|
01720  M01S00159.ssbld1  +++|          IF B<(ACCESSOR*6)+PATH$DF"U$EXISTS",1>UD$AIF1[1] EQ ON
01721  M01S00160.ssbld1  +++|          THEN                       # AIF-AC PATH FOUND #
01722  M01S00161.ssbld1  +++|            BEGIN  # SM #
01723  M01S00162.ssbld1  +++|            B<ACCESSOR*6,6>UD$SMAIF[1] = SMNUM;  # LINK SM TO CU #
01724  M01S00163.ssbld1  +++|            END  # SM #
01725  M01S00164.ssbld1  +++|
01726  M00S01561.ssbld   +++|          IF SM$STS0[1] EQ 0
01727  M00S01562.ssbld   +++|          THEN
01728  M00S01563.ssbld   +++|            BEGIN
01729  M00S01564.ssbld   +++|            SM$STS0[1] = SM$FLAG[1];
01730  M00S01565.ssbld   +++|            SM$CUO0[1] = K;
Line S01566 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01731  M01S01566.ssbld1  ---|            SLOWFOR I = 0 STEP 1 UNTIL MAX$AC
01732  M01S01567.ssbld1  ---|            DO
01733  M01S01568.ssbld1  ---|              BEGIN
01734  M01S01569.ssbld1  ---|              IF B<I*6,6>UD$AIF0[1] NQ 0
01735  M01S01570.ssbld1  ---|                AND ACCESSOR EQ I
01736  M01S01571.ssbld1  ---|              THEN
01737  M01S01572.ssbld1  ---|                BEGIN
01738  M01S01573.ssbld1  ---|                B<I*6,6>UD$SMAIF0[1] = SMNUM;  # LINK SM TO CU #
01739  M01S01574.ssbld1  ---|                END
01740  M01S01575.ssbld1  ---|
01741  M01S01576.ssbld1  ---|              IF B<I*6,6>UD$AIF1[1] NQ 0
01742  M01S01577.ssbld1  ---|                AND ACCESSOR EQ I
01743  M01S01578.ssbld1  ---|              THEN
01744  M01S01579.ssbld1  ---|                BEGIN
01745  M01S01580.ssbld1  ---|                B<I*6,6>UD$SMAIF1[1] = SMNUM;  # LINK SM TO CU #
01746  M01S01581.ssbld1  ---|                END
01747  M01S01582.ssbld1  ---|
01748  M01S01583.ssbld1  ---|              TEST I;
01749  M01S01584.ssbld1  ---|              END  # TEST I #
01750  M01S01585.ssbld1  ---|
01751  M00S01586.ssbld   ---|            TEST J;
01752  M00S01587.ssbld   ---|            END
01753  M00S01588.ssbld   ---|
01754  M00S01589.ssbld   ---|          IF SM$STS1[1] EQ 0
01755  M00S01590.ssbld   ---|          THEN
01756  M00S01591.ssbld   ---|            BEGIN
01757  M00S01592.ssbld   ---|            SM$STS1[1] = SM$FLAG[1];
01758  M00S01593.ssbld   ---|            SM$CUO1[1] = K;
01759  M01S01594.ssbld1  ---|            SLOWFOR I = 0 STEP 1 UNTIL MAX$AC
01760  M01S01595.ssbld1  ---|            DO
01761  M01S01596.ssbld1  ---|              BEGIN
01762  M01S01597.ssbld1  ---|              IF B<I*6,6>UD$AIF0[1] NQ 0
01763  M01S01598.ssbld1  ---|                AND ACCESSOR EQ I
01764  M01S01599.ssbld1  ---|              THEN
01765  M01S01600.ssbld1  ---|                BEGIN
01766  M01S01601.ssbld1  ---|                B<I*6,6>UD$SMAIF0[1] = SMNUM;  # LINK SM TO CU #
01767  M01S01602.ssbld1  ---|                END
01768  M01S01603.ssbld1  ---|
01769  M01S01604.ssbld1  ---|              IF B<I*6,6>UD$AIF1[1] NQ 0
01770  M01S01605.ssbld1  ---|                AND ACCESSOR EQ I
01771  M01S01606.ssbld1  ---|              THEN
01772  M01S01607.ssbld1  ---|                BEGIN
01773  M01S01608.ssbld1  ---|                B<I*6,6>UD$SMAIF1[1] = SMNUM;  # LINK SM TO CU #
01774  M01S01609.ssbld1  ---|                END
01775  M01S01610.ssbld1  ---|
01776  M01S01611.ssbld1  ---|              TEST I;
01777  M01S01612.ssbld1  ---|              END  # TEST I #
01778  M01S01613.ssbld1  ---|
01779  M00S01614.ssbld   ---|            TEST J;
01780  M00S01615.ssbld   ---|            END
01781  M00S01616.ssbld   ---|
01782  M00S01617.ssbld   ---|
01783  M00S01618.ssbld   ---|          END  # TEST J #
01784  M00S01619.ssbld   ---|
01785  M00S01620.ssbld   ---|#
01786  M00S01621.ssbld   ---|*     NOW CRACK DRD COMMANDS
01787  M00S01622.ssbld   ---|#
01788  M00S01623.ssbld   ---|
01789  M00S01624.ssbld   ---|        DEVTYPE = NM$KEY3[8];
01790  M00S01625.ssbld   ---|        NUMCH = 3;
01791  M00S01626.ssbld   ---|        LOOPK = FALSE;
01792  M00S01627.ssbld   ---|        SLOWFOR J = 0 STEP 1 WHILE NOT LOOPK
01793  M00S01628.ssbld   ---|        DO
01794  M00S01629.ssbld   ---|          BEGIN
01795  M00S01630.ssbld   ---|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01796  M00S01631.ssbld   ---|            NUMCH,ORD,NCOL,STAT,TERMINATOR);
Line S00165 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01797  M01S00165.ssbld1  +++|          SAVEDORD = ORD;            # IN CASE DRD IS 8-15 #
01798  M01S00166.ssbld1  +++|          IF ORD GR MAX$DRD
01799  M01S00167.ssbld1  +++|          THEN                       # ALLOW FOR FULL CONFIGURATION #
01800  M01S00168.ssbld1  +++|            BEGIN
01801  M01S00169.ssbld1  +++|            ORD = ORD - MAX$DRD - 1;
01802  M01S00170.ssbld1  +++|            END
01803  M01S00171.ssbld1  +++|
01804  M00S01632.ssbld   +++|          IF STAT NQ 2
01805  M00S01633.ssbld   +++|          THEN
01806  M00S01634.ssbld   +++|            BEGIN
01807  M00S01635.ssbld   +++|            SMDRD ( 1 , ORD , PATH$DF"U$EXISTS" , 1 );
01808  M00S01636.ssbld   +++|
01809  M00S01637.ssbld   +++|
01810  M00S01638.ssbld   +++|#
01811  M00S01639.ssbld   +++|*     VALIDATE ACCESSOR AND DRD DEVICE ADDRESSES
01812  M00S01640.ssbld   +++|#
01813  M00S01641.ssbld   +++|
01814  M00S01642.ssbld   +++|            IF ( ( ACCESSOR EQ 0 )   ##
01815  M00S01643.ssbld   +++|              AND ( ORD GR 1 ) )     ##
01816  M00S01644.ssbld   +++|              OR ( ( ACCESSOR EQ 1 )  ##
01817  M00S01645.ssbld   +++|              AND ( ORD LS 2 OR ORD GR 3 ) )  ##
01818  M00S01646.ssbld   +++|              OR ( ( ACCESSOR EQ 2 )  ##
01819  M00S01647.ssbld   +++|              AND ( ORD LS 4 OR ORD GR 5 ) )  ##
01820  M00S01648.ssbld   +++|              OR ( ( ACCESSOR EQ 3 )  ##
01821  M00S01649.ssbld   +++|              AND ( ORD LS 6 ) )     ##
01822  M00S01650.ssbld   +++|            THEN
01823  M00S01651.ssbld   +++|              BEGIN
01824  M00S01652.ssbld   +++|              BLMSG$LN[0] = MSG$BADADR;
01825  M00S01653.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1 )  ##
01826  M00S01654.ssbld   +++|                ;
01827  M00S01655.ssbld   +++|              RESTPFP ( PFP$ABORT );
01828  M00S01656.ssbld   +++|              END
01829  M00S01657.ssbld   +++|
01830  M00S01658.ssbld   +++|#
01831  M00S01659.ssbld   +++|*      ASSOCIATE EVEN NUMBERED DRD-S WITH FIRST POSITION IN TABLE
01832  M00S01660.ssbld   +++|#
01833  M00S01661.ssbld   +++|
01834  M00S01662.ssbld   +++|            IF ( ORD EQ 0 )          ##
01835  M00S01663.ssbld   +++|              OR ( ORD EQ 2 )        ##
01836  M00S01664.ssbld   +++|              OR ( ORD EQ 4 )        ##
01837  M00S01665.ssbld   +++|              OR ( ORD EQ 6 )        ##
01838  M00S01666.ssbld   +++|            THEN
01839  M00S01667.ssbld   +++|              BEGIN
Line S01668 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01840  M01S01668.ssbld1  ---|              D0$SUN[1] = ORD;
Line S00172 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01841  M01S00172.ssbld1  +++|              D0$SUN[1] = SAVEDORD;  # STORE TRUE NUMBER #
01842  M00S01669.ssbld   +++|              END
01843  M00S01670.ssbld   +++|
01844  M00S01671.ssbld   +++|            ELSE
01845  M00S01672.ssbld   +++|              BEGIN
Line S01673 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01846  M01S01673.ssbld1  ---|              D1$SUN[1] = ORD;
Line S00173 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01847  M01S00173.ssbld1  +++|              D1$SUN[1] = SAVEDORD;  # STORE TRUE NUMBER #
01848  M00S01674.ssbld   +++|              END
01849  M00S01675.ssbld   +++|
01850  M00S01676.ssbld   +++|            END
01851  M00S01677.ssbld   +++|
01852  M00S01678.ssbld   +++|          IF STAT EQ 2
01853  M00S01679.ssbld   +++|          THEN
01854  M00S01680.ssbld   +++|            BEGIN
01855  M00S01681.ssbld   +++|            SCOL = NCOL;
01856  M00S01682.ssbld   +++|            TEST J;
01857  M00S01683.ssbld   +++|            END
01858  M00S01684.ssbld   +++|
01859  M00S01685.ssbld   +++|
01860  M00S01686.ssbld   +++|          IF STAT EQ 1
01861  M00S01687.ssbld   +++|          THEN
01862  M00S01688.ssbld   +++|            BEGIN
01863  M00S01689.ssbld   +++|            SMDRD ( 1 , ORD , PATH$DF"U$ON" , 1 );
01864  M00S01690.ssbld   +++|            END
01865  M00S01691.ssbld   +++|
01866  M00S01692.ssbld   +++|
01867  M00S01693.ssbld   +++|          IF TERMINATOR EQ PERIOD
01868  M00S01694.ssbld   +++|          THEN
01869  M00S01695.ssbld   +++|            BEGIN
01870  M00S01696.ssbld   +++|            LOOPK = TRUE;
01871  M00S01697.ssbld   +++|            TEST J;
01872  M00S01698.ssbld   +++|            END
01873  M00S01699.ssbld   +++|
Line S01700 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01874  M01S01700.ssbld1  ---|          IF J GQ MAX$SMDRD
Line S00174 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01875  M01S00174.ssbld1  +++|          IF J GQ MAX$SMDRD - 1
01876  M00S01701.ssbld   +++|          THEN
Line S01702 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01877  M01S01702.ssbld1  ---|            BEGIN
01878  M01S01703.ssbld1  ---|            BLMSG$LN[0] =MSG$STCON;
01879  M01S01704.ssbld1  ---|            MESSAGE(BLMSG[0],SYSUDF1);
01880  M01S01705.ssbld1  ---|            RESTPFP(PFP$ABORT);
01881  M01S01706.ssbld1  ---|            END
Line S00175 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01882  M01S00175.ssbld1  +++|            BEGIN  # SEARCH FOR DESTAGE AND STAGE PARAMETERS #
01883  M01S00176.ssbld1  +++|            SCOL = NCOL;
01884  M01S00177.ssbld1  +++|
01885  M01S00178.ssbld1  +++|#
01886  M01S00179.ssbld1  +++|*     CHECK FOR STAGE/DESTAGE DRD PARAMETERS
01887  M01S00180.ssbld1  +++|#
01888  M01S00181.ssbld1  +++|
01889  M01S00182.ssbld1  +++|            IF C<SCOL,3>DIRLINE NQ "DS="
01890  M01S00183.ssbld1  +++|            THEN
01891  M01S00184.ssbld1  +++|              BEGIN  # ERROR IN STATMENT #
01892  M01S00185.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$DS;
01893  M01S00186.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01894  M01S00187.ssbld1  +++|              RESTPFP(PFP$ABORT);
01895  M01S00188.ssbld1  +++|              END  # ERROR IN STATEMENT #
01896  M01S00189.ssbld1  +++|
01897  M01S00190.ssbld1  +++|            SCOL = SCOL + 3;
01898  M01S00191.ssbld1  +++|            CHAR1 = C<SCOL,1>DIRLINE;  # GET NUMBER OF DESTAGING DRDS #
01899  M01S00192.ssbld1  +++|            STAT = XDXB(CHAR1,0,TMPI);
01900  M01S00193.ssbld1  +++|            IF STAT NQ 0
01901  M01S00194.ssbld1  +++|            THEN
01902  M01S00195.ssbld1  +++|              BEGIN  # NOT A NUMBER #
01903  M01S00196.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$DS;
01904  M01S00197.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01905  M01S00198.ssbld1  +++|              RESTPFP(PFP$ABORT);
01906  M01S00199.ssbld1  +++|              END  # NOT A NUMBER #
01907  M01S00200.ssbld1  +++|
01908  M01S00201.ssbld1  +++|            IF TMPI LS 1  ##
01909  M01S00202.ssbld1  +++|              OR TMPI GR 2
01910  M01S00203.ssbld1  +++|            THEN
01911  M01S00204.ssbld1  +++|              BEGIN  # NUMBER OUT OF RANGE #
01912  M01S00205.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$DS;
01913  M01S00206.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01914  M01S00207.ssbld1  +++|              RESTPFP(PFP$ABORT);
01915  M01S00208.ssbld1  +++|              END  # NUMBER OUT OF RANGE #
01916  M01S00209.ssbld1  +++|
01917  M01S00210.ssbld1  +++|            SM$DSNUM[1] = TMPI;      # NUMBER OF DRDS FOR DESTAGING #
01918  M01S00211.ssbld1  +++|            SCOL = SCOL + 1;
01919  M01S00212.ssbld1  +++|
01920  M01S00213.ssbld1  +++|            IF C<SCOL,4>DIRLINE NQ ",ST="
01921  M01S00214.ssbld1  +++|            THEN
01922  M01S00215.ssbld1  +++|              BEGIN  # ERROR IN STATEMENT #
01923  M01S00216.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$ST;
01924  M01S00217.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01925  M01S00218.ssbld1  +++|              RESTPFP(PFP$ABORT);
01926  M01S00219.ssbld1  +++|              END  # ERROR IN STATEMENT #
01927  M01S00220.ssbld1  +++|
01928  M01S00221.ssbld1  +++|            SCOL = SCOL + 4;
01929  M01S00222.ssbld1  +++|            CHAR1 = C<SCOL,1>DIRLINE;  # GET NUMBER OF STAGING DRDS  #
01930  M01S00223.ssbld1  +++|            STAT = XDXB(CHAR1,0,TMPI);
01931  M01S00224.ssbld1  +++|            IF STAT NQ 0
01932  M01S00225.ssbld1  +++|            THEN
01933  M01S00226.ssbld1  +++|              BEGIN  # NOT A NUMBER #
01934  M01S00227.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$ST;
01935  M01S00228.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01936  M01S00229.ssbld1  +++|              RESTPFP(PFP$ABORT);
01937  M01S00230.ssbld1  +++|              END  # NOT A NUMBER #
01938  M01S00231.ssbld1  +++|
01939  M01S00232.ssbld1  +++|            IF TMPI LS 1  ##
01940  M01S00233.ssbld1  +++|              OR TMPI GR 2
01941  M01S00234.ssbld1  +++|            THEN
01942  M01S00235.ssbld1  +++|              BEGIN  # NUMBER OUT OF RANGE #
01943  M01S00236.ssbld1  +++|              BLMSG$LN[0] = MSG$SM$ST;
01944  M01S00237.ssbld1  +++|              MESSAGE(BLMSG[0],SYSUDF1);
01945  M01S00238.ssbld1  +++|              RESTPFP(PFP$ABORT);
01946  M01S00239.ssbld1  +++|              END  # NUMBER OUT OF RANGE #
01947  M01S00240.ssbld1  +++|
01948  M01S00241.ssbld1  +++|            SM$STNUM[1] = TMPI;      # NUMBER OF DRDS FOR STAGING #
01949  M01S00242.ssbld1  +++|            LOOPK = TRUE;
01950  M01S00243.ssbld1  +++|            TEST J;
01951  M01S00244.ssbld1  +++|            END  # SEARCH FOR DESTAGE AND STAGE PARAMETERS #
01952  M00S01707.ssbld   +++|
01953  M00S01708.ssbld   +++|          SCOL = NCOL;
01954  M00S01709.ssbld   +++|          END  # TEST J #
01955  M00S01710.ssbld   +++|
01956  M00S01711.ssbld   +++|#
01957  M00S01712.ssbld   +++|*     MOVE DRC/DRD PATH STATUS TO DRD TABLE
01958  M00S01713.ssbld   +++|#
01959  M00S01714.ssbld   +++|
01960  M00S01715.ssbld   +++|#
01961  M00S01716.ssbld   +++|*     NOTE:
01962  M00S01717.ssbld   +++|*     IF THERE ARE TWO SEPERATE M862-S CONNECTED TO THE SAME M861 SM,
01963  M00S01718.ssbld   +++|*     THEN THE SECOND M862 ( FROM THE START OF THE BUDT ) INTO THE SM
01964  M00S01719.ssbld   +++|*     IS ( BY DEFINITION ) THE SECOND CU IN THE SM TABLE. HENCE, IT CAN
01965  M00S01720.ssbld   +++|*     ONLY INTERFACE TO THE *STSS* PATH IN THE *DRD* TABLES.
01966  M00S01721.ssbld   +++|#
01967  M01S00245.ssbld1  +++|        P<UDT$CN> = LOC(BL$UDT$M862[1]);
01968  M00S01722.ssbld   +++|        IF SM$CNT0[1] NQ 0
01969  M00S01723.ssbld   +++|        THEN
01970  M00S01724.ssbld   +++|          BEGIN  # CU0/DRD LINKUP #
Line S01725 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01971  M01S01725.ssbld1  ---|          P<UDT$CN> = LOC(BL$UDT$M862[SM$CUO0[1]]);
01972  M01S01726.ssbld1  ---|          LOOPC = FALSE;
01973  M01S01727.ssbld1  ---|          SLOWFOR L = 0 STEP 2 WHILE ( L LQ MAX$DRD - 1 )
01974  M01S01728.ssbld1  ---|            AND ( NOT LOOPC )
01975  M01S01729.ssbld1  ---|          DO
01976  M01S01730.ssbld1  ---|            BEGIN  # LINK DRD0 WITH APPROPRIATE DRCS #
01977  M01S01731.ssbld1  ---|            IF B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP0[1] NQ 0  ##
01978  M01S01732.ssbld1  ---|              OR B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP1[1] NQ 0
01979  M01S01733.ssbld1  ---|            THEN
01980  M01S01734.ssbld1  ---|              BEGIN  # SET STATUS FLAGS #
01981  M01S01735.ssbld1  ---|              IF D0$FLAG[1] NQ 0
01982  M01S01736.ssbld1  ---|                AND D0$STSP[1] EQ 0
01983  M01S01737.ssbld1  ---|              THEN
01984  M01S01738.ssbld1  ---|                BEGIN
01985  M01S01739.ssbld1  ---|                UPDRDST (  0 , 1 );
01986  M01S01740.ssbld1  ---|                 LOOPC = TRUE;
01987  M01S01741.ssbld1  ---|                TEST L;
01988  M01S01742.ssbld1  ---|                END
01989  M01S01743.ssbld1  ---|
01990  M01S01744.ssbld1  ---|              TEST L;
01991  M01S01745.ssbld1  ---|              END  # SET STATUS FLAGS #
01992  M01S01746.ssbld1  ---|
01993  M01S01747.ssbld1  ---|            END  # LINK DRD0 WITH APPROPRIATE DRCS #
01994  M01S01748.ssbld1  ---|
01995  M01S01749.ssbld1  ---|          LOOPC = FALSE;
01996  M01S01750.ssbld1  ---|          SLOWFOR L = 1 STEP 2 WHILE ( L LQ MAX$DRD )
01997  M01S01751.ssbld1  ---|            AND ( NOT LOOPC )
01998  M01S01752.ssbld1  ---|          DO
01999  M01S01753.ssbld1  ---|            BEGIN  # LINK DRD1 WITH APPROPRIATE DRCS #
02000  M01S01754.ssbld1  ---|            IF B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP0[1] NQ 0  ##
02001  M01S01755.ssbld1  ---|              OR B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP1[1] NQ 0
02002  M01S01756.ssbld1  ---|            THEN
02003  M01S01757.ssbld1  ---|              BEGIN  # SET STATUS FLAGS #
02004  M01S01758.ssbld1  ---|              IF D1$FLAG[1] NQ 0
02005  M01S01759.ssbld1  ---|                AND D1$STSP[1] EQ 0
02006  M01S01760.ssbld1  ---|              THEN
02007  M01S01761.ssbld1  ---|                BEGIN
02008  M01S01762.ssbld1  ---|                UPDRDST ( 1 ,  1 );
02009  M01S01763.ssbld1  ---|                LOOPC = TRUE;
02010  M01S01764.ssbld1  ---|                TEST L;
02011  M01S01765.ssbld1  ---|                END
02012  M01S01766.ssbld1  ---|
02013  M01S01767.ssbld1  ---|              TEST L;
02014  M01S01768.ssbld1  ---|              END  # SET STATUS FLAGS #
02015  M01S01769.ssbld1  ---|
02016  M01S01770.ssbld1  ---|            END  # LINK DRD1 WITH APPROPRIATE DRCS #
02017  M01S01771.ssbld1  ---|
Line S00246 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02018  M01S00246.ssbld1  +++|          IF D0$EXIST[1]
02019  M01S00247.ssbld1  +++|          THEN                       # UPPER DRD EXISTS #
02020  M01S00248.ssbld1  +++|            BEGIN  # UPPER #
02021  M01S00249.ssbld1  +++|            B<PATH$DF"U$EXISTS",1>D0$STSP[1] = 1;
02022  M01S00250.ssbld1  +++|            UPDRDST(D0$SUN[1],SM$CUO0[1]);
02023  M01S00251.ssbld1  +++|            END  # UPPER #
02024  M01S00252.ssbld1  +++|
02025  M01S00253.ssbld1  +++|          IF D1$EXIST[1]
02026  M01S00254.ssbld1  +++|          THEN                       # LOWER DRD EXISTS #
02027  M01S00255.ssbld1  +++|            BEGIN  # LOWER #
02028  M01S00256.ssbld1  +++|            B<PATH$DF"U$EXISTS",1>D1$STSP[1] = 1;
02029  M01S00257.ssbld1  +++|            UPDRDST(D1$SUN[1],SM$CUO0[1]);
02030  M01S00258.ssbld1  +++|            END  # LOWER #
02031  M01S00259.ssbld1  +++|
02032  M00S01772.ssbld   +++|          END  # CU0/DRD LINKUP #
02033  M00S01773.ssbld   +++|
02034  M00S01774.ssbld   +++|        IF SM$CNT1[1] NQ 0
02035  M00S01775.ssbld   +++|        THEN
02036  M00S01776.ssbld   +++|          BEGIN  # CU1/DRD LINKUP #
Line S01777 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02037  M01S01777.ssbld1  ---|          P<UDT$CN> = LOC(BL$UDT$M862[SM$CUO1[1]]);
02038  M01S01778.ssbld1  ---|          LOOPC = FALSE;
02039  M01S01779.ssbld1  ---|          SLOWFOR L = 0 STEP 2 WHILE ( L LQ MAX$DRD - 1 )
02040  M01S01780.ssbld1  ---|            AND ( NOT LOOPC )
02041  M01S01781.ssbld1  ---|          DO
02042  M01S01782.ssbld1  ---|            BEGIN  # LINK DRD0 WITH APPROPRIATE DRCS #
02043  M01S01783.ssbld1  ---|            IF B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP0[1] NQ 0  ##
02044  M01S01784.ssbld1  ---|              OR B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP1[1] NQ 0
02045  M01S01785.ssbld1  ---|            THEN
02046  M01S01786.ssbld1  ---|              BEGIN  # SET STATUS FLAGS #
02047  M01S01787.ssbld1  ---|              IF D0$FLAG[1] NQ 0
02048  M01S01788.ssbld1  ---|                AND D0$STSS[1] EQ 0
02049  M01S01789.ssbld1  ---|              THEN
02050  M01S01790.ssbld1  ---|                BEGIN
02051  M01S01791.ssbld1  ---|                UPDRDST (  0 , 0 );
02052  M01S01792.ssbld1  ---|                LOOPC = TRUE;
02053  M01S01793.ssbld1  ---|                TEST L;
02054  M01S01794.ssbld1  ---|                END
02055  M01S01795.ssbld1  ---|
02056  M01S01796.ssbld1  ---|              TEST L;
02057  M01S01797.ssbld1  ---|              END  # SET STATUS FLAGS #
02058  M01S01798.ssbld1  ---|
02059  M01S01799.ssbld1  ---|            END  # LINK DRC0 WITH APPROPRIATE DRDS #
02060  M01S01800.ssbld1  ---|
02061  M01S01801.ssbld1  ---|          LOOPC = FALSE;
02062  M01S01802.ssbld1  ---|          SLOWFOR L = 1 STEP 2 WHILE ( L LQ MAX$DRD )
02063  M01S01803.ssbld1  ---|            AND ( NOT LOOPC )
02064  M01S01804.ssbld1  ---|          DO
02065  M01S01805.ssbld1  ---|            BEGIN  # LINK DRD1 WITH APPROPRIATE DRCS #
02066  M01S01806.ssbld1  ---|            IF B<L*6+PATH$DF"U$EXISTS",1>UD$DRCP1[1] NQ 0
02067  M01S01807.ssbld1  ---|            THEN
02068  M01S01808.ssbld1  ---|              BEGIN  # SET STATUS FLAGS #
02069  M01S01809.ssbld1  ---|              IF D1$FLAG[1] NQ 0
02070  M01S01810.ssbld1  ---|                AND D1$STSS[1] EQ 0
02071  M01S01811.ssbld1  ---|              THEN
02072  M01S01812.ssbld1  ---|                BEGIN
02073  M01S01813.ssbld1  ---|                UPDRDST (  1 , 0 );
02074  M01S01814.ssbld1  ---|                LOOPC = TRUE;
02075  M01S01815.ssbld1  ---|                TEST L;
02076  M01S01816.ssbld1  ---|                END
02077  M01S01817.ssbld1  ---|
02078  M01S01818.ssbld1  ---|              TEST L;
02079  M01S01819.ssbld1  ---|              END  # SET STATUS FLAGS #
02080  M01S01820.ssbld1  ---|
02081  M01S01821.ssbld1  ---|            END  # LINK DRD1 WITH APPRPRIATE DRCS #
02082  M01S01822.ssbld1  ---|
Line S00260 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02083  M01S00260.ssbld1  +++|          IF D0$EXIST[1]
02084  M01S00261.ssbld1  +++|          THEN                       # UPPER DRD EXISTS #
02085  M01S00262.ssbld1  +++|            BEGIN  # UPPER #
02086  M01S00263.ssbld1  +++|            B<PATH$DF"U$EXISTS",1>D0$STSS[1] = 1;
02087  M01S00264.ssbld1  +++|            UPDRDST(D0$SUN[1],SM$CUO1[1]);
02088  M01S00265.ssbld1  +++|            END  # UPPER #
02089  M01S00266.ssbld1  +++|
02090  M01S00267.ssbld1  +++|          IF D1$EXIST[1]
02091  M01S00268.ssbld1  +++|          THEN                       # LOWER DRD EXISTS #
02092  M01S00269.ssbld1  +++|            BEGIN  # LOWER #
02093  M01S00270.ssbld1  +++|            B<PATH$DF"U$EXISTS",1>D1$STSS[1] = 1;
02094  M01S00271.ssbld1  +++|            UPDRDST(D1$SUN[1],SM$CUO1[1]);
02095  M01S00272.ssbld1  +++|            END  # LOWER #
02096  M01S00273.ssbld1  +++|
02097  M00S01823.ssbld   +++|          END  # CU1/DRD LINKUP #
02098  M00S01824.ssbld   +++|
02099  M00S01825.ssbld   +++|        TEST DIRNUM;
02100  M00S01826.ssbld   +++|
02101  M00S01827.ssbld   +++|        END  # TEST DIRNUM #
02102  M00S01828.ssbld   +++|
02103  M00S01829.ssbld   +++|      IF NUM$CU NQ CUNUM
02104  M00S01830.ssbld   +++|      THEN
02105  M00S01831.ssbld   +++|        BEGIN
02106  M00S01832.ssbld   +++|        BLMSG$LN[0] = MSG$INCCU;
02107  M00S01833.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
02108  M00S01834.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP ANFd ABORT #
02109  M00S01835.ssbld   +++|        END
02110  M00S01836.ssbld   +++|
02111  M00S01837.ssbld   +++|      IF NUM$SM NQ SMNUM
02112  M00S01838.ssbld   +++|      THEN
02113  M00S01839.ssbld   +++|        BEGIN
02114  M00S01840.ssbld   +++|        BLMSG$LN[0] = MSG$INCSM;
02115  M00S01841.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
02116  M00S01842.ssbld   +++|      RESTPFP(PFP$ABORT);            # RESTORE USER-S PFP AND ABORT #
02117  M00S01843.ssbld   +++|        END
02118  M00S01844.ssbld   +++|
02119  M00S01845.ssbld   +++|      RETERN(BL$FET[0],RCL);
02120  M00S01846.ssbld   +++|      END  # RDSUDT #
02121  M00S01847.ssbld   +++|
02122  M00S01848.ssbld   +++|    TERM
02123  M00S01849.ssbld   +++|PROC NEXTLIN(DIRLINE,STAT,INDEX);
02124  M00S01850.ssbld   +++|
02125  M00S01851.ssbld   +++|# TITLE NEXTLIN - READ NEXT LINE OF CONFIGURATION SOURCE FILE.        #
02126  M00S01852.ssbld   +++|
02127  M00S01853.ssbld   +++|      BEGIN  # NEXTLIN #
02128  M00S01854.ssbld   +++|
02129  M00S01855.ssbld   +++|
02130  M00S01856.ssbld   +++|#
02131  M00S01857.ssbld   +++|***   PROC TO READ ONE LINE OF DATA FROM DATA ALREADY IN A FET.
02132  M00S01858.ssbld   +++|*     *NEXTLIN* READS A LINE (WHICH IS AN *SSBLD* CONFIGURATION
Proceed to Part 1