Chapter 10 Doors and External Programs 10.1 Introduction Doors are separate programs that can communicate with the BBS. They come in many forms, games, utilities, ect, and can be found on many BBS's. It is not guaranteed that all doors will work on 4D-BBS. They may have been written for another BBS and may not be fully compatable. 10.1.1 Types On 4D you can run three types of Door programs. 1: ARexx 2: Paragon 3: Cli (StdIO/FIFO) 10.1.2 ARexx Doors In the cfg_ed you can set up the port name you wish to use for your ARexx port. The default is '4D-BBS'. If you run a multi-line BBS, 4D-BBS will automatically add a number to the end of your port name. For Example: line 0: Port Name '4D-BBS' line 1: " " '4D-BBS1' For specific ARexx commands see the Appendix A3. Usually all that is required for a ARexx door to run on 4D-BBS is to change the address to the ARexx port name. Or also you can pass it the ARexx port name as an argument by using 4D-BBS's embedded instructional code for the ARexx port name. ^]WT%. This will require a good understanding of ARexx if the script is not set up to handle this. You can find an example of this in 4DWhosOn.Rexx Below is a simple menu example on how to start a ARexx door: H:c A Path/filename.rexx H is the keypress c is for door A is the type of door (A,P,O,F) Note: see menu options 10.1.3 Paragon Door Types Usually installing a Paragon door is very simple. You have to have a directory devoted to doors and assign DOORS: to it. Many doors require that subdirectories be set up for them (you will have to read their docs about this). 4D-BBS has two ways to run a Paragon door. The best way is to use the door option of 'P'. 4D-BBS will check to make sure the door opens a reply port to prevent the BBS from hanging in the door mode. If the reply port can not be found 4D-BBS will return. A simple menu example: h:c P Doors:filename The other way to run a Paragon type door is to use the door option of 'O'. Some Paragon doors will not work using the 'P' option because they don't open a properly names reply port. 4D-BBS will not check for a reply port and start waiting for commands with the door option of 'O'. A simple menu example: h:c O Doors:filename 10.1.4 CLI (FIFO) To use this option you must have Matt Dillion's FIFO. It is in the public domain. You need fifo.library in your libs: directory and also run the fifo-handler. Read the docs that come with fifo for more details. FIFO is available at 4D-BBS support BBS. Any program that does not detach its self from the stdin & stdout or open a window should be able to be ran with this option. Ususally if it will run on a CLI (with output to the cli) it will work here. Example: 4D-BBS editors could be ran as a fifo door! If a user hangs up during a FIFO door, 4D-BBS will send a ctrl-C to try to abort the program. It is suggested that you only run programs that will abort on a ctrl-c. A simple menu example: h:c F path/filename or with embedded instructional code (EIC) h:c F doors:h&s/HSclient -t^[P7% "^[P3%" the ^[P7% being time left on BBS & ^[P3% is the users name. Use quotes around any EIC that may have a space. There is also a built in SHELL you can start with this option. This works VERY well for remote access. But WARNING!! keep it out of the reach of users. It is just like using the cli, except you can not click requesters. To run the SHELL use '4D-SHELL'. It is Case sensitive. example: s:c F 4D-SHELL