%META:TOPICINFO{author="ChrisBartram" date="1149893102" format="1.1" version="1.1"}% %META:TOPICPARENT{name="Hp3000MpexXeqs"}%
(* ASC, a customized LISTF mode                                    *)
(* Original version by Gil Milbauer and/or Michael Hensley         *)

(* This is a LISTF mode based upon MPEX's mode 2, but it is sorted *)
(* by sectors, ascending.  This listing is useful for determining  *)
(* which files should be examined first when disc space must be    *)
(* reclaimed.                                                      *)

(* *-------------------------------------------------------------* *)
(* *                                                             * *)
(* *                       Change Log                            * *)
(* *                                                             * *)
(* *   Date   by  Modification                                   * *)
(* * -------- --- -----------------------------------------------* *)
(* * 04/02/92 LSB Initial turnover to production                 * *)
(* *                (patterned after DATESORT.CMD.VECSL)         * *)
(* * 05/29/92 LSB Added group, account and grand totals of quan- * *)
(* *                tity of files and sectors.                   * *)
(* * 08/21/92 LSB Added revision information in output.          * *)
(* * 03/23/93 LSB Added CO_NAME plus name of LISTF mode in revi- * *)
(* *                sion information.                            * *)
(* * 03/26/93 LSB Changed header to print ',' only if HPJOBNAME  * *)
(* *                has a value.                                 * *)
(* * 11/03/93 LSB Changed handling of CO_NAME so that it is      * *)
(* *                treated as an MPEX variable and not an       * *)
(* *                MPE/iX variable.                             * *)
(* *              Changed handling of WGLCPU so that it is       * *)
(* *                treated as an MPEX variable and not an       * *)
(* *                MPE/iX variable.                             * *)
(* * 04/25/95 LSB Added FMTCOMMA on number of files and sectors. * *)
(* * 05/14/96 LSB Changed revision display to use modification   * *)
(* *                date of source file rather than compiled     * *)
(* *                file.                                        * *)
(* *                                                             * *)
(* *-------------------------------------------------------------* *)

VAR TEMP: STRING[40];

VAR ROPENFILE: TOPENFILE;

MPEXHEADER1:="FILENAME  CODE  ------------LOGICAL RECORD"+
             "-----------  ------SPACE-------";

MPEXHEADER2:="                  SIZE  TYP        EOF    "+
             "  LIMIT R/B     SECTORS #X MX";

MPEXHEADER3:="";

FOR RFILE IN MPEXFILESET
  SORT (ACCOUNT:8,GROUP:8,SECTORS:"ASC")

  PAGEHEAD
    BEGIN
      WRITELN (" ");

      WRITELN
          (STRWRITE
               (SVAR ("OPER_CO_NAME") +
                " [" +
                SVAR ("WGLCPU") +
                "] %LISTF " +
                UPS (SVAR ("MPEXFILESET") ):
                68:
                "CENTER") );

      IF HPJOBNAME <> "" THEN
          WRITELN
              (STRWRITE
                   (HPJOBNAME +
                    "," +
                    HPUSER +
                    "." +
                    HPACCOUNT +
                    ", " +
                    HPDATEF +
                    ", " +
                    HPTIMEF:
                    68:
                    "CENTER") )
      ELSE
          WRITELN
              (STRWRITE
                   (HPUSER +
                    "." +
                    HPACCOUNT +
                    ", " +
                    HPDATEF +
                    ", " +
                    HPTIMEF:
                    68:
                    "CENTER") );

      WRITELN (" ");

      WRITELN
          (STRWRITE
               ("(Sorted by sectors, ascending)":
                68:
                "CENTER") );

      WRITELN (" ");
    END

  ONBREAKAFTER 1
    BEGIN
      WRITELN (" ");

      WRITELN
          (STRWRITE
              ("Account " + ACCOUNT:16:'RIGHTJUST'),
           " total:",
           FMTCOMMA (TOTAL (1,1) ):8:"R",
           " files  ",
           RPT (" ",16),
           FMTCOMMA (TOTAL (1,SECTORS) ):10:"R",
           " sectors");

      WRITELN (" ");
    END

  ONBREAKBEFORE 2
    BEGIN
      WRITELN (" ");

      WRITELN
          ("ACCOUNT=  ",
           ACCOUNT:8,
           RPT (" ",4),
           "GROUP=  ",
           GROUP:8);

      WRITELN (" ");

      WRITELN (MPEXHEADER1);

      WRITELN (MPEXHEADER2);

      WRITELN (" ");
    END

  ONBREAKAFTER 2
    BEGIN
      WRITELN (" ");

      WRITELN
          (STRWRITE
              ("Group " + GROUP:16:'RIGHTJUST'),
           " total:",
           FMTCOMMA (TOTAL (2,1) ):8:"R",
           " files  ",
           RPT (" ",16),
           FMTCOMMA (TOTAL (2,SECTORS) ):10:"R",
           " sectors");
    END

  DO
    BEGIN
      WRITELN
          (FILE:8,
           FMTOPENED:2,
           CODE:6,
           (IF ISASCII THEN
                RECSIZE
            ELSE RECSIZE/2):5,
           "WB"[ASCII],
           RPT (" ",2),
           FMTTYPE:4,
           EOF:10,
           FLIMIT:11,
           BLOCKFACTOR:4,
           RPT (" ",2),
           FMTCOMMA (SECTORS):10:"R",
           " ",
           NUMEXTENTS:2,
           (IF MAXEXTENTS = 0 THEN
                "  *"
            ELSE STRWRITE (MAXEXTENTS:3) ) );
    END

  FINALLY
    BEGIN
      WRITELN
          (RPT (" ",11),
           "Grand total:",
           FMTCOMMA (TOTAL (0,1) ):8:"R",
           " files  ",
           RPT (" ",16),
           FMTCOMMA (TOTAL (0,SECTORS) ):10:"R",
           " sectors");

      WRITELN (" ");

      WRITELN (" ");

      WRITELN
          (RPT (" ",36),
           SVAR ("CO_NAME"),
           "'s ASC revision: ",
           VEFINFO ("ASC.LISTF.VESOFT").MODDATE,
           ", ",
           VEFINFO ("ASC.LISTF.VESOFT").MODTIME);
    END

-- Main.ChrisBartram - 09 Jun 2006