



                    DCT Voting Door v0.40, eta Release
                             By Dan Traczynski
                                May 25, 1997

         Copyright (C) 1996, 1997 Dan Traczynski.  All rights reserved.





   DCT-Vote is a deluxe voting door for any BBS software which supports the
DORINFO1.DEF or DOOR.SYS drop file.  Setup is amazingly fast and easy, and
the voting door will be FreeWare until v1.0, after which it will become
shareware.




                           
                              Table of Contents
                           

               Features ................................... o1
               Installation ............................... o2
               SCRUTIL.EXE Explained ...................... o3
               SysOp Hotkeys .............................. o4
               Distribution & Disclaimer .................. o5
               Credits/Acknowledgments .................... o6
               Author's Notes and Support Info ............ o7
               History - Notes from the Past .............. o8



                                                                          o1
                    
                       Features of the DCT Voting Door
                    

 -- Supports both DORINFOx.DEF and DOOR.SYS allowing it to be run on
     virtually any bulletin board system.
 -- User time-out after a configurable amount of time.
 -- Auto-Deletion of old booths.
 -- Fully run by lightbars!
 -- Problem users can be locked out.
 -- Language support (not all of us speak English ;).
 -- External ANSI file support.
 -- Full-featured validation system allowing the SysOp to filter the
     unwanted booths out before they're made publicly available.
 -- Optional user censor (allowing you to filter out swearing).
 -- Bar graphs/percentages when displaying results.
 -- Users may leave their comments on each booth.
 -- Colour configuration.
 -- Internal SysOp-User full-screen chat mode.
 -- DCT-Vote can be set to have users vote for all new booths when they
     login.
 -- Users may be given vote points and vote for more than one answer.
 -- Multi-tasker capability.



                                                                          o2
                          
                             Installation Guide
                          

   Installation is extremely simple; all you must do is create a directory
for DCT-Vote, then run CONFIG.EXE to configure DCT-Vote to your system.  You
may also wish to edit DCTVOTE.FLT if you will be using the censor, as no
words have been pre-defined to filter out.  DCT-Vote does not have to be run
from the directory it resides in, since it automatically looks for all of its
files in its home directory.  Have your BBS call DCT-Vote via a command-line
similar to "C:\BBS\DOORS\DCTVOTE\DCTVOTE.EXE /PC:\BBS".  The "/P" parameter
specifies the path for DCT-Vote to read the drop file from and is only
required if the drop file will not be in the current directory.  If your BBS
supports memory swapping, please activate this option.

   If you would like to have your users presented with any new voting booths
when they login, have DCT-Vote executed at login with the "/A" parameter for
a command-line similar to "C:\BBS\DOORS\DCTVOTE\DCTVOTE.EXE /PC:\BBS /A".
DCT-Vote will have users vote for all new booths that they have not yet voted
for, then return to the BBS automatically.  If no new booths exist, DCT-Vote
will terminate without even letting the user know that it has been run.  You
may also specify "/A2" instead of "/A", and that would simply tell the user
how many questions he has not yet voted on, then ask him if he would like to
vote for them.  This way people would realize that the booths are there, but
they are not forced into them.  You may also specify "/A3" which acts the same
as "/A" but does not let users abort the voting (they can't hit ESC).


 Command-Line Parameters


 /A[1..4]  Invoke AutoVote (1=Vote for all new booths,
                               2=Prompt then vote,
                               3=Force users to vote on new booths,
                               4=Tell how many unvoted booths there are).
              If no number is specified, it defaults to "1".
 /Bxxx     Specify locked baud rate (i.e. /B38400).
 /Fxxx     Load alternate .IDX & .ASR files than the default ones.  For
              example, specifying "/FMOVIES" would load & use MOVIES.IDX/ASR.
 /L        Local mode (logs in with the SysOp's name).
 /Nx       Specify node number (not really needed unless you want it to
              read DORINFO2.DEF for node 2 etc).
 /Pxxx     Specify path to drop file (i.e. /PC:\BBS).
 /Sxxx     Specify user's security level.  This overrides anything that
              is specified in the drop file.
 /W        A DOS only network is present.


 Language Support


   New in v0.20, support has been added so that all strings can be modified
which allows the door to be translated into a different language altogether.
All of the internal strings can be modified from within CONFIG.EXE, and the
following imbedded codes may be used in the language strings.

  %U  User's name.
  %B  Title of the current booth being voted on.  On language prompts that
      would appear in places such as the main menu, this code is "undefined".
  %H  Number of booths user hasn't voted for yet.
  %A  Number of active booths.
  %S  Board name.
  %T  A temporary string that varies with each language prompt.
  %L  Name of the user's currently selected language.

   User logging is always done in the language that is configured as the
default one in CONFIG.EXE, even if a user selects a different language file.



                                                                          o3

                         
                            SCRUTIL.EXE Explained
                         

       SCRUTIL.EXE is the program which will allow you to customise the
    way DCT-Vote looks to the users.  It is completely command-line driven,
    and will import or export ANSI images to/from the screen definition
    file.


    Command-Line Parameters
   

     SCRUTIL [Def File] [/?] [/CREATE] [/ADD <Screen> <File Name>]
             [/EXTRACT <Screen> <File Name>] [/IMPORT [Ctl File]]
             [/EXPORT [Ctl File]]

    [Def File]

       The definition file is the image file that SCRUtil will work with
    and what DCT-Vote will load and use.  If it is not specified, the
    default DCTVOTE.VDS will be used.

    [/?]

       Displays a brief help screen summarising the commands.

    [/CREATE]

       Creates a default definition file with no images in it.  It is
    then up to you to add the images in.

    [/ADD <Screen> <File Name>]

       This option will add an ANSI file into the definition file.  The
    <screen> variable is the image number that the ANSI file will be added
    as.  <File name> specifies the ANSI file to add.

    [/EXTRACT <Screen> <File Name>]

       This option is the reverse of ADD.  Instead of adding the ANSI,
    SCRUtil will extract it and save it as <file name>.

    [/IMPORT [Ctl File]]

       This option will allow you to import a group of images at once.  In
    order to do this, you must first create a control file listing all of
    the file names and image numbers.  The format is the same as with the
    ADD parameter.  If [Ctl File] is not specified, the default SCRUTIL.CTL
    is used.  The following is a sample control file:

        0 SCR\HDR.ANS
        1 SCR\FTR.ANS
        2 SCR\MHELP.ANS
        4 SCR\PROGINFO.ANS
        7 SCR\LOGO.ANS

       If this were the file, HDR.ANS would be added as image 0, FTR.ANS as
    image 1, and so on.

    [/EXPORT [Ctl File]]

       This parameter is the reverse of the IMPORT parameter, and takes
    the same arguments as the IMPORT parameter.  If the above sample
    control file were used, image 0 would be exported to HDR.ANS, image 1
    would be exported to FTR.ANS, and so on.  A sample SCRUTIL.CTL file
    has been included with this archive.


    Imbedded Codes
   

       There are two different types of imbedded codes that may be used
    in the image files.  The first type is a simple "@" followed by a
    character, and the second is an "@" followed by a character, a string,
    then the terminating pipe (|) character.  Explanations follow.

    @1..@D

       These codes will change the colour to one configured in CONFIG.
    They represent the following colours:

        @1  Uppercase Characters
        @2  Lowercase Characters
        @3  Numbers
        @4  Punctuation
        @5  Hi-ASCII
        @6  Stick/Add Answer
        @7  Border Lines
        @8  Information Fields
        @9  Lightbar Foreground
        @A  Lightbar Background
        @B  Highlight
        @C  Disabled Options
        @D  Plain Text

    @V

       This code is converted to a four-character representation of the
    current DCT-Vote version.

    @K<string>|

       This code allows you to have text printed to the screen in the
    multicoloured scheme.  For example, "@KHello!|" is the equivalent of
    "@1H@2ello@4!"

    @R<string>|

       This code will allow you to write strings using the border line
    colour scheme.  That way, a code such as "@R|" would print the
    line randomly alternating between one colour and its bright counterpart
    (ie. red and bright red).



                                                                          o4
                             
                                SysOp Hotkeys
                             

   SysOp hotkeys allow you to do a number of things while the user is in the
door.  Hotkeys supported in this release are as follows.

        F1     Shows the SysOp hotkeys on the status bar.
        AltC  Invokes the internal full-screen SysOp-User chat mode.
        AltT  Twits User.  Returns user back to the BBS.
        PgUp   Adds 5 minutes to the user's alloted time in the door.
        PgDn   Removes 5 minutes of the user's time in the door.



                                                                          o5
                       
                          Distribution & Disclaimer
                       

   DCT-Vote is copyright (C) 1996, 1997 by Dan Traczynski.  All rights
reserved.  I encourage you to distribute it, but DO NOT by any means alter
any of the files within the original archive.  The archive should be named
DCTVD040.ZIP, preferably kept in its ZIP format.

   The author, Daniel Traczynski, will take no responsibility to anything
that this program may or may not do to your system.  Although the program has
been tested thoroughly by the support team, no guarantee can be given that it
will do what it was made to do.  Nevertheless, if anything should happen, the
user is totally responsible and the author will be under no obligations what-
soever.  By using this program you agree to this disclaimer.



                                                                          o6
                      
                         Credits and Acknowlegments
                      

I'd like to thank the following people, in no particular order, for their
support in my making of this program.

-- Alan Ianson for his support of my programs.
-- Francois Massonneau for his great ideas.  My gratitude goes out to him
    for writing the French language file, as well as putting DCT-Vote on his
    web page for people to download.
-- Javier Gil for writing the Spanish language file.
-- Brandon Swartz/LoF for the great DCT-Vote logo seen in the background of
    CONFIG.
-- Philip Wright for all of his great suggestions and bug reports.



                                                                          o7
                        
                           Author's Notes/Support
                        

   Many of the features that I add to this door are requests made by SysOps,
so if you would like to see a new feature added to this door, by all means
send me e-mail and I will try to add in your request.  I can be reached at
dct@nm.canbbs.net.  If you do not have internet e-mail access, I can also be
contacted via the FidoNet RA_Util echo or by netmail at 1:153/737 or
1:153/757.

   This will probably be the last freeware version before the voting door
becomes shareware.  You may use this freeware version for as long as you wish
to if you choose not to register any future shareware versions.

DCT-Vote and other DCT Productions can be found on the Internet at:
                                     http://www.worldnet.net/~island/dct.htm

Many thanks go to Francois Massonneau for putting this on his web page.



                                                                          o8
                            
                               Release Notes
                            

   The DCT-Vote project began on December 27, 1995.  The first public beta
release was on April 17, 1996.

  + Added a new feature/Something was improved.
  - Removed something.
  * General comment.
  > Bug fix.


 Version 0.40 -=- May 25, 1997.
   > Corrected the error that was causing a DCTVOTE.LOG file to be created in
     the current directory.
   - Removed /V parm.
   * Cleaned up a lot of the coding, resulting in a smaller, more efficient
     executable.
   - DCT-Vote now requires that a FOSSIL driver be loaded when running
     remotely.  Local mode does not require one to be loaded.
   > DCT-Vote would exit with a runtime error if there were more than 255
     users in its internal userbase.  Fixed.
   > Fixed a few display bugs.
   * People with SysOp access may now leave an unlimited number of comments
     per booth (users only get to leave one per booth).
   + Added a validation system to DCT-Vote.  This feature is designed so that
     if users are creating stupid booths, you can set DCT-Vote to "hide" the
     new booths from the users until you have validated them (or deleted them
     if you don't want the booths there).  When a booth is not validated, only
     the creator of that booth and anyone with SysOp access will be informed
     of its existence and be given the option to view it.
   + DCT-Vote can now check for duplicate answers.
   + Improved the way DCT-Vote lets the user create a booth.
   + Increased the maximum answers per question limit.
   + The language editor in DCT-Vote has been improved and now fits in better
     with the rest of the configuration program.
   + Some screens have been changed and new prompts have been added here and
     there.
   + Added a user editor to CONFIG as well as user flags (so you can restrict
     access to certain options by individual settings as well as by security).
     Also added a "remove comments" feature to the user editor, so if you have
     a user who comes along and defaces all of your booths, a simple [Alt-R]
     will remove all of his comments rather than going into each booth and
     manually removing each comment.
   + Added support for a SysOp-defined user interface.  The external ANSI
     files used in previous versions are now compiled into one single screen
     definition file for speed and to conserve disk space.
   + Added a proper maintenance procedure; inactive users can now be deleted.
   + If Ctrl-R is pressed, the screen will now be redrawn no matter what
     prompt the user is at.


 Version 0.30 -=- August 22, 1996.
   * French characters such as '', '', '', etc. are now displayed in the
     colour that is configured as lowercase rather than high-ASCII.
   > If you hit ESC when locking out a user, DCT-Vote would act as if you hit
     <Enter> and still add any string entered to the lockout file.  Fixed.
   > If the SysOp broke into chat on a spinning stick prompt, the screen
     would not redraw.  Fixed.
   * CONFIG.EXE has been rewritten, and now has a pull-down menu interface.
   + The booth editor has some new features.
   + Four more colours may now be configured.
   > Fixed a few display bugs when some language prompts were changed.
   + Added %L language code.
   * DCT-Vote no longer needs to be told what drop file to use.  It now simply
     searches for both DORINFOx.DEF and DOOR.SYS and loads the first one it
     finds or terminates if neither exist.
   + Users may now change their handles and select their own language files,
     but user logging is still done in the language specified as the default
     language.
   + If a user changes his alias, DCT-Vote can optionally change all comments
     by this user to his new alias.
   + Added an "author" field to each language file, so if anyone translates
     the file to another language, they can take credit for it.
   + Added /S, /F, and /A4 command-line parameters.
   + Users may now delete booths that they have created if the SysOp allows
     it.
   + Lightbars are now supported when selecting a booth.
   * After viewing the results of a booth, the user is taken back to the
     booth selection menu rather than the main menu.
   + Users may now be given vote points which allows them to spread their
     votes out over more than one answer.
   + Comments on booths may now be viewed and removed through CONFIG.EXE.
   + DCT-Vote may now be set to present only a certain number of new booths
     to the user during AutoVote.  This feature comes in useful if a new user
     logs in and has to vote for 30 new booths before being able to access the
     system.  Setting a value of '5' would then spread the booths out over
     multiple logins, with a maximum of five booths being presented each time.
   + Added the log file viewer to the configuration program.
   + The time and date format in the log file have been changed.


 Version 0.20 -=- June 16, 1996.
   > If a user was at the spinning stick prompt and the SysOp hit a function
     key or other SysOp hotkey, the stick would stop spinning.  Fixed.
   > If a user "Voted for all booths" and hit ESC to stop voting on them
     after voting on the first one, the "press any key" prompt would not be
     displayed right.  Fixed.
   > If a user was in AutoVote mode and answered "No" to the "Vote for next
     booth?" prompt, the "would you like to create your own booth?" string
     would not be displayed.  Fixed.
   + Added language support.
   + Added the external ANSI file support.
   > If censoring mode was enabled, it would not filter anything entered on
     the second line of the question in each booth.  Fixed.
   + DCT-Vote can now optionally prompt the user to confirm his voting
     selection.
   + If the drop file says that the user doesn't have ANSI turned on, DCT-Vote
     checks to make sure and lets him in if the user's terminal program
     has ANSI capabilities.
   + The input strings now allow cursor editing keys as well as support word
     wrap.
   + Added an INUSE.FLG file so there shouldn't be any more runtime errors on
     multi-node systems.
   + Added the internal SysOp-User full-screen chat mode.
   + Users may now add more than one answer per booth if the SysOp allows it.
   + Added /A2 and /A3 parameters.
   + If the censor is enabled, any text is now filtered out as the user enters
     it rather than after he hits [Enter] on the string.
   + Users with SysOp access may now view the results of a booth before voting
     for it, however the unvoted booths are dimmed out so as to show him which
     booths he hasn't voted for yet and which ones he did.
   + Added word wrap to the log file so the lines in the log should never go
     past the end of the screen any more.
   > Fixed a bug where DCT-Vote would return the locked baud rather than the
     caller's baud rate when DOOR.SYS was selected as the drop file.
   + Users may now add comments using aliases they have selected.
   + The voting results screen is now displayed line by line rather than first
     the left column, then the answer box (it just looks better this way :).
   * Removed the date-check routine that many of you will soon be noticing in
     v0.11. =)
   + Added the booth editor.
   + You may now force users to vote for a booth (they can't hit ESC).  This
     is, of course, a SysOp-only feature (and can only be turned on in the
     booth editor :).
   + The spinning stick may now be configured.  This little feature really
     makes the door look different.  One interesting possibility is to make
     the string "۲  " which gives a pulsing effect and does away with the
     stick completely.
   + Improved the colour configuration menu.
   + Made a slight change to the DCT-Vote logo in the main menu.


 Version 0.11 -=- April 17, 1996.
   * This version is mainly just a bug fix from v0.10 and also contains a few
     new things that I forgot to add in the previous version or never got
     around to adding.
   > The user time-out wouldn't activate if a user was at a spinning stick
     prompt; the stick would just spin endlessly until he hit a key or ran
     out of time.  Fixed.
   * If no booths exist (ie. a new copy was just installed), DCT-Vote now
     creates a default booth.  I just felt like doing this. :)
   > Fixed a bug in the voting results screen where the title would sometimes
     not be displayed properly.
   + DCT-Vote now shows the user which answer he voted for when displaying the
     voting results.
   + DCT-Vote now shows the user when the booth was created in the voting
     results.
   > If the SysOp had the AutoVote feature in use and a user whose terminal
     didn't support ANSI entered, DCT-Vote would display to them the message
     telling them they didn't have ANSI.  It now simply exits without
     bothering the user about it every time s/he logs in.
   + DCT-Vote will now allow users to create a new voting booth when they
     login using the AutoVote feature.
   > Fixed a bug in the string entry prompts.
   > If the user left a comment on a booth whose question was two lines, the
     "Press any key to continue" prompt would be displayed on the bottom
     border line and mess up the display.  Fixed.
   + Users can't just hit [Enter] on the first answer in AutoVote any more
     (it forces them to think about which answer to choose now >;).
   + Added colour configuration.
   > Fixed a bug where DCT-Vote would sometimes crash if you tried deleting a
     booth and comments had been written on it.
   > Booths being deleted during maintenance were destroying the data files,
     making the whole voting door have to be reset.  This has been fixed. :}
   + Added an error handler.  If a runtime error occurs, it will be logged in
     the log file.
   > If a user left a comment that was 5 lines long, DCT-Vote would not save
     the last line.  Fixed.


 Version 0.10 -=- February 17, 1996.
   * There have been MANY changes in this version from the previous one,
     though many of them won't even be seen by the users.  Setup and
     installation for the SysOp should be much easier now.
   > If a booth was deleted and the comment file was empty, the program would
     terminate with a runtime error.  Fixed.
   + If there are booths which the user hasn't voted for yet, DCT-Vote now
     tells them that in the main menu.
   + Added the user time-out.  If the user doesn't press anything for 120
     seconds, s/he is returned to the BBS.
   + Added the AutoVote feature.
   + The docs look a *LOT* better now. :)
   > Oooh.  Bad bug.  On one BBS, when you hit a cursor key on the remote end,
     DCT-Vote would act as if the user hit [ESC] because it didn't wait long
     enough to see if more characters had been sent.  (When the user hits a
     cursor key, the terminal program sends ASCII character #27 followed by
     "[A" or whatever the code is, and DCT-Vote didn't wait long enough for
     the "[A" part.)
   + You may now hit the first letter of the option in the SysOp menu as well
     as the number.  I did this to the main menu a few versions back but
     somehow missed doing it in the SysOp menu.
   + Finally!  I made a configuration program, so you won't have to worry
     about the messy text configuration file any more.  Not all of the
     features within it have been implemented yet.
   + Users may now post booths anonymously if the SysOp allows it.  Please
     keep in mind that if you have SysOp access, DCT-Vote will show you who
     created the booth when voting, but to regular users it simply says
     "Posted By: Anonymous".
   * Made a little change to the voting results screen regarding the
     percentage bar.
   + Fixed up the string entry prompts a bit.
   + Made a few subtle changes to the Yes/No prompt.
   + Improved the program info screen.


 Version 0.06 -=- January 25, 1996.
   * After releasing v.05 to be eta tested, I found a few bugs.  This version
     has all of the bug fixes.
   > OOPPS!!  There was a little bug where DCT-Vote wouldn't let users move
     the lightbar onto the "create new booth" if they didn't have SysOp
     access.  They could still create booths by hitting "3" though.
   > If the user's name was only one word, DCT-Vote would add a trailing space
     character to it.  Fixed.


 Version 0.05 -=- January 23, 1996.
   > Fixed the spinning stick in the "Press any key" prompts.  It worked fine
     locally, but remotely it screwed up with some terminal programs.
   + Added the user comments.
   + Added the "@" random filter character macro.
   + Added a minimum security level to create a booth.
   + You may now hit the first letter of the option in the main menu as well
     as the number.
   + If the user enters an invalid booth number, it now informs him of that
     instead of returning to the main menu.
   > If a user whose terminal program doesn't support ANSI enters the door,
     DCT-Vote will now display a message to him informing him that he must
     have ANSI capabilities.


 Version 0.01 -=- January 7, 1996.
   * Initial release of DCT-Vote.



