home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / MISC / OS2 / DWNSRT47.ZIP / DOWNSORT.DOC < prev    next >
Encoding:
Text File  |  1990-12-01  |  77.8 KB  |  2,180 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                                                                DOWNSORT
  19.         Maximus CBCS DOWNload file SORT and List Utility (OS/2 and DOS)
  20.                                                             Version 4.7
  21.  
  22.  
  23.  
  24.  
  25.                                                        December 1, 1990
  26.  
  27.  
  28.                                                           Rob Hamerling
  29.  
  30.                                                 Vianen, The Netherlands
  31.                                          Phone: ++31-3473-72136 (voice)
  32.                                                  FIDO-net: 2:512/4.1098
  33.                    Tested by the author with MAXIMUS CBCS 1.00 and 1.02
  34.  
  35.              Maximus Download File Sort and List Utility (OS/2 and DOS)
  36.  
  37.  
  38.  
  39.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  40.  
  41.  
  42.  
  43.   PREFACE
  44.  
  45.   DOWNSORT was started a few years ago as a program for my own use when
  46.   I was SYSOP of the Bulletin Board PC-Square, to get overviews of my
  47.   download material for the users.  At that time PC-Square was running
  48.   BinkleyTerm and OPUS under DOS.
  49.  
  50.   Now PC-Square runs with OS/2, BinkleyTerm and MAXIMUS CBCS, and I'm
  51.   not the SYSOP anymore, but still strongly involved.  As a
  52.   contribution to PC-Square and the large international Bulletin Board
  53.   community of MAXIMUS CBCS boards, I decided to upgrade my DOWNSORT
  54.   program to the current software.
  55.  
  56.   DOWNSORT is now developed in an OS/2 environment.  But it is
  57.   distributed as 'family'-application: it runs under OS/2 and DOS.
  58.  
  59.  
  60.   ACKNOWLEDGEMENTS
  61.  
  62.   I would like to thank all users that contributed with constructive
  63.   remarks and encouraging appraisals.  Without doubt Emmanuel Sandorfi
  64.   of 2:320/5 holds the record in number of suggestions and amount of
  65.   additionally required programming effort.  He also provided the
  66.   additional title-fonts (2 and 3).
  67.  
  68.  
  69.   REGISTRATION AND SHAREWARE FEE
  70.  
  71.   DOWNSORT is a $ 0.00 Shareware Program.
  72.  
  73.   Registration is voluntary: please send me a netmail message with your
  74.   name and (net-)address.  That gives me an impression of the usage and
  75.   the impact of changes to DOWNSORT.
  76.  
  77.  
  78.   WARRANTY
  79.  
  80.   None!
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.                                                             Preface  ii
  101.  
  102.  
  103.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  104.  
  105.  
  106.  
  107.   CONTENTS
  108.  
  109.  
  110.     DOWNSORT  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  111.     Purpose and Objectives  . . . . . . . . . . . . . . . . . . . . . 1
  112.     Functional Description  . . . . . . . . . . . . . . . . . . . . . 1
  113.   ▐   File-dates and HPFS   . . . . . . . . . . . . . . . . . . . . . 1
  114.       ORPHAN report   . . . . . . . . . . . . . . . . . . . . . . . . 2
  115.       BBS-list  . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  116.       NEW-list  . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  117.       ALL-list  . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  118.       GBL-list  . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  119.       FILES.BBS   . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  120.       Additional notes about the lists:   . . . . . . . . . . . . . . 4
  121.  
  122.     Usage   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  123.     Installation  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  124.     Commandline parameters  . . . . . . . . . . . . . . . . . . . . . 6
  125.     Configuration file   . . . . . . . . . . . . . . . . . . . . . . 10
  126.       Parameters with global scope   . . . . . . . . . . . . . . . . 10
  127.       Parameters with a local scope  . . . . . . . . . . . . . . . . 10
  128.     Usability hints  . . . . . . . . . . . . . . . . . . . . . . . . 11
  129.       Specification of AREA.DAT  . . . . . . . . . . . . . . . . . . 11
  130.       Location of FILES.BBS  . . . . . . . . . . . . . . . . . . . . 12
  131.       Privilege control  . . . . . . . . . . . . . . . . . . . . . . 12
  132.       Orphan report  . . . . . . . . . . . . . . . . . . . . . . . . 12
  133.       Duplicates   . . . . . . . . . . . . . . . . . . . . . . . . . 12
  134.       List Headers, Titles, Subtitles and Bottomlines  . . . . . . . 13
  135.       Privileges with File Request   . . . . . . . . . . . . . . . . 13
  136.     Sample specifications and usage  . . . . . . . . . . . . . . . . 13
  137.       DOWNSORT specification sample  . . . . . . . . . . . . . . . . 13
  138.       BinkleyTerm specification sample   . . . . . . . . . . . . . . 14
  139.     Dependencies and restrictions  . . . . . . . . . . . . . . . . . 15
  140.     Wishlist   . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
  141.  
  142.     Packaging  . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
  143.  
  144.     Program Information  . . . . . . . . . . . . . . . . . . . . . . 18
  145.     Development Environment  . . . . . . . . . . . . . . . . . . . . 18
  146.     Program Organisation   . . . . . . . . . . . . . . . . . . . . . 18
  147.     Main Data Organisation   . . . . . . . . . . . . . . . . . . . . 20
  148.     Storage and Performance  . . . . . . . . . . . . . . . . . . . . 22
  149.  
  150.     Appendix A: History of changes and version legend  . . . . . . . 24
  151.  
  152.     Appendix B: Sample Configuration File  . . . . . . . . . . . . . 28
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.                                                           Contents  iii
  165.  
  166.  
  167.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  168.  
  169.  
  170.  
  171.   DOWNSORT
  172.  
  173.   DOWNSORT is a utility to make overviews of available download files
  174.   for Bulletin Board Systems running MAXIMUS CBCS.  The overviews
  175.   differ in sort sequence, purpose of use and size.
  176.  
  177.   A report is produced for files that could not be listed for any
  178.   reason.
  179.  
  180.  
  181.   PURPOSE AND OBJECTIVES
  182.  
  183.   DOWNSORT is designed for the following purposes:
  184.  
  185.   1. Produce different overviews of files which are available for
  186.      download by users of the Bulletin Board and by File Requestors.
  187.      QUICK and EASY retrieval is the main goal for the lists.
  188.      Therefore many lists-types and within a type several variations
  189.      should be  available: versatility for SYSOP and users.
  190.  
  191.   2. Report files which are not listed in FILES.BBS, or which privilege
  192.      (individual or its area) prevents it from being reported.  This
  193.      might be caused by several circumstances:
  194.      ■  a file belongs to a collection (area) with a higher privilege
  195.         than the selected report privilege (typically the upload area,
  196.         but also restricted collections for selected users).
  197.      ■  a file appears in FILES.BBS after a ^Px-sequence that specifies
  198.         a higher privilege than the selected report privilege (newly
  199.         uploaded files in a combined up- and download directory).
  200.      ■  an typing-error has been made in the filename.ext in FILES.BBS
  201.         or a file has been renamed without updating FILES.BBS.
  202.      ■  a file is not listed in FILES.BBS on purpose by SYSOP, to
  203.         prevent it being downloaded other than by CO-SYSOP.
  204.  
  205.   3. Must be able to run unattended (typically overnight).
  206.  
  207.   4. Should not disclose files to users (file-requesters) without
  208.      positive agreement by SYSOP.
  209.  
  210.  
  211.  
  212.   FUNCTIONAL DESCRIPTION
  213.  
  214. ▐ The program DOWNSORT may create several types of outputfiles.
  215.  
  216.  
  217. ▐ FILE-DATES AND HPFS
  218.  
  219. ▐ One of the function of DOWNSORT is sorting on file date.  Since the
  220. ▐ introduction of HPFS in OS/2 version 1.2, there is not one single
  221. ▐ file-date anymore!  A file on an HPFS volume has different values
  222. ▐ for:
  223.  
  224. ▐ ■  Creation date
  225. ▐ ■  LastAccess date
  226.  
  227.  
  228.                                                             DOWNSORT  1
  229.  
  230.  
  231.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  232.  
  233.  
  234.  
  235. ▐ ■  LastWrite date
  236.  
  237. ▐ The date you see normally in DIR-listings is the LastWrite date.
  238. ▐ Most SYSOPs will have noticed that ZMODEM uploads and file-attaches
  239. ▐ give file-dates corresponding to the (LastWrite-) date of the sending
  240. ▐ system.  And most utilities handle only this 'single' date.  That
  241. ▐ means that 'old' (ZMODEM-) uploaded files are generally not on top of
  242. ▐ the acquisition lists.
  243.  
  244. ▐ But HPFS stores the date of arrival on your system (Creation) as
  245. ▐ well.  DOWNSORT handles this Creation date since version 4.7,
  246. ▐ although the lists (see below) contain the 'old fashioned' LastWrite
  247. ▐ date.  This has the following consequences:
  248.  
  249. ▐ ■  A new acquisition is on top of lists (if that list is sorted on
  250. ▐    date), and are marked in the lists as new (flag for an 'age' of a
  251. ▐    week or a month).
  252. ▐ ■  The listed file-date is the 'ordinary' date.  So users can judge
  253. ▐    for themselves if the file is 'new' for them as well.
  254.  
  255. ▐ Note: The LastAccess date is not very relevant for the purposes of
  256. ▐ DOWNSORT, although SYSOP may see when it was last downloaded.
  257.  
  258.  
  259.   ORPHAN REPORT
  260.  
  261.   This is a list of all files in download directories for which there
  262.   is no entry in the corresponding FILES.BBS file.  The report contains
  263.   date, area-name and area-path of the orphan.  The entries are sorted
  264.   on area and filename.  Not reported are MAXIMUS system files like:
  265.   FILES.?BS, *.BAK, DIR.?BS and SYSTEM*.?BS.
  266.  
  267.   Note: If there is an entry for a file in FILES.BBS without a
  268.   description, the file is NOT considered to be an Orphan.
  269.  
  270.  
  271.   BBS-LIST
  272.  
  273.   This is a list of downloadfiles that came recently available
  274.   (DOWNSORT.BBS).  The list may be sorted on date (newest first) or on
  275.   filename.  It contains compiled MECCA control sequences, for direct
  276.   use in MAXIMUS bulletins: a user-privilege sensitive list!  It might
  277.   be a good idea to put a translated [onexit] string, which translates
  278.   to [^OFpath] (without the brackets!).  When a user exits from the
  279.   BBS-list bulletin, it will fall back to the exit-bulletin.
  280.  
  281.   The length of the file (number of file-entries) may be limited by
  282.   parameters:
  283.  
  284.   ■  file-count
  285.   ■  maximum privilege
  286.  
  287.   (never more than available within the privilege limit).  If neither
  288.   specified it will contain all available files in all download
  289.   directories.
  290.  
  291.  
  292.                                                             DOWNSORT  2
  293.  
  294.  
  295.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  296.  
  297.  
  298.  
  299.   To make it a complete MAXIMUS bulletin-file a user-provided header is
  300.   included preceding the list and a trailer at the end of the list.
  301.   Header and trailer can be built by SYSOP, and may contain any
  302.   information and bulletin-control sequences (a sample is provided).
  303.  
  304.  
  305.   NEW-LIST
  306.  
  307.   Basically the same list as above, but in simple ASCII format and
  308.   without inclusion of header and trailer files.
  309.  
  310.   This list is suitable for file-requestors as brief overview of the
  311.   latest additions, updates or replacements.
  312.  
  313.  
  314.   ALL-LIST
  315.  
  316.   A list of all downloadfiles by area in alphabetical sequence (per
  317.   area) on filename.  Files of the same area are listed in groups,
  318.   separated by imbedded headers with area-name, -description, and
  319.   -privilege.  Actual status information is provided in the area-header
  320.   as well: area-filecount and -bytecount, and latest acquisition (date
  321.   and file-name).
  322.  
  323.   At the end a SUMMARY report shows per area the area-title, file-count
  324.   and byte-count, and totals.
  325.  
  326.   This list may be limited by the privilege parameter, but is not
  327.   affected by the specification of filecount-limit.  The numbers in
  328.   area-header and summary report show only what is available for the
  329.   particular privilege.
  330.  
  331.  
  332.   GBL-LIST
  333.  
  334.   A similar list as ALL-list.  But where ALL-list gives the files in
  335.   groups per area, the GBL-list ignores area-boundaries and gives a
  336.   single group, sorted on filename.  For each file the area is
  337.   mentioned.  There is no area-summary.
  338.  
  339.   SYSOP may choose which of both is suitable to make available to
  340.   users, and which to use for himself (or even both).  The GBL-list is
  341.   especially useful to check on duplicates over area's.  The GBL-list
  342.   is not limited by the filecount parameter.
  343.  
  344.  
  345.   FILES.BBS
  346.  
  347.   A new "FILES.BBS" type of file may be (re-)created for every area.
  348.   The contents of the file-information will be about the same as the
  349.   original FILES.BBS, but with the following notes:
  350.  
  351.   ■  A header is generated with area-name, -title, and -privilege.
  352.      Also the total amount of files and bytes and the most recently
  353.      acquired new file in this area is part of the header information.
  354.  
  355.  
  356.                                                             DOWNSORT  3
  357.  
  358.  
  359.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  360.  
  361.  
  362.  
  363.   ■  The entries are sorted on filename for all files with a privilege
  364.      up to and including the area-privilege.
  365.   ■  Files can have a privilege other than the area-privilege when the
  366.      original FILES.BBS file does contain ^Pp-sequences ('p' being a
  367.      privilege letter).  This construction will be rebuilt by DOWNSORT.
  368.      Files with a higher privilege than the area-privilege will follow
  369.      after a compiled MECCA-sequence (^Pp) in the new FILES.BBS.
  370.      DOWNSORT respects these indicators when reading FILES.BBS, so all
  371.      file-privilege information is retained.  This ensures no
  372.      accidental loss of file-information, and the regular user won't
  373.      see more than he should.
  374.   ■  Wild-card specifications are not propagated to the new FILES.BBS.
  375.   ■  The file description is kept internally as a single string of
  376.      maximum 240 characters.  When creating FILES.BBS files, this will
  377.      be the file format (single record per file-entry).
  378.      The original FILES.BBS may contain a (long) single string
  379.      description, or multiple (short) multiline descriptions.  When
  380.      encountering multiline descriptions in input-FILES.BBS, DOWNSORT
  381.      concatenates the separate description lines with a single
  382.      intermediate space up to a maximum of 240 bytes.  This will be the
  383.      output format if the FIL-list is requested.
  384.   ■  Comment-lines in the original FILES.BBS are discarded.
  385.  
  386.   See for naming conventions and placements "Commandline parameters" on
  387.   page 6.
  388.  
  389.  
  390.   ADDITIONAL NOTES ABOUT THE LISTS:
  391.  
  392.   ■  Dates are marked with a 'new'-indicator: a '*' if the file is only
  393. ▐    since a week on this system, and a '+' if it is since a month.
  394. ▐    FIledates later than the current system date are marked '-'
  395. ▐    (negative age).
  396.  
  397.   ■  In every outputfile the filename, MAXIMUS-area name, file-size and
  398.      -date, and file-description from FILES.BBS is listed.  A
  399.      report-line will never display more than 79 characters.
  400.      The file-description will be multi-line in ALL-list and GBL-list
  401.      if it is longer than would fit on the standard 79-position line, a
  402.      word-wrapping technique is used for readability (line-split on
  403.      word boundary).  The description is truncated at end of line in
  404.      BBS-list and NEW-list.
  405.  
  406.      The -T option will force truncation of the description in all
  407.      reports, the -W option will allow multi-line descriptions in all
  408.      reports.
  409.  
  410.      If a filename is found in FILES.BBS, but no accompanying
  411.      description, a "--- no description available ---" will be put in
  412.      place.  Files for which there is no entry in the FILES.BBS
  413.      (Orphans) are treated as Hidden files, which are only listed in
  414.      the reports if the Hidden privilege is specified.  For a way to
  415.      override this see: "Orphan report" on page 12.
  416.  
  417.   ■  The BBS-list contains MAXIMUS authorisation controls
  418.  
  419.  
  420.                                                             DOWNSORT  4
  421.  
  422.  
  423.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  424.  
  425.  
  426.  
  427.      (^PLp-sequences), corresponding to the privilege of the area or
  428.      the individual file.  So it is not necessary to make different
  429.      files for different categories of MAXIMUS users, even with the
  430.      default privilege-limit SYSOP a user will not see the files he/she
  431.      is not supposed to know about.
  432.      NEW- and ALL-lists do not contain any privilege information, the
  433.      files (or complete area's) above the specified privilege are
  434.      simply not listed, however multiple lists can be produced for
  435.      different categories of users (based on privilege).
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.                                                             DOWNSORT  5
  485.  
  486.  
  487.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  488.  
  489.  
  490.  
  491.   USAGE
  492.  
  493.  
  494.  
  495.   INSTALLATION
  496.  
  497.   With the following directions you should be able to setup and run
  498.   DOWNSORT after very short time.
  499.  
  500.   1. Make a separate directory for DOWNSORT, and make it the current
  501.      default directory every time you run DOWNSORT.  The separate
  502.      directory is a recommendation, not a requirement!
  503.  
  504.   2. Copy the files DOWNSORT.EXE and DOWNSORT.CFG from the DOWNSORT
  505.      package into this directory.
  506.  
  507.   3. Modify (edit) the file DOWNSORT.CFG to specify your environment
  508.      and list requirements.  The sample file contains comments to help
  509.      you with this process.  Most specifications are obvious.  AreaDat
  510.      is the most important parameter: DOWNSORT won't do anything useful
  511.      if it cannot find this MAXIMUS file.  See "Appendix B: Sample
  512.      Configuration File" on page 28 for a printed sample.
  513.  
  514.   4. You may give DOWNSORT a first shot by just using its name on the
  515.      commandline, with the parameter -H.  This will show a brief
  516.      HELP-screen with the possible commandline parameter
  517.      specifications.
  518.  
  519.   5. All reports will be created in the DOWNSORT directory (unless you
  520.      specified 'fpath' for the FILES.BBS output).  Browse the lists to
  521.      see if you like the contents and titles, and modify the CFG-file
  522.      to your convenience.
  523.  
  524.  
  525.  
  526.   COMMANDLINE PARAMETERS
  527.  
  528.   This paragraph deals only with the commandline parameters!
  529.  
  530.   NOTE: Parameters from DOWNSORT.CFG (see "Configuration file" on page
  531.   10) are processed first, commandline parameters may complete and
  532.   (partly) override those in the configuration file.
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.                                                                Usage  6
  549.  
  550.  
  551.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  552.  
  553.  
  554.  
  555.      DOWNSORT [@filespec]
  556.               [BBS[:p]]
  557.               [NEW[:pp]]
  558.               [ALL[:pp]]
  559.               [GBL[:pp]]
  560.               [FIL[:fpath]]
  561.               [nnn]
  562.               [-T|W]
  563.               [-A|D]
  564.               [-H|Q|V]
  565.  
  566.   @filespec The character '@' followed by a complete file specification
  567.            of the DOWNSORT configuration file.  See "Configuration
  568.            file" on page 10 for details.  This file will be used to
  569.            specify processing parameters.  If the file cannot be read,
  570.            only the commandline parameters are used.
  571.  
  572.            NOTE: The use of a configuration file is mandatory when the
  573.            file AREA.DAT is not in the default directory when running
  574.            DOWNSORT.
  575.  
  576.            Default: DOWNSORT.CFG in current default directory.
  577.  
  578.   BBS      Create the BBS-list: DOWNSORT.BBS.
  579.  
  580.            Default: DOWNSORT.BBS will not be created.
  581.  
  582.   NEW      Create NEW-list(s): DOWNSORT.N~p, where 'p' is the
  583.            appropriate privilege class (see below).
  584.  
  585.            Default: DOWNSORT.N~p will not be created.
  586.  
  587.   ALL      Create ALL-list(s): DOWNSORT.A~p, where 'p' is the
  588.            appropriate privilege class (see below).
  589.  
  590.            nnn-limit does not apply to ALL-list.
  591.  
  592.            Default: DOWNSORT.A~p will not be created.
  593.  
  594.   GBL      Create GBL-list(s): DOWNSORT.G~p, where 'p' is the
  595.            appropriate privilege class (see below).
  596.  
  597.            nnn-limit does not apply to GBL-list.
  598.  
  599.            Default: DOWNSORT.G~p will not be created.
  600.  
  601.   FIL      Create FILES.BBS type of files for each area.
  602.  
  603.            The specification does not apply to FILES.BBS, a
  604.            privilege-limit cannot be specified and defaults to SYSOP.
  605.            Another privilege limit can be specified however by means of
  606.            the configuration file.
  607.  
  608.            For each individual area the following convention will be
  609.            used for the name and place of the FILES.BBS list (in this
  610.  
  611.  
  612.                                                                Usage  7
  613.  
  614.  
  615.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  616.  
  617.  
  618.  
  619.            sequence):
  620.            1. If the "FIL:" parameter specifies a directory-path, then
  621.               for each area the output file "FILES.ac" is put in the
  622.               specified directory ('ac' is 1 or 2 char area-code).
  623.               Previous files with the same name will be discarded.
  624.            2. If "ListFile" is specified in AREA.CTL, then that name
  625.               and path will be used.
  626.            3. Otherwise the file FILES.BBS: will be put in the
  627.               directory with the download files.
  628.  
  629.            For situation 2 and 3 existing files will be renamed to .BAK
  630.            (older .BAK files will be discarded).
  631.  
  632.            Default: FILES.BBS-type of files will not be generated.
  633.  
  634.   fpath    Optional directory path specification for FILES.BBS-output.
  635.            See the "FIL:" parameter for usage.
  636.  
  637.            Default: none
  638.  
  639.   nnn      Maximum number of files to be reported in the BBS- and
  640.            NEW-list(s).  A maximum value of 32767 can be specified, it
  641.            does not apply to ALL-list and GBL-list.
  642.  
  643.            Default: all files up to and including the (specified or
  644.            default) privilege class will be listed for all types of
  645.            lists.
  646.  
  647.   p        Single privilege character.
  648.  
  649.            Lists only download files with a privilege of up to and
  650.            including privilege 'p'.  The indicator must be the first
  651.            character of an existing MAXIMUS privilege level (T, D, L,
  652.            N, W, P, F, E, C, A, S, H).  No error-message is given for
  653.            an invalid privilege character, there will simply be no
  654.            file-list for an invalid character!
  655.  
  656.            For the BBS-list only a single privilege character is
  657.            allowed, the listfile is always called: DOWNSORT.BBS.
  658.  
  659.            Default: S  (SYSOP):  files of all privilege levels will be
  660.            listed, except HIDDEN files (with real Hidden privilege or
  661.            files for which no entry could be found in FILES.BBS).
  662.  
  663.   pp       Multiple privilege characters (minumum 0, maximum 10).
  664.  
  665.            Make for every valid specified privilege level a
  666.            download-list with files of a privilege of up to and
  667.            including privilege 'p'.  The indicator must be the first
  668.            character of an existing MAXIMUS privilege level.  No
  669.            error-message is given for an invalid privilege character,
  670.            there will simply be no file-list for an invalid character!
  671.  
  672.            Applies to ALL-lists and NEW-lists, these are called
  673.            DOWNSORT.A~p and DOWNSORT.N~p respectively, were 'p'
  674.  
  675.  
  676.                                                                Usage  8
  677.  
  678.  
  679.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  680.  
  681.  
  682.  
  683.            represents the applicable privilege character.
  684.  
  685.            Default: S  (SYSOP):  files of all privilege levels will be
  686.            listed, except HIDDEN files (with real Hidden privilege or
  687.            files for which no entry could be found in FILES.BBS).
  688.  
  689.   -T|W     Action to be taken if the file description would cause the
  690.            reportline to exceed 79 characters:
  691.            ■  T - truncate the description
  692.            ■  W - wrap the description and provide as many reportlines
  693.               as needed to show the complete description.
  694.  
  695.            Default: -T for NEW-list and BBS-list, -W for ALL-list and
  696.            GBL-list.
  697.  
  698.   -A|D     Sort method for BBS-list and NEW-list.
  699.            ■  A - sort the files alphabetically on filename.
  700.            ■  D - sort the files on reversed date sequence (newest file
  701.               on top of list).
  702.  
  703.            When the -A option is selected, an additional header-line
  704.            will appear in the BBS-list and NEW-list, indicating the
  705.            latest acquisition.  This line is not needed when these
  706.            lists are sorted on date, since the the latest acquisition
  707.            will be on top of the list!
  708.  
  709.            Default: -D
  710.  
  711.   -H|Q|V   Operating mode
  712.            ■  H - HELP:  display screen with essential information
  713.               about running DOWNSORT, such as the command syntax.  In
  714.               that case the program will not undertake any other
  715.               action.
  716.            ■  Q - QUIET:  display only start and finish-message, and
  717.               error messages which prevent the program from proceeding
  718.               normally.
  719.            ■  V - VERBOSE:  display a lot of progress messages.
  720.            If neither -Q nor -V is specified, than the number of
  721.            console messages will be 'intermediate': more than -Q, but
  722.            less than -V.
  723.  
  724.            Default: none
  725.  
  726.   Notes:
  727.  
  728.   ■  All commandline parameters are optional, may be specified in any
  729.      sequence and are case independent.
  730.  
  731.   ■  Parameters from the configuration file are processed before those
  732.      from the commandline.  This has some side-effects, like:
  733.      -  If you specify a specific list in DOWNSORT.CFG, it will be
  734.         created anyhow, whatever you specify on the commandline.
  735.      -  However, if you specify privilege values on the commandline,
  736.         only the commandline values will be used, and none from the
  737.         configuration file.
  738.  
  739.  
  740.                                                                Usage  9
  741.  
  742.  
  743.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  744.  
  745.  
  746.  
  747.      -  Commandline parameters have a global meaning, and are applied
  748.         to all lists (if applicable).  For example: if you specify '-A'
  749.         on the commandline, all lists will be sorted alphabetically on
  750.         filename.
  751.  
  752.   ■  Parameters that can be specified with the configuration file only,
  753.      and cannot be overridden with a commandline parameter are:
  754.      -  BLOCK title text, font and BLOCK title suppression
  755.      -  Subtitle lines
  756.      -  Filename and individual list-options
  757.      -  Privilege for FILES.BBS output
  758.  
  759.   ■  The Orphan-report is not selectable.  However it will be generated
  760.      only if there are any orphans, and then the specified parameter
  761.      apply.
  762.  
  763.  
  764.  
  765.   CONFIGURATION FILE
  766.  
  767.   Almost all processing options may be specified in an optional
  768.   configuration file, which can be specified with a commandline
  769.   parameter.  The configuration file is a somewhat more convenient way
  770.   to specify processing parameters, and allows even more customisation.
  771.   It is a good place for the more static parameters of your
  772.   environment, commandline parameters are nice to create quickly
  773.   'another' list or a different format (for example wrapped or
  774.   truncated descriptions).  The parameters are only mentioned here for
  775.   completeness, see "Appendix B: Sample Configuration File" on page 28
  776.   for a documented specification sample of a configuration file.
  777.  
  778.  
  779.   PARAMETERS WITH GLOBAL SCOPE
  780.  
  781.   The parameters below influence the execution of DOWNSORT, or have
  782.   impact on every list (if it is applicable for that list).
  783.  
  784.   ■  File Specification of the MAXIMUS CBCS file 'AREA.DAT'.
  785.   ■  List title with BLOCK-characters.
  786.   ■  Font for the BLOCK title.
  787.   ■  Pre-titles, Sub-titles and Bottom-lines in 'text' format
  788.   ■  Descriptive text of orphans and files without a description in the
  789.      input FILES.BBS files.
  790.   ■  Maximum number of entries in NEW-list and BBS-list.
  791.  
  792.  
  793.  
  794.   PARAMETERS WITH A LOCAL SCOPE
  795.  
  796.   The parameters below are sub-parameters of the xxxFileList keyword.
  797.  
  798.   ■  Up to 10 privileges for NEW-list, GBL-list and ALL-list (each
  799.      resulting in a separate list).
  800.   ■  Alternate output filename (in stead of the default DOWNSORT).
  801.   ■  Directory for the output FILES.BBS-lists
  802.  
  803.  
  804.                                                               Usage  10
  805.  
  806.  
  807.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  808.  
  809.  
  810.  
  811.   ■  Maximum number of file entries in NEW-list and BBS-list
  812.   ■  File-entry sort sequence (filename or date).
  813.   ■  Wrapping or Truncation of long file descriptions.
  814.   ■  Title Font selection.
  815.  
  816.   A sample configuration file is provided separately from this
  817.   document.  A listing of this file is imbedded as "Appendix B: Sample
  818.   Configuration File" on page 28.  It contains a complete specification
  819.   with comments on:
  820.  
  821.   ■  which options are available
  822.   ■  how to specify the options
  823.  
  824.   Read and modify the file as you like.  Copy the sample file to a save
  825.   place before you start modifying the original DOWNSORT.CFG!
  826.  
  827.   NOTE: The parameters from DOWNSORT.CFG are processed first.
  828.   Commandline parameters may complete and will (partly) override those
  829.   in the configuration file.
  830.  
  831.  
  832.   USABILITY HINTS
  833.  
  834.  
  835.  
  836.   SPECIFICATION OF AREA.DAT
  837.  
  838.   The MAXIMUS file AREA.DAT is absolutely required by DOWNSORT.  If you
  839.   run DOWNSORT in directory without AREA.DAT, then you have several
  840.   options:
  841.  
  842.   ■  You might add a COPY statement in your batch-file to copy AREA.DAT
  843.      with every run into your DOWNSORT directory.
  844.   ■  You might use the "@path" parameter to specify the complete
  845.      filespec of AREA.DAT ("drive:\directory\file.ext").
  846.   ■  You may use DOWNSORT.CFG for the filespec of AREA.DAT.
  847.  
  848.   The latter is recommended.
  849.  
  850.   Currently DOWNSORT does not allow to select the contents of the lists
  851.   on area-code.  The '@path' allows you to specify a different AREA.DAT
  852.   file than the one that is used by your MAXIMUS.  With SILT you may
  853.   build a special AREA.DAT for exclusive use by DOWNSORT, with
  854.   different, less, or more directories!
  855.  
  856.   If DOWNSORT reports a memory constraint (see also "Storage and
  857.   Performance" on page 22), you may use this technique as
  858.   circumvention: leave out one or more of the file area's and rerun
  859.   DOWNSORT with the alternate AREA.DAT specification.
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.                                                               Usage  11
  869.  
  870.  
  871.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  872.  
  873.  
  874.  
  875.   LOCATION OF FILES.BBS
  876.  
  877.   For input DOWNSORT uses either the ListFile specification in
  878.   AREA.DAT, or the download directory to locate the file with
  879.   file-descriptions (generally known as FILES.BBS).
  880.  
  881.   The destination of FILES.BBS-files is not by definition the same as
  882.   the origin!  When specified with the "FIL:"-parameter (or in the
  883.   configuration file), the output may be located in a different
  884.   directory than the original input FILES.BBS.  Manual checking or
  885.   post-processing by some other program may follow DOWNSORT, after
  886.   which the files might be put back on the MAXIMUS specified position.
  887.  
  888.  
  889.   PRIVILEGE CONTROL
  890.  
  891.   The default file privilege to be shown is SYSOP.
  892.  
  893.   Files without a matching filename-entry in FILES.BBS are treated as
  894.   Hidden.  That means that by default these files will not be listed,
  895.   unless the 'H' privilege is used on the report-request specification.
  896.   All files with a higher privilege than the specified (or defaulted)
  897.   report-privilege will not appear in the report.
  898.  
  899.  
  900.   ORPHAN REPORT
  901.  
  902.   The Orphan report cannot be requested or suppressed.  However, a new
  903.   report will be generated only if there are any orphans detected.  In
  904.   that case it overwrites a possibly present old DOWNSORT.ORP file.
  905.  
  906.   A way of suppressing Orphan-reporting is to include a "*.*" entry at
  907.   the end of FILES.BBS.  This has two effects:
  908.  
  909.   ■  In the sense of DOWNSORT orphans do not exist anymore: there is a
  910.      matching entry in FILES.BBS for every file.
  911.   ■  The description of this entry will replace the hard-code text
  912.      "----no-description-----".  You may enter your own text in the
  913.      language you prefer.
  914.  
  915.  
  916.  
  917.   DUPLICATES
  918.  
  919.   No test on duplicates is done, this means:
  920.  
  921.   ■  If a downloadpath is encountered more than once, the files will
  922.      appear that many times in the outputlist (depending on the
  923.      area-privilege!)
  924.   ■  If a filename.ext is encountered more than once in different
  925.      subdirectories, it will appear that many times in the outputlist.
  926.      The file-privilege reflects that of the area where the file
  927.      belongs to (unless overridden by a ^Px modifier in FILES.BBS).
  928.  
  929.  
  930.  
  931.  
  932.                                                               Usage  12
  933.  
  934.  
  935.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  936.  
  937.  
  938.  
  939.   LIST HEADERS, TITLES, SUBTITLES AND BOTTOMLINES
  940.  
  941.   Only the BBS-list provides a facility to imbed user-provided header
  942.   and trailer files.  The files are unique for the use of the BBS-list,
  943.   there is no use for it in the other lists.
  944.  
  945.   For NEW-list, ALL-list, and GBL-list no header- or trailer-file is
  946.   imbedded, but a BLOCK-title is generated.  A user-title may be
  947.   specified via the configuration file, otherwise a default title is
  948.   generated (DOWNSORTxy, where xy stands for the version).  The
  949.   BLOCK-title may be suppressed by specifying TitleFont 0 in the
  950.   configuration file.
  951.   For the same lists for which the BLOCK-title applies a 'Pre-title',
  952.   'Sub-title' and 'Bottom-title' of each maximum 10 lines may be
  953.   specified via the configuration file.  These lines may contain
  954.   anything, including MECCA control sequences if you like.  The
  955.   pre-title will be copied immediately before the BLOCK-title, the
  956.   subtitle immediately after it, and the bottom-title as very last
  957.   couple of lines in every list.
  958.  
  959.   For file-requestors a header with indication that the list comes from
  960.   your system is highly recommended!  With the pre- and sub-titles you
  961.   may customise the list-header to whatever you like, including empty
  962.   lines for optical purposes.
  963.  
  964.  
  965.   PRIVILEGES WITH FILE REQUEST
  966.  
  967.   If you run a mailer like BinkleyTerm, which makes a distinction
  968.   between 'unknown', 'known' and 'password-protected' users, you could
  969.   generate multiple download lists with different privilege indictor,
  970.   depending if you allow these categories to request different file
  971.   collections a sample of this kind of environment is given in "Sample
  972.   specifications and usage".
  973.  
  974.   This is not needed for DOWNSORT.BBS, since this file has imbedded
  975.   privilege control sequences for MAXIMUS users.  But you should
  976.   specify a sufficiently high privilege for the BBS-list to satisfy
  977.   your most valuable users!
  978.  
  979.  
  980.   SAMPLE SPECIFICATIONS AND USAGE
  981.  
  982.   Assume you are runnung MAXIMUS with BinkleyTerm as front end mailer.
  983.   Suppose you make a distinction for file-requestors between Unknown,
  984.   Known and Password-Protected (e.g. corresponding to Disgrace, Normal
  985.   and Privileged MAXIMUS users).
  986.  
  987.  
  988.   DOWNSORT SPECIFICATION SAMPLE
  989.  
  990.   You should have a specification like this:
  991.  
  992.  
  993.  
  994.  
  995.  
  996.                                                               Usage  13
  997.  
  998.  
  999.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1000.  
  1001.  
  1002.  
  1003.     DOWNSORT bbs
  1004.  
  1005.    new:dnp all:dnp 100
  1006.  
  1007.   In addition to or in place of the specifications in DOWNSORT.CFG,
  1008.   this specification produces the following lists:
  1009.  
  1010.   ■  Orphan report (only if there are any orphans).
  1011.  
  1012.   ■  DOWNSORT.BBS with 100 entries for MAXIMUS users of category
  1013.      Privil.  Users with a lower privilege will actually see a shorter
  1014.      list if the file contains Privil entries.
  1015.  
  1016.   ■  For file requestors of the magic filename FILES a list, a list
  1017.      with all files (with optional titles via DOWNSORT.CFG
  1018.      specifications):
  1019.      -  DOWNSORT.A~D for UNKNOWN file-requestors
  1020.      -  DOWNSORT.A~N for KNOWN file-requestors
  1021.      -  DOWNSORT.A~P for Password Protected file-requestors
  1022.  
  1023.      Note that each list is a complete list of what is available to the
  1024.      user of the specific privilege class, but your system will
  1025.      generally contain more files than listed for UNKNOWN and KNOWN
  1026.      users!
  1027.  
  1028.   ■  For file requests of the magic filename NEWFILES a list of the 100
  1029.      most recent additions to your system (with optional titles via
  1030.      DOWNSORT.CFG specifications):
  1031.      -  DOWNSORT.N~D for UNKNOWN file-requestors
  1032.      -  DOWNSORT.N~N for KNOWN file-requestors
  1033.      -  DOWNSORT.N~P for Password Protected file-requestors
  1034.  
  1035.      Note that each list is 100 entries long, but the contents will
  1036.      generally not be quite the same.
  1037.  
  1038.   In general: files, which the requestor is not supposed to know about
  1039.   due to his privilege status, will not be on his/her list!
  1040.  
  1041.   Note: The counters on top of the lists indicate what your system has
  1042.   available in total (including higher privileges), so a clever
  1043.   user/file-requester may come up with the question how that is
  1044.   possible: explain that he/she has to earn a higher privilege level!
  1045.  
  1046.  
  1047.   BINKLEYTERM SPECIFICATION SAMPLE
  1048.  
  1049.   In Binkley.Cfg you should specify for requests of FILES:
  1050.  
  1051.     Avail        Downsort.A~d
  1052.     KnownAvail   Downsort.A~n
  1053.     ProtAvail    Downsort.A~p
  1054.  
  1055.   Furthermore you may need to specify different OKFILEs:
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                                               Usage  14
  1061.  
  1062.  
  1063.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1064.  
  1065.  
  1066.  
  1067.     OKFile       Download.N
  1068.     KnownReqList Download.K
  1069.     ProtReqList  Download.P
  1070.  
  1071.   And in each of the appropriate filerequest authorisation files you
  1072.   should specify the appropriate file-spec:
  1073.  
  1074.  
  1075.  
  1076.    ╔═══════════╦══════════════╦═══════════════╦═══════════════╗
  1077.    ║       in: ║ OKFile       ║ KnownReqList  ║ ProtReqList   ║
  1078.    ║           ║ (Download.N) ║ (Download.K)  ║ (Download.P)  ║
  1079.    ║ for:      ║              ║               ║               ║
  1080.    ╠═══════════╬══════════════╬═══════════════╬═══════════════╣
  1081.    ║ .....     ║ .........    ║ ...........   ║  ........     ║
  1082.    ║ @NEWFILES ║ Downsort.N~d ║ Downsort.N~n  ║  Downsort.N~p ║
  1083.    ║ @FILES    ║ Downsort.A~d ║ Downsort.A~n  ║  Downsort.A~p ║
  1084.    ║ .....     ║ .........    ║ ...........   ║  ........     ║
  1085.    ╚═══════════╩══════════════╩═══════════════╩═══════════════╝
  1086.  
  1087.  
  1088.   This will result in sending of the appropriate NEW-list to every
  1089.   requester of the magic filename: NEWFILES.  If you use the second
  1090.   magic filename, then the Avail-lines in Binkley.Cfg are not needed,
  1091.   and you might prefer this way.
  1092.  
  1093.   Of course if the privilege level of all download area's is the same,
  1094.   this construction is not needed, but in that case it is unlikely that
  1095.   you have specified KnownAvail and ProtAvail!
  1096.  
  1097.  
  1098.   DEPENDENCIES AND RESTRICTIONS
  1099.  
  1100.   ■  Applies to MAXIMUS CBCS 1.00 and 1.02.
  1101.  
  1102.   ■  Requires OS/2 or DOS 3.0+.
  1103.  
  1104.   ■  The input FILES.BBS files are assumed to contain only filename.ext
  1105.      (the regular 8.3 format, no support for OS/2 1.2+ HPFS format),
  1106.      the remainder of the line is considered as file description.  The
  1107.      filename should be left-aligned (start in position 1).
  1108.  
  1109.      If a privilege modifier (^Px) is encountered in FILES.BBS then 'x'
  1110.      will become the privilege of all subsequent files (it assumes ^Px
  1111.      on a SEPARATE line, the REST OF THE LINE IS IGNORED!).  Heading,
  1112.      comments and blank lines in FILES.BBS are ignored.  The modified
  1113.      privilege might be higher (generally the case) or lower than the
  1114.      area-privilege.
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.                                                               Usage  15
  1125.  
  1126.  
  1127.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1128.  
  1129.  
  1130.  
  1131.   WISHLIST
  1132.  
  1133.   DOWNSORT is not finished!  There are a number of wishes and
  1134.   requirements of users and myself to include in future releases.  I
  1135.   list them below not in any particular order, but some seem to be more
  1136.   important than others (but that differs from SYSOP to SYSOP).  And
  1137.   some are more easy to implement than others, and that depends mainly
  1138.   on the author!
  1139.  
  1140.   ■  Follow the MAXIMUS development (changing AREA.DAT and other
  1141.      structures), and support several versions simultaneously.  I'll
  1142.      try to make DOWNSORT independent of MAXIMUS-versions.  I'm
  1143.      thinking of parsing AREA.CTL, in stead of using AREA.DAT, as
  1144.      suggested by Scott Dudley himself.
  1145.  
  1146.   ■  Automatic removal of 'bad' files (like .BAK-files, obsolete files,
  1147.      files that are not in FILES.BBS), maybe move them to a special
  1148.      BAD_FILE directory.
  1149.  
  1150.   ■  User-configurable options for:
  1151.      -  week and month indicators
  1152.      -  indicator for continuation lines in wrapped descriptions
  1153.      -  font in AREA-header and Summary in ALL-list, and in FILES.BBS
  1154.  
  1155.   ■  Add [selectable] MECCA control in FILES.BBS, like in the BBS-list.
  1156.  
  1157.   ■  Logging to file in stead of console, obtaining a history file of
  1158.      DOWNSORT usage.
  1159.  
  1160.   ■  File-selection with MAXIMUS CBCS key/lock parameters in addition
  1161.      or in stead of privilege levels.
  1162.  
  1163.   ■  Selection of files in reports on area, or group of area's.
  1164.  
  1165.   ■  Support for use of 'barricaded' areas and key/lock.
  1166.  
  1167.   ■  Selection of new files on basis of date or period.
  1168.  
  1169.   ■  Preserve storage by not keeping unneeded data in storage, such as
  1170.      information of files that will not appear in any list (high
  1171.      privilege files, when creating low-privilege lists).  This is
  1172.      particularly (if not only) important for DOS-users.
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.                                                               Usage  16
  1189.  
  1190.  
  1191.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1192.  
  1193.  
  1194.  
  1195.   PACKAGING
  1196.  
  1197.   All files of the DOWNSORT package are in a file DWNSRTxy.ZIP.
  1198.  
  1199.   Included are:
  1200.  
  1201.   DOWNSORT.EXE        Execution module for DOS and OS/2 (family API).
  1202.                       The difference in size between the OS/2-only and
  1203.                       family version is relatively so small that I
  1204.                       decided not to distribute DOWNOS2.EXE anymore.
  1205.   DOWNSORT.DOC        Documentation (this file).
  1206.   DOWNSORT.CFG        Sample configuration file.  This file contains
  1207.                       comment lines with extensive instructions how to
  1208.                       specify the parameters in the file.
  1209.   DOWNSORT.HDR        Sample BBS-list header.  You may use this header,
  1210.                       which is only imbedded in the BBS-list, to imbed
  1211.                       text and/or MECCA-sequences.  A good candidate
  1212.                       for the latter would be [onexit], which
  1213.                       translates to ^OFpath.  See the sample
  1214.                       DOWNSORT.HDR file!
  1215.   DOWNSORT.TRL        Sample BBS-list trailer.
  1216.   DOWNSORT.C          Source of mainline and global variable
  1217.                       definitions.
  1218.   DOWNCOL.C           Source of data collection functions.
  1219.   DOWNFNT.C           Source of font definition and formatting
  1220.                       function.
  1221.   DOWNPAR.C           Source of parameter processing functions.
  1222.   DOWNRPT.C           Source of output report functions.
  1223.   DOWNSRV.C           Source of miscellaneous services functions.
  1224.   DOWNSORT.H          Header file, with external definitions of global
  1225.                       variables.
  1226.   AREA_MAX.H          Header file with union specification of AREA.DAT
  1227.                       for different versions of MAXIMUS (as far as the
  1228.                       layout of AREA>DAT is concerned).
  1229.   AREA_100.H          Header file with guessed layout of AREA.DAT for
  1230.                       MAXIMUS CBCS version 1.00.
  1231.   AREA_102.H          Header file with layout of AREA.DAT of MAXIMUS
  1232.                       CBCS version 1.02.
  1233.   DOWNSORT.LNK        LINK response file.
  1234.   DOWNSORT.DEF        LINK definition file.
  1235.   DOWNSORT.MAK        MAKE file (without BIND).
  1236.   README.1ST          The actual contents of the package (produced with
  1237.                       PKUNZIP /V), added to the ZIP-file after this was
  1238.                       created with the foregoing files.  This gives at
  1239.                       least some authentication.
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.                                                           Packaging  17
  1253.  
  1254.  
  1255.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1256.  
  1257.  
  1258.  
  1259.   PROGRAM INFORMATION
  1260.  
  1261.  
  1262.  
  1263.   DEVELOPMENT ENVIRONMENT
  1264.  
  1265.   DOWNSORT has been developed with IBM C/2 compiler version 1.1, under
  1266.   IBM OS/2 Extended Edition 1.2 with Program Development Toolkit
  1267.   version 1.2 as COMPACT memory model.
  1268.  
  1269.   DOWNSORT has been tested with MAXIMUS CBCS 1.00 and 1.02 (OS/2).  It
  1270.   is in daily use on Bulletin Board PC-Square: FIDO-net address
  1271.   2:512/4; phone  31-79-424107 (HST-DS).
  1272.  
  1273.  
  1274.   PROGRAM ORGANISATION
  1275.  
  1276.   The program is organised as follows:
  1277.  
  1278.   ■  Initialisation:
  1279.      -  Read configuration file.
  1280.      -  Process commandline parameters.
  1281.  
  1282.      The commandline parameters will override configuration file
  1283.      parameters.
  1284.  
  1285.   ■  Read AREA.DAT file to collect download pathnames (assumes AREA.DAT
  1286.      is in current directory).
  1287.  
  1288.   ■  For all download path-specs:
  1289.  
  1290.      -  Read subdirectory (with find-file-first/next function) Take
  1291.         only Normal files: ignore directory entries, Hidden and System
  1292.         files and volume labels.  Also ignore MAXIMUS-files with the
  1293.         following specifications: FILES.?BS, *.BAK, DIR.?BS and
  1294.         SYSTEM*.?BS
  1295.  
  1296.      -  For all regular file-entries found in subdirectory:
  1297.         -- Get filename.ext, attribute, date, time, size (timestamp
  1298.            will be 'last-time-written').
  1299.         -- Get file-description from FILES.BBS file.  The path to the
  1300.            FILES.BBS file is (1) obtained from the "ListFile"
  1301.            specification in MAXIMUS AREA.DAT file, or (2) if not
  1302.            specified from the "DownLoad" specification (among the
  1303.            download files).
  1304.         -- Get file privilege 1) from area, 2) from FILES.BBS file.
  1305.  
  1306.   ■  Check for orphans.  If any orphan found create the orphan report,
  1307.      with the file-entries sorted on (1) area and (2) filename.
  1308.  
  1309.   ■  For the BBS-list:
  1310.      -  Sort the files primarily on descending file-timestamp (and
  1311.         secundary on file-name and area-code).
  1312.      -  Resort the first files on filename if requested.
  1313.      -  Create output file for sorted list of filenames, -descriptions,
  1314.  
  1315.  
  1316.                                                 Program Information  18
  1317.  
  1318.  
  1319.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1320.  
  1321.  
  1322.  
  1323.         etc.  The file is placed in the current subdirectory (which
  1324.         generally will be the MAXIMUS directory) with the name
  1325.         DOWNSORT.BBS.
  1326.      -  Copy a headerfile (for a customised MAXIMUS bulletin).
  1327.      -  Put files in formatted outputfile (filename, area#, date, size,
  1328.         description), but only if description is found in FILES.BBS.
  1329.         Skip files with privilege higher than commandline (or default)
  1330.         parameter.  Precede each line with a privilege-control sequence
  1331.         (^PLx string) so that MAXIMUS users below the specified
  1332.         max-priv-level do effectively see only the files they can
  1333.         download.
  1334.      -  Include a trailerfile in the outputfile (for a custimised
  1335.         Bulletin).
  1336.      -  Report non-listed files on standard output device (which might
  1337.         be re-directed to printer or disk-file).
  1338.  
  1339.   ■  If requested, put the above file collection (also in reverse
  1340.      date-sequence) in DOWNSORT.N~p with similar contents and layout as
  1341.      DOWNSORT.BBS, but without BBS-control sequences, and without
  1342.      including a header and trailer file.  Produce a list for the
  1343.      default privilege (HIDDEN), or one for each specified privilege.
  1344.  
  1345.   ■  If requested, re-sort files on area and then filename, and create
  1346.      DOWNSORT.A~p, containing all files (respecting the privilege
  1347.      restrictions!).  Area's with zero files within the applicable
  1348.      privilege limit will not be listed at all (will seem
  1349.      non-existing!).  Produce a list for the default privilege (SYSOP),
  1350.      or one for each specified privilege.
  1351.  
  1352.      At the end of the list, an area summary report is generated.
  1353.  
  1354.   ■  If requested, re-sort files on filename only, and create
  1355.      DOWNSORT.GBL.
  1356.  
  1357.   ■  If requested, re-sort files on area, privilege and filename, and
  1358.      create for each area a FILES.BBS-type of file.
  1359.  
  1360.   NOTE: the program firstly reads a directory for existing files (not
  1361.   Hidden- or System-files, and not Subdirectory or Volumelabel), and
  1362.   then reads FILES.BBS to assign a description to each file.  This
  1363.   means:
  1364.  
  1365.   ■  If more than 1 matching file-specification in FILES.BBS of the
  1366.      involved area is found (note that wild-card specifications in
  1367.      FILES.BBS are supported!), than the first matching description
  1368.      from FILES.BBS will appear in the lists (new in version 4.5, was
  1369.      'last' previous versions).
  1370.   ■  Files for which no description is found in FILES.BBS will get
  1371.      "---no description available---" in the user reports.
  1372.   ■  Files for which no matching filename in FILES.BBS is found will be
  1373.      listed in the Orphan report (DOWNSORT.ORP).  Filenames of Orphans
  1374.      appear only in the reports when the report request explicitly
  1375.      specifies the Hidden privilege.
  1376.  
  1377.  
  1378.  
  1379.  
  1380.                                                 Program Information  19
  1381.  
  1382.  
  1383.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1384.  
  1385.  
  1386.  
  1387.   MAIN DATA ORGANISATION
  1388.  
  1389.   Data structure for access to file information via:
  1390.  
  1391.   1. array of file-pointers (for file-sort!)
  1392.   2. pointerchain in file-info structures
  1393.   3. file structure contains pointer to file-description
  1394.   4. file-structure contains pointer to area-information
  1395.   5. Array of area-information
  1396.  
  1397.   The structures are shown in Figure 1 on page 21.
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.                                                 Program Information  20
  1445.  
  1446.  
  1447.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1448.  
  1449.  
  1450.  
  1451.  
  1452.   ╔══════╗
  1453.   ║  dm  ║
  1454.   ╚══════╝
  1455.       │         Array of pointers to structures with file info
  1456.       │      ╔═══════════╦════════════╦═════════════ . . . ══════╗
  1457.   (1) └─────>║ *file[0]  ║  *file[1]  ║ *file[2]                 ║
  1458.              ╚═══════════╩════════════╩═════════════ . . . ══════╝
  1459.                    │           │            │
  1460.   (2)              v           v            v
  1461.   ╔══════╗     ╔══════╗     ╔══════╗     ╔══════╗
  1462.   ║  ca  ║ ──> ║ next ║ ──> ║ next ║ ──> ║ next ║ ──> . . .
  1463.   ╚══════╝     ╠══════╣     ╠══════╣     ╠══════╣
  1464.    (first-     ║ file-║     ║ file-║     ║ file-║
  1465.    element)    ║ info ║     ║ info ║     ║ info ║    . . .
  1466.                ║ [0]  ║     ║ [1]  ║     ║ [2]  ║
  1467.                ╚══════╝     ╚══════╝     ╚══════╝
  1468.                    │ │         │  │ wildcard│ │
  1469.                    │ └──┐      │  └──┐      │ │
  1470.                    │    │      │ ┌──────────┘ │
  1471.   (3)              v    │      v v   │ ┌──────┘
  1472.                ╔══════╗ │   ╔══════╗ │ │
  1473.                ║file- ║ │   ║file- ║ │ │(files of
  1474.                ║descr ║ │   ║descr ║ │ │ same area)   . . .
  1475.                ╚══════╝ │   ╚══════╝ │ │
  1476.                         │            │ │
  1477.   (4)                   v            v v
  1478.                 ╔════════════╦═════════════╦════════ . . . ══════╗
  1479.   (5) ┌────────>║  area[0]   ║   area[1]   ║                     ║
  1480.       │         ╚════════════╩═════════════╩════════ . . . ══════╝
  1481.       │              array of structures of download info
  1482.   ╔══════╗
  1483.   ║ area ║
  1484.   ╚══════╝
  1485.  
  1486.   Figure 1. Schematic overview of DOWNSORT's in-storage database.
  1487.  
  1488.   Note: Do not sort the area-array: this will invalidate the pointers
  1489.   in the file-information records!
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.                                                 Program Information  21
  1509.  
  1510.  
  1511.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1512.  
  1513.  
  1514.  
  1515.   The block character image is basically a 10x7 matrix (10 vertical and
  1516.   7 horizontal 'pixels').  Each pixel is displayed as a solid block.
  1517.  
  1518.  
  1519.            1 2 3 4 5 6 7
  1520.           ╔═╦═╦═╦═╦═╦═╦═╗
  1521.           ║-║-║-║-║-║-║-║   line 1    (lower + upper)
  1522.           ╠═╬═╬═╬═╬═╬═╬═╣
  1523.           ║-║-║-║-║-║-║-║        2    (lower + upper)
  1524.           ╠═╬═╬═╬═╬═╬═╬═╣
  1525.           ║-║-║-║-║-║-║-║        3    (lower + upper)
  1526.           ╠═╬═╬═╬═╬═╬═╬═╣
  1527.           ║-║-║-║-║-║-║-║        4    (lower + upper)
  1528.           ╠═╬═╬═╬═╬═╬═╬═╣
  1529.           ║-║-║-║-║-║-║-║        5    (lower + upper)
  1530.           ╚═╩═╩═╩═╩═╩═╩═╝
  1531.  
  1532.   Each line is represented by a structure of seven 3-bit fields Each
  1533.   3-bit field represents a basic element:
  1534.  
  1535.    value    char       description
  1536.      0                 (blank)
  1537.      1     ▄           lower half
  1538.      2       ▀         upper half
  1539.      3         █       lower+upper halves
  1540.      4       ▓         gray pattern
  1541.      5     ▌           left part of upper and lower half
  1542.      6       ▐         right part of upper and lower half
  1543.      7         ▒       gray pattern
  1544.      8      ░          gray pattern for not-supported characters
  1545.  
  1546.   The pitch is variable ('proportional font': a variable number of
  1547.   horizontal pixels).  Three fonts are provided with different
  1548.   character-image and size:
  1549.  
  1550.   1. 6x5 (three lines of max 5 characters)
  1551.   2. 10x7 (five lines of max 7 characters)
  1552. ▐ 3. 8x7 (four lines of max 7 characters)
  1553. ▐ 4. 10x7 (reversed video image of the 8x7 font)
  1554.  
  1555. ▐ Not all ASCII characters are represented in the font tables!
  1556.  
  1557.  
  1558.   STORAGE AND PERFORMANCE
  1559.  
  1560.   As a rough estimate of the memory requirements of DOWNSORT, use sum
  1561.   of the following figures:
  1562.  
  1563.   ■  Program: about 70KB
  1564.  
  1565.   ■  Each area: 300 Bytes
  1566.  
  1567.   ■  Each file: 60 Bytes for each file (excl description)
  1568.  
  1569.   ■  The sum of the description texts (on average 80 Bytes?)
  1570.  
  1571.  
  1572.                                                 Program Information  22
  1573.  
  1574.  
  1575.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1576.  
  1577.  
  1578.  
  1579.   There is a theoretical limit on the number of files that can be
  1580.   processed by DOWNSORT: about 16000 files.  I suppose you'll reach
  1581.   other limits first, for example stack-space.  DOWNSORT has been built
  1582.   with a 'guess' about needed stack space.  The author would appreciate
  1583.   to receive a report for a better estimate.
  1584.  
  1585.   Processor performance was an issue for large area's before version
  1586.   4.5 of DOWNSORT in the data-collection process.  That has been partly
  1587.   rewritten in version 4.5 and significantly improved.  Fastest
  1588.   execution will be obtained when the input FILES.BBS is sorted on
  1589.   filename.
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.                                                 Program Information  23
  1637.  
  1638.  
  1639.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1640.  
  1641.  
  1642.  
  1643.   APPENDIX A: HISTORY OF CHANGES AND VERSION LEGEND
  1644.  
  1645.   The paragraphs below show a brief history of changes in DOWNSORT.
  1646.  
  1647.   4.7
  1648.         ■  Sorting of files on HPFS volumes (OS/2 1.2) now takes into
  1649.            account the file CREATION-date (= arrival date on your
  1650.            system).  Sort will take the most recent of Creation and
  1651.            LastWrite.  The 'old fashioned' LastWrite date (indicating
  1652.            the age of the file) is displayed in the lists!  This
  1653.            feature is only effective under OS/2 from release 1.2 for
  1654.            files on an HPFS volume.
  1655.         ■  Use of DOSOPEN() from OS/2 Program Development Toolkit
  1656.            (allows for better multi-session and LAN support).
  1657.         ■  New font added: reverse video image of font3, and related
  1658.            changes in font generation function.
  1659.         ■  Added separation lines in FILES.BBS like in ALL-list.
  1660.         ■  Tiny adjustment to date formatting: year 2000 and later will
  1661.            be displayed as 2-digit numbers.
  1662.  
  1663.   4.6
  1664.         ■  Downsort will try to locate and read a configuration file
  1665.            allowing even more processing options (by default
  1666.            DOWNSORT.CFG in current directory).  An extensively
  1667.            documented sample is accompanying the DOWNSORT package.  No
  1668.            additional document-reading needed to run DOWNSORT for the
  1669.            first time.  The introduction of this feature makes some
  1670.            commandline parameters superfluous, and allows more
  1671.            flexibility, like:
  1672.            -  In addition to a number of global parameters, each list
  1673.               has a 'local' set of formatting parameters for
  1674.               sort-sequence, description wrapping, title-font, maximum
  1675.               number of entries (NEW and BBS only).  The individual
  1676.               parameters can be set only via the configuration file.
  1677.            -  Specification of AREA.DAT and "title" not possible
  1678.               anymore on the commandline, now only by means of the
  1679.               configuration file.
  1680.            -  A "@filespec" commandline option now used for
  1681.               specification of the configuration file (makes the use of
  1682.               different files for different purposes possible).
  1683.         ■  Multiline FILES.BBS input now supported.  Automatic
  1684.            conversion to long descriptions provided when requesting
  1685.            FILES.BBS (re-)creation.
  1686.         ■  Multiple GBL-lists can now be generated, like ALL-list.
  1687.            Difference between ALL-list and GBL-list is only the
  1688.            grouping by in area's, and the area-summary in ALL-list.
  1689.            SYSOP may decide which of both serves the users best.
  1690.         ■  User supplied pre-title, sub-title and bottomlines now
  1691.            supported for NEW, ALL and GBL-lists, as well as replacement
  1692.            text for '---no-description---' and '---orphan---' in the
  1693.            lists.
  1694.         ■  BLOCK-title font user-configurable and BLOCK-title can now
  1695.            be suppressed.
  1696.         ■  NEW-list and GBL-list have an additional header-line telling
  1697.            the maximum file-privilege shown in the list.
  1698.  
  1699.  
  1700.                   Appendix A: History of changes and version legend  24
  1701.  
  1702.  
  1703.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1704.  
  1705.  
  1706.  
  1707.         ■  FILES.BBS has now column header, and a user-specified
  1708.            privilege limit applies also to FILES.BBS (orphans now only
  1709.            listed when explicitly requested with 'Hidden').
  1710.         ■  The HELP-screen is now only shown on request via a
  1711.            commandline parameter (-H).
  1712.  
  1713.   4.5
  1714.         ■  FILES.BBS-files may be (re-)created now in DOWNSORT-style
  1715.            (like the ALL-list format).  Read carefully the information
  1716.            about this option in the report description!
  1717.         ■  An ORPHAN-report is now produced always (not requestable)
  1718.            and independent from other reports.  It replaces the
  1719.            reporting of ORPHANs to the console formerly done during
  1720.            creation of the BBS-list.
  1721.         ■  The BBS-list is no longer produced by default, it should be
  1722.            specifically requested now, like the other user-reports.
  1723.         ■  The BBS-list and NEW-list may now be sorted on filename, and
  1724.            for that reason also these lists will have an age indicator
  1725.            'week' or 'month' old appended to the file date.
  1726.         ■  'Verbose' and 'Quiet' operating mode are possible now: many
  1727.            more or much less console messages with one of these
  1728.            specifications, than regularly.
  1729.         ■  Performance improvement obtained in data collection process,
  1730.            significant especially for large area's.
  1731.         ■  Filename matching process changed (one of the reasons of the
  1732.            performance improvement): first matching filename is used
  1733.            now to assign the file description to a file.
  1734.         ■  Title block-font is now proportional, and two fonts are
  1735.            added.  The fonts are not (yet) user selectable.
  1736.         ■  A path to the appropriate AREA.DAT file may be specified now
  1737.            (@path).
  1738.         ■  The possible specification of "ListFile" in AREA.CTL is
  1739.            recognised now (in stead of assuming FILES.BBS in the
  1740.            download directory).
  1741.         ■  Added display of an "I-am-busy" indicator during the
  1742.            collection of file information (processing FILES.BBS input).
  1743.         ■  Added display of date and time of report-creation to bottom
  1744.            of file lists (except FILES.BBS files), and also the total
  1745.            elapsed time on console.
  1746.         ■  Fixed bug in detection of newest file, which in rare
  1747.            situations pointed to a file outside the privilege group.
  1748.         ■  Added HELP-screen when no commandline parameters specified,
  1749.            or on request (-H commandline parameter).
  1750.         ■  'Signature' at bottom of lists extended.
  1751.         ■  Documentation extended for all the new features, and a
  1752.            little re-organised.
  1753.         ■  Internal data structure for file-information changed for
  1754.            improved storage utilisation.
  1755.         ■  Time has come to split source into several modules!
  1756.  
  1757.   4.4
  1758.         ■  Support for different versions of MAXIMUS (1.00 and 1.02),
  1759.            with respect to the layout of AREA.DAT.
  1760.         ■  Multi-line file descriptions now supported, with word-wrap
  1761.            and an option to select or deselect it in different reports.
  1762.  
  1763.  
  1764.                   Appendix A: History of changes and version legend  25
  1765.  
  1766.  
  1767.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1768.  
  1769.  
  1770.  
  1771.         ■  Extended AREA-header in ALL-list with area-privilege
  1772.            indicator, and latest acquisition (date and file-spec).
  1773.         ■  Added indicators '*' and '+' in GBL- and ALL-list for files
  1774.            of 1-week and 1-month old respectively.
  1775.         ■  Added "--- no description available ---" in lists if
  1776.            filename found in FILES.BBS, but there is no description
  1777.            there.
  1778.         ■  Added "****** ORPHAN *******" in description field of files,
  1779.            for which there is no entry in FILES.BBS.
  1780.         ■  Files that are reported to the console as "not listed", now
  1781.            also display the area, (pseudo-) privilege and file
  1782.            description (or "no description" or "ORPHAN" whatever is
  1783.            applicable).
  1784.         ■  Changed default file-report privilege into SYSOP.  Hidden
  1785.            files will not show up, unless specifically asked for!
  1786.         ■  More characters supported as BLOCK-characters (including '/'
  1787.            and '\').
  1788.         ■  Fixed a bug in routines for NEW-, BBS- and ALL-list, which
  1789.            occasionally gave addressing violations (in the OS/2
  1790.            version).
  1791.         ■  A related change in the data structure of the
  1792.            file-information for the file-description decreases storage
  1793.            utilisation, taking advantage of wild-card specifications in
  1794.            FILES.BBS as supported by MAXIMUS.
  1795.         ■  Fast growing wishlist added to documentation!
  1796.  
  1797.   4.3
  1798.         ■  GBL-list added: a complete list of the download base (back
  1799.            from 4.0 and earlier versions of DOWNSORT, where it was
  1800.            called ALL!).
  1801.         ■  An AREA-summary report has been added to ALL-list.
  1802.         ■  ALL-list now also displays total bytecount per area.
  1803.         ■  A default title will be generated if none is specified.
  1804.         ■  Routine for generating block routines replaced.
  1805.         ■  Block character '/' (slash) replaced by '|' (vertical bar).
  1806.  
  1807.   4.2
  1808.         ■  DOWNSORT.BBS and DOWNSORT.NEW are not produced any longer by
  1809.            default.  Each list-type must now be specifically requested
  1810.            by BBS, NEW, or ALL on the commandline.
  1811.         ■  Multiple ALL-lists and NEW-lists may be produced now.  Each
  1812.            of these may contain files of different (maximum) privilege
  1813.            level.  This makes it possible to have overviews for
  1814.            different classes of users.
  1815.         ■  A report title for the ALL- and NEW-lists may be specified,
  1816.            and will be printed in BLOCK-characters.
  1817.         ■  A remark has been added to the top of DOWNSORT.BBS that the
  1818.            list may seem shorter due to privilege restrictions.
  1819.         ■  Longer file-description where there is space for it
  1820.            (ALL-list).
  1821.         ■  Requirement of filenames in FILES.BBS to be UPPERcase
  1822.            dropped.
  1823.         ■  Documentation extended and re-formatted.
  1824.         ■  Some more re-shuffling of code (for maintenance purposes)!
  1825.  
  1826.  
  1827.  
  1828.                   Appendix A: History of changes and version legend  26
  1829.  
  1830.  
  1831.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1832.  
  1833.  
  1834.  
  1835.   4.1
  1836.         ■  Bug-repairs in filename-matching routine.
  1837.         ■  SORT changed for DOWNSORT.ALL: sort on name within area,
  1838.            gives an alphabetical list per download area.
  1839.         ■  File descriptions now left aligned, regardless its position
  1840.            in FILES.BBS.
  1841.         ■  Group-title (of file-area) copied from AREA.DAT in ALL.
  1842.         ■  Files excluded from the lists are now more generally:
  1843.            FILES.?BS, DIR.?BS  and  SYSTEM*.?BS
  1844.         ■  Parameter added to hide files above a maximum
  1845.            privilege-level.
  1846.         ■  Files without description are treated as Hidden, these will
  1847.            appear in the lists when 'H' is selected (note: by
  1848.            default!).
  1849.         ■  Improved sort organisation (pointers in stead of
  1850.            structures).
  1851.         ■  Minor changes and additions to lists (beautification?).
  1852.         ■  Some minor internal re-organisation.
  1853.  
  1854.   4.0
  1855.         ■  New setup for MAXIMUS CBCS Bulletin Board environment, this
  1856.            version does not support OPUS' file system!
  1857.         ■  Support of non-numeric (two-character) area code.
  1858.         ■  Support of wild-characters in the file-name part of the
  1859.            records in the description-files (FILES.BBS), as allowed by
  1860.            MAXIMUS.
  1861.         ■  The file DOWNSORT.NEW (not ".TXT") will be produced always
  1862.            (error in previous documentation), but now without TXT2COM
  1863.            formatting characters, since there is not (yet) a suitable
  1864.            alternative under OS/2.
  1865.  
  1866.   DOWNSORT for MAXIMUS CBCS was developed from an OPUS equivalent (by
  1867.   the same author).  Its history is not really important here and
  1868.   therefore has been omitted.  However the name DOWNSORT has been
  1869.   maintained, so to prevent confusion, the version number is inherited
  1870.   (the last OPUS-verion was 3.1).
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.                   Appendix A: History of changes and version legend  27
  1893.  
  1894.  
  1895.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1896.  
  1897.  
  1898.  
  1899.   APPENDIX B: SAMPLE CONFIGURATION FILE
  1900.  
  1901.   %
  1902.   %      ██▐███   █▐███  ██   ██ ██▐███ ██▐████  █▐███  ██▐███  ██▐████
  1903.   %      ██   ██ ██   ██ ██   ██ ██  ██ ██      ██   ██ ██   ██   ▐██
  1904.   %      ██   ██ ██   ██ ██ █ ██ ██  ██ ██▐████ ██   ██ ██▐███    ▐██
  1905.   %      ██   ██ ██   ██ ██ █ ██ ██  ██      ██ ██   ██ ██ █      ▐██
  1906.   %      ██▐███   █▐███   █▐███  ██  ██ ██▐████  █▐███  ██  ██    ▐██
  1907.   %                                                                   (font 2)
  1908.   %
  1909.   %
  1910.   % ▄▀▀▀▄ ▄▀▀▀▄ █▄  █ █▀▀▀▀ ▀█▀ ▄▀▀▀▄ █   █ █▀▀▀▄ ▄▀▀▀▄ ▀▀█▀▀ ▀█▀ ▄▀▀▀▄ █▄  █
  1911.   % █     █   █ █▀█▄█ █▄▄    █  █  ▄▄ █   █ █▄▄▄▀ █▄▄▄█   █    █  █   █ █ ▀▄█
  1912.   % ▀▄▄▄▀ ▀▄▄▄▀ █  ▀█ █     ▄█▄ ▀▄▄▄▀ ▀▄▄▄▀ █ ▀▄▄ █   █   █   ▄█▄ ▀▄▄▄▀ █   █
  1913.   %                                                                   (font 1)
  1914.   %
  1915.   %
  1916.   %                   █▀▀▀▀▀▀   █     █       █▀▀▀▀▀▀
  1917.   %                   █▄▄▄▄▄▄   █▄    █▄      █▄▄▄▄▄▄
  1918.   %                   ██        ██    ██      ██
  1919.   %                   ██        ██    ██▄▄▄▄▄ ██▄▄▄▄▄
  1920.   %                                                                   (font 3)
  1921.   %
  1922.   %  ┌─────────────────────────────────────────────────────────────────────────┐
  1923.   %  │        Configuration File for DOWNSORT 4.7  by Rob Hamerling            │
  1924.   %  └─────────────────────────────────────────────────────────────────────────┘
  1925.   %
  1926.   % NOTES: Leading blanks are skipped.
  1927.   %        Lines with '%', '*' or ';' as first non-blank character are
  1928.   %        considered as comment, as well as empty lines and lines with
  1929.   %        a valid keyword, but without any parameter-value.
  1930.   %
  1931.   %        Don't put a comment string after a parameter specification!
  1932.   %
  1933.  
  1934.   % AreaDat:     Complete file-specification of your 'AREA.DAT'
  1935.   % -------
  1936.   %              AREA.DAT is made by MAXIMUS' SILT with -a or -x
  1937.   %              option the path is normally specified in MAX.CTL
  1938.   %              with the option AreaDat in Session Section.
  1939.   %              With the AreaDat you may specify any file that has
  1940.   %              the SILT-format. For example you may make a special
  1941.   %              file for running DOWNSORT with a subset (selection)
  1942.   %              of the normal MAXIMUS file-area's.
  1943.   %              This might be useful for special usergroups.
  1944.   %              Another reason may be the memory usage of DOWNSORT
  1945.   %              under DOS. If you hit the boundary: make a subset.
  1946.   %              Standard OS/2 / DOS naming applies.
  1947.  
  1948.   AreaDat        g:\c2\downsort\Area102.Dat
  1949.  
  1950.   % TitleFont:   Reference number of the BLOCK-font you want for your Title.
  1951.   % ---------
  1952.   %              Valid numbers:   1 .. Simple font             (5x6 pattern)
  1953.   %                               2 .. Pseudo-Stencil Font     (7x10 pattern)
  1954.  
  1955.  
  1956.                               Appendix B: Sample Configuration File  28
  1957.  
  1958.  
  1959.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  1960.  
  1961.  
  1962.  
  1963.   %                               3 .. ROBoComputer Font       (7x8 pattern)
  1964.   %                               4 .. Reversed Video RoboComp (7x8 pattern)
  1965.   %
  1966.   %              NOTE: The fonts are based on the US-codepage (437).
  1967.   %                    This will also work properly for 860 (Portugese),
  1968.   %                    863 (Canadian-French) and 865 (Nordic).
  1969.   %                    If codepage 850 (Multilingual) is active, the pattern
  1970.   %                    will be adapted a little, see if you like it or not.
  1971.   %                    The differences apply mainly to Font2.
  1972.   %
  1973.   %              The heading of this file shows font 2, 1 and 3 respectively.
  1974.  
  1975.   TitleFont      4
  1976.  
  1977.   %  Title:      Short string that will be displayed in BLOCK-characters
  1978.   %  -----       on top of all FileLists (except BBS-list).
  1979.   %              You may specify this parameter also on the xxxFileList
  1980.   %              parameter.
  1981.   %
  1982.   %              The BLOCK fonts are 'proportional', the following number of
  1983.   %              characters will generally fit on a line:
  1984.   %
  1985.   %                 FontTitle   1  .. maximum characters are 13
  1986.   %                    "        2  ..            "           10
  1987.   %                    "        3  ..            "           10
  1988.   %
  1989.   %              Not more than 20 characters are accepted as input.
  1990.   %
  1991.   %              If Title isn't specified, it will be DOWNSORTxy by default.
  1992.   %              where "xy" stands for the current of DOWNSORT.
  1993.   %              Not all characters are supported, and that may vary with
  1994.   %              the font itself. All fonts support:
  1995.   %
  1996.   %                - UPPER case  A..Z
  1997.   %                - LOWER case  a..z , but will be translated to UPPER case
  1998.   %                - Digits 0..9
  1999.   %
  2000.   %              In addition fonts 1 and 2 support the following characters:
  2001.   %
  2002.   %                   _  *  -  |  .  [  ]  (  )  /  \
  2003.   %
  2004.   %              Not-supported characters are displayed as full-size blank.
  2005.   %              The '~'-character (tilde) may be used as required blank.
  2006.   %
  2007.   %              If you omit Title, than it will default to DOWNSORTxy,
  2008.   %              (where xy represent the version digits of DOWNSORT).
  2009.  
  2010.   Title          abcdefghijklmnopqrs
  2011.  
  2012.   %  PreTitle    Lines to be displayed immediately before the BLOCK-title.
  2013.   %  --------    The lines will be copied asis, however leading blanks are
  2014.   %              skipped, no wrapping or truncation will be applied for
  2015.   %              'long' lines, '~' (tilde) characters are translated to
  2016.   %              blanks. You may specify 10 PreTitles, more are ignored.
  2017.   %              Empty PreTitle lines are also ignored and not counted.
  2018.  
  2019.  
  2020.                               Appendix B: Sample Configuration File  29
  2021.  
  2022.  
  2023.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  2024.  
  2025.  
  2026.  
  2027.   %              There is no default pretitle.
  2028.   %              To create empty lines in your header specify a PreTitle
  2029.   %              with a tilde.
  2030.  
  2031.   PreTitle       ~~~~~~~~<══════════════════════════════════════════>
  2032.   PreTitle       ~
  2033.  
  2034.   %  SubTitle    Lines to be displayed immediately below the BLOCK-title.
  2035.   %  ----------  Maximum 10 SubTiles are accepted, and exactly the
  2036.   %              same rules apply as for PreTitle.
  2037.   %
  2038.  
  2039.   SubTitle       ~
  2040.   SubTitle       ~~~~~~~~<══════════════════════════════════════════>
  2041.   SubTitle       ~Overview of downloadable files on this magnificent Board
  2042.   SubTitle       ~~~~~~~Node number 1.234/5, modemspeeds: V.32/V.22bis
  2043.   SubTitle       ~~~~~~~----------------------------------------------
  2044.  
  2045.   %  BottomLine  Lines to be displayed after the filelist.
  2046.   %  ----------  Maximum 10 BottomLines are accepted, and exactly the
  2047.   %              same rules apply as for PreTitle and Subtitle.
  2048.   %
  2049.  
  2050.   BottomLine     ~
  2051.   BottomLine     ~~~~~<══════ How do you like this list, folks? ══════>
  2052.   BottomLine     ~
  2053.  
  2054.   % MaxNewFiles  Limit the number of file entries in BBS-list and NEW-list(s).
  2055.   % -----------  It specifies the actual number of file entries that may
  2056.   %              appear in NewFileList and BBSFileList.
  2057.   %              If you specify more than one privilege (for NewFileList),
  2058.   %              then each list will contain (max) the MaxNewFiles number
  2059.   %              of file entries, but the collection of each may differ due
  2060.   %              to Privilege considerations.
  2061.  
  2062.   MaxNewFiles    34
  2063.  
  2064.   % OrphanDesc   Description text of Orphan files.
  2065.   % NotFoundDesc Description text of files without description in FILES.BBS.
  2066.   % ------------ Each description will replace the default text.
  2067.   %              Up to 45 characters may be specified.
  2068.   %              There is no translation of the '~' (tilde) character.
  2069.  
  2070.   OrphanDesc     ---- !!!! Orphelin !!!! ----
  2071.   NotFoundDesc   +++ Ce fichier défie toute description! +++
  2072.  
  2073.   % ══════════════════════════════════════════════════════════════════════
  2074.   % Above were the parameters with a global effect: applicable to all
  2075.   % lists or to the execution mode of DOWNSORT.
  2076.   % Below follow list-specific parameters, which might override some of
  2077.   % the settings of the global parameters.
  2078.   % Leave this sequence: first global, then specific parameters!
  2079.   % ══════════════════════════════════════════════════════════════════════
  2080.  
  2081.   % xxxFileList:  Create one or more File lists of type 'xxx'.
  2082.  
  2083.  
  2084.                               Appendix B: Sample Configuration File  30
  2085.  
  2086.  
  2087.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  2088.  
  2089.  
  2090.  
  2091.   %
  2092.   %              ┌──────────── TWIT
  2093.   %              │┌─────────── DISGRACE      ┌ FileName of the list
  2094.   %              ││┌────────── LIMITED       │ (without extension,
  2095.   %   ┌── ORP    │││┌───────── NORMAL        │ maximum 8 characters)
  2096.   %   ┌── BBS    ││││┌──────── WHORTY        │
  2097.   %   ┌── NEW    │││││┌─────── PRIVIL        │
  2098.   %   ┌── ALL    ││││││┌────── FAVORED       │   ┌ Additional options for
  2099.   %   ┌── GBL    │││││││┌───── EXTRA         │   │ each list individually:
  2100.   %   │          ││││││││┌──── CLERK         │   │
  2101.   %   │          │││││││││┌─── ASSTSYSOP     │   │ -W  - Wrap Description
  2102.   %   │          ││││││││││┌── SYSOP         │   │ -T  - Truncate Descr.
  2103.   %   │          │││││││││││┌─ HIDDEN        │   │ -A  - Alpha sort on name
  2104.   %   │          ││││││││││││                │   │ -D  - Date sort
  2105.   %   │          ││││││││││││     ┌──────────┘   │ nnn - NEW-entries limit
  2106.   %   │          ││││││││││││     │              │ -Fn - Title font (0..3)
  2107.   %             ││││││││││││                   
  2108.   %  ═══─═══════   ════════  ════════════════════════════════
  2109.   %  xxxFileList TDLNWPFECASH  FileName  Option-1 Option-2 . . . Option-n
  2110.   %
  2111.   %  If just xxxFileList is specified, the Level by default will be SYSOP
  2112.   %                                    and the filename will be DOWNSORT.
  2113.   %
  2114.   %  For NEW-list, GBL-list and ALL-list up to 10 privilege letters can
  2115.   %  be specified and for each character a separate list-file will be
  2116.   %  generated with the extension ".N~p" (for NEW), ".A~p" (for ALL),
  2117.   %  and ".G~p" (for GBL), where 'p' is the privilege character.
  2118.   %  For the BBS-list only 1 privilege character will be accepted.
  2119.   %  The default filename (DOWNSORT) for each list can be overridden
  2120.   %  with the [optional] third parameter on the xxxFileList line.
  2121.   %  If you do not specify any xxxFileList, only the Orphan report may be
  2122.   %  generated.
  2123.   %
  2124.   %  Additionally some other parameters can be specified (in any sequence).
  2125.   %
  2126.   %    nnn  Limit the number of file-entries to maximal 'nnn'
  2127.   %         applies only to BBS-list and NEW-list.
  2128.   %
  2129.   %    -A   Selects Alphabetic sort on filename   (for ALL-list within area)
  2130.   %    -D   Selects sort on Date/Time of the file ( "   "    "    "      " )
  2131.   %
  2132.   %    -T   Causes Truncation of long descriptions (to about 50 characters)
  2133.   %         so that only 1 line will appear per file-entry.
  2134.   %    -W   Causes Wrapping of long descriptions: the report will contain
  2135.   %         as many lines as needed for the complete description.
  2136.   %
  2137.   %    -Fn  ListTitle font. Choose for 'n': 1, 2 or 3 (default is 2).
  2138.   %         See the example fonts in the top of this file.
  2139.   %         If '0' (zero) specified, then no BLOCK title will be generated.
  2140.   %
  2141.   %  If an asterisk (*) is used as parameter value character, the hardcoded
  2142.   %  default value will be used. If you specify mutually exclusive
  2143.   %  options (-A or -D) or (-T or -W), then the last value on the line
  2144.   %  will be effective.
  2145.   %
  2146.  
  2147.  
  2148.                               Appendix B: Sample Configuration File  31
  2149.  
  2150.  
  2151.        Maximus Download File Sort and List Utility (OS/2 and DOS)
  2152.  
  2153.  
  2154.  
  2155.   %  NOTE: for ORPFileList the privilege parameter does not apply, but at
  2156.   %        least 1 character must be specified!
  2157.  
  2158.   AllFileList    PCASH  Down_All      -d -T  -f1
  2159.   BBSFileList    C      Down_Bbs   23 -a     -F1
  2160.   GblFileList    *h     Down_Gbl      -d     -F3
  2161.   NewFileList    h      Down_New      -d -w   -f2
  2162.   OrpFileList    *      Down_Orp      -a     -f0
  2163.  
  2164.   % FilFilePath  Maximum privilege that any FILES.bbs may contain, and the
  2165.   % -----------  path specification of the FILES.bbs type of output.
  2166.   %              Specify this in the format: drive:\directory\
  2167.   %              If not specified the MAXIMUS path specification will be
  2168.   %              used (ListFile parameter or Download-File directory).
  2169.  
  2170.   ; FilFilePath    *         i:\
  2171.  
  2172.   %
  2173.   %  ═════════════════════════════════════════════════════════════════
  2174.   %
  2175.   %  Commandline parameters may supply additional options, and may
  2176.   %  (partly) override the specifications in this configuration file.
  2177.   %  Consider this file as your customised default setting for DOWNSORT,
  2178.   %  and use commandline parameters only to make other lists on the fly.
  2179.   %  There is nothing that you can specify with commandline parameters,
  2180.   %  that you cannot specify in this configuration file!
  2181.   %
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.                               Appendix B: Sample Configuration File  32
  2213.  
  2214.