GHOST BBS 1.50 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. ----------------------------------------------------------------------- What is GHOST BBS ??? 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. What it ended up as is a mini-BBS for a "casual" user. It, of course, lacks some of the pizazz and oomph of a full-fledged BBS, but for a small system (and for FREE! ), it isn't bad! 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 : - README.1ST some general information - README.NEW information for ne users of GHOST BBS - README.UPD quick install information for updaters - HISTORY.TXT a version summary for GHOST BBS - GHOST.WRI the GHOST manual in WRITE format - LICENSE.WRI GHOST user license in WRITE format - GHOST.TXT the GHOST manual in text format - LICENSE.TXT GHOST user license in text format - CONVERT.WAX utility to convert Host data files to GHOST format - GHOST.WAX compiled launcher script for GHOST BBS - GHOSTRUN.WAX compiled main script for GHOST - GHOSTRM.WAX compiled RingMonitor code - GHSTUTIL.WAX compiled utility script for GHOST set up - GHOSTLOG.ZIP contains GHOSTLOG.WAS and GHOSTLOG.WAX - log on script for remote users - GHOST.NIL an icon library file for use with GHOST - BULLET.MNU GHOST support files - BULLETT.MNU - GHOST1.NWS - GHOST2.NWS - GHOST3.NWS - GHOSTT1.NWS - GHOSTT2.NWS - GHOSTT3.NWS - GHOST.NUF - GHOSTT.NUF - GHOST.HLP - GHOSTT.HLP - GHOST.BYE - GHOSTT.BYE - GHOST.DNL - GHOSTT.DNL - USRSORT.BAT - USRSORT.PIF Getting ready for GHOST BBS..... Step 1 - If you have previously run the ProComm Plus for Windows Host mode, 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 format 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) or clean up 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 the 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 use CONVERT, GHOST will create the USR file 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 the GHOST Bulletin 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. GHOST 2.00 supports multiple bulletin files (up to 99), where the names are GHOSTxx.NWS and GHOSTTxx.NWS (xx is replaced by a number from 1 to 99). C) MNU - along with support for multiple bulletin files, GHOST needed some way for the user to choose which bulletin he wants to see when he uses the B)ulletin menu item. GHOST uses two files, BULLET.MNU and BULLETT.MNU (samples included) for this purpose. Since GHOST has now way to know the content of the bulletin files, it is left up to the sysop to edit or create his own MNU files to list available bulletins for a user. D) 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 normally need modification, but can be customized if you wish.) E) 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. Level 3 and above users do not see the DNL even if it exists. They always see an "actual" list of the files on the system. F) BYE - Surprisingly enough, this is a file shown to the user when he logs off. G) NIL - This is an icon library which contains several icons used in various dialog boxes. There is one additional WAX in the ZIP, GHOSTRM.WAX, which should be copied to your support directory. There are also files which will be created by GHOST BBS, as and when needed. These files include : A) GHOST.LOG - 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 & 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 of initialization, 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. Simple.... when you start GHOST, the launcher brings up a dialog box. Here, you will find a checkbox to enable RingMonitor. If you don't want to use it, simply uncheck the box, and save it as a permanent change (more on doing that later). You can still use it temporarily, or change your mind and make it permanent at any time later. ----------------------------------------------------------------------- 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. Although it may appear intimidating (wait 'til you see the one in GHOST itself! ), it really isn't that difficult. Let's go over the entries, 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 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 five "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 may be 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. When you do, one more small dialog will pop up, asking you what maximum number of files you wish to allow for Zmodem batch transfers. The default is 10, but you may set for any number from 1 to whatever. When the number is set as you wish, click on OK, 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. The actual operation of GHOST is simple (I hope ). When GHOST is first run, a nice (but rather full) dialog box will appear on screen. The first thing to remember about this dialog is that there is a 10 second timer running for it. If nothing is done in the dialog (let's say it was started by having GHOST in your StartUp group and you aren't there) during that 10 seconds, GHOST will accept the default settings shown, and start. If you want to stop that timer, however, you must select one of the active controls in the dialog box to do so. To make this easier, take a look in the bottom right hand side. You'll notice there, a little button with nothing but an underlined "T" on it. The "T" stands for Timer and is my fail safe button. Simply click on that button to stop the timer. Just like the earlier notes on GHSTUTIL, let's go through the various dialog controls one at a time.... The dialog is titled "GHOST Set Up", bacuse that is what it is for. It allows us to set up parameters for the operation of GHOST BBS, and for that matter, a secondary script which we want GHOST to run. Starting on the left hand side of the dialog box, in the first "group" box, labelled "Main GHOST Run", the first control is a set of two radio buttons (No and Yes), labelled "24 hr loop ?". When Yes is selected, GHOST will perform in an "endless" 24 hour loop of it's instructions as set here. This setting is great for say, a weekend when you will be away, or similar. Also, if you don't want to be bothered worrying about GHOST, set up the times, etc. for it (as below), set it for a 24 hour loop, and add it to your StartUp group. Everytime you start Windows, GHOST will start up, and go into the loop. After the radio buttons, the first edit box is labelled "Start time :". If you enter a time here (24 hour format, i.e. 10 PM is 22:00 ), by default, GHOST will start at this time when you run it (i.e. it will delay starting until that time of day). Whether the "Start time" is set or not, the next edit box, labellled "Stop time :", can be set also. If there is a time set here, GHOST will stop it's main run at that time when run. Using these two boxes, you can set GHOST to keep a daily schedule for you. I tell everyone that my system is "up" from 11:30 PM to 6 AM, Eastern time each night. With GHOST 2.00, this is easy... set the "Start time" as 23:30, the "Stop time" as 06:00 in the first set of edit boxes. If I then place GHOST in my StartUp group, it starts operation, but without actually initializing GHOST. It reserves this until 11:30 PM, when it initializes GHOST and the modem automatically. (I also have GHOST set to run minimized, which we will discuss in a minute ) If this is combined with the "24 hour loop" option, it will maintain this routine for you, even when you are away, by looping through the procedures each 24 hours (the 24 hour loop option only considers the "Main GHOST Run" settings....) Now, the settings get a touch trickier, but not greatly so. The next item in the "Main GHOST Run" group are two more radio buttons, again a No and a Yes, this time labelled "Run Script ?". What setting this to Yes does is fairly simple... when GHOST shuts down from it's first run (either through a "Stop time" setting, or if the sysop manually shuts down GHOST from the "Waiting for a call" dialog), it runs a secondary script, waits for it to finish, and then returns to GHOST control of things. If "Run Script ?" is set to Yes, there are three additional edit boxes which need to be looked at.... "Script :", which is where you inform GHOST of the name of the script to run, "Integer :", which is an integer value which GHOST can pass to the secondary script for it to act upon, and "String :", which is similar to the "Integer :" setting, but for a text string. To see how this might function, let's use PCB Freedom 1.50 as an example here. GHOST can run any script here (such as Jerry Sully's MailRun), but since I have specifically coded Freedom to take advantage of this feature, it is a nice example to use. (Besides, you all are using my other script application, PCB Freedom 1.50 anyway, aren't you?? ) OK, so we have selected the "Run Script ?" Yes radio button. Now, in the edit box labelled "Script :" we enter "FREEDOM". You might also enter "FREEDOM.WAX", or indeed, the full path and filename, but if Freedom is in your Aspect sub-directory, simply entering the word "FREEDOM" will take care of letting GHOST know which script to run. PCB Freedom 1.50 does not accept or act upon a string passed to it from GHOST, so we can leave the "String :" edit box empty. However, Freedom DOES accept and act upon an integer passed to it. In this case, we have three options for the "Integer :" edit box.... 1) We can leave the edit box empty, in which case, Freedom will run "normally", i.e. it will start up, go into delayed dialing mode if it finds a dial time, or open the main Freedom window if there is no dial time. Doing your mail runs will be the normal task under Freedom. 2) We can put a "1" in the edit box. If PCB Freedom 1.50 is passed an integer value of 1 from GHOST, it will ignore it's "defaults" and immediately begin a mail run on the list of systems set up to be called, just as if you had started it yourself by clicking in the Dial icon in Freedom 1.50. But that's not all.... once the mail run on the listed systems is complete, Freedom won't simply return to it's main window as it normally does after a mail run. Rather, it will immediately shut itself down, and return control of the modem to GHOST. 3) We can put a "2" in the edit box. If PCB Freedom 1.50 is passed an integer value of 2 from GHOST, it will act very similarly to when it is passed a 1 from GHOST. There is one big difference, though... if the integer passed to Freedom 1.50 is a 2, the "standard" dialog boxes which normally appear when Freedom is running (the dialqueue and "System Options" dialogs) will not appear. Since, in most cases, it is assumed that you are not around when GHOST and Freedom are doing this, having the Freedom dialog boxes appear on the screen is not normally a problem. However, there are two cases when having these dialogs "pop up" can be problematic. One, of course, is if you happen to be working on something else when GHOST switches over to PCB Freedom and calls you dial list. The other case is a little more obscure. During "normal" operation, and this is what happens when Freedom is run with a passed integer of 1, the "System Options" dialog box is timer controlled, remaining on screen for 10 seconds, and if no activity in the dialog occurs within that time, it clears, and uses the defaults. Normally, this works just fine. However, some beta sites have reported that on some WildCat systems, if the "System Options" dialog remains on screen for 10 seconds, the WildCat "Main Menu" prompt can be missed (sometimes), leaving the mail run out of whack. If this happens to you (try logging on to a WildCat system via PCB Freedom 1.50, and letting the "System Options" dialog time out and disappear on it's own. If the script continues to run normally (mine does when logged on to the Mustang HQ BBS), then you needn't worry about this "quirk". If, on the other hand, it hangs, and stays at the "Main Menu" prompt without sending a response, your system is one of the "quirky" ones), then passing the integer value of 2 will solve the problem, since the "System Options" dialog won't appear if that integer is passed to Freedom from GHOST. So, basically, that is how the secondary script functions of GHOST operate. If the secondary script is written to take advantage of the parameters passed by GHOST (as PCB Freedom 1.50 is), then you can also control the operation of the secondary script based upon those passed parameters. IF you have set the "Run Script ?" radio button to Yes, you may have noticed that when you did so, a second "group" of dialog items became active, below the "Main GHOST Run" group. This group is labelled "Secondary GHOST", and is used if you want to restart GHOST BBS after running the secondary script. The controls here are a set of radio buttons, and two edit boxes. The radio buttons (labelled "2nd GHOST ?") allow you to tell GHOST either to run (Yes) or not to run (No) a second "session" of GHOST after the secondary script completes. The "Start time :" and "Stop time :" edit boxes function as in the "Main GHOST Run" group. Now we switch to the right hand side of the GHOST launching dialog. Trust me.... this is much simpler than it looks . The top, larger group box is labelled "Run Time Options", and basically, that is what it contains. There are three check boxes here, one each for... 1) enabling the use of Bob Blow's RingMonitoir code ("Enable Ring Monitor") 2) telling GHOST that you want it (and any secondary script) to run in a minimized state on the desktop ("Run Minimized") 3) setting how the GHOST "launcher" behaves when it has finished running according to the parameters set in this dialog ("Exit ProComm when done") I think these are fairly self-explanatory, so..... Below this, there are two "related" sets of push buttons, one labelled as "Permanent", the other as "Temporary". These push buttons allow you to make either permanent (saved to the GHOST.USR file) or temporary (used only for this "run" of the GHOST launcher) changes to the settings shown in the controls on the left hand side. In both boxes, there is only one active button, labelled "Change" when GHOST is started. If you select either of these buttons, the two buttons below it will be activated. The "Permanent" section is just what it appears to be... for making permanent changes to the settings for GHOST BBS. Operation is simple. Once you have pressed the "Change" button, the "Save" and "Cancel" buttons become active. Make any changes you want, and press "Save" to store them permanently . "Cancel" will leave the routine without saving any changes which you made to the settings for GHOST BBS The "Temporary" section is also what it appears to be... for making temporary (this session only) changes to the settings for GHOST BBS. Once you press the "Change" button here, the other two buttons, "Run" and "Cancel" are activated. "Cancel" exits the routine, but "Run" will immediately run GHOST BBS with whatever settings are currently listed in the dialog box. So, if you press "Change" in the "Temporary" group, then change the start time for GHOST, then press the "Run" button in the "Temporary" group, GHOST BBS will run using the new start time, until it ends (cancelled by the user, of by finishing the rest of the settings). Once it does, all of the settings revert back to their original, saved defaults. Now we come to the last group, in the lower right side of the dialog (I'll bet you were beginning to think that we'd NEVER get here! ) This is labelled "Session", and is the group that you will most commonly be using, I should imagine. The "Default" button here will run GHOST BBS using the preset default settings listed in the dialog box. In other words, this is actually the button which you will use to start GHOST most of the time (if the dialog box timer runs out <10 seconds>, it is the equivalent to pressing this button). Suppose though, that you want to run GHOST for a few minutes to log on as SYSOP, read and reply to your mail, mark some other mail for deletion, and/or pack the message base. Or perhaps a friend calls you voice, and would like to log on to GHOST for a few minutes right now (because he is going out tonight and can't log on when GHOST is normally up), and get a copy of that killer app that you have just finished. These sort of things are what the "Quick" button is for... it will run GHOST BBS without any regard for any of the settings in the dialog box, i.e. just the way GHOST 1.10 ran. It will immediately initialize GHOST, and will leave it running until such time as you, the SYSOP shut it down from the main dialog box. When it is shut down, it will not run a secondary scripot, or do anything but shut down. "Exit" is fairly self-explanatory... it exits the GHOST BBS "launcher" script, and the "T" button (timer stop button) we have already discussed. ALL settings in this dialog box are optional. If you leave them all blank, and simply click on the "default" button to start GHOST BBS operations, it will behave just like GHOST 1.10, or the same as if you had settings, and pressed the "Quick" button. GHOST BBS Operations.... Prior to actually "launching" the main GHOST BBS (i.e. initializing the modem for BBS operations), GHOST will do several things with your system. First, it will check settings for parity, etc., and for the terminal in use, and, if necessary, set your system for N81 operation with an ANSI BBS terminal. Of course, GHOST remembers your original settings and will restore them when it is done operations. GHOST BBS will then set 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 saved, 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) files, in the same manner, to bring him up to date with all system information. 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 (we hope ) Some notes for Sysops..... 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 compiled launcher script GHSTUTIL.WAX - GHOST set up and configuration script GHOST.USR - the GHOST BBS User and configuration data file (Windows INI format file) In whatever directory you have specified during configuration, as the default GHOST BBS "support" directory (on my system, \PROWIN\GHOST) : GHOSTRUN.WAX - the compiled main GHOST BBS script GHOSTRM.WAX - the compiled Ring Monitor code 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 GHOST.MSG - BAK files will appear only after you have "packed" the HDR.BAK - message 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 GHOSTxx.NWS GHOSTTxx.NWS BULLET.MNU BULLETT.MNU GHOSTUSR.LST - if created originally by the sysop, this is a list of all users of the system. If GHOST finds it, it will add to it, otherwise, it won't create it (see notes) USRSORT.BAT - these files can be used to sort the user list as needed USRSORT.PIF In addition, you should have the following file stored in your download directory for GHOST, so that it can be supplied to your users (if you wish) to facilitate logging on to your GHOST BBS system : GHOSTLOG.ZIP - a ZIP file containing GHOSTLOG.WAS and GHOSTLOG.WAX, to automate logging on to a GHOST BBS system. 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 might 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 any of the NWS files, 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 any of the NWS files, GHOST assumes that he hasn't seen it, and shows that one to him when he logs on. Of course, the Bulletins are always available to any user from the menu. Let's take a quick look at the contents of the GHOST.USR file.... There are three basic sections... the [Start Up] section, the [Run Data] 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= autobaud= bat_max = ClearDisplay= no_case= The only entries here not too obvious are the last two. The very last one is an internal entry, but the ClearDisplay= line might prove useful. When files are "displayed" by GHOST (e.g. the bulletins at log on, or help files from the menu), 23 lines of text is displayed on the screen (both remote and local), followed by a "- More -" type prompt. If the user presses a key (other than S for stop), those 23 lines scroll upwards as another 23 lines are displayed. This can be quite slow, depending upon how many "screens" of 23 lines there are in a file. As an alternative to this, GHOST can display larger files (such as the bulletin or help files) with a screen clear command in between "pages". This can improve the speed of display of bulletins and the like a fair bit. To accomplish this, you must tell GHOST what file extensions it should do this with, and that is the purpose of the ClearDisplay= line. On my system, I have chosen to clear the screen between "pages" for bulletins, the new user files, and the help files. This makes that line in my GHOST.USR : ClearDisplay=NWS NUF HLP The list of file extensions above (see, I told you these manuals would prove useful ) can be used to determine which extensions you might want to put here. This item is only modifiable by manually eidting the GHOST.USR file. The [Run Data] section follows a basic format of.... [Run Data] loop24= start_one= stop_one= run_scr= reset_ghost= ring_monitor= quit_pw= run_min= scr_name= pass_int= pass_str= start_two= stop_two= None of these settings should need be modified manually (they are all set via the GHOST "launcher"), however, if you do, for some reason, need to change one maually, I think that they are all fairly self-explanatory. As far as a user section is concerned, it should follow this format... [TOBY SIMKIN] first_log= password= security= user_stat= pvt_dir= (optional) graphics= street= city= zip= phone= fax= last_on= time_on= time_off= alias= (VERY optional) Again, most of this should be very straight forward, and not generally require any editing, with the exception of the two items listed as optional. 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 (a normal user with private directory access), 4 (slightly lower in security than a SYSOP), and 5 is a Sysop or SuperUser. Please be careful with security=4 or 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, for a level 5 user, the ability to abort GHOST. Keep these last two levels 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 GHOST200.ZIP file, as GHOSTLOG.ZIP, 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 .