GAP Communications Version 4 to Version 5 Upgrade Information This document describes changes that must be made if you are upgrading from version 4 to version 5.0 of GAP. Specific enhancements to the program can be found in the section Enhancements. If you are starting anew with version 5.0, then these Upgrade Instructions do not apply to you. There are no conversion programs that must be run, since no file formats were changed from Version 4.0. However, the manner in which GAP runs Batch files (doors, events, etc) WAS changed and it is these external files which MUST be modified. The modifications which you must make should not take very long unless you run a large number of doors or have a great many Forums. If you follow these Upgrade Instructions in their entirety, you should have no problems upgrading to Version 5.0 of GAP. The first thing you should do is install the new executable files, help files, and text files, then continue on with the upgrade process. Executables Needed New Or Modified Files ----------------------------- ------------------------- GAPBBS.EXE - GAPBBSx.ZIP ARCTRANS.BAT - New GAPCALL.EXE - GAPCALL.ZIP Custom Menu - New GAPFILE.EXE - GAPFILEx.ZIP DOORS.DAT - Modified GAPMAINT.EXE - GAPMAINT.ZIP DOORx.BAT - Modified GAPMENU.EXE - GAPMENUx.ZIP EVENT(g) - New GAPPACK.EXE - GAPPACK.ZIP EVENTS.DAT - New GAPREBLD.EXE - GAPREBLD.ZIP EVENTx.BAT - Modified GAPREPRT.EXE - GAPREPRT.ZIP GAP.BAT - Modified GAPSETUP.EXE - GAPSETx.ZIP GAPCOMM.BAT - Modified GAPUSER.EXE - GAPUSERx.ZIP REMOTE.BAT - Modified UTI*.EXE - GAPUTI.ZIP UPCHECK.BAT - New UPLOAD(g) - New User Specific - New File Changes Doors ----- GAP will now look for a door batch file that has a .BAT extension. The door batch file is, of course, the file that GAP used to copy to DOOR.BAT such that it became a batch file to run a door specified by a caller. The file DOORS.DAT was modified such that there is now a third field that tells GAP where the batch file to run the door resides. You need to add this third field because GAP now needs to know the exact path and name of the door batch file. An old DOORS.DAT looked like this: DOORS.DAT (version 4.x) ------------------------------ MEGA 40 TOURIST 40 TW 40 The new DOORS.DAT now looks like this: DOORS.DAT (version 5.0) ------------------------------ MEGA 40 C:\GAP\MEGA.BAT TOURIST 40. C:\GAP\TOURIST.BAT TW 40 C:\GAP\TW.BAT The difference between the two versions is that you now tell GAP the exact path and filename of the batch file to run. You MUST make the changes to your DOORS.DAT file now or your Doors will not operate under GAPBBS 5.0. To make the change requires that you do the following: In your GAP DEFAULT directory, rename all your door batch files (the files that start up your door programs and without the .BAT extension) to the same filename WITH the .BAT extension (i.e., MEGA becomes MEGA.BAT). In your DOORS.DAT file, add a third field that specifies the full path to each door batch file. Since all your door batch files are currently in the GAP DEFAULT directory, you would Page 2 use the DEFAULT directory as the path and the name of the batch file as the door file to run; for instance: In your DOORS.DAT file: MEGA 40 becomes MEGA 40 C:\GAP\MEGA.BAT where the C:\GAP would be your GAP DEFAULT drive and directory. Once you change your door batch files to the new format and have verified that your doors run correctly, please feel free to move the batch files to their own individual directories (most notably the directory where the actual door program resides), and change your DOORS.DAT to reflect this change. Important --------- Now that the structural changes to the GAP Doors system have been made, you need to make a change to each and every one of your door batch files. GAP no longer requires that you call the Start Up Batch file (GAP.BAT) at the end of your door batch files. In fact, this line MUST be removed. If you have 99 door batch files, you MUST edit 99 files and remove the last line in the door batch files. This is IMPORTANT and if you do NOT do this, your system will eventually crash. An old Door Batch file might look like this: TOURIST (.BAT) ------------------------------ echo off cd doors\tourist tourist tourist.cnf cd \gap gap Page 3 The new Door Batch file would look like this: TOURIST.BAT ------------------------------ echo off cd doors\tourist tourist tourist.cnf cd \gap Notice that the last line of the batch file was removed. It is no longer necessary to call the GAP.BAT file at the end of your door batch file. This line MUST be removed! It is difficult to suggest an easy way to change all of your door batch files. The easy way out depends upon yourself and the Editor you use. Basically you need to load each and every door batch file (at this point they should have a .BAT extension) into your Editor and remove the last line from each file. Once you have made the changes to your DOORS.DAT and your door batch files, you are ready to continue with the upgrade process. Please make these changes now and them come back to this point in the documentation. Events ------ GAP's Event system has changed drastically. There are now 24 Events instead of 2. The new event system is explained in detail in the section Enhancements. In configuration (GAPSETUP.EXE) you name the event files. There is no longer an EVENT1 or EVENT2. These files may be either batch files or executable programs. You may continue to use your old event batch files, however you MUST remove the last line that calls the GAP startup batch file (GAP.BAT). The batch file must also now have the .BAT extension. An old Event Batch file might look like this: EVENT1 (.BAT) ------------------------------ echo off gappack main\msgs.dat M 90 Y gap Page 4 The new Event Batch file would look like this: EVENT1.BAT ------------------------------ echo off gappack main\msgs.dat M 90 Y Notice that the last line of the batch file was removed. It is no longer necessary to call the GAP.BAT file at the end of your event batch file. This line MUST be removed! You may place these batch files in any directory you choose. For now, just rename your event file(s) so that it has a .BAT extension and remove the last line from the file (the line that calls the startup batch file). REMOTE ------ The remote file now has a .BAT extension. GAP will currently look for REMOTE or REMOTE.BAT, however, in future versions, only REMOTE.BAT will be utilized. Please rename REMOTE to REMOTE.BAT; edit the file and remove the last line that calls your GAP startup batch file (GAP.BAT). GAPCOMM ------- GAPCOMM now haw a .BAT extension. In addition, you MUST remove the last line that calls the GAP startup batch file (GAP.BAT). GAP.BAT ------- Please edit your startup batch file and remove all the "if exist" statements from the file. What you want to end up with is something similar to the following: GAP.BAT ------------------------------ echo off c: cd \gap gapmenu if error level 99 gap Notice that the lines that check for the existence of your GAPCOMM.BAT, REMOTE.BAT, DOOR.BAT, and EVENTx.BAT files are gone: Page 5 GAP.BAT (old version) ------------------------------------------------------- c: cd \gap if exist gapcomm.bat ren gapcomm.bat gapcomm <- remove if exist remote.bat ren remote.bat remote <- remove if exist door.bat del door.bat <- remove if exist event1.bat ren event1.bat event1 <- remove if exist event2.bat ren event2.bat event2 <- remove gapmenu if exist gapcomm.bat gapcomm.bat <- remove if exist remote.bat remote.bat <- remove if exist door.bat door.bat <- remove if exist event1.bat event1.bat <- remove if exist event2.bat event2.bat <- remove if errorlevel 99 gap The lines to be removed are no longer needed and MUST be removed in order for your system to function properly. Indexes ------- It is now time to rebuild your ISAM Index files. The index node size was increased in order to speed up seek times for those that have more than 10,000 files in their filebase. This will speed up other index operations as well. From your GAP DEFAULT directory, run GAPREBLD. All of your index files will be automatically rebuilt. For each index file that is rebuilt, you will more than likely see the following error message: Internal Error Code 46, Trying Rebuild Again Ignore this error message. It is suggested that after you run GAPREBLD, that you run it again. In fact, you should continue to run the program until no more indexes are rebuilt. Page 6 Configuration Options There are several new configuration options. We will tell you where they are, but not explain them since the Enhancements section describes them in detail, as does the online Help. Sysop Levels ------------ Read Comments (Y/N) Protect/Unprotect Messages (Y/N) Read Without Updating Read Flag (Y/N) Main Menu Commands ------------------ Initial News & Wel (0-110) Sysop Defined 1 (Menu Command and Level) Sysop Defined 2 (Menu Command and Level) File Menu Commands ------------------ Archive Menu (removed) Sysop Defined 1 (Menu Command and Level) Sysop Defined 2 (Menu Command and Level) Miscellaneous Info 1 -------------------- Force 2nd Phone Number (Y/N) Enforce Subscription (moved) Days In Subscription (moved) Disable Logon Override (Y/N) Phone Number Template (template of special characters) Miscellaneous Info 2 -------------------- Timed Events (moved) Event Run Time 1 (removed) Event Run Time 2 (removed) Extend Time By Factor (0-9) Page 7 Miscellaneous Info 3 -------------------- Use COMMAND.COM for F5 Shell (Y/N) Disable Status During Ext Shell (Y/N) Seconds To Wait For Auto ANSI (0-9) Stop Xfers If Event Timer Expires (Y/N) Upload Guard Time Prior To Event (0-99) Door Guard Time Prior To Event (0-99) Delete User Info File After Shown (Y/N) Show Loose Downloads in GAPCALL BLT (Y/N) Enforce Subscription (Y/N) Days In Subscrip Period (30-365) Exempt Security From Expired Sub (0-110) File System Options ------------------- Default Filename Extension (file extension) Check For Dupes Across Areas (Y/N) Events ------ Timed Events (Y/N) Event Active (Y/N) Time Of Day For Event (00:00-23:59) Day Of Week To Run Event (ALL, SUN-SAT) Event Batch File Default Forums -------------- Not available on the Go To Menu as this screen(s) will be removed in version 5.1. Page 8 Enhancements GAPMENU ------- Supports the extended baud rates of the USR modems: 4800, 7200, 12000, 14400 Specifically supports the CompuCom Speed Modem. Event start and end times are now logged to the caller log. The date will now change at midnight. GAPUSER ------- The Reports Menu is not yet operational. You may now change the security level of all users who are at the level you specify. You may also globally change the security level of users who are at the level you specify and who have either uploaded the number of files specified or left the number of messages specified. GAPFILE ------- You may now use the Up/Down Arrow Keys in the Mass Move Utility to move up and down the Area/Subject columns. The program FIXKEYS is now incorporated into GAPFILE as a Utility Menu option. In addition, GAPFILE will automatically fix your keyword files if, at startup, the FILEKEY.DAT file is missing. There is a new Utility called Global Change that allows you to globally change many of the fields in the Filebase. The program FIXFBSEC was an example of globally changing the security level on all the files. The functionality of this program is now incorporated into this Global Change utility. The changes you may make can be on either a specific Area, a specific Subject, All Areas, All Subjects, or a combination of both. When editing a record, if you do not change the Keywords, Area, or Subject, the update to disk will be much faster. Page 9 When Importing files, the name and location of any file that cannot be imported will be written to a file called IMPORT.LOG. The error associated with this is usually error #2 (Duplicate Record), meaning the file currently being imported already exists in the Filebase. This log should be helpful to those who install a CD-ROM and would like to have a list of files that cannot be imported because the files already exist on the hard drive. This will allow you to delete the files from the hard drive and use the CD-ROM version instead. You may now run GAPFILE in batch mode to produce a Master File Listing. The Master File Utility Menu must already be configured so that GAPFILE knows the name of the Master File list, the Area(s) to utilize, whether or not to produce a Condensed or Enhanced list, etc. The commands to accomplish this are as follows: GAPFILE 5 U M S Q R Which corresponds to: Run GAPFILE Select the Utility Menu Select the Master File List Start the Listing Process Select the Quit Menu Return To GAPMENU The spaces in the command line and the ordering of the parameters ARE required. GAPFILE will also accept a command line parameter of: UPDATE 5 FILENAME Where FILENAME is the name of a file to Update. You would probably want to use this command after producing a Master File Listing so that if you ZIP the listing and place it in your Upload Directory, GAP will always show the file as new whenever you update it. Since Update cannot be intermixed with the previous commands, you will need to run GAPFILE twice if you wish to produce a Master File Listing AND Update the date and size of the resultant ZIP file that your batch file will create/update. Page 10 The following is an example of how to produce a Master File Listing, ZIP the listing, then update the Filebase: MASTER.BAT ------------------------------ GAPFILE 5 U M S Q R PKZIP H:\UP\CROWLIST.ZIP MASTER.LST GAPFILE 5 UPDATE CROWLIST.ZIP Note that in using the above example, you should make sure to have only one (1) CROWLIST.ZIP in the Filebase since GAPFILE will search for and accept the first instance of the file it finds (same as what occurs when you use F8 to find a file in All Subjects). Unlike the commands to create the Master List where you MUST specify the commands to cause GAPFILE to Quit to GAPMENU, after performing the Update on the file, GAPFILE will automatically Quit. GAPSETUP -------- There is a Go To Menu option that displays a Menu of screens from which you may select the configuration screen to directly edit. The Default Forums screen is not on this menu since this configuration will not be needed in future versions. On the Sysop Levels screen, you may now set the security level to Read Comments, Protect/Unprotect Messages, and Read Mail without Updating the Read flag. These are not new features but, rather, old features where you may now set the security level required to use them. On the Main Menu Commands screen, you may now set the security level required to use the Initial News & Welcome command within GAPBBS. Also on this screen are two Sysop Defined Menu Choices. To define a Custom Menu Item, you first enter the name for the Menu Item (2 to 5 characters), then the security level required to utilize that Menu Item. You will then need to create a batch file (which goes in your GAP DEFAULT directory, to carry out the commands associated with that Menu Item. The batch file has the same name as the name you give the Menu Item (with a .BAT extension). In GAPBBS, when a caller types one of your Custom Menu Items, GAP will shell to the batch file, execute the file, then return. An example of a Custom Menu Item which you could add would be to add a Mail Door (which you previously utilized as a door program). You would use the same batch file that was used for Page 11 the door (except that its name must be changed to match the name of the Menu Item). On the File Menu Commands screen, the Archive Menu was removed. The 'A' command in the files section of GAP is now the same as Abandon Forum. There are also two Sysop Defined Menu Choices available in the files section. On the first Miscellaneous Information Screen, you may now specify whether or not GAP should enforce the 2nd phone number prompt. If Enforce Registration is set to No, this prompt wont be enforced anyway, but if that flag is set to Yes and this flag is set to No, then GAP will allow a new caller to type anything he/she desires in this field. Another option allows you to Override the Override command at log on. We do not suggest that you use this option and in fact, if you are a HUB for NetMail, you must NOT use it or your Nodes will be come extremely upset with you if their Log On Scripts suddenly quit working. This option was provided in case you have a News, Security News, or other file to display and most of your callers are using the Override command and not seeing your News or other system files. Note that NS at logon is still operational and the Override command (or config option) does not affect this logon command so if you have a News file that needs to be seen, you will need to set the "Allow Quick Logons" and "Disable Override" options appropriately. You may now define the Phone Number template that GAP will use when gathering phone number data. The default template is the one used in the U.S. and Canada. If you live in Europe or another country that uses different delimiters, you may change the appearance of the template. The template allows for 15 characters but the USER file currently holds only 13. Keep this in mind when designing your template, as only 13 characters are stored in the user record. This will not be a problem after the user file is restructured and enhanced (in 5.1) On the Second Miscellaneous Screen is the option to extend the time used while Entering Messages. If you enter a 0 in this field, then the caller will actually loose time while entering a message (same as in previous versions). If you enter any other number, then GAP will multiply the time used to enter a message by the factor you enter here, and credit the caller with that time. On the Third Miscellaneous Screen you may specify whether or not GAP should shell to DOS (using the local F5 key) using Page 12 COMMAND.COM or its normal Expanded Memory routines. Using COMMAND.COM is faster if you do not have EMS memory installed. It will also keep the status line on the screen if you so desire. During external protocol shells, GAP keeps the status line on the screen. If the status line protection causes problems, you may disable this and GAP will not try and protect the 24th and 25th lines. When a caller logs on, GAP tries to determine if the caller has ANSI terminal emulation turned on. This can be either a quick process or a slow one, depending upon your modem or the caller's Communications program. You may set the number of seconds GAP waits after it sends the proper ANSI sequences and then interrogates the modem for a reply. 4 seconds should be sufficient. If you have terrible phone lines or an ancient modem, you may disable this feature altogether by setting this field to 0. If an event is scheduled, GAP will set a timer that expires when the event time occurs. There are times, such as when there are a lot of errors during downloading or uploading, that a file transfer could overrun an Event Time. You can tell GAP to abort the transfer if this situation occurs. You may now set the Upload Guard Time and the Door Guard Time in which GAP will prevent any uploads or Door Openings prior to an event. GAP will now display a unique file intended for a specific user only. Its name is derived from the name of the User you want the file shown to. Because the file names are based upon User Names and there is a possibility that some of these files may duplicate some of your MAIN files, these files need to be placed in a directory called USERINFO which should be created off the MAIN directory: C:\GAP\MAIN\USERINFO GAPSETUP will create this directory for you or you may create it yourself. The names of these files are derived by using the 1st 5 characters of the User's Last Name, and the first character of the User's First Name. If the User doesn't have 5 characters in his/her last name, then you would use the entire Last Name: File to Create User Name Mono ANSI ---------------------------------------- KENNY GARDNER GARDNK GARDNKG DARIN MAY MAYD MAYDG Page 13 GAP will show the User Specific File after the Security News and Birthday file. If you would like to have these user specific files deleted after they are shown to the user, set the "Delete User Info File After Shown" field to Yes. You can tell GAP to log a download where the file came from one of your Loose Directories such that the downloaded file will not appear in the Download Bulletin created by GAPCALL. You may now specify a security level that is exempt from the Expired Subscription process. If a caller's Subscription has expired and yet the caller is at or above this Exempt Security level, then the caller will not be set back to the Expired Security Level or Default Forums. On the Files System Options Screen there is a new Config Item that allows you to specify the default Filename Extension. This extension will be used whenever a caller is prompted for a filename and does not enter an extension to the name. You may now tell GAP to search ALL areas for a duplicate file during an upload. Using this option, if a file about to be uploaded exists ANYWHERE in the filebase, then GAP will not allow the upload (or prompt for deletion if the caller's security is high enough). You should not use this feature if you have files in a 'private' area that you would not want regular callers to know about should they attempt to upload a dupe. A new configuration screen is provided whereby you may set up 1 to 24 Events. GAPSETUP will provide two configuration screens for the Events, depending upon how many you activate: Active Time Day Event File ------------------------------------------------------ Y 12:00 ALL G:\GAP\EVENTS\EVENT1.BAT Y 06:00 SUN G:\GAP\EVENTS\EVENT2.BAT Y 06:00 WED G:\GAP\EVENTS\EVENT3.BAT You may flag an individual event as Active or Not Active. The event times are no longer restricted from using a time of 00:00. Any time between 00:00 - 23:59 is a valid event time. An event may be scheduled to run every day (ALL), or on a particular day of the week. Page 14 You must now specify the batch file to run in order to execute the event. The file can be any valid program so you are not restricted to running just batch files. You may execute any program directly if you wish. GAPMENU determines which event to run by reading the list of events from first to last and comparing the event times. If event #1 is scheduled to run on Sundays at 07:00 and event #2 is scheduled to run every day at 07:00, and today is Sunday, event #1 will be the event that is executed. Event #2 will not run on this day. For this reason and many others, we strongly suggest that no two events share the same event time. In addition, it is suggested that successive events not be scheduled within less than 5 minutes of each other (i.e., event #1 at 00:01 and event #2 at 00:02). GAPBBS will now set an event timer that will expire when an event is scheduled to run. This timer should NEVER expire (it should never reach 0). If it does, this means that an upload, door, or some other occurrence has caused the caller to stay on longer than he/she should and the event will be missed by GAPMENU. The event timer should never go below 5 minutes (the event guard time). When a caller logs off or GAP logs a caller of for whatever reason, GAP will check the event timer. If it is 0, then GAP knows the caller was on past the event time and GAP will tell GAPMENU to run the event, irregardless if GAPMENU thinks it should be run or not. This method of watching for missed events is not foolproof. The event that GAPMENU had scheduled to run prior to logging a caller into GAPBBS is the event that will automatically run should the caller overstay his or her time. If you have events scheduled back to back, depending upon how long the caller overstayed and how closely your events are scheduled to one another, some of your events may not run. For instance, if the scheduled event is at 00:01 and the next event to run is at 00:02, if a caller logs into GAP and stays on until 00:03, GAPMENU will run the scheduled event (the one at 00:01), but the next event at 00:02 will be missed completely. If the next event were scheduled at 00:06 instead of 00:02, it would run normally. To help you deal with the problem of missed events, we have provided several new configuration options that you may tailor to your own needs: First, it is possible to schedule a successive event that simply checks to see if the prior event ran successfully. The prior event, could, perhaps create a dummy file that Page 15 indicates that it went off. The second event could then look for this file and if found, delete it. If not found, run the intended event. Second, the following options are at your disposal: Stop Xfers If Event Timer Expires Upload Guard Time Prior To Event Door Guard Time Prior To Event The first option allows you to stop any Upload OR Download that is in progress if the Event Timer expires (indicating the transfer is taking longer than expected and the caller is about to overrun the Event Time). If your events are critical and MUST run, it is suggested that you set this option to yes. The second option is one that is already built into GAP but you may now specify the number of minutes prior to an event to stop any Uploads. The third option allows you to prevent your callers from entering a door within the number of minutes you specify prior to an event. If GAPBBS determines that an Event is pending and adjusts the caller's time available, you may have GAP display a file instead of the standard message of "Your time has been adjusted...". The name of the file is EVENT(g) and goes in your GEN directory. GAPBBS ------ GAP's door system has been completely revamped. GAPDOS.DAT is no longer written. GAPBBS now uses EMS or your disk drive to swap itself out of memory and free up as much memory as it can. Because of this, GAPBBS no longer writes GAPDOS.DAT as it is no longer needed. Because of this change, any door program which modifies fields in GAPDOS.DAT* and expects GAP to make the same changes to the caller's record (i.e., user level or time credits), will not work until the door is modified to write to DOOR.SYS instead. Upon return from a door, GAP will read DOOR.SYS. GAP will read the following fields from DOOR.SYS: Page 16 Security Level Total Uploads Total Downloads Current Download K total Time Credits Current Download Files Total K bytes uploaded Total K bytes downloaded With regards to time credits, GAP will give the caller the time credits specified in DOOR.SYS. GAP doesn't care if the credits are the same as when DOOR.SYS was written. This means that a door program is free to give or take away time from a caller (negative time credits means the caller looses time). Of course, if the caller's time was adjusted because of an upcoming event, GAP will ignore the time credit field in DOOR.SYS. To change the time credits, modify line 42 of DOOR.SYS. A door program is also free to change the caller's security level by modifying line 15 of DOOR.SYS with the following restrictions (GAP will ignore any changes to DOOR.SYS): if the caller is the sysop if the caller's level is at or above 100 if the new level found in DOOR.SYS is at or above 105 This means the sysop will be unaffected by any security level changes a door may do. A "Trojan" door will be unable to give anyone (including the door author) a high enough level such that the caller will be able to perform true sysop functions. This of course depends upon how your sysop levels are configured but as a good guideline, sysop 4 and sysop 5 should have levels greater than 105. Basically, a door can give security levels only up to 104 and cannot modify any caller's level if the caller is at 100 or greater. An assistant sysop (between 100 and up) will be unaffected by any security level changes. A door program may bypass the reading of DOOR.SYS by returning an error level of 60 to GAPBBS. This is useful for those doors that do their own updating in the GAP USERS file and do not want GAP to "undo" the changes by reading DOOR.SYS. The Door Return Codes that GAP recognizes are: Page 17 60 - Do NOT read DOOR.SYS 61 - Force caller into a Comment 62 - Immediately LOG the caller off the BBS If you write door programs to interface with GAP, and you would like to have GAP implement one of the above functions, simply make sure that your program is the last program to be run in the door batch file and that your program returns one of the 'exit' codes that GAP recognizes. GAP will now enforce the Up/Down Ratios during Batch downloads (while the caller enters a list of files to download). Keep in mind that callers must STILL enter a filename to download (whether batch or single file) before GAP will check the ratio. Some cosmetic changes were made to the Log On Screen. GAP now displays the date and time as well as the Modem CONNECT string. GAPBBS will now prevent a caller from entering a message if the message base is full right after the caller selects Enter or Reply, instead of waiting until the caller actually enters a message. If the first character of the Quote Chars in config is set to 'I', then GAP will use the initials of the person being quoted as part of the quote characters. The 'A'rchive Menu option from the Files Menu has been changed so that it no longer calls up the Archive Menu but instead causes an 'A'bandon. If the caller is already in the Main Area, then the caller will return to the Main Board, otherwise the caller will Abandon the current Forum and return to the Main Board. Due to the way GAP was handling ARC Transfers from an ARC file, and the slowness this was causing on a network, we have done away with all internal handling of Archive Transfers. Do not despair. You may now use ARC, PKZIP, LZ, PAK or whatever to handle your transfers for you. When a caller requests a Transfer from an Archive, GAP will now shell to a batch file called ARCTRANS.BAT. GAP will pass the following parameters to the batch file: %1 - Where to put the Extracted File (loose directory #1) %2 - Full Path/Name of the Archive File to process %3 - What kind of Archive it is, ARC, ZIP, LZH, ICE,etc %4 - Name of file to extract from the compressed file %5 - Name to use for the file, once it is extracted and recompressed. Page 18 A sample ARCTRANS.BAT that deals with PKZIP/PKUNZIP is provided. GAP expects your batch file shell to unzip the file from the archive, re-zip it using the supplied name, and place the resultant file in your first loose directory. With the above change to Archive Transfers, downloads across a network now work with maximum efficiency. The ARC Transfers were not a problem of themselves, but the code to check for the transfer was. With this change, Archive Transfers will now work with any archive compression program, and with PKZIP files in particular. GAP will now prevent the editing of a message after it has been saved if the message has been read by the receiver, or if the message is to ALL and has been replied to. Anyone with the Edit Message Header security can still edit the message, however. Any caller will be able to edit the Text of a message that he or she left. Whether or not a caller can edit the Header of a messages depends on their security level and if it is the same or higher as the Edit Message Header Sysop level. Any person with the Edit Message Header security level can edit the header of a message AND the text of a message, irregardless of whether or not the person left the message. The way in which GAP handles a closed board (or Node) has been changed a bit. GAP will now enter all new callers into the User File even if the board is closed. This way, if you want the caller to be a member of the board (or Node) all you need do is set the Private Board User flag for the user's record in GAPUSER. Making this change, allows you to use a CallBack door in the newquest (since such a door would previously not work because there was no record of the user). In addition, the new user to a private node will first be shown all of the news files prior to being taken to the newquest. The newquest will run the door after the questionnaire is completed (just like the regular questionnaires do). After the newquest is filled out, GAP will display the CLOSED file (which is now displayed to new users and to users already in the User File but who are not members of the closed node). Previously, CLOSED was ONLY displayed to users who were not members of the closed board/node. Keep in mind that if you use a CallBack door and the door hangs up on the caller, GAP will not have a chance to display the CLOSED file or make final log entries. Page 19 GAP will now shell to an external Batch file after each upload that is sent/processed. For each file that GAP processes after an upload, GAP will shell to a batch file called UPCHECK.BAT (which MUST be in your DEFAULT directory). If the UPCHECK.BAT file is not present, then GAP will not shell and the upload processing will continue as usual. If the UPCHECK.BAT file IS in your GAP DEFAULT directory, then after receiving an upload (during a batch, when processing the current file found in the work directory), GAP will shell to this batch file. In this batch file, you may add your ZIP Comment, check for a Virus, or do whatever it is you need to do with an upload. Upon return from the UPCHECK Shell, GAP will check to see if the file is still in the directory. If, your batch file or the program that your batch file ran, deleted the file, and GAP cannot find the file in the Upload or Work directory, then GAP will check to see if the filename extension is the same as your default extension you configured in GAPSETUP. If not, then GAP will substitute your extension for the one in the Upload file and try to find the file using the new extension. If at this point, GAP still cannot find the file, it will skip that file (batch mode) and go on to the next. If, on the other hand, GAP now finds the file, it will tell the caller that the file was renamed per sysop conventions and proceed as usual, using the new filename. Basically, this means that if you run a virus check program on the uploaded file and your check finds that the uploaded file has a virus, if either your batch file or the program you use to check for viruses deletes the file, GAP will not ADD the file to the filebase. Also, if a caller uploads an .ARC file and you prefer to keep .ZIP files, you can UnArc the file and ZIP it back up, giving it a .ZIP extension in the process and GAP will accommodate your change and process the file with the .ZIP extension instead of the .ARC extension. When processing an Uploaded File, GAP will shell to UPCHECK.BAT, passing the following parameters: Full path and name of file (%1) Upload Directory path (%2) Filename (%3) Filename without the extension (%4) Extension without the filename (%5) Page 20 The first parameter is the full path and name of the file to check. This parameter is the fully qualified path name to the file that is being processed by GAP. You may then pass %1 on to the program(s) you wish to use to check/verify or add a ZIP Comment to. For instance: After receiving an upload in non-batch mode or when processing a batch of uploads in batch mode, GAP will run upcheck.bat as follows: UPCHECK path\filename where path\filename will contain the FULL path to the file. All your batch file (UPCHECK.BAT) need do is pass %1 to the program it is running (a virus checker, PKZIP to add a ZIP Comment, etc). If you run a Virus Checker and the Virus program or your batch file deletes the (%1 file), then upon return from the shell, GAP will simply skip that file and move on to the next (after displaying a message that the upload file being processed "...failed the integrity check"). The other 4 parameters are for advanced usage and a sample batch file is supplied to give you an idea of what you may do with files that are uploaded to your system. Pressing the Space Bar has the same effect as CTRL-K and CTRL-X during file displays. GAPBBS will now create a single Swap File called GAPSWAP.$$$, instead of a file with a unique name. This will prevent having a multitude of swap files for those of you that do not use EMS and for whatever reason, reboot your computer during a shell. GAP now sends Zmodem files using Moby Turbo (trademarked by Omen Technologies). GAP cannot currently receive files using the same protocol. On the third miscellaneous screen in Configuration, there is an option that you may set to have GAP delete the User Specific File after it is shown to the user. GAP will delete both the regular and ANSI files if you so choose. Some possible uses for these files are: If you know a certain person will be logging on to your board as a new user, you can leave him a special greeting. Page 21 If you have an incorrigible user who refuses to read the message you left for him, you can create a file just for this user and GAP will insure that he sees it. If its a long file, you can disable the More Prompt so he cannot answer No and stop the file display. You can create a file for each of your new callers that will be shown to them on their next call. Such a file could thank them for joining your system. GAP will now log any errors encountered while attempting to shell to a DOOR or any other process that involves Swapping one program to EMS or Disk and running another. The Error Code is 300. 11:46 ER 300 11 Swap Error The 11 in the above log entry is the actual error that occurred while trying to Swap. The errors that can occur are: 1 - Unable to read Swap File 2 - Swap File is missing 4 - Too many open files 5 - Root Directory is Full 6 - Cannot locate COMSPEC 7 - Memory Control blocks destroyed 9 - Error reading EMS 10 - Not enough disk space 11 - Invalid Drive (disk drive does not exist) 12 - Error writing Swap File 15 - Bad Path (non-existent directory in path) If an error occurs in GAPMENU while trying to Shell to another program, GAPMENU will display an error message with one of the above error codes, pause 5 seconds, and then recycle. Imodem has been removed. Adjust your PROTO(g) files accordingly. GAP will display a file called UPLOAD(g) (GEN directory) after a caller selects the Upload File Menu Command. Such a file can inform your callers of the types of files that you accept and what type of file to NOT upload. Page 22