At a glance
- Package
- The Major BBS 6.25 Free Edition, Galacticomm, Inc.
- Lines
- Six on a fresh install, up to 256 (the package's own channel limit). Each line runs its own copy of the server; ATA makes each line's files when it is first dialled. Proven: six.
- Starting account
- User-ID Sysop (its password replaced: the shipped one is published in every copy)
- Callers page you with
/P Sysopin the Teleconference, which lights the Watch page
The board
The Major BBS is a server: one program, MAJORBBS.EXE, serves every line under a DOS extender, keeps its users in Btrieve files and drives the modem itself. On ATA every caller's browser runs its own copy of that server, and ATA's own record manager on your host keeps the Btrieve files shared between the copies, so mail, forums, the File Library and the user list are one board for every line.
What ATA set up. The free edition activated with its own registration code and raised to its 256-line licence; the operator's password replaced; the vendor's Test account locked; three options set for ATA's machine (GPBOOT NO, so a fault does not reboot the machine; MCUHR -1, so no nightly cleanup runs inside a call; BAUD1 38400); ATALINK, ATA's own module, as the first module the server loads; and the door plumbing (COM2, the GHOST kit in D:\GHOST, the door channel), so doors can be added by the door guide.
The DOS page. "Start the board" runs what a caller's machine runs: F7 logs you on locally, and F10, F9, F10 shuts it down. "BBS" is the package's own operator menu: GO! starts the board, its configuration editor edits the options, Esc leaves to DOS. Start the configuration editor from BBS's menu, not by typing CNF at the DOS prompt (a bare CNF stops at its own "no options" box). "BBSMSX" compiles the configuration after any change. While your DOS page runs the board, callers hear BUSY; and the DOS page will not boot while a caller is on.
Making it your own. The configuration is the .MSG files in D:\BBSV6, compiled to .MCV files the server runs from. Edit with the configuration editor (or any text editor: the value is the last word inside each option's braces), then run BBSMSX, or the board keeps the old values. Leave GPBOOT, MCUHR and BAUD1 as ATA set them.
Callers. A caller types their User-ID and password; a new caller types NEW at the User-ID prompt and starts in class USER (SUPCLS in BBSSUP.MSG). X then Y at the main menu logs off. Passwords are compared without regard to case. When new-user applications are closed on the Settings page, or an address has used its three for the day, a caller who types NEW is told "This board could not take your application." before the questions start.
The Teleconference. T at the main menu. With the Settings page's default, every line shares one room, through ATALINK; you can switch it to the package's own room per line. Anywhere on the board, /# lists who is on every line, and /P <User-ID> <text> pages a caller on any line in the Teleconference's own words. /P Sysop pages you: the Watch page and the PG lamp light up.
Files. The File Library (L at the main menu) runs every protocol inside the server: Xmodem, Xmodem-CRC, 1K, Ymodem batch, Ymodem-g, Zmodem and Kermit. Uploads land in the library's own directory, D:\BBSV6\MAIN.
Doors and game modules. No door or module ships with ATA. The Major BBS runs a DOS door on a second computer through its own GHOST program; ATA runs that computer in each caller's own tab, cabled to the board's COM2. Game modules such as Galactic Empire and Legends of Kyrandia run as one shared world for every line. The door guide has all three step by step.
Doors and game modules on The Major BBS
The Major BBS does not run a door itself. It hands the caller to a second computer, the "door PC", over a serial cable, and the package's own GHOST program on that computer runs the door (the package's GALDOOR.ZIP and GHOST.DOC). On ATA that second computer is a second machine in each caller's own browser tab, its COM1 cabled to the board's COM2. Your board already carries the door plumbing: the door channel, the GHOST kit in D:\GHOST, and its master directory D:\GHOST\DOORPC. Nothing of it runs until the board has a door: a board whose Doors list is empty boots no door PC at all.
Game modules (Galactic Empire, Kyrandia) are different: they are Major BBS modules, not DOS doors, and ATA runs them as one shared world for every line, entered from the same Doors menu.
LORD on The Major BBS
The door's files. Put LORD in
D:\DOORS\LORDas in chapter 3 (the release, the patch over it, START.BAT's first lines madeD:andCD \DOORS\LORD).LORD's nodes. On the DOS page run
CD \DOORS\LORD & LORDCFG, and for every line the board runs:- BBS Software: (9) DOORSYS
- Path To Drop File:
d:\ghost\n1\for node 1,d:\ghost\n2\for node 2, and so on. That is where GHOST writes the drop file on each line's door PC. - Comport: read from the drop file; Fossil/Internal: Regular Fossil.
Leave LORDCFG through its own menu.
The door's batch. GHOST runs a door by its name: for a door record called LORD it runs
LORD.BATfrom its own folder. Every line has its own folder (D:\GHOST\N1,N2, ...), and ATA makes each one, before the line's caller starts, as a copy of one folder you keep:D:\GHOST\DOORPC. So the batch goes there, once, for every line. It must start GHOST again when the door ends, because that is how the board learns the door is over.D:\GHOST\DOORPC\LORD.BAT:@ECHO OFF D: CD \DOORS\LORD CALL START.BAT %NODE% CD \GHOST\N%NODE% GHOST COM1 38400D:\GHOST\DOORPCalso holdsDOOR.MDL, GHOST's model for the DOOR.SYS drop file; leave it there. A door that wants another drop file gets a model of its own there (GHOST.DOC says how they are written).The door record. On the DOS page press "BBS", then GO!, log on locally with F7 as the Sysop, and at the main menu press D for Doors, then A to add one:
- name:
LORD(the batch's name) - description: anything you like
- first channel and last channel:
2and2(the door channel) - key: Enter for none; credits per minute:
0 - time limit: 60 to 120 minutes. Never 0: the time limit is what ends a door whose player has walked away.
- handshaking:
Yes; parameters:2(a drop file)
Enter at the pause saves it. Log off, and shut the board down with F10, F9, F10.
- name:
How callers get there. D at the main menu, then LORD. Their own tab starts the door PC, GHOST answers the board, writes the drop file and runs LORD; Q in LORD returns them to the board's Doors menu. Callers on several lines play at once, in one LORD world. After a door ends, the door line takes about six seconds to reset; a caller who presses E again sooner may be told no channel is available, and can simply try again.
The door PC is the caller's own second machine, on the caller's own line: everything it runs (GHOST, the batches, the models, LORD's programs) is yours, and the drop files it writes stay in the caller's tab.
Galactic Empire (one galaxy for every line)
Galactic Empire is not a DOS door. It is a Major BBS module: a DLL the board's own server loads, whose whole galaxy lives in the server's memory. On ATA every line runs its own copy of the server, so a module loaded the package's way (a DLL= line in MJRBBS.CFG) would give each line a galaxy of its own, and ATA would hold such a board to one line. ATA runs it a different way: the caller enters it from the Doors menu like any door, and ATA's module runner plays the module in the callers' own browsers, every line in ONE galaxy kept on your host. Nothing of the module ships with ATA; you install it yourself, in three steps.
Where it comes from. Galactic Empire 3.2e is Mike Murdock's, released under the GNU GPL; its source is kept at github.com/bsimser/ge. Nobody publishes a build of it for The Major BBS 6.25, so ATA made one from that source: "Galactic Empire for ATA" (galactic-empire-for-ata-<version>.zip, on www.atabbs.com). The kit carries the module ready to upload, ATA's descriptor for it, the author's README, the GPL, and in SOURCE the exact source it was built from with ATA's build kit, as the GPL asks.
The module's files. Upload the kit's
WORLDSfolder into your board folder on the host (in binary mode, or unpack the zip on the host itself), so the files land inWORLDS/GE:D:\WORLDS\GEon the DOS page. Names in capitals, as they come in the kit:MBMGEMP.DLLandMBMGEMP.MDF(the module)MBMGEHLP,MBMGEMSGandMBMGESHP, each as.MSGand its compiled.MCV(the module's texts and options)MBMGEMP.DOC,MBMGEMNU.TXTandMBMGETEA.DATMBMGEUSR.DAT,MBMGESHP.DAT,MBMGEPLT.DATandMBMGEMAL.DAT, empty (the galaxy starts from them; ATA keeps the galaxy itself, never these files)
The module runs in each player's browser, so the files in this folder go to every player who enters: keep nothing private there. Message sources (
.MSG), manuals (.DOC), sources, archives and programs are never sent.Never put any of it in
D:\BBSV6, never run BBSINT or the Menu Tree utility for it, and never add a DLL= line for it: the board would load the module itself, every line would fly its own galaxy, and ATA would hold the board to one line.ATA's descriptor. The kit puts it there already:
D:\WORLDS\GE\ATAWORLD.CFG, three lines (and a comment), the words before the=in lower case:door=GALEMP module=MBMGEMP.DLL name=Galactic EmpireTo write it yourself on the DOS page, three commands (the first with one
>, the next two with>>):ECHO door=GALEMP> D:\WORLDS\GE\ATAWORLD.CFG ECHO module=MBMGEMP.DLL>> D:\WORLDS\GE\ATAWORLD.CFG ECHO name=Galactic Empire>> D:\WORLDS\GE\ATAWORLD.CFGNever give Galactic Empire's descriptor an
exit=hangupline: its hangup routine destroys a ship that cannot leave.The door record. The same Doors list LORD uses: "BBS", GO!, F7, D for Doors, A to add one:
- name:
GALEMP(thedoor=word, at most 8 letters) - description:
Galactic Empire - first and last channel:
2and2 - time limit: 60 minutes (never 0)
- handshaking:
Yes; parameters:2
Enter at the pause saves it. Log off and shut the board down with F10, F9, F10. No batch in
D:\GHOST\DOORPCis needed for a module: ATA answers that door itself.- name:
How callers get there. D at the main menu, then E GALEMP. Their tab loads the galaxy and they play; x leaves a fight, and x at Galactic Empire's own menu returns them to the board. Every caller on every line flies in the same galaxy, and its timers (the robots, production, the mail) run while anyone is playing.
The world appears on the console's Settings page under "Teleconference and module worlds", with Reset beside it once nobody is playing.
Galactic Empire is GPL software: Mike Murdock's 3.2e, maintained by its community.
Legends of Kyrandia (one world for every line)
Kyrandia is a multi-player fantasy adventure, written by Scott Brinker and kept up today by Elwynor Technologies (Rick Hadsall), whose 7.2 release is under the AGPL with Elwynor's own added terms; its source is at github.com/elwynor/elwkyr. Like Galactic Empire it is a Major BBS module, so ATA runs it the same way: the caller enters it from the Doors menu and every line plays in ONE world kept on your host. Nothing of it ships with ATA; you install it yourself.
Where it comes from. Elwynor builds Kyrandia for Worldgroup 3.2 and MBBS v10, not for The Major BBS 6.25, so ATA made a 6.25 build from Elwynor's source, unchanged: "Kyrandia for ATA" (kyrandia-for-ata-<version>.zip, on www.atabbs.com). The kit carries the module ready to upload, ATA's descriptor, Elwynor's license, and in SOURCE everything it was built from: Elwynor's source, ATA's build kit, a small compatibility header, and a BUILD.sh that rebuilds the same ELWKYR.DLL byte for byte with Open Watcom.
The module's files. Upload the kit's
WORLDSfolder into your board folder on the host, so the files land inWORLDS/KYR(D:\WORLDS\KYRon the DOS page), names in capitals:ELWKYR.DLLandELWKYR.MDF(the module)ELWKYRL.MCV,ELWKYRM.MCVandELWKYRS.MCV(its texts and options)ELWKYR.LCS(its map of locations, read when the world starts)ELWKYR.DAT, empty, exactly as Elwynor ships it (a Btrieve 6 file: ATA reads its layout and keeps the players' records itself)
As with Galactic Empire: never in
D:\BBSV6, no BBSINT, no Menu Tree change, no DLL= line.ATA's descriptor. The kit puts it there already:
D:\WORLDS\KYR\ATAWORLD.CFG, four lines (and a comment):door=KYRAND module=ELWKYR.DLL name=Legends of Kyrandia exit=hangupThe last line matters: Kyrandia saves a player only when they hang up, so
exit=hangupmakes a player who leaves with x saved too. Without it, a player's progress since they entered is lost at x. To write it yourself on the DOS page:ECHO door=KYRAND> D:\WORLDS\KYR\ATAWORLD.CFG ECHO module=ELWKYR.DLL>> D:\WORLDS\KYR\ATAWORLD.CFG ECHO name=Legends of Kyrandia>> D:\WORLDS\KYR\ATAWORLD.CFG ECHO exit=hangup>> D:\WORLDS\KYR\ATAWORLD.CFGThe door record. As for Galactic Empire: name
KYRAND, descriptionLegends of Kyrandia, channels2and2, 60 minutes, handshaking Yes, parameters 2.
How callers get there. D at the main menu, then E KYRAND. They choose an alias and play; everyone on every line meets in the same lands. x leaves Kyrandia back to the board. The option "give credits for gold" does nothing here (a world holds no board account), and the SysOp's in-game editor is not available in a world.
Kyrandia is under the AGPL: if you change it and run the changed version, the license asks you to offer your changed source to the players who play it.
Changing a module's files later
A world keeps the files it was made with, so a game in progress is never pulled out from under its players. After you change a module's files (a new build, an edited option), wait until nobody is playing, then press Reset beside the world on the console's Settings page: the next player starts a new world from the files as they are now. Reset ends the old world for good. A descriptor change such as adding exit=hangup also takes effect only after a Reset.
