Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
howto:door:index [2016/10/27 15:48] – [Start-up Directory] Mention use with JavaScript modules digital manhowto:door:index [2023/06/14 17:29] (current) – [See Also] Add link to TW2002 article digital man
Line 6: Line 6:
  
 BBS "doors" are external online programs, often games, that may be installed on a BBS system for its remote terminal users to use interactively. Doors are usually 16-bit DOS programs from "back in the day" and can be challenging to get working on the computers and operating systems of today. A little patience and the use of pages like this one can usually get them working however. BBS "doors" are external online programs, often games, that may be installed on a BBS system for its remote terminal users to use interactively. Doors are usually 16-bit DOS programs from "back in the day" and can be challenging to get working on the computers and operating systems of today. A little patience and the use of pages like this one can usually get them working however.
 +
 +
  
 ==== Supported External Program Types ==== ==== Supported External Program Types ====
Line 12: Line 14:
  
 ^ I/O Method         ^ Description                                           ^ Examples                                               ^ Typical Drop File Types   ^ OS ^ ^ I/O Method         ^ Description                                           ^ Examples                                               ^ Typical Drop File Types   ^ OS ^
-| [[ref:FOSSIL]]     | 16-bit DOS BBS doors and external editors             | TradeWars 2002, GlobalWar, LORD, FDSZ                  | DOOR.SYS and DORINFO#.DEF | Windows |+| [[ref:FOSSIL]]     | 16-bit DOS BBS doors and external editors             | TradeWars 2002, GlobalWar, LORD, FDSZ                  | DOOR.SYS and DORINFO#.DEF | Windows and [[howto:dosemu|Linux]]|
 | COM/UART           | 16-bit DOS BBS doors and external editors             | DSZ, NukeWars                                          | DOOR.SYS and DORINFO#.DEF | Windows | | COM/UART           | 16-bit DOS BBS doors and external editors             | DSZ, NukeWars                                          | DOOR.SYS and DORINFO#.DEF | Windows |
-| DOS Console        | 16-bit Synchronet and WWIV doors and external editors | Food Fight! Rigor Mortis, Dragon's Hoard, SBJ/SBL v2.x | CHAIN.TXT and XTRN.DAT    | Windows |+| DOS Console        | 16-bit Synchronet and WWIV doors and external editors | Food Fight! by Rigor Mortis, Dragon's Hoard, SBJ/SBL v2.x | CHAIN.TXT and XTRN.DAT    | Windows |
 | TCP/IP Socket      | Native TCP/IP BBS doors and external editors          | DoorMUD, PimpWars/Win32, Darkness/Win32, SBJ/SBL v3.x  | DOOR32.SYS and XTRN.DAT   | Windows and *nix | | TCP/IP Socket      | Native TCP/IP BBS doors and external editors          | DoorMUD, PimpWars/Win32, Darkness/Win32, SBJ/SBL v3.x  | DOOR32.SYS and XTRN.DAT   | Windows and *nix |
 | Standard           | Native stdio/console programs (traditionally, UNIX)         | PimpWars/Linux, Lord/X, "scfg -d", cmd.exe, bash, pico | DOOR32.SYS | Windows and *nix | | Standard           | Native stdio/console programs (traditionally, UNIX)         | PimpWars/Linux, Lord/X, "scfg -d", cmd.exe, bash, pico | DOOR32.SYS | Windows and *nix |
 +
 +==== Supported Drop File Types ====
 +Synchronet can create and read-back a variety of drop file types based on the requirements of the door program:
 +
 +^ Software ^ Write File(s)                 ^ Read File(s)     ^
 +| Mystic        | ''DOOR32.SYS''                        |                  |
 +| GAP | ''DOOR.SYS''                 | ''DOOR.SYS'': Flags, SecLevel, ExpireDate, FileDLed, KBsDLed, MinuteCredits |
 +| WWIV | ''CHAIN.TXT''                                          |
 +| PCBoard 15.x | ''PCBOARD.SYS'' and ''USERS.SYS''     | ''USERS.SYS'': SecLevel and ExpireDate |
 +| QuickBBS | ''DORINFO#.DEF'' and ''EXITINFO.BBS'' | ''EXITINFO.BBS'': Flags and SecLevel |
 +| Wildcat! 2.x | ''CALLINFO.BBS''                      |                  |
 +| SpitFire | ''SFDOORS.DAT''                                        |
 +| TriBBS | ''TRIBBS.SYS''                        |                  |
 +| MegaMail | ''UTIDOOR.TXT''                                        |
 +| Solar Realms | ''DOORFILE.SR''                                        |
 +| Synchronet  | ''XTRN.DAT''         | ''MODUSER.DAT'': Credits, SecLevel, Flags, ExpireDate, MinuteCredits  |
  
 === CIOXTRN === === CIOXTRN ===
Line 33: Line 51:
  
 Some doors may require the sysop to run some sort of //setup// or //initialization// program before the door can be used, so be sure to read the door's documentation files (e.g. ''readme.1st'', ''sysop.txt'', ''*.doc'', etc.) first. Remember that most door documentation was written in the 1990's (or earlier), so take some instructions (specifically those referring to FOSSIL drivers) with a grain of salt. Some doors may require the sysop to run some sort of //setup// or //initialization// program before the door can be used, so be sure to read the door's documentation files (e.g. ''readme.1st'', ''sysop.txt'', ''*.doc'', etc.) first. Remember that most door documentation was written in the 1990's (or earlier), so take some instructions (specifically those referring to FOSSIL drivers) with a grain of salt.
 +
 +==== Automated Install ====
 +
 +If the door is included with Synchronet, or Synchronet already has a configuration for it (in xtrn/3rdp-install), you can use the install-xtrn.js script to install your door.
 +
 +Run ''[[dir:exec]]/jsexec install-xtrn.js''
 +
 +For more information, see [[module:install-xtrn|Install Xtrn]]
 +
 +==== Manual Install ====
  
 If the door you're installing is listed in the following [[#how-to_install_specific_doors|How-To Install pages]], that might be all the instructions you need. If the door you're installing is listed in the following [[#how-to_install_specific_doors|How-To Install pages]], that might be all the instructions you need.
Line 59: Line 87:
  
 === DOSXTRN.EXE === === DOSXTRN.EXE ===
-This 16-bit DOS component of the Synchronet FOSSIL driver for Windows (all flavors) is called ''DOSXTRN.EXE'' and it is located in the Synchronet ''[[dir:exec]]'' directory. This program [[:faq:win#win64|will not work]] with 64-bit versions of Windows since Microsoft does not include a DOS virtual machine (NTVDM) with those versions of Windows.+The 16-bit DOS component of the Synchronet FOSSIL driver for Windows (all flavors) is called ''DOSXTRN.EXE'' and it is located in the Synchronet ''[[dir:exec]]'' directory. This program [[:faq:win#win64|will not work]] with 64-bit versions of Windows since Microsoft does not include a DOS virtual machine (NTVDM) with those versions of Windows.
  
 === Windows 9x === === Windows 9x ===
-The kernel component of the Synchronet FOSSIL driver for Microsoft Windows 95-based operating systems is called ''sbbsexec.vxd'' and it is loaded when needed by Synchronet automatically. This FOSSIL driver is not actively maintained but has worked well for many sysops and their BBSes for many years. This FOSSIL driver implements the FOSSIL interface only (i.e. does not emulate a physical UART or COM port), so the doors must support and be configured to use FOSSIL interrupts for input and output.+The kernel component of the Synchronet FOSSIL driver for Microsoft Windows 95-based operating systems (**no longer supported**) is called ''sbbsexec.vxd'' and it is loaded when needed by Synchronet automatically. This FOSSIL driver is not actively maintained but has worked well for many sysops and their BBSes for many years. This FOSSIL driver implements the FOSSIL interface only (i.e. does not emulate a physical UART or COM port), so the doors must support and be configured to use FOSSIL interrupts for input and output.
  
 === Windows NT === === Windows NT ===
-The kernel component of the Synchronet FOSSIL driver for Microsoft Windows NT-based operating systems (this includes XP, Vista, and Windows 7) is called ''[[faq:win#sbbsexecdll|sbbsexec.dll]]'' and it is loaded when needed by Synchronet automatically.+The kernel component of the Synchronet FOSSIL driver for Microsoft Windows NT-based operating systems (this includes XP, Vista, and Windows 7/8/10) is called ''[[faq:win#sbbsexecdll|sbbsexec.dll]]'' and it is loaded when needed by Synchronet automatically.
  
 This FOSSIL driver is also a //virtual UART// driver so that external DOS programs that require COM/UART access for input and output (i.e. do not support FOSSIL), can still be used on the BBS. When supported, doors should be configured to use a FOSSIL interface instead of COM/UART for input and output (for better performance and compatibility). This FOSSIL driver is also a //virtual UART// driver so that external DOS programs that require COM/UART access for input and output (i.e. do not support FOSSIL), can still be used on the BBS. When supported, doors should be configured to use a FOSSIL interface instead of COM/UART for input and output (for better performance and compatibility).
Line 73: Line 101:
 ===== Configuration ===== ===== Configuration =====
  
-Add the program in SCFG [[util:SCFG:external programs:Online Programs]] under ''%%Available Online Programs...%%'' in a new or existing Online Program Section.+Add the program in SCFG [[util:SCFG:external programs:Online Programs]] under ''%%Online Programs...%%'' in a new or existing Online Program Section.
  
 The most critical [[util:SCFG]] configuration options for successful installation of an online program (door) are: The most critical [[util:SCFG]] configuration options for successful installation of an online program (door) are:
Line 79: Line 107:
   - [[#Start-up Directory]]   - [[#Start-up Directory]]
   - [[#Command Line]]   - [[#Command Line]]
-  - [[#Intercept I/O]] +  - [[#I/Method]] 
-  - [[#Native Executable]]+  - [[#Native Executable/Script]]
   - [[#BBS Drop File Type]]     - [[#BBS Drop File Type]]  
    
Line 124: Line 152:
 The most commonly used [[config:cmdline#Specifiers]] for use with external program command-lines are: The most commonly used [[config:cmdline#Specifiers]] for use with external program command-lines are:
  
-^Specifier  ^Description ^ +^Specifier ^Description ^ 
-|''%f''     |Path to the drop file created by the BBS for this external program execution (e.g. ''C:\SBBS\NODE1\DOOR.SYS'')| + ''%f''  |Path to the drop file created by the BBS for this external program execution (e.g. ''C:\SBBS\NODE1\DOOR.SYS'')| 
-|''%n''     |Path to the current node directory (e.g. ''C:\SBBS\NODE1\'')| + ''%s''  |Path to the program's startup directory, if specified (e.g. ''../xtrn/mygame/'') | 
-|''%#''     |Current node number (1-255)| +|  ''%n''  |Path to the current node directory (e.g. ''C:\SBBS\NODE1\'')| 
-|''%h''     |Current socket descriptor | + ''%#''  |Current node number (1-255)| 
-|''%t''     |User's time remaining/available, in seconds (e.g. ''60'')| + ''%h''  |Current socket descriptor | 
-|''%.''     |Expands to ''.exe'' on Windows, nothing on other operating systems. Useful when hosting BBS nodes on multiple OSes with the same configuration files.|+ ''%t''  |User's time remaining/available, in seconds (e.g. ''60'')| 
 + ''%.''  |Expands to ''.exe'' on Windows, nothing on other operating systems. Useful when hosting BBS nodes on multiple OSes with the same configuration files.|
  
 === Modules === === Modules ===
Line 146: Line 175:
 The ''Clean-up Command Line'' may contain Command Line [[config:cmdline#Specifiers]]. The ''Clean-up Command Line'' may contain Command Line [[config:cmdline#Specifiers]].
  
-The [[#Native]], [[#Intercept I/O]], and [[#Use Shell To Execute]] options affect the execution of the ''Clean-up Command Line'' (if non-blank).+The [[#Native]], [[#I/Method]], and [[#Use Shell or New Context]] options affect the execution of the ''Clean-up Command Line'' (if non-blank).
  
 Most external programs do not require a ''Clean-up Command Line'' to be specified. Most external programs do not require a ''Clean-up Command Line'' to be specified.
Line 170: Line 199:
 Note: for multiple-user programs, it is highly recommended that the BBS drop file be created in the ''[[dir:node]]'' directory. Note: for multiple-user programs, it is highly recommended that the BBS drop file be created in the ''[[dir:node]]'' directory.
  
-==== Intercept I/O ==== +==== I/O Method ====
- +
-If this program requires the BBS to intercept standard console input and output operations, then this option should be set to ''Standard''.+
  
-  * Most BBS doors will require this option be set to ''No''+If the program requires the BBS to intercept standard console input and output operations, then this option should be set to ''Standard''.
-  * BBS Doors that use FOSSIL I/O must have this option set to ''No''+
-  * BBS Doors that use COM/UART I/O must have this option set to ''No''+
-  * BBS Doors that use Socket I/O must have this option set to ''No''.+
  
-When executing an in-process module (Baja or JavaScript), the ''Intercept I/O'' option is not used.+  * Most 16-bit (DOS) BBS doors will require this option be set to ''FOSSIL or UART'' (only available for 16-bit DOS programs). 
 +  * Most //native// (Win32 or *nix) BBS doors will require this option be set to ''Socket'' (only available for native programs). 
 +  * When executing an in-process module (Baja or JavaScript), the ''I/Method'' option is not applicable.
  
-==== Native Executable ====+==== Native Executable/Script ====
  
 If this program is native to the host operating system (e.g is **not** a 16-bit DOS program), then this option should be set to ''Yes''. If this program is native to the host operating system (e.g is **not** a 16-bit DOS program), then this option should be set to ''Yes''.
Line 189: Line 215:
   * BBS Doors that use Socket I/O are native (32-bit or 64-bit) programs and must have this option set to ''Yes''.   * BBS Doors that use Socket I/O are native (32-bit or 64-bit) programs and must have this option set to ''Yes''.
  
-When executing an in-process module (Baja or JavaScript), the ''Native Executable'' option is not used (all modules are native).+When executing an in-process module (Baja or JavaScript), the ''Native Executable/Script'' option is not used (all //modules// are native).
  
-==== Use Shell to Execute ====+==== Use Shell or New Context ====
  
-If this program requires command shell (e.g. it's a *nix shell script, ''.sh'' file, or Windows ''.bat'' or ''.cmd'' file), then this option should be set to ''Yes''.+If this program requires an OS command shell (e.g. it's a *nix shell script, ''.sh'' file, or Windows ''.bat'' or ''.cmd'' file), then this option should be set to ''Yes''.
  
-When executing an in-process module (Baja or JavaScript), this option is not used.+When executing JavaScript moduleenabling this option forces a new JS engine context (i.e. sandbox) to be created and used to execute the script.
  
 ==== Modify User Data ==== ==== Modify User Data ====
Line 214: Line 240:
   * File Uploaded     * File Uploaded  
   * File Downloaded    * File Downloaded 
 +  * Local/Sysop Chat
  
 If an event is selected, you may also specify that the program may be executed **only** on that event and not purposely selected by the user from a menu for manual execution. If an event is selected, you may also specify that the program may be executed **only** on that event and not purposely selected by the user from a menu for manual execution.
Line 267: Line 294:
  
 ===== How-To Install Specific Doors ===== ===== How-To Install Specific Doors =====
 +Note: When using Linux with dosemu, specify full filename with extension under the Command Line option in the [[util:scfg]] External Programs settings, more specifically when using batch (.bat) files. For example LORD2 would be "lord2.bat %#" and not "lord2 %#" which is mentioned on the [[howto:dosemu|Use DOS Doors with Synchronet on Linux]] page.
  
 {{indexmenu>.|tsort}} {{indexmenu>.|tsort}}
Line 277: Line 305:
   * [[:howto:doscmd]]    * [[:howto:doscmd]] 
   * [[:howto:|How-To Pages]]   * [[:howto:|How-To Pages]]
 +  * [[:howto:cioxtrn]]
 +  * [[https://www.youtube.com/channel/UCcHJZZmXcXRtJjqCr9_W4eA|Door Game Review Videos]]
 +  * [[https://if50.substack.com/p/1991-trade-wars-2002|Trade Wars 2002]]
  
 {{tag>door fossil uart}} {{tag>door fossil uart}}
  
howto/door/index.1477608519.txt · Last modified: 2016/10/27 15:48 by digital man
Back to top
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0