User Tools

Site Tools


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

Deck SSBLD

2 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.ssbld   +++|PRGM SSBLD;
00002  M01S00002.ssbld   +++|
00003  M01S00003.ssbld   +++|
00004  M01S00004.ssbld   +++|# TITLE SSBLD - MAIN ROUTINE OF SSBLD.                                #
00005  M01S00005.ssbld   +++|
00006  M01S00006.ssbld   +++|      BEGIN  # SSBLD #
00007  M01S00007.ssbld   +++|
00008  M01S00008.ssbld   +++|#
00009  M01S00009.ssbld   +++|***   SSBLD - BUILD UDT FOR SSEXEC.
00010  M01S00010.ssbld   +++|*
00011  M01S00011.ssbld   +++|*     SSBLD ATTACHES THE FILE SPECIFIED BY THE CONTROL STATEMENT
00012  M01S00012.ssbld   +++|*     CALL AND BUILDS A DIRECT ACCESS PERMANENT FILE - BUDT
00013  M01S00013.ssbld   +++|*     UNDER USER INDEX 377760B.
00014  M01S00014.ssbld   +++|*
00015  M01S00015.ssbld   +++|*
00016  M01S00016.ssbld   +++|*     SSBLD(PARAMETER1,PARAMTER2)      - PARAMETERS ARE OPTIONAL.
00017  M01S00017.ssbld   +++|*
00018  M01S00018.ssbld   +++|*     PARAMETER     DESCRIPTION
00019  M01S00019.ssbld   +++|*
00020  M01S00020.ssbld   +++|*     CF            USE DIRECT ACCESS PERMANENT FILE *SUDT* UNDER
00021  M01S00021.ssbld   +++|*                   UI = 377760B AS INPUT FOR BUILDING THE UDT.
00022  M01S00022.ssbld   +++|*
00023  M01S00023.ssbld   +++|*     CF=LFN        USE DIRECT ACCESS PERMANENT FILE *LFN* UNDER
00024  M01S00024.ssbld   +++|*                   UI = 377760B AS INPUT FOR BUILDING THE UDT.
00025  M01S00025.ssbld   +++|*
00026  M01S00026.ssbld   +++|*     CF OMITTED    SAME AS CF.
00027  M01S00027.ssbld   +++|*
00028  M01S00028.ssbld   +++|*     BF            USE DIRECT ACCESS PERMANENT FILE *BUDT* UNDER
00029  M01S00029.ssbld   +++|*                   UI = 377760B FOR DESTINATION BUDT FILE.
00030  M01S00030.ssbld   +++|*
00031  M01S00031.ssbld   +++|*     BF=LFN        USE DIRECT ACCESS PERMANENT FILE *LFN* UNDER
00032  M01S00032.ssbld   +++|*                   UI = 377760B FOR DESTINATION BUDT FILE.
00033  M01S00033.ssbld   +++|*
00034  M01S00034.ssbld   +++|*     BF OMITTED    SAME AS BF.
00035  M01S00035.ssbld   +++|*
00036  M01S00036.ssbld   +++|*     MESSAGES
00037  M01S00037.ssbld   +++|*
00038  M01S00038.ssbld   +++|*     SSBLD ABORT - SYNTAX ERROR.
00039  M01S00039.ssbld   +++|*      SSBLD - MUST BE SYSTEM ORIGIN.
00040  M01S00040.ssbld   +++|*     SSBLD - CANNOT RE-ATTACH BUDT FILE.
00041  M01S00041.ssbld   +++|*     SSBLD - NO SOURCE CONFIGURATION FILE.
00042  M01S00042.ssbld   +++|*     SSBLD - SUDT FILE BUSY.
00043  M01S00043.ssbld   +++|*     SSBLD - BUDT FILE BUSY.
00044  M01S00044.ssbld   +++|*     SSBLD - UNABLE TO DEFINE BUDT FILE.
00045  M01S00045.ssbld   +++|*     SSBLD - BUDT FILE PROBLEMS.
00046  M01S00046.ssbld   +++|*     SSBLD - COMPLETE.
00047  M01S00047.ssbld   +++|*
00048  M01S00048.ssbld   +++|*
00049  M01S00049.ssbld   +++|*
Line S00050 Modification History
M01 (Added by) ssbld
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00050  M02S00050.281l803 ---|*     COPYRIGHT CONTROL DATA CORP., 1982.
00051  M01S00001.281l803 +++|*     COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00052  M01S00051.ssbld   +++|#
00053  M01S00052.ssbld   +++|
00054  M01S00053.ssbld   +++|#
00055  M01S00054.ssbld   +++|****  PRGM SSBLD - XREF LIST BEGIN.
00056  M01S00055.ssbld   +++|#
00057  M01S00056.ssbld   +++|
00058  M01S00057.ssbld   +++|      XREF
00059  M01S00058.ssbld   +++|        BEGIN
00060  M01S00059.ssbld   +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
00061  M01S00060.ssbld   +++|        PROC BLTAB;                  # SETS UP ARGUMENT LIST #
00062  M01S00061.ssbld   +++|        PROC BZFILL;                 # BLANK OR ZERO FILL A BUFFER #
00063  M01S00062.ssbld   +++|        PROC GETPFP;                 # GET USER INDEX AND FAMILY #
00064  M01S00063.ssbld   +++|        PROC GETSPS;                 # GET SYSTEM ORIGIN PRIVILEDGES #
00065  M01S00064.ssbld   +++|        PROC MESSAGE;                # CALLS MESSAGE MACRO #
00066  M01S00065.ssbld   +++|        PROC NEXTLIN;                # READ NEXT LINE #
00067  M01S00066.ssbld   +++|        PROC PFD;                    # *PFM* REQUEST INTERFACE #
00068  M01S00067.ssbld   +++|        PROC RDSUDT;                 # READ CONFIGURATION FILE SOURCE #
00069  M01S00068.ssbld   +++|        PROC RETERN;                 # RETURN A FILE #
00070  M01S00069.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* #
00071  M01S00070.ssbld   +++|        PROC WTBUDT;                 # WRITE UDT TO DISK FILE #
00072  M01S00071.ssbld   +++|        PROC XARG;                   # CRACK PARAMETER LIST #
00073  M01S00072.ssbld   +++|        END
00074  M01S00073.ssbld   +++|
00075  M01S00074.ssbld   +++|#
00076  M01S00075.ssbld   +++|****  PRGM SSBLD - XREF LIST END.
00077  M01S00076.ssbld   +++|#
00078  M01S00077.ssbld   +++|
00079  M01S00078.ssbld   +++|      DEF SMMAX      #"H"#;          # MAXIMUM SM VALUE #
00080  M01S00079.ssbld   +++|      DEF SMMIN      #"A"#;          # MINIMUM SM VALUE #
00081  M01S00080.ssbld   +++|      DEF NOPARAM    #-1#;           # NO PARAMETER SPECIFIED #
00082  M01S00081.ssbld   +++|      DEF PROCNAME   #"SSBLD."#;     # PROCEDURE NAME #
00083  M01S00082.ssbld   +++|      DEF RSLEN      #1#;        # RETURN STATUS LENGTH #
00084  M01S00083.ssbld   +++|      DEF SYNTAXOK   #0#;            # SYNTAX OK #
00085  M01S00084.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00086  M01S00085.ssbld   +++|
00087  M01S00086.ssbld   +++|                                               CONTROL PRESET;
00088  M01S00087.ssbld   +++|*CALL COMBFAS
00089  M01S00088.ssbld   +++|*CALL COMBBZF
00090  M01S00089.ssbld   +++|*CALL COMBCMD
00091  M01S00090.ssbld   +++|*CALL COMBCMS
00092  M01S00091.ssbld   +++|*CALL COMBPFP
00093  M01S00092.ssbld   +++|*CALL COMBUDT
00094  M01S00093.ssbld   +++|*CALL COMSPFM
00095  M01S00094.ssbld   +++|*CALL COMTBLD
00096  M01S00095.ssbld   +++|*CALL COMTBLP
00097  M01S00096.ssbld   +++|
00098  M01S00097.ssbld   +++|      ITEM ARGLIST    U;             # ADDRESS OF ARGUMENT TABLE #
00099  M01S00098.ssbld   +++|      ITEM FLAG       U;             # ERROR FLAG FOR ASARG #
00100  M01S00099.ssbld   +++|      ITEM OPTION     I;             # OPTION TO SKIP PROGRAM NAME #
00101  M01S00100.ssbld   +++|
00102  M01S00101.ssbld   +++|      ARRAY MSGDETAIL1 [0:0] P(4);
00103  M01S00102.ssbld   +++|        BEGIN  # ARRAY MSGDETAIL1 #
00104  M01S00103.ssbld   +++|        ITEM LEAD1      C(00,00,01) = [" "];  # LEADING BLANK #
00105  M01S00104.ssbld   +++|        ITEM MSGPFNH    C(00,06,04) = ["PFN="];  # PFN= #
00106  M01S00105.ssbld   +++|        ITEM MSGPFN     C(00,30,07);  # FILE NAME #
00107  M01S00106.ssbld   +++|        ITEM MSGFAMH    C(01,12,09) = [", FAMILY="];  # FAMILY = #
00108  M01S00107.ssbld   +++|        ITEM MSGFAM     C(02,06,08);  # FAMILY AND COMMA #
00109  M01S00108.ssbld   +++|        ITEM MSGZRO1    U(03,00,12) = [0];  # TERMINATOR #
00110  M01S00109.ssbld   +++|        END  # ARRAY MSGDETAIL1 #
00111  M01S00110.ssbld   +++|
00112  M01S00111.ssbld   +++|
00113  M01S00112.ssbld   +++|      ARRAY SPSSTAT [0:0] S(RSLEN);
00114  M01S00113.ssbld   +++|        BEGIN
00115  M01S00114.ssbld   +++|        ITEM SPS$STATUS U(00,48,12); # RETURN STATUS #
00116  M01S00115.ssbld   +++|        END
00117  M01S00116.ssbld   +++|
00118  M01S00117.ssbld   +++|                                               CONTROL EJECT;
00119  M01S00118.ssbld   +++|
00120  M01S00119.ssbld   +++|#
00121  M01S00120.ssbld   +++|*     GET SYSTEM ORIGIN PRIVILEDGES.
00122  M01S00121.ssbld   +++|#
00123  M01S00122.ssbld   +++|
00124  M01S00123.ssbld   +++|      GETSPS(SPSSTAT);
00125  M01S00124.ssbld   +++|      IF SPS$STATUS NQ 0
00126  M01S00125.ssbld   +++|      THEN
00127  M01S00126.ssbld   +++|        BEGIN
00128  M01S00127.ssbld   +++|        BLMSG$LN[0] = " SSBLD - MUST BE SYSTEM ORIGIN.";
00129  M01S00128.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00130  M01S00129.ssbld   +++|        ABORT;                       # ABORT #
00131  M01S00130.ssbld   +++|        END
00132  M01S00131.ssbld   +++|
00133  M01S00132.ssbld   +++|#
00134  M01S00133.ssbld   +++|*     SAVE THE USER-S CURRENT FAMILY AND INDEX IN COMMON.
00135  M01S00134.ssbld   +++|#
00136  M01S00135.ssbld   +++|
00137  M01S00136.ssbld   +++|      GETPFP(PFP[0]);
00138  M01S00137.ssbld   +++|      USER$FAM[0] = PFP$FAM[0];
00139  M01S00138.ssbld   +++|      USER$UI[0] = PFP$UI[0];
00140  M01S00139.ssbld   +++|
00141  M01S00140.ssbld   +++|
00142  M01S00141.ssbld   +++|#
00143  M01S00142.ssbld   +++|*     CRACK THE PARAMETERS ON THE *SSBLD* CALL.
00144  M01S00143.ssbld   +++|#
00145  M01S00144.ssbld   +++|
00146  M01S00145.ssbld   +++|      BLTAB(ARGLIST);                # SET UP THE ARGUMENT LIST #
00147  M01S00146.ssbld   +++|      OPTION = 0;                    # SKIP OVER PROGRAM NAME #
00148  M01S00147.ssbld   +++|      XARG(ARGLIST,OPTION,FLAG);     # CRACK THE PARAMETERS #
00149  M01S00148.ssbld   +++|
00150  M01S00149.ssbld   +++|      IF FLAG NQ SYNTAXOK
00151  M01S00150.ssbld   +++|      THEN
00152  M01S00151.ssbld   +++|        BEGIN
00153  M01S00152.ssbld   +++|        BLMSG$LN[0] = " SSBLD ABORT - SYNTAX ERROR.";
00154  M01S00153.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);     # SYNTAX ERROR MESSAGE #
00155  M01S00154.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00156  M01S00155.ssbld   +++|        END
00157  M01S00156.ssbld   +++|
00158  M01S00157.ssbld   +++|#
00159  M01S00158.ssbld   +++|*     ATTACH SSEXEC UDT SOURCE FILE.
00160  M01S00159.ssbld   +++|#
00161  M01S00160.ssbld   +++|
00162  M01S00161.ssbld   +++|      CFNAME = DARG$CF[0];
00163  M01S00162.ssbld   +++|      BZFILL(CFNAME,TYPFILL"ZFILL",7);  # ZERO FILL FILE NAME #
00164  M01S00163.ssbld   +++|        BEGIN
00165  M01S00164.ssbld   +++|        PFD("ATTACH",CFNAME,0,"M","R","RC",FLAG,"NA",0,0);
00166  M01S00165.ssbld   +++|        IF FLAG NQ OK
00167  M01S00166.ssbld   +++|        THEN
00168  M01S00167.ssbld   +++|          BEGIN  # PROCESS ATTACH ERROR FLAG #
00169  M01S00168.ssbld   +++|          IF FLAG EQ FBS
00170  M01S00169.ssbld   +++|          THEN                       # SSEXEC UDT SOURCE FILE BUSY #
00171  M01S00170.ssbld   +++|            BEGIN
00172  M01S00171.ssbld   +++|            BLMSG$LN[0] = " SSBLD - SUDT FILE BUSY.";
00173  M01S00172.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00174  M01S00173.ssbld   +++|            RESTPFP(PFP$ABORT);      # RETORE USER-S PFP AND ABORT #
00175  M01S00174.ssbld   +++|            END
00176  M01S00175.ssbld   +++|
00177  M01S00176.ssbld   +++|            BEGIN
00178  M01S00177.ssbld   +++|            BLMSG$LN[0] = " SSBLD - NO SOURCE CONFIGURATION FILE. ";
00179  M01S00178.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00180  M01S00179.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00181  M01S00180.ssbld   +++|            END
00182  M01S00181.ssbld   +++|
00183  M01S00182.ssbld   +++|          END  # PROCESS ATTACH ERROR FLAG #
00184  M01S00183.ssbld   +++|
00185  M01S00184.ssbld   +++|        END
00186  M01S00185.ssbld   +++|
00187  M01S00186.ssbld   +++|#
00188  M01S00187.ssbld   +++|*     ATTACH SSEXEC UDT BINARY FILE.
00189  M01S00188.ssbld   +++|#
00190  M01S00189.ssbld   +++|
00191  M01S00190.ssbld   +++|      CFNAME = DARG$BF[0];
00192  M01S00191.ssbld   +++|      BZFILL(CFNAME,TYPFILL"ZFILL",7);
00193  M01S00192.ssbld   +++|        BEGIN
00194  M01S00193.ssbld   +++|        PFD("ATTACH",CFNAME,0,"M","W","RC",FLAG,"NA",0,"PW",BUDTPW,0);
00195  M01S00194.ssbld   +++|        IF FLAG NQ OK
00196  M01S00195.ssbld   +++|        THEN
00197  M01S00196.ssbld   +++|          BEGIN  # PROCESS ATTACH ERROR FLAG #
00198  M01S00197.ssbld   +++|          IF FLAG EQ FBS
00199  M01S00198.ssbld   +++|          THEN                       # COMMUNICATION FILE BUSY #
00200  M01S00199.ssbld   +++|            BEGIN
00201  M01S00200.ssbld   +++|            BLMSG$LN[0] = " SSBLD - BUDT FILE BUSY.";
00202  M01S00201.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00203  M01S00202.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00204  M01S00203.ssbld   +++|            END
00205  M01S00204.ssbld   +++|
00206  M01S00205.ssbld   +++|          IF FLAG EQ FNF
00207  M01S00206.ssbld   +++|          THEN                       # FILE DOES NOT EXIST #
00208  M01S00207.ssbld   +++|            BEGIN
00209  M01S00208.ssbld   +++|            PFD("DEFINE",CFNAME,0,"RC",FLAG,0,"PW",BUDTPW,0);
00210  M01S00209.ssbld   +++|            IF FLAG NQ OK
00211  M01S00210.ssbld   +++|            THEN                     # PROCESS DEFINE ERROR #
00212  M01S00211.ssbld   +++|              BEGIN
00213  M01S00212.ssbld   +++|              BLMSG$LN[0] = " SSBLD - UNABLE TO DEFINE BUDT FILE.";
00214  M01S00213.ssbld   +++|              MESSAGE(BLMSG[0],SYSUDF1);
00215  M01S00214.ssbld   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00216  M01S00215.ssbld   +++|              END
00217  M01S00216.ssbld   +++|
00218  M01S00217.ssbld   +++|            END
00219  M01S00218.ssbld   +++|
00220  M01S00219.ssbld   +++|          ELSE                       # ABNORMAL TERMINATION #
00221  M01S00220.ssbld   +++|            BEGIN
00222  M01S00221.ssbld   +++|            BLMSG$LN[0] = " SSBLD - BUDT FILE PROBLEMS. ";
00223  M01S00222.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00224  M01S00223.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
00225  M01S00224.ssbld   +++|            END
00226  M01S00225.ssbld   +++|
00227  M01S00226.ssbld   +++|          END  # PROCESS ATTACH ERROR FLAG #
00228  M01S00227.ssbld   +++|
00229  M01S00228.ssbld   +++|        END
00230  M01S00229.ssbld   +++|
00231  M01S00230.ssbld   +++|#
00232  M01S00231.ssbld   +++|*     READ THE CONFIGURATION SOURCE FILE AND GENERATE UDT.
00233  M01S00232.ssbld   +++|#
00234  M01S00233.ssbld   +++|
00235  M01S00234.ssbld   +++|      RDSUDT;
00236  M01S00235.ssbld   +++|
00237  M01S00236.ssbld   +++|#
00238  M01S00237.ssbld   +++|*     WRITE THE UDT TO DISK.
00239  M01S00238.ssbld   +++|#
00240  M01S00239.ssbld   +++|
00241  M01S00240.ssbld   +++|      WTBUDT;
00242  M01S00241.ssbld   +++|
00243  M01S00242.ssbld   +++|#
00244  M01S00243.ssbld   +++|*     REATTACH UDT FILE, CLEANUP, AND EXIT.
00245  M01S00244.ssbld   +++|#
00246  M01S00245.ssbld   +++|
00247  M01S00246.ssbld   +++|      PFD("ATTACH",CFNAME,0,"M","R","RC",FLAG,"PW",BUDTPW,0);
00248  M01S00247.ssbld   +++|      IF FLAG NQ OK
00249  M01S00248.ssbld   +++|      THEN                           # PERMANENT FILE PROBLEM #
00250  M01S00249.ssbld   +++|        BEGIN
00251  M01S00250.ssbld   +++|        BLMSG$LN[0] = " SSBLD - CANNOT RE-ATTACH BUDT FILE.";
00252  M01S00251.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00253  M01S00252.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00254  M01S00253.ssbld   +++|        END
00255  M01S00254.ssbld   +++|
00256  M01S00255.ssbld   +++|      RETERN(BL$FET[0],RCL);
00257  M01S00256.ssbld   +++|      BLMSG$LN[0] = " SSBLD COMPLETE.";  # SSBLD COMPLETE #
00258  M01S00257.ssbld   +++|      MESSAGE(BLMSG[0],UDFL1);
00259  M01S00258.ssbld   +++|      RESTPFP(PFP$END);              # RESTORE USER-S *PFP* #
00260  M01S00259.ssbld   +++|
00261  M01S00260.ssbld   +++|      END  # SSBLD #
00262  M01S00261.ssbld   +++|
00263  M01S00262.ssbld   +++|    TERM
00264  M01S00263.ssbld   +++|PROC RDSUDT;
00265  M01S00264.ssbld   +++|
00266  M01S00265.ssbld   +++|
00267  M01S00266.ssbld   +++|# TITLE RDSUDT - READ *SUDT* OR OTHER SPECIFIED FILE TO MEMORY.       #
00268  M01S00267.ssbld   +++|
00269  M01S00268.ssbld   +++|      BEGIN  # RDSUDT #
00270  M01S00269.ssbld   +++|
00271  M01S00270.ssbld   +++|#
00272  M01S00271.ssbld   +++|**    RDSUDT - READ CONFIGURATION SOURCE FILE TO MEMORY.
00273  M01S00272.ssbld   +++|*
00274  M01S00273.ssbld   +++|*     THIS PROCEDURE READS THE M860 CONFIGURATION SOURCE
00275  M01S00274.ssbld   +++|*     FILE TO SSBLD-S MEMORY FOR INTERPRETATION PRIOR
00276  M01S00275.ssbld   +++|*     TO SSBLD GENERATING THE *BUDT* FILE.
00277  M01S00276.ssbld   +++|*     RDSUDT READS THE CONFIGURATION FILE ONE LINE AT
00278  M01S00277.ssbld   +++|*     TIME. THESE STATEMENTS MUST APPEAR IN A SPECIFIED ORDER.
00279  M01S00278.ssbld   +++|*     IF NOT, RDSUDT WILL ABORT THE JOB.  THE ORDER IS:
00280  M01S00279.ssbld   +++|*
00281  M01S00280.ssbld   +++|*       ALL *CU* STATEMENTS APPEAR FIRST.
00282  M01S00281.ssbld   +++|*       ALL *CIF* STATEMENTS APPREAR NEXT.
00283  M01S00282.ssbld   +++|*       ALL *DTI* STATEMENTS APPEAR NEXT.
00284  M01S00283.ssbld   +++|*       ALL *DTO* STATEMENTS APPEAR NEXT.
00285  M01S00284.ssbld   +++|*       ALL *DIF* STATEMENTS APPEAR NEXT.
00286  M01S00285.ssbld   +++|*       ALL *DRC* STATEMENTS APPEAR NEXT.
00287  M01S00286.ssbld   +++|*       ALL *DRD* STATEMENTS APPEAR NEXT.
00288  M01S00287.ssbld   +++|*       ALL *AIF* STATEMENTS APPEAR NEXT.
00289  M01S00288.ssbld   +++|*       ALL *SM* STATEMENTS APPEAR LAST.
00290  M01S00289.ssbld   +++|*
00291  M01S00290.ssbld   +++|*     THE ABOVE STATEMENTS ARE THE ONLY LEGAL MNEMONIC
00292  M01S00291.ssbld   +++|*     DESCRIPTORS ALLOWED. USE OF ANY OTHER DESCRIPTOR
00293  M01S00292.ssbld   +++|*     WILL CAUSE *SSBLD* TO ABORT.
00294  M01S00293.ssbld   +++|*
00295  M01S00294.ssbld   +++|*     AN ASTERISK (*) IN COLUMN ONE INDICATES A COMMENT
00296  M01S00295.ssbld   +++|*     STATEMENT.
00297  M01S00296.ssbld   +++|*
00298  M01S00297.ssbld   +++|*
00299  M01S00298.ssbld   +++|*     PROC RDSUDT.
00300  M01S00299.ssbld   +++|*
00301  M01S00300.ssbld   +++|*     ENTRY   NONE.
00302  M01S00301.ssbld   +++|*
00303  M01S00302.ssbld   +++|*     EXIT    CONFIGURATION SOURCE FILE READ TO MEMORY.
00304  M01S00303.ssbld   +++|*             IT WILL BE SCANNED FOR SYNTACTICAL CORRECTNESS
00305  M01S00304.ssbld   +++|*             AND CORRECT ORDER.
00306  M01S00305.ssbld   +++|*
00307  M01S00306.ssbld   +++|*     MESSAGES
00308  M01S00307.ssbld   +++|*
00309  M01S00308.ssbld   +++|*     RDSUDT - CONFIGURATION FILE EMPTY.
00310  M01S00309.ssbld   +++|*     RDSUDT - INCORRECT *CU* COUNT.
00311  M01S00310.ssbld   +++|*     RDSUDT - MISSING *SM* COUNT COMMAND.
00312  M01S00311.ssbld   +++|*     RDSUDT - CAN-T CRACK *SM* COMMAND.
00313  M01S00312.ssbld   +++|*     RDSUDT - CH/CIF CONFLICT.
00314  M01S00313.ssbld   +++|*     RDSUDT - INCORRECT *SM* COUNT.
00315  M01S00314.ssbld   +++|*     RDUSDT - NULL DIRECTIVE.
00316  M01S00315.ssbld   +++|*     RDSUDT - *CU* COMMAND MISSING/OUT OF PLACE.
00317  M01S00316.ssbld   +++|*     RDSUDT - INCORRECT EST ORDINAL.
00318  M01S00317.ssbld   +++|*     RDSUDT - *CU* ENTRY MISSING = SIGN.
00319  M01S00318.ssbld   +++|*     RDSUDT - CHANNEL 0 NOT FIRST CHANNEL.
00320  M01S00319.ssbld   +++|*     RDSUDT - MISSING CHANNELS ON *CU* COMMAND.
00321  M01S00320.ssbld   +++|*     RDSUDT - *CIF* COMMAND MISSING = SIGN.
00322  M01S00321.ssbld   +++|*     RDSUDT - *DTI* COMMAND MISSING = SIGN.
00323  M01S00322.ssbld   +++|*     RDSUDT - *DTO* COMMAND MISSING = SIGN.
00324  M01S00323.ssbld   +++|*     RDSUDT - *DIF* COMMAND MISSING = SIGN.
00325  M01S00324.ssbld   +++|*     RDSUDT - *DRC* COMMAND MISSING = SIGN.
00326  M01S00325.ssbld   +++|*     RDSUDT - *AIF* COMMAND MISSING = SIGN.
00327  M01S00326.ssbld   +++|*     RDSUDT - *SM* COMMAND MISSING = SIGN.
00328  M01S00327.ssbld   +++|*     RDSUDT - *SM* COMMAND MISSING COMMA.
00329  M01S00328.ssbld   +++|*     RDSUDT - INCORRECT DEVICE ADDRESS.
00330  M01S00329.ssbld   +++|*     RDSUDT - EXTRA ENTRIES ON DIRECTIVE.
00331  M01S00330.ssbld   +++|*     RDSUDT - INCORRECT CONFIGURATION FILE HEADER.
00332  M01S00331.ssbld   +++|*     RDSUDT - STATEMENT OUT OF ORDER.
00333  M01S00332.ssbld   +++|*     RDSUDT - INCORRECT STATUS.
00334  M01S00333.ssbld   +++|*     RDSUDT - INCORRECT COMMAND TERMINATOR.
00335  M01S00334.ssbld   +++|*     RDSUDT - EXTRA PATHS TO *DRD*.
00336  M01S00335.ssbld   +++|*     RDSUDT - EXTRA PATHS TO *SM*.
00337  M01S00336.ssbld   +++|*     RDSUDT - SOURCE FILE STATEMENT CONFLICT.
00338  M01S00337.ssbld   +++|*     RDSUDT - COMMAND SYNTAX ERROR.
00339  M01S00338.ssbld   +++|*     RDSUDT - INCORRECT STATEMENT MNEMONIC.
00340  M01S00339.ssbld   +++|*     RDSUDT - STATEMENT OUT OF ORDER.
00341  M01S00340.ssbld   +++|*     RDSUDT - CONFIGURATION FILE STATEMENT CONFLICT.
Line S00341 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00342  M02S00341.ssbld1  ---|*     RDSUDT - CONFIGURATION FILE EMPTY.
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  M01S00342.ssbld   +++|*
00347  M01S00343.ssbld   +++|#
00348  M01S00344.ssbld   +++|
00349  M01S00345.ssbld   +++|#
00350  M01S00346.ssbld   +++|****  PROC RDSUDT - XREF LIST BEGIN.
00351  M01S00347.ssbld   +++|#
00352  M01S00348.ssbld   +++|
00353  M01S00349.ssbld   +++|      XREF
00354  M01S00350.ssbld   +++|        BEGIN
00355  M01S00351.ssbld   +++|        PROC BZFILL;                 # BLANK OR ZERO FILLS AN ITEM #
00356  M01S00352.ssbld   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
00357  M01S00353.ssbld   +++|        PROC NEXTLIN;                # READ NEXT LINE AND CHECK IT #
00358  M01S00354.ssbld   +++|        PROC NEXTPRM;                # GET NEXT PARAMETER, CHECK IT #
00359  M01S00355.ssbld   +++|        PROC READ;                   # READS A FILE #
00360  M01S00356.ssbld   +++|        PROC READC;                  # READ ONE LINE #
00361  M01S00357.ssbld   +++|        PROC READW;                  # DATA TRANSFER ROUTINE #
00362  M01S00358.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00363  M01S00359.ssbld   +++|                                       OR RETURN #
00364  M01S00360.ssbld   +++|        PROC RETERN;                 # RETURNS A FILE #
00365  M01S00361.ssbld   +++|        PROC REWIND;                 # REWINDS A FILE #
00366  M01S00362.ssbld   +++|        PROC UPDRDST;                # UPDATE NODE STATUS #
00367  M01S00363.ssbld   +++|        FUNC XDXB;                   # CONVERT DISPLAY CODE TO BINARY #
00368  M01S00364.ssbld   +++|        PROC ZFILL;                  # ZERO FILLS A BUFFER #
00369  M01S00365.ssbld   +++|        PROC ZSETFET;                # SETS UP A FET #
00370  M01S00366.ssbld   +++|        END
00371  M01S00367.ssbld   +++|
00372  M01S00368.ssbld   +++|
00373  M01S00369.ssbld   +++|#
00374  M01S00370.ssbld   +++|****  PROC RDSUDT - XREF LIST END.
00375  M01S00371.ssbld   +++|#
00376  M01S00372.ssbld   +++|
00377  M01S00373.ssbld   +++|      DEF MSG$BADEST #" RDSUDT - INCORRECT EST ORDINAL. "#;
00378  M01S00374.ssbld   +++|      DEF MSG$BADADR #" RDSUDT - INCORRECT DEVICE ADDRESS. "#;
00379  M01S00375.ssbld   +++|      DEF MSG$BADENT #" RDSUDT - EXTRA ENTRIES ON DIRECTIVE."#;
00380  M01S00376.ssbld   +++|      DEF MSG$BADNUM #" RDSUDT - INCORRECT CONFIGURATION FILE HEADER."#;
00381  M01S00377.ssbld   +++|      DEF MSG$BADST  #" RDSUDT - INCORRECT STATEMENT MNEMONIC."#;
00382  M01S00378.ssbld   +++|      DEF MSG$BDORD  #" RDSUDT - STATEMENT OUT OF ORDER."#;
00383  M01S00379.ssbld   +++|      DEF MSG$BDST   #" RDSUDT - INCORRECT STATUS."#;
00384  M01S00380.ssbld   +++|      DEF MSG$BDTERM #" RDSUDT - INCORRECT COMMAND TERMINATOR. "#;
00385  M01S00381.ssbld   +++|      DEF MSG$EXDRD  #" RDSUDT - EXTRA PATHS TO *DRD*."#;
00386  M01S00382.ssbld   +++|      DEF MSG$EXPATH #" RDSUDT - EXTRA PATHS TO *SM*."#;
00387  M01S00383.ssbld   +++|      DEF MSG$INCCU  #" RDUSDT - INCORRECT *CU* COUNT."#;
00388  M01S00384.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  M01S00385.ssbld   +++|      DEF MSG$STCON  #" RDSUDT - SOURCE FILE STATEMENT CONFLICT"#;
00393  M01S00386.ssbld   +++|      DEF MSG$SYNER  #" RDSUDT - COMMAND SYNTAX ERROR"#;
00394  M01S00387.ssbld   +++|      DEF PROCNAME   #"RDSUDT."#;    # PROC NAME #
00395  M01S00388.ssbld   +++|      DEF ZERO       #0#;            # CONSTANT ZERO #
00396  M01S00389.ssbld   +++|
00397  M01S00390.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00398  M01S00391.ssbld   +++|*CALL COMBFAS
00399  M01S00392.ssbld   +++|*CALL COMBBZF
00400  M01S00393.ssbld   +++|*CALL COMBFET
00401  M01S00394.ssbld   +++|*CALL COMBTDM
00402  M01S00395.ssbld   +++|*CALL COMBUDT
00403  M01S00396.ssbld   +++|*CALL COMSPFM
00404  M01S00397.ssbld   +++|*CALL COMTBLD
00405  M01S00398.ssbld   +++|*CALL COMTBLP
00406  M01S00399.ssbld   +++|*CALL COMTOUT
00407  M01S00400.ssbld   +++|
00408  M01S00401.ssbld   +++|      ITEM ACCESSOR   I;             # DEVICE ADDRESS OF M861 #
00409  M01S00402.ssbld   +++|      ITEM ARGLIST    I;             # ARGUMENT LIST ADDRESS #
00410  M01S00403.ssbld   +++|      ITEM BUFP       I;             # FWA OF BUFFER #
00411  M01S00404.ssbld   +++|      ITEM CHAR1      C(1);          # ONE CHARACTER #
00412  M01S00405.ssbld   +++|      ITEM CHAR2      C(2);          # TWO CHARACTERS #
00413  M01S00007.ssbld1  +++|      ITEM CHAR3      C(3);          # THREE CHARACTERS #
00414  M01S00406.ssbld   +++|      ITEM CUNUM      I;             # ORDINAL OF CURRENT *CU* #
00415  M01S00407.ssbld   +++|      ITEM CUXX       I;             # ORDINAL OF PRIMARY *CU* #
00416  M01S00408.ssbld   +++|      ITEM CUYY       I;             # ORDINAL OF SECONDARY *CU* #
00417  M01S00409.ssbld   +++|      ITEM NCOL       I;             # NEXT COLUMN NUMBER #
00418  M01S00410.ssbld   +++|      ITEM SCOL       I;             # STARTING COLUMN NUMBER #
00419  M01S00411.ssbld   +++|      ITEM DEVTYPE    C(3);          # DEVICE NMEMONIC #
00420  M01S00412.ssbld   +++|      ITEM DIRNUM     I;             # DIRECTIVE NUMBER #
00421  M01S00413.ssbld   +++|      ITEM DIRLINE    C(90);         # DIRECTIVE TEXT LINE #
00422  M01S00414.ssbld   +++|      ITEM DRDNUM     I;             # ORDINAL OF CURRENT *DRD* #
00423  M01S00415.ssbld   +++|      ITEM EOR        B;             # END-OF-RECORD FLAG #
00424  M01S00416.ssbld   +++|      ITEM FETP       I;             # FWA OF FET #
00425  M01S00417.ssbld   +++|      ITEM FOUND      B;             # LOOP EXIT CONTROL #
00426  M01S00418.ssbld   +++|      ITEM ARGKEY2    C(2);          # ARGUMENT KEY - 2 CHARACTERS #
00427  M01S00419.ssbld   +++|      ITEM ARGKEY3    C(3);          # ARGUMENT KEY - 3 CHARACTERS #
00428  M01S00420.ssbld   +++|      ITEM NKEY2      C(2);          # DIRECTIVE KEY - 2 CHARACTER #
00429  M01S00421.ssbld   +++|      ITEM OKEY2      C(2);          # DIRECTIVE KEY - 2 CHARACTER #
00430  M01S00422.ssbld   +++|      ITEM NKEY3      C(3);          # DIRECTIVE KEY - 3 CHARACTER #
00431  M01S00423.ssbld   +++|      ITEM OKEY3      C(3);          # DIRECTIVE KEY - 3 CHARACTER #
00432  M01S00424.ssbld   +++|      ITEM KEYOK      B;             # CONTROL VARIABLE #
00433  M01S00425.ssbld   +++|      ITEM MASK       I;             # MASK FOR SPECIAL FILE NAMES #
00434  M01S00426.ssbld   +++|      ITEM I          I;             # LOOP INDEX #
00435  M01S00427.ssbld   +++|      ITEM J          I;             # LOOP INDEX #
00436  M01S00428.ssbld   +++|      ITEM K          I;             # LOOP INDEX #
Line S00429 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00437  M02S00429.ssbld1  ---|      ITEM L          I;             # LOOP INDEX #
00438  M01S00430.ssbld   +++|      ITEM LFN        C(7);          # FILE NAME #
00439  M01S00431.ssbld   +++|      ITEM MAXARG     I;             # MAXIMUM NUMBER OF ARGUMENTS #
00440  M01S00432.ssbld   +++|      ITEM LOOPC      B;             # LOOP CONTROL VARIABLE #
00441  M01S00433.ssbld   +++|      ITEM LOOPK      B;             # LOOP CONTROL VARIABLE #
00442  M01S00434.ssbld   +++|      ITEM LOOPL      B;             # LOOP CONTROL #
00443  M01S00435.ssbld   +++|      ITEM NUMCH      I;             # NUMBER OF CHARACTERS #
00444  M01S00436.ssbld   +++|      ITEM ORD        I;             # ORDINAL OF DEVICE TYPE #
00445  M01S00008.ssbld1  +++|      ITEM SAVEDORD   I;             # SAVED DRD ORDINAL #
00446  M01S00437.ssbld   +++|      ITEM SMNUM      I;             # ORDINAL OF CURRENT *SM* #
00447  M01S00438.ssbld   +++|      ITEM STAT       I;             # STATUS OF PROCEDURE CALL #
00448  M01S00439.ssbld   +++|      ITEM TERMINATOR C(1);          # TERMINATING CHARACTER #
00449  M01S00440.ssbld   +++|      ITEM TMPI       I;             # INTEGER SCRATCH #
00450  M01S00441.ssbld   +++|      ITEM TMPJ       I;             # INTEGER SCRATCH #
00451  M01S00442.ssbld   +++|
00452  M01S00443.ssbld   +++|      ARRAY MSG [1:2] S(2);          # MESSAGES DISPLAYED #
00453  M01S00444.ssbld   +++|        BEGIN
00454  M01S00445.ssbld   +++|        ITEM MSGW       C(00,00,20) =  ##
00455  M01S00446.ssbld   +++|          [ "CONFIGURATION FILE READ ",
00456  M01S00447.ssbld   +++|        "                    " ];
00457  M01S00448.ssbld   +++|        END
00458  M01S00449.ssbld   +++|
00459  M01S00450.ssbld   +++|
00460  M01S00451.ssbld   +++|
00461  M01S00452.ssbld   +++|#
00462  M01S00453.ssbld   +++|*     SWITCH STATEMENT
00463  M01S00454.ssbld   +++|#
00464  M01S00455.ssbld   +++|
00465  M01S00456.ssbld   +++|      SWITCH DIRECTIVE NULL,
00466  M01S00457.ssbld   +++|      M862CTLR,
00467  M01S00458.ssbld   +++|      CHANIF,
00468  M01S00459.ssbld   +++|      DEVICETI,
00469  M01S00460.ssbld   +++|      DEVICETO,
00470  M01S00461.ssbld   +++|      DEVICEIF,
00471  M01S00462.ssbld   +++|      DATARC,
00472  M01S00463.ssbld   +++|      NULL,
00473  M01S00464.ssbld   +++|      ACCIF,
00474  M01S00465.ssbld   +++|      NULL,
00475  M01S00466.ssbld   +++|      M861SM;
00476  M01S00467.ssbld   +++|
00477  M01S00468.ssbld   +++|
00478  M01S00469.ssbld   +++|
00479  M01S00470.ssbld   +++|                                               CONTROL EJECT;
00480  M01S00471.ssbld   +++|
00481  M01S00472.ssbld   +++|#
00482  M01S00473.ssbld   +++|*     SET UP FET FOR CONFIGURATION FILE AND REWIND IT.
00483  M01S00474.ssbld   +++|#
00484  M01S00475.ssbld   +++|
00485  M01S00476.ssbld   +++|      LFN = DARG$CF[0];
00486  M01S00477.ssbld   +++|      FETP = LOC(BL$FET[0]);
00487  M01S00478.ssbld   +++|      BUFP = LOC(BL$BUF[0]);
00488  M01S00479.ssbld   +++|      ZSETFET(FETP,LFN,BUFP,BLBUFL,SFETL);
00489  M01S00480.ssbld   +++|      READ(BL$FET[0],NRCL);
00490  M01S00481.ssbld   +++|      EOR = FALSE;
00491  M01S00482.ssbld   +++|
00492  M01S00483.ssbld   +++|#
00493  M01S00484.ssbld   +++|*     READ FIRST 2 CARDS OF CONFIGURATION SOURCE FILE.
00494  M01S00485.ssbld   +++|*     CARD 1 CONTAINS NUMBER OF CU-S (LEFT-JUSTIFIED)
00495  M01S00486.ssbld   +++|*     CARD 2 CONTAINS NUMBER OF SM-S (LEFT-JUSTIFIED)
00496  M01S00487.ssbld   +++|#
00497  M01S00488.ssbld   +++|
00498  M01S00489.ssbld   +++|      READC(BL$FET[0],DIRLINE,9,STAT);
00499  M01S00490.ssbld   +++|      BZFILL(DIRLINE,TYPFILL"BFILL",90);
00500  M01S00491.ssbld   +++|      IF STAT NQ 0
00501  M01S00492.ssbld   +++|      THEN
00502  M01S00493.ssbld   +++|        BEGIN
00503  M01S00494.ssbld   +++|        BLMSG$LN[0] = " RDSUDT - CONFIGURATION FILE EMPTY.";
00504  M01S00495.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00505  M01S00496.ssbld   +++|        END
00506  M01S00497.ssbld   +++|
00507  M01S00498.ssbld   +++|      STAT = XDXB(C<0,1>DIRLINE,1,NUM$CU);
00508  M01S00499.ssbld   +++|      IF STAT NQ 0
00509  M01S00500.ssbld   +++|      THEN
00510  M01S00501.ssbld   +++|        BEGIN
00511  M01S00502.ssbld   +++|        BLMSG$LN[0] = MSG$BADENT;
00512  M01S00503.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00513  M01S00504.ssbld   +++|        RESTPFP(PFP$ABORT);
00514  M01S00505.ssbld   +++|        END
00515  M01S00506.ssbld   +++|
00516  M01S00507.ssbld   +++|      BLMSG$LN[0] = DIRLINE;
00517  M01S00508.ssbld   +++|      MESSAGE(BLMSG[0],SYSUDF1);
00518  M01S00509.ssbld   +++|      P<UDT$WORD> = LOC(BL$UDT$HDR);
00519  M01S00510.ssbld   +++|      IF NUM$CU GR MAXCTN OR NUM$CU LQ ZERO
00520  M01S00511.ssbld   +++|      THEN
00521  M01S00512.ssbld   +++|        BEGIN
00522  M01S00513.ssbld   +++|        BLMSG$LN[0] = MSG$INCCU;
00523  M01S00514.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00524  M01S00515.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00525  M01S00516.ssbld   +++|        END
00526  M01S00517.ssbld   +++|
00527  M01S00518.ssbld   +++|#
00528  M01S00519.ssbld   +++|*      SAVE COUNT OF M862-S
00529  M01S00520.ssbld   +++|#
00530  M01S00521.ssbld   +++|
00531  M01S00522.ssbld   +++|      UDT$LINE$CUN = NUM$CU;
00532  M01S00523.ssbld   +++|
00533  M01S00524.ssbld   +++|      READC(BL$FET[0],DIRLINE,9,STAT);
00534  M01S00525.ssbld   +++|      BZFILL(DIRLINE,TYPFILL"BFILL",90);
00535  M01S00526.ssbld   +++|      IF STAT NQ 0
00536  M01S00527.ssbld   +++|      THEN
00537  M01S00528.ssbld   +++|        BEGIN
00538  M01S00529.ssbld   +++|        BLMSG$LN[0] = " MISSING *SM* COUNT COMMAND.";
00539  M01S00530.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);   # ERROR MESSAGE #
00540  M01S00531.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00541  M01S00532.ssbld   +++|        END
00542  M01S00533.ssbld   +++|
00543  M01S00534.ssbld   +++|      STAT = XDXB(C<0,1>DIRLINE,1,NUM$SM);
00544  M01S00535.ssbld   +++|      IF STAT NQ 0
00545  M01S00536.ssbld   +++|      THEN
00546  M01S00537.ssbld   +++|        BEGIN
00547  M01S00538.ssbld   +++|        BLMSG$LN[0]= " RDSUDT - CAN-T CRACK *SM* COMMAND. ";
00548  M01S00539.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00549  M01S00540.ssbld   +++|        RESTPFP(PFP$ABORT);
00550  M01S00541.ssbld   +++|        END
00551  M01S00542.ssbld   +++|
00552  M01S00543.ssbld   +++|      BLMSG$LN[0] = DIRLINE;
00553  M01S00544.ssbld   +++|      MESSAGE(BLMSG[0],SYSUDF1);
00554  M01S00545.ssbld   +++|      IF NUM$SM GR MAXSM OR NUM$SM LQ ZERO
00555  M01S00546.ssbld   +++|      THEN
00556  M01S00547.ssbld   +++|        BEGIN
00557  M01S00548.ssbld   +++|        BLMSG$LN[0] = MSG$INCSM;
00558  M01S00549.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00559  M01S00550.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
00560  M01S00551.ssbld   +++|        END
00561  M01S00552.ssbld   +++|
00562  M01S00553.ssbld   +++|      UDT$LINE$SMN = NUM$SM;
00563  M01S00554.ssbld   +++|
00564  M01S00555.ssbld   +++|#
00565  M01S00556.ssbld   +++|*      INITIALIZE *BUDT* POSITIONING COUNTERS.
00566  M01S00557.ssbld   +++|#
00567  M01S00558.ssbld   +++|
00568  M01S00559.ssbld   +++|      CUNUM = 0;
00569  M01S00560.ssbld   +++|      SMNUM = 0;
00570  M01S00561.ssbld   +++|
00571  M01S00562.ssbld   +++|#
00572  M01S00563.ssbld   +++|*      READ DIRECTIVES FROM SOURCE FILE
00573  M01S00564.ssbld   +++|#
00574  M01S00565.ssbld   +++|
00575  M01S00566.ssbld   +++|
00576  M01S00567.ssbld   +++|      EOR = FALSE;
00577  M01S00568.ssbld   +++|      SLOWFOR DIRNUM = 1 STEP 1 WHILE NOT EOR
00578  M01S00569.ssbld   +++|      DO
00579  M01S00570.ssbld   +++|        BEGIN
00580  M01S00571.ssbld   +++|
00581  M01S00572.ssbld   +++|        NEXTLIN(DIRLINE,STAT,TMPI);
00582  M01S00573.ssbld   +++|        IF STAT NQ 0
00583  M01S00574.ssbld   +++|        THEN
00584  M01S00575.ssbld   +++|          BEGIN
00585  M01S00576.ssbld   +++|          EOR = TRUE;
00586  M01S00577.ssbld   +++|          TEST DIRNUM;
00587  M01S00578.ssbld   +++|          END
00588  M01S00579.ssbld   +++|
00589  M01S00580.ssbld   +++|        BLMSG$LN[0] = DIRLINE;
00590  M01S00581.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00591  M01S00582.ssbld   +++|
00592  M01S00583.ssbld   +++|        GOTO DIRECTIVE[TMPI];
00593  M01S00584.ssbld   +++|
00594  M01S00585.ssbld   +++|NULL:
00595  M01S00586.ssbld   +++|        BLMSG$LN[0] = " RDSUDT - NULL DIRECTIVE. ";
00596  M01S00587.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
00597  M01S00588.ssbld   +++|        RESTPFP(PFP$ABORT);
00598  M01S00589.ssbld   +++|
00599  M01S00590.ssbld   +++|M862CTLR:
00600  M01S00591.ssbld   +++|        CUNUM = CUNUM + 1;
00601  M01S00592.ssbld   +++|        P<UDT$CN> = LOC(BL$UDT$M862[CUNUM]);
00602  M01S00593.ssbld   +++|        ARGKEY2 = C<0,2>DIRLINE;
00603  M01S00594.ssbld   +++|        ARGKEY3 = "   ";
00604  M01S00595.ssbld   +++|        IF ARGKEY2 NQ NM$KEY2[2]
00605  M01S00596.ssbld   +++|        THEN
00606  M01S00597.ssbld   +++|          BEGIN
00607  M01S00598.ssbld   +++|          BLMSG$LN[0] =              ##
00608  M01S00599.ssbld   +++|            " RDSUDT - *CU* COMMAND MISSING/OUT OF PLACE.";
00609  M01S00600.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00610  M01S00601.ssbld   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S PFP AND ABORT #
00611  M01S00602.ssbld   +++|          END
00612  M01S00603.ssbld   +++|
Line S00604 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00613  M02S00604.ssbld1  ---|        STAT = XDXB(C<2,2>DIRLINE,0,TMPI);
00614  M01S00009.ssbld1  +++|        STAT = XDXB(C<2,3>DIRLINE,0,TMPI);  # ASSUME 3-CHAR EST ORD #
00615  M01S00010.ssbld1  +++|        SCOL = 5;
00616  M01S00605.ssbld   +++|        IF STAT NQ 0
00617  M01S00606.ssbld   +++|        THEN
00618  M01S00607.ssbld   +++|          BEGIN
Line S00608 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00619  M02S00608.ssbld1  ---|          BLMSG$LN[0] = MSG$BADEST;
Line S00609 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00620  M02S00609.ssbld1  ---|          MESSAGE(BLMSG[0],SYSUDF1);
Line S00610 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00621  M02S00610.ssbld1  ---|          RESTPFP(PFP$ABORT);
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  M01S00611.ssbld   +++|          END
00633  M01S00612.ssbld   +++|
Line S00613 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00634  M02S00613.ssbld1  ---|        IF TMPI LS 10 OR TMPI GR MAXEST
00635  M01S00021.ssbld1  +++|        IF (TMPI LS O"10") OR (TMPI GR MAXEST)
00636  M01S00614.ssbld   +++|        THEN
00637  M01S00615.ssbld   +++|          BEGIN
00638  M01S00616.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00639  M01S00617.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00640  M01S00618.ssbld   +++|          RESTPFP(PFP$ABORT);
00641  M01S00619.ssbld   +++|          END
00642  M01S00620.ssbld   +++|
00643  M01S00621.ssbld   +++|        UD$ESTO[1] = TMPI;
Line S00622 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00644  M02S00622.ssbld1  ---|        IF C<4,1>DIRLINE NQ "="
00645  M01S00022.ssbld1  +++|        IF C<SCOL,1>DIRLINE NQ "="
00646  M01S00623.ssbld   +++|        THEN
00647  M01S00624.ssbld   +++|          BEGIN
00648  M01S00625.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *CU* ENTRY MISSING = SIGN.";
00649  M01S00626.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00650  M01S00627.ssbld   +++|          RESTPFP(PFP$ABORT);
00651  M01S00628.ssbld   +++|          END
00652  M01S00629.ssbld   +++|
Line S00630 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00653  M02S00630.ssbld1  ---|        STAT = XDXB(C<5,1>DIRLINE,0,TMPI);
00654  M01S00023.ssbld1  +++|        SCOL = SCOL + 1;
00655  M01S00024.ssbld1  +++|        CHAR1 = C<SCOL,1>DIRLINE;
00656  M01S00025.ssbld1  +++|        STAT = XDXB(CHAR1,0,TMPI);
00657  M01S00631.ssbld   +++|        IF STAT NQ 0
00658  M01S00632.ssbld   +++|        THEN
00659  M01S00633.ssbld   +++|          BEGIN
00660  M01S00634.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00661  M01S00635.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00662  M01S00636.ssbld   +++|          RESTPFP(PFP$ABORT);
00663  M01S00637.ssbld   +++|          END
00664  M01S00638.ssbld   +++|
00665  M01S00639.ssbld   +++|        IF (TMPI EQ 1) OR (TMPI EQ 3) OR (TMPI EQ 5) OR (TMPI EQ 7)
00666  M01S00640.ssbld   +++|          THEN
00667  M01S00641.ssbld   +++|          BEGIN
00668  M01S00642.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
00669  M01S00643.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00670  M01S00644.ssbld   +++|          RESTPFP(PFP$ABORT);
00671  M01S00645.ssbld   +++|          END
00672  M01S00646.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  M01S00647.ssbld   +++|#
00683  M01S00648.ssbld   +++|*      STORE M862 DEVICE ADDRESS AND SET EXISTENCE FLAG.
00684  M01S00649.ssbld   +++|#
00685  M01S00650.ssbld   +++|
00686  M01S00651.ssbld   +++|        UD$CUDA[1] = TMPI;
00687  M01S00652.ssbld   +++|        UD$EXIST[1] = TRUE;
Line S00653 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
00688  M02S00653.ssbld1  ---|        SCOL=7;
00689  M01S00035.ssbld1  +++|        SCOL = SCOL + 1;
00690  M01S00654.ssbld   +++|        DEVTYPE = "CH";
00691  M01S00655.ssbld   +++|        NUMCH = 2;
00692  M01S00656.ssbld   +++|        LOOPC = FALSE;
00693  M01S00657.ssbld   +++|        SLOWFOR J = 1 STEP 1 WHILE ( NOT LOOPC )
00694  M01S00658.ssbld   +++|        DO
00695  M01S00659.ssbld   +++|          BEGIN
00696  M01S00660.ssbld   +++|          NEXTPRM(DIRLINE,SCOL,DEVTYPE,  ##
00697  M01S00661.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR);
00698  M01S00662.ssbld   +++|
00699  M01S00663.ssbld   +++|#
00700  M01S00664.ssbld   +++|*     INSERT *CH* DATA INTO BUDT
00701  M01S00665.ssbld   +++|#
00702  M01S00666.ssbld   +++|
00703  M01S00667.ssbld   +++|          IF ( ORD EQ 0 ) AND ( J NQ 1 ) AND ( STAT NQ 2 )
00704  M01S00668.ssbld   +++|          THEN
00705  M01S00669.ssbld   +++|            BEGIN
00706  M01S00670.ssbld   +++|            BLMSG$LN[0] = " RDSUDT - CHANNEL 0 NOT FIRST CHANNEL.";
00707  M01S00671.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00708  M01S00672.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
00709  M01S00673.ssbld   +++|            END
00710  M01S00674.ssbld   +++|
00711  M01S00675.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 1 )
00712  M01S00676.ssbld   +++|          THEN
00713  M01S00677.ssbld   +++|            BEGIN
00714  M01S00678.ssbld   +++|            UD$CHANA[1] = ORD;
00715  M01S00679.ssbld   +++|            UD$CHEX0[1] = TRUE;
00716  M01S00680.ssbld   +++|            IF STAT EQ 1
00717  M01S00681.ssbld   +++|            THEN
00718  M01S00682.ssbld   +++|              BEGIN
00719  M01S00683.ssbld   +++|              UD$CHANA$O[1] = TRUE;
00720  M01S00684.ssbld   +++|              END
00721  M01S00685.ssbld   +++|
00722  M01S00686.ssbld   +++|            ELSE
00723  M01S00687.ssbld   +++|              BEGIN
00724  M01S00688.ssbld   +++|              UD$CHANA$O[1] = FALSE;
00725  M01S00689.ssbld   +++|              END
00726  M01S00690.ssbld   +++|
00727  M01S00691.ssbld   +++|            END
00728  M01S00692.ssbld   +++|
00729  M01S00693.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 1 )
00730  M01S00694.ssbld   +++|          THEN
00731  M01S00695.ssbld   +++|            BEGIN
00732  M01S00696.ssbld   +++|            UD$CHANA[1] = 0;
00733  M01S00697.ssbld   +++|            UD$CHANA$O[1] = FALSE;
00734  M01S00698.ssbld   +++|            END
00735  M01S00699.ssbld   +++|
00736  M01S00700.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 2 )
00737  M01S00701.ssbld   +++|          THEN
00738  M01S00702.ssbld   +++|            BEGIN
00739  M01S00703.ssbld   +++|            UD$CHANB[1] = ORD;
00740  M01S00704.ssbld   +++|            UD$CHEX1[1] = TRUE;
00741  M01S00705.ssbld   +++|            IF STAT EQ 1
00742  M01S00706.ssbld   +++|            THEN
00743  M01S00707.ssbld   +++|              BEGIN
00744  M01S00708.ssbld   +++|              UD$CHANB$O[1] = TRUE;
00745  M01S00709.ssbld   +++|              END
00746  M01S00710.ssbld   +++|
00747  M01S00711.ssbld   +++|            ELSE
00748  M01S00712.ssbld   +++|              BEGIN
00749  M01S00713.ssbld   +++|              UD$CHANB$O[1] = FALSE;
00750  M01S00714.ssbld   +++|              END
00751  M01S00715.ssbld   +++|
00752  M01S00716.ssbld   +++|            END
00753  M01S00717.ssbld   +++|
00754  M01S00718.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 2 )
00755  M01S00719.ssbld   +++|          THEN
00756  M01S00720.ssbld   +++|            BEGIN
00757  M01S00721.ssbld   +++|            UD$CHANB[1] = 0;
00758  M01S00722.ssbld   +++|            UD$CHANB$O[1] = FALSE;
00759  M01S00723.ssbld   +++|            END
00760  M01S00724.ssbld   +++|
00761  M01S00725.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 3 )
00762  M01S00726.ssbld   +++|          THEN
00763  M01S00727.ssbld   +++|            BEGIN
00764  M01S00728.ssbld   +++|            UD$CHANC[1] = ORD;
00765  M01S00729.ssbld   +++|            UD$CHEX2[1] = TRUE;
00766  M01S00730.ssbld   +++|            IF STAT EQ 1
00767  M01S00731.ssbld   +++|            THEN
00768  M01S00732.ssbld   +++|              BEGIN
00769  M01S00733.ssbld   +++|              UD$CHANC$O[1] = TRUE;
00770  M01S00734.ssbld   +++|              END
00771  M01S00735.ssbld   +++|
00772  M01S00736.ssbld   +++|            ELSE
00773  M01S00737.ssbld   +++|              BEGIN
00774  M01S00738.ssbld   +++|              UD$CHANC$O[1] = FALSE;
00775  M01S00739.ssbld   +++|              END
00776  M01S00740.ssbld   +++|
00777  M01S00741.ssbld   +++|            END
00778  M01S00742.ssbld   +++|
00779  M01S00743.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 3 )
00780  M01S00744.ssbld   +++|          THEN
00781  M01S00745.ssbld   +++|            BEGIN
00782  M01S00746.ssbld   +++|            UD$CHANC[1] = 0;
00783  M01S00747.ssbld   +++|            UD$CHANC$O[1] = FALSE;
00784  M01S00748.ssbld   +++|            END
00785  M01S00749.ssbld   +++|
00786  M01S00750.ssbld   +++|          IF ( STAT NQ 2 ) AND ( J EQ 4 )
00787  M01S00751.ssbld   +++|          THEN
00788  M01S00752.ssbld   +++|            BEGIN
00789  M01S00753.ssbld   +++|            UD$CHAND[1] = ORD;
00790  M01S00754.ssbld   +++|            UD$CHEX3[1] = TRUE;
00791  M01S00755.ssbld   +++|            IF STAT EQ 1
00792  M01S00756.ssbld   +++|            THEN
00793  M01S00757.ssbld   +++|              BEGIN
00794  M01S00758.ssbld   +++|              UD$CHAND$O[1] = TRUE;
00795  M01S00759.ssbld   +++|              END
00796  M01S00760.ssbld   +++|
00797  M01S00761.ssbld   +++|            ELSE
00798  M01S00762.ssbld   +++|              BEGIN
00799  M01S00763.ssbld   +++|              UD$CHAND$O[1] = FALSE;
00800  M01S00764.ssbld   +++|              END
00801  M01S00765.ssbld   +++|
00802  M01S00766.ssbld   +++|            END
00803  M01S00767.ssbld   +++|
00804  M01S00768.ssbld   +++|          IF ( STAT EQ 2 ) AND ( J EQ 4 )
00805  M01S00769.ssbld   +++|          THEN
00806  M01S00770.ssbld   +++|            BEGIN
00807  M01S00771.ssbld   +++|            UD$CHAND[1] = 0;
00808  M01S00772.ssbld   +++|            UD$CHAND$O[1] = FALSE;
00809  M01S00773.ssbld   +++|            END
00810  M01S00774.ssbld   +++|
00811  M01S00775.ssbld   +++|          IF TERMINATOR EQ PERIOD
00812  M01S00776.ssbld   +++|          THEN
00813  M01S00777.ssbld   +++|            BEGIN
00814  M01S00778.ssbld   +++|            LOOPC = TRUE;
00815  M01S00779.ssbld   +++|            TEST J;
00816  M01S00780.ssbld   +++|            END
00817  M01S00781.ssbld   +++|
00818  M01S00782.ssbld   +++|          IF J GR MAX$CH
00819  M01S00783.ssbld   +++|          THEN
00820  M01S00784.ssbld   +++|            BEGIN
00821  M01S00785.ssbld   +++|            BLMSG$LN[0] =            ##
00822  M01S00786.ssbld   +++|              "RDSUDT - MISSING CHANNELS ON *CU* COMMAND.";
00823  M01S00787.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
00824  M01S00788.ssbld   +++|            RESTPFP(PFP$ABORT);
00825  M01S00789.ssbld   +++|            END
00826  M01S00790.ssbld   +++|
00827  M01S00791.ssbld   +++|          SCOL = NCOL;
00828  M01S00792.ssbld   +++|          TEST J;
00829  M01S00793.ssbld   +++|          END
00830  M01S00794.ssbld   +++|
00831  M01S00795.ssbld   +++|        TEST DIRNUM;
00832  M01S00796.ssbld   +++|
00833  M01S00797.ssbld   +++|CHANIF:
00834  M01S00798.ssbld   +++|        IF( ARGKEY2 NQ NM$KEY2[2] ) AND (ARGKEY3 NQ "   ")
00835  M01S00799.ssbld   +++|        THEN
00836  M01S00800.ssbld   +++|          BEGIN
00837  M01S00801.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
00838  M01S00802.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00839  M01S00803.ssbld   +++|          RESTPFP(PFP$ABORT);
00840  M01S00804.ssbld   +++|          END
00841  M01S00805.ssbld   +++|
00842  M01S00806.ssbld   +++|        ARGKEY3 = NM$KEY3[3];
00843  M01S00807.ssbld   +++|
00844  M01S00808.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
00845  M01S00809.ssbld   +++|        IF STAT NQ 0
00846  M01S00810.ssbld   +++|        THEN
00847  M01S00811.ssbld   +++|          BEGIN
00848  M01S00812.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
00849  M01S00813.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00850  M01S00814.ssbld   +++|          RESTPFP(PFP$ABORT);
00851  M01S00815.ssbld   +++|          END
00852  M01S00816.ssbld   +++|
00853  M01S00817.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 3
00854  M01S00818.ssbld   +++|        THEN
00855  M01S00819.ssbld   +++|          BEGIN
00856  M01S00820.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
00857  M01S00821.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00858  M01S00822.ssbld   +++|          RESTPFP(PFP$ABORT);
00859  M01S00823.ssbld   +++|          END
00860  M01S00824.ssbld   +++|
00861  M01S00825.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
00862  M01S00826.ssbld   +++|        THEN
00863  M01S00827.ssbld   +++|          BEGIN
00864  M01S00828.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *CIF* COMMAND MISSING = SIGN.";
00865  M01S00829.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00866  M01S00830.ssbld   +++|          RESTPFP(PFP$ABORT);
00867  M01S00831.ssbld   +++|          END
00868  M01S00832.ssbld   +++|
00869  M01S00833.ssbld   +++|        SCOL = 5;
00870  M01S00834.ssbld   +++|        DEVTYPE = NM$KEY3[4];
00871  M01S00835.ssbld   +++|        NUMCH = 3;
00872  M01S00836.ssbld   +++|        LOOPC = FALSE;
00873  M01S00837.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
00874  M01S00838.ssbld   +++|        DO
00875  M01S00839.ssbld   +++|          BEGIN
00876  M01S00840.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
00877  M01S00841.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
00878  M01S00842.ssbld   +++|          IF STAT NQ 2
00879  M01S00843.ssbld   +++|          THEN
00880  M01S00844.ssbld   +++|            BEGIN
00881  M01S00845.ssbld   +++|
00882  M01S00846.ssbld   +++|#
00883  M01S00847.ssbld   +++|*      CHECK FOR VALID CHANNELS AND CIF LASHUPS.
00884  M01S00848.ssbld   +++|#
00885  M01S00849.ssbld   +++|
00886  M01S00850.ssbld   +++|            IF ( ( TMPI EQ 0 )       ##
00887  M01S00851.ssbld   +++|              AND ( UD$CHANA[1] EQ 0 )  ##
00888  M01S00852.ssbld   +++|              AND ( UD$CHANB[1] NQ 0 ) )  ##
00889  M01S00853.ssbld   +++|              OR ( ( TMPI EQ 1 )     ##
00890  M01S00854.ssbld   +++|              AND ( UD$CHANB[1] EQ 0 ) )  ##
00891  M01S00855.ssbld   +++|              OR ( ( TMPI EQ 2 )     ##
00892  M01S00856.ssbld   +++|              AND ( UD$CHANC[1] EQ 0 ) )  ##
00893  M01S00857.ssbld   +++|              OR ( ( TMPI EQ 3 )     ##
00894  M01S00858.ssbld   +++|              AND ( UD$CHAND[1] EQ 0 ) )  ##
00895  M01S00859.ssbld   +++|            THEN
00896  M01S00860.ssbld   +++|              BEGIN
00897  M01S00861.ssbld   +++|              BLMSG$LN[0]= " RDSUDT - CH/CIF CONFLICT. ";
00898  M01S00862.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1)  ##
00899  M01S00863.ssbld   +++|                ;
00900  M01S00864.ssbld   +++|              RESTPFP ( PFP$ABORT );  # RESTORE USER-S PFP AND ABORT #
00901  M01S00865.ssbld   +++|              END
00902  M01S00866.ssbld   +++|
00903  M01S00867.ssbld   +++|            CIFI ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
00904  M01S00868.ssbld   +++|            END
00905  M01S00869.ssbld   +++|
00906  M01S00870.ssbld   +++|          IF STAT EQ 1
00907  M01S00871.ssbld   +++|          THEN
00908  M01S00872.ssbld   +++|            BEGIN
00909  M01S00873.ssbld   +++|            CIFI ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
00910  M01S00874.ssbld   +++|            END
00911  M01S00875.ssbld   +++|
00912  M01S00876.ssbld   +++|          IF TERMINATOR EQ PERIOD
00913  M01S00877.ssbld   +++|          THEN
00914  M01S00878.ssbld   +++|            BEGIN
00915  M01S00879.ssbld   +++|            LOOPC = TRUE;
00916  M01S00880.ssbld   +++|            TEST J;
00917  M01S00881.ssbld   +++|            END
00918  M01S00882.ssbld   +++|
00919  M01S00883.ssbld   +++|          IF J EQ MAX$DTI
00920  M01S00884.ssbld   +++|          THEN
00921  M01S00885.ssbld   +++|            BEGIN
00922  M01S00886.ssbld   +++|            LOOPC = TRUE;
00923  M01S00887.ssbld   +++|            TEST J;
00924  M01S00888.ssbld   +++|            END
00925  M01S00889.ssbld   +++|
00926  M01S00890.ssbld   +++|          SCOL = NCOL;
00927  M01S00891.ssbld   +++|          END
00928  M01S00892.ssbld   +++|
00929  M01S00893.ssbld   +++|        SCOL = NCOL;
00930  M01S00894.ssbld   +++|
00931  M01S00895.ssbld   +++|        DEVTYPE = NM$KEY3[5];
00932  M01S00896.ssbld   +++|        LOOPC = FALSE;
00933  M01S00897.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
00934  M01S00898.ssbld   +++|        DO
00935  M01S00899.ssbld   +++|          BEGIN
00936  M01S00900.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
00937  M01S00901.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
00938  M01S00902.ssbld   +++|          IF STAT NQ 2
00939  M01S00903.ssbld   +++|          THEN
00940  M01S00904.ssbld   +++|            BEGIN
00941  M01S00905.ssbld   +++|
00942  M01S00906.ssbld   +++|#
00943  M01S00907.ssbld   +++|*      CHECK FOR VALID CHANNELS AND CIF LASHUPS.
00944  M01S00908.ssbld   +++|#
00945  M01S00909.ssbld   +++|
00946  M01S00910.ssbld   +++|            IF ( ( TMPI EQ 0 )       ##
00947  M01S00911.ssbld   +++|              AND ( UD$CHANA[1] EQ 0 )  ##
00948  M01S00912.ssbld   +++|              AND ( UD$CHANB[1] NQ 0 ) )  ##
00949  M01S00913.ssbld   +++|              OR ( ( TMPI EQ 1 )     ##
00950  M01S00914.ssbld   +++|              AND ( UD$CHANB[1] EQ 0 ) )  ##
00951  M01S00915.ssbld   +++|              OR ( ( TMPI EQ 2 )     ##
00952  M01S00916.ssbld   +++|              AND ( UD$CHANC[1] EQ 0 ) )  ##
00953  M01S00917.ssbld   +++|              OR ( ( TMPI EQ 3 )     ##
00954  M01S00918.ssbld   +++|              AND ( UD$CHAND[1] EQ 0 ) )  ##
00955  M01S00919.ssbld   +++|            THEN
00956  M01S00920.ssbld   +++|              BEGIN
00957  M01S00921.ssbld   +++|              BLMSG$LN[0]= " RDSUDT - CH/CIF CONFLICT. ";
00958  M01S00922.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1);
00959  M01S00923.ssbld   +++|              RESTPFP ( PFP$ABORT );  # RESTORE USER-S PFP AND ABORT #
00960  M01S00924.ssbld   +++|              END
00961  M01S00925.ssbld   +++|
00962  M01S00926.ssbld   +++|            CIFO ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
00963  M01S00927.ssbld   +++|            END
00964  M01S00928.ssbld   +++|
00965  M01S00929.ssbld   +++|          IF STAT EQ 1
00966  M01S00930.ssbld   +++|          THEN
00967  M01S00931.ssbld   +++|            BEGIN
00968  M01S00932.ssbld   +++|            CIFO ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
00969  M01S00933.ssbld   +++|            END
00970  M01S00934.ssbld   +++|
00971  M01S00935.ssbld   +++|          IF TERMINATOR EQ PERIOD
00972  M01S00936.ssbld   +++|          THEN
00973  M01S00937.ssbld   +++|            BEGIN
00974  M01S00938.ssbld   +++|            LOOPC = TRUE;
00975  M01S00939.ssbld   +++|            TEST J;
00976  M01S00940.ssbld   +++|            END
00977  M01S00941.ssbld   +++|
00978  M01S00942.ssbld   +++|          IF J EQ MAX$DTO
00979  M01S00943.ssbld   +++|          THEN
00980  M01S00944.ssbld   +++|            BEGIN
00981  M01S00945.ssbld   +++|            LOOPC = TRUE;
00982  M01S00946.ssbld   +++|            TEST J;
00983  M01S00947.ssbld   +++|            END
00984  M01S00948.ssbld   +++|
00985  M01S00949.ssbld   +++|          SCOL = NCOL;
00986  M01S00950.ssbld   +++|          END
00987  M01S00951.ssbld   +++|
00988  M01S00952.ssbld   +++|        TEST DIRNUM;
00989  M01S00953.ssbld   +++|
00990  M01S00954.ssbld   +++|DEVICETI:
00991  M01S00955.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[3] )
00992  M01S00956.ssbld   +++|          THEN
00993  M01S00957.ssbld   +++|          BEGIN
00994  M01S00958.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
00995  M01S00959.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
00996  M01S00960.ssbld   +++|          RESTPFP(PFP$ABORT);
00997  M01S00961.ssbld   +++|          END
00998  M01S00962.ssbld   +++|
00999  M01S00963.ssbld   +++|        ARGKEY3 = NM$KEY3[4];
01000  M01S00964.ssbld   +++|
01001  M01S00965.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01002  M01S00966.ssbld   +++|        IF STAT NQ 0
01003  M01S00967.ssbld   +++|        THEN
01004  M01S00968.ssbld   +++|          BEGIN
01005  M01S00969.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01006  M01S00970.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01007  M01S00971.ssbld   +++|          RESTPFP(PFP$ABORT);
01008  M01S00972.ssbld   +++|          END
01009  M01S00973.ssbld   +++|
01010  M01S00974.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01011  M01S00975.ssbld   +++|        THEN
01012  M01S00976.ssbld   +++|          BEGIN
01013  M01S00977.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01014  M01S00978.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01015  M01S00979.ssbld   +++|          RESTPFP(PFP$ABORT);
01016  M01S00980.ssbld   +++|          END
01017  M01S00981.ssbld   +++|
01018  M01S00982.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01019  M01S00983.ssbld   +++|        THEN
01020  M01S00984.ssbld   +++|          BEGIN
01021  M01S00985.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DTI* COMMAND MISSING = SIGN.";
01022  M01S00986.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01023  M01S00987.ssbld   +++|          RESTPFP(PFP$ABORT);
01024  M01S00988.ssbld   +++|          END
01025  M01S00989.ssbld   +++|
01026  M01S00990.ssbld   +++|        SCOL = 5;
01027  M01S00991.ssbld   +++|        DEVTYPE = NM$KEY3[6];
01028  M01S00992.ssbld   +++|        NUMCH = 3;
01029  M01S00993.ssbld   +++|        LOOPC = FALSE;
01030  M01S00994.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01031  M01S00995.ssbld   +++|        DO
01032  M01S00996.ssbld   +++|          BEGIN
01033  M01S00997.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01034  M01S00998.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01035  M01S00999.ssbld   +++|          IF STAT NQ 2
01036  M01S01000.ssbld   +++|          THEN
01037  M01S01001.ssbld   +++|            BEGIN
01038  M01S01002.ssbld   +++|            DTI01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01039  M01S01003.ssbld   +++|            END
01040  M01S01004.ssbld   +++|
01041  M01S01005.ssbld   +++|          IF STAT EQ 1
01042  M01S01006.ssbld   +++|          THEN
01043  M01S01007.ssbld   +++|            BEGIN
01044  M01S01008.ssbld   +++|            DTI01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01045  M01S01009.ssbld   +++|            END
01046  M01S01010.ssbld   +++|
01047  M01S01011.ssbld   +++|          IF TERMINATOR EQ PERIOD
01048  M01S01012.ssbld   +++|          THEN
01049  M01S01013.ssbld   +++|            BEGIN
01050  M01S01014.ssbld   +++|            LOOPC = TRUE;
01051  M01S01015.ssbld   +++|            TEST J;
01052  M01S01016.ssbld   +++|            END
01053  M01S01017.ssbld   +++|
01054  M01S01018.ssbld   +++|          IF J GR MAX$DIF
01055  M01S01019.ssbld   +++|          THEN
01056  M01S01020.ssbld   +++|            BEGIN
01057  M01S01021.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01058  M01S01022.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01059  M01S01023.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01060  M01S01024.ssbld   +++|            END
01061  M01S01025.ssbld   +++|
01062  M01S01026.ssbld   +++|          SCOL = NCOL;
01063  M01S01027.ssbld   +++|          END
01064  M01S01028.ssbld   +++|
01065  M01S01029.ssbld   +++|        TEST DIRNUM;
01066  M01S01030.ssbld   +++|DEVICETO:
01067  M01S01031.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[4] )
01068  M01S01032.ssbld   +++|          THEN
01069  M01S01033.ssbld   +++|          BEGIN
01070  M01S01034.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01071  M01S01035.ssbld   +++|          MESSAGE( BLMSG[0],SYSUDF1);
01072  M01S01036.ssbld   +++|          RESTPFP(PFP$ABORT);
01073  M01S01037.ssbld   +++|          END
01074  M01S01038.ssbld   +++|
01075  M01S01039.ssbld   +++|        ARGKEY3 = NM$KEY3[5];
01076  M01S01040.ssbld   +++|
01077  M01S01041.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01078  M01S01042.ssbld   +++|        IF STAT NQ 0
01079  M01S01043.ssbld   +++|        THEN
01080  M01S01044.ssbld   +++|          BEGIN
01081  M01S01045.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01082  M01S01046.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01083  M01S01047.ssbld   +++|          RESTPFP(PFP$ABORT);
01084  M01S01048.ssbld   +++|          END
01085  M01S01049.ssbld   +++|
01086  M01S01050.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01087  M01S01051.ssbld   +++|        THEN
01088  M01S01052.ssbld   +++|          BEGIN
01089  M01S01053.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01090  M01S01054.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01091  M01S01055.ssbld   +++|          RESTPFP(PFP$ABORT);
01092  M01S01056.ssbld   +++|          END
01093  M01S01057.ssbld   +++|
01094  M01S01058.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01095  M01S01059.ssbld   +++|        THEN
01096  M01S01060.ssbld   +++|          BEGIN
01097  M01S01061.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DTO* COMMAND MISSING = SIGN.";
01098  M01S01062.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01099  M01S01063.ssbld   +++|          RESTPFP(PFP$ABORT);
01100  M01S01064.ssbld   +++|          END
01101  M01S01065.ssbld   +++|
01102  M01S01066.ssbld   +++|        SCOL = 5;
01103  M01S01067.ssbld   +++|        DEVTYPE = NM$KEY3[6];
01104  M01S01068.ssbld   +++|        NUMCH = 3;
01105  M01S01069.ssbld   +++|        LOOPC = FALSE;
01106  M01S01070.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01107  M01S01071.ssbld   +++|        DO
01108  M01S01072.ssbld   +++|          BEGIN
01109  M01S01073.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01110  M01S01074.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01111  M01S01075.ssbld   +++|          IF STAT NQ 2
01112  M01S01076.ssbld   +++|          THEN
01113  M01S01077.ssbld   +++|            BEGIN
01114  M01S01078.ssbld   +++|            DTO01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01115  M01S01079.ssbld   +++|            END
01116  M01S01080.ssbld   +++|
01117  M01S01081.ssbld   +++|          IF STAT EQ 1
01118  M01S01082.ssbld   +++|          THEN
01119  M01S01083.ssbld   +++|            BEGIN
01120  M01S01084.ssbld   +++|            DTO01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01121  M01S01085.ssbld   +++|            END
01122  M01S01086.ssbld   +++|
01123  M01S01087.ssbld   +++|          IF TERMINATOR EQ PERIOD
01124  M01S01088.ssbld   +++|          THEN
01125  M01S01089.ssbld   +++|            BEGIN
01126  M01S01090.ssbld   +++|            LOOPC = TRUE;
01127  M01S01091.ssbld   +++|            TEST J;
01128  M01S01092.ssbld   +++|            END
01129  M01S01093.ssbld   +++|
01130  M01S01094.ssbld   +++|          IF J GR MAX$DIF
01131  M01S01095.ssbld   +++|          THEN
01132  M01S01096.ssbld   +++|            BEGIN
01133  M01S01097.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01134  M01S01098.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01135  M01S01099.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01136  M01S01100.ssbld   +++|            END
01137  M01S01101.ssbld   +++|
01138  M01S01102.ssbld   +++|          SCOL = NCOL;
01139  M01S01103.ssbld   +++|          END
01140  M01S01104.ssbld   +++|
01141  M01S01105.ssbld   +++|        TEST DIRNUM;
01142  M01S01106.ssbld   +++|DEVICEIF:
01143  M01S01107.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[5] )
01144  M01S01108.ssbld   +++|          THEN
01145  M01S01109.ssbld   +++|          BEGIN
01146  M01S01110.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01147  M01S01111.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01148  M01S01112.ssbld   +++|          RESTPFP(PFP$ABORT);
01149  M01S01113.ssbld   +++|          END
01150  M01S01114.ssbld   +++|
01151  M01S01115.ssbld   +++|        ARGKEY3 = NM$KEY3[6];
01152  M01S01116.ssbld   +++|
01153  M01S01117.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01154  M01S01118.ssbld   +++|        IF STAT NQ 0
01155  M01S01119.ssbld   +++|        THEN
01156  M01S01120.ssbld   +++|          BEGIN
01157  M01S01121.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01158  M01S01122.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01159  M01S01123.ssbld   +++|          RESTPFP(PFP$ABORT);
01160  M01S01124.ssbld   +++|          END
01161  M01S01125.ssbld   +++|
01162  M01S01126.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01163  M01S01127.ssbld   +++|        THEN
01164  M01S01128.ssbld   +++|          BEGIN
01165  M01S01129.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01166  M01S01130.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01167  M01S01131.ssbld   +++|          RESTPFP(PFP$ABORT);
01168  M01S01132.ssbld   +++|          END
01169  M01S01133.ssbld   +++|
01170  M01S01134.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01171  M01S01135.ssbld   +++|        THEN
01172  M01S01136.ssbld   +++|          BEGIN
01173  M01S01137.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DIF* COMMAND MISSING = SIGN.";
01174  M01S01138.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01175  M01S01139.ssbld   +++|          RESTPFP(PFP$ABORT);
01176  M01S01140.ssbld   +++|          END
01177  M01S01141.ssbld   +++|
01178  M01S01142.ssbld   +++|        SCOL = 5;
01179  M01S01143.ssbld   +++|        DEVTYPE = NM$KEY3[7];
01180  M01S01144.ssbld   +++|        NUMCH = 3;
01181  M01S01145.ssbld   +++|        LOOPC = FALSE;
01182  M01S01146.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01183  M01S01147.ssbld   +++|        DO
01184  M01S01148.ssbld   +++|          BEGIN
01185  M01S01149.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01186  M01S01150.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01187  M01S01151.ssbld   +++|          IF STAT NQ 2
01188  M01S01152.ssbld   +++|          THEN
01189  M01S01153.ssbld   +++|            BEGIN
01190  M01S01154.ssbld   +++|            DIF01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01191  M01S01155.ssbld   +++|            END
01192  M01S01156.ssbld   +++|
01193  M01S01157.ssbld   +++|          IF STAT EQ 1
01194  M01S01158.ssbld   +++|          THEN
01195  M01S01159.ssbld   +++|            BEGIN
01196  M01S01160.ssbld   +++|            DIF01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01197  M01S01161.ssbld   +++|            END
01198  M01S01162.ssbld   +++|
01199  M01S01163.ssbld   +++|          IF TERMINATOR EQ PERIOD
01200  M01S01164.ssbld   +++|          THEN
01201  M01S01165.ssbld   +++|            BEGIN
01202  M01S01166.ssbld   +++|            LOOPC = TRUE;
01203  M01S01167.ssbld   +++|            TEST J;
01204  M01S01168.ssbld   +++|            END
01205  M01S01169.ssbld   +++|
01206  M01S01170.ssbld   +++|          IF J GR MAX$DRC
01207  M01S01171.ssbld   +++|          THEN
01208  M01S01172.ssbld   +++|            BEGIN
01209  M01S01173.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01210  M01S01174.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01211  M01S01175.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01212  M01S01176.ssbld   +++|            END
01213  M01S01177.ssbld   +++|
01214  M01S01178.ssbld   +++|          SCOL = NCOL;
01215  M01S01179.ssbld   +++|          END
01216  M01S01180.ssbld   +++|
01217  M01S01181.ssbld   +++|        TEST DIRNUM;
01218  M01S01182.ssbld   +++|DATARC:
01219  M01S01183.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[6] )
01220  M01S01184.ssbld   +++|          THEN
01221  M01S01185.ssbld   +++|          BEGIN
01222  M01S01186.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01223  M01S01187.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01224  M01S01188.ssbld   +++|          RESTPFP(PFP$ABORT);
01225  M01S01189.ssbld   +++|          END
01226  M01S01190.ssbld   +++|
01227  M01S01191.ssbld   +++|        ARGKEY3 = NM$KEY3[7];
01228  M01S01192.ssbld   +++|
01229  M01S01193.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01230  M01S01194.ssbld   +++|        IF STAT NQ 0
01231  M01S01195.ssbld   +++|        THEN
01232  M01S01196.ssbld   +++|          BEGIN
01233  M01S01197.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01234  M01S01198.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01235  M01S01199.ssbld   +++|          RESTPFP(PFP$ABORT);
01236  M01S01200.ssbld   +++|          END
01237  M01S01201.ssbld   +++|
Line S01202 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01238  M02S01202.ssbld1  ---|        IF TMPI LS 0 OR TMPI GR 1
01239  M01S00036.ssbld1  +++|        IF TMPI LS 0
01240  M01S00037.ssbld1  +++|          OR TMPI GR MAX$DRC
01241  M01S01203.ssbld   +++|        THEN
01242  M01S01204.ssbld   +++|          BEGIN
01243  M01S01205.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01244  M01S01206.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01245  M01S01207.ssbld   +++|          RESTPFP(PFP$ABORT);
01246  M01S01208.ssbld   +++|          END
01247  M01S01209.ssbld   +++|
01248  M01S01210.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01249  M01S01211.ssbld   +++|        THEN
01250  M01S01212.ssbld   +++|          BEGIN
01251  M01S01213.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *DRC* ENTRY MISSING = SIGN.";
01252  M01S01214.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01253  M01S01215.ssbld   +++|          RESTPFP(PFP$ABORT);
01254  M01S01216.ssbld   +++|          END
01255  M01S01217.ssbld   +++|
01256  M01S01218.ssbld   +++|        SCOL = 5;
01257  M01S01219.ssbld   +++|        DEVTYPE = NM$KEY3[8];
01258  M01S01220.ssbld   +++|        NUMCH = 3;
01259  M01S01221.ssbld   +++|        LOOPC = FALSE;
01260  M01S01222.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01261  M01S01223.ssbld   +++|        DO
01262  M01S01224.ssbld   +++|          BEGIN
01263  M01S01225.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01264  M01S01226.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
01265  M01S01227.ssbld   +++|          IF STAT NQ 2
01266  M01S01228.ssbld   +++|          THEN
01267  M01S01229.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  M01S01230.ssbld   +++|            IF TMPI EQ 0
01280  M01S01231.ssbld   +++|            THEN
01281  M01S01232.ssbld   +++|              BEGIN
01282  M01S01233.ssbld   +++|              DRC00 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01283  M01S01234.ssbld   +++|              END
01284  M01S01235.ssbld   +++|
Line S01236 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01285  M02S01236.ssbld1  ---|            ELSE
01286  M01S00049.ssbld1  +++|            IF TMPI EQ 1
01287  M01S00050.ssbld1  +++|            THEN
01288  M01S01237.ssbld   +++|              BEGIN
01289  M01S01238.ssbld   +++|              DRC01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
01290  M01S01239.ssbld   +++|              END
01291  M01S01240.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  M01S01241.ssbld   +++|            END
01305  M01S01242.ssbld   +++|
01306  M01S01243.ssbld   +++|          IF STAT EQ 1
01307  M01S01244.ssbld   +++|          THEN
01308  M01S01245.ssbld   +++|            BEGIN
01309  M01S01246.ssbld   +++|            IF TMPI EQ 0
01310  M01S01247.ssbld   +++|            THEN
01311  M01S01248.ssbld   +++|              BEGIN
01312  M01S01249.ssbld   +++|              DRC00 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01313  M01S01250.ssbld   +++|              END
01314  M01S01251.ssbld   +++|
Line S01252 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01315  M02S01252.ssbld1  ---|            ELSE
01316  M01S00063.ssbld1  +++|          IF TMPI EQ 1
01317  M01S00064.ssbld1  +++|          THEN
01318  M01S01253.ssbld   +++|              BEGIN
01319  M01S01254.ssbld   +++|              DRC01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
01320  M01S01255.ssbld   +++|              END
01321  M01S01256.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  M01S01257.ssbld   +++|            END
01335  M01S01258.ssbld   +++|
01336  M01S01259.ssbld   +++|          IF J GR MAX$DRD
01337  M01S01260.ssbld   +++|          THEN
01338  M01S01261.ssbld   +++|            BEGIN
01339  M01S01262.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01340  M01S01263.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01341  M01S01264.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01342  M01S01265.ssbld   +++|            END
01343  M01S01266.ssbld   +++|
01344  M01S01267.ssbld   +++|          IF TERMINATOR EQ PERIOD
01345  M01S01268.ssbld   +++|          THEN
01346  M01S01269.ssbld   +++|            BEGIN
01347  M01S01270.ssbld   +++|            LOOPC = TRUE;
01348  M01S01271.ssbld   +++|            TEST J;
01349  M01S01272.ssbld   +++|            END
01350  M01S01273.ssbld   +++|
01351  M01S01274.ssbld   +++|          SCOL = NCOL;
01352  M01S01275.ssbld   +++|          END
01353  M01S01276.ssbld   +++|
01354  M01S01277.ssbld   +++|        TEST DIRNUM;
01355  M01S01278.ssbld   +++|
01356  M01S01279.ssbld   +++|ACCIF:
01357  M01S01280.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[7] )
01358  M01S01281.ssbld   +++|          THEN
01359  M01S01282.ssbld   +++|          BEGIN
01360  M01S01283.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01361  M01S01284.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01362  M01S01285.ssbld   +++|          RESTPFP(PFP$ABORT);
01363  M01S01286.ssbld   +++|          END
01364  M01S01287.ssbld   +++|
01365  M01S01288.ssbld   +++|        ARGKEY3 = NM$KEY3[9];
01366  M01S01289.ssbld   +++|
01367  M01S01290.ssbld   +++|        STAT = XDXB(C<3,1>DIRLINE,0,TMPI);
01368  M01S01291.ssbld   +++|        IF STAT NQ 0
01369  M01S01292.ssbld   +++|        THEN
01370  M01S01293.ssbld   +++|          BEGIN
01371  M01S01294.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01372  M01S01295.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01373  M01S01296.ssbld   +++|          RESTPFP(PFP$ABORT);
01374  M01S01297.ssbld   +++|          END
01375  M01S01298.ssbld   +++|
01376  M01S01299.ssbld   +++|        IF TMPI LS 0 OR TMPI GR 1
01377  M01S01300.ssbld   +++|        THEN
01378  M01S01301.ssbld   +++|          BEGIN
01379  M01S01302.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01380  M01S01303.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01381  M01S01304.ssbld   +++|          RESTPFP(PFP$ABORT);
01382  M01S01305.ssbld   +++|          END
01383  M01S01306.ssbld   +++|
01384  M01S01307.ssbld   +++|        IF C<4,1>DIRLINE NQ "="
01385  M01S01308.ssbld   +++|        THEN
01386  M01S01309.ssbld   +++|          BEGIN
01387  M01S01310.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *AIF* ENTRY MISSING = SIGN.";
01388  M01S01311.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01389  M01S01312.ssbld   +++|          RESTPFP(PFP$ABORT);
01390  M01S01313.ssbld   +++|          END
01391  M01S01314.ssbld   +++|
01392  M01S01315.ssbld   +++|        SCOL = 5;
01393  M01S01316.ssbld   +++|        DEVTYPE = NM$KEY2[10];
01394  M01S01317.ssbld   +++|        NUMCH = 2;
01395  M01S01318.ssbld   +++|        LOOPC = FALSE;
01396  M01S01319.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE ( NOT LOOPC )
01397  M01S01320.ssbld   +++|        DO
01398  M01S01321.ssbld   +++|          BEGIN
01399  M01S01322.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01400  M01S01323.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR );
Line S01324 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01401  M02S01324.ssbld1  ---|          IF STAT NQ 2
Line S01325 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01402  M02S01325.ssbld1  ---|          THEN
Line S01326 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01403  M02S01326.ssbld1  ---|            BEGIN
Line S01327 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01404  M02S01327.ssbld1  ---|            AIF01 ( 1 , TMPI , ORD , PATH$DF"U$EXISTS" , 1 );
Line S01328 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01405  M02S01328.ssbld1  ---|            END
Line S01329 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01406  M02S01329.ssbld1  ---|
Line S01330 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01407  M02S01330.ssbld1  ---|          IF STAT EQ 1
Line S01331 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01408  M02S01331.ssbld1  ---|          THEN
Line S01332 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01409  M02S01332.ssbld1  ---|            BEGIN
Line S01333 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01410  M02S01333.ssbld1  ---|            AIF01 ( 1 , TMPI , ORD , PATH$DF"U$ON" , 1 );
Line S01334 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01411  M02S01334.ssbld1  ---|            END
Line S01335 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01412  M02S01335.ssbld1  ---|
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  M01S01336.ssbld   +++|          IF TERMINATOR EQ PERIOD
01455  M01S01337.ssbld   +++|          THEN
01456  M01S01338.ssbld   +++|            BEGIN
01457  M01S01339.ssbld   +++|            LOOPC = TRUE;
01458  M01S01340.ssbld   +++|            TEST J;
01459  M01S01341.ssbld   +++|            END
01460  M01S01342.ssbld   +++|
01461  M01S01343.ssbld   +++|          IF J GR MAX$AC
01462  M01S01344.ssbld   +++|          THEN
01463  M01S01345.ssbld   +++|            BEGIN
01464  M01S01346.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01465  M01S01347.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01466  M01S01348.ssbld   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S PFP AND ABORT #
01467  M01S01349.ssbld   +++|            END
01468  M01S01350.ssbld   +++|
01469  M01S01351.ssbld   +++|          SCOL = NCOL;
01470  M01S01352.ssbld   +++|          END
01471  M01S01353.ssbld   +++|
01472  M01S01354.ssbld   +++|        TEST DIRNUM;
01473  M01S01355.ssbld   +++|
01474  M01S01356.ssbld   +++|M861SM:
01475  M01S01357.ssbld   +++|        SMNUM = SMNUM + 1;
01476  M01S01358.ssbld   +++|        P<UDT$SMA> = LOC(BL$UDT$M861[SMNUM]);
01477  M01S01359.ssbld   +++|        IF ( ARGKEY2 NQ NM$KEY2[2] ) AND ( ARGKEY3 NQ NM$KEY3[9] )
01478  M01S01360.ssbld   +++|          THEN
01479  M01S01361.ssbld   +++|          BEGIN
01480  M01S01362.ssbld   +++|          BLMSG$LN[0] = MSG$BDORD;
01481  M01S01363.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01482  M01S01364.ssbld   +++|          RESTPFP(PFP$ABORT);
01483  M01S01365.ssbld   +++|          END
01484  M01S01366.ssbld   +++|
01485  M01S01367.ssbld   +++|        ARGKEY2 = NM$KEY2[11];
01486  M01S01368.ssbld   +++|
01487  M01S01369.ssbld   +++|        IF ( C<2,1>DIRLINE LS "A" ) OR ( C<2,1>DIRLINE GR "H" )
01488  M01S01370.ssbld   +++|        THEN
01489  M01S01371.ssbld   +++|          BEGIN
01490  M01S01372.ssbld   +++|          BLMSG$LN[0] = MSG$BADEST;
01491  M01S01373.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01492  M01S01374.ssbld   +++|          RESTPFP(PFP$ABORT);
01493  M01S01375.ssbld   +++|          END
01494  M01S01376.ssbld   +++|
01495  M01S01377.ssbld   +++|        SM$ID[1] = C<2,1>DIRLINE;
01496  M01S01378.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  M01S01379.ssbld   +++|        IF C<3,1>DIRLINE NQ "="
01505  M01S01380.ssbld   +++|        THEN
01506  M01S01381.ssbld   +++|          BEGIN
01507  M01S01382.ssbld   +++|          BLMSG$LN[0] = " RDSUDT - *SM* ENTRY MISSING = SIGN.";
01508  M01S01383.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01509  M01S01384.ssbld   +++|          RESTPFP(PFP$ABORT);
01510  M01S01385.ssbld   +++|          END
01511  M01S01386.ssbld   +++|
01512  M01S01387.ssbld   +++|        IF ( C<4,2>DIRLINE NQ "ON" ) AND ( C<4,3>DIRLINE NQ "OFF" )
01513  M01S01388.ssbld   +++|          THEN
01514  M01S01389.ssbld   +++|          BEGIN
01515  M01S01390.ssbld   +++|          BLMSG$LN[0] = MSG$BDST;
01516  M01S01391.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01517  M01S01392.ssbld   +++|          RESTPFP(PFP$ABORT);
01518  M01S01393.ssbld   +++|          END
01519  M01S01394.ssbld   +++|
01520  M01S01395.ssbld   +++|        IF C<4,2>DIRLINE EQ "ON"
01521  M01S01396.ssbld   +++|        THEN
01522  M01S01397.ssbld   +++|          BEGIN
01523  M01S01398.ssbld   +++|          SCOL = 6;
01524  M01S01399.ssbld   +++|          SM$ON[1] = TRUE;
01525  M01S01400.ssbld   +++|          END
01526  M01S01401.ssbld   +++|
01527  M01S01402.ssbld   +++|        ELSE
01528  M01S01403.ssbld   +++|          BEGIN
01529  M01S01404.ssbld   +++|          SCOL = 7;
01530  M01S01405.ssbld   +++|          END
01531  M01S01406.ssbld   +++|
01532  M01S01407.ssbld   +++|        IF C<SCOL,1>DIRLINE NQ COMMA
01533  M01S01408.ssbld   +++|        THEN
01534  M01S01409.ssbld   +++|          BEGIN
01535  M01S01410.ssbld   +++|          BLMSG$LN[0] = "RDSUDT - *SM* COMMAND MISSING COMMA.";
01536  M01S01411.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01537  M01S01412.ssbld   +++|          RESTPFP(PFP$ABORT);
01538  M01S01413.ssbld   +++|          END
01539  M01S01414.ssbld   +++|
01540  M01S01415.ssbld   +++|        SCOL = SCOL +1;
01541  M01S01416.ssbld   +++|        IF C<SCOL,2>DIRLINE NQ NM$KEY2[10]
01542  M01S01417.ssbld   +++|        THEN
01543  M01S01418.ssbld   +++|          BEGIN
01544  M01S01419.ssbld   +++|          BLMSG$LN[0] = MSG$BADST;
01545  M01S01420.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01546  M01S01421.ssbld   +++|          RESTPFP(PFP$ABORT);
01547  M01S01422.ssbld   +++|          END
01548  M01S01423.ssbld   +++|
01549  M01S01424.ssbld   +++|        SCOL = SCOL+2;
01550  M01S01425.ssbld   +++|        CHAR1 = C<SCOL,1>DIRLINE;
01551  M01S01426.ssbld   +++|        STAT = XDXB(CHAR1,0,ACCESSOR);
01552  M01S01427.ssbld   +++|        IF STAT NQ 0
01553  M01S01428.ssbld   +++|        THEN
01554  M01S01429.ssbld   +++|          BEGIN
01555  M01S01430.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01556  M01S01431.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01557  M01S01432.ssbld   +++|          RESTPFP(PFP$ABORT);
01558  M01S01433.ssbld   +++|          END
01559  M01S01434.ssbld   +++|
Line S01435 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01560  M02S01435.ssbld1  ---|        IF ( ACCESSOR LS 0 ) OR ( ACCESSOR GR 3 )
01561  M01S00125.ssbld1  +++|        IF ((ACCESSOR LS 0) OR (ACCESSOR GR 7))
01562  M01S01436.ssbld   +++|        THEN
01563  M01S01437.ssbld   +++|          BEGIN
01564  M01S01438.ssbld   +++|          BLMSG$LN[0] = MSG$BADADR;
01565  M01S01439.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01566  M01S01440.ssbld   +++|          RESTPFP(PFP$ABORT);
01567  M01S01441.ssbld   +++|          END
01568  M01S01442.ssbld   +++|
01569  M01S01443.ssbld   +++|        SCOL=SCOL+1;
01570  M01S01444.ssbld   +++|        IF C<SCOL,1>DIRLINE NQ COMMA
01571  M01S01445.ssbld   +++|        THEN
01572  M01S01446.ssbld   +++|          BEGIN
01573  M01S01447.ssbld   +++|          BLMSG$LN[0] = MSG$SYNER;
01574  M01S01448.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
01575  M01S01449.ssbld   +++|          RESTPFP(PFP$ABORT);
01576  M01S01450.ssbld   +++|          END
01577  M01S01451.ssbld   +++|
01578  M01S01452.ssbld   +++|        SCOL = SCOL+1;
01579  M01S01453.ssbld   +++|
01580  M01S01454.ssbld   +++|#
01581  M01S01455.ssbld   +++|*     LINK M862-S WITH M861-S
01582  M01S01456.ssbld   +++|#
01583  M01S01457.ssbld   +++|
01584  M01S01458.ssbld   +++|        LOOPK = FALSE;
01585  M01S01459.ssbld   +++|        SLOWFOR J = 1 STEP 1 WHILE NOT LOOPK
01586  M01S01460.ssbld   +++|        DO
01587  M01S01461.ssbld   +++|          BEGIN
01588  M01S01462.ssbld   +++|          IF C<SCOL,1>DIRLINE EQ COMMA
01589  M01S01463.ssbld   +++|          THEN
01590  M01S01464.ssbld   +++|            BEGIN
01591  M01S01465.ssbld   +++|            SCOL = SCOL+1;
01592  M01S01466.ssbld   +++|            IF J GR MAX$SMCU
01593  M01S01467.ssbld   +++|            THEN
01594  M01S01468.ssbld   +++|              BEGIN
01595  M01S01469.ssbld   +++|              LOOPK = TRUE;
01596  M01S01470.ssbld   +++|              TEST J;
01597  M01S01471.ssbld   +++|              END
01598  M01S01472.ssbld   +++|
01599  M01S01473.ssbld   +++|            TEST J;
01600  M01S01474.ssbld   +++|            END
01601  M01S01475.ssbld   +++|
01602  M01S01476.ssbld   +++|          IF ( C<SCOL,2>DIRLINE NQ NM$KEY2[2] )  ##
01603  M01S01477.ssbld   +++|            AND ( C<SCOL,3>DIRLINE NQ NM$KEY3[8] )
01604  M01S01478.ssbld   +++|          THEN
01605  M01S01479.ssbld   +++|            BEGIN
01606  M01S01480.ssbld   +++|            BLMSG$LN[0] = MSG$STCON;
01607  M01S01481.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01608  M01S01482.ssbld   +++|            RESTPFP(PFP$ABORT);
01609  M01S01483.ssbld   +++|            END
01610  M01S01484.ssbld   +++|
01611  M01S01485.ssbld   +++|          IF C<SCOL,3>DIRLINE EQ NM$KEY3[8]
01612  M01S01486.ssbld   +++|          THEN
01613  M01S01487.ssbld   +++|            BEGIN
01614  M01S01488.ssbld   +++|            LOOPK = TRUE;
01615  M01S01489.ssbld   +++|            TEST J;
01616  M01S01490.ssbld   +++|            END
01617  M01S01491.ssbld   +++|
01618  M01S01492.ssbld   +++|          IF J GR MAX$SMCU
01619  M01S01493.ssbld   +++|          THEN
01620  M01S01494.ssbld   +++|            BEGIN
01621  M01S01495.ssbld   +++|            BLMSG$LN[0] = MSG$BADENT;
01622  M01S01496.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);
01623  M01S01497.ssbld   +++|            RESTPFP(PFP$ABORT);
01624  M01S01498.ssbld   +++|            END
01625  M01S01499.ssbld   +++|
01626  M01S01500.ssbld   +++|
01627  M01S01501.ssbld   +++|          SCOL = SCOL+2;
Line S01502 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01628  M02S01502.ssbld1  ---|          CHAR2 = C<SCOL,2>DIRLINE;
Line S01503 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01629  M02S01503.ssbld1  ---|          STAT = XDXB(CHAR2,0,ORD);
01630  M01S00126.ssbld1  +++|          CHAR3 = C<SCOL,3>DIRLINE;
01631  M01S00127.ssbld1  +++|          STAT = XDXB(CHAR3,0,ORD);  # ASSUME 3-CHARACTER CU ORDINAL #
01632  M01S01504.ssbld   +++|          IF STAT NQ 0
01633  M01S01505.ssbld   +++|          THEN
01634  M01S01506.ssbld   +++|            BEGIN
Line S01507 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01635  M02S01507.ssbld1  ---|            BLMSG$LN[0] = MSG$BADADR;
Line S01508 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01636  M02S01508.ssbld1  ---|            MESSAGE(BLMSG[0],SYSUDF1);
Line S01509 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01637  M02S01509.ssbld1  ---|            RESTPFP(PFP$ABORT);
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  M01S01510.ssbld   +++|            END
01650  M01S01511.ssbld   +++|
Line S01512 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01651  M02S01512.ssbld1  ---|          SCOL = SCOL+3;
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  M01S01513.ssbld   +++|          LOOPC = FALSE;
01667  M01S01514.ssbld   +++|          SLOWFOR K = 1 STEP 1 WHILE NOT LOOPC
01668  M01S01515.ssbld   +++|          DO
01669  M01S01516.ssbld   +++|            BEGIN
01670  M01S01517.ssbld   +++|            P<UDT$CN> = LOC(BL$UDT$M862[K]);
01671  M01S01518.ssbld   +++|            IF UD$ESTO[1] NQ ORD
01672  M01S01519.ssbld   +++|            THEN
01673  M01S01520.ssbld   +++|              BEGIN
01674  M01S01521.ssbld   +++|              IF K GQ MAXCTN
01675  M01S01522.ssbld   +++|              THEN
01676  M01S01523.ssbld   +++|                BEGIN
01677  M01S01524.ssbld   +++|                BLMSG$LN[0] = MSG$STCON;
01678  M01S01525.ssbld   +++|                MESSAGE(BLMSG[0],SYSUDF1);
01679  M01S01526.ssbld   +++|                RESTPFP(PFP$ABORT);
01680  M01S01527.ssbld   +++|                END
01681  M01S01528.ssbld   +++|
01682  M01S01529.ssbld   +++|              END
01683  M01S01530.ssbld   +++|
01684  M01S01531.ssbld   +++|            IF UD$ESTO[1] EQ ORD
01685  M01S01532.ssbld   +++|            THEN
01686  M01S01533.ssbld   +++|              BEGIN
01687  M01S01534.ssbld   +++|              LOOPC = TRUE;
01688  M01S01535.ssbld   +++|              TEST K;
01689  M01S01536.ssbld   +++|              END
01690  M01S01537.ssbld   +++|
01691  M01S01538.ssbld   +++|            TEST K;
01692  M01S01539.ssbld   +++|            END
01693  M01S01540.ssbld   +++|
01694  M01S01541.ssbld   +++|#
01695  M01S01542.ssbld   +++|*     INSERT ACCESSOR DEVICE ADDRESS INTO M861 TABLE
01696  M01S01543.ssbld   +++|#
01697  M01S01544.ssbld   +++|
01698  M01S01545.ssbld   +++|          SM$SUN[1] = ACCESSOR;
01699  M01S01546.ssbld   +++|
01700  M01S01547.ssbld   +++|#
01701  M01S01548.ssbld   +++|*     MOVE ACCESSOR LINKAGE TO M861 TABLE
01702  M01S01549.ssbld   +++|#
01703  M01S01550.ssbld   +++|
01704  M01S01551.ssbld   +++|          K = K-1;
01705  M01S01552.ssbld   +++|          IF ( SM$STS0[1] NQ 0 )  ##
01706  M01S01553.ssbld   +++|            AND ( SM$STS1[1] NQ 0 )
01707  M01S01554.ssbld   +++|          THEN
01708  M01S01555.ssbld   +++|            BEGIN
01709  M01S01556.ssbld   +++|            BLMSG$LN[0] = MSG$EXPATH;
01710  M01S01557.ssbld   +++|            MESSAGE(BLMSG[0],SYSUDF1);  # ERROR IN CONFIGURATION FILE #
01711  M01S01558.ssbld   +++|            RESTPFP(PFP$ABORT);
01712  M01S01559.ssbld   +++|            END
01713  M01S01560.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  M01S01561.ssbld   +++|          IF SM$STS0[1] EQ 0
01727  M01S01562.ssbld   +++|          THEN
01728  M01S01563.ssbld   +++|            BEGIN
01729  M01S01564.ssbld   +++|            SM$STS0[1] = SM$FLAG[1];
01730  M01S01565.ssbld   +++|            SM$CUO0[1] = K;
Line S01566 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01731  M02S01566.ssbld1  ---|            SLOWFOR I = 0 STEP 1 UNTIL MAX$AC
Line S01567 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01732  M02S01567.ssbld1  ---|            DO
Line S01568 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01733  M02S01568.ssbld1  ---|              BEGIN
Line S01569 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01734  M02S01569.ssbld1  ---|              IF B<I*6,6>UD$AIF0[1] NQ 0
Line S01570 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01735  M02S01570.ssbld1  ---|                AND ACCESSOR EQ I
Line S01571 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01736  M02S01571.ssbld1  ---|              THEN
Line S01572 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01737  M02S01572.ssbld1  ---|                BEGIN
Line S01573 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01738  M02S01573.ssbld1  ---|                B<I*6,6>UD$SMAIF0[1] = SMNUM;  # LINK SM TO CU #
Line S01574 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01739  M02S01574.ssbld1  ---|                END
Line S01575 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01740  M02S01575.ssbld1  ---|
Line S01576 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01741  M02S01576.ssbld1  ---|              IF B<I*6,6>UD$AIF1[1] NQ 0
Line S01577 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01742  M02S01577.ssbld1  ---|                AND ACCESSOR EQ I
Line S01578 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01743  M02S01578.ssbld1  ---|              THEN
Line S01579 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01744  M02S01579.ssbld1  ---|                BEGIN
Line S01580 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01745  M02S01580.ssbld1  ---|                B<I*6,6>UD$SMAIF1[1] = SMNUM;  # LINK SM TO CU #
Line S01581 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01746  M02S01581.ssbld1  ---|                END
Line S01582 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01747  M02S01582.ssbld1  ---|
Line S01583 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01748  M02S01583.ssbld1  ---|              TEST I;
Line S01584 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01749  M02S01584.ssbld1  ---|              END  # TEST I #
Line S01585 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01750  M02S01585.ssbld1  ---|
01751  M01S01586.ssbld   +++|            TEST J;
01752  M01S01587.ssbld   +++|            END
01753  M01S01588.ssbld   +++|
01754  M01S01589.ssbld   +++|          IF SM$STS1[1] EQ 0
01755  M01S01590.ssbld   +++|          THEN
01756  M01S01591.ssbld   +++|            BEGIN
01757  M01S01592.ssbld   +++|            SM$STS1[1] = SM$FLAG[1];
01758  M01S01593.ssbld   +++|            SM$CUO1[1] = K;
Line S01594 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01759  M02S01594.ssbld1  ---|            SLOWFOR I = 0 STEP 1 UNTIL MAX$AC
Line S01595 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01760  M02S01595.ssbld1  ---|            DO
Line S01596 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01761  M02S01596.ssbld1  ---|              BEGIN
Line S01597 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01762  M02S01597.ssbld1  ---|              IF B<I*6,6>UD$AIF0[1] NQ 0
Line S01598 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01763  M02S01598.ssbld1  ---|                AND ACCESSOR EQ I
Line S01599 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01764  M02S01599.ssbld1  ---|              THEN
Line S01600 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01765  M02S01600.ssbld1  ---|                BEGIN
Line S01601 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01766  M02S01601.ssbld1  ---|                B<I*6,6>UD$SMAIF0[1] = SMNUM;  # LINK SM TO CU #
Line S01602 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01767  M02S01602.ssbld1  ---|                END
Line S01603 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01768  M02S01603.ssbld1  ---|
Line S01604 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01769  M02S01604.ssbld1  ---|              IF B<I*6,6>UD$AIF1[1] NQ 0
Line S01605 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01770  M02S01605.ssbld1  ---|                AND ACCESSOR EQ I
Line S01606 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01771  M02S01606.ssbld1  ---|              THEN
Line S01607 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01772  M02S01607.ssbld1  ---|                BEGIN
Line S01608 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01773  M02S01608.ssbld1  ---|                B<I*6,6>UD$SMAIF1[1] = SMNUM;  # LINK SM TO CU #
Line S01609 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01774  M02S01609.ssbld1  ---|                END
Line S01610 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01775  M02S01610.ssbld1  ---|
Line S01611 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01776  M02S01611.ssbld1  ---|              TEST I;
Line S01612 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01777  M02S01612.ssbld1  ---|              END  # TEST I #
Line S01613 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01778  M02S01613.ssbld1  ---|
01779  M01S01614.ssbld   +++|            TEST J;
01780  M01S01615.ssbld   +++|            END
01781  M01S01616.ssbld   +++|
01782  M01S01617.ssbld   +++|
01783  M01S01618.ssbld   +++|          END  # TEST J #
01784  M01S01619.ssbld   +++|
01785  M01S01620.ssbld   +++|#
01786  M01S01621.ssbld   +++|*     NOW CRACK DRD COMMANDS
01787  M01S01622.ssbld   +++|#
01788  M01S01623.ssbld   +++|
01789  M01S01624.ssbld   +++|        DEVTYPE = NM$KEY3[8];
01790  M01S01625.ssbld   +++|        NUMCH = 3;
01791  M01S01626.ssbld   +++|        LOOPK = FALSE;
01792  M01S01627.ssbld   +++|        SLOWFOR J = 0 STEP 1 WHILE NOT LOOPK
01793  M01S01628.ssbld   +++|        DO
01794  M01S01629.ssbld   +++|          BEGIN
01795  M01S01630.ssbld   +++|          NEXTPRM( DIRLINE,SCOL,DEVTYPE,  ##
01796  M01S01631.ssbld   +++|            NUMCH,ORD,NCOL,STAT,TERMINATOR);
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  M01S01632.ssbld   +++|          IF STAT NQ 2
01805  M01S01633.ssbld   +++|          THEN
01806  M01S01634.ssbld   +++|            BEGIN
01807  M01S01635.ssbld   +++|            SMDRD ( 1 , ORD , PATH$DF"U$EXISTS" , 1 );
01808  M01S01636.ssbld   +++|
01809  M01S01637.ssbld   +++|
01810  M01S01638.ssbld   +++|#
01811  M01S01639.ssbld   +++|*     VALIDATE ACCESSOR AND DRD DEVICE ADDRESSES
01812  M01S01640.ssbld   +++|#
01813  M01S01641.ssbld   +++|
01814  M01S01642.ssbld   +++|            IF ( ( ACCESSOR EQ 0 )   ##
01815  M01S01643.ssbld   +++|              AND ( ORD GR 1 ) )     ##
01816  M01S01644.ssbld   +++|              OR ( ( ACCESSOR EQ 1 )  ##
01817  M01S01645.ssbld   +++|              AND ( ORD LS 2 OR ORD GR 3 ) )  ##
01818  M01S01646.ssbld   +++|              OR ( ( ACCESSOR EQ 2 )  ##
01819  M01S01647.ssbld   +++|              AND ( ORD LS 4 OR ORD GR 5 ) )  ##
01820  M01S01648.ssbld   +++|              OR ( ( ACCESSOR EQ 3 )  ##
01821  M01S01649.ssbld   +++|              AND ( ORD LS 6 ) )     ##
01822  M01S01650.ssbld   +++|            THEN
01823  M01S01651.ssbld   +++|              BEGIN
01824  M01S01652.ssbld   +++|              BLMSG$LN[0] = MSG$BADADR;
01825  M01S01653.ssbld   +++|              MESSAGE ( BLMSG[0] , SYSUDF1 )  ##
01826  M01S01654.ssbld   +++|                ;
01827  M01S01655.ssbld   +++|              RESTPFP ( PFP$ABORT );
01828  M01S01656.ssbld   +++|              END
01829  M01S01657.ssbld   +++|
01830  M01S01658.ssbld   +++|#
01831  M01S01659.ssbld   +++|*      ASSOCIATE EVEN NUMBERED DRD-S WITH FIRST POSITION IN TABLE
01832  M01S01660.ssbld   +++|#
01833  M01S01661.ssbld   +++|
01834  M01S01662.ssbld   +++|            IF ( ORD EQ 0 )          ##
01835  M01S01663.ssbld   +++|              OR ( ORD EQ 2 )        ##
01836  M01S01664.ssbld   +++|              OR ( ORD EQ 4 )        ##
01837  M01S01665.ssbld   +++|              OR ( ORD EQ 6 )        ##
01838  M01S01666.ssbld   +++|            THEN
01839  M01S01667.ssbld   +++|              BEGIN
Line S01668 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01840  M02S01668.ssbld1  ---|              D0$SUN[1] = ORD;
01841  M01S00172.ssbld1  +++|              D0$SUN[1] = SAVEDORD;  # STORE TRUE NUMBER #
01842  M01S01669.ssbld   +++|              END
01843  M01S01670.ssbld   +++|
01844  M01S01671.ssbld   +++|            ELSE
01845  M01S01672.ssbld   +++|              BEGIN
Line S01673 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01846  M02S01673.ssbld1  ---|              D1$SUN[1] = ORD;
01847  M01S00173.ssbld1  +++|              D1$SUN[1] = SAVEDORD;  # STORE TRUE NUMBER #
01848  M01S01674.ssbld   +++|              END
01849  M01S01675.ssbld   +++|
01850  M01S01676.ssbld   +++|            END
01851  M01S01677.ssbld   +++|
01852  M01S01678.ssbld   +++|          IF STAT EQ 2
01853  M01S01679.ssbld   +++|          THEN
01854  M01S01680.ssbld   +++|            BEGIN
01855  M01S01681.ssbld   +++|            SCOL = NCOL;
01856  M01S01682.ssbld   +++|            TEST J;
01857  M01S01683.ssbld   +++|            END
01858  M01S01684.ssbld   +++|
01859  M01S01685.ssbld   +++|
01860  M01S01686.ssbld   +++|          IF STAT EQ 1
01861  M01S01687.ssbld   +++|          THEN
01862  M01S01688.ssbld   +++|            BEGIN
01863  M01S01689.ssbld   +++|            SMDRD ( 1 , ORD , PATH$DF"U$ON" , 1 );
01864  M01S01690.ssbld   +++|            END
01865  M01S01691.ssbld   +++|
01866  M01S01692.ssbld   +++|
01867  M01S01693.ssbld   +++|          IF TERMINATOR EQ PERIOD
01868  M01S01694.ssbld   +++|          THEN
01869  M01S01695.ssbld   +++|            BEGIN
01870  M01S01696.ssbld   +++|            LOOPK = TRUE;
01871  M01S01697.ssbld   +++|            TEST J;
01872  M01S01698.ssbld   +++|            END
01873  M01S01699.ssbld   +++|
Line S01700 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01874  M02S01700.ssbld1  ---|          IF J GQ MAX$SMDRD
01875  M01S00174.ssbld1  +++|          IF J GQ MAX$SMDRD - 1
01876  M01S01701.ssbld   +++|          THEN
Line S01702 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01877  M02S01702.ssbld1  ---|            BEGIN
Line S01703 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01878  M02S01703.ssbld1  ---|            BLMSG$LN[0] =MSG$STCON;
Line S01704 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01879  M02S01704.ssbld1  ---|            MESSAGE(BLMSG[0],SYSUDF1);
Line S01705 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01880  M02S01705.ssbld1  ---|            RESTPFP(PFP$ABORT);
Line S01706 Modification History
M01 (Added by) ssbld
M02 (Updated by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
01881  M02S01706.ssbld1  ---|            END
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);
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssbld.txt ยท Last modified: by 127.0.0.1