MaxFile/PM - VERSION 1.22 COPYRIGHT 1993,1994 by Craig Morrison. All Rights Reserved. A FILES.BBS Manager for Presentation Manager Portions of the header files used in compilation are: Copyright (C) 1992 by Scott Dudley Copyright (C) 1993 by Aki Antman Copyright (C) 1994 by Marco Maccaferri MSGAPI portions of the Announce Files option are: Copyright 1991,94 by Scott J. Dudley. All rights reserved. "Squish" and "Maximus" are trademarks of SCI Communications. From the Development Team of: Craig Morrison - MaxFile/PM Development 1:201/60@fidonet.org Ronald Van Iwaarden - MaxFile/2 Development 1:104/338@fidonet.org Special Thanks go out to: Mark Kimes For putting up with my never ending questions and general bull-headedness when it comes to programming under OS/2. (Very handy guy to talk to when it comes to programming in general!) Elliott Goodman Beta Tester (Thanks a BUNCH! Notice the name TWO t's! ;-) ANNOUNCE.CMD author Philip Perlman Beta Tester (You to Phil! Couldn't have done it without ya's!) Ronald Van Iwaarden Cohort in crime and Beta Tester ------------------------------------------------------------------------------ --- OS/2 Service Pack and Beta Version Information --------------------------- ------------------------------------------------------------------------------ !!!! NOTICE TO OS/2 SERVICE PACK USERS ­­­­ The incompatibility problems experienced with the service pack have been addressed. MaxFile/PM should now run on stock 2.1 GA code and 2.11 whether it be 2.10 with the XR06200 level CSDs or the 2.11 SE. I make *NO* guarantee that MaxFile/PM will run reliably under OS/2 version 2.11. IBM broke OS/2 for many, many people when the CSDs were released for the XR06200 level. I have been testing MaxFile/PM with 2.11 installed, so far it works as advertised. As with everything else, your mileage may vary. ------------------------------------------------------------------------------ --- Foreword ----------------------------------------------------------------- ------------------------------------------------------------------------------ MaxFile/PM is a FILES.BBS manager that runs under Presentation Manager. While it was written with the Maximus-CBCS in mind, any BBS software package that uses the standard FILES.BBS format is supported. A quick but less than comprehensive list of the features are: 1. Drag and Drop between file areas 2. Adopting orphan files 3. FILE_ID.DIZ import 4. Rearchiving files 5. Sorting by: Name Date Size Description 6. In-place editing of file descriptions 7. Renaming files 8. Full REXX Macro Integration ------------------------------------------------------------------------------ --- Registration ------------------------------------------------------------- ------------------------------------------------------------------------------ I'm going to keep this short, sweet and to the point. It is $25 to register the program. You may use this version of MaxFile/PM for 45 days from the day you first run it. After the 45 day evaluation period it will no longer operate. MaxFile/PM is not free ware, its share ware, you are expected to register the program if you continue using it. Please print out and read the REGISTER.FRM file that is included in the archive for more information on registering the program. Registration provides me with the incentive to keep working on the program, it's all up to you folks that use the program. I treat registered users VERY well. 'Nuff said... ------------------------------------------------------------------------------ --- Support ------------------------------------------------------------------ ------------------------------------------------------------------------------ If you need to contact me about the program I can be reached in a number of places. NetMail will get you the fastest response, but I read the OS2PRODSUP, OS2BBS and MUFFIN conferences everyday and intend on answering any questions posted there. There is also a local conference on my BBS called MFILEPMSUP that you are more than welcome to poll for. Contact either myself, Elliott Goodman at 1:102/1319 or Pete Norloff at 1:109/347 for more information about getting hooked up. Due to the large cost in crashing netmail all over the world I will only be sending replies out crash to registered users who report a problem. Sorry folks, but most of my income is generated by these projects. If they don't get registered I can't provide free support. I will respond to everyone who sends netmail, but it will be routed netmail in most cases. While I will answer questions from those of you who have not registered the program, you will get a much quicker response from me if you have. I *will* support MaxFile/PM, all you need to do is ask. ------------------------------------------------------------------------------ --- Before You Start - READ THIS!! ------------------------------------------- ------------------------------------------------------------------------------ The default installation of OS/2 defines Mouse Button 1 as the left button and Mouse Button 2 as the right button. Please keep this in mind as you read through this document if you have redefined your mouse buttons. A word to the wise here.. BACKUP *BEFORE* USING MAXFILE/PM ! Here comes the standard disclaimer...I don't promise that MaxFile/PM will do anything for you except take up space on your hard drive. While I am fairly certain I have got all the nasties out of it, there is a chance that I may have missed something. So please be safe and backup prior to using the program. Suffice it to say, you have been warned.. ------------------------------------------------------------------------------ --- Configuring MaxFile/PM --------------------------------------------------- ------------------------------------------------------------------------------ To configure MaxFile/PM for use, simply start MaxFile/PM by typing MAXFMPM and pressing ENTER at an OS/2 Command Prompt. The MaxFile/PM Settings notebook will be presented for you, so that you can enter the vital information about your system and BBS setup. The Settings Notebook is where you configure MaxFile/PM so that it fits your particular system. There are a lot of options here, some required, some not, all depending on whether you want to be able to use that particular feature or not. There are 4 major categories of information here; Main, Archivers, Viewers and Other. Some of the categories have more than one page devoted to them. A detailed discussion of the categories follows. Main - Basic information The Main section of the notebook consists of three pages that contain the information that tells MaxFile/PM the basics about your BBS configuration and how to handle certain options. Main - Page 1 Registration Key Your registration key, if you have one. If not leave it blank. Make sure if you have registered an earlier version of MaxFile/PM that you contact me to obtain a new key. Enter the registration key exactly the same as it is given to you. Registration Name Your name, this works in conjunction with the Registration Key field. MaxFile/PM hashes your name against your Key to see if you really are a registered user. The Registration XXXX fields when filled out properly, stop the usage timer. BBS Package Four choices here: Maximus Lora SuperBBS Generic Simply select one from the drop down list box. Or type in one of the names in the list above. BBS Directory This is the directory that your BBS software resides in. Enter the FULL path specification. Temp Directory This is the FULL path to an EXISTING directory that MaxFile/PM can use to store temporary files in and use for rearchiving files. Don't use this directory for ANYTHING else while MaxFile/PM is running. EVERYTHING, INCLUDING ANY SUB-DIRECTORIES WILL BE REMOVED BEFORE Maxfile/PM TERMINATES! File Area Data This is the FULL path and filename of the file that contains your file area definitions. For Maximus 2.xx users this will be AREA.DAT, for Lora users this will SYSFILE.DAT, for SuperBBS users this will be FLSEARCH.BBS, for those using the Generic setup this should be the name of the text file you created according the guidelines in the "Generic File Area Definitions" section. Main - Page 2 AutoSave This tells MaxFile/PM whether or not you want your FILES.BBS files automatically saved when you close a file area. If you check this option MaxFile/PM will save the FILES.BBS for you as soon as you close the window associated with a FILES.BBS, if not, it will prompt you and ask if you want the information saved. Button Bar This check box tells MaxFile/PM whether or not you want the button bar turned on in your FILES.BBS windows. Header Size For those of you using programs such as DownSort, this option will allow you to tell MaxFile/PM how many lines at the beginning of your FILES.BBS to skip when reading them in. The headers ARE preserved when MaxFile/PM writes out a new FILES.BBS. Dupe Length Tells MaxFile/PM how many characters to look at in a filename when performing a search for duplicates. ED Marker For those BBS packages that support extended descriptions this option will come in handy. Here you tell MaxFile/PM what character is associated with extended descriptions for your BBS Package. This character can not be a space or a dash. Defining this character causes a few changes in the way MaxFile/PM handles your file descriptions. When this option is used, file descriptions are allowed to be up to 1024 characters in length and nothing is stripped from FILE_ID.DIZ descriptions read in from archives. MaxFile/PM does not insert this character in multiple line descriptions for you, you need to do this. However, when you use the 'Format Description' MaxFile/PM will take care of putting this character where it belongs. If this character is not defined, file descriptions are limited to 255 characters, any non-printable ASCII characters (0-31) and high-bit ASCII characters are stripped from the file description. Default Description You may enter up to 80 characters for a default description. This text will get used any time you Insert, Adopt or drop files from an outside source into a window in MaxFile/PM and those files meet the following criteria: 1, they are not an archive or 2, they are an archive and the archive does not contain a FILE_ID.DIZ description inside of it. File Database Utility The next field is for the filename of your File Database Utility. For Maximus this will be either FB.EXE or FBP.EXE. On my system I have this set to FBP, since the utility is in my path. For Lora-BBS users, this will be FILEIDX.EXE. Please see the "Known Problems" section at the end of this document for more information about FILEIDX.EXE. For SuperBBS users, I don't have a clue. If someone would fill me in on this one I'd really appreciate it! This entry is only required if you want MaxFile/PM to run the utility for you. Run FD Utility The options for Run FD Utility determine when and if the File Database utility will get run. There are three; Always, Prompt and Never. Always will run your file database utility every time you exit MaxFile/PM. If no changes have been made, it will prompt you before running it. Prompt will ask you if you wish to run it. Do I need to explain Never? :-} Display The Display options control whether or not the file size and date information gets displayed for your files in the FILES.BBS windows. Simply check or un check the check boxes to set your preferences. Main - Page 3 Extensions edit control This is a simple edit control that you use to enter in the extensions that you want add to the list box to the right. You may enter up to 3 characters for each extension, wild cards are allowed. These extensions are used while adopting files, anything not defined here will be ignored. These extensions are use when you perform an Adopt from the FILES.BBS window context menu or you have Auto Adopt turned on. Add button After entering an extension in the edit control click this button to add it to the list of extensions in the list box. Remove button This button allows you to remove an entry from the list box. Simply highlight the entry you want to remove from the list box and click here. Auto Adopt This check box tells MaxFile/PM if you want it to automatically perform an Adopt when a file area is first opened. This only works if you have actually added at least one extension for MaxFile/PM to scan for. Download counters If you want download counters added to the description of files that get adopted, check this box. Add (x/xx) counter on description copy This option allows you to tell MaxFile/PM whether or not you want the (xx of xx) counters appended onto the end of descriptions when you perform a "Description->Copy" in a FILES.BBS window. Check it if you want them, unchecked if you don't. The default is for them to be added. Remove Items Three choices here: Prompt Entries Entries and Files This configuration option affects the default action of "Remove Items" inside a FILES.BBS window. "Prompt" asks you each time. "Entries" removes just the entries. "Entries and Files" removes the entries and deletes the files associated with those entries. Archivers - Archiver Information This section causes the most confusion when configuring MaxFile/PM. The best I can do to help is to tell you what I use here on my system to give you a few hints. There are eight pages, one each for; Zip, Arj, Lzh, Arc, HA, RAR, UC2 and ZOO. I don't use HA, RAR or UC2 so you are on your own with these archivers. You will need to enter the executable name and the appropriate switches for each of the actions for each archiver. You should include any switches necessary for recursing sub-directories and if you want to make MaxFile/PM's job a little easier, any switches to tell the archivers to 'move' files into archives when adding to or creating a new archive. Below I will give a short description of each entry and the settings for the archivers I use. You will have MUCH better success with OS/2 based archivers. NOTE: Each of the archivers you use must be able to accept filenames on the command line other than just the archive name. Some versions of UNARJ do not allow you to do this. F'REQ GNUNARJ.* from me if you need an updated version that allows filenames. I also believe I have gotten the DOS kludge worked around in the code. So you *should* be able to just define your DOS archivers just like OS/2 based archivers, I.E, PKUNZIP -v, for listing an archive. The settings for the DOS archivers below worked for me for what little time I spent with them. Extract This entry should contain the command and switches necessary to extract a file from an archive. ZIP unzip -xo -U ARJ unarj e ARJ x -y LZH lh x ARC arc x RAR rar -o+ -y HA ha ey UC2 uc2 ESF ZOO zoo xO Add This entry should contain the command and switches necessary to add files to an archive. ZIP zip -9 -r ARJ a -r -y LZH lh a ARC arc a RAR a -r -y -ep1 HA ha a12rd UC2 uc ASF ZOO zoo ah List This entry should contain the command and switches necessary to list the files in an archive to standard output. ZIP unzip -v ARJ unarj l ARJ arj v -y LZH lh l ARC arc l RAR v -y HA l UC2 VS ZOO zoo L Test This entry should contain the command and switches necessary to test the integrity of an archive with the output going to standard output. ZIP unzip -t ARJ unarj t ARJ arj t -y LZH lh t ARC arc v RAR t -std -y HA t UC2 TF ZOO zoo xN Viewers - File Viewers Here you can define viewers for use with the View function in a FILES.BBS window. Enter the filename and any necessary switches for each of the programs. There are entries for the following file types: GIF PCX JPG TIF BMP Other The 'Other' entry catches anything that is not an archive, GIF, PCX, JPG, TIF or BMP file. I.E, text files. Other - Things I couldn't figure out where else to put. :-) Virus Scanner This should be the name of the program to scan files for viruses, make sure to include any necessary switches. I use McAfee's scanner for OS/2 like so: OS2SCAN /A /NOEXPIRE Editor Here you can define a text editor for editing text based files. Currently this is only used for editing REXX macro scripts. Shift F6 Shift F7 Shift F8 Shift F9 Shift F10 These five entries are for things I may have overlooked or for some special processing that you would like to do to a file. Enter the program name and any switches they need. When in a FILES.BBS window and you press one of the above keystrokes, the appropriate entry will get started with one of the selected files as a parameter on its command line, this will continue one file at a time until all selected files have been processed. ------------------------------------------------------------------------------ --- Generic File Area Definitions -------------------------------------------- ------------------------------------------------------------------------------ To provide support for any BBS system that uses the standard FILES.BBS format for their file listings I have come up with a very simple text file format that will allow you to tell MaxFile/PM how your file areas are defined. The file is made up of a verb that tells MaxFile/PM how many areas it can expect to find in the text file. Each successive line after that verb defines the file areas themselves. A sample file is shown below: ----------------------------- AREAS.CFG sample -------------------------------- AreaCount 5 0 d:\max\file\un check d:\max\file\un check\files.bbs Unchecked Uploads 1 d:\max\file\max d:\max\file\max\files.bbs BBS Stuff 2 d:\max\file\dos\games d:\max\file\dos\games\files.bbs Dos Games 3 d:\max\file\os2\util d:\max\file\os2\util\files.bbs OS/2 Utilities 4 d:\max\file\os2\apps d:\max\file\os2\apps\files.bbs OS/2 Applications ------------------------------------------------------------------------------- The 'AreaCount' keyword tells MaxFile/PM how many area definitions it can expect to find in the file. The AreaCount keyword must come BEFORE the area definition lines. The format for each area definition line is: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Is a short name to identify the file area. Is the download path of the file area. Is the full drive:\path and filename of the FILES.BBS for the area. Is a short description of the area. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ You can name this file what ever you wish, just make sure you specify the name of this file for the File Area Data option in the Main Settings Dialog and make sure the BBS Package is set to 'Generic'. ------------------------------------------------------------------------------ --- Using MaxFile/PM --------------------------------------------------------- ------------------------------------------------------------------------------ When MaxFile/PM first comes up a window will be displayed that contains all of your file areas. I will be referring to this window by the term 'File Area Window' throughout the rest of this document. When you open up a file area, a window that is very similar in appearance to the File Area window will appear. This window will contain all the files listed in the FILES.BBS for that area. These windows will be referred to as 'FILES.BBS Windows' from here on out. --- File Area Window --------------------------------------------------------- ------------------------------------------------------------------------------ The File Area window serves two basic purposes. First, it allows you to open FILES.BBS Windows and second, it also serves as a dropping point for files so that you can quickly move files to another file area without having to open the file area. File Area Window Context Menu The File Area Window Context Menu is where you control the overall operations of MaxFile/PM. A somewhat detailed explanation of each menu item follows. Open... This menu item allows you to open the highlighted file area(s). The various ways of opening a file area are: Highlighting the area you want to open and pressing enter or double-clicking mouse button 1 on a file area. If the file area is already open it will be brought into view, even if it is minimized to the Minimized Window Viewer folder. Area Sort Tag Description Files Dir These options sort the File Area Window listing by the appropriate field in ascending order. Check for Duplicates To check your file areas for duplicate files choose this menu item after selecting the area(s) you want MaxFile/PM to check against all of your file areas. Please note that the scan performed when checking for duplicates does not involve the FILES.BBS files for the areas scanned, it looks at the contents of the download directory for each area. So all duplicates will be found regardless of whether there is a FILES.BBS entry for them or not. However, the files searched for come directly from the FILES.BBS files of the areas selected in the File Area window. So make sure if you have a FILES.BBS window open for one of the areas you will be checking for duplicates from, that you have saved any changes made in that window. The File Area window will be locked open until you close the DupeCheck Results dialog box. This dialog will appear as soon as the file scanning is complete. Inside this dialog you will see a listing of all the files found. To open the file area associated with a file, simply double-click on its entry. If you decide that you want to delete the file from this dialog, highlight the entry and click the delete button. Search... This function is very similar to the Dupe Checker option, with the exception that instead of checking for duplicate files you can enter a string of text that MaxFile/PM will search for in each of the FILES.BBS files for each of the selected areas. First select the areas that you want to search, then bring up the context menu and select 'Search...' A dialog box will come up asking you what to search for. You may enter up to 80 characters. Click ok to begin the search. The search is not case nor position sensitive. Both the filename and description are searched for the text, if the text appears in of these two places a 'hit' will occur. The dialog box that comes up after the search is complete works exactly the same as the dialog box showing the results of the Dupe Checker option. All Files List Probably the most requested feature had to be the ability to generate a list of available files from the FILES.BBS listings. MaxFile/PM will generate an all files list for you. It's highly customizable and can be run automagically from a batch file once configured correctly. To use the all files generator interactively, simply start MaxFile/PM and then select the areas from the File Area window that you want included in the listing. Then bring up the context menu and select "All Files List". MaxFile/PM will then process each FILES.BBS and produce a listing under the filename ALLFILES.LST in the directory that MaxFile/PM resides in. Each time you run the all files generator from the context menu, a file called ALLFILES.CFG will be written that contains a list of the area tags for each of the areas in the listing. Do NOT modify this file. The purpose behind this file is to tell MaxFile/PM what areas to include when you run the all files generator in batch mode. If you add or delete file areas, you MUST run the all files generator from the context menu in interactive mode at least once to keep the ALLFILES.CFG in sync with your file areas. I'll put it this way... IF YOU WANT TO RUN IN BATCH MODE YOU MUST KEEP allfiles.cfg IN SYNC WITH YOUR FILE AREAS. To customize the all files generator to suit your tastes, you can create three text files which will be written to your file listing at the appropriate times. The names for the files are: ALLFILES.HDR ALLFILES.FTR ALLFILES.CUS ALLFILES.HDR and ALLFILES.FTR are written verbatim to the file listing at the beginning and ending of the listing, respectively. ALLFILES.CUS is a little more complex. It allows you to insert text into the headers that are written to the listing for each file area. The format of the file is:
is the area tag of the file area header the text that follows it should be inserted into. You may place as many lines as you need to for each area as long as they all follow this format. is checked against the area tag for each area in such a manner that if the tag for the area begins with the tag specified in this file the text will get inserted. An example might be of some help here.. You have the following areas: CICA001 CICA002 CICB001 001 002 In your ALLFILES.CUS file you have: CICA Files in this area are NOT freq'able. CIC These files are on my CD-ROM. 00 These files are freq'able anytime but ZMH. CICA would match CICA001 and CICA002. CIC would match CICA001, CICA002 and CICB002. 00 would match 001 and 002. Get the idea? Its rather simple once you get used it. To run the all files generator in batch mode from the command line, specify the -A switch on MaxFile/PM's command line. MaxFile/PM will do its thing and then return to the command prompt when it is done. -a, -A, /a and /A are all recognized as valid switches for this mode of operation. Outdated Files... This option will allow you to either remove or move to a file area those files that are older than a certain number of days. The process of taking care of your outdated files begins by selecting the areas that you wish to scan from the File Area window. Now, bring up the context menu and select 'OutDated Files...', you will be presented with a dialog box, this is where you tell MaxFile/PM how to manage the old files. To remove files, select the Kill radio button. To move files to a selected file area, select the Move radio button and then enter the Area Tag of the file area you want the files to go into. The Area Tag you type in MUST exactly match one of the area tags listed in the first column of the File Area window, upper and lower case letters are important here. Now you need to tell MaxFile/PM the number of days old a file has to be before it will be moved or deleted. Either type in the number of days or use the spin button to adjust the number of days to your liking. To give you some indication of the date range you will be working with, the date below the spin button will tell you what the date on the oldest file can be. After entering the above, click OK and sit back and let MaxFile/PM do its thing. If a file area you have selected is open, it will be skipped. Also, if you are moving files, the file area that will receive the dated files will be skipped. Create FREQ List... Here you can tell MaxFile/PM to create an OKFILE listing for your mailer based on the selected items in the File Area window. After selecting this option, you will be presented with a standard File Save As dialog to choose a filename from. You can either type in the name of an existing file, or the name you want the listing to have. If it doesn't exist MaxFile/PM will create it for you. If the file "MAGIC.TXT" exists in the directory you start MaxFile/PM from, the entries in it will be copied to the output file. The directory listing will then be appended to the output file. REXX Macro... Don't like the way MaxFile/PM does something? Well, now YOU can change it! REXX scripts are now supported. In addition to all the commands available from REXX, there are 21 REXX extensions added by MaxFile/PM so that you can manipulate your files from a REXX command script. A discussion of REXX is well beyond the scope of this document, instead what you will read about here are the extensions that MaxFile/PM adds to REXX to allow you to work with your files. The supplied TESTREXX.CMD file is a sample that shows the syntax and usage of each of the added functions. PLEASE use this file as a guide when you are constructing your macros. REXX commands and programs that communicate with the user via Standard input and Standard output are fully supported by MaxFile/PM's REXX interface. When the REXX interface first starts up a window entitled "MaxFile/PM REXX Output" will appear on your desktop, this window is your means of communication with REXX. The top line of the REXX output window contains a single line edit control that can accept up to 80 characters. When you wish to actually send the typed text to standard input, click on the Send button. Clicking on the Send button when the control is empty sends a CR/LF pair to standard input. The remainder of the output window is reserved for the output coming from your REXX commands and/or application programs. REXX's PULL and SAY commands are fully supported. There are some limitations to what the output window can do though. It doesn't support; reverse tabs, vertical tabs, backspace or cursor movements. For applications that use this type of output or expect to be able to write to the screen using other methods than standard output you are going to need to use the START command or some other similar utility to run them in another session. To stop a REXX script that is running, bring the Main File Area window to the front and pull up the context menu, then select 'Stop REXX' this will halt the script after the current instruction is complete. Starting MaxFile/PM with the -r switch will cause MaxFile/PM to open its main window, immediately run the REXX script specified and then exit. An example: MAXFMPM -rTESTREXX.CMD Would start MaxFile/PM, run TESTREXX.CMD to completion and then exit. -r -R /r and /R are all valid forms of the "REXX" switch. Listed below you will see the REXX extensions for use with MaxFile/PM, they will be listed by name with a short explanation of each. All the functions return 'ERROR' if something goes wrong. Those functions that aren't meant to return some type of information return 'OK' for success. If a syntax error occurs, processing of the script stops and the error cause can be found in the file REXX.ERR in the directory MaxFile/PM resides in. ******************************************* * PAY ATTENTION TO THE NEXT PARAGRAPH * * IT WILL MAKE OR BREAK YOUR REXX SCRIPTS * ******************************************* You *MUST* be in the directory that MaxFile/PM resides in when you call one of the extensions added by MaxFile/PM. You can change directories throughout the lifetime of your script, but MaxFile/PM needs to be able to find its files and it expects them to be in the directory that your script gets called from. So if things start acting strangely when you are testing a script, make sure the current directory is your MaxFile/PM directory before you call one of the extensions listed here. The standard REXX function DIRECTORY() will return the current directory for you, use it to save the directory your script starts out in. Then just before your script ends, use it to restore the current directory. MaxFile/PM REXX Extensions -------------------------- MPM_GetVersion() Returns MaxFile/PM's revision or version number. MPM_ClearWindow() Clears the REXX output window. MPM_MsgBox(message, title) Displays a simple message box using 'message' as the text displayed in the message box and 'title' as the title for the message box. MPM_QueryArea([area tag]) Works in two different ways. Called with no arguments it returns the area tag of the first file area listed in the Main File Area window listing. When called with a single argument containing the area tag of an existing file area, it will return the area tag of the NEXT file area in the list. In either case, if an area can't be found it returns 'ERROR'. MPM_QueryAreaList('stemvar') Creates a compound stem variable containing the area tag, description, download path and the full path/filename of the FILES.BBS for each area. The stem variable name is passed to the function as a string. stemvar.0 contains the total number of areas that information has been returned for. An example of how to use this function follows: /* MPM_QueryAreaList() example */ rc = MPM_QueryAreaList('arealist') Say arealist.0' items in Area List.' Say arealist.1.area' is the first area.' Say arealist.1.desc' is the first area description.' Say arealist.1.path' is the first area download path.' Say arealist.1.fbbs' is the first area FILES.BBS location.' MPM_QueryAreaInfo(area tag, '0' | '1' | '2') Queries and returns the specified information for 'area tag.' The level info is as follows: 0 - Area description 1 - Download Path 2 - FILES.BBS Location MPM_DeselectArea(area tag) Detags a file area in the Main File Area window. MPM_SelectArea(area tag) Tags a file area in the Main File Area Window. MPM_OpenArea(area tag) Opens the FILES.BBS Window associated with 'area tag'. MPM_CloseArea(area tag) Closes the FILES.BBS window associated with 'area tag.' MPM_IsAreaOpen(area tag) Returns "1" if the FILES.BBS window associated with 'area tag' is open, "0" otherwise. MPM_SetFDUFlag(area tag) Sets the File Database Utility flag for the FILES.BBS that is associated with 'area tag.' Use this to tell MaxFile/PM that the File Database Utility needs to be run to update your file database after making changes that MaxFile/PM doesn't know about. MPM_QueryFile(area tag[, filename]) Returns the base filename of a file from a FILES.BBS window. When called with just the area tag of an open window it returns the first file in the window. When called with both the area tag and an existing filename it will return the NEXT filename in the window. If something goes wrong it returns ERROR. MPM_QueryFileList(area tag, 'stemvar') Creates a compound stem variable containing a list of all the files in the FILES.BBS associated with 'area tag'. The stem variable name is passed as a string to the function. stemvar.0 contains how many items are in the list. An example follows: /* MPM_QueryFileList() example */ Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep' mpmarea = 'TEST' /* Open up the file area */ retval = MPM_OpenArea(mpmarea) /* Give the open call a chance to work */ Call SysSleep 3 If MPM_IsAreaOpen(mpmarea) = '0' then Exit rc = MPM_QueryFileList(mpmarea, 'files') rc = MPM_CloseArea(mpmarea) Say 'There are 'files.0' files in the list.' Say Say files.1.file' is the first file.' Say files.1.path' is the path of the first file.' Say files.1.desc' is the description of the first file.' MPM_QueryFileInfo(area tag, filename, '0' | '1' | '2' | '3') Queries and returns the specified information about 'filename.' The level information is as follows: 0 - File Path 1 - File Date in DD MMM YYYY format 3 - File Size 4 - File Description MPM_SelectFile(area tag, filename) MPM_DeselectFile(area tag, filename) Select and deselect 'filename', respectively, in the area identified by 'area tag'. MPM_SetFileInfo(area tag, filename, '0' | '1' | '2') Set the displayed information for a file in a FILES.BBS window. The level information is as follows: 0 - Set File Date 1 - Set File Size 2 - Set Description Please note that options 0 and 1 are only for display purposes, if you want to set the file's date ("touch" it) you need to perform this yourself, MaxFile/PM does not do this for you, the same goes for the file's size. This REXX extension is merely to update the display in the FILES.BBS window. Option 2, for setting descriptions, does actually alter the description that will get saved for the file. Dates should be in the FTSC format DD MMM YYYY, 01 Dec 1993. Sizes should be unformatted with no thousands separators. MPM_RemoveFile(area tag, filename) Removes the file 'filename' from the FILES.BBS window associated with 'area tag'. MPM_AddFile(area tag, filename, description) Adds 'filename' with description to the FILES.BBS window associated with 'area tag'. 'filename' MUST be a FULL file specification in the form of D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes wrong. MPM_AnnounceFiles('stemvar') Creates a file announcement message and writes it to a Squish or *.MSG message base. The message is built from the information stored in the compound stem variable 'stemvar'. Please see TANN.CMD (included in the distribution archive) for an example of how to use this extension. The elements of the message that need to be placed in 'stemvar' are as follows: stemvar.msgpath - is the root path of the message area to place the message in. stemvar.msgproc - is the executable name and switches needed to run your mail tosser/packer, this one is optional, if it isn't defined it is ignored. stemvar.msgtype - this defines the type of message base and must be one of: SQUISH MSG MSGECHO stemvar.msgflag - is the message flag you want to use for this message, it must be one of: HOLD NORMAL CRASH stemvar.to - is the name to address the message to, if it isn't defined it defaults to 'All'. stemvar.toaddr - this the Fidonet style address of the recipient of the message. It must be in the format Zone:Net/Node.Point, I.E, 1:201/60.0, if not defined it defaults to stemvar.fromaddr. stemvar.from - is the name the message is from, this one is required. stemvar.fromaddr - is the address of who the message is from, in other words, the originating Fidonet address. This one is also required. stemvar.subject - this gets put in the subject field of the message. If not defined it defaults to 'File Announcement'. stemvar.header - is the header of the message, it gets placed just before the file list in the message. This one is optional. 1024 character limit. stemvar.footer - this is similar to the header, except it comes after the file list in the message. It is also optional. 1024 character limit. stemvar.origin - this is the text that will get put in the origin line of the message. The " * Origin: " and from fidonet address are taken care for you. All you need to enter here is what text you want added in between the two. This is optional, if it is not defined no origin line is generated. stemvar.0 - contains the number files being announced. stemvar.x.file - this is the base filename of a file to announce. stemvar.x.path - is the drive and path to the above base filename. Do NOT include the filename here. stemvar.x.desc - this is the description you want to use for this file in the message. 1024 character limit. 'x' in the above three is a place holder for each of the files that you want announced, up to stemvar.0 files. MPM_Crc32('filename') Examines 'filename' and returns a CRC32 value calculated according to FIPS PUB 71 and FED-STD-1003. This should prove useful for rolling your own TIC processor. Stop REXX Stops the currently running REXX macro. The current instruction in the macro will finish executing before the macro stops. Edit REXX Macro... Here you can find and edit a REXX macro script, provided you have an editor defined in your configuration. After selecting this option you will be presented with a standard file dialog to select from the files on your system. After selecting a file, the editor you have configured will be started with the selected file as its one and only argument. Settings... Brings up the Settings Notebook for MaxFile/PM. Please see 'Configuring MaxFile/PM' for more information. Product Information Displays MaxFile/PM's Product Information Dialog. --- FILES.BBS Window --------------------------------------------------------- ------------------------------------------------------------------------------ FILES.BBS windows are the heart and soul of MaxFile/PM, these windows are where you will be spending most of your time. A FILES.BBS window is very similar to the File Area window in appearance. What you will see when you open one of these windows is the contents of the FILES.BBS that is associated with the file area this window belongs to. FILES.BBS Window Context Menu Save FILES.BBS Performs an unconditional save of the FILES.BBS for the current FILES.BBS Window. At the same time it also sets the flag for this area to tell MaxFile/PM that the File Database Utility (if you have one configured) needs to be run on it. Sort Ascending Name Date Size Description Sorts the FILES.BBS entries for the current FILES.BBS Window in ascending order. Sort Descending Name Date Size Description Sorts the FILES.BBS entries for the current FILES.BBS Window in descending order. Please note the following; If you want the entire FILES.BBS sorted make sure that none of the items in the window are selected. If any items are selected ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection emphasis on all items in the window. This applies to both ascending and descending sorts. Descriptions Copy This selection takes the first description from a group of selected items and copies it to the rest of the files in the group. The copied description will have '(xx of xx)' appended to the end of it. This is convenient to use with a group of files that are all part of one program or file collection. Cleanse This option goes through each of the selected items in a FILES.BBS window and removes all the extra whitespace, non-printable ASCII and high-ASCII characters from the descriptions or comments. Edit Many of you asked for this one. Edit Description allows you to edit the description of a selected item by first selecting it, then choosing this option from the context menu. It works the same way as ALT+clicking mouse button 1 on an item's description. Format... This option is only usable when you have an Extended Description Marker (ED Marker) defined in the Settings Notebook. In a nutshell what it does is take a file description and break it up into smaller parts and insert the defined ED Marker at the beginning of the excess lines so that your BBS package will understand the excess lines are part of the description for a file. After selecting this option from the context menu a dialog box will be presented asking you for a left margin and a line length. The left margin is where you want the ED Marker placed on the line and the line length is how many characters past the ED Marker the description is allowed to go on each line. Get FILE_ID.DIZ This option goes through the selected items in the window and attempts to extract the FILE_ID.DIZ from them. Comments and files that aren't archives are skipped over by this function. If a FILE_ID.DIZ is present in the archives selected, it will be read from it and placed in the description field. You will need to edit this text to suit your needs. Set FILE_ID.DIZ Here you can insert the file description for selected archives into the archives as a FILE_ID.DIZ. You will need to edit the description to conform to the 45/10 standard. Files Adopt Adopt Files allows you to add any orphan files in a particular file area to the FILES.BBS for that area. Adopting is performed in a separate thread so that you may continue to work in the window for the file area while the adopt is going on. The window will be locked open while the Adopt is being performed. Remove Missing This option automates the process of removing entries in a FILES.BBS window that have no file associated with them. No special setup is required, just bring up the context menu and select this option. MaxFile/PM will then search through the FILES.BBS window and remove all entries that meet the following criteria; The entry is a file, is 0 bytes in size and has a date/time stamp of 00/00/00 00:00:00. Purge Dupes Purge Dupes scans the FILES.BBS window looking for duplicate file entries. Only the last entry for each file that has a duplicate entry is kept. This option is useful for removing extra entries added after a TIC processor has added new files to a FILES.BBS file. Announce... This option will allow you to write a customized message announcing selected files directly to any Squish, *.MSG or *.MSG ECHO message base. You may also specify a mail processor so that you can scan for the message to send it out of your system. The whole process gets started by selecting the files you wish to announce from a FILES.BBS window. Next you bring up the context menu and select 'Announce Files...' You will be presented with a configuration dialog you must fill out to tell MaxFile/PM the particulars about the message you want to send. As it stands right now, you have to fill out the dialog for each different window. The configuration for each window will be saved separately and will be used each subsequent time you announce files from each particular window. There are a few things MaxFile/PM needs to know to be able to send the message correctly and they are as follows: Message Base Path -The full path and base filename of the message area put the message in. For *.MSG areas this will be the full path to the directory that contains the *.MSG files. For Squish areas this will be the path and base filename of the Squish files related to the message area. This is a required entry. Mail Processor -This is an optional entry to allow you to scan for the message that was just written by a mail tosser/scanner. Please see the documentation for your tosser/scanner for more information. Message Type -This is the message base type, *.MSG and Squish are fairly self-explanatory. *.MSG Echo, refers to a Fidonet style *.MSG echo mail area that stores the high-water mark in 1.MSG. Message Flags -These are the attribute flags for the message you will be creating. They are mutually exclusive. I will be adding Direct to the available flags when I get the time to research the flags more. To: -This is the name of the recipient of the message. If you leave it blank, MaxFile/PM will automatically default to 'All.' To Addr: -This is the address of the recipient of the message. If left blank, the From Address will be used. (Please see the From Address discussion for more information on entering Fidonet addresses.) From: -This is a required entry. This is the name of the sender of the message. From Addr: -This is a required entry. This is the address of the sender of the message. Most likely this will be your fidonet address if you have one. If not it doesn't matter what you enter here, as it won't get used by your message bases. The format for entering Fidonet addresses into MaxFile/PM is: zone:net/node.point All four elements are required. To use my address as an example, the field would have 1:201/60.0 entered into it. Header -This is an optional entry that you can use to place a customer banner at the top of the message just before the files that are being announced in the message. It is pretty much free-form, but you will be much better off if you leave the formatting up to MaxFile/PM. You may enter up to 1024 characters in this field. Footer -This entry is basically the same as the Header field, except it comes after the announced files. You may enter up to 1024 characters in this field. The 'Subject' line of the message is 'File Announcement' it is currently hard coded. If I get enough requests, I will add it as an option but as you can see, the message dialog is quite full as it is. The same holds true with the Tear and Origin lines, they are not configurable. The Tear line will always read '--- MaxFile/PM......' and the Origin line will always just be a standard origin line with your Fidonet address in it. These two I will probably be adding macros for so that you can place them into either the header or footer of the message. It all depends on user feedback. Touch "Touching" is the process of updating the Time and Date stamps of files to the current time and date. This option allows you to do that for the selected files in the current window. View The View option works in conjunction with the external program options. For archives it will fire up the proper archiver to create a list of files contained in the archive and display a dialog containing that list. For pictures and text files the appropriate viewer will be started. View is also the action that is associated with double-clicking mouse button 1 on an entry in the window. Virus Scanner This option runs the virus scanner you have set up on each file selected in the current FILES.BBS window. The window that the virus scanner is run in is not closed when the scan is complete so that you may view the results. Nothing is extracted from the archives. The files are passed to the 'Other->Virus Scanner' entry from the Settings Notebook one at a time until all the selected files have been scanned. At this writing it is up to you to perform any additional processing. Archives Test Archive This option only works with archives. It simply invokes the appropriate archiver for each selected item in the window. The output from the archiver will be displayed in a dialog box after the testing is completed is completed for each archive. Extract To... Here you can extract a selected archive to a directory that you specify. Note that the directory you specify must exist. After you have used this option at least once, the directory will be remembered the next time the dialog box comes up asking you for a directory. You can just press ENTER to accept it. ReArchive to ZIP to ARJ to LZH to ARC to HA to RAR to UC2 Each of these options takes an existing archive or group of archives and converts them to the appropriate archive type. If one the ADD entry for an archive is not defined its entry on this sub-menu will be disabled. Insert Comment To Insert a comment into the current FILES.BBS window, first select the item in the window that you want the comment to go in FRONT of. Then bring up the context menu and select Insert->Comment. A blank comment will then be inserted in the FILES.BBS window. File... Insert/File works much the same way as Insert/Comment, first select the item in the window that you want the file to go in FRONT of, then select Insert->File from the context menu. A file dialog will be displayed so that you can find the file you want to insert. Once you have found the file, select the Insert button in the dialog box. The file will then be inserted into the current window. Selecting the Cancel button inside the file dialog box aborts the insert operation. The file will be inserted into the FILES.BBS with a FULL PATH specification. It does NOT get copied or moved to the download directory. This allows you to point to a single file from multiple FILES.BBS files. Remove Items This item removes or deletes items from the FILES.BBS window. When you select it from the context menu, a dialog box will appear allowing you two options. 'Entries' just removes the entry from the FILES.BBS window, 'Entries and Files' causes the entries to be removed and the associated with the entries to be deleted. Click Ok to remove the items, or Cancel to abort the operation. Select All Selects all items in the current FILES.BBS Window. Select All Files Selects all files in the current FILES.BBS window, excluding orphans. Deselect All Deselects all items in the current FILES.BBS Window. Display Date Toggles the display of the File Date column in the current FILES.BBS Window. This setting is temporary, FILES.BBS Windows will always open according to the settings defined in the Settings Notebook. Display Size Toggles the display of the File Size column in the current FILES.BBS Window. This setting is temporary, FILES.BBS Windows will always open according to the settings defined in the Settings Notebook. Area Statistics This option displays an information message box containing how many files are in the current area, how much space they take up and how much free space remains on the volume. ------------------------------------------------------------------------------ --- The Button Bar ----------------------------------------------------------- ------------------------------------------------------------------------------ If you have the Button Bar option in the Settings Notebook/Main/Page 2 turned on then just below the title bar of each FILES.BBS window there will be a button bar that contains buttons for the most commonly used items on the context menu. Moving from the left side of the window towards the right, here's what they do: Sort Uses the *last* sort type selected from the context menu in a FILES.BBS Window. If no sort has been selected it defaults to Name/Ascending. Edit Description This is the same as ^E and Edit Description on the context menu. Allows you to edit the description for the highlighted file, if more than one file is highlighted the file with the dotted cursor focus is the one that will have the edit box opened for it. Get FILE_ID.DIZ Attempts to extract the FILE_ID.DIZ from the selected files. Touch Files Touches all the selected files. Virus Scan Runs the defined Virus Scanner on all highlighted files. Test Archive Runs the archiver tests on the highlighted archives. Remove Items Just like 'Remove Items...' from the context menu. Format Description... Same as Description->Format... from the context menu. Should you forget what a particular button does you can find out by pressing mouse button 1 down while the mouse pointer is over the button and holding it down. A short description will appear in the status bar at the bottom of the FILES.BBS window. If you don't want to perform the operation at that time, drag the mouse pointer down into the list of files and release mouse button 1. ------------------------------------------------------------------------------ --- Selecting Items ---------------------------------------------------------- ------------------------------------------------------------------------------ Perhaps the most confusing part of working in a FILES.BBS window is selecting or deselecting items. I wrote the program and I still have to think about it. Basically it works like this; Clicking mouse button 1 on an item selects it and clears the selection from any other items in the window. To select multiple items in the window, press mouse button 1 on the first item you want selected and hold it down while you drag the mouse cursor. This allows you to select a contiguous range of items. If you want to select multiple items and they aren't adjacent to each other, hold down the CTRL key while you click mouse button 1 on each item. If the item is not selected it will become selected, if the item is already selected the selection is cleared for that item. Another technique to select items uses a combination of the CTRL and SHIFT keys along with mouse button one. The SHIFT key when used in conjunction with mouse button 1 will select/deselect all items between the first marked item and the item SHIFT-clicked on. An example might help: COMMENT FILE1 <-- click mouse button one here FILE2 FILE3 FILE4 FILE5 <-- SHIFT-click mouse button one here COMMENT FILE6 <-- CTRL-click mouse button one here FILE7 FILE8 FILE9 FILE10 FILE11 FILE12 <-- CTRL-SHIFT-click mouse button one here With no items selected, the above actions would select two non-contiguous blocks of files; FILE1-FILE5 and FILE6-FILE12. If you need to select or deselect all the items in a window, your best bet is to use the Select All/Deselect All options from the context menu. ------------------------------------------------------------------------------ --- Hotkeys ------------------------------------------------------------------ ------------------------------------------------------------------------------ The following accelerator keys may be used when you are working in FILES.BBS window: ^ = CTRL, ! = SHIFT Sort Ascending Name ^1 Date ^2 Size ^3 Description ^4 Sort Descending Name ^5 Date ^6 Size ^7 Description ^8 Description Edit ^E Format ^F Get DIZ ^G Set DIZ ^S Files Adopt ^A Announce ^N Touch ^O View ENTER Virus Scan ^C Archives Test ^T Extract to ^X ReArchive to ZIP !F2 to ARJ !F3 to LZH !F4 to ARC !F5 Remove Items ^D ------------------------------------------------------------------------------ --- Renaming Files ----------------------------------------------------------- ------------------------------------------------------------------------------ To rename a file, press and hold the ALT key and click mouse button 1 on the file that you want to rename. Then enter the new filename and click button 1 anywhere outside the edit box or press the keypad Enter key. Pressing ESC will discard any changes you have made to the filename. ------------------------------------------------------------------------------ --- Editing File Descriptions ------------------------------------------------ ------------------------------------------------------------------------------ Editing descriptions works in the much the same manner as renaming files, ALT+click mouse button 1 on the description you want to edit. To save the description, click outside the edit box or press the keypad Enter key. Pressing ESC will discard any changes made to the description or comment. The standard CUA conventions for cutting and pasting text work while the editing window is open for you to edit descriptions. They are as follows: Ctrl+INS Copy to the Clipboard Shift+Del Cut to the Clipboard Del Cut (to the black hole of bits) Shift+INS Paste from the Clipboard These aren't well documented, but they are standard items that you can expect *most* applications to use when working with text, including MaxFile/PM. ------------------------------------------------------------------------------ --- Program Macros ----------------------------------------------------------- ------------------------------------------------------------------------------ FILES.BBS windows are the only place that the Shift-F(x) macros will operate. When pressing one of these key combinations MaxFile/PM will search through the container in the window and pass the fully qualified filename of the selected files to your macro one at a time. Comments are ignored. Don't make any assumptions about what directory the macro will start out in, that will be determined by the default OS/2 shell. ------------------------------------------------------------------------------ --- Drag and Drop ------------------------------------------------------------ ------------------------------------------------------------------------------ ************************************************* * THIS IS HOW YOU MOVE FILES BETWEEN FILE AREAS * ************************************************* Remember, MaxFile/PM is a Workplace Shell and Presentation Manager friendly program. The basic operations of changing, editing and moving objects work the same way. A drag operation is started by pressing mouse button 2 down and dragging the mouse cursor. The operation is considered complete when you release mouse button 2. Should you wish to abort the drag, press the ESC key on your keyboard. When dragging files between windows in MaxFile/PM, holding down the CTRL key will cause the objects to be copied instead of moved. This works for both files and comments. You will need to make sure that both the source and destination windows are visible on your display. You can drag files from anywhere on your system and drop them either on a FILES.BBS window or onto the File Area window. When dropping on an open FILES.BBS window, the files are inserted into the FILES.BBS at the point at which they were dropped. When dropping on the File Area window, the files are inserted at the end of the FILES.BBS for the area they are dropped on. You can also rearrange the items in a window by selecting them, then dragging them and dropping them where you want them to be. Many of you have asked about this one...To delete one or more items from a FILES.BBS window; highlight the items you want deleted, then drag them to the shredder object and delete them. Or, alternatively you can use the 'Remove Items' option on the context menu. ------------------------------------------------------------------------------ --- Known Problems ----------------------------------------------------------- ------------------------------------------------------------------------------ In a system as configurable as OS/2 there are always going to be problems, this section is devoted to those problems and in some cases work-arounds. If you are having trouble with MaxFile/PM this is the first place to look to see if you can find some help. --- FILEIDX.EXE -------------------------------------------------------------- Lora-BBS File index maintenance utility Make sure that you specify the files IDX file that you want rebuilt in the Main Settings dialog box. For example: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ File Database Utility ³ E:\LORA\FILEIDX E:\LORA\FILES.IDX ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ MaxFile/PM will take care of the rest. (The "AREA .. .. .." part.) --- CONTAINER DISPLAY CORRUPTION --------------------------------------------- Moving vertical separator bar messes up highlighting The Service Pack for OS/2 2.1 screwed up the way the highlighting is handled when the vertical separator bar is moved. I didn't it break folks, IBM did. --- VIEW AND TEST DIALOG LOCKUPS --------------------------------------------- Archive Statistics Dialog comes up as a grey window When run under 2.11 the View and Test functions lock up after opening more than one window. I have NOT been able to reproduce this under 2.10, so I don't even know where to begin to look. I have made several modifications to the code, hopefully one of them fixed the problem. :-( [06 Jun 1994] This *HAS* been fixed!! --- MAXFMPM.INI CORRUPTION --------------------------------------------------- MAXFMPM.INI gets trashed if a REXX script bombs out and won't quit. Always keep a backup of your MAXFMPM.INI file someplace safe. I need specific examples of scripts that I can use to recreate the problem. I'm not sure what is causing it, but I am looking. The key to safety is to BACKUP before you start a new script and try to debug it to get it to work. --- LAUNCH PAD SHREDDER WON'T SHRED MY FILES -------------------------------- Create a shadow of your shredder object on the desktop and drag the items you want deleted to it or use Remove Items from the context menu in a FILES.BBS window.