User Tools

Site Tools


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

Deck SSUSE Part 001

1 Modification

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
02204  M00S02203.ssuse   +++|            CHAR$10[0] = CM$CCOD[0];
02205  M00S02204.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02206  M00S02205.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L2[0],17,2,1);
02207  M00S02206.ssuse   +++|
02208  M00S02207.ssuse   +++|            CHAR$10[0] = CM$CSND[0];
02209  M00S02208.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02210  M00S02209.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L8[0],19,8,1);
02211  M00S02210.ssuse   +++|
02212  M00S02211.ssuse   +++|            CHAR$10[0] = CM$FMLYNM[0];
02213  M00S02212.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02214  M00S02213.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L7[0],30,7,1);
02215  M00S02214.ssuse   +++|
02216  M00S02215.ssuse   +++|#
02217  M00S02216.ssuse   +++|*     DO NOT PRINT SUBFAMILY, GROUP, OR GROUP ORDINAL UNLESS THEY
02218  M00S02217.ssuse   +++|*     HAVE BEEN ASSIGNED.
02219  M00S02218.ssuse   +++|#
02220  M00S02219.ssuse   +++|
02221  M00S02220.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"SUBFAM"
02222  M00S02221.ssuse   +++|            THEN
02223  M00S02222.ssuse   +++|              BEGIN   # ASSIGNED TO SUBFAMILY #
02224  M00S02223.ssuse   +++|              CHAR$10[0] = XCDD(CM$SUB[0]);
02225  M00S02224.ssuse   +++|              RPLINE(OUT$FETP,CHAR$R1[0],46,1,1);
02226  M00S02225.ssuse   +++|              IF CM$FCTORD[0] NQ 0
02227  M00S02226.ssuse   +++|              THEN
02228  M00S02227.ssuse   +++|                BEGIN
02229  M00S02228.ssuse   +++|                GP = CM$FCTORD[0] / MAXGRT;
02230  M00S02229.ssuse   +++|                CHAR$10[0] = XCDD(GP);
02231  M00S02230.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R2[0],57,2,1);
02232  M00S02231.ssuse   +++|                GRT = CM$FCTORD[0] - (GP * MAXGRT);
02233  M00S02232.ssuse   +++|                CHAR$10[0] = XCDD(GRT);
02234  M00S02233.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R2[0],67,2,1);
02235  M00S02234.ssuse   +++|                END
02236  M00S02235.ssuse   +++|
02237  M00S02236.ssuse   +++|              END   # ASSIGNED TO SUBFAMILY #
02238  M00S02237.ssuse   +++|
02239  M00S02238.ssuse   +++|            RPLINE(OUT$FETP,RPTFLAG,74,7,0);
02240  M00S02239.ssuse   +++|            END  # PROCESS EACH Y COORDINATE #
02241  M00S02240.ssuse   +++|
02242  M00S02241.ssuse   +++|          END  # PROCESS EACH Z COORDINATE #
02243  M00S02242.ssuse   +++|
02244  M00S02243.ssuse   +++|#
02245  M00S02244.ssuse   +++|*     CLOSE THE SMMAP.
02246  M00S02245.ssuse   +++|#
02247  M00S02246.ssuse   +++|
02248  M00S02247.ssuse   +++|        MCLOSE(SM,FLAG);
02249  M00S02248.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02250  M00S02249.ssuse   +++|        THEN
02251  M00S02250.ssuse   +++|          BEGIN
02252  M00S02251.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
02253  M00S02252.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
02254  M00S02253.ssuse   +++|          RPCLOSE(OUT$FETP);
02255  M00S02254.ssuse   +++|          RESTPFP(PFP$ABORT);
02256  M00S02255.ssuse   +++|          END
02257  M00S02256.ssuse   +++|
02258  M00S02257.ssuse   +++|        END  # PROCESS EACH SM #
02259  M00S02258.ssuse   +++|
02260  M00S02259.ssuse   +++|      RETURN;
02261  M00S02260.ssuse   +++|
02262  M00S02261.ssuse   +++|      END  # USRPTA #
02263  M00S02262.ssuse   +++|
02264  M00S02263.ssuse   +++|    TERM
02265  M00S02264.ssuse   +++|PROC USRPTB;
02266  M00S02265.ssuse   +++|# TITLE USRPTB - GENERATES OPTIONAL REPORT B.                         #
02267  M00S02266.ssuse   +++|
02268  M00S02267.ssuse   +++|      BEGIN  # USRPTB #
02269  M00S02268.ssuse   +++|
02270  M00S02269.ssuse   +++|#
02271  M00S02270.ssuse   +++|**    USRPTB - GENERATES OPTIONAL REPORT B.
02272  M00S02271.ssuse   +++|*
02273  M00S02272.ssuse   +++|*     THIS PROC IDENTIFIES THE AVAILABLE AU ON EACH CARTRIDGE, THE
02274  M00S02273.ssuse   +++|*     NUMBER OF FLAGGED AU ON EACH CARTRIDGE, AND THE FLAGS SET
02275  M00S02274.ssuse   +++|*     FOR EACH CARTRIDGE IN THE SFMCATALOG.
02276  M00S02275.ssuse   +++|*
02277  M00S02276.ssuse   +++|*     PROC USRPTB.
02278  M00S02277.ssuse   +++|*
02279  M00S02278.ssuse   +++|*     ENTRY.    (SEL$SB)   = BITS SET FOR THE SELECTED SUBFAMILIES.
02280  M00S02279.ssuse   +++|*               (SEL$SM)   = BITS SET FOR THE SELECTED SM-S.
02281  M00S02280.ssuse   +++|*               (USARG$FM) = FAMILY NAME.
02282  M00S02281.ssuse   +++|*
02283  M00S02282.ssuse   +++|*     EXIT.     OPTIONAL REPORT B GENERATED.
02284  M00S02283.ssuse   +++|*
02285  M00S02284.ssuse   +++|*     MESSAGES. 1)  FAMILY NOT FOUND.
02286  M00S02285.ssuse   +++|*               2)  UNABLE TO OPEN CATALOG.
02287  M00S02286.ssuse   +++|*               3)  SFMCATALOG PARITY ERROR.
02288  M00S02287.ssuse   +++|*               4)  SSUSE ABNORMAL, USRPTB.
02289  M00S02288.ssuse   +++|*
02290  M00S02289.ssuse   +++|*     NOTES.    PROC *USRPTB* LISTS GENERAL STATUS INFORMATION FOR
02291  M00S02290.ssuse   +++|*               EACH CARTRIDGE IN THE SFMCATALOG.  THE NUMBER OF
02292  M00S02291.ssuse   +++|*               AVAILABLE AU AND FLAGGED AU FOR EACH CARTRIDGE, AND
02293  M00S02292.ssuse   +++|*               THE FLAGS SET FOR EACH CARTRIDGE ARE LISTED.
02294  M00S02293.ssuse   +++|#
02295  M00S02294.ssuse   +++|
02296  M00S02295.ssuse   +++|#
02297  M00S02296.ssuse   +++|****  PROC USRPTB - XREF LIST BEGIN.
02298  M00S02297.ssuse   +++|#
02299  M00S02298.ssuse   +++|
02300  M00S02299.ssuse   +++|      XREF
02301  M00S02300.ssuse   +++|        BEGIN
02302  M00S02301.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
02303  M00S02302.ssuse   +++|        PROC CCLOSE;                 # CLOSES CATALOG #
02304  M00S02303.ssuse   +++|        PROC CGETFCT;                # GETS AN *FCT* ENTRY #
02305  M00S02304.ssuse   +++|        PROC COPEN;                  # OPENS CATALOG #
02306  M00S02305.ssuse   +++|        PROC CRDAST;                 # READS *AST* #
02307  M00S02306.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
02308  M00S02307.ssuse   +++|        PROC MESSAGE;                # PRINTS MESSAGE IN DAYFILE #
02309  M00S02308.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
02310  M00S02309.ssuse   +++|                                       OR RETURN #
02311  M00S02310.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
02312  M00S02311.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
02313  M00S02312.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
02314  M00S02313.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
02315  M00S02314.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
02316  M00S02315.ssuse   +++|        PROC ZFILL;                  # ZERO FILL ARRAY #
02317  M00S02316.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
02318  M00S02317.ssuse   +++|        END
02319  M00S02318.ssuse   +++|
02320  M00S02319.ssuse   +++|#
02321  M00S02320.ssuse   +++|****  PROC USRPTB - XREF LIST END.
02322  M00S02321.ssuse   +++|#
02323  M00S02322.ssuse   +++|
02324  M00S02323.ssuse   +++|      DEF PROCNAME #"USRPTB."#;      # PROC NAME #
02325  M00S02324.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
02326  M00S02325.ssuse   +++|*CALL COMBFAS
02327  M00S02326.ssuse   +++|*CALL COMBBZF
02328  M00S02327.ssuse   +++|*CALL COMBCMD
02329  M00S02328.ssuse   +++|*CALL COMBCMS
02330  M00S02329.ssuse   +++|*CALL COMBMCT
02331  M00S02330.ssuse   +++|*CALL COMBPFP
02332  M00S02331.ssuse   +++|*CALL COMSPFM
02333  M00S02332.ssuse   +++|*CALL COMXMSC
02334  M00S02333.ssuse   +++|*CALL COMTOUT
02335  M00S02334.ssuse   +++|*CALL COMTUSE
02336  M00S02335.ssuse   +++|*CALL COMTUSP
02337  M00S02336.ssuse   +++|
02338  M00S02337.ssuse   +++|      ITEM ACFLAG     I;             # AU CONFLICT COUNT #
02339  M00S02338.ssuse   +++|      ITEM ASTADR     I;             # *AST* BUFFER ADDRESS #
02340  M00S02339.ssuse   +++|      ITEM FAFLAG     I;             # FLAWED,ALLOCATED AU COUNT #
02341  M00S02340.ssuse   +++|      ITEM FCFLAG     I;             # FROZEN CHAIN AU COUNT #
02342  M00S02341.ssuse   +++|      ITEM FCTADR     I;             # *FCT* BUFFER ADDRESS #
02343  M00S02342.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
02344  M00S02343.ssuse   +++|      ITEM FUFLAG     I;             # FLAWED,UNALLOCATED AU COUNT #
02345  M00S02344.ssuse   +++|      ITEM GP         I;             # GROUP #
02346  M00S02345.ssuse   +++|      ITEM GRT        I;             # GROUP ORDINAL #
02347  M00S02346.ssuse   +++|      ITEM J          I;             # LOOP VARIABLE #
02348  M00S02347.ssuse   +++|      ITEM LN$CNT     I;             # COUNT OF PRINTED LINES #
02349  M00S02348.ssuse   +++|      ITEM N          I;             # LOOP VARIABLE #
02350  M00S02349.ssuse   +++|      ITEM RPTFLAG    C(6);          # REPORT FLAG #
02351  M00S02350.ssuse   +++|      ITEM SFFLAG     I;             # START OF FRAGMENT AU COUNT #
02352  M00S02351.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
02353  M00S02352.ssuse   +++|      ITEM SUBFAM     I;             # LOOP VARIABLE #
02354  M00S02353.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
02355  M00S02354.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
02356  M00S02355.ssuse   +++|                                               CONTROL EJECT;
02357  M00S02356.ssuse   +++|
02358  M00S02357.ssuse   +++|      FCTADR = LOC(US$FCTENT[0]);
02359  M00S02358.ssuse   +++|      ASTADR = LOC(US$ASTENT[0]);
02360  M00S02359.ssuse   +++|
02361  M00S02360.ssuse   +++|#
02362  M00S02361.ssuse   +++|*     CHANGE ZERO-FILL TO SPACE-FILL FOR FAMILY.
02363  M00S02362.ssuse   +++|#
02364  M00S02363.ssuse   +++|
02365  M00S02364.ssuse   +++|      TEMP$FAM = USARG$FM[0];
02366  M00S02365.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
02367  M00S02366.ssuse   +++|
02368  M00S02367.ssuse   +++|#
02369  M00S02368.ssuse   +++|*     CHECK IF SUBFAMILY SELECTED.
02370  M00S02369.ssuse   +++|#
02371  M00S02370.ssuse   +++|
02372  M00S02371.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
02373  M00S02372.ssuse   +++|      DO
02374  M00S02373.ssuse   +++|        BEGIN  # PROCESS EACH SUBFAMILY #
02375  M00S02374.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
02376  M00S02375.ssuse   +++|        THEN                         # SUBFAMILY NOT SELECTED #
02377  M00S02376.ssuse   +++|          BEGIN
02378  M00S02377.ssuse   +++|          TEST SUBFAM;
02379  M00S02378.ssuse   +++|          END
02380  M00S02379.ssuse   +++|
02381  M00S02380.ssuse   +++|#
02382  M00S02381.ssuse   +++|*     SET THE FAMILY AND USER INDEX.
02383  M00S02382.ssuse   +++|#
02384  M00S02383.ssuse   +++|
02385  M00S02384.ssuse   +++|        PFP$WRD0[0] = 0;
02386  M00S02385.ssuse   +++|        PFP$FAM[0] = USARG$FM[0];
02387  M00S02386.ssuse   +++|        PFP$UI[0] = DEF$UI + SUBFAM;
02388  M00S02387.ssuse   +++|        PFP$FG1[0] = TRUE;
02389  M00S02388.ssuse   +++|        PFP$FG4[0] = TRUE;
02390  M00S02389.ssuse   +++|        SETPFP(PFP[0]);
02391  M00S02390.ssuse   +++|        IF PFP$STAT[0] NQ 0
02392  M00S02391.ssuse   +++|        THEN                         # FAMILY NOT FOUND #
02393  M00S02392.ssuse   +++|          BEGIN
02394  M00S02393.ssuse   +++|          SSMSG$LINE[0] = " FAMILY NOT FOUND.";
02395  M00S02394.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
02396  M00S02395.ssuse   +++|          RPCLOSE(OUT$FETP);
02397  M00S02396.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
02398  M00S02397.ssuse   +++|          END
02399  M00S02398.ssuse   +++|
02400  M00S02399.ssuse   +++|#
02401  M00S02400.ssuse   +++|*     OPEN THE CATALOG AND CHECK THE RETURNED ERROR STATUS.
02402  M00S02401.ssuse   +++|#
02403  M00S02402.ssuse   +++|
02404  M00S02403.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
02405  M00S02404.ssuse   +++|        SFMCAT$LST[0] = CHAR$R1[0];
02406  M00S02405.ssuse   +++|        COPEN(USARG$FM[0],SUBFAM,SFMCATNM[0],"RM",TRUE,FLAG);
02407  M00S02406.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
02408  M00S02407.ssuse   +++|        THEN
02409  M00S02408.ssuse   +++|          BEGIN
02410  M00S02409.ssuse   +++|          LOFPROC(OCT$LFN[1]);       # ADD LFN TO LIST OF FILES #
02411  M00S02410.ssuse   +++|          END
02412  M00S02411.ssuse   +++|
02413  M00S02412.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02414  M00S02413.ssuse   +++|        THEN
02415  M00S02414.ssuse   +++|          BEGIN  # CHECK FOR TYPE OF ERROR #
02416  M00S02415.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
02417  M00S02416.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
02418  M00S02417.ssuse   +++|          THEN
02419  M00S02418.ssuse   +++|            BEGIN
02420  M00S02419.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN CATALOG.";
02421  M00S02420.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02422  M00S02421.ssuse   +++|            RPCLOSE(OUT$FETP);
02423  M00S02422.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02424  M00S02423.ssuse   +++|            END
02425  M00S02424.ssuse   +++|
02426  M00S02425.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
02427  M00S02426.ssuse   +++|          THEN
02428  M00S02427.ssuse   +++|            BEGIN
02429  M00S02428.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
02430  M00S02429.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02431  M00S02430.ssuse   +++|            RPCLOSE(OUT$FETP);
02432  M00S02431.ssuse   +++|            RESTPFP(PFP$ABORT);
02433  M00S02432.ssuse   +++|            END
02434  M00S02433.ssuse   +++|
02435  M00S02434.ssuse   +++|          ELSE
02436  M00S02435.ssuse   +++|            BEGIN
02437  M00S02436.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
02438  M00S02437.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
02439  M00S02438.ssuse   +++|            RPCLOSE(OUT$FETP);
02440  M00S02439.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02441  M00S02440.ssuse   +++|            END
02442  M00S02441.ssuse   +++|
02443  M00S02442.ssuse   +++|          END  # CHECK FOR TYPE OF ERROR #
02444  M00S02443.ssuse   +++|
02445  M00S02444.ssuse   +++|#
02446  M00S02445.ssuse   +++|*     CHECK IF SM ASSIGNED TO SUBFAMILY.
02447  M00S02446.ssuse   +++|#
02448  M00S02447.ssuse   +++|
02449  M00S02448.ssuse   +++|        SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
02450  M00S02449.ssuse   +++|        DO
02451  M00S02450.ssuse   +++|          BEGIN  # CHECK EACH SELECTED SM #
02452  M00S02451.ssuse   +++|          IF B<SM,1>SEL$SM EQ 0
02453  M00S02452.ssuse   +++|          THEN                       # SM NOT SELECTED #
02454  M00S02453.ssuse   +++|            BEGIN
02455  M00S02454.ssuse   +++|            TEST SM;
02456  M00S02455.ssuse   +++|            END
02457  M00S02456.ssuse   +++|
02458  M00S02457.ssuse   +++|          P<PREAMBLE> = PRMBADR;
02459  M00S02458.ssuse   +++|          LN$CNT = MAX$LN + 1;       # INITIALIZE LINE COUNT #
02460  M00S02459.ssuse   +++|
02461  M00S02460.ssuse   +++|#
02462  M00S02461.ssuse   +++|*     IF NO ENTRIES FOR THIS SM, PROCESS THE NEXT SPECIFIED SM.
02463  M00S02462.ssuse   +++|#
02464  M00S02463.ssuse   +++|
02465  M00S02464.ssuse   +++|          IF PRM$SCW1[SM] EQ 0
02466  M00S02465.ssuse   +++|          THEN                       # SM NOT ASSIGNED TO SUBFAMILY #
02467  M00S02466.ssuse   +++|            BEGIN
02468  M00S02467.ssuse   +++|            TEST SM;
02469  M00S02468.ssuse   +++|            END
02470  M00S02469.ssuse   +++|
02471  M00S02470.ssuse   +++|#
02472  M00S02471.ssuse   +++|*     GET THE *AST* AND CHECK THE RETURNED ERROR STATUS.
02473  M00S02472.ssuse   +++|#
02474  M00S02473.ssuse   +++|
02475  M00S02474.ssuse   +++|          CRDAST(USARG$FM[0],SUBFAM,SM,ASTADR,0,FLAG);
02476  M00S02475.ssuse   +++|          IF FLAG NQ CMASTAT"NOERR"
02477  M00S02476.ssuse   +++|          THEN                       # UNABLE TO GET *AST* #
02478  M00S02477.ssuse   +++|            BEGIN
02479  M00S02478.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
02480  M00S02479.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02481  M00S02480.ssuse   +++|            RPCLOSE(OUT$FETP);
02482  M00S02481.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02483  M00S02482.ssuse   +++|            END
02484  M00S02483.ssuse   +++|
02485  M00S02484.ssuse   +++|          P<AST> = ASTADR;
02486  M00S02485.ssuse   +++|
02487  M00S02486.ssuse   +++|#
02488  M00S02487.ssuse   +++|*     PROCESS ALL *AST* AND *FCT* ENTRIES.
02489  M00S02488.ssuse   +++|#
02490  M00S02489.ssuse   +++|
02491  M00S02490.ssuse   +++|          SLOWFOR J = 16 STEP 1 UNTIL PRM$ENTRC[SM] + 15
02492  M00S02491.ssuse   +++|          DO
02493  M00S02492.ssuse   +++|            BEGIN  # PROCESS AN *AST* AND *FCT* ENTRY #
02494  M00S02493.ssuse   +++|
02495  M00S02494.ssuse   +++|#
02496  M00S02495.ssuse   +++|*     GET THE *FCT* ENTRY AND CHECK THE RETURNED ERROR STATUS.
02497  M00S02496.ssuse   +++|#
02498  M00S02497.ssuse   +++|
02499  M00S02498.ssuse   +++|            CGETFCT(USARG$FM[0],SUBFAM,SM,J,FCTADR,0,FLAG);
02500  M00S02499.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
02501  M00S02500.ssuse   +++|            THEN                     # UNABLE TO GET *FCT* #
02502  M00S02501.ssuse   +++|              BEGIN
02503  M00S02502.ssuse   +++|              SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
02504  M00S02503.ssuse   +++|              MESSAGE(SSMSG$BUF[0],SYSUDF1);
02505  M00S02504.ssuse   +++|              RPCLOSE(OUT$FETP);
02506  M00S02505.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
02507  M00S02506.ssuse   +++|              END
02508  M00S02507.ssuse   +++|
02509  M00S02508.ssuse   +++|            P<FCT> = FCTADR;
02510  M00S02509.ssuse   +++|
02511  M00S02510.ssuse   +++|#
02512  M00S02511.ssuse   +++|*     CHECK THE CUBICLE STATUS.  IF IT DOES NOT CONTAIN A
02513  M00S02512.ssuse   +++|*     CARTRIDGE GO TO NEXT CUBICLE.
02514  M00S02513.ssuse   +++|#
02515  M00S02514.ssuse   +++|
02516  M00S02515.ssuse   +++|            IF FCT$CSND[0] EQ "   "
02517  M00S02516.ssuse   +++|              OR FCT$CSNI[0] EQ 0
02518  M00S02517.ssuse   +++|            THEN                     # NO CARTRIDGE AT THIS LOCATION #
02519  M00S02518.ssuse   +++|              BEGIN
02520  M00S02519.ssuse   +++|              TEST J;
02521  M00S02520.ssuse   +++|              END
02522  M00S02521.ssuse   +++|
02523  M00S02522.ssuse   +++|#
02524  M00S02523.ssuse   +++|*     WRITE HEADER TO REPORT FILE IF NEW PAGE.
02525  M00S02524.ssuse   +++|#
02526  M00S02525.ssuse   +++|
02527  M00S02526.ssuse   +++|            IF LN$CNT GQ MAX$LN
02528  M00S02527.ssuse   +++|            THEN                     # PAGE EJECT AND PRINT HEADER #
02529  M00S02528.ssuse   +++|              BEGIN
02530  M00S02529.ssuse   +++|              TEMP$SM = SM;
02531  M00S02530.ssuse   +++|              RPEJECT(OUT$FETP);
02532  M00S02531.ssuse   +++|              RPLINE(OUT$FETP,"SSUSE OPTIONAL REPORT B - ",5,26,1);
02533  M00S02532.ssuse   +++|              RPLINE(OUT$FETP,"CARTRIDGE SUMMARY REPORT",31,24,1);
02534  M00S02533.ssuse   +++|              RPLINE(OUT$FETP,"SM = ",58,5,1);
02535  M00S02534.ssuse   +++|              RPLINE(OUT$FETP,TEMP$SM,63,1,1);
02536  M00S02535.ssuse   +++|              RPLINE(OUT$FETP,"SUBFAMILY = ",67,12,1);
02537  M00S02536.ssuse   +++|              CHAR$10[0] = XCDD(SUBFAM);
02538  M00S02537.ssuse   +++|              RPLINE(OUT$FETP,CHAR$R1[0],79,1,1);
02539  M00S02538.ssuse   +++|              RPLINE(OUT$FETP,"FAMILY = ",84,9,1);
02540  M00S02539.ssuse   +++|              RPLINE(OUT$FETP,TEMP$FAM,93,7,0);
02541  M00S02540.ssuse   +++|              RPSPACE(OUT$FETP,SP"SPACE",1);
02542  M00S02541.ssuse   +++|
02543  M00S02542.ssuse   +++|#
02544  M00S02543.ssuse   +++|*     PRINT NOTES AND COLUMN HEADINGS.
02545  M00S02544.ssuse   +++|#
02546  M00S02545.ssuse   +++|
02547  M00S02546.ssuse   +++|              RPLINE(OUT$FETP,"NOTES:",5,6,1);
02548  M00S02547.ssuse   +++|              RPLINE(OUT$FETP,"CARTRIDGE FLAGS:",46,16,0);
02549  M00S02548.ssuse   +++|              RPLINE(OUT$FETP,"FA = FLAWED AND ALLOCATED",7,25,1);
02550  M00S02549.ssuse   +++|              RPLINE(OUT$FETP,"M = MISSING",48,11,0);
02551  M00S02550.ssuse   +++|              RPLINE(OUT$FETP,"FU = FLAWED AND UNALLOCATED",7,27,1);
02552  M00S02551.ssuse   +++|              RPLINE(OUT$FETP,"I = INHIBIT",48,11,0);
02553  M00S02552.ssuse   +++|              RPLINE(OUT$FETP,"SF = START OF FRAGMENT",7,22,1);
02554  M00S02553.ssuse   +++|              RPLINE(OUT$FETP,"F = FREE CARTRIDGE",48,18,0);
02555  M00S02554.ssuse   +++|              RPLINE(OUT$FETP,"FC = FROZEN CHAIN",7,17,1);
02556  M00S02555.ssuse   +++|              RPLINE(OUT$FETP,"L = LINK(FREE AU EXIST, ",48,24,1);
02557  M00S02556.ssuse   +++|              RPLINE(OUT$FETP,"NO OFF CARTRIDGE LINK)",72,22,0);
02558  M00S02557.ssuse   +++|              RPLINE(OUT$FETP,"AC = AU CONFLICT",7,16,1);
02559  M00S02558.ssuse   +++|              RPLINE(OUT$FETP,"P = EXCESSIVE WRITE ERRORS",48,26,0);
02560  M00S02559.ssuse   +++|              RPLINE(OUT$FETP,"GPORD = ORDINAL IN GROUP",7,24,1);
02561  M00S02560.ssuse   +++|              RPLINE(OUT$FETP,"E = MAP ERROR",48,13,1);
02562  M00S02561.ssuse   +++|              RPLINE(OUT$FETP,"(DETECTED BY SSVAL)",61,19,0);
02563  M00S02562.ssuse   +++|              RPSPACE(OUT$FETP,SP"SPACE",1);
02564  M00S02563.ssuse   +++|              RPLINE(OUT$FETP,"------ERROR CONDITIONS------",60,28,0);
02565  M00S02564.ssuse   +++|              RPLINE(OUT$FETP,"FREE AU      CART",39,17,1);
02566  M00S02565.ssuse   +++|              RPLINE(OUT$FETP,"--------NUMBER OF AU--------",60,28,0);
02567  M00S02566.ssuse   +++|              RPLINE(OUT$FETP,"GP  GPORD   Y",5,13,1);
02568  M00S02567.ssuse   +++|              RPLINE(OUT$FETP,"Z   CM  CSN",21,11,1);
02569  M00S02568.ssuse   +++|              RPLINE(OUT$FETP,"SMALL   LARGE   FLAGS",36,21,1);
02570  M00S02569.ssuse   +++|              RPLINE(OUT$FETP,"FA    FU    SF",62,14,1);
02571  M00S02570.ssuse   +++|              RPLINE(OUT$FETP,"FC    AC",80,8,0);
02572  M00S02571.ssuse   +++|              RPSPACE(OUT$FETP,SP"SPACE",1);
02573  M00S02572.ssuse   +++|              LN$CNT = 17;
02574  M00S02573.ssuse   +++|              END
02575  M00S02574.ssuse   +++|
02576  M00S02575.ssuse   +++|#
02577  M00S02576.ssuse   +++|*     CHECK FOR FLAGS AND SET THE APPROPRIATE CHARACTERS INTO THE
02578  M00S02577.ssuse   +++|*     REPORT FLAG.
02579  M00S02578.ssuse   +++|#
02580  M00S02579.ssuse   +++|
02581  M00S02580.ssuse   +++|            RPTFLAG = "      ";
02582  M00S02581.ssuse   +++|            IF FCT$LCF[0]
02583  M00S02582.ssuse   +++|            THEN                     # CARTRIDGE MISSING #
02584  M00S02583.ssuse   +++|              BEGIN
02585  M00S02584.ssuse   +++|              C<1,1>RPTFLAG = "M";
02586  M00S02585.ssuse   +++|              END
02587  M00S02586.ssuse   +++|
02588  M00S02587.ssuse   +++|            IF FCT$IAF[0]
02589  M00S02588.ssuse   +++|            THEN                     # INHIBIT ALLOCATION #
02590  M00S02589.ssuse   +++|              BEGIN
02591  M00S02590.ssuse   +++|              C<2,1>RPTFLAG = "I";
02592  M00S02591.ssuse   +++|              END
02593  M00S02592.ssuse   +++|
02594  M00S02593.ssuse   +++|            IF FCT$FCF[0]
02595  M00S02594.ssuse   +++|            THEN                     # FREE CARTRIDGE #
02596  M00S02595.ssuse   +++|              BEGIN
02597  M00S02596.ssuse   +++|              C<3,1>RPTFLAG = "F";
02598  M00S02597.ssuse   +++|              END
02599  M00S02598.ssuse   +++|
02600  M00S02599.ssuse   +++|            IF AST$AULF[J] GR 0      ##
02601  M00S02600.ssuse   +++|              OR AST$AUSF[J] GR 0
02602  M00S02601.ssuse   +++|            THEN                     # FREE AU EXIST #
02603  M00S02602.ssuse   +++|              BEGIN
02604  M00S02603.ssuse   +++|              IF FCT$OCLF[0] EQ 7
02605  M00S02604.ssuse   +++|              THEN                   # NO LINKS AVAILABLE #
02606  M00S02605.ssuse   +++|                BEGIN
02607  M00S02606.ssuse   +++|                C<4,1>RPTFLAG = "L";
02608  M00S02607.ssuse   +++|                END
02609  M00S02608.ssuse   +++|
02610  M00S02609.ssuse   +++|              END
02611  M00S02610.ssuse   +++|
02612  M00S02611.ssuse   +++|            IF FCT$EEF[0]
02613  M00S02612.ssuse   +++|            THEN                     # EXCESSIVE PARITY ERRORS #
02614  M00S02613.ssuse   +++|              BEGIN
02615  M00S02614.ssuse   +++|              C<5,1>RPTFLAG = "P";
02616  M00S02615.ssuse   +++|              END
02617  M00S02616.ssuse   +++|
02618  M00S02617.ssuse   +++|            IF FCT$SEF[0]
02619  M00S02618.ssuse   +++|            THEN                     # SMMAP ERROR FLAG SET #
02620  M00S02619.ssuse   +++|              BEGIN
02621  M00S02620.ssuse   +++|              C<0,1>RPTFLAG = "E";
02622  M00S02621.ssuse   +++|              END
02623  M00S02622.ssuse   +++|
02624  M00S02623.ssuse   +++|#
02625  M00S02624.ssuse   +++|*     PROCESS EACH AU.  CHECK FOR ERRORS AND UPDATE THE APPROPRIATE
02626  M00S02625.ssuse   +++|*     COUNTERS.
02627  M00S02626.ssuse   +++|#
02628  M00S02627.ssuse   +++|
02629  M00S02628.ssuse   +++|            ACFLAG = 0;
02630  M00S02629.ssuse   +++|            FAFLAG = 0;
02631  M00S02630.ssuse   +++|            FCFLAG = 0;
02632  M00S02631.ssuse   +++|            FUFLAG = 0;
02633  M00S02632.ssuse   +++|            SFFLAG = 0;
02634  M00S02633.ssuse   +++|
02635  M00S02634.ssuse   +++|            SLOWFOR N = 1 STEP 1 UNTIL INAVOT
02636  M00S02635.ssuse   +++|            DO
02637  M00S02636.ssuse   +++|              BEGIN  # PROCESS EACH AU #
02638  M00S02637.ssuse   +++|
02639  M00S02638.ssuse   +++|              SETFCTX(N);            # SET *FWD* AND *FPS* VALUES #
02640  M00S02639.ssuse   +++|
02641  M00S02640.ssuse   +++|              IF FCT$FAUF(FWD,FPS) NQ 0
02642  M00S02641.ssuse   +++|              THEN                   # FLAWED AU #
02643  M00S02642.ssuse   +++|                BEGIN
02644  M00S02643.ssuse   +++|                IF FCT$FBF(FWD,FPS) EQ 0
02645  M00S02644.ssuse   +++|                THEN                 # FLAWED AND UNALLOCATED #
02646  M00S02645.ssuse   +++|                  BEGIN
02647  M00S02646.ssuse   +++|                  FUFLAG = FUFLAG + 1;
02648  M00S02647.ssuse   +++|                  END
02649  M00S02648.ssuse   +++|
02650  M00S02649.ssuse   +++|                ELSE                 # FLAWED AND ALLOCATED #
02651  M00S02650.ssuse   +++|                  BEGIN
02652  M00S02651.ssuse   +++|                  FAFLAG = FAFLAG + 1;
02653  M00S02652.ssuse   +++|                  END
02654  M00S02653.ssuse   +++|
02655  M00S02654.ssuse   +++|                END
02656  M00S02655.ssuse   +++|
02657  M00S02656.ssuse   +++|              IF FCT$SFF(FWD,FPS) NQ 0
02658  M00S02657.ssuse   +++|              THEN
02659  M00S02658.ssuse   +++|                BEGIN
02660  M00S02659.ssuse   +++|                SFFLAG = SFFLAG + 1;  # START OF FRAGMENT #
02661  M00S02660.ssuse   +++|                END
02662  M00S02661.ssuse   +++|
02663  M00S02662.ssuse   +++|              IF FCT$FRCF(FWD,FPS) NQ 0
02664  M00S02663.ssuse   +++|              THEN
02665  M00S02664.ssuse   +++|                BEGIN
02666  M00S02665.ssuse   +++|                FCFLAG = FCFLAG + 1;  # FROZEN CHAIN #
02667  M00S02666.ssuse   +++|                END
02668  M00S02667.ssuse   +++|
02669  M00S02668.ssuse   +++|              IF FCT$AUCF(FWD,FPS) NQ 0
02670  M00S02669.ssuse   +++|              THEN
02671  M00S02670.ssuse   +++|                BEGIN
02672  M00S02671.ssuse   +++|                ACFLAG = ACFLAG + 1;  # AU CONFLICT #
02673  M00S02672.ssuse   +++|                END
02674  M00S02673.ssuse   +++|
02675  M00S02674.ssuse   +++|              END  # PROCESS EACH AU #
02676  M00S02675.ssuse   +++|
02677  M00S02676.ssuse   +++|#
02678  M00S02677.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND WRITE THEM TO THE REPORT
02679  M00S02678.ssuse   +++|*     FILE.  BLANK FILL CSN AND CARTRIDGE MANUFACTURER CODE.
02680  M00S02679.ssuse   +++|#
02681  M00S02680.ssuse   +++|
02682  M00S02681.ssuse   +++|            GP = J / MAXGRT;
02683  M00S02682.ssuse   +++|            CHAR$10[0] = XCDD(GP);
02684  M00S02683.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],5,2,1);
02685  M00S02684.ssuse   +++|
02686  M00S02685.ssuse   +++|            GRT = J - (GP * MAXGRT);
02687  M00S02686.ssuse   +++|            CHAR$10[0] = XCDD(GRT);
02688  M00S02687.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],10,2,1);
02689  M00S02688.ssuse   +++|
02690  M00S02689.ssuse   +++|            CHAR$10[0] = XCDD(FCT$Y[0]);
02691  M00S02690.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],16,2,1);
02692  M00S02691.ssuse   +++|
02693  M00S02692.ssuse   +++|            CHAR$10[0] = XCDD(FCT$Z[0]);
02694  M00S02693.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],20,2,1);
02695  M00S02694.ssuse   +++|
02696  M00S02695.ssuse   +++|            CHAR$10[0] = FCT$CCOD[0];
02697  M00S02696.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02698  M00S02697.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L2[0],25,2,1);
02699  M00S02698.ssuse   +++|
02700  M00S02699.ssuse   +++|            CHAR$10[0] = FCT$CSND[0];
02701  M00S02700.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02702  M00S02701.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L8[0],27,8,1);
02703  M00S02702.ssuse   +++|
02704  M00S02703.ssuse   +++|            CHAR$10[0] = XCDD(AST$AUSF[J]);
02705  M00S02704.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],37,4,1);
02706  M00S02705.ssuse   +++|
02707  M00S02706.ssuse   +++|            CHAR$10[0] = XCDD(AST$AULF[J]);
02708  M00S02707.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],44,4,1);
02709  M00S02708.ssuse   +++|
02710  M00S02709.ssuse   +++|            RPLINE(OUT$FETP,RPTFLAG,51,6,1);
02711  M00S02710.ssuse   +++|
02712  M00S02711.ssuse   +++|            CHAR$10[0] = XCDD(FAFLAG);
02713  M00S02712.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],60,4,1);
02714  M00S02713.ssuse   +++|
02715  M00S02714.ssuse   +++|            CHAR$10[0] = XCDD(FUFLAG);
02716  M00S02715.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],66,4,1);
02717  M00S02716.ssuse   +++|
02718  M00S02717.ssuse   +++|            CHAR$10[0] = XCDD(SFFLAG);
02719  M00S02718.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],72,4,1);
02720  M00S02719.ssuse   +++|
02721  M00S02720.ssuse   +++|            CHAR$10[0] = XCDD(FCFLAG);
02722  M00S02721.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],78,4,1);
02723  M00S02722.ssuse   +++|
02724  M00S02723.ssuse   +++|            CHAR$10[0] = XCDD(ACFLAG);
02725  M00S02724.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],84,4,0);
02726  M00S02725.ssuse   +++|            LN$CNT = LN$CNT + 1;     # INCREMENT LINE COUNT #
02727  M00S02726.ssuse   +++|
02728  M00S02727.ssuse   +++|            END  # PROCESS AN *AST* AND *FCT* ENTRY #
02729  M00S02728.ssuse   +++|
02730  M00S02729.ssuse   +++|          END  # CHECK EACH SELECTED SM #
02731  M00S02730.ssuse   +++|
02732  M00S02731.ssuse   +++|#
02733  M00S02732.ssuse   +++|*     CLOSE THE CATALOG.
02734  M00S02733.ssuse   +++|#
02735  M00S02734.ssuse   +++|
02736  M00S02735.ssuse   +++|        CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
02737  M00S02736.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02738  M00S02737.ssuse   +++|        THEN                         # UNABLE TO CLOSE CATALOG #
02739  M00S02738.ssuse   +++|          BEGIN
02740  M00S02739.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
02741  M00S02740.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
02742  M00S02741.ssuse   +++|          RPCLOSE(OUT$FETP);
02743  M00S02742.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
02744  M00S02743.ssuse   +++|          END
02745  M00S02744.ssuse   +++|
02746  M00S02745.ssuse   +++|        ZFILL(FCTBUFCW,1);           # CLEAR CONTROL BUFFER #
02747  M00S02746.ssuse   +++|
02748  M00S02747.ssuse   +++|        END  # PROCESS EACH SUBFAMILY #
02749  M00S02748.ssuse   +++|
02750  M00S02749.ssuse   +++|      RETURN;
02751  M00S02750.ssuse   +++|
02752  M00S02751.ssuse   +++|      END  # USRPTB #
02753  M00S02752.ssuse   +++|
02754  M00S02753.ssuse   +++|    TERM
02755  M00S02754.ssuse   +++|PROC USRPTC;
02756  M00S02755.ssuse   +++|# TITLE USRPTC - GENERATES OPTIONAL REPORT C.                         #
02757  M00S02756.ssuse   +++|
02758  M00S02757.ssuse   +++|      BEGIN  # USRPTC #
02759  M00S02758.ssuse   +++|
02760  M00S02759.ssuse   +++|#
02761  M00S02760.ssuse   +++|**    USRPTC - GENERATES OPTIONAL REPORT C.
02762  M00S02761.ssuse   +++|*
02763  M00S02762.ssuse   +++|*     THIS PROC LISTS CARTRIDGE USAGE INFORMATION FOR EACH ENTRY
02764  M00S02763.ssuse   +++|*     IN THE SFMCATALOG.
02765  M00S02764.ssuse   +++|*
02766  M00S02765.ssuse   +++|*     PROC USRPTC.
02767  M00S02766.ssuse   +++|*
02768  M00S02767.ssuse   +++|*     ENTRY.    (SEL$SB)   = BITS SET FOR THE SELECTED SUBFAMILIES.
02769  M00S02768.ssuse   +++|*               (SEL$SM)   = BITS SET FOR THE SELECTED SM-S.
02770  M00S02769.ssuse   +++|*               (USARG$FM) = FAMILY NAME.
02771  M00S02770.ssuse   +++|*
02772  M00S02771.ssuse   +++|*     EXIT.     OPTIONAL REPORT C GENERATED.
02773  M00S02772.ssuse   +++|*
02774  M00S02773.ssuse   +++|*     MESSAGES. 1)  FAMILY NOT FOUND.
02775  M00S02774.ssuse   +++|*               2)  UNABLE TO OPEN CATALOG.
02776  M00S02775.ssuse   +++|*               3)  SFMCATALOG PARITY ERROR.
02777  M00S02776.ssuse   +++|*               4)  SSUSE ABNORMAL, USRPTC.
02778  M00S02777.ssuse   +++|#
02779  M00S02778.ssuse   +++|
02780  M00S02779.ssuse   +++|#
02781  M00S02780.ssuse   +++|****  PROC USRPTC - XREF LIST BEGIN.
02782  M00S02781.ssuse   +++|#
02783  M00S02782.ssuse   +++|
02784  M00S02783.ssuse   +++|      XREF
02785  M00S02784.ssuse   +++|        BEGIN
02786  M00S02785.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
02787  M00S02786.ssuse   +++|        PROC CCLOSE;                 # CLOSES CATALOG #
02788  M00S02787.ssuse   +++|        PROC CGETFCT;                # GETS AN *FCT* ENTRY #
02789  M00S02788.ssuse   +++|        PROC COPEN;                  # OPENS CATALOG #
02790  M00S02789.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
02791  M00S02790.ssuse   +++|        PROC MESSAGE;                # PRINTS MESSAGE IN DAYFILE #
02792  M00S02791.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
02793  M00S02792.ssuse   +++|                                       OR RETURN #
02794  M00S02793.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
02795  M00S02794.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
02796  M00S02795.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
02797  M00S02796.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
02798  M00S02797.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
02799  M00S02798.ssuse   +++|        PROC ZFILL;                  # ZERO FILL ARRAY #
02800  M00S02799.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
02801  M00S02800.ssuse   +++|        END
02802  M00S02801.ssuse   +++|
02803  M00S02802.ssuse   +++|#
02804  M00S02803.ssuse   +++|****  PROC USRPTC - XREF LIST END.
02805  M00S02804.ssuse   +++|#
02806  M00S02805.ssuse   +++|
02807  M00S02806.ssuse   +++|      DEF PROCNAME #"USRPTC."#;      # PROC NAME #
02808  M00S02807.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
02809  M00S02808.ssuse   +++|*CALL COMBFAS
02810  M00S02809.ssuse   +++|*CALL COMBBZF
02811  M00S02810.ssuse   +++|*CALL COMBCMD
02812  M00S02811.ssuse   +++|*CALL COMBCMS
02813  M00S02812.ssuse   +++|*CALL COMBMCT
02814  M00S02813.ssuse   +++|*CALL COMBPFP
02815  M00S02814.ssuse   +++|*CALL COMSPFM
02816  M00S02815.ssuse   +++|*CALL COMXMSC
02817  M00S02816.ssuse   +++|*CALL COMTOUT
02818  M00S02817.ssuse   +++|*CALL COMTUSE
02819  M00S02818.ssuse   +++|*CALL COMTUSP
02820  M00S02819.ssuse   +++|
02821  M00S02820.ssuse   +++|      ITEM FCTADR     I;             # *FCT* BUFFER ADDRESS #
02822  M00S02821.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
02823  M00S02822.ssuse   +++|      ITEM GP         I;             # GROUP #
02824  M00S02823.ssuse   +++|      ITEM J          I;             # LOOP VARIABLE #
02825  M00S02824.ssuse   +++|      ITEM LN$CNT     I;             # COUNT OF PRINTED LINES #
02826  M00S02825.ssuse   +++|      ITEM OCL        I;             # AVAILABLE LINK COUNT #
02827  M00S02826.ssuse   +++|      ITEM RPTFLAG    C(4);          # REPORT FLAG #
02828  M00S02827.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
02829  M00S02828.ssuse   +++|      ITEM SUBFAM     I;             # LOOP VARIABLE #
02830  M00S02829.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
02831  M00S02830.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
02832  M00S02831.ssuse   +++|
02833  M00S02832.ssuse   +++|                                               CONTROL EJECT;
02834  M00S02833.ssuse   +++|
02835  M00S02834.ssuse   +++|      FCTADR = LOC(US$FCTENT[0]);
02836  M00S02835.ssuse   +++|
02837  M00S02836.ssuse   +++|#
02838  M00S02837.ssuse   +++|*     CHANGE ZERO-FILL TO SPACE-FILL FOR FAMILY.
02839  M00S02838.ssuse   +++|#
02840  M00S02839.ssuse   +++|
02841  M00S02840.ssuse   +++|      TEMP$FAM = USARG$FM[0];
02842  M00S02841.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
02843  M00S02842.ssuse   +++|
02844  M00S02843.ssuse   +++|#
02845  M00S02844.ssuse   +++|*     CHECK IF SUBFAMILY SELECTED.
02846  M00S02845.ssuse   +++|#
02847  M00S02846.ssuse   +++|
02848  M00S02847.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
02849  M00S02848.ssuse   +++|      DO
02850  M00S02849.ssuse   +++|        BEGIN  # PROCESS EACH SUBFAMILY #
02851  M00S02850.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
02852  M00S02851.ssuse   +++|        THEN                         # SUBFAMILY NOT SELECTED #
02853  M00S02852.ssuse   +++|          BEGIN
02854  M00S02853.ssuse   +++|          TEST SUBFAM;
02855  M00S02854.ssuse   +++|          END
02856  M00S02855.ssuse   +++|
02857  M00S02856.ssuse   +++|#
02858  M00S02857.ssuse   +++|*     SET THE FAMILY AND USER INDEX.
02859  M00S02858.ssuse   +++|#
02860  M00S02859.ssuse   +++|
02861  M00S02860.ssuse   +++|        PFP$WRD0[0] = 0;
02862  M00S02861.ssuse   +++|        PFP$FAM[0] = USARG$FM[0];
02863  M00S02862.ssuse   +++|        PFP$UI[0] = DEF$UI + SUBFAM;
02864  M00S02863.ssuse   +++|        PFP$FG1[0] = TRUE;
02865  M00S02864.ssuse   +++|        PFP$FG4[0] = TRUE;
02866  M00S02865.ssuse   +++|        SETPFP(PFP[0]);
02867  M00S02866.ssuse   +++|        IF PFP$STAT[0] NQ 0
02868  M00S02867.ssuse   +++|        THEN                         # FAMILY NOT FOUND #
02869  M00S02868.ssuse   +++|          BEGIN
02870  M00S02869.ssuse   +++|          SSMSG$LINE[0] = " FAMILY NOT FOUND.";
02871  M00S02870.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
02872  M00S02871.ssuse   +++|          RPCLOSE(OUT$FETP);
02873  M00S02872.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
02874  M00S02873.ssuse   +++|          END
02875  M00S02874.ssuse   +++|
02876  M00S02875.ssuse   +++|#
02877  M00S02876.ssuse   +++|*     OPEN THE CATALOG AND CHECK THE RETURNED ERROR STATUS.
02878  M00S02877.ssuse   +++|#
02879  M00S02878.ssuse   +++|
02880  M00S02879.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
02881  M00S02880.ssuse   +++|        SFMCAT$LST[0] = CHAR$R1[0];
02882  M00S02881.ssuse   +++|        COPEN(USARG$FM[0],SUBFAM,SFMCATNM[0],"RM",TRUE,FLAG);
02883  M00S02882.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
02884  M00S02883.ssuse   +++|        THEN
02885  M00S02884.ssuse   +++|          BEGIN
02886  M00S02885.ssuse   +++|          LOFPROC(OCT$LFN[1]);       # ADD LFN TO LIST OF FILES #
02887  M00S02886.ssuse   +++|          END
02888  M00S02887.ssuse   +++|
02889  M00S02888.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02890  M00S02889.ssuse   +++|        THEN
02891  M00S02890.ssuse   +++|          BEGIN  # CHECK FOR TYPE OF ERROR #
02892  M00S02891.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
02893  M00S02892.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
02894  M00S02893.ssuse   +++|          THEN
02895  M00S02894.ssuse   +++|            BEGIN
02896  M00S02895.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN CATALOG.";
02897  M00S02896.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02898  M00S02897.ssuse   +++|            RPCLOSE(OUT$FETP);
02899  M00S02898.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02900  M00S02899.ssuse   +++|            END
02901  M00S02900.ssuse   +++|
02902  M00S02901.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
02903  M00S02902.ssuse   +++|          THEN
02904  M00S02903.ssuse   +++|            BEGIN
02905  M00S02904.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
02906  M00S02905.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02907  M00S02906.ssuse   +++|            RPCLOSE(OUT$FETP);
02908  M00S02907.ssuse   +++|            RESTPFP(PFP$ABORT);
02909  M00S02908.ssuse   +++|            END
02910  M00S02909.ssuse   +++|
02911  M00S02910.ssuse   +++|          ELSE
02912  M00S02911.ssuse   +++|            BEGIN
02913  M00S02912.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
02914  M00S02913.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
02915  M00S02914.ssuse   +++|            RPCLOSE(OUT$FETP);
02916  M00S02915.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02917  M00S02916.ssuse   +++|            END
02918  M00S02917.ssuse   +++|
02919  M00S02918.ssuse   +++|          END  # CHECK FOR TYPE OF ERROR #
02920  M00S02919.ssuse   +++|
02921  M00S02920.ssuse   +++|#
02922  M00S02921.ssuse   +++|*     CHECK IF SM ASSIGNED TO SUBFAMILY.
02923  M00S02922.ssuse   +++|#
02924  M00S02923.ssuse   +++|
02925  M00S02924.ssuse   +++|        SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
02926  M00S02925.ssuse   +++|        DO
02927  M00S02926.ssuse   +++|          BEGIN  # CHECK EACH SELECTED SM #
02928  M00S02927.ssuse   +++|          IF B<SM,1>SEL$SM EQ 0
02929  M00S02928.ssuse   +++|          THEN                       # SM NOT SELECTED #
02930  M00S02929.ssuse   +++|            BEGIN
02931  M00S02930.ssuse   +++|            TEST SM;
02932  M00S02931.ssuse   +++|            END
02933  M00S02932.ssuse   +++|
02934  M00S02933.ssuse   +++|          P<PREAMBLE> = PRMBADR;
02935  M00S02934.ssuse   +++|          TEMP$SM = SM;
02936  M00S02935.ssuse   +++|          LN$CNT = MAX$LN + 1;       # INITIALIZE LINE COUNT #
02937  M00S02936.ssuse   +++|
02938  M00S02937.ssuse   +++|#
02939  M00S02938.ssuse   +++|*     IF NO ENTRIES FOR THIS SM, PROCESS THE NEXT SPECIFIED SM.
02940  M00S02939.ssuse   +++|#
02941  M00S02940.ssuse   +++|
02942  M00S02941.ssuse   +++|          IF PRM$SCW1[SM] EQ 0
02943  M00S02942.ssuse   +++|          THEN                       # SM NOT ASSIGNED TO SUBFAMILY #
02944  M00S02943.ssuse   +++|            BEGIN
02945  M00S02944.ssuse   +++|            TEST SM;
02946  M00S02945.ssuse   +++|            END
02947  M00S02946.ssuse   +++|
02948  M00S02947.ssuse   +++|#
02949  M00S02948.ssuse   +++|*     PROCESS ALL *FCT* ENTRIES.
02950  M00S02949.ssuse   +++|#
02951  M00S02950.ssuse   +++|
02952  M00S02951.ssuse   +++|          SLOWFOR J = 16 STEP 1 UNTIL PRM$ENTRC[SM] + 15
02953  M00S02952.ssuse   +++|          DO
02954  M00S02953.ssuse   +++|            BEGIN  # PROCESS AN *FCT* ENTRY #
02955  M00S02954.ssuse   +++|
02956  M00S02955.ssuse   +++|#
02957  M00S02956.ssuse   +++|*     GET THE *FCT* ENTRY AND CHECK THE RETURNED ERROR STATUS.
02958  M00S02957.ssuse   +++|#
02959  M00S02958.ssuse   +++|
02960  M00S02959.ssuse   +++|            CGETFCT(USARG$FM[0],SUBFAM,SM,J,FCTADR,0,FLAG);
02961  M00S02960.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
02962  M00S02961.ssuse   +++|            THEN                     # UNABLE TO GET *FCT* #
02963  M00S02962.ssuse   +++|              BEGIN
02964  M00S02963.ssuse   +++|              SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
02965  M00S02964.ssuse   +++|              MESSAGE(SSMSG$BUF[0],SYSUDF1);
02966  M00S02965.ssuse   +++|              RPCLOSE(OUT$FETP);
02967  M00S02966.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
02968  M00S02967.ssuse   +++|              END
02969  M00S02968.ssuse   +++|
02970  M00S02969.ssuse   +++|            P<FCT> = FCTADR;
02971  M00S02970.ssuse   +++|
02972  M00S02971.ssuse   +++|#
02973  M00S02972.ssuse   +++|*     CHECK THE CUBICLE STATUS.  IF IT DOES NOT CONTAIN A
02974  M00S02973.ssuse   +++|*     CARTRIDGE GO TO NEXT CUBICLE.
02975  M00S02974.ssuse   +++|#
02976  M00S02975.ssuse   +++|
02977  M00S02976.ssuse   +++|            IF FCT$CSND[0] EQ "   "
02978  M00S02977.ssuse   +++|              OR FCT$CSNI[0] EQ 0
02979  M00S02978.ssuse   +++|            THEN                     # NO CARTRIDGE AT THIS LOCATION #
02980  M00S02979.ssuse   +++|              BEGIN
02981  M00S02980.ssuse   +++|              TEST J;
02982  M00S02981.ssuse   +++|              END
02983  M00S02982.ssuse   +++|
02984  M00S02983.ssuse   +++|#
02985  M00S02984.ssuse   +++|*     WRITE HEADER TO REPORT FILE IF NEW PAGE.
02986  M00S02985.ssuse   +++|#
02987  M00S02986.ssuse   +++|
02988  M00S02987.ssuse   +++|            IF LN$CNT GQ MAX$LN
02989  M00S02988.ssuse   +++|            THEN                     # PAGE EJECT AND PRINT HEADER #
02990  M00S02989.ssuse   +++|              BEGIN
02991  M00S02990.ssuse   +++|              RPEJECT(OUT$FETP);
02992  M00S02991.ssuse   +++|              RPLINE(OUT$FETP,"SSUSE OPTIONAL REPORT C - ",5,26,1);
02993  M00S02992.ssuse   +++|              RPLINE(OUT$FETP,"DETAILED CARTRIDGE REPORT",31,25,1);
02994  M00S02993.ssuse   +++|              RPLINE(OUT$FETP,"SM = ",58,5,1);
02995  M00S02994.ssuse   +++|              RPLINE(OUT$FETP,TEMP$SM,63,1,1);
02996  M00S02995.ssuse   +++|              RPLINE(OUT$FETP,"SUBFAMILY = ",67,12,1);
02997  M00S02996.ssuse   +++|              CHAR$10[0] = XCDD(SUBFAM);
02998  M00S02997.ssuse   +++|              RPLINE(OUT$FETP,CHAR$R1[0],79,1,1);
02999  M00S02998.ssuse   +++|              RPLINE(OUT$FETP,"FAMILY = ",84,9,1);
03000  M00S02999.ssuse   +++|              RPLINE(OUT$FETP,TEMP$FAM,93,7,0);
03001  M00S03000.ssuse   +++|              RPSPACE(OUT$FETP,SP"SPACE",1);
03002  M00S03001.ssuse   +++|
03003  M00S03002.ssuse   +++|#
03004  M00S03003.ssuse   +++|*     PRINT NOTES AND COLUMN HEADINGS.
03005  M00S03004.ssuse   +++|#
03006  M00S03005.ssuse   +++|
03007  M00S03006.ssuse   +++|              RPLINE(OUT$FETP,"FLAGS:",5,6,1);
03008  M00S03007.ssuse   +++|              RPLINE(OUT$FETP,"I = INHIBIT ALLOCATION",15,22,1);
03009  M00S03008.ssuse   +++|              RPLINE(OUT$FETP,"M = MISSING",49,12,1);
03010  M00S03009.ssuse   +++|              RPLINE(OUT$FETP,"P = EXCESSIVE PARITY ERRORS",81,27,0);
03011  M00S03010.ssuse   +++|              RPLINE(OUT$FETP,"E = MAP ERROR",15,13,1);
03012  M00S03011.ssuse   +++|              RPLINE(OUT$FETP,"OCL = AVAILABLE LINK COUNT",49,26,1);
03013  M00S03012.ssuse   +++|              RPLINE(OUT$FETP,"FCTORD = SFM CATALOG ORDINAL",81,28,0);
03014  M00S03013.ssuse   +++|              RPSPACE(OUT$FETP,SP"SPACE",1);
03015  M00S03014.ssuse   +++|              RPLINE(OUT$FETP,"------AU------      CARTRIDGE",55,29,0);
03016  M00S03015.ssuse   +++|              RPLINE(OUT$FETP," Y   Z    CM  CSN",2,17,1);
03017  M00S03016.ssuse   +++|              RPLINE(OUT$FETP,"GROUP    FCTORD   FLAGS",26,23,1);
03018  M00S03017.ssuse   +++|              RPLINE(OUT$FETP,"FIRST    FIRST       DIVISION",55,29,1);
03019  M00S03018.ssuse   +++|              RPLINE(OUT$FETP,"OCL",88,3,0);
03020  M00S03019.ssuse   +++|              RPLINE(OUT$FETP,"SMALL    LARGE        POINT",55,27,0);
03021  M00S03020.ssuse   +++|              LN$CNT = 11;
03022  M00S03021.ssuse   +++|              END
03023  M00S03022.ssuse   +++|
03024  M00S03023.ssuse   +++|#
03025  M00S03024.ssuse   +++|*     CHECK FOR FLAGS AND SET THE APPROPRIATE CHARACTERS INTO THE
03026  M00S03025.ssuse   +++|*     REPORT FLAG.
03027  M00S03026.ssuse   +++|#
03028  M00S03027.ssuse   +++|
03029  M00S03028.ssuse   +++|            RPTFLAG = "    ";
03030  M00S03029.ssuse   +++|            IF FCT$IAF[0]
03031  M00S03030.ssuse   +++|            THEN                     # INHIBIT ALLOCATION FLAG SET #
03032  M00S03031.ssuse   +++|              BEGIN
03033  M00S03032.ssuse   +++|              C<1,1>RPTFLAG = "I";
03034  M00S03033.ssuse   +++|              END
03035  M00S03034.ssuse   +++|
03036  M00S03035.ssuse   +++|            IF FCT$LCF[0]
03037  M00S03036.ssuse   +++|            THEN                     # CARTRIDGE MISSING #
03038  M00S03037.ssuse   +++|              BEGIN
03039  M00S03038.ssuse   +++|              C<2,1>RPTFLAG = "M";
03040  M00S03039.ssuse   +++|              END
03041  M00S03040.ssuse   +++|
03042  M00S03041.ssuse   +++|            IF FCT$EEF[0]
03043  M00S03042.ssuse   +++|            THEN                     # EXCESSIVE ERROR FLAG SET #
03044  M00S03043.ssuse   +++|              BEGIN
03045  M00S03044.ssuse   +++|              C<3,1>RPTFLAG = "P";
03046  M00S03045.ssuse   +++|              END
03047  M00S03046.ssuse   +++|
03048  M00S03047.ssuse   +++|            IF FCT$SEF[0]
03049  M00S03048.ssuse   +++|            THEN                     # SMMAP ERROR FLAG SET #
03050  M00S03049.ssuse   +++|              BEGIN
03051  M00S03050.ssuse   +++|              C<0,1>RPTFLAG = "E";
03052  M00S03051.ssuse   +++|              END
03053  M00S03052.ssuse   +++|
03054  M00S03053.ssuse   +++|#
03055  M00S03054.ssuse   +++|*     COUNT AVAILABLE OFF CARTRIDGE LINKS.
03056  M00S03055.ssuse   +++|#
03057  M00S03056.ssuse   +++|
03058  M00S03057.ssuse   +++|            OCL = 0;
03059  M00S03058.ssuse   +++|            IF B<0,1>FCT$OCLF[0] EQ 0
03060  M00S03059.ssuse   +++|            THEN
03061  M00S03060.ssuse   +++|              BEGIN
03062  M00S03061.ssuse   +++|              OCL = OCL + 1;
03063  M00S03062.ssuse   +++|              END
03064  M00S03063.ssuse   +++|
03065  M00S03064.ssuse   +++|            IF B<1,1>FCT$OCLF[0] EQ 0
03066  M00S03065.ssuse   +++|            THEN
03067  M00S03066.ssuse   +++|              BEGIN
03068  M00S03067.ssuse   +++|              OCL = OCL + 1;
03069  M00S03068.ssuse   +++|              END
03070  M00S03069.ssuse   +++|
03071  M00S03070.ssuse   +++|            IF B<2,1>FCT$OCLF[0] EQ 0
03072  M00S03071.ssuse   +++|            THEN
03073  M00S03072.ssuse   +++|              BEGIN
03074  M00S03073.ssuse   +++|              OCL = OCL + 1;
03075  M00S03074.ssuse   +++|              END
03076  M00S03075.ssuse   +++|
03077  M00S03076.ssuse   +++|#
03078  M00S03077.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND WRITE THEM TO THE REPORT
03079  M00S03078.ssuse   +++|*     FILE.
03080  M00S03079.ssuse   +++|#
03081  M00S03080.ssuse   +++|
03082  M00S03081.ssuse   +++|            CHAR$10[0] = XCDD(FCT$Y[0]);
03083  M00S03082.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],2,2,1);
03084  M00S03083.ssuse   +++|
03085  M00S03084.ssuse   +++|            CHAR$10[0] = XCDD(FCT$Z[0]);
03086  M00S03085.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],6,2,1);
03087  M00S03086.ssuse   +++|
03088  M00S03087.ssuse   +++|            CHAR$10[0] = FCT$CCOD[0];
03089  M00S03088.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
03090  M00S03089.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L2[0],12,2,1);
03091  M00S03090.ssuse   +++|
03092  M00S03091.ssuse   +++|            CHAR$10[0] = FCT$CSND[0];
03093  M00S03092.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
03094  M00S03093.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L8[0],14,8,1);
03095  M00S03094.ssuse   +++|
03096  M00S03095.ssuse   +++|            GP = J / MAXGRT;
03097  M00S03096.ssuse   +++|            CHAR$10[0] = XCDD(GP);
03098  M00S03097.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],27,2,1);
03099  M00S03098.ssuse   +++|
03100  M00S03099.ssuse   +++|            CHAR$10[0] = XCDD(J);
03101  M00S03100.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R3[0],36,3,1);
03102  M00S03101.ssuse   +++|
03103  M00S03102.ssuse   +++|            RPLINE(OUT$FETP,RPTFLAG,44,4,1);
03104  M00S03103.ssuse   +++|
03105  M00S03104.ssuse   +++|            CHAR$10[0] = XCDD(FCT$FAUSF[0]);
03106  M00S03105.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
03107  M00S03106.ssuse   +++|
03108  M00S03107.ssuse   +++|            CHAR$10[0] = XCDD(FCT$FAULF[0]);
03109  M00S03108.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],64,4,1);
03110  M00S03109.ssuse   +++|
03111  M00S03110.ssuse   +++|            CHAR$10[0] = XCDD(FCT$CDP[0]);
03112  M00S03111.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R4[0],77,4,1);
03113  M00S03112.ssuse   +++|
03114  M00S03113.ssuse   +++|            CHAR$10[0] = XCDD(OCL);
03115  M00S03114.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],88,2,0);
03116  M00S03115.ssuse   +++|
03117  M00S03116.ssuse   +++|            LN$CNT = LN$CNT + 1;     # INCREMENT LINE COUNT #
03118  M00S03117.ssuse   +++|            END  # PROCESS AN *FCT* ENTRY #
03119  M00S03118.ssuse   +++|
03120  M00S03119.ssuse   +++|          END  # CHECK EACH SELECTED SM #
03121  M00S03120.ssuse   +++|
03122  M00S03121.ssuse   +++|#
03123  M00S03122.ssuse   +++|*     CLOSE THE CATALOG.
03124  M00S03123.ssuse   +++|#
03125  M00S03124.ssuse   +++|
03126  M00S03125.ssuse   +++|        CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
03127  M00S03126.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
03128  M00S03127.ssuse   +++|        THEN                         # UNABLE TO CLOSE CATALOG #
03129  M00S03128.ssuse   +++|          BEGIN
03130  M00S03129.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
03131  M00S03130.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
03132  M00S03131.ssuse   +++|          RPCLOSE(OUT$FETP);
03133  M00S03132.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
03134  M00S03133.ssuse   +++|          END
03135  M00S03134.ssuse   +++|
03136  M00S03135.ssuse   +++|        ZFILL(FCTBUFCW,1);           # CLEAR CONTROL BUFFER #
03137  M00S03136.ssuse   +++|
03138  M00S03137.ssuse   +++|        END  # PROCESS EACH SUBFAMILY #
03139  M00S03138.ssuse   +++|
03140  M00S03139.ssuse   +++|      RETURN;
03141  M00S03140.ssuse   +++|
03142  M00S03141.ssuse   +++|      END  # USRPTC #
03143  M00S03142.ssuse   +++|
03144  M00S03143.ssuse   +++|    TERM
03145  M00S03144.ssuse   +++|PROC USRPTD;
03146  M00S03145.ssuse   +++|# TITLE USRPTD - GENERATES OPTIONAL REPORT D.                         #
03147  M00S03146.ssuse   +++|
03148  M00S03147.ssuse   +++|      BEGIN  # USRPTD #
03149  M00S03148.ssuse   +++|
03150  M00S03149.ssuse   +++|#
03151  M00S03150.ssuse   +++|**    USRPTD - GENERATES OPTIONAL REPORT D.
03152  M00S03151.ssuse   +++|*
03153  M00S03152.ssuse   +++|*     THIS PROC LISTS DETAILED AU STATUS INFORMATION FOR EACH
03154  M00S03153.ssuse   +++|*     ENTRY IN THE SFMCATALOG PLUS CARTRIDGE USAGE INFORMATION.
03155  M00S03154.ssuse   +++|*
03156  M00S03155.ssuse   +++|*     PROC USRPTD.
03157  M00S03156.ssuse   +++|*
03158  M00S03157.ssuse   +++|*     ENTRY.    (SEL$SB)   = BITS SET FOR THE SELECTED SUBFAMILIES.
03159  M00S03158.ssuse   +++|*               (SEL$SM)   = BITS SET FOR THE SELECTED SM-S.
03160  M00S03159.ssuse   +++|*               (USARG$FM) = FAMILY NAME.
03161  M00S03160.ssuse   +++|*
03162  M00S03161.ssuse   +++|*     EXIT.     OPTIONAL REPORT D GENERATED.
03163  M00S03162.ssuse   +++|*
03164  M00S03163.ssuse   +++|*     MESSAGES. 1)  FAMILY NOT FOUND.
03165  M00S03164.ssuse   +++|*               2)  UNABLE TO OPEN CATALOG.
03166  M00S03165.ssuse   +++|*               3)  SFMCATALOG PARITY ERROR.
03167  M00S03166.ssuse   +++|*               4)  SSUSE ABNORMAL, USRPTD.
03168  M00S03167.ssuse   +++|*               5)  CARTRIDGE NOT FOUND.
03169  M00S03168.ssuse   +++|*
03170  M00S03169.ssuse   +++|*     NOTES.    FOR EACH SELECTED SUBFAMILY, PROC *USRPTD* OPENS THE
03171  M00S03170.ssuse   +++|*               SFM CATALOG AND SEARCHES FOR THE CARTRIDGE WITH THE
03172  M00S03171.ssuse   +++|*               SELECTED *CSN* AND *CM*.  WHEN THE CARTRIDGE IS FOUND
03173  M00S03172.ssuse   +++|*               THE CARTRIDGE LINK FIELD OF THE *FCT* ENTRY IS
03174  M00S03173.ssuse   +++|*               PRINTED IN OCTAL FOR EACH AU.  IF THE CARTRIDGE
03175  M00S03174.ssuse   +++|*               IS NOT FOUND A MESSAGE IS ISSUED TO THE DAYFILE
03176  M00S03175.ssuse   +++|*               AND *SSUSE* ABORTS.
03177  M00S03176.ssuse   +++|#
03178  M00S03177.ssuse   +++|
03179  M00S03178.ssuse   +++|#
03180  M00S03179.ssuse   +++|****  PROC USRPTD - XREF LIST BEGIN.
03181  M00S03180.ssuse   +++|#
03182  M00S03181.ssuse   +++|
03183  M00S03182.ssuse   +++|      XREF
03184  M00S03183.ssuse   +++|        BEGIN
03185  M00S03184.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
03186  M00S03185.ssuse   +++|        PROC CCLOSE;                 # CLOSES CATALOG #
03187  M00S03186.ssuse   +++|        PROC CGETFCT;                # GETS AN *FCT* ENTRY #
03188  M00S03187.ssuse   +++|        PROC COPEN;                  # OPENS CATALOG #
03189  M00S03188.ssuse   +++|        PROC CRDAST;                 # READ *AST* #
03190  M00S03189.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
03191  M00S03190.ssuse   +++|        PROC MESSAGE;                # PRINTS MESSAGE IN DAYFILE #
03192  M00S03191.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
03193  M00S03192.ssuse   +++|                                       OR RETURN #
03194  M00S03193.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
03195  M00S03194.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
03196  M00S03195.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
03197  M00S03196.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
03198  M00S03197.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
03199  M00S03198.ssuse   +++|        PROC ZFILL;                  # ZERO FILL ARRAY #
03200  M00S03199.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
03201  M00S03200.ssuse   +++|        FUNC XCOD  C(10);            # CONVERTS OCTAL TO DISPLAY #
03202  M00S03201.ssuse   +++|        PROC XWOD;                   # CONVERT OCTAL TO DISPLAY #
03203  M00S03202.ssuse   +++|        END
03204  M00S03203.ssuse   +++|
03205  M00S03204.ssuse   +++|#
03206  M00S03205.ssuse   +++|****  PROC USRPTD - XREF LIST END.
03207  M00S03206.ssuse   +++|#
03208  M00S03207.ssuse   +++|
03209  M00S03208.ssuse   +++|      DEF PROCNAME #"USRPTD."#;      # PROC NAME #
03210  M00S03209.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
03211  M00S03210.ssuse   +++|*CALL COMBFAS
03212  M00S03211.ssuse   +++|*CALL COMBBZF
03213  M00S03212.ssuse   +++|*CALL COMBCMD
03214  M00S03213.ssuse   +++|*CALL COMBCMS
03215  M00S03214.ssuse   +++|*CALL COMBMCT
03216  M00S03215.ssuse   +++|*CALL COMBPFP
03217  M00S03216.ssuse   +++|*CALL COMSPFM
03218  M00S03217.ssuse   +++|*CALL COMXMSC
03219  M00S03218.ssuse   +++|*CALL COMTLAB
03220  M00S03219.ssuse   +++|*CALL COMTOUT
03221  M00S03220.ssuse   +++|*CALL COMTUSE
03222  M00S03221.ssuse   +++|*CALL COMTUSP
03223  M00S03222.ssuse   +++|
03224  M00S03223.ssuse   +++|      ITEM ASTADR     I;             # *AST* BUFFER ADDRESS #
03225  M00S03224.ssuse   +++|      ITEM CODE       C(2);          # CODE FIELD FOR OUTPUT #
03226  M00S03225.ssuse   +++|      ITEM COLUMN     I;             # COLUMN POSITION FOR OUTPUT #
03227  M00S03226.ssuse   +++|      ITEM ER$CODE    C(1);          # CODE FIELD FOR OUTPUT #
03228  M00S03227.ssuse   +++|      ITEM FCTADR     I;             # *FCT* BUFFER ADDRESS #
03229  M00S03228.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
03230  M00S03229.ssuse   +++|      ITEM GP         I;             # GROUP #
03231  M00S03230.ssuse   +++|      ITEM FOUND      B;             # CSN FOUND FLAG #
03232  M00S03231.ssuse   +++|      ITEM I          I;             # LOOP VARIABLE #
03233  M00S03232.ssuse   +++|      ITEM J          I;             # LOOP VARIABLE #
03234  M00S03233.ssuse   +++|      ITEM LN$CNT     I;             # COUNT OF PRINTED LINES #
03235  M00S03234.ssuse   +++|      ITEM N          I;             # LOOP VARIABLE #
03236  M00S03235.ssuse   +++|      ITEM NUM        C(10);         # AU NUMBER #
03237  M00S03236.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
03238  M00S03237.ssuse   +++|      ITEM SUBFAM     I;             # LOOP VARIABLE #
03239  M00S03238.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
03240  M00S03239.ssuse   +++|      ITEM TEMP$SM    C(1);          # TEMPORARY CHARACTER #
03241  M00S03240.ssuse   +++|
03242  M00S03241.ssuse   +++|      ARRAY DIS[0:0] P(2);
03243  M00S03242.ssuse   +++|        BEGIN
03244  M00S03243.ssuse   +++|        ITEM DIS$CLFG   C(01,00,10);  # LINK FIELD IN DISPLAY CODE #
03245  M00S03244.ssuse   +++|        END
03246  M00S03245.ssuse   +++|
03247  M00S03246.ssuse   +++|                                               CONTROL EJECT;
03248  M00S03247.ssuse   +++|
03249  M00S03248.ssuse   +++|      ASTADR = LOC(US$ASTENT[0]);
03250  M00S03249.ssuse   +++|      FCTADR = LOC(US$FCTENT[0]);
03251  M00S03250.ssuse   +++|      SEL$CSN = USARG$CN[0];
03252  M00S03251.ssuse   +++|      FOUND = FALSE;
03253  M00S03252.ssuse   +++|
03254  M00S03253.ssuse   +++|      IF USARG$CM[0] EQ 0
03255  M00S03254.ssuse   +++|      THEN                           # USE DEFAULT MANUFACTURER #
03256  M00S03255.ssuse   +++|        BEGIN
03257  M00S03256.ssuse   +++|        SEL$CM = IBMCART;
03258  M00S03257.ssuse   +++|        END
03259  M00S03258.ssuse   +++|
03260  M00S03259.ssuse   +++|      ELSE                           # USE SPECIFIED MANUFACTURER #
03261  M00S03260.ssuse   +++|        BEGIN
03262  M00S03261.ssuse   +++|        SEL$CM = USARG$CM[0];
03263  M00S03262.ssuse   +++|        END
03264  M00S03263.ssuse   +++|
03265  M00S03264.ssuse   +++|#
03266  M00S03265.ssuse   +++|*     CHANGE ZERO FILL TO SPACE FILL FOR FAMILY AND CARTRIDGE-ID.
03267  M00S03266.ssuse   +++|#
03268  M00S03267.ssuse   +++|
03269  M00S03268.ssuse   +++|      TEMP$FAM = USARG$FM[0];
03270  M00S03269.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
03271  M00S03270.ssuse   +++|      BZFILL(SEL$CM,TYPFILL"BFILL",2);
03272  M00S03271.ssuse   +++|      BZFILL(SEL$CSN,TYPFILL"BFILL",8);
03273  M00S03272.ssuse   +++|
03274  M00S03273.ssuse   +++|#
03275  M00S03274.ssuse   +++|*     CHECK IF SUBFAMILY SELECTED.
03276  M00S03275.ssuse   +++|#
03277  M00S03276.ssuse   +++|
03278  M00S03277.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
03279  M00S03278.ssuse   +++|      DO
03280  M00S03279.ssuse   +++|        BEGIN  # PROCESS EACH SUBFAMILY #
03281  M00S03280.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
03282  M00S03281.ssuse   +++|        THEN                         # SUBFAMILY NOT SELECTED #
03283  M00S03282.ssuse   +++|          BEGIN
03284  M00S03283.ssuse   +++|          TEST SUBFAM;
03285  M00S03284.ssuse   +++|          END
03286  M00S03285.ssuse   +++|
03287  M00S03286.ssuse   +++|#
03288  M00S03287.ssuse   +++|*     SET THE FAMILY AND USER INDEX.
03289  M00S03288.ssuse   +++|#
03290  M00S03289.ssuse   +++|
03291  M00S03290.ssuse   +++|        PFP$WRD0[0] = 0;
03292  M00S03291.ssuse   +++|        PFP$FAM[0] = USARG$FM[0];
03293  M00S03292.ssuse   +++|        PFP$UI[0] = DEF$UI + SUBFAM;
03294  M00S03293.ssuse   +++|        PFP$FG1[0] = TRUE;
03295  M00S03294.ssuse   +++|        PFP$FG4[0] = TRUE;
03296  M00S03295.ssuse   +++|        SETPFP(PFP[0]);
03297  M00S03296.ssuse   +++|        IF PFP$STAT[0] NQ 0
03298  M00S03297.ssuse   +++|        THEN                         # FAMILY NOT FOUND #
03299  M00S03298.ssuse   +++|          BEGIN
03300  M00S03299.ssuse   +++|          SSMSG$LINE[0] = " FAMILY NOT FOUND.";
03301  M00S03300.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
03302  M00S03301.ssuse   +++|          RPCLOSE(OUT$FETP);
03303  M00S03302.ssuse   +++|          RESTPFP(PFP$ABORT);
03304  M00S03303.ssuse   +++|          END
03305  M00S03304.ssuse   +++|
03306  M00S03305.ssuse   +++|#
03307  M00S03306.ssuse   +++|*     OPEN THE CATALOG AND CHECK THE RETURNED ERROR STATUS.
03308  M00S03307.ssuse   +++|#
03309  M00S03308.ssuse   +++|
03310  M00S03309.ssuse   +++|        CHAR$10 = XCDD(SUBFAM);
03311  M00S03310.ssuse   +++|        SFMCAT$LST[0] = CHAR$R1[0];
03312  M00S03311.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R3[0],8,3,1);
03313  M00S03312.ssuse   +++|        COPEN(USARG$FM[0],SUBFAM,SFMCATNM[0],"RM",TRUE,FLAG);
03314  M00S03313.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
03315  M00S03314.ssuse   +++|        THEN
03316  M00S03315.ssuse   +++|          BEGIN
03317  M00S03316.ssuse   +++|          LOFPROC(OCT$LFN[1]);       # ADD LFN TO LIST OF FILES #
03318  M00S03317.ssuse   +++|          END
03319  M00S03318.ssuse   +++|
03320  M00S03319.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
03321  M00S03320.ssuse   +++|        THEN
03322  M00S03321.ssuse   +++|          BEGIN  # CHECK FOR TYPE OF ERROR #
03323  M00S03322.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
03324  M00S03323.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
03325  M00S03324.ssuse   +++|          THEN
03326  M00S03325.ssuse   +++|            BEGIN
03327  M00S03326.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN CATALOG";
03328  M00S03327.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
03329  M00S03328.ssuse   +++|            RPCLOSE(OUT$FETP);
03330  M00S03329.ssuse   +++|            RESTPFP(PFP$ABORT);
03331  M00S03330.ssuse   +++|            END
03332  M00S03331.ssuse   +++|
03333  M00S03332.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
03334  M00S03333.ssuse   +++|          THEN
03335  M00S03334.ssuse   +++|            BEGIN
03336  M00S03335.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
03337  M00S03336.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
03338  M00S03337.ssuse   +++|            RPCLOSE(OUT$FETP);
03339  M00S03338.ssuse   +++|            RESTPFP(PFP$ABORT);
03340  M00S03339.ssuse   +++|            END
03341  M00S03340.ssuse   +++|
03342  M00S03341.ssuse   +++|          ELSE
03343  M00S03342.ssuse   +++|            BEGIN
03344  M00S03343.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
03345  M00S03344.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
03346  M00S03345.ssuse   +++|            RPCLOSE(OUT$FETP);
03347  M00S03346.ssuse   +++|            RESTPFP(PFP$ABORT);
03348  M00S03347.ssuse   +++|            END
03349  M00S03348.ssuse   +++|
03350  M00S03349.ssuse   +++|          END  # CHECK FOR TYPE OF ERROR #
03351  M00S03350.ssuse   +++|
03352  M00S03351.ssuse   +++|#
03353  M00S03352.ssuse   +++|*     CHECK IF SM ASSIGNED TO SUBFAMILY.
03354  M00S03353.ssuse   +++|#
03355  M00S03354.ssuse   +++|
03356  M00S03355.ssuse   +++|        SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
03357  M00S03356.ssuse   +++|        DO
03358  M00S03357.ssuse   +++|          BEGIN  # CHECK EACH SELECTED SM #
03359  M00S03358.ssuse   +++|          IF B<SM,1>SEL$SM EQ 0
03360  M00S03359.ssuse   +++|          THEN                       # SM NOT SELECTED #
03361  M00S03360.ssuse   +++|            BEGIN
03362  M00S03361.ssuse   +++|            TEST SM;
03363  M00S03362.ssuse   +++|            END
03364  M00S03363.ssuse   +++|
03365  M00S03364.ssuse   +++|          P<PREAMBLE> = PRMBADR;
03366  M00S03365.ssuse   +++|          TEMP$SM = SM;
03367  M00S03366.ssuse   +++|          LN$CNT = MAX$LN + 1;       # INITIALIZE LINE COUNT #
03368  M00S03367.ssuse   +++|
03369  M00S03368.ssuse   +++|#
03370  M00S03369.ssuse   +++|*     IF NO ENTRIES FOR THIS SM, PROCESS THE NEXT SPECIFIED SM.
03371  M00S03370.ssuse   +++|#
03372  M00S03371.ssuse   +++|
03373  M00S03372.ssuse   +++|          IF PRM$SCW1[SM] EQ 0
03374  M00S03373.ssuse   +++|          THEN                       # SM NOT ASSIGNED TO SUBFAMILY #
03375  M00S03374.ssuse   +++|            BEGIN
03376  M00S03375.ssuse   +++|            TEST SM;
03377  M00S03376.ssuse   +++|            END
03378  M00S03377.ssuse   +++|
03379  M00S03378.ssuse   +++|#
03380  M00S03379.ssuse   +++|*     READ THE *AST* AND CHECK THE RETURNED ERROR STATUS.
03381  M00S03380.ssuse   +++|#
03382  M00S03381.ssuse   +++|
03383  M00S03382.ssuse   +++|          CRDAST(USARG$FM[0],SUBFAM,SM,ASTADR,0,FLAG);
03384  M00S03383.ssuse   +++|          IF FLAG NQ CMASTAT"NOERR"
03385  M00S03384.ssuse   +++|          THEN                       # UNABLE TO GET *AST* #
03386  M00S03385.ssuse   +++|            BEGIN
03387  M00S03386.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
03388  M00S03387.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
03389  M00S03388.ssuse   +++|            RPCLOSE(OUT$FETP);
03390  M00S03389.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
03391  M00S03390.ssuse   +++|            END
03392  M00S03391.ssuse   +++|
03393  M00S03392.ssuse   +++|          P<AST> = ASTADR;
03394  M00S03393.ssuse   +++|
03395  M00S03394.ssuse   +++|#
03396  M00S03395.ssuse   +++|*     PROCESS ALL *FCT* ENTRIES.
03397  M00S03396.ssuse   +++|#
03398  M00S03397.ssuse   +++|
03399  M00S03398.ssuse   +++|          SLOWFOR J = 16 STEP 1 UNTIL PRM$ENTRC[SM] + 15
03400  M00S03399.ssuse   +++|          DO
03401  M00S03400.ssuse   +++|            BEGIN  # PROCESS AN *FCT* ENTRY #
03402  M00S03401.ssuse   +++|
03403  M00S03402.ssuse   +++|#
03404  M00S03403.ssuse   +++|*     GET THE *FCT* ENTRY AND CHECK THE RETURNED ERROR STATUS.
03405  M00S03404.ssuse   +++|#
03406  M00S03405.ssuse   +++|
03407  M00S03406.ssuse   +++|            CGETFCT(USARG$FM[0],SUBFAM,SM,J,FCTADR,0,FLAG);
03408  M00S03407.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
03409  M00S03408.ssuse   +++|            THEN                     # UNABLE TO GET *FCT* #
03410  M00S03409.ssuse   +++|              BEGIN
03411  M00S03410.ssuse   +++|              SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
03412  M00S03411.ssuse   +++|              MESSAGE(SSMSG$BUF[0],SYSUDF1);
03413  M00S03412.ssuse   +++|              RPCLOSE(OUT$FETP);
03414  M00S03413.ssuse   +++|              RESTPFP(PFP$ABORT);
03415  M00S03414.ssuse   +++|              END
03416  M00S03415.ssuse   +++|
03417  M00S03416.ssuse   +++|            P<FCT> = FCTADR;
03418  M00S03417.ssuse   +++|
03419  M00S03418.ssuse   +++|#
03420  M00S03419.ssuse   +++|*     CHECK THE CSN OF THE CARTRIDGE IN THIS CUBICLE.  IF IT IS
03421  M00S03420.ssuse   +++|*     NOT THE SELECTED CSN, GET THE NEXT ENTRY.
03422  M00S03421.ssuse   +++|#
03423  M00S03422.ssuse   +++|
03424  M00S03423.ssuse   +++|            IF FCT$CSND[0] NQ SEL$CSN
03425  M00S03424.ssuse   +++|            THEN
03426  M00S03425.ssuse   +++|              BEGIN
03427  M00S03426.ssuse   +++|              TEST J;
03428  M00S03427.ssuse   +++|              END
03429  M00S03428.ssuse   +++|
03430  M00S03429.ssuse   +++|#
03431  M00S03430.ssuse   +++|*     IF THE CARTRIDGE MANUFACTURER IS DIFFERENT FROM THE SELECTED
03432  M00S03431.ssuse   +++|*     MANUFACTURER, GET THE NEXT ENTRY.
03433  M00S03432.ssuse   +++|#
03434  M00S03433.ssuse   +++|
03435  M00S03434.ssuse   +++|            IF SEL$CM NQ FCT$CCOD[0]
03436  M00S03435.ssuse   +++|            THEN
03437  M00S03436.ssuse   +++|              BEGIN
03438  M00S03437.ssuse   +++|              TEST J;
03439  M00S03438.ssuse   +++|              END
03440  M00S03439.ssuse   +++|
03441  M00S03440.ssuse   +++|            FOUND = TRUE;
03442  M00S03441.ssuse   +++|
03443  M00S03442.ssuse   +++|#
03444  M00S03443.ssuse   +++|*     PROCESS EACH AU.
03445  M00S03444.ssuse   +++|#
03446  M00S03445.ssuse   +++|
03447  M00S03446.ssuse   +++|            SLOWFOR N = 0 STEP 8 UNTIL INAVOT
03448  M00S03447.ssuse   +++|            DO
03449  M00S03448.ssuse   +++|              BEGIN  # PROCESS EACH AU #
03450  M00S03449.ssuse   +++|
03451  M00S03450.ssuse   +++|#
03452  M00S03451.ssuse   +++|*     WRITE HEADER TO REPORT FILE IF NEW PAGE.
03453  M00S03452.ssuse   +++|#
03454  M00S03453.ssuse   +++|
03455  M00S03454.ssuse   +++|              IF LN$CNT GQ MAX$LN
03456  M00S03455.ssuse   +++|              THEN
03457  M00S03456.ssuse   +++|                BEGIN  # PAGE EJECT AND PRINT HEADER #
03458  M00S03457.ssuse   +++|                RPEJECT(OUT$FETP);
03459  M00S03458.ssuse   +++|                RPLINE(OUT$FETP,"SSUSE OPTIONAL REPORT D - ",5,26,1);
03460  M00S03459.ssuse   +++|                RPLINE(OUT$FETP,"DETAILED AU STATUS REPORT",31,25,1);
03461  M00S03460.ssuse   +++|                RPLINE(OUT$FETP,"SM = ",59,5,1);
03462  M00S03461.ssuse   +++|                RPLINE(OUT$FETP,TEMP$SM,64,1,1);
03463  M00S03462.ssuse   +++|                CHAR$10[0] = XCOD(SUBFAM);
03464  M00S03463.ssuse   +++|                RPLINE(OUT$FETP,"SUBFAMILY = ",68,12,1);
03465  M00S03464.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R1[0],80,1,1);
03466  M00S03465.ssuse   +++|                RPLINE(OUT$FETP,"FAMILY = ",84,9,1);
03467  M00S03466.ssuse   +++|                RPLINE(OUT$FETP,TEMP$FAM,93,7,0);
03468  M00S03467.ssuse   +++|                RPSPACE(OUT$FETP,SP"SPACE",1);
03469  M00S03468.ssuse   +++|                RPLINE(OUT$FETP,"F = FLAWED AU ",9,14,1);
03470  M00S03469.ssuse   +++|                RPLINE(OUT$FETP,"(DEMARK FAILURE)",23,16,0);
03471  M00S03470.ssuse   +++|                RPLINE(OUT$FETP,"V = START OF VOLUME",9,19,0);
03472  M00S03471.ssuse   +++|                RPLINE(OUT$FETP,"E = ONE OF THE ERROR FLAGS",9,26,1);
03473  M00S03472.ssuse   +++|                RPLINE(OUT$FETP," SET (AU CONFLICT, FROZEN ",35,26,1);
03474  M00S03473.ssuse   +++|                RPLINE(OUT$FETP,"CHAIN, START OF FRAGMENT)",61,25,0);
03475  M00S03474.ssuse   +++|                RPSPACE(OUT$FETP,SP"SPACE",1);
03476  M00S03475.ssuse   +++|                RPLINE(OUT$FETP,"FCTORD     Y     Z",5,18,1);
03477  M00S03476.ssuse   +++|                RPLINE(OUT$FETP,"CM  CSN        GROUP",30,20,0);
03478  M00S03477.ssuse   +++|
03479  M00S03478.ssuse   +++|                CHAR$10[0] = XCDD(J);
03480  M00S03479.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R3[0],5,3,1);
03481  M00S03480.ssuse   +++|
03482  M00S03481.ssuse   +++|                CHAR$10[0] = XCDD(FCT$Y[0]);
03483  M00S03482.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R2[0],15,2,1);
03484  M00S03483.ssuse   +++|
03485  M00S03484.ssuse   +++|                CHAR$10[0] = XCDD(FCT$Z[0]);
03486  M00S03485.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R2[0],21,2,1);
03487  M00S03486.ssuse   +++|
03488  M00S03487.ssuse   +++|                CHAR$10[0] = FCT$CCOD[0];
03489  M00S03488.ssuse   +++|                BZFILL(CHAR,TYPFILL"BFILL",2);
03490  M00S03489.ssuse   +++|                RPLINE(OUT$FETP,CHAR$L2[0],30,2,1);
03491  M00S03490.ssuse   +++|
03492  M00S03491.ssuse   +++|                CHAR$10[0] = FCT$CSND[0];
03493  M00S03492.ssuse   +++|                BZFILL(CHAR,TYPFILL"BFILL",10);
03494  M00S03493.ssuse   +++|                RPLINE(OUT$FETP,CHAR$L8[0],32,8,1);
03495  M00S03494.ssuse   +++|
03496  M00S03495.ssuse   +++|                GP = J / MAXGRT;
03497  M00S03496.ssuse   +++|                CHAR$10[0] = XCDD(GP);
03498  M00S03497.ssuse   +++|                RPLINE(OUT$FETP,CHAR$R2[0],46,2,1);
03499  M00S03498.ssuse   +++|
03500  M00S03499.ssuse   +++|                IF (AST$AUSF[J] + AST$AULF[J] + AST$FLAWS[J]) EQ INAVOT
03501  M00S03500.ssuse   +++|                THEN
03502  M00S03501.ssuse   +++|                  BEGIN
03503  M00S03502.ssuse   +++|                  RPLINE(OUT$FETP,"*** EMPTY CARTRIDGE ***",55,23,0);
03504  M00S03503.ssuse   +++|                  END
03505  M00S03504.ssuse   +++|
03506  M00S03505.ssuse   +++|                ELSE
03507  M00S03506.ssuse   +++|                  BEGIN
03508  M00S03507.ssuse   +++|                  RPLINE(OUT$FETP," ",55,1,0);
03509  M00S03508.ssuse   +++|                  END
03510  M00S03509.ssuse   +++|
03511  M00S03510.ssuse   +++|                RPSPACE(OUT$FETP,SP"SPACE",1);
03512  M00S03511.ssuse   +++|                RPLINE(OUT$FETP,"AU         XXX0",6,15,1);
03513  M00S03512.ssuse   +++|                RPLINE(OUT$FETP,"XXX1           XXX2",32,19,1);
03514  M00S03513.ssuse   +++|                RPLINE(OUT$FETP,"XXX3           XXX4",62,19,1);
03515  M00S03514.ssuse   +++|                RPLINE(OUT$FETP,"XXX5           XXX6",92,19,1);
03516  M00S03515.ssuse   +++|                RPLINE(OUT$FETP,"XXX7",122,4,0);
03517  M00S03516.ssuse   +++|                LN$CNT = 13;
03518  M00S03517.ssuse   +++|                END  # PAGE EJECT AND PRINT HEADER #
03519  M00S03518.ssuse   +++|
03520  M00S03519.ssuse   +++|              NUM = XCOD(N);
03521  M00S03520.ssuse   +++|              RPLINE(OUT$FETP,C<6,3>NUM,5,3,1);
03522  M00S03521.ssuse   +++|              RPLINE(OUT$FETP,"X",8,1,1);
03523  M00S03522.ssuse   +++|              COLUMN = 12;
03524  M00S03523.ssuse   +++|
03525  M00S03524.ssuse   +++|              SLOWFOR I = N STEP 1 UNTIL N + 7
03526  M00S03525.ssuse   +++|              DO
03527  M00S03526.ssuse   +++|                BEGIN  # PRINT EIGHT AU ON A LINE #
03528  M00S03527.ssuse   +++|
03529  M00S03528.ssuse   +++|#
03530  M00S03529.ssuse   +++|*     DO NOT CONTINUE IF ALL AU-S HAVE BEEN REPORTED.
03531  M00S03530.ssuse   +++|#
03532  M00S03531.ssuse   +++|
03533  M00S03532.ssuse   +++|                IF I GR INAVOT
03534  M00S03533.ssuse   +++|                THEN
03535  M00S03534.ssuse   +++|                  BEGIN
03536  M00S03535.ssuse   +++|                  RPLINE(OUT$FETP," ",135,1,0);  # PRINT LINE #
03537  M00S03536.ssuse   +++|                  TEST N;
03538  M00S03537.ssuse   +++|                  END
03539  M00S03538.ssuse   +++|
03540  M00S03539.ssuse   +++|#
03541  M00S03540.ssuse   +++|*     DO NOT REPORT ON AU ZERO.
03542  M00S03541.ssuse   +++|#
03543  M00S03542.ssuse   +++|
03544  M00S03543.ssuse   +++|                IF N EQ 0 AND I EQ 0
03545  M00S03544.ssuse   +++|                THEN
03546  M00S03545.ssuse   +++|                  BEGIN
03547  M00S03546.ssuse   +++|                  COLUMN = COLUMN + 15;
03548  M00S03547.ssuse   +++|                  TEST I;
03549  M00S03548.ssuse   +++|                  END
03550  M00S03549.ssuse   +++|
03551  M00S03550.ssuse   +++|                ER$CODE = " ";
03552  M00S03551.ssuse   +++|                CODE = "  ";
03553  M00S03552.ssuse   +++|                SETFCTX(I);          # SET *FWD* AND *FPS* VALUES #
03554  M00S03553.ssuse   +++|
03555  M00S03554.ssuse   +++|#
03556  M00S03555.ssuse   +++|*     CHECK EACH AU FOR FLAGS.
03557  M00S03556.ssuse   +++|#
03558  M00S03557.ssuse   +++|
03559  M00S03558.ssuse   +++|                IF FCT$AUCF(FWD,FPS) NQ 0  ##
03560  M00S03559.ssuse   +++|                  OR FCT$FRCF(FWD,FPS) NQ 0  ##
03561  M00S03560.ssuse   +++|                  OR FCT$SFF(FWD,FPS) NQ 0
03562  M00S03561.ssuse   +++|                THEN                 # ONE OF THE ERROR FLAGS SET #
03563  M00S03562.ssuse   +++|                  BEGIN
03564  M00S03563.ssuse   +++|                  ER$CODE = "E";
03565  M00S03564.ssuse   +++|                  END
03566  M00S03565.ssuse   +++|
03567  M00S03566.ssuse   +++|                IF FCT$FAUF(FWD,FPS) NQ 0
03568  M00S03567.ssuse   +++|                THEN                 # FLAWED AU #
03569  M00S03568.ssuse   +++|                  BEGIN
03570  M00S03569.ssuse   +++|                  CODE = " F";
03571  M00S03570.ssuse   +++|                  END
03572  M00S03571.ssuse   +++|
03573  M00S03572.ssuse   +++|                IF FCT$CAUF(FWD,FPS) EQ 0
03574  M00S03573.ssuse   +++|                THEN                 # START OF VOLUME #
03575  M00S03574.ssuse   +++|                  BEGIN
03576  M00S03575.ssuse   +++|                  CODE = " V";
03577  M00S03576.ssuse   +++|                  END
03578  M00S03577.ssuse   +++|
03579  M00S03578.ssuse   +++|                IF FCT$FAUF(FWD,FPS) NQ 0  ##
03580  M00S03579.ssuse   +++|                  AND FCT$CAUF(FWD,FPS) EQ 0
03581  M00S03580.ssuse   +++|                THEN                 # FLAWED AU AND START OF VOLUME #
03582  M00S03581.ssuse   +++|                  BEGIN
03583  M00S03582.ssuse   +++|                  CODE = "FV";
03584  M00S03583.ssuse   +++|                  END
03585  M00S03584.ssuse   +++|
03586  M00S03585.ssuse   +++|#
03587  M00S03586.ssuse   +++|*     CONVERT THE CARTRIDGE LINK FIELD TO OCTAL AND PRINT IT.
03588  M00S03587.ssuse   +++|#
03589  M00S03588.ssuse   +++|
03590  M00S03589.ssuse   +++|                XWOD(FCT$CLFG(FWD,FPS),DIS);
03591  M00S03590.ssuse   +++|                RPLINE(OUT$FETP,CODE,COLUMN,2,1);
03592  M00S03591.ssuse   +++|                RPLINE(OUT$FETP,DIS$CLFG[0],COLUMN + 2,10,1);
03593  M00S03592.ssuse   +++|                RPLINE(OUT$FETP,ER$CODE,COLUMN + 12,1,1);
03594  M00S03593.ssuse   +++|                COLUMN = COLUMN + 15;
03595  M00S03594.ssuse   +++|                END  # PRINT EIGHT AU ON A LINE #
03596  M00S03595.ssuse   +++|
03597  M00S03596.ssuse   +++|              LN$CNT = LN$CNT + 1;
03598  M00S03597.ssuse   +++|              RPLINE(OUT$FETP," ",135,1,0);  # PRINT OUT LINE #
03599  M00S03598.ssuse   +++|              END  # PROCESS EACH AU #
03600  M00S03599.ssuse   +++|
03601  M00S03600.ssuse   +++|#
03602  M00S03601.ssuse   +++|*     CLOSE THE SFM CATALOG AND RETURN.
03603  M00S03602.ssuse   +++|#
03604  M00S03603.ssuse   +++|
03605  M00S03604.ssuse   +++|            CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
03606  M00S03605.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
03607  M00S03606.ssuse   +++|            THEN
03608  M00S03607.ssuse   +++|              BEGIN
03609  M00S03608.ssuse   +++|              SSMSG$PROC[0] = PROCNAME;
03610  M00S03609.ssuse   +++|              MESSAGE(SSMSG[0],SYSUDF1);
03611  M00S03610.ssuse   +++|              RPCLOSE(OUT$FETP);
03612  M00S03611.ssuse   +++|              RESTPFP(PFP$ABORT);
03613  M00S03612.ssuse   +++|              END
03614  M00S03613.ssuse   +++|
03615  M00S03614.ssuse   +++|            RETURN;
03616  M00S03615.ssuse   +++|
03617  M00S03616.ssuse   +++|            END  # PROCESS AN *FCT* ENTRY #
03618  M00S03617.ssuse   +++|
03619  M00S03618.ssuse   +++|          END  # CHECK EACH SELECTED SM #
03620  M00S03619.ssuse   +++|
03621  M00S03620.ssuse   +++|#
03622  M00S03621.ssuse   +++|*     CLOSE THE CATALOG.
03623  M00S03622.ssuse   +++|#
03624  M00S03623.ssuse   +++|
03625  M00S03624.ssuse   +++|        CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
03626  M00S03625.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
03627  M00S03626.ssuse   +++|        THEN                         # UNABLE TO CLOSE CATALOG #
03628  M00S03627.ssuse   +++|          BEGIN
03629  M00S03628.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
03630  M00S03629.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
03631  M00S03630.ssuse   +++|          RPCLOSE(OUT$FETP);
03632  M00S03631.ssuse   +++|          RESTPFP(PFP$ABORT);
03633  M00S03632.ssuse   +++|          END
03634  M00S03633.ssuse   +++|
03635  M00S03634.ssuse   +++|        ZFILL(FCTBUFCW,1);           # CLEAR CONTROL BUFFER #
03636  M00S03635.ssuse   +++|
03637  M00S03636.ssuse   +++|        END  # PROCESS EACH SUBFAMILY #
03638  M00S03637.ssuse   +++|
03639  M00S03638.ssuse   +++|#
03640  M00S03639.ssuse   +++|*     IF CSN WAS NOT FOUND ISSUE MESSAGE TO DAYFILE AND ABORT.
03641  M00S03640.ssuse   +++|#
03642  M00S03641.ssuse   +++|
03643  M00S03642.ssuse   +++|      IF NOT FOUND
03644  M00S03643.ssuse   +++|      THEN
03645  M00S03644.ssuse   +++|        BEGIN
03646  M00S03645.ssuse   +++|        SSMSG$LINE[0] = " CARTRIDGE NOT FOUND.";
03647  M00S03646.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
03648  M00S03647.ssuse   +++|        RPCLOSE(OUT$FETP);
03649  M00S03648.ssuse   +++|        RESTPFP(PFP$ABORT);
03650  M00S03649.ssuse   +++|        END
03651  M00S03650.ssuse   +++|
03652  M00S03651.ssuse   +++|      RETURN;
03653  M00S03652.ssuse   +++|
03654  M00S03653.ssuse   +++|      END  # USRPTD #
03655  M00S03654.ssuse   +++|
03656  M00S03655.ssuse   +++|    TERM
cdc/nos2.source/opl.opl871/deck/ssuse.001.txt ยท Last modified: by 127.0.0.1