BBS Door Programming

Renegrade

New member
Joined
Feb 23, 2012
Posts
42
Country
Canada
Region
Ontario
Does anybody know how BBS door programming is handled on the Amiga? CNet's feature list suggests there's several ways (including standard I/O, I have no idea how that would work though.. how do you know if the user hung up? Does the handle return an error or something?)

I'm familiar with Amiga programming, including interfacing with serial.device.
I'm familiar with MSDOS/PC BBS door programming (serial/fossil/doorinfo.def and all).

But I have no idea how an Amiga BBS does an online door, specifically with respect to sharing the serial port(s) with the BBS itself.

Google hasn't helped very much (a bit, but not much), and I would like to take a shot at porting an old PC BBS door I helped develop to the Amiga platform.

Here's the summary of my research results to date:
- Paragon BBS uses exec message ports .. somehow.
- CNet supports some sort of C doors .. somehow.
- CNet supports STDIO doors .. somehow.
- AmiExpress has...doors..somehow.
- DLG might have doors?
- Zeus does it's door stuff through zeus.library. I have sources but no real documentation.
- Excelsior! has doors..somehow (research continues)
- BBSes may or may not support the various protocols that each other uses for doors

A nice overview from an experienced Amiga sysop or bbs/door developer would be appreciated! (y)
 
I wrote a few BBS doors, back in the day. ARexx for a couple and Amiga E for at least one other. Also a mixture of AmiExpress and DayDream BBS.

I am struggling to remember any real details of how it was done, but I do remember it being a fairly straightforward process.

I will investigate a little more at the weekend.
 
Most major Amiga BBS' support at least 3 different types of doors.
1. Arexx
2. STDIO or AmigaDOS
3. Custom C interface via shared library or other API.

In all cases you do not directly interact with the serial or console ports. The BBS takes care of all that for you.

If you're familiar with Arexx, these doors are very easy to write. You just need a list of functions and parameters the BBS package supports.

Dos doors are also fairly simple. The BBS passes parameters to the door via the command line (use argc/argv[] to read) and captures the stdin and stdout ports. The door then uses standard C functions such as printf(), gets() etc. to interact with the user. The BBS takes care of passing stdin/out to the serial and or console ports.

Custom C doors are similar to Dos doors except instead of using stdin/out printf etc, you use the provided API. Either library functions and or MsgPort calls.

The Excelsior! user manual (see my signature) has a list of all the arexx commands as well as the C door interface and some real basic examples. I think I still have the original programmers pack for E! somewhere. I'll try and find it and pop it on my downloads page.
 
There should still be some ARexx doors available for download on Aminet. Being ARexx, you can have a look at the source for some inspiration.
 
Hey guys, thanks for the information!

The original program is in C, and my AREXX is very .. very .. very rusty, so I'll probably be taking a C/STDIO (most likely) or C/custom interface route (less likely but possible).

I already have a copy of the manual from the Excelsior! site, but I somehow missed the "Door Interface" chapter when I last looked at it (I really shouldn't be doing this at 4 in the morning I guess, hehe).

I'll see about whipping up a test version of Star Empire 2.2 for a DOS-type door.
 
Can't find any of my old doors on Aminet.

Gutted :mad:

**EDIT**

One of the FAME BBS core devs packed up some of his door sources after I mentioned interest on an AmiExpress Facebook page.

I haven't looked at the archive myself yet, but it is attached.
 

Attachments

  • BBS_door_sources.zip
    1.3 MB · Views: 0
Last edited:
Can't find any of my old doors on Aminet.

Gutted :mad:

**EDIT**

One of the FAME BBS core devs packed up some of his door sources after I mentioned interest on an AmiExpress Facebook page.

I haven't looked at the archive myself yet, but it is attached.

Aminet has lost files? Uhoh.. That's not good.

I've downloaded the sources and will take a look at them asap! Thanks!

(y)
 
Back
Top Bottom