User Tools

Site Tools


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

Deck SSUSE

Library Member Format: MODIFY

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.ssuse   +++|PRGM SSUSE;
00002  M00S00002.ssuse   +++|# TITLE SSUSE - INITIALIZES *SSUSE*.                                  #
00003  M00S00003.ssuse   +++|
00004  M00S00004.ssuse   +++|      BEGIN  # SSUSE #
00005  M00S00005.ssuse   +++|
00006  M00S00006.ssuse   +++|#
00007  M00S00007.ssuse   +++|***   SSUSE - INITIALIZES *SSUSE*.
00008  M00S00008.ssuse   +++|*
00009  M00S00009.ssuse   +++|*     THIS PRGM DOES THE INITIALIZATION FOR THE *SSUSE*
00010  M00S00010.ssuse   +++|*     UTILITY BY PROCESSING THE CONTROL CARD AND SETTING
00011  M00S00011.ssuse   +++|*     UP POINTERS AND DEFAULT VALUES.
00012  M00S00012.ssuse   +++|*
00013  M00S00013.ssuse   +++|*     SSUSE,OP,FM,SM,SB,CN,CM,L.
00014  M00S00014.ssuse   +++|*
00015  M00S00015.ssuse   +++|*     PRGM SSUSE.
00016  M00S00016.ssuse   +++|*
00017  M00S00017.ssuse   +++|*     ENTRY.     INPUTS TO SSUSE ARE-
00018  M00S00018.ssuse   +++|*                OP          SELECTS BASIC USAGE REPORT.
00019  M00S00019.ssuse   +++|*                OP=A        OPTIONAL REPORT A AND THE BASIC REPORT.
00020  M00S00020.ssuse   +++|*                OP=B        OPTIONAL REPORT B AND THE BASIC REPORT.
00021  M00S00021.ssuse   +++|*                OP=C        OPTIONAL REPORT C AND THE BASIC REPORT.
00022  M00S00022.ssuse   +++|*                OP=D        OPTIONAL REPORT D AND THE BASIC REPORT.
00023  M00S00023.ssuse   +++|*                OP=ABCD     OPTIONAL REPORTS A, B, C, AND D AND ANY
00024  M00S00024.ssuse   +++|*                            COMBINATION OF A, B, C, AND D MAY
00025  M00S00025.ssuse   +++|*                            BE USED.
00026  M00S00026.ssuse   +++|*                OP OMITTED  SAME AS OP.
00027  M00S00027.ssuse   +++|*
00028  M00S00028.ssuse   +++|*                FM          USE DEFAULT FAMILY.
00029  M00S00029.ssuse   +++|*                FM=FAMILY   THE SPECIFIED FAMILY WILL BE REPORTED.
00030  M00S00030.ssuse   +++|*                FM OMITTED  SAME AS FM.
00031  M00S00031.ssuse   +++|*
00032  M00S00032.ssuse   +++|*                SB          ALL SUBFAMILIES ARE TO BE PROCESSED.
00033  M00S00033.ssuse   +++|*                SB=CHARS    SELECT UP TO EIGHT SUBFAMILIES.  THERE
00034  M00S00034.ssuse   +++|*                            ARE EIGHT POSSIBLE SUBFAMILIES FROM 0
00035  M00S00035.ssuse   +++|*                            TO 7 (E.G.  SB=723 SELECTS SUBFAMILIES
00036  M00S00036.ssuse   +++|*                            2, 3, AND 7).
00037  M00S00037.ssuse   +++|*                SB OMITTED  SAME AS SB.
00038  M00S00038.ssuse   +++|*
00039  M00S00039.ssuse   +++|*                SM          SM A WILL BE REPORTED.
00040  M00S00040.ssuse   +++|*                SM=CHARS    SELECT UP TO EIGHT SM-S, WHICH CAN
00041  M00S00041.ssuse   +++|*                            BE ANY OF THE FOLLOWING (E.G.  SM=AGC
00042  M00S00042.ssuse   +++|*                            SELECTS SM A, C, AND G):
00043  M00S00043.ssuse   +++|*                            A - SM A
00044  M00S00044.ssuse   +++|*                            B - SM B
00045  M00S00045.ssuse   +++|*                            C - SM C
00046  M00S00046.ssuse   +++|*                            D - SM D
00047  M00S00047.ssuse   +++|*                            E - SM E
00048  M00S00048.ssuse   +++|*                            F - SM F
00049  M00S00049.ssuse   +++|*                            G - SM G
00050  M00S00050.ssuse   +++|*                            H - SM H
00051  M00S00051.ssuse   +++|*                SM OMITTED  SAME AS SM.
00052  M00S00052.ssuse   +++|*
00053  M00S00053.ssuse   +++|*                L           LISTABLE OUTPUT ON FILE *OUTPUT*.
00054  M00S00054.ssuse   +++|*                L=LFN       LISTABLE OUTPUT ON FILE *LFN*.
00055  M00S00055.ssuse   +++|*                L=0         NO OUTPUT FILE GENERATED.
00056  M00S00056.ssuse   +++|*                L OMITTED   SAME AS L.
00057  M00S00057.ssuse   +++|*
00058  M00S00058.ssuse   +++|*                CN          NOT PERMITTED.
00059  M00S00059.ssuse   +++|*                CN=CSN      THE SELECTED CSN WILL BE REPORTED IN
00060  M00S00060.ssuse   +++|*                            REPORT D.
00061  M00S00061.ssuse   +++|*                CN OMITTED  NOT PERMITTED.
00062  M00S00062.ssuse   +++|*
00063  M00S00063.ssuse   +++|*                CM          MANUFACTURER OF CARTRIDGE *CN*.  DEFAULT
00064  M00S00064.ssuse   +++|*                            MANUFACTURER IS USED.
00065  M00S00065.ssuse   +++|*                CM=A        MANUFACTURER *A-* IS USED, (A- = IBM).
00066  M00S00066.ssuse   +++|*                CM OMITTED  SAME AS *CM*.
00067  M00S00067.ssuse   +++|*
00068  M00S00068.ssuse   +++|*     EXIT.      *SSUSE* PROCESSING COMPLETE OR AN ERROR
00069  M00S00069.ssuse   +++|*                CONDITION ENCOUNTERED.
00070  M00S00070.ssuse   +++|*
00071  M00S00071.ssuse   +++|*     MESSAGES.  1.  SSUSE COMPLETE.
00072  M00S00072.ssuse   +++|*                2.  SSUSE - ARGUMENT ERROR.
00073  M00S00073.ssuse   +++|*                3. SSUSE - MUST BE SYSTEM ORIGIN.
00074  M00S00074.ssuse   +++|*
00075  M00S00075.ssuse   +++|*     NOTES.     PRGM *SSUSE* INITIALIZES *SSUSE*.  A PARAMETER
00076  M00S00076.ssuse   +++|*                TABLE IS SET UP BEFORE ANY PROCESSING IS DONE.
00077  M00S00077.ssuse   +++|*                *SSUSE* THEN PROCESSES THE CONTROL CARD, WHERE THE
00078  M00S00078.ssuse   +++|*                PROCESSED PARAMETERS ARE RETURNED IN THE COMMON
00079  M00S00079.ssuse   +++|*                AREA *TUSPCOM*.  ANY SYNTAX ERROR IN THE CONTROL
00080  M00S00080.ssuse   +++|*                CARD CAUSES *SSUSE* TO ABORT.  AFTER THE PARAMETERS
00081  M00S00081.ssuse   +++|*                ARE PROCESSED AND SYNTAX CHECKED, THEY ARE THEN
00082  M00S00082.ssuse   +++|*                CHECKED BY *USOPT* TO SEE IF THE OPTIONS SPECIFIED
00083  M00S00083.ssuse   +++|*                ARE VALID.  *USOPT* ABORTS WITH A DESCRIPTIVE
00084  M00S00084.ssuse   +++|*                ERROR MESSAGE WHENEVER IT ENCOUNTERS AN
00085  M00S00085.ssuse   +++|*                ERROR CONDITION.  PROC *USRPBAS* IS CALLED TO
00086  M00S00086.ssuse   +++|*                GENERATE THE BASIC AND OPTIONAL REPORTS.  AN
00087  M00S00087.ssuse   +++|*                *SSUSE COMPLETE* MESSAGE IS ISSUED TO THE DAYFILE
00088  M00S00088.ssuse   +++|*                IF ALL REPORTS HAVE BEEN GENERATED SUCCESSFULLY.
Line S00089 Modification History
M01 (Removed by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00089  M01S00089.281l803 ---|*     COPYRIGHT CONTROL DATA CORP., 1983.
Line S00001 Modification History
M01 (Added by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00090  M01S00001.281l803 +++|*     COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00091  M00S00090.ssuse   +++|#
00092  M00S00091.ssuse   +++|
00093  M00S00092.ssuse   +++|#
00094  M00S00093.ssuse   +++|****  PROC SSUSE - XREF LIST BEGIN.
00095  M00S00094.ssuse   +++|#
00096  M00S00095.ssuse   +++|
00097  M00S00096.ssuse   +++|      XREF
00098  M00S00097.ssuse   +++|        BEGIN
00099  M00S00098.ssuse   +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
00100  M00S00099.ssuse   +++|        PROC GETFAM;                 # GETS DEFAULT FAMILY #
00101  M00S00100.ssuse   +++|        PROC GETPFP;                 # GET USER INDEX AND FAMILY #
00102  M00S00101.ssuse   +++|        PROC GETSPS;                 # GET SYSTEM ORIGIN STATUS #
00103  M00S00102.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
00104  M00S00103.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00105  M00S00104.ssuse   +++|                                       OR RETURN #
00106  M00S00105.ssuse   +++|        PROC SSINIT;                 # SETS UP TABLES AND POINTERS #
00107  M00S00106.ssuse   +++|        PROC USOPT;                  # CHECKS FOR VALID OPTIONS #
00108  M00S00107.ssuse   +++|        PROC USRPBAS;                # GENERATES BASIC AND OPTIONAL
00109  M00S00108.ssuse   +++|                                       REPORTS #
00110  M00S00109.ssuse   +++|        PROC USTAB;                  # SETS UP PARAMETER TABLE #
00111  M00S00110.ssuse   +++|        PROC XARG;                   # CRACK PARAMETER LIST #
00112  M00S00111.ssuse   +++|        END
00113  M00S00112.ssuse   +++|
00114  M00S00113.ssuse   +++|#
00115  M00S00114.ssuse   +++|****  PROC SSUSE - XREF LIST END.
00116  M00S00115.ssuse   +++|#
00117  M00S00116.ssuse   +++|
00118  M00S00117.ssuse   +++|      DEF RSLEN      #1#;            # RETURN STATUS WORD LENGTH #
00119  M00S00118.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00120  M00S00119.ssuse   +++|                                               CONTROL PRESET;
00121  M00S00120.ssuse   +++|*CALL COMBFAS
00122  M00S00121.ssuse   +++|*CALL COMBCMD
00123  M00S00122.ssuse   +++|*CALL COMBMCT
00124  M00S00123.ssuse   +++|*CALL COMBPFP
00125  M00S00124.ssuse   +++|*CALL COMXMSC
00126  M00S00125.ssuse   +++|*CALL COMSPFM
00127  M00S00126.ssuse   +++|*CALL COMTFMT
00128  M00S00127.ssuse   +++|*CALL COMTUSE
00129  M00S00128.ssuse   +++|*CALL COMTUSP
00130  M00S00129.ssuse   +++|
00131  M00S00130.ssuse   +++|      ITEM ARGLIST    U;             # ADDRESS OF ARGUMENT TABLE #
00132  M00S00131.ssuse   +++|      ITEM DEFAULT    I;             # DEFAULT FAMILY ORDINAL #
00133  M00S00132.ssuse   +++|      ITEM FAM$NUM    I;             # NUMBER OF FAMILIES #
00134  M00S00133.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
00135  M00S00134.ssuse   +++|      ITEM LINK       I;             # LINK FAMILY ORDINAL #
00136  M00S00135.ssuse   +++|      ITEM SSID       I;             # SUBSYSTEM ID #
00137  M00S00136.ssuse   +++|
00138  M00S00137.ssuse   +++|      ARRAY SPSSTAT [0:0] S(RSLEN);
00139  M00S00138.ssuse   +++|        BEGIN
00140  M00S00139.ssuse   +++|        ITEM SPS$STATUS U(00,48,12);  # RETURN STATUS #
00141  M00S00140.ssuse   +++|        END
00142  M00S00141.ssuse   +++|
00143  M00S00142.ssuse   +++|                                               CONTROL EJECT;
00144  M00S00143.ssuse   +++|
00145  M00S00144.ssuse   +++|#
00146  M00S00145.ssuse   +++|*     IF THE USER JOB HAS SYSTEM ORIGIN PRIVILEGES THEN SAVE THE USER-S
00147  M00S00146.ssuse   +++|*     CURRENT FAMILY AND INDEX IN COMMON.
00148  M00S00147.ssuse   +++|#
00149  M00S00148.ssuse   +++|
00150  M00S00149.ssuse   +++|      GETSPS(SPSSTAT);               # GET SYSTEM ORIGIN STATUS #
00151  M00S00150.ssuse   +++|      IF SPS$STATUS NQ 0
00152  M00S00151.ssuse   +++|      THEN
00153  M00S00152.ssuse   +++|        BEGIN
00154  M00S00153.ssuse   +++|        SSMSG$LINE[0] = " SSUSE - MUST BE SYSTEM ORIGIN.";
00155  M00S00154.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00156  M00S00155.ssuse   +++|        ABORT;
00157  M00S00156.ssuse   +++|        END
00158  M00S00157.ssuse   +++|
00159  M00S00158.ssuse   +++|      GETPFP(PFP[0]);
00160  M00S00159.ssuse   +++|      USER$FAM[0] = PFP$FAM[0];
00161  M00S00160.ssuse   +++|      USER$UI[0] = PFP$UI[0];
00162  M00S00161.ssuse   +++|
00163  M00S00162.ssuse   +++|#
00164  M00S00163.ssuse   +++|*     PROCESS THE PARAMETERS ON *SSUSE* CALL.
00165  M00S00164.ssuse   +++|#
00166  M00S00165.ssuse   +++|
00167  M00S00166.ssuse   +++|      USTAB(ARGLIST);                # SET UP THE ARGUMENT LIST #
00168  M00S00167.ssuse   +++|      XARG(ARGLIST,0,FLAG);          # PROCESS THE CONTROL STATEMENT #
00169  M00S00168.ssuse   +++|      IF FLAG NQ 0
00170  M00S00169.ssuse   +++|      THEN                           # SYNTAX ERROR #
00171  M00S00170.ssuse   +++|        BEGIN
00172  M00S00171.ssuse   +++|        SSMSG$LINE[0] = " SSUSE - ARGUMENT ERROR.";
00173  M00S00172.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00174  M00S00173.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00175  M00S00174.ssuse   +++|        END
00176  M00S00175.ssuse   +++|
00177  M00S00176.ssuse   +++|#
00178  M00S00177.ssuse   +++|*     CONVERT PARAMETERS AND CHECK FOR ALL THE VALID
00179  M00S00178.ssuse   +++|*     OPTIONS ON THE CONTROL CARD.
00180  M00S00179.ssuse   +++|#
00181  M00S00180.ssuse   +++|
00182  M00S00181.ssuse   +++|      USOPT;
00183  M00S00182.ssuse   +++|
00184  M00S00183.ssuse   +++|#
00185  M00S00184.ssuse   +++|*     IF *FM* IS NOT SPECIFIED, USE THE DEFAULT FAMILY.
00186  M00S00185.ssuse   +++|#
00187  M00S00186.ssuse   +++|
00188  M00S00187.ssuse   +++|      SSID = ATAS;
00189  M00S00188.ssuse   +++|      GETFAM(FAMT[1],FAM$NUM,LINK,DEFAULT,SSID);
00190  M00S00189.ssuse   +++|      DEF$FAM = FAM$NAME[DEFAULT];
00191  M00S00190.ssuse   +++|      IF USARG$FM[0] EQ 0
00192  M00S00191.ssuse   +++|      THEN
00193  M00S00192.ssuse   +++|        BEGIN
00194  M00S00193.ssuse   +++|        USARG$FM[0] = DEF$FAM;
00195  M00S00194.ssuse   +++|        END
00196  M00S00195.ssuse   +++|
00197  M00S00196.ssuse   +++|#
00198  M00S00197.ssuse   +++|*     INITIALIZE TABLES AND POINTERS NEEDED BY
00199  M00S00198.ssuse   +++|*     CATALOG/MAP ACCESS ROUTINES.
00200  M00S00199.ssuse   +++|#
00201  M00S00200.ssuse   +++|
00202  M00S00201.ssuse   +++|      SSINIT;
00203  M00S00202.ssuse   +++|
00204  M00S00203.ssuse   +++|#
00205  M00S00204.ssuse   +++|*     GENERATE THE BASIC AND OPTIONAL REPORTS REQUESTED BY
00206  M00S00205.ssuse   +++|*     THE CONTROL CARD PARAMETERS.
00207  M00S00206.ssuse   +++|#
00208  M00S00207.ssuse   +++|
00209  M00S00208.ssuse   +++|      USRPBAS;
00210  M00S00209.ssuse   +++|
00211  M00S00210.ssuse   +++|#
00212  M00S00211.ssuse   +++|*     DISPLAY *SSUSE COMPLETE* IN THE DAYFILE.
00213  M00S00212.ssuse   +++|#
00214  M00S00213.ssuse   +++|
00215  M00S00214.ssuse   +++|      SSMSG$LINE[0] = " SSUSE COMPLETE.";
00216  M00S00215.ssuse   +++|      MESSAGE(SSMSG$BUF[0],SYSUDF1);
00217  M00S00216.ssuse   +++|      RESTPFP(PFP$END);              # RESTORE USER-S *PFP* #
00218  M00S00217.ssuse   +++|
00219  M00S00218.ssuse   +++|      END  # SSUSE #
00220  M00S00219.ssuse   +++|
00221  M00S00220.ssuse   +++|    TERM
00222  M00S00221.ssuse   +++|PROC USANALS((SUBFAM),(SMID));
00223  M00S00222.ssuse   +++|# TITLE USANALS - ANALYZES SFMCATALOG ENTRIES FOR A SM.               #
00224  M00S00223.ssuse   +++|
00225  M00S00224.ssuse   +++|      BEGIN  # USANALS #
00226  M00S00225.ssuse   +++|
00227  M00S00226.ssuse   +++|#
00228  M00S00227.ssuse   +++|**    USANALS - ANALYZES SFM CATALOG ENTRIES FOR A SM.
00229  M00S00228.ssuse   +++|*
00230  M00S00229.ssuse   +++|*     THIS PROCEDURE ANALYZES THE *AST* AND *FCT* ENTRIES FOR A SM.
00231  M00S00230.ssuse   +++|*
00232  M00S00231.ssuse   +++|*     PROC USANALS((SUBFAM),(SMID)).
00233  M00S00232.ssuse   +++|*
00234  M00S00233.ssuse   +++|*     ENTRY     (SUBFAM)   =  SUBFAMILY IDENTIFIER.
00235  M00S00234.ssuse   +++|*               (SMID)     =  SM IDENTIFIER.
00236  M00S00235.ssuse   +++|*
00237  M00S00236.ssuse   +++|*     EXIT      SUB-TOTALS COUNTERS ARE UPDATED IN THE COMMON
00238  M00S00237.ssuse   +++|*               AREA.
00239  M00S00238.ssuse   +++|*
00240  M00S00239.ssuse   +++|*     MESSAGES  1. SFMCATALOG PARITY ERROR.
00241  M00S00240.ssuse   +++|*               2. FAMILY NOT FOUND.
00242  M00S00241.ssuse   +++|*               3. SMMAP PARITY ERROR.
00243  M00S00242.ssuse   +++|*               4. UNABLE TO OPEN SMMAP.
00244  M00S00243.ssuse   +++|*               5. SSUSE ABNORMAL, USANALS.
00245  M00S00244.ssuse   +++|*
00246  M00S00245.ssuse   +++|*     NOTES     PROC *USANALS* CALLS *CRDAST* TO GET THE *AST* FOR THE
00247  M00S00246.ssuse   +++|*               SPECIFIED SM.  IT THEN CALLS *CGETFCT* TO GET AN *FCT*
00248  M00S00247.ssuse   +++|*               ENTRY.  THE VARIOUS FIELDS WITHIN EACH *AST* AND *FCT*
00249  M00S00248.ssuse   +++|*               ENTRY ARE CHECKED FOR CERTAIN CONDITIONS AND THE
00250  M00S00249.ssuse   +++|*               APPROPRIATE COUNTERS ARE UPDATED.  THE SMMAP IS
00251  M00S00250.ssuse   +++|*               SEARCHED FOR EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY.
00252  M00S00251.ssuse   +++|#
00253  M00S00252.ssuse   +++|
00254  M00S00253.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
00255  M00S00254.ssuse   +++|      ITEM SMID       U;             # SM IDENTIFIER #
00256  M00S00255.ssuse   +++|
00257  M00S00256.ssuse   +++|#
00258  M00S00257.ssuse   +++|****  PROC USANALS - XREF LIST BEGIN.
00259  M00S00258.ssuse   +++|#
00260  M00S00259.ssuse   +++|
00261  M00S00260.ssuse   +++|      XREF
00262  M00S00261.ssuse   +++|        BEGIN
00263  M00S00262.ssuse   +++|        PROC CGETFCT;                # GETS *FCT* ENTRY #
00264  M00S00263.ssuse   +++|        PROC CRDAST;                 # READS *AST* #
00265  M00S00264.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
00266  M00S00265.ssuse   +++|        PROC MCLOSE;                 # CLOSE SMMAP #
00267  M00S00266.ssuse   +++|        PROC MESSAGE;                # ISSUES MESSAGE IN DAYFILE #
00268  M00S00267.ssuse   +++|        PROC MGETENT;                # GETS MAP ENTRY #
00269  M00S00268.ssuse   +++|        PROC MOPEN;                  # OPENS SMMAP #
00270  M00S00269.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00271  M00S00270.ssuse   +++|                                       OR RETURN #
00272  M00S00271.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
00273  M00S00272.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
00274  M00S00273.ssuse   +++|        END
00275  M00S00274.ssuse   +++|
00276  M00S00275.ssuse   +++|#
00277  M00S00276.ssuse   +++|****  PROC USANALS - XREF LIST END.
00278  M00S00277.ssuse   +++|#
00279  M00S00278.ssuse   +++|
00280  M00S00279.ssuse   +++|      DEF PROCNAME #"USANALS."#;     # PROC NAME #
00281  M00S00280.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00282  M00S00281.ssuse   +++|*CALL COMBFAS
00283  M00S00282.ssuse   +++|*CALL COMBCMD
00284  M00S00283.ssuse   +++|*CALL COMBCMS
00285  M00S00284.ssuse   +++|*CALL,COMBMAP
00286  M00S00285.ssuse   +++|*CALL,COMBPFP
00287  M00S00286.ssuse   +++|*CALL,COMSPFM
00288  M00S00287.ssuse   +++|*CALL COMBMCT
00289  M00S00288.ssuse   +++|*CALL COMXMSC
00290  M00S00289.ssuse   +++|*CALL COMTOUT
00291  M00S00290.ssuse   +++|*CALL COMTUSE
00292  M00S00291.ssuse   +++|*CALL COMTUSP
00293  M00S00292.ssuse   +++|
00294  M00S00293.ssuse   +++|      ITEM BADDR      I;             # *AST* BUFFER ADDRESS #
00295  M00S00294.ssuse   +++|      ITEM BFADDR     I;             # *FCT* BUFFER ADDRESS #
00296  M00S00295.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
00297  M00S00296.ssuse   +++|      ITEM GP         I;             # GROUP #
00298  M00S00297.ssuse   +++|      ITEM I          I;             # LOOP VARIABLE #
00299  M00S00298.ssuse   +++|      ITEM N          I;             # LOOP VARIABLE #
00300  M00S00299.ssuse   +++|      ITEM MAP$ORD    I;             # SMMAP ORDINAL #
00301  M00S00300.ssuse   +++|      ITEM SM$ADDR    I;             # ADDRESS OF SMMAP #
00302  M00S00301.ssuse   +++|      ITEM Y          I;             # Y COORDINATE #
00303  M00S00302.ssuse   +++|      ITEM Z          I;             # Z COORDINATE #
00304  M00S00303.ssuse   +++|
00305  M00S00304.ssuse   +++|      ARRAY SMMAP$NM [0:0] P(1);     # ARRAY TO BUILD SMMAP #
00306  M00S00305.ssuse   +++|        BEGIN
00307  M00S00306.ssuse   +++|        ITEM SMAP$NAME  C(00,00,07); # SMMAP FILE NAME #
00308  M00S00307.ssuse   +++|        ITEM SMAP$CHAR  C(00,00,05); # FIRST FIVE CHARACTERS #
00309  M00S00308.ssuse   +++|        ITEM SMAP$SMID  C(00,30,01); # SM-ID #
00310  M00S00309.ssuse   +++|        ITEM SMAP$Z     U(00,36,24) = [0];  # ZERO FILL FILE NAME #
00311  M00S00310.ssuse   +++|        END
00312  M00S00311.ssuse   +++|
00313  M00S00312.ssuse   +++|                                               CONTROL EJECT;
00314  M00S00313.ssuse   +++|
00315  M00S00314.ssuse   +++|#
00316  M00S00315.ssuse   +++|*     GET THE *AST* AND CHECK THE RETURNED ERROR STATUS.
00317  M00S00316.ssuse   +++|#
00318  M00S00317.ssuse   +++|
00319  M00S00318.ssuse   +++|      BADDR = LOC(US$ASTENT[0]);
00320  M00S00319.ssuse   +++|      CRDAST(USARG$FM[0],SUBFAM,SMID,BADDR,0,FLAG);
00321  M00S00320.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00322  M00S00321.ssuse   +++|      THEN                           # UNABLE TO GET *AST* #
00323  M00S00322.ssuse   +++|        BEGIN
00324  M00S00323.ssuse   +++|        SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
00325  M00S00324.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00326  M00S00325.ssuse   +++|        RPCLOSE(OUT$FETP);
00327  M00S00326.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00328  M00S00327.ssuse   +++|        END
00329  M00S00328.ssuse   +++|
00330  M00S00329.ssuse   +++|      P<AST> = BADDR;
00331  M00S00330.ssuse   +++|
00332  M00S00331.ssuse   +++|#
00333  M00S00332.ssuse   +++|*     PROCESS ALL *AST* AND *FCT* ENTRIES.
00334  M00S00333.ssuse   +++|#
00335  M00S00334.ssuse   +++|
00336  M00S00335.ssuse   +++|      SLOWFOR I = 16 STEP 1 UNTIL PRM$ENTRC[SMID] + 15
00337  M00S00336.ssuse   +++|      DO
00338  M00S00337.ssuse   +++|        BEGIN  # PROCESS AN *AST* AND *FCT* ENTRY #
00339  M00S00338.ssuse   +++|
00340  M00S00339.ssuse   +++|#
00341  M00S00340.ssuse   +++|*     GET AN *FCT* ENTRY AND CHECK THE RETURNED ERROR STATUS.
00342  M00S00341.ssuse   +++|#
00343  M00S00342.ssuse   +++|
00344  M00S00343.ssuse   +++|        BFADDR = LOC(US$FCTENT[0]);
00345  M00S00344.ssuse   +++|        CGETFCT(USARG$FM[0],SUBFAM,SMID,I,BFADDR,0,FLAG);
00346  M00S00345.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
00347  M00S00346.ssuse   +++|        THEN                         # UNABLE TO GET *FCT* #
00348  M00S00347.ssuse   +++|          BEGIN
00349  M00S00348.ssuse   +++|          SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
00350  M00S00349.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00351  M00S00350.ssuse   +++|          RPCLOSE(OUT$FETP);
00352  M00S00351.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00353  M00S00352.ssuse   +++|          END
00354  M00S00353.ssuse   +++|
00355  M00S00354.ssuse   +++|        P<FCT> = BFADDR;
00356  M00S00355.ssuse   +++|        GP = I / MAXGRT;             # SET GROUP INDEX #
00357  M00S00356.ssuse   +++|
00358  M00S00357.ssuse   +++|#
00359  M00S00358.ssuse   +++|*     UPDATE CUBE COUNTER AND CHECK CUBE STATUS.  IF NO CARTRIDGE
00360  M00S00359.ssuse   +++|*     ASSIGNED TO THIS CUBICLE, GET NEXT ENTRY.
00361  M00S00360.ssuse   +++|#
00362  M00S00361.ssuse   +++|
00363  M00S00362.ssuse   +++|        IF FCT$CSND[0] EQ "  "
00364  M00S00363.ssuse   +++|          OR FCT$CSNI[0] EQ 0
00365  M00S00364.ssuse   +++|        THEN                         # NO CARTRIDGE ASSIGNED TO CUBE #
00366  M00S00365.ssuse   +++|          BEGIN
00367  M00S00366.ssuse   +++|          TEST I;
00368  M00S00367.ssuse   +++|          END
00369  M00S00368.ssuse   +++|
00370  M00S00369.ssuse   +++|        GRP$LOC[GP] = GRP$LOC[GP] + 1;
00371  M00S00370.ssuse   +++|        GRP$RES[GP] = GRP$RES[GP] + 1;  # NUM CARTRIDGES IN GROUP #
00372  M00S00371.ssuse   +++|
00373  M00S00372.ssuse   +++|#
00374  M00S00373.ssuse   +++|*     UPDATE THE AVAILABLE AU FOR SMALL AND LARGE FILES.
00375  M00S00374.ssuse   +++|#
00376  M00S00375.ssuse   +++|
00377  M00S00376.ssuse   +++|        GRP$AUSF[GP] = GRP$AUSF[GP] + AST$AUSF[I];
00378  M00S00377.ssuse   +++|        GRP$AULF[GP] = GRP$AULF[GP] + AST$AULF[I];
00379  M00S00378.ssuse   +++|
00380  M00S00379.ssuse   +++|#
00381  M00S00380.ssuse   +++|*     CHECK FOR AVAILABLE OFF CARTRIDGE LINKS AND UPDATE THE COUNTER.
00382  M00S00381.ssuse   +++|#
00383  M00S00382.ssuse   +++|
00384  M00S00383.ssuse   +++|        IF NOT AST$NOCLF[I]
00385  M00S00384.ssuse   +++|        THEN                         # OFF CARTRIDGE LINKS AVAILABLE #
00386  M00S00385.ssuse   +++|          BEGIN
00387  M00S00386.ssuse   +++|          GRP$OCL[GP] = GRP$OCL[GP] + 1;
00388  M00S00387.ssuse   +++|          END
00389  M00S00388.ssuse   +++|
00390  M00S00389.ssuse   +++|#
00391  M00S00390.ssuse   +++|*     CHECK *FCT* FLAGS AND UPDATE THE APPROPRIATE COUNTERS.
00392  M00S00391.ssuse   +++|#
00393  M00S00392.ssuse   +++|
00394  M00S00393.ssuse   +++|        IF FCT$IAF[0]
00395  M00S00394.ssuse   +++|        THEN                         # INHIBIT ALLOCATION #
00396  M00S00395.ssuse   +++|          BEGIN
00397  M00S00396.ssuse   +++|          GRP$INH[GP] = GRP$INH[GP] + 1;
00398  M00S00397.ssuse   +++|          END
00399  M00S00398.ssuse   +++|
00400  M00S00399.ssuse   +++|        IF FCT$LCF[0]
00401  M00S00400.ssuse   +++|        THEN                         # CARTRIDGE LOST #
00402  M00S00401.ssuse   +++|          BEGIN
00403  M00S00402.ssuse   +++|          GRP$LOST[GP] = GRP$LOST[GP] + 1;
00404  M00S00403.ssuse   +++|          END
00405  M00S00404.ssuse   +++|
00406  M00S00405.ssuse   +++|        IF FCT$EEF[0]
00407  M00S00406.ssuse   +++|        THEN                         # EXCESSIVE ERRORS #
00408  M00S00407.ssuse   +++|          BEGIN
00409  M00S00408.ssuse   +++|          GRP$XPE[GP] = GRP$XPE[GP] + 1;
00410  M00S00409.ssuse   +++|          END
00411  M00S00410.ssuse   +++|
00412  M00S00411.ssuse   +++|        IF FCT$SEF[0]
00413  M00S00412.ssuse   +++|        THEN                         # SMMAP ERROR #
00414  M00S00413.ssuse   +++|          BEGIN
00415  M00S00414.ssuse   +++|          GRP$SE[GP] = GRP$SE[GP] + 1;
00416  M00S00415.ssuse   +++|          END
00417  M00S00416.ssuse   +++|
00418  M00S00417.ssuse   +++|        IF FCT$FCF[0]
00419  M00S00418.ssuse   +++|        THEN                         # FREE CARTRIDGE #
00420  M00S00419.ssuse   +++|          BEGIN
00421  M00S00420.ssuse   +++|          GRP$FRC[GP] = GRP$FRC[GP] + 1;
00422  M00S00421.ssuse   +++|          END
00423  M00S00422.ssuse   +++|
00424  M00S00423.ssuse   +++|#
00425  M00S00424.ssuse   +++|*     CHECK EACH AU FOR ERRORS AND AVAILABILITY.  UPDATE THE
00426  M00S00425.ssuse   +++|*     APPROPRIATE COUNTERS.
00427  M00S00426.ssuse   +++|#
00428  M00S00427.ssuse   +++|
00429  M00S00428.ssuse   +++|        SLOWFOR N = 1 STEP 1 UNTIL INAVOT
00430  M00S00429.ssuse   +++|        DO
00431  M00S00430.ssuse   +++|          BEGIN  # FOR EACH AU #
00432  M00S00431.ssuse   +++|
00433  M00S00432.ssuse   +++|#
00434  M00S00433.ssuse   +++|*     CHECK AU FLAGS, UPDATE COUNTERS IF NECESSARY.
00435  M00S00434.ssuse   +++|#
00436  M00S00435.ssuse   +++|
00437  M00S00436.ssuse   +++|          SETFCTX(N);                # SET *FWD* AND *FPS* VALUES #
00438  M00S00437.ssuse   +++|          IF FCT$AUCF(FWD,FPS) NQ 0
00439  M00S00438.ssuse   +++|          THEN                       # AU CONFLICT #
00440  M00S00439.ssuse   +++|            BEGIN
00441  M00S00440.ssuse   +++|            GRP$AUC[GP] = GRP$AUC[GP] + 1;
00442  M00S00441.ssuse   +++|            END
00443  M00S00442.ssuse   +++|
00444  M00S00443.ssuse   +++|          IF FCT$FRCF(FWD,FPS) NQ 0
00445  M00S00444.ssuse   +++|          THEN                       # FROZEN CHAIN #
00446  M00S00445.ssuse   +++|            BEGIN
00447  M00S00446.ssuse   +++|            GRP$FC[GP] = GRP$FC[GP] + 1;
00448  M00S00447.ssuse   +++|            END
00449  M00S00448.ssuse   +++|
00450  M00S00449.ssuse   +++|          IF FCT$SFF(FWD,FPS) NQ 0
00451  M00S00450.ssuse   +++|          THEN                       # START OF FRAGMENT #
00452  M00S00451.ssuse   +++|            BEGIN
00453  M00S00452.ssuse   +++|            GRP$SF[GP] = GRP$SF[GP] + 1;
00454  M00S00453.ssuse   +++|            END
00455  M00S00454.ssuse   +++|
00456  M00S00455.ssuse   +++|          IF FCT$FAUF(FWD,FPS) NQ 0
00457  M00S00456.ssuse   +++|          THEN                       # FLAWED AU #
00458  M00S00457.ssuse   +++|            BEGIN
00459  M00S00458.ssuse   +++|            IF FCT$FBF(FWD,FPS) NQ 0
00460  M00S00459.ssuse   +++|            THEN                     # FLAWED AND ALLOCATED #
00461  M00S00460.ssuse   +++|              BEGIN
00462  M00S00461.ssuse   +++|              GRP$FB[GP] = GRP$FB[GP] + 1;
00463  M00S00462.ssuse   +++|              END
00464  M00S00463.ssuse   +++|
00465  M00S00464.ssuse   +++|            ELSE                     # FLAWED AND UNALLOCATED #
00466  M00S00465.ssuse   +++|              BEGIN
00467  M00S00466.ssuse   +++|              GRP$FA[GP] = GRP$FA[GP] +1;
00468  M00S00467.ssuse   +++|              END
00469  M00S00468.ssuse   +++|
00470  M00S00469.ssuse   +++|            END
00471  M00S00470.ssuse   +++|
00472  M00S00471.ssuse   +++|          END  # FOR EACH AU #
00473  M00S00472.ssuse   +++|
00474  M00S00473.ssuse   +++|        END  # PROCESS AN *AST* AND AN *FCT* ENTRY #
00475  M00S00474.ssuse   +++|
00476  M00S00475.ssuse   +++|#
00477  M00S00476.ssuse   +++|*     SEARCH THE SMMAP FOR ANY EMPTY CUBICLES ASSIGNED
00478  M00S00477.ssuse   +++|*     TO THIS SUBFAMILY.
00479  M00S00478.ssuse   +++|#
00480  M00S00479.ssuse   +++|
00481  M00S00480.ssuse   +++|      PFP$WRD0[0] = 0;
00482  M00S00481.ssuse   +++|      PFP$FAM[0] = DEF$FAM;
00483  M00S00482.ssuse   +++|      PFP$UI[0] = DEF$UI;
00484  M00S00483.ssuse   +++|      PFP$FG1[0] = TRUE;
00485  M00S00484.ssuse   +++|      PFP$FG4[0] = TRUE;
00486  M00S00485.ssuse   +++|      SETPFP(PFP[0]);
00487  M00S00486.ssuse   +++|      IF PFP$STAT NQ 0
00488  M00S00487.ssuse   +++|      THEN                           # FAMILY NOT FOUND #
00489  M00S00488.ssuse   +++|        BEGIN
00490  M00S00489.ssuse   +++|        SSMSG$LINE[0] = " FAMILY NOT FOUND.";
00491  M00S00490.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
00492  M00S00491.ssuse   +++|        RPCLOSE(OUT$FETP);
00493  M00S00492.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00494  M00S00493.ssuse   +++|        END
00495  M00S00494.ssuse   +++|
00496  M00S00495.ssuse   +++|
00497  M00S00496.ssuse   +++|      SMAP$SMID[0] = SMID;
00498  M00S00497.ssuse   +++|      SMAP$CHAR[0] = SMMAP;
00499  M00S00498.ssuse   +++|
00500  M00S00499.ssuse   +++|#
00501  M00S00500.ssuse   +++|*     OPEN THE SMMAP AND CHECK THE RETURNED ERROR STATUS.
00502  M00S00501.ssuse   +++|#
00503  M00S00502.ssuse   +++|
00504  M00S00503.ssuse   +++|      MOPEN(SMID,SMAP$NAME[0],"RM",FLAG);
00505  M00S00504.ssuse   +++|      IF FLAG EQ CMASTAT"NOERR"
00506  M00S00505.ssuse   +++|      THEN
00507  M00S00506.ssuse   +++|        BEGIN
00508  M00S00507.ssuse   +++|        LOFPROC(SMAP$NAME[0]);       # ADD LFN TO LIST OF FILES #
00509  M00S00508.ssuse   +++|        END
00510  M00S00509.ssuse   +++|
00511  M00S00510.ssuse   +++|      SM$ADDR = LOC(MAPBUFR[0]);
00512  M00S00511.ssuse   +++|      P<SMUMAP> = SM$ADDR;
00513  M00S00512.ssuse   +++|
00514  M00S00513.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00515  M00S00514.ssuse   +++|      THEN
00516  M00S00515.ssuse   +++|        BEGIN  # SMMAP NOT OPENED SUCCESSFULLY #
00517  M00S00516.ssuse   +++|        IF FLAG EQ CMASTAT"CIOERR"
00518  M00S00517.ssuse   +++|        THEN
00519  M00S00518.ssuse   +++|          BEGIN
00520  M00S00519.ssuse   +++|          SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
00521  M00S00520.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00522  M00S00521.ssuse   +++|          RPCLOSE(OUT$FETP);
00523  M00S00522.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00524  M00S00523.ssuse   +++|          END
00525  M00S00524.ssuse   +++|
00526  M00S00525.ssuse   +++|        IF FLAG EQ CMASTAT"INTLK"  ##
00527  M00S00526.ssuse   +++|          OR FLAG EQ CMASTAT"ATTERR"
00528  M00S00527.ssuse   +++|        THEN
00529  M00S00528.ssuse   +++|          BEGIN
00530  M00S00529.ssuse   +++|          SSMSG$LINE[0] = " UNABLE TO OPEN SMMAP.";
00531  M00S00530.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
00532  M00S00531.ssuse   +++|          RPCLOSE(OUT$FETP);
00533  M00S00532.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00534  M00S00533.ssuse   +++|          END
00535  M00S00534.ssuse   +++|
00536  M00S00535.ssuse   +++|        ELSE
00537  M00S00536.ssuse   +++|          BEGIN
00538  M00S00537.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
00539  M00S00538.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
00540  M00S00539.ssuse   +++|          RPCLOSE(OUT$FETP);
00541  M00S00540.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
00542  M00S00541.ssuse   +++|          END
00543  M00S00542.ssuse   +++|
00544  M00S00543.ssuse   +++|        END  # SMMAP NOT OPENED SUCCESSFULLY #
00545  M00S00544.ssuse   +++|
00546  M00S00545.ssuse   +++|#
00547  M00S00546.ssuse   +++|*     PROCESS EACH Y,Z PAIR.
00548  M00S00547.ssuse   +++|#
00549  M00S00548.ssuse   +++|
00550  M00S00549.ssuse   +++|      SLOWFOR Y = 0 STEP 1 UNTIL MAX$Y
00551  M00S00550.ssuse   +++|      DO
00552  M00S00551.ssuse   +++|        BEGIN  # PROCESS EACH Y COORDINATE #
00553  M00S00552.ssuse   +++|
00554  M00S00553.ssuse   +++|        SLOWFOR Z = 0 STEP 1 UNTIL MAX$Z
00555  M00S00554.ssuse   +++|        DO
00556  M00S00555.ssuse   +++|          BEGIN  # PROCESS EACH Z COORDINATE #
00557  M00S00556.ssuse   +++|
00558  M00S00557.ssuse   +++|#
00559  M00S00558.ssuse   +++|*     DO NOT PROCESS THE COORDINATES CONTAINING THE DRD-S
00560  M00S00559.ssuse   +++|*     OR THE ENTRY-EXIT TRAY.
00561  M00S00560.ssuse   +++|#
00562  M00S00561.ssuse   +++|
00563  M00S00562.ssuse   +++|          IF (Z LQ 1               ##
00564  M00S00563.ssuse   +++|            AND (Y LQ 15 AND Y GQ 11))  ##
00565  M00S00564.ssuse   +++|              OR Z EQ Z$NO$CUBE
00566  M00S00565.ssuse   +++|          THEN
00567  M00S00566.ssuse   +++|            BEGIN
00568  M00S00567.ssuse   +++|            TEST Z;
00569  M00S00568.ssuse   +++|            END
00570  M00S00569.ssuse   +++|
00571  M00S00570.ssuse   +++|#
00572  M00S00571.ssuse   +++|*     CALCULATE THE ORDINAL OF THE SMMAP ENTRY.
00573  M00S00572.ssuse   +++|#
00574  M00S00573.ssuse   +++|
00575  M00S00574.ssuse   +++|          MAP$ORD = MAXORD - Z - (Y * 16);
00576  M00S00575.ssuse   +++|
00577  M00S00576.ssuse   +++|#
00578  M00S00577.ssuse   +++|*     GET THE SMMAP ENTRY AND CHECK THE RETURNED ERROR STATUS.
00579  M00S00578.ssuse   +++|#
00580  M00S00579.ssuse   +++|
00581  M00S00580.ssuse   +++|          MGETENT(SMID,MAP$ORD,SM$ADDR,FLAG);
00582  M00S00581.ssuse   +++|          IF FLAG NQ CMASTAT"NOERR"
00583  M00S00582.ssuse   +++|          THEN
00584  M00S00583.ssuse   +++|            BEGIN  # CHECK FOR TYPE OF ERROR #
00585  M00S00584.ssuse   +++|            IF FLAG EQ CMASTAT"CIOERR"
00586  M00S00585.ssuse   +++|            THEN
00587  M00S00586.ssuse   +++|              BEGIN
00588  M00S00587.ssuse   +++|              SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
00589  M00S00588.ssuse   +++|              MESSAGE(SSMSG$BUF[0],SYSUDF1);
00590  M00S00589.ssuse   +++|              RPCLOSE(OUT$FETP);
00591  M00S00590.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00592  M00S00591.ssuse   +++|              END
00593  M00S00592.ssuse   +++|
00594  M00S00593.ssuse   +++|            ELSE
00595  M00S00594.ssuse   +++|              BEGIN
00596  M00S00595.ssuse   +++|              SSMSG$PROC[0] = PROCNAME;
00597  M00S00596.ssuse   +++|              MESSAGE(SSMSG[0],SYSUDF1);
00598  M00S00597.ssuse   +++|              RPCLOSE(OUT$FETP);
00599  M00S00598.ssuse   +++|              RESTPFP(PFP$ABORT);    # RESTORE USER-S *PFP* AND ABORT #
00600  M00S00599.ssuse   +++|              END
00601  M00S00600.ssuse   +++|
00602  M00S00601.ssuse   +++|            END  # CHECK FOR TYPE OF ERROR #
00603  M00S00602.ssuse   +++|
00604  M00S00603.ssuse   +++|#
00605  M00S00604.ssuse   +++|*     SEARCH FOR EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY.
00606  M00S00605.ssuse   +++|#
00607  M00S00606.ssuse   +++|
00608  M00S00607.ssuse   +++|          IF CM$CODE[0] NQ CUBSTAT"SUBFAM"
00609  M00S00608.ssuse   +++|          THEN                       # NOT IN ANY SUBFAMILY #
00610  M00S00609.ssuse   +++|            BEGIN
00611  M00S00610.ssuse   +++|            TEST Z;
00612  M00S00611.ssuse   +++|            END
00613  M00S00612.ssuse   +++|
00614  M00S00613.ssuse   +++|          IF CM$FMLYNM[0] EQ USARG$FM[0]    ##
00615  M00S00614.ssuse   +++|            AND CM$SUB[0] EQ SUBFAM         ##
00616  M00S00615.ssuse   +++|            AND CM$FCTORD[0] EQ 0
00617  M00S00616.ssuse   +++|          THEN                       # FOUND EMPTY CUBICLE #
00618  M00S00617.ssuse   +++|            BEGIN
00619  M00S00618.ssuse   +++|            GRP$LOC[0] = GRP$LOC[0] + 1;
00620  M00S00619.ssuse   +++|            END
00621  M00S00620.ssuse   +++|
00622  M00S00621.ssuse   +++|          END  # PROCESS EACH Z COORDINATE #
00623  M00S00622.ssuse   +++|
00624  M00S00623.ssuse   +++|        END  # PROCESS EACH Y COORDINATE #
00625  M00S00624.ssuse   +++|
00626  M00S00625.ssuse   +++|#
00627  M00S00626.ssuse   +++|*     CLOSE THE SMMAP.
00628  M00S00627.ssuse   +++|#
00629  M00S00628.ssuse   +++|
00630  M00S00629.ssuse   +++|      MCLOSE(SMID,FLAG);
00631  M00S00630.ssuse   +++|      IF FLAG NQ CMASTAT"NOERR"
00632  M00S00631.ssuse   +++|      THEN
00633  M00S00632.ssuse   +++|        BEGIN
00634  M00S00633.ssuse   +++|        SSMSG$PROC[0] = PROCNAME;
00635  M00S00634.ssuse   +++|        MESSAGE(SSMSG[0],SYSUDF1);
00636  M00S00635.ssuse   +++|        RPCLOSE(OUT$FETP);
00637  M00S00636.ssuse   +++|        RESTPFP(PFP$ABORT);
00638  M00S00637.ssuse   +++|        END
00639  M00S00638.ssuse   +++|
00640  M00S00639.ssuse   +++|      END  # USANALS #
00641  M00S00640.ssuse   +++|
00642  M00S00641.ssuse   +++|    TERM
00643  M00S00642.ssuse   +++|PROC USBASLN((SUBFAM),(SM));
00644  M00S00643.ssuse   +++|# TITLE USBASLN - PRINTS DETAIL LINES FOR THE BASIC REPORT.           #
00645  M00S00644.ssuse   +++|
00646  M00S00645.ssuse   +++|      BEGIN  # USBASLN #
00647  M00S00646.ssuse   +++|
00648  M00S00647.ssuse   +++|#
00649  M00S00648.ssuse   +++|**    USBASLN - PRINTS DETAIL LINES FOR THE BASIC REPORT.
00650  M00S00649.ssuse   +++|*
00651  M00S00650.ssuse   +++|*     THIS PROCEDURE PRINTS OUT THE BASIC USAGE REPORT INFORMATION
00652  M00S00651.ssuse   +++|*     TO THE REPORT FILE.
00653  M00S00652.ssuse   +++|*
00654  M00S00653.ssuse   +++|*     PROC USBASLN((SUBFAM),(SM)).
00655  M00S00654.ssuse   +++|*
00656  M00S00655.ssuse   +++|*     ENTRY.    (SUBFAM) = SUBFAMILY IDENTIFIER.
00657  M00S00656.ssuse   +++|*               (SM)     = SM IDENTIFIER.
00658  M00S00657.ssuse   +++|*
00659  M00S00658.ssuse   +++|*     EXIT      BASIC REPORT LINES HAVE BEEN WRITTEN TO
00660  M00S00659.ssuse   +++|*               THE REPORT FILE.
00661  M00S00660.ssuse   +++|*
00662  M00S00661.ssuse   +++|*     NOTES     PROC *USBASLN* CALLS *XCDD* TO CONVERT THE
00663  M00S00662.ssuse   +++|*               GROUP TOTALS IN THE *GRP$TOT* ARRAY FROM INTEGER
00664  M00S00663.ssuse   +++|*               TO DISPLAY CODE.  THESE VALUES ARE THEN DISPLAYED
00665  M00S00664.ssuse   +++|*               IN THE REPORT FILE.  TOTALS ARE ACCUMULATED FOR
00666  M00S00665.ssuse   +++|*               THE SM AND SUBFAMILY.
00667  M00S00666.ssuse   +++|#
00668  M00S00667.ssuse   +++|
00669  M00S00668.ssuse   +++|#
00670  M00S00669.ssuse   +++|****  PROC USBASLN - XREF LIST BEGIN.
00671  M00S00670.ssuse   +++|#
00672  M00S00671.ssuse   +++|
00673  M00S00672.ssuse   +++|      XREF
00674  M00S00673.ssuse   +++|        BEGIN
00675  M00S00674.ssuse   +++|        PROC BZFILL;                 # BLANK FILL CHARACTERS #
00676  M00S00675.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
00677  M00S00676.ssuse   +++|        PROC RPLINE;                 # WRITES A LINE TO REPORT FILE #
00678  M00S00677.ssuse   +++|        PROC RPSPACE;                # PUT BLANK LINE ON REPORT FILE #
00679  M00S00678.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGERS TO DISPLAY #
00680  M00S00679.ssuse   +++|        END
00681  M00S00680.ssuse   +++|
00682  M00S00681.ssuse   +++|#
00683  M00S00682.ssuse   +++|****  PROC USBASLN - XREF LIST END.
00684  M00S00683.ssuse   +++|#
00685  M00S00684.ssuse   +++|
00686  M00S00685.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00687  M00S00686.ssuse   +++|*CALL COMBFAS
00688  M00S00687.ssuse   +++|*CALL COMBBZF
00689  M00S00688.ssuse   +++|*CALL COMBMCT
00690  M00S00689.ssuse   +++|*CALL COMXMSC
00691  M00S00690.ssuse   +++|*CALL COMTOUT
00692  M00S00691.ssuse   +++|*CALL COMTUSE
00693  M00S00692.ssuse   +++|*CALL COMTUSP
00694  M00S00693.ssuse   +++|
00695  M00S00694.ssuse   +++|      ITEM GP         I;             # LOOP VARIABLE #
00696  M00S00695.ssuse   +++|      ITEM LN$CNT     I;             # LINE COUNT #
00697  M00S00696.ssuse   +++|      ITEM SM         I;             # SM IDENTIFIER #
00698  M00S00697.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
00699  M00S00698.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
00700  M00S00699.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
00701  M00S00700.ssuse   +++|      ITEM TOT        I;             # ARRAY INDEX FOR TOTALS #
00702  M00S00701.ssuse   +++|                                               CONTROL EJECT;
00703  M00S00702.ssuse   +++|
00704  M00S00703.ssuse   +++|      TEMP$FAM = USARG$FM[0];
00705  M00S00704.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
00706  M00S00705.ssuse   +++|      TEMP$SM = SM;
00707  M00S00706.ssuse   +++|
00708  M00S00707.ssuse   +++|#
00709  M00S00708.ssuse   +++|*     WRITE HEADER TO REPORT FILE IF NEW PAGE.
00710  M00S00709.ssuse   +++|#
00711  M00S00710.ssuse   +++|
00712  M00S00711.ssuse   +++|      IF (LN$CNT / MAX$LN) * MAX$LN EQ LN$CNT
00713  M00S00712.ssuse   +++|      THEN                           # PAGE EJECT AND PRINT HEADER #
00714  M00S00713.ssuse   +++|        BEGIN
00715  M00S00714.ssuse   +++|        RPEJECT(OUT$FETP);
00716  M00S00715.ssuse   +++|        RPLINE(OUT$FETP,"SSUSE BASIC REPORT",5,18,1);
00717  M00S00716.ssuse   +++|        RPLINE(OUT$FETP,"FAMILY = ",35,9,1);
00718  M00S00717.ssuse   +++|        RPLINE(OUT$FETP,TEMP$FAM,44,7,0);
00719  M00S00718.ssuse   +++|
00720  M00S00719.ssuse   +++|#
00721  M00S00720.ssuse   +++|*     WRITE NOTES TO REPORT FILE.
00722  M00S00721.ssuse   +++|#
00723  M00S00722.ssuse   +++|
00724  M00S00723.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00725  M00S00724.ssuse   +++|        RPLINE(OUT$FETP,"CUBE = CUBICLES",5,15,1);
00726  M00S00725.ssuse   +++|        RPLINE(OUT$FETP,"CARTRIDGE FLAGS",36,15,1);
00727  M00S00726.ssuse   +++|        RPLINE(OUT$FETP,"AU FLAGS",86,8,0);
00728  M00S00727.ssuse   +++|        RPLINE(OUT$FETP,"CART = CARTRIDGES",5,17,1);
00729  M00S00728.ssuse   +++|        RPLINE(OUT$FETP,"M = MISSING",37,11,1);
00730  M00S00729.ssuse   +++|        RPLINE(OUT$FETP,"FA = FLAWED AND ALLOCATED",87,25,0);
00731  M00S00730.ssuse   +++|        RPLINE(OUT$FETP,"I = INHIBIT ALLOCATION",37,22,1);
00732  M00S00731.ssuse   +++|        RPLINE(OUT$FETP,"FU = FLAWED AND UNALLOCATED",87,27,0);
00733  M00S00732.ssuse   +++|        RPLINE(OUT$FETP,"** = SUBFAMILY TOTAL",5,20,1);
00734  M00S00733.ssuse   +++|        RPLINE(OUT$FETP,"F = FREE CARTRIDGE",37,18,1);
00735  M00S00734.ssuse   +++|        RPLINE(OUT$FETP,"SF = START OF FRAGMENT",87,22,0);
00736  M00S00735.ssuse   +++|        RPLINE(OUT$FETP,"-  = UNASSIGNED GROUP",5,21,1);
00737  M00S00736.ssuse   +++|        RPLINE(OUT$FETP,"L = OFF CARTRIDGE LINKS AVAILABLE",37,33,1);
00738  M00S00737.ssuse   +++|        RPLINE(OUT$FETP,"FC = FROZEN CHAIN",87,17,0);
00739  M00S00738.ssuse   +++|        RPLINE(OUT$FETP,"P = EXCESSIVE PARITY ERRORS",37,27,1);
00740  M00S00739.ssuse   +++|        RPLINE(OUT$FETP,"AC = AU CONFLICT",87,16,0);
00741  M00S00740.ssuse   +++|        RPLINE(OUT$FETP,"E = MAP ERROR(AS DETECTED BY SSVAL)",37,36,0);
00742  M00S00741.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00743  M00S00742.ssuse   +++|
00744  M00S00743.ssuse   +++|#
00745  M00S00744.ssuse   +++|*     WRITE COLUMN HEADINGS TO REPORT FILE.
00746  M00S00745.ssuse   +++|#
00747  M00S00746.ssuse   +++|
00748  M00S00747.ssuse   +++|        RPLINE(OUT$FETP,"----AVAILABLE----",24,17,1);
00749  M00S00748.ssuse   +++|        RPLINE(OUT$FETP,"-----NUMBER CARTRIDGES FLAGGED----",43,34,1);
00750  M00S00749.ssuse   +++|        RPLINE(OUT$FETP,"-------------NUMBER AU FLAGGED",81,30,1);
00751  M00S00750.ssuse   +++|        RPLINE(OUT$FETP,"-------------",111,13,0);
00752  M00S00751.ssuse   +++|        RPLINE(OUT$FETP,"SUB SM GR",1,9,1);
00753  M00S00752.ssuse   +++|        RPLINE(OUT$FETP,"CUBE  CART",12,10,1);
00754  M00S00753.ssuse   +++|        RPLINE(OUT$FETP,"AU        AU",26,12,1);
00755  M00S00754.ssuse   +++|        RPLINE(OUT$FETP,"M     I     F     L     P     E",46,31,1);
00756  M00S00755.ssuse   +++|        RPLINE(OUT$FETP,"FA       FU",86,11,1);
00757  M00S00756.ssuse   +++|        RPLINE(OUT$FETP,"SF       FC       AC",104,20,0);
00758  M00S00757.ssuse   +++|        RPLINE(OUT$FETP,"(SMALL)   (LARGE)",24,17,0);
00759  M00S00758.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
00760  M00S00759.ssuse   +++|        LN$CNT = 16;
00761  M00S00760.ssuse   +++|        END
00762  M00S00761.ssuse   +++|
00763  M00S00762.ssuse   +++|#
00764  M00S00763.ssuse   +++|*     SET INDEX TO ACCUMULATE TOTALS.
00765  M00S00764.ssuse   +++|#
00766  M00S00765.ssuse   +++|
00767  M00S00766.ssuse   +++|      TOT = MAXGP + 1;
00768  M00S00767.ssuse   +++|
00769  M00S00768.ssuse   +++|#
00770  M00S00769.ssuse   +++|*     CONVERT THE TOTALS FOR EACH GROUP TO DISPLAY CODE AND WRITE
00771  M00S00770.ssuse   +++|*     THEM TO THE REPORT FILE.  THE FIRST TIME THROUGH (GP = 0)
00772  M00S00771.ssuse   +++|*     THE NUMBER OF EMPTY CUBICLES ASSIGNED TO THIS SUBFAMILY WILL
00773  M00S00772.ssuse   +++|*     BE PRINTED.  THE LAST TIME THROUGH (GP = MAXGP + 1) THE SM
00774  M00S00773.ssuse   +++|*     TOTALS WILL BE PRINTED.
00775  M00S00774.ssuse   +++|#
00776  M00S00775.ssuse   +++|
00777  M00S00776.ssuse   +++|      SLOWFOR GP = 0 STEP 1 UNTIL MAXGP + 1
00778  M00S00777.ssuse   +++|      DO
00779  M00S00778.ssuse   +++|        BEGIN  # FOR EACH GROUP #
00780  M00S00779.ssuse   +++|
00781  M00S00780.ssuse   +++|#
00782  M00S00781.ssuse   +++|*     WRITE GROUP SUBTOTALS TO REPORT FILE.  IF NO CUBICLES ARE
00783  M00S00782.ssuse   +++|*     ASSIGNED TO THIS GROUP, PROCESS THE NEXT GROUP.
00784  M00S00783.ssuse   +++|#
00785  M00S00784.ssuse   +++|
00786  M00S00785.ssuse   +++|        IF GP EQ MAXGP + 1
00787  M00S00786.ssuse   +++|        THEN                         # PRINT TOTAL FOR ALL GROUPS #
00788  M00S00787.ssuse   +++|          BEGIN
00789  M00S00788.ssuse   +++|          CHAR$10[0] = XCDD(SUBFAM);
00790  M00S00789.ssuse   +++|          RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
00791  M00S00790.ssuse   +++|          RPLINE(OUT$FETP,TEMP$SM,5,1,1);
00792  M00S00791.ssuse   +++|          RPLINE(OUT$FETP,"**",8,2,1);
00793  M00S00792.ssuse   +++|          END
00794  M00S00793.ssuse   +++|
00795  M00S00794.ssuse   +++|        ELSE                         # PRINT ONE GROUP AT A TIME #
00796  M00S00795.ssuse   +++|          BEGIN
00797  M00S00796.ssuse   +++|          IF GRP$LOC[GP] EQ 0
00798  M00S00797.ssuse   +++|          THEN                       # NO CUBICLES IN THIS GROUP #
00799  M00S00798.ssuse   +++|            BEGIN
00800  M00S00799.ssuse   +++|            TEST GP;
00801  M00S00800.ssuse   +++|            END
00802  M00S00801.ssuse   +++|
00803  M00S00802.ssuse   +++|          CHAR$10[0] = XCDD(SUBFAM);
00804  M00S00803.ssuse   +++|          RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
00805  M00S00804.ssuse   +++|          RPLINE(OUT$FETP,TEMP$SM,5,1,1);
00806  M00S00805.ssuse   +++|          IF GP EQ 0
00807  M00S00806.ssuse   +++|          THEN
00808  M00S00807.ssuse   +++|            BEGIN
00809  M00S00808.ssuse   +++|            RPLINE(OUT$FETP,"-",9,1,1);
00810  M00S00809.ssuse   +++|            END
00811  M00S00810.ssuse   +++|
00812  M00S00811.ssuse   +++|          ELSE
00813  M00S00812.ssuse   +++|            BEGIN
00814  M00S00813.ssuse   +++|            CHAR$10[0] = XCDD(GP);
00815  M00S00814.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],8,2,1);
00816  M00S00815.ssuse   +++|            END
00817  M00S00816.ssuse   +++|
00818  M00S00817.ssuse   +++|          END
00819  M00S00818.ssuse   +++|
00820  M00S00819.ssuse   +++|#
00821  M00S00820.ssuse   +++|*     LIST THE NUMBER OF CUBICLES ASSIGNED TO A GROUP.
00822  M00S00821.ssuse   +++|#
00823  M00S00822.ssuse   +++|
00824  M00S00823.ssuse   +++|        CHAR$10[0] = XCDD(GRP$LOC[GP]);
00825  M00S00824.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
00826  M00S00825.ssuse   +++|
00827  M00S00826.ssuse   +++|#
00828  M00S00827.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES IN A GROUP.
00829  M00S00828.ssuse   +++|#
00830  M00S00829.ssuse   +++|
00831  M00S00830.ssuse   +++|        CHAR$10[0] = XCDD(GRP$RES[GP]);
00832  M00S00831.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
00833  M00S00832.ssuse   +++|
00834  M00S00833.ssuse   +++|#
00835  M00S00834.ssuse   +++|*     LIST THE NUMBER OF AVAILABLE AU FOR SMALL AND LARGE FILES.
00836  M00S00835.ssuse   +++|#
00837  M00S00836.ssuse   +++|
00838  M00S00837.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AUSF[GP]);
00839  M00S00838.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
00840  M00S00839.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AULF[GP]);
00841  M00S00840.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
00842  M00S00841.ssuse   +++|
00843  M00S00842.ssuse   +++|#
00844  M00S00843.ssuse   +++|*     LIST THE NUMBER OF LOST CARTRIDGES.
00845  M00S00844.ssuse   +++|#
00846  M00S00845.ssuse   +++|
00847  M00S00846.ssuse   +++|        CHAR$10[0] = XCDD(GRP$LOST[GP]);
00848  M00S00847.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
00849  M00S00848.ssuse   +++|
00850  M00S00849.ssuse   +++|#
00851  M00S00850.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH THE INHIBIT FLAG SET.
00852  M00S00851.ssuse   +++|#
00853  M00S00852.ssuse   +++|
00854  M00S00853.ssuse   +++|        CHAR$10[0] = XCDD(GRP$INH[GP]);
00855  M00S00854.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
00856  M00S00855.ssuse   +++|
00857  M00S00856.ssuse   +++|#
00858  M00S00857.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH FREE CARTRIDGE FLAG SET.
00859  M00S00858.ssuse   +++|#
00860  M00S00859.ssuse   +++|
00861  M00S00860.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FRC[GP]);
00862  M00S00861.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
00863  M00S00862.ssuse   +++|
00864  M00S00863.ssuse   +++|#
00865  M00S00864.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH AVAILABLE OFF-CARTRIDGE LINKS.
00866  M00S00865.ssuse   +++|#
00867  M00S00866.ssuse   +++|
00868  M00S00867.ssuse   +++|        CHAR$10[0] = XCDD(GRP$OCL[GP]);
00869  M00S00868.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
00870  M00S00869.ssuse   +++|
00871  M00S00870.ssuse   +++|#
00872  M00S00871.ssuse   +++|*     LIST THE NUMBER OF CARTRIDGES WITH EXCESSIVE PARITY ERRORS.
00873  M00S00872.ssuse   +++|#
00874  M00S00873.ssuse   +++|
00875  M00S00874.ssuse   +++|        CHAR$10[0] = XCDD(GRP$XPE[GP]);
00876  M00S00875.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
00877  M00S00876.ssuse   +++|        CHAR$10[0] = XCDD(GRP$SE[GP]);
00878  M00S00877.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
00879  M00S00878.ssuse   +++|
00880  M00S00879.ssuse   +++|#
00881  M00S00880.ssuse   +++|*     LIST THE NUMBER OF FLAWED AND ALLOCATED AU.
00882  M00S00881.ssuse   +++|#
00883  M00S00882.ssuse   +++|
00884  M00S00883.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FB[GP]);
00885  M00S00884.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
00886  M00S00885.ssuse   +++|
00887  M00S00886.ssuse   +++|#
00888  M00S00887.ssuse   +++|*     LIST THE NUMBER OF FLAWED AND UNALLOCATED AU.
00889  M00S00888.ssuse   +++|#
00890  M00S00889.ssuse   +++|
00891  M00S00890.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FA[GP]);
00892  M00S00891.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
00893  M00S00892.ssuse   +++|
00894  M00S00893.ssuse   +++|#
00895  M00S00894.ssuse   +++|*     LIST THE NUMBER OF START OF FRAGMENT AU.
00896  M00S00895.ssuse   +++|#
00897  M00S00896.ssuse   +++|
00898  M00S00897.ssuse   +++|        CHAR$10[0] = XCDD(GRP$SF[GP]);
00899  M00S00898.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
00900  M00S00899.ssuse   +++|
00901  M00S00900.ssuse   +++|#
00902  M00S00901.ssuse   +++|*     LIST THE NUMBER OF FROZEN CHAIN AU.
00903  M00S00902.ssuse   +++|#
00904  M00S00903.ssuse   +++|
00905  M00S00904.ssuse   +++|        CHAR$10[0] = XCDD(GRP$FC[GP]);
00906  M00S00905.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
00907  M00S00906.ssuse   +++|
00908  M00S00907.ssuse   +++|#
00909  M00S00908.ssuse   +++|*     LIST THE NUMBER OF AU WITH ALLOCATION CONFLICT.
00910  M00S00909.ssuse   +++|#
00911  M00S00910.ssuse   +++|
00912  M00S00911.ssuse   +++|        CHAR$10[0] = XCDD(GRP$AUC[GP]);
00913  M00S00912.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
00914  M00S00913.ssuse   +++|        LN$CNT = LN$CNT + 1;
00915  M00S00914.ssuse   +++|
00916  M00S00915.ssuse   +++|#
00917  M00S00916.ssuse   +++|*     DO NOT ACCUMULATE TOTALS THE LAST TIME THROUGH.
00918  M00S00917.ssuse   +++|#
00919  M00S00918.ssuse   +++|
00920  M00S00919.ssuse   +++|        IF GP EQ MAXGP + 1
00921  M00S00920.ssuse   +++|        THEN                         # DO NOT ADD TO TOTALS #
00922  M00S00921.ssuse   +++|          BEGIN
00923  M00S00922.ssuse   +++|          RPSPACE(OUT$FETP,SP"SPACE",1);
00924  M00S00923.ssuse   +++|          LN$CNT = LN$CNT + 1;
00925  M00S00924.ssuse   +++|          TEST GP;
00926  M00S00925.ssuse   +++|          END
00927  M00S00926.ssuse   +++|
00928  M00S00927.ssuse   +++|#
00929  M00S00928.ssuse   +++|*     TOTALS FOR ALL GROUPS IN A SM PER SUBFAMILY ARE ACCUMULATED
00930  M00S00929.ssuse   +++|*     UNDER THE MAXGP+1 INDEX OF THE GROUP TOTALS ARRAY.
00931  M00S00930.ssuse   +++|*     *GRP$TOT[MAXGP+1]*.
00932  M00S00931.ssuse   +++|#
00933  M00S00932.ssuse   +++|
00934  M00S00933.ssuse   +++|        GRP$AUC[TOT] = GRP$AUC[TOT] + GRP$AUC[GP];
00935  M00S00934.ssuse   +++|        GRP$AULF[TOT] = GRP$AULF[TOT] + GRP$AULF[GP];
00936  M00S00935.ssuse   +++|        GRP$AUSF[TOT] = GRP$AUSF[TOT] + GRP$AUSF[GP];
00937  M00S00936.ssuse   +++|        GRP$FA[TOT] = GRP$FA[TOT] + GRP$FA[GP];
00938  M00S00937.ssuse   +++|        GRP$FB[TOT] = GRP$FB[TOT] + GRP$FB[GP];
00939  M00S00938.ssuse   +++|        GRP$FC[TOT] = GRP$FC[TOT] + GRP$FC[GP];
00940  M00S00939.ssuse   +++|        GRP$FRC[TOT] = GRP$FRC[TOT] + GRP$FRC[GP];
00941  M00S00940.ssuse   +++|        GRP$INH[TOT] = GRP$INH[TOT] + GRP$INH[GP];
00942  M00S00941.ssuse   +++|        GRP$LOC[TOT] = GRP$LOC[TOT] + GRP$LOC[GP];
00943  M00S00942.ssuse   +++|        GRP$LOST[TOT] = GRP$LOST[TOT] + GRP$LOST[GP];
00944  M00S00943.ssuse   +++|        GRP$OCL[TOT] = GRP$OCL[TOT] + GRP$OCL[GP];
00945  M00S00944.ssuse   +++|        GRP$RES[TOT] = GRP$RES[TOT] + GRP$RES[GP];
00946  M00S00945.ssuse   +++|        GRP$SE[TOT] = GRP$SE[TOT] + GRP$SE[GP];
00947  M00S00946.ssuse   +++|        GRP$SF[TOT] = GRP$SF[TOT] + GRP$SF[GP];
00948  M00S00947.ssuse   +++|        GRP$XPE[TOT] = GRP$XPE[TOT] + GRP$XPE[GP];
00949  M00S00948.ssuse   +++|        END  # FOR EACH GROUP #
00950  M00S00949.ssuse   +++|
00951  M00S00950.ssuse   +++|#
00952  M00S00951.ssuse   +++|*     ACCUMULATE SM TOTALS.
00953  M00S00952.ssuse   +++|#
00954  M00S00953.ssuse   +++|
00955  M00S00954.ssuse   +++|      SM$AUC[SM] = SM$AUC[SM] + GRP$AUC[TOT];
00956  M00S00955.ssuse   +++|      SM$AULF[SM] = SM$AULF[SM] + GRP$AULF[TOT];
00957  M00S00956.ssuse   +++|      SM$AUSF[SM] = SM$AUSF[SM] + GRP$AUSF[TOT];
00958  M00S00957.ssuse   +++|      SM$FA[SM] = SM$FA[SM] + GRP$FA[TOT];
00959  M00S00958.ssuse   +++|      SM$FB[SM] = SM$FB[SM] + GRP$FB[TOT];
00960  M00S00959.ssuse   +++|      SM$FC[SM] = SM$FC[SM] + GRP$FC[TOT];
00961  M00S00960.ssuse   +++|      SM$FRC[SM] = SM$FRC[SM] + GRP$FRC[TOT];
00962  M00S00961.ssuse   +++|      SM$INH[SM] = SM$INH[SM] + GRP$INH[TOT];
00963  M00S00962.ssuse   +++|      SM$LOC[SM] = SM$LOC[SM] + GRP$LOC[TOT];
00964  M00S00963.ssuse   +++|      SM$LOST[SM] = SM$LOST[SM] + GRP$LOST[TOT];
00965  M00S00964.ssuse   +++|      SM$OCL[SM] = SM$OCL[SM] + GRP$OCL[TOT];
00966  M00S00965.ssuse   +++|      SM$RES[SM] = SM$RES[SM] + GRP$RES[TOT];
00967  M00S00966.ssuse   +++|      SM$SE[SM] = SM$SE[SM] + GRP$SE[TOT];
00968  M00S00967.ssuse   +++|      SM$SF[SM] = SM$SF[SM] + GRP$SF[TOT];
00969  M00S00968.ssuse   +++|      SM$XPE[SM] = SM$XPE[SM] + GRP$XPE[TOT];
00970  M00S00969.ssuse   +++|
00971  M00S00970.ssuse   +++|#
00972  M00S00971.ssuse   +++|*     ACCUMULATE SUBFAMILY TOTALS.
00973  M00S00972.ssuse   +++|#
00974  M00S00973.ssuse   +++|
00975  M00S00974.ssuse   +++|      SF$AUC[SUBFAM] = SF$AUC[SUBFAM] + GRP$AUC[TOT];
00976  M00S00975.ssuse   +++|      SF$AULF[SUBFAM] = SF$AULF[SUBFAM] + GRP$AULF[TOT];
00977  M00S00976.ssuse   +++|      SF$AUSF[SUBFAM] = SF$AUSF[SUBFAM] + GRP$AUSF[TOT];
00978  M00S00977.ssuse   +++|      SF$FA[SUBFAM] = SF$FA[SUBFAM] + GRP$FA[TOT];
00979  M00S00978.ssuse   +++|      SF$FB[SUBFAM] = SF$FB[SUBFAM] + GRP$FB[TOT];
00980  M00S00979.ssuse   +++|      SF$FC[SUBFAM] = SF$FC[SUBFAM] + GRP$FC[TOT];
00981  M00S00980.ssuse   +++|      SF$FRC[SUBFAM] = SF$FRC[SUBFAM] + GRP$FRC[TOT];
00982  M00S00981.ssuse   +++|      SF$INH[SUBFAM] = SF$INH[SUBFAM] + GRP$INH[TOT];
00983  M00S00982.ssuse   +++|      SF$LOC[SUBFAM] = SF$LOC[SUBFAM] + GRP$LOC[TOT];
00984  M00S00983.ssuse   +++|      SF$LOST[SUBFAM] = SF$LOST[SUBFAM] + GRP$LOST[TOT];
00985  M00S00984.ssuse   +++|      SF$OCL[SUBFAM] = SF$OCL[SUBFAM] + GRP$OCL[TOT];
00986  M00S00985.ssuse   +++|      SF$RES[SUBFAM] = SF$RES[SUBFAM] + GRP$RES[TOT];
00987  M00S00986.ssuse   +++|      SF$SE[SUBFAM] = SF$SE[SUBFAM] + GRP$SE[TOT];
00988  M00S00987.ssuse   +++|      SF$SF[SUBFAM] = SF$SF[SUBFAM] + GRP$SF[TOT];
00989  M00S00988.ssuse   +++|      SF$XPE[SUBFAM] = SF$XPE[SUBFAM] + GRP$XPE[TOT];
00990  M00S00989.ssuse   +++|
00991  M00S00990.ssuse   +++|      RETURN;
00992  M00S00991.ssuse   +++|
00993  M00S00992.ssuse   +++|      END  # USBASLN #
00994  M00S00993.ssuse   +++|
00995  M00S00994.ssuse   +++|    TERM
00996  M00S00995.ssuse   +++|PROC USBASTOT;
00997  M00S00996.ssuse   +++|# TITLE USBASTOT - WRITES SM AND SUBFAMILY TOTALS TO THE REPORT FILE. #
00998  M00S00997.ssuse   +++|
00999  M00S00998.ssuse   +++|      BEGIN  # USBASTOT #
01000  M00S00999.ssuse   +++|
01001  M00S01000.ssuse   +++|#
01002  M00S01001.ssuse   +++|**    USBASTOT - WRITES SM AND SUBFAMILY TOTALS TO THE REPORT FILE.
01003  M00S01002.ssuse   +++|*
01004  M00S01003.ssuse   +++|*     PROC USBASTOT.
01005  M00S01004.ssuse   +++|*
01006  M00S01005.ssuse   +++|*     ENTRY.    (SEL$SB) = BITS SET FOR THE SELECTED SUBFAMILIES.
01007  M00S01006.ssuse   +++|*               (SEL$SM) = BITS SET FOR THE SELECTED SM-S.
01008  M00S01007.ssuse   +++|*
01009  M00S01008.ssuse   +++|*     EXIT.     TOTALS HAVE BEEN WRITTEN TO REPORT FILE.
01010  M00S01009.ssuse   +++|*
01011  M00S01010.ssuse   +++|*     NOTES.    PROC *USBASTOT* CALLS *XCDD* TO CONVERT THE VARIOUS
01012  M00S01011.ssuse   +++|*               FIELDS IN THE *SM$TOT* AND *SF$TOT* ARRAYS FROM
01013  M00S01012.ssuse   +++|*               INTEGER TO DISPLAY CODE.  THE CONVERTED VALUES ARE
01014  M00S01013.ssuse   +++|*               WRITTEN TO THE REPORT FILE.
01015  M00S01014.ssuse   +++|#
01016  M00S01015.ssuse   +++|
01017  M00S01016.ssuse   +++|#
01018  M00S01017.ssuse   +++|****  PROC USBASTOT - XREF LIST BEGIN.
01019  M00S01018.ssuse   +++|#
01020  M00S01019.ssuse   +++|
01021  M00S01020.ssuse   +++|      XREF
01022  M00S01021.ssuse   +++|        BEGIN
01023  M00S01022.ssuse   +++|        PROC BZFILL;                 # BLANK FILL CHARACTERS #
01024  M00S01023.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
01025  M00S01024.ssuse   +++|        PROC RPLINE;                 # WRITES A LINE TO REPORT FILE #
01026  M00S01025.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01027  M00S01026.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
01028  M00S01027.ssuse   +++|        END
01029  M00S01028.ssuse   +++|
01030  M00S01029.ssuse   +++|#
01031  M00S01030.ssuse   +++|****  PROC USBASTOT - XREF LIST END.
01032  M00S01031.ssuse   +++|#
01033  M00S01032.ssuse   +++|
01034  M00S01033.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
01035  M00S01034.ssuse   +++|*CALL COMBFAS
01036  M00S01035.ssuse   +++|*CALL COMBBZF
01037  M00S01036.ssuse   +++|*CALL COMBMCT
01038  M00S01037.ssuse   +++|*CALL COMXMSC
01039  M00S01038.ssuse   +++|*CALL COMTOUT
01040  M00S01039.ssuse   +++|*CALL COMTUSE
01041  M00S01040.ssuse   +++|*CALL COMTUSP
01042  M00S01041.ssuse   +++|
01043  M00S01042.ssuse   +++|      ITEM SM         I;             # SM IDENTIFIER #
01044  M00S01043.ssuse   +++|      ITEM SUBFAM     I;             # SUBFAMILY IDENTIFIER #
01045  M00S01044.ssuse   +++|      ITEM TEMP$FAM   C(7);          # FAMILY CHARACTER #
01046  M00S01045.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01047  M00S01046.ssuse   +++|                                               CONTROL EJECT;
01048  M00S01047.ssuse   +++|
01049  M00S01048.ssuse   +++|      TEMP$FAM = USARG$FM[0];
01050  M00S01049.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
01051  M00S01050.ssuse   +++|
01052  M00S01051.ssuse   +++|#
01053  M00S01052.ssuse   +++|*     WRITE COLUMN HEADINGS TO REPORT FILE.
01054  M00S01053.ssuse   +++|#
01055  M00S01054.ssuse   +++|
01056  M00S01055.ssuse   +++|      RPEJECT(OUT$FETP);
01057  M00S01056.ssuse   +++|      RPLINE(OUT$FETP,"SSUSE BASIC REPORT",5,18,1);
01058  M00S01057.ssuse   +++|      RPLINE(OUT$FETP,"SM AND SUBFAMILY TOTALS",27,23,1);
01059  M00S01058.ssuse   +++|      RPLINE(OUT$FETP,"FAMILY = ",54,9,1);
01060  M00S01059.ssuse   +++|      RPLINE(OUT$FETP,TEMP$FAM,63,7,0);
01061  M00S01060.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
01062  M00S01061.ssuse   +++|      RPLINE(OUT$FETP,"----AVAILABLE----",24,17,1);
01063  M00S01062.ssuse   +++|      RPLINE(OUT$FETP,"-----NUMBER CARTRIDGES FLAGGED----",43,34,1);
01064  M00S01063.ssuse   +++|      RPLINE(OUT$FETP,"-------------NUMBER AU FLAGGED",81,30,1);
01065  M00S01064.ssuse   +++|      RPLINE(OUT$FETP,"-------------",111,13,0);
01066  M00S01065.ssuse   +++|      RPLINE(OUT$FETP,"SUB SM GR",1,9,1);
01067  M00S01066.ssuse   +++|      RPLINE(OUT$FETP,"CUBE  CART",12,10,1);
01068  M00S01067.ssuse   +++|      RPLINE(OUT$FETP,"AU        AU",26,12,1);
01069  M00S01068.ssuse   +++|      RPLINE(OUT$FETP,"M     I     F     L     P     E",46,31,1);
01070  M00S01069.ssuse   +++|      RPLINE(OUT$FETP,"FA       FU",86,11,1);
01071  M00S01070.ssuse   +++|      RPLINE(OUT$FETP,"SF       FC       AC",104,20,0);
01072  M00S01071.ssuse   +++|      RPLINE(OUT$FETP,"(SMALL)   (LARGE)",24,17,0);
01073  M00S01072.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
01074  M00S01073.ssuse   +++|      RPLINE(OUT$FETP,"SM TOTALS FOR SPECIFIED SUBFAMILIES",1,35,0);
01075  M00S01074.ssuse   +++|
01076  M00S01075.ssuse   +++|#
01077  M00S01076.ssuse   +++|*     WRITE SM TOTALS TO REPORT FILE.
01078  M00S01077.ssuse   +++|#
01079  M00S01078.ssuse   +++|
01080  M00S01079.ssuse   +++|      SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
01081  M00S01080.ssuse   +++|      DO
01082  M00S01081.ssuse   +++|        BEGIN  # FOR EACH SM #
01083  M00S01082.ssuse   +++|        IF B<SM,1>SEL$SM EQ 0
01084  M00S01083.ssuse   +++|        THEN
01085  M00S01084.ssuse   +++|          BEGIN
01086  M00S01085.ssuse   +++|          TEST SM;
01087  M00S01086.ssuse   +++|          END
01088  M00S01087.ssuse   +++|
01089  M00S01088.ssuse   +++|        TEMP$SM = SM;
01090  M00S01089.ssuse   +++|
01091  M00S01090.ssuse   +++|#
01092  M00S01091.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND PRINT THEM.
01093  M00S01092.ssuse   +++|#
01094  M00S01093.ssuse   +++|
01095  M00S01094.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
01096  M00S01095.ssuse   +++|        RPLINE(OUT$FETP,"**",2,2,1);
01097  M00S01096.ssuse   +++|        RPLINE(OUT$FETP,TEMP$SM,5,1,1);
01098  M00S01097.ssuse   +++|        RPLINE(OUT$FETP,"**",8,2,1);
01099  M00S01098.ssuse   +++|
01100  M00S01099.ssuse   +++|        CHAR$10[0] = XCDD(SM$LOC[SM]);
01101  M00S01100.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
01102  M00S01101.ssuse   +++|
01103  M00S01102.ssuse   +++|        CHAR$10[0] = XCDD(SM$RES[SM]);
01104  M00S01103.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
01105  M00S01104.ssuse   +++|
01106  M00S01105.ssuse   +++|        CHAR$10[0] = XCDD(SM$AUSF[SM]);
01107  M00S01106.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
01108  M00S01107.ssuse   +++|
01109  M00S01108.ssuse   +++|        CHAR$10[0] = XCDD(SM$AULF[SM]);
01110  M00S01109.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
01111  M00S01110.ssuse   +++|
01112  M00S01111.ssuse   +++|        CHAR$10[0] = XCDD(SM$LOST[SM]);
01113  M00S01112.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
01114  M00S01113.ssuse   +++|
01115  M00S01114.ssuse   +++|        CHAR$10[0] = XCDD(SM$INH[SM]);
01116  M00S01115.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
01117  M00S01116.ssuse   +++|
01118  M00S01117.ssuse   +++|        CHAR$10[0] = XCDD(SM$FRC[SM]);
01119  M00S01118.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
01120  M00S01119.ssuse   +++|
01121  M00S01120.ssuse   +++|        CHAR$10[0] = XCDD(SM$OCL[SM]);
01122  M00S01121.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
01123  M00S01122.ssuse   +++|
01124  M00S01123.ssuse   +++|        CHAR$10[0] = XCDD(SM$XPE[SM]);
01125  M00S01124.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
01126  M00S01125.ssuse   +++|
01127  M00S01126.ssuse   +++|        CHAR$10[0] = XCDD(SM$SE[SM]);
01128  M00S01127.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
01129  M00S01128.ssuse   +++|
01130  M00S01129.ssuse   +++|        CHAR$10[0] = XCDD(SM$FB[SM]);
01131  M00S01130.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
01132  M00S01131.ssuse   +++|
01133  M00S01132.ssuse   +++|        CHAR$10[0] = XCDD(SM$FA[SM]);
01134  M00S01133.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
01135  M00S01134.ssuse   +++|
01136  M00S01135.ssuse   +++|        CHAR$10[0] = XCDD(SM$SF[SM]);
01137  M00S01136.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
01138  M00S01137.ssuse   +++|
01139  M00S01138.ssuse   +++|        CHAR$10[0] = XCDD(SM$FC[SM]);
01140  M00S01139.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
01141  M00S01140.ssuse   +++|
01142  M00S01141.ssuse   +++|        CHAR$10[0] = XCDD(SM$AUC[SM]);
01143  M00S01142.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
01144  M00S01143.ssuse   +++|        END  # FOR EACH SM #
01145  M00S01144.ssuse   +++|
01146  M00S01145.ssuse   +++|      RPSPACE(OUT$FETP,SP"SPACE",2);
01147  M00S01146.ssuse   +++|      RPLINE(OUT$FETP,"SUBFAMILY TOTALS FOR SPECIFIED SM-S",1,35,0);
01148  M00S01147.ssuse   +++|
01149  M00S01148.ssuse   +++|#
01150  M00S01149.ssuse   +++|*     WRITE SUBFAMILY TOTALS TO REPORT FILE.
01151  M00S01150.ssuse   +++|#
01152  M00S01151.ssuse   +++|
01153  M00S01152.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
01154  M00S01153.ssuse   +++|      DO
01155  M00S01154.ssuse   +++|        BEGIN  # FOR EACH SUBFAMILY #
01156  M00S01155.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
01157  M00S01156.ssuse   +++|        THEN
01158  M00S01157.ssuse   +++|          BEGIN
01159  M00S01158.ssuse   +++|          TEST SUBFAM;
01160  M00S01159.ssuse   +++|          END
01161  M00S01160.ssuse   +++|
01162  M00S01161.ssuse   +++|#
01163  M00S01162.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND PRINT THEM.
01164  M00S01163.ssuse   +++|#
01165  M00S01164.ssuse   +++|
01166  M00S01165.ssuse   +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
01167  M00S01166.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
01168  M00S01167.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R1[0],2,1,1);
01169  M00S01168.ssuse   +++|        RPLINE(OUT$FETP,"**",5,2,1);
01170  M00S01169.ssuse   +++|        RPLINE(OUT$FETP,"**",8,2,1);
01171  M00S01170.ssuse   +++|
01172  M00S01171.ssuse   +++|        CHAR$10[0] = XCDD(SF$LOC[SUBFAM]);
01173  M00S01172.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],12,4,1);
01174  M00S01173.ssuse   +++|
01175  M00S01174.ssuse   +++|        CHAR$10[0] = XCDD(SF$RES[SUBFAM]);
01176  M00S01175.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],18,4,1);
01177  M00S01176.ssuse   +++|
01178  M00S01177.ssuse   +++|        CHAR$10[0] = XCDD(SF$AUSF[SUBFAM]);
01179  M00S01178.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],24,7,1);
01180  M00S01179.ssuse   +++|
01181  M00S01180.ssuse   +++|        CHAR$10[0] = XCDD(SF$AULF[SUBFAM]);
01182  M00S01181.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],34,7,1);
01183  M00S01182.ssuse   +++|
01184  M00S01183.ssuse   +++|        CHAR$10[0] = XCDD(SF$LOST[SUBFAM]);
01185  M00S01184.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],43,4,1);
01186  M00S01185.ssuse   +++|
01187  M00S01186.ssuse   +++|        CHAR$10[0] = XCDD(SF$INH[SUBFAM]);
01188  M00S01187.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],49,4,1);
01189  M00S01188.ssuse   +++|
01190  M00S01189.ssuse   +++|        CHAR$10[0] = XCDD(SF$FRC[SUBFAM]);
01191  M00S01190.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],55,4,1);
01192  M00S01191.ssuse   +++|
01193  M00S01192.ssuse   +++|        CHAR$10[0] = XCDD(SF$OCL[SUBFAM]);
01194  M00S01193.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],61,4,1);
01195  M00S01194.ssuse   +++|
01196  M00S01195.ssuse   +++|        CHAR$10[0] = XCDD(SF$XPE[SUBFAM]);
01197  M00S01196.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],67,4,1);
01198  M00S01197.ssuse   +++|
01199  M00S01198.ssuse   +++|        CHAR$10[0] = XCDD(SF$SE[SUBFAM]);
01200  M00S01199.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R4[0],73,4,1);
01201  M00S01200.ssuse   +++|
01202  M00S01201.ssuse   +++|        CHAR$10[0] = XCDD(SF$FB[SUBFAM]);
01203  M00S01202.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],81,7,1);
01204  M00S01203.ssuse   +++|
01205  M00S01204.ssuse   +++|        CHAR$10[0] = XCDD(SF$FA[SUBFAM]);
01206  M00S01205.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],90,7,1);
01207  M00S01206.ssuse   +++|
01208  M00S01207.ssuse   +++|        CHAR$10[0] = XCDD(SF$SF[SUBFAM]);
01209  M00S01208.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],99,7,1);
01210  M00S01209.ssuse   +++|
01211  M00S01210.ssuse   +++|        CHAR$10[0] = XCDD(SF$FC[SUBFAM]);
01212  M00S01211.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],108,7,1);
01213  M00S01212.ssuse   +++|
01214  M00S01213.ssuse   +++|        CHAR$10[0] = XCDD(SF$AUC[SUBFAM]);
01215  M00S01214.ssuse   +++|        RPLINE(OUT$FETP,CHAR$R7[0],117,7,0);
01216  M00S01215.ssuse   +++|        END  # FOR EACH SUBFAMILY #
01217  M00S01216.ssuse   +++|
01218  M00S01217.ssuse   +++|      RETURN;
01219  M00S01218.ssuse   +++|
01220  M00S01219.ssuse   +++|      END  # USBASTOT #
01221  M00S01220.ssuse   +++|
01222  M00S01221.ssuse   +++|    TERM
01223  M00S01222.ssuse   +++|PROC USHEAD((FETP));
01224  M00S01223.ssuse   +++|# TITLE USHEAD - WRITES HEADER ON OUTPUT FILE.                        #
01225  M00S01224.ssuse   +++|
01226  M00S01225.ssuse   +++|      BEGIN  # USHEAD #
01227  M00S01226.ssuse   +++|
01228  M00S01227.ssuse   +++|#
01229  M00S01228.ssuse   +++|**    USHEAD - WRITES HEADER LINE ON OUTPUT FILE.
01230  M00S01229.ssuse   +++|*
01231  M00S01230.ssuse   +++|*     PROC USHEAD((FETP)).
01232  M00S01231.ssuse   +++|*
01233  M00S01232.ssuse   +++|*     ENTRY     (FETP) = AN ITEM CONTAINING THE FWA OF THE FET.
01234  M00S01233.ssuse   +++|*
01235  M00S01234.ssuse   +++|*     EXIT      HEADER IS WRITTEN ON THE OUTPUT FILE.
01236  M00S01235.ssuse   +++|*
01237  M00S01236.ssuse   +++|*     NOTES     THE REPORT FORMATTER IS USED TO
01238  M00S01237.ssuse   +++|*               PRINT THE HEADER LINES.
01239  M00S01238.ssuse   +++|#
01240  M00S01239.ssuse   +++|
01241  M00S01240.ssuse   +++|      ITEM FETP       I;             # FWA OF THE FET #
01242  M00S01241.ssuse   +++|
01243  M00S01242.ssuse   +++|#
01244  M00S01243.ssuse   +++|****  PROC USHEAD - XREF LIST BEGIN.
01245  M00S01244.ssuse   +++|#
01246  M00S01245.ssuse   +++|
01247  M00S01246.ssuse   +++|      XREF
01248  M00S01247.ssuse   +++|        BEGIN
01249  M00S01248.ssuse   +++|        PROC RPLINEX;                # PRINTS A REPORT LINE #
01250  M00S01249.ssuse   +++|        END
01251  M00S01250.ssuse   +++|
01252  M00S01251.ssuse   +++|#
01253  M00S01252.ssuse   +++|****  PROC USHEAD - XREF LIST END.
01254  M00S01253.ssuse   +++|#
01255  M00S01254.ssuse   +++|
01256  M00S01255.ssuse   +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
01257  M00S01256.ssuse   +++|*CALL COMBFAS
01258  M00S01257.ssuse   +++|
01259  M00S01258.ssuse   +++|                                               CONTROL EJECT;
01260  M00S01259.ssuse   +++|
01261  M00S01260.ssuse   +++|#
01262  M00S01261.ssuse   +++|*     PRINT THE HEADER LINE.
01263  M00S01262.ssuse   +++|#
01264  M00S01263.ssuse   +++|
01265  M00S01264.ssuse   +++|      RPLINEX(FETP,"SSUSE REPORT FILE",2,17,0);
01266  M00S01265.ssuse   +++|      RPLINEX(FETP," ",1,1,0);       # WRITE A BLANK LINE #
01267  M00S01266.ssuse   +++|      RETURN;
01268  M00S01267.ssuse   +++|
01269  M00S01268.ssuse   +++|      END  # USHEAD #
01270  M00S01269.ssuse   +++|
01271  M00S01270.ssuse   +++|    TERM
01272  M00S01271.ssuse   +++|PROC USOPT;
01273  M00S01272.ssuse   +++|# TITLE USOPT - CONVERTS PARAMETERS AND CHECKS FOR VALID OPTIONS.     #
01274  M00S01273.ssuse   +++|
01275  M00S01274.ssuse   +++|      BEGIN  # USOPT #
01276  M00S01275.ssuse   +++|
01277  M00S01276.ssuse   +++|#
01278  M00S01277.ssuse   +++|**    USOPT - CONVERTS AND CHECKS PARAMETERS FOR ALL VALID OPTIONS.
01279  M00S01278.ssuse   +++|*
01280  M00S01279.ssuse   +++|*     THIS PROC CHECKS PARAMETERS FOR LEGALITY.  IF INVALID OPTIONS ARE
01281  M00S01280.ssuse   +++|*     FOUND IT ISSUES A DAYFILE MESSAGE AND THEN ABORTS.
01282  M00S01281.ssuse   +++|*
01283  M00S01282.ssuse   +++|*     ENTRY     PARAMETERS PROCESSED AND SET UP IN *TUSPCOM*.
01284  M00S01283.ssuse   +++|*
01285  M00S01284.ssuse   +++|*     EXIT      ALL OPTIONS HAVE BEEN VALIDATED, OR IF VALID
01286  M00S01285.ssuse   +++|*               OPTIONS HAVE BEEN MISUSED, THE PROC ISSUES A
01287  M00S01286.ssuse   +++|*               DAYFILE MESSAGE AND THEN ABORTS.
01288  M00S01287.ssuse   +++|*
01289  M00S01288.ssuse   +++|*     MESSAGES  1)  INCORRECT SM.
01290  M00S01289.ssuse   +++|*               2)  INCORRECT SUBFAMILY.
01291  M00S01290.ssuse   +++|*               3)  INCORRECT REPORT OPTION.
01292  M00S01291.ssuse   +++|*               4)  DUPLICATE SM.
01293  M00S01292.ssuse   +++|*               5)  DUPLICATE SUBFAMILY.
01294  M00S01293.ssuse   +++|*               6)  DUPLICATE OPTION.
01295  M00S01294.ssuse   +++|*               7)  CN NOT SPECIFIED.
01296  M00S01295.ssuse   +++|*
01297  M00S01296.ssuse   +++|*     NOTES     ALL PARAMETER OPTIONS ARE TESTED FOR INVALID OPTIONS.
01298  M00S01297.ssuse   +++|*               THE VALID OPTIONS ON *SSUSE* CALLS ARE
01299  M00S01298.ssuse   +++|*                   1.  *OP* MUST EITHER CONTAIN ANY COMBINATION OF THE
01300  M00S01299.ssuse   +++|*                       VALID CHARACTERS A, B, C, OR D, OR IT CAN BE
01301  M00S01300.ssuse   +++|*                       OMITTED.
01302  M00S01301.ssuse   +++|*                   2.  *SM* MUST BE A VALID SM NAME OR A VALID
01303  M00S01302.ssuse   +++|*                       COMBINATION OF VALID SM NAMES, OR IT CAN BE
01304  M00S01303.ssuse   +++|*                       OMITTED.
01305  M00S01304.ssuse   +++|*                   3.  *SB* MUST BE FROM 0 TO 7 OR A VALID COMBINATION
01306  M00S01305.ssuse   +++|*                       OF LEGAL SUBFAMILY NUMBERS, OR IT CAN BE OMITTED
01307  M00S01306.ssuse   +++|*                   4.  *CN* MUST BE SPECIFIED IF REPORT D IS SELECTED.
01308  M00S01307.ssuse   +++|*               ANY VIOLATION OF THE VALID OPTIONS CAUSES A MESSAGE
01309  M00S01308.ssuse   +++|*               TO BE PRINTED IN THE DAYFILE AND CAUSES PROC
01310  M00S01309.ssuse   +++|*               *USOPT* TO ABORT.
01311  M00S01310.ssuse   +++|#
01312  M00S01311.ssuse   +++|
01313  M00S01312.ssuse   +++|#
01314  M00S01313.ssuse   +++|****  PROC USOPT - XREF LIST BEGIN.
01315  M00S01314.ssuse   +++|#
01316  M00S01315.ssuse   +++|
01317  M00S01316.ssuse   +++|      XREF
01318  M00S01317.ssuse   +++|        BEGIN
01319  M00S01318.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01320  M00S01319.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
01321  M00S01320.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01322  M00S01321.ssuse   +++|                                       OR RETURN #
01323  M00S01322.ssuse   +++|        END
01324  M00S01323.ssuse   +++|
01325  M00S01324.ssuse   +++|#
01326  M00S01325.ssuse   +++|****  PROC USOPT - XREF LIST END.
01327  M00S01326.ssuse   +++|#
01328  M00S01327.ssuse   +++|
01329  M00S01328.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01330  M00S01329.ssuse   +++|*CALL COMBFAS
01331  M00S01330.ssuse   +++|*CALL,COMBBZF
01332  M00S01331.ssuse   +++|*CALL COMBMCT
01333  M00S01332.ssuse   +++|*CALL COMXMSC
01334  M00S01333.ssuse   +++|*CALL COMTUSE
01335  M00S01334.ssuse   +++|*CALL COMTUSP
01336  M00S01335.ssuse   +++|
01337  M00S01336.ssuse   +++|      ITEM I          I;             # LOOP VARIABLE #
01338  M00S01337.ssuse   +++|      ITEM MORE       B;             # MORE SM-ID/SUBFAMILY INDICATOR #
01339  M00S01338.ssuse   +++|      ITEM SMARG      C(10);         # SM ARGUMENTS #
01340  M00S01339.ssuse   +++|      ITEM TEMPC      C(1);          # TEMPORARY CHARACTER #
01341  M00S01340.ssuse   +++|
01342  M00S01341.ssuse   +++|                                               CONTROL EJECT;
01343  M00S01342.ssuse   +++|
01344  M00S01343.ssuse   +++|#
01345  M00S01344.ssuse   +++|*     CHECK ALL SPECIFIED VALUES OF *SM*.
01346  M00S01345.ssuse   +++|#
01347  M00S01346.ssuse   +++|
01348  M00S01347.ssuse   +++|      MORE = TRUE;
01349  M00S01348.ssuse   +++|      SMARG = USARG$SM[0];
01350  M00S01349.ssuse   +++|      BZFILL(SMARG,TYPFILL"BFILL",10);
01351  M00S01350.ssuse   +++|      SLOWFOR I = 0 STEP 1 WHILE I LS MAXSM AND MORE
01352  M00S01351.ssuse   +++|      DO
01353  M00S01352.ssuse   +++|        BEGIN  # CHECK SPECIFIED SM-ID-S #
01354  M00S01353.ssuse   +++|        TEMPC = C<I,1>SMARG;
01355  M00S01354.ssuse   +++|        IF TEMPC EQ " "
01356  M00S01355.ssuse   +++|        THEN                         # NO MORE SM-ID-S #
01357  M00S01356.ssuse   +++|          BEGIN
01358  M00S01357.ssuse   +++|          MORE = FALSE;
01359  M00S01358.ssuse   +++|          TEST I;
01360  M00S01359.ssuse   +++|          END
01361  M00S01360.ssuse   +++|
01362  M00S01361.ssuse   +++|        IF TEMPC GR "H" OR TEMPC LS "A"
01363  M00S01362.ssuse   +++|        THEN                         # INCORRECT SM #
01364  M00S01363.ssuse   +++|          BEGIN
01365  M00S01364.ssuse   +++|          SSMSG$LINE[0] = " INCORRECT SM.";
01366  M00S01365.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01367  M00S01366.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01368  M00S01367.ssuse   +++|          END
01369  M00S01368.ssuse   +++|
01370  M00S01369.ssuse   +++|        IF B<TEMPC,1>SEL$SM EQ 1
01371  M00S01370.ssuse   +++|        THEN                         # DUPLICATE SM #
01372  M00S01371.ssuse   +++|          BEGIN
01373  M00S01372.ssuse   +++|          SSMSG$LINE[0] = " DUPLICATE SM.";
01374  M00S01373.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01375  M00S01374.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01376  M00S01375.ssuse   +++|          END
01377  M00S01376.ssuse   +++|
01378  M00S01377.ssuse   +++|        B<TEMPC,1>SEL$SM = 1;        # TURN SM BIT ON #
01379  M00S01378.ssuse   +++|        END  # CHECK SPECIFIED SM-ID-S #
01380  M00S01379.ssuse   +++|
01381  M00S01380.ssuse   +++|#
01382  M00S01381.ssuse   +++|*     CHECK ALL SPECIFIED VALUES OF *SB*.
01383  M00S01382.ssuse   +++|#
01384  M00S01383.ssuse   +++|
01385  M00S01384.ssuse   +++|      MORE = TRUE;
01386  M00S01385.ssuse   +++|      SLOWFOR I = 0 STEP 1 WHILE I LQ MAXSF AND MORE
01387  M00S01386.ssuse   +++|      DO
01388  M00S01387.ssuse   +++|        BEGIN  # CHECK SPECIFIED SUBFAMILIES #
01389  M00S01388.ssuse   +++|        TEMPC = C<I,1>USARG$SB[0];
01390  M00S01389.ssuse   +++|        IF TEMPC EQ 0
01391  M00S01390.ssuse   +++|        THEN                         # NO MORE SUBFAMILIES #
01392  M00S01391.ssuse   +++|          BEGIN
01393  M00S01392.ssuse   +++|          MORE = FALSE;
01394  M00S01393.ssuse   +++|          TEST I;
01395  M00S01394.ssuse   +++|          END
01396  M00S01395.ssuse   +++|
01397  M00S01396.ssuse   +++|        IF TEMPC LS "0" OR TEMPC GR "7"
01398  M00S01397.ssuse   +++|        THEN                         # INCORRECT SUBFAMILY #
01399  M00S01398.ssuse   +++|          BEGIN
01400  M00S01399.ssuse   +++|          SSMSG$LINE[0] = " INCORRECT SUBFAMILY.";
01401  M00S01400.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01402  M00S01401.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01403  M00S01402.ssuse   +++|          END
01404  M00S01403.ssuse   +++|
01405  M00S01404.ssuse   +++|        IF B<TEMPC - "0",1>SEL$SB EQ 1
01406  M00S01405.ssuse   +++|        THEN                         # DUPLICATE SUBFAMILY #
01407  M00S01406.ssuse   +++|          BEGIN
01408  M00S01407.ssuse   +++|          SSMSG$LINE[0] = " DUPLICATE SUBFAMILY.";
01409  M00S01408.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01410  M00S01409.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01411  M00S01410.ssuse   +++|          END
01412  M00S01411.ssuse   +++|
01413  M00S01412.ssuse   +++|        B<TEMPC - "0",1>SEL$SB = 1;  # TURN SUBFAMILY BIT ON #
01414  M00S01413.ssuse   +++|        END  # CHECK SPECIFIED SUBFAMILIES #
01415  M00S01414.ssuse   +++|
01416  M00S01415.ssuse   +++|#
01417  M00S01416.ssuse   +++|*     CHECK THE VALUES OF *OP*.
01418  M00S01417.ssuse   +++|#
01419  M00S01418.ssuse   +++|
01420  M00S01419.ssuse   +++|      REPORT$A = FALSE;
01421  M00S01420.ssuse   +++|      REPORT$B = FALSE;
01422  M00S01421.ssuse   +++|      REPORT$C = FALSE;
01423  M00S01422.ssuse   +++|      REPORT$D = FALSE;
01424  M00S01423.ssuse   +++|
01425  M00S01424.ssuse   +++|      SLOWFOR I = 0 STEP 1 UNTIL 9
01426  M00S01425.ssuse   +++|      DO
01427  M00S01426.ssuse   +++|        BEGIN  # CHECK ALL VALUES OF *OP* #
01428  M00S01427.ssuse   +++|        TEMPC = C<I,1>USARG$OP[0];
01429  M00S01428.ssuse   +++|        IF TEMPC NQ 0
01430  M00S01429.ssuse   +++|        THEN
01431  M00S01430.ssuse   +++|          BEGIN  # CHECK SPECIFIED *OP* #
01432  M00S01431.ssuse   +++|          IF TEMPC GR "D" OR TEMPC LS "A"
01433  M00S01432.ssuse   +++|          THEN
01434  M00S01433.ssuse   +++|            BEGIN
01435  M00S01434.ssuse   +++|            SSMSG$LINE[0] = " INCORRECT REPORT OPTION.";
01436  M00S01435.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01437  M00S01436.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01438  M00S01437.ssuse   +++|            END
01439  M00S01438.ssuse   +++|
01440  M00S01439.ssuse   +++|          ELSE
01441  M00S01440.ssuse   +++|            BEGIN  # SET APPROPRIATE FLAG #
01442  M00S01441.ssuse   +++|            IF TEMPC EQ "A"
01443  M00S01442.ssuse   +++|            THEN                     # REPORT A SELECTED #
01444  M00S01443.ssuse   +++|              BEGIN
01445  M00S01444.ssuse   +++|              IF NOT REPORT$A
01446  M00S01445.ssuse   +++|              THEN                   # UNIQUE OPTION #
01447  M00S01446.ssuse   +++|                BEGIN
01448  M00S01447.ssuse   +++|                REPORT$A = TRUE;
01449  M00S01448.ssuse   +++|                TEST I;
01450  M00S01449.ssuse   +++|                END
01451  M00S01450.ssuse   +++|
01452  M00S01451.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01453  M00S01452.ssuse   +++|                BEGIN
01454  M00S01453.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01455  M00S01454.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01456  M00S01455.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01457  M00S01456.ssuse   +++|                END
01458  M00S01457.ssuse   +++|
01459  M00S01458.ssuse   +++|              END
01460  M00S01459.ssuse   +++|
01461  M00S01460.ssuse   +++|            IF TEMPC EQ "B"
01462  M00S01461.ssuse   +++|            THEN                     # REPORT B SELECTED #
01463  M00S01462.ssuse   +++|              BEGIN
01464  M00S01463.ssuse   +++|              IF NOT REPORT$B
01465  M00S01464.ssuse   +++|              THEN                   # UNIQUE OPTION #
01466  M00S01465.ssuse   +++|                BEGIN
01467  M00S01466.ssuse   +++|                REPORT$B = TRUE;
01468  M00S01467.ssuse   +++|                TEST I;
01469  M00S01468.ssuse   +++|                END
01470  M00S01469.ssuse   +++|
01471  M00S01470.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01472  M00S01471.ssuse   +++|                BEGIN
01473  M00S01472.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01474  M00S01473.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01475  M00S01474.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01476  M00S01475.ssuse   +++|                END
01477  M00S01476.ssuse   +++|
01478  M00S01477.ssuse   +++|              END
01479  M00S01478.ssuse   +++|
01480  M00S01479.ssuse   +++|            IF TEMPC EQ "C"
01481  M00S01480.ssuse   +++|            THEN                     # REPORT C SELECTED #
01482  M00S01481.ssuse   +++|              BEGIN
01483  M00S01482.ssuse   +++|              IF NOT REPORT$C
01484  M00S01483.ssuse   +++|              THEN                   # UNIQUE OPTION #
01485  M00S01484.ssuse   +++|                BEGIN
01486  M00S01485.ssuse   +++|                REPORT$C = TRUE;
01487  M00S01486.ssuse   +++|                TEST I;
01488  M00S01487.ssuse   +++|                END
01489  M00S01488.ssuse   +++|
01490  M00S01489.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01491  M00S01490.ssuse   +++|                BEGIN
01492  M00S01491.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01493  M00S01492.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01494  M00S01493.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01495  M00S01494.ssuse   +++|                END
01496  M00S01495.ssuse   +++|
01497  M00S01496.ssuse   +++|              END
01498  M00S01497.ssuse   +++|
01499  M00S01498.ssuse   +++|            IF TEMPC EQ "D"
01500  M00S01499.ssuse   +++|            THEN                     # REPORT D SELECTED #
01501  M00S01500.ssuse   +++|              BEGIN
01502  M00S01501.ssuse   +++|              IF NOT REPORT$D
01503  M00S01502.ssuse   +++|              THEN                   # UNIQUE OPTION #
01504  M00S01503.ssuse   +++|                BEGIN
01505  M00S01504.ssuse   +++|                REPORT$D = TRUE;
01506  M00S01505.ssuse   +++|                TEST I;
01507  M00S01506.ssuse   +++|                END
01508  M00S01507.ssuse   +++|
01509  M00S01508.ssuse   +++|              ELSE                   # DUPLICATE OPTION #
01510  M00S01509.ssuse   +++|                BEGIN
01511  M00S01510.ssuse   +++|                SSMSG$LINE[0] = " DUPLICATE OPTION.";
01512  M00S01511.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
01513  M00S01512.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
01514  M00S01513.ssuse   +++|                END
01515  M00S01514.ssuse   +++|
01516  M00S01515.ssuse   +++|              END
01517  M00S01516.ssuse   +++|
01518  M00S01517.ssuse   +++|            END  # SET APPROPRIATE FLAG #
01519  M00S01518.ssuse   +++|
01520  M00S01519.ssuse   +++|          END  # CHECK SPECIFIED *OP* #
01521  M00S01520.ssuse   +++|
01522  M00S01521.ssuse   +++|        END  # CHECK ALL VALUES OF *OP* #
01523  M00S01522.ssuse   +++|
01524  M00S01523.ssuse   +++|#
01525  M00S01524.ssuse   +++|*     CHECK THAT *CN* IS SPECIFIED IF REPORT D IS SELECTED.
01526  M00S01525.ssuse   +++|#
01527  M00S01526.ssuse   +++|
01528  M00S01527.ssuse   +++|      IF REPORT$D
01529  M00S01528.ssuse   +++|      THEN
01530  M00S01529.ssuse   +++|        BEGIN  # CHECK *CN* #
01531  M00S01530.ssuse   +++|        IF USARG$CN[0] EQ 0
01532  M00S01531.ssuse   +++|        THEN
01533  M00S01532.ssuse   +++|          BEGIN
01534  M00S01533.ssuse   +++|          SSMSG$LINE[0] = " CN NOT SPECIFIED.";
01535  M00S01534.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01536  M00S01535.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01537  M00S01536.ssuse   +++|          END
01538  M00S01537.ssuse   +++|
01539  M00S01538.ssuse   +++|        END  # CHECK *CN* #
01540  M00S01539.ssuse   +++|
01541  M00S01540.ssuse   +++|      IF USARG$CM[0] NQ 0
01542  M00S01541.ssuse   +++|      THEN
01543  M00S01542.ssuse   +++|        BEGIN
01544  M00S01543.ssuse   +++|        C<1,1>USARG$CM[0] = "-";
01545  M00S01544.ssuse   +++|        END
01546  M00S01545.ssuse   +++|
01547  M00S01546.ssuse   +++|      RETURN;
01548  M00S01547.ssuse   +++|
01549  M00S01548.ssuse   +++|      END  # USOPT #
01550  M00S01549.ssuse   +++|
01551  M00S01550.ssuse   +++|    TERM
01552  M00S01551.ssuse   +++|PROC USRPBAS;
01553  M00S01552.ssuse   +++|# TITLE USRPBAS - GENERATES BASIC AND SPECIFIED OPTIONAL REPORTS.     #
01554  M00S01553.ssuse   +++|
01555  M00S01554.ssuse   +++|      BEGIN  # USRPBAS #
01556  M00S01555.ssuse   +++|
01557  M00S01556.ssuse   +++|#
01558  M00S01557.ssuse   +++|**    USRPBAS - GENERATES BASIC AND SPECIFIED OPTIONAL REPORTS.
01559  M00S01558.ssuse   +++|*
01560  M00S01559.ssuse   +++|*     THIS PROCEDURE GENERATES THE BASIC REPORT AND ANY OPTIONAL
01561  M00S01560.ssuse   +++|*     REPORTS SELECTED FOR ALL THE SM-S AND SUBFAMILIES SPECIFIED.
01562  M00S01561.ssuse   +++|*
01563  M00S01562.ssuse   +++|*     PROC USRPBAS.
01564  M00S01563.ssuse   +++|*
01565  M00S01564.ssuse   +++|*     ENTRY     PROCESSED AND SYNTAX-CHECKED PARAMETERS SET UP IN
01566  M00S01565.ssuse   +++|*               *TUSPCOM*.
01567  M00S01566.ssuse   +++|*               (USARG$FM) = FAMILY NAME.
01568  M00S01567.ssuse   +++|*               (SEL$SM)   = BITS SET FOR THE SELECTED SM-S.
01569  M00S01568.ssuse   +++|*               (SEL$SB)   = BITS SET FOR THE SELECTED SUBFAMILIES.
01570  M00S01569.ssuse   +++|*               (REPORT$A) = OPTIONAL REPORT SELECTION CODE,
01571  M00S01570.ssuse   +++|*                              TRUE, REPORT A SELECTED,
01572  M00S01571.ssuse   +++|*                              FALSE, REPORT A NOT SELECTED.
01573  M00S01572.ssuse   +++|*               (REPORT$B) = OPTIONAL REPORT SELECTION CODE,
01574  M00S01573.ssuse   +++|*                              TRUE, REPORT B SELECTED,
01575  M00S01574.ssuse   +++|*                              FALSE, REPORT B NOT SELECTED.
01576  M00S01575.ssuse   +++|*               (REPORT$C) = OPTIONAL REPORT SELECTION CODE,
01577  M00S01576.ssuse   +++|*                              TRUE, REPORT C SELECTED,
01578  M00S01577.ssuse   +++|*                              FALSE, REPORT C NOT SELECTED.
01579  M00S01578.ssuse   +++|*               (REPORT$D) = OPTIONAL REPORT SELECTION CODE,
01580  M00S01579.ssuse   +++|*                              TRUE, REPORT D SELECTED,
01581  M00S01580.ssuse   +++|*                              FALSE, REPORT D NOT SELECTED.
01582  M00S01581.ssuse   +++|*
01583  M00S01582.ssuse   +++|*     EXIT      ALL SPECIFIED REPORTS HAVE BEEN GENERATED.
01584  M00S01583.ssuse   +++|*
01585  M00S01584.ssuse   +++|*     MESSAGES  1)  FAMILY NOT FOUND.
01586  M00S01585.ssuse   +++|*               2)  UNABLE TO OPEN CATALOG.
01587  M00S01586.ssuse   +++|*               3)  SSUSE ABNORMAL, USRPBAS.
01588  M00S01587.ssuse   +++|*               4)  SFM CATALOG PARITY ERROR.
01589  M00S01588.ssuse   +++|*
01590  M00S01589.ssuse   +++|*     NOTES     *USRPBAS* GENERATES THE BASIC REPORT FOR ALL SM-S
01591  M00S01590.ssuse   +++|*               SPECIFIED FOR ALL OF THE SUBFAMILIES SPECIFIED IN
01592  M00S01591.ssuse   +++|*               THE BITS OF *SEL$SB*.  IF ANY OPTIONAL REPORTS
01593  M00S01592.ssuse   +++|*               ARE DESIRED, *USRPBAS* CALLS THE APPROPRIATE ROUTINES
01594  M00S01593.ssuse   +++|*               TO GENERATE THOSE REPORTS.
01595  M00S01594.ssuse   +++|#
01596  M00S01595.ssuse   +++|
01597  M00S01596.ssuse   +++|#
01598  M00S01597.ssuse   +++|****  PROC USRPBAS - XREF LIST BEGIN.
01599  M00S01598.ssuse   +++|#
01600  M00S01599.ssuse   +++|
01601  M00S01600.ssuse   +++|      XREF
01602  M00S01601.ssuse   +++|        BEGIN
01603  M00S01602.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01604  M00S01603.ssuse   +++|        PROC CCLOSE;                 # CLOSES THE CATALOG #
01605  M00S01604.ssuse   +++|        PROC COPEN;                  # OPENS THE CATALOG #
01606  M00S01605.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
01607  M00S01606.ssuse   +++|        PROC MESSAGE;                # DISPLAYS MESSAGE IN DAYFILE #
01608  M00S01607.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01609  M00S01608.ssuse   +++|                                       OR RETURN #
01610  M00S01609.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
01611  M00S01610.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS THE REPORT FILE #
01612  M00S01611.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
01613  M00S01612.ssuse   +++|        PROC RPOPEN;                 # OPENS THE REPORT FILE #
01614  M00S01613.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01615  M00S01614.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
01616  M00S01615.ssuse   +++|        PROC USANALS;                # ANALYZE *FCT* ENTRIES FOR A SM #
01617  M00S01616.ssuse   +++|        PROC USBASLN;                # PRINTS LINE ON BASIC REPORT #
01618  M00S01617.ssuse   +++|        PROC USBASTOT;               # PRINTS TOTAL ON BASIC REPORT #
01619  M00S01618.ssuse   +++|        PROC USHEAD;                 # WRITES HEADER ON OUTPUT FILE #
01620  M00S01619.ssuse   +++|        PROC USRPTA;                 # GENERATES OPTIONAL REPORT A #
01621  M00S01620.ssuse   +++|        PROC USRPTB;                 # GENERATES OPTIONAL REPORT B #
01622  M00S01621.ssuse   +++|        PROC USRPTC;                 # GENERATES OPTIONAL REPORT C #
01623  M00S01622.ssuse   +++|        PROC USRPTD;                 # GENERATES OPTIONAL REPORT D #
01624  M00S01623.ssuse   +++|        PROC ZFILL;                  # ZERO FILL ARRAY #
01625  M00S01624.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGERS TO DISPLAY #
01626  M00S01625.ssuse   +++|        END
01627  M00S01626.ssuse   +++|
01628  M00S01627.ssuse   +++|#
01629  M00S01628.ssuse   +++|****  PROC USRPBAS - XREF LIST END.
01630  M00S01629.ssuse   +++|#
01631  M00S01630.ssuse   +++|
01632  M00S01631.ssuse   +++|      DEF PROCNAME #"USRPBAS."#;     # PROC NAME #
01633  M00S01632.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01634  M00S01633.ssuse   +++|*CALL COMBFAS
01635  M00S01634.ssuse   +++|*CALL COMBBZF
01636  M00S01635.ssuse   +++|*CALL COMBCMD
01637  M00S01636.ssuse   +++|*CALL COMBCMS
01638  M00S01637.ssuse   +++|*CALL COMBMCT
01639  M00S01638.ssuse   +++|*CALL COMBPFP
01640  M00S01639.ssuse   +++|*CALL COMXMSC
01641  M00S01640.ssuse   +++|*CALL COMSPFM
01642  M00S01641.ssuse   +++|*CALL COMTOUT
01643  M00S01642.ssuse   +++|*CALL COMTUSE
01644  M00S01643.ssuse   +++|*CALL COMTUSP
01645  M00S01644.ssuse   +++|
01646  M00S01645.ssuse   +++|      ITEM EJEC$FLAG  B;             # FLAG TO TEST FOR EJECT #
01647  M00S01646.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
01648  M00S01647.ssuse   +++|      ITEM GROUP      I;             # LOOP VARIABLE #
01649  M00S01648.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
01650  M00S01649.ssuse   +++|      ITEM SUBFAM     I;             # LOOP VARIABLE #
01651  M00S01650.ssuse   +++|      ITEM TEMP$FAM   C(7);          # HOLDS FAMILY NAME #
01652  M00S01651.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01653  M00S01652.ssuse   +++|
01654  M00S01653.ssuse   +++|      ARRAY OUT$FET [0:0] S(SFETL);;  # FET FOR OUTPUT FILE #
01655  M00S01654.ssuse   +++|
01656  M00S01655.ssuse   +++|                                               CONTROL EJECT;
01657  M00S01656.ssuse   +++|
01658  M00S01657.ssuse   +++|#
01659  M00S01658.ssuse   +++|*     SET THE FET POINTER FOR THE OUTPUT FILE.
01660  M00S01659.ssuse   +++|#
01661  M00S01660.ssuse   +++|
01662  M00S01661.ssuse   +++|      IF USARG$LZ[0] EQ 0
01663  M00S01662.ssuse   +++|      THEN                           # NO OUTPUT FILE #
01664  M00S01663.ssuse   +++|        BEGIN
01665  M00S01664.ssuse   +++|        OUT$FETP = 0;
01666  M00S01665.ssuse   +++|        END
01667  M00S01666.ssuse   +++|
01668  M00S01667.ssuse   +++|      ELSE                           # SET UP THE FWA OF THE FET #
01669  M00S01668.ssuse   +++|        BEGIN
01670  M00S01669.ssuse   +++|        OUT$FETP = LOC(OUT$FET[0]);
01671  M00S01670.ssuse   +++|        END
01672  M00S01671.ssuse   +++|
01673  M00S01672.ssuse   +++|#
01674  M00S01673.ssuse   +++|*     OPEN THE OUTPUT FILE.
01675  M00S01674.ssuse   +++|#
01676  M00S01675.ssuse   +++|
01677  M00S01676.ssuse   +++|      RPOPEN(USARG$L[0],OUT$FETP,USHEAD);
01678  M00S01677.ssuse   +++|
01679  M00S01678.ssuse   +++|#
01680  M00S01679.ssuse   +++|*     CHANGE ZERO-FILL TO SPACE-FILL FOR FAMILY.
01681  M00S01680.ssuse   +++|#
01682  M00S01681.ssuse   +++|
01683  M00S01682.ssuse   +++|      TEMP$FAM = USARG$FM[0];
01684  M00S01683.ssuse   +++|      BZFILL(TEMP$FAM,TYPFILL"BFILL",7);
01685  M00S01684.ssuse   +++|
01686  M00S01685.ssuse   +++|#
01687  M00S01686.ssuse   +++|*     GENERATE THE BASIC REPORT ON EACH SUBFAMILY SPECIFIED.
01688  M00S01687.ssuse   +++|#
01689  M00S01688.ssuse   +++|
01690  M00S01689.ssuse   +++|      EJEC$FLAG = FALSE;             # DO NOT EJECT ON FIRST PAGE #
01691  M00S01690.ssuse   +++|      SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF
01692  M00S01691.ssuse   +++|      DO
01693  M00S01692.ssuse   +++|        BEGIN  # PROCESS EACH SUBFAMILY #
01694  M00S01693.ssuse   +++|        IF B<SUBFAM,1>SEL$SB EQ 0
01695  M00S01694.ssuse   +++|        THEN                         # SUBFAMILY NOT SELECTED #
01696  M00S01695.ssuse   +++|          BEGIN
01697  M00S01696.ssuse   +++|          TEST SUBFAM;
01698  M00S01697.ssuse   +++|          END
01699  M00S01698.ssuse   +++|
01700  M00S01699.ssuse   +++|#
01701  M00S01700.ssuse   +++|*     SWITCH TO THE SPECIFIED FAMILY AND USER INDEX FOR
01702  M00S01701.ssuse   +++|*     THE SELECTED SUBFAMILY.
01703  M00S01702.ssuse   +++|#
01704  M00S01703.ssuse   +++|
01705  M00S01704.ssuse   +++|        PFP$WRD0[0] = 0;
01706  M00S01705.ssuse   +++|        PFP$FAM[0] = USARG$FM[0];
01707  M00S01706.ssuse   +++|        PFP$UI[0] = DEF$UI + SUBFAM;
01708  M00S01707.ssuse   +++|        PFP$FG1[0] = TRUE;
01709  M00S01708.ssuse   +++|        PFP$FG4[0] = TRUE;
01710  M00S01709.ssuse   +++|        SETPFP(PFP[0]);
01711  M00S01710.ssuse   +++|        IF PFP$STAT[0] NQ 0
01712  M00S01711.ssuse   +++|        THEN                         # FAMILY NOT FOUND #
01713  M00S01712.ssuse   +++|          BEGIN
01714  M00S01713.ssuse   +++|          SSMSG$LINE[0] = " FAMILY NOT FOUND.";
01715  M00S01714.ssuse   +++|          MESSAGE(SSMSG$BUF[0],SYSUDF1);
01716  M00S01715.ssuse   +++|          RPCLOSE(OUT$FETP);
01717  M00S01716.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01718  M00S01717.ssuse   +++|          END
01719  M00S01718.ssuse   +++|
01720  M00S01719.ssuse   +++|#
01721  M00S01720.ssuse   +++|*     OPEN THE CATALOG FOR THE SUBFAMILY AND CHECK THE RETURNED
01722  M00S01721.ssuse   +++|*     ERROR STATUS.
01723  M00S01722.ssuse   +++|#
01724  M00S01723.ssuse   +++|
01725  M00S01724.ssuse   +++|        CHAR$10[0] = XCDD(SUBFAM);
01726  M00S01725.ssuse   +++|        SFMCAT$LST[0] = CHAR$R1[0];
01727  M00S01726.ssuse   +++|        COPEN(USARG$FM[0],SUBFAM,SFMCATNM[0],"RM",TRUE,FLAG);
01728  M00S01727.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
01729  M00S01728.ssuse   +++|        THEN
01730  M00S01729.ssuse   +++|          BEGIN
01731  M00S01730.ssuse   +++|          LOFPROC(OCT$LFN[1]);       # ADD LFN TO LIST OF FILES #
01732  M00S01731.ssuse   +++|          END
01733  M00S01732.ssuse   +++|
01734  M00S01733.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
01735  M00S01734.ssuse   +++|        THEN
01736  M00S01735.ssuse   +++|          BEGIN  # CHECK FOR ERROR TYPE #
01737  M00S01736.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
01738  M00S01737.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
01739  M00S01738.ssuse   +++|          THEN
01740  M00S01739.ssuse   +++|            BEGIN
01741  M00S01740.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN CATALOG.";
01742  M00S01741.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01743  M00S01742.ssuse   +++|            RPCLOSE(OUT$FETP);
01744  M00S01743.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01745  M00S01744.ssuse   +++|            END
01746  M00S01745.ssuse   +++|
01747  M00S01746.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
01748  M00S01747.ssuse   +++|          THEN
01749  M00S01748.ssuse   +++|            BEGIN
01750  M00S01749.ssuse   +++|            SSMSG$LINE[0] = " SFMCATALOG PARITY ERROR.";
01751  M00S01750.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
01752  M00S01751.ssuse   +++|            RPCLOSE(OUT$FETP);
01753  M00S01752.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01754  M00S01753.ssuse   +++|            END
01755  M00S01754.ssuse   +++|
01756  M00S01755.ssuse   +++|          ELSE
01757  M00S01756.ssuse   +++|            BEGIN
01758  M00S01757.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
01759  M00S01758.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
01760  M00S01759.ssuse   +++|            RPCLOSE(OUT$FETP);
01761  M00S01760.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
01762  M00S01761.ssuse   +++|            END
01763  M00S01762.ssuse   +++|
01764  M00S01763.ssuse   +++|          END  # CHECK FOR ERROR TYPE #
01765  M00S01764.ssuse   +++|
01766  M00S01765.ssuse   +++|#
01767  M00S01766.ssuse   +++|*     GENERATE BASIC REPORT DETAIL LINES FOR EACH SM SPECIFIED.
01768  M00S01767.ssuse   +++|#
01769  M00S01768.ssuse   +++|
01770  M00S01769.ssuse   +++|        SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
01771  M00S01770.ssuse   +++|        DO
01772  M00S01771.ssuse   +++|          BEGIN  # PROCESS EACH SM #
01773  M00S01772.ssuse   +++|          IF B<SM,1>SEL$SM EQ 0
01774  M00S01773.ssuse   +++|          THEN                       # SM NOT SELECTED #
01775  M00S01774.ssuse   +++|            BEGIN
01776  M00S01775.ssuse   +++|            TEST SM;
01777  M00S01776.ssuse   +++|            END
01778  M00S01777.ssuse   +++|
01779  M00S01778.ssuse   +++|          TEMP$SM = SM;
01780  M00S01779.ssuse   +++|
01781  M00S01780.ssuse   +++|#
01782  M00S01781.ssuse   +++|*     CLEAR THE SUB-TOTAL COUNTERS FOR EACH GROUP.
01783  M00S01782.ssuse   +++|#
01784  M00S01783.ssuse   +++|
01785  M00S01784.ssuse   +++|          ZFILL(GRP$TOT,8*MAXGP);
01786  M00S01785.ssuse   +++|
01787  M00S01786.ssuse   +++|          IF EJEC$FLAG
01788  M00S01787.ssuse   +++|          THEN                       # NOT FIRST PAGE #
01789  M00S01788.ssuse   +++|            BEGIN
01790  M00S01789.ssuse   +++|            RPEJECT(OUT$FETP);
01791  M00S01790.ssuse   +++|            END
01792  M00S01791.ssuse   +++|
01793  M00S01792.ssuse   +++|#
01794  M00S01793.ssuse   +++|*     CHECK THE NUMBER OF *FCT* ENTRIES FOR THIS SM.  IF NONE, PRINT
01795  M00S01794.ssuse   +++|*     AN APPROPRIATE MESSAGE AND PROCESS THE NEXT SPECIFIED SM.
01796  M00S01795.ssuse   +++|#
01797  M00S01796.ssuse   +++|
01798  M00S01797.ssuse   +++|          P<PREAMBLE> = PRMBADR;     # SET PREAMBLE TABLE ADDRESS #
01799  M00S01798.ssuse   +++|          IF PRM$SCW1[SM] EQ 0
01800  M00S01799.ssuse   +++|          THEN                       # SM NOT ASSIGNED TO SUBFAMILY #
01801  M00S01800.ssuse   +++|            BEGIN
01802  M00S01801.ssuse   +++|            RPLINE(OUT$FETP,"SM ",3,3,1);
01803  M00S01802.ssuse   +++|            RPLINE(OUT$FETP,TEMP$SM,6,1,1);
01804  M00S01803.ssuse   +++|            RPLINE(OUT$FETP," NOT ASSIGNED TO SUBFAMILY  .",7,29,1);
01805  M00S01804.ssuse   +++|            CHAR$10[0] = XCDD(SUBFAM);
01806  M00S01805.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R1[0],34,1,0);
01807  M00S01806.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
01808  M00S01807.ssuse   +++|            TEST SM;
01809  M00S01808.ssuse   +++|            END
01810  M00S01809.ssuse   +++|
01811  M00S01810.ssuse   +++|#
01812  M00S01811.ssuse   +++|*     ANALYZE THE *AST* AND *FCT* ENTRIES FOR THE SELECTED SM.  SET UP
01813  M00S01812.ssuse   +++|*     THE SUB-TOTALS COUNTERS.
01814  M00S01813.ssuse   +++|#
01815  M00S01814.ssuse   +++|
01816  M00S01815.ssuse   +++|          USANALS(SUBFAM,SM);
01817  M00S01816.ssuse   +++|
01818  M00S01817.ssuse   +++|#
01819  M00S01818.ssuse   +++|*     DISPLAY THE SUB-TOTALS COUNTERS ON THE REPORT FILE.
01820  M00S01819.ssuse   +++|#
01821  M00S01820.ssuse   +++|
01822  M00S01821.ssuse   +++|          USBASLN(SUBFAM,SM);
01823  M00S01822.ssuse   +++|
01824  M00S01823.ssuse   +++|          END  # PROCESS EACH SM #
01825  M00S01824.ssuse   +++|
01826  M00S01825.ssuse   +++|#
01827  M00S01826.ssuse   +++|*     CLOSE THE SFM CATALOG.
01828  M00S01827.ssuse   +++|#
01829  M00S01828.ssuse   +++|
01830  M00S01829.ssuse   +++|        CCLOSE(USARG$FM[0],SUBFAM,0,FLAG);
01831  M00S01830.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
01832  M00S01831.ssuse   +++|        THEN                         # UNABLE TO CLOSE CATALOG #
01833  M00S01832.ssuse   +++|          BEGIN
01834  M00S01833.ssuse   +++|          SSMSG$PROC[0] = PROCNAME;
01835  M00S01834.ssuse   +++|          MESSAGE(SSMSG[0],SYSUDF1);
01836  M00S01835.ssuse   +++|          RPCLOSE(OUT$FETP);
01837  M00S01836.ssuse   +++|          RESTPFP(PFP$ABORT);        # RESTORE USER-S *PFP* AND ABORT #
01838  M00S01837.ssuse   +++|          END
01839  M00S01838.ssuse   +++|
01840  M00S01839.ssuse   +++|        ZFILL(FCTBUFCW,1);           # CLEAR CONTROL BUFFER #
01841  M00S01840.ssuse   +++|
01842  M00S01841.ssuse   +++|        END  # PROCESS EACH SUBFAMILY #
01843  M00S01842.ssuse   +++|
01844  M00S01843.ssuse   +++|#
01845  M00S01844.ssuse   +++|*     WRITE SM AND SUBFAMILY TOTALS TO REPORT FILE.
01846  M00S01845.ssuse   +++|#
01847  M00S01846.ssuse   +++|
01848  M00S01847.ssuse   +++|      USBASTOT;
01849  M00S01848.ssuse   +++|
01850  M00S01849.ssuse   +++|#
01851  M00S01850.ssuse   +++|*     CALL SPECIFIED OPTIONAL REPORTS.
01852  M00S01851.ssuse   +++|#
01853  M00S01852.ssuse   +++|
01854  M00S01853.ssuse   +++|      IF REPORT$A
01855  M00S01854.ssuse   +++|      THEN                           # OPTIONAL REPORT A SPECIFIED #
01856  M00S01855.ssuse   +++|        BEGIN
01857  M00S01856.ssuse   +++|        USRPTA;
01858  M00S01857.ssuse   +++|        END
01859  M00S01858.ssuse   +++|
01860  M00S01859.ssuse   +++|      IF REPORT$B
01861  M00S01860.ssuse   +++|      THEN                           # OPTIONAL REPORT B SPECIFIED #
01862  M00S01861.ssuse   +++|        BEGIN
01863  M00S01862.ssuse   +++|        USRPTB;
01864  M00S01863.ssuse   +++|        END
01865  M00S01864.ssuse   +++|
01866  M00S01865.ssuse   +++|      IF REPORT$C
01867  M00S01866.ssuse   +++|      THEN                           # OPTIONAL REPORT C SPECIFIED #
01868  M00S01867.ssuse   +++|        BEGIN
01869  M00S01868.ssuse   +++|        USRPTC;
01870  M00S01869.ssuse   +++|        END
01871  M00S01870.ssuse   +++|
01872  M00S01871.ssuse   +++|      IF REPORT$D
01873  M00S01872.ssuse   +++|      THEN                           # OPTIONAL REPORT D SPECIFIED #
01874  M00S01873.ssuse   +++|        BEGIN
01875  M00S01874.ssuse   +++|        USRPTD;
01876  M00S01875.ssuse   +++|        END
01877  M00S01876.ssuse   +++|
01878  M00S01877.ssuse   +++|#
01879  M00S01878.ssuse   +++|*     CLOSE THE REPORT FILE.
01880  M00S01879.ssuse   +++|#
01881  M00S01880.ssuse   +++|
01882  M00S01881.ssuse   +++|      RPCLOSE(OUT$FETP);
01883  M00S01882.ssuse   +++|
01884  M00S01883.ssuse   +++|      RETURN;
01885  M00S01884.ssuse   +++|
01886  M00S01885.ssuse   +++|      END  # USRPBAS #
01887  M00S01886.ssuse   +++|
01888  M00S01887.ssuse   +++|    TERM
01889  M00S01888.ssuse   +++|PROC USRPTA;
01890  M00S01889.ssuse   +++|# TITLE USRPTA - GENERATES OPTIONAL REPORT A.                         #
01891  M00S01890.ssuse   +++|
01892  M00S01891.ssuse   +++|      BEGIN  # USRPTA #
01893  M00S01892.ssuse   +++|
01894  M00S01893.ssuse   +++|#
01895  M00S01894.ssuse   +++|**    USRPTA - GENERATES OPTIONAL REPORT A.
01896  M00S01895.ssuse   +++|*
01897  M00S01896.ssuse   +++|*     THIS PROC LISTS THE CONTENTS OF A STORAGE MODULE AS DESCRIBED
01898  M00S01897.ssuse   +++|*     IN THE SMMAP.
01899  M00S01898.ssuse   +++|*
01900  M00S01899.ssuse   +++|*     PROC USRPTA.
01901  M00S01900.ssuse   +++|*
01902  M00S01901.ssuse   +++|*     ENTRY.    (SEL$SB) = BITS SET FOR THE SELECTED SUBFAMILIES.
01903  M00S01902.ssuse   +++|*               (SEL$SM) = BITS SET FOR THE SELECTED SM-S.
01904  M00S01903.ssuse   +++|*
01905  M00S01904.ssuse   +++|*     EXIT.     OPTIONAL REPORT A GENERATED.
01906  M00S01905.ssuse   +++|*
01907  M00S01906.ssuse   +++|*     MESSAGES. 1) SMMAP PARITY ERROR.
01908  M00S01907.ssuse   +++|*               2) UNABLE TO OPEN SMMAP.
01909  M00S01908.ssuse   +++|*               3) SSUSE ABNORMAL, USRPTA.
01910  M00S01909.ssuse   +++|*               4) FAMILY NOT FOUND.
01911  M00S01910.ssuse   +++|*
01912  M00S01911.ssuse   +++|*     NOTES.    FOR EACH SELECTED SM, PROC *USRPTA* OPENS THE
01913  M00S01912.ssuse   +++|*               CORRESPONDING SMMAP AND PRINTS THE CONTENTS
01914  M00S01913.ssuse   +++|*               OF THE Y,Z COORDINATES.  THE COLUMN CONTAINING
01915  M00S01914.ssuse   +++|*               THE DRD-S IS NOT REPORTED ON.  THIS REPORT IS FIFTEEN
01916  M00S01915.ssuse   +++|*               PAGES LONG WITH 1 Z AND 22 Y COORDINATES
01917  M00S01916.ssuse   +++|*               LISTED PER PAGE.
01918  M00S01917.ssuse   +++|#
01919  M00S01918.ssuse   +++|
01920  M00S01919.ssuse   +++|#
01921  M00S01920.ssuse   +++|****  PROC USRPTA - XREF LIST BEGIN.
01922  M00S01921.ssuse   +++|#
01923  M00S01922.ssuse   +++|
01924  M00S01923.ssuse   +++|      XREF
01925  M00S01924.ssuse   +++|        BEGIN
01926  M00S01925.ssuse   +++|        PROC BZFILL;                 # BLANK FILLS CHARACTERS #
01927  M00S01926.ssuse   +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
01928  M00S01927.ssuse   +++|        PROC MCLOSE;                 # CLOSES SMMAP #
01929  M00S01928.ssuse   +++|        PROC MESSAGE;                # PRINTS MESSAGE IN DAYFILE #
01930  M00S01929.ssuse   +++|        PROC MGETENT;                # GETS SMMAP ENTRY #
01931  M00S01930.ssuse   +++|        PROC MOPEN;                  # OPENS SMMAP #
01932  M00S01931.ssuse   +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01933  M00S01932.ssuse   +++|                                       OR RETURN #
01934  M00S01933.ssuse   +++|        PROC RPCLOSE;                # CLOSES THE REPORT FILE #
01935  M00S01934.ssuse   +++|        PROC RPEJECT;                # PAGE EJECTS FOR REPORT FILE #
01936  M00S01935.ssuse   +++|        PROC RPLINE;                 # WRITES LINE TO REPORT FILE #
01937  M00S01936.ssuse   +++|        PROC RPSPACE;                # PUTS BLANK LINE ON REPORT FILE #
01938  M00S01937.ssuse   +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
01939  M00S01938.ssuse   +++|        FUNC XCDD  C(10);            # CONVERTS INTEGER TO DISPLAY #
01940  M00S01939.ssuse   +++|        END
01941  M00S01940.ssuse   +++|
01942  M00S01941.ssuse   +++|#
01943  M00S01942.ssuse   +++|****  PROC USRPTA - XREF LIST END.
01944  M00S01943.ssuse   +++|#
01945  M00S01944.ssuse   +++|
01946  M00S01945.ssuse   +++|      DEF PROCNAME #"USRPTA."#;      # PROC NAME #
01947  M00S01946.ssuse   +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
01948  M00S01947.ssuse   +++|*CALL COMBFAS
01949  M00S01948.ssuse   +++|*CALL COMBBZF
01950  M00S01949.ssuse   +++|*CALL COMBCMD
01951  M00S01950.ssuse   +++|*CALL COMBCMS
01952  M00S01951.ssuse   +++|*CALL COMBMAP
01953  M00S01952.ssuse   +++|*CALL COMBMCT
01954  M00S01953.ssuse   +++|*CALL COMBPFP
01955  M00S01954.ssuse   +++|*CALL COMSPFM
01956  M00S01955.ssuse   +++|*CALL COMTOUT
01957  M00S01956.ssuse   +++|*CALL COMTUSE
01958  M00S01957.ssuse   +++|*CALL COMTUSP
01959  M00S01958.ssuse   +++|
01960  M00S01959.ssuse   +++|      ITEM FLAG       I;             # ERROR FLAG #
01961  M00S01960.ssuse   +++|      ITEM GP         I;             # GROUP #
01962  M00S01961.ssuse   +++|      ITEM GRT        I;             # GROUP ORDINAL #
01963  M00S01962.ssuse   +++|      ITEM MAP$ORD    I;             # SMMAP ORDINAL #
01964  M00S01963.ssuse   +++|      ITEM RPTFLAG    C(7);          # REPORT FLAG #
01965  M00S01964.ssuse   +++|      ITEM SM         I;             # LOOP VARIABLE #
01966  M00S01965.ssuse   +++|      ITEM SM$ADDR    I;             # ADDRESS OF SMMAP #
01967  M00S01966.ssuse   +++|      ITEM TEMP$SM    C(1);          # SM CHARACTER #
01968  M00S01967.ssuse   +++|      ITEM Y          I;             # LOOP VARIABLE #
01969  M00S01968.ssuse   +++|      ITEM Z          I;             # LOOP VARIABLE #
01970  M00S01969.ssuse   +++|
01971  M00S01970.ssuse   +++|      ARRAY SMMAP$NM [0:0] P(1);     # ARRAY TO BUILD SMMAP #
01972  M00S01971.ssuse   +++|        BEGIN
01973  M00S01972.ssuse   +++|        ITEM SMAP$NAME  C(00,00,07);  # SMMAP FILE NAME #
01974  M00S01973.ssuse   +++|        ITEM SMAP$CHAR  C(00,00,05);  # FIRST FIVE CHARACTERS #
01975  M00S01974.ssuse   +++|        ITEM SMAP$SMID  C(00,30,01);  # SM-ID #
01976  M00S01975.ssuse   +++|        ITEM SMAP$Z     U(00,36,24) = [0];  # ZERO FILL FILE NAME #
01977  M00S01976.ssuse   +++|        END
01978  M00S01977.ssuse   +++|
01979  M00S01978.ssuse   +++|
01980  M00S01979.ssuse   +++|                                               CONTROL EJECT;
01981  M00S01980.ssuse   +++|
01982  M00S01981.ssuse   +++|#
01983  M00S01982.ssuse   +++|*     SET DEFAULT FAMILY AND USER INDEX.
01984  M00S01983.ssuse   +++|#
01985  M00S01984.ssuse   +++|
01986  M00S01985.ssuse   +++|      PFP$WRD0[0] =0;
01987  M00S01986.ssuse   +++|      PFP$FAM[0] = DEF$FAM;
01988  M00S01987.ssuse   +++|      PFP$UI[0] = DEF$UI;
01989  M00S01988.ssuse   +++|      PFP$FG1[0] = TRUE;
01990  M00S01989.ssuse   +++|      PFP$FG4[0] = TRUE;
01991  M00S01990.ssuse   +++|      SETPFP(PFP[0]);
01992  M00S01991.ssuse   +++|      IF PFP$STAT NQ 0
01993  M00S01992.ssuse   +++|      THEN                           # FAMILY NOT FOUND #
01994  M00S01993.ssuse   +++|        BEGIN
01995  M00S01994.ssuse   +++|        SSMSG$LINE[0] = " FAMILY NOT FOUND.";
01996  M00S01995.ssuse   +++|        MESSAGE(SSMSG$BUF[0],SYSUDF1);
01997  M00S01996.ssuse   +++|        RPCLOSE(OUT$FETP);
01998  M00S01997.ssuse   +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
01999  M00S01998.ssuse   +++|        END
02000  M00S01999.ssuse   +++|
02001  M00S02000.ssuse   +++|#
02002  M00S02001.ssuse   +++|*     PROCESS EACH SPECIFIED SM.
02003  M00S02002.ssuse   +++|#
02004  M00S02003.ssuse   +++|
02005  M00S02004.ssuse   +++|      SLOWFOR SM = 1 STEP 1 UNTIL MAXSM
02006  M00S02005.ssuse   +++|      DO
02007  M00S02006.ssuse   +++|        BEGIN  # PROCESS EACH SM #
02008  M00S02007.ssuse   +++|        IF B<SM,1>SEL$SM EQ 0
02009  M00S02008.ssuse   +++|        THEN                         # SM NOT SELECTED #
02010  M00S02009.ssuse   +++|          BEGIN
02011  M00S02010.ssuse   +++|          TEST SM;
02012  M00S02011.ssuse   +++|          END
02013  M00S02012.ssuse   +++|
02014  M00S02013.ssuse   +++|        TEMP$SM = SM;
02015  M00S02014.ssuse   +++|        SMAP$SMID[0] = TEMP$SM;
02016  M00S02015.ssuse   +++|        SMAP$CHAR[0] = SMMAP;
02017  M00S02016.ssuse   +++|
02018  M00S02017.ssuse   +++|#
02019  M00S02018.ssuse   +++|*     OPEN THE SMMAP AND CHECK THE RETURNED ERROR STATUS.
02020  M00S02019.ssuse   +++|#
02021  M00S02020.ssuse   +++|
02022  M00S02021.ssuse   +++|        MOPEN(SM,SMAP$NAME[0],"RM",FLAG);
02023  M00S02022.ssuse   +++|        IF FLAG EQ CMASTAT"NOERR"
02024  M00S02023.ssuse   +++|        THEN
02025  M00S02024.ssuse   +++|          BEGIN
02026  M00S02025.ssuse   +++|          LOFPROC(SMAP$NAME[0]);     # ADD LFN TO LIST OF FILES #
02027  M00S02026.ssuse   +++|          END
02028  M00S02027.ssuse   +++|
02029  M00S02028.ssuse   +++|        SM$ADDR = LOC(MAPBUFR[0]);
02030  M00S02029.ssuse   +++|        P<SMUMAP> = SM$ADDR;
02031  M00S02030.ssuse   +++|
02032  M00S02031.ssuse   +++|        IF FLAG NQ CMASTAT"NOERR"
02033  M00S02032.ssuse   +++|        THEN
02034  M00S02033.ssuse   +++|          BEGIN  # SMMAP NOT OPENED SUCCESSFULLY #
02035  M00S02034.ssuse   +++|          IF FLAG EQ CMASTAT"CIOERR"
02036  M00S02035.ssuse   +++|          THEN
02037  M00S02036.ssuse   +++|            BEGIN
02038  M00S02037.ssuse   +++|            SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
02039  M00S02038.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02040  M00S02039.ssuse   +++|            RPCLOSE(OUT$FETP);
02041  M00S02040.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02042  M00S02041.ssuse   +++|            END
02043  M00S02042.ssuse   +++|
02044  M00S02043.ssuse   +++|          IF FLAG EQ CMASTAT"INTLK"  ##
02045  M00S02044.ssuse   +++|            OR FLAG EQ CMASTAT"ATTERR"
02046  M00S02045.ssuse   +++|          THEN
02047  M00S02046.ssuse   +++|            BEGIN
02048  M00S02047.ssuse   +++|            SSMSG$LINE[0] = " UNABLE TO OPEN SMMAP.";
02049  M00S02048.ssuse   +++|            MESSAGE(SSMSG$BUF[0],SYSUDF1);
02050  M00S02049.ssuse   +++|            RPCLOSE(OUT$FETP);
02051  M00S02050.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02052  M00S02051.ssuse   +++|            END
02053  M00S02052.ssuse   +++|
02054  M00S02053.ssuse   +++|          ELSE
02055  M00S02054.ssuse   +++|            BEGIN
02056  M00S02055.ssuse   +++|            SSMSG$PROC[0] = PROCNAME;
02057  M00S02056.ssuse   +++|            MESSAGE(SSMSG[0],SYSUDF1);
02058  M00S02057.ssuse   +++|            RPCLOSE(OUT$FETP);
02059  M00S02058.ssuse   +++|            RESTPFP(PFP$ABORT);      # RESTORE USER-S *PFP* AND ABORT #
02060  M00S02059.ssuse   +++|            END
02061  M00S02060.ssuse   +++|
02062  M00S02061.ssuse   +++|          END  # SMMAP NOT OPENED SUCCESSFULLY #
02063  M00S02062.ssuse   +++|
02064  M00S02063.ssuse   +++|#
02065  M00S02064.ssuse   +++|*     PROCESS EACH Y,Z PAIR.
02066  M00S02065.ssuse   +++|#
02067  M00S02066.ssuse   +++|
02068  M00S02067.ssuse   +++|        SLOWFOR Z = 0 STEP 1 UNTIL MAX$Z
02069  M00S02068.ssuse   +++|        DO
02070  M00S02069.ssuse   +++|          BEGIN  # PROCESS EACH Z COORDINATE #
02071  M00S02070.ssuse   +++|
02072  M00S02071.ssuse   +++|#
02073  M00S02072.ssuse   +++|*     DO NOT PROCESS THE COLUMN CONTAINING THE DRD-S.
02074  M00S02073.ssuse   +++|#
02075  M00S02074.ssuse   +++|
02076  M00S02075.ssuse   +++|          IF Z EQ Z$NO$CUBE
02077  M00S02076.ssuse   +++|          THEN
02078  M00S02077.ssuse   +++|            BEGIN
02079  M00S02078.ssuse   +++|            TEST Z;
02080  M00S02079.ssuse   +++|            END
02081  M00S02080.ssuse   +++|
02082  M00S02081.ssuse   +++|#
02083  M00S02082.ssuse   +++|*     WRITE HEADER TO REPORT FILE.
02084  M00S02083.ssuse   +++|#
02085  M00S02084.ssuse   +++|
02086  M00S02085.ssuse   +++|            RPEJECT(OUT$FETP);
02087  M00S02086.ssuse   +++|            RPLINE(OUT$FETP,"SSUSE OPTIONAL REPORT A - ",5,26,1);
02088  M00S02087.ssuse   +++|            RPLINE(OUT$FETP,"STORAGE MODULE MAP FOR SM = ",31,28,1);
02089  M00S02088.ssuse   +++|            RPLINE(OUT$FETP,TEMP$SM,59,1,0);
02090  M00S02089.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02091  M00S02090.ssuse   +++|            RPLINE(OUT$FETP,"FLAGS:",5,6,1);
02092  M00S02091.ssuse   +++|            RPLINE(OUT$FETP,"P = CARTRIDGE EXISTS IN POOL",15,28,1);
02093  M00S02092.ssuse   +++|            RPLINE(OUT$FETP,"S = RESERVED FOR SYSTEM USE",49,27,1);
02094  M00S02093.ssuse   +++|            RPLINE(OUT$FETP,"C = RESERVED FOR CUSTOMER ",81,26,1);
02095  M00S02094.ssuse   +++|            RPLINE(OUT$FETP,"ENGINEERING",107,11,0);
02096  M00S02095.ssuse   +++|            RPLINE(OUT$FETP,"F = NOT ASSIGNED TO THIS FAMILY",15,31,1);
02097  M00S02096.ssuse   +++|            RPLINE(OUT$FETP,"E = ERROR FLAG",49,14,1);
02098  M00S02097.ssuse   +++|            RPLINE(OUT$FETP,"N = (Y,Z) DOES NOT EXIST",81,24,1);
02099  M00S02098.ssuse   +++|            RPLINE(OUT$FETP," IN SMMAP",105,9,0);
02100  M00S02099.ssuse   +++|            RPLINE(OUT$FETP,"R = RESERVED FOR ALTERNATE SMMAP",15,32,1);
02101  M00S02100.ssuse   +++|            RPLINE(OUT$FETP,"GPORD = ORDINAL IN GROUP",81,24,0);
02102  M00S02101.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02103  M00S02102.ssuse   +++|            RPLINE(OUT$FETP,"Y     Z    CM  CSN",6,18,1);
02104  M00S02103.ssuse   +++|            RPLINE(OUT$FETP,"FAMILY      SUBFAMILY",30,21,1);
02105  M00S02104.ssuse   +++|            RPLINE(OUT$FETP,"GROUP    GPORD     FLAGS",56,24,0);
02106  M00S02105.ssuse   +++|            RPSPACE(OUT$FETP,SP"SPACE",1);
02107  M00S02106.ssuse   +++|
02108  M00S02107.ssuse   +++|          SLOWFOR Y = 0 STEP 1 UNTIL MAX$Y
02109  M00S02108.ssuse   +++|          DO
02110  M00S02109.ssuse   +++|            BEGIN  # PROCESS EACH Y COORDINATE #
02111  M00S02110.ssuse   +++|
02112  M00S02111.ssuse   +++|#
02113  M00S02112.ssuse   +++|*     CALCULATE THE ORDINAL OF THE SMMAP ENTRY.
02114  M00S02113.ssuse   +++|#
02115  M00S02114.ssuse   +++|
02116  M00S02115.ssuse   +++|            MAP$ORD = MAXORD - Z - (Y * 16);
02117  M00S02116.ssuse   +++|
02118  M00S02117.ssuse   +++|#
02119  M00S02118.ssuse   +++|*     GET THE SMMAP ENTRY AND CHECK THE RETURNED ERROR STATUS.
02120  M00S02119.ssuse   +++|#
02121  M00S02120.ssuse   +++|
02122  M00S02121.ssuse   +++|            MGETENT(SM,MAP$ORD,SM$ADDR,FLAG);
02123  M00S02122.ssuse   +++|            IF FLAG NQ CMASTAT"NOERR"
02124  M00S02123.ssuse   +++|            THEN
02125  M00S02124.ssuse   +++|              BEGIN  # CHECK FOR TYPE OF ERROR #
02126  M00S02125.ssuse   +++|              IF FLAG EQ CMASTAT"CIOERR"
02127  M00S02126.ssuse   +++|              THEN
02128  M00S02127.ssuse   +++|                BEGIN
02129  M00S02128.ssuse   +++|                SSMSG$LINE[0] = " SMMAP PARITY ERROR.";
02130  M00S02129.ssuse   +++|                MESSAGE(SSMSG$BUF[0],SYSUDF1);
02131  M00S02130.ssuse   +++|                RPCLOSE(OUT$FETP);
02132  M00S02131.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
02133  M00S02132.ssuse   +++|                END
02134  M00S02133.ssuse   +++|
02135  M00S02134.ssuse   +++|              ELSE
02136  M00S02135.ssuse   +++|                BEGIN
02137  M00S02136.ssuse   +++|                SSMSG$PROC[0] = PROCNAME;
02138  M00S02137.ssuse   +++|                MESSAGE(SSMSG[0],SYSUDF1);
02139  M00S02138.ssuse   +++|                RPCLOSE(OUT$FETP);
02140  M00S02139.ssuse   +++|                RESTPFP(PFP$ABORT);  # RESTORE USER-S *PFP* AND ABORT #
02141  M00S02140.ssuse   +++|                END
02142  M00S02141.ssuse   +++|
02143  M00S02142.ssuse   +++|              END  # CHECK FOR TYPE OF ERROR #
02144  M00S02143.ssuse   +++|
02145  M00S02144.ssuse   +++|#
02146  M00S02145.ssuse   +++|*     CHECK CARTRIDGE FLAGS AND SET THE APPROPRIATE CHARACTERS
02147  M00S02146.ssuse   +++|*     INTO THE REPORT FLAG.
02148  M00S02147.ssuse   +++|#
02149  M00S02148.ssuse   +++|
02150  M00S02149.ssuse   +++|            RPTFLAG = "      ";
02151  M00S02150.ssuse   +++|            IF CM$FLAG1[0]
02152  M00S02151.ssuse   +++|            THEN
02153  M00S02152.ssuse   +++|              BEGIN
02154  M00S02153.ssuse   +++|              C<0,1>RPTFLAG = "E";
02155  M00S02154.ssuse   +++|              END
02156  M00S02155.ssuse   +++|
02157  M00S02156.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"CEUSE"
02158  M00S02157.ssuse   +++|            THEN                     # RESERVED FOR CUSTOMER ENGINEER #
02159  M00S02158.ssuse   +++|              BEGIN
02160  M00S02159.ssuse   +++|              C<1,1>RPTFLAG = "C";
02161  M00S02160.ssuse   +++|              END
02162  M00S02161.ssuse   +++|
02163  M00S02162.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"SCRPOOL"
02164  M00S02163.ssuse   +++|            THEN                     # ASSIGNED TO POOL #
02165  M00S02164.ssuse   +++|              BEGIN
02166  M00S02165.ssuse   +++|              C<2,1>RPTFLAG = "P";
02167  M00S02166.ssuse   +++|              END
02168  M00S02167.ssuse   +++|
02169  M00S02168.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"SYSUSE"
02170  M00S02169.ssuse   +++|            THEN                     # RESERVED FOR SYSTEM USE #
02171  M00S02170.ssuse   +++|              BEGIN
02172  M00S02171.ssuse   +++|              C<3,1>RPTFLAG = "S";
02173  M00S02172.ssuse   +++|              END
02174  M00S02173.ssuse   +++|
02175  M00S02174.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"NOCUBE"
02176  M00S02175.ssuse   +++|            THEN                     # NO CUBICLE AT THIS ORDINAL #
02177  M00S02176.ssuse   +++|              BEGIN
02178  M00S02177.ssuse   +++|              C<4,1>RPTFLAG = "N";
02179  M00S02178.ssuse   +++|              END
02180  M00S02179.ssuse   +++|
02181  M00S02180.ssuse   +++|            IF CM$FMLYNM[0] NQ USARG$FM[0]
02182  M00S02181.ssuse   +++|            THEN                     # NOT IN THIS FAMILY #
02183  M00S02182.ssuse   +++|              BEGIN
02184  M00S02183.ssuse   +++|              C<5,1>RPTFLAG = "F";
02185  M00S02184.ssuse   +++|              END
02186  M00S02185.ssuse   +++|
02187  M00S02186.ssuse   +++|            IF CM$CODE[0] EQ CUBSTAT"ALTCSU"
02188  M00S02187.ssuse   +++|            THEN                     # RESERVED FOR OTHER SMMAP #
02189  M00S02188.ssuse   +++|              BEGIN
02190  M00S02189.ssuse   +++|              C<6,1>RPTFLAG = "R";
02191  M00S02190.ssuse   +++|              END
02192  M00S02191.ssuse   +++|
02193  M00S02192.ssuse   +++|#
02194  M00S02193.ssuse   +++|*     CONVERT VALUES TO DISPLAY CODE AND WRITE THEM TO THE
02195  M00S02194.ssuse   +++|*     REPORT FILE.
02196  M00S02195.ssuse   +++|#
02197  M00S02196.ssuse   +++|
02198  M00S02197.ssuse   +++|            CHAR$10[0] = XCDD(Y);
02199  M00S02198.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],5,2,1);
02200  M00S02199.ssuse   +++|
02201  M00S02200.ssuse   +++|            CHAR$10[0] = XCDD(Z);
02202  M00S02201.ssuse   +++|            RPLINE(OUT$FETP,CHAR$R2[0],11,2,1);
02203  M00S02202.ssuse   +++|
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssuse.txt ยท Last modified: by 127.0.0.1