 DOOR32 Revision 1 Specifications                    Updated: June 28th, 2000
 ----------------------------------------------------------------------------

 .-----------------.
 | What is Door32? |
 `-----------------'

 Welcome to the official specifications for DOOR32.SYS.  Door32 is a standard
 text-based drop file designed to take advantage of 32-bit operating systems.
 Supporting handle inheritance, it will allow for doors to work under
 multiple platforms and over both serial and socket (telnet) connections.

 .--------------------------------.
 | BBS Software Supporting Door32 |
 `--------------------------------'

 At the moment, three BBS packages have, or will be with the next release,
 included Door32 door support:

    Software     Home Page                             Version
    -----------+-------------------------------------+--------
    Mystic BBS   www.mysticbbs.com                        1.07
    EleBBS       www.elebbs.com                           0.08?
    Synchronet   www.synchro.net                           3.0

 .--------------------------.
 | Programming Door32 Doors |
 `--------------------------'

 Various programming libraries should be available for easy Door32
 development.  At this time at least one Pascal library is already useable
 and will be available free with source code.  This library will work under
 Turbo Pascal 7.0 and Virtual Pascal 2.0, while compiling native doors for
 DOS, Win32, and OS/2.  Free Pascal 1.0 and Linux support will be added in
 the future as well!

 .----------------------------------------.
 | Testing Door32 Support in BBS Software |
 `----------------------------------------'

 Included in this specification archive is a Win32 executable by the name of
 SAMPLE.EXE.  This is a very simple Door32 compatible door compiled with the
 Pascal programming library mentioned above.  BBS authors may find this
 program useful for testing their Door32 support.

 .--------------------------------.
 | Notes about Door32 Programming |
 `--------------------------------'

 At this point, there seems to be two things which need to be kept
 in mind when doing Door32 programming:

     1. Under Linux or any operating system with case sensitive file names,
        the Door32 drop file (DOOR32.SYS) will be created with all lower
        cased lettering. IE:  door32.sys

     2. There appears to be a bug in the Win32 programming API (ie, a bug in
        Windows) which prevents Door32 programs from running from a batch
        file.  This means that the doors have to be executed directly from
        the software.  Instead of running MYDOOR.BAT which eventually
        executes MYDOOR.EXE, you must run MYDOOR.EXE directly.  This problem
        has said to have been fixed in Windows NT, but still exists under
        the Windows 9x platforms.

        What does this mean to BBS authors?  Not much.

        What does this mean to DOOR authors?  Maybe some changes...

        Because Door32 doors must be executed directly, there is a good
        chance that the current directory will NOT be the directory that
        your door executable is stored.  When porting an old DOS door,
        the door might assume that the system is in the same directory
        as the .EXE when loading data files.  Because of this, it is
        recommended that you have your Door switch to the directory where
        the door .EXE is located, or read that directory and use it when
        accessing door related files.  In Pascal, this is a sample of
        getting the directory where the door .EXE is found:

        Function ProgPath : String;
        Var
          Dir  : DirStr;
          Name : NameStr;
          Ext  : ExtStr;
        Begin
          FSplit (ParamStr(0), Dir, Name, Ext);
          ProgPath := Dir + '\';
        End;

        The above example will return the path where your door is located.
        We've even considered adding this directory information directly
        into the programming libraries, but at this point we've left it up
        to the programmers.

 .--------------------------.
 | The DOOR32.SYS Drop file |
 `--------------------------'

 Below is the final Revision 1 version of DOOR32.SYS.  It is a straight
 DOS-style text file in all lower cased letters under operating systems
 with case sensitive file systems:

 [cut here]-----------------------------------------------------------------
                                     
 0                            Line 1 : Comm type (0=local, 1=serial, 2=telnet)
 0                            Line 2 : Comm or socket handle
 38400                        Line 3 : Baud rate
 Mystic 1.07                  Line 4 : BBSID (software name and version)
 1                            Line 5 : User record position (1-based)
 James Coyle                  Line 6 : User's real name
 g00r00                       Line 7 : User's handle/alias
 255                          Line 8 : User's security level
 58                           Line 9 : User's time left (in minutes)
 1                            Line 10: Emulation *See Below
 1                            Line 11: Current node number

 [cut here]------------------------------------------------------------------

 * The following are values we've predefined for the emulation:

 0 = Ascii
 1 = Ansi
 2 = Avatar
 3 = RIP
 4 = Max Graphics

 Avatar, RIP, and Max Graphics all have ANSI fallback support, so most door
 libraries that don't support those emulations can just use ANSI if emulation
 2, 3, or 4 is encountered.

 .------------.
 | Conclusion |
 `------------'

 Thats it for the Revision 1 specifications of DOOR32.SYS.  You can find the
 latest information at the official Door32 web page:

    http://www.mysticbbs.com/door32

 You can e-mail mysticbbs@geocities.com for any questions or suggestions
 relating to Door32.
