GHOST BBS 1.10 Copyright (C) 1992, 1993 Toby Simkin & Gregg Hommel - All Rights Reserved Additional Copyrights (C) 1992 Datastorm Technologies Inc. - All Rights Reserved including RING MONITOR 1.00 Copyright (C) 1992, 1993 Bob Blow - All Rights Reserved GHOST BBS is distributed as Freeware. This means that users are encouraged, subject to restrictions described in the License Agreement, to share copies of this program with friends, associates and bulletin boards. Why??? Did you ever really LOOK at the ProComm Plus for Windows Host mode, or have you just used it for long enough to let a friend get a file from you? If you've ever actually looked at it, you know why we wrote GHOST BBS!! It began as a simple modification of Host to eliminate some bugs, and try to make it look a touch better. In the end, the scripts that we were working on were merely a "ghost" of their former selves, and thus, the name. GHOST BBS has been tested by using the following applications to log in..... Telix (DOS) QModem (DOS) QModem Pro (DOS) ProComm Plus for DOS Windows Terminal CrossTalk for Windows ProComm Plus for Windows Windows Terminal experiences some slow down of screen draws, and can show "junk" on screen (if GHOST is set for ANSI screens), due to it's inability to correctly interpret the ANSI codes sent it by GHOST BBS. All other applications tested worked perfectly with GHOST BBS. ZIP file contents : CONVERT.WAX - a script to convert old PRM and USR files for GHOST use GHOST.WAX - the main script file GHOSTRM.WAX - the Ring Monitor script file GHSTUTIL.WAX - GHOST set up and configuration script GHOSTLOG.WAX - a compiled script for users to use when logging on to GHOST GHOSTLOG.WAS - the uncompiled version of above GHOST.NIL - an icon library for GHOSt to use in dialogs, etc. GHOST.TXT - a text version of the GHOST BBS documentation LICENSE.TXT - text version of the GHOST BBS license GHOST.WRI - documentation - Windows Write format LICENSE.WRI - GHOST BBS license in Windows Write format WHATSNEW.TXT - a version history of GHOST BBS GHOST.BYE - GHOST BBS "support" file samples GHOSTT.BYE GHOST.DNL GHOSTT.DNL GHOST.HLP GHOSTT.HLP GHOST.NUF GHOSTT.NUF GHOST.NWS GHOSTT.NWS Getting ready for GHOST BBS..... Step 1 - If you have previously run either the ProComm Plus for Windows Host mode, or an earlier version of GHOST BBS, and want to maintain your data files, they will have to be converted to the new GHOST format. Included with GHOST, is a script, CONVERT.WAX. It is this script which will "convert" your data from Host or a previous GHOST, to the current format. Simply place this script in your ASPECT directory (where your older PRM and USR files should be), and from within ProComm, run it. It will rename your old data files for safety, then convert the information in them to the new GHOST.USR format. When it is finished, it will tell you so, and then delete itself from your HDD. (GHOST tries to be polite ) Before beginning, however, there is something you should consider. GHOST has a fairly large number of "auxiliary" files. These files can "clutter" your ASPECT directory, and be harder to edit (for changes) when mixed among the files already in your ASPECT directory. For this reason, GHOST BBS allows you to place it's support files in a directory other than your ASPECT directory. If you would like to do this, decide on a directory now (I keep mine in F:\PROWIN\GHOST ), and if it doesn't exist, please create it. When you run CONVERT.WAX, it will ask you for the name of this directory (defaulting to you ASPECT directory) while it is setting up the new GHOST.USR file. Step 2 - Now we're ready for the actual installation of the GHOST files. Three files MUST be in your default script directory (ASPECT). These are : 1) GHOST.WAX 2) GHSTUTIL.WAX 3) GHOST.USR If you used the CONVERT script, GHOST.USR is already installed. If you didn't, GHOST will create it later, when GHOST itself is "installed". So, step 2 is to copy GHOST.WAX and GHSTUTIL.WAX to your default script directory (usually \PROWIN\ASPECT ) Step 3 - Now we come to the GHOST "auxiliary" files. These "auxiliary" files generally come in two "flavours"... these are indicated by their name. A file called "GHOST.xxx" will be an "ANSI" version of a support file. This will use high order ANSI characters for lines, and boxes, etc. A file called "GHOSTT.xxx" (with an extra T) will be a non-"ANSI" version, using low order characters for boxes etc. Furthermore, the extension of the file will indicate it's purpose in support of GHOST, as follows.... A) NUF - these are New User Files, containing information shown to a new user once they have completed logging on for the first time. B) NWS - these are "News" files, where you can post bulletins of information for your users. These files will be shown to new users automatically (if they exist), and to regular users if the file date on the NWS file is after their last log on date (as recorded in the USR file), i.e. if it is "new" for them. C) HLP - these are user "Help" files, which can be called from the menu to offer information on how to use GHOST BBS. (these should not need modification.) D) DNL - this is a file which gives the user a "directory" of files available for download. There are two ways for a user to "see" this information. If there is no DNL file, GHOST will show the user an "actual" directory listing of the files in the defined download directory. However, if there is a DNL file, the user will be shown this instead. In this way, it is possible to have "private" files in your download directory, since the user will only "see" a list of the files specified in the DNL file. E) BYE - Surprisingly enough, this is a file shown to the user when he logs off. F) NIL - This is an icon library which contains several icons used in various dialog boxes. There is one additional WAX in the ZIP, which should be copied to your support directory. That is the GHOSTRM.WAX, if you plan on using Ring Monitor (see below). If not, then this WAX is not needed at all. There are also files which will be created by GHOST BBS, as and when needed. These files include : A) GHOST.LOG - which is a log file of all activity which takes place while GHOST is active, i.e. who logs on, what they do while online, etc. B) GHOST.HDR and GHOST.MSG - these two files are the mail message database for GHOST. They will be created the first time that someone leaves mail on the system. In addition, two other files related to the mail functions can be created, HDR.BAK, and MSG.BAK, which are backup files created as backups when there are changes to the main mail files. For the initial installation of GHOST BBS, copy these files (basically, the balance of the files included in the ZIP, exclusive of the TXT and WRI files) to whatever directory you have decided to keep the GHOST auxiliary files in. Ring Monitor.... (with many thanks to Bob Blow for his contribution of the code, and apologies if we screw up the idea behind it) Imagine this type of scenario...... You have one telephone line for all of your many needs.... voice, data, and answering machine, say. You have to go back to the office tonight, but there are some files on your home system which you may need later. So you start GHOST BBS, and leave for the office. Later in the evening, you get the files you need then by calling your home system, and logging on to GHOST. However, unknown to you, your Great Aunt Minnie from California has just won 15 million dollars at Bingo. Since you are her favourite Great Nephew (or niece ), she decides to send you half of it, if she can reach you before her money grabbing kids get to her. She calls you, but, after two rings, she hears a horrible screech on the line, and so, hangs up. Five minutes later, her kids get there, and ...... Well, Bob Blow figured a way around this dilemna.... Ring Monitor. It is actually an amazingly simple concept, and soemthing we are happy to include with GHOST BBS. What Ring Monitor does is this.... when you start GHOST in Ring Monitor mode, GHOST doesn't actually initialize. Instead, Ring Monitor does. It lurks there, waiting for someone to call. In the above scenario, you are at the office, and decide that you do indeed need those files at home. You call your home number as if making a voice call, BUT hang up the line in the middle of hearing the second ring at home. Now you turn to ProComm, and after waiting around thirty seconds, call your home number as if GHOST was active. Guess what??? It IS active now, and waiting for your call. You get the files, hang up, and GHOST immediately goes back to Ring Monitor mode. Great Aunt Minnie calls, but since you are not home, the phone rings and rings and... After 4 rings, your answering machine picks up, takes the message from Great Aunt Minnie, and you're RICH!! How is it that the answering machine picked it up, instead of GHOST?? Well, if Ring Monitor detects more than two rings, it says to itself "That's not for me! Let the machine get it!" (much as you do when you're home ) However, when Ring Monitor detects two rings followed by silence (as when you called home and hung up), it says "That one's for me... someone wants GHOST!" and it initializes GHOST BBS. Suppose though that you call, ring twice, and hang up, then decide that you don't want those files. Does this mean that GHOST is once more monopolizing your system, and Great Aunt Minnie won't be able to get through?? Nope... if a call does not successfully connect to GHOST within 90 seconds, GHOST decides the first two-ring call was a mistake, and drops out, returning to Ring Monitor mode. One last thing..... suppose you do not want to use Ring Monitor. Are you going to be bothered by having to click on Bypass in the dialog everytime you start GHOST?? Nope.... if you don't want to be bothered by the dialog box, and don't want to use Ring Monitor, just don't put the Ring Monitor support file, GHOSTRM.WAX, in your support directory. If GHOST can't find the file GHOSTRM.WAX in the support directory, it says that Ring Monitor is not installed, and behaves that way. No dialogs, nothing. Installation and Set Up.... Once all of the ZIP files are copied to their appropriate directories, you are ready to "install" GHOST BBS for operation. The simplest way to do this is to "run" the script, GHSTUTIL.WAX, from within ProComm. The first thing that you will see when you run GHSTUTIL, is a BIG dialog box with quite a few entries to make. Let's go over them, one by one. 1) In the upper left corner, you will see the "infamous" GHOST icon. Please note, however, that, if you are starting GHOST without having run CONVERT.WAX first (i.e. this is your first installation of either Host or GHOST), this will be a blank, grey button if you have placed the GHOST auxiliary files in a directory other than the ASPECT dir. Once you have run GHSTUTIL and told GHOST where to find the auxiliary files, this "anomoly" will disappear, and you'll get to see "ghostie" If you click on this "button" (either the icon, or the blank, as appropriate), you will get a dialog giving you some information about GHOST, and us. 2) The first edit box will either contain your old Host (or GHOST) "Welcome Message", or a default sample to look at. This welcome message is displayed when a user logs on to GHOST, so put whatever you find appropriate here. 3) Next, is a box for you to put a "name" for your BBS. You can call it whatever you'd like of course, using your company name, or something cute, but it can't be longer than 54 characters. This "name" will appear in a "logo" box above the GHOST menu, as will the next two items, the PROMO line, and the TELEPHONE. 4) The PROMO box is for whatever you'd like to appear as the second line in the "logo" atop the menu. 5) The TELEPHONE box is for a number you'd like to appear in that "logo" box. It could be your voice number, or your fax number, or even the BBS number itself. It can be a combination of words and the phone number, as long as it doesn't exceed 54 characters. 6) GHOST needs to know where you want remote users to upload files. In the Upload Directory box, you can specify the name of a directory for GHOST to use when receiving files from your users. Do not finish with a backslash (i.e. C:\UPLOAD is fine, C:\UPLOAD\ is not) 7) GHOST also needs to know where you will store files available for remote user downloads. Specify the path for that directory here, under the same conditions as for the Upload Directory. 8) Guess what?? We finally got here... this box should contain the path name of whatever directory you have decided to keep your GHOST auxiliary files in. Again, the same rules as the other directories... no trailing backslash. 9) In the lower left of the dialog, you will find four "boxes" containing radio buttons. These boxes set various parameters for GHOST : A) New User Level - you can specify here, what level a new user will default to. There are three choices... Restricted, Limited and Normal. A Restricted user can read and leave messages, look at the file download list, and generally look around, but can't transfer files, either up or down, until you validate them, and change their security level. A Limited user can also look around and read mail, but he can also download files. He still isn't allowed to upload until validated by you, but this option allows for first call cownloads should you want them, but still maintains system security (since he can't upload). A Normal user has all of the rights and priveledges of all users of the system at first log on. B) System - you can run GHOST as either an Open or a Closed system. Open behaves much like a "regular" BBS, subject to the restriction set in the New User Level box. A Closed system will not accept new users remotely. They have to be set up by the Sysop in the USR file BEFORE their first log on. C) Connection - Use Modem if your users will log on remotely, via phone lines. If you are connecting directly from one system to another, via a null modem cable, select Direct. D) Goodbye Option - this tells GHOST what to do when a user logs off, recycle (set up to wait for another caller), or exit (shut down). Generally, recycle will be your choice, but if you are using a direct connection, exit is better. E) AutoBaud - some modems operate best in answer mode, with auobaud detect on. Others work fine with it off. Try leaving autobaud detect OFF. If your users connect at the proper speeds (i.e. high, if you have a high speed modem), then you are fine. If they connect at 2400 (like they do with a ZOOM 9600), then try setting autobaud detect ON. 10) The last items in the dialog are three push buttons. The top one will save your settings to the GHOST.USR file, the bottom will exit the configuration utility, and the middle button will access the GHOST mail manager when you have mail on line. The mail manager allows you to read the messages stored, mark any for deletion that you may wish, and then pack the message base to remove those marked for deletion, and clean up the message base. Once you have set up all of the various options, and paths to your liking, save your changes, and then exit GHSTUTIL.WAX. You are now ready to begin using GHOST BBS. Running GHOST BBS.... Although we strove to implement as much in the way of speed improvements that we could come up with, GHOST is still a Windows Aspect script application. As such, there are a couple of things that you can do to improve the speed of screen draws, etc. for the remote user. First of these is to disable any screen savers in use. When the screen saver activates, it will "steal" some of the processor time to service itself. This can slow down GHOST for a remote user. It is not a noticeable deterioration of speed, but it is there. Second, unless you are monitoring the BBS for some reason, it runs fastest as a minimized application. This means that the script is not slowed down by doing screen draws on your monitor along with the remote one. Again, it is not a remarkable speed degredation, but every little bit helps. What I do, when I am not doing something else in Windows, is turn of my screen saver, and run GHOST minimized, then turn off my monitor. This prevents any screen burn in, and allows GHOST to run at maximum speed for a remote user. Most who have logged on to our systems tell us that the difference in speed is now barely noticeable, however, if you wish to afford maximum speed to your remote user, this is one way to do so. When you first initialize GHOST BBS, it will reset your modem to autoanswer mode, and do some clean up of the terminal screen. The icon bar will disappear, as will the menus, to be replaced by a simplified menu structure suitable for the operation of GHOST. Then, a dialog box will appear, offering information about your callers, current system time and date, and the option to log on locally, either as a user or as sysop (oh yes, and our "infamous ghostie" icon button, giving you access to the "About" box ) To see how GHOST operates, lets look at a first time caller logging in to GHOST running as an Open system, with New User Level of 0, or Restricted Access. The first thing GHOST does of course, after the modems have done their handshaking, is to welcome the user, and tell him the current system time. Then, GHOST asks for his first name. Like many "real" BBS, GHOST will accept your first and last name entered separately, or as a single line in response to the first name prompt. Case is unimportant, since GHOST will convert it to upper case before checking the user records. Once the user enters his name, he will be asked to confirm it. Let's take a small aside here.... in many cases, GHOST will ask a remote user to respond Y or N to a question. You will note when you see these prompts, either the Y or the N will be capitalized but not both. The capitalized response is the default, which results from simply pressing the enter key. This can make for faster times on line, since if the default is acceptable, a simple will send it. Since we are assuming this to be a first time caller to the system, GHOST won't find his name in the User base, and thus, will ask if the user wishes to log on as a first "New User". Upon receiving a Y, GHOST will ask for a password. Since this is a new password, GHOST will then ask you to verify it. Both of these questions use a masked display to maintain security of passwords. Once a password has been entered and verified, GHOST will present the new user with a "questionaire" screen. Here, he is required to enter his address, voice telephone, and fax telephone (if he has one). A new user has three "tries" at completing this "questionaire" (except for the FAX number, which is optional). If he leaves any of the fields blank (except the FAX number) after all three tries, he will not be allowed to log on, and any data about him will not be saved. On my system, I won't validate a new user without an address, and voice phone number, and thus, for security, a new user is REQUIRED to fill in the address/phone questionaire. (A hint.... to validate a user, call directory information in his area code. Ask for his phone number at that address. DI will give it to you , or tell you there is no one by that name listed at that address. Of course, they sometimes will tell you that they can't give you the phone number, because it is unlisted or unpublished, b ut eve n THAT is a confirmation, indirectly, that the information you have is valid. Thus, you confirm the new user's address and phone at no cost to you, if it is long distance ) After the user "settings" are completed and S)aved, the new user will be shown the appropriate (ANSI or non) NUF (New User File), which should give him instructions on the purpose of the system, what he can and can't do until validated, etc. He can't interrupt the display of this file (the S to Stop portion of the display prompt is disabled), and will then be shown the NWS (News) file, in the same manner. Now, he is at the menu. As a "restricted" new user, he can read mail, leave mail, leave a comment to the sysop, view the file download list, and view or change his settings. He can't download or upload, and will be told that if he tries to do so. After he has looked around, he sends a G to log off, and will be asked by GHOST if he is sure (I've often hit the G by mistake when navigating a new system, so we gave the option to continue logging off, or return to GHOST.) With an affirmative response, GHOST will display the BYE file (if it exists), and disconnect from him. Then, GHOST will recycle back to the main dialog, and wait for the next caller. Of course, now, the last callers name, time on, and time off, will be displayed in the dialog for you. That's about it.... GHOST is fairly simple to navigate and easy to learn. Some Sysop notes..... Naming of the various files for GHOST BBS was kept as simple as possible, so that it would be easy to trace what the files are, and which application they are required for. When you have run GHOST BBS, you should find the following files, in the listed directories : In the default ProComm Plus for Windows Aspect sub-directory (generally, \PROWIN\ASPECT) : GHOST.WAX - the main script file GHSTUTIL.WAX - GHOST set up and configuration script GHOST.USR - the GHOST BBS User and configuration data file (Windows INI format) In whatever directory you have specified during configuration, as the default GHOST BBS "support" directory (on my system, \PROWIN\GHOST) : GHOSTRM.WAX - the Ring Monitor script file GHOST.NIL - an icon library for GHOST to use in dialogs, etc. GHOST.LOG - the GHOST BBS "activity" log, a text file (use Notepad or similar to view) GHOST.HDR - GHOST BBS mail files for the headers and messages. The BAK GHOST.MSG - files will appear only after you have "packed" the message HDR.BAK - base for the first time MSG.BAK GHOST.BYE - GHOST BBS "support" files for NEWS, download lists, etc. GHOSTT.BYE GHOST.DNL GHOSTT.DNL GHOST.HLP GHOSTT.HLP GHOST.NUF GHOSTT.NUF GHOST.NWS GHOSTT.NWS In addition, you should have the following files stored somewhere so that they can be supplied to your users (if you wish) to facilitate logging on to your GHOST BBS system : GHOSTLOG.WAX - a compiled script for users to use when logging on to GHOST GHOSTLOG.WAS - the uncompiled version of above Lastly, the file CONVERT.WAX should be in the ZIP file. If you used this file to convert your old HOST or GHOST data files, it will have deleted itself from the Aspect subdirectory upon completion of the data conversion. If you use GHOST BBS as an Open system, with restricted or limited access for new users, you will need to update their status once you have validated them. Also, a new user on a system set for "normal" first call access, will be recorded as a "Non-Validated User". Once validated, you will want to change this. To do this, simply open the file GHOST.USR (in the ASPECT directory) with a text editor. Search down the list of users until you find their name as a heading (e.g. [GREGG HOMMEL]). The third and fourth lines down from that should read : security=0 user_stat=* New User * or security=1 user_stat=* Limited User * or security=2 user_stat=* Non-Validated User * Simply change these to read : security=2 user_stat=* Validated User * (or whatever term you care to use) and then save the file. GHOST BBS checks the last_on date from the USR file for each user, against the file date for the NWS file, each time he logs on. If the users last_on is later than the file date for the NWS file, GHOST assumes that he has seen it, and doesn't show it to him. If, on the other hand, the last_on is earlier than the date of the NWS file, GHOST assumes that he hasn't seen it, and shows it when he logs on. Of course, the NEWS bulletin is always available to any user from the menu. Let's take a quick look at the contents of the GHOST.USR file.... There are two basic sections... the [Start Up] section, and those for each user. The [Start Up] section follows this basic format... [Start Up] welcome_msg= bbs_msg= promo_msg= tel_msg= upload_path= dnload_path= ghost_path= new_usr_level= connect_type= system_type= goodbye_option= newsfile= newsfilt= The only entries here not too obvious are the last two. These record the file dates for the two flavours of NWS files, whenever GHOST BBS is initialized. It is this information which is checked against the user's last_on to determine whether or not he sees the NEWS file. As far as a user section is concerned, it should follow this format... [TOBY SIMKIN] first_log= password= security= user_stat= graphics= street= city= zip= phone= fax= last_on= time_on= time_off= Again, most of this should be very straight forward, and not generally require any editing. Some of these settings are "in advance" of planned future enhancements, so don't worry if it looks like they aren't currently used by GHOST (they probably aren't ) Because, as sysop, we knew that you would need to, on occassion, edit the USR file, we tried to keep all of the settings as clear as possible, to make it easier and safer to edit the GHOST.USR file. One thing.... remember that there are SIX security levels... 0 (restricted user), 1 (limited user), 2 (normal user), 3 and 4 are the same, at present, which is a user who sees the actual file list in the download directory, rather than the contents of the DNL file, and 5 is a Sysop or SuperUser. Please be careful with security=5. This will result in that user being shown the sysop menu, with the matching ability to change directories, uploading and downloading to/from anywhere on your system, and also the ability to abort GHOST. Keep that level for yourself, or those you REALLY trust! Finally...... GHOST BBS represents an awful lot of hard work, and time. We think that it was time well spent, and work that paid off in a reasonably good, small BBS to replace Host mode. If you agree, feel free to spread it around, to friends, on your favourite BBS, or whatever. All we ask is that you keep the original ZIP intact, and that you don't charge anyone for it. Thanks..... Toby Simkin Gregg Hommel Bob Blow P.S. We have included, in the ZIP file, both the source and a compiled script for "GHOSTLOG", which is a small script designed for you to give to your users so that they can automate the process of logging on to GHOST BBS. It does nothing more than log on, but it will at least automate that .