*************************************************************** * * * GAP * * Communications * * * * * * * * * * * * Guide To Operations * * * * Third Edition * * * *************************************************************** This manual is (C) Copyrighted 1987-1992 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 Communications logos (including the following slogan) are trademarks of GAP Development Company: The Future in Electronic Information Systems 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, GAPMAINT and any other program that is distributed under the GAP Communications logo is/are trademarked/copyrighted by GAP Development Company. IBM and TopView are trademarks of International Business Machines Corporation. DesqView is a trademark of Quarterdeck. Courier HST is a trademark of USRobotics, Inc. Hayes and Smartmodem are trademarks of Hayes Microcomputer Products, Inc. LANtastic is a trademark of Artisoft, Inc. Novell and NetWare are trademarks of Novell, Inc. Contents Introduction 1 Minimum Requirements 3 Setup 5 Directory Structure 5 File Locations 7 Forum File Locations 9 Installation 9 Configuration 11 Sysop Security Levels 13 File Names 15 Drive/Path Specifications 17 Modem Configuration 18 BPS Rate Restriction 21 Main Menu Commands 22 File Menu Commands 24 View/Change Stats Commands 25 Miscellaneous Information - One 26 Miscellaneous Information - Two 29 Miscellaneous Information - Three 32 Subscription Configuration 35 File System Options 37 Events.i.Events 40 Strings and Prompts 40 Function Key Macros 42 Forum Configuration.i.Forum 43 Files Menu Options 48 Sysop Configuration 49 Page iii GAP Communications Contents System Files 51 Default Directory 51 Help Directory 57 Main Directory 57 SECLEV Editor 60 Gen Directory 62 Forum Files 67 Default Directory 67 Gen Directory 68 Upload Directory 68 Special Batch Files 68 ARCTRANS.BAT 69 UPCHECK.BAT 69 LOGON.BAT 73 QWK/REP Sub-System 74 Description 74 Setting Up 74 Modem Configuration 79 General Information 79 Sample Configurations 81 Doors 87 Doors Data File Editor 88 Questionnaires 93 Description 93 Setup 94 Overview 94 Processor Commands 103 Examples 103 Miscellaneous Information 106 Events 107 Description 107 Setup 107 Page iv GAP Communications Contents Running the Events 110 Batch Files 111 Examples 111 Text Files 113 General Information 113 Security Files 114 Security Menus 115 Security News 115 UserInfo Files 116 AnsiCmds 117 Special AnsiCmds 119 XCodes 119 Creating XCodes 120 Caller Log 123 Errors 125 Call Waiting 127 Sysop Defined Screens 135 Sysop Mail 138 User Editor 139 Command Keys 144 Special Fields 145 System Operation 147 Main Menu Commands 147 Enter Mail Sub-Commands 150 Read Mail Sub-Commands 150 View/Change Stats Sub-Commands 152 File System Commands 153 File Commands 154 Archive Commands 155 Miscellaneous Commands 156 Page v GAP Communications Contents Sysop Commands 156 Function Keys 156 Sysop Functions 158 FileBase Editor 161 Description 161 Setup 161 Running Gapfile 166 Utilities 172 Selection List 177 Saving 177 CD-ROM Usage 178 Command Line Interface 186 Indirection Files 188 External Protocols 189 General Information 189 Questions & Answers 195 Index 205 Page vi Chapter 1 Introduction Welcome to GAP Communications! Because of the overwhelming response from System Operators around the world, GAP has become the standard in on-line communications software. Remote communications, or Bulletin Board Systems (BBS), have become the wave of the future. Bulletin boards are no longer the private domain of the hobbyist. Companies throughout the world are using GAP Communications to provide on-line information, technical support, as well as local and remote E-Mail services for their staff. Whether you are a private user who needs fully powered remote access to your home computer system, a person who simply wants to open his computer up to anyone who wishes to call in and utilize the benefits you provide, a small business, or a large corporation, GAP Communications is your software of choice. With GAP Communications, you are always open for business. Customers and your staff can access your office or home computer 24 hours a day to transfer data or leave important memos, reports or sales orders. On a local area network, GAP provides E- Mail capabilities far surpassing those of dedicated mail systems. 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 manual carefully. Installing a BBS system can be complicated due to the many individual files involved. Page 1 GAP Communications Introduction The Installation program contained on the Master Distribution diskette number 1 together with the Setup program (which will automatically be invoked after the install process) will provide you with a basic BBS system in minimal time. GAP is basically made up of 3 types of files - "executable", "system" and "text". The executable files are those programs that are required to make your BBS system operate. The system files are those files that are either created by GAP as needed, or are initially created by you if you wish to use a feature associated with the file. System files are generally placed in your MAIN directory, however some of them are unique to each node and are therefore placed in your DEFAULT directory. Files in the MAIN directory are shareable between nodes. Files in the DEFAULT directory are specific to each node and are not shared. Text files are those files that are displayed to your users. These include Menu, Help, Bulletin, News, and Welcome files. These files are created by you using a Text Editor and an ANSI Editor (if you wish to provide color versions of these files). Text files are also shareable between nodes. However, because sending files through a network can be time consuming, instead of placing these files in the shareable MAIN directory, they are placed in the static GEN directory which can be either a directory shared by all nodes or a directory that is on the local hard disk of each node. Since the Text files are static in nature (their contents do not change or change only on a pre-determined basis), these files may be placed on a RAM disk to speed up access time. GAP comes with default system and text files which will be installed for you automatically. You are encouraged to look at and modify these files to suit your own tastes. You may not like the way we have laid out the Menus or you may not like the colors we have chosen. Please feel free to change any and all of these files to reflect the type of user interface you would like to convey to your callers. The basic user interface that your callers will see when they dial in comes from your Main and File Menus. You are responsible for providing the menus since GAP will only provide a "command prompt" when it is waiting for user input. Because you design the menus yourself, your BBS will look and feel the way you want it to. Each of the chapters in this manual will lead you step by step into the configuration and design of your own personal BBS Page 2 GAP Communications Introduction system. The largest and most important chapter is Configuration. Most of the configuration for GAP is performed through GAPSETUP. This program provides extensive on-line help, so if a configuration option is confusing or you need further explanation, it is available by pressing the F1-Help key. Although our installation program will have you up and running with a fully configured BBS in under 10 minutes, in order to provide the user interface you wish to convey to your callers, you will need to go through the configuration one step at a time. It is perfectly normal to make mistakes or to change your mind about something. If you make a mistake about a configuration option and things just don't seem to work quite right, don't worry about it. We've all been there. Just try again. Minimum Requirements + IBM AT or 100% compatible (386 required to run Multi User under a Multi Tasking system such as DesqView). + 640K memory (2 megabytes or more if Multi Tasking). + 1 360K floppy drive. + 1 Hard Disk (40 MB minimum). + CGA, EGA, or VGA monitor. + Hayes AT Command set compatible modem. + DOS 3.3 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 since GAP is fully DESQview aware. The Multi User versions of GAP are not Multi Tasking, meaning they require either a Network or some sort of Multi Tasker such as DesqView. 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. 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 will provide Page 3 GAP Communications Introduction information on how to configure GAP for LANtastic and NetWare Lite, however it is impossible for us to give detailed information on Network setup 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 some knowledge of 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 expanded memory. If you are using an XT, allocate 128k of regular memory to the cache. When using a disk cache, you should lower the number of buffers in the CONFIG.SYS file to 3. If you are running the Multi Node version of GAP, you should have received, in addition to this manual, a supplemental booklet called Multi Node Operation. This booklet provides information on configuring your network or multi tasker for GAP. Page 4 Chapter 2 Setup Directory Structure In order to insure correct operation of your BBS, we recommend that you use a directory structure that is consistent and easy to manage. The Install program creates the necessary GAP directories for you, however you may want to use the chart on the following page as a guideline should you need to create a directory structure for other nodes or as a visual means to understanding the general layout of GAP. Page 5 GAP Communications Setup GAP Directory Structure ***************************************************************** * * * Root Directory * * | * * +-- GAP DEFAULT Directory * * | * * +-- Download Directories * * | * * +-- Forum DEFAULT Directory * * | | * * | +-- Download Directories * * | | * * | +-- GEN Directory * * | | * * | +-- UPLOAD Directory * * | * * +-- GEN Directory * * | * * +-- HELP Directory * * | * * +-- MAIN Directory * * | | * * | +-- UserInfo Files * * | * * +-- UPLOAD Directory * * | * * +-- QWK/REP Directory * * * ***************************************************************** The DEFAULT Directory is the home directory for the BBS and in the case of a Forum, it is the base directory for that Forum. The MAIN Directory is where the dynamic files are placed. These include the User and Main Message database, the Filebase, Questionnaires and their answer files, as well as other files that contain sensitive information. The GEN Directory is where the static files are placed. Since these files rarely change while a caller is on-line the GEN directory may be placed on a RAM disk to speed up access to its Page 6 GAP Communications Setup files. In this directory you will find the Menus, Bulletins, and other informational files. It is not necessary to place your Download and Upload Directories as subdirectories under the GAP Default Directory. In fact, many Sysops use a separate disk for these directories. Since the files in the download directories do not grow or change position on the hard disk, your disk optimizing chores will be easier if these files are placed on their own hard disk. 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 unless you want the Forum to have its own specific menus or informational files; nor do they need an UP directory unless you choose to keep uploads inside the Forum. The Forum Download Directories are necessary only if you have additional file directories available in the Forum. File Locations The following is a list of the actual files which should be placed in their respective directories: Page 7 GAP Communications Setup +----------------------------------------------------------------+ DEFAULT MAIN GEN HELP | | |----------------------------------------------------------------| Door Batch Files ANSWERxx 7E1 All Help Files | | DOOR.SYS CALL.DAT BIRTH(g) | | EVENTS.DAT CALLERx BLT(g) | | EVENTx.BAT CHAT.1 BLTxx(g) | | EXTRx.BAT DUMMYLOK.DAT CLOSED(g) | | EXTSx.BAT DWNLOAD.DAT COMMENT(g) | | FILELST.DWN DWNLOAD.IDX DIR(g) | | GAP.BAT FILEKEY.DAT DIRS | | GAP.HLP FILEKEY.IDX DOORM(g) | | GAP.NDX FILES.DAT DOORS.DAT | | GAPBBS.CNF FILES.IDX ENEWS(g) | | GAPBBS.EXE FORUM.DAT EVENT(g) | | GAPCALL.CNF MEMBER.DAT EXPIRE(g) | | GAPCALL.EXE MEMBER.IDX FILEM(g) | | GAPCALL.HLP MESSNO.DAT FILES.DIR | | GAPDOOR.EXE MSGS.DAT FORUMM(g) | | GAPFILE.CNF MSGS.IDX KEEPUP(g) | | GAPFILE.EXE NETWORK.DAT LOCKOUT(g) | | GAPMAINT.CNF NEWQUEST LOGON | | GAPMAINT.EXE QUESTxx MAINM(g) | | GAPMAINT.HLP REGIS NEWS(g) | | GAPMENU.CNF SECLEV.xxx NEWSx(g) | | GAPMENU.EXE TCAN NEWUSER(g) | | GAPMENU.MNU USERINFO NOPAGE(g) | | GAPMENUx.SCR USERS.DAT NOTIME(g) | | GAPPACK.EXE USERS.IDX NOUP | | GAPREBLD.EXE PAGE(g) | | GAPREPRT.EXE PROTO(g) | | GAPSETUP.EXE QMENU(g) | | GAPSYS.DAT RATIO(g) | | GAPUSER.EXE REGINFO(g) | | GAPUSER.HLP RESBAUD | | GAPUSER.NDX SMAINM(g) | | GMFORUM.CNF TWIT(g) | | READBTCH.EXE UPHELP(g) | | REMOTE.BAT UPLOAD(g) | | WELC(g) | | WELCx(g) | | +----------------------------------------------------------------+ Note that some of those files will be created by the setup program and are not included on the distribution diskettes. Also Page 8 GAP Communications Setup many of them are optional (they must be created if you wish to utilize them). Forum File Locations The following is a list of files which can be unique to each Forum: +----------------------------------------------------------------+ DEFAULT GEN UP DOWN | | |----------------------------------------------------------------| ANSWERxx BLT(g) Forum Up Forum Down | | MSGS.DAT BLTxx(g) | | MSGS.IDX DIR(g) | | QUESTxx DIRS | | DOORM(g) | | DOORS.DAT | | FILEM(g) | | FILES.DIR | | MAINM(g) | | NEWS(g) | | QMENU(g) | | SMAINM(g) | | +----------------------------------------------------------------+ 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 The installation program will create the necessary file directories and copy the GAP files to your hard disk. The initial configuration of GAP will assume a default hard disk of Drive C:. If this is the drive that you installed to, then your GAP system will be ready to run after the installation process is finished. After the installation program has finished Page 9 GAP Communications Setup installing the GAP files, you will automatically be taken into the Configuration Editor. If you are satisfied with the defaults provided, exit out of the program (Select the Quit Menu and choose the Save option). Next you will be taken into the User Editor. The record you will see is your sysop record. You need to change the First, Last, and Password fields to names of your own choosing. Do not use your real name and do not use a password that you use to call other systems. After making the changes to your sysop record in the User Editor, press Esc (press Y to save changes when asked) and then select Quit from the Menu. Using the defaults provided, your GAP Communications system is ready to go. If you like, you may now log on as the sysop. Page 10 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 | | gapmenu | | 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. 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 manual will describe the configuration of a single node system only. If you are running a multi user system, you will need to perform the configuration from each of your node's DEFAULT directories. This is most easily accomplished by copying the GAPBBS.CNF file from the DEFAULT directory of your main node (after you have fully configured it) to the DEFAULT directory of Page 11 GAP Communications Configuration the secondary node, then invoke the Configuration Editor from the secondary node's Call Waiting screen, change the node number and any other configuration parameters specific to that node, and save. It is not necessary to have multiple copies of any of the programs if you have a DOS path set to your main node's default directory. +------------------------------------------------------+ 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. If 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 and they all have help available by pressing the F1-Help key. However any option which requires more explanation will be described here in more detail. Page 12 GAP Communications Configuration 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. In the Sysop's Country field, you should enter the name of the country in which your BBS operates. For instance, in the United States you would enter USA. In Canada, you would enter CANADA. This field is used as the default country for new users. Read Private Mail is the level that a user must have in order to read any private messages that were left via the Enter Mail command or the Reply to Message command. Read Comments is the level that a user must have in order to read any comments that were left to the sysop. Note that the sysop will not be able to read private mail or comments if he/she does not have at least the security level assigned to these commands. Protect/UnProtect Messages is the level that a user must have in order to make a private message public or a public message private. Page 13 GAP Communications Configuration Read Without Updating Read Flag is the level that a user must have in order to read messages without GAP flagging any message that is to the user as having been read. Edit Message Headers is the level that a user must have in order to edit the header portion of a message. Attach Files To Messages is the level that a user must have in order to attach an uploaded file to a message. Note that all of the above Message System commands will be explained in detail in the chapter System Operation. The security level for these commands are configured here because these commands are generally regarded as sysop level commands, and not commands that you would normally want your users to be able to utilize. Overwrite Files is the level a user must have in order to overwrite a file that already exists in one of the file directories. Note that if a user uploads a file with the same name as a file that the user has previously uploaded, the user will be able to overwrite that file if he/she so chooses. The Overwrite Files security level is the level that is needed to overwrite a file that the user did not upload. The security levels associated with the sysop functions 1 - 7 are the levels that are needed in order to perform one of the associated sysop functions. These functions are available from the Main Sysop Menu (the Menu that is shown to anyone with a security level of 100 or greater). Page 14 GAP Communications Configuration 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. The reason you are given the opportunity to change their names is because you may not want some of the files shared and instead would like for each node to use a different version of a particular file (DOORS.DAT is one such file that you may not want to share between nodes). 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 chapter Text Files for more information on creating the text files your callers see. Please see the chapter System Files for further explanation of many of these files. The Main Message File will be created the first time you save your configuration in GAPSETUP. This is the base name of the file that contains your Main Board messages. It will always have a .DAT extension and will be accompanied by an index file with the same base name, but with a .IDX extension. The User File will be created the first time you enter into the User Editor. This is the base name of the file that contains a record for each of your users. It will always have a .DAT Page 15 GAP Communications Configuration extension and will be accompanied by an index file with the same base name, but with a .IDX extension. 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 use the Caller Analyzer to read the file into the GAPCALL database on a daily basis and delete the old copy. The Welcome File is displayed to callers when they first log on. You may have up to 10 of these files. 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. The Time/Bytes File is a file which contains security levels, time allotments, maximum allowable download bytes, maximum allowable files per day, file ratios, and whether or not GAP should randomly verify certain callers' registration information. You may have 24 of these files for each hour of the day grouped according to baud rates. These time/baud specific SECLEV files allow you to restrict callers based upon the time of day and/or their baud rate. 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. When you press F2 to lock a user out, the user's name will automatically be added to the TCAN file. You may specify the names of the main Questionnaire Answers File as well as the names of the 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 and the full path and name of the door file to run. The Entry News File will be shown to callers when they log on. It is displayed after GAP has logged the caller onto the system. Page 16 GAP Communications Configuration 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. 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 Directory Path 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 Page 17 GAP Communications Configuration directory for the file. Note that wild cards cannot be used on loose files. You may designate two such directories. The Indirection Files Directory Path is the disk directory where you place text files that GAP will read if a file in the FileBase contains an '@' as the first character in the Password field for the file. The Indirection file provides GAP with a list of users who are authorized to download the file. Please see the chapter FileBase Editor for further information on indirection files. The Attached Files Directory Path is the disk directory where GAP will place all files that are attached to messages. 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. Page 18 GAP Communications Configuration 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 is made but at the wrong bps rate, try setting this field to some number of seconds (typically 2 seconds). You may configure up to 4 Communications Ports. A port number of 0 tells GAP to not initialize or use a communications port. Ports 1 and 2 are pre-configured 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 to use in opening the COM Port. This should be set to the highest speed at which your modem can operate. Lock BPS Rate is typically used with modems that are capable of operating at speeds greater than 2400 bps. It is used when you want the computer to modem (DTE) 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 or 38,400 bps. Setting this flag will keep GAPMENU from changing the baud rate of the serial port to match that of the caller. Note that if your modem automatically changes its baud rate to match the rate of an incoming call you must not set this field to Yes. Otherwise, GAPBBS will communicate with your modem at the Initial BBS Rate instead of the rate of the call. The end result will be that your callers will see garbage on their screen and will be unable to type anything intelligible. Most 9600 baud modems which utilize the MNP protocol, if they do automatically change the baud rate to match that of the caller, will also provide a software switch which you can use in your Init String to prevent the modem from doing this. Answer On True Ring Detect tells GAP to answer the phone when the modem asserts the ring detect line. This should be set to Yes. If your modem is incapable of asserting ring detect you should set this to No. This field should also be set to No if your modem cannot accept commands while it is sending them. Page 19 GAP Communications Configuration Answer On Ring # tells GAP to answer the phone on the specified number of rings. Normally this field should be set to 1. If you have a specific need for GAP to answer on other than the first ring, you can set this field to any number from 1 to 9. 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 Yes. Send BREAK to Clear Buffer tells GAP whether or not to send a BREAK signal to the modem to clear the modem buffer. A break signal normally tells a modem to empty its internal buffer. If a caller presses CTRL-K, CTRL-X, or while viewing files (or at anytime when in Non-Stop mode), GAP will send a "break" to the modem. What affect this has on the caller depends on your modem. If sending this "break" signal to the modem causes problems, then you should set this field to No. If you use a USR modem and have the break setting (&Y) set to 1, the modem will empty its buffer when it receives the "break" signal. If a caller is at less than your maximum speed, this means the abort takes effect almost immediately. If GAP did not send the "break" to the modem, the abort would take place only after your modem emptied its buffer. Use Inter Character Delay allows you to tell GAPMENU, if set to Yes, to pause 1/18th of a second between each character of your RESET and INIT strings when sending these strings to the modem. Unless you use an off brand 2400 baud modem, you should set this field to No. RTS Off During Disk Write allows you to tell GAP to turn the Request To Send signal off when GAP writes a block of data to the disk drive (during an upload). If you have a slow hard drive or a slow network and you see CRC errors every time GAP writes to the hard drive during an upload (which is at 1k intervals), you probably need to set this option to Yes. Note that this flag will have no effect if your modem does not support hardware handshaking (CTS/RTS Flow Control). The Caller Connect BPS Rate is a special field for some modems that absolutely refuse to return the caller's CONNECT rate. Some of the newer high speed modems insist on returning the DTE rate Page 20 GAP Communications Configuration in the CONNECT string instead of the caller's speed. GAP uses the caller's actual connect speed (modem to modem) to determine how many files the caller can download, calculate file transfer efficiency times, etc. This field takes one of two responses. Either the word CONNECT or the actual BPS Rate you want GAPMENU to pass along to GAPBBS. Most sysops will use the word CONNECT, since this means that GAPMENU will determine the Connect speed from the string returned by the modem. If you have one of these modems that insists on returning the DTE rate instead of the Connect rate, you should enter a bps rate that you want GAP to use whenever it needs to know the caller's connect rate. For instance, if you lock your port at 38400, you would probably want to enter 9600 or 4800 in this field (depending upon how fair you want to be to your high speed callers or how generous you want to be to your 2400 baud and less callers). BPS Rate Restriction ARTWORK GAP allows you to restrict callers based on certain bps rates. The Highest BPS Rate Not Allowed allows you to prohibit any caller that attempts to log on to your system using the rate you specify from gaining access to your system. For instance, if you wish to prohibit 300 baud callers from gaining access, you would enter 300 in this field. If you do not wish to prohibit callers based upon their baud rate, then leave this field blank. Note that you may use this option, along with the Highest BPS Rate To Restrict option to prohibit some baud rates and yet allow Page 21 GAP Communications Configuration other baud rates during certain times of the day. This option takes precedence over the other, meaning that if you prohibit 300 baud callers and yet enter 300 as the Highest BPS Rate to Restrict and a 300 baud caller calls during a time when you would like to allow them on, the 300 baud caller will not be allowed on at all. If you would rather restrict certain baud rates to certain hours of the day then leave this field blank. If you wish to restrict certain baud rates during certain times of the day, set the Allow Restricted Callers field to Yes, 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. Main Menu Commands ARTWORK These are the security levels a user must have in order to access a particular function from the Main Menu. All of these functions are described in detail in the chapter System Operation. Note that CHAT and WHO are available only on multi user systems. Page 22 GAP Communications Configuration The levels for REP and QWK are the security levels needed to invoke the QWK/REP modules. A new user is given the New User Level. If your SECLEV file tells GAP to verify users with a specific security level, GAP will randomly ask a caller to verify his/her Home Phone Number or Birth Date. If the user can not provide GAP with his/her phone number or birth date, GAP will display a file called FAILED and will then set the user to the Failed Check Level. This level should be less than your New User Level and you should have Security Menus set up for this level that allow the user to do nothing but enter a Comment and Goodbye. If a user fails the registration verification check, you basically want to cut off all privileges to the user and force the user into a Comment so the user can either tell you why he/she does not remember his/her phone number or birthday. The Failed Check Level is described in full detail in the chapter System Files. The two Sysop Defined menu items allow you to configure two custom menu choices. To define a Custom Menu Item, you first enter the name for the Menu Item (2 to 5 characters), then the security level required to utilize that Menu Item. You will then need to create a batch file (which goes in your GAP DEFAULT directory) to carry out the commands associated with that Menu Item. The batch file has the same name as the name you give the Menu Item (with a .BAT extension). In GAPBBS, when a caller types one of your Custom Menu Items, GAP will shell to the batch file, execute the file, then return. An example of a Custom Menu Item which you could add would be to add a Mail Door (which you may have previously utilized as a door program). You would use the same batch file that was used for the door (except that its name must be changed to match the name of the Menu Item). Page 23 GAP Communications Configuration File Menu Commands ARTWORK File Commands - These are the security levels necessary to access a particular command in the Files System. Archive Commands - These are the security levels necessary to access a particular archive function from within the Files System. GAP handles both ARC and ZIP files internally, with the exception of Transfer A File. Because of the complications involved in transferring a particular file from within an archive, GAP handles this function externally via a batch file. When a caller requests Transfer A File from an archive, GAP will shell to a batch file called ARCTRANS.BAT. The following parameters will be passed to the batch file: +----------------------------------------------------------------+ %1 - Where to put the Extracted File (loose directory #1) | | %2 - Full Path/Name of the Archive File to process | | %3 - What kind of Archive it is: ARC, ZIP, LZH, ICE, etc | | %4 - Name of the file to extract from the compressed file | | %5 - Name to use for the file, once extracted and recompressed | | +----------------------------------------------------------------+ A sample ARCTRANS.BAT file is included with GAP. Page 24 GAP Communications Configuration GAP expects your batch file shell to unpack the file from the archive, re-pack it using the supplied name, and place the resultant file in your first loose directory. Note that there are also two Sysop Defined menu choices available in the Files System. View/Change Stats Menu ARTWORK These are the security levels necessary to access a particular command at the View/Change Stats Menu. The Stats command allows callers to edit portions of their user record. Other configuration options allow you to control what fields the callers may edit. Page 25 GAP Communications Configuration Miscellaneous Information - One ARTWORK Number Of Bulletins is the maximum number of main board bulletins you intend to post. Force BLT Menu At Logon allows you to force new callers to view the Bulletin Menu when they first log on. If the Force New Bulletins is set to Yes 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. If this field is set to No, callers will still be told there are new bulletins, but they will not be forced to view the Bulletin Menu. GAP maintains mini statistics on the activity of your system. These statistics are reset each day when the first caller after midnight logs off. These are the same statistics you see displayed in a window on the Call Waiting Screen. If you would like for GAP to create a Bulletin containing these statistics, enter the bulletin number to use in the Yesterday's Stats Blt # and Monthly Stats Blt # fields. If you do not want GAP to create these bulletins, enter a 0 in these fields. If you would like for both sets of statistics to appear in the same file, enter the same number in both fields. If you would like to have the bulletins created but do not want them to appear as a regular bulletin (where your callers can view them), simply give them numbers greater than the highest bulletin you have configured. For instance, if you normally carry 14 Page 26 GAP Communications Configuration bulletins, you can give these bulletins the numbers 15 & 16. Or just simply 15 for a combined bulletin. Note that the bulletins are created using XCodes. You may view them inside of GAPBBS either as a bulletin or by using Sysop Function 3 (Type File). Also note that if you run multi nodes, GAP will write only the Network wide portion of the stats. In other words, the bulletin will not contain the statistics for any particular node. In addition, if you maintain separate GEN directories, the bulletins will be written to the GEN directory of which ever node logs the first caller off after midnight (the first node that does the actual re-setting of the stats). You will need to devise some means of making sure the bulletins are consistent between nodes. Printer Port is the Line Printer port you wish to have the caller log written to. If the Enforce Time Limit is set to Yes, 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 No, GAP will allow any user to log on as many times as they wish in any given day. If you want GAP to ask new users for their birth date, set the Prompt For Birthday field to Yes. Note that if you intend to use the Registration Verification feature (which randomly prompts certain users to verify their home phone number and/or birth date), you must set this field to Yes. 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 Yes. Users may then give themselves a handle at the View/Change Stats Menu or when they join a Forum that allows handles. Normally when a caller exists through a door, GAP writes the caller's real name to the DOOR.SYS file. If you want GAP to write the caller's handle (if the caller is using a handle at the time) to the file, enter a Yes in the Use Handle In DOOR.SYS field. If you wish to allow users to change their address, phone numbers and birth date, while on line, set the Allow Address Changes field to Yes. Page 27 GAP Communications Configuration 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. If you set this field to Yes and find that you have a lot of locked out users in your user file, chances are very good that the users entered a fake phone number. New sysops tend to not like this feature and we suggest that you set Force Registration to No if having GAP automatically lock out users who give fake information bothers you. Old time sysops appreciate GAP watching over their board in the sense that they feel that if a new user cannot give correct information at registration, they don't want the user on their system. Force 2nd Phone Number allows you to set your system up such that GAP will enforce registration by validating the Home Phone Number field, and if you answer No in this field, will allow new users to skip the Business/Data Phone Number prompt or enter erroneous information. Experienced users will type Y Q NS or N Q NS at Logon 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 Logon to No. The Level To Override Logon is the security level a caller must have in order to bypass forced bulletin viewing and the new mail check. The Override command is an 'O' typed after the Quick Logon command. 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 No. If you do not wish for the User Statistics screen to be shown to callers when they first log on, set the Show User Stats field to No. The User Statistics screen is the screen that displays the number of files downloaded and uploaded, number of messages left and read, protocol preference, etc. You may define the Phone Number Template that GAP will use when gathering phone number data. The default template is the one used Page 28 GAP Communications Configuration in the U.S. and Canada. If you live in Europe or another country that uses different delimiters, you may change the appearance of the template. What you enter into this field are "special" characters that the cursor will "skip over" when data is being input. The special characters are "( ) -". Actual data entry takes place wherever there is a '9' in the template. As an example, in Switzerland, you could use the following template: 999-99-99-9-99 If you will never accept international calls, you could eliminate the country code and use the following template: 99-99-9-99 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 Yes, GAP will create a direct link between two nodes and instead of writing to chat files (which is Page 29 GAP Communications Configuration 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]. The Default Color is the color that is displayed at various points while a user is on-line: +------------------------------------------------------+ 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. If you would like for the Main Board messages to be echoable, set the Echo Main Board Msgs field to Yes. Note that it is not recommended that you echo the Main Board messages since their topic is generally of a local nature. This feature is provided for those boards that have remote nodes attached to them. The Maximum Number Of Messages is the total number of messages that will be allowed in any one message file. If a user tries to enter a message when the message file already contains the maximum number of messages, the user will be displayed a message saying that the Message File Is Full, and the message will not be allowed. 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. Page 30 GAP Communications Configuration Users may address a single message to up to 99 different people providing the message is private and the Allow Carbon Copy Messages flag is set to Yes. If the Validate Messages field is set to Yes 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 No. If a user subsequently tries to enter an ANSI message, GAP will strip all the ANSI codes from the message and the resultant message will be quite unsightly. If you do not wish to allow users to delete messages, set the Allow Deleting Of Messages field to No. You have the option to force all main board mail to be private. To do so, set the Make All Mail Private field to Yes. While replying to a message, it is possible to quote all or part of the message being replied to. 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. If you enter an I as the first character in the quote field, GAP will use the initials of the person you are quoting as the quote characters. If you enter a G as the first character in the quote field, GAP will surround the quoted text with a graphic box. The top border of the box will contain the name of the person that is being quoted. Leave this field blank if you wish to disable quoting altogether. You may give time credits for Entering Messages. If you enter a 0 in the Extend Time By Factor field, your callers will actually loose time while entering messages. If you enter any other number, then GAP will multiply the time used to enter a message by the factor you enter here, and credit the caller with that time. 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 Yes. The news file will always be shown to new users. Page 31 GAP Communications Configuration 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. The AnsiCmd Character is the single character that is used to precede the special commands that GAP processes in text files. We suggest that you use the AT character '@'. If you need to actually use the AnsiCmd character in your files, then use two of them. For instance, if your Ansicmd is '@', and you wish to use an '@' in your text, then you would use @@. Miscellaneous Information - Three ARTWORK Number Of Forums Available is where you specify how many Forums you would like to have. Enter the total number of Forums you wish to configure. 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 you will not be allowed to exit the configuration program until are Forums are configured. You may configure GAP to run in a Local Area Network Environment. As such, you will not want your "local" users to perform Sysop Functions by using the Sysop Keys that are available only from the local keyboard. If you set Disable Local Sysop Keys to Yes then your local users will not be able to perform any Sysop Functions that are activated from the local keyboard. Page 32 GAP Communications Configuration GAP any many of its external programs have the ability to shell to DOS or run other programs while at the same time "remembering" the exact point in the program where it was prior to the shell. When you return from DOS or another program, the screen will be restored exactly like it was and you will be returned to the same place in the program. In order to accomplish this, GAP will "move" itself from active memory to either EMS or a disk file. At the same time, all the memory GAP occupied (with the exception of about 8k) will be freed, leaving you with just about the same amount of memory you had prior to running GAP. The Use EMS For Swap field is provided so that you may prohibit GAP and its other programs from using EMS. If you do not have EMS memory, you do not need to set this flag as it cannot be used anyway. If you have EMS memory, the only reason you would ever want to set this flag to No is if, during a DOS shell, you intend to run a program which is not well behaved and which allocates EMS for itself in non-standard ways. In general, you should set this flag to Yes. You should set aside (that is, not use) at least 400k of EMS for use by GAP and its utility programs. The Swap Drive If EMS Unavailable field allows you to specify the drive GAP should use to swap to should EMS memory not be available. This field should be left blank unless, for some reason, swapping to the default drive is not acceptable. If you enter Yes in the Use COMMAND.COM for F5 Shell, GAP will remain in memory while you are in a DOS shell. Otherwise, GAP will use EMS to swap itself out, thereby freeing up as much memory as possible. While in an F5 shell that uses COMMAND.COM, some programs may lock up the computer if GAP protects the status line. If you wish to prevent GAP from protecting the status line while in such a shell, set the Disable Status During Shell to Yes. Note that this has no effect if EMS memory is being used instead of COMMAND.COM since the status line will be removed anyway. When a caller logs on, GAP tries to determine if the caller has ANSI terminal emulation turned on. This can be either a quick Page 33 GAP Communications Configuration process or a slow one, depending upon your modem or the caller's communications program. Seconds To Wait For Auto ANSI allows you to set the number of seconds GAP waits after it sends the proper ANSI sequences and then interrogates the modem for a reply. 4 seconds should be the minimum number of seconds to wait. To disable this feature, set this field to 0. If an event is scheduled, GAP will set a timer that expires when the event time occurs. There are times, such as when there are a lot of errors during downloading or uploading, that a file transfer could overrun an Event Time. You can tell GAP to abort the transfer if this situation occurs by answering Yes in the Stop Xfers If Event Timer Expires field. You may set the Upload Guard Time and the Door Guard Time in which GAP will prevent any uploads or door openings prior to an event. 30 minutes for the Upload Guard Time and 15 minutes for the Door Guard Time have proven to be successful in keeping events from being missed. GAP can display a unique file intended for a specific user only. Its name is derived from the name of the User you want the file shown to. Because the file names are based upon User Names and there is a possibility that some of these files may duplicate some of your MAIN files, these files need to be placed in a directory called USERINFO which should be created off the MAIN directory: +------------------------+ C:\GAP\MAIN\USERINFO | | +------------------------+ The names of these files are derived by using the first 5 characters of the User's Last Name, and the first character of the User's First Name. If the User doesn't have 5 characters in his/her last name, then you would use the entire Last Name: +--------------------------------------------+ File to Create | | |--------------------------------------------| User Name Mono ANSI | | |--------------------------------------------| DARIN MAY MAYD MAYDG | | KENNY GARDNER GARDNK GARDNKG | | +--------------------------------------------+ Page 34 GAP Communications Configuration GAP will show the User Specific File after the Security News and Birthday file. If you would like to have these user specific files deleted after they are shown to the user, set the Delete User Info File After Shown field to Yes. A special User Info file called ALL will be displayed to all users (if it exists) and will not be deleted even if you set the above field to Yes. This file will be shown (to all except the sysop) even if a caller uses the Override Command at logon (the regular User Info files are not displayed if a caller uses the Override Command). If you set Show Loose Downloads In GAPCALL BLT to No, then any files downloaded from one of your Loose Directories will not appear in the Download Bulletin created by GAPCALL. Subscription Configuration ARTWORK If you are running a closed board, set the Closed Board option to Yes. A closed board is a board in which users will be allowed access only if the Private User Flag (in the user record) is set to Yes. If the file NEWQUEST is present in the MAIN directory, new users will be asked to fill it out before being disconnected. 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 Page 35 GAP Communications Configuration 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. Even if your board is closed, GAP will still enter new users into the User File. This makes it easy for you make the user a member of your closed board since all you have to do is set the Private User Flag for that user. Enforce Subscription, if set to Yes, will cause all users whose subscription date has expired to assume the Expired Subscription Level as set up in their user record. In addition, GAP will remove the user from any private Forums, if the user's record is so flagged. Days In Subscrip Period is the length of the subscription period (7 to 365 days). You need to set this field even if you are not using the subscription feature since GAP uses it when registering new users. If the subscription period is less than 14 days, then your callers will receive no warning that their subscription is about to expire. If the subscription period is greater than 14 days but less than 30, then GAP will begin issuing warnings to callers 5 days prior to the date their subscription expires. If the subscription period is greater than 30 days but less than 60, then GAP will begin issuing warnings to callers 10 days prior to the date their subscription expires. The warn time for periods greater than 60 days 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 directory 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 be given the Expired Subscription Level as set up in the user's record. In addition, if the user's record so specifies, GAP will remove the user from any private Forums. 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. Page 36 GAP Communications Configuration The Expired Subscription Level is the default level that will be given to new users when they register. Each user may be given a different Expired Level. You may also specify an Exempt Security Level From Expired Subscription. If a user is at or above this level and his/her subscription date expires, the user will not be set back to the Expired Security Level and public Forums. If you do not want an expired user to gain access to any private nodes you may have set up, you should enter Yes in the Set Private User Flag Back To No field. File System Options ARTWORK Number of Directories is the number of Main Board File Directories you would like to have. If Enforce Download Count is set to Yes, 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 Yes, 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. Page 37 GAP Communications Configuration If Extend Download Count is set to Yes, 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 Upload 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 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. The format of the SECLEV file is explained in detail in the chapter System Files. If Make All Uploads Private is set to Yes, all uploads will be given the Level For Private Uploads. 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. You enter the number of k-bytes in this field. Page 38 GAP Communications Configuration If the Show Free Upload Space is set to Yes, GAP will display the free upload space to the caller on the file transfer screen. The Default Filename Extension is the extension GAP will use whenever a caller is prompted for a filename and does not enter an extension to the name. You may install up to 20 External Protocols. To activate them, enter Yes in the Use External Protocols field and in the Ext Protocol File Name field, type in the name of the file (which will reside in your GEN directory) that holds the external protocol information. You may edit this file by selecting Ext Protocols from the Files Menu. Please see the chapter External Protocols for more information on how to configure external protocols. Check For Dupes Across Areas tells GAP to search all areas for a duplicate file during an upload. Using this option, if a file about to be uploaded exists anywhere in the FileBase, then GAP will not allow the upload. The Security Level For Uploads is the level GAP gives to uploaded files. It is also the default level used in the FileBase editor when new files are added. The Level For Private Uploads is the level GAP gives to uploaded files that the user has elected to make private. Page 39 GAP Communications Configuration Events ARTWORK GAP allows for 24 timed events. Events are external programs and/or batch files that you may run at pre-determined days and times. Please see the chapter Events for further information. Strings and Prompts ARTWORK The Additional Board Name is any text that you wish to have displayed after your BBS name. Page 40 GAP Communications Configuration The Comment Prompt is displayed to the user when he/she attempts to leave a comment. 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. Note that when pressing the LOCKOUT key, if you actually intend to lock the user out, you will be prompted to press the key again. There are 3 combinations for the COMMENT, TWIT, and LOCKOUT 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 file names are called, respectively, COMMENT, TWIT, and LOCKOUT 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. The lockout text file will also be displayed to a locked out user trying to log on (if it exists). Page 41 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. Page 42 GAP Communications Configuration Forum Configuration ARTWORK For each of your Forums, there will be a Forum configuration screen. 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 Yes and a user uploads a file while inside the Forum, the file will be placed in this directory. Name of Messages File -This is the base name of the file that contains your Forum messages. It will always have a .DAT extension and will be accompanied by an index file with the same base name, but with a .IDX extension. 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 Page 43 GAP Communications Configuration the Forum will expire. When that date arrives, no user except 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. Public Forum - and Level To Join - If this Forum is a Public Forum, then set the Public Forum field to Yes and in the Level To Join field, enter the security level that a user will need in order for the user to join the Forum. If the Forum is Private, enter No in the Public Forum field. The only way for a user to join a Private Forum is if the Sysop manually adds the user to the Forum Membership record. Forum Sysop Level and Forum Assistant Level - Each Forum may have its own set of sysops and assistant sysops. You declare a user to be a sysop or assistant sysop of a Forum in the User Editor. The security level that is defined here 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. 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. You may enter a negative number if you wish. 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. If you wish to decrease the time left, enter a negative number. Note that a user will be granted additional time once only. Also, they will not loose the additional time when they abandon the Forum. Level For Pub Uploads - This is the security level that will be given to public uploads that are kept in the Forum. Level For Priv Uploads - This is the security level that will be given to private uploads that are kept in the Forum. Level To Read Priv Mail - This is the security level needed to read the Forum's Private Messages. Page 44 GAP Communications Configuration Level To Read Comments - This is the security level need to read any Comments that are left in the Forum. 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 No, 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. Private Uploads - If you want all the Forum uploads to be private (as in the main board) set this flag to Yes. Keep Uploads Inside - If you want all the Forum uploads to be kept in the Forum upload directory, set this flag to Yes. 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. 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 Menu file to list the bulletins and place it in the GEN directory. Message Quote Chars - Each Forum may have its own Quote Characters or disable quoting altogether. Maximum Lines Per Message - 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. Extend Msg Time By Factor - You may give time credits for leaving messages (not comments). To do so, set this field to a number Page 45 GAP Communications Configuration from 1 to 9. After entering a message and saving it, GAP will multiply the amount of time it took to enter the message by the factor you enter here. A factor of 1 means the caller will not loose any time. Note that if you enter a 0 here, a caller will not be given any time credits and will actually loose time while entering the message. Allow Carbon Copy Msgs - Private messages may be sent to up to 99 users if this field is set to Yes. Validate Messages To - If you want GAP to check the user file to see if the person to whom a message is being left is an actual user of the BBS, set this field to Yes. Note that Echo Mail Forums and Forums that allow Handles can not take advantage of this feature and it will automatically be disabled in those Forums. Allow Esc Codes In Msgs - Callers will often times "upload" ANSI text files into their messages. This is fine if the person reading the message has ANSI color enabled, but callers with B&W monitors will see nothing but garbage. If you wish to prevent callers from entering ANSI escape sequences in their messages, set this field to No. Allow Deleting Of Msgs - You can prevent callers from deleting their messages by setting this field to No. Veteran sysops will tell you the tale of the caller who logged on one day and deleted all the messages to and from him, simply because of a bad day at the office or school. If this occurs in a Forum that depends upon the exchange of ideas between callers, this could have a devastating effect on the Forum atmosphere, not to mention the time and energy taken from the sysop in trying to restore those messages. Make All Mail Private - If you want all the messages to be private, set this flag to Yes. Make All Mail Public - If you want all the messages to be public (with the exception of comments), set this flag to Yes. Note that the sysop can override this setting and leave private mail. The above two flags are mutually exclusive. You cannot set them both to Yes. Page 46 GAP Communications Configuration Comments To Main Board - If you want all Comments that are entered while a user is inside of this Forum to be sent to the Main Board, set this field to Yes. Show News Only If New - If you want the News to be displayed to callers only if it is new, set this field to Yes. The News will always be shown to new users. Auto Rejoin Forum - If this field is set to Yes and a user logs off from inside the Forum, he/she will automatically join the Forum on the next call. Days In Subscrip Period - If this Forum is Private and you wish to make it a Subscription Forum, enter the number of days in the Subscription Period. Your subscription period can be any number of days from 7 to 365. If you do not wish to make the Forum a subscription Forum, leave this field set to 0. Del Member When Expired - If this Forum is a Subscription Forum and a user's subscription has expired, GAP will remove the user from the Forum by deleting his/her Member Record (the user will then not be allowed to join until the Sysop adds the user to the Forum's Membership). If you do not want GAP to automatically remove the user from the Forum, answer No in this field. Allow Handles - If this Forum utilizes handles, enter Yes in this field. While in a Forum that allows handles, a user's name will change to their handle. Net Mail Forum - If you want the messages in a Forum to be utilized in an Echo Mail system, set this flag to Yes. GAP will ask a caller if a particular message should be echoed or not. Page 47 GAP Communications Configuration +----------------------------------------------------------------+ In order to activate file directories inside of a Forum, you | | will need a DIR file in the Forum GEN directory. The presence | | of this file tells GAP that the files system is available while | | a caller is inside the Forum. If the file is missing, the | | caller will be told that the Forum has no file directories. | | | | 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. 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. Files Menu Options The Configuration Editor contains a Files Menu that allows you to edit certain system files: Files +----------------+ Seclev | | Doors | | Ext Protocols | | +----------------+ Seclev allows you to edit your SECLEV file(s). The SECLEV file is the file that assigns Time, Bytes, Files, and other parameters to users with a specific Security Level. Page 48 GAP Communications Configuration Doors allows you to edit the data file(s) that contains information about the external programs you have available on your system. Ext Protocols allows you to edit the file that contains information about the external protocols you have available. These files are described in full detail in the chapter System Files. Sysop Configuration ARTWORK If you are configuring GAP for the first time, then after Quitting (and saving changes) you will be taken into the User Editor. The sysop is automatically placed as the first record in the user file. You must 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. Page 49 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. Text files are described in detail in the chapter Text Files. 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 | | c: | | cd \GAP | | gapmenu | | if errorlevel 99 gap | | +------------------------+ It is suggested that you leave this file as is. 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. Page 51 GAP Communications System Files 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. DOOR.BAT - 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: DOOR.BAT +------------------------+ @echo off | | cd\doors | | door | | c: | | cd\gap | | +------------------------+ DOOR.SYS - This file is created when a user enters a Door. DOOR.SYS is a standard door interface which is used by many door authors and other BBS Systems. EVENTx.BAT - This is the event batch file which you must create if you wish to run events. EVENTS.DAT - This file holds your event configuration. It is maintained by GAPSETUP. Events are described in more detail in the chapter Events. 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. The chapter External Protocols describes these files in full detail. FILELST.DWN - GAP creates this file during batch downloads. It stores vital information necessary to allow a caller to download as 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. Page 52 GAP Communications System Files Please see the chapter External Protocols for further information. GAP.HLP GAP.NDX These are the Help files used by many of the Utility programs. GAPBBS.CNF - This is the configuration file for GAP. It is created automatically by the setup program. 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. GAPCALL.EXE - GAP's own Caller Analyzer! It is explained in more detail in the supplementary documentation. 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. 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.HLP GAPUSER.NDX These are help files for the User Editor. GAPUSER.EXE - This program is the off-line User Editor. GAPREBLD.EXE - This program rebuilds your Message, User, Member, and Filebase 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 53 GAP Communications System Files +----------------------------------------------------------------+ 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 forcibly 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 certain parameters to tell it which file to work with: +-----------------------------------------------------------------+ GAPPACK M Area Options - Packs a Message file. | | GAPPACK C:\GAP\MAIN\USERS.DAT U Options - Packs the User file. | | GAPPACK C:\GAP\MAIN\FILES.DAT F - Packs the FileBase. | | GAPPACK C:\GAP\MAIN\MEMBER.DAT R - Packs the Member file. | | +-----------------------------------------------------------------+ To pack a Message file, you pass an 'M' as the first parameter to GAPPACK. The second parameter is the Message base to pack. It is a number that tells GAPPACK what Area the message is in, where a 0 is the Main Board, a 1 is Forum 1, etc. The third and fourth optional parameters are: Page 54 GAP Communications System Files Message Base Parameters +------------------------------------------------------+ 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 M 0 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. To pack the User file, you pass the full path and name of the User file as the first parameter. The second parameter is a 'U', which tells GAPPACK you are packing the User file. The third, fourth, and fifth optional parameters are: User File Parameters +------------------------------------------------------+ 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 Page 55 GAP Communications System Files To pack the FileBase, you pass the full path and name of the data file as the first parameter. There are two FileBase data files called FILES.DAT and FILEKEY.DAT. The second parameter is an 'F', which tells GAPPACK you are packing the FileBase. The following example will pack the main FileBase data file: GAPPACK C:\GAP\MAIN\FILES.DAT F To pack the Member file, you pass the full path and name of the data file as the first parameter. The second parameter is an 'R', which tells GAPPACK you are packing the Member file: GAPPACK C:\GAP\MAIN\MEMBER.DAT R GAPMAINT is a GAPPACK shell program that automates the packing and rebuilding of your ISAM data files. It relieves you of the burden of having to remember all the various command line parameters. REMOTE.BAT - 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. 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 | | +------------------------------------------------------+ 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 Page 56 GAP Communications System Files 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. The ECHO commands simply remind the sysop to type EXIT to return to the BBS. Don't forget the CTTY CON: command or all keyboard activity will be ignored and all output will be sent to the COM port. There are other, more powerful, programs available that will allow you to run programs remotely. They also provide better carrier detect monitoring. One such program is shareware and is used by many GAP sysops to run GAPFILE from a remote location. Help Directory All help files are placed here. Sample files are provided. 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. DUMMYLOK.DAT - This file will appear only if the system is multi user. It is created automatically by the setup program. This file Page 57 GAP Communications System Files 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. FILEKEY.DAT FILEKEY.IDX FILES.DAT FILES.IDX These are the FileBase ISAM files. They are created and maintained by the FileBase editor. FORUM.DAT - Contains configuration information for each of the Forums. MEMBER.DAT MEMBER.IDX These files hold the Forum membership information. The Member file contains one record for each User for each Forum the user is a member of. MESSNO.DAT - This file is used internally by GAP. It contains the high message numbers for each of your message files. 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. 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! This file is created and maintained in the Configuration Editor. Page 58 GAP Communications System Files In GAPSETUP, select Seclev from the Files Menu: Files +----------------+ Seclev | | Doors | | Ext Protocols | | +----------------+ A pick list will appear asking you to select a SECLEV file to edit. SECLEV files with an extension are special files that are applicable to callers with a certain baud rate or who call during a certain time of day. The first two characters of the extension represent the time of day, and the last character is the baud code where: +--------------------------------+ 1 - 300 baud | | 2 - 1200 baud | | 3 - 2400 baud | | 4 - 9600 and greater baud | | +--------------------------------+ The time is in 24 hour format, and a time of '00' means ignore the time checking. SECLEV Examples +------------------------------------------------+ SECLEV - Regular | | SECLEV.170 - Use at 5:00 pm, any baud | | SECLEV.181 - Use at 6:00 pm, 300 baud | | SECLEV.193 - Use at 7:00 pm, 2400 baud | | SECLEV.001 - Use at any time, 300 baud | | SECLEV.002 - Use at any time, 1200 baud | | SECLEV.003 - Use at any time, 2400 baud | | SECLEV.004 - Use at any time, 9600 baud | | +------------------------------------------------+ If you wanted to severely restrict 300 baud callers at 6:00 pm, but only mildly restrict all other baud rates at the same time, you could have two SECLEV files such as: +----------------------------------+ SECLEV.181 and SECLEV.180 | | +----------------------------------+ Page 59 GAP Communications System Files This works because GAP looks for the files in the following order: +------------------------+ Time / Baud file | | Time / No Baud file | | No Time / Baud file | | SECLEV | | +------------------------+ After selecting a SECLEV file to work with, the Editor will appear and you will then be able to configure your SECLEV file. SECLEV Editor ARTWORK Level is the security level that a user must have in order to receive the allotments specified in the other fields. When a user logs on, GAP will scan the SECLEV file and look up the user's security level. The Minutes, Bytes, Files, Ratio and other fields in this file will be assigned to this user. If a user's level cannot be found in this file, the user will receive the allotments associated with the next highest level. Minutes is the number of minutes that a user with the associated security level is given for on-line time during the current session. Page 60 GAP Communications System Files Bytes is the number of bytes that a user with the associated security level is allowed to download during the current session. This number is the number of "K" Bytes. GAP will multiply this number by 1000 to determine the user's allowable download bytes. Files is the number of files that a user with the associated security level is allowed to download during the current session. Ratio is the Upload/Download Ratio that a user with the associated security level must maintain. If you do not wish to enforce Ratios, enter 0 in this field. If a caller attempts to download a file and his/her ratio is greater than the ratio allowed, a file called RATIO will be displayed. This file would explain why the caller is unable to download and what must be done to rectify the problem. If you enforce ratios by Bytes, then the number entered in this field is the number of "K" bytes that must be maintained. If you enforce ratios by Files, then this number is the number of files that can be downloaded per each file uploaded. Note that 0 uploads is the same as 1 upload. Ask is a Yes/No field where you specify whether or not GAP should do random checking to determine if a user with the associated security level entered a valid Birth Date and Home Phone Number. In order to use this feature of GAP, you must have Prompt for Birthday set to Yes. Normally, you would answer Yes in this field only for those security levels that are at or below your New User level. You would not want to burden your registered callers with this random checking of Dates and Phone Numbers. The bottom status line shows the Editor Keys. Context sensitive help is available for each field by pressing the F1 Help key. Page 61 GAP Communications System Files Editor Keys +--------------------------------------------+ Alt-D - Delete Line | | Alt-I - Insert Line | | F9 - Save File | | F10 - Save File As | | Esc - Quit | | UpArrow - Up Column | | DnArrow - Down Column | | Home - Beginning of File | | End - End of File | | Ctrl-Home - Previous Field | | +--------------------------------------------+ 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 | | +------------------------+ 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. Most of these files can have an ANSI color version by colorizing the file in an Ansi Editor and saving it with the same base name but with a 'G' appended. 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 Page 62 GAP Communications System Files 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. BIRTH - This file is displayed if the day a user calls is the user's birthday. BLT 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. 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. CLOSED - If you run a closed board, GAP will display this file to any caller who attempts to log on and that caller is not a member of the board. Whether or not a caller is a member is determined by the Private User flag in the user record. If you wish to prevent new users from gaining access to your system you can use the @DISCON AnsiCmd in your NEWUSER file. This will cause GAP to disconnect the line after the potential new user has read the file, and will prevent GAP from adding the user to the user file. DIR - This is the menu that lists the available subjects (file categories) on your system. 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 - This is the Menu that lists the available doors. 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. This file is created and maintained in the Configuration Editor and is described in detail in the chapter Doors. Page 63 GAP Communications System Files ENEWS - This is the exit news file that is displayed when a user logs off. EVENT - This file is displayed to callers if their time has been adjusted due to an upcoming Event. EXPIRE - If you run a subscription board and a user's subscription is about to expire, GAP will display this file. It basically tells the user that his/her subscription is coming due and what can be done to renew the subscription. Note that this file is displayed only if the subscription is still current. It is suggested that you set up a Security Menu and/or News file for the Expired Subscription Level so that your expired users will always be reminded that their subscription has expired. FILEM - This is the Files System Menu. It lists 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 - This is the Forum Menu that lists the available Forums. KEEPUP - This file is displayed to users after they have uploaded a file in a Forum and the sysop has the Forum configured to not keep uploads inside. LOCKOUT - This file 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. LOGON - This file is displayed to callers when they request Help at the Log On prompt. Since GAP does not yet know the caller's color preference, there cannot be a color version of this file. MAINM -This is the Main Menu that lists the available commands in the main section of the board. NEWS - This is your news file. It will be displayed to callers 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 Page 64 GAP Communications System Files 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 file exists. NEWUSER - This is the new user welcome file. It is displayed to all new users. NOPAGE - The presence of this file tells GAP that you do not want to be paged for chat. If it exists, GAP will display it and will then set the Page flag on the status line to let the sysop know that the caller issued the Page Sysop command. If you prefer that GAP go through the 30 second Page Sysop routine then remove this file from your GEN directory. NOTIME - If you use time/baud specific SECLEV files and a caller receives zero minutes at log on because the time allotment for his/her security level is 0, GAP will display this file to inform the user why he/she does not have any time. After displaying the file, GAP will then disconnect the user. If this file does not exist, the user will simply be logged off with an "Expired Time" message. 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 - This file will be shown to a user if you do not answer the Sysop Page bell. You may use it 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. PROTO.DAT - This is a binary file that lists and describes your External Protocols. It is created and maintained by the Page 65 GAP Communications System Files Configuration Editor and is explained in detail in the chapter External Protocols. QMENU - This is the Menu that lists the available Questionnaires. RATIO - If you enforce Upload/Download ratios, GAP will display this file if a user attempts to download a file and his/her ratio is above the allowed ratio as defined in the SECLEV file for that user's security level. REGINFO - This file is displayed after the NEWUSER file and the new user has answered Yes to join the BBS. Its purpose is to inform the user that they will be asked a series of questions, that they must answer truthfully, and perhaps explain how to answer the questions correctly. RESBAUD - If you have configured restricted baud rates and a caller attempts to log on using the restricted rate, this file will be displayed to inform the caller that you do not allow the baud rate or that the caller is calling during a restricted access time. SMAINM - This file is similar to the Main Menus except that it lists the available sysop commands in addition to the regular commands. TWIT - This file 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. UPLOAD - This file is displayed immediately after a user presses the 'U' key to upload a file. Its purpose it to tell users what your Upload rules are, types of files you accept or will not accept, etc. WELC - This is your Welcome file that is displayed to callers when they first log on. You can have up to 10 Welcome 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 WELC, WELC1 and WELC5. The only requirement for using supplemental Welcome files is that the basic WELC file exists. Page 66 GAP Communications System Files Forum Files Forums are separate areas of the board. They contain their own message bases and may, optionally, have their own files. Forums can be likened to a business where there is a main administrative area (the Main Board) and separate departments such as Accounting (Forum 1), Sales (Forum 2), and Board of Directors (Forum 3). 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 may give these files a different name). 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 (Chapter Two) for the names of the files you can create to cause a Forum to run as a mini BBS. In order to activate file directories inside of a Forum, you will need a DIR file in the Forum GEN directory. The presence of this file tells GAP that the files system is available while a caller is inside the Forum. If the file is missing, the caller will be told the Forum has no file directories. Except for the DIR menu, if GAP fails to find a unique Forum file, it will use the equivalent file from the main board. Page 67 GAP Communications System Files 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 if you wish to keep the Forum GEN files separate from the DEFAULT files. Upload Directory If you wish to keep Forum uploads inside the Forum, they will be placed in this directory. 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 KEEPUP file (that is placed in the Main Board GEN directory so that all the Forums may share it) 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. Special Batch Files GAP uses external batch files to perform some of its internal functions. These files are required for proper system operation and they are placed in your DEFAULT directory. Page 68 GAP Communications System Files ARCTRANS.BAT When a caller requests a Transfer from an archive, GAP will shell to a batch file called ARCTRANS.BAT. GAP will pass the following parameters to the batch file: +----------------------------------------------------------------+ %1 - Where to put the Extracted File (loose directory #1) | | %2 - Full Path/Name of the Archive File to process | | %3 - What kind of Archive it is, ARC, ZIP, LZH, ICE, etc | | %4 - Name of file to extract from the compressed file | | %5 - Name to use for the file, once it is extracted and | | recompressed. | | +----------------------------------------------------------------+ A sample ARCTRANS.BAT is included on the distribution disks. GAP expects your batch file shell to unarc the file from the archive, re-arc it using the supplied name, and place the resultant file in your first Loose Directory. Upon return from the shell, GAP will then display the resultant archive and allow the user to download it. When the download is complete, GAP will delete the file from your Loose Directory. UPCHECK.BAT For each file that GAP processes after an upload, GAP will shell to a batch file called UPCHECK.BAT. If the UPCHECK.BAT file is not present, then GAP will not shell and the upload processing will continue as usual. After receiving an upload GAP will shell to this batch file. In batch mode, GAP will shell to the UPCHECK batch file after each file that it processes. In this batch file, you may add a ZIP Comment, check for a Virus, or do whatever it is you need to do with an upload. Upon return from the UPCHECK shell, GAP will check to see if the file is still in the directory. If, your batch file or the program that your batch file ran, deleted the file, and GAP cannot find the file in the Upload or Work directory, then GAP Page 69 GAP Communications System Files will check to see if the filename extension is the same as your default extension you configured in GAPSETUP. If not, then GAP will substitute your extension for the one in the Upload file and try to find the file using the new extension. If at this point, GAP still cannot find the file, it will skip that file (batch mode) and go on to the next. If, on the other hand, GAP now finds the file with the new extension, it will tell the caller that the file was renamed per sysop conventions and proceed as usual, using the new filename. Basically, this means that if you run a virus check program on the uploaded file and your check finds that the uploaded file has a virus, if either your batch file or the program you use to check for viruses deletes the file, GAP will not add the file to the FileBase. Also, if a caller uploads an .ARC file and you prefer to keep .ZIP files, you can UnArc the file and ZIP it back up, giving it a .ZIP extension in the process and GAP will accommodate your change and process the file with the .ZIP extension instead of the .ARC extension. When processing an Uploaded File, GAP will shell to UPCHECK.BAT, passing the following parameters: +----------------------------------------------------------------+ %1 - Full path and name of file | | %2 - Upload Directory path | | %3 - Filename | | %4 - Filename without the extension | | %5 - Extension without the filename | | %6 - 0 = Remote Caller On, 1 = Sysop On Locally, | | 2 = Local User | | +----------------------------------------------------------------+ The first parameter is the full path and name of the file to check. This parameter is the fully qualified path name to the file that is being processed by GAP. You may then pass %1 on to the program(s) you use to check/verify or add comments. As an example: After receiving an upload in non-batch mode or when processing a batch of uploads in batch mode, GAP will run UPCHECK.BAT as follows: Page 70 GAP Communications System Files UPCHECK path\filename where path\filename is the full path to the file. All your UPCHECK.BAT need do is pass %1 to the program it is running (a virus checker, PKZIP to add a ZIP Comment, etc). If you run a Virus Checker and the Virus program or your batch file deletes the file, then upon return from the shell, GAP will simply skip that file and move on to the next (after displaying a message that the upload file being processed "...failed the integrity check"). You should use the sixth parameter to test whether or not it is "OK" to echo text to the COM port. You should only echo text to the COM port if the sixth parameter is 0. In addition, this parameter will let you know whether or not GAPFILE is the program invoking your UPCHECK. Even if you do not wish to check the integrity of uploaded files, the UPCHECK file serves another purpose. That is to extract file description files out of an archive so that GAP can use the file as automatic input for the file description. A description file is a text file (usually formatted to 10 or less lines with 45 or less characters per line), that describes the uploaded file. This description file is called either DESC.SDI or FILE_ID.DIZ and is included inside of the archive. Including such a file allows the author of the program (rather than the uploader) to describe what the archive is all about. GAP will process these description files only when a user uploads more than 1 file at a time (or at least tells GAP that he will be uploading more than one file). They are not utilized during single file uploads for the simple reason that when a user uploads a single file, he/she has already entered a file description and GAP cannot check for the description files until after the upload. Even if GAP found a description file in the archive, it would be rather rude for GAP to simply replace the description the user gave with the one found in the archive, especially if the user spent lot of time and effort entering the description. Page 71 GAP Communications System Files GAP will accept 10 lines of description, however the length of the lines can be 72 characters long (with the first line being only 45 characters since it will be used as the keywords). These files are growing in popularity and are being used more often than not. The DESC.SDI was the first such description file and it tends to be just a single line description. The FILE_ID.DIZ is a newer description file and it tends to be 10 lines or less. If you would like to include description files with archives you upload (providing the archive doesn't already have one), we suggest that you name the file FILE_ID.DIZ (since it is not clear as to whether or not programs that support DESC.SDI can handle more than one line of description). We would also suggest a format as follows: +----------------------------------------------------------------+ Line 1 - 45 or less characters of KEYWORD information | | Lines 2-10 - 45 or less characters of descriptive information | | +----------------------------------------------------------------+ If you will only be uploading these files to a GAP system, then lines 2-10 can be up to 72 characters. Line 1 will also be included in GAP's enhanced description (in addition to being used in the keyword field). Line 1 can be 72 characters in length, but only the first 45 characters will be used in the keywords. To maintain compatibility with other BBS systems, it is suggested that you keep the lengths of the lines to 45 characters or less. Your UPCHECK.BAT file is responsible for extracting the description file out of the archive and placing it in the work directory. Basically, after your UPCHECK has determined that the file is sound (no viruses, passes integrity, etc), it should then try and extract a DESC.SDI or FILE_ID.DIZ (but NOT both, if both formats are included in the archive). The extracted file is placed in the work directory. Upon return from the UPCHECK shell, GAP will check to see if either DESC.SDI or FILE_ID.DIZ is present in the work directory. If not, then everything goes along as usual. If one of those files is in the work directory, then GAP will read the first line of the file and place it in the keyword field. GAP will then prompt the uploader for the keywords. In this case, however, the keywords will already be filled in, and the cursor will be at the Page 72 GAP Communications System Files end of the line. The Uploader can either accept the keywords as is, or backspace over them and enter his own keyword list. GAP will then go into the Message Editor to gather the enhanced file description. However, in the case of a description file being present, the Message Editor will automatically go into File Import mode and will import the entire description file into the message buffer. The uploader will see the description being imported and will then be presented with the disposition prompt. He/she may then either edit the description or press 'S' to save it. Basically what you have with a file that uses a description file is that all the user need do is press 'S' to save the description after GAP comes back from an UPCHECK shell. GAP will delete any DESC.SDI or FILE_ID.DIZ files that it finds in the work directory after it has processed the current file. Your UPCHECK.BAT file is only responsible for getting that description file out of the archive (if it exists). GAP will handle all the details of utilizing the file if it finds it. Note that your UPCHECK should be designed so that it extracts only ONE of the description files, not both of them, should someone include a DESC.SDI and a FILE_ID.DIZ in the same archive. GAP always looks for DESC.SDI first. If it finds that file in the work directory and yet your UPCHECK extracted both a DESC.SDI and a FILE_ID.DIZ, only the DESC.SDI will be deleted and if the next file in the batch doesn't contain a description file, there will be a left over FILE_ID.DIZ that will get attached to the next file! Or worse yet, if there are no more files in the batch, your user could get prompted to enter a description for FILE_ID.DIZ! LOGON.BAT When logging on, if this batch file exists in the Default directory, GAP will shell out and run the file. This will occur after the Welcome and News files are displayed, after pending events are checked, and just before any UserInfo files are displayed. GAP will go through the doors system so a DOOR.SYS file will be written (which allows you to return the special codes that GAP recognizes if you wish). Page 73 GAP Communications System Files Note that if an event is scheduled and the caller's time remaining is less than the Door Guard Time, the LOGON.BAT file will not be run. If the caller is out of time, GAP will also not run the file, but will instead disconnect the caller at that point with a "Time Expired" message. QWK/REP Sub-System Description The QWK/REP sub-system is a method that allows your callers to download QWK packets containing all new messages in Forums the callers have selected. It also allows callers to upload messages that were created with an off-line mail reader. Setting Up Setting up the QWK/REP sub-system is very similar to setting up a Door for use with GAP. The only basic difference is that this is not a door and must not be configured as part of your doors system since the commands to activate the modules are built in commands and the initial prompts are a part of GAPBBS. Create a directory off of your DEFAULT directory called QWKREP: C:\GAP\QWKREP This directory will contain the following files: +----------------+ REPIMPRT.EXE | | QWKEXPRT.EXE | | QWKREPx.CNF | | QWKH | | QWKMENU | | QWKMENUG | | SEND.BAT | | RECV.BAT | | +----------------+ Page 74 GAP Communications System Files The QWKREPx.CNF is a configuration file that supplies the modules with the necessary information they need in order to run. The 'x' is the Node Number that the configuration applies to. If you run single node GAP software, you may leave the node number off and simply name the file QWKREP.CNF. QWKH is a help file that is utilized by the QWK Module. QWKMENU and QWKMENUG are Menus that are utilized by the QWK Module. SEND.BAT and RECV.BAT are batch files that the QWK modules will invoke to send a QWK packet and receive a REP packet. The configuration file consists of the following lines: QWKREP.CNF +------------------------+ Default Directory | | Name of BBS | | IRQ | | Base Address | | QWK/REP ID | | SEND.BAT | | RECV.BAT | | NODOSWIN (or blank) | | SYSOP NAME | | +------------------------+ The Default Directory is the directory where your GAPBBS.CNF and DOOR.SYS files reside. The Name of BBS is your BBS Name. The IRQ is the Interrupt Request Number for the port. This applies only if you are using ports other than COM 1 and COM 2. If you are using standard COM ports, enter a 0 on this line. The Base Address is the Port address (in hexadecimal). This line also only applies if you are using non-standard COM ports. If you are using standard COM ports, enter a 0 on this line. The QWK/REP ID is a unique Identifier for your BBS. It must be 8 characters or less in length and entered in all upper case. Page 75 GAP Communications System Files The SEND.BAT file line can be given any DOS batch file name of your choice. When a caller requests a QWK packet, the QWK module will shell to this batch file to invoke DSZ or any other Zmodem protocol program. The following parameters will be passed to this batch file: SEND.BAT +------------------------------------------------------+ %1 - COM Port Number | | %2 - COM Port Speed (DTE bps rate) | | %3 - Caller's bps rate | | %4 - Directory where QWK packet is located. | | +------------------------------------------------------+ The RECV.BAT file line can be given any DOS batch file name of your choice. When a caller requests a REP packet, the REP or QWK module will shell to this batch file to invoke DSZ or any other Zmodem protocol program. The following parameters will be passed to this batch file: RECV.BAT +------------------------------------------------------+ %1 - COM Port Number | | %2 - COM Port Speed (DTE bps rate) | | %3 - Caller's bps rate | | %4 - Directory where the Protocol should place | | the REP packet. | | +------------------------------------------------------+ Line 8 of the configuration file can either be NODOSWIN or the end of the configuration file. When shelling to PKZIP or DSZ, the QWK/REP modules create a "DOS Window" into which all output will be re-directed. If you use a full screen version of DSZ or have other reasons for not using the DOS Window, you may enter NODOSWIN on this line and the modules will not attempt to redirect all DOS output to a window. Line 9 of the configuration file is the Sysop's Real Name. When importing messages, any message that is to the Sysop's real name will be changed to SYSOP. Page 76 GAP Communications System Files A sample configuration file would look like this: QWKREP.CNF +------------------------+ C:\GAP | | The Crow's Nest BBS | | 0 | | 0 | | CROWNEST | | SEND.BAT | | RECV.BAT | | USE DOS WINDOW | | GARY ARAKI | | +------------------------+ If you run multi nodes, you will need a separate configuration file for each node. Next you will need to create two batch files that GAP will invoke when a caller types the appropriate QWK/REP command from the Main Menu (the commands are also available from the Files Menu). These batch files are placed in your DEFAULT directory. The first is called QWK.BAT. It is associated with the QWK command. This file will invoke the QWKEXPRT.EXE module, passing to it the name of the configuration file for the appropriate node. Such a file would look like this: QWK.BAT +------------------------+ @echo off | | c: | | cd \gap\qwkrep | | qwkexprt qwkrep1.cnf | | c: | | cd \gap | | +------------------------+ Notice that the file changes into the QWKREP directory and invokes the QWKEXPRT module, passing it the name of the configuration file for Node 1. If you run multiple nodes, you will need a QWK.BAT file for each node. The only difference between the files would be the drive and directory designators, and the line that calls up the QWKEXPRT module. Each node must Page 77 GAP Communications System Files use a different configuration file and pass the name of this file to the QWKEXPRT module. The second batch file is called REP.BAT. It is associated with the REP command. This file will invoke the REPIMPRT.EXE module, passing to it the name of the configuration file for the appropriate node. Such a file would look like this: REP.BAT +------------------------+ @echo off | | c: | | cd \gap\qwkrep | | repimprt qwkrep1.cnf | | c: | | cd \gap | | +------------------------+ Notice that the file changes into the QWKREP directory and invokes the REPIMPRT module, passing it the name of the configuration file for Node 1. If you run multiple nodes, you will need a REP.BAT file for each node. The only difference between the files would be the drive and directory designators, and the line that calls up the REPIMPRT module. Each node must use a different configuration file and pass the name of this file to the REPIMPRT module. Both QWK/REP modules can share the same configuration file. In Configuration, on the Main Menu Commands screen, you enter the security level a user must have in order to use the QWK and REP commands. Page 78 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 as a remote communications system. 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 is off + 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 + Enable 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 gap. If 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 Page 79 GAP Communications Modem Configuration 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 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 achieve the highest throughput possible with your modem. If your high speed modem does not return the true CONNECT rate of the caller but instead returns the Computer to Modem (DTE) rate, you will need to set the Caller Connect BPS Rate to a rate of your choosing. GAP will then use this sysop supplied CONNECT rate when calculating file transfer efficiency ratings and the amount of files a user can download. If during uploads you see that GAP is displaying a CRC error every time it writes a block of data to the hard drive, you Page 80 GAP Communications Modem Configuration probably need to turn the RTS Off During Disk Write option On. Note that this is only applicable to modems that support hardware handshaking. Probably the most common mistake that sysops make when configuring their modems is that they fail to use a carriage return and a delay after their Reset and Init strings. You need one carriage return and at least a one second pause after both of these strings. Many modems absolutely require that an H0 (go On Hook command) be issued in the Init string. 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 2400 USRobotics Courier 2400 USRobotics Sportster 2400 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. 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 Page 81 GAP Communications Modem Configuration USRobotics Courier HST Dual Standard- 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: ATB0F1M0X7&A3&B1&G0&H1&I0&J0 AT&K3&L0&M4&N0&P0&R2&S1&X0 AT&Y1S2=255&W 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. 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 82 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 2 seconds. Avatex 2400 RESET String : ATZ{~~ INIT String : ATH0E0Q0M0X1V1S7=60S11=60{~~ Answer On True Ring Detect : NO Page 83 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 4 or more seconds. Page 84 GAP Communications Modem Configuration Microcom AX9624C RESET String : ATZ{~~ INIT String : ATH0{~~ Answer On True Ring Detect : YES Additional Information : Go into Communications program, set the baud rate, and type the following: AT\G0\N3S0=0Q3X0K5E0Q0V1\V1\J1 AT\E0\T0%E1%C1%P2%M0\A3\C2%A13 AT\H0S8=2S2=255&D2&C1\D0\R1M0 AT&L0&M0&T5X1&P0&G0B1&W LightCom 96/V.32/V.42bis LightCom 14.4/V.32/V.42bis RESET String : ~ATZ{~~ INIT String : AT&F&C1&D2&Q5Q0E0V1X4S0=0S7=60 S95=47{~~ Answer On True Ring Detect : YES Page 85 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 at the Door Menu or by typing its name at the Main Command prompt. 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, a DOORS data file is used. This file contains the name of the batch files that run the doors and the security levels a user must have in order to invoke a door. Page 87 GAP Communications Doors In GAPSETUP, select Doors from the Files Menu: Files +----------------+ Seclev | | Doors | | Ext Protocols | | +----------------+ A pick list will appear asking you to select a DOORS.DAT file to edit. Normally there will be only one file to choose from, however some multi node systems may have separate door files for each of their nodes. After selecting a file to work with, the Editor will appear and you will then be able to configure your Doors Data file. Doors Data File Editor ARTWORK Name is the name you wish to give this particular Door. Names may be up to 15 characters in length, contain any combination of upper and lower case letters but may not contain any spaces. If a user attempts to open a door by simply typing its name at the Command Prompt, the name you enter here is the name GAP will look for to see if there is a match with the name the user typed. Level is the Security Level a user must have in order to Open this particular Door. Page 88 GAP Communications Doors Path is the full Path and Name to this particular Door Batch file (or program). When GAP opens this door, it will use the information you type in this field to find and run the door. The batch file is placed in the directory you specify. Such a batch file might look like this: DOOR.BAT +------------------------+ echo off | | cd\gap\doors | | tourist tourist.cnf | | c: | | cd\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 swap itself out of memory and run the batch file specified. When the door program has completed GAP will regain control and return the caller to the Main Command prompt. The bottom status line shows the Editor Keys. Context sensitive help is available for each field by pressing the F1 Help key. Editor Keys +--------------------------------------------+ Alt-D - Delete Line | | Alt-I - Insert Line | | F9 - Save File | | F10 - Save File As | | Esc - Quit | | UpArrow - Up Column | | DnArrow - Down Column | | Home - Beginning of File | | End - End of File | | Ctrl-Home - Previous Field | | +--------------------------------------------+ When a caller exits through a door, GAP writes a file 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 Page 89 GAP Communications Doors disk. This file allows us to modify GAP and not have to worry about obsoleting a door program. Upon return from a door, GAP will read the following fields from DOOR.SYS: +----------------------------------+ Security Level | | Total Uploads | | Total Downloads | | Current Download K total | | Time Credits | | Current Download Files | | Total K bytes uploaded | | Total K bytes downloaded | | +----------------------------------+ With regards to time credits, GAP will give the caller the time credits specified in DOOR.SYS. GAP doesn't care if the credits are the same as when DOOR.SYS was written. This means that a door program is free to give or take away time from a caller (negative time credits means the caller looses time). Of course, if the caller's time was adjusted because of an upcoming event, GAP will ignore the time credit field in DOOR.SYS. Time credits in DOOR.SYS are on line 42 of that file. A door program is also free to change the caller's security level by modifying line 15 of DOOR.SYS with the following restrictions (GAP will ignore the change if): + the caller is the sysop + the caller's level is at or above 100 + the new level found in door.sys is at or above 105 + This means the sysop will be unaffected by any security level changes a door may do. A "Trojan" door will be unable to give anyone (including the door author) a high enough level such that the caller will be able to perform true sysop functions. This of course depends upon how your sysop levels are configured but as a good guideline, Sysop 4 and Sysop 5 should have levels greater than 105. Basically, a door can give security levels only up to 104 and cannot modify any caller's level if the caller is at 100 or greater. Page 90 GAP Communications Doors An assistant sysop (between 100 and up) will be unaffected by any security level changes. A door program may bypass the reading of DOOR.SYS by returning an error level of 60 to GAPBBS. This is useful for those doors that do their own updating in the GAP USERS file and do not want GAP to "undo" the changes by reading DOOR.SYS. The Door Return Codes that GAP recognizes are: +------------------------------------------------------+ 60 - Do NOT read DOOR.SYS | | 61 - Force caller into a Comment | | 62 - Immediately Log the caller off the BBS | | +------------------------------------------------------+ If you write door programs to interface with GAP, and you would like to have GAP implement one of the above functions, simply make sure that your program is the last program to be run in the door batch file and that your program returns one of the 'exit' codes that GAP recognizes. There are a number of door programs available. 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 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. Note that a great many Door programs can not support high speed communications. If you have a high speed modem and you lock your COM port at 19,200, 38,400 or a higher bps setting, you will find that many external programs will display garbage on the caller's screen because the program can not open the COM port at the rate you use for GAP. In cases such as this, you can either not use the program, not lock your COM port at a speed greater than 9600 bps, or use an "UnLocker" program that will modify your DOOR.SYS file so that the Door program "thinks" the COM port is locked at 9600 bps. Page 91 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). 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 Page 93 GAP Communications Questionnaires registered immediately and automatically with no extra effort on the sysop's part other than to create a powerful questionnaire script! 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 '*'. Everything appearing after the asterisk will be displayed to the user and written to the answer file. If you would rather have the Page 94 GAP Communications Questionnaires text displayed to the user and not written to the answer file, use an ampersand '&' character instead. 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. 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. Page 95 GAP Communications Questionnaires 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 | | +------------------------------------------------------+ Notice that there are 3 possible responses to the Y command. 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. The M command must be followed by the number of choices (up to 99). For instance M10 means there are 10 choices. Following the Mx command, you would then have 11 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 Page 96 GAP Communications Questionnaires 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. 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. Page 97 GAP Communications Questionnaires 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: +----------------------------------------------------------------+ Xpause - will issue the pause prompt. | | Xshow_file C:\GAP\GEN\BLT1 - will display the main board | | bulletin #1. | | +----------------------------------------------------------------+ 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 takes affect immediately so if there are other questions in the questionnaire, they will not be asked. 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 98 GAP Communications Questionnaires The CheckLevel command (case is not important) allows you to check a user's security level and make a decision as to what to do next based upon the result. The format of CheckLevel is as follows: +----------------------------------------------------------------+ CheckLevel Level - Check user's security level | | | | x - processor does this if user's level is same as level | | x - processor does this if user's level is less than level | | x - processor does this if user's level is greater than | | level | | +----------------------------------------------------------------+ The x can be a Goto, a Label, Abort or Exit. You must provide 3 additional commands after the CheckLevel command. The form and function of CheckLevel is identical to the Y command. The DEL_USER command deletes the user filling out the questionnaire from the User File. The user is not actually deleted until after the questionnaire is completed. After GAP deletes the user it will recycle back to GAPMENU. The STOPCLOCK command turns off the clock so that the user does not loose any time while filling out the questionnaire. The CCARD command allows the questionnaire script to process credit cards. The syntax of the command is: CCARD XXXX where "XXXX" is 'A', 'D', 'M', or 'V' for American Express, Discover, MasterCard, or VISA Page 99 GAP Communications Questionnaires The command is similar to the Yes/No command in that it must be followed by 3 commands which will take action based upon the return value from the Credit Card processor: +----------------------------------------------------------------+ CCARD VM | | | | x - do this if the Credit Card processing was successful | | x - do this if the user aborted the Credit Card processing | | x - do this if there is a problem with the Questionnaire | | processing | | +----------------------------------------------------------------+ An example of the command would be: CCARD VM >thankyou problem The above example tells the Credit Card processor that only VISA and MasterCard are accepted. If you accept all 4 card types you can use: CCARD ADVM. The 1st line after the command sends the processor to the label 'thankyou', where the script will thank the caller for the order. The 2nd line after the command sends the processor back to the order menu, since the caller failed to complete all the questions asked of him/her. The 3rd line after the command sends the processor to problem section of the script so it can tell the user that there was a problem with the questionnaire and to "try again later". Most of the ordering process is performed using regular questionnaire commands. The Credit Card processor insures that the user enters a valid Credit Card Number, that the Expiration Date on the card is current, and that the user's address info is correct. The user will be given a chance to enter a different Name/Address, however these changes will not be written back to the user file. Page 100 GAP Communications Questionnaires A sample Questionnaire Script is included on the distribution disks and you may use it as a guideline if you wish to use the Credit Card processor. The best way to get a feel for how it works is to set it up as a questionnaire, fill it out several times and study the resultant answer file. Since the processor validates Credit Cards, you must have a legitimate credit card number or you will not be able to complete the script. The PRIVUSER command allows you to set the Private User flag for the user to Yes. This command would normally be used in a NEWQUEST after you have determined that the user qualifies for membership to your private board. The JOIN command allows you to register a user in a Forum and automatically "put" that user in the Forum after the Questionnaire is completed. In the case of a New User Questionnaire (NEWQUEST) the command will not take place until after the user arrives at the Main Board. The syntax for the command is: JOIN X where 'X' is the Forum number to join. Note that if this command is used in the NEWQUEST file, the security news, BIRTH, and USERINFO files will not be shown. After filling out a NEWQUEST that utilizes the JOIN X command, GAP will continue to process the questionnaire and not actually put the user in the Forum until after the user reaches the Main Board (after log in). The user will be placed in the Forum even if he or she doesn't have the security level that the Forum requires to join. When used in a regular questionnaire, the JOIN command takes effect as soon as the questionnaire is completed, however in this case, the user must have the security level necessary to join the Forum or he/she will remain at in the Main Area. The reason for the difference between a regular questionnaire and a NEWQUEST is that you may have some users who you do not want to be a part of your regular BBS operation. You may set up different Page 101 GAP Communications Questionnaires Forums to segregate different groups of people. Your NEWQUEST can force certain groups into a specific Forum, and by setting the level to Abandon and Join higher than the users' level, once a user is forced into this Forum, he/she will not be able to leave it. If the Forum is set for AutoJoin, the user will be forced into the Forum on subsequent calls. The NEWQUEST use of the JOIN command is a bit specialized. Most of us would probably use the command in a regular questionnaire such as a Sysop or Adult Forum admittance questionnaire, where after determining if the user is fit for the Forum, you can ask if they want to Join now, and then use the JOIN command to accomplish that. 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 102 GAP Communications Questionnaires +----------------------------------------------------------------+ Processor Commands | | |----------------------------------------------------------------| * - Print anything following. | | & - Print anything following, do not write text | | to answer file. | | ? - 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 99 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. | | 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 | | +----------------------------------------------------------------+ Page 104 GAP Communications Questionnaires 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/92 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 105 GAP Communications Questionnaires 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. 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 106 Chapter 8 Events Description The GAP Events allow a sysop to set up 24 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. Events can be configured to run every day or on a particular day of the week. They can be run at any hour you choose. Individual events can be toggled on or off, as necessary. Setup To activate events, select Configuration from the GAPMENU Commands Main Menu. Once in GAPSETUP, select Event Configuration from the Go To Main Menu. You will be taken to the Event Configuration screen where you may globally activate the events, toggle an individual event on or off, and specify the program or batch file to be run for each event. Page 107 GAP Communications Events GAPSETUP will provide two configuration screens for the Events, depending upon how many you activate. ARTWORK Answer Yes to the Timed Events prompt. You may flag an individual event as Active or Not Active. The event times must be entered in 24 hour format. An event may be scheduled to run every day (ALL), or on a particular day of the week. You must specify the batch file to run in order to execute the event. The file can be any valid program so you are not restricted to running just batch files. You may execute any program directly if you wish. You also need to enter the full path to the file. GAPMENU determines which event to run by reading the list of events from first to last and comparing the event times. If event #1 is scheduled to run on Sundays at 07:00 and event #2 is scheduled to run every day at 07:00, and today is Sunday, event #1 will be the event that is executed. Event #2 will not run on this day. For this reason and many others, we strongly suggest that no two events share the same event time. In addition, it is suggested that successive events not be scheduled within less than 5 Page 108 GAP Communications Events minutes of each other (i.e., event #1 at 00:01 and event #2 at 00:02). GAPBBS will set an event timer that will expire when an event is scheduled to run. This timer should never expire (it should never reach 0). If it does, this means that an upload, door, or some other occurrence has caused the caller to stay on longer than he/she should and the event will be missed by GAPMENU. The event timer should never go below 5 minutes (the event guard time). When a caller logs off or GAP logs a caller of for whatever reason, GAP will check the event timer. If it is 0, then GAP knows the caller was on past the event time and GAP will tell GAPMENU to run the event, irregardless if GAPMENU thinks it should be run or not. This method of watching for missed events is not foolproof. The event that GAPMENU had scheduled to run prior to logging a caller into GAPBBS is the event that will automatically run should the caller overstay his or her time. If you have events scheduled back to back, depending upon how long the caller overstayed and how closely your events are scheduled to one another, some of your events may not run. For instance, if the scheduled event is at 00:01 and the next event to run is at 00:02, if a caller logs into GAP and stays on until 00:03, GAPMENU will run the scheduled event (the one at 00:01), but the next event at 00:02 will be missed completely. If the next event were scheduled at 00:06 instead of 00:02, it would run normally. To help you deal with the problem of missed events there are several steps you can take. First, it is possible to schedule a successive event that simply checks to see if the prior event ran successfully. The prior event, could, perhaps create a dummy file that indicates that it went off. The second event could then look for this file and if found, delete it. If not found, run the intended event. Page 109 GAP Communications Events Second, the following configuration options are at your disposal: +------------------------------------+ Stop Xfers If Event Timer Expires | | Upload Guard Time Prior To Event | | Door Guard Time Prior To Event | | +------------------------------------+ The first option allows you to stop any Upload or Download that is in progress if the Event Timer expires (indicating the transfer is taking longer than expected and the caller is about to overrun the Event Time). If your events are critical and MUST run, it is suggested that you set this option to yes. The second option allows you to specify the number of minutes prior to an event to stop any Uploads. The third option allows you to prevent your callers from entering a door within the number of minutes you specify prior to an event. If GAPBBS determines that an Event is pending and adjusts the caller's time available, you may have GAP display a file instead of the standard message of "Your time has been adjusted...". The name of the file is EVENT and goes in your GEN directory. 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. Page 110 GAP Communications Events 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. 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 you specified in the Event Configuration. The event batch files are free to perform any DOS task within the limitations of DOS batch files. 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.BAT file could look like this: +----------------------------+ echo off | | cd \gap\main | | pkzip caller.zip caller | | del caller | | cd \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 111 Chapter 9 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. GAP allows for two types of regular text files, color and non- color (or plain ASCII). In general, the non-color files should only contain ASCII characters below 127 so that those using non- IBM computers can view them. In order to provide color equivalents, you will need 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. Page 113 GAP Communications Text Files Here is a list of Menu and Informational Files which GAP can display: +----------------------------------------------------------------+ Menu Files Informational Files | | |----------------------------------------------------------------| BLT(g) DIR(g) 7E1 BIRTH(g)* | | DOORM(g) FILEM(g) BLTxx(g) CLOSED(g)* | | FORUMM(g) MAINM(g) COMMENT(g)* ENEWS(g) | | PROTO(g) QMENU(g) EVENT(g)* EXPIRE(g)* | | SMAINM(g) KEEPUP(g)* LOCKOUT(g)* | | LOGON NEWS(g) | | NEWSx(g)* NEWUSER(g) | | NOPAGE(g)* NOTIME(g)* | | PAGE(g)* RATIO(g) | | RESBAUD TWIT(g)* | | UPHELP(g) UPLOAD(g) | | USERINFO* WELC(g) | | WELCx(g)* | | +----------------------------------------------------------------+ (g) indicates that there may be a color version of the file. * indicates that the file is optional (not required for proper system operation. Each of these files are fully described in the chapter System Files. All text files may be aborted by typing CTRL-K, CTRL-X, or a space. Files with an @USEPAUSE at the beginning may not be aborted. Security Files All text files which GAP displays can be security level specific. That is, a security specific file will be shown (if it exists) instead of the regular file. To create such files, simply add an extension with the desired security level. For instance, if you would prefer to display a special File Directory Menu to your level 100 callers, you can create a DIR.100 and DIRG.100 in addition to the regular DIR and DIRG files. You can have as many security files as you have user levels. Page 114 GAP Communications Text Files Security Menus When designing Security Menus for the Main Board (MAINM(g) and SMAINM(g)), keep in mind that Sysop levels range from 100 to 255. Therefore your MAINM menus can have levels 1 - 99 attached to them, and your SMAINM menus can have levels 100 - 255 attached to them. 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 following is an example of some of the various Security Files you may configure: +----------------------------------------------------------------+ Menu Files Informational Files | | |----------------------------------------------------------------| BLT(g).10 BLT(g).100 BLT1(g).50 ENEWS(g).50 | | DOORM(g).10 DOORM(g).100 EXPIRE(g).50 KEEPUP(g).50 | | FILEM(g).10 FILEM(g).100 NEWS(G).50 NEWS1(g).50 | | FORUMM(g).10 FORUMM(g).100 PAGE(g).50 RATIO(g).50 | | MAINM(g).10 MAINM(g).99 UPHELP(g).50 UPLOAD(g).50 | | SMAINM(g).100 SMAINM(g).110 | | +----------------------------------------------------------------+ Examples of some security menus are included on the distribution diskettes. Notice that it is possible to create Security Specific Informational files such that the file will only be shown to callers with the specific level. For instance, you can create a NEWS1(g).50 file such that if the caller does not have a security level of 50, then the NEWS1 file will not be displayed; only level 50 callers will see the file. Security News Security News Files are special files that are used to display specific information to callers with a specific security level. Page 115 GAP Communications Text Files These 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). These files are displayed all the time and are not subject to the "Display News Only If New" Configuration option. They are placed in the MAIN directory to keep them confidential, and are displayed after the regular news file. UserInfo Files A special form of Security Specific files are those which are displayed to a single User only. We call these UserInfo files. Its name is derived from the name of the User you want the file shown to. Because the file names are based upon User Names and there is a possibility that some of these files may duplicate some of your MAIN files, these files need to be placed in a directory called USERINFO which should be created off the MAIN directory: C:\GAP\MAIN\USERINFO GAPSETUP will create this directory for you or you may create it yourself. The names of these files are derived by using the 1st 5 characters of the User's Last Name, and the first character of the User's First Name. If the User doesn't have 5 characters in his/her last name, then you would use the entire Last Name: +--------------------------------------------+ File to Create | | |--------------------------------------------| User Name Mono ANSI | | |--------------------------------------------| DARIN MAY MAYD MAYDG | | KENNY GARDNER GARDNK GARDNKG | | +--------------------------------------------+ Page 116 GAP Communications Text Files GAP will show the User Specific File after the Security News and Birthday file. On the Third Miscellaneous Screen in Configuration, there is an option that you may set to have GAP delete the User Specific File after it is shown to the user. GAP will delete both the regular and ANSI files if you so choose. Some possible uses for these files are : + If you know a certain person will be logging on to your board as a new user, you can leave him a special greeting. + If you have an incorrigible user who refuses to read the message you left for him, you can create a file just for this user and GAP will insure that he sees it. If its a long file, you can disable the More Prompt so he cannot answer No and stop the file display. + You can create a file for each of your new callers that will be shown to them on their next call. Such a file could thank them for joining your system. A special UserInfo file called ALL can be created. This file will be shown to all of your users when they call. In addition, GAP will not automatically delete this file. The ALL UserInfo file will be displayed even if the caller uses the Override Log On command. This is not so for the other UserInfo files. AnsiCmds It is 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. To use a command, it must be prefixed with the AnsiCmd character that you set up on Miscellaneous Information Screen 2 in the Configuration Editor. The default is an AT sign (@). Page 117 GAP Communications Text Files For instance: +--------------------------------------------+ @UNAME - Display User's Name | | @LEVEL - Display User's Security Level | | +--------------------------------------------+ When GAP encounters one of the Ansicmds, it will remove the command and substitute the appropriate parameter. GAP will eat or pad the file as necessary so that the replacement text will "fill in" the space taken by the AnsiCmd. For instance, if you use ANAME and are in the Main Board, GAP will display "Main Board" and will then "eat" 4 characters from the file. In most cases (providing you leave enough room for the replacement text) this will allow you to have borders and other fancy graphics (even in non-color files). Note that GAP will stop eating the file if it encounters an Esc (if it is a 'g' file) or a Carriage Return or Line Feed; or you may force a stop by placing the AnsiCmd Character where you want GAP to stop eating the file. To create an ANSI screen with replaceable parameters, you design your screen in the normal fashion. Wherever you want an AnsiCmd to appear, type the AnsiCmd character you configured and then the command itself. Be sure to leave enough room for the replacement text. For instance, if you wish to show the caller's first name on a screen that has a border, you need to leave enough room for GAP to insert the name so that the border remains intact: +--------------------------------------------+ Welcome to the BBS, @FNAME | | +--------------------------------------------+ This will work just fine. +----------------------------+ Welcome to the BBS, @FNAME | | +----------------------------+ This will not work if the caller's first name is longer than 8 characters, as the border will be 'eaten'. Page 118 GAP Communications Text Files Special AnsiCmds @CLS, @NOMORE, and @USEPAUSE are considered special commands as they are normally placed at the beginning of a file. @NOMORE tells GAP to disable the More Prompt such that the screen will display uninterrupted. This command is useful for very long screens which use ANSI Animation where you do not want the More Prompt to appear. @USEPAUSE tells GAP to substitute the Pause Prompt ("Press Any Key To Continue"), in place of the More Prompt. This keeps callers from interrupting the file; they must view the file in its entirety. XCodes To maintain compatibility with other programs, GAP can process XCodes. To use text files from other programs that contain XCodes your AnsiCmd character must be defined as the AT (@) symbol. XCodes are a way to change the color attribute of a character that is sent to the screen. Instead of using the ANSI sequence of [1;33;40m to turn on Bright Yellow on a Black Background, you could use an XCode of @X0E to accomplish the same thing. (note that the @ is your AnsiCmd character and is Sysop definable). When IBM designed the IBM PC, they devised a set of color attributes. There are 256 different combinations of attributes that you can set. There are 8 background and 16 foreground colors. This results in 128 different color combinations. In addition, each foreground color can 'blink'. This gives 256 different color combinations that can be displayed in text mode on a Color Monitor. When GAP displays one of your ANSI screens, it interprets the ANSI codes in the file (when it encounters an SGR ('m') code), such that 1 of the 256 possible color combinations is utilized. The XCodes are basically a quicker way to set the color attributes. The ANSI Driver is not utilized when an XCode is encountered. Sample files containing ANSI color codes and XCodes are provided so that you may see the difference. Page 119 GAP Communications Text Files It should be noted that if you are in Local Mode, the XCodes are faster than the equivalent ANSI strings. The reason being, GAP need only read 2 characters from the file and set the color. With ANSI files, GAP needs to send each character read from the file through the internal ANSI driver to determine the color code. If a remote caller is on, then GAP needs to take the color code that it received from the file, translate it to an ANSI string and send the string to the modem. This is still faster than going through the ANSI driver, but not much. Creating XCodes XCodes are a two character Hexadecimal number. They correspond to the 256 possible Video Attributes of the IBM PC. The first digit represents the Background Color (and/or Blink) and the second digit represents the Foreground Color. The following Table shows how to create an XCode to produce the desired color: +----------------------------------------------------------------+ Background Foreground | | |----------------------------------------------------------------| Color Normal Blink Normal Bold | | |----------------------------------------------------------------| Black 0 8 0 8 | | Blue 1 9 1 9 | | Green 2 A 2 A | | Cyan 3 B 3 B | | Red 4 C 4 C | | Magenta 5 D 5 D | | Yellow 6 E 6 E | | White 7 F 7 F | | +----------------------------------------------------------------+ The 1st digit of the Color Code is the Background. If you want the character to blink, you add 8 to the Background Color. The 2nd digit of the Color code is the Foreground. If you want the character to be bold, you add 8 to the Foreground Color. Page 120 GAP Communications Text Files Examples: +------------------------------------------------------+ White On Black - X07 | | Blinking White On Black - X87 | | Bright White On Black - X0F | | Blinking Bright White On Black - X8F | | +------------------------------------------------------+ +----------------------------------------------------------------+ AnsiCmd Description | | |----------------------------------------------------------------| ADD1 User's Address 1 | | ADD2 User's Address 2 | | AGE User's Age | | ANAME Area Name | | BAVAIL Current Bytes Available for Download | | BDOWN Total Bytes Downloaded | | BIRTH User's Birthday | | BLTS Bulletins Read | | BPHONE User's Business/Data Phone Number | | BUP Total Bytes Uploaded | | CITY User's City | | CLS Clear the Screen | | CNUMB Caller Number | | COMMENT Force into a Comment | | COUNTRY User's Country | | DATE Today's Date | | DISCON Drop Caller | | DOPEN Total Doors Opened | | DOWN Total Downloads | | DROPC Total number of dropped Carriers | | EVTIME Event Time | | FAVAIL Current Files Available for Download | | FJOIN Total Forums Joined | | FNAME User's First Name | | HPHONE User's Home Phone Number | | +----------------------------------------------------------------+ Page 121 GAP Communications Text Files +----------------------------------------------------------------+ AnsiCmd Description | | |----------------------------------------------------------------| LCALL Date of Last CAll | | LEVEL User's Security Level | | LNAME User's Last Name | | LNEW Last New File's Scan | | MLEFT Total Messages Left | | MORE More Prompt | | MREAD Total Messages Read | | NDNUMB Node Number | | NOMORE Disable the More prompt | | PAUSE Show "Press [Any Key] To Continue" prompt | | RATIO Up/Down File Ratio | | READMAIL Force a R T S | | SDATE User's Subscription Date | | SLOWxx Delay xx clock tics between characters | | STATE User's State | | TIME Time of Day | | TON Total Times On | | UBAUD Caller's baud rate | | UNAME User's Name (first & last) | | UP Total Uploads | | USEPAUSE Use Pause Prompt instead of More Prompt | | VER Version number of program | | XCode Color Codes | | YESNO Get a Yes/No Answer | | ZIP User's Zip Code | | +----------------------------------------------------------------+ Page 122 Chapter 10 Caller Log The caller file is maintained by GAP and details the caller activity. Note that this file is Binary and must not, under any circumstance, be edited with a text editor or word processor. The caller file can grow in size quite rapidly. It is suggested that you use GAPCALL on a daily basis and make sure GAPCALL deletes the caller logs after it has finished reading them. The following is a list of the error and system codes: 2 - 200 ISAM Errors 202 File Not Found 212 Can't Allocate Memory 213 File Access Denied 224 Too Many Open Files 236 Locking Violation 299 Cant Open Text File 400 User Log In 508 Can't Allocate Memory 512 Can't Save Message 513 Can't Lock Record 514 Cant Update User Record 600 Log Off (normal) 601 Help 602 Page Sysop 603 View / Change Stats 607 F1 DOS Exit after call 608 F2 Lock Out 609 F3 On-line Update 610 F4 Printer Toggle Page 123 GAP Communications Caller Log 611 F5 Shell To Dos 612 F6 Sysop Page Toggle 613 F7 Caller Alarm Toggle 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 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 Page 124 GAP Communications Caller Log Errors 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 where the file should be. You may 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. On the Tools Menu of GAPMAINT you will find a Menu Item called MSG Numbers. this utility function will allow you to fix your message numbers. However, to prevent this from occurring, 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 Page 125 GAP Communications Caller Log be. The number one problem we have found with this error is during initial configuration, the sysop did not Quit GAPSETUP properly (by answering Yes to save changes). 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 using GAPPACK. 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. Fatal ISAM errors are always apparent because they are accompanied by a series of beeps and the program will either exit to DOS, or in the case of GAPBBS, recycle back to GAPMENU. Fatal errors means an index file is corrupted. 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 quits with an error message 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 file is deleted, and run GAPREBLD, your data file will be intact and repaired. Page 126 Chapter 11 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 external programs and, of course, Answer The Phone. Use the Left and Right Arrow Keys to select any of the Main Menu items. Press [Enter] to display the Pulldown Menu for the selected item. Use the Up and Down Arrow Keys to select any of the Menu Items on the Pulldown Menu. Press [Enter] to carry out the highlighted selection. You may also type the first character of the Menu Item and that Item will become highlighted and selected. For instance, to log in to the BBS as Sysop, you may press C and S. The About Menu displays Copyright and Version information. Page 127 GAP Communications Call Waiting The Toggles Menu allows you to turn the Printer, Page, and Caller Alarm toggles on or off. Toggles +--------------+ Printer | | Page | | Alarm | | |--------------| Save | | +--------------+ The Toggles Menu 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. The Commands Menu allows you to run the GAP Utility programs. Commands +--------------------+ Sysop In | | Sysop In Quick | | Local In | | Configuration | | User Editor | | Filebase | | |--------------------| GAPComm | | +--------------------+ Sysop In - This function allows you to enter the system as the sysop. It first takes the phone off the hook and then runs GAPBBS. If you set up a local password, you will be asked for that password before being permitted to logon as the Sysop. Sysop In Quick - This is the same as Sysop In except that there will be no New Mail check. Local In - This function allows you to enter the system as a local user. Page 128 GAP Communications Call Waiting Configuration - Use this function to configure your system. A password will be required if you installed it. User Editor - To access the off-line 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. 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.BAT. 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 QCom up to the GAPCOMM shell, a GAPCOMM batch file would look like this: GAPCOMM.BAT +------------------------+ @echo off | | cd \qmod | | qcom | | cd \gap | | +------------------------+ The Files Menu allows you to view the Caller Log, the Offline Files Log or any Text file of your choosing. Files +----------------------------+ View Caller Log | | View Offline Files Log | | View Any Text File | | +----------------------------+ In a multi user system, the Files Menu will contain one additional Menu Item called View Network Activity. This option will display a Network Monitor window which will show each of your nodes and what activity the caller on that node is engaged Page 129 GAP Communications Call Waiting in. This window reads the NETWORK.DAT file once per second and updates the window with any changes in network activity. The Windows Menu allows you to move and color the various windows you see on the desktop. You may also prevent the Free Disk Space and Statistics windows from displaying, and toggle whether or not to show Network wide or local statistics in the Statistics window. Windows +------------------------------------+ Move Registration Window | | Move Last Caller Window | | Move Free Disk Space Window | | Move Statistics Window | | |------------------------------------| Registration Window Colors | | Last Caller Window Colors | | Free Space Window Colors | | Statistics Window colors | | |------------------------------------| Show Free Disk Space Window | | Show Statistics Window | | Show Network Stats In Window | | |------------------------------------| Save | | +------------------------------------+ You may move the various windows to any location on the screen, and color them to your own preference. The Statistics Window displays caller statistics since midnight. If you run multi nodes, you can set this window so that it shows Network statistics instead of Node statistics. For instance on the Server you can set this window to show Network statistics (all nodes included) and on each of your nodes you can set the window to show only the local stats. At midnight, when the first caller after midnight logs off, GAP will reset the Caller Stats. The default window will show only the current day's statistics, however, if you press the F9 key, your Caller Stats window will toggle between three sets of stats (Today, Yesterday, and Monthly). If you have the Show Network Stats In Window toggled on, the three sets of stats that will be displayed will be network wide instead of local. Page 130 GAP Communications Call Waiting GAPMENU will remember which set of the three sets of statistics you have displayed and will continue to display that set. If you press the F10 key, the stats window will be updated with the current stats (multi user only). The Other Menu allows you to Shell to DOS or run any program of your choosing. This Menu is user definable. Other +----------------+ DOS Shell | | GAPMaint | | GAPCALL | | +----------------+ To activate this Menu, you need to create a file called GAPMENU.MNU (a sample file is included on the distribution disks). If this file is not found, then nothing will happen if you try to select the Other Menu. The GAPMENU.MNU file is a Menu Definition file that tells GAPMENU what program you wish to execute. Its format is as follows: GAPMENU.DEF +------------------------------------------------------+ DOS Shell | | D | | Shell To DOS | | PASSWORD | | | | GAPMaint | | M | | Run GAPMaint Program | | PASSWORD | | GAPMAINT.EXE | | GAPCALL | | C Run GAP's Caller Analyzer | | NOPASS | | GAPCALL.EXE | | +------------------------------------------------------+ Page 131 GAP Communications Call Waiting The same file, with line numbers and comments added: GAPMENU.DEF +----------------------------------------------------------------+ 1 DOS Shell <- Menu Item | | 2 D <- keyboard command | | 3 Shell To DOS <- display prompt | | 4 PASSWORD <- password IS required | | 5 <- program to execute | | 6 GAPMaint <- Menu Item | | 7 M <- keyboard command | | 8 Run GAPMaint Program <- display prompt | | 9 PASSWORD <- password IS required | | 10 GAPMAINT.EXE <- program to execute | | 11 GAPCALL <- Menu Item | | 12 C <- keyboard command | | 13 Run GAP's Caller Analyzer <- display prompt | | 14 NOPASS <- password NOT required | | 15 GAPCALL.EXE <- program to execute | | +----------------------------------------------------------------+ There are five records to each Menu Definition in the GAPMENU.DEF file. Each record is on a line all by itself. The first record (Line 1) is the text that will appear in the menu box. Note that there is a space in front of the text on line 1. There is also a space following this text. The reason for this is that your Menu Item string will appear in the Menu Box exactly as you specify it. If there is no space before and after the text, your Menu Item Choice will bunt up next to the Menu Box. The second record (Line 2) is the keyboard character that must be typed to execute this menu selection. The first character of the Menu Item Choice also activates the Menu Selection, so you may have two keyboard characters activate the single Menu Choice. You must type a character on this line, even if it is the same as the first character in the Menu Item Choice text. The third record (Line 3) is the text that is displayed on the Status Line of GAPMENU. It tells you what this Menu selection does. The fourth record (Line 4) is either PASSWORD or NOPASS. This tells GAPMENU that when a user selects this Menu Item, a password is either required or not. You should always put PASSWORD here Page 132 GAP Communications Call Waiting unless you use Passwords and you do not want this Menu Item protected. In such a case, you would place NOPASS in this field. Your system is protected by a password if you have the second field in the Sysop Configuration Screen set to anything other than spaces. If you password protect your system, and you have PASSWORD in this field, GAP will ask the user for the system password. If you have NOPASS in this field, then GAP will not ask for a password. Note that if your system is not password protected, then GAP won't ask no matter what you type in this field! The fifth record (Line 5) is the actual program that is executed when this Menu item is selected. Please note in the example above that Line 5 is blank. That is, it consists of a solitary CR/LF combination. If Line 5 is blank, GAPMENU will execute a DOS shell. This is the same thing as pressing F5 in GAP. You will shell to DOS where you must type 'EXIT' to return. Continuing with the second Menu Item in the above GAPMENU.MNU file: +----------------------------------------------------------------+ 6 GAPMaint <- Menu Item | | 7 M <- keyboard command | | 8 Run GAPMaint Program <- display prompt | | 9 PASSWORD <- password required | | 10 GAPMAINT.EXE <- program to execute | | +----------------------------------------------------------------+ The first record of the Menu Definition (Line 6) is the Menu Item that will appear in the Menu Box. Note that it has spaces on the left and the right. The second record (Line 7) is the keyboard character that is to be typed to execute this Menu Choice. In this example, you may type either 'G' or 'M' to execute this Menu Choice. The third record (Line 8) is the text that appears at the bottom of the screen telling you what this Menu Item does. The fourth record (Line 9) means that a password is required to execute this Menu Item Choice. If this instead said NOPASS, then Page 133 GAP Communications Call Waiting a user could execute this Menu Item without having to enter a password. The fifth record (Line 10) is the actual program to execute. If the Menu Item String contains a '-' in the first character position then it tells GAPMENU that there should be a "separator" between the last line read and the next line: +----------------------------------------------------------------+ DOS Shell | | D | | Shell To DOS | | PASSWORD | | | | - - - - - - - - - - This is a Menu Separator | | GAPMaint | | M | | Run GAPMaint Program | | PASSWORD | | GAPMAINT.EXE | | GAPCALL | | C | | Run GAP's Caller Analyzer | | NOPASS | | GAPCALL.EXE | | +----------------------------------------------------------------+ The separator allows you to separate various Menu Choices from one another. Note that if you use the separator, then you must not provide the other four lines for this Menu Definition record. In other words, if you want a separator in your Menu, then you simply use a dash (-) for the Menu Item Choice line. Your next Menu Item Choice will come after the separator line. Page 134 GAP Communications Call Waiting The Quit Menu allows you to Exit to DOS. You may exit with the Phone either busy or not busy. Quit +--------------+ Busy | | Not Busy | | +--------------+ Busy - This selection Quits GAPMENU and leaves the phone off the hook. The phone will be busy. Not Busy - This selection Quits GAPMENU and leaves the phone on the hook. The phone will ring. Sysop Defined Screens GAPMENU has the capability to display Sysop defined screens. These screens take the place of the built in windows that are normally displayed. These screens are named GAPMENU.SCR and GAPMENUx.SCR (where the x is a number from 1 to 9). The basic screen, GAPMENU.SCR, must exist in order for the other screens to display. In addition, the numbered screens must be sequential (i.e., you can not have a GAPMENU1.SCR and a GAPMENU3.SCR, since only the screen numbered 1 (in addition to the basic screen) will display). Page 135 GAP Communications Call Waiting GAPMENU contains an AnsiCmd parser. The AnsiCmds that GAPMENU will recognize are as follows: +----------------------------------------------------------------+ BNAME - Board Name | | CLS - Clear window | | DISKx - Free space on Drive x (x = C, D, E, etc) | | LCALLER - Name of Last Caller | | LICENSE - Licensee Name | | LOFF - Last Caller Off Time | | LON - Last Caller On Time | | LBAUD - Last Caller Baud Rate | | SBLT - Total Bulletins read in period | | SCALLS - Total Calls in period | | SCLEFT - Total Comments left in period | | SDOOR - Total Doors opened in period | | SDOWN - Total Downloads in period | | SMINS - Total Minutes used in period | | SMLEFT - Total Messages left in period | | SQUEST - Total Questionnaires answered in period | | SUP - Total Uploads in period | | XCode - Change color attribute | | TODAY - Use Today's Statistics | | YESTERDAY - Use Yesterday's Statistics | | MONTHLY - Use Monthly Statistics | | NETWORK - If multi-node, use Network Wide Statistics | | +----------------------------------------------------------------+ Each of these commands are preceded by your defined AnsiCmd character: @BNAME, @X0F, @LCALLER, etc Your screens may be 80 columns wide and 22 lines in length. The window that your file will be displayed in occupies the area between the Menu Bar and the Status line. The window contains extra lines and 1 extra column (which you cannot see) to accommodate the CR/LF at the end of each line, and any spurious lines which may inadvertently be left at the end of the file. If you elect to design your own screens, keep in mind that the Windows Menu will be unavailable (you will not be able to select it). Since GAPMENU will be displaying your screen instead of its own Windows, the commands on the Window Menu are irrelevant. Page 136 GAP Communications Call Waiting In addition, the F9 (toggle stats display) and F10 (update stats display) keys will behave differently. F9 will cycle through each of your screens, displaying them sequentially. F10 will update the New Mail flag as well as save the number of the screen that is currently displayed so that the next time GAPMENU runs, the currently displayed screen will be the default screen that is initially displayed. When using the following commands: +------------------------+ TODAY | | YESTERDAY | | MONTHLY | | NETWORK | | +------------------------+ you will probably have to add them at the top of the file after you save your screen (assuming you use an editor that produces X Codes). The reason for this is if you place these commands on a line by themselves, GAPMENU will correctly interpret the command but there will be a CR/LF after the command which GAPMENU will read and display. The end result will be a blank line with nothing on it. If you do not use any of the above four commands, the statistics will default to Today's Stats for the current node. If you would like for a particular screen to display Network Wide Statistics for Today, you would use the following commands: @TODAY@NETWORK And of course, the commands would have to appear before any stats are displayed. The best place for them is on the first line of the file. Keep in mind that GAPMENU is a Window oriented program. It does not utilize nor have need for an Ansi Driver. For this reason, your screens may not contain any ANSI sequences. Use a text Page 137 GAP Communications Call Waiting editor or an X Code Editor to create your screens. Do not use an Ansi Editor! Sysop Mail Whenever a user leaves a message to the Sysop, either while logged onto the BBS, via the QWK/REP system, or via Echo Mail using the UTI drivers, GAPMENU will display the number of new messages for the Sysop in the right hand corner of the status line. Page 138 Chapter 12 User Editor ARTWORK The User Editor is where you perform off-line editing of your user file. The About Menu displays Copyright and Version information. The Edit Menu allows you to Edit the currently displayed user record, Add a new user, Delete the currently displayed user record, Toggle the active Index, Lock the currently displayed user out of a Forum and make the currently displayed user a Sysop of a Forum. Page 139 GAP Communications User Editor Edit +------------------------+ Edit User | | Add User | | Del User Del | | Toggle Index I | | |------------------------| Forum Lock Out | | Forum Sysop | | +------------------------+ Edit allows you to edit the record of the user currently displayed on the screen. Add will allow you to add a new user to the data base. Del User allows you to delete the currently displayed user. To delete a user, first bring their record to the screen by using the Find function. Press the Del key to delete the record. Note that this function is permanent! You will not be allowed to delete the sysop record. Toggle Index changes the active index. The user records are normally displayed in Name order. By selecting Toggle Index you can change the index that is used such that records are displayed by Security Level/Name order. This means that users with the highest security level will be shown first. Forum Lockout will lock the currently displayed user out of a Forum or a range of Forums. You may need to do this if a certain user needs to be prevented from joining a Public Forum. Forum Sysop makes the currently displayed user the Sysop or Assistant Sysop of a Forum or a range of Forums. The Find Menu allows you to locate a specific user by Name or Handle. Find +--------------------+ Search For User | | Locate User | | Find Handle | | +--------------------+ Page 140 GAP Communications User Editor Search For User allows you to search for a user by Last Name using a full or partial search string. Locate User allows you to find a user by exact name. You will be asked for the First and Last Names to locate. Find Handle will find a user who is using a specific Handle. You will be asked to supply the text string to locate. The Utilities Menu allows you to perform various Subscription, Forum Registration, and Security level updating functions. Utilities +----------------------------+ Register Users | | UnRegister Users | | Registers Users By Level | | |----------------------------| Update All Users | | Update Users In Forum | | Update Users By Level | | Change Expired Level | | |----------------------------| Reset Pointers | | Security level | | Level By Uploads | | Level by Messages | | |----------------------------| Remove Dupes | | Sort | | +----------------------------+ Register Users allows you to register all of your users in a specific Forum or a group of Forums. UnRegister Users allows you to Unregister all of your Users in a specific Forum or a group of forums. Register Users By Level allows you to Register users that have a specific security level in a Forum or a group of Forums. It is used mostly to register certain users in a Private Forum. Update All Users changes the Subscription Date for all of your users. If you just set up a Subscription Board and would like to Page 141 GAP Communications User Editor set all of your users to the same Subscription Expiration Date, you would use this utility. Update Users In Forum is similar to Update All Users except that it works with users who are a member of a specific Forum. Update Users By Level is similar to the previous two functions except that it works with users who have a specific Security Level. Change Expired Level allows you to change the Expired Subscription Level for all Users who have the Expired Level you provide. If you change your default Expired Subscription Level in the Configuration Editor, you may need to use this utility to change the Expired Level of your current Userbase. Reset Pointers will set the Last Read Message numbers for all Users in all Areas to 0. If you need to reset Last Read pointers for all users in a specific Forum, simply unregister all of your users from that specific Forum. If the Forum is public, that is all you need do. If the Forum is private, you will then need to re-register the users in that Forum. Security Level will change the Security Level for users that have the specified Level that you provide. You may need to use this utility if you change the Level For New Users in the Configuration Editor. Level By Uploads will change the Security Level of any user that has uploaded a specified number of files. Level By Messages will change the Security Level of any user that has left a specified number of messages. Remove Dupes allows you to remove duplicate records from the MEMBER data file. If you receive a message while rebuilding your MEMBER file that says "Duplicate Key rejected for record at offset xxxx", where 'xxxx' is a numeric value, then there are duplicate records in your MEMBER file and only one of them could be indexed. With this utility, you may remove the duplicate records. Sort will perform a physical sort of the user file, arranging users by Security Level and Name. This function is rarely need but is provided for those that like to have things "in order". Page 142 GAP Communications User Editor The Reports Menu allows you to create various reports about your users. Reports +------------------------+ User Listing | | Expired Subscription | | Subscription By Days | | +------------------------+ User Listing will produce a report on all of your users. Expired Subscription will produce a report listing any user who's subscription has expired or is about to expire. Subscription By Days will produce a report listing any user who's subscription will expire in a specified number of days. Note that the two Subscription Reports will be available for selection only if you have Enforce Subscription enabled in Configuration. The Quit Menu returns you back to the Call Waiting screen. Page 143 GAP Communications User Editor Command Keys In addition to the items available on the menus, certain keys will perform various other functions. Pressing F2 will display the Command Keys available: +--------------------------------------------+ F1 - Help | | F2 - This Window | | F3 - Register User | | F4 - UnRegister User | | F5 - DOS Shell | | F6 - View Membership | | F7 - Reset Last Read # | | Home - Beginning Of File | | End - End of File | | UpArrow - Previous Record | | DnArrow - Next Record | | Del - Delete User | | I - Change Index | | S - Scroll Window | | +--------------------------------------------+ Register User (F3) allows you to register the currently displayed user in a Forum or a group of Forums. UnRegister User (F4) allows you to Unregister the currently displayed user in a Forum or a group of Forums. DOS Shell (F5) will exit to DOS, leaving GAPUSER in memory. To return to the program, type "EXIT" at the DOS Command prompt. View Membership (F6) displays the Forum Registration screen for the currently displayed user. This screen tells you if the user is a member of a specific Forum, the Last Read Message number for each Forum the user is a member of, and whether or not the user is Locked Out of the Forum or is a Sysop of a Forum. Reset Last Read # (F7) will change the Last Read Message number in a specific Forum for the currently displayed user to a number of your choosing. After entering the Forum number, the highest message number in that Forum will be displayed along with the highest message number that the user has read. You may then enter a new Last Read Message number. Page 144 GAP Communications User Editor Because the user record contains more fields than can be seen in the window at one time, the Scroll Window key (S) allows you to view all of the user fields without having to edit the record and moving the cursor manually. Special Fields Most of the user record fields such as Name, Address, Phone Number, etc, are self explanatory. Some of them however need a bit of explanation to fully understand them. The Regis Date is the date the user first logged onto your system. The Sub Date is the date the user's registration expires. If you do not run a subscription board, this date is meaningless. When adding a New User or when a new user logs onto your board, the Country field defaults to what you defined on the Sysop screen in the Configuration Editor. The Private User flag specifies if the user is a member of your private board or not. If you run a private board, the only users that will be allowed access are those that have this flag set to Yes. Enf Time Limit overrides the default flag in Configuration for this particular user. Time limits per session and/or day are configured in your SECLEV file. Whether or not you allow users to call back an unlimited number of times per day is set by a flag in Configuration. If you generally do not allow users to call back after their time has expired, you may override that function for any particular user by setting this field to No. Note that time limits per session are still enforced. In other words, if you give a user 50 minutes per session, the user will still be limited to 50 minutes but you may allow a particular user to call back an unlimited number of times and receive the full 50 minute time allotment by setting this field to No. Default Editor determines which Message Editor the user uses. For new users this field defaults to Ask. Your users may change their default editor to either Visual or Line at the View/Change Stats Menu. Page 145 GAP Communications User Editor Chat Avail determines whether or not the user is available for Chat with another user. This flag is only effective in multi user systems. Clear Screen allows the user to have GAP clear the screen between each message that is read. If you run a Subscription board and a user's subscription has expired, the user is set back to the Expired Level. This level defaults to the level you have set up in Configuration but you may override the default on an individual user basis. If you run a subscription board and a user's subscription has expired, the user is normally removed from all the Forums such that the user will only be able to join the Public Forums. If you do not want this to happen to this particular user, you may set the Public Forums field to No. Disconnects is the number of times the user has dropped carrier. Many users simply tell their modem to hang up the line instead of being considerate and using the normal Goodbye to log off. This field tells you how many times a user has dropped carrier on your system. Page 146 Chapter 13 System Operation This chapter will describe all of the GAP commands a user (or sysop) will see while logged onto the system. Main Menu Commands +----------------------------------------------------------------+ Abandon Forum Initial News & Wel Scan Messages | | Bulletins Join A Forum Text Search Messages | | Comment To Sysop Membership List View/Change Stats | | Enter A Message New Mail Xpert Mode | | Files System Page Sysop Your Personal Mail | | GoodBye Questionnaires QWK - Dwnld QWK Mail | | Help Read Messages REP - Upload REP Mail | | CHAT Between Nodes OPEN A Door WHO Else is On | | +----------------------------------------------------------------+ 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. Page 147 GAP Communications System Operation 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. GoodBye - 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. Note that if a user is in a Forum that allows Handles, GAP will display user's Handles instead of their name, 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. It is identical to the New Mail check when callers first log on. 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. If a file called PAGE exists in your GEN directory, GAP will display this file instead of telling the user that you are not available. If you wish to never be paged at all, create a file called NOPAGE and place it in the GEN directory. Whenever a caller attempts to page you, GAP will display this file (which should give your office hours, etc.) and set a flag on the status line so that you can see that you have been paged. 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. Page 148 GAP Communications System Operation Read Messages - This command places the user into the message subsystem. There are a great many additional commands while in that system. Scan Messages - This function will allow a user to view message subjects very quickly. The TO, FROM, and SUBJECT fields of the 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. Your Personal Mail - This command will show the message numbers corresponding to any mail a user has in the current area. Any unread messages will be marked with an asterisk after the message number. 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 on-line in the system. Page 149 GAP Communications System Operation REP - This command invokes the REPIMPRT module so that a user may upload messages created with an off-line QWK/REP Mail Reader. QWK - This command invokes the QWKEXPRT module so that a user may download messages for off-line reading. The QWK/REP modules are described in detail in the chapter System Files. Enter Mail Sub-Commands 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 99 carbons. If the message is to an individual person, a user may attach a file to the message. Only the recipient of the message will be able to download the file. GAP stores attached files in your Attached Files Directory. The files are given a unique name while being stored. When the recipient of the message downloads the file, GAP will remove the attached file from its holding directory. If a user replies to a message, the message disposition 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. In the visual editor the commands to quote or view the original message are part of the editor's internal commands. Read Mail Sub-Commands The following commands are available at the Read Mail prompt: Read Mail : [2090-3295] From, To, Since, +-, Marked, Update : A user may type a message number to read. If the message is private and it is not To or From the user, GAP will display an appropriate message. If a '+' or '-' is appended after the Page 150 GAP Communications System Operation message number, GAP will skip any private messages that the user cannot read. From displays all messages From the user. To displays all messages To the user. Since displays all new messages starting with the last message the user has read. Marked allows the user to read any messages that were marked with the Text Search command. Update is basically a sysop function that allows the sysop to read messages without having GAP mark any messages To the sysop as having been read. To read all new messages without updating them, the sysop can issue the following at the Main Command prompt: R S U 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. After displaying a message, GAP will issue the following prompt: More: Yes, No, Cont, Orig, Thread, #, +-, Reply, Del, Edit, Protect, File, Move GAP builds this prompt dynamically, which means that depending upon a user's level and expert status, some of the commands will appear in the prompt and some of them will not. If the message has a Refer To number, Original will display the message the current message refers to. Thread allows the user to read messages according to their subject. Reply allows the user to reply to the current message. Page 151 GAP Communications System Operation Delete allows the user to delete the current message. Whether or not users can delete messages depends upon your configuration options. Edit allows the user to edit a message after saving it. Users can edit only their own messages. If the user has the Edit Message Headers security level, the user will also be able to edit the message headers of all messages and will be able to edit the text of all messages. If the message is public, the Protect command will set it to private. If the message is private, the word UnProtect will appear instead and it will allow the user to make the message public. +------------------------------------------------------+ It may be a violation of the Electronic | | Communications Privacy Act Of 1986 for you to make a | | private message public. GAP Development Company | | provides this function for use at the sole discretion | | of the system provider and accepts no responsibility | | for its misuse. | | +------------------------------------------------------+ File will take you into the on-line user editor and will automatically bring up the record of the person who wrote the message you were currently reading. Move 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 another Forum. You will be asked if you wish to delete the original message. If you answer No, the Move command is equivalent to a Copy command. View/Change Stats Sub-Commands By entering V from the main command prompt, the user will enter into the View/Change Stats system. GAP will display the user's statistics and issue the following prompt: View : Color, Forums, Stats, Transfer, Xpert, Help : Color - This command will allow the user to toggle his/her color graphic displays. Users can toggle their color mode and bypass Page 152 GAP Communications System Operation the View/Change Stats Menu by typing V C at the Main Command prompt. Forums - Allows users to Register and Unregister themselves in public Forums. Stats - This command allows the user to change his/her Address, Phone numbers, Password, Handle, Birth date and other fields. If you configured GAP to not allow Address changes, the user will not be allowed to change his/her Address information, Phone numbers, or Birth date. If you allow handles on your system, the users will be able to give themselves a handle, otherwise they will not be allowed to change this field. 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 for further information about the PROTO file. This command is also available at the Files Command prompt as Protocol Change. Xpert Mode - Users can toggle their expert mode with this command. Xpert Mode is also available at the Main Command prompt. File System Commands +----------------------------------------------------------------+ Archive Commands File Commands | | | | Enhanced Directories | | View An Archive File File Directories | | Select An Archive File Download A File | | Transfer A File From Archive Locate A File | | Read File From Archive New Files | | Upload A File | | | | Miscellaneous Commands | | | | Browse Text File GoodBye | | Help Protocol Change | | Quit To Main Menu Xpert Mode | | +----------------------------------------------------------------+ Page 153 GAP Communications System Operation File Commands 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 Y), 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 FileBase. 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. After selecting the Upload command, GAP will display a file called UPLOAD (if it exists). This file should inform your users what your upload policy is. If the user's Transfer Protocol is set to a Batch protocol, GAP will ask the user if he/she wishes to send more than one file. If the user answers Yes, GAP will immediately begin receiving the files. The user will be prompted for the file descriptions after all of the files have been received. If the user answers No, GAP will first prompt the user for a description of the file and after saving the description, will then begin receiving the file. Page 154 GAP Communications System Operation For each file uploaded, GAP will shell to your UPCHECK.BAT file. This file is described in detail in the chapter System Files. Processing a file through the UPCHECK.BAT serves two purposes. The first is to check the integrity of the file and the second is to extract a description file out of the archive. A description file is a text file (usually formatted to 10 or less lines with 45 or less characters per line), that describes the uploaded file. This description file is called either DESC.SDI or FILE_ID.DIZ and is included inside of an archive. Including such a file allows the author of the program (rather than the uploader) to describe what the archive is all about. GAP will process a description file only if the user opted to upload a batch of files. If GAP finds a description file in the work directory, it will import the file into the File Description and the user will be given the opportunity to either keep the file description or change it. Description files are described in more detail in the Special Batch Files section of System Files. Archive Commands View An Archive File - This command allows users to view the contents of any ARC or ZIP 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. When a callers requests a Transfer, GAP will shell to your ARCTRANS.BAT file which is responsible for extracting the requested file out of the archive and placing the resultant file in your Loose File Directory. The ARCTRANS.BAT file is described in detail in the chapter System Files. Read A File From Archive - Users may read any doc or text file contained within an ARC or ZIP file. Page 155 GAP Communications System Operation Miscellaneous 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. GoodBye - Caller's may log off the system from within the Files Area. Help - Allows callers to obtain help for the File Menu commands. Protocol Change - This command allows your callers to change their default Protocol without having to Quit back to the Main Menu and issue the View/Change Stats command. Quit To Main Menu - Returns the caller to the Main Menu. Xpert Mode - This command allows your callers to change their Expert status. Users may also Join a Forum from within the Files System. When issuing the Join command from the Files System, the user will be placed at the Main Board command prompt and not the Files System command prompt. Sysop Commands Function Keys The Sysop Keys can be disabled if you are running under a LAN. To disable these keys set the Disable Local Sysop Keys in Configuration to Yes. 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. Page 156 GAP Communications System Operation F3 - This is the On-line User Update Key. Pressing it will take you into the On-line 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. 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. 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 on-line, 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). 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. Alt F1 - Displays the main user information on the status line. Alt F2 - Displays the available status line keys. Alt F3 - Displays additional user information. Page 157 GAP Communications System Operation 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 the same base name as your Messages file but with a .TXT extension. 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. Alt F7 - This key will decrease the user's time available by five minutes. Alt F8 - Pressing this key will give the user an extra five minutes of time available. Alt F9 - This key will decrease the user's security level by one. Alt F10 - Pressing this key will increase the user's security level by one. Note that changing a user's security level will update the status line as you press the keys, however increasing or decreasing the user's time 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. Unlike the Files System Browse command, this command accepts path names. 4 Maintain Users File - This function performs as a mini user editor. You may add users, delete users, find any user, and Page 158 GAP Communications System Operation 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 is 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. In order to exit to DOS, you must have the remote batch file set up as described in the chapter System Files. 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 local keyboard input, your computer will seem to freeze because there will be nobody at the local keyboard to type the response that DOS is expecting. Use this command with caution. 6 Other Node Users - In a multi user system, this command will allow you to view the caller logs of other nodes. 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. Page 159 Chapter 14 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. Setup The following files are needed: +----------------------------------+ Name Directory | | |----------------------------------| GAPFILE.EXE DEFAULT | | GAPFILE.CNF DEFAULT | | DIRS GEN | | FILES.DIR GEN | | +----------------------------------+ Page 161 GAP Communications FileBase Editor The following files will be created in your MAIN directory: +------------------------+ FILES.DAT | | FILES.IDX | | FILEKEY.DAT | | FILEKEY.IDX | | +------------------------+ GAPFILE resides in the DEFAULT directory where it must have access to the GAP configuration file, GAPBBS.CNF. The sysop must create three files. These are DIRS, FILES.DIR, and GAPFILE.CNF. Sample files are provided. The format of DIRS is as follows: +----------------------------------+ 1 Communication Programs | | 2 Read MAC Pictures | | 3 Programmers | | 4 Utilities | | 5 Uploads | | +----------------------------------+ Each file contained within the FileBase must belong to a specific subject. The DIRS file tells GAP and GAPFILE what those subjects are. 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. GAP uses this file to display the name of the current subject a caller is viewing. For instance, if you ask for a listing of directory 1, GAP will first read line 1 from the DIRS file, display the subject number and name that it finds, and will then list the files in that directory. GAPFILE uses this file to build a list of available subjects which you may view anytime by pressing F10. GAPFILE also uses the DIRS file when creating a Master File listing and when displaying subject categories during various operations. Page 162 GAP Communications FileBase Editor 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: +------------------------+ C:\DL1 | | C:\DL2 | | D:\DL3 | | D:\DL4 | | D:\UP | | +------------------------+ FILES.DIR is used by many of the Utility Functions of GAPFILE. The entries tell the program where the files for a specific subject belong on the disk drive. Each entry in the file must correspond to its respective entry in DIRS. If you have 5 subjects (directories) then there must be 5 entries in this file. If a Forum also has directories (directories in addition to the Main Board directories), it will need the following files which must be placed in the Forum GEN directory. If the Forum does not have a GEN directory, then the files must be placed in the Forum DEFAULT directory: +----------------------------------+ Name Directory | | |----------------------------------| DIRS FORUM GEN | | FILES.DIR FORUM GEN | | +----------------------------------+ The 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). Page 163 GAP Communications FileBase Editor 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: FILES.DIR +----------------------------------+ C:\GAP\SUP\DIR11 | | C:\GAP\SUP\UP | | +----------------------------------+ DIRS +----------------------------------+ 11 Support Forum Files | | 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: FILES.DIR +----------------------------------+ C:\GAP\SUP\DIR1 | | C:\GAP\SUP\UP | | +----------------------------------+ DIRS +----------------------------------+ 1 Support Forum Files | | 2 Support Forum Uploads | | +----------------------------------+ GAPFILE.CNF is a configuration file for the FileBase 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: +------------------------+ G,H,I,F,C | | +------------------------+ The first line represents the drives you wish to have searched when locating a file. Notice that there are no colons after the drive letter. Page 164 GAP Communications FileBase Editor 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. 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 165 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 | | 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 | | +--------------------------------------------+ By pressing F2, these Command Keys will be displayed. Page 166 GAP Communications FileBase Editor In addition to these keys, you may shell to DOS by pressing Alt- F5. 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. 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. 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 DnArrow key. To delete the currently displayed file (physically as well as its entry in the FileBase) use the Del key. Note that deletion is permanent and it is impossible to recover the file once it is deleted. You will be asked to confirm the delete operation. Page 167 GAP Communications FileBase Editor Use the Edit Menu to Add, Edit, or Delete Files: Edit +------------------------+ Edit File | | Add File | | Del File Del | | +------------------------+ Edit File allows you to edit the file that is currently displayed. Add File allows you to add a new file to the FileBase. When adding a file, GAPFILE will initially display certain defaults. You may either accept the defaults or type in your own parameters. Del File is the same as pressing the Del Key. The currently displayed file will be deleted from the disk and removed from the FileBase. 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 | | +--------------------------------------------+ 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 Page 168 GAP Communications FileBase Editor 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 Accesses - 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 in the File System Options screen of GAPSETUP. 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 level necessary to download the file, if the file is password Page 169 GAP Communications FileBase Editor 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. Normal Log - Most files are considered Normal for the purpose of logging them to the caller log when a caller downloads. The Caller Analyzer will store the file in its own database for statistic purposes. Once such use is in the creation of the Download Bulletin of the most popular files. Only those files that have actually been downloaded will appear in this bulletin. You may have some files in your FileBase that you do not want to appear in this download bulletin. If so, set the Normal Log field for these files to No. The file name will still appear in the caller log, however, the Caller Analyzer will not store the file in its internal database. 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. Page 170 GAP Communications FileBase Editor 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 may enter up to 10 lines of descriptive text which will be shown to users when they do an Enhanced file listing (E from the Files Menu in GAPBBS). Page 171 GAP Communications FileBase Editor Utilities The following options are available on the Utilities Menu: Utilities +--------------------+ Update | | Master List | | Stray Files | | Import | | Move Files | | |--------------------| Global Change | | Fix Keywords | | Remove Dupes | | Mass Delete | | +--------------------+ Update is a means whereby GAPFILE will check the database against the files on the disk to see if the location, size, and date are correct. You have the option of checking only the current subject or all subjects. You may specify whether or not the file date should be updated and whether or not to delete the ISAM record or mark it as OFFLINE if the file cannot be found on the disk. This utility 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. If the Update function cannot find a file in the directory where it is supposed to be located, it will search the drives in an attempt to find the file. If it finds the file, it will modify the Where field with the correct directory information. If it cannot find the file, it will either delete the FileBase entry for the file or mark the file as OFFLINE (depending upon the options you choose prior to running Update). The drives that are searched depend upon what you have setup on line one in the Page 172 GAP Communications FileBase Editor configuration file, GAPFILE.CNF. If this line is blank, then GAPFILE will search all drives in the system, excluding the floppy drives. 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". For each file found, GAPFILE will shell to a batch file (the default is UPCHECK.BAT but you can change this to any batch file name you wish). The purpose of the shell is to extract any description files (FILE_ID.DIZ or DESC.SDI) from the archive so that the description file can be used as the keywords and file description. You can use your UPCHECK.BAT file for this purpose, or you can give the batch file a different name and include only the commands you want to have executed while importing stray files. The parameters that are passed to the batch file are identical to those passed by GAP to UPCHECK.BAT. The sixth parameter will be a '1'. Import allows you to import files that are listed in an RBBS type of directory listing. The format of this listing is the same as that produced by the Master File Listing using condensed mode (i.e., 1 entry per line). Using Import, you tell GAPFILE where the files are located, the name of the text file that provides the descriptions for each of the files, and the Area and Subject numbers to classify the files in. Import will then read the text file and add the description, date, and file size that it obtains from the List File to the FileBase Import is normally used when adding files from a CD-ROM. Most of the newer CD-Discs for BBS use have List Files which contain a one line entry for each file on the disc. Page 173 GAP Communications FileBase Editor GAPFILE will also import files that contain multi-line descriptions. The format of the import file is pretty much the same except that a description of a file may be up to 10 lines. The format would be something similar to the following: +----------------------------------------------------------------+ FILENAME.ZIP 123456 07/01/92 This is line 1 of the descrip | | This is line 2 of the descrip | | This is line 3 of the descrip | | +----------------------------------------------------------------+ The first description entry will be saved in the keyword field as well as the first line of the Enhanced Description. The next nine lines will be saved as lines two through ten of the Enhanced Description. The only requirement to importing more than one line of description is that the second and subsequent lines be preceded with at least one space. Move Files is a global version of the regular Move File function (F6). 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. You may also specify a new area. 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 and area numbers the same (i.e., don't change them). Move Files is useful for moving newly uploaded files to their appropriate subject category. You may move up and down the two columns by using the Up and Down Arrow keys, or back and forth between the two fields by using the Enter key. Page 174 GAP Communications FileBase Editor Global Change allows you to globally change many of the fields in the FileBase. The changes you make can be performed either on a specific Area, a specific Subject, All Areas, All Subjects, or a combination of both. +----------------------------------------------------------------+ Global Field Change | | |----------------------------------------------------------------| | | Change Old Value New Value | | |----------------------------------------------------------------| | | N File Exten : . . | | N Where : | | N Ttl Accesses : 0 0 | | N Area : 0 0 | | N Subject : 0 0 | | N Security : 0 0 | | N Uploaded By : | | N Password : | | N Free File : Y Y | | N Normal Log : Y Y | | | | Area To Change : Area # or ALL for All Areas | | Subject To Change : Subject # of ALL for ALL Subjects | | +----------------------------------------------------------------+ Enter a Y or N in the Change field to change the data in the FileBase that corresponds to the particular topic. If you answer Yes in the Change field, press Enter to move to the next two fields to fill in the appropriate information. The Old Value is the data in the FileBase that you wish to change to the New Value. The Where field contains some hidden uses that may be of benefit to you. If you have not yet moved the files from the Old directory to the New directory, then GAPFILE will move them for you when the Global Change executes. For instance, if you have a private upload directory in D:\PRIVATE and an upload directory in D:\UP, where you screen your uploads prior to posting, you can use these Where fields to move your private uploads to the public upload directory. Page 175 GAP Communications FileBase Editor If your private uploads are in Area 0, Subject 11, and your public uploads are in Area 0, Subject 10, you can change the Where field from D:\PRIVATE to D:\UP and change the Subject field from 11 to 10. GAPFILE will change the subject field for each file in the private upload directory and will change the where field as well. In addition, GAPFILE will physically move the files from D:\PRIVATE to D:\UP. If you use a scheme such as suggested above, be sure that you also enter 0 in the Area To Change field, and 11 in the Subject To Change field. Otherwise, in addition to changing the Where field, GAPFILE will also change any file that has a Subject field of 11 to a new subject of 10, and this could include some of your Forums. Be specific when changing fields. If you enter an * as the only character in the Old Value field, and enter just a drive designation in the New Value field, GAPFILE will modify just the drive designation, leaving the directory the same. For instance, if you enter * in the Old Value field and F: in the New Value field, and the Where field for a file is D:\DL1, GAPFILE will change the Where field to F:\DL1. When using this feature, the file will not be physically moved. Fix Keywords allows you to rebuild your Keyword Data and Index files. Normally you would fix your Keyword files only if they become damaged. Depending upon how many files you have in the FileBase, this utility can take up to 4 hours or more to complete. Remove Dupes allows you to remove duplicate records from the FileBase. If you receive a message while rebuilding your data files that says "Duplicate Key rejected for record at offset xxxx", where 'xxxx' is a numeric value, then there are duplicate records in your FileBase that need to be removed. In order to delete the duplicate record you must supply the numeric offset that GAPREBLD displayed in its warning message. You must supply the exact number or you may inadvertently delete the wrong Page 176 GAP Communications FileBase Editor record. If you received a duplicate record warning for the same offset value, you need only remove the duplicate record once. Mass Delete allows you to remove all of the files in a specific subject. It can be used if you need to quickly remove a group of files. 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. 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 field. 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 Page 177 GAP Communications FileBase Editor changes made, you must press F9. You may press F9 at any time to quit the editing process and save your work. If you press Esc, and have made changes, GAPFILE will ask you to confirm that you indeed wish to abort the changes. CD-ROM Usage CD-Discs present a special problem to BBS programs. Because of the massive amount of information they hold and their slow disk access times (CD-ROMS are typically much slower than a floppy drive), it is imperative that the system know where all the files are on the disc. GAPFILE plays an important role in managing a CD-Disc in that it allows you to create a database of the thousands of files on the disc. This database, by its very nature, holds the directory path to the files. When a caller attempts to download a file that is on a CD-Disc, GAP need only look the file up in the FileBase to determine which directory the file is in. This "look-up" takes less than 1/2 second. Compare this to the minutes it can take to physically search the CD-Disc for the file. These benefits do not come without a price. Depending upon which CD-Disc you purchase, the amount of time that you must spend setting up the FileBase can range from 2 hours to over 24 hours! Here are some things to consider when purchasing a CD-Disc: + Is it well organized? Are its files in separate directories grouped according to subject matter? + How many duplicate files does it have? If over 1% of the files are duplicates, then you may want to consider a different disc. + How many files and/or bytes does it contain? A CD- Disc can hold well over 600 megs of files. + How many directories does it contain? If it contains over 40 directories you will need to devise a way to display those directory names to your users. A Directory Menu with 50 to 100 categories is difficult to read and comprehend. + Does it have its own FileBase which you can simply copy to your MAIN directory and use "as is"? There is at least one CD-Disc which comes with a pre- configured FileBase. Page 178 GAP Communications FileBase Editor + Does it have separate text files which you can Import into your existing Filebase? This is the most common method of interfacing a new CD-Disc with your Filebase. If the disc does not have these directory listings do not even consider purchasing it. Even if it does have the listings, be sure they are of the proper format. If you purchase a CD-Disc that contains a GAPFILE FileBase which you can simply copy over to your MAIN directory, you are already 90% complete in your set-up. The files that make up the FileBase are: FILES.DAT, FILES.IDX, FILEKEY.DAT, and FILEKEY.IDX. In addition, you will need the FILES.DIR and DIRS files. If you already have a pre-existing FileBase and you wish to use the one contained on the CD-Disc, you have two choices. Hope that all the files on your hard drive are contained on the CD-Disc and simply copy the new FileBase files on top of your existing files, or make a Condensed Master File Listing of your existing files, edit the list and remove any headers and footers, and break the list up into separate files where each file contains only those listings appropriate for the file. After creating your Master List, you may then copy the FileBase files from the CD-Disc to your MAIN directory, thereby replacing your FileBase with the one on the CD-Disc. Lets assume that you've made a Master List of your existing files and have just copied the FileBase files from the CD-Disc to your MAIN directory. The next step is to inspect the DIRS and FILES.DIR files (if the CD-Disc included these files) and make sure they are correct. First determine how many subject categories the disc has. If the disc is properly organized, it will have one physical directory for each subject category. Some discs have 2 or 3 physical directories for each category of files but this does not present that much of a problem. Normally, the disc will include a DIR type of menu file that visually shows the categories. Lets assume that the disc is configured for 34 subject categories. Create or edit your DIR and DIRG files to show these subjects. You can then use the DIR file as a reference for creating the DIRS file that GAPFILE needs. After creating your Menu Files (DIR and DIRG), create or edit the DIRS file so that it properly shows the various categories. For instance, if Page 179 GAP Communications FileBase Editor subject 1 is Communications and subject 2 is Games, the first two lines of your DIRS file would look like this: +------------------------+ 1 Communications | | 2 Games | | +------------------------+ You would then add the other 32 categories as well as the 35th which would be your Upload directory. You will then need to create or edit your FILES.DIR file. If the files in subject 1, Communications, are in directory F:\001 on the CD-Disc, line 1 of your FILES.DIR would be: +------------------------+ F:\001 | | +------------------------+ Line 35 of this file would be the path to your Upload directory. If the CD-Disc uses multiple directories for a single subject category, simply enter the first directory path that applies. For instance, if the Communications files are in F:\001, F:\001A, and F:\001B, enter F:\001 on the appropriate line of FILES.DIR. Next you need to go into GAPSETUP and enter the number of directories you now have. In this case, that number would be 35. You are now ready to fire up GAPFILE and see what you've got! The first thing you will probably need to do is change the Drive Designator and possibly the Security Level on each of the CD-Disc files. Lets assume the CD-Disc came configured as drive D and the files all have a security level of 50, and that your CD-ROM is actually drive F and you have a download security level of 40. From the Utilities Menu select Global Change. Use the DnArrow key and move the cursor in front of the Where field. Enter a Y and press Enter. For the Old Value, enter an *. For the New Value field, enter F:. Do not enter a slash, just the drive and colon. Now move the cursor in front of the Security field and enter a Y. Enter 50 in the Old Value field and a 40 in the New Value field. Move the cursor all the way down to Area To Change and type ALL. Also type ALL in the Subject To Change field. Page 180 GAP Communications FileBase Editor GAPFILE will now ask you to confirm that you wish to run the Global Change. If you answer Yes, it will then proceed to make the changes you specified. The process should take about 5 minutes. If you had pre-existing files that you "saved" by creating a Master File listing, you may now import those files back into the FileBase. First, determine how many additional subjects you need to add to configuration, DIRS and FILES.DIR. Tell GAPSETUP your new number of subjects and enter the new subjects and their directory paths into DIRS and FILES.DIR respectfully. Be sure to make your Upload directory the highest numbered subject. Lets say you previously had 10 subjects including the Upload directory. The CD-Disc gave you 34 new subjects so that makes a total of 44 subject categories. The 44th is your Upload directory. You will need to edit the Master Listing you produced (hopefully you created a simple condensed listing with no file times or other frivolous information), and remove the header at the top of the file and the statistics at the bottom. Each category of files will have a heading describing what the files in that category are all about. You need to take all the files in that category and save that group to a file of its own. Call the file LIST1.TXT or perhaps LIST35.TXT since, if you are following the example so far, category 35 is the next available subject that has no files in it yet. Use an editor that allows you to mark a block of text and save that block to a file. Do not save the category description, just the actual listings themselves. Do this with each of the categories in your Master Listing. Using our ongoing example, you should end up with 10 separate text files. Go into GAPFILE and from the Utilities Menu, select Import. Type in the directory where the files from your first listing are physically located. Next type the name of the text file which you will be importing. In this case, the first file is called LIST35.TXT. Type in the destination area that these files came from. And finally, type in the destination subject that these files are to be placed into. In this case, the Subject Number will be 35. Select Start and your old files will magically re- appear into your FileBase. Repeat this procedure for each of the list files you created from your Master Listing. Page 181 GAP Communications FileBase Editor Keep in mind that there is a good chance the CD-Disc contains many of the same files that you previously had. While importing, if the file currently being imported already exists, the file will be skipped. If there were any such duplicate files, they will be listed in a file called IMPORT.LOG. Its a good idea to examine this file since you should be able to safely delete the files contained in it from your hard drive. If you would like to assure yourself that the file actually does exist on the CD-ROM, you may use F8 in GAPFILE and locate the file. Check the file sizes and dates since you could very well have a newer version of the file than the one on the CD-Disc. If such is the case, simple change the Where field for the file to reflect your hard drive directory instead of the directory on the CD-Disc. Press Enter a couple of times to automatically change the date and file size. Believe it or not, it takes longer to write about how to set up a CD-disc that contains a pre-configured FileBase than it does to actually do it! If your CD-Disc does not contain a pre-built FileBase your only choice is to use the Import Utility and import the text listings that came with the disc. If the Disc did not come with any such listings, or if the listings are of the wrong format, you will save yourself many hours of frustration by simply returning the disc for a refund and purchasing one that contains correctly formatted listings. A correctly formatted listing appears as follows: +----------------------------------------------------------------+ 16550A.ZIP 5044 10/14/88 16550 UART FIFO BUFFER | | BOYAN40A.ZIP 160561 02/05/89 Boyan Comm Program - Part 1 | | BOYAN40B.ZIP 131354 02/05/89 Boyan Comm Program - Part 2 | | GAP.SLT 2885 01/11/88 Telix script for a GAP BBS | | GAPASP.ZIP 686 08/17/88 Procomm script for a GAP BBS | | +----------------------------------------------------------------+ There should be one such List File for each subject category of files. For instance, if the CD-Disc is categorized into 30 different subjects, there should be 30 of these List Files. Most of the popular CD-Discs designed for BBS usage provide these files. Be aware that there are some CD-Discs in sheep's clothing that will cause you to have nightmares when trying to set them up. They advertise and actually do come with these List Files, however the listings may contain such oddities as showing a file Page 182 GAP Communications FileBase Editor size of 1048 bytes as 1K or a date of 06/28/92 as 06/92, or have no file description whatsoever. All 4 fields as shown in the above listing need to be present and they all need to be of the proper format. The date field, however, can use either a slash or a dash as the delimiter. There is nothing unusual about the file listing. It is the same format that is currently used by many popular BBS programs. It is the same format that GAP uses when it displays files on the screen or creates a Master Listing, in Condensed mode. If a CD- Disc targeted for BBS Sysops does not provide such listings you should not purchase the disc. In order to get these thousands of files into your FileBase you will use the Import and Update functions in GAPFILE. The Import process itself will take about 4 hours. The Update process will take about 18 hours. You need to take an active part in the Import process, but the Update process can be run while you are tucked in bed for the night. Before starting, be sure to have your DIRS, FILES.DIR, DIR and DIRG files already built. The guidelines that were presented for these files for installing a CD-Disc that provides a ready made FileBase apply here as well. If you print out the DIR or the DIRS file and keep it next to you, it will serve as a handy reference when importing the files. Be sure that you have already told GAPSETUP how many File Directories you will ultimately have. You do this by going into the Configuration Editor, select the Go To Menu, and select File System Options. From the Utilities Menu in GAPFILE, select Import. For the Source Directory, type the drive and directory where the files that belong to your first List File belong. If you are Importing listing #1, then the files for this list should be in the first subdirectory on the CD-Disc. It might be helpful to issue a Directory listing of your CD-Rom drive and redirect this listing to your printer. You will then have a physical map of the subdirectories on your CD-Disc. For the Source File, type the name of the List File that you are currently importing. Page 183 GAP Communications FileBase Editor For the Destination Area, type the Area number where you want these files to be classified in. Area 0 is the Main Board, any other number represents a Forum. For the Destination Subject, type the Subject number that these files will be classified under. The subject number corresponds to the numbers you gave each category in your DIRS file and the number a caller must type (as shown to your callers in your DIR and DIRG files) to view the files in this particular subject. Select Start to begin the Import process. For each file that is imported, the file will be given the Keywords, Description, File Size, and Date that are contained in the List File. You will need to repeat the above process for each List File that you have to Import. It can take several hours to Import the 6000 plus files that are contained on a CD-Disc, so plan your time accordingly. You only need to be around to provide the actual input to the Import Menu Choices. Because there is no direct correlation with the List Files and the files actually contained in the directory that you specified as the Source Directory, you will now need to run Update. Makers of CD-Discs provide us with wonderful Categories of files, but we have yet to see a CD-Disc where 100% of the files in a specified Category are actually in the corresponding disc directory. If you think you have just spent a great deal of time in getting all of these files into your FileBase, imagine the amount of time it takes to actually create a CD-Disc! In order to actually check each of the new files you just Imported into your FileBase, GAPFILE now needs to check the directory that is contained in the Where field for each file to see if the file is actually in that directory. If a file is not in that directory, your callers will be unable to download it. In order to do this, GAPFILE needs to search all of your disk drives to try and locate the file (providing the file isn't where it is supposed to be). Before running Update, make sure that line 1 of your GAPFILE.CNF file contains only the drive letter for your CD- ROM. This will force GAPFILE to search just the CD-ROM. Be sure to change this back after the Update is finished so that the only drives that will ever be searched are your actual hard disk drives. Once the Update of a CD-ROM is complete, there will never be a need to search it again. Page 184 GAP Communications FileBase Editor Before beginning the Update, we need to go to the hardware level and make sure the hardware is working for us instead of against us. If you do not have expanded memory the following advice does not apply to you. MSCDEX, the software program that oversees the CD-ROM, allows you to set the Cache buffer size. Normally, entering /M:32 is sufficient (or even using the default buffer size is sufficient). Since GAP itself never has to physically search for a file (you are doing all that drudgery right now), having a large buffer serves no useful purpose. However, right now, in performing the Update, we need a pretty large CD-ROM Disc Cache. If you have over 1 meg of expanded memory, we suggest you set your Cache buffer to 512. This will set the Cache buffer to 1 meg. The MSCDEX parameters for implementing this are : /E /M:512 This will set up a 1 megabyte CD-Disc cache in expanded memory. The reason you need such a large cache is to keep MSCDEX from physically searching the CD-Disc for a file (should the Update not be able to find the file in the directory the Import Utility said it is in). Once the entire disc is searched for a file, all of the directory structure for the CD-Disc will be in MSCDEX's Cache buffer. This will speed up the Update process tremendously, since MSCDEX no longer needs to access the CD-Disc; all the information that it needs to locate a file will already be in fast RAM. Note that versions of MSCDEX prior to 2.2 have a severe bug whereby if you try to allocate a Cache buffer greater than 63k, the cache will corrupt itself. You will see this problem manifesting itself as "file not found" or if you do a DIR of the CD-Disc, you may only see some of the directories displayed. If you need to set a Cache buffer greater than 63k and you are using a version of MSCDEX prior to 2.2, call Microsoft now and obtain an update to the program. Now that the hardware is taken care of, we are ready to run our much needed Update. From the Utilities Menu of GAPFILE, select Update. Move the cursor down to All Subjects and press Enter. This will cause a check mark to be displayed in front of All Subjects. Make sure File Date has a check mark in front of it. You toggle individual options on or off by pressing Enter while the bar is highlighting the Menu Item. For Delete File and/or Offline File (both of them are mutually exclusive) the decision is yours. If Update cannot locate a particular file it will Page 185 GAP Communications FileBase Editor either delete the FileBase listing for the file or mark the file as OFFLINE. As long as you have everything configured correctly, if the file cannot be located, it simply does not exist. You may choose at this point to simply OFFLINE files that cannot be found. By marking non-existent files as OFFLINE, you keep the FileBase Entry for the file, but if a caller requests the file for download, it will be up to you to locate it and make it available. By now it is probably 10:00 PM and you are ready for bed. Select Start from the sub-Menu and go to sleep. The entire process will take a minimum of 8 hours. If you do not have at least a 1 megabyte expanded memory cache that MSCDEX can use, it will take over 18 hours to complete the Update process. Keep in mind that you are dealing with a device that is probably 10 times slower than your 1.4 meg floppy drive. Also keep in mind that your callers will think you have the best BBS in town because you have all these neat files that nobody else has. Little do they know what you had to go thru to provide them! The Update process will insure that each file in your FileBase can be located by GAPBBS. The time spent initially installing your CD-Disc is time well spent since you will never have to do it again (CD-ROMS do not change). Command Line Interface You may run GAPFILE in batch mode to produce a Master File Listing. The Master File Utility Menu must already be configured so that GAPFILE knows the name of the Master File list, the Area(s) to utilize, whether or not to produce a Condensed or Enhanced list, etc. The commands to accomplish this are as follows: +------------------------+ GAPFILE 6 U M S Q R | | +------------------------+ Page 186 GAP Communications FileBase Editor Which corresponds to: +----------------------------------------+ Run GAPFILE | | Select the Utility Menu | | Select the Master File List | | Start the Listing Process | | Select the Quit Menu | | Return To GAPMENU | | +----------------------------------------+ The spaces in the command line and the ordering of the parameters are required. GAPFILE will also accept a command line parameter of: +------------------------+ UPDATE 6 FILENAME | | +------------------------+ Where FILENAME is the name of a file to Update. You would probably want to use this command after producing a Master File Listing so that if you ZIP the listing and place it in your Upload Directory, GAP will always show the file as new whenever you update it. Since Update cannot be intermixed with the previous commands, you will need to run GAPFILE twice if you wish to produce a Master File Listing and Update the date and size of the resultant ZIP file that your batch file will create/update. The following is an example of how to produce a Master File Listing, ZIP the listing, then update the FileBase: MASTER.BAT +--------------------------------------------+ GAPFILE 6 U M S Q R | | PKZIP H:\UP\CROWLIST.ZIP MASTER.LST | | GAPFILE 6 UPDATE CROWLIST.ZIP | | +--------------------------------------------+ Note that in using the above example, you should make sure to have only one (1) CROWLIST.ZIP in the Filebase since GAPFILE will search for and accept the first instance of the file it finds Page 187 GAP Communications FileBase Editor (same as what occurs when you use F8 to find a file in All Subjects). Unlike the commands to create the Master List where you must specify the commands to cause GAPFILE to Quit to GAPMENU, after performing the Update on the file, GAPFILE will automatically Quit. Indirection Files An Indirection File is a file that holds the names of users who are authorized to download the file to which the indirection file is attached. You attach an indirection file to a file in the FileBase by placing the name of the indirection file (preceded by an AT (@) sign) in the password field. Lets say you have a file called FILE.ZIP and you wish to allow only Bob Jones and Betty Smith to have access to this file (because for whatever reason, you don't want to give out passwords and perhaps all of your users have the same level), you can create an indirection file called FILE.PRO (or something similar that you can associate with the FILE.ZIP), and place this file in your Indirection Directory. The file would be formatted as follows: FILE.PRO +------------------------+ Bob Jones | | Betty Smith | | +------------------------+ In the Password field for FILE.ZIP, enter @FILE.PRO as the password. When a user attempts to download FILE.ZIP, GAP will see that it is protected by an indirection file and will read the file to see if the user's name is contained within it. GAP will not allow the download if it cannot locate the user's name in the file. Indirection files must be given a name that is 9 characters or less in length. In addition, the '@' character cannot be used as the first character of a password (unless of course, you intend to use an Indirection file). Page 188 Chapter 15 External Protocols General Information GAP allows the sysop to define up to 20 external protocols. To implement these protocols, you will need an external protocol driver. The first thing you must do is edit your PROTO file so that it shows the external protocols you wish to make available to your users: PROTO +------------------------------------------------------+ | | File Transfer Protocols | | | | Ascii Ymodem | | Xmodem F-Xmodem 1K (MNP) | | Crc Xmodem G-Ymodem-G (MNP) | | 1K Xmodem Zmodem | | None | | | | External Protocols | | | | Dsz (Zmodem) Hs-Link | | | | +------------------------------------------------------+ Next, you need to go into the Configuration Editor, select the Files Systems Options from the Goto Menu, set the Use External Protocols field to Yes and in the Ext Protocol File Name field, type in the name of the data file that holds the external protocol information. The default name is PROTO.DAT. This file is placed in the GEN directory. Next, press F9 to save the changes Page 189 GAP Communications External Protocols and then select Ext Protocols from the Files Menu. After selecting the data file to edit, you will be presented with a screen similar to the following: ARTWORK Here you configure each of the external protocols so that they will run properly with GAP. Ltr - This is the character the user must type in order to select the protocol. It can be any character of your choosing but it may not contain the letter of one of the internal protocols (i.e., 1ACFGNXYZ). This letter also forms one of the characters in the batch files used to invoke this protocol. Batch - If the protocol is capable of sending and receiving multiple files in one invocation, then you would set this field to Yes. In order to qualify as a Batch protocol, the driver must be able to produce a DSZ type of log file. Nearly all protocols that support batch transfers will produce this log. The DSZLOG is a text file that lists the success or failure of each of the files the user has downloaded. Upon return from the shell, GAP will read this log to determine which files the user downloaded and will update the user record and the FileBase accordingly. In order for GAP to know where to find the DSZLOG, you must set an environment variable in your AUTOEXEC.BAT that tells the protocol where to write the file and GAP where to read it. You may name the file anything you like, but for simplicity, it is best to name it DSZLOG. In your AUTOEXEC.BAT you would enter something similar to: Page 190 GAP Communications External Protocols SET DSZLOG=C:\GAP Besides being able to write a DSZLOG, the batch protocol must also be able to read an indirection file. An indirection file is a text file that lists the full path and name of the files the user wants to download. The name of this file is then passed to the protocol on the command line. The protocol will read this file and send each of the files listed in it to the caller. If the external protocol is designated as a batch protocol, then GAP will allow the user to download as many files at one time as his security level allows. In order to accomplish this, GAP keeps track of the files the user has selected in a binary file called FILELST.DWN. GAP uses this file with its own internal batch protocols. On your distribution disks, you will find a program called READBTCH.EXE. This program will read the FILELST.DWN file and create a text file called FILELST.TXT. This text file may then be passed as the indirection file to the protocol driver. BiDir - If the protocol is capable of sending files as well as receiving them at the same time, then you would answer Yes in this field. Bi-Directional capability only works when a user begins a download of file(s) from the BBS and instead of instructing his communications program to Download, he tells the program to upload, and supplies a list of files to send. The Bi- Directional protocol will take care of the sending and receiving of the files. When a protocol is configured as Bi-Directional, then when the user returns from the shell, GAP will update the user record and the FileBase with the file(s) the user has downloaded and will then check the upload work directory to see if any files were also uploaded. If so, GAP will then prompt the user for a description of each one of the files it finds in the work directory. MNP - If the protocol depends upon an Error Correcting Connection between the two modems then you would answer Yes in this field. If a user selects an MNP designated protocol and yet does not have an MNP connection, GAP will issue a warning message. Pro - tells GAP whether or not to protect the Sysop status line (the bottom two lines on the screen). If a protocol makes a mess of the screen, then the presence of the sysop status line is Page 191 GAP Communications External Protocols probably causing it. If so, you would want to set this field to No. Name - is a descriptive name to give the protocol. It will be displayed to the user during various activities. 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. When uploading, GAP will pass the following 4 parameters to the external driver (EXTRx.BAT): +--------------------------------------------+ %1 Port Number | | %2 Computer to Modem BPS Rate | | %3 Path and/or name of file | | %4 Modem to Caller BPS Rate | | +--------------------------------------------+ When downloading, GAP will pass the above 4 parameters along with the following two (EXTSx.BAT): +--------------------------------------------+ %5 Upload Directory | | %6 0 or 1 if Uploads are allowed | | +--------------------------------------------+ The following are sample batch files for DSZ: EXTSD.BAT +----------------------------------------------------------------+ @echo off | | del dszlog | | del filelst.txt | | readbtch | | dsz ha on z pB4096 estimate 0 %4 sz -y-m @c:\gap\filelst.txt | | +----------------------------------------------------------------+ Page 192 GAP Communications External Protocols EXTRD.BAT +----------------------------------------------------------------+ @echo off | | del dszlog | | dsz ha on z pB4096 estimate 0 %4 rz -y-m %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. 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 if you use DSZ as an external protocol, your copy of the program must be registered. Otherwise, during an upload, DSZ will place the files in the current directory instead of the directory GAP specifies. Page 193 Chapter 16 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 @USEPAUSE as the very first AnsiCmd in the file(s). When GAP encounters this AnsiCmd 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 run a Network and notice that sometimes when I bring up the Call Waiting program on one of the client nodes, there is a long delay after the screen comes up and before the Main Menu appears. Answer: All of the GAP programs include a Critical Error Handler. Probably what is occurring is that the Network connection was lost (either because the server logged the node off the network or because the server was re- booted), and the delay you are experiencing is GAPMENU trying to re-establish the network connection. This delay should not last more than 5 seconds. Page 195 GAP Communications Questions & Answers Question: In a similar vain, sometimes I notice that the Free Disk Space shown in the Drive Window is either some abnormally large number or a string of asterisks. What causes this? Answer: If GAPMENU cannot re-establish the connection with the server, it will be unable to obtain the free disk space information. The abnormally large number or the asterisks is a visual clue that the network is not operating correctly. If you try to log into the system you will receive an Error 12 which means GAP is unable to open any files. 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 the highest speed your modem is capable of operating at). In addition, your callers need to set their modem to operate at its highest speed. 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: Your modem does not return a CONNECT 19200 message. It is returning CONNECT 9600. That is the speed that GAP displays on the status line. Some older Dual Standard modems are able to establish connections with a remote modem at 14,400 bps but they return CONNECT 9600 back to GAP. GAP can only display and utilize the CONNECT message that the modem returns. Page 196 GAP Communications Questions & Answers Question: When using Ymodem, the system seems to hang after sending a file. About a minute later, it will come back with a time-out 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. 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. Page 197 GAP Communications Questions & Answers Question: Every once in a while 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. Question: When I log on as the sysop, I only have 12 minutes of time. Answer: GAP cannot find your security level in the SECLEV file. Since the sysop usually has the highest security level available, GAP read to the end of the SECLEV file without finding your level (or a higher level) and you are ending up with the default level of 12 minutes. Go into the Configuration Editor, select the Files Menu and edit your SECLEV file so that it includes your sysop security level. Question: I have my F5 (Shell To DOS) set to use COMMAND.COM. However, whenever I press the F5 key inside of GAP there is a brief flash and I'm returned to the Command Prompt. Answer: When you have GAP configured to use COMMAND.COM instead of swapping, GAP remains in memory while you are in the DOS shell. If there is not enough memory to load a secondary copy of COMMAND.COM you will experience this problem. Try removing unnecessary TSR programs to free up some extra DOS memory. If you are running under a multi tasker, increase the size of the GAP window. Page 198 GAP Communications Questions & Answers Question: I set up a Forum with 2 File Directories. When I log on and try to access the Files Menu GAP tells me there are no file directories. What's going on? Answer: It is possible for a Forum to share the Main Board file directories and have no directories of its own, share the directories and have its own special directories, not share the directories and have its own directories, or not have any files at all. In order to accommodate the last option where the sysop does not want a Forum to have any files available at all, GAP uses the presence of the DIR file (the file that lists the available File Subjects) to tell it if the Forum has files available. You may have either neglected to include the DIR file in the Forum GEN directory or you created a color version of the file (DIRG) and not a regular non-color version. Question: Sometimes while reading messages I see a red "Message Skipped" instead of a message. Answer: When reading messages, GAP allocates memory to hold the largest possible message as determined by the Maximum Number Of Message Lines that you have configured. If the message that is about to be read from disk is larger than will fit in the memory that GAP has allocated, you will see this message displayed. This occurs because you lowered the Maximum Number Of Message Lines and there are messages in the file that were left when the maximum lines was set to a higher value. Page 199 GAP Communications Questions & Answers Question: I was told that it is not necessary to have two versions of each of the text files and that you can eliminate the 'G' version of the file and the regular file (NEWS for instance) can contain ANSI color and if the caller is in non color mode, GAP will just strip the color codes out of the file. I tried this by deleting my NEWS file and renaming the NEWSG to NEWS. It doesn't work! The caller doesn't receive any color but the NEWS is a total mess on his screen! Answer: It is true that you do not need two versions of a file - Color and Non Color. The basic file (NEWS in your example) can contain ANSI color codes. But that is all that it can contain. GAP strips only the color sequences out of the file if the caller is in non color mode. Any other ANSI sequences are sent to the caller. If the NEWS file appears "jumbled" on the caller's screen, it is because the file contains other ANSI sequences besides color codes. TheDraw, for instance, saves screens using space compression codes. For instance, if you have a screen that has 20 spaces between one word and another, the program will save the file using an ANSI sequence that moves the cursor over 20 spaces instead of using 20 actual hard spaces. Your caller, because he or she does not have ANSI emulation turned on, will see the ANSI codes instead of the 10 spaces. It is suggested that if you are going to use a single basic file that contains color codes that you use an XCode Editor instead of an ANSI editor. These programs write only XCodes to the file and no ANSI sequences. As an alternative, you can edit the file with a Text Editor and replace all of the cursor movement sequences with actual hard spaces. Page 200 GAP Communications Questions & Answers Question: When users upload files they seem to receive a lot of CRC errors. What is a CRC error and what can I do to prevent this? I'm using a 9600 baud modem. Answer: A CRC error means that the last block of data GAP received from the modem was incorrect. This can be caused by many things but if it happens with regularity it is due to a hardware problem with your computer. Either your phone lines are excessively noisy, you are using an internal modem and need to clean the edge connectors on the modem card, you are using Extended Memory for a Disk Cache, or your serial port card is not using a 16550 UART. High speed communications require that your serial port be able to keep up with the modem. Most computers and serial port cards come equipped with older, outdated, UART chips. These UART chips simply cannot keep up and will loose data. There is also the possibility that the problem lies on the other end of the connection or that your board is situated in a calling area where all phone connections are routed through an antiquated switching system. Question: I want to upgrade from single user to multi user. Will GAP allow me to run more than one node on a single computer? Answer: GAP itself is not a multi tasking program. To run more than one node you will need either a LAN or a multi tasking program such as DESQview. If you intend to run more than one node on a single computer, DESQview is a good choice if the computer is a 386 or better and you have at least 4 megabytes of memory. You will be able to run at least 4 nodes and a private "local only" node. Of course you will also need 4 phone lines and 4 modems! We recommend using a LAN if you want to run multiple nodes, but if you do not mind a performance penalty, then multi tasking will work as well. Page 201 GAP Communications Questions & Answers Question: I run a closed board that is dedicated to "in house" support of our sales people and do not want GAP placing uninvited callers into the user file. Why does the program do this and is there some way I can prevent it? Answer: GAP places new users in the user file (but with the Private User flag set to No) to make it easier on the sysop to update the records of new users after they have been verified and paid their subscription. For truly closed boards where new users are not wanted, in your NEWUSER file, explain to the caller that your board is closed, that no new users are allowed onto the system, and at the end of the file, use an @PAUSE and an @DISCON AnsiCmd. The Pause will give the caller the opportunity to read the screen and the Discon will tell GAP to disconnect the caller. Since this occurs before the caller is given an opportunity to register, there will be no record of the caller in the user file. Question: GAP allows me to restrict callers based upon their baud rate but what I really need to do is restrict any caller, irregardless of their baud rate, who doesn't have a level of 90 during the hours of 8:00 am and 12:00 pm. Can I do this? Answer: Absolutely! Go into the Seclev Editor of GAPSETUP and set the Minutes Available field for all levels except the sysop level and level 90 to 0. Press F10 and save the file as SECLEV.080. Press F10 again and save the file as SECLEV.090. Repeat this process until you have saved 5 files, each with an extension of .080, .090, .100, .110, and .120. Then create a file called NOTIME in your GEN directory. This file should explain to any caller that doesn't have a level of 90 the reason why they are not being allowed on the system during your restricted hours. By the way, your Time Specific SECLEV files need only include a few security levels such as 89, 90, and 110 (or whatever your sysop level is). If callers at level 40 or 50 try to log on, GAP will give them the allotments for level 89 which will be (or should be all zeros). Page 202 GAP Communications Questions & Answers Question: When some of my callers list the file directories there is an asterisk (*) displayed in front of some of the file descriptions. What does the asterisk mean? Answer: When listing files, if any file is newer than the user's last New Files Scan Date, the file will be flagged with an asterisk in Condensed Mode. In Enhanced Mode the header will say 'New'. Question: When my callers are automatically taken to the Bulletin Menu (because there are new bulletins) it seems like it takes forever for the Bulletin Menu to appear. Is there something wrong with my system to cause this delay? Answer: If there are any new bulletins, GAP will display the numbers of the bulletins that are new above the Bulletin Command prompt. In order to determine which bulletins are new, GAP has to check each of your bulletin files and compare the date on the file with the date the user was last on. If you have over 100 bulletins, this process can take a bit of time. There is nothing we can do with GAP to speed the process up since we are simply asking DOS for the date on the bulletin file. Do you really need 100 or more bulletins? If you run lots of doors and display the scoreboards from each of the door programs that produce such bulletins, you might consider putting all of your doors in a Doors Forum and configure the door programs to write their bulletins to that Forum's GEN Directory. Question: I have the Force New Bulletins set to Yes and I update my News file once a week, but some of my callers are typing "Y Q NS O" at the logon prompt and they are not being forced to read the News or the new bulletins. Answer: On the Third Miscellaneous Screen in GAPSETUP, there is a field called Level To Override Logon. Set this to a security level that is higher than that of your regular callers. This will prevent callers who do not have the security level you specify from overriding your News, Security News, User Info files and New Bulletins. On the same configuration screen is a field called Allow Quick Logon. Set this field to No. Page 203 GAP Communications Questions & Answers Question: All of a sudden, whenever I or one of my users tries to save a message, GAP issues a "Sorry, Message File Is Full" and won't save the message. Answer: Go to the Miscellaneous Info 2 screen in the Configuration Editor and increase the Max # of Messages field. You've reached the maximum number of messages that you configured so GAP won't allow any new messages to be saved. Page 204 Index Address Changing 27, 153 ANSI 33, 113, 200 AnsiCmd 32, 38, 113 ARC Files 24, 39, 69 Archive Menu Commands 24, 153 Archives Transfering A File From 24, 69, 155 Attached File Directory 18 Attaching Files 14, 150 Base Address 19 Batch Download 52 Batch Files ARCTRANS.BAT 24, 69 Doors 52 Event 111 GAPCOMM.BAT 129 LOGON.BAT 73 Special 68 Startup 11, 51 UPCHECK.BAT 69 Birth Date 23, 27, 153 Bulletins 26, 28, 35 Forcing 26 New 26 Statistic 26 Call Waiting 28, 127 Customizing 135 Caller Alarm 128, 157 Caller Log 16, 123 Viewing 129, 158, 198 Callers Displaying Name Of Last 28 Restricting 21, 58, 66, 202 Carbon Copy Messages 31, 46, 150 Carrier Detect 18, 79 CD-Rom 178 Closed Board 35, 63, 202 Color 30, 31, 46, 152 Color Files 22, 38, 41, 51, 113, 119, 200 Commands Archive Menu 24, 153 File Menu 24, 153 Page 205 GAP Communications Index Main Menu 22, 147 Sysop 156 View/Change Stats Menu 25, 152 Comments 13, 23, 41, 45, 47 Communications Port 19 Configuration 11, 12 Corrupted Files 53 Country 13 CRC Errors 20, 201 CTS 20 Custom Menus 23 Default Country 13 Default Directory 2, 6, 11, 23, 43, 48, 51 Default Filename Extension 39 Deleting Messages 31, 46, 150 Description Files 69, 154 Directories 5, 37, 45, 48 Default 6, 11, 23, 43, 48, 51 Forum 67 Forum Default 67 Forum Gen 68 Forum Upload 68 Gen 6, 17, 62 Help 17, 57 Indirection Files 18, 188 Loose Files 17 Main 6, 17, 57 Upload 17 Doors 16, 48, 87, 88 And Events 110 Downloading Messages 74 Duplicate Files 39, 176 Duplicate Records 142 Echo Mail 30, 47 Editing Messages 14 EMS 33 Enforcing File Ratios 38, 58, 66 Enforcing Time Limit 27, 58 Entering Messages 150 Errors 125 Fatal 53 Message File Full 204 Page 206 GAP Communications Index Events 34, 40, 107 Expired Subscription 35, 47, 64, 141, 143, 146 Expired Time 27 Exporting Messages 158 External Protocols 39, 48, 49, 52, 189 Failed Check Level 23 Fatal Errors 53 File Description 154 File Directories 37 File Menu Commands 24, 153 File Ratios 38, 58, 66 File Transfer Protocols 65, 189 Changing 153 FileBase 18, 161 Files ARC 24 ARCTRANS.BAT 24, 69 Baud Rate Restriction 22 Caller Log 16 Closed 35, 63 Color 113, 200 COMMENT 41 Corrupted 53 Default Extension 39 Description 69 Doors 16, 52, 73 Duplicate 39, 176 EXPIRE 36, 64 FAILED 23 Forum Data 17 GAPCOMM.BAT 129 Importing 158, 173 Indirection 188 Locating 154, 167 LOCKOUT 41 LOGON.BAT 73 Message 15 Moving 174 NEWQUEST 35 News 16, 31, 115 Offline 129, 172, 185 Overwriting 14 Packing 54 Remote Exit 17 REMOTE.BAT 56 SECLEV 16, 23, 37, 48, 58, 65, 145 Security 114 Security Menus 115 Security News 115 Sharing 12 Stray 173 Page 207 GAP Communications Index System 51 Text 20, 114 Time & Bytes 16, 23, 37, 48, 58, 65, 145 TWIT 41 UPCHECK.BAT 69 Uploads 14, 154 User 15 User Info 34, 116 Verifying 69 Welcome 16, 66 ZIP 24 Finding Files 167 Finding Users 140 Flow Control 20 Forcing Bulletin Menu 26 Forcing New Bulletins 26 Forum 27, 43 Data File 17 Default Directory 67 Directories 67 Gen Directory 68 Locking User Out Of 139 Name 43 Number Available 32 Registering Users In 141 Subscription 47 Sysop 44, 139 Upload Directory 68 GAPPACK 54 GAPREBLD 53 Gen Directory 6, 17, 62 Handle 27, 46, 47, 140, 153 Help Directory 17, 57 Importing Files 158, 173 Indirection Files 18, 188 Init String 18 IRQ 19 ISAM 53 Keyboard Time-Out 32 Last Caller 28 Locating Files 154, 167 Locating Users 140 Locked Out Users 16, 28, 41, 62, 156 In Forums 139 Logon 73 Logon Overriding 28 Loose Files Directory 17 Main Directory 6, 17, 57 Main Menu Security Level Specific 115 Sysop Defined Items 23 Page 208 GAP Communications Index Main Menu Commands 22, 147 Master File Listing 173, 186 Memory Image 33 Menus Sysop Defined 131 Message File Full 204 Message Headers 14 Messages ANSI 46 Attached File Directory 18 Attaching Files To 14, 150 Carbon Copy 31, 46, 150 Deleting 31, 46, 150 Downloading 74 Echo 30, 47 Editing 14, 150 Entering 150 Exporting 158 Forum 43 Full 30 Importing 158 Main Board 15 Maximum Number Of 30, 45, 204 Number Left 28 Number Of Lines 30, 199 Off-line Reading Of 74 Private 13, 44, 46 Protecting 13, 150 Quoting 31 Reading 14, 150 Resetting Last Read 141 Restoring 159 Saving 150 Searching 149 Skipped 199 Snooping 14, 151 Time Credit For Leaving 31, 45 UnDeleting 159 UnProtecting 13, 150 Validating 46 Modem Buffer 20 Configuration 18, 79, 195 Connect 19, 20, 79 Delay 20 Moving Files 174 Multi User 11 NetBIOS 29 Network 11, 15, 20, 27, 29, 32, 52, 57, 195 Viewing Activity Of 129 Page 209 GAP Communications Index New Bulletins 26 New User 28 Level 23 Preventing 202 Questionnaire 16, 106 Welcome File 16, 202 News 16, 17, 28, 31, 47, 64 Security 36, 115 Non-Standard Ports 19 Non-Stop Mode 20 Off Hook String 18 Offline Files 129, 172, 185 Overriding Logon Screens 28 Overwriting Files 14 Packing Files 54 Paging Sysop 65, 128, 148, 157 Password 13, 153 Phone Number 23, 27, 28 Preventing New Users 202 Printer 27, 128 Private Mail 13, 46 Private Uploads 38 Private User 35, 63, 145, 202 Protecting Files 188 Protecting Messages 13, 150 Protocols 65, 189 Changing 153 Page 210 GAP Communications Index Questionnaires 16, 35, 93 Quick Logon 28 Quoting Messages 31 QWK 30, 74 Ratios 38, 58, 66 Real Names 27 Rebuilding Files 53 Registration 16, 23, 27, 28 Remote Exit 17, 56 REP 30, 74 Reset String 18 Restoring Messages 159 Restricting Callers 21, 58, 66, 202 Ring Detect 19 RTS 20 SECLEV 16, 23, 37, 48, 58, 65, 145, 202 Security Files 114 Security Level 158 Security Menus 115 Security News 36, 115 SHARE.EXE 12 Skipped Messages 199 Startup Batch File 11, 51 Statistic Bulletins 26 Status Line 33 Stray Files 173 Subscription 35, 43, 47, 64, 141, 202 Swap File 33 Sysop Commands 156 Sysop Defined Menus 23, 25, 131 Sysop Defined Screens 135 Sysop Levels 13, 44 Sysop Menus 66 Sysop Name 13 Sysop Page 65, 128, 148, 157 Sysop Password 13 System Files 51 System Operation 147 Text Files 2, 15, 41, 113, 156 Aborting 20 Color 15, 22, 38, 41 Text Search Messages 149 Time Available 158 Credits 31, 45 Expired 27, 65, 198 Page 211 GAP Communications Index Time & Bytes File 16, 23, 37, 48, 58, 65, 145, 202 Time Limit 27, 65, 145, 198, 202 Transfering Files 24, 69, 155 Trash Can 16, 41, 62, 156 TWIT 41, 157 UnDeleting Messages 159 UnProtecting Messages 13, 150 Upload Directory 17, 43, 45 Uploads And Events 34, 110 Checking 69, 154 CRC Errors 20, 201 Description 69 Free Disk Space 38 Help 66 Keeping In Forum 45, 68 Overwriting 14 Private 38, 45 Security Level 39, 44 Time Credits 38 Unwanted 65 Writing To Disk 20 Zmodem 20 User Editor 139 User Statistics Displaying 28 Last Caller 28 USERINFO 34, 116 Users Adding 139 Deleting 139 Locating 140 Locked Out 28, 41, 62, 156 Registering In Forum 141 Time-Out 32 Validating Messages 31, 46 Phone Numbers & Birthdays 58 Registration Information 23, 28 View/Change Stats Menu Commands 25, 152 Virus 69, 154 Welcome File 16, 28, 66 New User 16 XCodes 27, 119 ZIP Files 24, 39, 69 Zmodem 20 Page 212