GT POWER - 18.00 Copyright (c) 1985, 1993: by P&M Software Co. All rights are reserved. Host Mode Documentation July 22, 1993 P & M Software Company 3104 E. Camelback Rd. #503 Phoenix, AZ 85016 U. S. A. Voice Phone: (602) 897-9557 Modem Phone: (602) 897-9549 - 1 - Table of Contents ---------------------------------------------------------------- A Brief Summary . . . . . . . . . . . . . . . . . . . . . . . 4 The Installation Of Host Mode . . . . . . . . . . . . . . . . 4 The Modem Init String . . . . . . . . . . . . . . . . . . 4 The Host Mode: Modem Init String . . . . . . . . . . . . 4 The Modem Answer String . . . . . . . . . . . . . . . . . 5 The Modem Result Codes . . . . . . . . . . . . . . . . . 5 Logging Status During Host Mode . . . . . . . . . . . . . 6 Hang-up During Host Mode . . . . . . . . . . . . . . . . 6 The BBS/CBS Path . . . . . . . . . . . . . . . . . . . . 6 The Default Message Base Path . . . . . . . . . . . . . . 7 The Default File Section . . . . . . . . . . . . . . . . 7 File Reception Directory . . . . . . . . . . . . . . . . 8 The Sysop Message Base . . . . . . . . . . . . . . . . . 8 Security Considerations . . . . . . . . . . . . . . . . . . . 8 DSZ.EXE, PCKERMIT.EXE and Other Externals . . . . . . . . 10 Host Mode Text Files . . . . . . . . . . . . . . . . . . . . 13 Forcing a "More?" Prompt . . . . . . . . . . . . . . . . 13 Disable the "More?" Prompt . . . . . . . . . . . . . . . 13 Nest the Display of Bulletins . . . . . . . . . . . . . . 13 Disable the ^K/^C Break . . . . . . . . . . . . . . . . . 13 ANSI Graphics (.BBS vs .CBS) . . . . . . . . . . . . . . 13 The Variable Substitution Line . . . . . . . . . . . . . 13 File Descriptions . . . . . . . . . . . . . . . . . . . . . . 15 GTSYSID.BBS . . . . . . . . . . . . . . . . . . . . . . . 15 GTWELCOM.BBS . . . . . . . . . . . . . . . . . . . . . . 15 GTPASSWD.BBS . . . . . . . . . . . . . . . . . . . . . . 15 Field Descriptions . . . . . . . . . . . . . . . . . 15 Time Bank Setup . . . . . . . . . . . . . . . . . 17 Carbon Copy Messages . . . . . . . . . . . . . . 18 Callback Setup . . . . . . . . . . . . . . . . . 20 GTPASSWD Comment Entries . . . . . . . . . . . . . . 21 Alternate Default Areas . . . . . . . . . . . . . . . 21 GTBULLET.BBS . . . . . . . . . . . . . . . . . . . . . . 21 BULLETx.BBS . . . . . . . . . . . . . . . . . . . . . . . 21 GTMENU.BBS . . . . . . . . . . . . . . . . . . . . . . . 22 GTHELP.BBS . . . . . . . . . . . . . . . . . . . . . . . 22 GTBYE.BBS . . . . . . . . . . . . . . . . . . . . . . . . 22 GTBYEx.BBS . . . . . . . . . . . . . . . . . . . . . . . 22 GTUSER.BBS . . . . . . . . . . . . . . . . . . . . . . . 22 GTDIR.BBS . . . . . . . . . . . . . . . . . . . . . . . . 23 Group Header Lines . . . . . . . . . . . . . . . . . 23 Comment Lines . . . . . . . . . . . . . . . . . . . . 23 Directory Lines . . . . . . . . . . . . . . . . . . . 23 CDROM Support . . . . . . . . . . . . . . . . . . 23 Freebie Areas . . . . . . . . . . . . . . . . . . . . 24 GTUDIR.BBS . . . . . . . . . . . . . . . . . . . . . . . 25 GTLDIR.BBS . . . . . . . . . . . . . . . . . . . . . . . 25 Multi-Language Support . . . . . . . . . . . . . . . 25 GTANSI.BBS . . . . . . . . . . . . . . . . . . . . . 26 GTDDIR.BBS . . . . . . . . . . . . . . . . . . . . . . . 26 Door Screens . . . . . . . . . . . . . . . . . . . . 27 GTBMENU.BBS . . . . . . . . . . . . . . . . . . . . . . . 27 Personal Bulletins . . . . . . . . . . . . . . . . . 28 GTMDIR.BBS . . . . . . . . . . . . . . . . . . . . . . . 29 QWK Message Areas . . . . . . . . . . . . . . . . . . 30 Grouping Areas . . . . . . . . . . . . . . . . . . . 31 - 2 - GTDOORS.BBS . . . . . . . . . . . . . . . . . . . . . . . 31 GTDOORnn.BAT and GTDORnnn.BAT . . . . . . . . . . . . 32 ANSWERn.BBS . . . . . . . . . . . . . . . . . . . . . . . 33 QUESTn.BBS . . . . . . . . . . . . . . . . . . . . . . . 33 New Caller Questionnaire . . . . . . . . . . . . . . 34 Programmable Questionnaires . . . . . . . . . . . . . 34 PQUESTn.BBS . . . . . . . . . . . . . . . . . . . . . . . 38 GTQMENU.BBS . . . . . . . . . . . . . . . . . . . . . . . 38 PROTOCOL.BBS . . . . . . . . . . . . . . . . . . . . . . 39 GT_VSCAN.BAT . . . . . . . . . . . . . . . . . . . . . . 39 Virus Scan Setup . . . . . . . . . . . . . . . . . . 39 GT_PIGGY.BAT . . . . . . . . . . . . . . . . . . . . . . 41 WELCOME.BBS . . . . . . . . . . . . . . . . . . . . . . . 41 MBULLETx.BBS . . . . . . . . . . . . . . . . . . . . . . 42 SYSOP.BBS . . . . . . . . . . . . . . . . . . . . . . . . 42 The Caller Id Token . . . . . . . . . . . . . . . . . 44 The Fax Token . . . . . . . . . . . . . . . . . . . . 45 SCHEDULE.BBS . . . . . . . . . . . . . . . . . . . . . . 46 TRASHCAN.BBS . . . . . . . . . . . . . . . . . . . . . . 47 FILES.BBS . . . . . . . . . . . . . . . . . . . . . . . . 48 UPLOADS.BBS . . . . . . . . . . . . . . . . . . . . . . . 48 RECENT.BBS . . . . . . . . . . . . . . . . . . . . . . . 50 Host Mode Control Files and Directories . . . . . . . . . . . 51 Running Host Mode . . . . . . . . . . . . . . . . . . . . . . 53 SYSOP Commands . . . . . . . . . . . . . . . . . . . . . 53 Command Line Usage . . . . . . . . . . . . . . . . . . . 53 The HOST.BAT File . . . . . . . . . . . . . . . . . . . . 56 The HOST.SCR File . . . . . . . . . . . . . . . . . . . . 56 Full Screen Message Edit . . . . . . . . . . . . . . . . 56 Caller Expiration Dates . . . . . . . . . . . . . . . . . 57 XWARNING.BBS . . . . . . . . . . . . . . . . . . . . 57 EXPIRED.BBS . . . . . . . . . . . . . . . . . . . . . 57 Using a LAN with GT . . . . . . . . . . . . . . . . . . . 57 The CB Simulator . . . . . . . . . . . . . . . . . . 59 The Host Mode LOG . . . . . . . . . . . . . . . . . . . . . . 62 File Tagging . . . . . . . . . . . . . . . . . . . . . . . . 63 TAGWARN.BBS . . . . . . . . . . . . . . . . . . . . . . . 63 Binary Message Upload . . . . . . . . . . . . . . . . . . . . 64 QWK Mail . . . . . . . . . . . . . . . . . . . . . . . . . . 65 The Shell to DOS . . . . . . . . . . . . . . . . . . . . . . 73 COMMAND.COM . . . . . . . . . . . . . . . . . . . . . . . 73 DOS 2.xx . . . . . . . . . . . . . . . . . . . . . . . . 73 Using the Shell to DOS . . . . . . . . . . . . . . . . . . . 74 The Usage of Color . . . . . . . . . . . . . . . . . . . . . 75 The Logon Doors . . . . . . . . . . . . . . . . . . . . . . . 75 GTLOGON.BAT . . . . . . . . . . . . . . . . . . . . . . . 75 GTNLOGON.BAT . . . . . . . . . . . . . . . . . . . . . . 76 BPLOGON.BAT . . . . . . . . . . . . . . . . . . . . . . . 76 The Logoff Doors . . . . . . . . . . . . . . . . . . . . . . 76 GTLOGOFF.BAT . . . . . . . . . . . . . . . . . . . . . . 76 GTNLOGOF.BAT . . . . . . . . . . . . . . . . . . . . . . 76 Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Extended ASCII Codes . . . . . . . . . . . . . . . . . . 77 Sample ANSI Sequences . . . . . . . . . . . . . . . . . . 77 Power-Loss Protected Operation . . . . . . . . . . . . . 78 Sample Files For Power-Loss Protected Operation . . . . . 79 GT POWER under DESQview . . . . . . . . . . . . . . . . . 80 - 3 - Brief Summary ------------- The host mode provided within GT POWER allows you to run an unattended session with your system. That is, if you expect to receive calls from other computer systems (say from clients or a set of authorized remote users) then you can tell GT POWER that it should automatically answer the telephone for you, verify the caller's credentials, and if found to be valid, to provide that user with a menu of functions that can be performed. All of that, of course, without further intervention on your part. Security is of paramount importance when running in host mode for obvious reasons. Please read the section entitled 'Security Considerations' before attempting to operate this system. Installation of Host Mode ------------------------- The most important thing about host mode is proper installation of the modem control strings and result codes. These strings and codes must not just control the modem, they MUST WORK TOGETHER. For example, if the modem init strings specify "verbose" result codes, then the result code table better have the "verbose" codes in it. There are 11 specific areas that must be installed; all of these options and strings are accessible via the ALT-I command. Let's discuss each of these items in turn: 1. The "Modem Init String". The default value is: AT V1 Q0 E0 X1 S0=0 S2=43| Assuming that one wants to use the default string, there is really only one thing that one SHOULD DO to this string: change the Xn command. The most powerful Xn command available on your modem is the one to choose. With a USRobotics Courier 2400 modem, use either X5 or X6. With a normal Hayes-compatible 1200 baud modem, use X1. X4 would be normal for most Hayes-compatible 2400 baud modems. For other modems consult the modem manual. Despite the advice given above, many situations call for the modem to use a lower Xn setting. For example dial tone detection logic can sometimes be bothersome, ditto for the voice detection logic... the solution is to set the lowest Xn value that supports busy detection (which is very helpful). NOTE: Many so called "Hayes-compatibles" are compatible in name only. We get many calls for support from individuals with non-Hayes modems. Please read your modem manual carefully because it is very hard to support all the different modems. 2. The "Host Mode: Modem Init String". This string is found under item #30 of the configuration screen. The default value is: AT V1 Q0 E0 M0 X1 S0=0 S2=255| - 4 - There are several things one could do to this string. First, one must modify the X1 command to match the value added to the Modem Init String above. Secondly, if one desires the speaker to be heard during host mode, remove the M0 from the string. Thirdly, the S0=0 may be changed to S0=1, THIS IS THE ONLY OTHER VALID VALUE! If S0=1 is used, the modem will answer automatically, otherwise GT POWER will count the rings and command the modem to answer after the 2nd ring (or if the /Rn command line switch is used, after the Nth ring). This is why S0=0 and S0=1 are the only permissible values! In any case, the S0 setting must be lower than the /Rn setting. Refer to the GT1800.DOC file for a complete discussion of the available command line switches. 3. The "Modem Answer String". This string is located with the Host Modem Init String under item #30 of the configuration screen. The default value is: ATA| GT POWER will issue this string to the modem whenever the ring count reaches 2 (or the number indicated by the /Rn switch). This string should not be changed, unless GT POWER should not be allowed to answer the modem. For example, one could erase this string and set S0=5, so that the modem would answer on the 5th ring, but I don't advise anyone do this. 4. The "Result Codes". Because the modem init strings above contain V1, "verbose" result codes should be programmed. They can be found under item #29 of the configuration screen. There are 19 possible results. If the modem does not support all of these, simply leave the extra strings in their default state. The program comes with the default result codes set for use with a USRobotics Courier HST modem. Please consult the manual for the modem in use and modify this table to match. Remember, use the "verbose" (word codes), not the "terse" codes. It IS POSSIBLE to use the "terse" codes, but they are not as compatible with such services as PC Pursuit. If one of the newer high speed modems is in use, such as a v.32/v.42 type, it is most likely that the modem has more CONNECT type result codes than GT POWER has space in its table. To get around this problem, and avoid the necessity of continually expanding the result code table, GT POWER will automatically recognize CONNECT messages that match the standard form. For example: CONNECT 9600/REL This code is not one of the default codes in the table, but GT POWER will recognize it, since it matches the standard form: (1) The word CONNECT, followed by (2) The DCE baud rate, followed by - 5 - (3) The error correction indicator. GT POWER will automatically recognize this and take the proper action. To enable this smart result code handling, the modem must be setup to return "verbose" codes. 5. It is highly recommended that logging be TRUE during host mode. Otherwise, all records of the host mode activities will be discarded. It is possible to set the logging to DETAILed, in which case many items that are not normally logged, will be logged. 6. How to allow GT POWER to hang-up during host mode. Since the "escape code" must be disabled during host mode, otherwise some caller may crash your system, the normal hang-up string, "~+++~ATH", will not work! Therefore, GT POWER cannot hang-up the modem, unless you set the modem to normal DTR operation. During host mode, GT POWER will drop the DTR signal whenever it wants the modem to hang-up. Most modems come from the factory set so that they ignore the DTR signal - you must reset a switch or, in the case of the Hayes 2400 modem, you must make an entry in the Modem init string to do this. In any case, if the modem ignores DTR, it will not hang up during host mode operations. Some modems which must be setup via the init strings to handle DTR properly use either &D2 or &D3, please consult the manual for the modem in use to determine the correct setting. 7. How does GT POWER determine when a connection is lost? The GT POWER host monitors the carrier detect signal from the modem, when this signal goes low, then GT POWER assumes that the connection has been lost. Most modems come from the manufacturer with the carrier detect signal forced high. "This is like having a telephone with no ringer." Quote by Tom Jennings. Obviously, this must be changed. Some modems have a switch that must be reset to enable a true carrier detect, others require setup via the init string. Many of the modems that require init string setup use '&C1', please consult the manual for the modem in use to determine the correct setting. If it appears that GT POWER drops callers too quickly, item #13 under Alt-I, "Online: lost CD wait", allows the sysop to specify a longer time interval in seconds between the loss of carrier and the disconnect of the caller. Higher values should be used with _care_, but if the modem is flaky or the cabling loose, higher values can be beneficial. If the disconnect are due to line noise, raising the "lost CD wait" will not help, and in fact, will be a nuisance. 8. If this path is set, GT POWER will search that path for BBS/CBS files. GT POWER will also search the GTPATH directory for the files. The GTPATH directory is search first, then the BBS/CBS path. This feature will be of great interest to LAN users, who are advised to become familiar with the DOS "subst" command, which will allow GTMDIR.BBS and GTDIR.BBS to be the same across a - 6 - LAN. Here is a sample of the "subst" command: subst e: c:\ If this command were invoked in the AUTOEXEC.BAT file on your LAN server, then all references to drive E: on the server would be translated to drive C. This would be extremely helpful if the LAN workstations mapped the server's drive C to E also. This would mean that both workstation and server could reference the same physical drive with the same drive letter, i.e. E. It is possible to also use the BBS/CBS path for the door batch files, but it would be wise for LAN operators to make these files Read-Only, otherwise they can cause a SHARE violation, as DOS does not open them in a shared read mode. The following DOS command can be used to make batch files Read-Only: attrib +r *.bat Assuming, of course, that the batch files to be altered are in the current default directory. It is also possible to place the BBS/CBS files outside of either the BBS/CBS directory or the GTPATH directory. This may be accomplished by placing these files with the GT POWER .OVL file. For example, one could place all of these files, including the .OVL into a RAM disk -- providing that the RAM disk was in the DOS PATH and not in the GTPATH directory. In effect the search order for the BBS/CBS files now becomes: (1) the .OVL directory, (2) the GTPATH directory, and (3) the BBS/CBS directory. 9. Another option available under the Alt-I, #26, the pathname setup section, is the "Default Message Base PATH". This option is to be used to indicate to GT POWER where the main or default message base is located. This is the message base that the user will be initially given access to upon calling the system. This should be an open message base since all callers to the system that pass the logon procedure will have access to this area. 10. Another option available under the Alt-I, #26, the pathname setup section, it the "Default File Section". This option indicates to GT POWER where the main or default file section is located. This is the file section that callers will see initially when they access your system. This should be an area with the lowest security access level, so everyone will be able to use it. The default message base and the default file area are also configurable on an access level basis. This override of the default settings is specified in the GTPASSWD.BBS file by adding a line, where necessary, following each CLASS or password entry. Like this: C1 [1:00,1000,2:00] CLASS UP,DN,MS,PR,PW | FILE=c:\gt\c MSG=d:\trade - 7 - In this example, callers with access level 'C' would have the default file area set equal to "c:\gt\c" and the default message base set equal to "d:\trade". The '|' line is indented with blanks (not Tab characters). Either of the overrides may be omitted, and of course, the '|' line is optional. 11. To designate the directory where the host mode receives files, you should specify the DOWNLOAD directory path. This option is specified under Alt-I, #26, the pathname setup section. You may be confused by the terminology here, so let me stress that the DOWNLOAD directory is where GT POWER *RECEIVES* files, whether in host or terminal modes. Further, the UPLOAD directory path only pertains to Terminal Mode, as the host mode file areas are controlled via entries in the GTDIR.BBS file, described below. 12. To specify the directory where the host mode will save messages to the sysop. These messages are entered with the 'M' command from the main menu. This option is specified under Alt-I, #26, the pathname setup section. PLEASE NOTE: The pathnames mentioned above are all found on the pathname setup section, #26 of the Alt-I menu. Security Considerations ----------------------- Many of GT POWER's design considerations were directed towards providing absolute system integrity while in host mode. This section is designed to highlight some of those considerations with the intention of making the System operator of a host mode fully aware of both his protection and his responsibilities in that regard. The fundamental truth about security is that it is essentially YOUR responsibility. GT POWER's first line of defense in your behalf is its password function. Without a pre-assigned password, a remote caller cannot gain access to the functions provided by GT POWER! Thus, it stands to reason that your first responsibility is to assign those passwords and TO GUARD THEM. Because there are several sets of facilities that you will wish to control and to allow various users to be provided selectively, GT POWER provides several 'levels' of authorization that may be assigned to each password. In this way, all users who log on with the same password will have identical (and only those that are assigned) access to GT POWER's facilities. For example, GT POWER provides to users who have a sufficiently high level of authorization, the ability to shell to DOS, and have the ability to execute ANY DOS COMMAND from their remote location! Obviously, you would not casually distribute that password amongst your user community. Most users should NEVER be allowed to shell to DOS! (While in DOS a user could, for example, format your hard disk - that would, of course, result in the end of subsequent functionality of the entire system). To most users you should assign a lower level of - 8 - access. The SYSOP.EXE program can be used to change most items in a caller's user record -- especially the access level may be raised or lowered, as necessary. One of the nicest features of the host mode provided by GT POWER is its message bases. With this feature the users of the system may leave mail for other users and receive mail for themselves. Indeed, there are two kinds of mail: Public and Private. Public mail may be read by any user of the system. Private mail, on the other hand, may be read only by the person sending it or by the recipient. Here, then, is another area of security that you need to be aware of and control. For example, say that you allow your system to be called by clients of your firm and that they are encouraged to leave messages to you in your absence. It is possible that several of your clients are competitors of each other. Thus, it would be improper to allow them to read messages sent by others. This is the reason for Private mail. At this point, I would like to point out that there is no such thing as 'Private' from the Sysop! That is, the Sysop may read any message, whether addressed to the Sysop or not and whether they are marked Private or not. Finally, in case the earlier remarks did not sink in, any user who has access to the DOS via the Shell command (because of his assigned extremely high 'level' of authorization) can easily read any messages while he is in the DOS Shell! As far as sending Private messages to the System operator is concerned, any user may do that! There is an 'M' command on the Main Menu that results in messages that only the Sysop may view. These messages are automatically addressed to the Sysop and marked as private. They are placed in the message base specified for sysop messages, they may be read only by someone with the Sysop authorization level. This message base needs to be accessed at least once by the sysop during setup, to insure that a message is entered to create all control files. Otherwise, the system will not be able to process 'M' messages to the sysop. The hierarchy of access 'levels' based on password enables the Sysop to control which directories on the disk those users have access to for purposes of downloading files. However, each caller to the system will be granted access to the "Default file section", which is a configuration option. So please be sure that this file section contains the least sensitive material on your system. For ease of use, it is recommended that the user construct a batch file to invoke GT POWER, especially host mode users. It should look like this: C: To specify a default drive of C set GTPATH=C:\GT Remember to set GTPATH! GT1800 host.scr To invoke GT POWER If the above batch file were called GT.BAT and placed in your system's PATH then you could easily invoke GT POWER by simply typing: GT. It is important to note, that one of the most frequent errors reported to the GT POWER support staff is the incorrect setting of GTPATH. The - 9 - file 'host.scr', named on the GT1800 command line above, is an ASCII text file that contains a single entry: host The 'host.scr' file can be easily created with a text editor, such as EDLIN, EDIT or QEDIT, and it should be placed in the script directory, which is named under the Pathnames option on the Alt-I screen. As you will see when you read the next section (about the GTDIR.BBS file), you can allow your users to have access to all directories that have a matching authorization level OR LOWER. Further, you can specify that particular directories are only available to specific authorization levels. Where is all this authorization level information kept within the GT POWER system? In a file called GTPASSWD.BBS. That file is the key to the security of your system. One of the subtle security features of GT POWER is that it will not allow that file, even if it is contained in a directory that the user has been authorized to download from, to be transmitted over the telephone! NOTE: That the external protocols can transfer prohibited files and for this reason, extreme care should be taken when using either DSZ.EXE or PCKERMIT.EXE. Similarly, because the log file that is optionally maintained by GT POWER contains the user names and passwords of those who have logged onto the system, it may not be transmitted over the telephone either. When running in host mode the screen on the host system shows all keystrokes entered by the remote user (except while he is in the DOS Shell or using a DOOR). In other words, if the remote user, for example, entered a Private message to another user, or to the Sysop, the text is showing on the host screen as it is typed. If the user were to log off immediately after entering the message then it would be possible that the text of the message remained on the screen. GT POWER erases the screen after the caller hangs up to prevent such a lapse in security. If you are running a host mode system in an environment where others might be able to observe the screen then it is recommended that you turn your monitor off while you are not in attendance. If others may be in the area as you are communicating (chatting) with users and you wish to control the information on the screen you would do well to remember that the Alt-W keystroke will erase your screen instantly. A user may be bannned from accessing the system. Note, however, that doing so merely encourages an undesirable to log on with another user name. With the advent of personalized passwords, this provision has become more effective, since one could setup the system password to have a low access level, which would be raised only after validation. - 10 - Computer time is a resource that you can also control in host mode. Each password may have a designated time limit beyond which the caller will be automatically logged off. The number of calls per day made to your system by an individual caller is also subject to control. One of the more subtle security measures needed in a host mode ennvironment is called a 'Watchdog'. In the GT POWER system, this function is provided by a program called DOORMAN. DOORMAN is a TSR program that should be loaded in your AUTOEXEC.BAT file, it has no command line options, and is loaded simply by its name, DOORMAN. Should an authorized user be in the DOS Shell or in a DOOR, and if for any reason he were to drop his carrier (hang-up), the system would then be vulnerable to the next caller as that caller could find the system at the DOS prompt and he would then have uncontrolled access to do as he pleased to your system. In the situation mentioned, loss of carrier, DOORMAN will force your system to reboot and if you setup the AUTOEXEC.BAT file properly, when the system completes rebooting it will invoke GT POWER and put it back in host mode! The same thing would happen if a power failure occurs during host mode operation. When power is restored the system will automatically return to the host mode of GT POWER. Note, however, that for those systems that do not have a built in clock, the time and date of the system would no longer be correct. As a Sysop of a GT POWER system you must be aware that there are some legal considerations that you may face. For example, should you allow users to place copyrighted programs onto your system and to then allow other users to download those same programs, then you are participating in an illegal activity! Naturally there is no way to prevent a user from sending you copyrighted material, provided he has upload capability. There are many things that you can do, however, to stop others from having access to that material. For example, GT POWER allows you to cause all files that are uploaded to your system to be placed into a special receiving directory, rather than into the directory the user is currently using. It makes good sense to make a receiving directory PRIVATE, in the sense that it is NOT listed as available in the GTDIR.BBS to your remote users. In this way, you may review the files received at your convenience and move them over to the public directories if you are satisfied that they are either public domain or shareware programs and files. Another reason that you will want to do the above is that there are a few people out in the world that like to send what are called Trojan Horse programs to BBS's. A Trojan Horse is a program that causes some form of damage when it is run. It would not be at all fair to your users to expose them to such programs. So, when it is safe for you to do so, run the programs you receive before making it publicly available (using BOMBSQAD or a similar program to prevent a problem for you). When you are satisfied that the programs received are safe then you can move them to public areas. NOTE: Running programs uploaded to a BBS is extremely dangerous. And can result is the crash of your system, i.e. someone may break- - 11 - in, because you have run what seems to be a harmless upload. Please be carefull!! And in the event that a user does send you a Trojan Horse or copyrighted code, it is in your best interest to know who did so. GT POWER provides an optional log file function. If that is enabled, which is highly recommended, then the log contains the name of the person who logged on and sent you the file. GT POWER also puts the name of the uploader with the file description given at the time of upload. This section of the document is substantially larger than you may have expected it to be. The reason should now be obvious. YOU are the person responsible for security. It is necessary that you know the previous information and take appropriate actions. - 12 - Host Mode Text Files -------------------- The following text files must be created and/or maintained with an editor that can produce plain ASCII files. Any of the display type BBS files may have a DC2, Ctrl-R, character inserted into column 1 of line 1 to disable the "More?" prompt during display of the file, and a DC4, Ctrl-T, character inserted into column 1 of line 1 to disable the Ctrl-K and/or Ctrl-C user break, or a ENQ, Ctrl-E, character inserted into column 1 of any line to force a "More?" pause at that line. A NAK, Ctrl-U, can be inserted in column 1 of any line to introduce a variable substitution line. The ACK, Ctrl-F, can be used in column 1 of a bulletin file to nest the display of other text files. +--------------------------------------------------------------------+ | | | Ctrl-E ... ENQ ... Insert a "More?" at current location. | | Ctrl-F ... ACK ... Nest the display of bulletin files. | | Ctrl-R ... DC2 ... Disable "More?" during file display. | | Ctrl-T ... DC4 ... Disable ^K/^C break during file display. | | Ctrl-U ... NAK ... Introduce variable substitution line. | | | +--------------------------------------------------------------------+ Please note that once the Ctrl-E command has been used the automatic insertion of "More?" prompts are terminated for the duration of the current display. Using the Ctrl-R to disable the "More?" prompt is useful when the file contains such graphic or annimation techniques that would be spoiled by such interruption. Except for the GT?DIR.BBS files and the SYSOP.BBS file, every .BBS file can have two versions: (a) a color graphics version or (b) a plain text version. This is coordinated with the ANSI graphics question asked of callers before they logon the system. The .BBS extension is the default used if only one version of the file can be found by GT, the .CBS extension is used to indicate to GT POWER that a graphics version is available. If both versions are available, the .CBS version will be shown to callers who elect graphics, if graphics are not elected by the caller, the .BBS version will be displayed. The variable substitution line is interpreted by GT POWER, and certain substitutions can be made. The following are supported: A ... The DTE baud rate. B ... The DCE baud rate. C ... The caller's number (i.e. the 100th caller). D ... The current calendar date. DL .. Daily download limit, in thousands. DT .. Amount downloaded today, in thousands. F ... The caller's first name. G ... The caller's screen length setting. H ... The caller's home - city and state. L ... Time left for current session in minutes. M ... The current message base description. - 13 - N ... The caller's full name. R ... The caller's upload amount in kilobytes. RF .. The caller's upload amount in number of files. S ... The current file section description. T ... The current time of day. TB .. Current Time Bank total. TD .. Time Bank daily deposit limit. TW .. Time Bank daily withdrawal limit. Wn .. Set width of the parameter that follows to 'n' columns. X ... The caller's download amount in kilobytes. XF .. The caller's download amount in number of files. XD .. Expiration date for caller's account. XP .. Number of days past expiration date. XU .. Number of days until expiration date. XL .. Number of days warning that expiration will be given. Z ... The caller's default file transfer protocol. n ... 'n' number of blank columns. In addition to these items, plain text may also appear on the variable substitution line, it must be quoted however, like this: "plain text between quotation marks" For example: ^U" Name: "N ^U" First: "F ^U" Home: "H ^U" Time remaining: "L ^U" Current time: "T ^U" Default protocol: "Z ^U" Blank Columns: "30"30 of them." ^U" Fixed width: "W30N"30 characters in width" Please note: ^U is just a symbol used in this document to represent the Ctrl-U character. The Ctrl-U feature can be used with messages, as well as with bulletins and other screens. For example, you can now address a message to: ^UF Which, as you guessed, make all callers think that the message was personally addressed to them! A fancy way to implement "junk mail" on a bulletin board! The text of messages can also contain Ctrl-U lines, to further allow customization of messages. Everyone should restrain their usage of the Ctrl-U feature in echomail conferences. In fact, it may be banned from echomail conferences, if abused. The nesting of bulletin files with the Ctrl-F character is extremely useful, but also hazzardous, if the nesting is done to a great level. For best results, the nesting should be kept to a single level. An example of usage is: - 14 - ^Fc:\gt\foo.bar Please note that there is no space between the Ctrl-F and the filename and that the full pathname must be given for the file. File Descriptions ----------------- GTSYSID.BBS This file is displayed as soon as the GT POWER host detects a connection has been established with an incoming call. After displaying this file, GT POWER will ask the user if the terminal program he is using supports ANSI graphics. If a language menu, GTLDIR.BBS, is being used, it will be displayed before the ANSI graphics question. GTWELCOM.BBS This file is displayed to a caller just before he is asked for his name by the GT POWER host. It should identify the system to callers. GTPASSWD.BBS This file contains the list of passwords that people must know to access the system. Comments may be placed in this file by placing a ';' in the first column of any line. The entries in this file are composed of one line per password, and each line contains the following information, beginning in column 1: Lx ([xx:xx(,m/n,hh:mm,path)]) Pwd Auth (1st-Name Last-Name Phone-Number) These items can have a variable number of blanks between them, but the 'L' must begin in column 1. EACH PASSWORD, "Pwd", MUST BE UNIQUE and from 1-20 characters in length. The () which have been shown around the call time limit, the daily call limit, the daily download limit, the daily time limit, the name, and phone number fields, indicate that these items are optional and need not be included in the file. Field descriptions: ------------------- Lx ......... The Access Level assigned to this entry. May be any character from the following sets: 0-9, A-Z, or a-z. NOTE: "0" is the highest level and "z" is the lowest. The 'x' following 'L' is the bullet number that this caller will be shown. Valid bullet numbers are 0-9, A-Z. Read additional instructions bellow under BULLETx.BBS. - 15 - xx:xx ...... The Call Time Limit. This field is optional and is enclosed within [...]. If omitted, it defaults to approximately 24 hours. m/n ........ The Daily Call Limit/the Daily Download Limit. This field is a sub-field within the [...] of the Call Time Limit field. It cannot be specified without the Call Time Limit being specified also. Example: [1:30,2] would grant two calls per day of 1:30 duration each and unlimited downloads. Another example, [1:30,2/500], shows a 500k daily download limit in effect. hh:mm ...... The Daily Time Limit. This field is a sub-field within the [...] of the Call Time Limit field. It cannot be specified without the Call Time Limit and the Daily Call Limit being specified also. Example: [1:00,5,2:00] would grant five calls per day, each of up to 1 hour each, but a maximum of 2 hours per day total usage. path ....... The upload pathname. This specifies where files uploaded by a particular class of user are to be stored. pwd ........ The Password. As said above, the password may be from 1-20 characters in length and must be unique. If this line is a class entry the "pwd" field should contain the word CLASS in capital letters. auth ....... The Authorizations given to this entry. They come from the following list: UP : Upload authorized. DN : Download authorized. PR : Private mail authorized. KL : Allow the killing of messages, the same as the Sysop. MS : Allows message reading. MV : Allows message moving between message bases. NB : Bulletin menu not allowed. QK : Allows access to the QWK mail commands. Callers must have the "UP" authorization to upload REPs, that is reply packets. The "DN" authorization is needed to download QWK mail packets. CC : Allows usage of the carbon copy feature for messages. RA : Callers with this permission can do nothing except leave a message to the sysop. RC : Require netmail credit for all netmail messages - normally local messages don't require credit. BP : Bypass logon. This allows callers to bypass all the steps between logon and the main menu. BO : With the BP option, causes only bulletins to be - 16 - bypassed during the logon procedure. SY : Sysop priveledges authorized. CH : Manual directory change is authorized (in absence of the GTDIR.BBS file). CB : CB Simulator authorized. SH : Shell to DOS is authorized. DR : Use of DOORS is authorized. FA : Allows file attach when using the netmail programs. FR : Allows file request when using the netmail programs. NL : Disable the (L)ist directory command at the main menu. NN : No name uploads. Callers with this authorization will not have their name recorded in the FILES.BBS, when they upload a file. NE : Disable the (E)nter message command. NP : Disable the sysop (P)age command. NX : No expert mode. Callers with this authorization will not have access to the e(X)pert mode. PW : The caller is authorized to change his password. But before he can change any personal information, the caller must match his phone number to verify his identity. TB : The Time Bank is authorized. These authorizations are listed seperated by commas, following the "pwd" field. See examples below. The CH authorization is a "do nothing" authorization in most cases, because most systems use a GTDIR.BBS file. On these systems the CH option may be used as a way to grant no authorization, because a total lack of authorization yields the default authorization set: DN,UP,PR,MS. Time Bank Setup --------------- The Time Bank, TB, authorization has a rather complex format, for example: ; TB field labels uk uf dk df me mr mk qk rp dl wl E1 [1:00,5/30,2:00,C:\UP] CLASS UP,DN,MS,TB=01/02/03/04/03/00/05/01/01:060/060 Note the TB= entry at the end of the authorization list. Each field is of fixed length, 0's required, as shown. No field may be omitted from the list, however they may be zeroed out, if not wanted. The field definitions are: uk = Upload time bank credit per 100k uploaded. If possible, the credited amount is rounded and pro- rata for lesser uploads. For example, if uk = 2, then a 50k upload would earn a credit of 1. uf = Upload time bank credit per file uploaded. dk = Download time bank deduction per 100k downloaded. As is done with the 'uk' field, this deduction is - 17 - pro-rata for lesser downloads. df = Download time bank deduction per file downloaded. me = Message Entry time bank credit per message entered. mr = Time bank credit per message read. mk = Time bank deduction per message deleted. qk = QWK mail credit per 100 messages downloaded. rp = QWK mail credit per 100 messages uploaded. dl = Daily limit on time bank deposits. wl = Daily limit on time bank withdrawals. Time may be withdrawn from the Time Bank via the main menu command [TB]. Time may also be converted to netmail credits, if desired. Carbon Copy Messages -------------------- The carbon copy feature allows us to send the same message to a group of people. The list of names may appear in the message itself, or be contained in a separate file. This feature is controlled via dot commands. Like other dot commands, a '.' is put into column 1 of any line of the message, followed immediately by the appropriate command. The most familiar commands are: .CS, .GL, .GM and .RR (which should be familiar to all netmail users). Now here are some new ones to control the carbon copy feature: .CC ..... Carbon Copy. For example: .cc John Doe,64/2 .cc Frank White The first .CC would send a carbon copy of the current message to John Doe on net/node 064/002 (via the netmail system, of course). The 2nd example would simply create a carbon copy for Frank White on the current BBS where you entered the message. .BC ..... Blank Carbon. This command works like the carbon copy command, except that this carbon is not included in the distribution list (normally shown at the bottom of the message). This is neat, if you want to send a carbon to someone, but not alert the - 18 - others on the distribution list. Pre-canned distribution lists are available for use by folks that have a repeating distribution. The '@' syntax is used with the .CC command to call up a pre-written distribution... as follows: .cc @c:\gt\foo.bar The full pathname should be specified for this entry, however, GT POWER will look in the GTPATH directory, if no pathname is given. The contents of the distribution file uses the same syntax as given above, the .CC and .BC lines written as if they had been put in the regular message. For example, the file C:\GT\FOO.BAR might contain: .cc John Fisher,22/1 .cc Rob Roesch,64/3 .cc Reb Gambrell,33/16 .cc Stephen Ricciardelli,32/400 Also, it is possible, in a pre-canned distribution list, to blank out the names and replace them with a comment (when they appear in the message). This is done by making the 1st line of a pre-canned distribution the .LA command, as follows: .la Beta Distributors .cc John Fisher,22/1 .cc Rob Roesch,64/3 .cc Reb Gambrell,33/16 .cc Stephen Ricciardelli,32/400 Notice, the .LA command on the first line. The .LA command can only appear in pre-canned distributions, and if it appears, it must be the 1st entry in the file. LA is short for LABEL, which can be spelled out, if desired. If an .LA entry is at the beginning of a pre-canned distribution file, then no names are shown on the carbon copy list in the message, rather it would simply show: Carbon Copy: Whatever the LA command says goes here Using the example above: Carbon Copy: Beta Distributors Note, it is possible to mix netmail responses with local conference responses. For example, this is okay: .cc Stephen Ricciardelli,32/400 .cc John Dokes .cc Perry Alexander,32/1 - 19 - The 1st and 3rd carbons would be delivered via netmail, while the 2nd would be placed into the currently selected conference. 1st-Name Last-Name Phone-Number These three fields are present when it is desired to allow the caller "callback" priveledges. In effect, if the caller's name matches the name listed here and he gives the correct password, the system will offer to call him at the listed number. This allows the host to assume the cost of the phone charges for the session. The caller must be prepared to accept the call, that is his modem must be in "auto-answer" mode. Send "ATS0=1|" to most Hayes type modems to set auto-answer mode. The "|" represents a "carriage return". If the conditions are met GT POWER will return the call within 15 seconds, and will retry 3 times before giving-up hope of establishing the connection. NOTE: the password assigned here for the callback, must *not* be the same as the caller's personal password, i.e. the callback password *MUST* be unique. NOTE: It is possible to append a single character to the level indicator. Thus "A1" would be a valid level. This extra character is used to identify a custom bulletin file for this caller. This extra character is optional, but if present MUST BE a character that is legal within a file name. Read about BULLET files below. Examples: A [2:00,100/1000,5:00,c:\goodies] MASTER SY B1 [1:00] FRIEND DN,PR B1 [1:00,4/500,2:00,c:\up] CLASS DN,UP,PR C [1:30] JOGGER DN,UP,PR,DR MARY ADAMS 1-213-555-1234 A [2:00,10,4:00] CLASS SY C2 [2:00,3/250,3:00] CLASS DN,UP,PR,DR In version 12.10 of GT POWER, personalized passwords were introduced. When a caller gets his personal password it is stored in the USER.CTL file, with the other user information. The access level assigned to the password used by the caller on the first call (before a personal password was assigned) will be the access level assigned to the caller until changed via the SYSOP program. To provide a time limit, daily call limit, and bullet#, a cross reference of the access level stored in the users record in USER.CTL file and the GTPASSWD.BBS file is required. This is accomplished by placing CLASS cards for each access level your system uses into the GTPASSWD.BBS file. The format of the CLASS card is the same as a normal password entry, except the word CLASS must appear in uppercase letters. In addition, the CLASS entries cannot be used to provide callbacks, normal password entries must be provided for that purpose. Here are some example CLASS entries: - 20 - Examples: A1 [2:00,5/500,3:00] CLASS DN,UP,PR,DR,SH,MS B3 [1:30,2/250,2:00] CLASS DN,PR,MS K2 [:45,1/100,:45] CLASS DN,UP,PR,DR,MS The first CLASS entry establishes a class for callers with an 'A' access level, grants them 2 hours of session time, a daily call limit of 5 calls, a daily download limit of 500k, 3 hours of time per day, and gives them the authorizations: Download, Upload, Private mail, use DOORS, Shell to DOS, and read messages. The other entries grant lesser time amounts to the 'B' and 'K' classes. The 'B' class is given Download, Private mail, and Read message authorizations. The 'K' class is given Download, Upload, Private mail, use DOORS, and message read authorizations. Note: if you neglect to setup CLASS entries then once your callers have been assigned their own personal passwords, and this is automatically done by GT POWER, then they will have unlimited time access to your system, the default authorizations, and they will not be given a bullet#. It is possible to add comment lines to the GTPASSWD.BBS file. Any line with a ';' in the 1st column is a comment entry, and will be ignored by GT POWER. Optionally, the default message and file areas can be configured on an access level basis. This is done by putting an extra line following the CLASS and/or password definition, for example: C1 [1:00,100,2:00,c:\uploads] CLASS UP,DN,MS,PR,PW | FILE=c:\gt\c MSG=d:\trade The line beginning with '|' must follow immediately after the appropriate CLASS entry and the '|' character is indented with blanks -- not Tab characters. Either of the override specifications may be omitted -- so both areas don't need to be specified. +----------------------------------------------------------+ | | | Remember to give callers the MS authorization | | so they can "read messages". And setup a CLASS | | entry for every different access level in use. | | | +----------------------------------------------------------+ GTBULLET.BBS This file is displayed for the caller after he/she completes logon. It is useful to leave notes here for expected callers. BULLETx.BBS The "x" may be any character that can be a legal part - 21 - of a filename. This character must match the character which is found after the level indicator in the password file, to enable custom bulletin files to be displayed for callers. For example: if a caller's level was "BZ", then the program would search for a file named BULLETZ.BBS to display whenever the caller logged onto the program. NOTE: Custom bulletin files are OPTIONAL. If you do not wish to use them, simply use single letters for access level indicators. GTMENU.BBS This file is displayed for callers as the main menu. It may be suppressed by a caller by selecting e(X)pert mode. GTHELP.BBS This file is displayed when the caller requests help from the main menu. GTBYE.BBS This file is displayed for the caller when he logs off, i.e. selects the (G)oodbye command from the main menu. GTBYEx.BBS This is a custom bye file. The 'x' may be any character that can be a legal part of a filename. It comes from the GTPASSWD.BBS file, as the letter following the level indicator. Most commonly a number. See custom BULLETx.BBS files above. GTUSER.BBS This file is created whenever a call comes into the system. It will contain the access level and name of the current caller, or if no call is in progress, the previous caller to the system. The file contains just this 1 line of text. The exact format is: L 1st-Name Last-Name auth baud ANSI-opt last-on limit event time The line is free format with spaces delimiting fields. The 'L' field is the access level of the caller. The "Last-Name" field will consist of a single character, a ';', if the caller has only 1 name. The ';' will act as a placeholder in that case, so that DOOR programs will have an easier time unpacking this data on the line. The 'auth' field will contain the authorizations given this caller from the GTPASSWD.BBS file when he logged onto the system. The 'baud' field will two baud rates seperated by a ':', for example 19200:2400. The first baud rate is the DTE rate, the second baud rate is the DCE rate. The split rate is necessary for those using high speed modems. If the current session is a local sysop logon, then the 'baud' field will contain the word LOCAL, if the sysop is logged-on. The 'ANSI-opt' field will contain 'NOANSI' if the caller doesn't want ANSI graphics, or - 22 - 'ANSI' if he does want the graphics. The 'last-on' field contains the date the user last called the system. The 'limit' field contains the remaining time the caller has left for the current call. The 'event' field contains the time remaining until the next event is scheduled. The 'time' field contains the current time in 'xx:xx' format. The time remaining fields are integer showing time left in minutes. The 'event' time is always measured _from_ the 'time' field base - - not from the DOS clock. The purpose of this information is to supply needed control information to external programs that run either in the Shell to DOS or DOOR environment. GTDIR.BBS This file contains a list of directories that may be accessed by callers. There are three types of lines in this file: the actual directory lines, comment lines and group header lines. The comment lines are displayed to the caller when he asks to see the list of directories. The list displayed will contain only those directories the caller is authorized to access. The formats: Group Header Lines: Begin with a '.' in the 1st column. The detailed format is explained under GTMDIR.BBS. GTDIR.BBS and GTMDIR.BBS have very similar formats, so rather than explain it twice... Groups are optional, both in the GTDIR.BBS and the GTMDIR.BBS. Comment Lines: Contain a blank in the 1st column, the remainder of the line is displayed for the caller. Directory Lines: Column 1 - access Level. The minimum level required to access the directory. If this column contains an '=' then the actual line is shifted to the right 1 column and the '=' acts to reserve the directory for the indicated access level - which would now be in column 2. (See example.) One or more blank columns follows the level, then the complete DOS pathname of the directory, including all drive and PATH information. One or more blank columns follows the directory name, then a description of the directory is given. When a caller selects the (C)hange directory command, the list of choices will display the descriptions you provide here, so try to be helpful. - 23 - CDROM support is specified on the directory lines. The first step is to specify a full pathname for the FILES.BBS, as one can't put a FILES.BBS onto the CDROM itself. Here is an example: Z F:\DIR6,,C:\GT\FILES\D6.BBS,CD Some description E G:\DIR22,,C:\GT\FILES\D22.BBS Another description Compared to normal entries in the GTDIR.BBS you will note that the pathname for the directory is followed by two commas and the pathname for a BBS file, which is optionally followed by ',CD'. The two commas are required... don't ask why just yet, I plan to stick a new field in there later on. Following the two commas is the full pathname of the FILES.BBS (must be on a writable disk drive). The ',CD' is optional, and causes GT POWER to skip this directory when the caller asks for new file (I)nquiry (kinda senseless to search a CDROM for new files, heh?). The FILES.BBS for an upload directory is always found in the directory with the uploaded files. The CDROM support cannot be used to redirect the upload descriptions to a different location. Note: To newcomers, a FILES.BBS is a file that contains the descriptions of the files available for download. It's construction is described elsewhere in this document. Examples: .Z GENERAL General File Board This is a comment. (Since column 1 is blank) A G:\DIR9,,C:\F\DIR9.BBS,CD The description goes here. =B C:\LOTUS\DATA This is for 'B' level callers only. C A:\ The description again goes here. The first line in the example above, shows a group header line. This example shows three directories, one with an 'A' access level (on a CDROM drive), one with a 'C' access level. These are the minimum levels that callers must have to "see" these directories. The '=B' directory may be accessed only by callers with the 'B' access level. Freebie download areas can be created by placing a "paragraph character", ASCII 20, before the pathname in the GTDIR.BBS file. I would give an example, but the "paragraph character" does not show-up well in wordprocessing documents. A "freebie area" is one where all the downloads are free, i.e. not accounted for -- so callers can feel free to take - 24 - all they want. GTUDIR.BBS This file provides caller selectable multiple upload areas. Of course, this is an optional feature, just omit this file if you wish all uploads to go into the normal upload directories (specified in the GTPASSWD.BBS file, on a CLASS basis). The format of GTUDIR.BBS is similar to the GTDIR.BBS, here is an example: Upload Directories ------------------ z C:\GTBBS\UP Misc Upload Directory z C:\GTBBS\PROG Programmer's Uploads =E D:\SPECIAL Alpha Tester's Uploads A C:\PRIVATE Private Uploads The 3rd upload area, with the '=E' designation, would only be available to callers with access level 'E'. The first two areas would be available to all callers, with 'z' as the required minimum access level. The 4th directory would be private (assuming that most callers have access lower than 'A' ), access given only to those with 'A' access level or above. If the GTUDIR.BBS is present, GT POWER will ask the caller where to place the upload, just before the upload begins. The areas that the caller has access to will be listed for the caller, so that the caller can make a choice. The selected upload directory will override the upload path from the CLASS entry in the GTPASSWD.BBS file (in fact, if you use the GTUDIR.BBS file, the upload path in the GTPASSWD.BBS file is redundant). GTLDIR.BBS This file allows the Sysop to construct a menu that will be presented to callers immediately after the GTSYSID.BBS screen and prior to the ANSI graphics question. This menu can be used to swap around different language files. The GTLDIR.BBS has the following format: Starting in column 1, the name of the batch file to be executed if the related menu option is selected. Followed by at least 1 blank, then the text to appear on the menu. Any line that begins with a blank is displayed "as is" for the caller... explanatory text. Comments may be included by placing a ';' in column 1 of the comment line (comments aren't displayed for the caller). For example: ; This is a comment - 25 - Language Selection Menu ; Language 1, the most likely choice GTLANG_1 Language Number 1 GTLANG_2 Language Number 2 GTLANG_3 Language Number 3 ; The End This would appear on-screen for the caller like this: Language Selection Menu 1. Language Number 1 2. Language Number 2 3. Language Number 3 Enter Language Selection: The batch files, GTLANG_1.BAT, GTLANG_2.BAT, GTLANG_3.BAT should contain simple copy commands. Copy commands that move into place BBS/CBS screens matching the selected language entry. Nothing heavy duty should be done in these batch runs, as there may be limited memory available. The example showed 3 choices, but there can be more, however the menu should not be more than 1 screen full, otherwise the crashmail runs won't be able to work properly. After the language batch file has run, GT POWER will display a new screen, GTANSI.BBS, for the caller. This screen will only be displayed if the GTLDIR.BBS is installed and operational. It should contain some lead-in explanation for the ANSI graphics question (that formerly would have been in the GTSYSID.BBS screen). GTDDIR.BBS This file controls access to the GT DOOR system. Its function is much like GTDIR.BBS is for file directories. It serves as a way to add security to doors, document them and pass parameters to them. Each door must have an entry in this file, there are no comment lines in this file. Each line in this file follows the this syntax: L [comment_here_with_no_spaces] (Prompt message here:) The () indicate which fields are optional and need not be included in the file. As with the GTDIR.BBS file, the 'L' controls the minimum access level required to open the door. The [comment] is not optional, and must be enclosed within [...] and no blanks are allowed. If a parameter must be passed to the DOOR, then the optional prompt field - 26 - must be added. The answer given to this prompt by the caller will be passed to the DOOR as command line argument %3. Examples: B [this-is-door-1] Z [this-is-door-2] Enter filename: S [this-is-door-3] In the example above, the 2nd door has a prompt listed that indicates that this door requires a filename be passed. This could be for example to implement an ZIP view door, where the name of the ZIP file to be processed might need to be supplied. The caller's response will be passed as command line argument %3 to the GTDOOR2.BAT file in this case. +----------------------------------------------------------+ | | | Please note, the order of the lines in this file | | must be 1st door on 1st line, 2nd door on 2nd line, | | etc. The lines must be in 1, 2, 3... order. | | | +----------------------------------------------------------+ Doors may have screen files optionally associated with them. For example, GTDOOR1.BAT could have GTDOOR1.BBS (or .CBS). These screens are displayed to the caller just prior to the invokation of the door. GTBMENU.BBS This file is the bulletin menu file. It should list the numbered bulletin files. The numbered bulletin files can be located in the "Default File Section", or the GTPATH, or the BBS/CBS directory (but they should all be in the same directory). Their file names should simply be 1, 2, etc. This menu file will be displayed as users logon your system and besides the numeric bulletins, two alpha options should be listed: (L)ist logon bullets and (Q)uit bulletin menu. An example of a GTBMENU.BBS file: 1. Bullet #1 description here. 2. Bullet #2 description here. . . etc. . L)ist logon bullets Q)uit bulletin menu. It is possible that these bulletin files can contain ANSI graphics. If so, they should be named with a CBS extension. For example: 1 Bullet #1, no extension, no graphics. - 27 - 1.CBS Bullet #1, with .CBS extension, contains graphics. 2 Bullet #2, no extension, no graphics. 2.CBS Bullet #2, with .CBS extension, contains graphics. Remember: CBS versions of bulletins cannot occur without the standard "no graphics" version. Starting with GT 16.00, these bulletin files may be nested. When nesting bulletins, we will talk about bulletin numbers with a decimal point embedded within, i.e. 1.0.0 or 2.1.0. Each successive level of nesting requires another decimal be added to the bullet number, to a maximum of 5 levels deep. When equating the bulletin numbers to file names, the periods are first eliminated, for example 1.0.0 would equal filename 100, and 2.1.0 would equal filename 210. If we consider this situation for a bit, we see that there must be a sub-menu structure applied to these bulletins, in order to get them properly nested. For example, we might have the following in the top level file, GTBMENU.BBS: 1.0 General Bulletins 2.0 Game Bulletins The 1.0 would refer to the file 10 and the 2.0 would refer to the file 20. Each of these files, 10 and 20, would be sub-menus, which then actually referred to the actual bulletins. For example, file 10 might look like this: ;BMENU 1.1 Rules of the board 1.2 How to get more time 1.3 How to get higher access The line beginning with ';BMENU' must be the very first line of file 10, this signals GT POWER that this file is not actually a bottom level bulletin, but instead is another bullet menu. Files 11, 12 and 13 are the actual bulletin files (and therefore, would not contain the ';BMENU' entry). Because these bullet menus can be nested up to 5 levels deep, some new letter commands are available for usage in navigation. As follows: M Return to main bulletin menu (GTBMENU.BBS). P Pop back to the previous bullet menu. Beginning with GT POWER 18, personal bulletins are now - 28 - possible. These bulletins, if created, are named according to the caller's "Caller Number" in the caller's user record. To aid in determining the proper caller number, this number is now recorded in the log. If necessary, the SYSOP.EXE program can be used to lookup the caller's record. Here is an example of a personal bulletin filename: 4872.BBS If this file was located in the GTPATH or the BBS/CBS directory, then it would be displayed for caller number 4872 whenever he calls the system. Do not include leading zeros in the filename. It is possible to have .CBS versions of these files, but it gets confusing. If you wish to have .CBS versions of these bulletins, you _must_ place the regular bulletins, described above, into the default file area, and place the personal bulletins in the GTPATH directory. Otherwise, the filename conflict will get embarrassing. A real good idea would be to just not have .CBS versions of the personal bulletins! That would avoid all the problems. GTMDIR.BBS This file controls the multiple message bases that GT POWER can support. The format of this file is very similar to the format for the GTDIR.BBS file, except that you have 1 additional option for column 1, you may place a '*' in column 1 of an line in this file and then that message area will become a 'by application only' message base. The caller applies for entrance by trying to select the message area via the (A)rea change command. GT POWER will inform the caller that application has been accepted and the Sysop must approve. The users name will be placed into the USER_MSG.CTL file associated with the message base, but the BAN bit will be set, the Sysop must use SYSOP.EXE to reset the BAN bit so that the caller can be admitted. When setting up, the Sysop should insure that all sub- directories listed in GTMDIR.BBS exist, but GT POWER will automatically provide all the control files and message directories, as needed. All message areas must have an entry in this file, including the Sysop Message Base. The main default message area must be open to all callers and must use the same pathname as the message base pathname in GT POWER's configuration file. The GTMDIR.BBS file must be located with the other BBS files, either in the GTPATH directory or the BBS/CBS directory. - 29 - +--------------------------------------------------------------+ | | | The pathname portion of the lines in the GTMDIR.BBS | | file may be prefixed with either '^', '~', '<', '$' | | or '#'. | | | | ^ ... Designates a message area that can support | | public messages only. | | ~ ... Designates a message area that is used as a | | netmail area (see netmail docs). | | < ... Designates a message area that is Read-Only. | | Only the Sysop can enter messages. | | $ ... Designates a message area that can support | | private messages only. | | # ... The netmail reply mechanism is denied on a | | message base level. | | | +--------------------------------------------------------------+ Examples: Z ^C:\GTBBS\OPEN Public Message Base E C:\GTBBS\GENERAL General Message Base F C:\GTBBS\SPECIAL Special Message Base Q #^C:\GTBBS\ECHO An Echomail Conference Z ~C:\GTBBS\PUBLIC Public Netmail Area Please notice the entry for the Echomail Conference, it demonstrates that echoes should have only public messages, the '^' modifier assures this, and the '#' modifier disables the netmail return feature (netmail returns are only available to callers that have netmail credits -- use SYSOP.EXE to issue netmail credits). Personally, I like the netmail return feature, but some Sysops don't, so a means has been provided to disable it on a selective basis. If your BBS is going to handle QWK mail, then some things need to be added to the definition for each conference participating in the QWK mail (not all conferences need be available for QWK mail). If a conference is to be included in the QWK mail setup, then the "conference number" and "conference id" must be given in the GTMDIR.BBS. Here are some samples: Q c:\gtbbs\gospa,20/Our_Lady The Messages of Mary Z d:\trade,30/Trade_Echo The Trading Post The conference number follows the pathname, with a comma in between, then a '/' followed by the conference id. The conference numbers can be in the range 0 to 65534, excluding 8192 thru 8447. The conference id may be up to 10 characters, no blanks. Blanks may be included by using the '_', underscore, - 30 - character -- which GT will convert to a blank. Message bases and file areas, GTMDIR.BBS and GTDIR.BBS, can be split into logically grouped areas. Groups are totally optional... you don't have to introduce groups into either the GTMDIR.BBS or GTDIR.BBS. The beginning of a group is denoted by the Group Header, like this: .Z GENERAL General Board Z #^C:\GT General Message Base Z ~C:\MAIL Netmail Area .=D NETWORK GT Network Sysop Board Z ^C:\SYS GT Network Sysops Echo Z ^D:\NODE_ECO The Nodelist Echo In the example above, there are two groups. A group header begins with a '.' in column 1. The 2nd character is usually an access level (the minimum required to access the group). But note the 2nd group header begins '.=D', this denotes a group that is available to the 'D' access level only. After the access level, there is at least one blank, then the group name, 'GENERAL' and 'NETWORK' in this example. After the group name is the menu description for the group. The lines following each group header are the usual entries for the message bases or file areas (in the case of GTDIR.BBS). The group name must be unique in the first 8 characters, but may be up to 30 characters in total length. GTDOORS.BBS This file is displayed for the caller when he selects the (O)pen DOORS option from the main menu. It is a pure text file, which should contain your DOOR menu. Each DOOR is assigned a number, 1-999, and should be listed on this menu by the number needed to select the door. It is possible to have sub-menus, which work off of the GTDOORS.BBS menu. If the GTDOORS.BBS file looked like this: Main Door Menu -------------- A. Game Doors B. Database Doors C. Utility Doors Then, if the caller selects 'A', the sub-menu GTDOORöA.BBS would shown. Or if 'B' were selected then GTDOORöB.BBS would be shown. Then whenever a - 31 - numeric entry is made, the caller would be put into the selected door. A simple carriage return would take the caller back to the main door menu, GTDOORS.BBS. GTDOORnn.BAT These are the DOOR files themselves. These are batch GTDORnnn.BAT files, much like the Shell to DOS batch file, but instead of executing another copy of COMMAND.COM, it executes your DOOR program. The mechanism of the DOOR uses the CTTY commands at the start and end of the file. The CTTY redirects the console to the COM port at the start of the DOOR file, and back to the console at the end. Sample DOOR files are included with the package. Here is a short example: %1 com%2 edlin %3 %1 con The %1 will become "ctty" or "rem", and the %2 will become the port number, through substitution by DOS. The "REM" substitution is used when the DOOR is being run locally by the Sysop to check it out. A DOOR that works in the local mode may not work for a remote caller, because the DOOR program may not use the DOS functions to perform I/O through the console. Remember that the 3rd command line argument is passed from the GT POWER host to the DOOR containing the response from the caller to a prompt you have placed into the GTDDIR.BBS file. In this case, it would have asked the caller which file he wanted to edit. If the door doesn't require a 3rd parameter, GT POWER will pass the DCE baud rate as the 3rd parameter. If the door does require a 3rd parameter, then it will override and replace the baud rate. This should be handy for doors that do file transfers via external protocol drivers. Please note the two forms of the door names. GTDOORnn.BAT is used for door numbers 1 through 99. For doors numbered from 100 through 999, use GTDORnnn.BAT. For example: Door #5 ..... GTDOOR5.BAT Door #45 .... GTDOOR45.BAT Door #125 ... GTDOR125.BAT Door #999 ... GTDOR999.BAT Doors may have screens associated with them. These screens are stored in files with the same name as the door .BAT, but with the BBS or CBS extension. For example: GTDOOR5.BBS would be the screen for GTDOOR5.BAT. The screen is displayed for the caller - 32 - just before GT invokes the door .BAT file. ANSWERn.BBS This file contains the answers supplied by the callers to the 'n' questionaire, that you have stored in the QUESTn.BBS file. The format of this file is as follows: each answer given by a user is written on a separate line to this file, the answers are grouped by placing the users name, from logon, onto the first line of the group, enclosed within << ... >>, following this each answer appears on a separate line and each group is terminated with a line containing a single period. Here is an example: << Paul Meiners >> 3104 E. Camelback Rd. #503 Phoenix, Az 85016 602-897-9557 . << Susie Meiners >> 1245 Sunnyside Dr. Houston, TX 77081 713-894-3465 . The example shown above contains two groups of answers. As GT POWER accumulates answers it will continue to append them to the end of this file. If this file does not exist, GT POWER will create it. The Sysop should avoid editing this file, because any attempt to do so may render GT POWER incapable of adding answers to it (if the editor adds a Ctrl-Z character to the end of the file -- the STRIPZ.EXE program may be used to remove Ctrl-Z characters). QUESTn.BBS This file contains the questionaire for callers to fill out. This feature is optional. The file is in template format, using the [------] construct to indicate where GT should gather answers to questions. For example: [------------] Enter Phone Number: Would direct GT to collect the phone number, showing GT where to collect the answer and the maximum width answer to accept. Each answer can be up to 80 characters long and there may be up to 50 questions per questionaire. After having filled out the questionaire, the caller will be asked if he wishes his answers to be recorded. If he indicates NO, the GT POWER will discard the answers. - 33 - The questionaire is optional, and if the user tries to fill out a questionaire that cannot be found, GT POWER will indicate to the caller that there is no questionaire currently available. There can be up to 99 different questionnaires for the caller. The GTQMENU.BBS file is displayed with a list of all available questionnaires. Before a new caller reaches the main menu, GT POWER will automatically present the New Caller Questionnaire. It is questionnaire 0, QUEST0.BBS. No pre-questionnaire will be displayed, the caller will just be forced to answer the questionnaire. If the caller tries to drop carrier or otherwise avoid the new caller questionnaire, then GT POWER will force them to answer it on their next call. Of course, the new caller questionnaire is optional (simply omit QUEST0.BBS and there is no harm). Questionnaires are programmable. Commands must start in column 1 of any line that contains a command. Line labels can be added to the questionnaire, so that branch commands have some way to locate where to goto. A line label begins with a ':' in column 1, followed by an 8 character name, for example: :label The following commands are supported: [%DT] ............... Date/time stamp. Records the current date/time in the answer file. [%ABORT] ............ Abort the questionnaire. Stop the questions and return the caller to the main menu. [%JN,pathname] ...... Join caller to message base. Join the caller to the message base pointed to by 'pathname'. [%TB,label] ......... Test for blanks in answer. Test the answer to the previous question for blanks, if the answer is blank, then branch to the specified line label. [%TA,label] ......... Test for ASCII in answer. Test the answer to the previous question for all - 34 - ASCII data. If all characters are normal ASCII (32-125 decimal), then branch to the specified line label. [%SV] ............... Force questionnaire to be saved. This command should be placed near the beginning of the questionnaire, to insure it is "in effect" before the caller decides to drop carrier . Once it has taken effect, the questionnaire WILL BE saved, unless the computer crashes. [%MO] ............... Execute a "More?" prompt. This command causes a "More?" prompt to be given to the caller. [%TL,A-E=label] ..... Test access level. [%TL,L=label] If a caller has the indicated access level, then branch to the specified line label. As shown above, the test can be for a range of levels, or for a particular access level. [%IF,X,xxx=label] ... Test answer for value. [%IF,X,x=label] [%IF,X,A-C=label] [%IF,N,10=label] [%IF,N,20-30=label] This command allows the Sysop to test the answer to the previous question. The entry can be tested as a number or a string of characters. The 'X' param indicates a string test should be performed. The 'N' param indicates a numeric test. The test can be for individual numbers or characters, or it can be a range. For example: [%IF,X,Y=okay] Test 1st character of answer for a 'Y'. [%IF,N,10-15=right] Test if the number was between 10 and 15 inclusive. [%IF,X,MAGIC=got_it] Test if the word was the word 'MAGIC'. If the test evaluates to be true, then branch to the specified line label. [%GO,label] ......... Goto label. Unconditionally branch to the specified line - 35 - label. [%XX,reason] ........ Disconnect caller, log reason. Disconnect the caller from the BBS immediately and write the 'reason' to the GT.LOG file. [%XD,nnn] ........... Adjust the caller's expiration date. Where 'nnn' is the number of days from today to set the expiration date. For example, 365 would set the expiration date to a year from today. [%LV,x] ............. Adjust caller's access level. Change the caller's access level to the value of 'x', where 'x' can be any legal access level. [%LP,n,label] ....... Loop back to label. This command allows the previous question to be repeated. This is very handy for cases where the caller's response appears incorrect or unacceptable. The 'n' specifies how many times the question is to be asked --- the [%LP command will fall through after asking the question 'n' times. A good time to [%XX the caller . [%LG,text] .......... Log command. The "text" is written to the GT.LOG file. The "text" can be plain text or one of these special variables: %nn ...... Log the answer to question 'nn', where 'nn' is a number from 1-50. [%LG,%23] Log the answer to question 23. %PR ...... Log the answer to the previous question. [%LG,%PR] [%LG,Anything you want here!] Writes the string "Anything you want here!" to the GT.LOG file. [%JB,xxx] .......... Join message board. - 36 - This command allows the sysop to join a caller to a message board. Where "xxx" is th board name taken from the group header line, '.' in column 1, in the GTMDIR.BBS file. Answer labels ------------- Prior to version 17.06, one of the biggest problems that I've had with questionnaires is that there has been no easy way to identify the answers, without some way to cross-reference with the questionnaire. Answer labels can be added to the questionnaire by making an addition to the prompt line. For example: [---] Are you are sysop? This question has no answer label. The answer is recorded in the ANSWERn.BBS file as entered by the caller. But now, let's add an answer label: [---] Are you are sysop? [%SYSOP] Now, the caller's answer will be recorded with the label "SYSOP". The answer file might look something like this: AGE : 12 SYSOP : no BBS_PHON: 602-897-9549 VOICE_PH: 602-897-9557 The "answer label" is recorded in the first 8 columns, the caller's answers are recorded in column 11 and afterwards. The "answer label" should not be confused with the "line label" discussed above. The line label is not recorded in the answer file, but is used to control the branching within a questionnaire program. Sample Questionnaire -------------------- [%DT] NEW USER QUESTIONNAIRE :ASK_AGE [---] How old are you? [%AGE] [%IF,N,1-18=MINOR] [%IF,N,19-70=ADULT] - 37 - Really! That is too old!! [%LP,3,ASK_AGE] [%GO,DUMP] :ADULT You are an adult. [%GO,ASK_SYS] :MINOR You are a minor. :ASK_SYS [---] Are you a sysop? [%SYSOP] [%IF,X,Y=SYSOP] [%IF,X,N=REGULAR] [%LP,3,ASK_SYS] :DUMP Sorry! You gotta go... [%XX,DUMB BELL SYNDROME] [%GO,FINAL] :REGULAR You aren't a sysop. [%GO,FINAL] :SYSOP You are a sysop! [%LV,A] :FINAL --------------------------- End of Sample Questionnaire PQUESTn.BBS This file is displayed for the caller immediately after he selects the questionaire he wishes to complete from the questionnaire menu. It should explain to the caller the basic purpose of the questionaire and allow him to consider if he wishes to continue to fill out the questionaire. Immediately after this file is displayed, the caller will receive a prompt, asking if he wishes to continue and fill out the questionaire. The PQUESTn.BBS file is optional. - 38 - GTQMENU.BBS This file is listed for the caller when he selects the (Q)uestionnaire option from the main menu. It is a menu file that should contain a list (in text format) for the user to choose which questionnaire he wishes to complete. For example: 1. Order form for GT POWER. 2. Order form for Turbo CALC. 3. User poll. This shows only three options, as many as 99 questionnaires may be supported by the system. PROTOCOL.BBS This file contains the protocol menu that will be displayed for the caller if he initiates a file transfer. It is provided so that the Sysop can customize this menu to his own taste. It is pure text format, except for the first line, which contains the list of protocols the Sysop wishes to activate for his system. The format of this activation line is as follows: ;XYZB1TWKMSGA Where the ";" appears in column 1 of the line. Each letter activates a specific protocol. For example: X ... Xmodem Y ... Ymodem Z ... Zmodem B ... Ymodem Batch 1 ... 1k Telink T ... Telink W ... WXmodem K ... Kermit A ... MegaLink M ... Super MegaLink S ... SEAlink G ... Ymodem-G By omitting the activation letter from this line, the Sysop may disable the corresponding protocol. For example: ;XYZT Would activate and allow on the Xmodem, Ymodem, Zmodem and Telink protocols. The other protocols would not be allowed. The PROTOCOL.BBS file is optional, if omitted GT POWER will display a canned protocol menu. GT_VSCAN.BAT This is a batch file that should be setup for the - 39 - virus scan of uploads. The GT_VSCAN.BAT will be executed, like a door, if it exists in the GTPATH, after a caller completes an upload. The names of the uploaded files will be passed to the batch file in a log file called GT_RECV.LOG. The format of this log file is very simple: (a) full pathnames are used, (b) a single filename per line, (c) entries begin in column 1, and (d) no other information is present in the GT_RECV.LOG. GT POWER will not automatically erase or create the GT_RECV.LOG, so that it may be used in a cumulative manner (so the virus scan can be run later -- after logoff or whenever the Sysop wishes). To get things started, the Sysop must create an empty GT_RECV.LOG, the following DOS command works nicely: rem >C:\GTLOGS\GT_RECV.LOG This creates a 0 byte file to get things started. Once the log is created, GT POWER will append the uploaded filenames to the file after each upload. After GT_VSCAN.BAT runs, GT POWER does not automatically erase the GT_RECV.LOG, so the Sysop must add the commands to GT_VSCAN.BAT to clear the file after the scan has been done. Again, the DOS 'rem' command works well: rem >C:\GTLOGS\GT_RECV.LOG NOTE: the GT_RECV.LOG must be located in the GT POWER LOG PATH (which may or may not be the same as the GTPATH). The LOG PATH is set by the Sysop under the Alt-I, Pathnames selection. If the Sysop wishes to scan the files later, sometime after the caller has logged off, the GT_VSCAN.BAT file should not be created, instead the virus scanning logic should be placed in the GTLOGOFF.BAT (or wherever the Sysop desires), but remember to clear the GT_RECV.LOG after the virus scan has been done, otherwise the GT_RECV.LOG will continue to accumulate. For example, the virus scan could be done during daily or weekly maintenance runs, because full pathnames are recorded in the GT_RECV.LOG file (as long as you don't move the files someplace else, before the scan has a chance to run ). IMPORTANT: GT POWER does not automatically create the GT_RECV.LOG. The Sysop must create it to begin with, using the DOS 'rem' command, as shown above. If the Sysop forgets to do this, GT POWER will not record anything in the GT_RECV.LOG! - 40 - GT_PIGGY.BAT This batch file is executed after every download, and upload -- if GT_VSCAN.BAT is not invoked. If you are using the GT_VSCAN.BAT, then the "piggy" logic should be included in the GT_VSCAN.BAT. GT POWER will create a file to be processed by the "piggy" batch file, it is called GT_XMIT.LST and will be placed in the GTPATH directory. The format of this file is: 0000000352 G Sam Spade 0000000117 0 0 0 C:\BBS\AREA1\CBGREET.BBS The 2nd line will be repeated for each file transfered. The column layout of the first line is: Col. 1-10 Seek address of the caller's record in the USER.CTL file. 11,13 These columns are blank. 12 The caller's access level. 14-43 The caller's name. The rest of the lines in the file define the transfer session that just finished: Col. 1-10 The file size in bytes. 11,13,15,17 These columns are blank. 12 The rx/tx flag: 0=download 1=upload 2=aborted 3=QWK mail 4=DIZ upload 14 CDROM flag: 0=regular disk 1=CDROM disk 16 Freebie flag: 0=regular 1=freebie 18 Complete pathname of the file. The "piggy" bat is designed to be a hook used by 3rd party authors to use to implement a up/down ratio system. WELCOME.BBS Each message base may have a welcome screen. If present, it resides in the directory with the message - 41 - CTL files and is displayed for the caller as he enters the message base. It is in the nature of a conference welcome screen. The WELCOME.BBS file is optional. MBULLETx.BBS Each message base may have bulletins associated with it. These bulletin files will reside in the directory with the message .CTL files and will be displayed for the caller after the WELCOME.BBS file has been displayed. The bulletin numbers are coordinated with the regular bulletin numbers in the main GT POWER directory, which come from the bulletin numbers on the entries in the GTPASSWD.BBS file. The MBULLETx.BBS files are optional. SYSOP.BBS The SYSOP.BBS file contains almost all of the prompts and short menus used by the host mode. They may be customized to suit the sysop's taste. But there is a danger in changing the file too greatly, the overall length of each entry should not be greatly changed, and each entry is limited to 1 line. In addition, when new GT POWER releases are made, it may be difficult to transfer the custom changes to the new file. There are some special lines in the SYSOP.BBS file. The 1st line of the file is the welcome to chat mode, it can be customized to let the caller know who they are chatting with. The 3rd line of the file can have the name of the sysop replace the word 'Sysop'. This will allow GT POWER to personalize messages left to the sysop. On line 158, the minimum length of passwords required by the host mode is configurable. The minimum length may be set anywhere from 0 through 9 characters. This is accomplished by changing line 158 in SYSOP.BBS to reflect the desired width. For example: "Password is too short[!] Must be [6] - [20] characters." GT POWER scans this line looking for the very first number. In this case, GT POWER would find the number 6, and that would become the minimum length for passwords. On line 214 of the SYSOP.BBS file are more special lines. First, the and time increment can be customized. If a caller is online, the sysop can increment his time limit by a small amount, use to decrease the available time or to increase the available time. The amount of the increment is shown on a line near the end of the SYSOP.BBS file that begins like this: - 42 - "\n\n3 minute change. The number following the "\n\n" is the amount of the change. It can be any number from 1 to 9 minutes. A little farther down, on line 216 in the SYSOP.BBS file, is a line that looks like this: ".ZIP .LZH .ARC .ARJ .GIF .EXE" This line contains the default extensions that are used to satisfy download requests. Each extension must be separated from the one before by a single space, and each extension must begin with a '.' character. This line can be changed or added to, if need be, but there should probably be no more than 8 defaults listed, otherwise system performance may degrade. Father down, on lines 219 and 220, are two lines that look like this: "MENU=" "MMENU=" These lines may be modified to add items to the menus used in the GT POWER host mode. The MENU= line is used to add items to the main menu and MMENU= is used to add items to the message menu. Each item that is added must have a two character invokation sequence. For example: "MENU=[XX]batname;Q;Enter filename:" 'XX' is the command selection character (i.e. what the caller will need to type to execute this command). 'batname' is the name of the batch file that will be executed. The 'Q' is the minimum access level required before a caller can select this menu option, and the 'Enter filename:' is a prompt for data that will be passed to the batch file. For example: "MENU=[XX]batname;Q;Enter filename:;[MR]modread;Z" The access level and prompt for data are optional, but they may not be skipped over. That is, if you have specified a prompt for data, you must also have an access level specified. Several commands can be added in the manner shown above to each of these two lines in SYSOP.BBS, MENU= and MMENU=, but one must be carefull not to extend the lines past 255 characters in length. - 43 - The interface to the batch files invoked by these items is similar to the command interface for door batch file. As follows: Param Description ----- ----------- 1 The CTTY or REM indicator. 2 The COM port number. 3 The prompted for data. The last param, #3, is optional, of course. And, for items on the MMENU= list, GT automatically adds the following four parameters: 4 -Ppathname, where 'pathname' is the path to the currently active message base. 5 The message number previously read by the caller. 6 Access control switch block, where a 0=false and 1=true: a. Netmail message area. b. Public message area. c. Private message area. d. Read-only message area. 7 Netmail credits available to this caller. For example: medit CTTY 1 foobar -PC:\GT\MSGB1 103 0100 200 Where: medit ......... The name of the batch file from the MMENU= line in SYSOP.BBS CTTY .......... The caller is coming in remote 1 ............. on COM port #1. foobar ........ Data given by caller in response to the prompt (optional). -PC:\GT\MSGB1 . The currently active message base. 103 ........... The previous message read by caller. 0100 .......... Access control switch block: 0: Not netmail area. 1: Public messages only. 0: Not for private messages only. 0: Not a read-only message base. 200 ........... This caller has 200 netmail credits. On line 354 of the SYSOP.BBS file is the Caller Id Token. This line needs to be changed to a value appropriate for your modem. The default " = " works with Rockwell chipset modems, such as the SupraFAXmodem. I believe that the value ": " will work for the ZyXEL modems. - 44 - To make the Caller Id option work, the BBS must be using a modem that supports Caller Id reporting. The modem must be setup to report the Caller Id information in plain ASCII text -- not the hex format. And, of course, your phone company must have the Caller Id feature enabled on your phone line. The following command is proper for use with a SupraFAXmodem that has the Caller Id feature: AT#CID=1 GT POWER looks for the Caller Id information to be reported between the first and second RING, so /R2 should be used on the GT POWER command line, to force GT POWER to answer on the second ring. The Caller Id Token is used to distinguish the other result codes from the Caller Id information. The token must be on each line of the Caller Id report. The Supra modem puts " = " on each line, like this: RING DATE = 0419 TIME = 1726 NMBR = 6028979549 NAME = MEINERS RING This is captured text from testing I did with my Supra modem. The Caller Id information is recorded in two places: a. The GT.LOG file. b. A file named CALLER.ID -- stored in the GTPATH directory. The information is recorded exactly as reported by the modem. On line 355 of the SYSOP.BBS file is the Fax Token. It should be changed to a value appropriate for your modem, if you want GT POWER to passoff to a backend Fax program. If GT POWER is waiting for a call in host mode and detects a modem result code containing the Fax Token, then GT POWER will execute the batch file GT_FAX.BAT. I've been told that the ZyXEL modems can be set to CLASS=6 and then handle this sort of passoff from a frontend BBS program. I've also been told that modems based on the Rockwell chipset can also be used for this purpose when used with a 3rd - 45 - party fax program called BGFAX -- available from the larger GT POWER file boards. SCHEDULE.BBS The "scheduler" is code within the GT POWER host mode which allows the sysop to schedule events. The format of the SCHEDULE.BBS file is very simple. The file is composed of lines that begin with a time or range of times, then the command to be executed at the specified time. The entries in this file for the schedule must be in strict ascending numerical order. Notice the entry below for '24:50', in GT POWER's terminology this is 50 minutes past midnight. Under GT POWER you must choose whether you wish to use 24 or 0 as the hour after midnight. The hour between midnight and 1 a.m. is either the 24th hour or the 0th hour, in any case - remember, the schedule must appear in strict ascending numerical sequence, and one should never mix references to hour 24 and hour 0 in the same schedule. Examples: 03:00 copy file1 file2 03:30 QUIT 5 04:00-05:00 QUIT 6 06:00 maint 24:50 QUIT 8 Based on the above example, at 3 a.m. the GT POWER host will copy file1 to file2 (any DOS command can be executed like this). Then at 3:30 a.m. the GT POWER host will quit execution and set an ERRORLEVEL of 5, the runstream that is controlling GT POWER must be prepared to deal with this ERRORLEVEL, else nothing will be done. Also the user must insure that the GT POWER host is restarted. At any time between 4 a.m. and 5 a.m. the GT host will quit execution and an ERRORLEVEL of 6 -- this one is meant to illustrate a quit to the netmail function, which should always be started with a range of times, so that in case it cannot start exactly on the button of 4 a.m. the GT POWER host will start it, even if it is late starting. Again the runstream that is controlling GT POWER must be prepared to deal with the indicated ERRORLEVEL, 6 in this case, and must restart the GT POWER host *after* 5 a.m. Then at 6 a.m. the GT POWER host will execute the 'maint' batch file. Please note, it is possible that an event may be run more than once, if it finishes the first run prior to the end time of the range. For example, the 3rd event above is shown running 03:00-04:00, if the first time through finishes before 5 a.m., then it will start again (over and over again, until 5 a.m. is finally - 46 - reached). So the sysop must select the range of times with care. Wider ranges better insure that events aren't missed, narrower ranges make it easier to avoid multiple runs of the same event. A sysop may also add a special line to the SCHEDULE.BBS file which will allow control of the (P)age function from the main menu. The OFFICE command allows the sysop to specify when a (P)age will be acceptable. If a (P)age is attempted outside of the specified time range, then the caller will be notified about the sysop's OFFICE HOURS. Here is the format: OFFICE=08:00-21:00 The hours may be given in 24:00 or 00:00 notation, but again, DO NOT mix the two styles, i.e. 00:00-24:00 would be INCORRECT. But 00:00-23:59 would be the right way - or 01:00-24:59 would also be correct. Please notice that leading zeros must be supplied. 08:00 is correct, 8:00 is wrong! No embedded spaces are allowed in this format. It must be as shown above. +----------------------------------------------------------+ | | | NOTE | | | | Five minutes prior to a external event, GT POWER | | will cease accepting calls and wait for the event | | start time. Callers who call in the vicinity of | | an event will have their time on the system cutback | | so that the caller will be off the system before | | the event is to start. | | | | | +----------------------------------------------------------+ TRASHCAN.BBS This file will test your creativity . All the dirty words go in here, and then anyone, who uses one of them in their name, will not be allowed to enter your system. The words in the TRASHCAN.BBS must be in _lowercase_, otherwise they won't be recognized. A special wildcard character can be used in TRASHCAN words, the '?' character can be used to match *any* character other than a blank. The blank is treated as a delimiter between first and last names, and each name is checked against the trashcan individually. The check is only performed on new callers to your system, so it doesn't slow the regular logon. And use of the trashcan is optional. Just leave it out, if you don't want to use it. An example TRASHCAN.BBS file: - 47 - d?mn h?ll scr?w f?ck sh?t FILES.BBS When you create a directory to contain files, either for upload or download, you should include within the directory a file named FILES.BBS. It should contain the descriptions of the files contained within the directory. When the caller selects the "F" option from the main menu, the content of this file will be displayed. The FILES.BBS that is located in the appropriate upload directory will be updated automatically with information supplied by the uploader as follows: Position Description -------- ----------- 1-12 Filename 13 Blank 14-21 File size in bytes 22-23 Blank 24-31 File upload date 32-33 Blank 34-41 File creation date 42 Offline indicator: '*' means offline 43 Blank 44-78 The name of the caller who uploaded the file. Following this header line will come up to 10 lines of description. Each line of description will begin with a '|' as the first non-blank character (i.e. not equal to hex 20). The format of the description may be changed by the sysop from the default used by GT POWER, the only rule is that the first non-blank (i.e. not equal to hex 20) must be the '|', otherwise GT POWER will treat the line as a header or a comment. A header is a line that begins with a non-blank character, i.e. not equal to hex 20 (except for description lines, detailed above). A comment line is any other line that begins with a blank, hex 20. NOTE: a hex 20 is a blank, a character whose decimal ASCII value is 32. UPLOADS.BBS As uploads are received GT POWER will record their descriptions in an additional place (in addition to the normal FILES.BBS). That new place is a special file, created in the GTPATH or in the LAN Path (if running on a LAN system), named UPLOADS.BBS. This file will contain a LIFO list that records the uploads - 48 - in the reverse order in which they were uploaded. NOTE: the UPLOADS.BBS file must initially be created by the sysop. GT POWER will only update this file once created by the sysop. When you first look at this file, it appears much like a normal FILES.BBS, but it _IS NOT_. The first difference is seen on the very first line of the file. The first line contains a semi-colon followed by a number, like this: ;200 The semi-colon should appear in column 1 of the line. The number tells GT POWER how many files you wish to keep listed in the UPLOADS.BBS. When the file has more than the desired number, GT POWER will drop off the oldest files. The 2nd difference between the UPLOADS.BBS and a regular FILES.BBS is the presence of a security specifier for _EACH_ file entry. That specifier appears before the filename... for example: A FOO.BAR 1024 01-20-93 01-15-93 | This is the description | for FOO.BAR. It is a tasty file. =J CREAM.PUF 10240 01-19-93 01-15-93 | This is the description of CREAM.PUF | It will be seen only by 'J' level callers. The 'A' and the '=' should be in the first position of the line. Because of the security placed on each file in UPLOADS.BBS, regular comments in this file should be placed only as a header at the top of the file... because comment lines do not have security associated with them (everyone will see the comments, but the associated files may not be visible). The description lines are associated with their files, and have the same security assigned to them (unlike comments). It is anticipated that the sysop might want to manually add files to the UPLOADS.BBS... but normally, automatic maintenance of the file will be performed by GT POWER. A new main menu command has been implemented to list these uploads for the caller... the LU command, Latest Uploads. The LU command checks the security level for each file individually, before listing it for the caller, insuring that only files downloadable by the caller are shown. - 49 - As new uploads are received, GT POWER must create a temporary file in the GTPATH (even on LAN systems), so that the UPLOADS.BBS file may be updated. If the system crashes during an update cycle, the temporary file may remain leftover in the GTPATH. It may be erased---be sure you have a good UPLOADS.BBS file before erasing the temporary file, as it may be your only backup. The filename is GT$TMP00 (where the '00' is the pid number for the node where the file is located. GT POWER attempts to handle conflicts created by simultaneous uploads on multiple nodes at the same time, but it is possible that things will get rather slow, if very many nodes process upload descriptions at the very same moment. RECENT.BBS This file will contain a list of recent callers to the BBS. The list is kept in reverse order, i.e. the latest callers are at the top of the list and oldest callers are at the end of the list. The first line of RECENT.BBS must specify the number of callers you want kept on the list. It defaults to the most recent 50 callers. Here is what the first line should look like: ;50 The ';' must appear in column 1 of the line, the number following is the desired length of the list... in this case 50 callers. On LAN systems, the RECENT.BBS is kept in the LAN Path, but the work file RC$TMP00, is placed in the GTPATH directory. The '00' is the pid number of the updating node. The work file will normally be removed automatically, but in case of a system crash it may remain cataloged. It may be erased, if desired. If you wish to make the RECENT.BBS visible to callers, you will need to make it available via a bulletin or other screen. The ^F, file include feature, is useful for this purpose. - 50 - Host Mode Control Files and Directories --------------------------------------- During the operation of the GT POWER host mode, several files and directories will be created automatically. The SYSOP.EXE and DELREN.EXE program must be used to maintain these files, when the need arises. Here is an overview of the purpose of these files: MESSAGE.CTL This file contains the header information for all messages maintained by the GT POWER host. Such information as sender name, addressee name, date of entry and whether or not the message has been received, are kept here. Each message base has one of these files associated with it. USER_MSG.CTL This file contains information about the messages which have been read by each caller who has joined a message base. Each message base has one of these files associated with it. USER_MSG.IDX The index file for the USER_MSG.CTL file. Speeds access to individual caller records. Each message base has one of these files associated with it. USER.CTL This file contains information about the callers to your GT POWER host. Such as their name, where they are calling from and their personal passwords and access level. This file is stored in the GTPATH direcotry (or the LAN Path, if you are using the LAN setup). USER.IDX The index file for the USER.CTL file. Speeds access to individual caller records. FILES.CTL This file contains information about all the files on the system that are available for download. It is built by the FILES_DB.EXE program (the FILES_DB program must be run to build a new FILES.CTL whenever you move files around on the system. The presence of this file enables the universal download feature and helps to eliminate duplicate uploads (that is, GT POWER will lookup filenames in this database prior to allowing an upload from a caller - if you already have the file, the upload will not be allowed to continue). FILES.IDX The index file for the FILES.CTL file. Speeds access to individual file records. Even on very large BBS systems, access to the files database is accomplished in less than a second or two. GTMSGS This is a sub-directory where the text of the messages is stored. The GTMSGS sub-directory is built automatically by GT POWER. Each message is stored without header information, which is stored in the - 51 - MESSAGE.CTL file. The messages are stored in files with an extension of .MES. Each .MES file contains 10 messages within it. As follows: 00001.MES Contains messages #1 through #10 00002.MES Contains messages #11 through #20 ...etc... The messages are stored in plain ASCII text format. Each message begins with a 'start of message' indicator with the following format: Col 1 = Ctrl-X 2-4 = 'SOM' 5 = '0' through '9', depending of the relative position of the message within the file. Within 00001.MES, message #2 would have a header of ^XSOM1, where ^X is the symbol for Ctrl-X. In 00002.MES, messages #12 would have a header of ^XSOM1 --- the same as message #2 in 00001.MES. This scheme allows for the possibility of a "rapid" renumbering. That is, the internal numbers in the header lines are relative, not absolute. Changing the name of the MES file, i.e. from 00002.MES to 00001.MES, automatically would renumber the messages contained within. Except for the files database (FILES.CTL and .IDX) these files will be created as necessary by the GT POWER host. The SYSOP.EXE and DELREN.EXE programs will perform needed maintenance of these files: for example renumbering the messages, deleting obsolete users, providing reports and listings. HOWEVER, do not run SYSOP.EXE prior to establishing these files. For batch usage, DELREN.EXE is provided to delete and renumber messages - the command syntax for DELREN can be obtained by executing the program with any parameters. - 52 - Running Host Mode ----------------- Once installed, the host mode is fairly self-explanatory, but here is a quick once over. Host mode is started by pressing "ALT -". GT POWER will automatically enter "Half duplex" mode. This is so that anything typed on the host console will echo so that it can be seen. Then GT POWER will send the Host Mode Modem Init String to the modem and wait for a call. While GT POWER is waiting for a call, there are 4 commands available: [Esc], which will terminate host mode, carriage return, which allows the Sysop to logon to GT POWER's host mode from the local console, [CtrlöL], which turns on the system printer for logging, and [Ctrl-S] to load a fresh copy of the schedule from disk (useful for folks who edit the schedule from a 2nd window under DESQview or Windows). Note that you should have logging enabled in the GT POWER configuration, via Alt-I, the [Ctrl-L] command merely enables the printer, so that whatever is logged will also appear on the system printer. There also is a command line option to turn on the log printer. If you place "/p" on the GT command line, the printing of the log will automatically be turned on from the very start of the program. Once GT has answered an incoming call, there are several commands available to the operator, as follows: +--------------------------------------------------------------------+ | | | SYSOP COMMANDS | | | | Alt-H List available sysop commands. | | | | Ctrl-D List current schedule on the screen. | | Ctrl-L Toggle log printer on/off. | | Ctrl-N Raise caller's access level while on-line. | | Ctrl-P Sysop initiated chat mode. | | Ctrl-R Reset time limit, gives caller more time. | | Ctrl-S Load new schedule from disk. | | Ctrl-T Terminate after current caller disconnects. | | Ctrl-X Abort the caller. | | Ctrl-Z Terminate chat mode. | | Alt -_ Decrement the time available to caller. | | Alt =+ Increment the time available to caller. | | | +--------------------------------------------------------------------+ Command Line Usage ------------------ When you start GT POWER, there are several command line switches that are available to you: name You may indicate a script file to be executed upon start-up of GT POWER. - 53 - /AI Causes GT POWER to issue the ATA command to the modem immediately and answer the call ringing in when GT POWER was started. This is useful if you have a frontend Fax program that can tell the difference between distinctive ring patterns (indicating DATA vs FAX call), and pass off data calls to a backend BBS program. /BV Force the BIOS Video setting to be equal TRUE. This overrides any BIOS Video setting in the GT POWER configuration file, and is intended to help users with speech synthesizers. /D You may indicate whether or not you wish to have GT POWER drop the DTR signal to the modem when GT POWER exits back to DOS. /C You may indicate whether you are connected via cable to the host computer. /F This gives GT POWER a "frontend" type interface. If you run a "frontend" program like Binkley, you can use this command line option with GT. The /F takes two sub-params, like this: /F:nnnnn:m Where: nnnnn ...... The DCE baud rate. m .......... The COM port number. For example: /F:2400:1 2400 baud on COM port 1. When the caller logs off the system (or drops carrier), GT will execute an exit to DOS with an ERRORLEVEL 254 or 255. You should insure that the batch file traps these ERRORLEVELs and returns control to the "frontend" program. See documentation that comes with the "frontend" program for further details. /K You may initiate the capture mode from the very start of the program. It is normally not wise to use the /K option, or capture mode, during host mode operations. Capture mode should never be left enabled when the sysop is not present. /M Suppress the "Check for personal mail?" function. /MN This would allow the "Check for personal mail?" function to continue, *but* would change the default prompt from [Y/n] - 54 - to [y/N]. /P You may enable logging to the system printer. /PE You may specify the pre-event wait interval, and whether you want the phone to go offhook during the wait. By default, GT POWER uses a 5 minute pre-event wait and leaves the phone onhook. An example of this parameter is: /PE03:OFF Which would set the pre-event wait to 3 minutes, and take the phone offhook during that interval. /PE07 This sets the pre-event wait to 7 minutes, but leaves the phone onhook, the default state. NOTE: the events mentioned above are those scheduled via the SCHEDULE.BBS file. Please see the explanation of the schedule elsewhere in this document. /S This option will allow the Sysop Page to be heard during quiet mode. Normally, nothing would be heard during quiet mode. /Tn This option will override the normal keyboard timeout value of 10 minutes. When this timeout occurs, GT will disconnect the caller. For example: /T5 Lower the timeout to 5 minutes. /T45 Raise the timeout to 45 minutes (my favorite). /1 You may configure the port addresses in use by your serial port. The actual port number to be configured, 1-8, is placed after the slash. The new base address of the indicated port is placed after the slash number with an intervening blank. The address must be given with a leading $ sign and be in hex notation, for example $3F1 would be a valid address. Refer to your hardware documentation for the correct address to use. GT uses standard addresses if you do not override with this option. GT POWER allows you to also configure the IRQ used. To specify the IRQ, simply follow the port address with a ':n', where the 'n' is the new IRQ to be used. The IRQ must be in the range '0' to '15'. Be sure that the IRQ is not being used by any other device! IRQs above 7 are only available on AT class machines (and above). /Rn This option applies to the GT POWER host mode. It specifies the ring number upon which GT POWER will answer incoming calls. For example /R3 would cause GT POWER to answer on - 55 - the 3rd ring. NOTE: that the host mode modem init string must contain S0=0 to allow this to work properly. /RBmm:nn This option applies to the GT POWER host mode. It specifies that GT should answer the modem after a "ring back". To enable this to work properly, the host mode modem init string must contain S0=0. Once installed properly this option makes the GT POWER host mode answer the phone on the 2nd or 3rd ring after a gap of between 'mm' and 'nn' seconds. If the gap between rings is less than 'mm' seconds or greater than 'nn' seconds, GT POWER will not answer the phone. This allows the use of an answering machine on the same phone line as the computer. The answering machine should be programmed to answer on a later ring, the 4th for example. The 'mm:nn' is optional, and will default to a 9 to 32 second gap. /W On LAN systems, this option will force GT POWER to perform "whereis" style lookup to find files for download. Normally on LANs, this rather time consuming search is not done. HOST.BAT File ------------- c: cd \gt set GTPATH=c:\gt GT1800 host.scr HOST.SCR File ------------- host +------------------------------------------------------------------+ | | | This listing of command line switches came from the main GT | | documentation file. Please refer to that document for sample | | usage of these switches. | | | +------------------------------------------------------------------+ Message Entry Editor -------------------- While entering a message, full screen editing is possible. The (E)dit command is available from the message entry sub-menu for those who prefer line editing. But starting with version 17.00, the caller can simply arrow to a mistake and correct it. The arrow keys are active for this purpose anytime during the message entry process, even when sitting at a "More?" or at the message entry sub-menu. The [Ins], [Del], [Home] and [End] keys are programmed to help navigate within a line, once positioned to the line via arrow keys: [Ins] .... Toggles between overwrite and push right modes. [Del] .... Deletes the character under the cursor. [Home] ... Moves cursor to the start of the line. - 56 - [End] .... Moves cursor to the end of the line. Some terminal packages may not be able to take advantage of this feature, as their special keys don't send the necessary escape sequences. The codes that GT sends for these keys are listed in an appendix to the GT1800.DOC file, under "ANSI Emulation - Transmitted Characters". NOTE: when navigating with the up and down arrows, GT POWER will skip over some lines. This is normal. GT POWER will not position the cursor to any line whose on screen image differs from the memory image that GT has of it. Such things as [Tab] characters and/or escape sequences embedded in the text can cause this problem. Setting Expiration Dates For Callers ------------------------------------ Concerning expiration dates (introduced with version 17.00), the Sysop can specify a warning interval. This is under Alt-I, the Miscellaneous Options, at the very bottom, #19. When a caller is within the warning interval of the expiration date, the caller will receive a warning that the expiration date is near and the file XWARNING.BBS will be displayed for them. When a caller's account has expired, GT POWER will notify him of that fact and will display the file EXPIRED.BBS. Also GT POWER will automatically lower the caller's access level to 'z' (lowercase z) -- actually the expired access level is configurable under Alt-I, the Miscellaneous Options, #20. It would be extremely wise if the Sysop has a CLASS entry for the expired access level in the GTPASSWD.BBS file. In the event that no CLASS entry is located, GT POWER will give the caller default access (which is almost never desirable). Also, the default message base and file area must have low enough access, otherwise the expired callers will see pathnames instead of descriptions atop your main menu. Expiration dates can be set via the SYSOP.EXE program. Using a LAN with GT ------------------- Running a multi-node BBS with GT POWER is easy. GT POWER will allow up to 32 nodes on a network to share common message bases and file areas. The first thing you must do is decide on a structure for your network BBS. One of the systems must be identified as the 'server' and will be referred to as "PID Zero" in the following description (however, you can easily have multiple servers). The LAN Path must point to a location on the server where all the caller records are stored, and where the "PID_FILE.BBS" is maintained automatically by GT POWER. Once you have decided on the structure of the network, you must install GT POWER on each node --- part of the installation process for GT POWER on a LAN node is setting the LAN parameters under the Alt-I configuration. Three pieces of information must be provided for each node: - 57 - PID Number ... Must be a unique number between 0 and 31. PID Name ..... The name by which this node is known to the network software, each node should have a unique PID Name. LAN Path ..... This must be the home directory for GT POWER on the network server. The LAN Path will contain the USER.CTL, USER.IDX and PID_FILE.BBS (at the least). These are created automatically. It is assumed that these files will be shared among the other systems on the LAN. The LAN Path must be specified to get file and message sharing fully enabled. Without a LAN Path, GT POWER will assume that a non-sharing environment is established (like a regular single node BBS). File sharing is implemented using the record locking facilities of DOS 3.1+ SHARE.EXE. It is recommended that you give this program adequate facilities to do its job. This command line seems to work well, but more resources may need to be allocated on busy systems: SHARE /F:7168 /L:70 It should also be noted, that some LANs require your CONFIG.SYS parameters to be changed. For example FCBS may need to be specified on LAN servers, for example: FCBS=24,12 And STACKS are very important under a LAN enviroment. If you are using DOS 3.2, I would recommend switching to DOS 3.3. With DOS 3.3, I would recommend: STACKS=62,512 DOS 3.2 has some bugs that do not make it a good choice for the DOS on the LAN server. It has also been observed that BUFFERS are critical on a LAN. Setting BUFFERS above 40 is a sure formula for a crash. I recommend: BUFFERS=35 If this response of the server becomes to slow, due to the low setting of BUFFERS, rather than raising the BUFFERS, I would suggest that you obtain a LAN compatible disk cache program. Ask your LAN manufacturer to recommend one to you. Finally, resist the temptation to overload the directory indicated as the LAN Path. For example, do not have the workstations use that directory for the log files. This would result in chaos. Each workstation must have its own GTPATH and LOG Path. Often times it is extremely handy to have a common pathname to reach - 58 - directories on the network. For this reason, the DOS SUBST command is very useful. With it, you can assign a common pathname to shared disk space on servers. For example: SUBST e: c:\ Would allow the server to use drive E: to make reference to 'c:\', as the workstations probably do. Thus E: becomes a common path to drive C: across the whole network. The CB Simulator is an online conferencing feature that is intended for use on multi-node LAN based BBS systems (a NetBIOS emulator is required). The CB Simulator checks for the presence of NetBIOS before allowing callers to get stuck in the CB mode. Locally, when the host mode enters the CB Simulator, split screen mode is automatically invoked. You should advise callers to manually invoke split screen mode on their terminals -- otherwise they will not see what they type (remember, split screen is half-duplex, the host mode will not echo the caller's keystrokes during CB Simulator operations). When using the CB Simulator, please make sure that you have allocated adequate NCBs. I have setup the following command for my NetBIOS startup: lanbios irq=5 address=2 ncbs=35 sessions=15 I am not sure if 35 NCBs are enough, but it seems to work fairly well on a 3 node LAN. On the server, if it is not dedicated, you should insure that the server can manage sufficient simultaneous tasks - my server was set for 2 simultaneous tasks, but I now have it setup for 5. This does consume memory, to be sure, each extra task requires considerable buffer space, but it is required for the CB Simulator to work alongside the other network tasks. The following files must be created by the sysop, if the CB Simulator, command (Z) from the main menu, is going to be used: CBWELCOM.BBS ...... Welcomes callers to the CB Simulator. CBHELP.BBS ........ Displayed in response to '@help' by the caller. CBPAGE.BBS ........ Displayed to a caller who receives an '@page' from another caller. CBGREET.BBS ....... Displayed for the caller after entering his handle. The file should be short and to the point, i.e. introduce the automatic '@who" list and tell the caller how to get help. The following commands are available to callers in the CB Simulator: @help ........ Display the CBHELP.BBS file. @ignore ...... Ignore further pages from other callers. - 59 - @page ........ Invite another caller, by handle, into CB mode. Ex: @page foxy Where 'foxy' is the handle of the caller you are paging. The handle is obtained from the '@who' list. @quit ........ Quit from CB Simulator to the main BBS menu. @tune ........ Tune the CB Simulator to channels 1 through 98. Ex: @tune 5 @who ......... Find out who else in on the system and which channel, if any, they are tuned to. @sys ......... For sysops only. Allows broadcast messages or messages directed to specific pids. Ex: @sys 5 Hello Mike! Ex: @sys The system is going down in 5 minutes! The first example sends a message to pid 5, where Mike is logged on. The second example sends a broadcast message, to all pids, telling them that the system is about to go down. Please note, that these pids do not have to be in the CB Simulator to get the message. These messages will interrupt most things, except file transfers. NOTE: A pid corresponds to a "position" or "workstation" on the LAN. The CB Simulator uses the NetBIOS Datagram feature to pass the messages between pids on the LAN. The Datagrams are sent to the group name 'GT_POWER_CB_SIM" (the 16th byte is 0x00). GT registers this group name whenever the host mode is started under NetBIOS in a LAN environment. The Datagrams used by GT are of a fixed format, as follows (for those of you that want to try their hand at NetBIOS programming): Byte Offset Description ----------- ----------- 0 'S' for special messages, such as '@sys'. 'C' for normal CB Simulator messages. 1-2 The channel number the message is addressed to. Channels 1-98 are the normal CB channels. Channel 99 is used for broadcast messages. 3-4 The originating pid number. This is used to keep a pid from processing messages that he originates. Datagrams are received by *all* LAN stations having registered the group name 'GT_POWER_CB_SIM'. 5-6 Transaction code: '00' - Normal message. All 'C' type datagrams. '01' - Who inquiry. 'S' type datagram. '02' - Who reply. " " " '03' - Page inquiry. " " " The transaction codes '01' and '02' are now obsolete, since the @who command uses the PID_FILE to get its information. Transaction code numbers up to '50' are reserved for future expansion. It is anticipated that '04' will be used for remote submission of DOS commands, and '05' will be used - 60 - to remotely shutdown all pids. 7 Unused. Reserved. 8 ','. Constant. 9-16 The sender's handle. If no handle, then the first name of the sender. 17 ','. Constant. 18-127 Text. In a page transaction, this is the handle of the caller being paged. In other transactions, this may be blank or contain a regular message. It is variable length, only the amount of data required is transmitted, up to the maximum of 128 bytes. - 61 - Host Mode LOG ------------- A few sections above, I suggested that logging be TRUE, while GT POWER is running in Host Mode. Here is why: during Host Mode operations, GT POWER will log all of the calls received, who called and the password used. A record will also be kept of who tranfered each file, how long it took and the efficiency of the transfer. I consider the gathering of this information to be critical to the operation of a GT POWER Host. If you have ample hard disk space, I would recommend that the logging option be set to the DETAIL setting. This will allow many things not previously logged to be tracked. It does take a lot of disk space very rapidly though. - 62 - File Tagging ------------ Files may be tagged, whenever the caller lists files, using the (F)ile describe, (W)hereis, (I)nquire or (L)ist commands. The option to tag a file for later download is offerred via two methods: (a) the arrow keys and the carriage return (or spacebar) can be used to navigate the screen and mark the desired files, or (b) if the caller's terminal program is unable to handle the full screen movement, a (F)ilename option is offerred to add files to the Tag List. The edit tag list command, [ET] from the main menu, can be used to add or subtract files from the tag list. The caller is shown the estimated download time for each file, as well as for the complete list. Naturally, if more than 1 file is tagged, the caller must use a protocol capable of batch transfers (otherwise, only the first file in the tag list will be transferred). When the caller starts the download, if he has too many files tagged, the [ET] command will automatically start, so that the caller has the opportunity to prune the list. If the caller begins to logoff the board while files remain untransferred on the tag list, a warning will be displayed and the caller will be asked if he wishes to continue to logoff. As explained above, if the caller logs off, while untransferred files remain on the tag list, a warning will be displayed. The warning message is stored in the TAGWARN.BBS file. - 63 - Binary Message Upload --------------------- It is possible for a caller to prepare a message offline and then to upload the message to a GT POWER message base, after he logs onto your board. The binary message upload facility has been implemented using the internal protocols. To use the feature, the caller begins entering a message, in the normal manner, but hits [Enter] on the first empty line, where the upload is to begin, then selects (U)pload from the message entry submenu. Non-batch protocols, such as Xmodem and Ymodem are recommended for this purpose. The host will not ask for a filename, since the message is stored in a temporary file until the upload is finished. After the upload has completed, the uploaded message is tested for text and/or graphics and rejected if found to be improper for inclusion in a message base. If the message is okay, it is appended to any text that was entered prior to the upload. The uploaded message can contain any sort of ANSI graphics and may contain line lengths up to 255 characters (including the CR/LF pair at the end of each line). This procedure is a great improvement over the standard ASCII transmit that has been used to upload messages, because the binary protocols include effective error correction procedures. ASCII transmit suffers from slowness and noisy lines. - 64 - QWK Mail -------- The QWK Mail format is in wide use by offline mail readers and for networking. GT POWER implements the QWK format as described in the document, "QWK Mail Packet File Layout" by Patrick Y. Lee, version 1.3, July 6, 1992. Some things have not been implemented (yet), while some features implemented are unique to GT POWER -- for example the way GT POWER implements its tagline via the GTQUOTES.BBS file. To setup the QWK Mail feature, several things must be done. a. A file named QWKSKEL.BBS must be created and placed into the GTPATH or LAN PATH directories. A sample is shown below: The P&M Test System Phoenix, AZ (602) 897-9557 , Sysop ,GTHOME , 0 GTWELCOM.BBS GTBULLET.BBS GTBYE.BBS This is a skeleton of the QWK CONTROL.DAT file. The items within <...> should be left _as is_, GT POWER will fill in the required information. The <...> are there as placeholders. Line 1 has the name of the BBS. Line 2 has the city-state of the BBS. Line 3 has the phone number of the BBS. All these things should be filled in, as appropriate. On line 5, there appears the BBSID after the ','. This should be 8 characters that identify your board -- the characters should be suitable for usage as a filename, so avoid unnecessary control or special characters. On the last 3 lines of this file, you will find the names of the "HELLO" file, the "NEWS" file and the "LOGOFF" file. The sysop may vary the names that appear here, as appropriate for his setup. QWK Mail cannot be processed, if this file is incorrectly setup or not setup at all. Here is a sample QWKSKEL file in use on my system here: The P&M Test System Phoenix, AZ (602) 897-9557 - 65 - , Sysop ,GTTSTSYS , 0 GTWELCOM.BBS GTBULLET.BBS GTBYE.BBS b. A file named GTQUOTES.BBS should be available in the GTPATH or the LAN PATH. GT POWER will use this file to pull up quotes for inclusion on the tagline in the reply messages. Here is an example: 0000000000~ The gods play games with men as balls. -Titus Maccius Platus He was a wise man who invented God. -Plato Plato is a bore. -Nietzsche The information on the first line should not normally be changed, it provides GT POWER with information on the previously used quotation so that new ones can be used in their turn. If you make a lot of changes to this file, you should probably zero out the line, as showed above. But since this line acts like a "placeholder", the format requires 10 zeros followed by a '~' character. There should be at least a couple of quotations in this file. Each quotation is limited to 64 characters, if you wish it to appear normally in the message. There may be any number of quotations in the file -- as you have disk available. GT POWER will use them sequentially, and return to the top of the file, after all have been used. c. The SYSOP.BBS has numerous new lines pertaining to the handling of QWK Mail. They are near the end of the file. For example, at line number 314 you will find the following line: "M=200,C=50/100,TM=2000,K=1000" This line specifies, in order: M= the maximum number of messages per conference to be put into the QWK packet. C= the maximum number of conferences with messages/total to be put into the QWK packet. The example above shows 50/100, which means up to 50 conferences with messages, up to a maximum of 100 conferences scanned. - 66 - TM= the maximum number of messages to put into the QWK packet. K= the maximum size of the MESSAGES.DAT file in kilobytes. This is prior to compression! In the example above, 1000k is allowed, which would probably compress down to a packet of around 500k... roughly speaking. The K, M and TM values on this line are not used directly, but are changed proportionately according to the caller's DCE baud rate. If the caller is at 9600 baud, then the values will be used as is. If the caller is below 9600 baud, the values will be lowered proportionately. For example, if the caller is at 2400 baud, the values will be divided by 4, at 1200 baud they will be divided by 8, etc. If the caller is above 9600 baud, these values will be raised proportionately. For example, if the caller is at 19200, the values will be doubled. At 14,400 the values will be multiplied by 1.5. Another important entry in SYSOP.BBS for QWK Mail is line number 310. This line contains the command used to compress the QWK packet. It comes setup for use with PKZIP, as that is the most common compression program used. But you may change this... depending on the capabilities of your callers. Be sure, if you change it, to use the "move" option... note the "öm" used with PKZIP. d. QWK Mail processing requires authorization, a caller must either be the sysop or have the 'QK' permission listed for the access level in use. In addition, any caller that uploads a REP packet must have 'UL' or the upload permission. e. QWK transactions now have their own Time Bank values. The TB= permission has been expanded to allow for two more values, as follows: uk uf dk df me mr mk qk rp dl wl TB=01/02/03/04/03/01/50/01/01:060/600 The new values are shown above under the 'qk' and 'rp' headings. They represent the number of credits to be deposited per 100 messages processed. The 'qk' value is for D/L'ed messages, and the 'rp' value is for U/L'ed messages. f. The 'QK' main menu command brings up a sub-menu for the caller. From the sub-menu, the caller can choose to download a QWK or upload a REP. Network commands may also be executed from the QK menu. If a QWK download is selected, all joined areas are scanned and processed, up to the limits described above. Following the packing, the download is started immediately... using the protocol of the callers choice. If the caller refuses to select a protocol, Zmodem is selected by default. - 67 - The a QWK sub-menu is called GTQWK.BBS (which may also have a .CBS version). It is like any other screen file. g. The sysop has a command to himself, 'RP', which unpacks a 'REP' packet that has been placed in the QWK directory. This is a sysop only command. The QWK directory is named GT$QWK00, the '00' is the pid number, so there may be up to 32 such directories. They are placed under the GTPATH directory. GT POWER places QWK packets here after they have been created. And rep packets are placed here for GT POWER to unpack. The QWK directory may be made available to callers via the GTDIR.BBS or GTUDIR.BBS, but that is optional and up to the local sysop. The QWK work directory can now be specified via an environment variable as follows: set GT$QWKnn=f:\foobar\qwktemp The environment variable is customized for each pid, i.e. 'nn' represents the pid number, or '00' for single node systems. The pathname given must be completely specified, and normally should be different on each pid, to avoid share violations. This should allow sysops to place the work directory onto a RAM disk, on the LAN server, or on the workstations... wherever the sysop finds most efficient. h. REP packets are uploaded by callers in the normal manner. Instead of asking for a description, GT POWER will automatically recognize the REP packet, move it to the QWK directory and unpack it, while the caller is watching. ZIP, ARJ and ARC are supported achivers for REP packets. i. The GT POWER QWK feature supports these three control commands: ADD, DROP and RESET. As far as I can tell, these commands operate virtually in a transparent mode with the offline readers I've tried. The commands are put as the topic of a message, addressed to "GTQWK", in the particular conference affected. ADD and DROP are pretty self-explanatory, RESET means to reset the "last read" pointer to zero. The RESET command can take a non-zero argument, i.e. RESET 200, in which case, GT POWER QWK would reset the message pointer to message #200. j. The GTMDIR.BBS must be updated to include the following information for any conference you wish to make available via QWK Mail. Not all conferences need be available! The new information: - 68 - a. Conference number. 0 to 65534, excluding conference numbers 8192 - 8447, which are unusable. b. Conference id. Up to 10 characters, no blanks. Blanks may be included by using the '_', underscore, character, which GT POWER will convert to a blank. For example: .z GENERAL General Board z ~C:\MAIL,10/Netmail Netmail area z ^C:\GOSPA,20/Our_Lady The Messages Of Our Lady z ^D:\IDEAS,30/Beta_Ideas Save Ideas From Beta Testers Notice that the conference number and id code follow the pathname with a comma between. And a '/' separates the number and the id. Any conference without a conference number will be omitted from the QWK packet processing. And naturally, the normal security is enforced, so conferences will be skipped automatically, if they wouldn't normally be seen during normal message processing. k. Packing QWK Mail takes a bunch of memory. So make sure that you have _at least_ 200k available when GT POWER is loaded. If not, then adjust the GTVBUF to make more available. REP processing uses even more memory than packing QWK packets --- so you risk loss of REP packets if insufficient memory is available. The more conferences you have, the more memory you need. GT POWER has no specific limitations on the number of conferences that can be processed, but it takes about 80 bytes of overhead for each conference you have in the QWK Mail setup. If you had 1,000 conferences in the setup, then that would require an extra 80k of memory! Over and above your normal memory require-ments. Which could be as high as 70k for REP processing! l. To send netmail messages from a QWK packet, simply put the following as the first line of the messages: ;nm:1/33 Naturally, the ';' would appear in column 1, and the appropriate net/node number should be used. 1/33 is my net/node number, used for demonstration purposes. m. The Net Status, NS, permission has been added. This permission works with a new BBS file, QWKTRASH.BBS. When GT POWER receives an REP packet or an imported QWK packet, the message sender's name will be matched against the names found in the QWKTRASH.BBS file. If a match is made, the message will be discarded. If the QWKTRASH.BBS file contains a line that reads: =STRICT - 69 - with the '=' beginning in the first position of the line, then all messages must be from the caller himself, unless the caller has Net Status permission. All names in the QWKTRASH.BBS file must begin in the first position of each line. To recap, any message, which has a sender's name match an entry in the QWKTRASH.BBS file, will be discarded. If the QWKTRASH.BBS file has a '=STRICT' entry, then only messages from the caller himself will be accepted, unless the caller has the Net Status permission. Finally, only 64 lines may be put into the QWKTRASH.BBS file, extra lines are simply ignored. n. QWK networking is also being introduced. Consider the case of a caller who downloads a QWK packet from your board, normally it is fed into an offline reader and only that single individual can read and reply to messages. But what if the caller runs a BBS... if the caller uses GT POWER, then the QWK bag can be imported into the message bases on that BBS, via the main menu (IM) command or the (I) command on the QWK menu. To use these commands, import or export, requires the IM or EX permission in the GTPASSWD.BBS file (the sysop gets these implicitly). To accomplish an import or export operation, requires that the appropriate .IMP file be available in the GTPATH directory. Here if the format: Filename: GTHOME.IMP -------------------- Import Local Conf# Conf# ------ ----- 0052 -> 1052 ;Trading Post 0057 -> 1200 ;Shareware The information starts in column 1, it is indented here for readability only. Only lines that begin with a number are processed, all others are considered commentary. The first column of numbers (may be 5 digits, if required) represents the incoming conference numbers, the column of numbers following the arrow, "->", are your local conference numbers. The incoming QWK packet may have many many conferences, but only the ones listed in the .IMP file will be imported (or exported). The filename you choose for the .IMP file is very important, because the main part of the name, before the '.', must match the BBSID of the incoming QWK packet. The incoming packet has the BBSID stored internally in the CONTROL.DAT file. When the replies are exported, GT POWER will ask for the BBSID - 70 - to use with the export operation, it must match-up with an .IMP filename, as GT POWER will only export the files listed in an .IMP file. Here is a graphic representation of what is going on: +--------------+ | Host BBS | BBSID = GTHOME +--------------+ / \ +-------------+ +-------------+ | D/L QWK PKT | | U/L REP PKT | +-------------+ +-------------+ | | | /|\ \|/ | =============|==========================|============ | | | | | | +-----------------+ +-----------------+ | Import QWK PKT | | Export REP PKT | +-----------------+ +-----------------+ \ / +--------------+ | Client BBS | +--------------+ GTHOME.IMP file required on the client system. Filename must match BBSID of QWK host. GTHOME, in this example. When importing or exporting qwk/rep packets, GT POWER will scan the related .IMP file and pickup any line beginning with 'TAG=' as the tagline to be added to the messages, instead of getting entries from the quotes file. The information following the '=' will be used, as is, on the tagline (of course, GT POWER will still prepend its signature)... which will include 'GTnet', instead of the plain 'GT' put on regular QWK messages. The information after the TAG= will be truncated to fit, if necessary. I think there is room for 63 characters... Please note, for those having trouble with .IMP file formatting, the conference numbers _must_ begin in column 1 of each line where they appear. Do not indent them with white space. I have seen several examples of folks using IMP files with the conference numbers indented up to 10 or 15 spaces... and this is incorrect format. o. The old message pointers for each QWK downloader are stored in a subdirectory called QWKSAVE under the GTPATH, or LAN Path on LAN systems. The QWKSAVE subdirectory will now save PTR files for each - 71 - caller, so that the message pointers can be quickly and easily recovered, should something happen to the previously downloaded QWK packet. This is done via the (E) command from the QWK menu. The pointer files are deleted automatically as soon as the caller uploads a REP packet, or whenever the next QWK packet is downloaded. p. Redirection of the PKZIP output, when creating a QWK packet, is optional via a GT POWER command line argument: /QR. Without the /QR, GT POWER will inhibit the redirection... with the /QR, the output of PKZIP will be redirected to the remote caller. Thus some systems that can't handle DOS redirection to the COM port are now allowed for. - 72 - The Shell to DOS ---------------- The DOS Shell allows remote callers to operate your computer remotely. When the "Shell to DOS" option of the main menu is selected, GT POWER will shell to the file GTDOOR.BAT. This file will set up for the remote shell by executing the proper CTTY command, then execute a secondary DOS shell and let the user into the system. He will have the console, so be cautious! The caller will be instructed to issue the "EXIT" command to return to GT. While the DOS Shell is active and the caller is out in the system, GT POWER will not be idle. GT POWER will act as a watchdog. If the caller should hang up while the DOS shell is active, GT POWER will force the system to reboot and will drop the DTR signal to the modem. If commands to start GT POWER are placed in the AUTOEXEC.BAT file and a script is used to start Host Mode, then GT POWER will automatically recycle. The script command to start Host Mode is simply HOST. In order to get the DOS Shell to work, the GT1800.EXE and GT1800.OVL file must be available in the GTPATH directory (and the GTPATH directory should probably be in the DOS PATH statement in the AUTOEXEC.BAT file). NOTE: For this process to work correctly, the COMMAND.COM file must reside in a directory pointed to by the PATH environment variable. In order for this to work on a normal drive C: hard disk, "C:\" should be added to the PATH variable. For example: PATH=c:\dos;c:\lotus;c:\gt;c:\ This will ensure that the proper COMMAND.COM file can be located for execution by the GTDOOR.BAT runstream. A problem with the DOS Shell has been reported when using DOS 2.xx. This is caused by the fact that DOS 2.xx does not support full pathnames when requesting the execution of a program. To work around this problem, if you have DOS 2.xx, you should place the GTDOOR.BAT file in some other directory besides the GT POWER home directory. If GT POWER finds GTDOOR.BAT in his home directory, then GT POWER will issue an EXEC function with full pathname, otherwise GT POWER will not specify any pathname and will rely on the DOS PATH command. The directory where GTDOOR.BAT is stored must be pointed to by the DOS PATH command in this case. - 73 - Using the Shell to DOS ---------------------- What can be done, once one is running DOS remote via a CTTY command? Well, one can't use any of the Fn keys or the other special keys on the IBM keyboard! One can't run any program that does direct hardware control of the screen or keyboard. All screen and keyboard input must be done through DOS. Well, then what can one do? One can run any DOS command; for example COPY, ERASE, DIR and others, including EDLIN, all work properly. In fact, any program that uses the standard DOS handles for input and output to the console will work. But one still won't have F1 - F10 or the other special keys. Well, that's not quite so...if the Host Mode computer is setup so that the ANSI.SYS device driver is loaded via the CONFIG.SYS file. Just put a line like this one into the CONFIG.SYS file: DEVICE=ANSI.SYS Naturally, ANSI.SYS must be located in the root directory of the boot disk. After that has been done, reboot the computer. ANSI.SYS will then be loaded. One can now remap the keyboard so that the special keys are mapped to Ctrl keys instead. This will enable programs to be run that use these keys; for example EDLIN uses the arrow keys as well as several function keys. How does one remap keys with ANSI.SYS? The following sequence must be issued for each key that needs to be re-mapped: ESC [ ##;##;##;...p The (...) indicate that the sequence may be repeated as needed, but each sequence only remaps one key. Once a file containing these mapping commands has been created, they can be sent to ANSI.SYS by TYPEing the file. The "##" in the sequence above indicate the ASCII codes for the keys to be mapped. For example, let's map F3 to the Ctrl-D key. The ASCII codes for F3 are 0,61 and the ASCII code for Ctrl-D is 4. (Note: the special keys have two codes - the first is always 0. These codes are really called extended ASCII codes.) Therefore, the proper ANSI.SYS command to remap F3 to Ctrl-D would be: ESC [ 4;0;61p Note: Blanks are included for readability only, the "p" must be lowercase, and the symbol ESC stands for the escape character, ASCII 27. - 74 - Usage of Color -------------- The GT POWER Host mode now includes color built-in to the various prompts and menus. These colors can be configured. The colors used are of two different sets. The first set is composed of the colors for the "Window foreground and background", and the "Phone directory high lite foreground and background". These colors should be subdued, since they are used for normal informational type displays. For important command line and menu displays, the program will use the colors designated for "Option high lite" and "Option low lite". The user can customize the sysop prompt with these colors, by including the color codes in the SYSOP.BBS file. Here is the code scheme: % ...... Used to kill the meaning of the next character. %% ...... Used to display the % character. $ ...... Shift the pallette to the "Window foreground / background" set. & ...... Shift the pallette to the "Option high/low lite" set (the default). [] ...... High lites whatever is between the [ and ]. ~ ...... Kills the color. Goes back to standard B&W image. For example: $ [SYSOP] John~ here. This would shift pallette to the "Window foreground/background" set, high lite the word "SYSOP" and kill the color after the name "John". Actually, this scheme was only intended to add color to the SYSOP.BBS file and other built-in menus and prompts, but some have already discovered that these colors can be added to the GTMDIR.BBS and GTDIR.BBS files, to add color and emphasis. Logon DOOR ---------- In the GT POWER home directory, it is possible to create a DOOR file, with a special name, that will be executed whenever a user logs onto your system. The file is named 'GTLOGON.BAT' and it is constructed in the same manner as a normal DOOR batch file (shown above). For example: GTLOGON.BAT ----------- %1 com%2 . . { Logon door executes here } %1 con The sequence of events goes like this after a user calls your system: 1. The GTWELCOM.BBS is displayed. - 75 - 2. Then any BULLETx.BBS is displayed. 3. Then the GTBMENU.BBS is displayed. 4. Then the GTLOGON.BAT is executed, if available. It is possible to have a special logon door for new callers. It is named 'GTNLOGON.BAT'. It will execute in place of the regular logon door. If you want both to execute, then you must chain from the new caller logon door to the regular logon door. GTNLOGON.BAT ------------ %1 com%2 . . { New user logon door executes here } . %1 con GTLOGON { Chain to regular logon } The 'BPLOGON.BAT' file will be executed as a logon door for callers that have the BP authorization, if the caller answers 'y' to the bypass prompt. Please note, if the BO authorization is given, the BPLOGON.BAT will not execute. In other words, the 'BPLOGON.BAT' replaces the 'GTLOGON.BAT', when it is skipped. Logoff Batch File ----------------- It is, also, possible to have a logoff batch file, 'GTLOGOFF.BAT', in the GT POWER home directory. This is not a DOOR, but simply a batch file that GT POWER will run, if it is available, whenever a user has disconnected from your system. It may contain any normal DOS command or other processing as required. It can be useful for sysops that want to backup their files if they are using a RAM disk for things like the log file. Please note, this is not a DOOR, CTTY is not redirected, and that the 'watchdog' is not enabled during the execution of this batch file. In addition, when you have a new caller to your system, GT POWER will run, if available, a batch file called 'GTNLOGOF.BAT'. Again, if you wish to run both GTNLOGOF.BAT and GTLOGOF.BAT, then you must chain to the reguler logoff door (if you have one). For example: GTNLOGOF.BAT ------------ . { No DOS redirection in logoff doors } . . { New user logoff door executes here } . GTLOGOFF { Chain to regular logoff, if overlaying } - 76 - APPENDIX -------- Here is a handy list of extended ASCII codes: Key Codes Key Codes --- ----- --- ----- F1 0,59 Right Arrow 0,77 F2 0,60 Left Arrow 0,75 F3 0,61 Up Arrow 0,72 F4 0,62 Down Arrow 0,80 F5 0,63 Home 0,71 F6 0,64 End 0,79 F7 0,65 PgUp 0,73 F8 0,66 PgDn 0,81 F9 0,67 Ins 0,82 F10 0,68 Del 0,83 Here are some sample ANSI sequences! Escape Codes Meaning to ANSI.SYS ------------ ------------------- ^[[4;0;61p F3 -> Ctrl-D ^[[5;0;62p F4 -> Ctrl-E ^[[19;0;77p Right Arrow -> Ctrl-S ^[[1;0;75p Left Arrow -> Ctrl-A With these kinds of mappings, almost any program should be able to run, if it uses the DOS handles for standard input and output. This should make the "Shell to DOS" quite useful. - 77 - Setup for Power-Loss Protected Operation ---------------------------------------- It is quite easy to prepare a set of files that will allow you to bring GT POWER up into what I should like to call a Power-Loss Protected Host Mode of operation. First, however, a few concepts: Whenever power is first applied to your system, (or reapplied following a blackout), the system will boot your DOS into memory and that, in turn, will look for two files; CONFIG.SYS and AUTOEXEC.BAT. Finding the CONFIG.SYS, the DOS will tailor your environment according to its contents (such as setting a new maximum number of files and file buffers). Finding the AUTOEXEC.BAT file will cause the system to immediately execute the set of DOS instructions found therein. GT POWER may be caused to run in an unattended Host mode either through GT POWER commands entered at the keyboard (Alt-dash) or via script. The GT POWER command to do so in a GT POWER script is simply: HOST. The user should have a TSR called DOORMAN loaded if the 'watchdog' function is required during a remote shell to DOS or a remote door activation. DOORMAN will reboot the computer in the event that a caller drops carrier while is the shell or door. Given the above, to set up the system for Power-Loss_Protected Host mode operation of GT POWER you must construct the following files: Your normal AUTOEXEC.BAT A copy of the normal AUTOEXEC.BAT called AUTOEXEC.ORG A new file called AUTOEXEC.GT A new file called HOST.BAT A GT script file called HOST.SCR The first four of these files belong in your root directory while the script file should be placed in the same directory as GT POWER resides (or in the Script path, if one is configured). When you want to enter the Power-Loss-Protected Host mode of GT POWER you need only type the single word HOST from any directory. The result will be the invoking of the HOST.BAT file which, in turn, copies the AUTOEXEC.GT file on top of your normal AUTOEXEC.BAT (so that if a reboot occurs it will get control), it then sets a default directory so that your private directories are not accessible to callers into the system, and then it invokes GT POWER specifying the name and location of the HOST.SCR script file you created. Thus, GT POWER will be given control and placed into Host mode. Upon normal termination, GT POWER exits to DOS which returns to the unexecuted portion of the HOST.BAT file and continues by doing a copy of AUTOEXEC.ORG (a copy of your original AUTOEXEC.BAT) on top of the current one and ending. In the event of a power failure while in Host mode, or loss of carrier while in the DOS Shell, the AUTOEXEC.BAT file that is in place will reset to the default (safe) drive and reinvoke the Host mode of GT POWER POWER. - 78 - Sample Files for Power-Loss Protected Operation ----------------------------------------------- AUTOEXEC.ORG: PATH=C:\DOS;C:\;C:\GT set GTPATH=C:\GT AUTOEXEC.GT: PATH=C:\DOS;C:\;C:\GT set GTPATH=C:\GT host HOST.BAT: c: cd \ copy autoexec.gt autoexec.bat cd \gt gt1800 host.scr cd \ copy autoexec.org autoexec.bat HOST.SCR: host - 79 - GT POWER under DESQview(tm) --------------------------- GT POWER runs quite well as a task under the DESQview(tm) multi- tasking system. There are a few things that should be kept in mind when doing so, however. GT POWER will auto-detect DESQview, and if you have told BIOS Video = FALSE, then GT POWER writes directly to the DESQview screen buffer (greatly speeding the screen update process). This may adversely affect DESQview aware programs run in a shell of GT POWER, since they may not properly tell DESQview which portions of the screen to update. If you run into this problem, tell GT POWER that BIOS Video = TRUE. This will cause screen updates to be slower, but the shell programs will work better. GT POWER will automatically give up unused time to DESQview, so that programs running in other windows are not severely impacted while GT POWER is idle. Also, you will need to provide enough memory for GT POWER to run while under DESQview(tm). If you do not have to consider KERMIT or ZMODEM then you can run GT POWER in a partition of as small as 360K of RAM. Experimentation has shown that in order to support ZMODEM and the other protocols mentioned above you will need to set the partition size to 460K. GT POWER, as it requires rapid access to the serial port you are using for communications must be the first task loaded in DESQview(tm). And, a performance option of DESQview(tm) (set by invoking the SETUP program) must be set showing the existence of High Speed Communications. Other options that need to be set include the fact that GT POWER is NOT SWAPPABLE to disk and time slices somewhere between 3 and 6 ticks in length per partition. Also, it would be best to tell DESQview not to virtualize the screen output while GT POWER is active. This will help in making screen output as rapid as possible. (tm) DESQview is the trademark of QuarterDeck Office Systems. - THE END - - 80 -