GAP Communications New Features For Version 6.0 GAPMENU + Instead of a simple "new mail" flag, the total number of New Messages (to the Sysop) is displayed in the right corner of the status line. This number will continue to be displayed even if the Sysop logs onto the board and doesn't read any mail. The New Messages number represents messages entered on-line as well as messages entered through the UTI drivers or the QWK/REP subsystem. + Sysops may tailor GAPMENU to look and feel however they wish. This is accomplished by creating one or more user defined screens to replace the built in windows that are normally displayed. These screens are named GAPMENU.SCR and GAPMENUx.SCR (where the x is a number from 1 to 9). The basic screen (GAPMENU.SCR) must exist in order for the other screens to display. In addition, the numbered screens must be sequential (i.e., you can not have a GAPMENU1.SCR and a GAPMENU3.SCR, since only the screen numbered 1 (besides the basic screen) will display). To help the Sysop create meaningful screens, GAPMENU contains an AnsiCmd parser. The AnsiCmds that GAPMENU will recognize are as follows: BNAME - Board Name CLS - Clear window DISKx - Free space on Drive x (x = C, D, E, etc) LCALLER - Name of Last Caller LICENSE - Licensee Name LOFF - Last Caller Off Time LON - Last Caller On Time LBAUD - Last Caller Baud Rate SBLT - Total Bulletins read in period SCALLS - Total Calls in period SCLEFT - Total Comments left in period SDOOR - Total Doors opened in period SDOWN - Total Downloads in period SMINS - Total Minutes used in period SMLEFT - Total Messages left in period SQUEST - Total Questionnaires answered in period SUP - Total Uploads in period GAP Communications New Features Xcode - Change color attribute TODAY - Use Today's Statistics YESTERDAY - Use Yesterday's Statistics MONTHLY - Use Monthly Statistics NETWORK - If multi-node, use Network Wide Statistics Each of these commands are preceded by your defined AnsiCmd character: @BNAME, @X0F, @LCALLER, etc Your screens may be 80 columns wide and 22 lines in length. The window that your file will be displayed in occupies the area between the Menu Bar and the Status line. The window contains extra lines and 1 extra column (which you cannot see) to accommodate the CR/LF at the end of each line, and any spurious lines that may inadvertently be left at the end of the file. If you elect to design your own screens, keep in mind that the "Window" Menu will be unavailable (you will not be able to select it). Since GAPMENU will be displaying your screen instead of its own Windows, the commands on the "Window" Menu are irrelevant. In addition, the F9 (toggle stats display) and F10 (update stats display) keys will behave differently. F9 will cycle through each of your screens, displaying them sequentially. F10 will update the New Mail number as well as save the number of the screen that is currently displayed so that the next time GAPMENU runs, the currently displayed screen will be the default screen that is initially displayed. When using the following commands: TODAY YESTERDAY MONTHLY NETWORK you will probably have to add them at the top of the file after you save your screen (assuming you use an Xcode Editor such as PCBDraw). The reason for this is if you place these commands on a line by themselves, GAPMENU will correctly interpret the command but there will be a CR/LF after the command which GAPMENU will read and display. The result will be a blank line with nothing on it. Page 2 GAP Communications New Features If you do not use any of the above 4 commands, the statistics will default to Today's Stats for the current Node. If you would like for a particular screen to display Network Wide Statistics for Today, you would use the following commands: @TODAY@NETWORK The commands, of course, would have to appear before any stats are displayed. The best place for them is on the first line of the file. Keep in mind that GAPMENU is a Window oriented program. It does not utilize nor have need for an ANSI Driver. For this reason, your screens may not contain ANSI sequences. Use a text editor or the PCBDraw program to create your screens. Do not use an ANSI Editor such as TheDraw. GAPUSER + Change Expired Level allows you to change the Expired Subscription Level for all Users who have the Expired Level you provide. + Remove Dupes allows you to remove duplicate records from your MEMBER file. + Forum Lock Out allows you to lock the currently displayed user out of a Forum. To unlock the user, simply unregister the user from the Forum. + Forum Sysop allows you to make the currently displayed user a Sysop or co-Sysop of a Forum. + Command Keys (F2) displays the Command Key assignments. + Register User (F3) allows you to register the currently displayed user in a Forum or group of Forums. + UnRegister User (F4) allows you to unregister the currently displayed user in a Forum or group of Forums. + View Membership (F6) shows the Forum Membership for the currently displayed user. + Reset Last Read # (F7) allows you to reset the last read message number for the currently displayed user in a Forum to any number of your choosing. Page 3 GAP Communications New Features + Scroll Window (S) will scroll the window up or down so that you may view all the user statistics. GAPFILE + When using the Stray Files utility, GAPFILE will shell to a batch file (the default is UPCHECK.BAT but you can change this to any batch file name you wish). The purpose of the shell is to extract any description files (FILE_ID.DIZ or DESC.SDI) from the archive so that the description file can be used as the keywords and file description. You can use your UPCHECK.BAT file for this purpose (and the default batch file name is UPCHECK.BAT), or you can give the batch file a different name and include only the commands you want to have executed while importing stray files. The parameters that are passed to the batch file are identical to those passed by GAPBBS to UPCHECK.BAT. The 6th parameter will be a "1" so that your batch file will know that it is running in "local mode". + When you delete a file, a window will pop up asking you if you wish to subtract the Bytes and File count from the user who uploaded the file (not including the Sysop). When using Mass Move (and you specify that the file should be deleted), Mass Delete, or Update (when you specify to delete a file that can not be found) the window will pop up for each file that is deleted. However, in this window, you will have the opportunity to answer ALL or IGNORE. If you answer ALL, then the window will not appear for the rest of the files to be deleted; the upload stats for the user who uploaded a specific file will automatically be adjusted. If you answer IGNORE, the window will also not appear for the rest of the files to be deleted; the upload stats for the user who uploaded a file will not be adjusted. + When importing files into the FileBase, GAPFILE will import multi-line descriptions. The format of your import files is pretty much the same except that a description of a file may now be up to 10 lines. The format would be something similar to the following: FILENAME.ZIP 123456 07/01/92 This is line 1 of the descrip This is line 2 of the descrip This is line 3 of the descrip Page 4 GAP Communications New Features The first description entry will be saved in the keyword field as well as the first line of the Enhanced Description. The next nine lines will be saved as lines two through ten of the Enhanced Description. The only requirement to importing more than one line of description is that the second and subsequent lines be preceded with at least one space. GAPSETUP + On the Sysop Levels Screen, there is a field where you enter the name of the Sysop's country. For instance: USA, CANADA, etc. This default country is used when new users log on or when the Sysop adds a new user to the database. + The Default Forums Screens have been removed. Any Forum that is public is considered to be a default Forum and if a user has the security level needed to join, GAP will let him or her in. The number of available Forums is now specified on the Third Miscellaneous Screen. + The Forum Configuration Screens include many new fields too numerous to mention here. Please consult the manual for a description of all the new features. + On the Modem Screen, there is a new option where you can tell GAP to turn RTS off when GAP is writing a block of data to the disk. This used to be hard coded into GAP, and then was removed in version 5. Some sysops may need for RTS to be turned off during a disk write, so it is now a Sysop option. + Also on this screen is a field called, "Caller Connect BPS Rate". This field is provided for those that have modems that refuse to return the callers actual Connect Rate. Some of the newer high speed modems insist on returning the DTE rate in the CONNECT string instead of the caller's speed. Since GAP uses the caller's connect rate to determine how many files the caller can download, calculate efficiency times, etc., these calculations will be off because the modem is returning the computer to modem speed instead of the caller's speed. Page 5 GAP Communications New Features This field takes one of two responses: The word CONNECT or The BPS rate you want GAPMENU to pass along to GAPBBS Most Sysop will use the word CONNECT, which means that GAPMENU should determine the Connect speed from the string returned by the modem. Those sysops with the modems that do not return the actual connect rate would enter the BPS rate they want GAPMENU to "fool" GAPBBS into using as the caller's CONNECT speed. For instance, if you lock your port at 38400, you would probably want to enter 9600 or 4800 in this field (Depending upon how fair you want to be to your high speed callers and how generous you want to be to your 2400 baud and less callers). + On the First Miscellaneous Screen, there is an option that allows you to specify whether or not GAP should force the Bulletin Menu when there are New Bulletins (the Override Command overrides this option). If you set this to No, callers will still be told there are new bulletins, but they won't be forced to view the Bulletin Menu. It should be pointed out that the option preceding this one ("Force BLT Menu at Logon"), applies only to New Users. + The "Allow Login Overrides" has been changed to "Level to Override Login". You now assign a security level to this field instead of a Y/N response (and you must change the field because it will contain a level you may not want to be there). This change presumes that you give your Echo Mail Node Sysops a certain security level and your regular callers another level. + On the Forum Configuration Screens, you may enter negative numbers in the "Additional Level" and "Additional Time" fields. About the only reason you would ever want to do this is when you want to "trap" certain users in a Forum and then not let them out because once in, they will presumably not have the level to select the Join or Abandon commands. To use this with the JOIN command in the questionnaire, or at any other time, you would basically want your special users to have the same security level as new users or regular users. They need this level so that they can initially issue a Join Page 6 GAP Communications New Features command and if they are already "trapped" in the Forum, they need to have the Join command level in order for GAP to "auto join" them. If you want them to be able to do everything in the Forum except Join and Abandon, they would need to have a security level high enough to issue those commands. Examples: Your special users will be given the same security level as new users or regular users, which ever you prefer. You would set your security levels up such that the special users (if allowed to stay on the Main Board) would be able to issue all the commands regular users can issue. In your NEWQUEST for special users or a regular questionnaire to be filled out by special users, you issue a JOIN 10 command. Forum 10 would be set up as an "auto join" Forum and for the additional security you would enter a -1. When the user joins this Forum, his level will go from 40 to 39. GAP will re-read the SECLEV file and give the user the time/bytes/files, etc for level 39. When setting up your security levels, you would make sure that the level for Join and Abandon are above level 39. Because Join and Abandon are at a level higher than this user's new level, he will be unable to leave the Forum. The important point to remember is that the user initially needs a security level high enough to issue the Join Command. When GAP "auto joins" him, his security level will be lowered, and if the level for Join and Abandon are configured properly, he will be trapped inside the Forum. Don't forget to create an entry in SECLEV file for the new level that the user will be lowered to. + On the File System Options Screen, the "External Protocol Letters" field is changed to "Ext Protocol File Name". You now specify the name of the file that holds the configuration data for external protocols. It is suggested that you use the name of PROTO.DAT. External protocols are configured from the Files Menu. You may configure up to 20 external protocols, any of which can be Batch and/or Bi-directional. The External Protocol Editor is fully described in the manual, however some special notes on bi-directional protocols may help Page 7 GAP Communications New Features explain their configuration. When using a bi-directional protocol, a user can upload files at the same time he is downloading files. In order for GAP to determine if the user has uploaded any files, GAP passes the name of the upload work directory to the batch file that runs the protocol. When the protocol is invoked, this work directory is passed to it as a command line parameter. When downloading, the following two parameters are passed to the EXTSx.BAT file: %5 - The path to the directory where uploaded files are to be placed. %6 - A 0 or 1 where 0 means it is OK for the caller to Upload Files while downloading and a 1 means that there is either an event pending or the user doesn't have the security level to upload files so that uploads should not be allowed. GAPBBS + The Condensed listing of New Files, Locate Files, and File Listings has been changed dramatically. The functionality is basically the same as the Enhanced counterparts. You may now Mark Files, View the contents of an archive, and obtain an Enhanced View of any of the files displayed in the condensed listing. + If there are any new bulletins, GAP will now display the numbers of the bulletins that are new above the Bulletin Command prompt. + When checking the date on a News or Bulletin file, GAP will now consider the file modification time (besides the date), when determining if the file is newer than a user's last date on. This will allow you to change your News and Bulletin files and have them shown as being new to a caller that has already been on the day you change the files. + When uploading a file you own, the commands to Replace and Delete have been changed to Update and Replace, respectfully. Update means to just update the file and leave the description the same. Replace means to replace the file and change the description. Choosing None, of course, means to mark the file as a duplicate upload. Page 8 GAP Communications New Features + When listing files, if any file is newer than the user's last New Files Scan Date, the file will be flagged with an asterisk in Condensed Mode. In Enhanced Mode the header will say "New". + Sysop 4 (Remote User Editor) now allows you to see and edit almost all the fields in the user record. Those fields that you cannot see or edit are the ones that hold Number of Doors Opened, Number of Forums Joined, etc. + There is a new GEN file called REGINFO that is displayed after a New User answers Yes to join the BBS. The file is designed to explain the registration process, what the following prompts will be and how to answer them, and the necessity of answering the prompts truthfully (if your BBS uses the random verification feature). + When leaving a message to the Sysop's name as it is configured in the Sysop record in the user file, GAP will change the name to SYSOP before saving the message. + The Upload Routines were modified such that they now use a 1k upload buffer instead of the previous 4k buffer size. For anyone that was experiencing "CRC" errors every time GAP wrote a buffer to the hard drive, this should help eliminate those problems (a 16550 UART is still needed when multi-tasking or running under a Network - especially when a CD-ROM is attached). + When shelling to UPCHECK, GAP will now pass a 6th parameter. It will be as follows: 0 = Remote Caller On 1 = Sysop On Locally 2 = Local User You should use %6 to test whether or not it is "OK" to use SendCom or GAPEcho. Neither should be used if there is no remote caller. In addition, the 6th parameter will let you know whether or not GAPFILE is the program invoking your UPCHECK (GAPFILE passes a 1 as the 6th parameter). + GAP will process DESC.SDI and FILE_ID.DIZ description files. A description file is a text file (usually formatted to 10 or fewer lines with 45 or fewer characters per line), that describes the uploaded file. The file is called either DESC.SDI or FILE_ID.DIZ and is included inside the archive. Including Page 9 GAP Communications New Features such a file allows the author of the program (rather than the uploader) to describe what the archive is all about. These files will be processed only when a user uploads more than one file at a time (or at least tells GAP that he or she will be uploading more than one file). The reason the description files are not utilized in single file uploads is because by the time GAP has received the upload, the user has already entered a description.. It would not be proper for GAP to simply reject what the user entered and replace it with a description file, especially if the user took great care to enter a proper description. GAP will only accept 10 lines of description, however the length of the lines can be 72 characters long (with line 1 being only 45 characters since it will be used as the keywords). These files are growing in popularity and are being used more often than not. The DESC.SDI was the first such description file and it tends to be just a single line description. The FILE_ID.DIZ is a newer description file and it tends to be 10 lines or less. If you would like to include description files in archives you upload (providing the archive doesn't already have one), we suggest that you name the file FILE_ID.DIZ (since it is not clear whether programs that support DESC.SDI can handle more than 1 line of description). We would also suggest a format as follows: Line 1 - 45 or less characters of KEYWORD information Lines 2 -10 - 45 or less characters of description If you will only be uploading these files to a GAP system, then lines 2-10 can be up to 72 characters. Line 1 will also be included in GAP's enhanced description (in addition to being used in the keyword field). Line 1 can be 72 characters in length, but only the first 45 characters will be used in the keyword field. To maintain compatibility with other BBS systems, it is suggested that you keep the lengths of the lines to 45 characters or less. Your UPCHECK.BAT file is responsible for extracting the description file out of the archive and placing it in the work directory. We have provided a sample addendum to the UPCHECK that shows what needs to be done. Page 10 GAP Communications New Features Basically, after your UPCHECK has determined that the file is sound (no viruses, passes integrity, etc), it should then try to extract a DESC.SDI or FILE_ID.DIZ (but not both, if both formats are included in the archive). The extracted file is placed in the work directory. Upon return from the UPCHECK shell, GAP will check to see if either DESC.SDI or FILE_ID.DIZ is present in the work directory. If not, then everything goes along as usual. If one of those files is in the work directory, then GAP will read the first line of the file and place it in the keyword field. GAP will then prompt the uploader for the keywords. In this case, however, the keyword field will already be filled in, and the cursor will be at the end of the line. The Uploader can either accept the keywords as is, or backspace over them and enter his own keyword list. GAP will then go into the Message Editor to gather the enhanced file description. However, in the case of a description file being present, the Message Editor will automatically enter File Import mode and will import the entire description file into the message buffer. The uploader will see the description being imported and will then be presented with the disposition prompt. He or she may then either edit the description or press 'S' to save it. Basically what you have with a file that uses a description file is that all the user has to do is press SAVE to save the description after GAP comes back from an UPCHECK and has told GAP where to place the file and whether it is private. GAP will delete any DESC.SDI or FILE_ID.DIZ files that it finds in the work directory after it has processed the current file. Your UPCHECK.BAT file is only responsible for getting that description file out of the archive (if it exists). GAP will handle all the details of utilizing the file if it finds it. Note that your UPCHECK should be designed so that it extracts only one of the description files, not both of them, should someone include both of them in an archive. GAP always looks for DESC.SDI first. If it finds that file in the work directory and yet your UPCHECK extracted both a DESC.SDI and a FILE_ID.DIZ, only the DESC.SDI will be deleted and if the next file in the batch doesn't contain a description file, there will be a left over FILE_ID.DIZ that will get attached to the next file! Or worse yet, if there are no more files in the batch, your user could be prompted to enter a description for FILE_ID.DIZ! For added security, you could modify the UPCHECK sample so that it automatically deletes any DESC.SDI or Page 11 GAP Communications New Features FILE_ID.DIZ files in the work directory. GAP ONLY looks for this file after shelling to UPCHECK, not before. AnsiCmds + The following AnsiCmds were added: AGE - User's Age. DROPC - Total number of Dropped Carriers. FJOIN - Total number of Forums Joined. LCALL - Date of User's Last Call. RATIO - User's upload/download file ratio (note this is a file and not a byte ratio). SLOWx - Delay x amount of clock tics, where 1 tic is 1/18th of a second. SLOW0 turns off the delay. Questionnaire Commands + The following Questionnaire Commands were added: JOIN X - Automatically send a user to Forum X. If the Forum is private, GAP will first register the user in the Forum. The command does not take effect until after the questionnaire is completed. In the case of a New User Questionnaire (NEWQUEST) the command will not take place until after the user arrives at the Main Board. Note that if this command is used in the NEWQUEST file, the security news, BIRTH, and USERINFO files will not be shown. If used in a NEWQUEST the user will be allowed to join the Forum even though he or she may not have a security level high enough to issue the J command. When used in a regular questionnaire the user must have a security level high enough to issue the J command. The reason for the difference between a regular questionnaire and a NEWQUEST is that you may have some users whom you do not want to be a part of your regular BBS operation. You may set up different Forums to segregate different groups of people. Your NEWQUEST can force certain groups into a specific Forum, and by setting the level to Abandon and Join higher than the users' level, once a user is forced into this Forum, he or she will not be able to leave it. If the Forum is set for auto join, the user will be forced into the Forum on subsequent calls. PrivUser - will set the Private User flag for the user to Yes. Page 12 GAP Communications New Features & - is the same as the asterisk '*' except that the text will be displayed locally and sent to the caller remotely, but will not be written to the answer file. CCARD - allows the questionnaire script to process credit cards. The syntax of the command is as follows: CCARD XXXX where "XXXX" is 'A', 'D', 'M', or 'V' for American Express, Discover, MasterCard, or VISA The command is similar to the Yes/No command in that it must be followed by 3 commands which will take action based upon the return value from the Credit Card processor. The 1st action command will be invoked if the Credit Card processing was successful. The 2nd action command will be invoked if the user aborted the Credit Card processing (i.e., didn't complete it). The 3rd action command will be invoked if there was a problem with the Questionnaire processing (an unforeseen error of some sort). An example of the command appears as follows: CCARD VM >thankyou problem The above example tells the Credit Card processor that only VISA and MasterCard are accepted. If you accept all 4 card types you could issue: CCARD ADVM The 1st line after the command sends the processor to the label "thankyou", where the script will thank the caller for the order. The 2nd line after the command sends the processor back to the order menu, since the caller failed to complete all the questions asked of him or her. The 3rd line after the command sends the processor to a "problem" section of the script so it can tell the user that there was a problem with the questionnaire and to "try again later". Page 13 GAP Communications New Features Most of the ordering process is performed using regular questionnaire commands. The Credit Card processor insures that the user enters a valid Credit Card Number, that the Expiration Date on the card is current, and that the user's address information is correct. The user will be given a chance to enter a different Name/Address, however these changes will not be written back to the user file. We have included a sample Questionnaire Script that you should study if you wish to use the Credit Card processor. The best way to get a feel for how it works is to set it up as a questionnaire, fill it out several times and study the resultant answer file. Since the processor validates Credit Cards, you must have a legitimate credit card number or you will not be able to complete the script. Page 14