User Tools

Site Tools


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

Deck SSBLD Part 001

2 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
02094  M01S00271.ssbld1  +++|            UPDRDST(D1$SUN[1],SM$CUO1[1]);
02095  M01S00272.ssbld1  +++|            END  # LOWER #
02096  M01S00273.ssbld1  +++|
02097  M00S01823.ssbld   +++|          END  # CU1/DRD LINKUP #
02098  M00S01824.ssbld   +++|
02099  M00S01825.ssbld   +++|        TEST DIRNUM;
02100  M00S01826.ssbld   +++|
02101  M00S01827.ssbld   +++|        END  # TEST DIRNUM #
02102  M00S01828.ssbld   +++|
02103  M00S01829.ssbld   +++|      IF NUM$CU NQ CUNUM
02104  M00S01830.ssbld   +++|      THEN
02105  M00S01831.ssbld   +++|        BEGIN
02106  M00S01832.ssbld   +++|        BLMSG$LN[0] = MSG$INCCU;
02107  M00S01833.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
02108  M00S01834.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP ANFd ABORT #
02109  M00S01835.ssbld   +++|        END
02110  M00S01836.ssbld   +++|
02111  M00S01837.ssbld   +++|      IF NUM$SM NQ SMNUM
02112  M00S01838.ssbld   +++|      THEN
02113  M00S01839.ssbld   +++|        BEGIN
02114  M00S01840.ssbld   +++|        BLMSG$LN[0] = MSG$INCSM;
02115  M00S01841.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);
02116  M00S01842.ssbld   +++|      RESTPFP(PFP$ABORT);            # RESTORE USER-S PFP AND ABORT #
02117  M00S01843.ssbld   +++|        END
02118  M00S01844.ssbld   +++|
02119  M00S01845.ssbld   +++|      RETERN(BL$FET[0],RCL);
02120  M00S01846.ssbld   +++|      END  # RDSUDT #
02121  M00S01847.ssbld   +++|
02122  M00S01848.ssbld   +++|    TERM
02123  M00S01849.ssbld   +++|PROC NEXTLIN(DIRLINE,STAT,INDEX);
02124  M00S01850.ssbld   +++|
02125  M00S01851.ssbld   +++|# TITLE NEXTLIN - READ NEXT LINE OF CONFIGURATION SOURCE FILE.        #
02126  M00S01852.ssbld   +++|
02127  M00S01853.ssbld   +++|      BEGIN  # NEXTLIN #
02128  M00S01854.ssbld   +++|
02129  M00S01855.ssbld   +++|
02130  M00S01856.ssbld   +++|#
02131  M00S01857.ssbld   +++|***   PROC TO READ ONE LINE OF DATA FROM DATA ALREADY IN A FET.
02132  M00S01858.ssbld   +++|*     *NEXTLIN* READS A LINE (WHICH IS AN *SSBLD* CONFIGURATION
02133  M00S01859.ssbld   +++|*     FILE DIRECTIVE). THE PROC READS CARDS UNTIL IT FINDS ONE THAT
02134  M00S01860.ssbld   +++|*     IS NOT A COMMENT CARD.  IT CHECKS FOR END OF RECORD AND
02135  M00S01861.ssbld   +++|*     VALID CONFIGURATION FILE NMEMONIC.
02136  M00S01862.ssbld   +++|*
02137  M00S01863.ssbld   +++|*     ENTRY - NONE.
02138  M00S01864.ssbld   +++|*
02139  M00S01865.ssbld   +++|*     EXIT
02140  M00S01866.ssbld   +++|*
02141  M00S01867.ssbld   +++|*     DIRLINE = CONFIGURATION FILE IMAGE
02142  M00S01868.ssbld   +++|*     STAT    = STATUS RESPONSE FROM *READC*
02143  M00S01869.ssbld   +++|*     INDEX   = INDEX INTO NM$KEY ARRAY ( DIRECTIVE ORDINAL )
02144  M00S01870.ssbld   +++|*
02145  M00S01871.ssbld   +++|*     MESSAGES
02146  M00S01872.ssbld   +++|*
02147  M00S01873.ssbld   +++|*     NEXTLIN - INCORRECT SSBLD MNEMONIC.
02148  M00S01874.ssbld   +++|*
02149  M00S01875.ssbld   +++|#
02150  M00S01876.ssbld   +++|
02151  M00S01877.ssbld   +++|#
02152  M00S01878.ssbld   +++|*     PROC NEXTLIN - XREF LIST BEGIN.
02153  M00S01879.ssbld   +++|#
02154  M00S01880.ssbld   +++|
02155  M00S01881.ssbld   +++|      XREF
02156  M00S01882.ssbld   +++|        BEGIN
02157  M00S01883.ssbld   +++|        PROC BZFILL;                 # BLANK ZERO FILL #
02158  M00S01884.ssbld   +++|        PROC MESSAGE;                # ISSUE MESSAGE #
02159  M00S01885.ssbld   +++|        PROC READC;                  # READ ONE LINE #
02160  M00S01886.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S PFP #
02161  M00S01887.ssbld   +++|        PROC ZFILL;                  # ZERO FILL PROC #
02162  M00S01888.ssbld   +++|        END
02163  M00S01889.ssbld   +++|
02164  M00S01890.ssbld   +++|#
02165  M00S01891.ssbld   +++|*     PROC NEXTLIN - XREF LIST END.
02166  M00S01892.ssbld   +++|#
02167  M00S01893.ssbld   +++|
02168  M00S01894.ssbld   +++|      ITEM DIRLINE    C(90);         # DIRECTIVE TEXT LINE #
02169  M00S01895.ssbld   +++|      ITEM STAT       I;             # RETURN STATUS #
02170  M00S01896.ssbld   +++|      ITEM INDEX      I;             # ARRAY INDEX #
02171  M00S01897.ssbld   +++|
02172  M00S01898.ssbld   +++|
02173  M00S01899.ssbld   +++|
02174  M00S01900.ssbld   +++|      DEF LISTCON   #0#;             # DO NOT LIST COMMON DECKS #
02175  M00S01901.ssbld   +++|*CALL COMBFAS
02176  M00S01902.ssbld   +++|*CALL COMBBZF
02177  M00S01903.ssbld   +++|*CALL COMBFET
02178  M00S01904.ssbld   +++|*CALL COMBUDT
02179  M00S01905.ssbld   +++|*CALL COMSPFM
02180  M00S01906.ssbld   +++|*CALL COMTBLD
02181  M00S01907.ssbld   +++|
02182  M00S01908.ssbld   +++|      ITEM COMMENT    B;             # COMMENT INDICATOR #
02183  M00S01909.ssbld   +++|      ITEM EOR        B;             # STATUS VARIABLE FOR *READC* #
02184  M00S01910.ssbld   +++|      ITEM I          I;             # LOOP VARIABLE #
02185  M00S01911.ssbld   +++|      ITEM KEYOK      B;             # CONTROL VARIABLE #
02186  M00S01912.ssbld   +++|      ITEM KEY2       C(2);          # 2 CHARACTER DIRECTIVE KEYWORD #
02187  M00S01913.ssbld   +++|      ITEM KEY3       C(4);          # 3 CHARACTER DIRECTIVE KEYWORD #
02188  M00S01914.ssbld   +++|      ITEM DIRNUM     I;             # LOOP INDEX #
02189  M00S01915.ssbld   +++|                                               CONTROL EJECT;
02190  M00S01916.ssbld   +++|
02191  M00S01917.ssbld   +++|#
02192  M00S01918.ssbld   +++|*     READ ONE (NON-COMMENT) DIRECTIVE.
02193  M00S01919.ssbld   +++|#
02194  M00S01920.ssbld   +++|
02195  M00S01921.ssbld   +++|      EOR = FALSE;
02196  M00S01922.ssbld   +++|
02197  M00S01923.ssbld   +++|      SLOWFOR DIRNUM = 1 STEP 1 WHILE NOT EOR
02198  M00S01924.ssbld   +++|      DO
02199  M00S01925.ssbld   +++|        BEGIN  # PROCESS NEXT DIRECTIVE #
02200  M00S01926.ssbld   +++|        DIRLINE = " ";               # ERASE PREVIOUS LINE #
02201  M00S01927.ssbld   +++|        READC(BL$FET[0],DIRLINE,9,STAT);
02202  M00S01928.ssbld   +++|        BZFILL(DIRLINE,TYPFILL"BFILL",90);
02203  M00S01929.ssbld   +++|        C<89,1>DIRLINE = PERIOD;
02204  M00S01930.ssbld   +++|        IF STAT NQ 0
02205  M00S01931.ssbld   +++|        THEN
02206  M00S01932.ssbld   +++|          BEGIN
02207  M00S01933.ssbld   +++|          EOR = TRUE;
02208  M00S01934.ssbld   +++|          RETURN;
02209  M00S01935.ssbld   +++|          END
02210  M00S01936.ssbld   +++|
02211  M00S01937.ssbld   +++|        IF C<0,1>DIRLINE NQ "*"
02212  M00S01938.ssbld   +++|        THEN                         # NOT COMMENT #
02213  M00S01939.ssbld   +++|          BEGIN
02214  M00S01940.ssbld   +++|          EOR = TRUE;
02215  M00S01941.ssbld   +++|          TEST DIRNUM;
02216  M00S01942.ssbld   +++|          BLMSG$LN=DIRNUM;
02217  M00S01943.ssbld   +++|          MESSAGE(BLMSG[0],SYSUDF1);
02218  M00S01944.ssbld   +++|          END
02219  M00S01945.ssbld   +++|
02220  M00S01946.ssbld   +++|        TEST DIRNUM;
02221  M00S01947.ssbld   +++|        END
02222  M00S01948.ssbld   +++|
02223  M00S01949.ssbld   +++|      KEY2 = C<0,2>DIRLINE;
02224  M00S01950.ssbld   +++|      KEY3 = C<0,3>DIRLINE;
02225  M00S01951.ssbld   +++|      KEYOK = FALSE;
02226  M00S01952.ssbld   +++|      SLOWFOR I=1 STEP 1 WHILE (NOT KEYOK) AND (I LQ BLLM)
02227  M00S01953.ssbld   +++|      DO
02228  M00S01954.ssbld   +++|        BEGIN
02229  M00S01955.ssbld   +++|        IF ( KEY2 EQ NM$KEY2[1] )    ##
02230  M00S01956.ssbld   +++|          OR ( KEY2 EQ NM$KEY2[2] )  ##
02231  M00S01957.ssbld   +++|          OR ( KEY2 EQ NM$KEY2[10] )  ##
02232  M00S01958.ssbld   +++|          OR ( KEY2 EQ NM$KEY2[11] )  ##
02233  M00S01959.ssbld   +++|        THEN
02234  M00S01960.ssbld   +++|          BEGIN
02235  M00S01961.ssbld   +++|          IF KEY2 EQ NM$KEY2[I]
02236  M00S01962.ssbld   +++|          THEN
02237  M00S01963.ssbld   +++|            BEGIN
02238  M00S01964.ssbld   +++|            INDEX=I-1;
02239  M00S01965.ssbld   +++|            KEYOK = TRUE;
02240  M00S01966.ssbld   +++|            TEST I;
02241  M00S01967.ssbld   +++|            END
02242  M00S01968.ssbld   +++|
02243  M00S01969.ssbld   +++|          END
02244  M00S01970.ssbld   +++|
02245  M00S01971.ssbld   +++|        ELSE
02246  M00S01972.ssbld   +++|          BEGIN
02247  M00S01973.ssbld   +++|          IF KEY3 EQ NM$KEY3[I]
02248  M00S01974.ssbld   +++|          THEN
02249  M00S01975.ssbld   +++|            BEGIN
02250  M00S01976.ssbld   +++|            INDEX = I-1;
02251  M00S01977.ssbld   +++|            KEYOK = TRUE;
02252  M00S01978.ssbld   +++|            TEST I;
02253  M00S01979.ssbld   +++|            END
02254  M00S01980.ssbld   +++|
02255  M00S01981.ssbld   +++|          END
02256  M00S01982.ssbld   +++|
02257  M00S01983.ssbld   +++|        TEST I;
02258  M00S01984.ssbld   +++|        END
02259  M00S01985.ssbld   +++|
02260  M00S01986.ssbld   +++|      IF NOT KEYOK
02261  M00S01987.ssbld   +++|      THEN
02262  M00S01988.ssbld   +++|        BEGIN
02263  M00S01989.ssbld   +++|        BLMSG$LN[0] = " NEXTLIN - INCORRECT SSBLD MNEMONIC.";
02264  M00S01990.ssbld   +++|        MESSAGE(BLMSG[0],SYSUDF1);   # ERROR MESSAGE #
02265  M00S01991.ssbld   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S PFP AND ABORT #
02266  M00S01992.ssbld   +++|        END
02267  M00S01993.ssbld   +++|
02268  M00S01994.ssbld   +++|
02269  M00S01995.ssbld   +++|      END  # NEXTLIN #
02270  M00S01996.ssbld   +++|
02271  M00S01997.ssbld   +++|    TERM
02272  M00S01998.ssbld   +++|
02273  M00S01999.ssbld   +++|PROC NEXTPRM(DIRLINE,SCOL,DEVTYPE,NUMCH,ORD,NCOL,STAT,TERMINATOR);
02274  M00S02000.ssbld   +++|
02275  M00S02001.ssbld   +++|# TITLE NEXTPRM - CRACK NEXT LINE OF SOURCE FILE DIRECTIVES.          #
02276  M00S02002.ssbld   +++|
02277  M00S02003.ssbld   +++|      BEGIN  # NEXTPRM #
02278  M00S02004.ssbld   +++|
02279  M00S02005.ssbld   +++|
02280  M00S02006.ssbld   +++|#
02281  M00S02007.ssbld   +++|***   PROC TO CRACK EVERYTHING TO THE RIGHT OF THE FIRST *=* SIGN
02282  M00S02008.ssbld   +++|*     IN A *SSBLD* SOURCE FILE DIRECTIVE.
02283  M00S02009.ssbld   +++|*
02284  M00S02010.ssbld   +++|*     ENTRY
02285  M00S02011.ssbld   +++|*
02286  M00S02012.ssbld   +++|*     DIRLINE = CONFIGURATION SOURCE FILE DIRECTIVE
02287  M00S02013.ssbld   +++|*     SCOL    = COLUMN OF DIRECTIVE IN WHICH TO START SEARCH
02288  M00S02014.ssbld   +++|*     DEVTYPE = NMEMONIC BEING SEARCHED FOR
02289  M00S02015.ssbld   +++|*     NUMCH   = NUMBER OF CHARACTERS IN DEVTYPE
02290  M00S02016.ssbld   +++|*
02291  M00S02017.ssbld   +++|*     EXIT
02292  M00S02018.ssbld   +++|*
02293  M00S02019.ssbld   +++|*     ORD = ORDINAL OF DEVTYPE ON SOURCE LINE
02294  M00S02020.ssbld   +++|*     NCOL = NUMBER OF THE NEXT COLUMN FOLLOWING TERMINATOR.
02295  M00S02021.ssbld   +++|*     STAT = STATUS OF DEVTYPE IN THE DIRECTIVE ( ON/OFF/NON-EXISTEXT )
02296  M00S02022.ssbld   +++|*     TERMINATOR = THE TERMINATOR FOUND ( EITHER *,* OR *.* )
02297  M00S02023.ssbld   +++|*
02298  M00S02024.ssbld   +++|*     MESSAGES
02299  M00S02025.ssbld   +++|*
02300  M00S02026.ssbld   +++|*     NEXTPRM - INCORRECT MNEMONIC.
02301  M00S02027.ssbld   +++|*     NEXTPRM - ORDINAL INCORRECT.
02302  M00S02028.ssbld   +++|*     NEXTPRM - INCORRECT DRD ORDINAL.
Line S02029 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02303  M01S02029.ssbld1  ---|*     NEXTPRM - ORDINAL NOT 0 OR 1.
Line S00274 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02304  M01S00274.ssbld1  +++|*     NEXTPRM - DRC DEVICE ADDRESS OUT OF RANGE.
02305  M00S02030.ssbld   +++|*     NEXTPRM - INCORRECT CHANNEL NUMBER.
02306  M00S02031.ssbld   +++|*     NEXTPRM - INCORRECT *SM* ORDINAL.
02307  M00S02032.ssbld   +++|*     NEXTPRM - INCORRECT *CU* EST ORDINAL.
02308  M00S02033.ssbld   +++|*     NEXTPRM - MISSING EQUAL SIGN.
02309  M00S02034.ssbld   +++|*     NEXTPRM - INCORRECT DIRECTIVE STATUS.
02310  M00S02035.ssbld   +++|*     NEXTPRM - INCORRECT TERMINATOR.
02311  M00S02036.ssbld   +++|*
02312  M00S02037.ssbld   +++|#
02313  M00S02038.ssbld   +++|
02314  M00S02039.ssbld   +++|      ITEM DIRLINE    C(90);         # DIRECTIVE LINE INPUT #
02315  M00S02040.ssbld   +++|      ITEM SCOL       I;             # STARTING COLUMN #
02316  M00S02041.ssbld   +++|      ITEM DEVTYPE    C(3);          # DEVICE TYPE #
02317  M00S02042.ssbld   +++|      ITEM NUMCH      I;             # NUMBER OF CHARACTERS #
02318  M00S02043.ssbld   +++|      ITEM ORD        I;             # DEVTYPE ORDINAL #
02319  M00S02044.ssbld   +++|      ITEM NCOL       I;             # NEXT COLUMN #
02320  M00S02045.ssbld   +++|      ITEM STAT       I;             # STATUS
02321  M00S02046.ssbld   +++|                                       -0=OFF,1=ON,2=NON-EXISTENT #
02322  M00S02047.ssbld   +++|      ITEM TERMINATOR C(1);          # TERMINATING CHARACTER #
02323  M00S02048.ssbld   +++|
02324  M00S02049.ssbld   +++|#
02325  M00S02050.ssbld   +++|*     PROC NEXTPRM - XREF LIST BEGIN.
02326  M00S02051.ssbld   +++|#
02327  M00S02052.ssbld   +++|
02328  M00S02053.ssbld   +++|      XREF
02329  M00S02054.ssbld   +++|        BEGIN
02330  M00S02055.ssbld   +++|        PROC MESSAGE;                # ISSUE MESSAGE #
02331  M00S02056.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S PFP #
02332  M00S02057.ssbld   +++|        FUNC XDXB;                   # CONVERT DISPLAY CODE TO BINARY #
02333  M00S02058.ssbld   +++|        END
02334  M00S02059.ssbld   +++|
02335  M00S02060.ssbld   +++|#
02336  M00S02061.ssbld   +++|*     PROC NEXTPRM - XREF LIST END.
02337  M00S02062.ssbld   +++|#
02338  M00S02063.ssbld   +++|
02339  M00S02064.ssbld   +++|      DEF MSG$BADORD #" NEXTPRM - ORDINAL INCORRECT."#;
02340  M00S02065.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMMON DECKS #
02341  M00S02066.ssbld   +++|*CALL COMBFAS
02342  M00S02067.ssbld   +++|*CALL COMBUDT
02343  M00S02068.ssbld   +++|*CALL COMTBLD
02344  M00S02069.ssbld   +++|
02345  M00S02070.ssbld   +++|
02346  M00S02071.ssbld   +++|      ITEM LOOPC      B;             # LOOP CONTROL #
02347  M00S02072.ssbld   +++|      ITEM I          I;             # LOOP INDEX #
02348  M00S02073.ssbld   +++|      ITEM TMPC       C(2);          # CHARACTER SCRATCH CELL #
02349  M00S02074.ssbld   +++|      ITEM TMPI       I;             # SCRATCH INTEGER #
02350  M00S02075.ssbld   +++|                                               CONTROL EJECT;
02351  M00S02076.ssbld   +++|
02352  M00S02077.ssbld   +++|#
02353  M00S02078.ssbld   +++|*     GET NEXT NON-BLANK CHARACTER
02354  M00S02079.ssbld   +++|#
02355  M00S02080.ssbld   +++|
02356  M00S02081.ssbld   +++|      LOOPC = FALSE;
02357  M00S02082.ssbld   +++|      SLOWFOR I = 1 STEP 1 WHILE NOT LOOPC
02358  M00S02083.ssbld   +++|      DO
02359  M00S02084.ssbld   +++|        BEGIN
02360  M00S02085.ssbld   +++|
02361  M00S02086.ssbld   +++|        IF C<SCOL,1>DIRLINE EQ " "
02362  M00S02087.ssbld   +++|        THEN
02363  M00S02088.ssbld   +++|          BEGIN
02364  M00S02089.ssbld   +++|          SCOL = SCOL+1;
02365  M00S02090.ssbld   +++|          TEST I;
02366  M00S02091.ssbld   +++|          END
02367  M00S02092.ssbld   +++|
02368  M00S02093.ssbld   +++|
02369  M00S02094.ssbld   +++|        LOOPC = TRUE;
02370  M00S02095.ssbld   +++|        TEST I;
02371  M00S02096.ssbld   +++|        END
02372  M00S02097.ssbld   +++|
02373  M00S02098.ssbld   +++|#
02374  M00S02099.ssbld   +++|*     CHECK DIRECTIVE NMEMONIC
02375  M00S02100.ssbld   +++|#
02376  M00S02101.ssbld   +++|
02377  M00S02102.ssbld   +++|      IF  ( C<SCOL,NUMCH>DIRLINE NQ C<0,NUMCH>DEVTYPE )  ##
02378  M00S02103.ssbld   +++|        AND ( C<SCOL,1>DIRLINE NQ COMMA )  ##
02379  M00S02104.ssbld   +++|        AND ( C<SCOL,1>DIRLINE NQ PERIOD )  ##
02380  M00S02105.ssbld   +++|      THEN
02381  M00S02106.ssbld   +++|        BEGIN
02382  M00S02107.ssbld   +++|        BLMSG$LN[0] = " NEXTPRM - INCORRECT MNEMONIC.";
02383  M00S02108.ssbld   +++|        GOTO ERRORPRM;
02384  M00S02109.ssbld   +++|        END
02385  M00S02110.ssbld   +++|
02386  M00S02111.ssbld   +++|#
02387  M00S02112.ssbld   +++|*      CHECK FOR COMMA OR PERIOD( IMPLIES NON-EXISTENT ENTRY ).
02388  M00S02113.ssbld   +++|#
02389  M00S02114.ssbld   +++|
02390  M00S02115.ssbld   +++|      IF( C<SCOL,1>DIRLINE EQ COMMA )  ##
02391  M00S02116.ssbld   +++|        OR ( C<SCOL,1>DIRLINE EQ PERIOD )
02392  M00S02117.ssbld   +++|      THEN
02393  M00S02118.ssbld   +++|        BEGIN
02394  M00S02119.ssbld   +++|        STAT = 2;
02395  M00S02120.ssbld   +++|        ORD = 0;
02396  M00S02121.ssbld   +++|        GOTO TERMINATE;
02397  M00S02122.ssbld   +++|        END
02398  M00S02123.ssbld   +++|
02399  M00S02124.ssbld   +++|#
02400  M00S02125.ssbld   +++|*     REMOVE EMBEDDED BLANKS
02401  M00S02126.ssbld   +++|#
02402  M00S02127.ssbld   +++|
02403  M00S02128.ssbld   +++|      SCOL = SCOL+NUMCH;
02404  M00S02129.ssbld   +++|      LOOPC = FALSE;
02405  M00S02130.ssbld   +++|      SLOWFOR I = 1 STEP 1 WHILE NOT LOOPC
02406  M00S02131.ssbld   +++|      DO
02407  M00S02132.ssbld   +++|        BEGIN
02408  M00S02133.ssbld   +++|        IF C<SCOL,1>DIRLINE EQ " "
02409  M00S02134.ssbld   +++|        THEN
02410  M00S02135.ssbld   +++|          BEGIN
02411  M00S02136.ssbld   +++|          SCOL = SCOL+1;
02412  M00S02137.ssbld   +++|          TEST I;
02413  M00S02138.ssbld   +++|          END
02414  M00S02139.ssbld   +++|
02415  M00S02140.ssbld   +++|        LOOPC = TRUE;
02416  M00S02141.ssbld   +++|        TEST I;
02417  M00S02142.ssbld   +++|        END
02418  M00S02143.ssbld   +++|
02419  M00S02144.ssbld   +++|#
02420  M00S02145.ssbld   +++|*     GET AND VALIDATE ORDINAL
02421  M00S02146.ssbld   +++|#
02422  M00S02147.ssbld   +++|
02423  M00S02148.ssbld   +++|
02424  M00S02149.ssbld   +++|      IF( C<0,NUMCH>DEVTYPE NQ NM$KEY2[2] )  ##
02425  M00S02150.ssbld   +++|        AND ( C<0,NUMCH>DEVTYPE NQ NM$KEY2[10] )  ##
02426  M00S02151.ssbld   +++|        AND ( C<0,NUMCH>DEVTYPE NQ NM$KEY2[1] )  ##
02427  M00S02152.ssbld   +++|      THEN
02428  M00S02153.ssbld   +++|        BEGIN
Line S02154 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02429  M01S02154.ssbld1  ---|        TMPC = C<SCOL,1>DIRLINE;
02430  M01S02155.ssbld1  ---|        STAT = XDXB(TMPC,1,ORD);
02431  M01S02156.ssbld1  ---|        IF STAT NQ 0
02432  M01S02157.ssbld1  ---|        THEN
02433  M01S02158.ssbld1  ---|          BEGIN
02434  M01S02159.ssbld1  ---|          BLMSG$LN[0] = MSG$BADORD;
02435  M01S02160.ssbld1  ---|          GOTO ERRORPRM;
02436  M01S02161.ssbld1  ---|          END
Line S00275 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02437  M01S00275.ssbld1  +++|        TMPC = C<3,1>DIRLINE;
02438  M01S00276.ssbld1  +++|        STAT = XDXB(TMPC,1,ORD);
02439  M01S00277.ssbld1  +++|        IF C<0,3>DIRLINE EQ NM$KEY3[7]
02440  M01S00278.ssbld1  +++|          AND ORD GQ 2
02441  M01S00279.ssbld1  +++|        THEN
02442  M01S00280.ssbld1  +++|          BEGIN                      # EXPANDED DRD CONFIGURATION #
02443  M01S00281.ssbld1  +++|          TMPC = C<SCOL,1>DIRLINE;
02444  M01S00282.ssbld1  +++|          STAT = XDXB(TMPC,1,ORD);
02445  M01S00283.ssbld1  +++|          IF STAT NQ 0
02446  M01S00284.ssbld1  +++|          THEN
02447  M01S00285.ssbld1  +++|            BEGIN
02448  M01S00286.ssbld1  +++|            BLMSG$LN[0] = MSG$BADORD;
02449  M01S00287.ssbld1  +++|            GOTO ERRORPRM;
02450  M01S00288.ssbld1  +++|            END
02451  M01S00289.ssbld1  +++|
02452  M01S00290.ssbld1  +++|          IF ORD EQ 1
02453  M01S00291.ssbld1  +++|          THEN
02454  M01S00292.ssbld1  +++|            BEGIN                    # DRD DEVICE ADDRESS IS 2 DIGITS #
02455  M01S00293.ssbld1  +++|            TMPC = C<SCOL,2>DIRLINE;
02456  M01S00294.ssbld1  +++|            STAT = XDXB(TMPC,1,ORD);
02457  M01S00295.ssbld1  +++|            IF STAT NQ 0
02458  M01S00296.ssbld1  +++|            THEN
02459  M01S00297.ssbld1  +++|              BEGIN
02460  M01S00298.ssbld1  +++|              BLMSG$LN[0] = MSG$BADORD;
02461  M01S00299.ssbld1  +++|              GOTO ERRORPRM;
02462  M01S00300.ssbld1  +++|              END
02463  M01S00301.ssbld1  +++|
02464  M01S00302.ssbld1  +++|            SCOL = SCOL + 1;
02465  M01S00303.ssbld1  +++|            END                      # DRD DEVICE ADDRESS IS 2 DIGITS #
02466  M01S00304.ssbld1  +++|
02467  M01S00305.ssbld1  +++|          END                        # EXPANDED DRD CONFIGURATION #
02468  M01S00306.ssbld1  +++|
02469  M01S00307.ssbld1  +++|        ELSE
02470  M01S00308.ssbld1  +++|          BEGIN                      # STANDARD DRD CONFIGURATION #
02471  M01S00309.ssbld1  +++|          TMPC = C<SCOL+1,1>DIRLINE;
02472  M01S00310.ssbld1  +++|          STAT = XDXB(TMPC,1,ORD);
02473  M01S00311.ssbld1  +++|          IF STAT NQ 0
02474  M01S00312.ssbld1  +++|          THEN                       # ORDINAL IS 1 DIGIT LONG #
02475  M01S00313.ssbld1  +++|            BEGIN  # ONE #
02476  M01S00314.ssbld1  +++|            TMPC = C<SCOL,1>DIRLINE;
02477  M01S00315.ssbld1  +++|            END  # ONE #
02478  M01S00316.ssbld1  +++|
02479  M01S00317.ssbld1  +++|          ELSE                       # ORDINAL IS 2 DIGITS LONG #
02480  M01S00318.ssbld1  +++|            BEGIN  # TWO #
02481  M01S00319.ssbld1  +++|            TMPC = C<SCOL,2>DIRLINE;
02482  M01S00320.ssbld1  +++|            SCOL = SCOL + 1;         # PRESET FOR NEXT CHARACTER #
02483  M01S00321.ssbld1  +++|            END  # TWO #
02484  M01S00322.ssbld1  +++|
02485  M01S00323.ssbld1  +++|          STAT = XDXB(TMPC,1,ORD);   # GET DRD ORDINAL #
02486  M01S00324.ssbld1  +++|          IF STAT NQ 0
02487  M01S00325.ssbld1  +++|          THEN
02488  M01S00326.ssbld1  +++|            BEGIN
02489  M01S00327.ssbld1  +++|            BLMSG$LN[0] = MSG$BADORD;
02490  M01S00328.ssbld1  +++|            GOTO ERRORPRM;
02491  M01S00329.ssbld1  +++|            END
02492  M01S00330.ssbld1  +++|
02493  M01S00331.ssbld1  +++|          END                       # STANDARD DRD CONFIGURATION #
02494  M00S02162.ssbld   +++|
02495  M00S02163.ssbld   +++|        IF NUMCH EQ 3
02496  M00S02164.ssbld   +++|        THEN
02497  M00S02165.ssbld   +++|          BEGIN
02498  M00S02166.ssbld   +++|          IF C<0,3>DEVTYPE EQ NM$KEY3[8]
02499  M00S02167.ssbld   +++|          THEN
02500  M00S02168.ssbld   +++|            BEGIN
Line S02169 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02501  M01S02169.ssbld1  ---|            IF ( ORD LS 0 ) OR ( ORD GR 7 )
Line S00332 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02502  M01S00332.ssbld1  +++|          IF ( ORD LS 0 ) OR ( ORD GR MAX$DRDDA )
02503  M00S02170.ssbld   +++|            THEN
02504  M00S02171.ssbld   +++|              BEGIN
02505  M00S02172.ssbld   +++|              BLMSG$LN[0] = " NEXTPRM - INCORRECT DRD ORDINAL.";
02506  M00S02173.ssbld   +++|              GOTO ERRORPRM;
02507  M00S02174.ssbld   +++|              END
02508  M00S02175.ssbld   +++|
02509  M00S02176.ssbld   +++|            END
02510  M00S02177.ssbld   +++|
02511  M00S02178.ssbld   +++|          END
02512  M00S02179.ssbld   +++|
Line S02180 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02513  M01S02180.ssbld1  ---|        IF ( ( ORD LS 0 ) OR ( ORD GR 1 ) )  ##
Line S00333 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02514  M01S00333.ssbld1  +++|        IF ( ( ORD LS 0 ) OR ( ORD GR MAX$DRC ) ) ##
02515  M00S02181.ssbld   +++|          AND ( C<0,3>DEVTYPE NQ NM$KEY3[8] )
02516  M00S02182.ssbld   +++|        THEN
02517  M00S02183.ssbld   +++|          BEGIN
Line S02184 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02518  M01S02184.ssbld1  ---|          BLMSG$LN[0] = " NEXTPRM - ORDINAL NOT 0 OR 1.";
Line S00334 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02519  M01S00334.ssbld1  +++|          BLMSG$LN[0] = " NEXTPRM - DRC DEVICE ADDRESS OUT OF RANGE.";
02520  M00S02185.ssbld   +++|          GOTO ERRORPRM;
02521  M00S02186.ssbld   +++|          END
02522  M00S02187.ssbld   +++|
02523  M00S02188.ssbld   +++|        SCOL = SCOL+1;
02524  M00S02189.ssbld   +++|
02525  M00S02190.ssbld   +++|        END
02526  M00S02191.ssbld   +++|
02527  M00S02192.ssbld   +++|      ELSE
02528  M00S02193.ssbld   +++|        BEGIN
02529  M00S02194.ssbld   +++|        IF C<0,2>DEVTYPE EQ NM$KEY2[1]
02530  M00S02195.ssbld   +++|        THEN
02531  M00S02196.ssbld   +++|          BEGIN
02532  M00S02197.ssbld   +++|          TMPC = C<SCOL,2>DIRLINE;
02533  M00S02198.ssbld   +++|          STAT = XDXB(TMPC,0,ORD);
02534  M00S02199.ssbld   +++|          IF STAT NQ 0
02535  M00S02200.ssbld   +++|          THEN
02536  M00S02201.ssbld   +++|            BEGIN
02537  M00S02202.ssbld   +++|            BLMSG$LN[0] = MSG$BADORD;
02538  M00S02203.ssbld   +++|            GOTO ERRORPRM;
02539  M00S02204.ssbld   +++|            END
02540  M00S02205.ssbld   +++|
02541  M00S02206.ssbld   +++|          IF (( ORD GR O"13" ) AND ( ORD LS O"20" ))  ##
02542  M00S02207.ssbld   +++|            OR ( ORD GR O"33")
02543  M00S02208.ssbld   +++|          THEN
02544  M00S02209.ssbld   +++|            BEGIN
02545  M00S02210.ssbld   +++|            BLMSG$LN[0] = " NEXTPRM - INCORRECT CHANNEL NUMBER.";
02546  M00S02211.ssbld   +++|            GOTO ERRORPRM;
02547  M00S02212.ssbld   +++|            END
02548  M00S02213.ssbld   +++|
02549  M00S02214.ssbld   +++|          SCOL = SCOL+2;
02550  M00S02215.ssbld   +++|          END
02551  M00S02216.ssbld   +++|
02552  M00S02217.ssbld   +++|        IF C<0,2>DEVTYPE EQ NM$KEY2[10]
02553  M00S02218.ssbld   +++|        THEN
02554  M00S02219.ssbld   +++|          BEGIN
02555  M00S02220.ssbld   +++|          TMPC = C<SCOL,1>DIRLINE;
02556  M00S02221.ssbld   +++|          STAT = XDXB(TMPC,0,ORD);
02557  M00S02222.ssbld   +++|          IF STAT NQ 0
02558  M00S02223.ssbld   +++|          THEN
02559  M00S02224.ssbld   +++|            BEGIN
02560  M00S02225.ssbld   +++|            BLMSG$LN[0] = MSG$BADORD;
02561  M00S02226.ssbld   +++|            GOTO ERRORPRM;
02562  M00S02227.ssbld   +++|            END
02563  M00S02228.ssbld   +++|
Line S02229 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02564  M01S02229.ssbld1  ---|          IF ( ORD LS 0 ) OR ( ORD GR 3 )
Line S00335 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02565  M01S00335.ssbld1  +++|          IF (ORD LS 0) OR (ORD GR 7)
02566  M00S02230.ssbld   +++|          THEN
02567  M00S02231.ssbld   +++|            BEGIN
02568  M00S02232.ssbld   +++|            BLMSG$LN[0] = "NEXTPRM - INCORRECT *SM* ORDINAL.";
02569  M00S02233.ssbld   +++|            GOTO ERRORPRM;
02570  M00S02234.ssbld   +++|            END
02571  M00S02235.ssbld   +++|
02572  M00S02236.ssbld   +++|          SCOL = SCOL+1;
02573  M00S02237.ssbld   +++|          END
02574  M00S02238.ssbld   +++|
02575  M00S02239.ssbld   +++|        IF C<0,2>DEVTYPE EQ NM$KEY2[2]
02576  M00S02240.ssbld   +++|        THEN
02577  M00S02241.ssbld   +++|          BEGIN
02578  M00S02242.ssbld   +++|          TMPC = C<SCOL,2>DIRLINE;
02579  M00S02243.ssbld   +++|          STAT = XDXB(TMPC,0,ORD);
02580  M00S02244.ssbld   +++|          IF STAT NQ 0
02581  M00S02245.ssbld   +++|          THEN
02582  M00S02246.ssbld   +++|            BEGIN
02583  M00S02247.ssbld   +++|            BLMSG$LN[0] = MSG$BADORD;
02584  M00S02248.ssbld   +++|            GOTO ERRORPRM;
02585  M00S02249.ssbld   +++|            END
02586  M00S02250.ssbld   +++|
02587  M00S02251.ssbld   +++|          IF (ORD LS 10  ) OR ( ORD GR O"77" )
02588  M00S02252.ssbld   +++|          THEN
02589  M00S02253.ssbld   +++|            BEGIN
02590  M00S02254.ssbld   +++|            BLMSG$LN[0] = " NEXTPRM - INCORRECT *CU* ORDINAL.";
02591  M00S02255.ssbld   +++|            GOTO ERRORPRM;
02592  M00S02256.ssbld   +++|            END
02593  M00S02257.ssbld   +++|
02594  M00S02258.ssbld   +++|          SCOL = SCOL + 2;
02595  M00S02259.ssbld   +++|          END
02596  M00S02260.ssbld   +++|
02597  M00S02261.ssbld   +++|        IF ( C<0,2>DEVTYPE EQ "ON" )  ##
02598  M00S02262.ssbld   +++|          OR ( C<0,3>DEVTYPE EQ "OFF" )
02599  M00S02263.ssbld   +++|        THEN
02600  M00S02264.ssbld   +++|          BEGIN
02601  M00S02265.ssbld   +++|          GOTO TERMINATE;
02602  M00S02266.ssbld   +++|          END
02603  M00S02267.ssbld   +++|
02604  M00S02268.ssbld   +++|        END
02605  M00S02269.ssbld   +++|
02606  M00S02270.ssbld   +++|#
02607  M00S02271.ssbld   +++|*     FIND NEXT NON-BLANK CHARACTER
02608  M00S02272.ssbld   +++|#
02609  M00S02273.ssbld   +++|
02610  M00S02274.ssbld   +++|      LOOPC = FALSE;
02611  M00S02275.ssbld   +++|      SLOWFOR I = 1 STEP 1 WHILE NOT LOOPC
02612  M00S02276.ssbld   +++|      DO
02613  M00S02277.ssbld   +++|        BEGIN
02614  M00S02278.ssbld   +++|        IF C<SCOL,1>DIRLINE EQ " "
02615  M00S02279.ssbld   +++|        THEN
02616  M00S02280.ssbld   +++|          BEGIN
02617  M00S02281.ssbld   +++|          SCOL = SCOL + 1;
02618  M00S02282.ssbld   +++|          TEST I;
02619  M00S02283.ssbld   +++|          END
02620  M00S02284.ssbld   +++|
02621  M00S02285.ssbld   +++|        LOOPC = TRUE;
02622  M00S02286.ssbld   +++|        TEST I;
02623  M00S02287.ssbld   +++|        END
02624  M00S02288.ssbld   +++|
02625  M00S02289.ssbld   +++|      IF C<SCOL,1>DIRLINE NQ "="
02626  M00S02290.ssbld   +++|      THEN
02627  M00S02291.ssbld   +++|        BEGIN
02628  M00S02292.ssbld   +++|        BLMSG$LN[0] = " NEXTPRM - MISSING EQUAL SIGN.";
02629  M00S02293.ssbld   +++|        GOTO ERRORPRM;
02630  M00S02294.ssbld   +++|        END
02631  M00S02295.ssbld   +++|
02632  M00S02296.ssbld   +++|      SCOL = SCOL + 1;
02633  M00S02297.ssbld   +++|
02634  M00S02298.ssbld   +++|#
02635  M00S02299.ssbld   +++|*     FIND NEXT NON-BLANK CHARACTER
02636  M00S02300.ssbld   +++|#
02637  M00S02301.ssbld   +++|
02638  M00S02302.ssbld   +++|      LOOPC = FALSE;
02639  M00S02303.ssbld   +++|      SLOWFOR I = 1 STEP 1 WHILE NOT LOOPC
02640  M00S02304.ssbld   +++|      DO
02641  M00S02305.ssbld   +++|        BEGIN
02642  M00S02306.ssbld   +++|        IF C<SCOL,1>DIRLINE EQ " "
02643  M00S02307.ssbld   +++|        THEN
02644  M00S02308.ssbld   +++|          BEGIN
02645  M00S02309.ssbld   +++|          SCOL = SCOL +1;
02646  M00S02310.ssbld   +++|          TEST I;
02647  M00S02311.ssbld   +++|          END
02648  M00S02312.ssbld   +++|
02649  M00S02313.ssbld   +++|        LOOPC = TRUE;
02650  M00S02314.ssbld   +++|        TEST I;
02651  M00S02315.ssbld   +++|        END
02652  M00S02316.ssbld   +++|
02653  M00S02317.ssbld   +++|      IF( C<SCOL,2>DIRLINE NQ "ON" )  ##
02654  M00S02318.ssbld   +++|        AND ( C<SCOL,3>DIRLINE NQ "OFF" )
02655  M00S02319.ssbld   +++|      THEN
02656  M00S02320.ssbld   +++|        BEGIN
02657  M00S02321.ssbld   +++|        BLMSG$LN[0] = " NEXTPRM - INCORRECT DIRECTIVE STATUS.";
02658  M00S02322.ssbld   +++|        GOTO ERRORPRM;
02659  M00S02323.ssbld   +++|        END
02660  M00S02324.ssbld   +++|
02661  M00S02325.ssbld   +++|      IF C<SCOL,2>DIRLINE EQ "ON"
02662  M00S02326.ssbld   +++|      THEN
02663  M00S02327.ssbld   +++|        BEGIN
02664  M00S02328.ssbld   +++|        STAT = 1;
02665  M00S02329.ssbld   +++|        SCOL = SCOL+2;
02666  M00S02330.ssbld   +++|        END
02667  M00S02331.ssbld   +++|
02668  M00S02332.ssbld   +++|      ELSE
02669  M00S02333.ssbld   +++|        BEGIN
02670  M00S02334.ssbld   +++|        STAT = 0;
02671  M00S02335.ssbld   +++|        SCOL = SCOL + 3;
02672  M00S02336.ssbld   +++|        END
02673  M00S02337.ssbld   +++|
02674  M00S02338.ssbld   +++|
02675  M00S02339.ssbld   +++|TERMINATE:
02676  M00S02340.ssbld   +++|
02677  M00S02341.ssbld   +++|      LOOPC = FALSE;
02678  M00S02342.ssbld   +++|      SLOWFOR I = 1 STEP 1 WHILE NOT LOOPC
02679  M00S02343.ssbld   +++|      DO
02680  M00S02344.ssbld   +++|        BEGIN
02681  M00S02345.ssbld   +++|        IF C<SCOL,1>DIRLINE EQ " "
02682  M00S02346.ssbld   +++|        THEN
02683  M00S02347.ssbld   +++|          BEGIN
02684  M00S02348.ssbld   +++|          SCOL = SCOL + 1;
02685  M00S02349.ssbld   +++|          TEST I;
02686  M00S02350.ssbld   +++|          END
02687  M00S02351.ssbld   +++|
02688  M00S02352.ssbld   +++|        LOOPC = TRUE;
02689  M00S02353.ssbld   +++|        TEST I;
02690  M00S02354.ssbld   +++|        END
02691  M00S02355.ssbld   +++|
02692  M00S02356.ssbld   +++|      IF( C<SCOL,1>DIRLINE NQ COMMA )  ##
02693  M00S02357.ssbld   +++|        AND ( C<SCOL,1>DIRLINE NQ PERIOD )
02694  M00S02358.ssbld   +++|      THEN
02695  M00S02359.ssbld   +++|        BEGIN
02696  M00S02360.ssbld   +++|        BLMSG$LN[0] = " NEXTPRM - INCORRECT TERMINATOR.";
02697  M00S02361.ssbld   +++|        GOTO ERRORPRM;
02698  M00S02362.ssbld   +++|        END
02699  M00S02363.ssbld   +++|
02700  M00S02364.ssbld   +++|      TERMINATOR = C<SCOL,1>DIRLINE;
02701  M00S02365.ssbld   +++|      NCOL = SCOL+1;
02702  M00S02366.ssbld   +++|      RETURN;
02703  M00S02367.ssbld   +++|
02704  M00S02368.ssbld   +++|ERRORPRM:
02705  M00S02369.ssbld   +++|      MESSAGE(BLMSG[0],SYSUDF1);
02706  M00S02370.ssbld   +++|      RESTPFP(PFP$ABORT);
02707  M00S02371.ssbld   +++|
02708  M00S02372.ssbld   +++|      END  # NEXTPRM #
02709  M00S02373.ssbld   +++|
02710  M00S02374.ssbld   +++|    TERM
Line S02375 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02711  M01S02375.ssbld1  ---|PROC UPDRDST ( DRD , PRIMARY );
Line S00336 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02712  M01S00336.ssbld1  +++|PROC UPDRDST(DRD,CONTORD);
02713  M00S02376.ssbld   +++|
02714  M00S02377.ssbld   +++|# TITLE UPDRDST - UPDATE DRD STATUS ACCORDING TO PATH STATUS           #
02715  M00S02378.ssbld   +++|
02716  M00S02379.ssbld   +++|      BEGIN  # UPDRDST #
02717  M00S02380.ssbld   +++|
02718  M00S02381.ssbld   +++|#
02719  M00S02382.ssbld   +++|***   UPDATE TRUE STATUS OF A DRD
02720  M00S02383.ssbld   +++|*
02721  M00S02384.ssbld   +++|*     THE TRUE STATUS OF A DRD (ON/OFF) AT INITIALIZATION
02722  M00S02385.ssbld   +++|*     TIME DEPENDS ON THE STATUS OF THE PATHS LEADING TO
Line S02386 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02723  M01S02386.ssbld1  ---|*     IT FROM THE DRC(S).  IF ALL PATHS LEADING TO THE DRD
Line S00337 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02724  M01S00337.ssbld1  +++|*     IT FROM THE DIF-S AND DRC-S.  IF ALL PATHS LEADING TO THE DRD
02725  M00S02387.ssbld   +++|*     ARE OFF, THEN THIS PROC WILL SET THE INITIAL STATUS
02726  M00S02388.ssbld   +++|*     OF THE DRD TO BE OFF REGARDLESS OF WHAT THE SSBLD
02727  M00S02389.ssbld   +++|*     DIRECTIVE SAYS.
02728  M00S02390.ssbld   +++|*
Line S02391 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02729  M01S02391.ssbld1  ---|*     ENTRY      DRD     = DRD NUMBER WITHIN M862 ( 0 OR 1 ).
02730  M01S02392.ssbld1  ---|*                PRIMARY = TRUE FOR PRIMARY PATH, ELSE ZERO.
Line S00338 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02731  M01S00338.ssbld1  +++|*     ENTRY      DRD = DRD ORDINAL.
02732  M01S00339.ssbld1  +++|*                CONTORD = CONTROLLER ORDINAL TO SCAN FOR PATH.
02733  M00S02393.ssbld   +++|*
02734  M00S02394.ssbld   +++|*     EXIT       DRD STATUS UPDATED IF NECESSARY.
02735  M00S02395.ssbld   +++|*
02736  M00S02396.ssbld   +++|*     MESSAGES   NONE.
02737  M00S02397.ssbld   +++|#
02738  M00S02398.ssbld   +++|
Line S02399 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02739  M01S02399.ssbld1  ---|      ITEM DRD     U;        # DRD NUMBER #
Line S00340 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02740  M01S00340.ssbld1  +++|      ITEM CONTORD    U;             # CONTROLLER ORDINAL #
02741  M01S00341.ssbld1  +++|      ITEM DRD        U;             # DRD NUMBER #
Line S02400 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02742  M01S02400.ssbld1  ---|      ITEM PRIMARY B;        # PRIMARY/SECONDARY PATH #
02743  M00S02401.ssbld   +++|
02744  M00S02402.ssbld   +++|      DEF LISTCON  #0#;      # DO NOT LIST COMMON DECKS #
02745  M00S02403.ssbld   +++|
02746  M00S02404.ssbld   +++|*CALL,COMBFAS
02747  M00S02405.ssbld   +++|*CALL,COMBUDT
02748  M00S02406.ssbld   +++|
Line S02407 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02749  M01S02407.ssbld1  ---|      ITEM I       U;        # LOOP INDEX #
Line S00342 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02750  M01S00342.ssbld1  +++|      ITEM FIRSTDRC   U;             # FIRST DRC TO SCAN FOR PATH #
02751  M01S00343.ssbld1  +++|      ITEM I          U;             # LOOP INDEX #
02752  M01S00344.ssbld1  +++|      ITEM J          U;             # LOOP INDEX #
02753  M00S02408.ssbld   +++|
02754  M00S02409.ssbld   +++|                                                      CONTROL EJECT;
Line S02410 Modification History
M01 (Removed by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02755  M01S02410.ssbld1  ---|      IF DRD EQ 0
02756  M01S02411.ssbld1  ---|      THEN                   # PROCESS DRD 0 #
02757  M01S02412.ssbld1  ---|        BEGIN  # DRD 0 #
02758  M01S02413.ssbld1  ---|        IF PRIMARY
02759  M01S02414.ssbld1  ---|        THEN               # PROCESS PRIMARY #
02760  M01S02415.ssbld1  ---|          BEGIN  # PRIMARY #
02761  M01S02416.ssbld1  ---|          IF B<PATH$DF"U$ON",1>D0$FLAG[1] EQ 0  ##
02762  M01S02417.ssbld1  ---|          THEN             # DRD IS DECLARED OFF #
02763  M01S02418.ssbld1  ---|            BEGIN
02764  M01S02419.ssbld1  ---|            D0$STSP[1] = D0$FLAG[1];
02765  M01S02420.ssbld1  ---|            RETURN;
02766  M01S02421.ssbld1  ---|            END
02767  M01S02422.ssbld1  ---|
02768  M01S02423.ssbld1  ---|          ELSE             # SEARCH FOR ON PATH #
02769  M01S02424.ssbld1  ---|            BEGIN
02770  M01S02425.ssbld1  ---|            B<PATH$DF"U$EXISTS",1>D0$STSP[1] = 1;
02771  M01S02426.ssbld1  ---|            B<PATH$DF"U$ON",1>D0$STSP[1] = 0;
02772  M01S02427.ssbld1  ---|            SLOWFOR I = 0 STEP 2 UNTIL MAX$DRD - 1
02773  M01S02428.ssbld1  ---|            DO
02774  M01S02429.ssbld1  ---|              BEGIN
02775  M01S02430.ssbld1  ---|              IF B<I*6+PATH$DF"U$ON",1>UD$DRCP0[1] EQ 1  ##
02776  M01S02431.ssbld1  ---|                OR B<I*6+PATH$DF"U$ON",1>UD$DRCP1[1] EQ 1
02777  M01S02432.ssbld1  ---|              THEN        # ON PATH FOUND #
02778  M01S02433.ssbld1  ---|                BEGIN
02779  M01S02434.ssbld1  ---|                B<PATH$DF"U$ON",1>D0$STSP[1] = 1;
02780  M01S02435.ssbld1  ---|                RETURN;
02781  M01S02436.ssbld1  ---|                END
02782  M01S02437.ssbld1  ---|
02783  M01S02438.ssbld1  ---|              TEST I;
02784  M01S02439.ssbld1  ---|              END
02785  M01S02440.ssbld1  ---|
02786  M01S02441.ssbld1  ---|
02787  M01S02442.ssbld1  ---|            END
02788  M01S02443.ssbld1  ---|
02789  M01S02444.ssbld1  ---|          END  # PRIMARY #
02790  M01S02445.ssbld1  ---|
02791  M01S02446.ssbld1  ---|
02792  M01S02447.ssbld1  ---|        IF NOT PRIMARY     # PROCESS SECONDARY #
02793  M01S02448.ssbld1  ---|        THEN
02794  M01S02449.ssbld1  ---|          BEGIN  # SECONDARY #
02795  M01S02450.ssbld1  ---|          IF B<PATH$DF"U$ON",1>D0$FLAG[1] EQ 0
02796  M01S02451.ssbld1  ---|          THEN             # DRD IS DECLARED OFF #
02797  M01S02452.ssbld1  ---|            BEGIN
02798  M01S02453.ssbld1  ---|            D0$STSS[1] = D0$FLAG[1];
02799  M01S02454.ssbld1  ---|            RETURN;
02800  M01S02455.ssbld1  ---|            END
02801  M01S02456.ssbld1  ---|
02802  M01S02457.ssbld1  ---|          ELSE             # SEARCH FOR ON PATH #
02803  M01S02458.ssbld1  ---|            BEGIN
02804  M01S02459.ssbld1  ---|            B<PATH$DF"U$EXISTS",1>D0$STSS[1] = 1;
02805  M01S02460.ssbld1  ---|            B<PATH$DF"U$ON",1>D0$STSS[1] = 0;
02806  M01S02461.ssbld1  ---|            SLOWFOR I = 0 STEP 2 UNTIL MAX$DRD - 1
02807  M01S02462.ssbld1  ---|            DO
02808  M01S02463.ssbld1  ---|              BEGIN
02809  M01S02464.ssbld1  ---|              IF B<I*6+PATH$DF"U$ON",1>UD$DRCP0[1] EQ 1  ##
02810  M01S02465.ssbld1  ---|                OR B<I*6+PATH$DF"U$ON",1>UD$DRCP1[1] EQ 1
02811  M01S02466.ssbld1  ---|              THEN        # ON PATH FOUND #
02812  M01S02467.ssbld1  ---|                BEGIN
02813  M01S02468.ssbld1  ---|                B<PATH$DF"U$ON",1>D0$STSS[1] = 1;
02814  M01S02469.ssbld1  ---|                RETURN;
02815  M01S02470.ssbld1  ---|                END
02816  M01S02471.ssbld1  ---|
02817  M01S02472.ssbld1  ---|              TEST I;
02818  M01S02473.ssbld1  ---|              END
02819  M01S02474.ssbld1  ---|
02820  M01S02475.ssbld1  ---|            END
02821  M01S02476.ssbld1  ---|
02822  M01S02477.ssbld1  ---|          END  # SECONDARY #
02823  M01S02478.ssbld1  ---|
02824  M01S02479.ssbld1  ---|        END  # DRD 0 #
02825  M01S02480.ssbld1  ---|
02826  M01S02481.ssbld1  ---|      IF DRD EQ 1            # PROCESS DRD 1 #
02827  M01S02482.ssbld1  ---|      THEN
02828  M01S02483.ssbld1  ---|        BEGIN  # DRD 1 #
02829  M01S02484.ssbld1  ---|        IF PRIMARY
02830  M01S02485.ssbld1  ---|        THEN               # PROCESS PRIMARY #
02831  M01S02486.ssbld1  ---|          BEGIN  # PRIMARY #
02832  M01S02487.ssbld1  ---|          IF B<PATH$DF"U$ON",1>D1$FLAG[1] EQ 0
02833  M01S02488.ssbld1  ---|          THEN             # DRD IS DECLARED OFF #
02834  M01S02489.ssbld1  ---|            BEGIN
02835  M01S02490.ssbld1  ---|            D1$STSP[1] = D1$FLAG[1];
02836  M01S02491.ssbld1  ---|            RETURN;
02837  M01S02492.ssbld1  ---|            END
02838  M01S02493.ssbld1  ---|
02839  M01S02494.ssbld1  ---|          ELSE             # SEARCH FOR ON PATH #
02840  M01S02495.ssbld1  ---|            BEGIN
02841  M01S02496.ssbld1  ---|            B<PATH$DF"U$EXISTS",1>D1$STSP[1] = 1;
02842  M01S02497.ssbld1  ---|            B<PATH$DF"U$ON",1>D1$STSP[1] = 0;
02843  M01S02498.ssbld1  ---|            SLOWFOR I = 1 STEP 2 UNTIL MAX$DRD
02844  M01S02499.ssbld1  ---|            DO
02845  M01S02500.ssbld1  ---|              BEGIN
02846  M01S02501.ssbld1  ---|              IF B<I*6+PATH$DF"U$ON",1>UD$DRCP0[1] EQ 1  ##
02847  M01S02502.ssbld1  ---|                OR B<I*6+PATH$DF"U$ON",1>UD$DRCP1[1] EQ 1
02848  M01S02503.ssbld1  ---|              THEN        # ON PATH FOUND #
02849  M01S02504.ssbld1  ---|                BEGIN
02850  M01S02505.ssbld1  ---|                B<PATH$DF"U$ON",1>D1$STSP[1] = 1;
02851  M01S02506.ssbld1  ---|                RETURN;
02852  M01S02507.ssbld1  ---|                END
02853  M01S02508.ssbld1  ---|
02854  M01S02509.ssbld1  ---|              TEST I;
02855  M01S02510.ssbld1  ---|              END
02856  M01S02511.ssbld1  ---|
02857  M01S02512.ssbld1  ---|            END
02858  M01S02513.ssbld1  ---|
02859  M01S02514.ssbld1  ---|          END  # PRIMARY #
02860  M01S02515.ssbld1  ---|
02861  M01S02516.ssbld1  ---|        IF NOT PRIMARY     # PROCESS SECONDARY #
02862  M01S02517.ssbld1  ---|        THEN
02863  M01S02518.ssbld1  ---|          BEGIN  # SECONDARY #
02864  M01S02519.ssbld1  ---|          IF B<PATH$DF"U$ON",1>D1$FLAG[1] EQ 0
02865  M01S02520.ssbld1  ---|          THEN             # DRD IS DECLARED OFF #
02866  M01S02521.ssbld1  ---|            BEGIN
02867  M01S02522.ssbld1  ---|            D1$STSS[1] = D1$FLAG[1];
02868  M01S02523.ssbld1  ---|            RETURN;
02869  M01S02524.ssbld1  ---|            END
02870  M01S02525.ssbld1  ---|
02871  M01S02526.ssbld1  ---|          ELSE             # SEARCH FOR ON PATH #
02872  M01S02527.ssbld1  ---|            BEGIN
02873  M01S02528.ssbld1  ---|            B<PATH$DF"U$EXISTS",1>D1$STSS[1] = 1;
02874  M01S02529.ssbld1  ---|            B<PATH$DF"U$ON",1>D1$STSS[1] = 0;
02875  M01S02530.ssbld1  ---|            SLOWFOR I = 1 STEP 2 UNTIL MAX$DRD
02876  M01S02531.ssbld1  ---|            DO
02877  M01S02532.ssbld1  ---|              BEGIN
02878  M01S02533.ssbld1  ---|              IF B<I*6+PATH$DF"U$ON",1>UD$DRCP0[1] EQ 1  ##
02879  M01S02534.ssbld1  ---|                OR B<I*6+PATH$DF"U$ON",1>UD$DRCP1[1] EQ 1
02880  M01S02535.ssbld1  ---|              THEN        # ON PATH FOUND #
02881  M01S02536.ssbld1  ---|                BEGIN
02882  M01S02537.ssbld1  ---|                B<PATH$DF"U$ON",1>D1$STSS[1] = 1;
02883  M01S02538.ssbld1  ---|                RETURN;
02884  M01S02539.ssbld1  ---|                END
02885  M01S02540.ssbld1  ---|
02886  M01S02541.ssbld1  ---|              TEST I;
02887  M01S02542.ssbld1  ---|              END
02888  M01S02543.ssbld1  ---|
02889  M01S02544.ssbld1  ---|            END
02890  M01S02545.ssbld1  ---|
02891  M01S02546.ssbld1  ---|          END  # SECONDARY #
02892  M01S02547.ssbld1  ---|
02893  M01S02548.ssbld1  ---|        END  # DRD 1 #
02894  M01S02549.ssbld1  ---|
Line S00345 Modification History
M01 (Added by) ssbld1
Seq #  *Modification Id* Act 
----------------------------+
02895  M01S00345.ssbld1  +++|                                               CONTROL INERT;
02896  M01S00346.ssbld1  +++|
02897  M01S00347.ssbld1  +++|#
02898  M01S00348.ssbld1  +++|*     ONLY DRC-S 0 AND 1 CAN CONNECT TO DRD-S 0-7.
02899  M01S00349.ssbld1  +++|*     ONLY DRC-S 2 AND 3 CAN CONNECT TO DRD-S 8-15.
02900  M01S00350.ssbld1  +++|#
02901  M01S00351.ssbld1  +++|
02902  M01S00352.ssbld1  +++|      FIRSTDRC = 0;                  # ASSUME CHECKING DRC-S 0 AND 1 #
02903  M01S00353.ssbld1  +++|      IF DRD GQ 8
02904  M01S00354.ssbld1  +++|      THEN                           # DRD CONNECTED TO OTHER DRC PAIR #
02905  M01S00355.ssbld1  +++|        BEGIN  # RESET #
02906  M01S00356.ssbld1  +++|        FIRSTDRC = 2;                # CHECK DRC-S 2 AND 3 #
02907  M01S00357.ssbld1  +++|        END  # RESET #
02908  M01S00358.ssbld1  +++|
02909  M01S00359.ssbld1  +++|#
02910  M01S00360.ssbld1  +++|*     SET THE PASSED DRD AS ON WITH RESPECT TO THE PASSED CONTROLLER
02911  M01S00361.ssbld1  +++|*     IF A DIF-DRC-DRD PATH CAN BE FOUND THAT IS ON FROM A
02912  M01S00362.ssbld1  +++|*     DIF IN THE PASSED CU TO THE PASSED DRD.
02913  M01S00363.ssbld1  +++|*
02914  M01S00364.ssbld1  +++|*     NOTE:  ALL CONTROLLERS ARE SEARCHED FOR A VALID DRC-DRD
02915  M01S00365.ssbld1  +++|*     PATH, SINCE DRC-S ARE INDEPENDENT OF THE CONTROLLERS
02916  M01S00366.ssbld1  +++|*     THEY RESIDE IN.
02917  M01S00367.ssbld1  +++|*
02918  M01S00368.ssbld1  +++|#
02919  M01S00369.ssbld1  +++|
02920  M01S00370.ssbld1  +++|      SLOWFOR I = 1 STEP 1 UNTIL MAXCTN
02921  M01S00371.ssbld1  +++|      DO                             # SEARCH ALL CU-S FOR DRC-S #
02922  M01S00372.ssbld1  +++|        BEGIN  # CU #
02923  M01S00373.ssbld1  +++|        SLOWFOR J = FIRSTDRC STEP 1 UNTIL (FIRSTDRC + 1)
02924  M01S00374.ssbld1  +++|        DO                           # CHECK BOTH DRC-S  #
02925  M01S00375.ssbld1  +++|          BEGIN  # DRC #
02926  M01S00376.ssbld1  +++|          P<PTHSTAT> = LOC(UD$DRCP0[I]) + J;  # LOCATE DRC #
02927  M01S00377.ssbld1  +++|          IF PATHBIT(B<57,3>DRD,PATH$DF"U$EXISTS") EQ 1  ##
02928  M01S00378.ssbld1  +++|            AND PATHBIT(B<57,3>DRD,PATH$DF"U$ON") EQ 1  # DRC-DRD ON #
02929  M01S00379.ssbld1  +++|            AND ((B<J*6+PATH$DF"U$EXISTS",1>UD$DIF0[CONTORD] EQ 1  ##
02930  M01S00380.ssbld1  +++|            AND B<J*6+PATH$DF"U$ON",1>UD$DIF0[CONTORD] EQ 1)
02931  M01S00381.ssbld1  +++|                                     # DIF0-DRC PATH FOUND ON #
02932  M01S00382.ssbld1  +++|            OR (B<J*6+PATH$DF"U$EXISTS",1>UD$DIF1[CONTORD] EQ 1  ##
02933  M01S00383.ssbld1  +++|            AND B<J*6+PATH$DF"U$ON",1>UD$DIF1[CONTORD] EQ 1))
02934  M01S00384.ssbld1  +++|                                     # DIF1-DRC PATH FOUND ON #
02935  M01S00385.ssbld1  +++|          THEN                       # DRD CONFIRMED ON TO CONTROLLER #
02936  M01S00386.ssbld1  +++|            BEGIN  # DRD ON #
02937  M01S00387.ssbld1  +++|            IF CONTORD EQ SM$CUO0[1]
02938  M01S00388.ssbld1  +++|            THEN                     # SET DRD ON TO PRIMARY CU #
02939  M01S00389.ssbld1  +++|              BEGIN  # PRIMARY #
02940  M01S00390.ssbld1  +++|              IF B<59,1>DRD EQ 0 AND D0$ON[1]
02941  M01S00391.ssbld1  +++|              THEN                   # EVEN-NUMBERED DRD CHECKED #
02942  M01S00392.ssbld1  +++|                BEGIN  # EVEN #
02943  M01S00393.ssbld1  +++|                B<PATH$DF"U$ON",1>D0$STSP[1] = 1;
02944  M01S00394.ssbld1  +++|                END  # EVEN #
02945  M01S00395.ssbld1  +++|
02946  M01S00396.ssbld1  +++|              IF B<59,1>DRD EQ 1 AND D1$ON[1]
02947  M01S00397.ssbld1  +++|              THEN                   # ODD-NUMBERED DRD CHECKED #
02948  M01S00398.ssbld1  +++|                BEGIN  # ODD #
02949  M01S00399.ssbld1  +++|                B<PATH$DF"U$ON",1>D1$STSP[1] = 1;
02950  M01S00400.ssbld1  +++|                END  # ODD #
02951  M01S00401.ssbld1  +++|
02952  M01S00402.ssbld1  +++|              END  # PRIMARY #
02953  M01S00403.ssbld1  +++|
02954  M01S00404.ssbld1  +++|            ELSE                     # SET DRD ON TO SECONDARY CU #
02955  M01S00405.ssbld1  +++|              BEGIN  # SECONDARY #
02956  M01S00406.ssbld1  +++|              IF B<59,1>DRD EQ 0 AND D0$ON[1]
02957  M01S00407.ssbld1  +++|              THEN                   # EVEN-NUMBERED DRD CHECKED #
02958  M01S00408.ssbld1  +++|                BEGIN  # EVEN #
02959  M01S00409.ssbld1  +++|                B<PATH$DF"U$ON",1>D0$STSS[1] = 1;
02960  M01S00410.ssbld1  +++|                END  # EVEN #
02961  M01S00411.ssbld1  +++|
02962  M01S00412.ssbld1  +++|              IF B<59,1>DRD EQ 1 AND D1$ON[1]
02963  M01S00413.ssbld1  +++|              THEN                   # ODD-NUMBERED DRD CHECKED #
02964  M01S00414.ssbld1  +++|                BEGIN  # ODD #
02965  M01S00415.ssbld1  +++|                B<PATH$DF"U$ON",1>D1$STSS[1] = 1;
02966  M01S00416.ssbld1  +++|                END  # ODD #
02967  M01S00417.ssbld1  +++|
02968  M01S00418.ssbld1  +++|              END  # SECONDARY #
02969  M01S00419.ssbld1  +++|
02970  M01S00420.ssbld1  +++|            RETURN;                  # SEARCH COMPLETE #
02971  M01S00421.ssbld1  +++|            END  # DRD ON #
02972  M01S00422.ssbld1  +++|
02973  M01S00423.ssbld1  +++|          END  # DRC #
02974  M01S00424.ssbld1  +++|
02975  M01S00425.ssbld1  +++|        END  # CU #
02976  M01S00426.ssbld1  +++|
02977  M01S00427.ssbld1  +++|                                               CONTROL REACTIVE;
02978  M01S00428.ssbld1  +++|
02979  M01S00429.ssbld1  +++|      IF B<59,1>DRD EQ 0
02980  M01S00430.ssbld1  +++|      THEN                           # EVEN-NUMBERED DRD FOUND OFF #
02981  M01S00431.ssbld1  +++|        BEGIN  # OFF #
02982  M01S00432.ssbld1  +++|        D0$FLAG[1] = D0$STSP[1] LOR D0$STSS[1];  # IN CASE OFF TO BOTH #
02983  M01S00433.ssbld1  +++|        END  # OFF #
02984  M01S00434.ssbld1  +++|
02985  M01S00435.ssbld1  +++|      ELSE                           # ODD-NUMBERED DRD FOUND OFF #
02986  M01S00436.ssbld1  +++|        BEGIN  # OFF #
02987  M01S00437.ssbld1  +++|        D1$FLAG[1] = D1$STSP[1] LOR D1$STSS[1];  # IN CASE OFF TO BOTH #
02988  M01S00438.ssbld1  +++|        END  # OFF #
02989  M01S00439.ssbld1  +++|
02990  M01S00440.ssbld1  +++|                                               CONTROL INERT;
02991  M01S00441.ssbld1  +++|
02992  M00S02550.ssbld   +++|      END  # UPDRDST #
02993  M00S02551.ssbld   +++|
02994  M00S02552.ssbld   +++|      TERM
02995  M00S02553.ssbld   +++|PROC WTBUDT;
02996  M00S02554.ssbld   +++|
02997  M00S02555.ssbld   +++|
02998  M00S02556.ssbld   +++|# TITLE WTBUDT - WRITE SSBLD GENERATED UDT TO DISK FILE               #
02999  M00S02557.ssbld   +++|
03000  M00S02558.ssbld   +++|      BEGIN  # WTBUDT #
03001  M00S02559.ssbld   +++|
03002  M00S02560.ssbld   +++|#
03003  M00S02561.ssbld   +++|***   WTBUDT - WRITE UDT TO PERMANENT FILE.
03004  M00S02562.ssbld   +++|*
03005  M00S02563.ssbld   +++|*     TWTBUDT WRITES THE SSBLD GENERATED UDT TO THE SSEXEC
03006  M00S02564.ssbld   +++|*     ACCESSIBLE PERMANENT FILE. THE DEFAULT FLIE NAME IS *BUDT*.
03007  M00S02565.ssbld   +++|*
03008  M00S02566.ssbld   +++|*     PROC WTBUDT.
03009  M00S02567.ssbld   +++|*
03010  M00S02568.ssbld   +++|*     ENTRY - NONE.
03011  M00S02569.ssbld   +++|*
03012  M00S02570.ssbld   +++|*     EXIT - UDT WRITTEN TO THE PERMANENT FILE.
03013  M00S02571.ssbld   +++|*
03014  M00S02572.ssbld   +++|*     MESSAGES
03015  M00S02573.ssbld   +++|*
03016  M00S02574.ssbld   +++|*     WTBUDT - CIO ERROR.
03017  M00S02575.ssbld   +++|*     WTBUDT - DEVICE FULL FOR UDT FILE.
03018  M00S02576.ssbld   +++|*
03019  M00S02577.ssbld   +++|*     NOTES
03020  M00S02578.ssbld   +++|#
03021  M00S02579.ssbld   +++|
03022  M00S02580.ssbld   +++|#
03023  M00S02581.ssbld   +++|**** PROC WTBUDT - XREF LIST BEGIN.
03024  M00S02582.ssbld   +++|#
03025  M00S02583.ssbld   +++|
03026  M00S02584.ssbld   +++|      XREF
03027  M00S02585.ssbld   +++|        BEGIN
03028  M00S02586.ssbld   +++|        PROC BZFILL;                 # BLANK OR ZERO FILL AN ITEM #
03029  M00S02587.ssbld   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
03030  M00S02588.ssbld   +++|        PROC RESTPFP;                # RESTORE USER-S PFP AND ABORT #
03031  M00S02589.ssbld   +++|        PROC RETERN;                  # RETURNS A FILE #
03032  M00S02590.ssbld   +++|        PROC REWIND;                 # REWINDS A FILE #
03033  M00S02591.ssbld   +++|        PROC WRITE;                  # WRITE DATA TO DISK #
03034  M00S02592.ssbld   +++|        PROC WRITEF;                 # WRITE EOF ON DISK FILE #
03035  M00S02593.ssbld   +++|        PROC WRITER;                 # WRITES EOR ON A FILE #
03036  M00S02594.ssbld   +++|        PROC WRITEW;                 # DATA TRANSFER ROUTINE #
03037  M00S02595.ssbld   +++|        PROC ZFILL;                  # ZERO FILLS A BUFFER #
03038  M00S02596.ssbld   +++|        PROC ZSETFET;                # SETS UP A FET #
03039  M00S02597.ssbld   +++|        END
03040  M00S02598.ssbld   +++|
03041  M00S02599.ssbld   +++|#
03042  M00S02600.ssbld   +++|****  PROC WTBUDT - XREF LIST END.
03043  M00S02601.ssbld   +++|#
03044  M00S02602.ssbld   +++|
03045  M00S02603.ssbld   +++|      DEF MSG$CIOERR  #"WTBUDT - CIO ERROR."#;
03046  M00S02604.ssbld   +++|      DEF MSG$DSKFULL #"WTBUDT - DEVICE FULL FOR UDT FILE."#;
03047  M00S02605.ssbld   +++|
03048  M00S02606.ssbld   +++|      DEF LISTCON    #0#;            # DO NOT LIST THE COMMON DECKS #
03049  M00S02607.ssbld   +++|*CALL,COMBFAS
03050  M00S02608.ssbld   +++|*CALL,COMBBZF
03051  M00S02609.ssbld   +++|*CALL,COMBFET
03052  M00S02610.ssbld   +++|*CALL,COMBUDT
03053  M00S02611.ssbld   +++|*CALL,COMSPFM
03054  M00S02612.ssbld   +++|*CALL,COMTBLD
03055  M00S02613.ssbld   +++|*CALL,COMTBLP
03056  M00S02614.ssbld   +++|*CALL,COMTOUT
03057  M00S02615.ssbld   +++|
03058  M00S02616.ssbld   +++|      ITEM BUFP       I;             # FWA OF BUFFER #
03059  M00S02617.ssbld   +++|      ITEM FETP       I;             # FET POINTER #
03060  M00S02618.ssbld   +++|      ITEM TMPI       I;
03061  M00S02619.ssbld   +++|      ITEM TMPJ       I;
03062  M00S02620.ssbld   +++|      ITEM TMPK       I;
03063  M00S02621.ssbld   +++|      ITEM LFN        C(7);          # FILE NAME #
03064  M00S02622.ssbld   +++|      ITEM STAT       I;             # INTEGER STATUS VARIABLE #
03065  M00S02623.ssbld   +++|
03066  M00S02624.ssbld   +++|                                               CONTROL EJECT;
03067  M00S02625.ssbld   +++|
03068  M00S02626.ssbld   +++|#
03069  M00S02627.ssbld   +++|*     SET UP THE FET FOR UDT BINARY AND REWIND IT.
03070  M00S02628.ssbld   +++|#
03071  M00S02629.ssbld   +++|
03072  M00S02630.ssbld   +++|      LFN = DARG$BF[0];
03073  M00S02631.ssbld   +++|      BZFILL(LFN,TYPFILL"ZFILL",7);
03074  M00S02632.ssbld   +++|      FETP = LOC(BL$FET[0]);
03075  M00S02633.ssbld   +++|      BUFP = LOC(BL$BUF[0]);
03076  M00S02634.ssbld   +++|      ZSETFET(FETP,LFN,BUFP,BLBUFL,SFETL);
03077  M00S02635.ssbld   +++|      REWIND(BL$FET[0],RCL);
03078  M00S02636.ssbld   +++|      P<BL$UDT$LOC> = LOC(BL$UDT$HDR);
03079  M00S02637.ssbld   +++|
03080  M00S02638.ssbld   +++|#
03081  M00S02639.ssbld   +++|*     WRITE THE FILE TO *CIO* BUFFER
03082  M00S02640.ssbld   +++|#
03083  M00S02641.ssbld   +++|
03084  M00S02642.ssbld   +++|      WRITEW(BL$FET[0],BL$UDT$LOC[0],LARCUDTLTM,STAT);
03085  M00S02643.ssbld   +++|
03086  M00S02644.ssbld   +++|#
03087  M00S02645.ssbld   +++|*     WRITE UDT TO DISK
03088  M00S02646.ssbld   +++|#
03089  M00S02647.ssbld   +++|
03090  M00S02648.ssbld   +++|      WRITE(BL$FET[0],RCL);
03091  M00S02649.ssbld   +++|      WRITER(BL$FET[0],RCL);
03092  M00S02650.ssbld   +++|      WRITEF(BL$FET[0],RCL);
03093  M00S02651.ssbld   +++|      REWIND(BL$FET[0],RCL);
03094  M00S02652.ssbld   +++|      RETERN(BL$FET[0],RCL);
03095  M00S02653.ssbld   +++|
03096  M00S02654.ssbld   +++|      END  # WTBUDT #
03097  M00S02655.ssbld   +++|
03098  M00S02656.ssbld   +++|    TERM
cdc/nos2.source/opl.opl871/deck/ssbld.001.txt ยท Last modified: by 127.0.0.1