Run Your Own Bulletin Board System

Another fine product © 2019 by Modern Pascal Solutions, LLC.

User Tools

Site Tools



DOOR32 Revision 1 Specifications

Updated: Feb 23rd, 2001

What is Door32?

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.

Programming Door32 Doors

There are several freeware door libraries which support Door32 although most if not all of them are for Pascal at this time. These libraries are able to compile doors for DOS, Windows, OS/2, and Linux.

I personally suggest the D32 library which is freeware and comes with source code. It can compile doors for DOS, Windows, OS/2 and Linux using various Pascal compilers. There are other great door libraries as well, so give them all a try!

Testing Door32 Support in BBS Software

Included in the Door32 specification archive is a Win32 executable by the name of SAMPLE.EXE. This is a very simple Door32 compatible door compiled with the Pascal 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;
        Dir  : DirStr;
        Name : NameStr;
        Ext  : ExtStr;
        FSplit (ParamStr(0), Dir, Name, Ext);
        ProgPath := Dir + '\';

The above example will return the path where your door is located. Some door libraries might already switch to the directory of the executable, so you may not have to worry about it.

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.


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

You can e-mail for any questions or suggestions relating to Door32 or post a message in the FidoNet DOORGAMES echo

door32_sys.txt · Last modified: 01/02/2020 03:02 by Ozz Nixon