                   What's new in PCBoard version 15.0
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


   The following is a BRIEF summary of the new features found in PCBoard v15.0
   ---------------------------------------------------------------------------
 - For the ultimate in configurability, v15.0 adds a built-in programming
   language called PPL, or PCBoard Programming Language.  Any time PCBoard
   displays something to the caller, asks the caller for input, or executes a
   command that the caller issued, the a PPL program can kick in and perform
   just about any kind of processing you might imagine.  Script Questionnaires
   can be rewritten to add processing, and more.

 - A new, optional, menuing system lets you create submenus for all of your
   menus (the main menu, doors, bulletins, scripts, even for new features that
   you create yourself using PPL).  This is built right into PCBoard and,
   depending on how it is set up, can be user-selected (i.e. novices might be
   presented with submenus while experts see only command prompts).

 - PCBoard commands can be translated, changed, or supplemented quickly and
   without the use of DOOR applications.  New (or changed) commands can stuff
   the keyboard with replacement commands, execute PPL programs or branch to a
   submenu system.

 - In addition to the multi-lingual capabilities of past releases, v15.0 adds
   full internationalization support.  This includes:  the ability to display
   dates and values in their proper formats, proper capitalization of words and
   names, proper font display (locally) of high ascii characters, translation
   of internal commands, etc.

 - RIPscrip Graphics support.  Add a GUI interface to your BBS by setting up
   welcome files, menu files, prompts, etc, with RIPscrip codes in them.  Now
   you can get graphics over the phone line and even make PCBoard selections
   with a mouse if the menus used are created to support it.

 - A new, fully interactive, inter-node chat capability combining the best
   features the sysop-chat and old-style node chat with added capabilities such
   as 255 different channels, chat handles, private and public chats, and more.

 - Message editing changes including:  the ability to enter TO and SUBJECT
   lines that are longer than 25 characters, the ability to enter messages up
   to 400 lines in length, the ability to attach a file to a message, request a
   return receipt, enter a carbon list to send a single message to multiple
   users, enter routing info, set a packout date, upload message text using
   any protocol, upload .REP packets, and more.

 - Message display changes including:  a new header display format that is
   switchable between a long (6-line) format and a shorter (4-line) format,
   long TO, FROM and SUBJECT lines, non-scrolling message headers, sysop-
   selectable colors for message headers.

 - Message reading changes including: the ability to read new mail immediately
   after login, the ability to force specific security levels to read new mail
   upon login, create .QWK packets, additional reading commands to read mail
   that is TO or FROM a specific user, read mail that is NEW after a specified
   date, read mail in conferences that have personal mail waiting, capture
   and download a single message, faster message scans and reading, flag or
   view file attachments or any other file while reading messages, and more.

 - Further support for CD-ROM drives, including the ability to copy files down
   to a local staging area prior to starting the file transfer.  Also, files
   can be processed prior to starting the file transfer.

 - Integration of FILE_ID.DIZ detection allowing files to be uploaded with
   embedded descriptions while avoiding asking the caller for a description.

 - Conference changes include:  INTRO screens to describe the conference,
   passwords for joining, ALLFILES.LST for scanning across all conferences
   before allowing uploads, conference-specific commands, auto-register flags,
   and more.

 - Additional settings, available on a per-conference basis, include: Force
   echo mail, allow Internet (long) TO: names, make conference read-only,
   disallow private messages, security level to enter a message, and more.

 - Uploading now scans for matching archive files regardless of extension prior
   to allowing a file to be uploaded.

 - Adding new conferences is easier by cloning and existing conference.  Also,
   the message base can be created automatically.

 - Support for modems that provide Caller-ID and FAX capabilities.

 - New, on-the-fly, File and Byte Limits as well as File and Byte Ratios.

 - Aliases can now be used in specific conferences and by callers with
   specific security levels.  The ability to change the alias, once selected,
   can be disabled.

 - Multiple simultaneous logins, for a users of a given security, are now
   possible.  This could be used for a demo account, etc.

 - Increased user friendliness by interpretting previously invalid (but
   commonly used) commands.

 - Built-in support for multiple event handling.  These include multiple
   events per day, node-specific events, events that should only be run on a
   specific date, or events that should be run on specified days of the week.

 - New, ONLINE, packing of the USERS file.  It is no longer necessary to keep
   the BBS down while packing your users file.

 - Additional information can now recorded and tracked in the user records
   such as:  full address, password monitoring, user verification information,
   caller statistics (# of and type of security violations, login speeds, etc),
   and up to 5 lines of notes about each user.

 - The password monitoring requires that passwords meet a sysop-selectable
   minimum length requirement, new passwords cannot duplicate any of the
   previous passwords on file for that user, new passwords cannot contain the
   user's name or user-id.

 - Added FOSSIL support for the /M (MultiPort) version.  PCBoard/M will now
   work with an existing FOSSIL driver, or with the comm driver supplied with
   the software, or with the built-in asynch driver for standard comm ports.

 - Greater control over display macro substitution, including padding,
   centering, etc.

 - And many more changes.  See below for details on all that's new in v15.0.


 ----------------------------------------------------------------------------
 The following information documents the PCBoard v15.0 changes in greater
 detail, mentions many of the features not listed up above, and provides
 information about how to use new features
 ----------------------------------------------------------------------------


 added   Internationalization support in the following areas:

         1) Capitalization will adhere to the character set specified by the
            language the user has selected.

            For example, names which are entered from the keyboard and
            converted to upper case letters will now make use of the
            COUNTRY.SYS values provided by the operating system to properly
            convert accented characters.  Other areas, where capitalization
            occurs, will operate in the same manner.

            In addition, the @first@ macro will properly convert the name back
            to lowercase keeping accented characters intact according to the
            tables found in COUNTRY.SYS.

         2) Dates will be displayed on the screen in the proper format for
            the country based on information from COUNTRY.SYS and may also be
            entered, by the user, in the format used by that country.

         3) Thousands separators will now use the proper character (comma or
            period) based on information from COUNTRY.SYS.

         4) The PCBML.DAT file format has been modified so that you may now
            provide four additional pieces of information for each entry.
            These are a Country Code and a Code Page values, followed by Yes
            and No characters. Example:

                  1) English,,001,437,Y,N
                  2) French,.FRE,033,850,O,N

         5) By making the above changes to PCBML.DAT PCBoard will automatically
            load the appropriate country settings whenever a caller changes
            languages.  For this to work you must load COUNTRY.SYS in your
            config.sys file.  Examples:

                   DOS:   COUNTRY=001,437 C:\DOS\COUNTRY.SYS
                   OS/2:  COUNTRY=001,E:\OS2\SYSTEM\COUNTRY.SYS

            Also, under DOS, your AUTOEXEC.BAT file must load NLSFUNC.EXE.
            Example:

                    C:\DOS\NLSFUNC

            OS/2 does not require that NLSFUNC be loaded.

         6) The Code Page information in PCBML.DAT allows PCBoard to change the
            font used by the display adapater whenever a caller changes
            languages.  This allows the sysop to see, on the local screen, the
            appropriate characters for the language being used.  NOTE:  This
            only works on EGA/VGA systems.  Several steps are necessary to
            enable this:

            Using DOS:  Place in config.sys
                        DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,437,2)

                        Place in autoexec.bat
                        MODE CON: CP PREPARE=((437 850) C:\DOS\EGA.CPI)

            Using OS/2: Place in config.sys
                        CODEPAGE=437,850

            The examples above load code pages 437 and 850 into memory with
            437 being the default (the one used by the United States) and
            850 (the international code page) loaded as an alternate.

            NOTE:  OS/2 only allows 2 code pages to be loaded.  DOS, however,
            will allow more to be loaded by increasing the last parameter of
            the DEVICE=C:\DOS\DISPLAY.SYS CON=(xx,xx,xx) line.

            NOTE:  It is now possible to set up multiple languages having the
            same EXTENSION but with different properties, such as the Country
            Code, Code Page, and the Yes and No characters.

            NOTE:  A setting of -1 for the Code Page will force PCBoard to
            revert back to the pre-v15.0 method of NOT capitalizing high ascii
            characters.

            ADDITIONAL INFORMATION FOR MULTITASKERS
            =======================================
            The font support under DESQview is a bit unpredictable if you are
            running more than one node.  The font changes from node 1 may show
            up in node 2's display instead of node 1's display.  OS/2, on the
            other hand, can show both fonts simulataneously in two separate
            windows on the desktop.  Windows, meanwhile, will not show ANY font
            changes inside of a window - only when full screen.

         7) The PCBTEXT record #39 now contains the word "ALL" which is used
            when displaying messages addressed to ALL.  This can now be
            translated to any other language.  The actual string stored inside
            the message base will be the word ALL but when the message header
            is displayed to the user it will say ALL in the language he has
            chosen.

            If a message is entered by the user with the TO field equal to what
            is found in PCBTEXT #39 then the message will be written out using
            the word "ALL" but will be shown on screen using PCBTEXT #39.

         8) The addition of the Yes and No characters in PCBML.DAT will allow
            the language to accept proper answers to yes/no questions.

         9) Several new PCBTEXT records have been added allowing text within
            PCBoard to be translated.  Also, some text records which formerly
            could not be turned into a file may now be.

         NOTE: PCBTEXT Records 72, 266 and 688 all indicate that dates should
         be entered in the form "mmddyy".  When setting different country codes
         in your PCBML.DAT file you should ensure that the "mmddyy" in these
         records is changed, if necessary, to "ddmmyy" or "yymmdd" as
         appropriate for the style used by that country.

         NOTE:  The dates and numbers on the PCBoard Status Line will remain
         in the system default format regardless of what language a remote
         caller chooses.  The sysop, or another user, however, can log in
         locally and select a different language and the format changes will be
         reflected on the status line.

         PCBoard now uses the "PCBTEXT." (no extension) file whenever it writes
         to the callers log regardless of the language the caller has chosen.
         With this change you are free to customize the PCBTEXT.???  files and
         set up elaborate languages while keeping the text that is written to
         the caller logs intact and usable by those programs (generally Caller
         Log Statistics packages) that expect certain text to be in the logs.

         In order for this change to really be useful, PCBoard no longer
         requires that the FIRST entry in the PCBML.DAT file be a blank
         extension.  In other words, if your Statistics Program expects english
         text in the callers log, but you live in France, it wouldn't make much
         sense to put ENGLISH at the top of the PCBML.DAT file and make ENGLISH
         the default for your french speaking callers.

         In other words, the PCBML.DAT file could now have "PCBTEXT.FRE" as the
         first entry and have "PCBTEXT." somewhere down from there as an
         alternate language.

         The Call Waiting Screen, the Status Lines, the Caller Logs, etc, will
         all be written using the "PCBTEXT." entries.

         When logging in, however, PCBoard will automatically switch to
         language #1 for displays of text on the screen (above the status line
         - what the caller sees).

 added   New macros:  BICPS RBYTES RCPS RFILES SBYTES SCPS SFILES CARRIER

 added   @pos:##@ which can tell PCBoard to move the cursor over to a specific
         position on a line.  If the cursor is already beyond that point, no
         action is taken.  Otherwise, spaces are printed until the cursor
         reaches that position.

 added   A @delay:##@ macro which allows a delay to be specified in tenths of
         a second (up to 25.5 seconds).  NOTE:  this macro is non-functional
         while reading messages.

 changed Macros can now contain a suffix ":###?" before the terminating @ code.
         In other words, @user@, @user:25@, @user:25R@ and @user:25C@ are all
         valid.  If just a number is given then the macro is left justified
         and padded to fill the space designated.  If the letter R is used,
         then the macro is right justified and padded on the left.  If the
         letter C is used then the text is centered within the field.

         All text will be displayed regardless of the size of the field.
         Therefore, if a user name is 15 characters and @user:10@ is used,
         the entire 15 characters will be displayed and *no* padding will
         take place.

 changed Moved hardcoded text out to PCBTEXT, added new pcbtext records,
         modified some that were no longer being used.

 added   A brand new chat module!  The CHAT # and NODE # commands no longer
         work.  The user must now go into CHAT G and from there use the CALL
         command to call a user into chat.

         The new chat module combines the best of two different types of chat.
         It allows callers to immediately see what another user is typing,
         similar to the Sysop Chat, while functioning similar to the older line
         oriented chat by not allowing two people to type at once disrupting
         the display.  And yet, each user CAN type up to 1-line of text while
         waiting for the current user, having the focus, to finish typing.

         The new chat module is group oriented, rather than node oriented, and
         almost begs for more than two people to join into the chat session.
         However, with 255 different channels and the ability to change to
         different channels and/or make a channel private, it is easy for two
         people or a group to carry on a private conversation without involving
         other members of the board.

         Because of the interactive nature of the new chat module, the old
         style chat files are no longer used.  However, if desired, the sysop
         can enable a capture facility which will record chat sessions to disk
         in a new format that allows the sysop to analyze exactly when the
         chat took place, on what node, in which channel, etc.

 changed PCBoard now remembers across sessions how your Chat Status is set.
         If you make yourself unavailable for chat and later logoff, on your
         next call you will be unavailable for chat.  Likewise, making yourself
         available for chat will be remembered the next time you log in.

 added   The (P)rotocol selection at the prompt that PCBoard issues just before
         a file transfer begins.  This will let the caller easily change the
         protocol before beginning the file transfer.

 added   Support for CD-ROM Drives (and jukeboxes) by providing a staging
         area.  Files are copied off the CD ROM and into the staging area
         first and then the file transfer takes place from there.

 changed The Sysop Function 14 command now asks if it should log the user off
         NOW (to drop to DOS in a hurry) or if it should wait for the caller
         to logoff and then drop the node to DOS.

 changed The input routines will now accept an ESC (or CTRL-U) all by itself to
         indicate that the current input should be aborted and the question
         re-asked.  So if you type a command at the main command prompt and
         then press ESC, the command will be discarded an the prompt will be
         redisplayed.

 changed The callers log entries which are taken from PCBTEXT will now be
         written in the DEFAULT LANGUAGE regardless of the language used by
         the caller.  Callers log analyzers should load PCBTEXT (no
         extension) to determine what those entries will look like since
         the default may not be english.  The only exception is the message
         that states which language is being used.  That message will be
         pulled from the PCBTEXT file the caller has selected.

 added   Immediate detection, after an upload, of the existence of a
         FILE_ID.DIZ file within a .ZIP or .EXE file.  If a FILE_ID.DIZ file
         is found AND the sysop has configured the system to verify uploads,
         the user will *not* be asked for a description.

         NOTE:  This ability to skip asking for a description takes place only
         AFTER an unannounced file is received.  Normally PCBoard would prompt
         for a description AFTER RECEIVING an unannounced file.  But in the
         case where a file description accompanied the unannounced file, this
         step would be redudant so PCBoard skips asking the caller for a
         description and immediately shells out to PCBTEST.BAT which then
         extracts and incorporates the included (FILE_ID.DIZ) description.

         NOTE:  If the announced upload is requested to be private, by the
         uploader (via a "/" in the description), then all unannounced, and
         pre-described (via FILE_ID.DIZ), files will be posted in the private
         upload directory as well.

 added   If carrier is lost after an upload of one or more files is completed
         but before all files have been tested, it will now take the modem
         off hook in order to avoid problems with RNA-rebooters.

 added   Sysop Function 15 and ALT-R.  ALT-R will flag the current session to
         recycle thru DOS (re-run board.bat) when the caller logs off.  Sysop
         Function 15 can be used to do the same thing to another node.

         When PCBoard drops out to perform the recycle it exits with an
         ERRORLEVEL of 6 which can then be used to perform special processing
         during the recycle.

 changed PCBMoni now allows you to hit the SPACE BAR to see more information
         about the current node record.  It will show the date of last update,
         the operation text, any message text available, and the current
         status of the node.  From that screen you can now change the node
         information as well.

         When finished, press the PGDN key to make the change, or press ESC
         to abort the change.

 added   SET PCB=/BAUD:####.  This allows you to override the modem speed
         defined in pcboard.dat.

 changed The upload process will now allow you to type H to hangup before
         the upload testing process begins.  Also, any unannounced files that
         need to be described will be recognized immediately after the upload
         is finished and the user will be prompted to describe all of them
         before any testing begins.

 changed The Sysop Function 11 command so that it will now display additional
         information such as:  name of the file being uploaded or downloaded,
         the size of the file and a time estimate for the transfer, the name
         of the person to whom a message is being addressed, and the number
         of a script if one is being answered.

 fixed   If you set the keyboard timer to 1 minute, then every time you press
         a key the "60 seconds to go" beep would sound.  This has been changed
         so that if you set the keyboard timer to 1 minute it will actually
         be set to 70 seconds.  This means that the first warning beep is now
         10 seconds away.

 added   The message editor has long been able to capture a "lost carrier" and
         SAVE the message before logging the caller off.  Now it will also
         detect keyboard timeout and SAVE the message before logging off.

 added   The upload processing has long been able to continue its work even if
         carrier was lost - including automatically describing the file with
         a note about carrier having been lost.  Now it will also detect
         keyboard timeout and write that to the file description before
         logging the caller off.

 disabledThe F6 function key during new user login UNTIL the new user has
         completed the newuser questions to finish the login.

 changed The "R U" command now works the same way the "R Y" command does in
         that it now ASSUMES that a read 1+ is going to occur unless you
         override it with another command line parameter.  Previously the
         "R U" command would do nothing but return back to the prompt unless
         you included a "1+" or some other range with it.

 added   A separate PCBTEXT entry for aborted uploads so that the text can
         be customized for each.

 changed The frequency at which the usernet file is scanned while sitting at
         the Call Waiting screen has long been 8 times the "Node Chat
         Frequency" as specified in PCBSetup.  It has now been redudced to
         just 4 times the "Node Chat Frequency" for faster updates.

 changed When the F5 funciton key is pressed (to shell to DOS) it will now
         indicate in the usernet file that the caller is out to DOS.  Upon
         returning from DOS the previous status will be reinstated.

 changed If you have flagged files for download and then issue the upload
         command, it will warn you that you have files flagged for download
         and ask if you want to continue the upload command.

 changed PCBoard can now display larger messages and will allow larger messages
         to be entered.  The old maximum of 255-line messages has been replaced
         with a maximum of 400 lines.  In addition, while it previously allowed
         up to 255 lines, it was difficult, when replying to a large message,
         to find that number of lines available since the memory might already
         be in use.  Now it is much more likely that the entire 400 lines will
         be available regardless of the size of the message you reply to.

 changed Messages can now be uploaded into the message editor using any
         available protocol.  ANSI files, with lines longer than 79 characters,
         may be uploaded into the message editor and saved - but cannot be
         edited online.

 changed PCBoard will now display "scanning for new bulletins" while it
         performs the scan.  Previously people were left wondering what it
         was doing while it was displaying dots on the screen.

 changed The following SET PCB= switches have now been incorporated directly
         into PCBSetup and are no longer valid environment switches:

         /NOBLTSCAN has been incorporated in the switches section as "Scan for
         new bulletins".

         /MONITORMODEM has been incorporated under Modem Configuration :
         Switches as "Monitor missed connections".  It writes information to
         the callers log to indicate when the phone rings but a session is not
         established.  Additionally, if CallerID is in use on your system,
         PCBoard will attempt to capture the CallerID information and write it
         out to the callers log at the same time that it writes the entry for
         the missed connection.

         NOTE:  You can tell PCBoard to record the TIME, in the log, of the
         missed connections by modifying the PCBTEXT records (34 and 215)
         adding the word @SYSTIME@ in front.  A batch file to perform this
         process automatically would look like this:  (the insertion needs to
         be performed only once)

            MKPCBTXT C:\PCB\GEN\PCBTEXT /I:34 "@SYSTIME@ NO CONNECT/@OPTEXT@"
            MKPCBTXT C:\PCB\GEN\PCBTEXT /I:215 "@SYSTIME@ Carrier Lost..."

         /RESET has been placed under Modem Configuration : Switches.  It is
         used to tell PCBoard to reset the modem once every five minutes while
         it sits idle at the Call Waiting screen.

         /DONTMAKEMSGS has been incorporated under Configuration Options :
         Messages as "Create MSGS if Missing".  This is normally set to YES but
         may be disabled on large systems where PCBPACK is run with the /FORCE
         option to avoid the possibility of creating a new MSGS file while the
         original is being packed by PCBPack.

         /NO16550 has been placed under Modem Information : Switches.  This
         switch is used to force PCBoard to see disable the 16550 FIFOs.  This
         may be needed when a buggy 16550 UART is in use.

         /FORCE16550A has been placed under Modem Information : Switches.  This
         switch is used to force PCBoard to behave as though a 16550 UART is in
         use in spite of not being able to detect one.  This might be used
         under Windows or OS/2 where the comm driver virtualizes the uart and
         hides the fact that a 16550 is in use.  Better comm drivers is the
         best solution.  But this option can help make the system run better
         when you *know* you have a 16550 even though the OS doesn't let the
         software know it.

         /PROMOTEBATCH has been placed under Configuration Options : File
         Transfers.  This switch allows the D and U commands to be
         automatically promoted to DB and UB commands when the caller has
         specified a batch protocol as the default.

         /NOBATCHUPLOADS has been placed under Configuration Options : File
         Transfers.  This switch forces the caller to perform single-file
         uploads only.  This is especially important in a macintosh environment
         where it needs to force PCBoard to use the filename typed by the
         caller rather than use the filename that comes out of the protocol
         header - a name which would be invalid on a DOS system.

         /UPCRED has been placed under Configuration Options : File Transfers.
         This switch sets the amount of time to be given back to the caller
         on uploads.  The default is 1 - giving time back on a 1:1 ratio.

         /BYTECRED has been placed under Configuration Options : File
         Transfers.  This switch sets the number of bytes that are to be
         credited towards the caller's daily download limit.  The default is
         0 - giving no byte credits on uploads.

         /NOREG has been placed under Configuration Options : Switches as
         "Auto Reg in Public Conference".  When set to YES PCBoard
         automatically registers new users in all public conferences.  This
         can cause a tremendous delay when new users log into a system with
         thousands of conferences.  When set to NO the caller can *still*
         access the public conferences, it simply doesn't set the RXS flags
         at login time.

         /FORCEMAIN has been placed under Configuration Options : Messages.
         It forces comments to the sysop to be stored in the main board.

         /ENCRYPT has been placed under Configuration Options : Switches.  This
         switch allows the users file to be encrypted using ENCRYPT.EXE so that
         people having access to view the contents of the users file from DOS
         cannot obtain passwords from the file.

         /FLOAT has been placed under Node Information.  This switch allows
         PCBoard to pick a "free node number" based on the contents of the
         usernet file so that users on a network do not have to go to a
         specific node subdirectory to run PCBoard.

         /SWAP has been placed under Configuration Options : Switches.  The
         path to the swap file in File Locations : System Files.

         NOTE: PCBoard now properly inserts its own environment variables (such
         as PCBDIR, PCBNODE, PCBDAT, etc) even when set to SWAP!

         Also, while swapping, you can now specify the size of the environment
         to be used in the Configuration Options : Limits section.

 changed PCBSetup handles the CNAMES and CNAMES.@@@ files diferently now.
         There is no longer a /QUICK command line parameter because PCBSetup
         always works the way /QUICK used to make it work.  That is, PCBSetup
         now IGNORES the CNAMES file and uses only the CNAMES.@@@ file when
         it loads up.  When you exit and save, PCBSetup will copy the contents
         of CNAMES.@@@ out to CNAMES, but simply executing PCBSetup will NOT
         read the CNAMES file back in.

         The plus side is that those who have huge systems (thousands of
         conferences) will benefit from faster loading times by default.

         The down side is that making changes to the CNAMES text file no longer
         automatically updates CNAMES.@@@.  However, you can still update the
         CNAMES.@@@ file from CNAMES by executing PCBSetup with a /CNAMES
         command line switch.

         WARNING!  It is highly recommended that *before you do this, that you
         first run PCBSetup, and then exit and save answering 'Y' to create an
         UP-TO-DATE copy of CNAMES.  Otherwise you are likely to update an OLD
         copy of CNAMES and then PCBSETUP /CNAMES will spread the OLD
         information to your CNAMES.@@@ file.

         PCBSetup will now shrink the CNAMES.@@@ file (as well as CNAMES.ADD)
         whenever you exit (and save) with a configuration of FEWER conferences
         than were found in the CNAMES.@@@ file (and CNAMES.ADD).

 changed PCBSetup used to allow you to type PCBSETUP PCBOARD.DAT, whereby you
         could specify the pcboard.dat filename and path without any further
         syntax.  This syntax has been changed.  The now supported method is:

              PCBSETUP /FILE:pcboard.dat

         This is exactly the same way PCBoard allows you to pass the name of
         the pcboard.dat file.

 changed In PCBSetup, Sysop Information, there is a new setting that allows
         you to require the Local Password when hitting ESC to drop the
         system to DOS.  This should prevent accidentally dropping the system
         to DOS *if* you have a password set in the Sysop Information screen.

 added   Support for a new programming language, called the PCBoard Programming
         Language (or PPL), has been added to PCBoard.

         All versions of PCBoard will support the ability to EXECUTE compiled
         PPL files (which are .PPE files).  However, the compiler and
         documentation for the PCBoard Programming Language is extra.

         Developers, who have purchased the PPL Compiler and Documentation, can
         write anything from simple to very complex add-ons for PCBoard using
         the PPL facility and can distribute their products to all PCBoard
         version 15.0 customers.  All Sysops who are interested in obtaining
         the PPL Compiler may purchase the PPL Compiler, however, as a language
         it does require *some* programming skills to utilize it.

         The PPL syntax is very similar to BASIC and PPL executables (.PPE
         files) are run without unloading PCBoard giving them direct access
         to the online caller without the delays associated with running, and
         returning from, DOOR applications.

         The .PPE files have a maximum size (once loaded into memory) of 32K.
         Because the .PPE files are tokenized, and because it is possible to
         'chain' from one .PPE module to another, this will allow for a fairly
         large application.  However, more demanding applications will still
         require the use of external DOOR software to implement them.

 changed Script questionnaires can be set to use the older standard format,
         using a simple text file to ask questions, or it can now be set to
         use PPL Executables instead.  When a PPL file is executed it can
         write to the answer file that is defined for script questionnaire
         answers.

         A program, called SCRCNVT.EXE, is provided, to the purchasers of the
         PPL Compiler, which can easily convert existing Script Questionnaires
         to the PPL Source file (.PPS) which can then be edited and compiled.
         Using the SCRCNVT program, even a non-experienced programmer can
         customize existing Script Questionnaires adding simple logic in them
         to branch around questions or ask other questions.

 changed Display files can now execute PPL programs by using !FILESPEC.PPE to
         specify a .PPE file, similar to the way %FILESPEC displays a file.
         In other words, if an exclamation point (!) is found inside of a
         display file, in column 1, followed by a valid .PPE file, PCBoard
         will execute the .PPE file.

         Additionally, on that same line (where the !FILESPEC.PPE is found)
         you may pass any number of parameters to the .PPE file up to a maximum
         line length of 2048 bytes.  A space must separate the filename from
         the first parameter.  Every parameter can be separated by either a
         space or a semi-colon.  Example:   !TESTME.PPE 1 2 3

 changed PCBTEXT records can now execute PPL programs by using !FILESPEC.PPE to
         specify a .PPE file, similar to the way %FILESPEC displays a file.

         In other words, if an exclamation point (!) is found inside of a
         PCBTEXT record, in column 1, followed by a valid .PPE file, PCBoard
         will execute the .PPE file.

         Additionally, you may pass any number of parameters to the .PPE file
         up to a maximum line length of 2048 bytes.  A space must separate the
         filename from the first parameter.  Every parameter can be separated
         by either a space or a semi-colon.

         NOTE:  You can only attach a .PPE file to a PCBTEXT record that is
         DISPLAYED to a caller.  Just like you can only attach a display file
         to a PCBTEXT record that is DISPLAYED to a caller.  PCBTEXT records
         which are merely written to the log or otherwise internally processed
         cannot accept !FILESPEC.PPE or %FILESPEC entries.

 changed Shifted-Function keys may now run PPL programs.  Similar to using
         %FILESPEC to have a function key import a file, you now use !FILESPEC
         to execute the .PPE file.  This is also similar to the way PCBTEXT
         records can use the %FILESPEC and !FILESPEC to include a file or
         execute a .PPE file.

         Also, you can pass command line parameters to the PPE file when
         entering the function key definition in PCBSetup.

 added   A Logon Script Questionnaire is now available which can be run after
         the caller has answered the login questions (name/password) but
         before it scans for mail or shows the news, etc.

         Both the Logon and Logoff Script Questionnaires can be set to run a
         PPL Executable (.PPE file).

 added   The ability to OVERRIDE or ADD TO the commands that PCBoard supports.
         This is done by using PCBSetup to edit the CMDS.LST file.  There is
         a default CMD.LST file found in File Locations : Configuration Files.
         You can also have a conference-specific CMD.LST which will override
         the CMD.LST file if one is specified.  Additionally, PCBoard will
         search for security and/or language specific CMD.LST files *if* the
         name of the CMD.LST file does NOT include an extension.

         Examples:

           Name in PCBSetup          Will find
           ------------------        ---------
           C:\PCB\GEN\CMD.LST        C:\PCB\GEN\CMD.LST   (no alternates)

           C:\PCB\GEN\CMD            C:\PCB\GEN\CMD
                                     C:\PCB\GEN\CMD20
                                     C:\PCB\GEN\CMD.FRE
                                     C:\PCB\GEN\CMD20.FRE

         The CMD.LST file has four basic capabilities:

         1) Stuff the keyboard buffer with up to 30+ characters.
         2) Stuff the keyboard buffer with a file (no limit on size)
         3) Execute a .MNU file - giving PCBoard the ability to present
            totally customized and configurable menus.
         4) Execute a .PPE file - giving PCBoard the ability to run programs
            written in PPL as if they are a built-in feature of the system.

         Those that have used shelled doors and PCBSTUFF.KBD will appreciate
         the first and second.  The other two are totally new capabilities.

         NOTE:  All versions of PCBoard will support the execution of the .PPE
         files.  However, in order for a programmer to create these, a PPL
         Compiler must be purchased.

 added   Also, at all menu file displays you can now run a .MNU or .PPE file
         instead of displaying the menu file.

         This works off of the 'root filename' for the menu.  Example:  if your
         main board menu is called BRDM and you have a BRDM.MNU file, then
         PCBoard will run the BRDM.MNU file instead of displaying the BRDM
         file.  Likewise, if a BRDM.PPE files then it will be run instead of
         displaying BRDM.

         It is also possible to have a display file launch a .MNU or .PPE file
         from within the display file by embeding the MNU or PPE filename
         within the display file like this:

                %c:\pcb\gen\display.txt     <--- display this file
                !c:\pcb\gen\runthis.ppe     <--- execute this PPE file
                $c:\pcb\gen\newmenu.mnu     <--- display a new menu

         Download and read the documentation in MKPCBMNU.ZIP for further
         information on setting up and using the new MENU system.

 added   The ability to immediately read your mail whenever there is new mail
         waiting for you.  This is set by answering YES to "Prompt to Read Mail
         when Mail Waiting" in Configuration Options : Messages.  PCBoard
         will prompt the caller like this:

         New messages found in conference XYZ...

         Read your personal mail now: (Y)es, (N)o, (A)ll new mail

         If you answer Y or A, PCBoard will scan all conferences that have
         the "Mail waiting flag" turned on.  These conferences NEED NOT BE
         selected - as in the R A S command.

         If you select Y then PCBoard will display new messages, which are
         addressed to you, in each of the conferences that were listed as
         having new personal mail.  NOTE:  Last Message Read pointers will NOT
         be updated.

         If you select A then ALL new messages, your personal mail or not, in
         each of the conferences that were listed as having new personal mail,
         will be displayed.  PCBoard will keep track of and update your Last
         Message Read pointers while reading the mail.

         Answering Y is equivalent to the "R O Y U WAIT" command.
         Answering A is equivalent to the "R WAIT" command.

         The 'U' command in the R O Y U WAIT indicates that PCBoard should
         read only personal mail that has NOT already been read - regardless
         of the Last Message Read pointers.  This helps avoid seeing the same
         message twice even though the LMR pointers do not point beyond a
         message that is addressed to you which you have already read.

         Additionally, in PCBSetup : File Locations : Configuration Files :
         PWRD File, you can specify that callers of a specific security level
         be FORCED TO READ their new mail immediately.  This is equivalent
         to forcing an "R O Y WAIT" command on login.

         One more thing:  the mail waiting flags have been made much more
         reliable!  It is still possible for the flags to NOT be set, due to
         the message having been posted by software that does not support the
         mail waiting flags.  But you should now NEVER see a pop-up "You have
         mail waiting in conference XYZ" message *except* when you really DO
         have mail waiting for you there.  PCBoard also no longer clears the
         flags just because you were reading mail (on the assumption that
         you *might* have read the new mail) since it can now verify whether or
         not new mail actually exists.

 added   Support for Double-Byte Character Sets - such as those used in
         Taiwan and China.  This is set in Configuration Options : Messages and
         has the effect of using a 0Dh character instead of E3h character as
         line delimiters in the message base.

 added   NEW INDEX FILES for PCBoard's message base.  They now include all of
         the information that is normally used by PCBoard to locate messages
         prior to letting people read them.  Such as when issuing an R Y
         command, etc.  By storing the most commonly accessed data in the
         index, message scans are now much faster.

         Some differences in the handling of the new index files are:

         - They are self-updating.  If PCBoard discovers a bad index it will
           replace the index with a new one.  If PCBoard discovers an index
           which does not include all messages found in the message base, such
           as when a mail door posts new messages, it will update the index
           adding the new messages.

         - There is no longer a "fixed block size".  You cannot run out of
           room in the index file thus abolishing the 32,000 per conference
           limit.  The number of index entries is always equal to the number
           of the high message number minus the low message number.

           PERFORMANCE TIP:  Because the index files are no longer fixed in
           size, it is possible, through the addition of new messages, for
           DOS to fragment the files.  This can have a serious impact on the
           performance of the index files.  It is therefore recommended that
           the hard drive be optimized (defragmented) from time to time.

         - The records are MUCH LARGER, but the file size *might* in fact be
           smaller.  This is because the size is no longer fixed.  In the past
           someone might set up 16 blocks to cover a range of up to 16,000
           messages when, in reality, the range might only have been 1,000.
           In this example, the actual file sizes would be equal since the
           record size of the new indexes is 16 times that of the old
           structure.

         - PCBoard will maintain the old MSGS.NDX file *only* if you set it
           to in PCBSetup on a conference per conference basis.  This can be
           done to maintain compatibility with older software which may rely
           on the index being up to date.

         - Changing the PCB= environment setting, adding /OLDINDEX to it,
           will instruct PCBoard to maintain old MSGS.NDX files across ALL of
           your conferences regardless of the individual conference settings.

         - PCBPACK will maintain old indexes by typing /OLDINDEX on the
           command line with the rest of your commands.  For example, you
           might use the command:  PCBPACK /AREA:ALL /DAYS:30 /OLDINDEX

         WARNING!  If you are using a Mail Door or any netmail software which
         accesses your message bases using the old index files, then you MUST
         configure your system to maintain the old index files.  It is
         recommended that you use SET PCB=/OLDINDEX and that you add /OLDINDEX
         on your PCBPACK command line in your event batch files.

         NOTE:  When running old mail doors or netmail software, it may be
         desireable to immediately update the NEW index files after having
         imported mail.  This can be done by using a new /UPDATE parameter.
         For example:

                   PCBPACK /AREA:ALL /UPDATE

         The above would update all of the .IDX files but ONLY if they need
         to be updated.  This will fairly quickly scan through all conferences
         to find which .IDX files need updating and, at least on smaller
         systems (less than 1000 conferences), could possibly be implemented
         in your import batch file.

 added   New message base commands:

            TO          read messages addressed TO a specific user
            FROM        read messages FROM a specific user
            N           read messages NEW since a specific date
            WAIT        documented above - read all conferences where the
                        mail waiting flags are set.
            LONG        view long message headers
            SHORT       view short message headers
            FLAG        flag a file for download while reading messages
            V           view a file while reading messages
            QWK         creates a QWK packet (can be combined with any
                        other valid read commands .. i.e. R 1+ QWK, or
                        R A QWK, or R A Y QWK or TS blah QWK, etc).
            C,D,Z       These commands can now be used while reading messages
                        to capture and download the current message.  Also,
                        the QWK command can be used.  To download the current
                        message you just type "C", "D", "Z" or "QWK" at the
                        "End of Message Command" prompt.
            ALIAS       Toggles the status (of whether to use an ALIAS) and
                        redisplays the message
            ALIAS ON    Turns the alias off
            ALIAS OFF   Turns the alias on
            KILL        A synonym for the 'K'ill command

 added   The message base has new capabilities including:

         - Longer TO, FROM and SUBJECT fields.  The longer TO and FROM fields
           are only available if enabled on a per conference basis.  They are
           primarily used for Internet addressing.  The limit of the TO and
           FROM fields is 120 characters.  If more characters are used than
           will fit on a single line then PCBoard will wrap down to the next
           line.

         - File attachments (1 per message).

           File attachments are added to a message by typing "SA" to Save with
           Attachment instead of typing "S" to save.

           To enable File Attachments you must set the Location for File
           Attachments in the conference setup screen.  You must also answer
           'Y' to the "Allow File Attachments" question.  Press PGDN while
           editing the conference to see the conference switches screen.

           NOTE:  This should NOT be the same subdirectory as your public
           upload directory or any other directory normally used for
           downloads.  The names of the files saved, when saving an attachment,
           will not directly correspond with the files that are upload.  See
           the flag/view attachment information for further details.

         - Carbon List messages (with the limit on the number of users
           that can be carboned specified in PCBSetup : Configuration Options :
           Messages).  Also, who can or cannot enter a Carbon List message can
           be controlled by security level in each conference.

           Carbon List messages are entered by addressing the message to @LIST@
           and then providing the names of the users in the carbon list when
           prompted to do so.

         - PCBoard can store an ORIGIN header in the message based on the
           information in Configuration Options : Messages.  This feature is
           enabled individually in each conference.

         - A Return Receipt message can be requested when writing a private
           message in a conference where Return Receipts are enabled.

         - The main board area can now be echoed if desired.

         Return Receipts are visible only to the user who requested them and,
         optionally, anyone (presumably a sysop) who has a security level
         high enough to see them.  The sysop can, therefore, avoid seeing the
         return receipts by setting the security level for that feature to
         something higher than his or her security level.

         PCBSetup allows you to determine which users, by security, can request
         return receipts on a conference-by-conference basis.

         NOTE:  After successfully uploading a File Attachment, PCBoard will
         execute your PCBTEST.BAT file to verify the upload.  You can modify
         your PCBTEST.BAT processing to jump around certain functions (or
         even just drop out completely) of PCBTEST.BAT processing by testing
         the %2 parameter for a value of ATTACH.  Example:

              if '%2 == 'ATTACH goto end

         - PCBoard can prompt for the ROUTING information.

         To tell PCBoard to do this, press PGDN in the conference setup screen
         and then answer 'Y' to the "Prompt for ROUTE Info" question.

 changed All users may now use the Read-(O)nly message command now regardless
         of their security level.  The "R O" command has been change so that
         all it does is avoid setting the Last Message Read pointers.  The
         sysop may still assign a security level to that command.  The question
         in PCBSetup now asks: "Level Needed to NOT Update Msg Read Status
         (R O cmd)".  If a user has that level or greater than the "R O"
         command not only avoids setting Last Message Read pointers, but it
         also avoids updating the "Message Read Status" when reading personal
         mail.

 added   Conference INTRO Files.  These are like WELCOME screens but are
         used on a conference-by-conference basis.  They are shown each and
         every time a caller joins a conference.  The only way to avoid seeing
         the INTRO files is to type J x Q (where 'Q' stands for Quick) or when
         logging in typing "Y Q NS" where the NS command forces a non-stop
         login.

         Optionally, the INTRO files can even be displayed in the process of
         performing an R A command as PCBoard jumps from one conference to the
         next.

 added   Private Conferences may now have a PASSWORD attached to them.  If one
         is found, then a caller not having access to the conference will be
         asked for the password when attempting to join it.  This allows the
         sysop to set up a special conference and then simply leave a message
         to a caller that would like to join it.

         NOTE:  After successfully joining the conference, the caller then
         becomes registered in that conference so that future attempts at
         joining the conference will no longer require that a password be
         given.

 added   New message headers.  These headers include several modifications:

         - The TO, FROM and SUBJECT fields have all been lengthed to take up
           an entire line if necessary.

         - There are now two ways of viewing the message headers - either in
           LONG format, or SHORT format.  See the "R LONG" and "R SHORT"
           commands.  Also, (W)rite User Info can store your preference for
           long or short headers.

         - The message headers can now remain 'fixed' at the top of the
           screen while reading a long message.  This is done by using the
           (W)rite User Info command and setting "Clear screen between each
           message" to YES and setting "Scroll messages" to NO.

           NOTE:  Callers who do not have ANSI support will not be able to
           lock the message headers because ANSI is required to move the
           cursor around on the screen.

           This means that callers must either answer 'Y' when asked if they
           want graphics, or if they answer 'N' then their COMM program must
           be capable of responding to the ansi detection sequence that
           PCBoard issues to determine if the caller has ANSI support.

         - The text of the message headers is now more flexible.  Previous
           versions of PCBoard required that the text be a specific length.
           It may now be longer or shorter and PCBoard will attempt, on its
           own, to keep the colons (in the lines of the long header) lined
           up appropriately.

         - The colors of the message headers can be customized via PCBSetup.
           Speaking of colors...  you can even set the default color in a
           more "complete" fashion now in that it is now possible to specify
           a BACKGROUND color in addition to the foreground color.  Try a
           setting such as 1F sometime and see.  :-)

 added   An ALLFILES.LST file which will let you scan for prior existence of
         the file IN ALL CONFERENCES before allowing the caller to upload the
         file.

         ALLFILES.LST is nothing more than a DLPATH.LST ...  but it is COMMON
         to ALL areas of the BBS if it is specified.

         In other words, usage of ALLFILES.LST is identical to DLPATH.LST.  You
         put the same kinds of paths and/or index files in it.  The only
         difference is that, if ALLFILES.LST is specified, PCBoard will use IT
         instead of the DLPATH.LST file when determining if a file (to be
         uploaded) already exists on the system.

 added   The ability to check for FILENAME.* on upload requests to prevent
         uploads of FILENAME.ARJ, for example, if FILENAME.ZIP already
         exists.

         NOTE:  This extension-less match only occurs only archive files having
         extensions such as ZIP, ARJ, LZH, LHA, ARC, PAK, ZOO, DWC and EXE as a
         special case.

         In other words, if TEST.CFG exists, it is okay to upload TEST.TXT or
         even TEST.ZIP.  On the other hand, if TEST.ZIP exists, an attempt to
         upload TEST.ARJ will be denied while TEST.CFG will be allowed.

 added   A specific security setting are now available for what are normally
         (but not always) sysop related commands allowing the sysop to set
         the security levels on each to allow specific users to make use of
         specific functions without giving them full sysop capabilities.
         These are:

         - using the BROADCAST command
         - viewing the private upload directory
         - enter generic messages (to @user@ or @##@)
         - edit message headers
         - protect / unprotect messages
         - overwriting files on uploads
         - move or copy messages to another conference

 added   The ability to FLAG or (V)iew a file while reading messages.  This
         can be a file attachment that is being flagged or viewed, or it can
         be any file found in the current conference download path.

         NOTE:  To flag or view a file attachment, you MUST use the message
         base subsystem.  In other words, you must first READ the message
         that has the attachment and then use the Flag or View subcommands
         provided.  You CANNOT use the normal file subsystem "F V" and "FLAG"
         commands to flag or view a file attachment from outside of the
         message base.

         This also means that only those who have access to a message, either
         by having the message addressed to them, or by having a sysop level
         for reading all mail, or by the message being public, will be able
         to flag or view the attachment.  Those who cannot read the message,
         also cannot access the attachment.

         NOTE:  The NAME of the file, on a file attachment, is CHANGED in order
         to allow multiple messages to have indentically named attachments.
         For example, in a Tech Support environment you might expect many
         people to upload AUTOEXEC.BAT.  That would not work out very well if
         the "stored name" of the attachment was AUTOEXEC.BAT because then only
         the FIRST ATTACHMENT would be successful.  Every attempt to attach
         AUTOEXEC.BAT thereafter would have to fail.

         PCBoard purposely AVOIDS that problem.

         The attachment lands in a special attachment directory (NOT your
         upload directory).  And it is RENAMED to avoid collisions with
         existing files.

         The first upload of AUTOEXEC.BAT will be found in your attachment
         directory as AUTOEXEC.000.  The second attachment of AUTOEXEC.BAT will
         be in the same directory as AUTOEXEC.001.

         The message itself contains the translation information necessary to
         receive the proper attachment.

 added   Support for slow drives  - CD ROMs or multi-disk CD ROM drives.
         To enable this support, go into Configuration Options :  File
         Transfers and specify a list of slow drive letters.  For example:
         "XYZ" could be entered to indicate that files found on drive X:, Y:
         or Z:  should be copied down to the 'work directory' on a local hard
         drive or ram disk prior to performing the file transfer.

         Also, entering a range of drive letters, such as "I-N" will tell
         PCBoard that all of these drive letters correspond to a single CD-ROM
         carousel (or multi-disk drive).

         NOTE:  PCBoard will not attempt to copy the file to the work directory
         if it will not fit on the work drive and leave at least 100K free.

         NOTE:  PCBoard will lock the current Slow Drive (as determined by its
         drive letter) so that another node on the system will not be able to
         perform a Slow Drive Copy at the same time on the same drive.  If the
         drive does not become available after 90 seconds, PCBoard will avoid
         the copy-to-local operation and just perform the transfer in place.

         WARNING:  The "slow drive" list must be the same for all nodes
         otherwise PCBoard will not be able to properly "lock access" to the
         drives when copying files.

         In addition, a batch file can be run after the copy operation has been
         performed.  The actual function of the batch file is totally up to the
         sysop, however, the most often cited use for this batch file has been
         to stamp the file (perhaps in the ZIP Comment Field) with the name of
         the BBS from which the file is being downloaded.  This lets a system
         stamp even files found on a CD-ROM drive by copying them first to a
         local work area (off the CD-ROM) and then modifying the local copy.

 changed The Supported Baud Rates defined in PCBSetup : Modem Information :
         Allowed Access Speeds has been enhanced to allow for a security level
         override.

         If the override is zero it is disabled.  Slower than desired
         connections are dropped IMMEDIATELY after connecting.

         If the override is non-zero, then PCBoard will wait for the caller
         to log in to find out the caller's security level.  Then it will
         compare it against the override level.  If the caller has sufficient
         security he may remain online.  Otherwise PCBoard will hang up on
         the caller at that point.

 changed PCBSetup now allows you to CLONE a conference when setting up a new
         conference.  That is, you can specify a conference other than the
         main board which most closely resembles the new conference you are
         setting up.  This can save a lot of time when configuring new
         conferences.

 changed PCBSetup will now create a MSGS file if one does not exist when
         performing a full save operation.

 changed The Batch Limit in the PWRD file now allows up to three digits to
         be entered - allowing up to 999 files in a batch.

 changed At an input prompt you can now press ESC to abort what you have
         typed so far and re-enter the information.

 added   Built-in support for QWK packets.  That is, the ability to create
         a QWK packet and send it to the caller, plus the ability to receive
         a reply packet and integrate the messages.  New commands are as
         follows:

              QWK D (p) (bye)
              QWK U (p) (bye)

         After either of the two QWK commands you can optionally stack the
         letter of the protocol to use and/or the word BYE to logoff when
         done.

         While the QWK D command is simplistic, performing nothing more than
         an R;A;S command (scan all conference for new mail) and turning it
         into a QWK packet, the full power of PCBoard's message reading
         capabilities can still be used in an alternate form.  Like this:

              R (...) QWK         where (...) is any valid Read Command

         Example:

              R A TO JANE DOE FROM JOHN DOE TS THIS  THAT 1+ QWK

         To enable the QWK capability, you must create a batch file, either in
         your PCB directory or somewhere in your path, called PCBQWK.BAT.  A
         sample of what this would look like is as follows:

           if %1==COMPRESS pkzip -ex -m %2 @%4
           if %1==EXTRACT  pkunzip -o %2 %3

         The %2, %3 and %4 values make use of your "Work Directory".  You must
         ensure that this directory is a valid directory and that it is NOT
         your current directory.  Example:

              PCBSetup : File Locations : System Files and Directories

              Location of Temporary Work Files  : WORK\

         This will require that you exit PCBSetup answering 'Y' to save the
         change AND create the new subdirectory.  The WORK\ directory will be a
         subdirectory off from the 'current directory', whatever that may be.
         You must therefore ensure that ALL NODES have the work directory
         created.  You can do this by running PCBSetup for each node, or by
         manually making the directories.

         The name of the QWK packet can be defined in PCBSetup.  It can be
         the same name as the capture file name (on Read Captures) or you can
         configure the name to be different.

         NOTE:  None of the more advance features of QWK-mail doors will be
         implemented here.  This feature is simply an "easy to use" method
         of obtaining QWK packets which can be performed on any v15.0 BBS.

 added   Support for modems that say CONNECT 14.400 instead of CONNECT 14400.

 added   Built-in support for CallerID.  PCBoard will now write the CallerID
         information into the callers log right after the modem connect
         string.  To enable this feature, you must do two things in PCBSetup:

             1) Modem Information : Switches
                Change "Number of Rings Required" to 2 or more

             2) Configuration Options : Logging Options
                Answer 'Y' to "Log Connect String to Disk"

         Additionally, support for accessing the CallerID string is available
         inside PCBoard through PPL so that the information can be accessed
         programatically while the caller is online.

         NOTE:  CallerID is only supported if your MODEM directly supports it.
         That is, your modem must be able to pass the CallerID information to
         PCBoard in between RING messages.

 changed For systems that don't have error correcting modems (modems with
         MNP or v.42bis), PCBoard will now wait four seconds after a connection
         is established before leaving the call waiting screen.

         This is done to avoid having a caller, whose modem *does* have error
         correction, lose the first prompt due to his modem's error correction
         handshaking sequence "eating" the first four seconds of data.

 added   File and Byte Ratios as well as File and K-Byte Download Limits.
         These are specified in the PWRD file on a security level basis.

         Setting any one of them to 0 disables that particular limit.  When
         set to a non-zero value, PCBoard will check first to see if a file is
         'FREE' or 'NOTIME' and, if not, it will then compare the caller's
         current statistics to see if downloading the file would exceed the
         limits you have established.

         NOTE:  These new ratios work WITHOUT having to change the callers
         security level.  The caller remains fixed at the current level and
         PCBoard simply decides, at the time of the download request, whether
         or not the request should be granted based on the current ratio.

         The Upload Credits that have been given in the past will still apply
         ONLY to the "Daily Download Byte Limit".  They do not apply to the
         "File Limit" nor the "KByte Limit".

         In other words, if you have "Upload Credit for Bytes" set to a
         non-zero value in PCBSetup :  Configuration Options :  File
         Transfers, then when a caller uploads it will credit the upload
         against the "Daily Download KByte Limit".  Meanwhile, the "KByte
         Limit" remains intact.

         Given the number of possible ways of limiting the caller's download
         privileges, it may be wise (for sanity's sake) to pick a single one
         and use only it.  For example, you might want to set the File Ratio
         to a non-zero value, leaving all of the other new fields at zero AND
         setting the "Daily Download KByte Limit" to 32767 to disable it as
         well.

         However, in reality any combination of settings may be used.  PCBoard
         will enforce all of them if you choose to enact them all on any given
         security level in the PWRD file.

         NOTE:  Two additional fields in the PWRD file can affect the use of
         file and byte ratios.  They are File and K-Byte Credits.

         This allows you to start a caller out with a positive credit and
         avoids a problem that is most noticeable in Byte Ratios.  Example:

         If you set the Byte Ratio to 4.0:1 and a new caller comes in who has
         never uploaded or download anything.  His ratio is 1:1 and that is
         good.  But he cannot download anything greater than 4 bytes in size
         without immediately exceeding his ratio!  Not good.  To allow the
         caller to download something, you can credit his byte ratio with,
         perhaps, 50K to start.  Then he can download up to 200K before
         exceeding his 4.0:1 byte ratio.

         The (V)iew Settings command will show the user the current File or
         Byte Ratios.  But only if ratio checking has been enabled.

 added   The PWRD file now has a setting that controls, on a security level
         basis, whether or not the time limit specified should be seen as a
         Daily Time Limit or as a Session Time Limit.

         Answering YES to "Enforce Time Limit" means that the time limit
         should be enforced across calls - making it a limit for the entire
         day.  Answering NO makes it a session limit.

         You can now disable the time limit enforcement for EVERYONE (via
         Configuration Options :  System Control) or you can do it on a
         security level basis (in the PWRD file).

         Disabling the "Enforce Time Limit" does not mean the caller can spend
         all the time he wants on the system.  It means that the time limit
         specified in the PWRD file is turned into a SESSION time limit
         instead of a DAILY time limit.  That is, if you set it to 30 minutes,
         the caller can use 30 minutes, hang up, call back and get 30 more
         minutes.  But never more than 30 minutes at a time.

 added   The PWRD file now has a setting that controls, on a security level
         basis, whether or not an account can be used by multiple callers
         simultaneously on a multi-node system.

         Answering YES to "Demo Accounts" means that more than one caller
         can be online using the same user-id without getting the "Name
         already in use on another node" message.

         This setting allows you to establish one or more accounts that can be
         used as DEMO accounts.  That is, accounts where you can hand out the
         user-id and password and allow more than one user to be online at the
         same time utilizing that user-id.

         It is recommended that you also set the "Enforce Time Limit" flag to
         NO when utilizing the "Multiple Logins" setting.  This will avoid
         running up the "minutes used" total which might prevent further
         logins under that account.

         Four additional changes in system behavior occur due to the Demo
         Accounts setting:

         1) The Daily Download Bytes counter will automatically be reset
            whenever a user logs in.  This is to avoid having previous callers
            run the daily limit out.  Effectively, the Daily Download Byte
            Limit becomes a Session Download Byte Limit.

         2) The Last Message Read pointers as well as Conference Selections
            will automatically be reset whenever a user logs in.  This avoids
            having previous callers read mail and set the pointer to the end
            of the message base causing subsequent callers to not see the
            mail.  Also, any given user must select, while online, which
            conferences he or she may be interested in.  A previous caller
            cannot set the preferences for a future caller.

         3) Users of such accounts will be unable to use the (W)rite User
            Info command.  This avoids the possibility that someone might,
            either accidently or maliciously, change the password on the
            account thus stopping anyone else from using the multiple user
            account.  It also prevents the user from changing the city/state
            information which might, again either accidently or maliciously,
            be changed to something that is not desired by the sysop for that
            account.

         4) Users of such accounts will be EXEMPT from the Password Expiration
            feature of the Password PSA.  This prevents one user from changing
            the password and then locking all others, who are sharing the
            account, out of the system.

        5) The "Display NEWS Only When Changed" setting will be treated as if
           the file was new for each caller to the system so that all demo
           account users will be given the opportunity to see the NEWS file.

 changed PCBoard used to issue an error message whenever someone tried to
         flag, download or upload a filename that included a drive and/or path
         specification.  In other words, typing "D C:\FILENAME" would result
         in a message indicating that "C:\FILENAME" was an invalid name.

         Now PCBoard will simply remove the drive and path specifiers and then
         attempt to fulfill the request.

 changed Increased the timeout when starting a file transfer from 60 seconds
         to 90 seconds.  Should give those slow modem users a little more time
         to get the ball rolling before the system calls it quits.

 changed If the file transfer aborts and the caller asked for auto-logoff, it
         will now extend the timeout (before automatic logoff) from 10 seconds
         to 45 seconds to give the caller more time to find out about the
         aborted file transfer.

 changed (L)ocate command has been enhanced so that if the user types a multi-
         word search criteria PCBoard will split it up and put ampersands (&)
         in between each word.  Since a command such as "L RECOVER DATA" is
         invalid, we might as well do what we can to help the caller find what
         he's looking for.  In v14.5a PCBoard turned "L RECOVER DATA" into "Z
         RECOVER DATA".  For v15.0 we'll take it a step further and turn it
         into "Z RECOVER & DATA".

 changed The behavior of the "Make All Uploads Private" switch.  It continues
         to force uploads to go into the private upload directory.  But it no
         longer tells the caller the "All uploads are private" when the caller
         tries to view the public upload directory.

         If the Public Upload Directory is defined (non-blank) the caller can
         now view it!

         However, by making the Public Upload Directory blank, PCBoard will
         revert back to the message "all uploads are private" and not allow
         the caller to view uploads.

         This takes care of the problem where some systems have defined area
         #99 (or some other number) as the Upload Directory, thereby disabling
         the use of commands such as "F U", "N U S" or any other command that
         would access the (U)pload directory.  This was forced on sysops
         because of the "all uploads are private" status.  But no longer.  Now
         all uploads can be forced into the private directory while allowing
         the sysop to move the uploads into the public directory after they
         have been previewed or scanned.

         Further information for clarification of the above:

         OLD WAY OF DOING THINGS
         -----------------------
         - Force all uploads private
         - Sysop scans uploads before posting
         - Sysop moves those files deemed appropriate to directory #13 (or
           whatever directory you might have chosen)
         - Sysop tells callers to scan directory #13 to find new uploads AND
           has to explain to everyone why the F;U command does not work, also
           the N;U;S command, also the L;U command, also the Z;U command, etc.
           What a hassle!

         NEW WAY OF DOING THINGS
         -----------------------
         - Force all uploads private
         - Sysop scans uploads before posting
         - Sysop moves those files deemed appropriate to directory #13 (or
           whatever directory you might have chosen)
         - Now, because directory #13 is seen as the UPLOAD directory, the
           callers can now use the F;U, N;U;S, L;U and Z;U commands.

         What this change has done is allowed you to set up a directory which
         PCBoard can see as the "U" directory.  A directory that your callers
         can reliably use to find new files no matter what number the directory
         is because they can now type "U" instead of "13" (or whatever the
         directory number is on your system)

         You, the sysop, are now free to insert new directories ahead of the
         upload directory, perhaps making the upload directory #14 now, without
         causing a problem for your users because they can go right on typing
         N;U;S to get a list of new files in the upload directory.  PCBoard
         automatically knows which directory is the 'Upload Directory' now even
         though you are forcing all uploads to be private.

 added   Support for Multiple Events.  Multiple events can be set to run
         as Expedited (non-sliding) or Sliding and can be set to run only
         on specific nodes or on all nodes.  They can be set to run on
         specific dates, or on specific days of the week.  They can be set
         to run only within a specified period (to avoid having a sliding
         mailrun occur outside of evening long distance rates).  And more.


         Here is a sample of what the PCBSetup EVENT.DAT Editor screen might
         look like:

                     Batch     Begin  End              Last      Days
           Act  Mod  File      Time   Time   Date      Date      SMTWTFS
           ÍÍÍ  ÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍ  ÍÍÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍÍÍ
         1  Y    E   MAIN      02:00  02:15                      YYYYYYY
         2  Y    S   SLIDE     06:00  07:45                      NYYYYYN
         3  Y    S   SLIDE     14:00  16:00                      YYYYYYY
         4  Y    E   XMAS      00:15  00:30  12-25-00            YYYYYYY
         5  Y    E   MONTHLY   00:15  00:30  00-01-00            NNNNNNN
         6  Y    E   WEEKLY    00:15  00:30                      NYNNNNN

         An explanation for each field follows:

         Act        = Active Y/N
         Mod        = Mode (Expedite, Sliding)
         Batch File = Name of the batch file to use for the event
         Begin Time = When the event should run
         End Time   = Latest time when event should be allowed to run
         Date       = A specific date on which to run the event
         Last Date  = For record keeping purposes only - when last event ran
         Days       = Sunday through Saturday, which days to run the event

         The Begin Time and End Times create a "window" in which the event
         should be run.  PCBoard will do its best to run the event right at
         the Begin Time.  However, should the BBS be busy handling a file
         transfer, running a door, or simply out to DOS, it will still run the
         event if control is returned to PCBoard before the End Time is
         reached.

         In example #1 above, an EXPEDITED event should run at 2:00am.  It will
         force callers off and deny access to the board trying to ensure that
         the event will run at that time.  If it doesn't, it is permitted to
         run as late as 2:15am.  Otherwise the system will skip the event.

         In examples #2 and #3, a SLIDING event should run at 6:00am and
         2:00pm.  This might be a mail run.  We don't want to kick callers
         off, we just need to ensure that it gets run.  But we don't want to
         call long distance after 8:00 otherwise we pay a higher long distance
         fee.  So the event is allowed to run any time from 6:00 until 7:45.
         Further, in this example, it has been set to run only on Monday
         through Friday, it will not run on Saturday or Sunday.  The second of
         the two events named SLIDE will run between the hours of 2:00pm and
         4:00pm.  This might be a second mail run if you call locally to get
         your mail.

         In example #4, an EXPEDITED event will run at 12:15am on Christmas
         morning, possibly running a program to insert a news item wishing
         callers a Merry Christmas and Happy Holidays.  Setting the year to
         00 in the date of this event is like using a wildcard, telling
         PCBoard that any year matches this date.

         In example #5, an EXPEDITED event will run at 12:15am on the first
         day of every month.  This will allow you to do any monthly processing
         that you may wish to do, generating monthly statistics, purging
         month-old callers logs, or packing user information.

         In example #6, an EXPEDITED event will run at 12:15 am on every
         Monday morning.  This will allow you to set up an event that will do
         any weekly processing that you may wish to have done.

         The Last Date field is used by PCBoard to record when the event was
         last run.  This field is maintained on a PER NODE basis.  That means
         that if you run PCBSetup on two different nodes you would be looking
         at two different fields in the EVENT.DAT file.  The Last Date field
         is used to ensure that the event has not yet been run, and to avoid
         running the event if it has ALREADY been run that day.

         Therefore, if you are wanting to test the EVENT handling, you will
         need to either move the DATE on your system forward after each test
         or else run PCBSetup and delete (Ctrl-End) or replace (type over)
         the date in the Last Date Field.

         If you want a specific node to run an event that is different from the
         others then the name of the event file should be modified to include
         the node number.  For example:

                     Batch     Begin  End              Last      Days
           Act  Mod  File      Time   Time   Date      Date      SMTWTFS
           ÍÍÍ  ÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍ  ÍÍÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍÍÍÍ  ÍÍÍÍÍÍÍ
         1  Y    E   MAIN      02:00  02:15                      YYYYYYY

         If you want node 1 to run the main part of the event, while all the
         rest of the nodes run something else (perhaps remaining idle) you
         would create two separate files like this:

            MAIN                <--- the default, for all nodes
            MAIN.001            <--- used by node 1 (because of the .001)

         If you set up an event that you want only ONE node (or a subset of
         nodes) to run, then simply do not create the root filename (no
         extension) making, instead, only the node-specific copies of the event
         (e.g.  MAIN.004, MAIN.008, etc).

 changed The callers log handling of events now indicates the NAME and NUMBER
         of the event when it is run.  When returning from the event, PCBoard
         now writes a line to the log to indicate that the event is finished.

         Further, while the event is running, the USERNET file will be updated
         to indicate that the node is running the event as well as showing the
         name and number of the event it is running.

 changed Enhanced MKPCBTXT so that those who wish to customize PCBTEXT files
         can do so in a more automated fashion now.  You can now use a /I:###
         parameter to insert text into the file at the record number specified.
         For example a batch file such as the following could be used:

            UPDATE.BAT
            ----------
            @echo off
            if *%1 == * goto explain

            MKPCBTXT %1 /I:150 "This is a test"
            MKPCBTXT %1 /I:200 "%%2FILE1"
            MKPCBTXT %1 /I:210 "%%2FILE2"
            MKPCBTXT %1 /I:300 "This is in record #300 of PCBTEXT"
            goto done

            :explain
            echo Usage:   UPDATE pcbtext file-directory
            echo .
            echo Exampe:  UPDATE C:\PCB\GEN\PCBTEXT C:\PCB\GEN\
            :end

         The example above illustrates who even the location of %FILESPEC
         files, used in the PCBTEXT file, could be customized by the sysop at
         the time of installation.

 added   A Trashcan for uploads.  This is a file that holds the filenames
         (which can optionally use wildcards) of those files that you want to
         prevent from being uploaded.  This can be used in place of creating
         0-byte files to stop uploads.

 added   A new "Security" flag for messages.  When entering the security type
         you can now type the letter 'D' to set the DATE on which the message
         should be packed out of the message base.

         As long as the message is not killed first, the message will then
         remain active until the date specified is reached.

         The actual 'protection' on the message is 'N' (for PUBLIC).  However,
         once the message has been saved, you can use the (P)rotect or
         (U)nprotect commands or even use the (E)dit Header command to change
         the pack-out (D)ate.

         Only those who have security clearance to "Set the Pack-Out Date" (see
         PCBSetup :  Security Levels :  Sysop Commands) may enter messages of
         this type.  Further, users (or sysops) having that level will be shown
         the pack-out date at the bottom of the message whenever the message is
         read.  Meanwhile, regular users never see or know about the date.

 added   Support for handling an incoming FAX *if* the modem is capable of
         letting PCBoard issue the ATA command (to connect) *and* the modem
         answers with a "CONNECT FAX" message.  PCBoard then exits to DOS with
         an errorlevel of 7 at which point BOARD.BAT can be set up to load the
         FAX software.

         Modems which require TSR software to be loaded ahead of PCBoard, and
         which do not let PCBoard control the answering of the call, are a risk
         to PCBoard's security and are not supported.

         Modems which do not issue a CONNECT FAX message are not currently
         supported.  If anyone knows of modems with a differing connect message
         that is still unique enough to identify the incoming fax, please let
         us know.

         NOTE: Due to the way DOS handles ERRORLEVELS you should check for
         higher numbered errorlevels first before checking lower errorlevels.
         PCBoard may exit with an errorlevel HIGHER than 7, yet DOS will treat
         an IF ERRORLEVEL == 7 as being true.  Therefore, if you will be using
         FAX software you should probably write your batch file like this:

               pcboard
               if errorlevel == 8 board    <-- test for all higher levels
               if errorlevel == 7 fax      <-- if 7 is still found, run fax
               ... etc

 changed The $$LOGON.BAT and $$LOGOFF.BAT processing can now, optionally, be
         set to swap out to increase available memory.  Also, the comm port is
         now closed and re-opened when processing is finished.  This will
         allow software which accesses the comm port to be run in these
         batch files.

         Additionally, PCBoard can now be set to create a USERS.SYS file prior
         to running $$LOGON.BAT and it will read in and process the USERS.SYS
         file when done.

 changed It is now possible to set the default for the "Do you want graphics"
         question to YES.  While this is not recommended, it has been a highly
         requested feature so those who want to do it may.

         This is done by answering 'Y' to the "Default to Graphics at Login"
         question in the PCBSetup : Configuration Options : Switches screen.

         NOTE:  If you make this change, you must also edit your PCBTEXT file
         to change record #149 so that it will properly reflect the default
         you have selected.

 added   A new ONLINE PACK capability.  You can now pack your users file
         without taking the system offline - similar to packing message bases
         without taking the system down.

         Online packing of the users file is many times more complicated than
         the online-pack of MSGS, which simply waits until the MSGS file is not
         in use and then forces people to stay out until the packing process
         terminates.  The users file, however, is constantly in use by callers
         who are already online as well as existing and new callers who were
         not connected at the time the pack processed started but may be online
         before the process ends.

         The online pack can be started either interactively via a separate
         menu option ("pack" versus "pack while online").  Or it can be started
         using a new command line option:  /PURGE

         The /PURGE command is identical in syntax to the /PACK command with
         the same subcommands, etc.

         NOTE:  Online packing cannot be used when the ALIAS PSA is installed
         in your system.

 added   PCBoard Supported Allocations (PSAs).  These are similar to the
         Third Party Allocations (TPAs) which are data areas reserved inside
         the USERS.INF file for Third Party Applications to use.  The PSAs are
         directly supported by PCBoard in PCBSM.  More so than are TPAs which
         are simply allocations.  A PSA is different in that not only is the
         space allocated, but PCBoard and PCBSM actually use the space.  The
         allocations implemented in version 15.0 are the following:

              Alias Support
              Full Address Support
              Password Changing Support
              Verification Support
              Caller Statistics Support

         Installation of a PSA is similar to installing a TPA.  From the
         Users Info File Maintenance menu option of PCBSM, you select "Add
         PCBoard Supported Allocations" and then pick which one you want to
         install.  You can install any or all of them, or none of them.

         If a PSA is installed, then PCBSM will show it when editing the
         Users File.  To get to the PSA screen simply press the F2 function
         key to rotate views (Short Form, Long Form, Conference Form, then
         the PSA Forms, one for each PSA installed).

         For example, if you install the Alias Support, then after getting to
         the Conference Flags screen in PCBSM's Users File Editor, one more
         press of the F2 function key will take you to the Alias Support Form.
         If you have also installed Caller Statistics (but NO others), then
         the next F2 keypress will take you to the Caller Statistics Form.

         After installing Alias Support, PCBoard then allows the caller to
         select an Alias using the (W)rite User Info command.  Similarly,
         with Caller Statistics Support installed, PCBoard will gather
         statistics about the callers to the system while they are online.

         The same idea holds true for the rest of the TPAs.  If you decide to
         install them, then they become functional in both PCBoard and PCBSM.
         If you system has no need for them, then you need not install them,
         nor 'waste' the disk space that they would otherwise use.

 added   Alias Support on a per-conference basis in PCBoard.  Allowing callers
         to use an alias requires three steps:

         1) You must first run PCBSM, select "User Info File Maintenance", then
            select "Add PCBoard Supported Allocations", then select "Add Alias
            Support".

            This step adds a PSA (similar to a TPA) into the users.inf file.
            The only major difference is that the PSA is directly supported by
            both PCBoard and PCBSM.  That is, callers can use PCBoard to set
            their Alias when logging in for the first time or by using the
            (W)rite User Info command, or the sysop can use PCBSM to edit the
            alias (via the Users File Editor).

         2) Then you must inform PCBoard which conferences allow aliases to be
            used.  Do this by going into PCBSetup, then go to the Conference
            configuration screen, then press PGDN to go to the switches screen.
            Answer 'Y' where it asks "Allow aliases to be used".

         3) Then you must select which security levels will be allowed to use
            an alias by editing your PWRD file.  Press the F2 key, once inside
            the PWRD file editor, and answer 'Y' in the Alias column for each
            security level that should be allowed to use an alias.

         Once the Alias Support PSA is installed the 'feature' becomes active
         and not before.  For instance, after having installed the Alias
         Support the F2 function key inside the PCBSM Users File Editor will
         now take you to a 4th screen allowing you to see/edit the Alias Name
         the caller has chosen.  Without installing the Alias Support PSA,
         however, that screen is not available and the Allow Aliases to be used
         setting, in PCBSetup, is completely ignored by PCBoard.

         When a user selects an alias, the alias chosen cannot duplicate the
         name of another user on the system, nor can it duplicate the alias of
         another user.  Aliases must be unique.  The User Index Files hold both
         user names and aliases to accomodate easy locations of either the
         user-id or the alias.

         If PCBSetup :  Configuration Options :  System Control :  Allow Alias
         Change is set to NO then once the Alias has been chosen it cannot
         be changed except by leaving a comment to the sysop and asking the
         sysop to change the alias.

         A caller who has chosen an alias may log onto the BBS using either
         his real user-id or by using the alias.  The password remains the
         same in either case and PCBoard will properly pick up the record that
         belongs to the caller.  However, the alias itself will not be used
         unless and until the caller joins a conference that has aliases
         enabled.

         The alias is not actually used until the caller joins a conference
         that is flagged for "Allow Aliases to be used = YES".  When joined,
         the caller is shown a message stating "Hiding identity, please
         wait...".

         The user can disable the alias and return back to using his regular
         user-id at any time by typing "ALIAS OFF".  Or by typing "ALIAS ON"
         it can be re-enabled.  Simply typing "ALIAS" without the words ON or
         OFF will toggle the current setting.  This command can be used either
         at the main command prompt or while reading messages.

         If PCBSetup : Node Configuration : Show Alias Name in WHO Display is
         set to YES then, as a caller moves into an Alias-Allowed Conference,
         the USERNET file will be updated to show the caller's alias, and when
         the caller moves out of an Alias-Allowed Conference it will revert
         back to the caller's real name.  NOTE:  PCBoard delays this update
         with a blank "Logging into system" status to hide the identity
         change.  After approximately 1 minute, the WHO display will then
         reflect the change in the caller's name (or alias).

         NOTE:  Sysops, or those who have access to Sysop Function 11, can
         still see the name of the user when Sysop Function 11 is utilized.

         Whenever the caller's online name is changed (whether changing to the
         alias or changing back to the user-id) the change is written to the
         callers log.  Also, any changes (in the alias) are written to the
         callers log as well as any attempted changes.  An attempted change is
         one where the caller tries to use a name which already exists.

         While inside a conference where aliases are allowed, the security
         level requirement for the USERS command is changed to become equal to
         that which is required to use Sysop Function 7.  This allows the sysop
         to continue to use the USERS command while making it impossible for
         callers to use it.  This is to avoid the possibility of having a user
         compare logon dates/times or name ordering in the USERS list seen
         outside of the conference with a USERS list that might be seen inside.

         In addition, the City/State information normally shown in a WHO
         display is blank when a user changes to his alias (by joining an alias
         conference).  This, again, is to hide the information so that callers
         who are online do not simply compare the city/state information to
         determine who another caller is.

         Messages addressed to the Aliased Name function identically, when
         notifying a caller of new mail, as messages addressed to the actual
         user-id.

         When viewing a user's record online via Sysop Function 7, the Alias
         will be shown if the caller has chosen one.

 added   Full Address Support in both PCBoard and PCBSM.  This is another PSA
         (see above) and requires that you first install it via PCBSM.

         Installation requires that you first run PCBSM, select "User Info File
         Maintenance", then select "Add PCBoard Supported Allocations", then
         select "Add Full Address Support".

         Once installed, new users will be asked to enter their full address
         information.  The actual questions asked, like any other PCBoard
         prompt, may be changed using MKPCBTXT to edit the PCBTEXT file.  The
         default questions are:

             Street (1 of 2)
             Street (2 of 2)
                        City
                       State
                    Zip Code
                     Country

         If any question (in PCBTEXT) is blank it won't be asked.  The answers
         can be modified by 1) the user, using the (W)rite User Info command,
         or 2) by the sysop, using PCBSM's Users File Editor.

         A Login-PPL could be written and used to ask existing callers, those
         who registered before the Full Address Support was added into the
         system, to enter their address information.

         When viewing a user's record online via Sysop Function 7, the Full
         Address information will be shown if the caller entered it.

 added   Password-Changing Support in both PCBoard and PCBSM.  This is another
         PSA (see above) and requires that you first install it via PCBSM.

         Installation requires that you first run PCBSM, select "User Info File
         Maintenance", then select "Add PCBoard Supported Allocations", then
         select "Add Password-Changing Support".

         Once installed, PCBoard will keep track of when your callers change
         their password (the last date changed), the number of times they have
         changed it, and the last three passwords used.  It will prevent them
         from selecting any of the previously used passwords.  You can view
         this information from PCBSM's Users File Editor.

        NOTE:  The password history is updated at most ONCE PER DAY.  In
        other words, if a caller updates his password three times in one day,
        the password history will NOT be updated all three times.  Only the
        first time, on that day, will the history be updated.  This is on
        purpose.  It avoids letting a caller "flush the password history"
        simply by changing his password multiple times.  Were it not for this
        restriction, it would be a simple matter for a caller to change his
        password 4 times and be right back to his ORIGINAL "unchanged"
        password.

         An additional field in the Password Support is an expiration date.
         You can set this date to force a caller to change the password as of
         that date.

         New callers to the system will have their expiration date set to the
         specified number of days after their first login.  Existing users
         will have their expiration date set to the specified number of days
         after their first login with the Password PSA installed.

         In addition, a setting is provided in PCBSetup : Configuration
         Options : Limits for the number of days between FORCED password
         changes.  If this setting is non-zero then PCBoard will require the
         caller to change the password when logging in after the expiration
         date of the password.

         New callers to the system, after the PSA is installed, will have the
         Login Date in the "Last Change Date" field.  And if a "forced change"
         period is specified in PCBSetup then the expiration date will be that
         many days from the caller's first logon date.

         You can warn the caller of the up coming need to change the password
         by setting the number of warning days to some value larger than zero.
         PCBoard will then display a PCBTEXT record informing the caller of the
         need to change the password.  This PCBTEXT record, like most PCBTEXT
         records, could be modified to run a PPL program.  This PPL program
         could be written to verify if the caller is "live" or "automated" and,
         if making an automated mail run, the program could write the user a
         message that might then be included in the packet the caller is about
         to download.  (NOTE:  A sample PPL is posted as PWRDWARN.ZIP)

         Setting the callers expiration date to a date prior to the current
         date effectively forces the caller to choose a new password on the
         next call.  Setting the expiration date to a date far into the future
         effectively disables the expiration feature.

         NOTE:  Callers who call in using automated systems MAY NOT BE AWARE
         of this change and may waste several calls before noticing that the
         reason they cannot get their mail is because they need to update their
         password.  You may want to use this feature sparingly.  (set the
         Number of DAYS to Forced Password Change to either 0 or to a high
         number, and perhaps set the number of warning days high just to give
         the caller a chance to see the warning in a "live" call sometime
         prior to the password's expiration date).

 added   Verification Support in both PCBoard and PCBSM.  This is another PSA
         (see above) and requires that you first install it via PCBSM.

         Installation requires that you first run PCBSM, select "User Info File
         Maintenance", then select "Add PCBoard Supported Allocations", then
         select "Add Verification Support".

         Verification Support is intended to help you, the sysop, ensure that
         callers are not sharing accounts and that the caller is legitimate.

         The default text for the question asked is set to ask for the maiden
         name of the caller's mother.  This could be set to ask for birthdate
         instead, if desired.

         A login-PPL could be written/used which could later ask the caller
         for the information provided during login.

 added   Caller Statistics Support in both PCBoard and PCBSM.  This is another
         PSA (see above) and requires that you first install it via PCBSM.

         Installation requires that you first run PCBSM, select "User Info File
         Maintenance", then select "Add PCBoard Supported Allocations", then
         select "Add Caller Statistics Support".

         Once installed, PCBoard will track such items as:  the first date on,
         the number of times the caller has paged the sysop, used the group
         chat facility, left comments to the sysop, violated security,
         attempted to join conferences for which the caller does not have
         access, password failures, the speed of the caller, and more.

         This information is only viewable from PCBSM's Users File Editor.

 added   Caller Notes Support in both PCBoard and PCBSM.  This is another
         PSA (see above) and requires that you first install it via PCBSM.

         Installation requires that you first run PCBSM, select "User Info File
         Maintenance", then select "Add PCBoard Supported Allocations", then
         select "Add Caller Notes Support".

         Once installed, PCBSM will let you enter up to 5 lines of up to 60
         characters each of information about the caller.  This information
         cannot be seen or changed by the caller.  PCBoard will display the
         information to the sysop when using Sysop Function 7, however, it
         can only be updated using PCBSM's Users File Editor.

 changed With the addition of PSAs into the system, PCBSM's ALT-S Searching
         capability (inside the Users File Editor) has now been extended into
         the PSAs that are installed.

         For example, you can now hit ALT-S and tell it to search for a street
         address and it will search the Full Address PSA.

         NOTE:  This requires that not only the USERS file be searched, but
         that the USERS.INF file be searched as well.  This is a tremendous
         performance hit.  With that in mind, PCBSM will ask you whether or not
         you want to search through PSAs.  If you know that the data you are
         looking for is perhaps a name or a city or phone number (information
         that is in the main user record) then answer NO to the question.  If
         there is a good chance that the information *is* in the PSA then
         answer yes and then take a break.  :

 info    The disk space required for each installed PSA is outlined below:

             PSA          Static Allocations
             ----------   ------------------
             Alias                25
             Address             160
             Password             42
             Verify               25
             Statistics           30
             Notes               300

         For example, the Alias PSA requires 25 characters per user record.  So
         if youhave 1000 users in your users file it will take up 25,000 bytes
         in your users.inf file.

         None of the PSAs use dynamic (per conference) allocations, so it
         doesn't matter how many conferences you have.

 added   The ability to exclude local logins from PCBoard's statistics.

         When setting "Exclude Locals from Stats" (in PCBSetup :  Configuration
         Options :  Switches) to 'Y' PCBoard will not record the caller number
         in the callers log, it will not count the number of logins (either the
         system count or the call waiting statistics count), it will not count
         messages entered, nor files upload or downloaded (on the call waiting
         screen).

         However, the callers log will still show that a local login was made.
         This remains necessary for security issues.

 added   FOSSIL Support in the PCBoard/M software.  This allows PCBoard/M
         customers to use hardware that is not yet supported by COMM-DRV *if*
         a FOSSIL driver for that hardware happens to be available.

         We still recommend COMM-DRV as a faster and more reliable interface.
         But if COMM-DRV doesn't support the card you have, now you have an
         alternative that you can try.

         PCBSetup has been modified adding a new field in the Modem Information
         screen where you specify A, C or F as the type of driver to be used.

           A = ASYNC      <-- the only choice when using regular PCBoard
           C = COMM-DRV
           F = FOSSIL

 changed The USERS.SYS file that PCBoard creates for DOORS is now larger than
         it was when v14.5 and v14.5a created the file.  The file specification
         specifically allows for this to happen, however, some DOOR
         applications were not properly written to take into account the
         dynamic sizing nature of the USERS.SYS file.

         To allow for compatibility with DOORS written for v14.5 or v14.5a,
         the DOORS.LST file now allows Y, N or O to be entered in the USERS.SYS
         column.  Choosing the letter O indicates that the USERS.SYS file
         should be created in the v14.5 format, without the extra information
         that is new for v15.0.

 changed Modified the SELECT command so that if you select (or deselect) a
         conference that is not currently on the screen, PCBoard will attempt
         to put that conference on the screen upon completion of the command.

 changed Given the following information in PCBSetup :  Subscription screen:

            Enable Subscription Mode              : Y
            Default Subscription Length in Days   :    0   <---- set to ZERO
            Default `Expired' Security Level      :   9
            Warning Days Prior to Expiration      :   30

         PCBoard will now allow subscription mode to be enabled while
         DEFAULTING NEW USERS to 00-00-00.

         Setting the subscription length to anything other than zero will
         result in the normal addition of days to the new user's logon date
         when setting the subscription period.

 changed Sysop Functions 3 and 8, which pack the message bases and users file,
         respectively, have been modified to take more of a backseat to their
         offline counterparts:  PCBPACK and PCBSM.

         In actuality, both Sysop Functions 3 and 8 call PCBPACK and PCBSM to
         do their work.  However, they no longer provide feedback (while
         processing) to the user if the user is online from REMOTE.  It is
         highly recommended that sysops uses the EVENT system to pack their
         message bases and users file.

         Meanwhile, Sysop Functions 3 and 8 remain in v15.0 to allow for those
         quick and dirty times when you need to quickly pack a single message
         base or pack the users file.

         Both of these options may now be used WITHOUT having to having to take
         the system down.  Sysop Function 8 still requires that only the SYSOP
         (record #1 in the users file) use it, but it is now okay to pack the
         users file without taking all of the nodes down prior to performing
         the pack.

 added   PCBoard will now auto-detect Netware systems which means that the
         SET PCB=/NMT switch is no longer necessary.

 added   RIPscrip support.  RIPscrip is a standard similar to ANSI except that
         it runs in graphics mode on the caller's side.

         If you answer with the letter 'R' at the "Do you want graphics" prompt
         PCBoard will now look for _____R files similar to the way answering
         'Y' causes PCBoard to look for ______G files.  For example, you can
         create a WELCOMER file and it will be displayed instead of your
         WELCOMEG or WELCOME files if the caller is in RIPscrip mode.

         PCBoard has been set up to look first for the 'R' files, then if an
         'R' version is not found it will look for a 'G' file and display it.
         Of course, if no 'G' version exists then it will display the
         non-graphics version.

         The (M)ode command has a new sub-command "RIP".  You can type "M RIP"
         to turn RIPscrip mode on at any time.

         NOTE:  The callers log and status lines will now show 'R' for RIPscrip
         mode.

         With RIPscrip support it may often be desirable to remove the "?  ( )"
         characters when displaying a PCBTEXT prompt.  To accomodate this,
         PCBoard will avoid displaying these characters on any prompt that ends
         with an underline charactter.  Example:  "Enter a comment to sysop_"
         would avoid adding "?  (N)" when prompting the user for input.

 changed Increased the speed at which PCBoard locates display files.

 info    The following are the current ERRORLEVELS supported and returned by
         PCBoard:

               0 = normal exit at sysop request
               1 = exit to dos for the event
               2 = exit to dos for a door
               3 = exit to dos for remote dos operation
               4 = exit to dos to run pcbpack
               5 = exit to dos caused by caller saying goodbye
               6 = exit to dos to recycle through board.bat
               7 = exit to dos to handle incoming FAX
              99 = an error occured which dropped it to dos, board.bat will
                   recycle the system
