═══ 1. Disclaimer ═══ This INF file and all the information contained within was written by Sean Dennis. THIS IS NOT AN OFFICIAL DOCUMENT FROM GAMEPORT NOR MICHAEL PRESLAR! If there are problems with the information, please contact me (Sean Dennis) and NOT Gameport or Michael Preslar. Warning: At the time of this writing, LORD/2 is considered ALPHA SOFTWARE. YOU RUN THIS AT YOUR OWN RISK! Please, please make sure you backup your current game before attempting to run this. This has barely been tested (Michael doesn't have an OS/2 machine yet, but we're working on that). Legend of the Red Dragon (LORD) is (C)1998-2006 Gameport, Inc. LORD is developed and nurtured by Michael Preslar. This INF and all the material contained within was written by Sean Dennis (aka hausmaus). The information is correct to the best of my knowledge, but may change at any time with or without notice. The scripts included in the archive and in this document were written by Sean Dennis. You may edit them to your heart's content, but please give me credit where credit is due, thanks. I highly recommend using NewView to view this INF with since NewView will allow you to use Firefox to view all the external URLs. I wrote this INF to use NETSCAPE.EXE since that's the default for older versions of OS/2. This is version 0.1 of this FAQ. ═══ 2. About LORD/2 ═══ LORD/2 is currently just a recompile of Legend of the Red Dragon for OS/2. It was compiled using Virtual Pascal/2 and MannDoor for the doorkit. This is a drop-in replacement for LORD.EXE. I have tested this using Maximus/2 and my DOOR32.MEC script. The door itself seems to work fine. I have NOT tested any IGMs with it, however. Much, much more testing needs to be done before this becomes 'production quality'. I've included configuration sections for Maximus/2 and Telegard/2, as well as one for other OS/2-native BBSes that are DOOR32.SYS capable or possibly could be capable. Please read everything CAREFULLY before trying this 'live'. ═══ 3. LORD/2 Setup and Configuration ═══ I've included configurations for Maximus/2 and Telegard/2. I haven't tried LORD/2 on any other BBS configurations, but if you have, please let me know about it. ═══ 3.1. Maximus/2 Configuration ═══ Maximus/2 Configuration Maximus/2 can be found at http://maximus.outpostbbs.net Here's how to get this setup under Maximus/2 (or at least how I did it on my system): 1. Copy the DOOR32.MEC file to your \Misc directory and run MECCAP on it. 2. BACKUP YOUR LORD GAME (in fact, I'd recommend copying everything to another directory and using that directory to run this in). 3. Replace the original LORD.EXE with the LORD.EXE in this directory. 4. Create a batch file similar to below: @echo off d: cd\doors\lord lord -Dd:\max\node%1\door32.sys cd\max\node%1 Drop that into your \Max directory and name it whatever you want (I named mine LORDP32.CMD). 5. Edit your MENUS.CTL as such: NoDsp Display_File misc\door32 Demoted "LORD" Xtern_OS2 runlordp.cmd_%k Demoted "LORD" Please note that you are passing the com PORT to the door, NOT the com SOCKET. Since you are using SIO/VMODEM to handle the communications and Maximus/2 isn't a true TCP/IP enabled application when it comes to connecting to the world, you want to make sure it goes on the right port, not the socket. 6. SILTP your CTL file(s), make sure you MECCAP'd your DOOR32.MEC and fire up Max. Telnet in and all should be fine. I noticed an immediate increase in speed with respect to the redrawing of screens in the OS/2 version, as well as an overall general increase in speed when running the door remotely. Locally, it flew. I personally recommend running all of your doors (and Max) in a full-screen session-the system runs better and the screen refresh is faster. ═══ 3.2. Telegard/2 Configuration ═══ Telegard/2 Configuration Telegard/2 can be found at http://www.telegard.net It's a fairly simple setup for Telegard/2 BBS sysops. You'll need the DOOR32.SCR script included in this archive. I'll show you how I've tested it here with the TG setup I have. 1. Put DOOR32.SCR in your \TG\TEXT directory. 2. Backup your LORD directory. I recommend to copy your LORD directory to another new directory and then put this LORD.EXE in it. 3. Copy the new LORD.EXE over to the LORD directory. 4. Create a .CMD file in /TG called RUNLORD.CMD: @echo off d: cd\doors\lord lord -Dd:\tg\temp%1\door32.sys cd\tg\temp%1 Remember that you are not using a true native telnet server, so since you are using SIO/VMODEM, you have to pass the port to the door, not the hot telnet socket. See DOOR32.SCR for more details. 5. Make a new menu entry in TG that looks something like this: 1. Long Description "(L) LORD" 2. Short Description "(L) LORD" 3. Keys L 4. Command -E - Execute Script 5. Options "door32 d:\tg\runlord.cmd ~CN" 6. Access "s10" 7. Display ACS Dependant That's all you need to do-telnet in remotely into your board and try it out. Do remember that you'll have to use -L to log in locally. so if you play the door through the BBS you'll need to modify the .CMD file accordingly. ═══ 3.3. Other OS/2 Native BBSes ═══ Other OS/2 Native BBS Configuration I'm not sure about other OS/2 native BBSes, but I believe that both EleBBS and Mystic BBS can create and use DOOR32 doors just fine (from what I understand). Synchronet/2 should also be able to do this, but you'll have to write a BAJA script to create the DOOR32.SYS drop file. If you are able to get LORD/2 running on any of these BBS software packages, please contact me and let me know your setup and how you did it. I'll pass the information along. ═══ 4. About the DOOR32 Format and the DOOR32 Scripts ═══ ═══ 4.1. The DOOR32 Format ═══ DOOR32.SYS Specification Revision 1 This is the original DOOR32.SYS specification. Please note that the URL given in the bottom of this document does not work anymore. .--------------------------------------------------------------------------. | 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; 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. 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. 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 or post a message in the FidoNet DOORGAMES echo ═══ 4.2. DOOR32.MEC (Maximus/2) ═══ Maximus/2 DOOR32.MEC This is the DOOR32.MEC file that I wrote for Maximus/2-it's included in this archive, but I put it in here in case you need to reference it. See "The DOOR32 Format" for more information about the actual format and fields required. [comment DOOR32.SYS MECCA written by Sean Dennis Last updated 7 April 2006] [delete]d:\max\node.k\door32.sys [open]d:\max\node.k\door32.sys [write]1[comment Comm type (0=local, 1=serial, 2=telnet)] [write]%P[comment Comm or socket handle] [write]%b[comment Baud rate] [write]Maximus/2 v3.01[comment BBSID (software name and version)] [write]%u[comment User record position (1-based)] [write]%Z[comment User's real name] [write]%r[comment User's handle/alias] [write]%o[comment User's security level - that is the letter O] [write]%t[comment User's time left (in minutes)] [write]%g[comment Emulation 0=ASCII/TTY 1=ANSI 2=AVATAR] [write]%k[comment Current node number] ═══ 4.3. DOOR32.SCR (Telegard/2) ═══ Telegard/2 DOOR32.SCR File I wrote this SCR file quite some time ago when I was experimenting with writing my own OS/2-native BBS doors. This was my first attempt and I managed to get it right. ; DOOR32.SYS script written by Sean Dennis for Telegard/2 ; hausmaus@darktech.org - 1:18/200@Fidonet ; Written on 12 October 2004 at 2035 CDT ; ; This is public domain. However, I wouldn't suggest changing ; anything except the "D:\TG" part for it to work. :) ; ; This works here for me-I hope it works for you! ; ; Usage inside TG/2: ;4. Command -E - Execute Script ;5. Options "door32 d:\tg\doorbat\oracle.cmd ~CN" ; ;I pass the node number to the batch file for my multinode ;setup I run. ; VARIABLE TEMP STRING VARIABLE BBSDIR STRING "D:\TG\TEMP~CN\" FILECREATE DOOR32.SYS ; Comm type (0=local, 1=serial, 2=telnet) ; ALWAYS KEEP THIS AT 1. Remember, if you're using SIO/VMODEM, ; you're using com ports, NOT telnet sockets. That's only under ; Win32. I'd recommend using the door's -L command line if you ; are going to run it locally under the BBS. FILEPUT "1" ; Comm or socket handle FILEPUT "~2P" ; Baud rate FILEPUT "~CB" ; BBSID (software name and version) FILEPUT "Telegard/2 ~SV" ; User record position (1-based) ; NOTE: I think TG uses 0-based record positions (it always ; reports mine as 0 as the sysop), so if you use this, be sure ; to increment the number by one. FILEPUT "~UN" ; User's real name FILEPUT "~UR" ; User's handle/alias FILEPUT "~UH" ; User's security level FILEPUT "~US" ; User's time left (in minutes) FILEPUT "~CM" ; Emulation *See Below FILEPUT "~UW" ; Current node number FILEPUT "~CN" FILECLOSE MENU D-@*@ ;* 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. ═══ 5. Contacting the LORD Author ═══ Contacting the LORD Author Michael when he's not staring at a monitor You can contact Michael Preslar by the following:  Email: mike@lordlegacy.com  Netmail: 1:275/112@Fidonet  WWW: http://lord.lordlegacy.com  Online forums: http://lord.lordlegacy.com/phorum If you want to get the latest LORD/2 binaries, simply email Mike with the subject of "LORD/2 Binaries Request". ═══ 6. About the LORDP32 Author ═══ About the LORDP32 Author Sean with his cat, Tigger I've been running a BBS under OS/2 since 1998. I'm glad that Michael was finally able to get an OS/2 native version of LORD for those of us who choose to go our own way with our BBSes. I also write my own line of BBS doors and sysop utilities called Cheepware. I run Maximus/2 v3.01 under OS/2 Warp 4.52. If you'd like to contact me, here's how:  Netmail: 1:18/200@Fidonet  Email: sean@outpostbbs.net  WWW: http://outpostbbs.net I hope you find this useful and LORD even more enjoyable now that there is a native OS/2 version. -- Sean Dennis