home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / mpbeta-2.zip / maxfmpm.INF (.txt) < prev    next >
OS/2 Help File  |  1994-07-12  |  77KB  |  2,356 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. OverView ΓòÉΓòÉΓòÉ
  3.  
  4.                             MaxFile/PM - Version 1.20
  5.  
  6.  
  7.                   A FILES.BBS Manager for Presentation Manager
  8.                     Copyright (C) 1993,1994 by Craig Morrison
  9.                               All Rights Reserved.
  10.  
  11.   Portions of the header files used in compilation are:
  12.  
  13.    Copyright (C) 1992 by Scott Dudley
  14.    Copyright (C) 1993 by Aki Antman
  15.    Copyright (C) 1994 by Marco Maccaferri
  16.  
  17.   MSGAPI portions of the Announce Files option are:
  18.  
  19.    Copyright 1991,94 by Scott J. Dudley.  All rights reserved.
  20.    "Squish" and "Maximus" are trademarks of SCI Communications.
  21.  
  22.   From the Development Team of:
  23.  
  24.    Craig Morrison - MaxFile/PM Development
  25.     1:201/60@fidonet.org
  26.  
  27.    Ronald Van Iwaarden - MaxFile/2 Development
  28.     1:104/338@fidonet.org
  29.  
  30.  
  31. ΓòÉΓòÉΓòÉ 1.1. Special Thanks ΓòÉΓòÉΓòÉ
  32.  
  33.  Mark Kimes
  34.  
  35.  For putting up with my never ending questions and general bull-headedness
  36.  when it comes to programming under OS/2. (Very handy guy to talk to when it
  37.  comes to programming in general!)
  38.  
  39.  Elliott Goodman
  40.  
  41.  Beta Tester (Thanks a BUNCH! Notice the name TWO t's! ;-)
  42.  ANNOUNCE.CMD Author
  43.  
  44.  Philip Perlman
  45.  
  46.  Beta Tester (You to Phil! Couldn't have done it without ya's!)
  47.  
  48.  Ronald Van Iwaarden
  49.  
  50.  Cohort in crime and Beta Tester
  51.  
  52.  
  53. ΓòÉΓòÉΓòÉ 1.2. OS/2 Version Information ΓòÉΓòÉΓòÉ
  54.  
  55. NOTICE TO OS/2 SERVICE PACK USERS 
  56.  
  57. The incompatibility problems experienced with the service pack have been 
  58. addressed. MaxFile/PM should now run on stock 2.1 GA code and 2.11 whether it 
  59. be 2.10 with the XR06200 level CSDs or the 2.11 SE. 
  60.  
  61. I make NO guarantee that MaxFile/PM will run reliably under OS/2 version 2.11. 
  62. IBM broke OS/2 for many, many people when the CSDs were released for the 
  63. XR06200 level. 
  64.  
  65. MaxFile/PM will run reliably under the Performance Beta I, at least it has for 
  66. the testing that I have done. 
  67.  
  68.  
  69. ΓòÉΓòÉΓòÉ 1.3. Forward ΓòÉΓòÉΓòÉ
  70.  
  71. MaxFile/PM is a FILES.BBS manager that runs under Presentation Manager. While 
  72. it was written with the Maximus-CBCS in mind, any BBS software package that 
  73. uses the standard FILES.BBS format is supported. 
  74.  
  75. A short list of the features are: 
  76.  
  77.     1. Drag and Drop between file areas 
  78.  
  79.     2. FILE_ID.DIZ import 
  80.  
  81.     3. Rearchiving files 
  82.  
  83.     4. Sorting by: 
  84.  
  85.       Name 
  86.       Date 
  87.       Size 
  88.       Description 
  89.  
  90.     5. In-place editing of file descriptions 
  91.  
  92.     6. Renaming files 
  93.  
  94.     7. Full REXX Macro Integration 
  95.  
  96.  
  97. ΓòÉΓòÉΓòÉ 1.4. Support ΓòÉΓòÉΓòÉ
  98.  
  99. If you need to contact me about the program I can be reached in a number of 
  100. places. NetMail will get you the fastest response, but I read the OS2PRODSUP, 
  101. OS2BBS and MUFFIN conferences everyday and intend on answering any questions 
  102. posted there. There is also a local conference on my BBS called MFILEPMSUP that 
  103. you are more than welcome to poll for. Contact either myself, Elliott Goodman 
  104. at 1:102/1319 or Pete Norloff at 1:109/347 for more information about getting 
  105. hooked up. 
  106.  
  107. Due to the large cost in crashing netmail all over the world I will only be 
  108. sending replies out crash to registered users who report a problem. Sorry 
  109. folks, but most of my income is generated by these projects. If they don't get 
  110. registered I can't provide free support. I will respond to everyone who sends 
  111. netmail, but it will be routed netmail in most cases. 
  112.  
  113. While I will answer questions from those of you who have not registered the 
  114. program, you will get a much quicker response from me if you have. 
  115.  
  116. I *will* support MaxFile/PM, all you need to do is ask. 
  117.  
  118.  
  119. ΓòÉΓòÉΓòÉ 2. Registration ΓòÉΓòÉΓòÉ
  120.  
  121. I'm going to keep this short, sweet and to the point. It is $25 to register the 
  122. program. You may use this version of MaxFile/PM for 45 days from the day you 
  123. first run it. After the 45 day evaluation period it will no longer operate. 
  124.  
  125. MaxFile/PM is not freeware, it is shareware, you are expected to register the 
  126. program if you continue using it. 
  127.  
  128. Please print out and read the REGISTER.FRM file that is included in the archive 
  129. for more information on registering the program. 
  130.  
  131. Registration provides me with the incentive to keep working on the program, 
  132. it's all up to you folks that use the program. I treat registered users VERY 
  133. well. 
  134.  
  135. 'Nuff said... 
  136.  
  137.  
  138. ΓòÉΓòÉΓòÉ 3. License Information ΓòÉΓòÉΓòÉ
  139.  
  140.             MaxFile/PM LICENSE FOR USE AND DISTRIBUTION
  141.  
  142.       MaxFile/PM is not public domain software, nor is it free
  143.       software.
  144.  
  145.       MaxFile/PM is copyright (C) 1993,94 by Craig A. Morrison.
  146.       All Rights Reserved.
  147.  
  148.       Non-registered users are granted a limited license to use
  149.       MaxFile/PM on a trial basis, for a period not to exceed 45 days,
  150.       for the purpose of determining whether MaxFile/PM is suitable for
  151.       their needs.  Use of MaxFile/PM, except for this limited purpose,
  152.       requires registration.  Use of non-registered copies of
  153.       MaxFile/PM by any person, business, corporation, governmental
  154.       agency or other entity institution is strictly forbidden.
  155.  
  156.       Registration grants a user the right to use MaxFile/PM only on
  157.       a single computer; a registered user may use the program on a
  158.       different computer, but may not use the program on more than one
  159.       computer at the same time.
  160.  
  161.       No one may modify MaxFile/PM in any way, including but not
  162.       limited to decompiling, disassembling or otherwise reverse
  163.       engineering the program.
  164.  
  165.       All users are granted a limited license to copy MaxFile/PM
  166.       only for the trial use of others subject to the above
  167.       limitations, and also the following:
  168.  
  169.          MaxFile/PM must be copied in unmodified form, complete
  170.          with all contents of the original distribution archive.
  171.          Bulletin board system operators (Sysops) are granted
  172.          permission to convert the distribution archive to another
  173.          format so long as the complete contents of the original
  174.          archive are transferred in whole.
  175.  
  176.          No fee, charge or other compensation may be accepted or
  177.          requested by any licensee.
  178.  
  179.          MaxFile/PM may not be distributed in conjunction with any
  180.          other product without the prior written consent of the
  181.          author.
  182.  
  183.       Operators of electronic bulletin board systems may post
  184.       MaxFile/PM for downloading by their users only as long as the
  185.       above conditions are met.
  186.  
  187.       Distributors of public domain or user supported software may
  188.       distribute copies of MaxFile/PM subject to the above
  189.       conditions.
  190.  
  191.  
  192. ΓòÉΓòÉΓòÉ 4. Before You Start - READ THIS! ΓòÉΓòÉΓòÉ
  193.  
  194. The default installation of OS/2 defines Mouse Button 1 as the left button and 
  195. Mouse Button 2 as the right button. Please keep this in mind as you read 
  196. through this document if you have redefined your mouse buttons. 
  197.  
  198. MSGAPI32.DLL is REQUIRED for this release of MaxFile/PM. This DLL can be found 
  199. in Scott Dudley's Squish Mail 1.10 Processor package. Look for an archive named 
  200. SQSHP110.LZH. 
  201.  
  202. A word to the wise here.. 
  203.  
  204. BACKUP *BEFORE* USING MAXFILE/PM ! 
  205.  
  206. Here comes the standard disclaimer...I don't promise that MaxFile/PM will do 
  207. anything for you except take up space on your hard drive. While I am fairly 
  208. certain I have got all the nasties out of it, there is a chance that I may have 
  209. missed something. So please be safe and backup prior to using the program. 
  210. Suffice it to say, you have been warned.. 
  211.  
  212.  
  213. ΓòÉΓòÉΓòÉ 5. Configuring MaxFile/PM ΓòÉΓòÉΓòÉ
  214.  
  215. To configure MaxFile/PM for use, simply start MaxFile/PM by typing MAXFMPM and 
  216. pressing ENTER at an OS/2 Command Prompt. The MaxFile/PM Settings notebook will 
  217. be presented for you, so that you can enter the vital information about your 
  218. system and BBS setup. 
  219.  
  220. The Settings Notebook is where you configure MaxFile/PM so that it fits your 
  221. particular system. There are a lot of options here, some required, some not, 
  222. all depending on whether you want to be able to use that particular feature or 
  223. not. There are 5 major categories of information here; Main, Adopt, Archivers, 
  224. Viewers and Other. Some of the categories have more than one page devoted to 
  225. them. A detailed discussion of the categories follows. 
  226.  
  227.  
  228. ΓòÉΓòÉΓòÉ 5.1. Settings/Main - Basic information ΓòÉΓòÉΓòÉ
  229.  
  230. The Main section of the notebook consists of two pages that contain the 
  231. information that tells MaxFile/PM the basics about your BBS configuration and 
  232. how to handle certain options. 
  233.  
  234.  
  235. ΓòÉΓòÉΓòÉ 5.1.1. Main - Page 1 ΓòÉΓòÉΓòÉ
  236.  
  237. This sections covers Main Page 1 of the settings notebook. It contains the 
  238. basics of your BBS configuration. 
  239.  
  240.  
  241. ΓòÉΓòÉΓòÉ 5.1.1.1. Registration Key ΓòÉΓòÉΓòÉ
  242.  
  243. Your registration key, if you have one. If not leave it blank. Make sure if you 
  244. have registered an earlier version of MaxFile/PM that you contact me to obtain 
  245. a new key. 
  246.  
  247. Enter the registration key exactly the same as it is given to you. 
  248.  
  249.  
  250. ΓòÉΓòÉΓòÉ 5.1.1.2. Registration Name ΓòÉΓòÉΓòÉ
  251.  
  252. Your name, this works in conjunction with the Registration Key field. 
  253. MaxFile/PM hashes your name against your Key to see if you really are a 
  254. registered user. 
  255.  
  256. The Registration XXXX fields when filled out properly, stop the Product 
  257. Information dialog from appearing as a registration incentive and will also 
  258. stop the usage timer. 
  259.  
  260.  
  261. ΓòÉΓòÉΓòÉ 5.1.1.3. BBS Package ΓòÉΓòÉΓòÉ
  262.  
  263. Four choices here: 
  264.  
  265.    Maximus 
  266.    Lora 
  267.    SuperBBS 
  268.    Generic 
  269.  
  270. Simply select one from the drop down list box. Or type in one of the names in 
  271. the list above. 
  272.  
  273.  
  274. ΓòÉΓòÉΓòÉ 5.1.1.4. BBS Directory ΓòÉΓòÉΓòÉ
  275.  
  276. This is the directory that your BBS software resides in. Enter the FULL path 
  277. specification. 
  278.  
  279.  
  280. ΓòÉΓòÉΓòÉ 5.1.1.5. Temp Directory ΓòÉΓòÉΓòÉ
  281.  
  282. This is the FULL path to an EXISTING directory that MaxFile/PM can use to store 
  283. temporary files in and use for rearchiving files. Don't use this directory for 
  284. ANYTHING else while MaxFile/PM is running. EVERYTHING, INCLUDING ANY 
  285. SUB-DIRECTORIES WILL BE REMOVED BY Maxfile/PM IF YOU REARCHIVE ANY FILES. 
  286.  
  287.  
  288. ΓòÉΓòÉΓòÉ 5.1.1.6. File Area Data ΓòÉΓòÉΓòÉ
  289.  
  290. This is the FULL path and filename of the file that contains your file area 
  291. definitions. For Maximus 2.xx users this will be AREA.DAT, for Lora users this 
  292. will SYSFILE.DAT, for SuperBBS users this will be FLSEARCH.BBS, for those using 
  293. the Generic setup this should be the name of the text file you created 
  294. according the guidelines in the Generic File Area Definitions section. 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 5.1.2. Main - Page 2 ΓòÉΓòÉΓòÉ
  298.  
  299. This sections covers Main Page 2. This page contains the settings that control 
  300. the overall operation of MaxFile/PM. Such as window defaults, etc.. 
  301.  
  302.  
  303. ΓòÉΓòÉΓòÉ 5.1.2.1. AutoSave ΓòÉΓòÉΓòÉ
  304.  
  305. This tells MaxFile/PM whether or not you want your FILES.BBS files 
  306. automatically saved when you close a file area. If you check this option 
  307. MaxFile/PM will save the FILES.BBS for you as soon as you close the window 
  308. associated with a FILES.BBS, if not, it will prompt you and ask if you want the 
  309. information saved. 
  310.  
  311.  
  312. ΓòÉΓòÉΓòÉ 5.1.2.2. Button Bar ΓòÉΓòÉΓòÉ
  313.  
  314. This check box tells MaxFile/PM whether or not you want the button bar turned 
  315. on in your FILES.BBS windows. 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 5.1.2.3. Header Size ΓòÉΓòÉΓòÉ
  319.  
  320. For those of you using programs such as DownSort, this option will allow you to 
  321. tell MaxFile/PM how many lines at the beginning of your FILES.BBS to skip when 
  322. reading them in. The headers ARE preserved when MaxFile/PM writes out a new 
  323. FILES.BBS. 
  324.  
  325.  
  326. ΓòÉΓòÉΓòÉ 5.1.2.4. ED Marker ΓòÉΓòÉΓòÉ
  327.  
  328. For those BBS packages that support extended descriptions this option will come 
  329. in handy. Here you tell MaxFile/PM what character is associated with extended 
  330. descriptions for your BBS Package. This character can not be a space or a dash. 
  331.  
  332. Defining this character causes a few changes in the way MaxFile/PM handles your 
  333. file descriptions. When this option is used, file descriptions are allowed to 
  334. be up to 1024 characters in length and nothing is stripped from FILE_ID.DIZ 
  335. descriptions read in from archives. MaxFile/PM does not insert this character 
  336. in multiple line descriptions for you, you need to do this. However, when you 
  337. use Format Description MaxFile/PM will take care of putting this character 
  338. where it belongs. 
  339.  
  340. If this character is not defined, file descriptions are limited to 255 
  341. characters, any non-printable ASCII characters (0-31), any high-bit ASCII 
  342. characters (127-255) and extra whitespace are stripped from the file 
  343. description. 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ 5.1.2.5. Default Description ΓòÉΓòÉΓòÉ
  347.  
  348. You may enter up to 80 characters for a default description. This text will get 
  349. used any time you Insert, Adopt or drop files from an outside source into a 
  350. window in MaxFile/PM and those files meet the following criteria: 1, they are 
  351. not an archive or 2, they are an archive and the archive does not contain a 
  352. FILE_ID.DIZ description inside of it. 
  353.  
  354.  
  355. ΓòÉΓòÉΓòÉ 5.1.2.6. File Database Utility ΓòÉΓòÉΓòÉ
  356.  
  357. The next field is for the filename of your File Database Utility. For Maximus 
  358. this will be either FB.EXE or FBP.EXE. On my system I have this set to FBP, 
  359. since the utility is in my path. For Lora-BBS users, this will be FILEIDX.EXE. 
  360. Please see the Known Problems section at the end of this document for more 
  361. information about FILEIDX.EXE. For SuperBBS users, I don't have a clue. If 
  362. someone would fill me in on this one I'd really appreciate it! This entry is 
  363. only required if you want MaxFile/PM to run the utility for you. 
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 5.1.2.7. Run FD Utility ΓòÉΓòÉΓòÉ
  367.  
  368. The options for Run FD Utility determine when and if the File Database utility 
  369. will get run. There are three; Always, Prompt and Never. Always will run your 
  370. file database utility every time you exit MaxFile/PM. If no changes have been 
  371. made, it will prompt you before running it. Prompt will ask you if you wish to 
  372. run it. Do I need to explain Never? :-} 
  373.  
  374.  
  375. ΓòÉΓòÉΓòÉ 5.1.2.8. Display ΓòÉΓòÉΓòÉ
  376.  
  377. The Display options control whether or not the file size and date information 
  378. gets displayed for your files in the FILES.BBS windows. Simply check or uncheck 
  379. the check boxes to set your preferences. 
  380.  
  381.  
  382. ΓòÉΓòÉΓòÉ 5.2. Settings/Adopt - Adopting Files ΓòÉΓòÉΓòÉ
  383.  
  384. This section covers the basic information needed when MaxFile/PM adopts files. 
  385.  
  386.  
  387. ΓòÉΓòÉΓòÉ 5.2.1. Extensions edit control ΓòÉΓòÉΓòÉ
  388.  
  389. This is a simple edit control that you use to enter in the extensions that you 
  390. want add to the list box to the right. You may enter up to 3 characters for 
  391. each extension, wild cards are allowed. These extensions are used while 
  392. adopting files, anything not defined here will be ignored. These extensions are 
  393. use when you perform an Adopt from the FILES.BBS window context menu or you 
  394. have Auto Adopt turned on. 
  395.  
  396.  
  397. ΓòÉΓòÉΓòÉ 5.2.2. Add button ΓòÉΓòÉΓòÉ
  398.  
  399. After entering an extension in the edit control click this button to add it to 
  400. the list of extensions in the list box. 
  401.  
  402.  
  403. ΓòÉΓòÉΓòÉ 5.2.3. Remove button ΓòÉΓòÉΓòÉ
  404.  
  405. This button allows you to remove an entry from the list box. Simply highlight 
  406. the entry you want to remove from the list box and click here. 
  407.  
  408.  
  409. ΓòÉΓòÉΓòÉ 5.2.4. Auto Adopt ΓòÉΓòÉΓòÉ
  410.  
  411. This check box tells MaxFile/PM if you want it to automatically perform an 
  412. Adopt when a file area is first opened. This only works if you have actually 
  413. added at least one extension for MaxFile/PM to scan for. 
  414.  
  415.  
  416. ΓòÉΓòÉΓòÉ 5.2.5. Download counters ΓòÉΓòÉΓòÉ
  417.  
  418. If you want download counters added to the description of files that get 
  419. adopted, check this box. Currently this is hard coded to [___], in the future 
  420. this may be made configurable if enough people ask for it. 
  421.  
  422.  
  423. ΓòÉΓòÉΓòÉ 5.3. Settings/Archivers - Archiver Information ΓòÉΓòÉΓòÉ
  424.  
  425. This section causes the most confusion when configuring MaxFile/PM. The best I 
  426. can do to help is to tell you what I use here on my system to give you a few 
  427. hints. 
  428.  
  429. There are eight pages, one each for; Zip, Arj, Lzh, Arc, HA, RAR, UC2 and ZOO. 
  430. I don't use HA, RAR or UC2 so you are on your own with these archivers. 
  431.  
  432. You will need to enter the executable name and the appropriate switches for 
  433. each of the actions for each archiver. You should include any switches 
  434. necessary for recursing sub-directories and if you want to make MaxFile/PM's 
  435. job a little easier, any switches to tell the archivers to 'move' files into 
  436. archives when adding to or creating a new archive. Below I will give a short 
  437. description of each entry and the settings for the archivers I use. You will 
  438. have MUCH better success with OS/2 based archivers. 
  439.  
  440. NOTE: Each of the archivers you use must be able to accept filenames on the 
  441. command line other than just the archive name. Some versions of UNARJ do not 
  442. allow you to do this. F'REQ GNUNARJ.* from me if you need an updated version 
  443. that allows filenames. 
  444.  
  445. I also believe I have gotten the DOS kludge worked around in the code. So you 
  446. should be able to just define your DOS archivers just like OS/2 based 
  447. archivers, I.E, PKUNZIP -v, for listing an archive. The settings for the DOS 
  448. archivers below worked for me for what little time I spent with them. 
  449.  
  450.  
  451. ΓòÉΓòÉΓòÉ 5.3.1. Extract ΓòÉΓòÉΓòÉ
  452.  
  453. This entry should contain the command and switches necessary to extract a file 
  454. from an archive. 
  455.  
  456.  
  457.  ZIP                  unzip -xo -U
  458.  
  459.  ARJ                  unarj e
  460.  
  461.  ARJ                  ARJ x -y
  462.  
  463.  LZH                  lh x /o
  464.  
  465.  ARC                  arc x
  466.  
  467.  RAR                  rar -o+ -y
  468.  
  469.  HA                   ha ey
  470.  
  471.  UC2                  uc2 ESF
  472.  
  473.  ZOO                  zoo xO
  474.  
  475.  
  476. ΓòÉΓòÉΓòÉ 5.3.2. Add ΓòÉΓòÉΓòÉ
  477.  
  478. This entry should contain the command and switches necessary to add files to an 
  479. archive. 
  480.  
  481.  
  482.  ZIP                  zip -9 -r
  483.  
  484.  ARJ                  ARJ a -r -y
  485.  
  486.  LZH                  lh a /o
  487.  
  488.  ARC                  arc a
  489.  
  490.  RAR                  RAR a -r -y -ep1
  491.  
  492.  HA                   ha a12rd
  493.  
  494.  UC2                  UC2 uc ASF
  495.  
  496.  ZOO                  zoo ah
  497.  
  498.  
  499. ΓòÉΓòÉΓòÉ 5.3.3. List ΓòÉΓòÉΓòÉ
  500.  
  501. This entry should contain the command and switches necessary to list the files 
  502. in an archive to standard output. 
  503.  
  504.  
  505.  ZIP                  unzip -v
  506.  
  507.  ARJ                  unarj l
  508.  
  509.  ARJ                  ARJ v -y
  510.  
  511.  LZH                  lh l /o
  512.  
  513.  ARC                  arc l
  514.  
  515.  RAR                  RAR v -y
  516.  
  517.  HA                   HA l
  518.  
  519.  UC2                  UC2 VS
  520.  
  521.  ZOO                  zoo L
  522.  
  523.  
  524. ΓòÉΓòÉΓòÉ 5.3.4. Test ΓòÉΓòÉΓòÉ
  525.  
  526. This entry should contain the command and switches necessary to test the 
  527. integrity of an archive with the output going to standard output. 
  528.  
  529.  
  530.  ZIP                  unzip -t
  531.  
  532.  ARJ                  unarj t
  533.  
  534.  ARJ                  arj t -y
  535.  
  536.  LZH                  lh t /o
  537.  
  538.  ARC                  arc v
  539.  
  540.  RAR                  RAR t -std -y
  541.  
  542.  HA                   HA t
  543.  
  544.  UC2                  UC2 TF
  545.  
  546.  ZOO                  zoo xN
  547.  
  548.  
  549. ΓòÉΓòÉΓòÉ 5.4. Settings/Viewers - File Viewers ΓòÉΓòÉΓòÉ
  550.  
  551. Here you can define viewers for use with the View function in a FILES.BBS 
  552. window. Enter the filename and any necessary switches for each of the programs. 
  553.  
  554. There are entries for the following file types: 
  555.  
  556.    GIF 
  557.    PCX 
  558.    JPG 
  559.    TIF 
  560.    BMP 
  561.    Other 
  562.  
  563. The 'Other' entry catches anything that is not an archive, GIF, PCX, JPG, TIF 
  564. or BMP file. I.E, text files. 
  565.  
  566.  
  567. ΓòÉΓòÉΓòÉ 5.5. Settings/Other - Other Programs. ΓòÉΓòÉΓòÉ
  568.  
  569. This section covers those items I just couldn't figure out where else to put. 
  570.  
  571.  
  572. ΓòÉΓòÉΓòÉ 5.5.1. Virus Scanner ΓòÉΓòÉΓòÉ
  573.  
  574. This should be the name of the program to scan files for viruses, make sure to 
  575. include any necessary switches. 
  576.  
  577. NOTE: MaxFile/PM does NOT extract files from the archives. You will need to do 
  578. this, or use a utility that can do it for you. 
  579.  
  580.  
  581. ΓòÉΓòÉΓòÉ 5.5.2. Shift F<xx> ΓòÉΓòÉΓòÉ
  582.  
  583. Five entries here, one each for: 
  584.  
  585.    Shift F6 
  586.    Shift F7 
  587.    Shift F8 
  588.    Shift F9 
  589.    Shift F10 
  590.  
  591. These five entries are for things I may have overlooked or for some special 
  592. processing that you would like to do to a file. Enter the program name and any 
  593. switches they need. When in a FILES.BBS window and you press one of the above 
  594. keystrokes, the appropriate entry will get started with one of the selected 
  595. files as a parameter on its command line, this will continue one file at a time 
  596. until all of the selected files have been processed. 
  597.  
  598.  
  599. ΓòÉΓòÉΓòÉ 5.6. Generic File Area Definitions ΓòÉΓòÉΓòÉ
  600.  
  601.  To provide support for any BBS system that uses the standard FILES.BBS format 
  602. for their file listings I have come up with a very simple text file format that 
  603. will allow you to tell MaxFile/PM how your file areas are defined. 
  604.  
  605.  The file is made up of a verb that tells MaxFile/PM how many areas it can 
  606. expect to find in the text file. Each successive line after that verb defines 
  607. the file areas themselves. A sample file is shown below: 
  608.  
  609. ----------------------------- AREAS.CFG sample --------------------------------
  610. AreaCount 5
  611. 0 d:\max\file\uncheck    d:\max\file\uncheck\files.bbs    Unchecked Uploads
  612. 1 d:\max\file\max        d:\max\file\max\files.bbs        BBS Stuff
  613. 2 d:\max\file\dos\games  d:\max\file\dos\games\files.bbs  Dos Games
  614. 3 d:\max\file\os2\util   d:\max\file\os2\util\files.bbs   OS/2 Utilities
  615. 4 d:\max\file\os2\apps   d:\max\file\os2\apps\files.bbs   OS/2 Applications
  616. -------------------------------------------------------------------------------
  617.  
  618.  The 'AreaCount' keyword tells MaxFile/PM how many area definitions it can 
  619. expect to find in the file. The AreaCount keyword must come BEFORE the area 
  620. definition lines. 
  621.  
  622. The format for each area definition line is: 
  623.  
  624.   <area tag> <file path> <list name> <area description>
  625.  
  626. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  627.  <area tag>           Is a short name to identify the file area.
  628.  
  629.  <file path>          Is the path to the files.
  630.  
  631.  <list name>          Is the full drive:\path and filename of the
  632.                       FILES.BBS for the area.
  633.  
  634.  <area description>   Is a short description of the area.
  635. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  636.  
  637.  You can name this file what ever you wish, just make sure you specify the name 
  638. of this file for the File Area Data option in the Settings notebook and make 
  639. sure the BBS Package is set to 'Generic'. 
  640.  
  641.  
  642. ΓòÉΓòÉΓòÉ 6. Using MaxFile/PM ΓòÉΓòÉΓòÉ
  643.  
  644. When MaxFile/PM first comes up a window will be displayed that contains all of 
  645. your file areas. I will be referring to this window by the term File Area 
  646. Window throughout the rest of this document. 
  647.  
  648. When you open up a file area, a window that is very similar in appearance to 
  649. the File Area window will appear. This window will contain all the files listed 
  650. in the FILES.BBS for that area. These windows will be referred to as FILES.BBS 
  651. Windows from here on out. 
  652.  
  653.  
  654. ΓòÉΓòÉΓòÉ 6.1. Selecting Items ΓòÉΓòÉΓòÉ
  655.  
  656. Perhaps the most confusing part of working in a window is selecting or 
  657. deselecting items. I wrote the program and I still have to think about it. 
  658.  
  659. Basically it works like this; Clicking mouse button 1 on an item selects it and 
  660. clears the selection from any other items in the window. To select multiple 
  661. items in the window, press mouse button 1 on the first item you want selected 
  662. and hold it down while you drag the mouse cursor. This allows you to select a 
  663. contiguous range of items. 
  664.  
  665. If you want to select multiple items and they aren't adjacent to each other, 
  666. hold down the CTRL key while you click mouse button 1 on each item. If the item 
  667. is not selected it will become selected, if the item is already selected the 
  668. selection is cleared for that item. 
  669.  
  670.  
  671. ΓòÉΓòÉΓòÉ 6.2. Drag and Drop/Moving Files ΓòÉΓòÉΓòÉ
  672.  
  673.                 * THIS IS HOW YOU MOVE FILES BETWEEN FILE AREAS *
  674.  
  675. Remember, MaxFile/PM is a Workplace Shell and Presentation Manager friendly 
  676. program. The basic operations of changing, editing and moving objects work the 
  677. same way. 
  678.  
  679. A drag operation is started by pressing mouse button 2 down and dragging the 
  680. mouse cursor. The operation is considered complete when you release mouse 
  681. button 2. Should you wish to abort the drag, press the ESC key on your 
  682. keyboard. 
  683.  
  684. You will need to make sure that both the source and destination windows are 
  685. visible on your display. 
  686.  
  687. You can drag files from anywhere on your system and drop them either on a 
  688. FILES.BBS window or onto the File Area window. When dropping on an open 
  689. FILES.BBS window, the files are inserted into the FILES.BBS at the point at 
  690. which they were dropped. When dropping on the File Area window, the files are 
  691. inserted at the end of the FILES.BBS for the area they are dropped on. 
  692.  
  693. You can also rearrange the items in a FILES.BBS window by selecting them, then 
  694. dragging them and dropping them where you want them to be. 
  695.  
  696. Many of you have asked about this one...To delete one or more items from a 
  697. FILES.BBS window; highlight the items you want deleted, then drag them to the 
  698. shredder object and delete them. Or, alternatively you can use the Remove Items 
  699. option on the context menu. 
  700.  
  701.  
  702. ΓòÉΓòÉΓòÉ 6.3. File Area Window ΓòÉΓòÉΓòÉ
  703.  
  704. The File Area window serves two basic purposes. First, it allows you to open 
  705. FILES.BBS Windows and second, it also serves as a dropping point for files so 
  706. that you can quickly move files to another file area without having to open the 
  707. file area. 
  708.  
  709.  
  710. ΓòÉΓòÉΓòÉ 6.3.1. File Area Window Context Menu ΓòÉΓòÉΓòÉ
  711.  
  712. The File Area Window Context Menu is where you control the overall operations 
  713. of MaxFile/PM. A somewhat detailed explanation of each menu item follows. 
  714.  
  715.  
  716. ΓòÉΓòÉΓòÉ 6.3.1.1. Open... ΓòÉΓòÉΓòÉ
  717.  
  718. This menu item allows you to open the highlighted file area(s). 
  719.  
  720. The various ways of opening a file area are: 
  721.  
  722.     1. Highlighting the area you want to open and pressing enter. 
  723.  
  724.     2. Double-clicking mouse button 1 on a file area. 
  725.  
  726. If the file area is already open it will be brought into view, even if it is 
  727. minimized to the Minimized Window Viewer folder. 
  728.  
  729.  
  730. ΓòÉΓòÉΓòÉ 6.3.1.2. Area Sort ΓòÉΓòÉΓòÉ
  731.  
  732. Three options here: 
  733.  
  734.    Tag 
  735.    Description 
  736.    Files Dir 
  737.  
  738. These options sort the File Area Window listing by the appropriate field in 
  739. ascending order. 
  740.  
  741.  
  742. ΓòÉΓòÉΓòÉ 6.3.1.3. Check for Duplicates ΓòÉΓòÉΓòÉ
  743.  
  744. To check your file areas for duplicate files choose this menu item after 
  745. selecting the area(s) you want MaxFile/PM to check against all of your file 
  746. areas. Please note that the scan performed when checking for duplicates does 
  747. not involve the FILES.BBS files for the areas scanned, it looks at the contents 
  748. of the download directory for each area. So all duplicates will be found 
  749. regardless of whether there is a FILES.BBS entry for them or not. However, the 
  750. files searched for come directly from the FILES.BBS files of the areas selected 
  751. in the File Area window. So make sure if you have a FILES.BBS window open for 
  752. one of the areas you will be checking for duplicates from, that you have saved 
  753. any changes made in that window. 
  754.  
  755. The File Area window will be locked open until you close the DupeCheck Results 
  756. dialog box. This dialog will appear as soon as the file scanning is complete. 
  757. Inside this dialog you will see a listing of all the files found. To open the 
  758. file area associated with a file, simply double-click on its entry. If you 
  759. decide that you want to delete the file from this dialog, highlight the entry 
  760. and click the delete button. 
  761.  
  762.  
  763. ΓòÉΓòÉΓòÉ 6.3.1.4. Search... ΓòÉΓòÉΓòÉ
  764.  
  765. This function is very similar to the Dupe Checker option, with the exception 
  766. that instead of checking for duplicate files you can enter a string of text 
  767. that MaxFile/PM will search for in each of the FILES.BBS files for each of the 
  768. selected areas. 
  769.  
  770. First select the areas that you want to search, then bring up the context menu 
  771. and select 'Search...' A dialog box will come up asking you what to search for. 
  772. You may enter up to 80 characters. Click ok to begin the search. 
  773.  
  774. The search is not case nor position sensitive. Both the filename and 
  775. description are searched for the text, if the text appears in one of these two 
  776. places a 'hit' will occur. The dialog box that comes up after the search is 
  777. complete works exactly the same as the dialog box showing the results of the 
  778. Dupe Checker option. 
  779.  
  780.  
  781. ΓòÉΓòÉΓòÉ 6.3.1.5. All Files List ΓòÉΓòÉΓòÉ
  782.  
  783. Probably the most requested feature had to be the ability to generate a list of 
  784. available files from the FILES.BBS listings. MaxFile/PM will generate an all 
  785. files list for you. It's highly customizable and can be run automagically from 
  786. a batch file once configured correctly (NOTE: you must register MaxFile/PM to 
  787. stop the Product Information dialog from appearing.) 
  788.  
  789. To use the all files generator interactively, simply start MaxFile/PM and then 
  790. select the areas from the File Area window that you want included in the 
  791. listing. Then bring up the context menu and select "All Files List". MaxFile/PM 
  792. will then process each FILES.BBS and produce a listing under the filename 
  793. ALLFILES.LST in the directory that MaxFile/PM resides in. 
  794.  
  795. Each time you run the all files generator from the context menu, a file called 
  796. ALLFILES.CFG will be written that contains a list of the area tags for each of 
  797. the areas in the listing. Do NOT modify this file. The purpose behind this file 
  798. is to tell MaxFile/PM what areas to include when you run the all files 
  799. generator in batch mode. If you delete file areas that are in your 
  800. ALLFILES.CFG, you MUST run the all files generator from the context menu in 
  801. interactive mode at least once to keep the ALLFILES.CFG in sync with your file 
  802. areas. I'll put it this way... IF YOU WANT TO RUN IN BATCH MODE YOU MUST KEEP 
  803. allfiles.cfg IN SYNC WITH YOUR FILE AREAS. 
  804.  
  805. To customize the all files generator to suit your tastes, you can create three 
  806. text files which will be written to your file listing at the appropriate times. 
  807.  
  808. The names for the files are: 
  809.  
  810.    ALLFILES.HDR 
  811.    ALLFILES.FTR 
  812.    ALLFILES.CUS 
  813.  
  814. ALLFILES.HDR and ALLFILES.FTR are written verbatim to the file listing at the 
  815. beginning and ending of the listing, respectively. ALLFILES.CUS is a little 
  816. more complex. It allows you to insert text into the headers that are written to 
  817. the listing for each file area. The format of the file is: 
  818.  
  819.     <AreaTag> <Header text......>
  820.  
  821. <AreaTag> is the area tag of the file area header the text that follows it 
  822. should be inserted into. You may place as many lines as you need to for each 
  823. area as long as they all follow this format. <AreaTag> is checked against the 
  824. area tag for each area in such a manner that if the tag for the area begins 
  825. with the tag specified in this file the text will get inserted. An example 
  826. might be of some help here.. 
  827.  
  828. You have the following areas: 
  829.  
  830.    CICA001 
  831.    CICA002 
  832.    CICB001 
  833.    001 
  834.    002 
  835.  
  836. In your ALLFILES.CUS file you have: 
  837.  
  838.    CICA Files in this area are NOT freq'able. 
  839.    CIC These files are on my CD-ROM. 
  840.    00 These files are freq'able anytime but ZMH. 
  841.  
  842. CICA would match CICA001 and CICA002. CIC would match CICA001, CICA002 and 
  843. CICB002. 00 would match 001 and 002. Get the idea? Its rather simple once you 
  844. get used it. 
  845.  
  846. To run the all files generator in batch mode from the command line, specify the 
  847. -A switch on MaxFile/PM's command line. MaxFile/PM will do its thing and then 
  848. return to the command prompt when it is done. -a, -A, /a and /A are all 
  849. recognized as valid switches for this mode of operation. If you have not 
  850. registered MaxFile/PM please note that the Product Information dialog that 
  851. appears when you first start the program will severely hinder your ability to 
  852. use batch mode effectively. 
  853.  
  854.  
  855. ΓòÉΓòÉΓòÉ 6.3.1.6. Outdated Files... ΓòÉΓòÉΓòÉ
  856.  
  857. This option will allow you to either remove or move to a file area those files 
  858. that are older than a certain number of days. 
  859.  
  860. The process of taking care of your outdated files begins by selecting the areas 
  861. that you wish to scan from the File Area window. Now, bring up the context menu 
  862. and select 'OutDated Files...', you will be presented with a dialog box, this 
  863. is where you tell MaxFile/PM how to manage the old files. 
  864.  
  865. To remove files, select the Kill radio button. To move files to a selected file 
  866. area, select the Move radio button and then enter the Area Tag of the file area 
  867. you want the files to go into. The Area Tag you type in MUST exactly match one 
  868. of the area tags listed in the first column of the File Area window, upper and 
  869. lower case letters are important here. 
  870.  
  871. Now you need to tell MaxFile/PM the number of days old a file has to be before 
  872. it will be moved or deleted. Either type in the number of days or use the spin 
  873. button to adjust the number of days to your liking. To give you some indication 
  874. of the date range you will be working with, the date below the spin button will 
  875. tell you what the date on the oldest file can be. 
  876.  
  877. After entering the above, click OK and sit back and let MaxFile/PM do its 
  878. thing. If a file area you have selected is open, it will be skipped. Also, if 
  879. you are moving files, the file area that will receive the dated files will be 
  880. skipped. 
  881.  
  882.  
  883. ΓòÉΓòÉΓòÉ 6.3.1.7. REXX Macro... ΓòÉΓòÉΓòÉ
  884.  
  885. Don't like the way MaxFile/PM does something? Well, now YOU can change it! REXX 
  886. scripts are now supported. In addition to all the commands available from REXX, 
  887. there are 21 REXX extensions added by MaxFile/PM so that you can manipulate 
  888. your files from a REXX command script. 
  889.  
  890. A discussion of REXX is well beyond the scope of this document, instead what 
  891. you will read about here are the extensions that MaxFile/PM adds to REXX to 
  892. allow you to work with your files. The supplied TESTREXX.CMD file is a sample 
  893. that shows the syntax and usage of each of the added functions. PLEASE use this 
  894. file as a guide when you are constructing your macros. 
  895.  
  896. REXX commands and programs that communicate with the user via Standard input 
  897. and Standard output are fully supported by MaxFile/PM's REXX interface. When 
  898. the REXX interface first starts up a window entitled "MaxFile/PM REXX Output" 
  899. will appear on your desktop, this window is your means of communication with 
  900. REXX. 
  901.  
  902. The top line of the REXX output window contains a single line edit control that 
  903. can accept up to 80 characters. When you wish to actually send the typed text 
  904. to standard input, click on the Send button. Clicking on the Send button when 
  905. the control is empty sends a CR/LF pair to standard input. 
  906.  
  907. The remainder of the output window is reserved for the output coming from your 
  908. REXX commands and/or application programs. REXX's PULL and SAY commands are 
  909. fully supported. There are some limitations to what the output window can do 
  910. though. It doesn't support; reverse tabs, vertical tabs, backspace or cursor 
  911. movements. For applications that use this type of output or expect to be able 
  912. to write to the screen using other methods than standard output you are going 
  913. to need to use the START command or some other similar utility to run them in 
  914. another session. 
  915.  
  916. To stop a REXX script that is running, bring the Main File Area window to the 
  917. front and pull up the context menu, then select Stop REXX this will halt the 
  918. script after the current instruction is complete. 
  919.  
  920. Starting MaxFile/PM with the -r switch will cause MaxFile/PM to open its main 
  921. window, immediately run the REXX script specified and then exit. An example: 
  922.  
  923.                               MAXFMPM -rTESTREXX.CMD
  924.  
  925. Would start MaxFile/PM, run TESTREXX.CMD to completion and then exit. -r -R /r 
  926. and /R are all valid forms of the "REXX" switch. 
  927.  
  928. Listed later you will see the REXX extensions for use with MaxFile/PM, they 
  929. will be listed by name with a short explanation of each. All the functions 
  930. return 'ERROR' if something goes wrong. Those functions that aren't meant to 
  931. return some type of information return 'OK' for success. If a syntax error 
  932. occurs, processing of the script stops and the error cause can be found in the 
  933. file REXX.ERR in the directory MaxFile/PM resides in. 
  934.  
  935.                     *  PAY ATTENTION TO THE NEXT PARAGRAPH  *
  936.                    * IT WILL MAKE OR BREAK YOUR REXX SCRIPTS *
  937.  
  938. You can change directories throughout the lifetime of your script, but 
  939. MaxFile/PM needs to be able to find its files and it expects them to be in the 
  940. directory that your script gets called from. So if things start acting 
  941. strangely when you are testing a script, make sure the current directory is 
  942. your MaxFile/PM directory before you call one of the extensions listed here. 
  943. The standard REXX function DIRECTORY() will return the current directory for 
  944. you, use it to save the directory your script starts out in. Then just before 
  945. your script ends, use it to restore the current directory. 
  946.  
  947.  
  948. ΓòÉΓòÉΓòÉ 6.3.1.8. Stop REXX ΓòÉΓòÉΓòÉ
  949.  
  950. Stops the currently running REXX macro. The current instruction in the macro 
  951. will finish executing before the macro stops. 
  952.  
  953.  
  954. ΓòÉΓòÉΓòÉ 6.3.1.9. Settings... ΓòÉΓòÉΓòÉ
  955.  
  956. Brings up the Settings Notebook for MaxFile/PM. Please see Configuring 
  957. MaxFile/PM for more information. 
  958.  
  959.  
  960. ΓòÉΓòÉΓòÉ 6.3.1.10. Product Information ΓòÉΓòÉΓòÉ
  961.  
  962. Displays MaxFile/PM's Product Information Dialog. 
  963.  
  964.  
  965. ΓòÉΓòÉΓòÉ 6.3.2. MaxFile/PM REXX Extensions ΓòÉΓòÉΓòÉ
  966.  
  967. This section covers the extensions that MaxFile/PM provides for use in your 
  968. REXX scripts that are run from the File Area Window context menu. 
  969.  
  970.  
  971. ΓòÉΓòÉΓòÉ 6.3.2.1. MPM_GetVersion() ΓòÉΓòÉΓòÉ
  972.  
  973. Returns MaxFile/PM's revision or version number. 
  974.  
  975.  
  976. ΓòÉΓòÉΓòÉ 6.3.2.2. MPM_ClearWindow() ΓòÉΓòÉΓòÉ
  977.  
  978. Clears the REXX output window. 
  979.  
  980.  
  981. ΓòÉΓòÉΓòÉ 6.3.2.3. MPM_MsgBox(message, title) ΓòÉΓòÉΓòÉ
  982.  
  983. Displays a simple message box using 'message' as the text displayed in the 
  984. message box and 'title' as the title for the message box. 
  985.  
  986.  
  987. ΓòÉΓòÉΓòÉ 6.3.2.4. MPM_QueryArea([areatag]) ΓòÉΓòÉΓòÉ
  988.  
  989. Works in two different ways. Called with no arguments it returns the area tag 
  990. of the first file area listed in the Main File Area window listing. When called 
  991. with a single argument containing the area tag of an existing file area, it 
  992. will return the area tag of the NEXT file area in the list. In either case, if 
  993. an area can't be found it returns 'ERROR'. 
  994.  
  995.  
  996. ΓòÉΓòÉΓòÉ 6.3.2.5. MPM_QueryAreaList('stemvar') ΓòÉΓòÉΓòÉ
  997.  
  998. Creates a compound stem variable containing the area tag, description, download 
  999. path and the full path/filename of the FILES.BBS for each area. 
  1000.  
  1001. The stem variable name is passed to the function as a string. stemvar.0 
  1002. contains the total number of areas that information has been returned for. 
  1003.  
  1004. An example of how to use this function follows: 
  1005.  
  1006.     /* MPM_QueryAreaList() example */
  1007.     rc = MPM_QueryAreaList('arealist')
  1008.  
  1009.     Say arealist.0' items in Area List.'
  1010.     Say arealist.1.area' is the first area.'
  1011.     Say arealist.1.desc' is the first area description.'
  1012.     Say arealist.1.path' is the first area download path.'
  1013.     Say arealist.1.fbbs' is the first area FILES.BBS location.'
  1014.  
  1015.  
  1016. ΓòÉΓòÉΓòÉ 6.3.2.6. MPM_QueryAreaInfo(areatag, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1017.  
  1018. Queries and returns the specified information for 'areatag.' The level info is 
  1019. as follows: 
  1020.  
  1021.  
  1022.  0    Area description
  1023.  
  1024.  1    Download Path
  1025.  
  1026.  2    FILES.BBS Location
  1027.  
  1028.  
  1029. ΓòÉΓòÉΓòÉ 6.3.2.7. MPM_DeselectArea(areatag) ΓòÉΓòÉΓòÉ
  1030.  
  1031. Detags a file area in the Main File Area window. 
  1032.  
  1033.  
  1034. ΓòÉΓòÉΓòÉ 6.3.2.8. MPM_SelectArea(areatag) ΓòÉΓòÉΓòÉ
  1035.  
  1036. Tags a file area in the Main File Area Window. 
  1037.  
  1038.  
  1039. ΓòÉΓòÉΓòÉ 6.3.2.9. MPM_OpenArea(areatag) ΓòÉΓòÉΓòÉ
  1040.  
  1041. Opens the FILES.BBS Window associated with 'areatag'. 
  1042.  
  1043.  
  1044. ΓòÉΓòÉΓòÉ 6.3.2.10. MPM_CloseArea(areatag) ΓòÉΓòÉΓòÉ
  1045.  
  1046. Closes the FILES.BBS window associated with 'areatag.' 
  1047.  
  1048.  
  1049. ΓòÉΓòÉΓòÉ 6.3.2.11. MPM_IsAreaOpen(areatag) ΓòÉΓòÉΓòÉ
  1050.  
  1051. Returns "1" if the FILES.BBS window associated with 'areatag' is open, "0" 
  1052. otherwise. 
  1053.  
  1054.  
  1055. ΓòÉΓòÉΓòÉ 6.3.2.12. MPM_SetFDUFlag(areatag) ΓòÉΓòÉΓòÉ
  1056.  
  1057. Sets the File Database Utility flag for the FILES.BBS that is associated with 
  1058. 'areatag.' Use this to tell MaxFile/PM that the File Database Utility needs to 
  1059. be run to update your file database after making changes that MaxFile/PM 
  1060. doesn't know about. 
  1061.  
  1062.  
  1063. ΓòÉΓòÉΓòÉ 6.3.2.13. MPM_QueryFile(areatag[, filename]) ΓòÉΓòÉΓòÉ
  1064.  
  1065. Returns the base filename of a file from a FILES.BBS window. When called with 
  1066. just the area tag of an open window it returns the first file in the window. 
  1067. When called with both the area tag and an existing filename it will return the 
  1068. NEXT filename in the window. If something goes wrong it returns ERROR. 
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ 6.3.2.14. MPM_QueryFileList(areatag, 'stemvar') ΓòÉΓòÉΓòÉ
  1072.  
  1073. Creates a compound stem variable containing a list of all the files in the 
  1074. FILES.BBS associated with 'areatag'. The stem variable name is passed as a 
  1075. string to the function. stemvar.0 contains how many items are in the list. 
  1076.  
  1077. An example follows: 
  1078.  
  1079.     /* MPM_QueryFileList() example */
  1080.     Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  1081.     mpmarea = 'TEST'
  1082.  
  1083.     /* Open up the file area */
  1084.     retval = MPM_OpenArea(mpmarea)
  1085.     /* Give the open call a chance to work */
  1086.     Call SysSleep 3
  1087.  
  1088.     If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  1089.  
  1090.     rc = MPM_QueryFileList(mpmarea, 'files')
  1091.  
  1092.     rc = MPM_CloseArea(mpmarea)
  1093.  
  1094.     Say 'There are 'files.0' files in the list.'
  1095.     Say
  1096.     Say files.1.file' is the first file.'
  1097.     Say files.1.path' is the path of the first file.'
  1098.     Say files.1.desc' is the description of the first file.'
  1099.  
  1100.  
  1101. ΓòÉΓòÉΓòÉ 6.3.2.15. MPM_QueryFileInfo(areatag, filename, '0' | '1' | '2' | '3') ΓòÉΓòÉΓòÉ
  1102.  
  1103. Queries and returns the specified information about 'filename.' The level 
  1104. information is as follows: 
  1105.  
  1106.  
  1107.  0    File Path
  1108.  
  1109.  1    File Date in DD MMM YYYY format
  1110.  
  1111.  2    File Size
  1112.  
  1113.  3    File Description
  1114.  
  1115.  
  1116. ΓòÉΓòÉΓòÉ 6.3.2.16. MPM_SelectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1117.  
  1118. Select 'filename' in the area identified by 'areatag'. 
  1119.  
  1120.  
  1121. ΓòÉΓòÉΓòÉ 6.3.2.17. MPM_DeselectFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1122.  
  1123. Deselect 'filename' in the area identified by 'areatag'. 
  1124.  
  1125.  
  1126. ΓòÉΓòÉΓòÉ 6.3.2.18. MPM_SetFileInfo(areatag, filename, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
  1127.  
  1128. Set the displayed information for a file in a FILES.BBS window. The level 
  1129. information is as follows: 
  1130.  
  1131.  
  1132.  0    Set File Date
  1133.  
  1134.  1    Set File Size
  1135.  
  1136.  2    Set File Description
  1137.  
  1138. Please note that options 0 and 1 are only for display purposes, if you want to 
  1139. set the file's date ("touch" it) you need to perform this yourself, MaxFile/PM 
  1140. does not do this for you, the same goes for the file's size. This REXX 
  1141. extension is merely to update the display in the FILES.BBS window. Option 2, 
  1142. for setting descriptions, does actually alter the description that will get 
  1143. saved for the file though. 
  1144.  
  1145. Dates should be in the FTSC format DD MMM YYYY, I.E, 01 Dec 1993. Sizes should 
  1146. be unformatted with no thousands separators. 
  1147.  
  1148.  
  1149. ΓòÉΓòÉΓòÉ 6.3.2.19. MPM_RemoveFile(areatag, filename) ΓòÉΓòÉΓòÉ
  1150.  
  1151. Removes the file 'filename' from the FILES.BBS window associated with 
  1152. 'areatag'. 
  1153.  
  1154.  
  1155. ΓòÉΓòÉΓòÉ 6.3.2.20. MPM_AddFile(areatag, filename, description) ΓòÉΓòÉΓòÉ
  1156.  
  1157. Adds 'filename' with description to the FILES.BBS window associated with 
  1158. 'areatag'. 'filename' MUST be a FULL file specification in the form of 
  1159. D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes wrong. 
  1160.  
  1161.  
  1162. ΓòÉΓòÉΓòÉ 6.3.2.21. MPM_AnnounceFiles('stemvar') ΓòÉΓòÉΓòÉ
  1163.  
  1164. Creates a file announcement message and writes it to a Squish or *.MSG message 
  1165. base. The message is built from the information stored in the compound stem 
  1166. variable 'stemvar'. 
  1167.  
  1168. Please see TANN.CMD (included in the distribution archive) for an example of 
  1169. how to use this extension. 
  1170.  
  1171. The elements of the message that need to be placed in 'stemvar' are as follows: 
  1172.  
  1173.  
  1174.  stemvar.msgpath    is the root path of the message area to place the
  1175.                     message in.
  1176.  
  1177.  stemvar.msgproc    is the executable name and switches needed to run
  1178.                     your mail tosser/packer, this one is optional, if
  1179.                     it isn't defined it is ignored.
  1180.  
  1181.  stemvar.msgtype    this defines the type of message base and must be
  1182.                     one of: SQUISH, MSG or MSGECHO.
  1183.  
  1184.  stemvar.msgflag    is the message flag you want to use for this
  1185.                     message, it must be one of: HOLD, NORMAL or CRASH.
  1186.  
  1187.  stemvar.to         is the name to address the message to, if it isn't
  1188.                     defined it defaults to 'All'.
  1189.  
  1190.  stemvar.toaddr     this the Fidonet style address of the recipient of
  1191.                     the message. It must be in the format
  1192.                     Zone:Net/Node.Point, I.E, 1:201/60.0, if not
  1193.                     defined it defaults to stemvar.fromaddr.
  1194.  
  1195.  stemvar.from       is the name the message is from, this one is
  1196.                     required.
  1197.  
  1198.  stemvar.fromaddr   is the address of who the message is from, in
  1199.                     other words, the originating Fidonet address. This
  1200.                     one is also required.
  1201.  
  1202.  stemvar.subject    this gets put in the subject field of the message.
  1203.                     If not defined it defaults to 'File Announcement'.
  1204.  
  1205.  stemvar.header     is the header of the message, it gets placed just
  1206.                     before the file list in the message. This one is
  1207.                     optional. 1024 character limit.
  1208.  
  1209.  stemvar.footer     this is similar to the header, except it comes
  1210.                     after the file list in the message. It is also
  1211.                     optional. 1024 character limit.
  1212.  
  1213.  stemvar.origin     this is the text that will get put in the origin
  1214.                     line of the message. The '_*_Origin:_' and from
  1215.                     fidonet address are taken care for you. All you
  1216.                     need to enter here is what text you want added in
  1217.                     between the two. This is optional, if it is not
  1218.                     defined no origin line is generated.
  1219.  
  1220.  stemvar.0          contains the number files being announced.
  1221.  
  1222.  stemvar.x.file     this is the base filename of a file to announce.
  1223.  
  1224.  stemvar.x.path     is the drive and path to the above base filename.
  1225.                     Do NOT include the filename here.
  1226.  
  1227.  stemvar.x.desc     this is the description you want to use for this
  1228.                     file in the message. 1024 character limit.
  1229.  
  1230. 'x' in the above three is a place holder for each of the files that you want 
  1231. announced, up to stemvar.0 files. 
  1232.  
  1233.  
  1234. ΓòÉΓòÉΓòÉ 6.3.2.22. MPM_Crc32('filename') ΓòÉΓòÉΓòÉ
  1235.  
  1236. Examines 'filename' and returns a CRC32 value calculated according to FIPS PUB 
  1237. 71 and FED-STD-1003. This should prove useful for rolling your own TIC 
  1238. processor. 
  1239.  
  1240.  
  1241. ΓòÉΓòÉΓòÉ 6.4. FILES.BBS Window ΓòÉΓòÉΓòÉ
  1242.  
  1243. FILES.BBS windows are the heart and soul of MaxFile/PM, these windows are where 
  1244. you will be spending most of your time. A FILES.BBS window is very similar to 
  1245. the File Area window in appearance. What you will see when you open one of 
  1246. these windows is the contents of the FILES.BBS that is associated with the file 
  1247. area this window belongs to. 
  1248.  
  1249.  
  1250. ΓòÉΓòÉΓòÉ 6.4.1. The Button Bar ΓòÉΓòÉΓòÉ
  1251.  
  1252. If you have the Button Bar option in the Settings Notebook/Main/Page 2 turned 
  1253. on then just below the title bar of each FILES.BBS window there will be a 
  1254. button bar that contains buttons for the most commonly used items on the 
  1255. context menu. 
  1256.  
  1257. Should you forget what a particular button does you can find out by pressing 
  1258. mouse button 1 down while the mouse pointer is over the button and holding it 
  1259. down. A short description will appear in the status bar at the bottom of the 
  1260. FILES.BBS window. If you don't want to perform the operation at that time, drag 
  1261. the mouse pointer down into the list of files and release mouse button 1. 
  1262.  
  1263. Moving from the left side of the window towards the right, here's what they do: 
  1264.  
  1265.  
  1266.  Sort                 Uses the *last* sort type selected from the
  1267.                       context menu in a FILES.BBS Window. If no sort has
  1268.                       been selected it defaults to Name/Ascending.
  1269.  
  1270.  Edit Description     This is the same as ^E and Edit Description on the
  1271.                       context menu. Allows you to edit the description
  1272.                       for the highlighted file, if more than one file is
  1273.                       highlighted the file with the dotted cursor focus
  1274.                       is the one that will have the edit box opened for
  1275.                       it.
  1276.  
  1277.  Get FILE_ID.DIZ      Attempts to extract the FILE_ID.DIZ from the
  1278.                       selected files.
  1279.  
  1280.  Touch Files          Touches all the selected files.
  1281.  
  1282.  Virus Scan           Runs the defined Virus Scanner on all highlighted
  1283.                       files.
  1284.  
  1285.  Test Archive         Runs the archiver tests on the highlighted
  1286.                       archives.
  1287.  
  1288.  Remove Items         Just like Remove Items... from the context menu.
  1289.  
  1290.  Format               Same as Description->Format... from the context
  1291.  Description...       menu.
  1292.  
  1293.  
  1294. ΓòÉΓòÉΓòÉ 6.4.2. Hotkeys ΓòÉΓòÉΓòÉ
  1295.  
  1296. The following accelerator keys may be used when you are working in FILES.BBS 
  1297. window: 
  1298.  
  1299.     ^ = CTRL, ! = SHIFT
  1300.  
  1301.     Sort Ascending
  1302.         Name        ^1
  1303.         Date        ^2
  1304.         Size        ^3
  1305.         Description ^4
  1306.     Sort Descending
  1307.         Name        ^5
  1308.         Date        ^6
  1309.         Size        ^7
  1310.         Description ^8
  1311.     Description
  1312.         Edit        ^E
  1313.         Format      ^F
  1314.         Get DIZ     ^G
  1315.         Set DIZ     ^S
  1316.     Files
  1317.         Adopt       ^A
  1318.         Announce    ^N
  1319.         Touch       ^O
  1320.         View        ENTER
  1321.         Virus Scan  ^C
  1322.     Archives
  1323.         Test        ^T
  1324.         Extract to  ^X
  1325.         ReArchive
  1326.             to ZIP  !F2
  1327.             to ARJ  !F3
  1328.             to LZH  !F4
  1329.             to ARC  !F5
  1330.     Remove Items    ^D
  1331.  
  1332.  
  1333. ΓòÉΓòÉΓòÉ 6.4.3. Renaming Files ΓòÉΓòÉΓòÉ
  1334.  
  1335. To rename a file, press and hold the ALT key and click mouse button 1 on the 
  1336. file that you want to rename. Then enter the new filename and click button 1 
  1337. anywhere outside the edit box or press the keypad Enter key. Pressing ESC will 
  1338. discard any changes you have made to the filename. 
  1339.  
  1340.  
  1341. ΓòÉΓòÉΓòÉ 6.4.4. Editing File Descriptions ΓòÉΓòÉΓòÉ
  1342.  
  1343. Editing descriptions works in the much the same manner as renaming files, 
  1344. ALT+click mouse button 1 on the description you want to edit. To save the 
  1345. description, click outside the edit box or press the keypad Enter key. Pressing 
  1346. ESC will discard any changes made to the description or comment. 
  1347.  
  1348. The standard CUA conventions for cutting and pasting text work while the 
  1349. editing window is open for you to edit descriptions. 
  1350.  
  1351. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1352. ΓöéCtrl+INS       ΓöéCopy to the Clipboard                   Γöé
  1353. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1354. ΓöéShift+Del      ΓöéCut to the Clipboard                    Γöé
  1355. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1356. ΓöéDel            ΓöéCut (to the black hole of bits)         Γöé
  1357. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1358. ΓöéShift+INS      ΓöéPaste from the Clipboard                Γöé
  1359. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1360.  
  1361. These aren't well documented, but they are standard items that you can expect 
  1362. *most* applications to use when working with text, including MaxFile/PM. 
  1363.  
  1364.  
  1365. ΓòÉΓòÉΓòÉ 6.4.5. FILES.BBS Window Context Menu ΓòÉΓòÉΓòÉ
  1366.  
  1367. This sections covers the context menu for each FILES.BBS Window. 
  1368.  
  1369.  
  1370. ΓòÉΓòÉΓòÉ 6.4.5.1. Save FILES.BBS ΓòÉΓòÉΓòÉ
  1371.  
  1372. Performs an unconditional save of the FILES.BBS for the current FILES.BBS 
  1373. Window. At the same time it also sets the flag for this area to tell MaxFile/PM 
  1374. that the File Database Utility (if you have one configured) needs to be run on 
  1375. it. 
  1376.  
  1377.  
  1378. ΓòÉΓòÉΓòÉ 6.4.5.2. Sort Ascending ΓòÉΓòÉΓòÉ
  1379.  
  1380. Four choices: 
  1381.  
  1382.    Name 
  1383.    Date 
  1384.    Size 
  1385.    Description 
  1386.  
  1387. Sorts the FILES.BBS entries for the current FILES.BBS Window in ascending 
  1388. order. 
  1389.  
  1390. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1391. that none of the items in the window are selected. If any items are selected 
  1392. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1393. emphasis on all items in the window. This applies to both ascending and 
  1394. descending sorts. 
  1395.  
  1396.  
  1397. ΓòÉΓòÉΓòÉ 6.4.5.3. Sort Descending ΓòÉΓòÉΓòÉ
  1398.  
  1399. Four choices: 
  1400.  
  1401.    Name 
  1402.    Date 
  1403.    Size 
  1404.    Description 
  1405.  
  1406. Sorts the FILES.BBS entries for the current FILES.BBS Window in descending 
  1407. order. 
  1408.  
  1409. Please note the following; If you want the entire FILES.BBS sorted make sure 
  1410. that none of the items in the window are selected. If any items are selected 
  1411. ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection 
  1412. emphasis on all items in the window. This applies to both ascending and 
  1413. descending sorts. 
  1414.  
  1415.  
  1416. ΓòÉΓòÉΓòÉ 6.4.5.4. Descriptions ΓòÉΓòÉΓòÉ
  1417.  
  1418. This section covers the operations that can be performed on file descriptions. 
  1419.  
  1420.  
  1421. ΓòÉΓòÉΓòÉ 6.4.5.4.1. Copy ΓòÉΓòÉΓòÉ
  1422.  
  1423. This selection takes the first description from a group of selected items and 
  1424. copies it to the rest of the files in the group. The copied description will 
  1425. have '(xx of xx)' appended to the end of it. This is convenient to use with a 
  1426. group of files that are all part of one program or file collection. 
  1427.  
  1428.  
  1429. ΓòÉΓòÉΓòÉ 6.4.5.4.2. Edit ΓòÉΓòÉΓòÉ
  1430.  
  1431. Many of you asked for this one. Edit Description allows you to edit the 
  1432. description of a selected item by first selecting it, then choosing this option 
  1433. from the context menu. It works the same way as ALT+clicking mouse button 1 on 
  1434. an item's description. 
  1435.  
  1436.  
  1437. ΓòÉΓòÉΓòÉ 6.4.5.4.3. Format... ΓòÉΓòÉΓòÉ
  1438.  
  1439. This option is only usable when you have an Extended Description Marker (ED 
  1440. Marker) defined in the Settings Notebook. In a nutshell what it does is take a 
  1441. file description and break it up into smaller parts and insert the defined ED 
  1442. Marker at the beginning of the excess lines so that your BBS package will 
  1443. understand the excess lines are part of the description for a file. 
  1444.  
  1445. After selecting this option from the context menu a dialog box will be 
  1446. presented asking you for a left margin and a line length. The left margin is 
  1447. where you want the ED Marker placed on the line and the line length is how many 
  1448. characters past the ED Marker the description is allowed to go on each line. 
  1449.  
  1450.  
  1451. ΓòÉΓòÉΓòÉ 6.4.5.4.4. Get FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1452.  
  1453. This option goes through the selected items in the window and attempts to 
  1454. extract the FILE_ID.DIZ from them. Comments and files that aren't archives are 
  1455. skipped over by this function. If a FILE_ID.DIZ is present in the archives 
  1456. selected, it will be read from it and placed in the description field. You will 
  1457. need to edit this text to suit your needs. 
  1458.  
  1459.  
  1460. ΓòÉΓòÉΓòÉ 6.4.5.4.5. Set FILE_ID.DIZ ΓòÉΓòÉΓòÉ
  1461.  
  1462. Here you can insert the file description for selected archives into the 
  1463. archives as a FILE_ID.DIZ. You will need to edit the description to conform to 
  1464. the 45/10 standard. 
  1465.  
  1466.  
  1467. ΓòÉΓòÉΓòÉ 6.4.5.5. Files ΓòÉΓòÉΓòÉ
  1468.  
  1469. This sections covers the operations that can be performed on files. 
  1470.  
  1471.  
  1472. ΓòÉΓòÉΓòÉ 6.4.5.5.1. Adopt ΓòÉΓòÉΓòÉ
  1473.  
  1474. Adopt Files allows you to add any orphan files in a particular file area to the 
  1475. FILES.BBS for that area. Adopting is performed in a separate thread so that you 
  1476. may continue to work in the window for the file area while the adopt is going 
  1477. on. The window will be locked open while the Adopt is being performed. 
  1478.  
  1479.  
  1480. ΓòÉΓòÉΓòÉ 6.4.5.5.2. Announce... ΓòÉΓòÉΓòÉ
  1481.  
  1482. This option will allow you to write a customized message announcing selected 
  1483. files directly to any Squish, *.MSG or *.MSG ECHO message base. You may also 
  1484. specify a mail processor so that you can scan for the message to send it out of 
  1485. your system. 
  1486.  
  1487. The whole process gets started by selecting the files you wish to announce from 
  1488. a FILES.BBS window. Next you bring up the context menu and select 'Announce 
  1489. Files...' You will be presented with a configuration dialog you must fill out 
  1490. to tell MaxFile/PM the particulars about the message you want to send. As it 
  1491. stands right now, you have to fill out the dialog for each different window. 
  1492. The configuration for each window will be saved separately and will be used 
  1493. each subsequent time you announce files from each particular window. 
  1494.  
  1495. There are a few things MaxFile/PM needs to know to be able to send the message 
  1496. correctly and they are as follows: 
  1497.  
  1498.  
  1499.  Message Base Path      The full path and base filename of the message
  1500.                         area put the message in. For *.MSG areas this will
  1501.                         be the full path to the directory that contains
  1502.                         the *.MSG files. For Squish areas this will be the
  1503.                         path and base filename of the Squish files related
  1504.                         to the message area. This is a required entry.
  1505.  
  1506.  Mail Processor         This is an optional entry to allow you to scan for
  1507.                         the message that was just written by a mail
  1508.                         tosser/scanner. Please see the documentation for
  1509.                         your tosser/scanner for more information.
  1510.  
  1511.  Message Type           This is the message base type, *.MSG and Squish
  1512.                         are fairly self-explanatory. *.MSG Echo, refers to
  1513.                         a Fidonet style *.MSG echo mail area that stores
  1514.                         the high-water mark in 1.MSG.
  1515.  
  1516.  Message Flags          These are the attribute flags for the message you
  1517.                         will be creating. They are mutually exclusive. I
  1518.                         will be adding Direct to the available flags when
  1519.                         I get the time to research the flags more.
  1520.  
  1521.  To:                    This is the name of the recipient of the message.
  1522.                         If you leave it blank, MaxFile/PM will
  1523.                         automatically default to 'All.'
  1524.  
  1525.  To Addr:               This is the address of the recipient of the
  1526.                         message. If left blank, the From Address will be
  1527.                         used. (Please see the From Address discussion for
  1528.                         more information on entering Fidonet addresses.)
  1529.  
  1530.  From:                  This is a required entry. This is the name of the
  1531.                         sender of the message.
  1532.  
  1533.  From Addr:             This is a required entry. This is the address of
  1534.                         the sender of the message. Most likely this will
  1535.                         be your fidonet address if you have one. If not it
  1536.                         doesn't matter what you enter here, as it won't
  1537.                         get used by your message bases.
  1538.  
  1539.                         The format for entering Fidonet addresses into
  1540.                         MaxFile/PM is: zone:net/node.point All four
  1541.                         elements are required. To use my address as an
  1542.                         example, the field would have 1:201/60.0 entered
  1543.                         into it.
  1544.  
  1545.  Header                 This is an optional entry that you can use to
  1546.                         place a customer banner at the top of the message
  1547.                         just before the files that are being announced in
  1548.                         the message. It is pretty much free-form, but you
  1549.                         will be much better off if you leave the
  1550.                         formatting up to MaxFile/PM. You may enter up to
  1551.                         1024 characters in this field.
  1552.  
  1553.  Footer                 This entry is basically the same as the Header
  1554.                         field, except it comes after the announced files.
  1555.                         You may enter up to 1024 characters in this field.
  1556.  
  1557. The 'Subject' line of the message is 'File Announcement' it is currently hard 
  1558. coded. If I get enough requests, I will add it as an option but as you can see, 
  1559. the message dialog is quite full as it is. The Tear line will always read '--- 
  1560. MaxFile/PM x.xx'. 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 6.4.5.5.3. Touch ΓòÉΓòÉΓòÉ
  1564.  
  1565. "Touching" is the process of updating the Time and Date stamps of files to the 
  1566. current time and date. This option allows you to do that for the selected files 
  1567. in the current window. 
  1568.  
  1569.  
  1570. ΓòÉΓòÉΓòÉ 6.4.5.5.4. View ΓòÉΓòÉΓòÉ
  1571.  
  1572. The View option works in conjunction with the external program options. For 
  1573. archives it will fire up the proper archiver to create a list of files 
  1574. contained in the archive and display a dialog containing that list. For 
  1575. pictures and text files the appropriate viewer will be started. View is also 
  1576. the action that is associated with double-clicking mouse button 1 on an entry 
  1577. in the window. 
  1578.  
  1579.  
  1580. ΓòÉΓòÉΓòÉ 6.4.5.5.5. Virus Scanner ΓòÉΓòÉΓòÉ
  1581.  
  1582. This option runs the virus scanner you have set up on each file selected in the 
  1583. current FILES.BBS window. The window that the virus scanner is run in is not 
  1584. closed when the scan is complete so that you may view the results. 
  1585.  
  1586. Nothing is extracted from the archives. The files are passed to the 
  1587. 'Other->Virus Scanner' entry from the Settings Notebook one at a time until all 
  1588. the selected files have been scanned. At this writing it is up to you to 
  1589. perform any additional processing. 
  1590.  
  1591.  
  1592. ΓòÉΓòÉΓòÉ 6.4.5.6. Archives ΓòÉΓòÉΓòÉ
  1593.  
  1594. This section covers the operations that can be performed in archives. 
  1595.  
  1596.  
  1597. ΓòÉΓòÉΓòÉ 6.4.5.6.1. Test Archive ΓòÉΓòÉΓòÉ
  1598.  
  1599. This option only works with archives. It simply invokes the appropriate 
  1600. archiver for each selected item in the window. The output from the archiver 
  1601. will be displayed in a dialog box after the testing is completed for each 
  1602. archive. 
  1603.  
  1604.  
  1605. ΓòÉΓòÉΓòÉ 6.4.5.6.2. Extract To... ΓòÉΓòÉΓòÉ
  1606.  
  1607. Here you can extract a selected archive to a directory that you specify. Note 
  1608. that the directory you specify must exist. 
  1609.  
  1610. You will be asked for a new directory to extract to for each file that is 
  1611. selected. After you have used this option at least once, the directory will be 
  1612. remembered the next time the dialog box comes up asking you for a directory. 
  1613. You can just press ENTER to accept it. Cancel ONLY cancels the operation for 
  1614. the CURRENT file. 
  1615.  
  1616.  
  1617. ΓòÉΓòÉΓòÉ 6.4.5.6.3. ReArchive ΓòÉΓòÉΓòÉ
  1618.  
  1619. Eight choices here: 
  1620.  
  1621.    to ZIP 
  1622.    to ARJ 
  1623.    to LZH 
  1624.    to ARC 
  1625.    to HA 
  1626.    to RAR 
  1627.    to UC2 
  1628.    to ZOO 
  1629.  
  1630. Each of these options takes an existing archive or group of archives and 
  1631. converts them to the appropriate archive type. 
  1632.  
  1633. If the ADD entry for an archive is not defined its entry on this sub-menu will 
  1634. be disabled. 
  1635.  
  1636.  
  1637. ΓòÉΓòÉΓòÉ 6.4.5.7. Insert ΓòÉΓòÉΓòÉ
  1638.  
  1639. This section covers the options for inserting comments and files into a 
  1640. FILES.BBS Window. 
  1641.  
  1642.  
  1643. ΓòÉΓòÉΓòÉ 6.4.5.7.1. Comment ΓòÉΓòÉΓòÉ
  1644.  
  1645. To Insert a comment into the current FILES.BBS window, first select the item in 
  1646. the window that you want the comment to go in FRONT of. Then bring up the 
  1647. context menu and select Insert->Comment. A blank comment will then be inserted 
  1648. in the FILES.BBS window. 
  1649.  
  1650.  
  1651. ΓòÉΓòÉΓòÉ 6.4.5.7.2. File... ΓòÉΓòÉΓòÉ
  1652.  
  1653. To allow you to adopt a single file from either the current directory or 
  1654. another drive/directory, you can use Insert/File. It works much the same way as 
  1655. Insert/Comment, first select the item in the window that you want the file to 
  1656. go in FRONT of, then select Insert->File from the context menu. A file dialog 
  1657. will be displayed so that you can find the file you want to insert. Once you 
  1658. have found the file, select the Insert button in the dialog box. The file will 
  1659. then be inserted into the current window. Selecting the Cancel button inside 
  1660. the file dialog box aborts the insert operation. 
  1661.  
  1662.  
  1663. ΓòÉΓòÉΓòÉ 6.4.5.8. Remove Items ΓòÉΓòÉΓòÉ
  1664.  
  1665. This item removes or deletes items from the FILES.BBS window. When you select 
  1666. it from the context menu, a dialog box will appear allowing you two options. 
  1667. 'Entries' just removes the entry from the FILES.BBS window, 'Entries and Files' 
  1668. causes the entries to be removed and the associated with the entries to be 
  1669. deleted. Click Ok to remove the items, or Cancel to abort the operation. 
  1670.  
  1671.  
  1672. ΓòÉΓòÉΓòÉ 6.4.5.9. Select All ΓòÉΓòÉΓòÉ
  1673.  
  1674. Selects all items in the current FILES.BBS Window. 
  1675.  
  1676.  
  1677. ΓòÉΓòÉΓòÉ 6.4.5.10. Deselect All ΓòÉΓòÉΓòÉ
  1678.  
  1679. Deselects all items in the current FILES.BBS Window. 
  1680.  
  1681.  
  1682. ΓòÉΓòÉΓòÉ 6.4.5.11. Display Date ΓòÉΓòÉΓòÉ
  1683.  
  1684. Toggles the display of the File Date column in the current FILES.BBS Window. 
  1685. This setting is temporary, FILES.BBS Windows will always open according to the 
  1686. settings defined in the Settings Notebook. 
  1687.  
  1688.  
  1689. ΓòÉΓòÉΓòÉ 6.4.5.12. Display Size ΓòÉΓòÉΓòÉ
  1690.  
  1691. Toggles the display of the File Size column in the current FILES.BBS Window. 
  1692. This setting is temporary, FILES.BBS Windows will always open according to the 
  1693. settings defined in the Settings Notebook. 
  1694.  
  1695.  
  1696. ΓòÉΓòÉΓòÉ 6.4.5.13. Area Statistics ΓòÉΓòÉΓòÉ
  1697.  
  1698. This option displays an information message box containing how many files are 
  1699. in the current area, how much space they take up and how much free space 
  1700. remains on the volume. 
  1701.  
  1702.  
  1703. ΓòÉΓòÉΓòÉ 7. Example REXX Command Scripts ΓòÉΓòÉΓòÉ
  1704.  
  1705. This section contains some example REXX scripts that you can use to get an idea 
  1706. of how to use REXX with MaxFile/PM. 
  1707.  
  1708. Keep in my that these were written with the system they were tested on in mind, 
  1709. so you may have to change paths or areas to suit your configuration. 
  1710.  
  1711.  
  1712. ΓòÉΓòÉΓòÉ 7.1. ANNOUNCE.CMD ΓòÉΓòÉΓòÉ
  1713.  
  1714. /* ANNOUNCE.CMD - REXX program to generate a File Announcement
  1715. with MPBeta for new files. Version 1.1
  1716.  
  1717. ver 1.1:  Found an error and in the process of cleaning it up, sped up the
  1718. program's execution! Moved the file_desc stuff inside the loop.
  1719.  
  1720.   - 10 July, 1994 by Elliott Goodman, 1:102/1319 -
  1721. */
  1722.  
  1723. /* check whether RxFuncs are loaded. If not, load them. */
  1724.  
  1725. if RxFuncQuery('SysLoadFuncs') then
  1726. do
  1727.         call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1728.         call SysLoadFuncs
  1729. end
  1730.  
  1731. /* Just to let the user know what's going on.... */
  1732.  
  1733. say 'Searching thru file areas for new files to announce.'
  1734. say 'Please wait....';
  1735. say ' ';
  1736.  
  1737.  
  1738. /* create a tracking file */
  1739. report = 'd:\lora\file\mpbeta\announce.txt'
  1740.  
  1741. /* delete old tracking file, if present */
  1742. call SysFileDelete(report)
  1743.  
  1744. m_txt = 'Report of ANNOUNCE.CMD activity'
  1745. call lineout report, m_txt
  1746. m_txt = ''
  1747. call lineout report, m_txt
  1748.  
  1749. /* get today's date, create an index from it */
  1750. day_index = SPECIFIED_DATE_IN_DAYS( DATE('U') )
  1751.  
  1752. /* set some defaults */
  1753.  
  1754. nfile.0 = 0
  1755. files.0 = 0             /* will increment */
  1756. file_index = 0
  1757.  
  1758. /* set up the array elements of FILES which will be used by
  1759. MPM_AnnounceFiles() at the end of all this processing.
  1760. See TANN.CMD included with MPBeta for details.   */
  1761.  
  1762. files.msgpath = 'D:\LORA\MSG\USERS'
  1763. files.msgtype = 'SQUISH'
  1764. files.msgflag = 'CRASH'
  1765. files.to = 'ALL'
  1766. files.toaddr = '1:102/1316.0'
  1767. files.header = 'New files online at Miles Enterprises BBS'
  1768. files.from = 'Elliott Goodman'
  1769. files.fromaddr = '1:102/1319.0'
  1770. files.footer = '- Elliott'
  1771.  
  1772. /* your origin info */
  1773. files.origin = 'Miles Enterprises * 805-264-0200 *'
  1774.  
  1775. /* my first 44 areas are on the CD so I start with 44 (and increment it
  1776. immediately.) This saves time since the CD is slow. */
  1777. mpmarea = 44
  1778.  
  1779. do forever              /* we'll bail out after the last area */
  1780.    mpmarea = MPM_QueryArea(mpmarea) /* look at next area */
  1781.    if mpmarea = 'ERROR' then do
  1782.       leave             /* this will bail us out */
  1783.       end /* if error (past last file area) */
  1784.  
  1785. /* get drive/subdir of next file area */
  1786.    area_path = MPM_QueryAreaInfo(mpmarea, '1')
  1787.  
  1788. /* notify user of our progress */
  1789.    say area_path ;
  1790.  
  1791. /* use SysFileTree here to check for new files */
  1792.    call SysFileTree area_path, stuff, 'F'
  1793.  
  1794. /* reset before each file area */
  1795.    found_new = 0
  1796.    nfile.0 = 0
  1797.  
  1798. /* assume at least one file in the file area */
  1799.    do i = 1 to stuff.0      /* cycle thru files in one area */
  1800.  
  1801. /* get info on each file in the area */
  1802.    parse var stuff.i,
  1803.          file_date,
  1804.          file_time,
  1805.          file_size,
  1806.          file_attr,
  1807.          file_name
  1808.  
  1809. /* remove trailing space */
  1810.    file_name = strip( file_name )
  1811.  
  1812. /* remove drive/subdir info from filename */
  1813.    parse var file_name (area_path) file_name
  1814.  
  1815. /* convert to caps, just in case */
  1816.    file_name = translate( file_name )
  1817.  
  1818. /* get extention. We don't want to announce FILES.BBS or FILES.BAK! */
  1819.    parse var file_name junk '.' extn
  1820.  
  1821.    if extn = 'BAK' then do
  1822.       iterate
  1823.       end
  1824.  
  1825.    if extn = 'BBS' then do
  1826.       iterate
  1827.       end
  1828.  
  1829. /* test if next file is dated today, hence NEW */
  1830.    file_test = SPECIFIED_DATE_IN_DAYS( file_date )
  1831.    if file_test = day_index then do
  1832.  
  1833. /* here's where the ver. 1.1 code makes it's major changes. Store the
  1834. files that are new and do them all at once for each area */
  1835.       found_new = 1
  1836.       nfile.0 = nfile.0 + 1
  1837.       t_index = nfile.0
  1838.       nfile.t_index = file_name
  1839.       end /* if file_test = day_index */
  1840.  
  1841.    end /* do i = 1 to stuff.0 */
  1842.  
  1843. /* now, if we found one or more new files in this area... */
  1844.    if found_new = 1 then do
  1845.  
  1846. /* we have to open the files.bbs file so we can get the
  1847. description */
  1848.       retval = MPM_OpenArea(mpmarea)
  1849.  
  1850. /* this just gives the system time to open the file */
  1851.       Call SysSleep 3
  1852.  
  1853. /* ....cycle thru the new files for this area */
  1854.       do k = 1 to nfile.0
  1855.  
  1856. /* continue storing elements in FILES */
  1857.          file_index = file_index + 1
  1858.          files.0 = files.0 + 1
  1859.          files.file_index.path = area_path
  1860.          files.file_index.file = nfile.k
  1861.  
  1862.          file_desc = MPM_QueryFileInfo(mpmarea, nfile.k, '3')
  1863.          files.file_index.desc = file_desc
  1864.          end /* do k to nfile.0 */
  1865.  
  1866. /* close the files.bbs file to avoid problems */
  1867.       retval = MPM_CloseArea(mpmarea)
  1868.       end /* if  found = 1 */
  1869.  
  1870.    end /* do forever */
  1871.  
  1872. /* if no new files: exit */
  1873. if files.0 = 0 then do
  1874.    m_txt = 'No new files found'
  1875.    call lineout report, m_txt
  1876.    exit
  1877.    end
  1878.  
  1879. /* there are new files. Save the info so we can play
  1880. with the descriptions when we wake up <g> */
  1881.  
  1882. m_txt = 'List of New Files'
  1883. call lineout report, m_txt
  1884. m_txt = ' '
  1885. call lineout report, m_txt
  1886.  
  1887. do j = 1 to files.0
  1888.    m_txt = 'File Path = ' files.j.path
  1889.    call lineout report, m_txt
  1890.    m_txt = 'File Name = ' files.j.file
  1891.    call lineout report, m_txt
  1892.    m_txt = 'File Description = ' files.j.desc
  1893.    call lineout report, m_txt
  1894.    m_txt = ' '
  1895.    call lineout report, m_txt
  1896.    end
  1897.  
  1898. /* actually make the announcement */
  1899. retval = MPM_AnnounceFiles('files')
  1900.  
  1901. m_txt = files.0 'new files announced!'
  1902. call lineout report, m_txt
  1903.  
  1904. /* and we're done */
  1905. exit
  1906.  
  1907. /*------------------------------------------------*/
  1908. /* Convert calendar date to consistent date index                  */
  1909. /*------------------------------------------------*/
  1910. SPECIFIED_DATE_IN_DAYS:
  1911.    Procedure
  1912.  
  1913. parse arg,
  1914.    mm '/',
  1915.    dd '/',
  1916.    yy
  1917.  
  1918. days_by_month = '31 28 31 30 31 30 31 31 30 31 30 31'
  1919. current_number_of_days = (yy * 365) + dd
  1920. do m = 1 while m < mm
  1921.    current_number_of_days = current_number_of_days +,
  1922.       WORD( days_by_month, m )
  1923. end
  1924. return current_number_of_days
  1925.  
  1926.  
  1927. ΓòÉΓòÉΓòÉ 7.2. FILELIST.CMD ΓòÉΓòÉΓòÉ
  1928.  
  1929. /* MPM_QueryFileList() example */
  1930.  
  1931. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  1932.  
  1933. mpmarea = 'TEST'
  1934.  
  1935. /* Open up the file area */
  1936. retval = MPM_OpenArea(mpmarea)
  1937.  
  1938. /* Give the open call a chance to work */
  1939. Call SysSleep 3
  1940.  
  1941. If MPM_IsAreaOpen(mpmarea) = '0' then Exit
  1942.  
  1943. rc = MPM_QueryFileList(mpmarea, 'files')
  1944.  
  1945. rc = MPM_CloseArea(mpmarea)
  1946.  
  1947. Say 'There are 'files.0' files in the list.'
  1948. Say
  1949. Say files.1.file' is the first file.'
  1950. Say files.1.path' is the path of the first file.'
  1951. Say files.1.desc' is the description of the first file.'
  1952.  
  1953. Say
  1954. Say 'Click SEND to quit.'
  1955. Pull .
  1956.  
  1957.  
  1958. ΓòÉΓòÉΓòÉ 7.3. LISTAREA.CMD ΓòÉΓòÉΓòÉ
  1959.  
  1960. /* LISTAREA.CMD Lists all available file areas */
  1961.  
  1962. rc = MPM_QueryAreaList('arealist')
  1963.  
  1964. do i = 1 to arealist.0
  1965.     Say arealist.i.area' - 'arealist.i.desc
  1966. end
  1967.  
  1968. Say
  1969. Say 'Click SEND to quit.'
  1970. Pull .
  1971.  
  1972.  
  1973. ΓòÉΓòÉΓòÉ 7.4. TANN.CMD ΓòÉΓòÉΓòÉ
  1974.  
  1975. /* Test MPM_AnnounceFiles(..)                                              */
  1976. /*                                                                         */
  1977. /* This example shows how to define ALL the fields for a file announcement */
  1978. /* Please note that by using MPM_QueryFileList(..) you can generate the    */
  1979. /* the stem needed to create a file announcement. All you have to do after */
  1980. /* calling that function is filter out the files you don't want, then fill */
  1981. /* in the message information before calling MPM_AnnounceFiles(..).        */
  1982.  
  1983. files.0 = 1
  1984. files.1.path = 'D:\bcos2\maxfile\'
  1985. files.1.file = 'mpm1_20.zip'
  1986. files.1.desc = 'MaxFile/PM 1.20, A FILES.BBS Manager for Presentation Manager'
  1987.  
  1988. /* Path to the message area, REQUIRED                                      */
  1989. files.msgpath  = 'D:\Max\Msg\Public'
  1990.  
  1991. /* Mail tosser/packer information, optional                                */
  1992. files.msgproc  = 'd:\squish\sq386p -cd:\squish\squish.cfg squash link -fWORKCHAT'
  1993.  
  1994. /* Message area type: SQUISH, MSG or MSGECHO. REQUIRED                     */
  1995. files.msgtype  = 'SQUISH'
  1996.  
  1997. /* Message flag; HOLD, NORMAL or CRASH. REQUIRED                           */
  1998. files.msgflag  = 'NORMAL'
  1999.  
  2000. /* Who to address the message to, defaults to 'All' if not defined         */
  2001. files.to       = 'Elliott Goodman'
  2002.  
  2003. /* The fidonet address for who the message is addressed to                 */
  2004. /* All four elements are REQUIRED, defaults to *.fromaddr if not defined   */
  2005. files.toaddr   = '1:102/1319.0'
  2006.  
  2007. /* Who the message is from, REQUIRED                                       */
  2008. files.from     = 'Craig Morrison'
  2009.  
  2010. /* Fidonet address of who the message is from, REQUIRED                    */
  2011. files.fromaddr = '1:201/60.0'
  2012.  
  2013. /* Optional header text for the message                                    */
  2014. files.header   = 'Check this out:'
  2015.  
  2016. /* Optional footer text for the message                                    */
  2017. files.footer   = "Slick ain't it?"
  2018.  
  2019. /* Optional subject line, defaults to 'File Announcement' if not defined   */
  2020. files.subject  = 'REXX MPM_AnnounceFiles(..) Test'
  2021.  
  2022. /* Optional origin information, if not defined, no origin line is created  */
  2023. files.origin   = 'Workplace Connection * (317) 742-2680'
  2024.  
  2025. /* The call itself, returns 'ERROR' if something goes wrong                */
  2026. retval = MPM_AnnounceFiles('files')
  2027.  
  2028. rc = MPM_MsgBox(retval, 'MPM_AnnounceFiles Result')
  2029.  
  2030.  
  2031. ΓòÉΓòÉΓòÉ 7.5. TESTREXX.CMD ΓòÉΓòÉΓòÉ
  2032.  
  2033. /* TEXTREXX.CMD - Sample REXX command file for testing MaxFile/PM's REXX     */
  2034. /* macro extensions.                                                         */
  2035.  
  2036. Say 'MaxFile/PM demo in progress.'
  2037.  
  2038. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2039.  
  2040.  
  2041. /* MPM_GetVersion() returns MaxFile/PM's revision number.                    */
  2042.  
  2043. mpmver = MPM_GetVersion()
  2044.  
  2045.  
  2046. /* MPM_MsgBox(message, title) displays a simple message box using 'message'  */
  2047. /* as the text displayed in the message box and 'title' as the title for the */
  2048. /* message box.                                                              */
  2049.  
  2050. rc = MPM_MsgBox('Version 'mpmver, 'MaxFile/PM - Query Version Number')
  2051.  
  2052.  
  2053. /* MPM_QueryArea([area tag]) works in two different ways.                    */
  2054. /* Called with no arguments it returns the area tag of the first file area   */
  2055. /* listed in the Main File Area window listing.                              */
  2056. /* When called with a single argument containing the area tag of an existing */
  2057. /* file area, it will return the area tag of the NEXT file area in the list. */
  2058. /* In either case, if an area can't be found it returns 'ERROR'.             */
  2059.  
  2060. mpmarea = MPM_QueryArea()
  2061. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query File Area')
  2062.  
  2063.  
  2064. /* MPM_DeselectArea(area tag) detags a file area in the Main File Area       */
  2065. /* window.                                                                   */
  2066.  
  2067. retval = MPM_DeselectArea(mpmarea)
  2068. rc = MPM_MsgBox(retval, 'MaxFile/PM - Deselect File Area Results')
  2069.  
  2070.  
  2071. /* See the MPM_QueryArea() comments above.                                   */
  2072.  
  2073. mpmarea = MPM_QueryArea(mpmarea)
  2074. rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query Next File Area')
  2075.  
  2076.  
  2077. /* MPM_SelectArea(area tag) tags a file area in the Main File Area Window.   */
  2078.  
  2079. retval = MPM_SelectArea(mpmarea)
  2080. rc = MPM_MsgBox(retval, 'MaxFile/PM - Select File Area Results')
  2081.  
  2082.  
  2083. /* MPM_OpenArea(area tag) opens a FILES.BBS Window.                          */
  2084.  
  2085. retval = MPM_OpenArea(mpmarea)
  2086. rc = MPM_MsgBox(retval, 'MaxFile/PM - Open File Area Results')
  2087.  
  2088.  
  2089. /* MPM_IsAreaOpen(area tag) returns "1" if the FILES.BBS window associated   */
  2090. /* with 'area tag' is open, "0" otherwise.                                   */
  2091.  
  2092. retval = MPM_IsAreaOpen(mpmarea)
  2093. rc = MPM_MsgBox(retval, 'MaxFile/PM - Is File Area Open Results')
  2094.  
  2095.  
  2096. /* MPM_SetFDUFlag(area tag) sets the File Database Utility flag for the      */
  2097. /* FILES.BBS that is associated with 'area tag.' Use this to tell MaxFile/PM */
  2098. /* that the File Database Utility needs to be run to update your file        */
  2099. /* database after making changes that MaxFile/PM doesn't know about.         */
  2100.  
  2101. /* retval = MPM_SetFDUFlag(mpmarea) */
  2102. /* rc = MPM_MsgBox(retval, 'MaxFile/PM - Set FD Utility Flag Results') */
  2103.  
  2104.  
  2105. /* MPM_CloseArea(area tag) closes the FILES.BBS window associated with 'area */
  2106. /* tag.'                                                                     */
  2107.  
  2108. retval = MPM_CloseArea(mpmarea)
  2109. rc = MPM_MsgBox(retval, 'MaxFile/PM - Close File Area Results')
  2110.  
  2111.  
  2112. /* MPM_QueryAreaInfo(area tag, '0' | '1' | '2') queries and returns the      */
  2113. /* specified information for 'area tag.' The level info is as follows:       */
  2114. /*                                                                           */
  2115. /*                      0 - Area description                                 */
  2116. /*                      1 - Download Path                                    */
  2117. /*                      2 - FILES.BBS Location                               */
  2118.  
  2119. areainfo = MPM_QueryAreaInfo(mpmarea, '0')
  2120. rc = MPM_MsgBox('Description = 'areainfo,,
  2121.                 'MaxFile/PM - Query Area Info Results')
  2122.  
  2123. areainfo = MPM_QueryAreaInfo(mpmarea, '1')
  2124. rc = MPM_MsgBox('Download Path = 'areainfo,,
  2125.                 'MaxFile/PM - Query Area Info Results')
  2126.  
  2127. areainfo = MPM_QueryAreaInfo(mpmarea, '2')
  2128. rc = MPM_MsgBox('FILES.BBS Location = 'areainfo,,
  2129.                 'MaxFile/PM - Query Area Info Results')
  2130.  
  2131.  
  2132. /*****************************************************************************/
  2133. /*                                                                           */
  2134. /* What follows is a simple example of querying information about an open    */
  2135. /* file area.                                                                */
  2136. /*                                                                           */
  2137. /*****************************************************************************/
  2138.  
  2139. mpmarea = 'TEST'
  2140.  
  2141. /* Open up the file area */
  2142. retval = MPM_OpenArea(mpmarea)
  2143.  
  2144. /* Give the open call a chance to work */
  2145. Call SysSleep 3
  2146.  
  2147. /* Loop until the file area is open */
  2148. areaopen = '0'
  2149. do until areaopen \= '0'
  2150.     Call SysSleep 1
  2151.     areaopen = MPM_IsAreaOpen(mpmarea)
  2152. end
  2153.  
  2154. /* MPM_QueryFile(area tag[, filename]) returns the base filename of a        */
  2155. /* file from a FILES.BBS window. When called with just the area tag of an    */
  2156. /* open window it returns the first file in the window. When called with     */
  2157. /* both the area tag and an existing filename it will return the NEXT        */
  2158. /* filename in the window. If something goes wrong it returns ERROR.         */
  2159.  
  2160. /* Query the filename of the first file */
  2161. filename = MPM_QueryFile(mpmarea)
  2162. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2163.  
  2164. if filename = 'ERROR' then do
  2165.     exit
  2166. end
  2167.  
  2168. /* Query the next filename */
  2169. filename = MPM_QueryFile(mpmarea, filename)
  2170. rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
  2171.  
  2172. /* MPM_QueryFileInfo(area tag, filename, '0' | '1' | '2' | '3') queries      */
  2173. /* and returns the specified information about 'filename.' The level         */
  2174. /* information is as follows:                                                */
  2175. /*                                                                           */
  2176. /*                     0 - File Path                                         */
  2177. /*                     1 - File Date in DD MMM YYYY format                   */
  2178. /*                     3 - File Size                                         */
  2179. /*                     4 - File Description                                  */
  2180.  
  2181. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '0')
  2182. rc = MPM_MsgBox('Filepath = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2183.  
  2184.  
  2185. /* MPM_SelectFile/MPM_DeselectFile(area tag, filename) select and            */
  2186. /* deselect 'filename', respectively, in the area identified by 'area        */
  2187. /* tag'.                                                                     */
  2188.  
  2189. retval = MPM_SelectFile(mpmarea, filename)
  2190. rc = MPM_MsgBox(filename' selected!', 'Select File')
  2191.  
  2192. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '1')
  2193. rc = MPM_MsgBox('Filedate = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2194.  
  2195. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '2')
  2196. rc = MPM_MsgBox('Filesize = 'fileinfo, 'MaxFile/PM - Query File Info Results')
  2197.  
  2198. fileinfo = MPM_QueryFileInfo(mpmarea, filename, '3')
  2199. rc = MPM_MsgBox('File description = 'fileinfo,,
  2200.                 'MaxFile/PM - Query File Info Results')
  2201.  
  2202. retval = MPM_DeselectFile(mpmarea, filename)
  2203. rc = MPM_MsgBox(filename' deselected!', 'Deselect File')
  2204.  
  2205.  
  2206. /* MPM_SetFileInfo(area tag, filename, '0' | '1' | '2') set the displayed    */
  2207. /* information for a file in a FILES.BBS window. The level information is    */
  2208. /* as follows:                                                               */
  2209. /*                                                                           */
  2210. /*                         0 - Set File Date                                 */
  2211. /*                         1 - Set File Size                                 */
  2212. /*                         2 - Set Description                               */
  2213. /*                                                                           */
  2214. /* Please note that options 0 and 1 are only for display purposes, if you    */
  2215. /* want to set the file's date ("touch" it) you need to perform this         */
  2216. /* yourself, MaxFile/PM does not do this for you, the same goes for the      */
  2217. /* file's size. This REXX extension is merely to update the display in       */
  2218. /* the FILES.BBS window. Option 2, for setting descriptions, does            */
  2219. /* actually alter the description that will get saved for the file.          */
  2220.  
  2221. /* retval = MPM_SetFileInfo(mpmarea, filename, '2', 'Set with TESTREXX.CMD') */
  2222. /* rc = MPM_MsgBox(retval, 'Set File Info Results') */
  2223.  
  2224.  
  2225. /* MPM_RemoveFile(area tag, filename) removes the file 'filename' from       */
  2226. /* the FILES.BBS window associated with 'area tag'.                          */
  2227.  
  2228. /* retval = MPM_RemoveFile(mpmarea, filename) */
  2229. /* rc = MPM_MsgBox(retval, 'Remove File results') */
  2230.  
  2231.  
  2232. /* MPM_AddFile(area tag, filename, description) adds 'filename' with         */
  2233. /* description to the FILES.BBS window associated with 'area tag'.           */
  2234. /* 'filename' MUST be a FULL file specification in the form of               */
  2235. /* D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes      */
  2236. /* wrong.                                                                    */
  2237.  
  2238. /* retval = MPM_AddFile(mpmarea, 'd:\test\ivtech.zip', 'New File from REXX') */
  2239. /* rc = MPM_MsgBox(retval, 'Add File Results') */
  2240.  
  2241.  
  2242. /* Close the file area */
  2243. retval = MPM_CloseArea(mpmarea)
  2244.  
  2245. /* MPM_Crc32(filename) returns a CRC32 for the specified file or ERROR if    */
  2246. /* something goes wrong.                                                     */
  2247. crc = MPM_Crc32('MPM1_20.ZIP')
  2248. rc = MPM_MsgBox('MPM1_20.ZIP CRC32 = 'crc, 'MPM_Crc32 Results')
  2249.  
  2250.  
  2251. rc = MPM_MsgBox('REXX Demo Complete!', 'MaxFile/PM - REXX Demo')
  2252.  
  2253.  
  2254. ΓòÉΓòÉΓòÉ 7.6. NEWFILES.CMD ΓòÉΓòÉΓòÉ
  2255.  
  2256. /* Sample MaxFile/PM New Files Search script */
  2257. '@echo off'
  2258. fAreas = 'FWAPPS FWBBS FWCOMM FWPROG FWREXX FWSYSUTL FWUTILS IBMINFO WINDATA'
  2259. fAreas = fAreas||' WINGAME WINGRAF WINPRNT WINPROG WINSOUN WINSYST WINUTIL'
  2260. fAreas = fAreas||' WINWORD'
  2261.  
  2262. /* Load just the REXXUTIL functions we need */
  2263. Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
  2264.  
  2265. tDate = DATE('O')
  2266. Parse Var tDate tYear '/' tMonth '/' tDay
  2267.  
  2268. Say 'Beginning new files scan for 'tYear||tMonth||tDay'...'
  2269.  
  2270. newfiles = 0
  2271.  
  2272. Do index = 1 to Words(fAreas)
  2273.     fbbs = MPM_QueryAreaInfo(Word(fAreas, index), '2')
  2274.     If Stream(fbbs, 'c', 'query exists') \= '' Then Do
  2275.         rc = MPM_OpenArea(Word(fAreas, index))
  2276.         Call SysSleep 5
  2277.         If MPM_IsAreaOpen(Word(fAreas, index)) = '1' Then Do
  2278.             Drop fList.
  2279.             Say
  2280.             Say 'Reporting files for area - 'Word(fAreas, index)'.'
  2281.             rc = MPM_QueryFileList(Word(fAreas, index), 'fList')
  2282.             rc = MPM_CloseArea(Word(fAreas, index))
  2283.             If fList.0 \= 0 Then Do
  2284.                 Do fIndex = 1 to fList.0
  2285.                     fDate = Stream(fList.fIndex.path||fList.fIndex.file,,
  2286.                                    'c', 'query datetime')
  2287.                     Parse Var fDate fMonth '-' fDay '-' fYear .
  2288.                     If tYear||tMonth||tDay = fYear||fMonth||fDay Then Do
  2289.                         Say
  2290.                         Say '  'fList.fIndex.file' is a new file.'
  2291.                         newfiles = newfiles + 1
  2292.                     End
  2293.                 End
  2294.             End
  2295.         End
  2296.     End
  2297. End
  2298.  
  2299. Say
  2300. Say 'New file scan complete, 'newfiles' found.'
  2301. Say 'Click SEND to quit...'
  2302. Pull .
  2303.  
  2304.  
  2305. ΓòÉΓòÉΓòÉ 8. Known Problems ΓòÉΓòÉΓòÉ
  2306.  
  2307. In a system as configurable as OS/2 there are always going to be problems, this 
  2308. section is devoted to those problems and in some cases work-arounds. If you are 
  2309. having trouble with MaxFile/PM this is the first place to look to see if you 
  2310. can find some help. 
  2311.  
  2312.  
  2313. ΓòÉΓòÉΓòÉ 8.1. Lora's FILEIDX.EXE ΓòÉΓòÉΓòÉ
  2314.  
  2315. Lora-BBS File index maintenance utility 
  2316.  
  2317. Make sure that you specify the files IDX file that you want rebuilt in the Main 
  2318. Settings dialog box. For example: 
  2319.  
  2320.                         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2321. File Database Utility   Γöé E:\LORA\FILEIDX E:\LORA\FILES.IDX  Γöé
  2322.                         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2323.  
  2324. MaxFile/PM will take care of the rest. (The "AREA .. .. .." part.) 
  2325.  
  2326.  
  2327. ΓòÉΓòÉΓòÉ 8.2. CONTAINER DISPLAY CORRUPTION ΓòÉΓòÉΓòÉ
  2328.  
  2329. Moving vertical separator bar messes up highlighting 
  2330.  
  2331. The Service Pack for OS/2 2.1 screwed up the way the highlighting is handled 
  2332. when the vertical separator bar is moved. I didn't it break folks, IBM did. 
  2333.  
  2334.  
  2335. ΓòÉΓòÉΓòÉ 8.3. VIEW AND TEST DIALOG LOCKUPS ΓòÉΓòÉΓòÉ
  2336.  
  2337. Archive Statistics Dialog comes up as a grey window 
  2338.  
  2339. When run under 2.11 the View and Test functions lock up after opening more than 
  2340. one window. I have NOT been able to reproduce this under 2.10, so I don't even 
  2341. know where to begin to look. I have made several modifications to the code, 
  2342. hopefully one of them fixed the problem. 
  2343.  
  2344. This HAS been fixed! 
  2345.  
  2346.  
  2347. ΓòÉΓòÉΓòÉ 8.4. MAXFMPM.INI CORRUPTION ΓòÉΓòÉΓòÉ
  2348.  
  2349. MAXFMPM.INI gets trashed if a REXX script bombs out and won't quit. 
  2350.  
  2351. Always keep a backup of your MAXFMPM.INI file someplace safe. I need specific 
  2352. examples of scripts that I can use to recreate the problem. I'm not sure what 
  2353. is causing it, but I am looking into it. 
  2354.  
  2355. The key to safety is to backup before you start a new script and try to debug 
  2356. it to get it to work.