GAP Communications Guide To Operations Second Edition This manual is Copyright 1987, 1988, 1989 by GAP Development Company. ALL RIGHTS RESERVED. No part of this manual shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from GAP Development Company. While every precaution has been taken in the preparation of this manual, GAP Development Company assumes no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein. The GAP logo is a trademark of GAP Development Company. GAP Communications, including but not limited to: GAPBBS.EXE, GAPSETUP.EXE, GAPUSER.EXE, GAPMENU.EXE, GAPPACK.EXE, GAPRELBD.EXE, GAPCALL.EXE, GAPDOOR.EXE, GAPCOMM.EXE, GAPREPRT.EXE, GAPFILE.EXE and any other program that is distributed under the GAP Communications logo is/are trademarked/copyrighted by GAP Development Company. Qmodem is copyrighted by The Forbin Project and John Friel. IBM and TopView are trademarks of International Business Machines Corporation. PC-SLAVE is a trademark of Alloy. Disk Manager is copyrighted by Ontrack Computer Systems. DesqView is a trademark of Quarterdeck. Courier HST is a trademark of USRobotics, Inc. Hayes and Smartmodem are trademarks of Hayes Microcomputer Products, Inc. Contents 1 Introduction 1 Minimum Requirements 1 2 Setup 3 Directory Structure 3 File Locations 4 Forum File Locations 5 Installation 5 3 Configuration 7 Sysop Security Levels 8 File Names 9 Drive/Path Specifications 10 Modem Configuration 11 Main Menu Commands 13 File Menu Commands 14 Miscellaneous Information - One 14 Miscellaneous Information - Two 17 Miscellaneous Information - Three 19 Default Forums 21 Strings and Prompts 22 Gapcall Configuration 24 Function Key Macros 25 Forum Configuration 25 Sample Forum Configuration 28 Sysop Configuration 30 4 System Files 33 Default Directory 33 Help Directory 38 Main Directory 39 Gen Directory 41 Forum Files 44 5 Modem Configuration 47 General Information 47 Sample Configurations 48 6 Doors 53 7 Questionnaires 57 Description 57 Setup 58 Overview 58 Examples 64 Miscellaneous Information 66 8 Events 67 Description 67 Limitations 67 Setup 67 Running the Events 68 Quirks 68 Batch Files 68 Examples 69 9 Security Files 71 Security Menus 71 Security News 72 10 Text Files 73 General Information 73 Ansicmds 74 11 Error Codes 77 Remedies 78 12 Call Waiting 81 13 User Editor 83 14 System Operation 87 Main Menu Commands 87 View/Change Stats Commands 90 File System Commands 91 File Commands 91 Archive Commands 91 Sysop Commands 92 Function Keys 92 Sysop Functions 94 Message Read Functions 95 15 Caller Analyzer 97 Description 97 Limitations 97 Setup 97 Running Gapcall 99 Normal Operations 100 Quirks 101 16 FileBase Editor 103 Description 103 Setup 103 Running Gapfile 108 Utilities 112 Selection List 113 Saving 113 17 External Protocols 115 General Information 115 Batch Downloads 116 18 Questions & Answers 119 19 Index 123 Chapter 1 Introduction Welcome to GAP Communications! Because of the overwhelming response from System Operators around the world, GAP has become the standard in communications software. This manual was written to assist you, the new GAP Sysop, to install, run, and maintain the GAP Communications software. Our goal is to get you up and running in the shortest possible time and to answer any questions which you may have. Before beginning the installation process, please read this document carefully. Installing a BBS system can be complicated due to the many individual files involved. Note that the textual content of the Disk File version of the GAP Communications documentation is identical to the printed version.The difference is in page layout and graphic designs. Where appropriate, larger graphics have been replaced by the word ARTWORK. Minimum Requirements IBM AT or 100% compatible. 640K memory 1 360K floppy drive. 1 Hard Disk (20MB minimum). CGA, EGA, VGA, or Monochrome monitor. Hayes Smartmodem or 100% compatible DOS 3.1 or greater. ANSI.SYS which is loaded upon boot up. SHARE.EXE (if running under a network or other type of multiuser system). Multi-tasking programs are not recommended, although they may be used. GAP is both TopView and DesqView aware, although it will not function under TopView since it does not tell that program when a screen has been updated. Page 1 GAP Communications Introductions GAP was designed to be run on a dedicated computer. As such, the sysop should keep his TSR programs down to a minimum (or not use them at all). A good disk cache program is an exception to this rule. The program Disk Manager cannot be used in conjunction with GAP and the Alloy Slave networking system. A working knowledge of DOS is mandatory. The ability to create and/or understand batch files is needed. If you are using the multi-user version, you must already know how to set up your network before attempting to install GAP. We do not provide any setup information for networks since such information takes volumes and our main concern is with getting your GAP system installed as quickly as possible. Since GAP was designed for the professional, this document assumes the sysop has a great deal of knowledge concerning BBS operation and DOS essentials. You should have or create a CONFIG.SYS file with the following parameters : FILES=25 <<- IMPORTANT BUFFERS=40 Your AUTOEXEC.BAT file should contain a path statement that includes the GAP DEFAULT directory : PATH=C:\;C:\DOS;C:\GAP To run the program efficiently, you should be using some type of Disk Caching program with a minimum of 256k allocated to the cache in extended or expanded memory. If you are using an XT, allocate 128k of regular memory to the cache. With a cache program, lower the number of buffers in the CONFIG.SYS file to 3. Page 2 Chapter 2 Setup Directory Structure In order to insure correct operation of your BBS, the following directory structure should be used: Root Directory | | GAP | | --------------------------------------------------- | | | | | | | | | | | | MAIN GEN HELP FORUM DOWNLOAD UPLOADS | | --------------------- | | | | | | GEN DOWNLOAD UPLOADS The Forum DEFAULT directory is equivalent to the MAIN directory and the Forum GEN directory is equivalent to the GEN directory. Forums need not have a GEN directory nor do they need an UP directory unless you choose to keep all uploads inside the Forum. The Forum download directories are necessary only if you have additional file directories available in the Forum. Page 3 GAP Communications Setup File Locations The following is a list of the actual files which should be placed in their respective directories: DEFAULT MAIN GEN HELP DOOR ANSWERxx 7E1 All Help DOOR.SYS CALL.DAT BLT Files EVENTx CALLER BLTG EXTRx.BAT CHAT.1 BLTxx EXTSx.BAT DUMMYLOK.DAT COMMENT FILELST.DWN DWNLOAD.DAT DIR GAP.BAT DWNLOAD.IDX DIRG GAP.HLP FILEKEY.DAT DIRS GAP.NDX FILEKEY.IDX DOORM GAPBBS.CNF FILES.DAT DOORMG GAPBBS.EXE FILES.IDX DOORS.DAT GAPCALL.EXE FORUM.DAT ENEWS GAPDOOR.EXE MESSNO.DAT FILEM GAPDOS.DAT MSGS.DAT FILEMG GAPFILE.CNF MSGS.IDX FILES.DIR GAPFILE.EXE NETWORK.DAT FORUMM GAPMENU.EXE NEWQUEST FORUMMG GAPPACK.EXE QUESTxx KEEPUP GAPREBLD.EXE REGIS LOCKOUT GAPREPRT.EXE SECLEV MAINM GAPSETUP.EXE TCAN MAINMG GAPSYS.DAT USERS.DAT NEWS GAPUSER.EXE USERS.IDX NEWSG READBTCH.EXE NEWSx REMOTE NEWUSER NOUP PROTO QMENU QMENUG RESBAUD SMAINM SMAINMG TWIT UPHELP WELCOME Note that some of these files will be created by the setup program and are not included on the distribution diskettes. Also many of them are optional (they must be created if you wish to utilize them). Page 4 GAP Communications Setup Forum File Locations The following is a list of files which can be unique to each Forum: DEFAULT GEN UP DOWN ANSWERxx BLT Uploads Forum MSGS.DAT BLTG Specific MSGS.IDX BLTxx Downloads QUESTxx DIR DIRG DIRS DOORM DORMG DOORS.DAT FILEM FILEMG FILES.DIR MAINM MAINMG NEWS NEWSG QMENU QMENUG SMAINM A Forum does not have to have any GEN files as it can share the equivalent main board files. If you wish for a Forum to not have any specific file directories, you will not need the Upload or Download directories. At the very minimum, a Forum can have 2 files (MSGS.DAT and MSGS.IDX). Installation To install the GAP files, insert the GAP Distribution Disk #1 into your floppy drive and type: A:INSTALL Drive (A:INSTALL C:) Drive is the hard disk drive where the files will be installed. The installation program will create the necessary file directories and copy the GAP files to your hard disk. Page 5 Chapter 3 Configuration Before you can run any of the GAP programs you must create and/or verify that the start-up batch file is correct. A sample batch file was provided (GAP.BAT). The file should appear as follows: GAP.BAT -------------------------------------------------- echo off if exist remote.bat ren remote.bat remote if exist door.bat del door.bat if exist event1.bat ren event1.bat event1 if exist event2.bat ren event2.bat event2 gapmenu if exist remote.bat remote.bat if exist door.bat door.bat if exist event1.bat event1.bat if exist event2.bat event2.bat if errorlevel 99 gap To insure proper operation of the BBS, GAP must be run from a batch file. If you are running multiple nodes, you may rename the file but its contents should remain the same. Each node must have its own copy of the batch file and the last line of the file must reflect the name of the individual file. Throughout this manual, the name GAP will be used when referring to the start-up batch file. This is the default name of the main node's file. When running secondary nodes, substitute the name of the start-up batch file for a particular node with the node's own start-up file. For instance: Node 1 GAP.BAT Node 2 NODE2.BAT Node 3 NODE3.BAT The only difference between the files should be the last line where the batch file invokes itself. This document will describe the configuration of a single node system only. If you are running a multiuser system, you will need to perform the configuration from each of your node's DEFAULT directories. It is not necessary to have Page 7 GAP Communications Configuration multiple copies of any of the programs if you have a DOS path set to your main node's default directory. NOTE: If you are using the Multi-User version of GAP, you must be sure to run SHARE.EXE prior to running any GAP program. This is best accomplished by installing the program from your AUTOEXEC.BAT file. To configure GAP for your particular installation, from your GAP DEFAULT directory, type GAP. If you used the installation program, you will automatically be taken into the configuration program. Since this is a first time installation, you will see the Call Waiting Screen and will be taken immediately to GAPSETUP where you may configure your individual options. Most of the configuration options are self explanatory. However any option which requires more explanation will be described here in more detail. Sysop Security Levels ARTWORK The Sysop's Name is the name that GAP uses at various points during the program's operation when referring to you. The Logon Password is the password required to log onto the system from the local console. Remember this password as it will be needed to log on locally as the sysop or to use one of the external editor programs. Page 8 GAP Communications Configuration The various security levels are the levels required to perform their respective sysop functions. File Names ARTWORK These are the names of various system files. It is suggested that you leave these names as they are. All of these files are shareable across a network. Any text file which is shown to the user can be either plain ASCII or ANSI color graphics. Color files have the same name as the plain version but with a G appended. Refer to the sample files provided. Please see the chapter System Files for further explanation of many of these files. The Message and User Files will be created when you save your configuration. The Caller File will be created by GAP when the first caller logs on. This file can grow quite rapidly so it is suggested that you archive it about once a week and then delete the old copy. Our Caller Analyzer has been designed to process these logs and delete them for you automatically. The Welcome File is displayed to callers when they first log on. The New User Welcome File is similar to the main welcome file. It is shown to all new users. Normally its purpose is to describe your board to new users and perhaps set forth a few house rules. After reading this file, the new user will be asked if he/she wishes to register. Page 9 GAP Communications Configuration The Time/Bytes File is a file which contains security levels, time allotments, maximum allowable download bytes and files per day, and ratios. The Trashcan File contains names that you consider to be distasteful. Any user who tries to log on with a name that is found in the trash will be denied access. You may specify the names of the main Questionnaire Answers File as well as the names of New User Questionnaire and Answer Files. The Questionnaire Files are described in more detail in the chapter Questionnaires. If the New User Questionnaire exists, all new users will be forced to fill it out before being allowed onto the system. The Doors Data File is a file which list the available doors on your BBS along with the security levels necessary to access them. The Exit News File will be shown to callers when they log off. The Remote Batch File is a batch file which GAP will run when the sysop exits to DOS from remote. The Forum Data File holds the Forum configurations. Drive/Path Specifications ARTWORK Each entry must begin with a drive designator and the entries must conform to valid DOS path specifications. The Upload Directory Path is the disk directory where the main board uploads will be placed. Page 10 GAP Communications Configuration The General Directory Path is the disk directory where most of the text files are placed. This may be a RAM Disk. The Main Directory Path is the disk directory where important data files are placed. The Help Directory Path is the disk directory where all the help files are located. The Loose Files Directories is the disk directory where any files not classified in the filebase are stored. If GAP cannot locate a requested file in the filebase, it will look in this directory for the file. Note that wild cards cannot be used on loose files. Modem Configuration ARTWORK Please see the chapter Modem Configuration for further details on setting up your modem. The Modem Reset String is the string to reset the modem. The Modem Init String is the string to initialize the modem. The Modem Off-Hook String is the string to take the modem off the hook. The Seconds To Wait For Carrier is the number of seconds GAP is to wait while trying to establish a connection with a remote modem. This should match the S7= parameter in the Modem Init String. Seconds To Wait For Connect is a special field to deal with slow modems. If you find that your modem establishes a carrier and yet GAPMENU simply recycles or if a connection Page 11 GAP Communications Configuration is made but at the wrong bps rate, try setting this field to some number of seconds (typically 1 second). You may configure up to 4 com ports. A port number of 0 tells GAP to not initialize or use a communications port. Ports 1 and 2 are preconfigured and will use the default values for IRQ and Base Address. GAP will ignore anything you enter in these two fields. If you set up ports other than 1 or 2, you must enter the appropriate IRQ and Base Address for that port. If you are unsure of what an IRQ or Base Address is, do not configure other than COM 1 or COM 2! The Initial BPS Rate is the bps rate in which to open the com port. This should be set to the highest speed at which your modem can operate. Lock BPS Rate is typically used with 9600 baud modems. It is used when you want the computer to modem rate to remain fixed. For instance with a 9600 baud modem, you normally would want the computer to modem link locked in at 19,200 bps. Setting this flag will keep GAPMENU from changing the baud rate of the serial port to match that of the caller. Answer On True Ring Detect tells GAP to answer the phone when the modem asserts the ring detect line. This should be set to Y. If your modem is incapable of asserting ring detect you should set this to N. This field should also be set to N if your modem cannot accept commands while it is sending them. Full Flow Zmodem Uploads is a flag just for Zmodem file transfers. If set, GAP will not tell the sending Zmodem program to honor a restricted buffer size. If you have a fast hard disk you should set this flag to Y. GAP allows you to restrict callers based on certain bps rates. If you wish to not allow certain bps rates on your board at all, set the Allow Restricted Callers field to N and then specify the bps rate to restrict. You need not give a start and end time. If you wish to allow restricted bps rates, set the Allow Restricted Callers field to Y, give the rate to restrict, and enter the start and end times. These times are the times that the bps rate is not restricted (i.e., the times they are allowed on). If you create a file called RESBAUD (GEN directory), it will be shown to any restricted caller. This allows the sysop to customize the message that is displayed to callers who call at an undesirable baud rate. The message should be kept as short as possible. There is no color version of this file since GAPMENU does not know what the caller's color preference is. Page 12 GAP Communications Configuration Main Menu Commands ARTWORK These are the security levels a user must have in order to access a particular function from the Main Menu. Note that CHAT and WHO are available only on multi-user systems. A new user is given the Level For New Users. All new callers to the system must register or they will be denied access. If you run a subscription board, when a user's subscription has expired, he/she will receive the Level For Users Who's Subscription Is Expired. This Subscription:Expiredlevel should not be the same as that for new users. Page 13 GAP Communications Configuration File Menu Commands ARTWORK File Menu Commands - These are the security levels necessary to access a particular command in the Files System. View/Change Stats Menu - These are the security levels necessary to access a particular command at the View/Change Stats Menu Miscellaneous Information - One ARTWORK Number Of Bulletins is the maximum number of main board bulletins you intend to post. Number Of Directories is the maximum file directories. Note that the upload directory will be the highest numbered directory. Page 14 GAP Communications Configuration Printer Port is the Line Printer port you wish to have the caller log written to. If the Enforce Time Limit is set to Y, users will not be allowed access if their time limit for the day has expired. They must wait until the following day before GAP will allow them back on. If set to N, GAP will allow any user to log on as many times as they wish in any given day. If you are running a closed board, set the Closed Board option to Y. A closed board is a board in which no new users are allowed access. A user must already exist in the user file in order to gain access. If the file NEWQUEST is present in the MAIN directory, new users will be asked to fill it out before being disconnected. In addition, the user file contains a field for private board user which must be set to Y for any user that is to have access to a private board (or node). If you run multi-nodes where some users may be members of a closed node and some may not, you should create a file called CLOSED and place the file in your GEN directory. Registered users who are not members of the closed node will be shown this file prior to being disconnected. If you set Prompt For Birthday to Y, GAP will ask all new callers for their date of birth. Note that even if this flag is set to N, all users will be able to update their birthday at the View/Change Stats Menu. In addition, GAP will not validate the birthday. In other words, callers may simply press [Enter] to bypass the birthday field. Forums may be set up to allow users to use a handle instead of their real name while they are in the Forum. If you wish to allow this handle feature, set the Allow Handles field to Y. Users may then give themselves a handle at the View/Change Stats Menu. If you wish to allow users to change their name while on line, set the Allow Name Changes field to Y. Force Registration will insure that new users enter the required information at registration. Phone numbers will be validated as to their content. If a user enters a number such as (555)555-5555 they will be allowed on but as soon as they arrive at the main command prompt, they will be locked out and disconnected. Enforce Subscription will cause all users whose subscription date has expired to assume the Expired Subscription Level and the Default Forums. Days In Subscrip Period is the length of the subscription period (30 to 365 days). You need to set this field even if Page 15 GAP Communications Configuration you are not using the subscription feature since GAP uses it when registering new users. If the subscription period is less than 60 days, then the warn time for the user is 10 days. Otherwise the warn time is 30 days. When the user's subscription date approaches within the warn time, a file called EXPIRE will be shown to the user each time he/she logs on. This file goes in the GEN dir and it should inform the users that their subscription is about to expire and tell them what they should do to extend their subscription. When a user logs on and his/her subscription date is past the current date, the user will revert back to the Default Forums and will receive the Expired Subscription Security Level. At this point, the EXPIRE file will no longer be shown to the user. It is advisable to create a security news file representing your expired security level to inform the users that they are at the expired level and will remain there until they rectify the subscription issue. Experienced users will type Y Q NS or N Q NS at Log-on in order to avoid having to read the welcome and news files. If you wish to force users to view the news and welcome files, set the Allow Quick Log-on to N. If the Force BLT Menu At Log On is set to Y then your users will be forced to view the Bulletin Menu when they log on if any of your bulletins are newer than the user's last date on. GAP shows the name of the last caller on the Call Waiting Screen as well as on the User Stats Display. If you do not wish the last caller to be shown in either of these two places, set the Show Last Caller field to N Page 16 GAP Communications Configuration Miscellaneous Information - Two ARTWORK The Network Node Number must be set to the node number to which this particular configuration applies. Each node must be given a unique number. In a single user system, this number will remain at 0. If your system is multi-user, GAP has the ability to use NetBIOS for all chat functions. If your LAN supports NetBIOS and you set the NetBIOS Chat field to Y, GAP will create a direct link between two nodes and instead of writing to chat files (which is slow and cumbersome), any characters typed by your callers while chatting will appear instantly on the opposite node screen. In contrast, regular chat must constantly read and write to chat files and characters are not sent until the caller presses [Enter]. GAP allows for two timed events. Please see the chapter Events for more information. The Default Color is the color that is displayed at various points while a user is online: 1 - Blue 9 - Light Blue 2 - Green 10 - Light Green 3 - Cyan 11 - Light Cyan 4 - Red 12 - Light Red 5 - Magenta 13 - Light Magenta 6 - Brown 14 - Yellow 7 - Light Grey 15 - White Note that 8 will result in a non display condition on some monitors. Blank Monitor After allows you to specify the number of minutes to wait before blanking the Call Waiting Screen. Page 17 GAP Communications Configuration The Maximum Number Of Messages is the total number of messages that will be allowed in any one message file. The Maximum Number Of Message Lines is the total number of lines that will be allowed per message. Note that GAP may adjust this limit depending on how much free memory is available at the time of entering a message. Users may address a single message to up to 10 different people providing the message is private and the Allow Carbon Copy Messages flag is set to Y. If the Validate Messages field is set to Y a user will not be allowed to leave a message to anyone who is not a member of the BBS. If you do not wish to allow ANSI color graphics in a message, set the Allow Non ASCII Characters field to N. If a user subsequently tries to enter an ANSI message, GAP will abort the message and issue a notice to the user. If you do not wish to allow users to delete messages, set the Allow Killing Of Messages field to N. You have the option to force all main board mail to be private. To do so, set the Make All Mail Private field to Y. While replying to a message, it is possible to quote all or part of the message being replied o. The Message Quote Char allows you to specify the quote characters that will appear at the start of each line that contains the quoted text. GAP will add a space after the quote characters. Leave this field blank if you wish to disable quoting altogether. If you wish for the news file to be displayed to callers only if it is new, set the Show News Only If New field to Y. The news file will always be shown to new users. You can set the maximum amount of time a user may be idle at the keyboard. Enter the number of minutes of idle time in the Keyboard Time-out field. Page 18 GAP Communications Configuration Miscellaneous Information - Three ARTWORK If Enforce Download Count is set to Y, users will be limited to the maximum number of files you specified in SECLEV for their security level per day. If the Enforce Byte Count is set to Y, users will not be allowed to download any files on any particular day if they have already used up their allotted count. They must wait until the following day before they will be allowed to download any files. The number of bytes they are allowed to download during any single day is set up in the SECLEV file. If Extend Download Count is set to Y, then for every file callers upload, their maximum number of download files is increased by 1. However, the callers will never be able to download more files than the maximum number of files set up in SECLEV for their security level. Basically this is a one for one upload/download credit. A caveat is that the uploads must come first! Extend Time By Factor allows you to specify a multiplier that will be used to give back the time spent uploading. GAP will multiply the time it took to upload a file by this factor and credit the caller with that time. Note that if you enter 0 in this field, the caller will actually loose time. Enforce Up/Down Ratio and Ratio By Bytes Or Files allow you to enforce upload/download ratios. By Files means the callers must maintain the ratio specified in SECLEV or GAP will not allow them to download any files. If you specify by Bytes, the callers must maintain the ratio specified, however, the number entered into SECLEV is the number of k- bytes that must be maintained. If a caller attempts to download a file and his/her ratio is greater than the ratio Page 19 GAP Communications Configuration set up for the specific security level, GAP will display a file called RATIO and will not allow the download. The RATIO file should explain to the callers why they are unable to download and what they must do to regain download privileges. There may be a color version of the file, and of course, this would be a perfect place to use the Ansicmds. If Private Uploads is set to Y, all uploads will be given a security level of 110. This allows the sysop to review any uploads prior to making them available for downloading. Future versions of GAP will allow users to specify the subject they wish to have their uploads placed. The Allow Directory Uploads is currently ignored. The Minimum Free Upload Space is the amount of free space that must be left on the hard drive before GAP will accept an upload. If the Show Free Upload Space is set to Y, GAP will display the free upload space to the caller on the file transfer screen. You may install up to 8 External Protocols. To activate them, type Y in the External Protocols field and in the Protocol Letters field, type in the one character letter to represent the external protocol driver. Note that you will not be able to type in a character that represents an internal protocol. Also note that the character D has a special meaning to GAP. Please see the chapter External Protocols for more information on how to configure external protocols. Page 20 GAP Communications Configuration Default Forums ARTWORK This screen allows you to specify which, if any, Forums are to be Default Forums. New users are automatically registered in these Forums. Enter the total number of Forums you wish to set up in the first field. This number should represent the number of Forums you intend to set up at this time. Do not enter a number higher than the number you plan to run since all Forums must be properly configured and the configuration depends upon the number you enter here. If you are setting up for the first time, it is best to set this field to 0 and then configure your Forums at a later time when you are more comfortable with the system. GAPSETUP will not allow you to exit if you do not properly configure your forums. Set each of the default fields to Y or N depending on whether or not you wish the Forum to be a default Forum. Page 21 GAP Communications Configuration Strings and Prompts ARTWORK The Additional Board Name is any text that you wish to have displayed after your BBS name. The Twit String is displayed to the user when the sysop presses the F8 (TWIT) key to log a user off. The Lockout String is displayed to the user when the sysop presses the F2 (LOCKOUT) key to lock a user out and to log him/her off. The Comment Prompt is displayed to the user when he/she leaves a comment. There are 3 combinations for the TWIT, LOCKOUT, and COMMENT prompt strings. If TWIT and COMMENT are empty, then nothing will be displayed to the user. If the LOCKOUT string is empty, then the user will be displayed a standard prompt generated by GAP. If the strings do contain information, then whatever they contain will be displayed. If any of these 3 strings starts with a ? then a file will be displayed to the user. The filenames are called, respectively, TWIT, LOCKOUT, and COMMENT and they are located in the GEN directory. Of course, as with any GAP file, they may have a G appended to them for color displays. Any user locked out by the LOCKOUT key will be placed in the Trash Can. If a ? is used in the COMMENT field, you must still enter a comment prompt after the ?. The reason for this is that GAP will show the file, but it will also need a prompt to display after showing it. Page 22 GAP Communications Configuration The lockout text file will also be displayed to a locked out user trying to log on (if it exists). Page 23 GAP Communications Configuration Gapcall Configuration ARTWORK GAPCALL is GAP Communications own caller analyzer. It consists of a separate program which keeps a separate database on your users. It also keeps track of all the files that were downloaded from your system. GAPCALL produces four bulletins. You specify here the number to give to those bulletins and whether or not you wish to have the actual bulletins updated or a temporary bulletin written to the DEFAULT directory. If you wish to have the date stamp on the BLT file updated, your callers will be informed of new bulletins when they log on. After reading your caller logs, there is no longer any need for them since the vital information which they contain has been stored in the caller database. GAPCALL will automatically delete the logs if you so choose. Please see the chapter Gapcall for further information. Page 24 GAP Communications Configuration Function Key Macros ARTWORK The Shift Function Keys may be programmed to display any information you like. They are active only during certain times (i.e., during message entry or while chatting with a user. You may use the { character as much as you like for a single function key. For instance, you can program one function key to display as many separate lines of information as you can fit into the space allocated Forum Configuration ARTWORK For each of your Forums, there will be a Forum configuration screen. Page 25 GAP Communications Configuration Forum Name - This is the name that GAP will display to the users at various points while they are in the Forum. Forum Directory Path - This is the drive and path to the Forum DEFAULT directory. The MSGS.DAT and MSGS.IDX will be placed here. Gen Directory Path - This is the drive and path to the Forum GEN directory. If the Forum uses its own specific menus, they must be placed here. This path can be set equal to the DEFAULT directory path. See the file layout chart for more information as to which files go in this directory. Upload Directory Path - This is the drive and path to the Forum UPLOAD directory. If the Keep Uploads Inside flag is set to Y and a user uploads a file while inside the Forum, the file will be placed in this directory. Forum Sysop - Each Forum may have a dedicated sysop and assistant sysop. To activate this feature, type in the user's first and last names, separated by a space. The security level is the actual level you want the user to have when he/she joins the Forum. It is not an additional level, but the exact level. If the Forum is set up to give additional security, the Forum sysops will not be given the additional security. Number Of Bulletins - If the Forum is to have its own set of bulletins, enter the total number here. Don't forget to create a BLT file to list the bulletins and place it in the GEN directory. Number Of Directories - If the Forum is to have any additional file directories, enter the number of additional directories here. Note that the Forum upload directory will be the highest directory number. Example: If the main board has 10 directories and the Forum has 2 additional directories, while a user is in this Forum, there will be a total of 12 directories. Subject 11 will be the main board upload directory and subject 12 will be the Forum's upload directory. Include Main Board Dirs - If set to N, the Forum directories will be completely isolated from the main board directories. This means the main board directories will not be available while inside the Forum. Instead of starting with the highest main board directory plus one, the Forum directories will start at 1. Additional Security - If you wish to increase a user's security level while he/she is in the Forum, enter the additional level to add to the user's normal level here. Page 26 GAP Communications Configuration Additional Time - If you wish to grant your users any additional time while they are in the Forum, enter the number of minutes to add to their time here. Note that a user will be granted additional time once only. Also, they will not loose the additional time when they abandon the Forum. Allow Handles - If this Forum utilizes handles, enter Y in this field. While in a Forum that allows handles, a user's name will change to their handle. Subscription Date - It is possible for you to rent out a Forum to outside parties to run as they see fit. You may set a date that the Forum will expire. When that date arrives, no user save the sysop will be allowed to enter the Forum. If you do not wish to use this feature, be sure to set the Subscription Date to 01/01/01. Auto Rejoin Forum - If this field is set to Y and a user logs off from inside the Forum, he/she will automatically join the Forum on the next call. Private Uploads - If you want all the Forum uploads to be private (as in the main board) set this flag to Y. Keep Uploads Inside - If you want all the Forum uploads to be kept in the Forum upload directory, set this flag to Y. Otherwise, the user will be asked if he/she wishes the upload to stay in the Forum. If the user answers Yes, the upload will be kept in the Forum upload directory. If the user answers No, the upload will be placed in the main board upload directory. Make All Mail Private - If you want all the messages to be private, set this flag to Y. Make All Mail Public - If you want all the messages to be public (with the exception of comments), set this flag to Y. Note that the sysop can override this setting and leave private mail. Net Mail Forum - If you want the messages in a Forum to be utilized in an Echo Mail system, set this flag to Y. GAP will ask a caller if a particular message should be echoed or not. Page 27 GAP Communications Configuration NOTE: In order to activate file directories inside of a Forum, you will need a DIR file in the Forum GEN directory. The presense of this file tells GAP that the files system is avaiable while a caller is inside the Forum. If the file is missing, the caller will be told the Forum has no file directories. All other files are shared with the main board. If the Forum has its own set of menus, questionnaires, doors, etc., GAP will use those files instead of the main board versions. NOTE: Any time you wish to add new Forums, it is imperative that you add the new Forums to the end of the list. In other words, if you have 5 Forums and you wish to add a 6th, you must add the 6th Forum in the 6th slot! You must not attempt to insert a new Forum in the middle of a set of existing ones. Doing so will render your Forum message bases useless. There are a lot of configuration possibilities with the Forums. A Forum can be set up to have no Files System whatsoever or it can be set up to simply use the main board file directories with no additional file directories of its own; or it can be set up to use the main board file directories along with its own directories which can be seen only while in the Forum. In addition, there are combinations of private/public uploads as well as the ability to keep all uploads in the Forum. Sample Forum Configuration When the configuration as shown in the Forum Configuration Screen is saved, the setup program will automatically create the Forum disk directories. Notice that this Forum has its own GEN directory,UPLOAD directory, and two DOWNLOAD directories. Because the Use Main Board Dirs is set to No, GAP will not look in the main board for a file. The Forum file directories are completely isolated from the main board. The subject numbers for this Forum will be 1 and 2. Subject 1 is the download directory and subject 2 is the upload directory (for this Forum). Subject numbers are discussed in Page 28 GAP Communications Configuration more detail in the chapters System Files and FileBase Editor. Note that it is not necessary to have a Forum GEN directory. All files can be placed in the Forum DEFAULT directory if you prefer. The GEN directory field was provided so that you may use a ram disk for the static files. Included in the GEN directory are the two file menus DIR and DIRG. These are the same as the main board files but were modified to show the Forum subjects instead of the main board subjects. This Forum has its own questionnaire so the Forum GEN directory contains a QMENU and QMENUG. It also has a news file which is located in the GEN directory. All other GEN files as shown in the file layout chart are shared with the main board. The actual disk directories for this Forum contain the following files: Base Directory = C:\GAP\SUP DEFAULT GEN UP DIR1 MSGS.DAT DIR Uploads Downloads MSGS.IDX DIRG QUEST1 DIRS FILES.DIR QMENU QMENUG NEWS NEWSG In contrast to the above Configuration, you could set up a simple Ads Forum whereby the Forum had no files unto itself other than MSGS.DAT and MSGS.IDX. It would simply share all files with the main board. The Forum specific directories (GEN and UPLOAD) would be the same path as the Forum Directory Path. There would be no Additional Download Directories. And since the Forum does not contain a DIR file, the user would not be allowed to access the Files System while in this Ads Forum. By simply copying over the main board DIR and DIRG files you would open up the Files System for your users while they were inside this Forum. Page 29 GAP Communications Configuration As previously stated, there are a great many possibilities with the Forums. It will take some experimentation on your part to fine tune the various Forums to suit your needs. At this point, the configuration is nearly complete. Press [ESC] to end GAPSETUP. Answer Y to save changes. Sysop Configuration ARTWORK After answering Yes to save your setup configuration, you will be taken into the user editor. During a first time installation, the sysop will automatically be placed as the first record in the user file. You must now edit that record and change any fields to suit your own preference. The first name, last name, and password are the names you must enter if you call from remote and wish to be recognized as the sysop. For security reasons, the first and last names should not be your real name. GAP will never refer to you by these names, their sole purpose is to get you into the system, as the sysop, from remote. Your GAP is now fully configured! If you used most of the default responses during the configuration and if you have installed the sample files you may jump right in and log on as the sysop to explore the system. You will still need to create a great many files and the rest of this documentation will help you do just that. Sample files are provided for most of the GAP system files. Study them carefully. In order to fully customize GAP you will need to modify the sample files or create your own set. Page 30 GAP Communications Configuration Good Luck! And let us know how the setup and configuration worked for you. We are always eager to provide assistance and make things easier on the number one person: the Sysop! Page 31 Chapter 4 System Files The system files are the files GAP needs in order to run properly. Some of them are created automatically by the setup program while others must be created by the sysop. Most of them are provided as sample files on the distribution diskettes. Any file which is displayed to the user, from the time the user logs on to the time he/she logs off, can have an ANSI color equivalent. If the user chooses color at log on, the color equivalent of any file listed here will be displayed (if it is available) rather than the normal ASCII version. ANSI color files can be created with any of the shareware ANSI Editors available. Text files that are displayed to users may contain special flags. Placing an { as the first character in the file will suppress the more prompt. This is useful for long ANSI welcome files. Placing an @ as the first character will replace the more prompt with a pause prompt. This is useful when you want your callers to read a file in its entirety. Default Directory GAP.BAT - This file is the workhorse of the system. It is responsible for running GAP as well as making sure that all the individual GAP files function together as one unit. GAP.BAT -------------------------------------------------- echo off if exist remote.bat ren remote.bat remote if exist door.bat del door.bat if exist event1.bat ren event1.bat event1 if exist event2.bat ren event2.bat event2 gapmenu if exist remote.bat remote.bat if exist door.bat door.bat if exist event1.bat event1.bat if exist event2.bat event2.bat if errorlevel 99 gap Page 33 GAP Communications System Files It is suggested that you leave this file as is unless you have changed the name of the remote file. Since GAP always exits to DOS when it terminates, the last line in the batch file is an absolute necessity. When GAP wants to recycle, it will issue an error level of 99 to DOS. The last line insures that GAPMENU will be run. The four lines after echo off simply check for the existence of any files which may have been created while GAP was running. If they are found they are either renamed or deleted. The four lines after GAPMENU will be explained in later chapters. If you are running multiple nodes, you will need a copy of this file in each of your nodes' DEFAULT directories. The name of the file should be unique for each node and the last line in the file should reflect the changed name. REMOTE - When a sysop exits to DOS from remote, GAP will run this file. It may contain any commands you wish, however it must load a secondary copy of COMMAND.COM if you wish to perform any dos functions and return to the file when you are finished. The example and explanation that follows describes operation for COM port 1 only. REMOTE(.BAT) -------------------------------------------------- echo off watchdg1 on ctty com1: echo **************************************** echo *** Sysop In Dos From Remote *** echo *** *** echo *** Type 'Exit' To Return To GAP *** echo **************************************** command c: cd\gap ctty con: watchdg1 off gap Watchdog is a public domain program which will monitor the com ports for a carrier. If it fails to find one, it will re-boot your computer. Such a program is necessary. If the person who has exited to DOS from remote drops carrier, your computer will be sitting idle waiting for input from the com port, and of course, there will be nobody there! The documentation for Watchdog gives further instructions on its use. Watchdog is not provided with the GAP distribution diskettes. The CTTY COM1: command redirects all input/output to the com port. Please refer to your DOS manual for explanation as to its use. Page 34 GAP Communications System Files The ECHO commands simply remind the sysop to type EXIT to return to the BBS. The last line in the file invokes the start-up batch file for GAP . This should be renamed to whatever name you gave your start-up batch file (GAP.BAT). Don't forget the CTTY CON: command or all keyboard activity will be ignored and all output will be sent to the com port. DOOR - When a user selects OPEN from the main GAP Command prompt and opens a valid door, GAP will run the associated batch file. Door setup and files are explained in more detail in a later chapter. The batch file that invokes the door program is a regular DOS batch file without the .BAT extension. GAP will rename this file at the appropriate time. DOOR(.BAT) -------------------------------------------------- echo off cd\doors door c: cd\gap gap GAPBBS.CNF - This is the configuration file for GAP. It is created automatically by the setup program. GAPDOS.DAT DOOR.SYS These two files are created when a user enters a Door. GAPDOS.DAT is used by GAP to log the user back into the system. DOOR.SYS is a standard door interface which is used by many door authors. EVENT1 EVENT2 These are the event batch files which you must create. Notice that they do not have a .BAT extension. Events are covered in more detail in a later chapter. EXTRx.BAT EXTSx.BAT These are the batch files that are used to invoke an external protocol. The first is for receiving files and the second is for sending files. Please see the chapter External Protocols for more information. FILELST.DWN During batch downloads, GAP creates this file. It stores vital information necessary to allow a caller to download as Page 35 GAP Communications System Files many files as the sysop allows. It is used internally by the system although a utility program is provided which allows you to utilize the information contained within so that external protocol programs can be set up to provide batch transfers. GAP.HLP GAP.NDX These are the Help files used by many of the Utility programs. GAPCALL.EXE - GAP's own Caller Analyzer! It is explained in more detail in the chapter Gapcall. GAPFILE.EXE - This is the external FileBase Editor. It is used to maintain your database of files. Please see the chapter FileBase Editor for further information. GAPBBS.EXE - This is the main GAP Communications program. It consists of several overlays and as such, if used in a multi-user environment, it should be set to read-only if your networking system does not properly support shared reading of files. An alternative is to keep a copy of this file in the default directory of each of your nodes. Failure to observe this precaution may cause your system to freeze one day with the dreadfeal DOS prompt, Sharing Violation reading drive C. GAPMENU.EXE - This is the program that directs various functions. It is responsible for answering the phone, running events, allowing you to configure your system, etc. GAPSETUP.EXE - This is the program that allows you to configure your system. GAPUSER.EXE - This program is the offline user editor. GAPREBLD.EXE - This program rebuilds your message and user file indexes. It should be used whenever you receive an Error message that tells you to rebuild your index files. In addition, should you ever encounter a problem with GAP not being able to find a user or a message when you know that the user or message exists, this program should be run. Page 36 GAP Communications System Files NOTE: Indexed Sequential Access Method (ISAM) is a method to retrieve data records based on key information stored inside index files. Compared to sequential searches it is fast and efficient. However, indexes can be touchy and because of their nature you are urged to back up your ISAM data files at least twice a week. Using one of your events would be a perfect way to insure the integrity of your files. You can invoke GAPREBLD in a manner such that it will forceably rebuild all of your data and index files. To do so, type GAPREBLD F. In addition, if a particular message base is causing problems, you can delete the .IDX file for that base and run GAPREBLD. It will rebuild just that index file. GAPPACK.EXE - Message and user files fill up with outdated information. This program will purge those files of unneeded data. It features a single pass purge routine for message files wherein messages can be stripped of refer to message numbers at the same time they are being purged. It is also used to purge corrupted records from the ISAM data files. The program may be run from the command line or interactively. To invoke the program, you must supply the full path to the file you wish to pack and specify if the file is a user file or a message file: GAPPACK C:\GAP\MAIN\MSGS.DAT M GAPPACK C:\GAP\MAIN\USERS.DAT U The M tells the program that you are packing a message file and the U specifies the user file. Page 37 GAP Communications System Files In addition, you may pass optional parameters that tell the program what to do with the file. When packing the user file, the options are: Y or N where Y means to delete locked out users and N means to keep locked out users. xxx represents a time frame (number of days) a user must have called within in order to be exempt from purging. xxx represents the security level that is exempt from purging. The following example would purge the user file, deleting all locked out users and any user that has not called within the past 120 days. Any user with a level of 90 or greater will be kept in the file even if they have not called within the past 120 days: GAPPACK C:\GAP\MAIN\USERS.DAT U Y 120 90 When packing the message files, the options are: xxx Purge any message older than xxx number of days. Y or N where Y means to delete private/received messages and N means to keep those messages. The following example will pack the main board message file, deleting any message older than 120 days and any private message that has been received: GAPPACK C:\GAP\MAIN\MSGS.DAT M 120 Y It is good practice to pack all of your message files at least once a week. This keeps the message files clean and removes any deleted messages. GAPDOOR.EXE - This program will create the files necessary to run door programs for other BBS's. Help Directory All help files are placed here. Sample files are provided. Page 38 GAP Communications System Files Main Directory The MAIN directory should be backed up periodically. We suggest every other day as a minimum. QUESTxx NEWQUEST ANSWERxx REGIS These are the questionnaire files. ANSWERxx and REGIS are created automatically when a user fills out a questionnaire. Questionnaires are described in more detail in a later chapter. CALLER - This file is created automatically, the first time you run GAP. It contains detailed information about the caller's activities. Its structure is described in a later chapter. CALL.DAT DWNLOAD.DAT DWNLOAD.IDX The Caller Analyzer program will create these files the first time it is run. CALL.DAT holds all of the information contained in the caller logs. The DWNLOAD files are ISAM files which hold the name of every file that has been downloaded. Also maintained are the total times downloaded for each file. DUMMYLOK.DAT - This file will appear only if the system is multi-user. It is created automatically by the setup program. This file allows us to overcome the DOS limitation of not being allowed to read a record in a file while it is locked by another process. FORUM.DAT - Contains configuration information for each of the Forums. SECLEV - This is the times/download byte file. When a user logs on, this file is scanned to determine the user's allowed time in minutes and the total bytes and files that are available for any single day. This file must exist or you and your users will have just 12 minutes per day and no download privileges! Page 39 GAP Communications System Files SECLEV -------------------------------------------------- 5 12 0 0 10 20 15 9 1 10 50 50 999 10 20 60 60 999 10 30 70 70 999 10 30 80 80 999 20 30 90 90 9999 99 0 100 120 9999 99 0 110 220 999 99 0 LEVEL MINUTES BYTES FILES RATIO All five fields must be used. Each field must be delimited with 1 space. The download bytes are the number of K bytes a user is allowed to download. GAP will multiply the number you enter in this field by 1000 to determine the user's allowable download bytes. The maximum files are the total number of files a user is allowed to download in any one day. The upload/download ratio that must be maintained. If a user's level cannot be found in this file, the user will receive the time and bytes associated with the next highest level. Even if you do not wish to enforce ratios, you must enter a number in the ratio field. A ratio of 0 will disable ratios for that security level. If a caller attempts to download a file and his/her ratio is greater than the ratio allowed, a file called RATIO (GEN directory) will be displayed. This file should explain why the caller is unable to download and what must be done to rectify the problem. If you enforce ratios by Bytes, the number entered here is the number of k- bytes that must be maintained. If you enforce ratios by Files, the number is the number of files that can be downloaded per each file uploaded. Note that to prevent system errors, zero uploads is the same as one upload. Page 40 GAP Communications System Files TCAN - This file contains the undesirable names which you wish to prohibit your users from using. If a user tries to log on with a name that is found in this file, he/she will be denied access to the system. TCAN -------------------------------------------------- MARY POPPINS DOCTOR HELL MR. DEVIL EVIL MESSNO.DAT - This file is used internally by GAP. It is created automatically and must remain in the MAIN directory. MSGS.DAT MSGS.IDX These are the main board message files. They are created automatically and are maintained by the program. NETWORK.DAT - In a multi-user system, this file contains information that is shared across the network. It is created automatically by the setup program. USERS.DAT USERS.IDX These files contain the statistics on all of your users. Gen Directory The GEN directory can be a directory on a RAM disk or a hard disk. 7E1 - This file will be displayed to callers who use 7 E 1 communications parameters. It should be a text file written in upper case and perhaps 40 columns. Its use is to inform the caller that some of the screens may appear garbled, that they will be limited to ASCII downloads, and that on subsequent calls they should use 8 N 1 parameters. BLT BLTG BLTxx These are your main board bulletin files. BLT is the menu which lists the bulletins and their numbers. There can be up to 999 bulletins. BLTG is an ANSI color version of the menu. Samples of these files are provided. Page 41 GAP Communications System Files COMMENT - This is the file that is displayed (if it exists) to your users whenever they attempt to enter a comment. Many sysops feel that a comment is just that and deserves no reply. Such a text file will allow you to express your thoughts to your users. DIR DIRG DIR is the menu that lists the available subjects (file categories) on your system. DIRG is an ANSI color version of the menu. DIRS This file lists the file subject numbers and their descriptions. It is not shown to callers at any time. Its purpose is to tell GAP the name of your subjects. It is used by both GAPBBS and GAPFILE. When the name of a particular subject needs to be known, this file will be scanned so that the subject description can be displayed. The chapter FileBase Editor contains details on the actual format of this file. DOORM DOORMG DOORS.DAT DOORM is the menu that lists the available doors. DOORMG is an ANSI color version of the menu. DOORS.DAT is the data file that holds the actual door information GAP needs in order to run the batch files that invoke the doors. Doors are explained in more detail in a later chapter. ENEWS ENEWSG These are the exit news files that are displayed (if they exist) when a user logs off. FILEM FILEMG These are the files system menus. They list the available file commands. FILES.DIR - This file is used by GAPFILE when moving or locating stray files. Its format is described in the chapter FileBase Editor. FORUMM FORUMMG These are the Forum menus that list the available Forums. LOCKOUT - This file is optional. If it exists, it will be displayed to a user when you press the F2 (LOCKOUT) Key. It will also be displayed to any locked out user attempting to log on. Page 42 GAP Communications System Files MAINM MAINMG These are the main menus that list the available commands in the main section of the board. NEWS NEWSG NEWSx These are your news files. They will be displayed to the users after log on. The news file is displayed once per day. In addition, callers may review the news by using the Initial News And Welcome command. You can have up to 10 news files. If you wish to add additional files, append a number after the name. It is not necessary that the files be sequential. For instance, you may have a NEWS, NEWS1 and NEWS5. The only requirement for using supplemental news files is that the basic NEWS exists. NEWUSER - This is the new user welcome file. It is displayed to all new users. NOUP - Many sysops like to prevent callers from uploading files with certain extensions. The NOUP file allows you to do just that. The format is as follows: NOUP -------------------------------------------------- .TXT .DOC .COM .EXE PAGE PAGEG These files are optional. If they exist, they will be shown to the user if you do not answer the page bell. You may use them to give your office hours or other information. PROTO - This file lists the available transfer protocols. It should be kept as short and simple as possible. In addition, any external protocols you add to the file should be labled as such so that callers know exactly what is involved. QMENU QMENUG These are the menus that list the available questionnaires. SMAINM SMAINMG These are similar to the main menus except they list the Page 43 GAP Communications System Files available sysop commands in addition to the regular commands. TWIT - If this file exists, it will be displayed to a user when you press the F8 (TWIT) Key to log the user off. UPHELP - This file is shown to callers prior to prompting them for an upload description. It explains how to enter keywords as well as leave private files. WELCOME WELCOMEG These are the welcome files that are displayed to users at log on. Forum Files Default Directory The default directory is the only directory that is required for a Forum. In addition, only two files are required (MSGS.DAT and MSGS.IDX). If you have a Forum called Ads, you could create a DOS subdirectory called \GAP\ADS. This directory would then become the Forum DEFAULT directory. In this directory, the configuration program will create two files called MSGS.DAT and MSGS.IDX. You do not need to create the DEFAULT, GEN, or UPLOAD directory as they will be created automatically for you during configuration. Please see the file location chart for the names of the files you can create to cause a Forum to run as a mini BBS. NOTE: In order to activate file directories inside of a Forum, you will need a DIR file in the Forum GEN directory. The presense of this file tells GAP that the files system is avaiable while a caller is inside the Forum. If the file is missing, the caller will be told the Forum has no file directories. Page 44 GAP Communications System Files Except for the DIR menu, if GAP fails to find a unique Forum file, it will use the equivalent file from the main board. Gen Directory As with the main board GEN directory, the Forum GEN files may reside on a RAM disk. You may also use a hard disk GEN directory simply to keep the Forum GEN files separate from the DEFAULT files. Up Directory If you wish to keep Forum uploads inside the Forum, they will be placed in this directory. There are two additional files associated with the Forums: KEEPUP KEEPUPG If used, these files are placed in the main board's GEN directory. They are kept there so that they may be shared between all Forums. As explained previously, when a user attempts to upload a file while inside a Forum, and if that Forum has additional file directories, and if the sysop has specified that all uploads are not to be kept in the Forum, GAP will asked the user if he/she wishes to keep the file inside the Forum. The above two files will help explain the reasoning prior to asking the question. One reason for keeping uploads inside the Forum is to prohibit the user from uploading Forum specific files to the main board. The sysop has the option to force all uploads inside of a Forum to remain in the Forum. If the sysop sets the Keep Uploads Inside flag to No and if the Forum has an upload directory, the user will be asked where to send the file. Page 45 Chapter 5 Modem Configuration The modem used with GAP must be of the smart modem variety where it is capable of sending verbose result codes (i.e., RING, CONNECT, CONNECT 2400). In addition, you must be able to configure the DTR and CD lines. If your modem does not meet any of these requirements, GAP will not run. The modem cable must have pin 22 (the Ring Indicator line) connected. If it does not you will have to configure GAP to not answer on True Ring Detect. The following modem conditions must be set: DTR false Send result codes Full result words sent Commands are not echoed back to computer Auto answer is off Carrier detect is off Normal phone jack configuration Enables modem to recognize commands Use normal AT command set You may have to do some experimenting with the modem INIT and RESET strings in order to fine tune it to gapIf your modem is incapable of asserting the Ring Indicator line or if for some reason your modem cable does not have pin 22 hooked up, be sure to set the flag for answering on true ring detect to N. General Information It is important that your modem be set to not automatically answer the phone. If a user disconnects while inside of a door and the modem subsequently answers a call while GAP is recycling, it is possible for a different user to gain access to the system as the person who disconnected. The disconnected user could have been YOU! A very common error in configuring the modem is leaving the factory default of carrier detect always on. GAP must have control over this signal. You will know if your modem is set Page 47 GAP Communications Modem Configuration for CD always true if you find that GAP is unable to hang up a caller. You may also see the modem off-hook string being displayed on the screen. On non-NRAM modems, CD is usually controlled by an external switch. For most NRAM modems, CD is controlled by the "&D2" command. Another common problem is that GAPMENU establishes a connection at the wrong bps rate or the program immediately recycles as soon as a connection is established. This occurs with modems which are slow in returning the CONNECT message. If you experience this problem, set the Seconds To Wait For Connect to 1 or 2 seconds. This will force GAPMENU to wait the specified amount of time before looking for the CONNECT message from the modem. If you find that GAPMENU simply does not recognize the fact that the phone is ringing, set Answer On True Ring Detect to No. When using high speed modems, certain guide lines must be followed in order to achieve the highest throughput possible. With these modems, it is necessary to configure both the modem and the software driving the modem to not autobaud. That is, you do not want the modem to change the computer to modem bps rate to match that of the caller. You want the DTE rate to stay locked in at the higher bps rate. By setting the Opening Baud rate to the highest speed at which your modem is capable and locking in that rate, you will achive the highest throughput possible with your modem. Sample Configurations Note that you must provide your own C/R (carriage return) and delays in your strings. A { represents a C/R and a ~ represents a 1/2 second pause. USRobotics VARModem Internal 2400 USRobotics Courier 2400 External RESET String : ATZ{~~ATZ{ INIT String : ATM0Q0E0H0V1X4S0=0S7=60{ Answer On True Ring Detect : YES Additional Information : These modems require two ATZ's in the reset string. Page 48 GAP Communications Modem Configuration VenTel halfcard internal 2400 bps RESET String : NONE INIT String : ATV1Q0E0X4S0=0S2=43{ Answer On True Ring Detect : NO Additional Information : Uses factory default settings other than those changed by the INIT string. USRobotics Courier HST - External RESET String : ATZ{~~ INIT String : ATH0{ Answer On True Ring Detect : YES Additional Information : To set up the NRAM for GAP, go in to your communications program, set the baud rate to the opening rate you set in GAPSETUP, then type the following: ATC1E0F1M0Q0V1X4B1S2=255 AT&A1&G0&H1&I0&M4&N0&P0&R2& AT&S1&Y1&B1&K1&W Packard Bell 2400 Internal RESET String : AT&F{~~ INIT String : AT&D2E0S7=45S10=50{ Answer On True Ring Detect : NO Everex EV940 2400 RESET String : ATZ{~~ATZ{~~ INIT String : ATE1V1X1&D2S7=60S11=70S0=0{ Answer On True Ring Detect : YES Quick Comm Internal RESET String : ATZ{ INIT String : ATE1S7=255S11=50V1X1S0=1{ Answer On True Ring Detect : No Page 49 GAP Communications Modem Configuration CTS Datacomm 2424ADH RESET String : ATZ{ INIT String : ATM0V1&C1&D2X4S7=30S10=50&W{ Answer On True Ring Detect : YES Additional Information : Configure to disconnect and return to command mode after loss of DTR and disable auto answer until DTR is reasserted. Anchor Lighting Internal F/1 2400 RESET String : ATZ{ INIT String : {AT&FX1V1Q0M0E0S7=60{ Answer on True Ring Detect : NO Additional Information : To configure use the above init string with an &W. Incomm Turbo 2400 External RESET String : ATZ{~~ INIT String : AT&C1&D2S0=0E0M0Q0V1X4{ Answer On True Ring Detect : NO Additional Information : Set all external switches down. Set the delay for Connect to 1 second. Telenetics Internal 2400 RESET String : ATZ{~~ATZ{~~ INITString : ATM0H0E0Q0V1S0=0S7=30{ Answer On True Ring Detect : YES Additional Information : Set the delay for Connect to 1 second. Avatex 2400 RESET String : ATZ{~~ INIT String : ATE0Q0M0X1V1S7=60S11=60 Answer On True Ring Detect : NO Page 50 GAP Communications Modem Configuration Multitech 224EH RESET String : ATZ{~~ INIT String : ATS2=255C1E0X1M0H0{ Answer On True Ring Detect : No Additional Information : Open Com Port at 9600 and lock baud rate. Go into Communications program and type the following: ATB1E0M0Q0V1X1&E1&E4&E7&E8 AT&E15&Q0$MB2400$SB9600$BA0 AT&A0$A1&B0&BS1&C1$D0$F1&G0 AT&I0&MI0$R1&S1&T5&V1&W0 Zoom RESET String : ATZ{~~ATZ{~~ INIT String : ATE0F1Q0V1X4S0=1H0{ Answer On True Ring Detect : NO Hayes 9600 V-Series RESET String : ATZ{~~ INIT String : ATH0{ Answer On True Ring Detect : NO Additional Information : Lock Com port at 19200. Go into Communications program, set baud rate to 19200 and type the following: ATM0L2Q0V1X4W1&C1&D2&S0&K3 AT&T5&L0&G0&J0&P0E0N1B1Y0 ATS0=0S36=1S37=0S38=2&W Set delay for Connect to 2 or more seconds. Page 51 Chapter 6 Doors GAP allows you to set up external programs to be run by your users. Such programs are called Doors. Door programs generally provide for their own communications routines. As such, you need not worry about a loss of carrier while a user is in the door. It is suggested that you not use any door program which depends upon CTTY or any other form of redirection and that you not use any program which requires the use of an external carrier detect monitor (WATCHDOG). To run doors, you will need to create a door menu. This menu will list the available doors on your system. The user will choose a door by typing its corresponding number. DOORM -------------------------------------------------- The Crow's Nest Doors 1 - Power Struggle 2 - Tourist 3 - Trade Wars To tell GAP how many doors you have and what their names are, you need to create a file called DOORS.DAT. This file contains the name of the batch file (without the extension) that runs the door and the security level the user must have in order to invoke it. DOORS.DAT -------------------------------------------------- ADV 50 POWER 50 TW 50 MAX 50 BBSDB 50 The fields must be delimited by a space and the name must be 8 characters or less. Page 53 GAP Communications Doors The first field in each line is the batch file that invokes the door. The batch file is placed in your DEFAULT directory. Such a batch file might look like this: DOOR(.BAT) -------------------------------------------------- echo off cd\gap\doors ps power-1.cfg c: cd\gap gap The last line in the batch file must invoke the batch file which starts GAP. When a caller selects a door to open, GAP will check the DOORS.DAT file to see if the caller has a high enough security to open the requested door. If so, GAP will copy the door batch file to a file called DOOR.BAT, and will then exit to DOS. The startup batch file will then regain control and because it checks for the existence of DOOR.BAT, it will run that batch file. When the door program has completed, its batch file will then regain control and if configured properly, it will run the GAP startup batch file. The first part of that file, checks for the existence of DOOR.BAT and if found, deletes it. When GAP regains control, the presense of GAPDOS.DAT tells GAP that a caller is returning from a door. GAP will delete GAPDOS.DAT and return the caller to the main prompt, either in the main board or a Forum. GAP writes two files prior to exiting through the door. The first, GAPDOS.DAT, is an internal system file and is needed by GAP in order to properly bring the caller back into the system. Under normal operations, you should never see this file since it is deleted upon return from a door. Its presense tells GAP that a caller is returning from a door program. This file is binary and contains information that is vital to the proper operation of the system. It should never be modified while a user is in a door. The second file that GAP writes is called DOOR.SYS. This is a standard door interface file, developed by a door programmer, which makes interfacing door programs with BBS programs a simple task. The file is ASCII and is left on the disk. This file allows us to modify GAP and not have to worry about obsoleting a door program. There are a number of door programs available. The Support board carries quite a few of them. They range from simple to complex in terms of configuration. When first setting up your doors system, it is best to start with the simplest door program first, and after getting a feel for how to Page 54 GAP Communications Doors configure these external programs, move on to the more complex. A program called Tourist is available on the Support board. It is probably the easiest of all doors to configure. It is also one of the most amusing doors available. Each door program will offer suggestions and examples on how they are set up. Page 55 Chapter 7 Questionnaires Description The GAP questionnaire system utilizes a powerful script processor which allows it to think the way a sysop thinks while GAP processes a questionnaire. The sysop is not limited to a simple set of display prompt, get answer scenarios. With a limited but very powerful script language, the sysop can set up his questionnaires and determine what to do with the answers. The sysop is no longer dependent on an external event program to analyze his/her questionnaire answers. The sysop is now completely in control of the questionnaires and their answers. Nothing is hard coded except for the actual script language. Yes/No answers, anything answers, required answers, multiple choice answers are among the few features. GAP even allows the sysop to direct the flow of a questionnaire to another area depending on the answer the user gave. Not only can the sysop upgrade a user's level based on the answers given, but the sysop can also register users in specific forums! There can be 99 main board questionnaires plus one questionnaire for new users. In addition, each Forum can have its own set of files (questionnaires, menus, and answer files). This allows a GAP BBS to have a total of 26,830 questionnaires! The sysop no longer need tell a new user that registration may take 2 or 3 days. GAP's questionnaire processor can take the drudgery out of new user registrations! New users can be registered immediately and automatically with no extra effort on the sysop's part other than to create a powerful questionnaire script! Page 57 GAP Communications Questionnaires Setup Menus = QMENU and QMENUG - Located in GEN Questions = QUESTxx and NEWQUEST - Located in MAIN Answers = Sysop specified - Located in MAIN In GAPSETUP, the sysop specifies the first 6 characters of the answer files. There are two files. One is for new user registration that the new user will be forced to complete if the file NEWQUEST exists, and the other is for the general questionnaires. There is one answer file for each questionnaire file. Each Forum can have its own set of questionnaires. The GEN directory is equivalent to the Forum GEN directory and the MAIN directory is equivalent to the Forum DEFAULT directory. Two menu files must be created. Their format is similar to the doors menu files. One file, QMENU, is a plain ASCII file. The other, QMENUG, is an ANSI color version of the same file. Examples of the actual questionnaires are given later in this chapter. The answer files will be created by GAP as needed. Overview GAP will not ask the user if he/she wishes to fill out the chosen questionnaire. It is up to each questionnaire to ask the user if he/she wishes to continue if the sysop wants to verify that the user has chosen the correct questionnaire. There is no predetermined header to a questionnaire file. The sysop is free to format the headers anyway he chooses. He may also choose to not have a header and simply begin right away with the questions. Anything the user is to see must be preceded with an *. All user input takes place on a separate line. Labels are 8 character (or less) names. They may not begin with one of the processor commands. There is no case distinction with labels. Lower case characters are converted to uppercase before any comparison takes place. Gotos must reference a label. If a label is not found, the questionnaire is aborted and the user is told the questionnaire is not valid. Page 58 GAP Communications Questionnaires A regular goto directs the flow forward in the questionnaire. A reverse goto directs the flow backwards toward the start of the questionnaire. In fact, the processor starts over from the beginning of the questionnaire looking for the label you specified. Caution must be used with gotos. It is very easy to become lost in your own questionnaire if there is an excessive number of gotos. The basic use for a goto is to redirect the flow back up to a prompt and question in case an incorrect answer was given (i.e., didn't answer Y or N, or didn't give one of the choices in a multiple choice). Another use might be for directing the flow to a label that will raise or lower the users security level. Raising security levels will not affect a user if he/she already has a level that is higher than the level specified. Lowering security levels should be used with caution. GAP will make sure that a person with a level of 100 or greater will not be affected by this command. Keep in mind that some of your better callers with higher levels than most may find that they are suddenly at a lower level! Y (yes/no) answers must be followed by 3 commands which can either be labels to do nothing, or gotos to other areas of the questionnaire. They can also be either the Abort or Exit commands. The third line is for a response that was neither a Y or an N. The basic format for the Y command is as follows : Y tells processor to accept a yes/no input x - processor does this if answer is Yes x - processor does this if answer is No x - processor does this if answer is not Y or N The x can be a Goto, a Label, Abort or Exit. If it is simply a label, then the flow will fall through to the next valid command. If the answer were a Yes, and the following line is a label, the next three lines would be skipped. For Yes/No responses, the user is allowed to type in the words as well as Y or N. M (multiple choice) answers must be followed by an equal number of commands as there are choices plus 1 extra line for a response that was not one of the choices. Similar to the Y command, these lines can be either labels, or gotos to other areas. They may also be either the Abort or Exit commands. Page 59 GAP Communications Questionnaires The M command must be followed by the number of choices (up to 9). For instance M9 means there are 9 choices. Following the Mx command, you would then have 10 lines to tell the processor what to do with the responses. The choices for multiple choice must be numeric. It is extremely important to adhere to the required format for the Y and M commands. For the Y command, there must be 3 additional commands following the Y. The M command must be followed by an equal number of commands after the M as there are choices (plus one extra command for a response that was not one of the choices). Failure to follow these guidelines will result in the processor becoming confused and not knowing how to deal with your questionnaire. If an Abort or an Exit command is found as one of the additional commands to the Y and M commands, the user will be displayed an appropriate message. For instance, if in a Yes/No command the user types NO, and the command you entered for a NO response was the Abort command, the user will be displayed a message that his/her answers are being discarded. It is not necessary for you to direct the flow to a different area with a goto so that you can tell the user his/her answers are unacceptable unless you want to do so! ? and R responses are limited to 60 characters. In addition, the text following an * is limited to 80 characters. The ??xx command is similar to the ? command except that you specify the maximum number of lines the user is allowed to enter. A C/R on a blank line will end the input. Your text should inform the user of the maximum number of lines and what to do to end their input: You will have up to xx lines. Press [Enter] on a blank line to end. For the Required command, you must specify the minimum number of characters that the user must enter. The user must enter the required number of characters. The only way for the user to leave this field is to either enter the required number of characters, or hang up. For Date fields, the user will not be allowed to enter an invalid date. The caller must either enter a valid date or hang up. If the user returns out of a Phone field without entering all of the digits of the phone number, the processor will abort. Page 60 GAP Communications Questionnaires If you would like to enter comments into the questionnaire, precede the comment with a . (i.e., .This is a comment). Comments are not written to the answer file. If you would like to enter a heading and have it written to the answer file, precede the text with a : (i.e., : AGE GROUP). The X command allows you to call GAP functions. There are currently four functions hooked up: show_file, pause, comment, and door. The X command takes various parameters depending on how you wish to utilize it. Note that the X is in upper case and the parameters are in lower case. The pause function gives the user the pause prompt. The show_file function is the routine that displays all of the text files on the system: Since you have no way of telling if the user is in expert mode, if you use the Xshow_file command you should also use the Xpause command to force a pause prompt (before and after showing a file). Xcomment allows you to force a user into the message system and automatically be lead into comment entry. When the user is finished entering the comment, he/she will be returned to the exact place in the questionnaire where they left off. Remember, although you may force the user to leave you a comment, you cannot force them to save it! Xdoor # (where # is the number of a door to run) allows you to force a user out through a door. The primary purpose of this command is to force a user into a call back verify door in the NEWQUEST. Note that using this command is the same as the user opening a door by him/her self. GAP will shut down and run the door, so it is not possible to return to the questionnaire. The user will return to GAP and be placed at the main command prompt. This command does not take affect until after the questionnaire is complete. Note that in using this command in a NEWQUEST, the security level to open doors as well as the level to open this specific door must be at least as low as the new user's level. For instance, if you give new users a level of 10, the level for OPEN must be 10 and the level for the door you intend to open (in DOORS.DAT) must be 10. In addition, the door must be working properly. Failure to observe these simple rules will lead to a bit of embarrassment for you with your new users! The Fx command can be used with a range of numbers. For instance, if you would like to allow your callers to register themselves in Forums 5-9, you may use F5-9. Note that there can be no spaces between the -. Page 61 GAP Communications Questionnaires All processor commands with the exception of labels, must be in upper case. All commands must begin flush left! The entire script of the questionnaire will be written to the answer file. This is done because if the answers were simply written to the file, and there were numerous flow changes, you would not know what answers went with what questions. Also, the use of the End command can cause a termination of the questionnaire without all questions having been answered. The questionnaire should end with the End command. Page 62 GAP Communications Questionnaires Processor Commands * - Print anything following. ? - Get an answer. Anything allowed. Answer not required. ??xx - Get an answer. Anything allowed. Get up to xx number of lines. Rxx - Get an answer. Required. Minimum of xx characters must be entered. Y - Yes / No Answer. Mx - Multiple choice. Up to 9 choices. D - Gets a formatted date. (99/99/99) P - Gets a formatted phone number in the form of ((999)999-9999) A - Abort questionnaire. Do not save answers. E - End questionnaire. Save answers. aaaaaaaa - Goto Label. Label must exist. aaaaaaaa - Reverse Goto. Label must exist. aaaaaaaa - Label. 8 chars max. Fxx - Register in Forum xx. +xxx - Raise security level to xxx level. If user is already above this level does nothing. -xxx - Lower security level to xxx level. Does not affect users who have a level of 100 or greater. Xfunction - Execute an internal GAP function. . - Comment prefix. Line not written. : - Comment prefix. Line written. Page 63 GAP Communications Questionnaires Examples The actual questionnaire will appear as follows. Please note that the comments (beginning with '//') are for explanation purposes and should not appear in the actual file: * // equivalent to a blank line ********************************************************** ** Love Forum Registration Questionnaire ********************************************************** *Do you wish to be registered in the Love Forum (Y/N)? Y // get a Yes/No response quest2 // yes answer, goto 'quest2' A // no answer. Abort ?aire A // not Y or N. Abort quest2 // this is a label * *The Love Forum is an adult Forum and requires that you be *over the age of 18. Are you 18 years of age or older (Y/N)? Y quest3 A A quest3 * *Now that we know you are old enough, please leave your *voice phone number. You will not be called but it is *required for registration. P // Get a formatted phone # * *Since you stated that you are over the age of 18 and left *your phone number, you may now have access to the Love *Forum. Your responses to this questionnaire will be kept *on file. * *Did you lie about your age (Y/N)? Y // get a yes/no response A // Yes is not acceptable, abort end // yep, this is the one we want A // sorry charlie, Y or N only end // notice this begins with 'E' * *You may now join the Love Forum. Thank you for completing *this questionnaire. F3 // register user in Forum 3 E // end and save answers You may have noticed that the label end begins with one of the reserved commands? So why is this allowed? It is allowed because the processor looks for commands in upper case. If Page 64 GAP Communications Questionnaires it finds a line and it doesn't know what to do with it, it will simply skip over the line and read the next. It is best to not tempt fate and keep your labels in lower case and not begin them with one of the reserved commands. If the sysop chooses to not use the default abort message that is shown with the Y or M commands, a goto could be used for a non acceptable command instead of the A to direct the flow to the end of the questionnaire where a message can be displayed telling the user why the questionnaire was aborted. The A command can then be used to abort the message. Remember, the default abort message is displayed only when the A command is found as one of the subcommands to the Y or M commands. If you use a goto, display a message, and then use the A command, the user will see only what you show him and not the processor's default. The resultant answer file looks like this: 06/26/89 16:37:37 MICHAEL PART ********************************************************** * Love Forum Registration Questionnaire ********************************************************** Do you wish to be registered in the Love Forum (Y/N)? A: YES The Love Forum is an adult Forum and requires that you be over the age of 18. Are you 18 years of age or older (Y/N)? A: YES Now that we know you are old enough, please leave your voice phone number. You will not be called but it is required for registration. A: (714)493-3819 Since you stated that you are over the age of 18 and left your phone number, you may now have access to the Love Forum. Your responses to this questionnaire will be kept on file. Did you lie about your age (Y/N)? A: NO You may now join the Love Forum. Thank you for completing this questionnaire. Page 65 GAP Communications Questionnaires The distribution disks contain actual examples of some questionnaires. In addition, a wide variety of working formats are available on the support board. Miscellaneous Information If the file NEWQUEST is present in the MAIN directory, then all new users will be forced to fill out that questionnaire. NEWQUEST is displayed after the welcome and the new user welcome and before the news. If the board is closed and the file NEWQUEST is present, the user will be forced to fill out the questionnaire and then GAP will hang up. Any commands in the questionnaire that modify the user's record will be ignored. It is the sysop's responsibility to inform the users why the BBS is hanging up on them. GAP gives no warning messages. The new user welcome can be used for this as can the questionnaire itself. The power of the questionnaire processor can also allow the sysop of an open board the ability to raise the level of a user and register the user in a particular Forum if he/she answers the NEWQUEST questions according to the sysop requirements. Since NEWQUEST is presented to the users before GAP looks up their level in the SECLEV file, they will receive the full time allotment associated with the level you give them in the questionnaire. In all questionnaires, if the command -0 is given, GAP will hang up on the user after the questionnaire is finished. GAP will give no warning messages so your questionnaire should inform the user why they are being locked out. Note that if you issue the -0 command and then use the A command to abort the questionnaire, the user will be unaffected. A good idea would be to direct the flow to a part of the questionnaire that displays messages to the user as to why his/her security is being lowered to 0 and then use the E command to exit the questionnaire. At that point GAP will notice that their level is 0 and hang up. Page 66 Chapter 8 Events Description The GAP Events allow a sysop to set up two times in which GAP will exit to DOS to run external programs. GAP will continuously monitor the time to be sure that the scheduled events take place. Limitations Since GAP allows 2 events, it was necessary to place just 1 limit on the times specified. That being, if you tell GAPSETUP that you wish to run events, you can eliminate either event 1 or event 2 from running by setting its time to 00:00. So a time of 00:00 (midnight) is not a valid time as far as the events are concerned. Setup To activate events, select [Configuration] from GAPMENU. Once in GAPSETUP use the [PgDn] key until you come to the setup screen which shows the three fields for event setup. Answer Yes to the Timed Events prompt. Enter the starting time for event 1 in the Event Run Time 1 field and the starting time for event 2 in the Event Run Time 2 field. The event times must be entered in 24 hour format. If you wish to run just one event, then leave the event time for the event you do not wish to run set to 00:00. It makes no difference to GAP which event you are running so you are free to use either event 1 or event 2. Remember that midnight (00:00) is not a valid event time and that anytime from 00:01 to 00:59 should be entered with the leading zeros rather than '24'. Page 67 GAP Communications Events Running the Events Within 5 minutes of the event time, GAPMENU will enter into a holding period. At 5 minutes before the event, GAPMENU will take the phone off the hook and wait for the event to occur. The 5 minute guard time was chosen so that NO event will be missed. If a user logs onto GAP before the 5 minute holding period, his or her time will be adjusted accordingly and the user will be given a message as to why their time during the current session was decreased. If a user has had his/her time adjusted because an event is scheduled to occur, then the user will not receive any extra time when joining a Forum that gives more time. In addition, uploads will not be allowed 30 minutes prior to any upcoming event. When a user first logs on, GAP will check to see if the time the user has is more than the time remaining until the next event. If it is, then GAP will give the user the time remaining until the event, less five minutes. The decrease in time is not counted against the user and after the event has run, the user may call back and reclaim the lost time. Quirks The only real limitation to the events is that no event can be scheduled at 00:00 hours. GAP will simply ignore such an event time as that is its only way of knowing if one of the two events is set up to not run. Any and all door programs must use the user's time allowed as written to the GAPDOS.DAT file or the user can simply enter thru a door and then exceed their time limit and when they return to GAP, the event will have already passed. Batch Files An event is basically a batch file that is executed when GAP exits to DOS at the specified time. If the batch file does not exist, GAP will simply recycle and bring up GAPMENU and await the next caller. To set up the batch files, you must create the files called: EVENT1 and EVENT2 Page 68 GAP Communications Events These two files must not have any extensions and when GAPMENU executes the appropriate event they will be renamed to: EVENT1.BAT or EVENT2.BAT The event batch files are free to perform any DOS task within the limitations of DOS batch files. When the event is finished with its chores, it must call the GAP.BAT file or whatever name was given to the batch file that invokes GAP. Examples If the sysop wishes to archive his caller log once a day, he/she could set up an event to perform the archiving and the deletion of the old caller log. Let us assume that this event is scheduled as event 1. The EVENT1 file could look like this: EVEMT1(.BAT) -------------------------------------------------- echo off cd \gap\main pkzip caller.zip caller del caller cd \gap gap Of course, this event is very basic and if the sysop does not copy the CALLER.ZIP file off to another directory or floppy disk, each event will cause the CALLER.ZIP to be updated with the new caller log and all previous information will be lost. Page 69 GAP Communications Events The event files are named EVENT1 and EVENT2. They will be renamed by GAP with .BAT extensions when the scheduled event is run. In order for DOS to understand what GAP is trying to accomplish with these files, GAP must be run from a batch file. Such a batch file might look like this: GAP.BAT -------------------------------------------------- echo off if exist remote.bat ren remote.bat remote if exist door.bat del door.bat if exist event1.bat ren event1.bat event1 if exist event2.bat ren event2.bat event2 gapmenu if exist remote.bat remote.bat if exist door.bat door.bat if exist event1.bat event1.bat if exist event2.bat event2.bat if errorlevel 99 gap In case of hardware failures or other problems, the first half of the batch file simply checks for the existence of the various .BAT files. If they exist, then they are either deleted or renamed. After GAPMENU is run, DOS will check the batch file and perform the commands contained in it that come after the command that invoked GAPMENU. In the above example, if DOS finds one of the event files it will run that batch file. Note the last line of the GAP.BAT file. It is very important. If GAP cannot find one of the EVENT files so that it can be renamed to EVENTx.BAT, GAPMENU will exit with an error code of 99. As in all cases of GAP exiting to DOS, whenever GAP wants to be reloaded, it issues an error code of 99 to DOS. The GAP.BAT file must look for this error code! The scheduled event will run, whether or not the event batch file exists. If it does not exist, GAP will exit with an error level set to 99. If your GAP.BAT file does not check for this error level, then your computer will be sitting at the DOS prompt awaiting the sysop to tell it what to do! There is really nothing tricky or mysterious about events. Anyone can run them. The most important criteria is that the GAP.BAT file be set up to check for the presence of the EVENTx files and for the error level of 99. If GAP.BAT is set up correctly according to the above example, then you will be able to run your two events with no problems. Page 70 Chapter 9 Security Files Security Menus GAP will allow you to build security menus. A security menu is a menu which is displayed to the user (according to security level) instead of the regular menu. Both the main board and the files system support security menus. You can have as many security menus as you have user levels. The main board security menus range from 1 - 99. The sysop security menus range from 100 to 255. The files system security menus range from 1 - 255. The security menus are basically identical to their normal equivalents except that they may not include certain commands. For instance, if you do not wish to allow new users to access the files system, you can create a security menu that does not have the Files System command on it. The new user will never know that you have a files system until you update his/her security level. The Forum menus may also be security specific. Examples of some security menus are included on the distribution diskette. To create a security menu, give it the same name as its regular menu counterpart (i.e., MAINM, MAINMG, SMAINM, SMAINMG, FILEM, FILEMG, FORUMM, FORUMMG), except that the security menu has a file name extension that corresponds to the security level it represents: MAINM.10 FILEM.40 FORUMM.110 MAINMG.10 FILEMG.40 FORUMMG.110 Page 71 GAP Communications Security Files Security News Security News Files are similar to the regular News Files except that they are displayed only to a user if his/her security level is the same as the name of the file. For instance, if you have a file that you wish to make available only to those users with a security level of 90, you can create a Security News File that might tell your special users what the name of the file is, or what the password is to download it. The name of the Security News File would be 90 (no extension). Security News Files are placed in the MAIN directory and they are displayed after the regular news file. Page 72 Chapter 10 Text Files General Information To create text files for GAP, simply use your favorite text editor. If you use a word processor, be sure to save the file in ASCII format. In order to provide color equivalents, you will nead to create a file of the same name but with a G appended. The file can be created using any of the shareware ANSI editors. If you change the ASCII version of a file, you must also change the ANSI version if you wish for callers who enable color to see the changes. As a general guideline, try to keep text files under 23 lines or provide for natural page breaks at 23 line intervals. The reason for this is that most callers have their page length set to 23 and will receive a more prompt every 23 lines of text output. It is also possible to use replaceable parameters in all of your text files. These parameters, or Ansicmds, allow you to personalize your text files so that they appear to have been written exclusively for the caller viewing them. We call these Ansicmds because they are more suited for ANSI files than plain text files, although they can be used equally well in non-ANSI files. All text files may be aborted by typing CTRL-K or CTRL-X. Files beginning with an "@" may not be aborted. Page 73 GAP Communications Text Files Ansicmds F - User's First Name L - User's Last Name U - Total Uploads for user D - Total Downloads for user X - Total Upload Bytes for user Y - Total Download Bytes for user V - Number of Files available during this session W - Number of Bytes available during this session T - Number of Times user has been on O - Total number of Doors Opened by user B - Total number of Bulletins Read by user S - User's security level C - User's City H - User's Home Phone P - User's Business/Data Phone M - User's Subscription Date G - User's Birth Date I - User's Last New Files Scan J - Total Messages Read by user K - Total Messages Left by user To use a command, it must be prefixed with an Alt-255 (hex FF, 255, chr$(255), etc). For instance: Alt-255N - Display User's Name Alt-255S - Display User's Security Level The only restriction to the placement of these commands in a file is that they may not be used as the first or second character. The first position in any file is reserved for @ and {. If a ^L (formfeed) is found as the first character, GAP will clear the local screen, send the ^L out the com port, and then test the second character to see if it is an @ or an {. As a reminder, the @ tells GAP to not allow the caller to abort the file. In other words, instead of being given a more prompt when the screen becomes full, the caller will receive the pause prompt. The { suspresses the prompt altogether. This is usefull for long ANSI files where a prompt would not be appropriate. Page 74 GAP Communications Text Files When GAP encounters one of the Ansicmds, it will remove the command and substitute the appropriate parameter. Sounds easy right? Well, it is easy for GAP, but not so easy for the sysop who must create the file. Most of the burden for making this work correctly so that the displays will not be garbled is on the person creating the screen. Sample screens are provided. With ASCII screens, you will be severely limited as to what you may do. For instance, the ASCII screen may not have a border around it. The reason is simple. When GAP inserts the appropriate parameter, everything to the right of the Ansicmd will be shifted by the number of characters in the parameter. To create an ANSI screen with replaceable paramaters, you design your screen in the normal fashion, leaving enough room where you want the replaceable parameter to go. Don't put an Ansicmd where you want the parameter to appear. Just leave enough room for it. When your screen is complete, put the cursor down to the lower right hand corner of the screen, and turn Animation on (assuming you are using TheDraw). Now move the cursor to the point on the screen where your first replaceable parameter is to appear. Enter the Ansicmd (make sure Insert is off). Move the cursor to where the second parameter, if any is to go, and enter the control code. When you are finished, move the cursor to the bottom of the screen and save. To type in an Ansicmd, you would hold down the Alt Key, type 255 on the numeric keypad, then enter the code. Now for the fun part. Your screen will not work as expected while a user is online. The reason is, TheDraw does not always use absolute positioning commands (i.e., Œ[12;21H). You are going to have to use an editor and fine tune the file until it displays correctly. Usually this means using the absolute positioning commands (IE, ANSI CUP), to position the cursor to the correct spot just before the control Ansicmd. Studying the sample files is probably the only way to understand how all of this works. The last line in the file is the key, since that is where the codes are as well as the ANSI CUP commands to place the control codes at the appropriate position on the screen. Page 75 Chapter 11 Error Codes The caller file is maintained by GAP and details the caller activity. Not that this file is Binary and must not, under any circumstance, be edited with a text editor or word processor. The following is a list of the error and system codes: 2 - 200 Errors 202 File Not Found 212 Cant Allocate Memory 213 File Access Denied 224 Too Many Open Files 236 Locking Violation 299 Cant Open Stream 400 User Log In 508 Cant Allocate Memory 512 Cant Save Message 513 Cant Lock Record 514 Cant Update User Record 600 Log Off (normal) 601 Help! 602 Page Sysop 603 View / Change Stats 607 F1 608 F2 Lock Out 609 F3 610 F4 611 F5 Shell To Dos 612 F6 613 F7 614 F8 Twit 615 F9 Sysop Privilege 628 Lost Carrier 629 Keyboard Time-out 630 Expired Time 631 Saved Message (message #) 632 Sysop function 1 View Caller Log 633 Sysop function 2 View Users 634 Sysop function 3 View File Page 77 GAP Communications Error Codes 635 Sysop function 4 Maintain User File 636 Sysop function 5 Dos Functions 637 Sysop function 6 Other Nodes 638 Sysop function 7 Restore Message 640 Abandon Forum 642 Comment 643 Chat With Sysop 650 Join Forum (Forum #) 651 Not A Member Of Forum (Forum #) 652 Download (filename) 653 Upload (filename) 654 Door (doorname) 655 Back From Door 656 Sysop Remote Exit To Dos 657 New User Log On 658 Trash Can Match 659 Wrong Password (auto disconnect) 660 Bulletins 661 Security Violation 662 Download Violation 663 Questionnaire 664 Locked Out User Log On Attempt 665 Attempt To Log On Closed Board 666 Entered Into Node Chat 667 Viewed Other Members 670 Entered Files System 671 Entered Message System 672 Entered Bulletins Area 673 Entered Doors Area 674 Entered Questionnaire Area 675 Entered/Returned Main Area 676 Entered Scan Mail Area Remedies If the caller log shows an error 224, it means you have not properly configured enough file handles. This is done in your CONFIG.SYS file with the statement FILES=25. If you receive an error 212 or 508, it means you do not have sufficient memory to perform a requested function. Try eliminating any TSR programs. If you are running a multi- tasking system, try increasing the size of the partition. Error 202 simply means that a file could not be found. In most cases, this is just an informative error. For instance, it will be logged whenever a caller joins a Forum and that Forum has no news file. If you encounter this error in situations where you know the file exists, the caller log will tell you the exact location and name of the file. This is the exact name and disk directory for the file. You may Page 78 GAP Communications Error Codes have placed it in a different directory or given it a different name. An error 299 normally appears only in the files system and usually when a caller tries to download a file. If you find this error in the caller log, chances are good that the caller tried to download a file that was not where you configured it to be in GAPFILE. In this case, you should update the Where field for the file or run the Update function. In nearly all cases, an error 512 means that GAP had attempted to save a message with a message number that already exists in the message file. A utility program is available on the Support board that will allow you to fix your message numbers. However, to prevent this from occuring, you should never touch the MESSNO.DAT file. In addition, if you are using an echo mail system, you should contact its authors and inform them of the problem. There are over 200 errors that can be generated by the ISAM system. Most of them you will never see. Some of them are not written to the caller log because they are benign. Error 12 is the most common ISAM error. It means a file could not be found so that it can be opened. In nearly all cases, you will be given the name of the file. You need to determine why the file is missing. Either it was deleted, not initially created, or somehow moved to a location other than where it is supposed to be. The number one problem we have found with this error is during initial configuration, the sysop did not answer Yes to save in GAPSETUP. Errors 35, 36, and 37 indicate either a corrupted data file or the disk is full. If there is free space on the disk, it is suggested you pack the data file. Error 101 means that a search request could not be fulfilled. You will see this error when you first configure a Forum and the Forum has no messages. It occurs when GAP displays the message stats upon joining the Forum. It will go away when you enter the first message. When a data file is suspected to be corrupt, you should delete the associated index file (.IDX) and run GAPREBLD. If that does not clear up the problem, you should try packing the file. Often times, with badly corrupted files, you will find that GAPPACK bombs out at the end of the file. In these cases, if you look in the directory that contains the file, you will find a file with a .TMP extension. If you rename this file to FILENAME.DAT (where FILENAME is the base name of the file you were trying to pack), make sure the .IDX Page 79 GAP Communications Error Codes file is deleted, and run GAPREBLD, your data file will be intact and repaired. Page 80 Chapter 12 Call Waiting ARTWORK The Call Waiting screen is the director of the GAP activities. It allows you to configure your system, edit your users, run GAP as the sysop or as a local user, set quick options, run GAPCOMM and, of course, exit to DOS. Sysop In - This function allows you to enter the system as the sysop. It first takes the phone off the hook and then runs gappassword, you will be asked for that password before being permitted to logon as the sysop. Local In - This function allows you to enter the system as a local user. If you need to log on as a user, use this function. Dos (Phone Busy) - To exit to DOS, with the phone busy, use this function. Dos (Not Busy) - To exit to DOS, with the phone on the hook, use this function. Configuration - Use this function to configure your system. A password will be required if you installed it. User Editor - To access the offline user editor, this is the function you would use. If you installed a password, you will be asked to enter it before being allowed to access the editor. Page 81 GAP Communications Call Waiting Toggles - The Toggles command allows you to quickly turn printer logging on/off, turn the Alarm bell on/off, and turn the Page bell on/off. The alarm bell announces each caller as they log on. It also turns your bell on and alerts you anytime a caller makes a mistake. The Page bell alerts you anytime the caller tries to page you for a one on one chat. Filebase - This function allows you to access the FileBase Editor. Gapcomm - This is GAP's own Communications Program. Until GAPCOMM is completed, we have provided a function which will allow you to use this menu choice as a shell. You may hook up any communications program of your choice or any program for that matter. To install the shell, create a batch file called GAPCOMM (no extension). The file is basically the same as the event files. It can perform any DOS command or run any program. For instance, if you wish to hook Qmodem up to the GAPCOMM shell, a GAPCOMM batch file would look like this: GAPCOMM(.BAT) -------------------------------------------------- echo off cd \qmod qmodem cd \gap gap You must modify your GAP.BAT file so that it will recognize and run GAPCOMM when it is renamed to GAPCOMM.BAT: GAP.BAT -------------------------------------------------- echo off if exist remote.bat ren remote.bat remote if exist door.bat del door.bat if exist event1.bat ren event1.bat event1 if exist event2.bat ren event2.bat event2 if exist gapcomm.bat ren gapcomm.bat gapcomm gapmenu if exist remote.bat remote.bat if exist door.bat door.bat if exist event1.bat event1.bat if exist event2.bat event2.bat if exist gapcomm.bat gapcomm.bat if errorlevel 99 gap To use any of the Call Waiting functions, use the up or down arrow key to position the highlight. Press [Enter]. Or, you may simply type the first letter of each function and it will be carried out immediately. Page 82 Chapter 13 User Editor ARTWORK The User Editor is where you perform offline editing of your user file. Since most of the fields are self explanatory, we will detail only those fields that need additional explanation. Add will allow you to add a new user to the data base. By typing Edit you will be able to edit the record of the user currently displayed on the screen. The Subscription Date is the date the user's registration expires. If you do not run a subscription board, this date is meaningless. If you run a private board, you must register any user you wish to grant access. To do so, set the Private User flag to Y. To delete a user, first bring their record to the screen by using the Find function. Pres the [Del] key to delete the record. Note that this function is permanent! You will not be allowed to delete the sysop record. Page 83 GAP Communications User Editor If you wish to register a user in a forum, press Edit and then [PgDn] and the following screen will appear: ARTWORK A Y indicates that the user is registered in the Forum. Use the [Enter] key to move from field to field. The Last Message is the number of the last message read in each of the Forums. There will be as many of these screens as necessary to allow you to enter the Forum registration for each of your Forums. For instance, if you configured 270 Forums, there will be 9 of these screens. The following screen will appear when the cursor leaves the last field on the main screen. It is called the Stats Display. It shows the miscellaneous information about a user. You may also view this screen by using the Stats Command: ARTWORK Page 84 GAP Communications User Editor The following screen will appear if you press Find from the main screen: ARTWORK Locate will allow you to find a specific user by exact name. Search will search for a user by the text string you enter. ARTWORK Update allows you to register or unregister all users in a specific Forum or set the subscription date for users based on certain criteria. To register all users in a forum, type A. To unregister all users from a specific Forum, type U. If you have a number of Forums you would like to register users in, you may type in a range of numbers instead of processing one Forum at a time. For instance, if you need to register all users in Forums 1-9, when asked for a Forum number, type 1-9. Note that spaces between the "-" are not allowed. Page 85 GAP Communications User Editor Typing S from the Update User screen will provide you with a set of functions that will allow you to set a subscription date for all of your users, users registered in a specific forum, or users with a specific security level. ARTWORK Update All Users will set the expired subscription date for all of your users to the date you specify. You also have the options to set the expired subscription date for users based upon their security Level or their Forum registration. There is another command available although it is not shown on the command line. It is called eXtended index. Pressing X will activate the alternate User Index. That index is sorted according to security level and last name. By pressing X, then the Home key, the first user displayed will be the user with the highest security level. Pressing End will display the user with the lowest security level. Page 86 Chapter 14 System Operation This chapter will describe all of the GAP commands a user (or sysop) will see while logged onto the system. The help files give more detailed explanations. Main Menu Commands Abandon Forum - Allows a user to exit a Forum and return to the main board. Bulletins - Allows a user to view the main board bulletins or those bulletins that are specific to a Forum. Comment To Sysop - A user can use this command to quickly enter a comment to the sysop instead of going through the message system. Comments carry the subject COMMENT and are basically messages to the sysop. Enter A Message - This command allows a user to enter a message into whatever message base is active at the moment. Depending upon your configuration options, users may save carbon copy messages. To do so, the original message must be private. By typing SC instead of S at the message disposition prompt, a user may save carbon copies of a private message. They will be allowed to save up to 10 carbons. GAP provides a powerful interactive message editor. The Edit command at the message disposition prompt allows a user to position the cursor anywhere in the message to correct mistakes. GAP allows you to specify the maximum number of message lines per message. Since the message buffer area is dynamic, you may not always be allocated these maximum number of lines. Files System - The Files System is a separate area on GAP. By using this command, the user will enter into a separate area that will cater to any file specific functions. Page 87 GAP Communications System Operation Good-Bye - This is the command that will log a user off the system. Help - All of the menu commands have associated help files. This command will display any help the user needs. Initial News & Welcome - This command will allow your callers to review the News and Welcome files. Join A Forum - Users may join any one of the available Forums by using this command. Membership List - This command was designed specifically for the Forums but works in the main board as well. It will show the name, city, last date on and number of times on of any user that is a member of the current forum. In the case of the main board, it will display all of your users. This is one of GAP's slowest functions since it reads the user file from A to Z to determine if the user is a member. Note that if a user is in a Forum and the user is using a handle, the handle will be displayed and the city will not be shown. New Mail - This command will check the main board messages as well as all of the Forum messages for any new mail the user has. New mail is considered to be any mail that has not been read. If any new mail is found, their message numbers will be displayed. Depending on how active a user is in the various message areas, this function can be either fast or slow. In order to keep the user abreast of what is occurring, some darts will be displayed while the checking is going on. If the user specifies All as the second parameter, then only those new messages since the user's last read message will be displayed. Page Sysop - If a user needs to speak with you now, this function is available. If your Page Bell is turned on, you will be alerted to the fact. To answer the page, press [Ctrl F10] and you will enter into a chat with the user. To exit the chat, press [Esc]. If you do not answer the page, the user will be told that you are not in and will be asked to leave a comment. Questionnaires - You may have up to 99 questionnaires in the main board plus 99 questionnaires in each of your Forums. This command will allow your users to fill out one of those questionnaires. Read Messages - This command places the user into the message subsystem. There are a great many additional commands while in that system. All of them are detailed in the help files. We will explain, here, the major functions. Page 88 GAP Communications System Operation At the read mail subcommand prompt, the user may type * or S to read any new mail since the last time he/she read mail. If a user replies to a message, the message save prompt differs slightly from the regular message save prompt. The user will be allowed to review the original message while replying. In addition, if you have enabled the quoting feature, users may quote all or part of the message they are replying to. While reading threads the user's last message read pointer will not be updated. This is to allow the user to explore the various threads, and then return to normal reading. A thread in this case is any message with the same subject. Since GAP uses dynamic memory allocation with the messages, if any message cannot fit into the memory allocated for it, a Messaged Skipped prompt will be displayed instead of the actual message. This is to prevent memory allocation errors in case the sysop lowers the maximum available lines per message. Marked Messages are those messages that have been marked for reading by the Text Search Messages function. Marked messages remain marked until the user has either read them or has changed to a different area. By typing R M the user can read those messages which he/she had previously marked for reading. Scan Messages - This function will allow a user to view message subjects very quickly. The TO, FROM, and SUBJECT fields of the range of messages will be displayed. Text Search Messages - It is possible with GAP to mark certain messages for reading. This is the function that allows you to do just that. Text Search has two options: Full and Quick. The user specifies the text string to be used as the criteria. A quick search will scan just the message header for a match. A full search scans each message in its entirety for a match. Needless to say, the quick search is much faster but the full search will always find a great many more matches than the quick search. If any match is found, GAP will mark the matched messages. To read those marked messages, the user must use the Marked command from the Read Messages subcommand. Marked messages are lost when a user joins a Forum or enters into the files system. View/Change Stats - The commands associated with this function allow the user to set preferences. Page 89 GAP Communications System Operation Your Personal Mail - This command will show the message numbers corresponding to any mail (TO or FROM) a user in the current area. Chat Between Nodes - In a multi-user system, this command will allow users to chat with one another. If you have enabled NetBIOS Chat, characters are sent to the other node as soon as they are typed. Open A Door - This command allows a user to enter through one of your doors. Who Else Is On - In a multi-user system, this command displays the name and city for all the users that are online in the system. View/Change Stats Commands By entering V from the main command prompt, the user will enter into the View/Change Stats system. Color - This command will allow the user to toggle his/her color graphic displays. Lines Per Page - Allows the user to set his/her page length preference. A lines per page of 0 causes continuous scrolling (i.e., no more prompt). Forums - Allows callers to register or unregister themselves in public Forums. Name / Other Changes - This command allows the user to change his/her name, phone numbers, city, password, handle, and birthdate. If you configured GAP to not allow name changes, the user will not be provided with an opportunity to change his/her name. If you allow handles on your system, the users will be able to input a handle, otherwise they will not see the handle prompt. Transfer Protocol - This command allows users to set their default transfer protocol. The file PROTO must be in the GEN directory or the user will not know what protocols are available. Please see the chapter External Protocols. Xpert Mode - Users can toggle their expert mode with this command. Page 90 GAP Communications System Operation Note that some of these commands are available from the main command prompt while others are available by stacking (i.e., typing V C will toggle color). File System Commands File Commands Browse Text File - This command allows callers to view the contents of any text file on your system. The file must have the extension of .DOC or .TXT. Enhanced Directories - This command is similar to the regular File Directories command except that files are listed in enhanced format. File Directories - This command will display your file directory menu. It includes an expanded more prompt where the user may download a file directly without having to return to the Files System Menu. This command is the gateway for listing the files that are available on your system. Download A File - Users may download files with this command. If the user's default protocol is set to one of the batch protocols or if the user overrides the default by stacking the protocol with the filename (i.e., D FILE.ZIP X), GAP will allow the user to queue up to the maximum files you specified for their security level (in the SECLEV file) for batch downloading. Wile Cards are allowed. However, the first character in a file name may not contain a Wild Card character. In addition, the ? is ignored. Locate A File - This command allows users to locate any file listed in your download directories. It consists of two subcommands that allow for finding a file by wild card name, or by a text string (where a match is if the search string is contained within any of the keywords). New Files - Users may search for new files uploaded to the system by using this command. Upload A File - This command allows users to upload a file. Archive Commands Archive Menu - This command will bring up the submenu for the Archive functions. Page 91 GAP Communications System Operation View An Archive File - This command allows users to view the contents of any archive file. Select An Archive File - Users may select an archive file to process with this command. Transfer A File - This command allows users to download any file contained within the archive. It is not necessary to download the entire archive file if the user simply needs a single file contained within the archive. The Archive submenu will also allow a user to download the complete archive without having to use a separate file function. Note that the Transfer command does not work with .ZIP files. Read A File From Archive - Users may read any doc or text file contained within the archive. Sysop Commands Function Keys F1 - This is the Exit to DOS toggle. If on, GAP will exit to DOS instead of recycling. A flashing D will display on the status line to remind you that it is on. F2 - This is the LOCKOUT key. Pressing it while a user is logged on will lock the user out and log him/her off the system. If the file LOCKOUT is available, it will be displayed to the user prior to logging him/her off. The name of any locked out user via the F2 key will be placed in the Trash Can. F3 - This is the Online User Update Key. Pressing it will take you into the Online User Editor where you may edit the user record of the caller. F4 - This is the Printer toggle. If on, the caller log will be routed to the printer. F5 - This key will allow you to locally shell to DOS. You must have enough memory to load a secondary copy of COMMAND.COM, otherwise the function will fail. To return to the system from DOS, type EXIT. You will be returned to the exact place you were prior to the shell. F6 - This will toggle the sysop page bell on/off. F7 - The caller alarm may be toggled on or off with this key. Page 92 GAP Communications System Operation F8 - This is the TWIT key. You may use it to log a user off the system. If the file TWIT is available, it will be displayed to the user. F9 - This is the SYSOP key. While a user is online, it allows you to take full control of the system. You, or the user, will be allowed to perform any command. The users will remain at their level and will not see any commands other than those which correspond to their security level. It is important that while you use this function, you perform any tasks at hand, and then toggle the function off by pressing the key a second time. F10 - To initiate a chat, press this key. Ctrl F10 - This key allows you to answer the page bell and chat with a user. The entire contents of a sysop chat with a user will be written to a file called SYSCHAT (located in the DEFAULT directory). There must be at least 4096 bytes of free memory or this feature will be bypassed. The file will be appended with each chat so you will not loose what was previously written. Shft Fxx - To display your function key macros, you may press the Shift Function Keys. Home - Displays the main user information on the status line. End - Displays the available status line keys. PgDn - Displays additional user information. Alt I - While entering a message, allows you to import text into the message. You will be asked for a file name. It is important that the text you wish to import be formatted to 72 columns. It is not necessary to have hard spaces for blank lines. Any line which is longer than 72 columns will be truncated. Alt F - This function will allow you to export messages to a file. The name of the file will be MSGS.TXT and will be located in the MAIN directory. While this function is toggled ON, any message you read will be written to the file. It will automatically be toggled off when you leave the Read Mail function. If you are in color mode while using this function, you will be automatically placed in noncolor mode. Up Arrow - Pressing this key will increase the user's time on the system by five minutes. Page 93 GAP Communications System Operation Down Arrow - This key will decrease the user's time by five minutes. Right Arrow - Pressing this key will increase the user's security level by one. Left Arrow - This key will decrease the user's security level by one. The left and right arrow keys will update the status line as your press the keys. The up and down arrow keys will give no indication as to what is occurring until the user issues a command at the main or files prompt. Use with caution since GAP does not care if you have a lead finger! Sysop Functions 1 - View Caller's Log - Allows you to view the current node's caller file, backwards. 2 - View Users - Displays statistics on each of your users. You may view the users either forwards or backwards. 3 - View A File - Allows you to view any text file. 4 - Maintain User's File - This function performs as a mini user editor. You may add users, delete users, find any user, and register/unregister users in any Forum. Some of the user fields will be unavailable with this function. You may register or unregister users in as many Forums as will fit on the command line. Simply separate the Forums with commas (i.e., 1,2,3,4,5,6,7,8,9). You may also type in a range of numbers such as 1-5. Remember that deleting a user is permanent. To scroll through the user file, simply press [Enter]. To change the direction of the scroll, use the [+] [-] keys. Note that when adding or editing a user, GAP will not allow you to give the user a security level higher than your own. This was done to prevent co-sysops from raising their own security level. 5 - Dos Functions - This function allows you to exit to DOS from remote, and to perform DOS commands. There are two security levels associated with this function. To perform DOS commands, the user will need at least the security level associated with exiting to DOS. Page 94 GAP Communications System Operation In order to exit to DOS, you must have the remote batch file set up as described earlier. While performing DOS commands, it is important that you type your input very carefully. You will not see the command being executed. In addition, should you type a command that requires input, your computer will seem to freeze. Use this command with caution. 6 - Other Nodes - In a multiuser system, this command will allow you to view the caller logs of other nodes and to log off a user on another node. There are two security levels associated with this function. To log off another node user, you must have at least the level associated with other node callers. This function is currently not implemented. 7 - Restore Messages - This command allows you to restore a deleted message. To see which messages are deleted, perform a message Scan. Any deleted messages will be marked. Note than only users who can restore messages will see these marked messages while performing a Scan. Message Read Functions There are additional sysop commands available within the message read functions. GAP builds the inner mail more prompt dynamically, which means that depending upon a users level and expert status, some of the following commands will appear in the prompt and some of them will not. Edit Message Headers - Allows for the editing of the TO, FROM, SUBJECT, and Echo Mail status of the message headers. Protect - If the message security is set to public, this command will set it to private. UnProtect - If the message security is set to private, this command will set it to public. Note that it may be a violation of the Electronic Communications Privacy Act Of 1986" for you to perform this function on certain messages. GAP Development Company provides this function for use at the sole discretion of the system provider and accepts no responsibility for its misuse. User File - Pressing F while reading messages will take you into the online user editor and will automatically bring up the user record of the person who wrote the message you were currently reading. Move - This command will move the current message into a Forum. If you are already in a Forum, you have the option of moving the message into the main board message base or into Page 95 GAP Communications System Operation another Forum. Note that you will not be allowed to move the message to its own message base. Page 96 Chapter 15 Caller Analyzer Description GAPCALL is a general purpose Caller Analyzer for GAP. The program maintains its own database of information derived from the caller logs. Since all information is stored in separate data files, the sysop does not have to keep archival copies of his/her caller logs in order to produce reports. GAPCALL produces five separate reports based on the information it has read from the caller logs and the user file. These reports consist of the following : System Statistics Download Files Usage Graphs (regular and ANSI) User Statistics Limitations GAPCALL was designed to run on an IBM (or 100% compatible). It supports the CGA, EGA, and VGA video adapter cards. It will not run on a system equipped with a monochrome card unless that system can support IBM medium resolution graphics. Unattended operations are not supported due to the delicacy of the file manipulations involved. Setup The first step in setting up the parameters for GAPCALL is to select [Configuration] from the GAPMENU. Once in GAPSETUP use the [PgDn] key until you come to the GAPCALL Setup Screen. The first four fields are the numbers of the 4 major Page 97 GAP Communications Caller Analyzer bulletins that GAPCALL produces. These will become the actual bulletins produced by the program. Board Information Download Files Graphs User Statistics Board Information shows your system statistics as derived from the caller logs. The report was designed to fit on a single screen page so only the most essential stats will be shown. Download Files is a list of all the files downloaded from your BBS as derived from the caller logs. Each file will be listed in alphabetical order with the total number of downloads per file shown next to the name. Graphs consists of two files. A normal BLTxx and a BLTxxG. One file is a plain ASCII file, the other is an ANSI color version. These graphs are titled Best Time To Call and picture your board's usage based on the busiest hour. User Statistics shows pertinent data about each one of your users. Last names are not shown except for the first initial. If you do not wish to have any BLTxx files produced, you should enter 0 for the bulletin number in each of these four fields. Otherwise, enter the actual number of the main board bulletin that you wish to have updated. The fifth field in the GAPCALL Configuration Screen is a Yes/No field where you specify if you want the program to actually overwrite your main board bulletins. If you answer Yes to this prompt, then the bulletins in your GEN directory by the same name will be overwritten when you produce reports. If you answer No to this prompt then the bulletins will be written to your DEFAULT directory. There are two safety features built in. If you enter a 0 as the bulletin number, then NO bulletins will be written. If you enter an actual number for the bulletins, and answer Yes to update the main board bulletins, then each time you run the reports, your old bulletins with the same file names will be overwritten. If you answer No to update, then the bulletins will be written but they will go in your DEFAULT directory. Zero (0) as a bulletin number means no bulletins. A number between 1 and 99 means, yes, write the bulletins. A Yes in the Update Bulletins field means write the bulletins to the Page 98 GAP Communications Caller Analyzer main board GEN directory. A No means write the bulletins to the DEFAULT directory. The sixth prompt is a Yes / No field where you specify whether or not you wish to have the date/time stamp on the main board BLT file updated. By setting this to Yes and by having GAPCALL update your main board bulletins, your users will always be notified when the GAPCALL bulletins have been updated. The seventh field is the total number of nodes that are included in the reports. This will show up in the Board Information bulletin. Its purpose is to determine the BBS efficiency percentage. If you are running a single node, set this to 1. If you are running multiple nodes, you need to consider certain factors before you set this to the actual number of nodes that are running. The number you enter here plays an important role in your BBS efficiency rating. If you have two nodes and both of them are active 24 hours a day, you should set this number to 2. If you run 2 nodes, and only one of them is active (the other is used by you in local mode for other tasks), then you should set this number to 1. If you run 5 nodes and all of them are active, you should set this number to 5. Basically, this number is used to multiply the total hours on line by the number of nodes. If you have two nodes then your total hours are actually twice the amount shown in the bulletin. The eighth field is your choice of whether or not you want the program to delete your caller logs after it has read them. Since GAPCALL utilizes its own data base of information, after it has read a caller log it does not need the information contained in the log again. To produce accurate results this field should be set to Yes. Be forewarned however that GAP Development Company assumes no responsibility as to how you set this field up. Each time you tell the program to read your caller logs, it will read the logs not knowing if it has read them before. You must make your own decision as to how you wish to handle your old logs. Running Gapcall Once all the configuration options have been set up, you are ready to run the program. From your DEFAULT directory, type GAPCALL and you will be presented with a menu of choices : [L]ogs [R]eports [Q]uit Page 99 GAP Communications Caller Analyzer Logs will read your caller log. If you have multiple nodes, it will read all of your caller logs up to the limit of 99 nodes. Quit will quit the program and return you to DOS. Reports will present you with another menu of choices: [A]ll [G]raphs [C]aller [U]ser [D]ownloads [Q]uit All will produce all of the bulletin reports with no visual pictures on your screen other than a simple monitor as to what is occurring. All is also used to update your main board BLT file as explained further on. Caller will produce the BBS statistics bulletin. Downloads will produce the bulletin showing all of the files downloaded from your system. Graphs will produce the two graphs showing your board's busiest hours. User will produce a bulletin detailing the statistics on each of your users. Based upon your preferences in GAPSETUP, these reports will either create the main board bulletins or will give you an appropriate message. Because of their length, two of these reports (DOWNLOADS and USER) will have their output directed to a file rather than the screen. Caller and Graphs will be displayed to the screen first, and to their respective BLTxx files second. In order to allow the sysop to see the reports before any final decisions are made, the main board BLT file will not be updated when these reports are selected on an individual basis. Normal Operations The sysop can run GAPCALL and select the options according to his or her preference. This allows the sysop complete control over how the caller logs are read and the reports are generated. To update the main board bulletins the following procedure should be followed: Page 100 GAP Communications Caller Analyzer Run GAPCALL Select Logs to read any caller logs. Select Reports to enter into the reports menu. Select All to generate the reports. The main board BLT file will be updated with the current date/time stamp (based on your preference) only when you select All to generate all reports. This is to allow you to see the individual reports before you make the final decision. Quirks If your GEN directory is set up to run on a ram disk you have a peculiar problem to worry about. GAPCALL reads the GAPBBS.CNF file to determine where to place files. Since the BLTxx files will be written to your GEN directory, if that directory is a ram disk, you may very well loose the updated information if you do not take precautions to copy the newly created files back down to your hard disk. If you do place your GEN directory on a ram disk, you should create a batch file to first run GAPCALL and create the bulletins, and then, after the program is run, copy all of the ram disk GEN files back to the hard disk. In a multiuser configuration, all nodes must be brought down to the DOS prompt prior to running this program. GAPCALL is a single user software product. You may generate bulletins but you may not read caller logs if you have the delete logs set to yes or if users are on other nodes attempting to read the bulletins about to be created. If for some reason you need to start anew, delete the following files from your MAIN directory: CALL.DAT DWNLOADS.DAT DWNLOADS.IDX Page 101 Chapter 16 FileBase Editor Description GAPFILE is an external editor to manage the ISAM files subsystem of GAP. It provides full support for listing directories, updating directories, moving files, viewing archive contents, adding/editing file descriptions, and much more. The GAP files subsystem consists of a set of ISAM files which allow the sysop to manage his file directories in a more orderly fashion. Rather than having several text files which contain a one line description of a file residing in a physical disk directory, the sysop has access to a powerful database which contains detailed information about a file including a keyword field and up to 10 lines of descriptive information. The filebase also contains a keyword data file which allows sysops and users alike to perform quick and powerful searches for specific files. Note: If you will not be converting any old style DIRxx files, please ignore any references to FCNVRT.TXT and conversion. Previous versions of GAP, as well as other BBS systems, used text files to hold information about a file. It is these text files (DIRxx) that are being refered to. Setup The following files are needed: Name Directory GAPFILE.EXE DEFAULT GAPFILE.CNF DEFAULT GAP.HLP DEFAULT GAP.NDX DEFAULT FCNVRT.TXT DEFAULT DIRS GEN FILES.DIR GEN Page 103 GAP Communications FileBase Editor The following files will be created: Name Directory FILES.DAT MAIN FILES.IDX MAIN FILEKEY.DAT MAIN FILEKEY.IDX MAIN GAPFILE resides in the DEFAULT directory where it must have access to the GAP configuration file, GAPBBS.CNF. The sysop must create four files. These are FCNVRT.TXT, DIRS, FILES.DIR, and GAPFILE.CNF. Sample files are provided. FCNVRT.TXT is used only during the initial setup and conversion. Basically, it tells the conversion functions within GAPFILE where to find the files listed in your DIRxx files. Once the conversion is complete, this file may be deleted as it will never be used again (unless, for some reason, you need to start from scratch). The format of FCNVRT.TXT is as follows: FCNVRT.TXT -------------------------------------------------- C:\DL1 C:\DL2 D:\DL3 D:\DL4 D:\UP The file basically represents a one for one correlation of DIRxx to physical directories. In other words, line one of the above sample file tells GAPFILE that all files listed in subject 1 reside in C:\DL1 and to place C:\DL1 in the where field for all files in that subject. This information is needed by both GAPFILE and GAP in order to find a file. GAP does not check a list of physical directories to find a file. Instead, it looks in the ISAM database to determine the location of a file. There must be a matching line in FCNVRT.TXT for each line in the DIRS file (discussed below). If your files are disorganized in the sense that you simply place files in whatever directory deemed fit at the moment, the conversion from the old system to the new will take much longer, since you will have to either manually update each file listing or run a global routine to perform this for you (which can take several hours). If this file does not exists then your ISAM database will be incomplete (there will be no path to tell GAP where to find Page 104 GAP Communications FileBase Editor a file). Your users will be unable to download any files because GAP will not know where they are! The format of DIRS is as follows: DIRS -------------------------------------------------- 1 Communication Programs 2 Read MAC Pictures 3 Programmers 4 Utilities 5 Graphics This file will become a permanent part of your filebase system. It is used by both GAPFILE and GAP. Basically it contains a list that gives a name to each of your directories. Directories are called Subjects in GAPFILE. As you can see, this file is similar to your DIR and DIRG files except this is an internal system file. Notice that line 1 is a description of the files contained in the directory specified in line 1 of FCNVRT.TXT. Each file contained within the filebase must belong to a specific subject. The DIRS file tells GAP and GAPFILE what those subjects are. The DIRS file must be complete! By complete, we mean that if you have 10 directories set up in config, you must have 10 entries in the DIRS file (no more and no less). Note that the format for the file is the same as the rest of GAP's system files. Field 1 is the directory number, followed by a single space, followed by field 2 which is a description of the subject. The format of FILES.DIR is as follows: FILES.DIR -------------------------------------------------- C:\DL1 C:\DL2 D:\DL3 D:\DL4 D:\UP Notice that this file is basically identical to FCNVRT.TXT. In fact, if you created an FCNVRT.TXT in order to utilize the conversion function, you may simple copy that file to \GAP\GEN\FILES.DIR. FILES.DIR is used by the Move and Stray Files Utility functions of GAPFILE. The entries tell the program where the Page 105 GAP Communications FileBase Editor files for a specific subject belong on the disk drive. Each entry in the file must correspond to its respective entry in DIRS. If a Forum also has directories, it will need the following files: Name Directory FCNVRT.TXT FORUM DEFAULT DIRS FORUM GEN FILES.DIR FORUM GEN The FCNVRT.TXT and FILES.DIR for the Forum should list only the additional paths associated with the additional directories (or the paths for the directories unique to that Forum). The DIRS file (which will be used by GAP) should list only the additional subjects for the Forum (or the subjects unique to that Forum). The following are sample files for a Forum that has two additional directories, where Use Main Dirs in the Forum configuration is set to Yes, and the main board has 10 file directories: FCNVRT.TXT and FILES.DIR DIRS ------------------------ ------------------------ C:\GAP\SUP\DIR11 11 Support Forum Files C:\GAP\SUP\UP 12 Support Forum Uploads If a Forum is set up to have unique directories, where Use Main Dirs in the Forum configuration is set to No, the following files might be used: FCNVRT.TXT and FILES.DIR DIRS ------------------------ ------------------------ C:\GAP\SUP\DIR1 1 Support Forum Files C:\GAP\SUP\UP 2 Support Forum Uploads GAPFILE.CNF is a configuration file for the Database Editor. You will need to initially create this file. After that, it will be maintained by GAPFILE. The format of the file is as follows: GAPFILE.CNF -------------------------------------------------- G,H,I,F,C The first line represents the drives you wish to have searched when locating a file. When a new file is entered into the filebase, an existing file updated, or the global Update function used, GAPFILE will check the system drives for the existence of the file. Page 106 GAP Communications FileBase Editor It does this by starting with drive C, searches all of the directories on that drive, and if the file is not found, moves on to the next drive in the system. The reason for line one in GAPFILE.CNF is twofold. If you are running a network you do not want GAPFILE to search your non-networked drives, or perhaps, search the non-networked drives but do so after searching the shared drives. For instance, with Lantastic, if drive C is designated as networked drive G (so that workstations can share drive C), from the host it is possible to use either drive G or drive C. However, the workstations are permitted to use and have access to drive G. If left alone when locating a file, GAPFILE will search drive C first and if the file is found, will use that drive as part of the location of the file. This would be fine for the host, but the workstations would be unable to access the file. By specifying which drives to search, this problem is eliminated. The second reason for this configuration option is to be able to specify when, if ever, a CD-ROM drive is to be searched. Once the directories for a CD-ROM are configured, they are normally not changed. Searching a CD-ROM for a single file can take several minutes. Once configured, the CD-ROM drive can be removed from the list of drives to search. It is not necessary to have anything in line one of GAPFILE.CNF. A blank entry will cause GAPFILE to search all drives in the system (with the exception of the floppy drives). For non-networked, hard disk only systems, the time spent searching is minimal. After you run GAPFILE the first time, you will find that additional entries were placed in the file. This additional information is for internal use and should be left as is. If you need to change line 1 of the file, you may do so but remember to leave the other entries as they are. Page 107 GAP Communications FileBase Editor Running Gapfile When first invoked, GAPFILE will display the first file in Area 0 (main board), Subject 1. The screen will look similar to the following: ARTWORK The following Command Keys are available: F1 - Help F3 - Change Area F4 - Change Subject F5 - List Files F6 - Move File F7 - List ARC/ZIP F8 - Find Matching File F10 - List Subjects Esc - Exit Program Home - Beginning Of File End - End Of File UpArrow - Previous Record DnArrow - Next Record PgUp - Back 10 Records PgDn - Forward 10 Records Del - Delete File The help is context sensitive, which means it changes depending upon what operation is being performed. The available keys are also context sensitive and their function will change depending upon which section of the editor you are in. If you wish to change areas (i.e., from the main board to a Forum), pressing F3 will allow you to do so. F4 will allow you to quickly change subjects. Page 108 GAP Communications FileBase Editor If you would like a familiar listing of the files contained in the current subject, or all files, use F5. F6 allows you to move the current file to any subject/area of your choice. The listing of ARC or ZIP files can be accomplished by using F7. To find a specific file, use F8. F10 allows you to view a list of subjects for the current area. Esc exits the program and returns you to GAPMENU. Pressing Home will display the first file. Pressing End will display the last file. To scroll backwards in the file, you may use either PgUp or the UpArrow key. To scroll forwards in the file, you may use either PgDn or the DownArrow key. To delete the currently displayed file (physically as well as its listing) use the Del key. Note that deletion is permanent and it is impossible to recover the file once it is deleted. Use Add to add a new file to the database. Use Edit to edit the currently displayed file. Various Utility functions will be available. As they are added, they will be listed under the Utilities menu. While in Add or Edit mode, the available keys will change depending upon which part of the editor you are in. While in the top half of the screen, the following keys are available: F1 - Help F2 - This Screen F9 - Quit Edit - Save Esc - Quit Edit - Don't Save Home - Beginning Of Field End - End Of Field UpArrow - Previous Field DnArrow - Next Field PgDn - Edit Description Page 109 GAP Communications FileBase Editor The purpose of the various fields are as follows: Name - This is the name of the file. The name must follow standard DOS conventions and are limited to 13 characters. Where - This is the location of the file (The disk directory where the file can be found). It must represent a valid DOS disk directory. If the file cannot be found in the directory specified, you will be asked if you wish to locate the file. Length - This is the size of the file in bytes. This field will be filled in for you automatically so that it represents the actual size of the file. Date - This is the last modification date of the file. Note that this field is not automatically updated for you because many sysops need the freedom to manipulate the file date for various reasons. Last Access - This is the date the file was last downloaded. Ttl Access - The number of times the file was downloaded. Area - This is the Area the file belongs in. The main board is Area 0. Note that you may not select an Area (Forum) if that area has no file directories as specified in configuration. Subject - This is the subject number of the file. It is here that you will see one use of the DIRS file you had to create. When the cursor moves into this field, a selection list will pop up. This window will list all of the subjects you have available. The cursor will highlight the current subject. To select a subject you may either type in the subject number, or use the [Home] and [End] keys to move from subject to subject in the list. To accept the subject that is highlighted, press Enter. Note that you will not be allowed to enter a subject that is not in the list. For instance, if you have 10 subjects, your choices will be limited to subject numbers 1 - 10. Security - This is the security level needed in order to download this file. The file will never be shown to a user if his/her security level is not at least as high as the file security level. Private uploads to sysop are given a security level of 110. This field defaults to the level given to the Download function. Uploaded By - This is the name of the person who uploaded the file. This field is set to Sysop by default. Password - If you wish to password protect a file, enter the password in this field. Even if a user has the security Page 110 GAP Communications FileBase Editor level necessary to download the file, if the file is password protected, the user will need to give the correct password in order to download the file. Free File - Set this field to Y if you wish to allow the users to download a file and not have the download time or bytes credited against them. Key Words - The words entered into this field should be single entries separated by a single space. The words should be descriptive of the file's function. (i.e., COMMUNICATIONS GAP RBBS BBS MODEM DOORS). These words will be entered into the keyword index file and will be used as the basis of the file search routines in GAP. Although you may enter any words you please, common words such as THE, AN, OF, etc. will be filtered out and not placed in the keyword file. During the conversion of the old style DIRxx files, the file description was placed in this field. When the cursor leaves the Keywords field, you will be in what is called the File Description Editor. You may also enter this Editor by pressing PgDn while the cursor is in any of the above fields. The following keys are available while in this Editor: F1 - Help F9 - Quit Edit - Save Esc - Quit Edit - Don't Save UpArrow - Up One Line DnArrow - Down One Line LfArrow - Left One Space RtArrow - Right One Space PgUp - Previous Page PgDn - Next Page Home - Beginning Of Line End - End Of Line ^Home - Top Of Screen ^End - End Of Screen ^Y - Delete Line ^K - Delete To End Of Line The File Description Editor is a very basic, free form editor. You are limited to 10 lines. The file description will be shown to users when they do an Enhanced file listing. Page 111 GAP Communications FileBase Editor Utilities The Utilities Menu has several options. Update allows you to globally update the file size and directory location for the files in the current subject or all files in the database. During the conversion, if some of your files were in disk directories other than the directory specified in FCNVRT.TXT, you should use this function to globally update your files so that the directory path field will be correct. Otherwise, GAP will be unable to find a file that has an incorrect path field and your users will be unable to download it. This function is also useful for those times when you add a batch of updated files to a directory. Instead of manually adjusting the file sizes and dates, this function will do that for you in one operation. It should be noted that this function can take several minutes to several hours to complete (you may press Esc at any time to stop the updating process). The slowness is not inherent in the function itself, but in the DOS process which is used. If you have a CD-ROM drive, the updating function can take well over 18 hours to complete. Master List will generate a Master File Listing for you. You have the options of specifying a Condensed or Enhanced listing, whether or not to list the files in the Current area or All areas, whether to include Transfer Times at various baud rates, and the file name for the listing. Stray Files allows you to update your database with any loose files. Loose files are considered to be any files which are on the hard drive but which are not included in your database. You may specify the directory to check, the destination area and subject for any loose files found, and whether or not you wish to update the Keywords and File Description as each file is found. If you elect not to be prompted for a description, the files will be saved in the database with a Keyword and File Description of UNCLASSIFIED. Move Files is a global version of the regular Move File function. It will display a list of files for the subject specified and will allow you to type in a new subject for each of the files. It currently does not support moving files to different areas. If you wish to delete a file, type 0 for its subject number. If you wish to leave the file where it is, leave its subject number the same (i.e., don't change it). Page 112 GAP Communications FileBase Editor Selection List The Selection List for the Subject field works as follows: At start-up, GAPFILE reads your DIRS file in the GEN directory to build the list that you select from. The windowing routines take the information in this list and build what is called a selection set. When the cursor enters the Subject Field, the selection set pops up. To make a selection, use the Home and End keys to move through the list. You may also simply type in the subject number directly. The Home and End keys are hardcoded into the windowing routines (by the software designers of the windowing functions) and were chosen so as to not interfere with the field movement keys (Up and Down Arrow keys). When an Area specifies a Forum, the building of the selection set for the Forum is similar to the above, but the list is not built until the cursor moves from the Area field to the Subject field. This allows us to use two selection lists where the second list is shared between each of the Forums (if they have file directories). The first time you move from Area to Subject, you may notice a slight delay as GAPFILE reads your DIRS file for the specified Area (if an Area other than 0 is specified). Note that GAPFILE will refuse to run if it encounters a bad DIRS file. For the main board, this refusal will occur at start up. For a Forum, you will be notified that the Forum DIRS file is invalid when the cursor moves from the Area to the Subject. If this occurs, you will need to create a proper DIRS file for whatever Area is indicated. Remember that GAP will assume everything is set up correctly. A proper DIRS file is one that has an entry for each directory you have set up. A one for one correlation (no more and no less). Saving While in the top or bottom half of the editor, pressing Esc means you wish to abort the process and not save. In order to save any changes made, you must press F9. You may press F9 at any time to quit the editing process and save your work. Page 113 Chapter 17 External Protocols General Information GAP allows the sysop to define up to 8 external protocols. To implement these protocols, you will need an external protocol driver. In configuration set the External Protocols option to Yes and in the field below, enter the letters which will represent the external protocol. You will need to edit your PROTO file to show the external protocols you have added. It is a good idea to keep them separate from the internal protocols and perhaps label them as external so the users know what they are dealing with: PROTO -------------------------------------------------- File Transfer Protocols [A]scii [I]modem (ECC) [X]modem [F]Xmodem 1K (ECC) [C]rc Xmodem [G]Ymodem-G (ECC) [1]K Xmodem [Z]modem [Y]modem [N]one External Protocols [D]sz (Zmodem) [J]modem In order for GAP to call up the external driver, you will need to create two batch files for each external you wish to support. The download batch files are called EXTSx.BAT and the upload batch files are called EXTRx.BAT, where the X is the protocol letter for your external protocol. These files go in your GAP DEFAULT directory. The actual driver may be placed in any directory that is in the DOS path. If you were to add Jmodem as an external protocol, the batch files would appear as EXTSJ.BAT (send) and EXTRJ.BAT (receive). Remember that send is the same as download and receive is the same as upload. Page 115 GAP Communications External Protocols When GAP shells to the external driver, it will pass 3 parameters in the following order: PORT, DTE BPS RATE, PATH\FILENAME A sample batch file used to send a file with Jmodem would appear as follows: EXTSJ.BAT -------------------------------------------------- echo off cls jmodem S1 %3 The external driver must return an exit code to the operating system. This exit code is returned to GAP by COMMAND.COM. An exit code of 0 means the transfer was successful. Any other code means an unsuccessful transfer. The sysop status line will remain on the screen during the external shell. Note that you must have enough free memory to accomodate both GAP and the external driver. You should be aware that when executing the external protocol, if the batch file cannot be found, COMMAND.COM will issue an error message to the console but it will return an exit code of 0 to GAP. This means the user will be credited with the download (or upload) even if the attempt to shell to the protocol was unsuccessful. Note that many protocol drivers do not restore the com port exactly as they found it. You should not use any external program which is so poorly written that it does not follow good programming practices. It should also be noted that Jmodem writes directly to the screen. This precludes it from operating under a multi-tasking system and it also means that if given the opportunity, it will overwrite GAP's status line (the reason for the CLS in the batch file). Batch Downloads Because GAP allows callers to conceptually download an unlimited number of files at one time (the limit is defined in the SECLEV file by the sysop), GAP must have some method of keeping track of the requested files, their disk directory location, and their size. For batch protocols, GAP writes this information to a file called FILELST.DWN. When it comes time to do the actual file transfer, GAP reads this file one record at a time (the file is binary) and passes the appropriate information to the protocol routines. There is a utility program called READBTCH that will read this file and create a text file suitable for DSZ or any protocol Page 116 GAP Communications External Protocols that utilizes the DSZ convention of passing the name of a text file that contains the names of the files to transfer. The External Protocol letter of D is reserved for DSZ. You are free to assign any protocol to this letter but you should be certain you understand the manner in which GAP recognizes the D and assumes it is DSZ. If the caller's protocol is set to D, GAP will allow the caller to enter into batch mode. This means the caller will be able to grab all the files at one time that he/she wishes (up to the sysop imposed limit). Batch downloads are not possible with other external protocols. During a D type of external download, GAP will shell out to the external in the normal fashion. However, because the D is considered to be a batch protocol, GAP knows absolutely nothing about the files the user has downloaded. In other words, when the caller returns from the external shell, GAP will not know anything about what occurred. In order to update the filebase as well as the user record, GAP needs to know what files were transfered along with their size. It is for this reason that we have dedicate D to DSZ. When GAP regains control, it will read the DSZLOG (or whatever name you gave to the DSZ environment variable DSZLOG). This log provides all the information GAP needs to know in order to properly credit the caller with the downloads and to update the filebase. You must make certain that DSZ is configured to produce this log. If it does not exist, your callers will be able to download as many files as they wish without being credited with the download counts. Page 117 Chapter 18 Questions & Answers Question: I have number of news files that I want my callers to read, however most of them either answer No at the more prompt or type CTRL-K to abort the files. How can I force them to read these files in their entirety? Answer: Place an "@" as the very first character in the file(s). When GAP encounters this character it will issue the pause prompt instead of the more prompt and will disable the CTRL-K and CTRL-X keys. Question: When a caller logs off, my modem will not hang up. Answer: You probably have your modem configured such that carrier detect is always on. The modem needs to be set so that GAP has complete control over this signal. For modems that do not have NRAM this is usually controlled by an external switch. For NRAM modems, this is normally controlled by the &D2 command. Question: I am trying to configure my system for the first time. However, when I go into the user editor, the program hangs for a number of minutes, then when I try to edit and save my sysop record, it gives me an error message and the record does not get saved. Answer: The multi-user version requires that SHARE.EXE be run prior to running any of the GAP programs. Page 119 GAP Communications Questions & Answers Question: I am using a 9600 baud modem and have my com port locked in at that rate, yet when callers download using Ymodem-G or Zmodem, they get less than 1000 cps. Answer: In order to achieve better than 9600 cps with a high speed modem, you need to set and lock the com port at 19200 (or 38400). In addition, your callers need to call in at 19200, not 9600. Setting the MNP to level 5 also speeds up throughput. Question: I have my com port set to 19200 but when a caller logs on at that speed, the status line says 9600. Answer: The 9600 baud modems do not return a CONNECT 19200 message, they return CONNECT 9600. That is the speed that GAP displays on the status line. Question: When using Ymodem, the system seems to hang after sending a file. About a minute later, it will come back with a timeout message. Answer: The caller is not using Ymodem. Ymodem is a batch protocol and the hang you see is GAP waiting for the receiver to acknowledge the end of batch signal. The caller is no doubt using Xmodem 1k. Question: Whenever a user tries to upload a file, GAP gives them a Sorry, insufficient free space and will not allow the upload. I've got more than 4 megs of free disk space! Answer: One of two possibilities. The first is you have the Minimum Free Upload Space set too high. The second and most likely, you did not enter a drive designator in front of the upload directory path in configuration. GAP needs to know which disk drives the uploads are going to. If you do not enter a disk drive in front of the path, GAP has no idea what drive to check for free space. Page 120 GAP Communications Questions & Answers Question: There is a serious problem with text files. Whenever I change one of my files such as the NEWS, the changes are not shown to callers. GAP still shows the old version of the file. Answer: First, it is physically impossible for GAP to show an old copy of a news file. If you modified the NEWS file in the GEN directory, that is the file GAP displays. Chances are, you are not updating the color version of the file and your callers who enable color mode are seeing the old version. Question: Why does GAP keeps changing my security level? Sometimes it increases it and sometimes it decreases it. Answer: You are using the left and right arrow keys and changing your own security level! GAP does not automatically adjust levels. When entering messages, remember that the arrow keys are sysop functions, not cursor movement keys. Question: The status line at the bottom of the screen scrolls up and wont stay put. Answer: You are using an ANSI driver or video speed up TSR that writes directly to the screen. GAP cannot protect the status line if another program is intercepting DOS and sending video output directly to the screen. Question: Every once in awhile when using Sysop function 1 to view the caller log, the log displays all over the screen instead of nice rows and columns. Also, GAPCALL produces very strange efficiency ratings. Answer: You are either editing the caller logs or allowing a door program to write to them. The logs are binary and as such cannot be edited. Page 121 Index External protocol, 35, 36, ANSI, 9, 18, 33, 73, 74, 43, 115, 116, 117 75, 121 External Protocols, 20 Ansicmd, 75 Ansicmds, 20 Forum ASCII, 9, 18, 33, 41, 54, Configuration, 25, 26, 73, 75 27, 28, 29 Directories, 3 Batch downloads, 35, 117 Files, 5 Batch files, 2, 35, 42, 68, Handles, 15 69, 115 Security, 26 Bulletins, 14, 16, 24, 26, Subscription, 27 41, 74, 87, 98, 99, 101 Handles, 15 Forcing, 16 Maximum, 14 ISAM, 37, 39, 79 Caller Analyzer, 9, 24, 36, Keyboard Inactivity, 18 39, 97, 98, 99, 100, 101 Last caller, 16 Caller File, 9, 77 Locked Out Users, 15, 22, Callers 23, 38, 42, 66, 92 Restricting, 12 Log-on Closed board, 15, 66 Quick, 16 Color Default, 17 Messages Files, 9, 33 Carbon Copy, 18 Comments, 27, 87 Deleting, 18 Corrupted Files, 37, 38, 79 Exporting, 93 Importing, 93 Directories Lines, 18 Number, 14 Maximum, 18 Disk cache, 2 Private, 18, 27, 87, 95 Disk Manager, 2 Quoting, 18 Doors, 10, 28, 42, 53, 54, Validating, 18 58, 61, 90 Batch Files, 54 News Configuring, 53 Security, 72 Menu, 53 News Files, 43, 72 Error Protocols, 115 ISAM, 77, 79 Sharing, 8 Quoting, 18 Events, 17, 67, 68, 69, 70 Disabling, 18 Expired Subscription, 13 Ratios, 10, 19, 40 Page 123 GAP Communications Index Registration Forcing, 15 Remote, 10, 30, 34 Seclev, 19, 39, 66, 91, 116 Security Levels, 8, 10, 13, 14, 16, 19, 20, 26, 38, 40, 53, 59, 71, 72, 86, 91, 93, 94, 95, 110 SHARE, 1, 8 Subscription Date, 16 Enforcing, 15 Expired, 13, 16 Forum, 27 Period, 15, 16 Supplemental News, 43 Sysop Configuration, 30 Forum, 26 Levels, 8 Paging, 43, 88 Text Search, 89 Time Additional, 27 Enforcing, 15 Extending, 19 Upload Credit, 19 Directory, 10, 14, 26 Preventing, 43 Private, 20, 27 Uploads Forum, 3 Welcome File, 16 New User, 9 Welcome File, 9 Page 124