Metropoli BBS
VIEWER: what's.new MODE: TEXT (CP437)
Fri  12-11-1992


Ver 3.55

* Due to another SysOp's suggestion, I have made the following new variables
  available for your key word replies:

  *PASSWORD*         - replaced by caller's password.

  *PHONE*            - replaced by caller's phone number.

  *SECURITY*         - replaced by security level.

  *TIMEENTERED*      - replaced by time the caller entered SHAMpage.

            ┌───────────────────────────────────────────────────────┐
            │ ADDITIONAL VARIABLES AVAILABLE ONLY IF USING DOOR.SYS │
            └───────────────────────────────────────────────────────┘

  The variables above work whether you are using DORINFOx.DEF or DOOR.SYS as
  your drop file. The following variables work ONLY if you use DOOR.SYS
  (DORINFO doesn't contain this information):

  *BIRTHDATE*        - Caller's date of birth (00/00/00).

  *DOWNLOADS*        - Caller's total downloads from your board.

  *LASTCALLED*       - Date the caller last called.

  *TIMESON*          - Number of times the caller has called your board.

  *UPLOADS*          - Caller's total uploads to your board.


  As always, all variables are enclosed in asterisks (*) and are always UPPER
  CASE (except *KEYWORD* and *TIMEOFDAY*, as noted below).

* Updated Maintain.Exe to reflect these changes.


Ver 3.51

* Minor bug initializing the FOSSIL drivers in local mode fixed.


Ver 3.50


* Added FOSSIL support via the command line parameter FOSSIL.

  EXAMPLE COMMAND LINE: SHAMpage Shampage.Cfg FOSSIL

  SHAMpage now has a mode where it will operate with FOSSIL drivers (INT 14h
  interface). Using FOSSIL mode allows you to use virtually any type of
  communications hardware, since the type of hardware accessed is dependant
  on the FOSSIL driver. This mode requires that you have a FOSSIL driver
  loaded in advance. If in FOSSIL mode, that information is shown on the
  local line 25 status line.

* Added support for extended IRQs via the command line switch IRQ=x, where x
  equals the IRQ number you wish to use. Shampage supports IRQ 1 - 15.

  EXAMPLE COMMAND LINE: SHAMpage Shampage.Cfg IRQ=7

  The following port addresses and default interrupts are used normally:

               Comm      Base Address        IRQ (Default)

                1          3F8 hex            4
                2          2F8 hex            3
                3          3E8 hex            4
                4          2E8 hex            3

  Specify an IRQ value of 1 through 15 when you want to use an IRQ value
  other than the default, such as when you want to use IRQ15 with COM3.

  NOTE:
  Be careful when choosing an IRQ value other than the default. Most machines
  use some of the other IRQ inputs for other machine functions such as the
  hard drive and system clock. SHAMpage DOES NOT chain the interrupt, it
  takes it over entirely. If you choose an IRQ that is used for something
  already, your machine will most certainly operate improperly.

  No IRQ value is necessary in FOSSIL mode since all communications tasks are
  handled outside of SHAMpage. The IRQ is determined at the time the FOSSIL
  driver is installed.


Ver 3.26

* Received a report that under certain specific conditions (running under
  Windows - with a DOS window in the background), the delays for the opening
  page bell were taking too long. Changed the method of calculating those
  delays.


Ver 3.25

* Added another variable: *TIMEOFDAY* which is replaced, depending on the
  time of day, by one of three words - "morning" (12:00am to 11:59am),
  "afternoon" (12:00pm to 5:59pm), or "evening" (6:00pm to 11:59pm). Like
  *KEYWORD*, this variable comes in three styles. If it is in the data file
  in all upper case, e.g. *TIMEOFDAY*, the substituted word will be typed in
  all CAPS: MORNING, AFTERNOON or EVENING. *timeofday* will be replaced by
  morning, afternoon or evening, and *Keyword* will use Morning, Afternoon or
  Evening. This variable works fine in OPENING LINES, EXITMSG and NOMATCH
  replies as well as in KEYWORD responses.

* This was my week to work on SHAMPAGE.LOG. Changed the log to be a little
  more informative. Added the user's age (if using DOOR.SYS) and location to
  the log. Date entries no longer include the year and time entries no longer
  include the seconds (the same is true in SHAMPAGE.ERR). Here is a sample of
  the new log entry:

===============================================================================
MARLON BAILEY (Age 13), Coral Springs, FL entered SHAMpage on 09-07 at 17:28
SHAMpage v3.25 is using SHAMpage.Dat
===============================================================================

* Decided the "->" in the log was pretty hard on the eyes, so I changed it to
  a simple colon (:).

* Changed the log entry when SHAMpage doesn't pick up the page due to the
  caller not having enough time-left. It was not logging the user's name and
  was not differentiating clearly enough from other log entries. Here is what
  is logged now:

===============================================================================
MICHELLE TUOHY (Age 21), Hollywood, FL paged SysOp on 09-07 at 02:08
Page not answered by SHAMpage v3.25 (caller had 2 minutes left)
===============================================================================
SHAMpage terminated normally at 02:08


Ver 3.24

* Added a new variable: *KEYWORD* which is replaced by the word SHAMpage
  matched, regardless of whether it was a KEY WORD or an ALIAS. This is so
  you can make reference to the exact word the user typed in your replies.
  This variable comes in several flavors. If it is all upper case, like the
  example above, the variable itself will be typed in all CAPS. *keyword*
  will be replaced by the variable in all lower case letters, and *Keyword*
  will have the First Letter Only Capitalized.

  NOTE: this variable is obviously useless in OPENING LINES, EXITMSG and
  NOMATCH replies, since no match was found. (So DON'T use it there!)

  Here is an example:

;----------------------------------------------------------------------------
;                                  KEY WORD #1
;----------------------------------------------------------------------------
AWESOME
*ALIAS* COOL
3
*Keyword*, huh? You have a great vocabulary.
You're pretty *keyword* yourself, dude!
I'm surprised you can spell *KEYWORD*, *USER*.


If the caller types "This is a cool board", SHAMpage replies:

                "Cool, huh? You have a great vocabulary."
                                or
                "You're pretty cool yourself, dude!"
                                or
                "I'm surprised you can spell COOL, Joe."


* Since the original release of the program, I had been deducting one (1)
  minute from the user's time-left to allow for proper log off from the BBS
  after SHAMpage terminates. Due to the availability of the new TIME=x
  command-line parameter, I discontinued this practice. Now it's completely
  up to you to decide how much of his time-left you want to allow the caller
  to spend in the door. As far as SHAMpage is concerned, he can spend it ALL,
  unless you tell it otherwise via the TIME=x switch.

* Updated MAINTAIN.EXE and the data files to make use of the new *KEYWORD*
  variables.


Ver 3.23

* If the caller has less than five (5) minutes left, SHAMpage will no longer
  pick up the page. It goes through the "Paging SysOp... 1   2   3  "
  routine, then sends the hard-coded message:

              [SysOp First Name] is not available at the moment.
              Please leave a [C]omment or try again later.

  It seemed rather silly to pick up the page only to kick the caller off
  immediately. Now, when SHAMpage does pick up the page, the caller will have
  at least five minutes to "chat".

* Changed how SHAMpage exits when the caller runs out of time. Instead of
  being unceremoniously dumped with no warning, the caller receives the
  "Nice chatting with you" message and goodbye screen as if the door had
  terminated in any of the other normal ways, such as the caller entering
  "Bye". If the caller does not press a key within three (3) minutes while
  SHAMpage is expecting remote input, however, the door still exits directly
  back to the BBS, bypassing the goodbye message and screen. If the caller
  hasn't hit a key in three minutes, presumably he fell asleep!


Ver 3.22

* Fixed illegal function call if the caller had a one-word name or handle.
  Also made it possible for the SysOp to use a one-word name or handle (leave
  line 3 blank in the config file).

* Added a new (optional) command-line parameter to limit the caller to only a
  certain percentage of his time-left in the door. I found that many of my
  callers were spending their entire time in the door and were immediately
  logged off upon their return to the BBS, leaving them no time to enter a
  [C]omment to SysOp. The new parameter is "TIME=x", where x represents the
  percentage of the caller's time-left you want him to be in chat. An example
  command line:

  SHAMpage SHAMpage.Cfg TIME=80

  Using this example, if the caller has twenty minutes left when he pages,
  SHAMpage will chat with him for sixteen minutes (80% of 20) before sending
  him back to the board with four minutes online time remaining. If you
  choose, you can even INCREASE his time in the door by making x larger than
  100 (although, be warned... he will be dumped by the BBS upon his return to
  the board!)

  While tinkering with the time routines, I modified some to make them more
  reliable.

* Added Jeff Sumberg's QBSERIAL copyright credit to the opening screen.


Ver 3.21

* Added the second-most requested feature: the ability to send multi-line
  responses. This is accomplished with a new variable: *LF* (line-feed). If
  *LF* occurs within a response in the data file, the line will be split at
  that point, a line-feed will be sent and the rest of the response will be
  typed on the next line. The entire response must occupy ONLY one line in
  your data file however, and the length of the line is limited to 255 total
  characters. Multiple *LF*'s on a single line are supported. Here is a line
  which is 88 characters long (notice the lack of carriage return within the
  line itself) from the sample SHAMPAGE.DAT:

My head hurts, my feet stink, and I don't love Jesus, *USER*. *LF* How's your day going?

  This response will be typed as the following two separate lines:

My head hurts, my feet stink, and I don't love Jesus, Joe.
How's your day going?

  To see another example, fire up SHAMpage and type shampage a few times!

* Added another variable: *ALIAS*. This allows you to use the exact same set
  of responses with several different key words. The format is as follows:
  In your data file, on the next line(s) after the key word, you may have up
  to five (5) *ALIAS* key words. These are alternative key words to which
  SHAMpage will make a positive match and send one of the replies to the
  related key word. There are many advantages to this. If you utilize the
  *ALIAS*'s, SHAMpage will match more key words (up to 600, instead of the
  original 100 limit), the data file can be smaller and SHAMpage will not
  repeat itself as often since you do not need separate entries for different
  key words which are synonymous anyway. Here is a clip from the sample
  SHAMPAGE.DAT:


;----------------------------------------------------------------------------
;                                  KEY WORD #1
;----------------------------------------------------------------------------
FUNNY
*ALIAS* HA HA
*ALIAS* HAHA
*ALIAS* JOKE
*ALIAS* LAFF
*ALIAS* LAUGH
5
Funny stuff, huh?
So you think that's funny, huh? You're warped!
Sometimes I kill myself!
What a sense of humor...
You think that's funny? Try looking in the mirror, *USER*!
;----------------------------------------------------------------------------


  If the caller enters a string matching "HA HA", "HAHA", "JOKE", "LAFF" or
  "LAUGH" it will be treated exactly the same as if he entered "FUNNY".
  Note the format: *ALIAS*'s come between the key word and the number of
  responses.

* Modified file access to make SHAMpage multi-node aware. Here are examples
  of the way I have the various files set up for two nodes on DrawBridge:

  MAIN1.BAT

        @Echo Off
        Echo       * Paged sysop (SHAMpage) >> C:\Wc30\Activity.00%Wcnodeid%
        Cd \Doors\Shampage
        Shampage Shampage.%Wcnodeid%

  SHAMPAGE.1 (renamed from SHAMPAGE.CFG)

        DrawBridge BBS
        RICH
        WAUGH
        C:\Wc30\Wcwork\Node1\Door.Sys
        SPLIT
        SHAMpage.Dat
        SHAMpage.001
        1
        3
        23:00
        08:00

  SHAMPAGE.2 (renamed from SHAMPAGE.CFG)

        DrawBridge BBS
        RICH
        WAUGH
        C:\Wc30\Wcwork\Node2\Door.Sys
        SPLIT
        SHAMpage.Dat
        SHAMpage.002
        1
        3
        23:00
        08:00

* Revised MAINTAIN.EXE to handle the new *ALIAS* variable correctly. It now
  auto-detects if it's working on an old format data file or one which has
  already been converted. One less decision for all you harried SysOps. More
  kinds of errors are now detected and last, but not least, it is so much
  prettier! <grin>.


Ver 3.20:

* Added the feature that's been requested most often - the ability to send
  the contents of a text file upon a positive key word match. This is
  implemented using a new variable in the data file as follows: if the left-
  most string in a key word reply is *FILE* (as always, upper case with the
  asterisks), SHAMpage will open a file matching the name on the remainder of
  that line and "type" its contents to the caller. If this is unclear, look
  at SHAMPAGE.DAT, under the key word REGIST. You will see something similar
  to the following:


;----------------------------------------------------------------------------
;                                  KEY WORD #1
;----------------------------------------------------------------------------
REGIST
1
*FILE* Sendit.Asc
;----------------------------------------------------------------------------


  In this case, when SHAMpage finds the string REGIST it looks at the key
  word reply and sees *FILE*. That tells it to send the caller the contents
  of a file. Next, it reads the remainder of the line for the name of the
  file to access, which in this case is SENDIT.ASC. That file is opened, read
  and closed. Its entire contents are then typed, line by line, to the
  caller. If the file does not exist, SHAMpage will error out (and log the
  reason for the error in SHAMPAGE.ERR). There is no limit, other than the
  normal limit of ten (10) replies per key word, to the number of different
  *FILE*'s you can use. You should be aware that, in split-screen mode, if
  *FILE* is over nine (9) lines in length, the first line(s) will be over-
  written by the last one(s) after the lines wrap at the end of the SysOp
  screen. In full-screen mode, *FILE* can be up to twenty-one (21) lines
  before the first line(s) scroll off the screen.

* Added the option to use two different data files: one for normal day time
  use, the other for late night hours (as defined by the times you have the
  page bell turned on or off). If SHAMpage finds a file named MIDNITE.DAT
  in your SHAMpage directory, it will be used instead of the regular data
  file whenever the page bell is turned off. If SHAMpage cannot find
  MIDNITE.DAT, your regular data file will be used. Whichever data file is
  used is noted in SHAMPAGE.LOG.

* The typing routines in Split-Chat mode have been completely redone, to
  better handle multiple-line entries. When the cursor line reaches the
  split-screen limit the line wraps back up to the top of the current screen.
  This prevents, among other things, the SysOp inadvertently overtyping the

  ▓▓▓▓▓▓▓▓▓▓▓SysOp Name▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓User Name▓▓▓▓▓▓▓▓▓▓▓

  line and keeps the cursor always in the correct screen. Whenever the cursor
  reaches column 80, a line-feed is sent and the next two lines are cleared.
  Restored the cursor position correctly when going to and from live chat and
  nuked an extraneous input required of the caller after returning from live
  chat. The [F7] and [F8] keys now operate seamlessly.

* Changed the DOS prompt when dropped to DOS to remind you that you are in a
  shell.

* Memory requirements have been slightly decreased.

* Bug Fixes: Repaired the "Error 5: Illegal function call" which sneaked into
  some intermediate versions between v3.14 and v3.15. When multiple *USER*
  and/or *TIME* variables appeared on the same line, only one was translated
  properly. All occurrences of these variables are now converted. Cleaned up
  a minor screen scroll problem on the goodbye screen. Moved the cursor to
  the end of the "Press [ENTER]... " prompt and turned the cursor "on" on the
  local screen. The proper lines were not always erased prior to the key word
  responses being typed. This has been corrected.


Ver 3.13:

* The local screen is now saved, and restored after the SysOp drops to DOS or
  views User's Stats.

* Made [F7] "Live Chat On" and [F8] "End Live Chat" keys hot from anywhere
  AFTER the opening greeting and PRIOR to end of chat. Enabled those keys in
  local mode. All functions, with the obvious exception of the comm routines,
  are now fully enabled in local mode.

* Typo's now appear anywhere in the line. Varied the amount of time it takes
  the "SysOp" to recognize a typo and correct it.

* Appended "am" or "pm" to the translation of the *TIME* variable.

* Added new information to SysOp's line 24: caller's location and (if using
  DOOR.SYS) his age.

* "SysOp has control...", etc. is no longer printed on the local screen each
  time it's the Sysop's turn to type while in full-screen chat mode. Toggled
  "[F7] Live Chat On" with "[F8] End Live Chat" on line 25. New command-line
  parameters force full-screen or split-screen chat mode. The new parameters
  are FULL and SPLIT. The syntax is: SHAMpage SHAMpage.Cfg FULL/SPLIT.

* Error messages were made much more specific; if an error occurs, please
  read SHAMPAGE.ERR. The answer to your problem is probably logged. If you
  have trouble deciphering the problem by yourself, feel free to send me your
  SHAMPAGE.CFG, SHAMPAGE.DAT and SHAMPAGE.ERR files. I'll try to replicate
  the error and see if I can help. This still does NOT entitle you to bitch,
  though! <grin>


Ver 3.10:

* SHAMpage now checks the caller's time-left and updates the SysOp screen
  more often. The time-left warnings to the caller have been discarded, since
  they are rather meaningless in "chat" anyway and their main effect was to
  alert the caller that he was in a door instead of live chat. The caller
  will still get booted out of the door when he runs out of time. While
  rewriting this routine, I noticed and fixed a misplaced input-timer
  routine. The door now terminates as it should after 3 minutes of input
  inactivity.

* Added a new variable to be checked in the data file. The variable name is
  *TIME* (upper-case, with the asterisks). If this string occurs anywhere
  within the line, the current time, in 12-hour format, will be substituted
  in that position.

* Added a new option to run SHAMpage locally, from the command line. The
  syntax is: SHAMpage SHAMpage.CFG LOCAL

* Key word search & match routine modified to work faster and more reliably.

* Typo & correction routine redone. Typo's now vary more in length and
  SHAMpage will no longer make a typo of a non-letter. Corrections no longer
  make typos themselves.

* Wrote a new routine to restore the proper screen colors after use of one of
  the SysOp hot keys. Made some minor color changes to lines 24 & 25. Also
  changed "Press [ENTER] to continue" prompt to "Press [ENTER] to return to
  BBSname".

* Fixed some errors in the disabling of IRQ masks on the Interrupt Controller
  when exiting SHAMpage. This could cause certain BBS's which don't reset the
  port when returning from a door to appear to "lock up" when they regained
  control.

* Cleaned up, optimized and reduced the size of the code. SHAMpage is now
  nearly 20% smaller and loads and executes much faster.


Ver 3.05:

* Made the "exit" message configurable. If SHAMPAGE.DAT contains the Key Word
  EXITMSG, its "keyword responses" (up to four lines) will all be sent, in
  order, upon door termination. If EXITMSG does not appear as a key word, the
  default hard-coded exit message will be used.

* SHAMpage now checks for a variable in the data file so you can personalize
  your responses a bit more. You will find that the more personal your
  responses, using such things as your real name, the caller's name and your
  board's name, the more believable the program becomes. The variable name is
  *USER* (upper-case, with the asterisks). If this string occurs anywhere
  within the line, the caller's first name will be substituted in that
  position. This affects the format of the opening lines, where the caller's
  name had previously been inserted automatically and necessitates changes to
  your SHAMPAGE.DAT file. Please see the enclosed SHAMPAGE.DAT for examples.

* ┌───────────────────────────────────────────────────────────────────────┐
* │ MAINTAIN.EXE HAS BEEN UPDATED TO CONVERT THE OLD SHAMPAGE.DAT TO THE  │
* │ LATEST FORMAT, WHICH SUPPORTS THE CHANGES NOTED ABOVE. BE SURE TO RUN │
* │ IT IF YOU INTEND TO USE YOUR OLD CUSTOMIZED DATA FILE.                │
* └───────────────────────────────────────────────────────────────────────┘

* Added support for DORINFOx.DEF drop file (refer to line 4 in SHAMPAGE.CFG).
  Due to the limited amount of information included in DORINFOx.DEF, the
  [F2] User's Stats function is not quite as informative in this mode.
  Support for other drop files can be implemented if there is sufficient
  interest.


Ver 3.02:

* Added some new means for the caller to exit SHAMpage: by entering G, Q, X
  or two consecutive empty lines.

* Reworked some I/O routines. The transmit buffer now works much better.

* Minor color change to match WildCat!'s chat.

* Initial release of MAINTAIN utility for maintaining SHAMPAGE.DAT


Ver 3.0:

* The comm routines have been completely rewritten to get around the poor
  communications support provided by QuickBASIC. SHAMpage now uses Jeff
  Sumberg's wonderful QBSERIAL library to handle all comm routines. We now
  have the ability to control COM1 - COM4 at speeds up to 115,200 baud. The
  serial driver includes XON/XOFF and CTS/RTS handshaking. Serial input is
  interrupt driven, with incoming XOFF flow control (if enabled) and/or RTS
  flow control (if enabled) to prevent overrunning the input buffer.


Ver 2.1:

* Added two (optional) lines to SHAMPAGE.CFG to allow enabling/disabling the
  page bell by the hour.

* Changed the page bell to more closely mimic WildCat!'s page bell.

* Changed the [F2] User Stats to be transparent to the caller.


Ver 2.0:

* Randomized key word responses so they come up in a different order each
  time the door is run. Previously, they always appeared in last-to-first
  order.

* Made new option for WildCat! split-screen chat emulation.

* Modified opening "Paging SysOp... " to mimic WildCat!'s

* Modified SysOp's lines 24 & 25 to show other options (which were in
  previous releases - but nobody knew about them).

* Rewrote documentation.

* Changed colors to match WildCat!'s

* Changed some other colors for cosmetic reasons.


Ver 1.1:

* Added "Delay Factor" to make the typing rate realistic on any machine.


Ver 1.0:

* First version released to the public.


[ RETURN TO DIRECTORY ]