User Tools

Site Tools


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

Deck SSUSE

1 Modification

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.ssuse   +++|PRGM SSUSE;
00002  M01S00002.ssuse   +++|# TITLE SSUSE - INITIALIZES *SSUSE*.                                  #
00003  M01S00003.ssuse   +++|
00004  M01S00004.ssuse   +++|      BEGIN  # SSUSE #
00005  M01S00005.ssuse   +++|
00006  M01S00006.ssuse   +++|#
00007  M01S00007.ssuse   +++|***   SSUSE - INITIALIZES *SSUSE*.
00008  M01S00008.ssuse   +++|*
00009  M01S00009.ssuse   +++|*     THIS PRGM DOES THE INITIALIZATION FOR THE *SSUSE*
00010  M01S00010.ssuse   +++|*     UTILITY BY PROCESSING THE CONTROL CARD AND SETTING
00011  M01S00011.ssuse   +++|*     UP POINTERS AND DEFAULT VALUES.
00012  M01S00012.ssuse   +++|*
00013  M01S00013.ssuse   +++|*     SSUSE,OP,FM,SM,SB,CN,CM,L.
00014  M01S00014.ssuse   +++|*
00015  M01S00015.ssuse   +++|*     PRGM SSUSE.
00016  M01S00016.ssuse   +++|*
00017  M01S00017.ssuse   +++|*     ENTRY.     INPUTS TO SSUSE ARE-
00018  M01S00018.ssuse   +++|*                OP          SELECTS BASIC USAGE REPORT.
00019  M01S00019.ssuse   +++|*                OP=A        OPTIONAL REPORT A AND THE BASIC REPORT.
00020  M01S00020.ssuse   +++|*                OP=B        OPTIONAL REPORT B AND THE BASIC REPORT.
00021  M01S00021.ssuse   +++|*                OP=C        OPTIONAL REPORT C AND THE BASIC REPORT.
00022  M01S00022.ssuse   +++|*                OP=D        OPTIONAL REPORT D AND THE BASIC REPORT.
00023  M01S00023.ssuse   +++|*                OP=ABCD     OPTIONAL REPORTS A, B, C, AND D AND ANY
00024  M01S00024.ssuse   +++|*                            COMBINATION OF A, B, C, AND D MAY
00025  M01S00025.ssuse   +++|*                            BE USED.
00026  M01S00026.ssuse   +++|*                OP OMITTED  SAME AS OP.
00027  M01S00027.ssuse   +++|*
00028  M01S00028.ssuse   +++|*                FM          USE DEFAULT FAMILY.
00029  M01S00029.ssuse   +++|*                FM=FAMILY   THE SPECIFIED FAMILY WILL BE REPORTED.
00030  M01S00030.ssuse   +++|*                FM OMITTED  SAME AS FM.
00031  M01S00031.ssuse   +++|*
00032  M01S00032.ssuse   +++|*                SB          ALL SUBFAMILIES ARE TO BE PROCESSED.
00033  M01S00033.ssuse   +++|*                SB=CHARS    SELECT UP TO EIGHT SUBFAMILIES.  THERE
00034  M01S00034.ssuse   +++|*                            ARE EIGHT POSSIBLE SUBFAMILIES FROM 0
00035  M01S00035.ssuse   +++|*                            TO 7 (E.G.  SB=723 SELECTS SUBFAMILIES
00036  M01S00036.ssuse   +++|*                            2, 3, AND 7).
00037  M01S00037.ssuse   +++|*                SB OMITTED  SAME AS SB.
00038  M01S00038.ssuse   +++|*
00039  M01S00039.ssuse   +++|*                SM          SM A WILL BE REPORTED.
00040  M01S00040.ssuse   +++|*                SM=CHARS    SELECT UP TO EIGHT SM-S, WHICH CAN
00041  M01S00041.ssuse   +++|*                            BE ANY OF THE FOLLOWING (E.G.  SM=AGC
00042  M01S00042.ssuse   +++|*                            SELECTS SM A, C, AND G):
00043  M01S00043.ssuse   +++|*                            A - SM A
00044  M01S00044.ssuse   +++|*                            B - SM B
00045  M01S00045.ssuse   +++|*                            C - SM C
00046  M01S00046.ssuse   +++|*                            D - SM D
00047  M01S00047.ssuse   +++|*                            E - SM E
00048  M01S00048.ssuse   +++|*                            F - SM F
00049  M01S00049.ssuse   +++|*                            G - SM G
00050  M01S00050.ssuse   +++|*                            H - SM H
00051  M01S00051.ssuse   +++|*                SM OMITTED  SAME AS SM.
00052  M01S00052.ssuse   +++|*
00053  M01S00053.ssuse   +++|*                L           LISTABLE OUTPUT ON FILE *OUTPUT*.
00054  M01S00054.ssuse   +++|*                L=LFN       LISTABLE OUTPUT ON FILE *LFN*.
00055  M01S00055.ssuse   +++|*                L=0         NO OUTPUT FILE GENERATED.
00056  M01S00056.ssuse   +++|*                L OMITTED   SAME AS L.
00057  M01S00057.ssuse   +++|*
00058  M01S00058.ssuse   +++|*                CN          NOT PERMITTED.
00059  M01S00059.ssuse   +++|*                CN=CSN      THE SELECTED CSN WILL BE REPORTED IN
00060  M01S00060.ssuse   +++|*                            REPORT D.
00061  M01S00061.ssuse   +++|*                CN OMITTED  NOT PERMITTED.
00062  M01S00062.ssuse   +++|*
00063  M01S00063.ssuse   +++|*                CM          MANUFACTURER OF CARTRIDGE *CN*.  DEFAULT
00064  M01S00064.ssuse   +++|*                            MANUFACTURER IS USED.
00065  M01S00065.ssuse   +++|*                CM=A        MANUFACTURER *A-* IS USED, (A- = IBM).
00066  M01S00066.ssuse   +++|*                CM OMITTED  SAME AS *CM*.
00067  M01S00067.ssuse   +++|*
00068  M01S00068.ssuse   +++|*     EXIT.      *SSUSE* PROCESSING COMPLETE OR AN ERROR
00069  M01S00069.ssuse   +++|*                CONDITION ENCOUNTERED.
00070  M01S00070.ssuse   +++|*
00071  M01S00071.ssuse   +++|*     MESSAGES.  1.  SSUSE COMPLETE.
00072  M01S00072.ssuse   +++|*                2.  SSUSE - ARGUMENT ERROR.
00073  M01S00073.ssuse   +++|*                3. SSUSE - MUST BE SYSTEM ORIGIN.
00074  M01S00074.ssuse   +++|*
00075  M01S00075.ssuse   +++|*     NOTES.     PRGM *SSUSE* INITIALIZES *SSUSE*.  A PARAMETER
00076  M01S00076.ssuse   +++|*                TABLE IS SET UP BEFORE ANY PROCESSING IS DONE.
00077  M01S00077.ssuse   +++|*                *SSUSE* THEN PROCESSES THE CONTROL CARD, WHERE THE
00078  M01S00078.ssuse   +++|*                PROCESSED PARAMETERS ARE RETURNED IN THE COMMON
00079  M01S00079.ssuse   +++|*                AREA *TUSPCOM*.  ANY SYNTAX ERROR IN THE CONTROL
00080  M01S00080.ssuse   +++|*                CARD CAUSES *SSUSE* TO ABORT.  AFTER THE PARAMETERS
00081  M01S00081.ssuse   +++|*                ARE PROCESSED AND SYNTAX CHECKED, THEY ARE THEN
00082  M01S00082.ssuse   +++|*                CHECKED BY *USOPT* TO SEE IF THE OPTIONS SPECIFIED
00083  M01S00083.ssuse   +++|*                ARE VALID.  *USOPT* ABORTS WITH A DESCRIPTIVE
00084  M01S00084.ssuse   +++|*                ERROR MESSAGE WHENEVER IT ENCOUNTERS AN
00085  M01S00085.ssuse   +++|*                ERROR CONDITION.  PROC *USRPBAS* IS CALLED TO
00086  M01S00086.ssuse   +++|*                GENERATE THE BASIC AND OPTIONAL REPORTS.  AN
00087  M01S00087.ssuse   +++|*                *SSUSE COMPLETE* MESSAGE IS ISSUED TO THE DAYFILE
00088  M01S00088.ssuse   +++|*                IF ALL REPORTS HAVE BEEN GENERATED SUCCESSFULLY.
Line S00089 Modification History
M01 (Added by) ssuse
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00089  M02S00089.281l803 ---|*     COPYRIGHT CONTROL DATA CORP., 1983.
00090  M01S00001.281l803 +++|*     COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00091  M01S00090.ssuse   +++|#
00092  M01S00091.ssuse   +++|
00093  M01S00092.ssuse   +++|#
00094  M01S00093.ssuse   +++|****  PROC SSUSE - XREF LIST BEGIN.
00095  M01S00094.ssuse   +++|#
00096  M01S00095.ssuse   +++|
00097  M01S00096.ssuse   +++|      XREF
00098  M01S00097.ssuse   +++|        BEGIN
00099  M01S00098.ssuse   +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
00100  M01S00099.ssuse   +++|        PROC GETFAM;                 # GETS DEFAULT FAMILY #
00101  M01S00100.ssuse   +++|        PROC GETPFP;                 # GET USER INDEX AND FAMILY #
00102  M01S00101.ssuse   +++|        PROC GETSPS;                 # GET SYSTEM ORIGIN STATUS #
00103  M01S00102.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
00104  M01S00103.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00105  M01S00104.ssuse   +++|                                       OR RETURN #
00106  M01S00105.ssuse   +++|        PROC SSINIT;                 # SETS UP TABLES AND POINTERS #
00107  M01S00106.ssuse   +++|        PROC USOPT;                  # CHECKS FOR VALID OPTIONS #
00108  M01S00107.ssuse   +++|        PROC USRPBAS;                # GENERATES BASIC AND OPTIONAL
00109  M01S00108.ssuse   +++|                                       REPORTS #
00110  M01S00109.ssuse   +++|        PROC USTAB;                  # SETS UP PARAMETER TABLE #
00111  M01S00110.ssuse   +++|        PROC XARG;                   # CRACK PARAMETER LIST #
00112  M01S00111.ssuse   +++|        END
00113  M01S00112.ssuse   +++|
00114  M01S00113.ssuse   +++|#
00115  M01S00114.ssuse   +++|****  PROC SSUSE - XREF LIST END.
00116  M01S00115.ssuse   +++|#
00117  M01S00116.ssuse   +++|
00118  M01S00117.ssuse   +++|      DEF RSLEN      #1#;            # RETURN STATUS WORD LENGTH #
00119  M01S00118.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00120  M01S00119.ssuse   +++|                                               CONTROL PRESET;
00121  M01S00120.ssuse   +++|*CALL COMBFAS
00122  M01S00121.ssuse   +++|*CALL COMBCMD
00123  M01S00122.ssuse   +++|*CALL COMBMCT
00124  M01S00123.ssuse   +++|*CALL COMBPFP
00125  M01S00124.ssuse   +++|*CALL COMXMSC
00126  M01S00125.ssuse   +++|*CALL COMSPFM
00127  M01S00126.ssuse   +++|*CALL COMTFMT
00128  M01S00127.ssuse   +++|*CALL COMTUSE
00129  M01S00128.ssuse   +++|*CALL COMTUSP
00130  M01S00129.ssuse   +++|
00131  M01S00130.ssuse   +++|      ITEM ARGLIST    U;             # ADDRESS OF ARGUMENT TABLE #
00132  M01S00131.ssuse   +++|      ITEM DEFAULT    I;             # DEFAULT FAMILY ORDINAL #
00133  M01S00132.ssuse   +++|      ITEM FAM$NUM    I;             # NUMBER OF FAMILIES #
00134  M01S00133.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
00135  M01S00134.ssuse   +++|      ITEM LINK       I;             # LINK FAMILY ORDINAL #
00136  M01S00135.ssuse   +++|      ITEM SSID       I;             # SUBSYSTEM ID #
00137  M01S00136.ssuse   +++|
00138  M01S00137.ssuse   +++|      ARRAY SPSSTAT [0:0] S(RSLEN);
00139  M01S00138.ssuse   +++|        BEGIN
00140  M01S00139.ssuse   +++|        ITEM SPS$STATUS U(00,48,12);  # RETURN STATUS #
00141  M01S00140.ssuse   +++|        END
00142  M01S00141.ssuse   +++|
00143  M01S00142.ssuse   +++|                                               CONTROL EJECT;
00144  M01S00143.ssuse   +++|
00145  M01S00144.ssuse   +++|#
00146  M01S00145.ssuse   +++|*     IF THE USER JOB HAS SYSTEM ORIGIN PRIVILEGES THEN SAVE THE USER-S
00147  M01S00146.ssuse   +++|*     CURRENT FAMILY AND INDEX IN COMMON.
00148  M01S00147.ssuse   +++|#
00149  M01S00148.ssuse   +++|
00150  M01S00149.ssuse   +++|      GETSPS(SPSSTAT);               # GET SYSTEM ORIGIN STATUS #
00151  M01S00150.ssuse   +++|      IF SPS$STATUS NQ 0
00152  M01S00151.ssuse   +++|      THEN
00153  M01S00152.ssuse   +++|        BEGIN
00154  M01S00153.ssuse   +++|        SSMSG$LINE[0] = " SSUSE - MUST BE SYSTEM ORIGIN.";
00155  M01S00154.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00156  M01S00155.ssuse   +++|        ABORT;
00157  M01S00156.ssuse   +++|        END
00158  M01S00157.ssuse   +++|
00159  M01S00158.ssuse   +++|      GETPFP(PFP[0]);
00160  M01S00159.ssuse   +++|      USER$FAM[0] = PFP$FAM[0];
00161  M01S00160.ssuse   +++|      USER$UI[0] = PFP$UI[0];
00162  M01S00161.ssuse   +++|
00163  M01S00162.ssuse   +++|#
00164  M01S00163.ssuse   +++|*     PROCESS THE PARAMETERS ON *SSUSE* CALL.
00165  M01S00164.ssuse   +++|#
00166  M01S00165.ssuse   +++|
00167  M01S00166.ssuse   +++|      USTAB(ARGLIST);                # SET UP THE ARGUMENT LIST #
00168  M01S00167.ssuse   +++|      XARG(ARGLIST,0,FLAG);          # PROCESS THE CONTROL STATEMENT #
00169  M01S00168.ssuse   +++|      IF FLAG NQ 0
00170  M01S00169.ssuse   +++|      THEN                           # SYNTAX ERROR #
00171  M01S00170.ssuse   +++|        BEGIN
00172  M01S00171.ssuse   +++|        SSMSG$LINE[0] = " SSUSE - ARGUMENT ERROR.";
00173  M01S00172.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00174  M01S00173.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00175  M01S00174.ssuse   +++|        END
00176  M01S00175.ssuse   +++|
00177  M01S00176.ssuse   +++|#
00178  M01S00177.ssuse   +++|*     CONVERT PARAMETERS AND CHECK FOR ALL THE VALID
00179  M01S00178.ssuse   +++|*     OPTIONS ON THE CONTROL CARD.
00180  M01S00179.ssuse   +++|#
00181  M01S00180.ssuse   +++|
00182  M01S00181.ssuse   +++|      USOPT;
00183  M01S00182.ssuse   +++|
00184  M01S00183.ssuse   +++|#
00185  M01S00184.ssuse   +++|*     IF *FM* IS NOT SPECIFIED, USE THE DEFAULT FAMILY.
00186  M01S00185.ssuse   +++|#
00187  M01S00186.ssuse   +++|
00188  M01S00187.ssuse   +++|      SSID = ATAS;
00189  M01S00188.ssuse   +++|      GETFAM(FAMT[1],FAM$NUM,LINK,DEFAULT,SSID);
00190  M01S00189.ssuse   +++|      DEF$FAM = FAM$NAME[DEFAULT];
00191  M01S00190.ssuse   +++|      IF USARG$FM[0] EQ 0
00192  M01S00191.ssuse   +++|      THEN
00193  M01S00192.ssuse   +++|        BEGIN
00194  M01S00193.ssuse   +++|        USARG$FM[0] = DEF$FAM;
00195  M01S00194.ssuse   +++|        END
00196  M01S00195.ssuse   +++|
00197  M01S00196.ssuse   +++|#
00198  M01S00197.ssuse   +++|*     INITIALIZE TABLES AND POINTERS NEEDED BY
00199  M01S00198.ssuse   +++|*     CATALOG/MAP ACCESS ROUTINES.
00200  M01S00199.ssuse   +++|#
00201  M01S00200.ssuse   +++|
00202  M01S00201.ssuse   +++|      SSINIT;
00203  M01S00202.ssuse   +++|
00204  M01S00203.ssuse   +++|#
00205  M01S00204.ssuse   +++|*     GENERATE THE BASIC AND OPTIONAL REPORTS REQUESTED BY
00206  M01S00205.ssuse   +++|*     THE CONTROL CARD PARAMETERS.
00207  M01S00206.ssuse   +++|#
00208  M01S00207.ssuse   +++|
00209  M01S00208.ssuse   +++|      USRPBAS;
00210  M01S00209.ssuse   +++|
00211  M01S00210.ssuse   +++|#
00212  M01S00211.ssuse   +++|*     DISPLAY *SSUSE COMPLETE* IN THE DAYFILE.
00213  M01S00212.ssuse   +++|#
00214  M01S00213.ssuse   +++|
00215  M01S00214.ssuse   +++|      SSMSG$LINE[0] = " SSUSE COMPLETE.";
00216  M01S00215.ssuse   +++|      MESSAGE(SSMSG$BUF[0],SYSUDF1);
00217  M01S00216.ssuse   +++|      RESTPFP(PFP$END);              # RESTORE USER-S *PFP* #
00218  M01S00217.ssuse   +++|
00219  M01S00218.ssuse   +++|      END  # SSUSE #
00220  M01S00219.ssuse   +++|
00221  M01S00220.ssuse   +++|    TERM
00222  M01S00221.ssuse   +++|PROC USANALS((SUBFAM),(SMID));
00223  M01S00222.ssuse   +++|# TITLE USANALS - ANALYZES SFMCATALOG ENTRIES FOR A SM.               #
00224  M01S00223.ssuse   +++|
00225  M01S00224.ssuse   +++|      BEGIN  # USANALS #
00226  M01S00225.ssuse   +++|
00227  M01S00226.ssuse   +++|#
00228  M01S00227.ssuse   +++|**    USANALS - ANALYZES SFM CATALOG ENTRIES FOR A SM.
00229  M01S00228.ssuse   +++|*
00230  M01S00229.ssuse   +++|*     THIS PROCEDURE ANALYZES THE *AST* AND *FCT* ENTRIES FOR A SM.
00231  M01S00230.ssuse   +++|*
00232  M01S00231.ssuse   +++|*     PROC USANALS((SUBFAM),(SMID)).
00233  M01S00232.ssuse   +++|*
00234  M01S00233.ssuse   +++|*     ENTRY     (SUBFAM)   =  SUBFAMILY IDENTIFIER.
00235  M01S00234.ssuse   +++|*               (SMID)     =  SM IDENTIFIER.
00236  M01S00235.ssuse   +++|*
00237  M01S00236.ssuse   +++|*     EXIT      SUB-TOTALS COUNTERS ARE UPDATED IN THE COMMON
00238  M01S00237.ssuse   +++|*               AREA.
00239  M01S00238.ssuse   +++|*
00240  M01S00239.ssuse   +++|*     MESSAGES  1. SFMCATALOG PARITY ERROR.
00241  M01S00240.ssuse   +++|*               2. FAMILY NOT FOUND.
00242  M01S00241.ssuse   +++|*               3. SMMAP PARITY ERROR.
00243  M01S00242.ssuse   +++|*               4. UNABLE TO OPEN SMMAP.
00244  M01S00243.ssuse   +++|*               5. SSUSE ABNORMAL, USANALS.
00245  M01S00244.ssuse   +++|*
00246  M01S00245.ssuse   +++|*     NOTES     PROC *USANALS* CALLS *CRDAST* TO GET THE *AST* FOR THE
00247  M01S00246.ssuse   +++|*               SPECIFIED SM.  IT THEN CALLS *CGETFCT* TO GET AN *FCT*
00248  M01S00247.ssuse   +++|*               ENTRY.  THE VARIOUS FIELDS WITHIN EACH *AST* AND *FCT*
00249  M01S00248.ssuse   +++|*               ENTRY ARE CHECKED FOR CERTAIN CONDITIONS AND THE
00250  M01S00249.ssuse   +++|*               APPROPRIATE COUNTERS ARE UPDATED.  THE SMMAP IS
00251  M01S00250.ssuse   +++|*               SEARCHED FOR EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY.
00252  M01S00251.ssuse   +++|#
00253  M01S00252.ssuse   +++|
00254  M01S00253.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
00255  M01S00254.ssuse   +++|      ITEM SMID       U;             # SM IDENTIFIER #
00256  M01S00255.ssuse   +++|
00257  M01S00256.ssuse   +++|#
00258  M01S00257.ssuse   +++|****  PROC USANALS - XREF LIST BEGIN.
00259  M01S00258.ssuse   +++|#
00260  M01S00259.ssuse   +++|
00261  M01S00260.ssuse   +++|      XREF
00262  M01S00261.ssuse   +++|        BEGIN
00263  M01S00262.ssuse   +++|        PROC CGETFCT;                # GETS *FCT* ENTRY #
00264  M01S00263.ssuse   +++|        PROC CRDAST;                 # READS *AST* #
00265  M01S00264.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
00266  M01S00265.ssuse   +++|        PROC MCLOSE;                 # CLOSE SMMAP #
00267  M01S00266.ssuse   +++|        PROC MESSAGE;                # ISSUES MESSAGE IN DAYFILE #
00268  M01S00267.ssuse   +++|        PROC MGETENT;                # GETS MAP ENTRY #
00269  M01S00268.ssuse   +++|        PROC MOPEN;                  # OPENS SMMAP #
00270  M01S00269.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00271  M01S00270.ssuse   +++|                                       OR RETURN #
00272  M01S00271.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
00273  M01S00272.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
00274  M01S00273.ssuse   +++|        END
00275  M01S00274.ssuse   +++|
00276  M01S00275.ssuse   +++|#
00277  M01S00276.ssuse   +++|****  PROC USANALS - XREF LIST END.
00278  M01S00277.ssuse   +++|#
00279  M01S00278.ssuse   +++|
00280  M01S00279.ssuse   +++|      DEF PROCNAME #"USANALS."#;     # PROC NAME #
00281  M01S00280.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00282  M01S00281.ssuse   +++|*CALL COMBFAS
00283  M01S00282.ssuse   +++|*CALL COMBCMD
00284  M01S00283.ssuse   +++|*CALL COMBCMS
00285  M01S00284.ssuse   +++|*CALL,COMBMAP
00286  M01S00285.ssuse   +++|*CALL,COMBPFP
00287  M01S00286.ssuse   +++|*CALL,COMSPFM
00288  M01S00287.ssuse   +++|*CALL COMBMCT
00289  M01S00288.ssuse   +++|*CALL COMXMSC
00290  M01S00289.ssuse   +++|*CALL COMTOUT
00291  M01S00290.ssuse   +++|*CALL COMTUSE
00292  M01S00291.ssuse   +++|*CALL COMTUSP
00293  M01S00292.ssuse   +++|
00294  M01S00293.ssuse   +++|      ITEM BADDR      I;             # *AST* BUFFER ADDRESS #
00295  M01S00294.ssuse   +++|      ITEM BFADDR     I;             # *FCT* BUFFER ADDRESS #
00296  M01S00295.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
00297  M01S00296.ssuse   +++|      ITEM GP         I;             # GROUP #
00298  M01S00297.ssuse   +++|      ITEM I          I;             # LOOP VARIABLE #
00299  M01S00298.ssuse   +++|      ITEM N          I;             # LOOP VARIABLE #
00300  M01S00299.ssuse   +++|      ITEM MAP$ORD    I;             # SMMAP ORDINAL #
00301  M01S00300.ssuse   +++|      ITEM SM$ADDR    I;             # ADDRESS OF SMMAP #
00302  M01S00301.ssuse   +++|      ITEM Y          I;             # Y COORDINATE #
00303  M01S00302.ssuse   +++|      ITEM Z          I;             # Z COORDINATE #
00304  M01S00303.ssuse   +++|
00305  M01S00304.ssuse   +++|      ARRAY SMMAP$NM [0:0] P(1);     # ARRAY TO BUILD SMMAP #
00306  M01S00305.ssuse   +++|        BEGIN
00307  M01S00306.ssuse   +++|        ITEM SMAP$NAME  C(00,00,07); # SMMAP FILE NAME #
00308  M01S00307.ssuse   +++|        ITEM SMAP$CHAR  C(00,00,05); # FIRST FIVE CHARACTERS #
00309  M01S00308.ssuse   +++|        ITEM SMAP$SMID  C(00,30,01); # SM-ID #
00310  M01S00309.ssuse   +++|        ITEM SMAP$Z     U(00,36,24) = [0];  # ZERO FILL FILE NAME #
00311  M01S00310.ssuse   +++|        END
00312  M01S00311.ssuse   +++|
00313  M01S00312.ssuse   +++|                                               CONTROL EJECT;
00314  M01S00313.ssuse   +++|
00315  M01S00314.ssuse   +++|#
00316  M01S00315.ssuse   +++|*     GET THE *AST* AND CHECK THE RETURNED ERROR STATUS.
00317  M01S00316.ssuse   +++|#
00318  M01S00317.ssuse   +++|
00319  M01S00318.ssuse   +++|      BADDR = LOC(US$ASTENT[0]);
00320  M01S00319.ssuse   +++|      CRDAST(USARG$FM[0],SUBFAM,SMID,BADDR,0,FLAG);
00321  M01S00320.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00322  M01S00321.ssuse   +++|      THEN                           # UNABLE TO GET *AST* #
00323  M01S00322.ssuse   +++|        BEGIN
00324  M01S00323.ssuse   +++|        SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
00325  M01S00324.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00326  M01S00325.ssuse   +++|        RPCLOSE(OUT$FETP);
00327  M01S00326.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00328  M01S00327.ssuse   +++|        END
00329  M01S00328.ssuse   +++|
00330  M01S00329.ssuse   +++|      P<AST> = BADDR;
00331  M01S00330.ssuse   +++|
00332  M01S00331.ssuse   +++|#
00333  M01S00332.ssuse   +++|*     PROCESS ALL *AST* AND *FCT* ENTRIES.
00334  M01S00333.ssuse   +++|#
00335  M01S00334.ssuse   +++|
00336  M01S00335.ssuse   +++|      SLOWFOR I = 16 STEP 1 UNTIL PRM$ENTRC[SMID] + 15
00337  M01S00336.ssuse   +++|      DO
00338  M01S00337.ssuse   +++|        BEGIN  # PROCESS AN *AST* AND *FCT* ENTRY #
00339  M01S00338.ssuse   +++|
00340  M01S00339.ssuse   +++|#
00341  M01S00340.ssuse   +++|*     GET AN *FCT* ENTRY AND CHECK THE RETURNED ERROR STATUS.
00342  M01S00341.ssuse   +++|#
00343  M01S00342.ssuse   +++|
00344  M01S00343.ssuse   +++|        BFADDR = LOC(US$FCTENT[0]);
00345  M01S00344.ssuse   +++|        CGETFCT(USARG$FM[0],SUBFAM,SMID,I,BFADDR,0,FLAG);
00346  M01S00345.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
00347  M01S00346.ssuse   +++|        THEN                         # UNABLE TO GET *FCT* #
00348  M01S00347.ssuse   +++|          BEGIN
00349  M01S00348.ssuse   +++|          SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
00350  M01S00349.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00351  M01S00350.ssuse   +++|          RPCLOSE(OUT$FETP);
00352  M01S00351.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00353  M01S00352.ssuse   +++|          END
00354  M01S00353.ssuse   +++|
00355  M01S00354.ssuse   +++|        P<FCT> = BFADDR;
00356  M01S00355.ssuse   +++|        GP = I / MAXGRT;             # SET GROUP INDEX #
00357  M01S00356.ssuse   +++|
00358  M01S00357.ssuse   +++|#
00359  M01S00358.ssuse   +++|*     UPDATE CUBE COUNTER AND CHECK CUBE STATUS.  IF NO CARTRIDGE
00360  M01S00359.ssuse   +++|*     ASSIGNED TO THIS CUBICLE, GET NEXT ENTRY.
00361  M01S00360.ssuse   +++|#
00362  M01S00361.ssuse   +++|
00363  M01S00362.ssuse   +++|        IF FCT$CSND[0] EQ "  "
00364  M01S00363.ssuse   +++|          OR FCT$CSNI[0] EQ 0
00365  M01S00364.ssuse   +++|        THEN                         # NO CARTRIDGE ASSIGNED TO CUBE #
00366  M01S00365.ssuse   +++|          BEGIN
00367  M01S00366.ssuse   +++|          TEST I;
00368  M01S00367.ssuse   +++|          END
00369  M01S00368.ssuse   +++|
00370  M01S00369.ssuse   +++|        GRP$LOC[GP] = GRP$LOC[GP] + 1;
00371  M01S00370.ssuse   +++|        GRP$RES[GP] = GRP$RES[GP] + 1;  # NUM CARTRIDGES IN GROUP #
00372  M01S00371.ssuse   +++|
00373  M01S00372.ssuse   +++|#
00374  M01S00373.ssuse   +++|*     UPDATE THE AVAILABLE AU FOR SMALL AND LARGE FILES.
00375  M01S00374.ssuse   +++|#
00376  M01S00375.ssuse   +++|
00377  M01S00376.ssuse   +++|        GRP$AUSF[GP] = GRP$AUSF[GP] + AST$AUSF[I];
00378  M01S00377.ssuse   +++|        GRP$AULF[GP] = GRP$AULF[GP] + AST$AULF[I];
00379  M01S00378.ssuse   +++|
00380  M01S00379.ssuse   +++|#
00381  M01S00380.ssuse   +++|*     CHECK FOR AVAILABLE OFF CARTRIDGE LINKS AND UPDATE THE COUNTER.
00382  M01S00381.ssuse   +++|#
00383  M01S00382.ssuse   +++|
00384  M01S00383.ssuse   +++|        IF NOT AST$NOCLF[I]
00385  M01S00384.ssuse   +++|        THEN                         # OFF CARTRIDGE LINKS AVAILABLE #
00386  M01S00385.ssuse   +++|          BEGIN
00387  M01S00386.ssuse   +++|          GRP$OCL[GP] = GRP$OCL[GP] + 1;
00388  M01S00387.ssuse   +++|          END
00389  M01S00388.ssuse   +++|
00390  M01S00389.ssuse   +++|#
00391  M01S00390.ssuse   +++|*     CHECK *FCT* FLAGS AND UPDATE THE APPROPRIATE COUNTERS.
00392  M01S00391.ssuse   +++|#
00393  M01S00392.ssuse   +++|
00394  M01S00393.ssuse   +++|        IF FCT$IAF[0]
00395  M01S00394.ssuse   +++|        THEN                         # INHIBIT ALLOCATION #
00396  M01S00395.ssuse   +++|          BEGIN
00397  M01S00396.ssuse   +++|          GRP$INH[GP] = GRP$INH[GP] + 1;
00398  M01S00397.ssuse   +++|          END
00399  M01S00398.ssuse   +++|
00400  M01S00399.ssuse   +++|        IF FCT$LCF[0]
00401  M01S00400.ssuse   +++|        THEN                         # CARTRIDGE LOST #
00402  M01S00401.ssuse   +++|          BEGIN
00403  M01S00402.ssuse   +++|          GRP$LOST[GP] = GRP$LOST[GP] + 1;
00404  M01S00403.ssuse   +++|          END
00405  M01S00404.ssuse   +++|
00406  M01S00405.ssuse   +++|        IF FCT$EEF[0]
00407  M01S00406.ssuse   +++|        THEN                         # EXCESSIVE ERRORS #
00408  M01S00407.ssuse   +++|          BEGIN
00409  M01S00408.ssuse   +++|          GRP$XPE[GP] = GRP$XPE[GP] + 1;
00410  M01S00409.ssuse   +++|          END
00411  M01S00410.ssuse   +++|
00412  M01S00411.ssuse   +++|        IF FCT$SEF[0]
00413  M01S00412.ssuse   +++|        THEN                         # SMMAP ERROR #
00414  M01S00413.ssuse   +++|          BEGIN
00415  M01S00414.ssuse   +++|          GRP$SE[GP] = GRP$SE[GP] + 1;
00416  M01S00415.ssuse   +++|          END
00417  M01S00416.ssuse   +++|
00418  M01S00417.ssuse   +++|        IF FCT$FCF[0]
00419  M01S00418.ssuse   +++|        THEN                         # FREE CARTRIDGE #
00420  M01S00419.ssuse   +++|          BEGIN
00421  M01S00420.ssuse   +++|          GRP$FRC[GP] = GRP$FRC[GP] + 1;
00422  M01S00421.ssuse   +++|          END
00423  M01S00422.ssuse   +++|
00424  M01S00423.ssuse   +++|#
00425  M01S00424.ssuse   +++|*     CHECK EACH AU FOR ERRORS AND AVAILABILITY.  UPDATE THE
00426  M01S00425.ssuse   +++|*     APPROPRIATE COUNTERS.
00427  M01S00426.ssuse   +++|#
00428  M01S00427.ssuse   +++|
00429  M01S00428.ssuse   +++|        SLOWFOR N = 1 STEP 1 UNTIL INAVOT
00430  M01S00429.ssuse   +++|        DO
00431  M01S00430.ssuse   +++|          BEGIN  # FOR EACH AU #
00432  M01S00431.ssuse   +++|
00433  M01S00432.ssuse   +++|#
00434  M01S00433.ssuse   +++|*     CHECK AU FLAGS, UPDATE COUNTERS IF NECESSARY.
00435  M01S00434.ssuse   +++|#
00436  M01S00435.ssuse   +++|
00437  M01S00436.ssuse   +++|          SETFCTX(N);                # SET *FWD* AND *FPS* VALUES #
00438  M01S00437.ssuse   +++|          IF FCT$AUCF(FWD,FPS) NQ 0
00439  M01S00438.ssuse   +++|          THEN                       # AU CONFLICT #
00440  M01S00439.ssuse   +++|            BEGIN
00441  M01S00440.ssuse   +++|            GRP$AUC[GP] = GRP$AUC[GP] + 1;
00442  M01S00441.ssuse   +++|            END
00443  M01S00442.ssuse   +++|
00444  M01S00443.ssuse   +++|          IF FCT$FRCF(FWD,FPS) NQ 0
00445  M01S00444.ssuse   +++|          THEN                       # FROZEN CHAIN #
00446  M01S00445.ssuse   +++|            BEGIN
00447  M01S00446.ssuse   +++|            GRP$FC[GP] = GRP$FC[GP] + 1;
00448  M01S00447.ssuse   +++|            END
00449  M01S00448.ssuse   +++|
00450  M01S00449.ssuse   +++|          IF FCT$SFF(FWD,FPS) NQ 0
00451  M01S00450.ssuse   +++|          THEN                       # START OF FRAGMENT #
00452  M01S00451.ssuse   +++|            BEGIN
00453  M01S00452.ssuse   +++|            GRP$SF[GP] = GRP$SF[GP] + 1;
00454  M01S00453.ssuse   +++|            END
00455  M01S00454.ssuse   +++|
00456  M01S00455.ssuse   +++|          IF FCT$FAUF(FWD,FPS) NQ 0
00457  M01S00456.ssuse   +++|          THEN                       # FLAWED AU #
00458  M01S00457.ssuse   +++|            BEGIN
00459  M01S00458.ssuse   +++|            IF FCT$FBF(FWD,FPS) NQ 0
00460  M01S00459.ssuse   +++|            THEN                     # FLAWED AND ALLOCATED #
00461  M01S00460.ssuse   +++|              BEGIN
00462  M01S00461.ssuse   +++|              GRP$FB[GP] = GRP$FB[GP] + 1;
00463  M01S00462.ssuse   +++|              END
00464  M01S00463.ssuse   +++|
00465  M01S00464.ssuse   +++|            ELSE                     # FLAWED AND UNALLOCATED #
00466  M01S00465.ssuse   +++|              BEGIN
00467  M01S00466.ssuse   +++|              GRP$FA[GP] = GRP$FA[GP] +1;
00468  M01S00467.ssuse   +++|              END
00469  M01S00468.ssuse   +++|
00470  M01S00469.ssuse   +++|            END
00471  M01S00470.ssuse   +++|
00472  M01S00471.ssuse   +++|          END  # FOR EACH AU #
00473  M01S00472.ssuse   +++|
00474  M01S00473.ssuse   +++|        END  # PROCESS AN *AST* AND AN *FCT* ENTRY #
00475  M01S00474.ssuse   +++|
00476  M01S00475.ssuse   +++|#
00477  M01S00476.ssuse   +++|*     SEARCH THE SMMAP FOR ANY EMPTY CUBICLES ASSIGNED
00478  M01S00477.ssuse   +++|*     TO THIS SUBFAMILY.
00479  M01S00478.ssuse   +++|#
00480  M01S00479.ssuse   +++|
00481  M01S00480.ssuse   +++|      PFP$WRD0[0] = 0;
00482  M01S00481.ssuse   +++|      PFP$FAM[0] = DEF$FAM;
00483  M01S00482.ssuse   +++|      PFP$UI[0] = DEF$UI;
00484  M01S00483.ssuse   +++|      PFP$FG1[0] = TRUE;
00485  M01S00484.ssuse   +++|      PFP$FG4[0] = TRUE;
00486  M01S00485.ssuse   +++|      SETPFP(PFP[0]);
00487  M01S00486.ssuse   +++|      IF PFP$STAT NQ 0
00488  M01S00487.ssuse   +++|      THEN                           # FAMILY NOT FOUND #
00489  M01S00488.ssuse   +++|        BEGIN
00490  M01S00489.ssuse   +++|        SSMSG$LINE[0] = " FAMILY NOT FOUND.";
00491  M01S00490.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00492  M01S00491.ssuse   +++|        RPCLOSE(OUT$FETP);
00493  M01S00492.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00494  M01S00493.ssuse   +++|        END
00495  M01S00494.ssuse   +++|
00496  M01S00495.ssuse   +++|
00497  M01S00496.ssuse   +++|      SMAP$SMID[0] = SMID;
00498  M01S00497.ssuse   +++|      SMAP$CHAR[0] = SMMAP;
00499  M01S00498.ssuse   +++|
00500  M01S00499.ssuse   +++|#
00501  M01S00500.ssuse   +++|*     OPEN THE SMMAP AND CHECK THE RETURNED ERROR STATUS.
00502  M01S00501.ssuse   +++|#
00503  M01S00502.ssuse   +++|
00504  M01S00503.ssuse   +++|      MOPEN(SMID,SMAP$NAME[0],"RM",FLAG);
00505  M01S00504.ssuse   +++|      IF FLAG EQ CMASTAT"NOERR"
00506  M01S00505.ssuse   +++|      THEN
00507  M01S00506.ssuse   +++|        BEGIN
00508  M01S00507.ssuse   +++|        LOFPROC(SMAP$NAME[0]);       # ADD LFN TO LIST OF FILES #
00509  M01S00508.ssuse   +++|        END
00510  M01S00509.ssuse   +++|
00511  M01S00510.ssuse   +++|      SM$ADDR = LOC(MAPBUFR[0]);
00512  M01S00511.ssuse   +++|      P<SMUMAP> = SM$ADDR;
00513  M01S00512.ssuse   +++|
00514  M01S00513.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00515  M01S00514.ssuse   +++|      THEN
00516  M01S00515.ssuse   +++|        BEGIN  # SMMAP NOT OPENED SUCCESSFULLY #
00517  M01S00516.ssuse   +++|        IF FLAG EQ CMASTAT"CIOERR"
00518  M01S00517.ssuse   +++|        THEN
00519  M01S00518.ssuse   +++|          BEGIN
00520  M01S00519.ssuse   +++|          SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
00521  M01S00520.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00522  M01S00521.ssuse   +++|          RPCLOSE(OUT$FETP);
00523  M01S00522.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00524  M01S00523.ssuse   +++|          END
00525  M01S00524.ssuse   +++|
00526  M01S00525.ssuse   +++|        IF FLAG EQ CMASTAT"INTLK"  ##
00527  M01S00526.ssuse   +++|          OR FLAG EQ CMASTAT"ATTERR"
00528  M01S00527.ssuse   +++|        THEN
00529  M01S00528.ssuse   +++|          BEGIN
00530  M01S00529.ssuse   +++|          SSMSG$LINE[0] = " UNABLE TO OPEN SMMAP.";
00531  M01S00530.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00532  M01S00531.ssuse   +++|          RPCLOSE(OUT$FETP);
00533  M01S00532.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00534  M01S00533.ssuse   +++|          END
00535  M01S00534.ssuse   +++|
00536  M01S00535.ssuse   +++|        ELSE
00537  M01S00536.ssuse   +++|          BEGIN
00538  M01S00537.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
00539  M01S00538.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
00540  M01S00539.ssuse   +++|          RPCLOSE(OUT$FETP);
00541  M01S00540.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00542  M01S00541.ssuse   +++|          END
00543  M01S00542.ssuse   +++|
00544  M01S00543.ssuse   +++|        END  # SMMAP NOT OPENED SUCCESSFULLY #
00545  M01S00544.ssuse   +++|
00546  M01S00545.ssuse   +++|#
00547  M01S00546.ssuse   +++|*     PROCESS EACH Y,Z PAIR.
00548  M01S00547.ssuse   +++|#
00549  M01S00548.ssuse   +++|
00550  M01S00549.ssuse   +++|      SLOWFOR Y = 0 STEP 1 UNTIL MAX$Y
00551  M01S00550.ssuse   +++|      DO
00552  M01S00551.ssuse   +++|        BEGIN  # PROCESS EACH Y COORDINATE #
00553  M01S00552.ssuse   +++|
00554  M01S00553.ssuse   +++|        SLOWFOR Z = 0 STEP 1 UNTIL MAX$Z
00555  M01S00554.ssuse   +++|        DO
00556  M01S00555.ssuse   +++|          BEGIN  # PROCESS EACH Z COORDINATE #
00557  M01S00556.ssuse   +++|
00558  M01S00557.ssuse   +++|#
00559  M01S00558.ssuse   +++|*     DO NOT PROCESS THE COORDINATES CONTAINING THE DRD-S
00560  M01S00559.ssuse   +++|*     OR THE ENTRY-EXIT TRAY.
00561  M01S00560.ssuse   +++|#
00562  M01S00561.ssuse   +++|
00563  M01S00562.ssuse   +++|          IF (Z LQ 1               ##
00564  M01S00563.ssuse   +++|            AND (Y LQ 15 AND Y GQ 11))  ##
00565  M01S00564.ssuse   +++|              OR Z EQ Z$NO$CUBE
00566  M01S00565.ssuse   +++|          THEN
00567  M01S00566.ssuse   +++|            BEGIN
00568  M01S00567.ssuse   +++|            TEST Z;
00569  M01S00568.ssuse   +++|            END
00570  M01S00569.ssuse   +++|
00571  M01S00570.ssuse   +++|#
00572  M01S00571.ssuse   +++|*     CALCULATE THE ORDINAL OF THE SMMAP ENTRY.
00573  M01S00572.ssuse   +++|#
00574  M01S00573.ssuse   +++|
00575  M01S00574.ssuse   +++|          MAP$ORD = MAXORD - Z - (Y * 16);
00576  M01S00575.ssuse   +++|
00577  M01S00576.ssuse   +++|#
00578  M01S00577.ssuse   +++|*     GET THE SMMAP ENTRY AND CHECK THE RETURNED ERROR STATUS.
00579  M01S00578.ssuse   +++|#
00580  M01S00579.ssuse   +++|
00581  M01S00580.ssuse   +++|          MGETENT(SMID,MAP$ORD,SM$ADDR,FLAG);
00582  M01S00581.ssuse   +++|          IF FLAG NQ CMASTAT"NOERR"
00583  M01S00582.ssuse   +++|          THEN
00584  M01S00583.ssuse   +++|            BEGIN  # CHECK FOR TYPE OF ERROR #
00585  M01S00584.ssuse   +++|            IF FLAG EQ CMASTAT"CIOERR"
00586  M01S00585.ssuse   +++|            THEN
00587  M01S00586.ssuse   +++|              BEGIN
00588  M01S00587.ssuse   +++|              SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
00589  M01S00588.ssuse   +++|              MESSAGE(SSMSG$BUF[0],SYSUDF1);
00590  M01S00589.ssuse   +++|              RPCLOSE(OUT$FETP);
00591  M01S00590.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00592  M01S00591.ssuse   +++|              END
00593  M01S00592.ssuse   +++|
00594  M01S00593.ssuse   +++|            ELSE
00595  M01S00594.ssuse   +++|              BEGIN
00596  M01S00595.ssuse   +++|              SSMSG$PROC[0] = PROCNAME;
00597  M01S00596.ssuse   +++|              MESSAGE(SSMSG[0],SYSUDF1);
00598  M01S00597.ssuse   +++|              RPCLOSE(OUT$FETP);
00599  M01S00598.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00600  M01S00599.ssuse   +++|              END
00601  M01S00600.ssuse   +++|
00602  M01S00601.ssuse   +++|            END  # CHECK FOR TYPE OF ERROR #
00603  M01S00602.ssuse   +++|
00604  M01S00603.ssuse   +++|#
00605  M01S00604.ssuse   +++|*     SEARCH FOR EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY.
00606  M01S00605.ssuse   +++|#
00607  M01S00606.ssuse   +++|
00608  M01S00607.ssuse   +++|          IF CM$CODE[0] NQ CUBSTAT"SUBFAM"
00609  M01S00608.ssuse   +++|          THEN                       # NOT IN ANY SUBFAMILY #
00610  M01S00609.ssuse   +++|            BEGIN
00611  M01S00610.ssuse   +++|            TEST Z;
00612  M01S00611.ssuse   +++|            END
00613  M01S00612.ssuse   +++|
00614  M01S00613.ssuse   +++|          IF CM$FMLYNM[0] EQ USARG$FM[0]    ##
00615  M01S00614.ssuse   +++|            AND CM$SUB[0] EQ SUBFAM         ##
00616  M01S00615.ssuse   +++|            AND CM$FCTORD[0] EQ 0
00617  M01S00616.ssuse   +++|          THEN                       # FOUND EMPTY CUBICLE #
00618  M01S00617.ssuse   +++|            BEGIN
00619  M01S00618.ssuse   +++|            GRP$LOC[0] = GRP$LOC[0] + 1;
00620  M01S00619.ssuse   +++|            END
00621  M01S00620.ssuse   +++|
00622  M01S00621.ssuse   +++|          END  # PROCESS EACH Z COORDINATE #
00623  M01S00622.ssuse   +++|
00624  M01S00623.ssuse   +++|        END  # PROCESS EACH Y COORDINATE #
00625  M01S00624.ssuse   +++|
00626  M01S00625.ssuse   +++|#
00627  M01S00626.ssuse   +++|*     CLOSE THE SMMAP.
00628  M01S00627.ssuse   +++|#
00629  M01S00628.ssuse   +++|
00630  M01S00629.ssuse   +++|      MCLOSE(SMID,FLAG);
00631  M01S00630.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00632  M01S00631.ssuse   +++|      THEN
00633  M01S00632.ssuse   +++|        BEGIN
00634  M01S00633.ssuse   +++|        SSMSG$PROC[0] = PROCNAME;
00635  M01S00634.ssuse   +++|        MESSAGE(SSMSG[0],SYSUDF1);
00636  M01S00635.ssuse   +++|        RPCLOSE(OUT$FETP);
00637  M01S00636.ssuse   +++|        RESTPFP(PFP$ABORT);
00638  M01S00637.ssuse   +++|        END
00639  M01S00638.ssuse   +++|
00640  M01S00639.ssuse   +++|      END  # USANALS #
00641  M01S00640.ssuse   +++|
00642  M01S00641.ssuse   +++|    TERM
00643  M01S00642.ssuse   +++|PROC USBASLN((SUBFAM),(SM));
00644  M01S00643.ssuse   +++|# TITLE USBASLN - PRINTS DETAIL LINES FOR THE BASIC REPORT.           #
00645  M01S00644.ssuse   +++|
00646  M01S00645.ssuse   +++|      BEGIN  # USBASLN #
00647  M01S00646.ssuse   +++|
00648  M01S00647.ssuse   +++|#
00649  M01S00648.ssuse   +++|**    USBASLN - PRINTS DETAIL LINES FOR THE BASIC REPORT.
00650  M01S00649.ssuse   +++|*
00651  M01S00650.ssuse   +++|*     THIS PROCEDURE PRINTS OUT THE BASIC USAGE REPORT INFORMATION
00652  M01S00651.ssuse   +++|*     TO THE REPORT FILE.
00653  M01S00652.ssuse   +++|*
00654  M01S00653.ssuse   +++|*     PROC USBASLN((SUBFAM),(SM)).
00655  M01S00654.ssuse   +++|*
00656  M01S00655.ssuse   +++|*     ENTRY.    (SUBFAM) = SUBFAMILY IDENTIFIER.
00657  M01S00656.ssuse   +++|*               (SM)     = SM IDENTIFIER.
00658  M01S00657.ssuse   +++|*
00659  M01S00658.ssuse   +++|*     EXIT      BASIC REPORT LINES HAVE BEEN WRITTEN TO
00660  M01S00659.ssuse   +++|*               THE REPORT FILE.
00661  M01S00660.ssuse   +++|*
00662  M01S00661.ssuse   +++|*     NOTES     PROC *USBASLN* CALLS *XCDD* TO CONVERT THE
00663  M01S00662.ssuse   +++|*               GROUP TOTALS IN THE *GRP$TOT* ARRAY FROM INTEGER
00664  M01S00663.ssuse   +++|*               TO DISPLAY CODE.  THESE VALUES ARE THEN DISPLAYED
00665  M01S00664.ssuse   +++|*               IN THE REPORT FILE.  TOTALS ARE ACCUMULATED FOR
00666  M01S00665.ssuse   +++|*               THE SM AND SUBFAMILY.
00667  M01S00666.ssuse   +++|#
00668  M01S00667.ssuse   +++|
00669  M01S00668.ssuse   +++|#
00670  M01S00669.ssuse   +++|****  PROC USBASLN - XREF LIST BEGIN.
00671  M01S00670.ssuse   +++|#
00672  M01S00671.ssuse   +++|
00673  M01S00672.ssuse   +++|      XREF
00674  M01S00673.ssuse   +++|        BEGIN
00675  M01S00674.ssuse   +++|        PROC BZFILL;                 # BLANK FILL CHARACTERS #
00676  M01S00675.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
00677  M01S00676.ssuse   +++|        PROC RPLINE;                 # WRITES A LINE TO REPORT FILE #
00678  M01S00677.ssuse   +++|        PROC RPSPACE;                # PUT BLANK LINE ON REPORT FILE #
00679  M01S00678.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGERS TO DISPLAY #
00680  M01S00679.ssuse   +++|        END
00681  M01S00680.ssuse   +++|
00682  M01S00681.ssuse   +++|#
00683  M01S00682.ssuse   +++|****  PROC USBASLN - XREF LIST END.
00684  M01S00683.ssuse   +++|#
00685  M01S00684.ssuse   +++|
00686  M01S00685.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00687  M01S00686.ssuse   +++|*CALL COMBFAS
00688  M01S00687.ssuse   +++|*CALL COMBBZF
00689  M01S00688.ssuse   +++|*CALL COMBMCT
00690  M01S00689.ssuse   +++|*CALL COMXMSC
00691  M01S00690.ssuse   +++|*CALL COMTOUT
00692  M01S00691.ssuse   +++|*CALL COMTUSE
00693  M01S00692.ssuse   +++|*CALL COMTUSP
00694  M01S00693.ssuse   +++|
00695  M01S00694.ssuse   +++|      ITEM GP         I;             # LOOP VARIABLE #
00696  M01S00695.ssuse   +++|      ITEM LN$CNT     I;             # LINE COUNT #
00697  M01S00696.ssuse   +++|      ITEM SM         I;             # SM IDENTIFIER #
00698  M01S00697.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
00699  M01S00698.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
00700  M01S00699.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
00701  M01S00700.ssuse   +++|      ITEM TOT        I;             # ARRAY INDEX FOR TOTALS #
00702  M01S00701.ssuse   +++|                                               CONTROL EJECT;
00703  M01S00702.ssuse   +++|
00704  M01S00703.ssuse   +++|      TEMP$FAM = USARG$FM[0];
00705  M01S00704.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
00706  M01S00705.ssuse   +++|      TEMP$SM = SM;
00707  M01S00706.ssuse   +++|
00708  M01S00707.ssuse   +++|#
00709  M01S00708.ssuse   +++|*     WRITE HEADER TO REPORT FILE IF NEW PAGE.
00710  M01S00709.ssuse   +++|#
00711  M01S00710.ssuse   +++|
00712  M01S00711.ssuse   +++|      IF (LN$CNT / MAX$LN) * MAX$LN EQ LN$CNT
00713  M01S00712.ssuse   +++|      THEN                           # PAGE EJECT AND PRINT HEADER #
00714  M01S00713.ssuse   +++|        BEGIN
00715  M01S00714.ssuse   +++|        RPEJECT(OUT$FETP);
00716  M01S00715.ssuse   +++|        RPLINE(OUT$FETP,"SSUSE BASIC REPORT",5,18,1);
00717  M01S00716.ssuse   +++|        RPLINE(OUT$FETP,"FAMILY = ",35,9,1);
00718  M01S00717.ssuse   +++|        RPLINE(OUT$FETP,TEMP$FAM,44,7,0);
00719  M01S00718.ssuse   +++|
00720  M01S00719.ssuse   +++|#
00721  M01S00720.ssuse   +++|*     WRITE NOTES TO REPORT FILE.
00722  M01S00721.ssuse   +++|#
00723  M01S00722.ssuse   +++|
00724  M01S00723.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00725  M01S00724.ssuse   +++|        RPLINE(OUT$FETP,"CUBE = CUBICLES",5,15,1);
00726  M01S00725.ssuse   +++|        RPLINE(OUT$FETP,"CARTRIDGE FLAGS",36,15,1);
00727  M01S00726.ssuse   +++|        RPLINE(OUT$FETP,"AU FLAGS",86,8,0);
00728  M01S00727.ssuse   +++|        RPLINE(OUT$FETP,"CART = CARTRIDGES",5,17,1);
00729  M01S00728.ssuse   +++|        RPLINE(OUT$FETP,"M = MISSING",37,11,1);
00730  M01S00729.ssuse   +++|        RPLINE(OUT$FETP,"FA = FLAWED AND ALLOCATED",87,25,0);
00731  M01S00730.ssuse   +++|        RPLINE(OUT$FETP,"I = INHIBIT ALLOCATION",37,22,1);
00732  M01S00731.ssuse   +++|        RPLINE(OUT$FETP,"FU = FLAWED AND UNALLOCATED",87,27,0);
00733  M01S00732.ssuse   +++|        RPLINE(OUT$FETP,"** = SUBFAMILY TOTAL",5,20,1);
00734  M01S00733.ssuse   +++|        RPLINE(OUT$FETP,"F = FREE CARTRIDGE",37,18,1);
00735  M01S00734.ssuse   +++|        RPLINE(OUT$FETP,"SF = START OF FRAGMENT",87,22,0);
00736  M01S00735.ssuse   +++|        RPLINE(OUT$FETP,"-  = UNASSIGNED GROUP",5,21,1);
00737  M01S00736.ssuse   +++|        RPLINE(OUT$FETP,"L = OFF CARTRIDGE LINKS AVAILABLE",37,33,1);
00738  M01S00737.ssuse   +++|        RPLINE(OUT$FETP,"FC = FROZEN CHAIN",87,17,0);
00739  M01S00738.ssuse   +++|        RPLINE(OUT$FETP,"P = EXCESSIVE PARITY ERRORS",37,27,1);
00740  M01S00739.ssuse   +++|        RPLINE(OUT$FETP,"AC = AU CONFLICT",87,16,0);
00741  M01S00740.ssuse   +++|        RPLINE(OUT$FETP,"E = MAP ERROR(AS DETECTED BY SSVAL)",37,36,0);
00742  M01S00741.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00743  M01S00742.ssuse   +++|
00744  M01S00743.ssuse   +++|#
00745  M01S00744.ssuse   +++|*     WRITE COLUMN HEADINGS TO REPORT FILE.
00746  M01S00745.ssuse   +++|#
00747  M01S00746.ssuse   +++|
00748  M01S00747.ssuse   +++|        RPLINE(OUT$FETP,"----AVAILABLE----",24,17,1);
00749  M01S00748.ssuse   +++|        RPLINE(OUT$FETP,"-----NUMBER CARTRIDGES FLAGGED----",43,34,1);
00750  M01S00749.ssuse   +++|        RPLINE(OUT$FETP,"-------------NUMBER AU FLAGGED",81,30,1);
00751  M01S00750.ssuse   +++|        RPLINE(OUT$FETP,"-------------",111,13,0);
00752  M01S00751.ssuse   +++|        RPLINE(OUT$FETP,"SUB SM GR",1,9,1);
00753  M01S00752.ssuse   +++|        RPLINE(OUT$FETP,"CUBE  CART",12,10,1);
00754  M01S00753.ssuse   +++|        RPLINE(OUT$FETP,"AU        AU",26,12,1);
00755  M01S00754.ssuse   +++|        RPLINE(OUT$FETP,"M     I     F     L     P     E",46,31,1);
00756  M01S00755.ssuse   +++|        RPLINE(OUT$FETP,"FA       FU",86,11,1);
00757  M01S00756.ssuse   +++|        RPLINE(OUT$FETP,"SF       FC       AC",104,20,0);
00758  M01S00757.ssuse   +++|        RPLINE(OUT$FETP,"(SMALL)   (LARGE)",24,17,0);
00759  M01S00758.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00760  M01S00759.ssuse   +++|        LN$CNT = 16;
00761  M01S00760.ssuse   +++|        END
00762  M01S00761.ssuse   +++|
00763  M01S00762.ssuse   +++|#
00764  M01S00763.ssuse   +++|*     SET INDEX TO ACCUMULATE TOTALS.
00765  M01S00764.ssuse   +++|#
00766  M01S00765.ssuse   +++|
00767  M01S00766.ssuse   +++|      TOT = MAXGP + 1;
00768  M01S00767.ssuse   +++|
00769  M01S00768.ssuse   +++|#
00770  M01S00769.ssuse   +++|*     CONVERT THE TOTALS FOR EACH GROUP TO DISPLAY CODE AND WRITE
00771  M01S00770.ssuse   +++|*     THEM TO THE REPORT FILE.  THE FIRST TIME THROUGH (GP = 0)
00772  M01S00771.ssuse   +++|*     THE NUMBER OF EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY WILL
00773  M01S00772.ssuse   +++|*     BE PRINTED.  THE LAST TIME THROUGH (GP = MAXGP + 1) THE SM
00774  M01S00773.ssuse   +++|*     TOTALS WILL BE PRINTED.
00775  M01S00774.ssuse   +++|#
00776  M01S00775.ssuse   +++|
00777  M01S00776.ssuse   +++|      SLOWFOR GP = 0 STEP 1 UNTIL MAXGP + 1
00778  M01S00777.ssuse   +++|      DO
00779  M01S00778.ssuse   +++|        BEGIN  # FOR EACH GROUP #
00780  M01S00779.ssuse   +++|
00781  M01S00780.ssuse   +++|#
00782  M01S00781.ssuse   +++|*     WRITE GROUP SUBTOTALS TO REPORT FILE.  IF NO CUBICLES ARE
00783  M01S00782.ssuse   +++|*     ASSIGNED TO THIS GROUP, PROCESS THE NEXT GROUP.
00784  M01S00783.ssuse   +++|#
00785  M01S00784.ssuse   +++|
00786  M01S00785.ssuse   +++|        IF GP EQ MAXGP + 1
00787  M01S00786.ssuse   +++|        THEN                         # PRINT TOTAL FOR ALL GROUPS #
00788  M01S00787.ssuse   +++|          BEGIN
00789  M01S00788.ssuse   +++|          CHAR$10[0] = XCDD(SUBFAM);
00790  M01S00789.ssuse   +++|          RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
00791  M01S00790.ssuse   +++|          RPLINE(OUT$FETP,TEMP$SM,5,1,1);
00792  M01S00791.ssuse   +++|          RPLINE(OUT$FETP,"**",8,2,1);
00793  M01S00792.ssuse   +++|          END
00794  M01S00793.ssuse   +++|
00795  M01S00794.ssuse   +++|        ELSE                         # PRINT ONE GROUP AT A TIME #
00796  M01S00795.ssuse   +++|          BEGIN
00797  M01S00796.ssuse   +++|          IF GRP$LOC[GP] EQ 0
00798  M01S00797.ssuse   +++|          THEN                       # NO CUBICLES IN THIS GROUP #
00799  M01S00798.ssuse   +++|            BEGIN
00800  M01S00799.ssuse   +++|            TEST GP;
00801  M01S00800.ssuse   +++|            END
00802  M01S00801.ssuse   +++|
00803  M01S00802.ssuse   +++|          CHAR$10[0] = XCDD(SUBFAM);
00804  M01S00803.ssuse   +++|          RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
00805  M01S00804.ssuse   +++|          RPLINE(OUT$FETP,TEMP$SM,5,1,1);
00806  M01S00805.ssuse   +++|          IF GP EQ 0
00807  M01S00806.ssuse   +++|          THEN
00808  M01S00807.ssuse   +++|            BEGIN
00809  M01S00808.ssuse   +++|            RPLINE(OUT$FETP,"-",9,1,1);
00810  M01S00809.ssuse   +++|            END
00811  M01S00810.ssuse   +++|
00812  M01S00811.ssuse   +++|          ELSE
00813  M01S00812.ssuse   +++|            BEGIN
00814  M01S00813.ssuse   +++|            CHAR$10[0] = XCDD(GP);
00815  M01S00814.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],8,2,1);
00816  M01S00815.ssuse   +++|            END
00817  M01S00816.ssuse   +++|
00818  M01S00817.ssuse   +++|          END
00819  M01S00818.ssuse   +++|
00820  M01S00819.ssuse   +++|#
00821  M01S00820.ssuse   +++|*     LIST THE NUMBER OF CUBICLES ASSIGNED TO A GROUP.
00822  M01S00821.ssuse   +++|#
00823  M01S00822.ssuse   +++|
00824  M01S00823.ssuse   +++|        CHAR$10[0] = XCDD(GRP$LOC[GP]);
00825  M01S00824.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
00826  M01S00825.ssuse   +++|
00827  M01S00826.ssuse   +++|#
00828  M01S00827.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES IN A GROUP.
00829  M01S00828.ssuse   +++|#
00830  M01S00829.ssuse   +++|
00831  M01S00830.ssuse   +++|        CHAR$10[0] = XCDD(GRP$RES[GP]);
00832  M01S00831.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
00833  M01S00832.ssuse   +++|
00834  M01S00833.ssuse   +++|#
00835  M01S00834.ssuse   +++|*     LIST THE NUMBER OF AVAILABLE AU FOR SMALL AND LARGE FILES.
00836  M01S00835.ssuse   +++|#
00837  M01S00836.ssuse   +++|
00838  M01S00837.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AUSF[GP]);
00839  M01S00838.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
00840  M01S00839.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AULF[GP]);
00841  M01S00840.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
00842  M01S00841.ssuse   +++|
00843  M01S00842.ssuse   +++|#
00844  M01S00843.ssuse   +++|*     LIST THE NUMBER OF LOST CARTRIDGES.
00845  M01S00844.ssuse   +++|#
00846  M01S00845.ssuse   +++|
00847  M01S00846.ssuse   +++|        CHAR$10[0] = XCDD(GRP$LOST[GP]);
00848  M01S00847.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
00849  M01S00848.ssuse   +++|
00850  M01S00849.ssuse   +++|#
00851  M01S00850.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH THE INHIBIT FLAG SET.
00852  M01S00851.ssuse   +++|#
00853  M01S00852.ssuse   +++|
00854  M01S00853.ssuse   +++|        CHAR$10[0] = XCDD(GRP$INH[GP]);
00855  M01S00854.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
00856  M01S00855.ssuse   +++|
00857  M01S00856.ssuse   +++|#
00858  M01S00857.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH FREE CARTRIDGE FLAG SET.
00859  M01S00858.ssuse   +++|#
00860  M01S00859.ssuse   +++|
00861  M01S00860.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FRC[GP]);
00862  M01S00861.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
00863  M01S00862.ssuse   +++|
00864  M01S00863.ssuse   +++|#
00865  M01S00864.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH AVAILABLE OFF-CARTRIDGE LINKS.
00866  M01S00865.ssuse   +++|#
00867  M01S00866.ssuse   +++|
00868  M01S00867.ssuse   +++|        CHAR$10[0] = XCDD(GRP$OCL[GP]);
00869  M01S00868.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
00870  M01S00869.ssuse   +++|
00871  M01S00870.ssuse   +++|#
00872  M01S00871.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH EXCESSIVE PARITY ERRORS.
00873  M01S00872.ssuse   +++|#
00874  M01S00873.ssuse   +++|
00875  M01S00874.ssuse   +++|        CHAR$10[0] = XCDD(GRP$XPE[GP]);
00876  M01S00875.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
00877  M01S00876.ssuse   +++|        CHAR$10[0] = XCDD(GRP$SE[GP]);
00878  M01S00877.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
00879  M01S00878.ssuse   +++|
00880  M01S00879.ssuse   +++|#
00881  M01S00880.ssuse   +++|*     LIST THE NUMBER OF FLAWED AND ALLOCATED AU.
00882  M01S00881.ssuse   +++|#
00883  M01S00882.ssuse   +++|
00884  M01S00883.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FB[GP]);
00885  M01S00884.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
00886  M01S00885.ssuse   +++|
00887  M01S00886.ssuse   +++|#
00888  M01S00887.ssuse   +++|*     LIST THE NUMBER OF FLAWED AND UNALLOCATED AU.
00889  M01S00888.ssuse   +++|#
00890  M01S00889.ssuse   +++|
00891  M01S00890.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FA[GP]);
00892  M01S00891.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
00893  M01S00892.ssuse   +++|
00894  M01S00893.ssuse   +++|#
00895  M01S00894.ssuse   +++|*     LIST THE NUMBER OF START OF FRAGMENT AU.
00896  M01S00895.ssuse   +++|#
00897  M01S00896.ssuse   +++|
00898  M01S00897.ssuse   +++|        CHAR$10[0] = XCDD(GRP$SF[GP]);
00899  M01S00898.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
00900  M01S00899.ssuse   +++|
00901  M01S00900.ssuse   +++|#
00902  M01S00901.ssuse   +++|*     LIST THE NUMBER OF FROZEN CHAIN AU.
00903  M01S00902.ssuse   +++|#
00904  M01S00903.ssuse   +++|
00905  M01S00904.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FC[GP]);
00906  M01S00905.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
00907  M01S00906.ssuse   +++|
00908  M01S00907.ssuse   +++|#
00909  M01S00908.ssuse   +++|*     LIST THE NUMBER OF AU WITH ALLOCATION CONFLICT.
00910  M01S00909.ssuse   +++|#
00911  M01S00910.ssuse   +++|
00912  M01S00911.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AUC[GP]);
00913  M01S00912.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
00914  M01S00913.ssuse   +++|        LN$CNT = LN$CNT + 1;
00915  M01S00914.ssuse   +++|
00916  M01S00915.ssuse   +++|#
00917  M01S00916.ssuse   +++|*     DO NOT ACCUMULATE TOTALS THE LAST TIME THROUGH.
00918  M01S00917.ssuse   +++|#
00919  M01S00918.ssuse   +++|
00920  M01S00919.ssuse   +++|        IF GP EQ MAXGP + 1
00921  M01S00920.ssuse   +++|        THEN                         # DO NOT ADD TO TOTALS #
00922  M01S00921.ssuse   +++|          BEGIN
00923  M01S00922.ssuse   +++|          RPSPACE(OUT$FETP,SP"SPACE",1);
00924  M01S00923.ssuse   +++|          LN$CNT = LN$CNT + 1;
00925  M01S00924.ssuse   +++|          TEST GP;
00926  M01S00925.ssuse   +++|          END
00927  M01S00926.ssuse   +++|
00928  M01S00927.ssuse   +++|#
00929  M01S00928.ssuse   +++|*     TOTALS FOR ALL GROUPS IN A SM PER SUBFAMILY ARE ACCUMULATED
00930  M01S00929.ssuse   +++|*     UNDER THE MAXGP+1 INDEX OF THE GROUP TOTALS ARRAY.
00931  M01S00930.ssuse   +++|*     *GRP$TOT[MAXGP+1]*.
00932  M01S00931.ssuse   +++|#
00933  M01S00932.ssuse   +++|
00934  M01S00933.ssuse   +++|        GRP$AUC[TOT] = GRP$AUC[TOT] + GRP$AUC[GP];
00935  M01S00934.ssuse   +++|        GRP$AULF[TOT] = GRP$AULF[TOT] + GRP$AULF[GP];
00936  M01S00935.ssuse   +++|        GRP$AUSF[TOT] = GRP$AUSF[TOT] + GRP$AUSF[GP];
00937  M01S00936.ssuse   +++|        GRP$FA[TOT] = GRP$FA[TOT] + GRP$FA[GP];
00938  M01S00937.ssuse   +++|        GRP$FB[TOT] = GRP$FB[TOT] + GRP$FB[GP];
00939  M01S00938.ssuse   +++|        GRP$FC[TOT] = GRP$FC[TOT] + GRP$FC[GP];
00940  M01S00939.ssuse   +++|        GRP$FRC[TOT] = GRP$FRC[TOT] + GRP$FRC[GP];
00941  M01S00940.ssuse   +++|        GRP$INH[TOT] = GRP$INH[TOT] + GRP$INH[GP];
00942  M01S00941.ssuse   +++|        GRP$LOC[TOT] = GRP$LOC[TOT] + GRP$LOC[GP];
00943  M01S00942.ssuse   +++|        GRP$LOST[TOT] = GRP$LOST[TOT] + GRP$LOST[GP];
00944  M01S00943.ssuse   +++|        GRP$OCL[TOT] = GRP$OCL[TOT] + GRP$OCL[GP];
00945  M01S00944.ssuse   +++|        GRP$RES[TOT] = GRP$RES[TOT] + GRP$RES[GP];
00946  M01S00945.ssuse   +++|        GRP$SE[TOT] = GRP$SE[TOT] + GRP$SE[GP];
00947  M01S00946.ssuse   +++|        GRP$SF[TOT] = GRP$SF[TOT] + GRP$SF[GP];
00948  M01S00947.ssuse   +++|        GRP$XPE[TOT] = GRP$XPE[TOT] + GRP$XPE[GP];
00949  M01S00948.ssuse   +++|        END  # FOR EACH GROUP #
00950  M01S00949.ssuse   +++|
00951  M01S00950.ssuse   +++|#
00952  M01S00951.ssuse   +++|*     ACCUMULATE SM TOTALS.
00953  M01S00952.ssuse   +++|#
00954  M01S00953.ssuse   +++|
00955  M01S00954.ssuse   +++|      SM$AUC[SM] = SM$AUC[SM] + GRP$AUC[TOT];
00956  M01S00955.ssuse   +++|      SM$AULF[SM] = SM$AULF[SM] + GRP$AULF[TOT];
00957  M01S00956.ssuse   +++|      SM$AUSF[SM] = SM$AUSF[SM] + GRP$AUSF[TOT];
00958  M01S00957.ssuse   +++|      SM$FA[SM] = SM$FA[SM] + GRP$FA[TOT];
00959  M01S00958.ssuse   +++|      SM$FB[SM] = SM$FB[SM] + GRP$FB[TOT];
00960  M01S00959.ssuse   +++|      SM$FC[SM] = SM$FC[SM] + GRP$FC[TOT];
00961  M01S00960.ssuse   +++|      SM$FRC[SM] = SM$FRC[SM] + GRP$FRC[TOT];
00962  M01S00961.ssuse   +++|      SM$INH[SM] = SM$INH[SM] + GRP$INH[TOT];
00963  M01S00962.ssuse   +++|      SM$LOC[SM] = SM$LOC[SM] + GRP$LOC[TOT];
00964  M01S00963.ssuse   +++|      SM$LOST[SM] = SM$LOST[SM] + GRP$LOST[TOT];
00965  M01S00964.ssuse   +++|      SM$OCL[SM] = SM$OCL[SM] + GRP$OCL[TOT];
00966  M01S00965.ssuse   +++|      SM$RES[SM] = SM$RES[SM] + GRP$RES[TOT];
00967  M01S00966.ssuse   +++|      SM$SE[SM] = SM$SE[SM] + GRP$SE[TOT];
00968  M01S00967.ssuse   +++|      SM$SF[SM] = SM$SF[SM] + GRP$SF[TOT];
00969  M01S00968.ssuse   +++|      SM$XPE[SM] = SM$XPE[SM] + GRP$XPE[TOT];
00970  M01S00969.ssuse   +++|
00971  M01S00970.ssuse   +++|#
00972  M01S00971.ssuse   +++|*     ACCUMULATE SUBFAMILY TOTALS.
00973  M01S00972.ssuse   +++|#
00974  M01S00973.ssuse   +++|
00975  M01S00974.ssuse   +++|      SF$AUC[SUBFAM] = SF$AUC[SUBFAM] + GRP$AUC[TOT];
00976  M01S00975.ssuse   +++|      SF$AULF[SUBFAM] = SF$AULF[SUBFAM] + GRP$AULF[TOT];
00977  M01S00976.ssuse   +++|      SF$AUSF[SUBFAM] = SF$AUSF[SUBFAM] + GRP$AUSF[TOT];
00978  M01S00977.ssuse   +++|      SF$FA[SUBFAM] = SF$FA[SUBFAM] + GRP$FA[TOT];
00979  M01S00978.ssuse   +++|      SF$FB[SUBFAM] = SF$FB[SUBFAM] + GRP$FB[TOT];
00980  M01S00979.ssuse   +++|      SF$FC[SUBFAM] = SF$FC[SUBFAM] + GRP$FC[TOT];
00981  M01S00980.ssuse   +++|      SF$FRC[SUBFAM] = SF$FRC[SUBFAM] + GRP$FRC[TOT];
00982  M01S00981.ssuse   +++|      SF$INH[SUBFAM] = SF$INH[SUBFAM] + GRP$INH[TOT];
00983  M01S00982.ssuse   +++|      SF$LOC[SUBFAM] = SF$LOC[SUBFAM] + GRP$LOC[TOT];
00984  M01S00983.ssuse   +++|      SF$LOST[SUBFAM] = SF$LOST[SUBFAM] + GRP$LOST[TOT];
00985  M01S00984.ssuse   +++|      SF$OCL[SUBFAM] = SF$OCL[SUBFAM] + GRP$OCL[TOT];
00986  M01S00985.ssuse   +++|      SF$RES[SUBFAM] = SF$RES[SUBFAM] + GRP$RES[TOT];
00987  M01S00986.ssuse   +++|      SF$SE[SUBFAM] = SF$SE[SUBFAM] + GRP$SE[TOT];
00988  M01S00987.ssuse   +++|      SF$SF[SUBFAM] = SF$SF[SUBFAM] + GRP$SF[TOT];
00989  M01S00988.ssuse   +++|      SF$XPE[SUBFAM] = SF$XPE[SUBFAM] + GRP$XPE[TOT];
00990  M01S00989.ssuse   +++|
00991  M01S00990.ssuse   +++|      RETURN;
00992  M01S00991.ssuse   +++|
00993  M01S00992.ssuse   +++|      END  # USBASLN #
00994  M01S00993.ssuse   +++|
00995  M01S00994.ssuse   +++|    TERM
00996  M01S00995.ssuse   +++|PROC USBASTOT;
00997  M01S00996.ssuse   +++|# TITLE USBASTOT - WRITES SM AND SUBFAMILY TOTALS TO THE REPORT FILE. #
00998  M01S00997.ssuse   +++|
00999  M01S00998.ssuse   +++|      BEGIN  # USBASTOT #
01000  M01S00999.ssuse   +++|
01001  M01S01000.ssuse   +++|#
01002  M01S01001.ssuse   +++|**    USBASTOT - WRITES SM AND SUBFAMILY TOTALS TO THE REPORT FILE.
01003  M01S01002.ssuse   +++|*
01004  M01S01003.ssuse   +++|*     PROC USBASTOT.
01005  M01S01004.ssuse   +++|*
01006  M01S01005.ssuse   +++|*     ENTRY.    (SEL$SB) = BITS SET FOR THE SELECTED SUBFAMILIES.
01007  M01S01006.ssuse   +++|*               (SEL$SM) = BITS SET FOR THE SELECTED SM-S.
01008  M01S01007.ssuse   +++|*
01009  M01S01008.ssuse   +++|*     EXIT.     TOTALS HAVE BEEN WRITTEN TO REPORT FILE.
01010  M01S01009.ssuse   +++|*
01011  M01S01010.ssuse   +++|*     NOTES.    PROC *USBASTOT* CALLS *XCDD* TO CONVERT THE VARIOUS
01012  M01S01011.ssuse   +++|*               FIELDS IN THE *SM$TOT* AND *SF$TOT* ARRAYS FROM
01013  M01S01012.ssuse   +++|*               INTEGER TO DISPLAY CODE.  THE CONVERTED VALUES ARE
01014  M01S01013.ssuse   +++|*               WRITTEN TO THE REPORT FILE.
01015  M01S01014.ssuse   +++|#
01016  M01S01015.ssuse   +++|
01017  M01S01016.ssuse   +++|#
01018  M01S01017.ssuse   +++|****  PROC USBASTOT - XREF LIST BEGIN.
01019  M01S01018.ssuse   +++|#
01020  M01S01019.ssuse   +++|
01021  M01S01020.ssuse   +++|      XREF
01022  M01S01021.ssuse   +++|        BEGIN
01023  M01S01022.ssuse   +++|        PROC BZFILL;                 # BLANK FILL CHARACTERS #
01024  M01S01023.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
01025  M01S01024.ssuse   +++|        PROC RPLINE;                 # WRITES A LINE TO REPORT FILE #
01026  M01S01025.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01027  M01S01026.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
01028  M01S01027.ssuse   +++|        END
01029  M01S01028.ssuse   +++|
01030  M01S01029.ssuse   +++|#
01031  M01S01030.ssuse   +++|****  PROC USBASTOT - XREF LIST END.
01032  M01S01031.ssuse   +++|#
01033  M01S01032.ssuse   +++|
01034  M01S01033.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
01035  M01S01034.ssuse   +++|*CALL COMBFAS
01036  M01S01035.ssuse   +++|*CALL COMBBZF
01037  M01S01036.ssuse   +++|*CALL COMBMCT
01038  M01S01037.ssuse   +++|*CALL COMXMSC
01039  M01S01038.ssuse   +++|*CALL COMTOUT
01040  M01S01039.ssuse   +++|*CALL COMTUSE
01041  M01S01040.ssuse   +++|*CALL COMTUSP
01042  M01S01041.ssuse   +++|
01043  M01S01042.ssuse   +++|      ITEM SM         I;             # SM IDENTIFIER #
01044  M01S01043.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
01045  M01S01044.ssuse   +++|      ITEM TEMP$FAM   C(7);          # FAMILY CHARACTER #
01046  M01S01045.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01047  M01S01046.ssuse   +++|                                               CONTROL EJECT;
01048  M01S01047.ssuse   +++|
01049  M01S01048.ssuse   +++|      TEMP$FAM = USARG$FM[0];
01050  M01S01049.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
01051  M01S01050.ssuse   +++|
01052  M01S01051.ssuse   +++|#
01053  M01S01052.ssuse   +++|*     WRITE COLUMN HEADINGS TO REPORT FILE.
01054  M01S01053.ssuse   +++|#
01055  M01S01054.ssuse   +++|
01056  M01S01055.ssuse   +++|      RPEJECT(OUT$FETP);
01057  M01S01056.ssuse   +++|      RPLINE(OUT$FETP,"SSUSE BASIC REPORT",5,18,1);
01058  M01S01057.ssuse   +++|      RPLINE(OUT$FETP,"SM AND SUBFAMILY TOTALS",27,23,1);
01059  M01S01058.ssuse   +++|      RPLINE(OUT$FETP,"FAMILY = ",54,9,1);
01060  M01S01059.ssuse   +++|      RPLINE(OUT$FETP,TEMP$FAM,63,7,0);
01061  M01S01060.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
01062  M01S01061.ssuse   +++|      RPLINE(OUT$FETP,"----AVAILABLE----",24,17,1);
01063  M01S01062.ssuse   +++|      RPLINE(OUT$FETP,"-----NUMBER CARTRIDGES FLAGGED----",43,34,1);
01064  M01S01063.ssuse   +++|      RPLINE(OUT$FETP,"-------------NUMBER AU FLAGGED",81,30,1);
01065  M01S01064.ssuse   +++|      RPLINE(OUT$FETP,"-------------",111,13,0);
01066  M01S01065.ssuse   +++|      RPLINE(OUT$FETP,"SUB SM GR",1,9,1);
01067  M01S01066.ssuse   +++|      RPLINE(OUT$FETP,"CUBE  CART",12,10,1);
01068  M01S01067.ssuse   +++|      RPLINE(OUT$FETP,"AU        AU",26,12,1);
01069  M01S01068.ssuse   +++|      RPLINE(OUT$FETP,"M     I     F     L     P     E",46,31,1);
01070  M01S01069.ssuse   +++|      RPLINE(OUT$FETP,"FA       FU",86,11,1);
01071  M01S01070.ssuse   +++|      RPLINE(OUT$FETP,"SF       FC       AC",104,20,0);
01072  M01S01071.ssuse   +++|      RPLINE(OUT$FETP,"(SMALL)   (LARGE)",24,17,0);
01073  M01S01072.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
01074  M01S01073.ssuse   +++|      RPLINE(OUT$FETP,"SM TOTALS FOR SPECIFIED SUBFAMILIES",1,35,0);
01075  M01S01074.ssuse   +++|
01076  M01S01075.ssuse   +++|#
01077  M01S01076.ssuse   +++|*     WRITE SM TOTALS TO REPORT FILE.
01078  M01S01077.ssuse   +++|#
01079  M01S01078.ssuse   +++|
01080  M01S01079.ssuse   +++|      SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
01081  M01S01080.ssuse   +++|      DO
01082  M01S01081.ssuse   +++|        BEGIN  # FOR EACH SM #
01083  M01S01082.ssuse   +++|        IF B<SM,1>SEL$SM EQ 0
01084  M01S01083.ssuse   +++|        THEN
01085  M01S01084.ssuse   +++|          BEGIN
01086  M01S01085.ssuse   +++|          TEST SM;
01087  M01S01086.ssuse   +++|          END
01088  M01S01087.ssuse   +++|
01089  M01S01088.ssuse   +++|        TEMP$SM = SM;
01090  M01S01089.ssuse   +++|
01091  M01S01090.ssuse   +++|#
01092  M01S01091.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND PRINT THEM.
01093  M01S01092.ssuse   +++|#
01094  M01S01093.ssuse   +++|
01095  M01S01094.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
01096  M01S01095.ssuse   +++|        RPLINE(OUT$FETP,"**",2,2,1);
01097  M01S01096.ssuse   +++|        RPLINE(OUT$FETP,TEMP$SM,5,1,1);
01098  M01S01097.ssuse   +++|        RPLINE(OUT$FETP,"**",8,2,1);
01099  M01S01098.ssuse   +++|
01100  M01S01099.ssuse   +++|        CHAR$10[0] = XCDD(SM$LOC[SM]);
01101  M01S01100.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
01102  M01S01101.ssuse   +++|
01103  M01S01102.ssuse   +++|        CHAR$10[0] = XCDD(SM$RES[SM]);
01104  M01S01103.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
01105  M01S01104.ssuse   +++|
01106  M01S01105.ssuse   +++|        CHAR$10[0] = XCDD(SM$AUSF[SM]);
01107  M01S01106.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
01108  M01S01107.ssuse   +++|
01109  M01S01108.ssuse   +++|        CHAR$10[0] = XCDD(SM$AULF[SM]);
01110  M01S01109.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
01111  M01S01110.ssuse   +++|
01112  M01S01111.ssuse   +++|        CHAR$10[0] = XCDD(SM$LOST[SM]);
01113  M01S01112.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
01114  M01S01113.ssuse   +++|
01115  M01S01114.ssuse   +++|        CHAR$10[0] = XCDD(SM$INH[SM]);
01116  M01S01115.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
01117  M01S01116.ssuse   +++|
01118  M01S01117.ssuse   +++|        CHAR$10[0] = XCDD(SM$FRC[SM]);
01119  M01S01118.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
01120  M01S01119.ssuse   +++|
01121  M01S01120.ssuse   +++|        CHAR$10[0] = XCDD(SM$OCL[SM]);
01122  M01S01121.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
01123  M01S01122.ssuse   +++|
01124  M01S01123.ssuse   +++|        CHAR$10[0] = XCDD(SM$XPE[SM]);
01125  M01S01124.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
01126  M01S01125.ssuse   +++|
01127  M01S01126.ssuse   +++|        CHAR$10[0] = XCDD(SM$SE[SM]);
01128  M01S01127.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
01129  M01S01128.ssuse   +++|
01130  M01S01129.ssuse   +++|        CHAR$10[0] = XCDD(SM$FB[SM]);
01131  M01S01130.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
01132  M01S01131.ssuse   +++|
01133  M01S01132.ssuse   +++|        CHAR$10[0] = XCDD(SM$FA[SM]);
01134  M01S01133.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
01135  M01S01134.ssuse   +++|
01136  M01S01135.ssuse   +++|        CHAR$10[0] = XCDD(SM$SF[SM]);
01137  M01S01136.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
01138  M01S01137.ssuse   +++|
01139  M01S01138.ssuse   +++|        CHAR$10[0] = XCDD(SM$FC[SM]);
01140  M01S01139.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
01141  M01S01140.ssuse   +++|
01142  M01S01141.ssuse   +++|        CHAR$10[0] = XCDD(SM$AUC[SM]);
01143  M01S01142.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
01144  M01S01143.ssuse   +++|        END  # FOR EACH SM #
01145  M01S01144.ssuse   +++|
01146  M01S01145.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",2);
01147  M01S01146.ssuse   +++|      RPLINE(OUT$FETP,"SUBFAMILY TOTALS FOR SPECIFIED SM-S",1,35,0);
01148  M01S01147.ssuse   +++|
01149  M01S01148.ssuse   +++|#
01150  M01S01149.ssuse   +++|*     WRITE SUBFAMILY TOTALS TO REPORT FILE.
01151  M01S01150.ssuse   +++|#
01152  M01S01151.ssuse   +++|
01153  M01S01152.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
01154  M01S01153.ssuse   +++|      DO
01155  M01S01154.ssuse   +++|        BEGIN  # FOR EACH SUBFAMILY #
01156  M01S01155.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
01157  M01S01156.ssuse   +++|        THEN
01158  M01S01157.ssuse   +++|          BEGIN
01159  M01S01158.ssuse   +++|          TEST SUBFAM;
01160  M01S01159.ssuse   +++|          END
01161  M01S01160.ssuse   +++|
01162  M01S01161.ssuse   +++|#
01163  M01S01162.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND PRINT THEM.
01164  M01S01163.ssuse   +++|#
01165  M01S01164.ssuse   +++|
01166  M01S01165.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
01167  M01S01166.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
01168  M01S01167.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
01169  M01S01168.ssuse   +++|        RPLINE(OUT$FETP,"**",5,2,1);
01170  M01S01169.ssuse   +++|        RPLINE(OUT$FETP,"**",8,2,1);
01171  M01S01170.ssuse   +++|
01172  M01S01171.ssuse   +++|        CHAR$10[0] = XCDD(SF$LOC[SUBFAM]);
01173  M01S01172.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
01174  M01S01173.ssuse   +++|
01175  M01S01174.ssuse   +++|        CHAR$10[0] = XCDD(SF$RES[SUBFAM]);
01176  M01S01175.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
01177  M01S01176.ssuse   +++|
01178  M01S01177.ssuse   +++|        CHAR$10[0] = XCDD(SF$AUSF[SUBFAM]);
01179  M01S01178.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
01180  M01S01179.ssuse   +++|
01181  M01S01180.ssuse   +++|        CHAR$10[0] = XCDD(SF$AULF[SUBFAM]);
01182  M01S01181.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
01183  M01S01182.ssuse   +++|
01184  M01S01183.ssuse   +++|        CHAR$10[0] = XCDD(SF$LOST[SUBFAM]);
01185  M01S01184.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
01186  M01S01185.ssuse   +++|
01187  M01S01186.ssuse   +++|        CHAR$10[0] = XCDD(SF$INH[SUBFAM]);
01188  M01S01187.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
01189  M01S01188.ssuse   +++|
01190  M01S01189.ssuse   +++|        CHAR$10[0] = XCDD(SF$FRC[SUBFAM]);
01191  M01S01190.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
01192  M01S01191.ssuse   +++|
01193  M01S01192.ssuse   +++|        CHAR$10[0] = XCDD(SF$OCL[SUBFAM]);
01194  M01S01193.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
01195  M01S01194.ssuse   +++|
01196  M01S01195.ssuse   +++|        CHAR$10[0] = XCDD(SF$XPE[SUBFAM]);
01197  M01S01196.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
01198  M01S01197.ssuse   +++|
01199  M01S01198.ssuse   +++|        CHAR$10[0] = XCDD(SF$SE[SUBFAM]);
01200  M01S01199.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
01201  M01S01200.ssuse   +++|
01202  M01S01201.ssuse   +++|        CHAR$10[0] = XCDD(SF$FB[SUBFAM]);
01203  M01S01202.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
01204  M01S01203.ssuse   +++|
01205  M01S01204.ssuse   +++|        CHAR$10[0] = XCDD(SF$FA[SUBFAM]);
01206  M01S01205.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
01207  M01S01206.ssuse   +++|
01208  M01S01207.ssuse   +++|        CHAR$10[0] = XCDD(SF$SF[SUBFAM]);
01209  M01S01208.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
01210  M01S01209.ssuse   +++|
01211  M01S01210.ssuse   +++|        CHAR$10[0] = XCDD(SF$FC[SUBFAM]);
01212  M01S01211.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
01213  M01S01212.ssuse   +++|
01214  M01S01213.ssuse   +++|        CHAR$10[0] = XCDD(SF$AUC[SUBFAM]);
01215  M01S01214.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
01216  M01S01215.ssuse   +++|        END  # FOR EACH SUBFAMILY #
01217  M01S01216.ssuse   +++|
01218  M01S01217.ssuse   +++|      RETURN;
01219  M01S01218.ssuse   +++|
01220  M01S01219.ssuse   +++|      END  # USBASTOT #
01221  M01S01220.ssuse   +++|
01222  M01S01221.ssuse   +++|    TERM
01223  M01S01222.ssuse   +++|PROC USHEAD((FETP));
01224  M01S01223.ssuse   +++|# TITLE USHEAD - WRITES HEADER ON OUTPUT FILE.                        #
01225  M01S01224.ssuse   +++|
01226  M01S01225.ssuse   +++|      BEGIN  # USHEAD #
01227  M01S01226.ssuse   +++|
01228  M01S01227.ssuse   +++|#
01229  M01S01228.ssuse   +++|**    USHEAD - WRITES HEADER LINE ON OUTPUT FILE.
01230  M01S01229.ssuse   +++|*
01231  M01S01230.ssuse   +++|*     PROC USHEAD((FETP)).
01232  M01S01231.ssuse   +++|*
01233  M01S01232.ssuse   +++|*     ENTRY     (FETP) = AN ITEM CONTAINING THE FWA OF THE FET.
01234  M01S01233.ssuse   +++|*
01235  M01S01234.ssuse   +++|*     EXIT      HEADER IS WRITTEN ON THE OUTPUT FILE.
01236  M01S01235.ssuse   +++|*
01237  M01S01236.ssuse   +++|*     NOTES     THE REPORT FORMATTER IS USED TO
01238  M01S01237.ssuse   +++|*               PRINT THE HEADER LINES.
01239  M01S01238.ssuse   +++|#
01240  M01S01239.ssuse   +++|
01241  M01S01240.ssuse   +++|      ITEM FETP       I;             # FWA OF THE FET #
01242  M01S01241.ssuse   +++|
01243  M01S01242.ssuse   +++|#
01244  M01S01243.ssuse   +++|****  PROC USHEAD - XREF LIST BEGIN.
01245  M01S01244.ssuse   +++|#
01246  M01S01245.ssuse   +++|
01247  M01S01246.ssuse   +++|      XREF
01248  M01S01247.ssuse   +++|        BEGIN
01249  M01S01248.ssuse   +++|        PROC RPLINEX;                # PRINTS A REPORT LINE #
01250  M01S01249.ssuse   +++|        END
01251  M01S01250.ssuse   +++|
01252  M01S01251.ssuse   +++|#
01253  M01S01252.ssuse   +++|****  PROC USHEAD - XREF LIST END.
01254  M01S01253.ssuse   +++|#
01255  M01S01254.ssuse   +++|
01256  M01S01255.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
01257  M01S01256.ssuse   +++|*CALL COMBFAS
01258  M01S01257.ssuse   +++|
01259  M01S01258.ssuse   +++|                                               CONTROL EJECT;
01260  M01S01259.ssuse   +++|
01261  M01S01260.ssuse   +++|#
01262  M01S01261.ssuse   +++|*     PRINT THE HEADER LINE.
01263  M01S01262.ssuse   +++|#
01264  M01S01263.ssuse   +++|
01265  M01S01264.ssuse   +++|      RPLINEX(FETP,"SSUSE REPORT FILE",2,17,0);
01266  M01S01265.ssuse   +++|      RPLINEX(FETP," ",1,1,0);       # WRITE A BLANK LINE #
01267  M01S01266.ssuse   +++|      RETURN;
01268  M01S01267.ssuse   +++|
01269  M01S01268.ssuse   +++|      END  # USHEAD #
01270  M01S01269.ssuse   +++|
01271  M01S01270.ssuse   +++|    TERM
01272  M01S01271.ssuse   +++|PROC USOPT;
01273  M01S01272.ssuse   +++|# TITLE USOPT - CONVERTS PARAMETERS AND CHECKS FOR VALID OPTIONS.     #
01274  M01S01273.ssuse   +++|
01275  M01S01274.ssuse   +++|      BEGIN  # USOPT #
01276  M01S01275.ssuse   +++|
01277  M01S01276.ssuse   +++|#
01278  M01S01277.ssuse   +++|**    USOPT - CONVERTS AND CHECKS PARAMETERS FOR ALL VALID OPTIONS.
01279  M01S01278.ssuse   +++|*
01280  M01S01279.ssuse   +++|*     THIS PROC CHECKS PARAMETERS FOR LEGALITY.  IF INVALID OPTIONS ARE
01281  M01S01280.ssuse   +++|*     FOUND IT ISSUES A DAYFILE MESSAGE AND THEN ABORTS.
01282  M01S01281.ssuse   +++|*
01283  M01S01282.ssuse   +++|*     ENTRY     PARAMETERS PROCESSED AND SET UP IN *TUSPCOM*.
01284  M01S01283.ssuse   +++|*
01285  M01S01284.ssuse   +++|*     EXIT      ALL OPTIONS HAVE BEEN VALIDATED, OR IF VALID
01286  M01S01285.ssuse   +++|*               OPTIONS HAVE BEEN MISUSED, THE PROC ISSUES A
01287  M01S01286.ssuse   +++|*               DAYFILE MESSAGE AND THEN ABORTS.
01288  M01S01287.ssuse   +++|*
01289  M01S01288.ssuse   +++|*     MESSAGES  1)  INCORRECT SM.
01290  M01S01289.ssuse   +++|*               2)  INCORRECT SUBFAMILY.
01291  M01S01290.ssuse   +++|*               3)  INCORRECT REPORT OPTION.
01292  M01S01291.ssuse   +++|*               4)  DUPLICATE SM.
01293  M01S01292.ssuse   +++|*               5)  DUPLICATE SUBFAMILY.
01294  M01S01293.ssuse   +++|*               6)  DUPLICATE OPTION.
01295  M01S01294.ssuse   +++|*               7)  CN NOT SPECIFIED.
01296  M01S01295.ssuse   +++|*
01297  M01S01296.ssuse   +++|*     NOTES     ALL PARAMETER OPTIONS ARE TESTED FOR INVALID OPTIONS.
01298  M01S01297.ssuse   +++|*               THE VALID OPTIONS ON *SSUSE* CALLS ARE
01299  M01S01298.ssuse   +++|*                   1.  *OP* MUST EITHER CONTAIN ANY COMBINATION OF THE
01300  M01S01299.ssuse   +++|*                       VALID CHARACTERS A, B, C, OR D, OR IT CAN BE
01301  M01S01300.ssuse   +++|*                       OMITTED.
01302  M01S01301.ssuse   +++|*                   2.  *SM* MUST BE A VALID SM NAME OR A VALID
01303  M01S01302.ssuse   +++|*                       COMBINATION OF VALID SM NAMES, OR IT CAN BE
01304  M01S01303.ssuse   +++|*                       OMITTED.
01305  M01S01304.ssuse   +++|*                   3.  *SB* MUST BE FROM 0 TO 7 OR A VALID COMBINATION
01306  M01S01305.ssuse   +++|*                       OF LEGAL SUBFAMILY NUMBERS, OR IT CAN BE OMITTED
01307  M01S01306.ssuse   +++|*                   4.  *CN* MUST BE SPECIFIED IF REPORT D IS SELECTED.
01308  M01S01307.ssuse   +++|*               ANY VIOLATION OF THE VALID OPTIONS CAUSES A MESSAGE
01309  M01S01308.ssuse   +++|*               TO BE PRINTED IN THE DAYFILE AND CAUSES PROC
01310  M01S01309.ssuse   +++|*               *USOPT* TO ABORT.
01311  M01S01310.ssuse   +++|#
01312  M01S01311.ssuse   +++|
01313  M01S01312.ssuse   +++|#
01314  M01S01313.ssuse   +++|****  PROC USOPT - XREF LIST BEGIN.
01315  M01S01314.ssuse   +++|#
01316  M01S01315.ssuse   +++|
01317  M01S01316.ssuse   +++|      XREF
01318  M01S01317.ssuse   +++|        BEGIN
01319  M01S01318.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01320  M01S01319.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
01321  M01S01320.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01322  M01S01321.ssuse   +++|                                       OR RETURN #
01323  M01S01322.ssuse   +++|        END
01324  M01S01323.ssuse   +++|
01325  M01S01324.ssuse   +++|#
01326  M01S01325.ssuse   +++|****  PROC USOPT - XREF LIST END.
01327  M01S01326.ssuse   +++|#
01328  M01S01327.ssuse   +++|
01329  M01S01328.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01330  M01S01329.ssuse   +++|*CALL COMBFAS
01331  M01S01330.ssuse   +++|*CALL,COMBBZF
01332  M01S01331.ssuse   +++|*CALL COMBMCT
01333  M01S01332.ssuse   +++|*CALL COMXMSC
01334  M01S01333.ssuse   +++|*CALL COMTUSE
01335  M01S01334.ssuse   +++|*CALL COMTUSP
01336  M01S01335.ssuse   +++|
01337  M01S01336.ssuse   +++|      ITEM I          I;             # LOOP VARIABLE #
01338  M01S01337.ssuse   +++|      ITEM MORE       B;             # MORE SM-ID/SUBFAMILY INDICATOR #
01339  M01S01338.ssuse   +++|      ITEM SMARG      C(10);         # SM ARGUMENTS #
01340  M01S01339.ssuse   +++|      ITEM TEMPC      C(1);          # TEMPORARY CHARACTER #
01341  M01S01340.ssuse   +++|
01342  M01S01341.ssuse   +++|                                               CONTROL EJECT;
01343  M01S01342.ssuse   +++|
01344  M01S01343.ssuse   +++|#
01345  M01S01344.ssuse   +++|*     CHECK ALL SPECIFIED VALUES OF *SM*.
01346  M01S01345.ssuse   +++|#
01347  M01S01346.ssuse   +++|
01348  M01S01347.ssuse   +++|      MORE = TRUE;
01349  M01S01348.ssuse   +++|      SMARG = USARG$SM[0];
01350  M01S01349.ssuse   +++|      BZFILL(SMARG,TYPFILL"BFILL",10);
01351  M01S01350.ssuse   +++|      SLOWFOR I = 0 STEP 1 WHILE I LS MAXSM AND MORE
01352  M01S01351.ssuse   +++|      DO
01353  M01S01352.ssuse   +++|        BEGIN  # CHECK SPECIFIED SM-ID-S #
01354  M01S01353.ssuse   +++|        TEMPC = C<I,1>SMARG;
01355  M01S01354.ssuse   +++|        IF TEMPC EQ " "
01356  M01S01355.ssuse   +++|        THEN                         # NO MORE SM-ID-S #
01357  M01S01356.ssuse   +++|          BEGIN
01358  M01S01357.ssuse   +++|          MORE = FALSE;
01359  M01S01358.ssuse   +++|          TEST I;
01360  M01S01359.ssuse   +++|          END
01361  M01S01360.ssuse   +++|
01362  M01S01361.ssuse   +++|        IF TEMPC GR "H" OR TEMPC LS "A"
01363  M01S01362.ssuse   +++|        THEN                         # INCORRECT SM #
01364  M01S01363.ssuse   +++|          BEGIN
01365  M01S01364.ssuse   +++|          SSMSG$LINE[0] = " INCORRECT SM.";
01366  M01S01365.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01367  M01S01366.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01368  M01S01367.ssuse   +++|          END
01369  M01S01368.ssuse   +++|
01370  M01S01369.ssuse   +++|        IF B<TEMPC,1>SEL$SM EQ 1
01371  M01S01370.ssuse   +++|        THEN                         # DUPLICATE SM #
01372  M01S01371.ssuse   +++|          BEGIN
01373  M01S01372.ssuse   +++|          SSMSG$LINE[0] = " DUPLICATE SM.";
01374  M01S01373.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01375  M01S01374.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01376  M01S01375.ssuse   +++|          END
01377  M01S01376.ssuse   +++|
01378  M01S01377.ssuse   +++|        B<TEMPC,1>SEL$SM = 1;        # TURN SM BIT ON #
01379  M01S01378.ssuse   +++|        END  # CHECK SPECIFIED SM-ID-S #
01380  M01S01379.ssuse   +++|
01381  M01S01380.ssuse   +++|#
01382  M01S01381.ssuse   +++|*     CHECK ALL SPECIFIED VALUES OF *SB*.
01383  M01S01382.ssuse   +++|#
01384  M01S01383.ssuse   +++|
01385  M01S01384.ssuse   +++|      MORE = TRUE;
01386  M01S01385.ssuse   +++|      SLOWFOR I = 0 STEP 1 WHILE I LQ MAXSF AND MORE
01387  M01S01386.ssuse   +++|      DO
01388  M01S01387.ssuse   +++|        BEGIN  # CHECK SPECIFIED SUBFAMILIES #
01389  M01S01388.ssuse   +++|        TEMPC = C<I,1>USARG$SB[0];
01390  M01S01389.ssuse   +++|        IF TEMPC EQ 0
01391  M01S01390.ssuse   +++|        THEN                         # NO MORE SUBFAMILIES #
01392  M01S01391.ssuse   +++|          BEGIN
01393  M01S01392.ssuse   +++|          MORE = FALSE;
01394  M01S01393.ssuse   +++|          TEST I;
01395  M01S01394.ssuse   +++|          END
01396  M01S01395.ssuse   +++|
01397  M01S01396.ssuse   +++|        IF TEMPC LS "0" OR TEMPC GR "7"
01398  M01S01397.ssuse   +++|        THEN                         # INCORRECT SUBFAMILY #
01399  M01S01398.ssuse   +++|          BEGIN
01400  M01S01399.ssuse   +++|          SSMSG$LINE[0] = " INCORRECT SUBFAMILY.";
01401  M01S01400.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01402  M01S01401.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01403  M01S01402.ssuse   +++|          END
01404  M01S01403.ssuse   +++|
01405  M01S01404.ssuse   +++|        IF B<TEMPC - "0",1>SEL$SB EQ 1
01406  M01S01405.ssuse   +++|        THEN                         # DUPLICATE SUBFAMILY #
01407  M01S01406.ssuse   +++|          BEGIN
01408  M01S01407.ssuse   +++|          SSMSG$LINE[0] = " DUPLICATE SUBFAMILY.";
01409  M01S01408.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01410  M01S01409.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01411  M01S01410.ssuse   +++|          END
01412  M01S01411.ssuse   +++|
01413  M01S01412.ssuse   +++|        B<TEMPC - "0",1>SEL$SB = 1;  # TURN SUBFAMILY BIT ON #
01414  M01S01413.ssuse   +++|        END  # CHECK SPECIFIED SUBFAMILIES #
01415  M01S01414.ssuse   +++|
01416  M01S01415.ssuse   +++|#
01417  M01S01416.ssuse   +++|*     CHECK THE VALUES OF *OP*.
01418  M01S01417.ssuse   +++|#
01419  M01S01418.ssuse   +++|
01420  M01S01419.ssuse   +++|      REPORT$A = FALSE;
01421  M01S01420.ssuse   +++|      REPORT$B = FALSE;
01422  M01S01421.ssuse   +++|      REPORT$C = FALSE;
01423  M01S01422.ssuse   +++|      REPORT$D = FALSE;
01424  M01S01423.ssuse   +++|
01425  M01S01424.ssuse   +++|      SLOWFOR I = 0 STEP 1 UNTIL 9
01426  M01S01425.ssuse   +++|      DO
01427  M01S01426.ssuse   +++|        BEGIN  # CHECK ALL VALUES OF *OP* #
01428  M01S01427.ssuse   +++|        TEMPC = C<I,1>USARG$OP[0];
01429  M01S01428.ssuse   +++|        IF TEMPC NQ 0
01430  M01S01429.ssuse   +++|        THEN
01431  M01S01430.ssuse   +++|          BEGIN  # CHECK SPECIFIED *OP* #
01432  M01S01431.ssuse   +++|          IF TEMPC GR "D" OR TEMPC LS "A"
01433  M01S01432.ssuse   +++|          THEN
01434  M01S01433.ssuse   +++|            BEGIN
01435  M01S01434.ssuse   +++|            SSMSG$LINE[0] = " INCORRECT REPORT OPTION.";
01436  M01S01435.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01437  M01S01436.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01438  M01S01437.ssuse   +++|            END
01439  M01S01438.ssuse   +++|
01440  M01S01439.ssuse   +++|          ELSE
01441  M01S01440.ssuse   +++|            BEGIN  # SET APPROPRIATE FLAG #
01442  M01S01441.ssuse   +++|            IF TEMPC EQ "A"
01443  M01S01442.ssuse   +++|            THEN                     # REPORT A SELECTED #
01444  M01S01443.ssuse   +++|              BEGIN
01445  M01S01444.ssuse   +++|              IF NOT REPORT$A
01446  M01S01445.ssuse   +++|              THEN                   # UNIQUE OPTION #
01447  M01S01446.ssuse   +++|                BEGIN
01448  M01S01447.ssuse   +++|                REPORT$A = TRUE;
01449  M01S01448.ssuse   +++|                TEST I;
01450  M01S01449.ssuse   +++|                END
01451  M01S01450.ssuse   +++|
01452  M01S01451.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01453  M01S01452.ssuse   +++|                BEGIN
01454  M01S01453.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01455  M01S01454.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01456  M01S01455.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01457  M01S01456.ssuse   +++|                END
01458  M01S01457.ssuse   +++|
01459  M01S01458.ssuse   +++|              END
01460  M01S01459.ssuse   +++|
01461  M01S01460.ssuse   +++|            IF TEMPC EQ "B"
01462  M01S01461.ssuse   +++|            THEN                     # REPORT B SELECTED #
01463  M01S01462.ssuse   +++|              BEGIN
01464  M01S01463.ssuse   +++|              IF NOT REPORT$B
01465  M01S01464.ssuse   +++|              THEN                   # UNIQUE OPTION #
01466  M01S01465.ssuse   +++|                BEGIN
01467  M01S01466.ssuse   +++|                REPORT$B = TRUE;
01468  M01S01467.ssuse   +++|                TEST I;
01469  M01S01468.ssuse   +++|                END
01470  M01S01469.ssuse   +++|
01471  M01S01470.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01472  M01S01471.ssuse   +++|                BEGIN
01473  M01S01472.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01474  M01S01473.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01475  M01S01474.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01476  M01S01475.ssuse   +++|                END
01477  M01S01476.ssuse   +++|
01478  M01S01477.ssuse   +++|              END
01479  M01S01478.ssuse   +++|
01480  M01S01479.ssuse   +++|            IF TEMPC EQ "C"
01481  M01S01480.ssuse   +++|            THEN                     # REPORT C SELECTED #
01482  M01S01481.ssuse   +++|              BEGIN
01483  M01S01482.ssuse   +++|              IF NOT REPORT$C
01484  M01S01483.ssuse   +++|              THEN                   # UNIQUE OPTION #
01485  M01S01484.ssuse   +++|                BEGIN
01486  M01S01485.ssuse   +++|                REPORT$C = TRUE;
01487  M01S01486.ssuse   +++|                TEST I;
01488  M01S01487.ssuse   +++|                END
01489  M01S01488.ssuse   +++|
01490  M01S01489.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01491  M01S01490.ssuse   +++|                BEGIN
01492  M01S01491.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01493  M01S01492.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01494  M01S01493.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01495  M01S01494.ssuse   +++|                END
01496  M01S01495.ssuse   +++|
01497  M01S01496.ssuse   +++|              END
01498  M01S01497.ssuse   +++|
01499  M01S01498.ssuse   +++|            IF TEMPC EQ "D"
01500  M01S01499.ssuse   +++|            THEN                     # REPORT D SELECTED #
01501  M01S01500.ssuse   +++|              BEGIN
01502  M01S01501.ssuse   +++|              IF NOT REPORT$D
01503  M01S01502.ssuse   +++|              THEN                   # UNIQUE OPTION #
01504  M01S01503.ssuse   +++|                BEGIN
01505  M01S01504.ssuse   +++|                REPORT$D = TRUE;
01506  M01S01505.ssuse   +++|                TEST I;
01507  M01S01506.ssuse   +++|                END
01508  M01S01507.ssuse   +++|
01509  M01S01508.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01510  M01S01509.ssuse   +++|                BEGIN
01511  M01S01510.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01512  M01S01511.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01513  M01S01512.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01514  M01S01513.ssuse   +++|                END
01515  M01S01514.ssuse   +++|
01516  M01S01515.ssuse   +++|              END
01517  M01S01516.ssuse   +++|
01518  M01S01517.ssuse   +++|            END  # SET APPROPRIATE FLAG #
01519  M01S01518.ssuse   +++|
01520  M01S01519.ssuse   +++|          END  # CHECK SPECIFIED *OP* #
01521  M01S01520.ssuse   +++|
01522  M01S01521.ssuse   +++|        END  # CHECK ALL VALUES OF *OP* #
01523  M01S01522.ssuse   +++|
01524  M01S01523.ssuse   +++|#
01525  M01S01524.ssuse   +++|*     CHECK THAT *CN* IS SPECIFIED IF REPORT D IS SELECTED.
01526  M01S01525.ssuse   +++|#
01527  M01S01526.ssuse   +++|
01528  M01S01527.ssuse   +++|      IF REPORT$D
01529  M01S01528.ssuse   +++|      THEN
01530  M01S01529.ssuse   +++|        BEGIN  # CHECK *CN* #
01531  M01S01530.ssuse   +++|        IF USARG$CN[0] EQ 0
01532  M01S01531.ssuse   +++|        THEN
01533  M01S01532.ssuse   +++|          BEGIN
01534  M01S01533.ssuse   +++|          SSMSG$LINE[0] = " CN NOT SPECIFIED.";
01535  M01S01534.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01536  M01S01535.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01537  M01S01536.ssuse   +++|          END
01538  M01S01537.ssuse   +++|
01539  M01S01538.ssuse   +++|        END  # CHECK *CN* #
01540  M01S01539.ssuse   +++|
01541  M01S01540.ssuse   +++|      IF USARG$CM[0] NQ 0
01542  M01S01541.ssuse   +++|      THEN
01543  M01S01542.ssuse   +++|        BEGIN
01544  M01S01543.ssuse   +++|        C<1,1>USARG$CM[0] = "-";
01545  M01S01544.ssuse   +++|        END
01546  M01S01545.ssuse   +++|
01547  M01S01546.ssuse   +++|      RETURN;
01548  M01S01547.ssuse   +++|
01549  M01S01548.ssuse   +++|      END  # USOPT #
01550  M01S01549.ssuse   +++|
01551  M01S01550.ssuse   +++|    TERM
01552  M01S01551.ssuse   +++|PROC USRPBAS;
01553  M01S01552.ssuse   +++|# TITLE USRPBAS - GENERATES BASIC AND SPECIFIED OPTIONAL REPORTS.     #
01554  M01S01553.ssuse   +++|
01555  M01S01554.ssuse   +++|      BEGIN  # USRPBAS #
01556  M01S01555.ssuse   +++|
01557  M01S01556.ssuse   +++|#
01558  M01S01557.ssuse   +++|**    USRPBAS - GENERATES BASIC AND SPECIFIED OPTIONAL REPORTS.
01559  M01S01558.ssuse   +++|*
01560  M01S01559.ssuse   +++|*     THIS PROCEDURE GENERATES THE BASIC REPORT AND ANY OPTIONAL
01561  M01S01560.ssuse   +++|*     REPORTS SELECTED FOR ALL THE SM-S AND SUBFAMILIES SPECIFIED.
01562  M01S01561.ssuse   +++|*
01563  M01S01562.ssuse   +++|*     PROC USRPBAS.
01564  M01S01563.ssuse   +++|*
01565  M01S01564.ssuse   +++|*     ENTRY     PROCESSED AND SYNTAX-CHECKED PARAMETERS SET UP IN
01566  M01S01565.ssuse   +++|*               *TUSPCOM*.
01567  M01S01566.ssuse   +++|*               (USARG$FM) = FAMILY NAME.
01568  M01S01567.ssuse   +++|*               (SEL$SM)   = BITS SET FOR THE SELECTED SM-S.
01569  M01S01568.ssuse   +++|*               (SEL$SB)   = BITS SET FOR THE SELECTED SUBFAMILIES.
01570  M01S01569.ssuse   +++|*               (REPORT$A) = OPTIONAL REPORT SELECTION CODE,
01571  M01S01570.ssuse   +++|*                              TRUE, REPORT A SELECTED,
01572  M01S01571.ssuse   +++|*                              FALSE, REPORT A NOT SELECTED.
01573  M01S01572.ssuse   +++|*               (REPORT$B) = OPTIONAL REPORT SELECTION CODE,
01574  M01S01573.ssuse   +++|*                              TRUE, REPORT B SELECTED,
01575  M01S01574.ssuse   +++|*                              FALSE, REPORT B NOT SELECTED.
01576  M01S01575.ssuse   +++|*               (REPORT$C) = OPTIONAL REPORT SELECTION CODE,
01577  M01S01576.ssuse   +++|*                              TRUE, REPORT C SELECTED,
01578  M01S01577.ssuse   +++|*                              FALSE, REPORT C NOT SELECTED.
01579  M01S01578.ssuse   +++|*               (REPORT$D) = OPTIONAL REPORT SELECTION CODE,
01580  M01S01579.ssuse   +++|*                              TRUE, REPORT D SELECTED,
01581  M01S01580.ssuse   +++|*                              FALSE, REPORT D NOT SELECTED.
01582  M01S01581.ssuse   +++|*
01583  M01S01582.ssuse   +++|*     EXIT      ALL SPECIFIED REPORTS HAVE BEEN GENERATED.
01584  M01S01583.ssuse   +++|*
01585  M01S01584.ssuse   +++|*     MESSAGES  1)  FAMILY NOT FOUND.
01586  M01S01585.ssuse   +++|*               2)  UNABLE TO OPEN CATALOG.
01587  M01S01586.ssuse   +++|*               3)  SSUSE ABNORMAL, USRPBAS.
01588  M01S01587.ssuse   +++|*               4)  SFM CATALOG PARITY ERROR.
01589  M01S01588.ssuse   +++|*
01590  M01S01589.ssuse   +++|*     NOTES     *USRPBAS* GENERATES THE BASIC REPORT FOR ALL SM-S
01591  M01S01590.ssuse   +++|*               SPECIFIED FOR ALL OF THE SUBFAMILIES SPECIFIED IN
01592  M01S01591.ssuse   +++|*               THE BITS OF *SEL$SB*.  IF ANY OPTIONAL REPORTS
01593  M01S01592.ssuse   +++|*               ARE DESIRED, *USRPBAS* CALLS THE APPROPRIATE ROUTINES
01594  M01S01593.ssuse   +++|*               TO GENERATE THOSE REPORTS.
01595  M01S01594.ssuse   +++|#
01596  M01S01595.ssuse   +++|
01597  M01S01596.ssuse   +++|#
01598  M01S01597.ssuse   +++|****  PROC USRPBAS - XREF LIST BEGIN.
01599  M01S01598.ssuse   +++|#
01600  M01S01599.ssuse   +++|
01601  M01S01600.ssuse   +++|      XREF
01602  M01S01601.ssuse   +++|        BEGIN
01603  M01S01602.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01604  M01S01603.ssuse   +++|        PROC CCLOSE;                 # CLOSES THE CATALOG #
01605  M01S01604.ssuse   +++|        PROC COPEN;                  # OPENS THE CATALOG #
01606  M01S01605.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
01607  M01S01606.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
01608  M01S01607.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01609  M01S01608.ssuse   +++|                                       OR RETURN #
01610  M01S01609.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
01611  M01S01610.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS THE REPORT FILE #
01612  M01S01611.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
01613  M01S01612.ssuse   +++|        PROC RPOPEN;                 # OPENS THE REPORT FILE #
01614  M01S01613.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01615  M01S01614.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
01616  M01S01615.ssuse   +++|        PROC USANALS;                # ANALYZE *FCT* ENTRIES FOR A SM #
01617  M01S01616.ssuse   +++|        PROC USBASLN;                # PRINTS LINE ON BASIC REPORT #
01618  M01S01617.ssuse   +++|        PROC USBASTOT;               # PRINTS TOTAL ON BASIC REPORT #
01619  M01S01618.ssuse   +++|        PROC USHEAD;                 # WRITES HEADER ON OUTPUT FILE #
01620  M01S01619.ssuse   +++|        PROC USRPTA;                 # GENERATES OPTIONAL REPORT A #
01621  M01S01620.ssuse   +++|        PROC USRPTB;                 # GENERATES OPTIONAL REPORT B #
01622  M01S01621.ssuse   +++|        PROC USRPTC;                 # GENERATES OPTIONAL REPORT C #
01623  M01S01622.ssuse   +++|        PROC USRPTD;                 # GENERATES OPTIONAL REPORT D #
01624  M01S01623.ssuse   +++|        PROC ZFILL;                  # ZERO FILL ARRAY #
01625  M01S01624.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGERS TO DISPLAY #
01626  M01S01625.ssuse   +++|        END
01627  M01S01626.ssuse   +++|
01628  M01S01627.ssuse   +++|#
01629  M01S01628.ssuse   +++|****  PROC USRPBAS - XREF LIST END.
01630  M01S01629.ssuse   +++|#
01631  M01S01630.ssuse   +++|
01632  M01S01631.ssuse   +++|      DEF PROCNAME #"USRPBAS."#;     # PROC NAME #
01633  M01S01632.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01634  M01S01633.ssuse   +++|*CALL COMBFAS
01635  M01S01634.ssuse   +++|*CALL COMBBZF
01636  M01S01635.ssuse   +++|*CALL COMBCMD
01637  M01S01636.ssuse   +++|*CALL COMBCMS
01638  M01S01637.ssuse   +++|*CALL COMBMCT
01639  M01S01638.ssuse   +++|*CALL COMBPFP
01640  M01S01639.ssuse   +++|*CALL COMXMSC
01641  M01S01640.ssuse   +++|*CALL COMSPFM
01642  M01S01641.ssuse   +++|*CALL COMTOUT
01643  M01S01642.ssuse   +++|*CALL COMTUSE
01644  M01S01643.ssuse   +++|*CALL COMTUSP
01645  M01S01644.ssuse   +++|
01646  M01S01645.ssuse   +++|      ITEM EJEC$FLAG  B;             # FLAG TO TEST FOR EJECT #
01647  M01S01646.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
01648  M01S01647.ssuse   +++|      ITEM GROUP      I;             # LOOP VARIABLE #
01649  M01S01648.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
01650  M01S01649.ssuse   +++|      ITEM SUBFAM     I;             # LOOP VARIABLE #
01651  M01S01650.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
01652  M01S01651.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01653  M01S01652.ssuse   +++|
01654  M01S01653.ssuse   +++|      ARRAY OUT$FET [0:0] S(SFETL);;  # FET FOR OUTPUT FILE #
01655  M01S01654.ssuse   +++|
01656  M01S01655.ssuse   +++|                                               CONTROL EJECT;
01657  M01S01656.ssuse   +++|
01658  M01S01657.ssuse   +++|#
01659  M01S01658.ssuse   +++|*     SET THE FET POINTER FOR THE OUTPUT FILE.
01660  M01S01659.ssuse   +++|#
01661  M01S01660.ssuse   +++|
01662  M01S01661.ssuse   +++|      IF USARG$LZ[0] EQ 0
01663  M01S01662.ssuse   +++|      THEN                           # NO OUTPUT FILE #
01664  M01S01663.ssuse   +++|        BEGIN
01665  M01S01664.ssuse   +++|        OUT$FETP = 0;
01666  M01S01665.ssuse   +++|        END
01667  M01S01666.ssuse   +++|
01668  M01S01667.ssuse   +++|      ELSE                           # SET UP THE FWA OF THE FET #
01669  M01S01668.ssuse   +++|        BEGIN
01670  M01S01669.ssuse   +++|        OUT$FETP = LOC(OUT$FET[0]);
01671  M01S01670.ssuse   +++|        END
01672  M01S01671.ssuse   +++|
01673  M01S01672.ssuse   +++|#
01674  M01S01673.ssuse   +++|*     OPEN THE OUTPUT FILE.
01675  M01S01674.ssuse   +++|#
01676  M01S01675.ssuse   +++|
01677  M01S01676.ssuse   +++|      RPOPEN(USARG$L[0],OUT$FETP,USHEAD);
01678  M01S01677.ssuse   +++|
01679  M01S01678.ssuse   +++|#
01680  M01S01679.ssuse   +++|*     CHANGE ZERO-FILL TO SPACE-FILL FOR FAMILY.
01681  M01S01680.ssuse   +++|#
01682  M01S01681.ssuse   +++|
01683  M01S01682.ssuse   +++|      TEMP$FAM = USARG$FM[0];
01684  M01S01683.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
01685  M01S01684.ssuse   +++|
01686  M01S01685.ssuse   +++|#
01687  M01S01686.ssuse   +++|*     GENERATE THE BASIC REPORT ON EACH SUBFAMILY SPECIFIED.
01688  M01S01687.ssuse   +++|#
01689  M01S01688.ssuse   +++|
01690  M01S01689.ssuse   +++|      EJEC$FLAG = FALSE;             # DO NOT EJECT ON FIRST PAGE #
01691  M01S01690.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
01692  M01S01691.ssuse   +++|      DO
01693  M01S01692.ssuse   +++|        BEGIN  # PROCESS EACH SUBFAMILY #
01694  M01S01693.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
01695  M01S01694.ssuse   +++|        THEN                         # SUBFAMILY NOT SELECTED #
01696  M01S01695.ssuse   +++|          BEGIN
01697  M01S01696.ssuse   +++|          TEST SUBFAM;
01698  M01S01697.ssuse   +++|          END
01699  M01S01698.ssuse   +++|
01700  M01S01699.ssuse   +++|#
01701  M01S01700.ssuse   +++|*     SWITCH TO THE SPECIFIED FAMILY AND USER INDEX FOR
01702  M01S01701.ssuse   +++|*     THE SELECTED SUBFAMILY.
01703  M01S01702.ssuse   +++|#
01704  M01S01703.ssuse   +++|
01705  M01S01704.ssuse   +++|        PFP$WRD0[0] = 0;
01706  M01S01705.ssuse   +++|        PFP$FAM[0] = USARG$FM[0];
01707  M01S01706.ssuse   +++|        PFP$UI[0] = DEF$UI + SUBFAM;
01708  M01S01707.ssuse   +++|        PFP$FG1[0] = TRUE;
01709  M01S01708.ssuse   +++|        PFP$FG4[0] = TRUE;
01710  M01S01709.ssuse   +++|        SETPFP(PFP[0]);
01711  M01S01710.ssuse   +++|        IF PFP$STAT[0] NQ 0
01712  M01S01711.ssuse   +++|        THEN                         # FAMILY NOT FOUND #
01713  M01S01712.ssuse   +++|          BEGIN
01714  M01S01713.ssuse   +++|          SSMSG$LINE[0] = " FAMILY NOT FOUND.";
01715  M01S01714.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01716  M01S01715.ssuse   +++|          RPCLOSE(OUT$FETP);
01717  M01S01716.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01718  M01S01717.ssuse   +++|          END
01719  M01S01718.ssuse   +++|
01720  M01S01719.ssuse   +++|#
01721  M01S01720.ssuse   +++|*     OPEN THE CATALOG FOR THE SUBFAMILY AND CHECK THE RETURNED
01722  M01S01721.ssuse   +++|*     ERROR STATUS.
01723  M01S01722.ssuse   +++|#
01724  M01S01723.ssuse   +++|
01725  M01S01724.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
01726  M01S01725.ssuse   +++|        SFMCAT$LST[0] = CHAR$R1[0];
01727  M01S01726.ssuse   +++|        COPEN(USARG$FM[0],SUBFAM,SFMCATNM[0],"RM",TRUE,FLAG);
01728  M01S01727.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
01729  M01S01728.ssuse   +++|        THEN
01730  M01S01729.ssuse   +++|          BEGIN
01731  M01S01730.ssuse   +++|          LOFPROC(OCT$LFN[1]);       # ADD LFN TO LIST OF FILES #
01732  M01S01731.ssuse   +++|          END
01733  M01S01732.ssuse   +++|
01734  M01S01733.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
01735  M01S01734.ssuse   +++|        THEN
01736  M01S01735.ssuse   +++|          BEGIN  # CHECK FOR ERROR TYPE #
01737  M01S01736.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
01738  M01S01737.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
01739  M01S01738.ssuse   +++|          THEN
01740  M01S01739.ssuse   +++|            BEGIN
01741  M01S01740.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN CATALOG.";
01742  M01S01741.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01743  M01S01742.ssuse   +++|            RPCLOSE(OUT$FETP);
01744  M01S01743.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01745  M01S01744.ssuse   +++|            END
01746  M01S01745.ssuse   +++|
01747  M01S01746.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
01748  M01S01747.ssuse   +++|          THEN
01749  M01S01748.ssuse   +++|            BEGIN
01750  M01S01749.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
01751  M01S01750.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01752  M01S01751.ssuse   +++|            RPCLOSE(OUT$FETP);
01753  M01S01752.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01754  M01S01753.ssuse   +++|            END
01755  M01S01754.ssuse   +++|
01756  M01S01755.ssuse   +++|          ELSE
01757  M01S01756.ssuse   +++|            BEGIN
01758  M01S01757.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
01759  M01S01758.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
01760  M01S01759.ssuse   +++|            RPCLOSE(OUT$FETP);
01761  M01S01760.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01762  M01S01761.ssuse   +++|            END
01763  M01S01762.ssuse   +++|
01764  M01S01763.ssuse   +++|          END  # CHECK FOR ERROR TYPE #
01765  M01S01764.ssuse   +++|
01766  M01S01765.ssuse   +++|#
01767  M01S01766.ssuse   +++|*     GENERATE BASIC REPORT DETAIL LINES FOR EACH SM SPECIFIED.
01768  M01S01767.ssuse   +++|#
01769  M01S01768.ssuse   +++|
01770  M01S01769.ssuse   +++|        SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
01771  M01S01770.ssuse   +++|        DO
01772  M01S01771.ssuse   +++|          BEGIN  # PROCESS EACH SM #
01773  M01S01772.ssuse   +++|          IF B<SM,1>SEL$SM EQ 0
01774  M01S01773.ssuse   +++|          THEN                       # SM NOT SELECTED #
01775  M01S01774.ssuse   +++|            BEGIN
01776  M01S01775.ssuse   +++|            TEST SM;
01777  M01S01776.ssuse   +++|            END
01778  M01S01777.ssuse   +++|
01779  M01S01778.ssuse   +++|          TEMP$SM = SM;
01780  M01S01779.ssuse   +++|
01781  M01S01780.ssuse   +++|#
01782  M01S01781.ssuse   +++|*     CLEAR THE SUB-TOTAL COUNTERS FOR EACH GROUP.
01783  M01S01782.ssuse   +++|#
01784  M01S01783.ssuse   +++|
01785  M01S01784.ssuse   +++|          ZFILL(GRP$TOT,8*MAXGP);
01786  M01S01785.ssuse   +++|
01787  M01S01786.ssuse   +++|          IF EJEC$FLAG
01788  M01S01787.ssuse   +++|          THEN                       # NOT FIRST PAGE #
01789  M01S01788.ssuse   +++|            BEGIN
01790  M01S01789.ssuse   +++|            RPEJECT(OUT$FETP);
01791  M01S01790.ssuse   +++|            END
01792  M01S01791.ssuse   +++|
01793  M01S01792.ssuse   +++|#
01794  M01S01793.ssuse   +++|*     CHECK THE NUMBER OF *FCT* ENTRIES FOR THIS SM.  IF NONE, PRINT
01795  M01S01794.ssuse   +++|*     AN APPROPRIATE MESSAGE AND PROCESS THE NEXT SPECIFIED SM.
01796  M01S01795.ssuse   +++|#
01797  M01S01796.ssuse   +++|
01798  M01S01797.ssuse   +++|          P<PREAMBLE> = PRMBADR;     # SET PREAMBLE TABLE ADDRESS #
01799  M01S01798.ssuse   +++|          IF PRM$SCW1[SM] EQ 0
01800  M01S01799.ssuse   +++|          THEN                       # SM NOT ASSIGNED TO SUBFAMILY #
01801  M01S01800.ssuse   +++|            BEGIN
01802  M01S01801.ssuse   +++|            RPLINE(OUT$FETP,"SM ",3,3,1);
01803  M01S01802.ssuse   +++|            RPLINE(OUT$FETP,TEMP$SM,6,1,1);
01804  M01S01803.ssuse   +++|            RPLINE(OUT$FETP," NOT ASSIGNED TO SUBFAMILY  .",7,29,1);
01805  M01S01804.ssuse   +++|            CHAR$10[0] = XCDD(SUBFAM);
01806  M01S01805.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R1[0],34,1,0);
01807  M01S01806.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
01808  M01S01807.ssuse   +++|            TEST SM;
01809  M01S01808.ssuse   +++|            END
01810  M01S01809.ssuse   +++|
01811  M01S01810.ssuse   +++|#
01812  M01S01811.ssuse   +++|*     ANALYZE THE *AST* AND *FCT* ENTRIES FOR THE SELECTED SM.  SET UP
01813  M01S01812.ssuse   +++|*     THE SUB-TOTALS COUNTERS.
01814  M01S01813.ssuse   +++|#
01815  M01S01814.ssuse   +++|
01816  M01S01815.ssuse   +++|          USANALS(SUBFAM,SM);
01817  M01S01816.ssuse   +++|
01818  M01S01817.ssuse   +++|#
01819  M01S01818.ssuse   +++|*     DISPLAY THE SUB-TOTALS COUNTERS ON THE REPORT FILE.
01820  M01S01819.ssuse   +++|#
01821  M01S01820.ssuse   +++|
01822  M01S01821.ssuse   +++|          USBASLN(SUBFAM,SM);
01823  M01S01822.ssuse   +++|
01824  M01S01823.ssuse   +++|          END  # PROCESS EACH SM #
01825  M01S01824.ssuse   +++|
01826  M01S01825.ssuse   +++|#
01827  M01S01826.ssuse   +++|*     CLOSE THE SFM CATALOG.
01828  M01S01827.ssuse   +++|#
01829  M01S01828.ssuse   +++|
01830  M01S01829.ssuse   +++|        CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
01831  M01S01830.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
01832  M01S01831.ssuse   +++|        THEN                         # UNABLE TO CLOSE CATALOG #
01833  M01S01832.ssuse   +++|          BEGIN
01834  M01S01833.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
01835  M01S01834.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
01836  M01S01835.ssuse   +++|          RPCLOSE(OUT$FETP);
01837  M01S01836.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01838  M01S01837.ssuse   +++|          END
01839  M01S01838.ssuse   +++|
01840  M01S01839.ssuse   +++|        ZFILL(FCTBUFCW,1);           # CLEAR CONTROL BUFFER #
01841  M01S01840.ssuse   +++|
01842  M01S01841.ssuse   +++|        END  # PROCESS EACH SUBFAMILY #
01843  M01S01842.ssuse   +++|
01844  M01S01843.ssuse   +++|#
01845  M01S01844.ssuse   +++|*     WRITE SM AND SUBFAMILY TOTALS TO REPORT FILE.
01846  M01S01845.ssuse   +++|#
01847  M01S01846.ssuse   +++|
01848  M01S01847.ssuse   +++|      USBASTOT;
01849  M01S01848.ssuse   +++|
01850  M01S01849.ssuse   +++|#
01851  M01S01850.ssuse   +++|*     CALL SPECIFIED OPTIONAL REPORTS.
01852  M01S01851.ssuse   +++|#
01853  M01S01852.ssuse   +++|
01854  M01S01853.ssuse   +++|      IF REPORT$A
01855  M01S01854.ssuse   +++|      THEN                           # OPTIONAL REPORT A SPECIFIED #
01856  M01S01855.ssuse   +++|        BEGIN
01857  M01S01856.ssuse   +++|        USRPTA;
01858  M01S01857.ssuse   +++|        END
01859  M01S01858.ssuse   +++|
01860  M01S01859.ssuse   +++|      IF REPORT$B
01861  M01S01860.ssuse   +++|      THEN                           # OPTIONAL REPORT B SPECIFIED #
01862  M01S01861.ssuse   +++|        BEGIN
01863  M01S01862.ssuse   +++|        USRPTB;
01864  M01S01863.ssuse   +++|        END
01865  M01S01864.ssuse   +++|
01866  M01S01865.ssuse   +++|      IF REPORT$C
01867  M01S01866.ssuse   +++|      THEN                           # OPTIONAL REPORT C SPECIFIED #
01868  M01S01867.ssuse   +++|        BEGIN
01869  M01S01868.ssuse   +++|        USRPTC;
01870  M01S01869.ssuse   +++|        END
01871  M01S01870.ssuse   +++|
01872  M01S01871.ssuse   +++|      IF REPORT$D
01873  M01S01872.ssuse   +++|      THEN                           # OPTIONAL REPORT D SPECIFIED #
01874  M01S01873.ssuse   +++|        BEGIN
01875  M01S01874.ssuse   +++|        USRPTD;
01876  M01S01875.ssuse   +++|        END
01877  M01S01876.ssuse   +++|
01878  M01S01877.ssuse   +++|#
01879  M01S01878.ssuse   +++|*     CLOSE THE REPORT FILE.
01880  M01S01879.ssuse   +++|#
01881  M01S01880.ssuse   +++|
01882  M01S01881.ssuse   +++|      RPCLOSE(OUT$FETP);
01883  M01S01882.ssuse   +++|
01884  M01S01883.ssuse   +++|      RETURN;
01885  M01S01884.ssuse   +++|
01886  M01S01885.ssuse   +++|      END  # USRPBAS #
01887  M01S01886.ssuse   +++|
01888  M01S01887.ssuse   +++|    TERM
01889  M01S01888.ssuse   +++|PROC USRPTA;
01890  M01S01889.ssuse   +++|# TITLE USRPTA - GENERATES OPTIONAL REPORT A.                         #
01891  M01S01890.ssuse   +++|
01892  M01S01891.ssuse   +++|      BEGIN  # USRPTA #
01893  M01S01892.ssuse   +++|
01894  M01S01893.ssuse   +++|#
01895  M01S01894.ssuse   +++|**    USRPTA - GENERATES OPTIONAL REPORT A.
01896  M01S01895.ssuse   +++|*
01897  M01S01896.ssuse   +++|*     THIS PROC LISTS THE CONTENTS OF A STORAGE MODULE AS DESCRIBED
01898  M01S01897.ssuse   +++|*     IN THE SMMAP.
01899  M01S01898.ssuse   +++|*
01900  M01S01899.ssuse   +++|*     PROC USRPTA.
01901  M01S01900.ssuse   +++|*
01902  M01S01901.ssuse   +++|*     ENTRY.    (SEL$SB) = BITS SET FOR THE SELECTED SUBFAMILIES.
01903  M01S01902.ssuse   +++|*               (SEL$SM) = BITS SET FOR THE SELECTED SM-S.
01904  M01S01903.ssuse   +++|*
01905  M01S01904.ssuse   +++|*     EXIT.     OPTIONAL REPORT A GENERATED.
01906  M01S01905.ssuse   +++|*
01907  M01S01906.ssuse   +++|*     MESSAGES. 1) SMMAP PARITY ERROR.
01908  M01S01907.ssuse   +++|*               2) UNABLE TO OPEN SMMAP.
01909  M01S01908.ssuse   +++|*               3) SSUSE ABNORMAL, USRPTA.
01910  M01S01909.ssuse   +++|*               4) FAMILY NOT FOUND.
01911  M01S01910.ssuse   +++|*
01912  M01S01911.ssuse   +++|*     NOTES.    FOR EACH SELECTED SM, PROC *USRPTA* OPENS THE
01913  M01S01912.ssuse   +++|*               CORRESPONDING SMMAP AND PRINTS THE CONTENTS
01914  M01S01913.ssuse   +++|*               OF THE Y,Z COORDINATES.  THE COLUMN CONTAINING
01915  M01S01914.ssuse   +++|*               THE DRD-S IS NOT REPORTED ON.  THIS REPORT IS FIFTEEN
01916  M01S01915.ssuse   +++|*               PAGES LONG WITH 1 Z AND 22 Y COORDINATES
01917  M01S01916.ssuse   +++|*               LISTED PER PAGE.
01918  M01S01917.ssuse   +++|#
01919  M01S01918.ssuse   +++|
01920  M01S01919.ssuse   +++|#
01921  M01S01920.ssuse   +++|****  PROC USRPTA - XREF LIST BEGIN.
01922  M01S01921.ssuse   +++|#
01923  M01S01922.ssuse   +++|
01924  M01S01923.ssuse   +++|      XREF
01925  M01S01924.ssuse   +++|        BEGIN
01926  M01S01925.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01927  M01S01926.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
01928  M01S01927.ssuse   +++|        PROC MCLOSE;                 # CLOSES SMMAP #
01929  M01S01928.ssuse   +++|        PROC MESSAGE;                # PRINTS MESSAGE IN DAYFILE #
01930  M01S01929.ssuse   +++|        PROC MGETENT;                # GETS SMMAP ENTRY #
01931  M01S01930.ssuse   +++|        PROC MOPEN;                  # OPENS SMMAP #
01932  M01S01931.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01933  M01S01932.ssuse   +++|                                       OR RETURN #
01934  M01S01933.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
01935  M01S01934.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
01936  M01S01935.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
01937  M01S01936.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01938  M01S01937.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
01939  M01S01938.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
01940  M01S01939.ssuse   +++|        END
01941  M01S01940.ssuse   +++|
01942  M01S01941.ssuse   +++|#
01943  M01S01942.ssuse   +++|****  PROC USRPTA - XREF LIST END.
01944  M01S01943.ssuse   +++|#
01945  M01S01944.ssuse   +++|
01946  M01S01945.ssuse   +++|      DEF PROCNAME #"USRPTA."#;      # PROC NAME #
01947  M01S01946.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01948  M01S01947.ssuse   +++|*CALL COMBFAS
01949  M01S01948.ssuse   +++|*CALL COMBBZF
01950  M01S01949.ssuse   +++|*CALL COMBCMD
01951  M01S01950.ssuse   +++|*CALL COMBCMS
01952  M01S01951.ssuse   +++|*CALL COMBMAP
01953  M01S01952.ssuse   +++|*CALL COMBMCT
01954  M01S01953.ssuse   +++|*CALL COMBPFP
01955  M01S01954.ssuse   +++|*CALL COMSPFM
01956  M01S01955.ssuse   +++|*CALL COMTOUT
01957  M01S01956.ssuse   +++|*CALL COMTUSE
01958  M01S01957.ssuse   +++|*CALL COMTUSP
01959  M01S01958.ssuse   +++|
01960  M01S01959.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
01961  M01S01960.ssuse   +++|      ITEM GP         I;             # GROUP #
01962  M01S01961.ssuse   +++|      ITEM GRT        I;             # GROUP ORDINAL #
01963  M01S01962.ssuse   +++|      ITEM MAP$ORD    I;             # SMMAP ORDINAL #
01964  M01S01963.ssuse   +++|      ITEM RPTFLAG    C(7);          # REPORT FLAG #
01965  M01S01964.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
01966  M01S01965.ssuse   +++|      ITEM SM$ADDR    I;             # ADDRESS OF SMMAP #
01967  M01S01966.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01968  M01S01967.ssuse   +++|      ITEM Y          I;             # LOOP VARIABLE #
01969  M01S01968.ssuse   +++|      ITEM Z          I;             # LOOP VARIABLE #
01970  M01S01969.ssuse   +++|
01971  M01S01970.ssuse   +++|      ARRAY SMMAP$NM [0:0] P(1);     # ARRAY TO BUILD SMMAP #
01972  M01S01971.ssuse   +++|        BEGIN
01973  M01S01972.ssuse   +++|        ITEM SMAP$NAME  C(00,00,07);  # SMMAP FILE NAME #
01974  M01S01973.ssuse   +++|        ITEM SMAP$CHAR  C(00,00,05);  # FIRST FIVE CHARACTERS #
01975  M01S01974.ssuse   +++|        ITEM SMAP$SMID  C(00,30,01);  # SM-ID #
01976  M01S01975.ssuse   +++|        ITEM SMAP$Z     U(00,36,24) = [0];  # ZERO FILL FILE NAME #
01977  M01S01976.ssuse   +++|        END
01978  M01S01977.ssuse   +++|
01979  M01S01978.ssuse   +++|
01980  M01S01979.ssuse   +++|                                               CONTROL EJECT;
01981  M01S01980.ssuse   +++|
01982  M01S01981.ssuse   +++|#
01983  M01S01982.ssuse   +++|*     SET DEFAULT FAMILY AND USER INDEX.
01984  M01S01983.ssuse   +++|#
01985  M01S01984.ssuse   +++|
01986  M01S01985.ssuse   +++|      PFP$WRD0[0] =0;
01987  M01S01986.ssuse   +++|      PFP$FAM[0] = DEF$FAM;
01988  M01S01987.ssuse   +++|      PFP$UI[0] = DEF$UI;
01989  M01S01988.ssuse   +++|      PFP$FG1[0] = TRUE;
01990  M01S01989.ssuse   +++|      PFP$FG4[0] = TRUE;
01991  M01S01990.ssuse   +++|      SETPFP(PFP[0]);
01992  M01S01991.ssuse   +++|      IF PFP$STAT NQ 0
01993  M01S01992.ssuse   +++|      THEN                           # FAMILY NOT FOUND #
01994  M01S01993.ssuse   +++|        BEGIN
01995  M01S01994.ssuse   +++|        SSMSG$LINE[0] = " FAMILY NOT FOUND.";
01996  M01S01995.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
01997  M01S01996.ssuse   +++|        RPCLOSE(OUT$FETP);
01998  M01S01997.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
01999  M01S01998.ssuse   +++|        END
02000  M01S01999.ssuse   +++|
02001  M01S02000.ssuse   +++|#
02002  M01S02001.ssuse   +++|*     PROCESS EACH SPECIFIED SM.
02003  M01S02002.ssuse   +++|#
02004  M01S02003.ssuse   +++|
02005  M01S02004.ssuse   +++|      SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
02006  M01S02005.ssuse   +++|      DO
02007  M01S02006.ssuse   +++|        BEGIN  # PROCESS EACH SM #
02008  M01S02007.ssuse   +++|        IF B<SM,1>SEL$SM EQ 0
02009  M01S02008.ssuse   +++|        THEN                         # SM NOT SELECTED #
02010  M01S02009.ssuse   +++|          BEGIN
02011  M01S02010.ssuse   +++|          TEST SM;
02012  M01S02011.ssuse   +++|          END
02013  M01S02012.ssuse   +++|
02014  M01S02013.ssuse   +++|        TEMP$SM = SM;
02015  M01S02014.ssuse   +++|        SMAP$SMID[0] = TEMP$SM;
02016  M01S02015.ssuse   +++|        SMAP$CHAR[0] = SMMAP;
02017  M01S02016.ssuse   +++|
02018  M01S02017.ssuse   +++|#
02019  M01S02018.ssuse   +++|*     OPEN THE SMMAP AND CHECK THE RETURNED ERROR STATUS.
02020  M01S02019.ssuse   +++|#
02021  M01S02020.ssuse   +++|
02022  M01S02021.ssuse   +++|        MOPEN(SM,SMAP$NAME[0],"RM",FLAG);
02023  M01S02022.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
02024  M01S02023.ssuse   +++|        THEN
02025  M01S02024.ssuse   +++|          BEGIN
02026  M01S02025.ssuse   +++|          LOFPROC(SMAP$NAME[0]);     # ADD LFN TO LIST OF FILES #
02027  M01S02026.ssuse   +++|          END
02028  M01S02027.ssuse   +++|
02029  M01S02028.ssuse   +++|        SM$ADDR = LOC(MAPBUFR[0]);
02030  M01S02029.ssuse   +++|        P<SMUMAP> = SM$ADDR;
02031  M01S02030.ssuse   +++|
02032  M01S02031.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02033  M01S02032.ssuse   +++|        THEN
02034  M01S02033.ssuse   +++|          BEGIN  # SMMAP NOT OPENED SUCCESSFULLY #
02035  M01S02034.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
02036  M01S02035.ssuse   +++|          THEN
02037  M01S02036.ssuse   +++|            BEGIN
02038  M01S02037.ssuse   +++|            SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
02039  M01S02038.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02040  M01S02039.ssuse   +++|            RPCLOSE(OUT$FETP);
02041  M01S02040.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02042  M01S02041.ssuse   +++|            END
02043  M01S02042.ssuse   +++|
02044  M01S02043.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
02045  M01S02044.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
02046  M01S02045.ssuse   +++|          THEN
02047  M01S02046.ssuse   +++|            BEGIN
02048  M01S02047.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN SMMAP.";
02049  M01S02048.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02050  M01S02049.ssuse   +++|            RPCLOSE(OUT$FETP);
02051  M01S02050.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02052  M01S02051.ssuse   +++|            END
02053  M01S02052.ssuse   +++|
02054  M01S02053.ssuse   +++|          ELSE
02055  M01S02054.ssuse   +++|            BEGIN
02056  M01S02055.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
02057  M01S02056.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
02058  M01S02057.ssuse   +++|            RPCLOSE(OUT$FETP);
02059  M01S02058.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02060  M01S02059.ssuse   +++|            END
02061  M01S02060.ssuse   +++|
02062  M01S02061.ssuse   +++|          END  # SMMAP NOT OPENED SUCCESSFULLY #
02063  M01S02062.ssuse   +++|
02064  M01S02063.ssuse   +++|#
02065  M01S02064.ssuse   +++|*     PROCESS EACH Y,Z PAIR.
02066  M01S02065.ssuse   +++|#
02067  M01S02066.ssuse   +++|
02068  M01S02067.ssuse   +++|        SLOWFOR Z = 0 STEP 1 UNTIL MAX$Z
02069  M01S02068.ssuse   +++|        DO
02070  M01S02069.ssuse   +++|          BEGIN  # PROCESS EACH Z COORDINATE #
02071  M01S02070.ssuse   +++|
02072  M01S02071.ssuse   +++|#
02073  M01S02072.ssuse   +++|*     DO NOT PROCESS THE COLUMN CONTAINING THE DRD-S.
02074  M01S02073.ssuse   +++|#
02075  M01S02074.ssuse   +++|
02076  M01S02075.ssuse   +++|          IF Z EQ Z$NO$CUBE
02077  M01S02076.ssuse   +++|          THEN
02078  M01S02077.ssuse   +++|            BEGIN
02079  M01S02078.ssuse   +++|            TEST Z;
02080  M01S02079.ssuse   +++|            END
02081  M01S02080.ssuse   +++|
02082  M01S02081.ssuse   +++|#
02083  M01S02082.ssuse   +++|*     WRITE HEADER TO REPORT FILE.
02084  M01S02083.ssuse   +++|#
02085  M01S02084.ssuse   +++|
02086  M01S02085.ssuse   +++|            RPEJECT(OUT$FETP);
02087  M01S02086.ssuse   +++|            RPLINE(OUT$FETP,"SSUSE OPTIONAL REPORT A - ",5,26,1);
02088  M01S02087.ssuse   +++|            RPLINE(OUT$FETP,"STORAGE MODULE MAP FOR SM = ",31,28,1);
02089  M01S02088.ssuse   +++|            RPLINE(OUT$FETP,TEMP$SM,59,1,0);
02090  M01S02089.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02091  M01S02090.ssuse   +++|            RPLINE(OUT$FETP,"FLAGS:",5,6,1);
02092  M01S02091.ssuse   +++|            RPLINE(OUT$FETP,"P = CARTRIDGE EXISTS IN POOL",15,28,1);
02093  M01S02092.ssuse   +++|            RPLINE(OUT$FETP,"S = RESERVED FOR SYSTEM USE",49,27,1);
02094  M01S02093.ssuse   +++|            RPLINE(OUT$FETP,"C = RESERVED FOR CUSTOMER ",81,26,1);
02095  M01S02094.ssuse   +++|            RPLINE(OUT$FETP,"ENGINEERING",107,11,0);
02096  M01S02095.ssuse   +++|            RPLINE(OUT$FETP,"F = NOT ASSIGNED TO THIS FAMILY",15,31,1);
02097  M01S02096.ssuse   +++|            RPLINE(OUT$FETP,"E = ERROR FLAG",49,14,1);
02098  M01S02097.ssuse   +++|            RPLINE(OUT$FETP,"N = (Y,Z) DOES NOT EXIST",81,24,1);
02099  M01S02098.ssuse   +++|            RPLINE(OUT$FETP," IN SMMAP",105,9,0);
02100  M01S02099.ssuse   +++|            RPLINE(OUT$FETP,"R = RESERVED FOR ALTERNATE SMMAP",15,32,1);
02101  M01S02100.ssuse   +++|            RPLINE(OUT$FETP,"GPORD = ORDINAL IN GROUP",81,24,0);
02102  M01S02101.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02103  M01S02102.ssuse   +++|            RPLINE(OUT$FETP,"Y     Z    CM  CSN",6,18,1);
02104  M01S02103.ssuse   +++|            RPLINE(OUT$FETP,"FAMILY      SUBFAMILY",30,21,1);
02105  M01S02104.ssuse   +++|            RPLINE(OUT$FETP,"GROUP    GPORD     FLAGS",56,24,0);
02106  M01S02105.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02107  M01S02106.ssuse   +++|
02108  M01S02107.ssuse   +++|          SLOWFOR Y = 0 STEP 1 UNTIL MAX$Y
02109  M01S02108.ssuse   +++|          DO
02110  M01S02109.ssuse   +++|            BEGIN  # PROCESS EACH Y COORDINATE #
02111  M01S02110.ssuse   +++|
02112  M01S02111.ssuse   +++|#
02113  M01S02112.ssuse   +++|*     CALCULATE THE ORDINAL OF THE SMMAP ENTRY.
02114  M01S02113.ssuse   +++|#
02115  M01S02114.ssuse   +++|
02116  M01S02115.ssuse   +++|            MAP$ORD = MAXORD - Z - (Y * 16);
02117  M01S02116.ssuse   +++|
02118  M01S02117.ssuse   +++|#
02119  M01S02118.ssuse   +++|*     GET THE SMMAP ENTRY AND CHECK THE RETURNED ERROR STATUS.
02120  M01S02119.ssuse   +++|#
02121  M01S02120.ssuse   +++|
02122  M01S02121.ssuse   +++|            MGETENT(SM,MAP$ORD,SM$ADDR,FLAG);
02123  M01S02122.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
02124  M01S02123.ssuse   +++|            THEN
02125  M01S02124.ssuse   +++|              BEGIN  # CHECK FOR TYPE OF ERROR #
02126  M01S02125.ssuse   +++|              IF FLAG EQ CMASTAT"CIOERR"
02127  M01S02126.ssuse   +++|              THEN
02128  M01S02127.ssuse   +++|                BEGIN
02129  M01S02128.ssuse   +++|                SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
02130  M01S02129.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
02131  M01S02130.ssuse   +++|                RPCLOSE(OUT$FETP);
02132  M01S02131.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
02133  M01S02132.ssuse   +++|                END
02134  M01S02133.ssuse   +++|
02135  M01S02134.ssuse   +++|              ELSE
02136  M01S02135.ssuse   +++|                BEGIN
02137  M01S02136.ssuse   +++|                SSMSG$PROC[0] = PROCNAME;
02138  M01S02137.ssuse   +++|                MESSAGE(SSMSG[0],SYSUDF1);
02139  M01S02138.ssuse   +++|                RPCLOSE(OUT$FETP);
02140  M01S02139.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
02141  M01S02140.ssuse   +++|                END
02142  M01S02141.ssuse   +++|
02143  M01S02142.ssuse   +++|              END  # CHECK FOR TYPE OF ERROR #
02144  M01S02143.ssuse   +++|
02145  M01S02144.ssuse   +++|#
02146  M01S02145.ssuse   +++|*     CHECK CARTRIDGE FLAGS AND SET THE APPROPRIATE CHARACTERS
02147  M01S02146.ssuse   +++|*     INTO THE REPORT FLAG.
02148  M01S02147.ssuse   +++|#
02149  M01S02148.ssuse   +++|
02150  M01S02149.ssuse   +++|            RPTFLAG = "      ";
02151  M01S02150.ssuse   +++|            IF CM$FLAG1[0]
02152  M01S02151.ssuse   +++|            THEN
02153  M01S02152.ssuse   +++|              BEGIN
02154  M01S02153.ssuse   +++|              C<0,1>RPTFLAG = "E";
02155  M01S02154.ssuse   +++|              END
02156  M01S02155.ssuse   +++|
02157  M01S02156.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"CEUSE"
02158  M01S02157.ssuse   +++|            THEN                     # RESERVED FOR CUSTOMER ENGINEER #
02159  M01S02158.ssuse   +++|              BEGIN
02160  M01S02159.ssuse   +++|              C<1,1>RPTFLAG = "C";
02161  M01S02160.ssuse   +++|              END
02162  M01S02161.ssuse   +++|
02163  M01S02162.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
02164  M01S02163.ssuse   +++|            THEN                     # ASSIGNED TO POOL #
02165  M01S02164.ssuse   +++|              BEGIN
02166  M01S02165.ssuse   +++|              C<2,1>RPTFLAG = "P";
02167  M01S02166.ssuse   +++|              END
02168  M01S02167.ssuse   +++|
02169  M01S02168.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"SYSUSE"
02170  M01S02169.ssuse   +++|            THEN                     # RESERVED FOR SYSTEM USE #
02171  M01S02170.ssuse   +++|              BEGIN
02172  M01S02171.ssuse   +++|              C<3,1>RPTFLAG = "S";
02173  M01S02172.ssuse   +++|              END
02174  M01S02173.ssuse   +++|
02175  M01S02174.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"NOCUBE"
02176  M01S02175.ssuse   +++|            THEN                     # NO CUBICLE AT THIS ORDINAL #
02177  M01S02176.ssuse   +++|              BEGIN
02178  M01S02177.ssuse   +++|              C<4,1>RPTFLAG = "N";
02179  M01S02178.ssuse   +++|              END
02180  M01S02179.ssuse   +++|
02181  M01S02180.ssuse   +++|            IF CM$FMLYNM[0] NQ USARG$FM[0]
02182  M01S02181.ssuse   +++|            THEN                     # NOT IN THIS FAMILY #
02183  M01S02182.ssuse   +++|              BEGIN
02184  M01S02183.ssuse   +++|              C<5,1>RPTFLAG = "F";
02185  M01S02184.ssuse   +++|              END
02186  M01S02185.ssuse   +++|
02187  M01S02186.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"ALTCSU"
02188  M01S02187.ssuse   +++|            THEN                     # RESERVED FOR OTHER SMMAP #
02189  M01S02188.ssuse   +++|              BEGIN
02190  M01S02189.ssuse   +++|              C<6,1>RPTFLAG = "R";
02191  M01S02190.ssuse   +++|              END
02192  M01S02191.ssuse   +++|
02193  M01S02192.ssuse   +++|#
02194  M01S02193.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND WRITE THEM TO THE
02195  M01S02194.ssuse   +++|*     REPORT FILE.
02196  M01S02195.ssuse   +++|#
02197  M01S02196.ssuse   +++|
02198  M01S02197.ssuse   +++|            CHAR$10[0] = XCDD(Y);
02199  M01S02198.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],5,2,1);
02200  M01S02199.ssuse   +++|
02201  M01S02200.ssuse   +++|            CHAR$10[0] = XCDD(Z);
02202  M01S02201.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],11,2,1);
02203  M01S02202.ssuse   +++|
02204  M01S02203.ssuse   +++|            CHAR$10[0] = CM$CCOD[0];
02205  M01S02204.ssuse   +++|            BZFILL(CHAR,TYPFILL"BFILL",10);
02206  M01S02205.ssuse   +++|            RPLINE(OUT$FETP,CHAR$L2[0],17,2,1);
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssuse.txt ยท Last modified: by 127.0.0.1