OOOOOOOOOOOOOO OOOOOOOOOOOOOO OOOOOO OOOOOO OOOOOOOOOOOOOO OOOOOOOOOOOOOO OOOOOOOOOOOOOO OOOOOO OOOOOO OO OOOOOOOOOO OO OO OO OO OO OO OO OO OO OO OO OOOOOO OO OO OOOOOO OO OO OO OO OO OO OO OO OOOOOO OO OO OOOOOO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OOOOOOOOOO OO OO OO OO OO OOOOOOOOOO OO OO OO OO OOOOOOOOOO OO OO OOOOOO OO OO OOOOOOOOOO OO OOOOOO OO OO OO OO OOOOOO OO OO OO OO OOOOOO OO OO OO OO OO OO OO OO OO OO OO OOOOOOOOOOOOOO OOOOOO OOOOOOOOOOOOOO OO OO OOOOOOOOOOOOOO OOOOOO OOOOOOOOOOOOOO OO OO OO OO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OO oMMM OO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO Computer-Based Conversation System Version 1.0 June 14, 1987 Documentation for System Operators Copyright 1986, 1987. Wynn Wagner III. All rights reserved. Editor's note: The documentation that follows is "shareware" of a subtly different sort: it's the product of a host of volunteers, chief among whom is Wynn Wagner. First-party references are Wynn speaking. Even though 1.0 is a "release" version of Opus, we consider the documentation to be still in "Beta" form. It was pulled together from many sources, and you're going to find some duplication as well as omissions. In all likelihood, you'll also find some semi-bizarre formatting glitches. Your indulgence is appreciated. We'd planned a complete index for the release of Opus 1.0, but as the deadline approached, it became clear that our reach exceeded our grasp. Or something like that. Rather than release an index that's half-baked, we thought we'd wait and send it out after Opus hits the streets. Please send suggestions, corrections, observations, wishes, etc. to 133/12 (route via 133/1). All input will be gratefully received. Happy computing, John Miller ii Table of Contents INTRODUCTION ........................................ 1 Howdy ........................................... 1 Guarantee ....................................... 1 Notices and such ................................ 2 Using Opus ...................................... 2 Lawful and Friendly ......................... 2 Non-governmental ............................ 2 Governmental ................................ 2 Distributing Opus Software ...................... 2 Payment ..................................... 3 Credit and Gratitude ............................ 3 Miscellaneous ................................... 5 OPUS OVERVIEW ....................................... 6 What it is ...................................... 6 What's new in Opus 1.0 .......................... 6 Opus now sends mail ......................... 6 Built-in echomail scanner. .................. 6 Built-in anti-duper ......................... 8 Required Hardware ............................... 13 Software ........................................ 14 Messages ........................................ 15 Local ....................................... 15 Matrix ...................................... 15 Broadcast ................................... 15 File Transfers .................................. 15 Uploads ..................................... 16 Downloads ................................... 16 Matrix ...................................... 16 Operating Philosophy ............................ 16 The difference between Opus and Fido ........ 16 Extended Display File Capability ................ 17 Extended File Transfer Protocols ................ 17 EchoMail Enhancements ........................... 17 Mail Interface .................................. 18 Extended Message Area Attributes ................ 18 Private only ................................ 18 Public only ................................. 18 EchoMail .................................... 18 Matrix messages ............................. 19 Barricaded .................................. 19 iii Message Area Commands ........................... 19 R)ead message menu. ......................... 19 F)orward .................................... 19 H)url ....................................... 19 =)Read non-Stop ............................. 19 S)can ....................................... 19 O)utside message maintenance ................ 20 X)port to disks ............................. 20 U)pload message .............................. 20 File Area Commands .............................. 20 H)url ........................................ 20 O)utside File Maintenance ....................... 20 Miscellaneous Commands .......................... 20 INSTALLATION ........................................ 23 Equipment ....................................... 23 Files ........................................... 24 CONFIG.SYS .................................. 24 FILES=xx ................................ 24 BUFFERS=xx .............................. 24 COUNTRY=xxx ............................. 25 DEVICE=ANSI.SYS ......................... 25 STACKS=n,s .............................. 26 AUTOEXEC.BAT .................................... 26 FOSSIL ...................................... 26 Set TZ= ..................................... 27 Subdirectories .............................. 28 Things that can go wrong ........................ 30 Opus-CBCS From The Inside ....................... 31 SETUP ............................................... 34 How to set up a new message area ................ 34 Message area maintenance ........................ 36 How to set up a new file area ................... 36 File area maintenance ........................... 37 THE MATRIX .......................................... 38 Netmail for the complete novice ................. 39 Introduction ................................ 39 An overview of node-to-node mail ............ 41 The incoming message bundle ................. 42 The outgoing mail bundle .................... 43 Quick start to netmail ...................... 43 The node list ............................... 45 The BBS.CTL file ............................ 45 iv Matrix overview for the grizzled ................ 49 A new way of thinking about mail ............ 49 Idea #1 ................................. 49 Idea #2 ................................. 49 Idea #3 ................................. 50 File names ...................................... 50 Bundle names ................................ 50 Flow file names ............................. 51 Archived messages ........................... 51 How it all works ............................ 52 Enter Opus, stage right ..................... 52 Z-Event ..................................... 53 The behavior window ..................... 53 Z-Event overview ........................ 54 How to set up Opus to receive Matrix traffic .... 54 The national mail hour ...................... 57 Overnight long distance ..................... 58 Daytime local-only .......................... 58 How to get into the Matrix ...................... 58 Matrix structure ............................ 59 Matrix addresses ............................ 60 Your area ................................... 60 Asking for a number ......................... 61 Getting along ............................... 61 Operating (in) the Matrix ....................... 62 Matrix hold area ............................ 62 Outbound Matrix traffic ..................... 62 The Matrix UNschedule ....................... 63 Matrix bundlings ............................ 64 Matrix File Requests ............................ 64 Approval listing ............................ 65 Matrix okfile ............................... 65 System advertisement and file list .......... 66 Implementation restriction .................. 66 Errors ...................................... 66 No such file ............................ 66 Initiating "bark" type file requests. ....... 67 Special Matrix menu ......................... 67 Unsuccessful connections .................... 68 Wild Echomail ............................... 69 New Matrix behavior mask .................... 69 Matrix session scripts .......................... 69 Contents of a script file ................... 70 Keywords .................................... 70 Checklist ................................... 73 Sample script ............................... 73 Matrix-oriented batch files ..................... 74 Sample batch file ........................... 75 Checklist for goin' online ...................... 76 v oMMM ................................................ 77 Quick Review of the Matrix ...................... 78 Outbound hold area .............................. 79 Methods ......................................... 79 What's in the holding area ...................... 80 Simple oMMM ..................................... 81 Routing in a nutshell - ......................... 82 Flavors of routing .............................. 82 The control file .................................... 85 Contents ........................................ 86 Do what I say, when I say it .................... 86 Special words ................................... 86 Using oMMM .......................................... 87 Operational overview ............................ 87 Switches .................................... 87 Schedule tag ................................ 88 Info path ................................... 88 Hold path ................................... 88 Message path ................................ 88 Pre-message scan control file ............... 89 Control file ................................ 90 Reference stuff ................................. 90 File names .................................. 90 What about Opus? ............................ 90 ECHOMAIL ............................................ 92 Getting started with Echomail ................... 92 Scan control file ........................... 93 Method ...................................... 93 The Meadow ...................................... 94 Other areas ..................................... 95 Routing and coordination ........................ 96 How it started .................................. 97 OPERATING OPUS ...................................... 99 The Sysop section ............................... 99 Area maintenance ............................ 99 Priv. required .............................. 100 Kinds of messages ........................... 100 Message Types ........................... 100 Message Editing ......................... 100 Miscellaneous ........................... 101 BBS Menu path and barricade file ............ 101 Message path ............................ 102 Help path ............................... 102 Download path ........................... 102 Upload path ............................. 103 Titles .................................. 103 Another area ............................ 103 Quit .................................... 104 vi Matrix ...................................... 104 Information ............................. 104 Poll .................................... 105 Unpack .................................. 105 Clear undialables ....................... 105 Quit .................................... 106 Events and behavior windows ................. 106 List .................................... 106 Change .................................. 107 Status .................................. 107 Kind .................................... 107 Day ..................................... 108 Time .................................... 108 Zone .................................... 108 Length .................................. 108 Forced .................................. 109 Exit code ............................... 109 Bell duration ........................... 110 Z-Event ................................. 110 Housecleaning ....................... 110 Z-Event ................................. 110 Matrix behavior window .............. 110 Quit .................................... 111 Privs/Menus ................................. 112 Outside ..................................... 113 Embedded Commands ................................... 113 The basics ...................................... 114 Data display .................................... 115 Questionnaires, surveys, order forms ............ 116 Flow and user interaction ....................... 116 Privilege control ............................... 117 FILES.BBS Commands .............................. 118 Questionnaire commands ......................... 118 Example 1 ................................... 119 Example 2 ................................... 120 For more information on Opus ........................ 122 Appendix A - Cyberpunk? ............................. 124 Appendix B - Opus and support file list vii Appendix C - Miscellaneous reference stuff .......... 129 Multitasker notes ............................... 129 DoubleDOS ................................... 129 Modem notes ..................................... 130 USR Courier ................................. 130 Telebit Trailblazer ......................... 130 Hayes V-Series .............................. 132 viii INTRODUCTION Howdy! Welcome to Opus, the computer-based conversation system. This system falls into a new area of software: Militantly Public Domain. There is a copyright and limited license. Its sole purpose is to ensure Opus remains available for no money. +----------------------------------------+ | | | Free? Does this mean I can't | | get a discount? | | | | Nunzio | | Opus By-Laws & | | Covert Action Committee | | | +----------------------------------------+ Because no money is charged, Opus sysops aren't consumers. It's more like a community effort. +----------------------------------------+ | | | Be sure you keep Opus free. | | | | Opus never was free. Just because | | there's no money charged doesn't | | mean it's free. The LAWFUL AND | | FRIENDLY license can be more | | expensive than money. | | | | --- from a conversation | | | +----------------------------------------+ Guarantee: You've got to be kidding. Opus-CBCS carries only one guarantee: if you break it, you own both parts. To put it another way, if you run Opus, you do so entirely at your own risk. Opus CBCS 1.0 -1- Introduction to Opus The system may or may not work under your particular circumstances. If it does work, it is possible somebody will invent a way to destroy everything on your disk. Opus contains lots of security features, but those features don't come with any sort of guarantee. As far as a warranty or guarantee is concerned, you are as thoroughly on your own as you can possibly be. More so, probably. Notices and such The Opus Computer-Based Conversation System and all supporting materials are copyrighted by Wynn Wagner III. All rights are reserved. Using Opus Lawful and Friendly are the important words. The author of this system takes the license quite seriously, and if you use Opus you have to do so in a lawful and friendly manner. Non-governmental: You are given a limited license to use Opus-CBCS as long as you do so in a lawful and friendly manner. This includes commercial installations. There is no money involved in running an Opus system. Governmental: Groups controlled or supervised by any government must contact OPUSinfo Here before putting an Opus sysop on-line. There is a license fee for governmental use. Distributing Opus Software You are given permission to distribute Opus-CBCS and its support files for non-governmental use as long as there is no money charged. Nobody is ever to make money from the distribution of Opus software. If your system is a bulletin board, you may not keep Opus on line for download if you charge money to your callers. Opus CBCS 1.0 -2- Introduction to Opus If your system is a time-share system, you must arrange in advance to donate any connect charges to The Shanti Project. Payment: In those cases where money must change hands, a $50.00 payment to The Shanti Project of San Francisco is required for each copy of Opus that is put on line SUBTLE CHANGE FROM PREVIOUS VERSIONS: Opus 0.00 said nobody was to make money from "suggesting its use." That was for consultants. That wording has been dropped because it was confusing. There is no longer any payment required for consultants or for those who suggest Opus to employers or clients--as long as there is no charge for the software itself. Credit and Gratitude Nobody who worked around the Opus 1.00 crew would dispute that the following folks have gone out of their way to help the project. We'll call this "Opus: Sine Qua Non" (the list of folks, without whom there would be no Opus).... DAVID FINSTER The original alpha tester, and the sysop of OPUSinfo Here. If there's something that a hacker is unable to do on your board, it is probably because David's sneaky mind thought of it first and showed me how to break the system. BOB HARTMAN In addition to tweaking my sealink file transfer routine until it had a reasonable disposition, Bob adopted my source to the oMMM program. He chipped in to help code when he saw the need. He is also the author of Opus!Comm (the first-ever FOSSIL program) and a series of echomail utilities. Opus CBCS 1.0 -3- Introduction to Opus RICK HUEBNER He sent code! Here are some of the modules that Rick wrote: OOMP (the internal scanner), ZModem, and dialing scripts. Rick would make the mistake of telling me something like "I'm going to get bored this weekend. Got anything that needs to be written?" Not being the type to pass up many of those kinds of offers, I'd have a design doc headed his way in short order! Rick really does nice work... although it's chock full of tacky squiggles. In fact, I would swear Rick is guilty of gratuitous squiggling. MIKE KELLEHER Mike is currently taking a sabbatical from his work as the sysop of OPUSinfo There. We'll call him OPUSinfo Emeritus. Over the past several months, he's helped hundreds of sysops while maintaining a strong sense of The Hobbyist Spirit. JOHN MILLER Documentation editor. I'm thanking John before I've even read the documentation. He's pulling the docs together as I'm writing this [please excuse Wynn's jerky handwriting- -Ed.]. So... what I'll thank him for now is this: the chutzpah to jump in with both feet at the 11th hour. VINCE PERRIELLO The other alpha tester. Vince is also one of the prime instigators (read "nag") of the FOSSIL standard. The Opus beta-test team included: Rob Elliott Chuck Lawson Mike Kelleher Harv Neghila Jon Sabol Butch Walker Henk Wevers Opus CBCS 1.0 -4- Introduction to Opus In addition to the active participants, the following should be mentioned for doing things without which we would have no Opus: Ward Christiansen. thought up both XModem and bulletin boards Tom Jennings. originated the e-mail network now known as FidoNet Chuck Forsberg. designed ZModem, the fastest and most reliable file transfer protocol available Miscellaneous Fido and FidoNet are trademarks of Tom Jennings. The Sealink file transfer method is copyrighted by System Enhancements Associates. They have released the protocol for general use in return for this notice. The word "opus" is Latin for "project." Although several Opus system operators have adopted a certain penguin as a mascot, you should know that this is not official. Opus-CBCS software has nothing to do with the comic strip Bloom County that has a character named Opus. Any matters involving copyrights and/or trademarks on the penguin are between you and The Washington Post Co. (Bloom County did win a Pulitzer this year... maybe we should.... naw....... ) Opus CBCS 1.0 -5- Introduction to Opus OPUS OVERVIEW What it is: Opus is an evolving computer-based conversation system that combines simplicity with configurability. Simplicity, in that a novice can have a rather nice bulletin board up and running very quickly. Configurability, in that an advanced sysop can turn the customization of his or her board into an art form. It's entirely up to you! Therein lies Opus's charm: it has all the power an advanced sysop demands, while still being easy for both the user and the system operator. Opus provides a feature-rich electronic messaging system, wide choice of file upload and download protocols, plus access to the world's premier amateur e-mail network. Clearly, it would be a bargain at twice the price! What's new in Opus 1.0: Opus now sends mail Version 0.0 of Opus relied on some kind of external program for sending mail. It could receive O.K., but hadn't learned to send for itself yet. That's all been taken care of in version 1.0, and Opus is now a complete standalone electronic mail package. Built-in echomail scanner. Opus 1.0 has an internal scanner; however, there is no intention for it to be a total replacement for programs such as FastScan or ScanMail. Those standalone programs are more "robust" and can handle more complicated situations. The built-in scan feature makes some assumptions: * No message is longer than 12,000 bytes * No area is echo'd to more than 10 systems A non-scientific survey shows that many (but not all) systems will be able to use the built-in scan feature. Opus CBCS 1.0 -6- Opus Overview If you can live with those restrictions, you can use the built-in scan feature. If not, you need to use one of the larger stand- alone systems. The reason for the restrictions is this: if we can make those assumptions, we can have a lightening-fast scanner that will fit into memory at the same time as Opus. We can use a totally new way of scanning messages that lowers the overhead greatly. Without the limitations mentioned above, the scan routine would have to be larger and slower. The original design (or text-based flow chart) was done by Wynn Wagner. The scanner was written by RICK HUEBNER. Opus CBCS 1.0 -7- Opus Overview Built-in anti-duper If you use Opus's internal scanner, you will also benefit from a new internal Echomail dupe detector/preventer. Not a dupe killer, it simply doesn't toss duplicate messages in the first place. At least, that's the theory! Matrix attributes, assumptions and options Several new assumptions and options have been added concerning Opus message attributes. A minimum privilege level can be assigned to each option. See OPUS.CTL for details. Forward, then kill The FK command lets you forward a message, then kill the original. External file transfer programs Opus 1.0 has more flexibility for external file transfer protocols. Ten "slots" are available for file transfer protocol programs. "Sysop is next" key When a caller is on-line, the "S" key toggles a flag that tells Opus not to let any more callers on-line. In other words, Opus will hold the system for you. Internal video codes New embedded codes let you specify color attributes within a .BBS file. That means a single file can replace the former .BBS/.GBS combination. The old method is still supported. Orphan command This command has been eliminated in the Files area External file management option You can link an external file manager directly into the File area menu. Opus CBCS 1.0 -8- Opus Overview Carrier loss handling Opus can now perform its own "watchdog" and reboot after carrier loss when an external program is invoked. Video method The local console video output method may be optimized for certain computer types. LAN support OPUS.EXE can now be kept on a server External message management You may link an external message manager directly into the Message area menu. Zone command This command is no longer supported in the message area menu. .CTL/.PRM check Opus makes a big fuss (but keeps on truckin') if there is a date/time mismatch suggesting you may have forgotten to re- assemble a control file after you make some changes. Time and date display format flexibility You can control how dates and times are displayed in messages. Time and date storage format There has been a change in the internal date/time format of message files (*.MSG). Opus CBCS 1.0 -9- Opus Overview Expanded multitasker support In addition to DoubleDOS, Opus now supports several other operating system enhancement programs. DOS gateway You can execute a DOS command from the local sysop menu when Opus is waiting for a caller. Task numbers Opus now lets you specify a task number, thus making it easier to run multiple copies of Opus on the same PC. This will affect the names of certain files. No chat during .GBS/.BBS file execution Because of the overlay structure, you cannot go into chat when any .GBS/.BBS file is executing. Opus sends a warning to the local console if you try it. Forced events Events may be declared as forced. A forced event which gets overrun by a mail transfer will be executed retroactively. Messages from disk files Opus can create a message from a text file. Disk space alarm If disk space gets low in the primary areas for netmail, Opus raises a ruckus. Multiple Matrix addresses You may declare up to 15 Matrix addresses. Only the first address will be associated with outbound traffic. This is especially handy for hosts and hubs. Opus CBCS 1.0 -10- Opus Overview Uploaded messages Users may upload messages. External message editor An external message editor may be declared in place of the normal line-oriented editor. Opus will automatically quote any message to which you reply with an external editor. New embedded command GoTo permits jumping over a section of .GBS/.BBS files. Asynch ports You may specify up to 16 asynch ports, provided your FOSSIL program supports them. Keyboard commands The "K" key replaces ^K for local keyboard command. "M" replaces ^U, and calls a Matrix menu for performing several Matrix operations. FILES.BBS wildcards Files may be listed with wildcards in FILES.BBS, and become available for downloading. Event manager supports day-of-week Events can now run on a single day of the week. Outside embedded command supports parameters The ^OC command now supports parameter passing for use by external programs. Internal ZMODEM protocol This fast, robust protocol is supported as an internal file transfer protocol as well as for netmail (with another Opus 1.0) Opus CBCS 1.0 -11- Opus Overview New netmail handshake Opus uses The YooHoo(c) handshake protocol. It is compatible with most other non-Opus netmail systems. Zone and point addressing These extensions to the NET/NODE addressing scheme will support INTERNATIONAL as well as LOCAL mail addressing. Extra support for external Echomail programs Optionally, Opus can create a log of message areas to which it tosses Echomail. This will let external programs process only those areas that have changed. Extended modem support Higher baud rates, as well as a "locked" serial port speed are supported for compatibility with new high-speed modems. Several forms of flow control are also supported Lastread pointers for Sysop The lastread pointers for the first user in the USER file are retained for all areas, not just the eight allowed for regular users. Also, the lastread pointers are the same for local keyboard mode as well as remote access mode. Default of user to area one on carrier loss If carrier is dropped, the user record is set to area one if the caller was in a message or file area over 50. C)ontents command displays date and time The C)ontents command in the file area will display the date/time of each file in an archive. Logon time limit You may specify your own logon time limit for users. Opus CBCS 1.0 -12- Opus Overview Configurable "looking busy" support You may specify the string which makes your modem look busy, including DTR manipulation. Dialing script support You may write a dialing script and specify it in place of a phone number in your node list. This is useful for accessing certain networks. Export message to disk Messages may be written to disk in ASCII format by selecting the X)port command from the Message area menu. Enhanced embedded user input command accepts the key Questions, or menus with embedded commands, can now accept the key as a valid reponse. Required Hardware Standard equipment for Opus consists of: AT-class computer with Award BIOS 72-Meg hard drive One each: TeleBit Trailblazer modem (9600 bps) U.S.Robotics HST modem (9600 bps) Amdek 722 EGA monitor PC DOS 3.3 Mirror sunglasses Nerf bat That roughly describes Wynn's computer setup. It is the only one that carries any sort of assurances. It is: -={ Opus will sometimes run on Wynn's computer }=- No other assurances are made. All other equipment is officially classified as Non-Standard. Opus CBCS 1.0 -13- Opus Overview In general, you have a reasonable chance of getting Opus 1.0 to work on any MS-DOS computer with at least 128k of available memory. In most cases, you will want to be able to run external programs from Opus, and that requires a minimum of 256k. Hardware incompatibilities are resolved through a special program called FOSSIL. It contains modem, keyboard and video methods for specific hardware configurations. It means the same version of Opus can run on an IBM PC, an IBM PS/2, a DEC Rainbow or a Tandy 2K. The only difference is the FOSSIL program. Theoretically, Opus will use any modem that uses the Hayes command set and supports DTR. It has been successfully tested with the USR Courier and the Hayes family (2400 and down). If you use another modem type, Opus should work (but see guarantee, p. XX). In the OPUS.CTL file, initialization strings for several models of modems are listed. If you get other brands of modems to work with Opus, please contact one of the INFOnodes and let them know the brand name, the initialization string and what you did to get it to work. Also, Opus REQUIRES a storage device larger than a floppy drive. Generally, this will be a hard drive, but could just as easily be cartridge media such as a Bernoulli Box. There are absolutely no plans to release a version that will run on floppies; the support files simply take too much room. Software Several pieces of software are required to make Opus work. A couple are worth singling out. First, DOS 2.1 or higher...2.0 and below are NOT supported. In fact, not all of Opus's features will work under DOS 2.1. DOS 3.1 or higher is recommended for a fully-featured Opus system. There are no guarantees that DOS 2.1 will be supported in future releases of Opus. Next, FOSSIL. This is where Opus's low-level communications routines live. FOSSIL is a memory-resident assembly language program or device driver designed especially for Opus. It supplies the routines Opus needs to communicate with the modem. If you are running other memory-resident programs, you may experience difficulty with FOSSIL. Installing FOSSIL last may solve the problem, but it is NOT guaranteed. Opus CBCS 1.0 -14- Opus Overview Messages Messages can be of three basic types, or scopes: local, Matrix and broadcast. A message's scope determines its behavior on an Opus-based system. Local Messages Local messages are the simplest form available, common to almost all BBS systems. Local messages are available to a predefined group of users on a single BBS--the one where they were entered. Matrix Messages Matrix is the Opus word for network. This was chosen because of the ambiguity associated with the word "network." The Matrix is defined as a group of bulletin boards with can exchange information via the telephone network. Opus 1.0 can place outgoing Matrix calls, and receive incoming mail from other Opera, or other systems running either the FidoNet or WaZOO matrix protocols. Broadcast Messages Broadcast messages are fully compatible with EchoMail, which is covered in more detail later in this manual. EchoMail, by Jeff Rush, provides a means of maintaining the same message base on multiple bulletin boards. This allows conferencing--even internationally--if you choose to do so. Remember, phone calls placed for mail transfers cost the same as regular calls. Be aware that anything involving Matrix transactions can involve long distance phone charges. File Transfers Opus supports three different types of file transfers: uploads, downloads and Matrix. These enable sharing of public domain or "shareware" software among users and other bulletin board systems. Opus CBCS 1.0 -15- Opus Overview Uploads Uploading is defined as a user sending a file TO a BBS. This lets users share programs they have written or collected. Downloads Downloading is defined as a user receiving a file FROM a bulletin board system. This allows a single point to serve as a 'holding tank' for software that can be freely shared among users. Matrix Matrix transfers are uploads or downloads between two Matrix systems. You can direct Opus to send a file to any other system in the Matrix. Opus will accept incoming Matrix files any time it is not busy. Operating Philosophy The operational philosophy of Opus can be summed up in a very brief statement: -={ KEEP IT SIMPLE! }=- Opus is very easy to use if you let the installation kit do its job. A sysop can lead a very satisfying life with the basic Opus installation. It will still be a superior system, requiring a minimum of maintenance. There are thousands of custom features available; each Opus board will probably look and act differently, but there is no guarantee that any of the customization methods will be easy or immediately apparent. It's best to start with a basic system and to customize things gradually after gaining experience with Opus. The difficult functions are always available, but never required. If you want to tailor your system to look and act a certain way, you can, any time. The rewards you reap are proportional to the amount of work you put into the system, and that can run into years if you let it. Opus CBCS 1.0 -16- Opus Overview The difference between Opus and Fido: Opus is an evolutionary step in the field of networked bulletin boards pioneered by Tom Jennings and Fido. Opus isn't a Fido "clone;" the only compatibility between Opus and Fido involves the structure of the support files--such things as Dir.Bbs, Welcome1.Bbs, etc., and data files like User.Bbs. Extended Display File Capability ANSI graphics are supported as a user option. Each support file has two flavors: Text and Graphics. These are differentiated by extension; text files have an extension of .BBS, and graphic files, .GBS. Through the use of an embedded command, you can make any support file branch to an external program. The sysop is responsible for insuring that the program directs its output to the comm port. This feature allows multiple "Outside" features to be supported. Questionnaire information can be collected from within any BBS/GBS file. This can be used to log the activity of any displayed section of your board. You can insert a person's name, display a quote, date and time, etc., within any BBS/GBS file. Virtually anything Opus knows about the user can be displayed at any point in the support files. Additional embedded commands allow you to make any BBS/GBS file a submenu. This is handy for things like multiple bulletins, interactive help systems, etc. A complete treatment of embedded commands begins on Page 104. Extended File Transfer Protocols Several transfer protocols are supported in Opus. These include Zmodem, Ymodem, Xmodem, Telink, and SEALink. Opus also has ten "slots" available for installation of external protocols, at the sysop's discretion--for example, Windowed Xmodem (WXmodem), Sliding Window Kermit and MNP. These will be described more thoroughly in the file transfer section. EchoMail Enhancements Opus lets the sysop determine whether EchoMail SEEN-BY lines are displayed to the user. Few appreciate the unsightliness of this part of EchoMail, and Opus eliminates that problem. If you do not care for SEEN-BYs, Opus lets you disable their display. Opus CBCS 1.0 -17- Opus Overview The display of extended addressing can be disabled. As more distinct addresses become available over the Matrix, more information will need to be embedded within the body of messages. Opus lets you control who can and can't see this information. Opus automatically inserts its own origin line if a message area is marked as broadcast. This lets other systems know what package processed the mail. You can tell Opus to unARC and toss ArcMail and EchoMail packets automatically. You no longer have to declare an external event to extract ArcMail packets and toss EchoMail--Opus does this for you. Mail Interface Opus can receive mail bundles anytime. In other words, Matrix transactions are not restricted to fixed time slots. You can also SEND send mail to another Opus anytime. Opus messages are completely compatible with FidoNet specifications as defined in documents published by the FidoNet Technical Standards Committee at the time Opus 1.00 was released. Extended Message Area Attributes A variety of message area attributes are supported. With them, you can define exactly what type of messages will be placed in what area. Private only: All messages entered in this area will be marked "private," and cannot be read by other users. Public only: All messages in this areas can be read by all users. Read-only: Messages in this area can be read by callers, but only sysops and assistant sysops can enter new messages. Anonymous messages: In an area marked as "anonymous," Opus will ask the user to supply a pseudonym. EchoMail Conference-type message bases are recognized. The user will be told that the message will be broadcast, and Opus will automatically do such echomail-oriented processing as inserting an "origin line" into the message. Opus CBCS 1.0 -18- Opus Overview Matrix messages These are treated like FidoNet messages. The user is asked where the message is to be sent and to whom. Barricaded: Barricade areas have passwords associated with them; by using this feature, you can allow people higher privileges within certain areas. These attributes may be combined in any fashion. You can require all messages in your Matrix area to be private, or all EchoMail messages to be public. It is totally up to the sysop as to how message areas will behave. Message Area Commands Opus does not have a separate R)ead message menu. All the message commands are contained in one menu, making message functions much easier to manage. Following is a brief description of Opus's file and message commands, including some enhanced functions: F)orward Lets you copy a message to another user. This comes in handy when a user has entered a message to the wrong person. F)orward has another variation called Forward as Bombing Run. This lets you send a message to a list without having to reenter the message. H)url Can be used to move a message from one area to another. It's helpful for cleaning up behind users who don't understand the system. It's also handy for removing advertisements from EchoMail areas. (Note that using H)url requires the source and destination message areas to be located on the same physical drive.) =)Read non-Stop Just what it says. It will display messages continuously until the highest message is reached. By opening a capture buffer, the user may download an entire group of messages for reading offline. S)can Will check for messages to the user in ALL message areas. Opus CBCS 1.0 -19- Opus Overview Message area commands new with version 1.0 include: O)utside message maintenance Lets you call an external program for message maintenance chores. X)port to disks Turns a message into a disk file U)pload message Turns a disk file into a message Access to Opus's message editor commands is defined by a menu file. It works like any other "*PRIV.BBS" file and lets the system operator set access levels for the various commands. The LORE (line-oriented editor) has an additional command, H)andling, which lets you change message attributes. Current attributes include Private, Kill/Sent, File-Attach, Crash, File- Request, Return-Receipt Request, Update-Request, and Audit- Request. Some of these are for use with external mail programs, and have no real use when sending mail to another Opus system. File Area Commands New file area commands include: H)url This works for files just like it does for messages. O)utside File Maintenance Lets you call an external program for file maintenance activities. Miscellaneous Commands The user does not need to hit the return key at connect time to establish a baud rate. Opus does this automatically. ARC and LBR file contents can be displayed. The user can see what files are contained in an archive without downloading it. When a private local message is entered, Opus checks to see that a user by that name exists on the system. This insures that every message is deliverable. This function is disabled in Matrix and EchoMail areas. Opus CBCS 1.0 -20- Opus Overview All of the sysop commands are menu driven in Opus, making board maintenance much easier. The sysop can raise or lower an online user's time and or access privilege from the local console. Opus CBCS 1.0 -21- Opus Overview MMMMMM MM MM MMMMM MMMMMMMM MMMMMM MMMM MMMM MM MM MM MM M M MM M MMM MMM MM MM MM MMM MM MM MM MM MM MM MM MM MMMM MM MM MM MM MM MM MM MM MM MM MM MMMMM MM MMMMMMMM MM MM MM MM MMMM MM MM MM MM MM MM MM MM MMM MM MM MM MM MM MM MM MM MM M MM MM MM MM MM M MM M MMMMMM MMM MM MMMMM MMMM MMMM MMMM MMMMMM MMMMMM Installation of Opus-CBCS, v1 Opus CBCS 1.0 -22- Opus Installation INSTALLATION If you are upgrading an existing Opus, you may wish to jump directly to: QUIK_KIT.ARC Please address any comments about this installation procedure to: David Finster Matrix - 1:124/111.0 Data - (214) 991-3381 2400 BPS +-------------------------------------------------+ | | | "It's a hundred and six miles to Chicago. | | We've got a full tank of gas, half a pack | | of cigarettes, it's dark, and we're wearing | | sunglasses." | | | | "Hit it." | | ---- The Blues Brothers | | | +-------------------------------------------------+ Here's the theory: getting Opus running "out of the box" is supposed to be a fairly simple job. There are thousands of things you can do to Opus-CBCS to customize it, but none of that is guaranteed to be simple or straightforward. Even if you are an experienced sysop, please FIRST install Opus "by the numbers," and defer customizing and tweaking until after you have the system running. That way, you will keep the number of possible errors to a minimum. This installation assumes the following: * You are putting your system onto drive C: * You have a working knowledge of MS-DOS or PC-DOS * You are wearing mirror shades Opus CBCS 1.0 -23- Opus Installation Installation "by the numbers" . . . What you need to have on hand before you start: Equipment: Nerf bat IBM personal computer or close compatible with hard disk Files CONFIG.SYS File Config.sys lets you set some of the operating parameters of your computer at boot time. There are four-and-a-half (depends on your DOS version) commands that directly affect Opus' performance: FILES=xx This statement tells DOS how many files a single process may have open at one time. If a program tries to use more files than you have declared, it generally does nasty things, like deleting the currently opened files to make room for new ones. Not a pretty sight. Opus requires at least 20 files. DOS allocates 48 bytes for each file defined in Config.sys, So you can be pretty liberal in allocating these. If you are running some sort of multi-tasker, remember that your file handles are divided by the number of tasks running. That is, if you are running two programs, and you have files set to 20, each task will be allowed to open 10. This will not work with Opus. You will need to increase the number of files. The maximum number of file handles you can allocate is 255, but this is VERY excessive. BUFFERS=xx This tells DOS how much information to read in at a time when a transfer is made from disk to memory. Each buffer takes 528 bytes, so you might need to watch this if you are running in a limited amount of space. Generally speaking, if you specify too few buffers at boot time, you will slow the system down. If you specify too many buffers, you will slow the system down, so you really need to experiment with this one. We've found that between 40 and 60 is about right on most systems. The largest number of buffers that can be allocated under versions of DOS prior to 3.3 is 99. Opus CBCS 1.0 -24- Opus Installation COUNTRY=xxx This parameter specifies how the keyboard mapping, the currency symbol, the decimal separator, and most important, the date and time formats. OPUS WILL DO NASTY THINGS IF THE DATE FORMAT IS NOT 'MERICAN!!! You can still load an optional keyboard driver, but you must not specify a country code other than 001. If you have dates showing up as garbage, you have your machine installed for the wrong country, even if you happen to live there. DEVICE=ANSI.SYS You must include this statement in your Config.sys file to use Opus's graphics capabilities. ANSI enables computer-to- computer color and cursor positioning. SEE HERE: If there are a lot of numbers, semi-colons and left brackets on your screen when Opus runs, you do not have ANSI installed! You should install the ANSI device driver that comes with DOS (built into DEC's version) until your Opus is stable. Substitute video drivers may or may not work. +----------------------------------------------------------+ | | | Quick DOS lesson: You install ANSI by adding a | | line in CONFIG.SYS that reads: | | | | device=[fully-qualified pathname]ANSI.SYS. | | | | (Re)booting the machine will install ANSI.SYS, | | thus enabling Opus's graphics. | | | +----------------------------------------------------------+ For further information on setting up a CONFIG.sys file, turn to the configuration section of your DOS manual. The description in the DOS 3.x manual is very good, and should more than answer any questions. Opus CBCS 1.0 -25- Opus Installation STACKS=n,s The internal stack handling in DOS 3.2 and higher has provided a new "feature" for those who want to lock up their keyboards (and screens, and disk drives . . .) To prevent lockup when repeated interrupts overrun DOS's stack, you may wish to include something like the following in CONFIG.SYS: STACKS=18,256 That doesn't mean "eighteen-thousand, two hundred fifty six." It's actually 18 stack frames of 256 bytes--plenty for Opus. +-------------------------------+ | Suggested settings: | | | | FILES=40 | | BUFFERS=40 | | DEVICE=ANSI.SYS | | STACKS=18,256 | | | +-------------------------------+ AUTOEXEC.BAT Opus also requires a couple of lines in your Autoexec.bat file. While this is also a good place to install one-time options and resident programs, bulletin boards do NOT generally get along well with memory resident software such as dPath or Ready! Anything that installs its own keyboard routines may cause conflicts with the bulletin board routines. You can try whatever programs you want with Opus, but there is no guarantee that they will work. If your Opus is turning weird, uninstall any memory resident programs, and see if the problem stops. FOSSIL Autoexec.bat is the place to install many FOSSIL communications programs; some versions, however, are drivers and must be installed via CONFIG.SYS. Please check the documentation for the FOSSIL you will be using. Opus CBCS 1.0 -26- Opus Installation Set TZ= Internally, Opus works in Greenwich Mean Time. You needn't be exposed to this, because Opus tries to adjust to your time zone by using a DOS environment variable called TZ. This is standard for programs written in Lattice or Microsoft C, and you may have already set this if you are a C programmer. If not, you will need to tell DOS the time difference between your location and Greenwich Mean Time. It's really not difficult; you can set it once and forget about it. Following are examples for the US. The format for the variable is xxxyyy where xxx is the three letter designation for your time zone (i.e., EST for Eastern Standard Time), and yyy is a two digit signed number signifying the difference from Greenwich Mean Time to your time zone. Countries west of Greenwich have a positive number; east, negative. The sign is required in the definition. Here are the examples for the United States: Atlantic For standard time.......... SET TZ=AST+04 For daylight time.......... SET TZ=ADT+03 Eastern For standard time.......... SET TZ=EST+05 For daylight time.......... SET TZ=EDT+04 Central For standard time.......... SET TZ=EST+06 For daylight time.......... SET TZ=EDT+05 Mountain For standard time.......... SET TZ=EST+07 For daylight time.......... SET TZ=EDT+06 Pacific For standard time.......... SET TZ=EST+08 For daylight time.......... SET TZ=EDT+07 Opus defaults to Central Standard Time, which is CST+06. If you are in the central time zone of the U.S., you don't have to set this, although it is still a good idea. Opus CBCS 1.0 -27- Opus Installation Subdirectories (See Appendix B for a complete list of Opus and support files.) * Create these subdirectories: C:\OPUS C:\OPUS\HLP C:\OPUS\MISC C:\OPUS\OUTBOUND C:\MSG C:\MSG\GENERAL C:\MSG\NET C:\FILE C:\FILE\GENERAL C:\FILE\NET * Type "CD \OPUS" to set default drive * Copy the installation kit to C:\OPUS. * Copy your EXE package (OEXE_100.ARC) to C:\OPUS and UnArc it. * Do one of the following: New sysops: Run the MK_USER program to create the file USER.BBS. It works like this: MK_USER firstname lastname password No item is optional. Grizzled veterans of Opus 0.00 or Fido v11w... Copy your existing USER.BBS file to C:\OPUS. The Opus user file is structurally compatible with both of those systems. Please note that your own user record should be the zeroth (0th) item in the user file. The user in that position gets enhanced "last message read pointer" capabilities. Also, please note that the first item is called the zeroth item. In most things, you'll find that Opus is zero-based. Some user file utilities begin with "1" which throws all user record numbers off by a digit. Opus CBCS 1.0 -28- Opus Installation Everybody: * Copy your Help Sub-System (OHLP_100.ARC) to C:\OPUS\HLP, and UnArc it. * Copy your Misc File Package (OMSC_100.ARC) to C:\OPUS\MISC and UnArc it. * Type "COPY OPUS.CTL BBS.CTL" and press * Using a text editor, edit the file BBS.CTL. You will need to check/change the following lines: +---------------+---------------+-------------------+ | THE WORD TO | APPROXIMATE | | | LOOK FOR... | LINE NUMBER | NOTES | +---------------+---------------+-------------------+ | Baud | 117 | maximum baud rate | | | | your system can | | | | handle. Remove | | | | the "%" from in | | | | front of the baud | | | | rate that applies.| +---------------+---------------+-------------------+ | Modem init | 210 | Modem type. Most | | | | major brands are | | | | listed. Remove | | | | the "%" from in | | | | front of the line | | | | shown for your | | | | modem. | +---------------+---------------+-------------------+ | Sysop | 600 | Your name. | +---------------+---------------+-------------------+ | System | 620 | Your board's name.| +---------------+---------------+-------------------+ Please try to resist the temptation to change anything else. * Type "OPUS_CTL BBS" and press . This step turns BBS.CTL into the BBS.PRM file used by Opus. If you are missing any important files, this is where you will probably find out about it. * Get your FOSSIL program running. For PC-DOS users, this means running Opus!Comm or installing the X00 device driver. Those programs have their own documentation. Opus CBCS 1.0 -29- Opus Installation * Put a time zone entry into your environment. From the DOS prompt, you can type something like this: set TZ=CST4 You can put that line into your AUTOEXEC.BAT file to keep you from having to type it all the time. The TZ means TimeZone. "CST" is the 3-character name of your time zone. The number is the number of hours you are from Greenwich Mean Time. This part is pretty important. If you put the wrong number here, your events will not happen at the correct time. After you are set up, you'll want to study the section of the documentation dealing with this in more details. * Check the contents of any file you're using named LOGO.???. This file will be displayed automatically when a connection is made. Be sure it contains no ANSI graphics and absolutely no IBM-graphics characters. In addition, it should be fairly short. Following these guidelines will a help make matrix connections go more smoothly. * Type "RUNOPUS" and press . You should see your modem lights flash. Opus will check out your system. Shortly, you should see the message "Ready" on your screen. Welcome to Opus-CBCS! Things that can go wrong * Be sure you have followed all the above steps precisely. If you have fudged a little on things like the subdirectory names or the control file, un-fudge your system and try it "by the numbers." * Make sure you are running compatible equipment and that it is in working order. * Triple check to see that you have all the required files in their proper place and that you correctly made those three changes to the BBS.CTL file. Opus CBCS 1.0 -30- Opus Installation +-------------------------------------------------+ | | | "In case of fire, yell FIRE." | | | | --- the management | | | +-------------------------------------------------+ Opus-CBCS From The Inside: This section is a walking tour of the system. If it important that you go through it step-by-step. In addition to getting familiar with the setup, you'll also be able to check your setup. When you see the "Ready" message on your screen, press the letter "K" (Keyboard mode). The modem's DTR light should go out and you should see your name on the screen in the form of a question: Adam Bomb [Y,n]? _ Press ENTER to answer YES. When Opus asks for your password, type it. Then press ENTER. Opus displays dots instead of letters when you are typing your password (in case somebody is looking over your shoulder). After some high-tech displays and welcome screens, you should find yourself at the main menu. Type "!" (exclamation point) at the main menu... then press ENTER. If "!" isn't a menu option, you aren't setup as a sysop. You can use a user file utility such as REM_SYSOP to adjust your access level. The sysop menu looks like this: SYSOP A)rea maintenance M)atrix setup E)vents P)riv. (menu) O)utside Q)uit Type "A" and press ENTER. You'll find yourself at the Area Maintenance menu. Opus CBCS 1.0 -31- Opus Installation Change from area zero to area one. Type "A1" and press ENTER. WHEW... are you getting tired of "and press ENTER"? I know somebody who's tired of typing it. Just remember to press ENTER after ever command and I'll stop hounding you about it. Type "T" (for TITLES). Then type "M" for Message area title. Opus will ask you to type a description of your message area. This is the title that users will see. Type "General Messages." Select "T" for titles again. This time type "F" for File area title. Give some sort of clever title to your file area #1. Type "MY FIRST FILE AREA" or something. You have about 50 or so characters. Type "Q" to quit the area maintenance section. From the sysop section menu, select E)VENTS by typing "E." You should see the EVENT MANAGER menu. Type "C0" to tell Opus you want to change event slot zero. You don't have to do anything here... other than gawk. IMPORTANT: It is absolutely required that you have at least one enabled external event. Opus will get thoroughly confused without it! The RUNOPUS batch file is setup to recycle on the pre-set external event. The system comes with these events already setup: YELL ..... 6:00pm - 9:00pm Z ........ No Outbound, all day eXternal.. midnight, 1 minute Type "Q" to quit the Change Event menu. Type "Q" again to quit the Event Manager itself. Type "Q" once more to quit the sysop section. You should now find yourself at the main menu. Press "G" for goodbye. Opus CBCS 1.0 -32- Opus Installation Your basic installation is now complete. The best course at this point is to print out the manual, and spend a couple hours reading it. Opus CBCS 1.0 -33- Opus Installation MMMMMMM MMMMMMMMMM MMMMMM MMMM MMMM MMMMMMMMMM MMMMMMMM MMMMMMMMMM MMMMMMMM MMMM MMMM MMMMMMMMMMM MM M MM M M MM M MM MM MM MMM MM MM MM MM MM MM MM MM MM MM MM MM MM MMM MMMMMMM MMMMM MM MM MM MMMMMMMMMMM MMMMMMM MMMMM MM MM MM MMMMMMMMMM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM M MM MM M MM MM MM MM MMMMMMMM MMMMMMMMMM MMMM MMMMMMMM MMMM MMMMMMM MMMMMMMMMM MMMM MMMMMM MMMM There are four fundamental ways to customize your system: * The SYSOP menu on-line. To get there, use "!" (exclamation point) from the main Opus menu. * The CONTROL FILE. This is the single best place to find ways of customizing your system. The sample control file (OPUS.CTL) in the installation kit has line after line of comments. Start at the top, and you'll have a good working knowledge of Opus by the end. * External programs provide lots of help. Here are a few: REM_SYSOP by Bernie Lawrence ... a user file manager OEVENT by Doug Boone ........ spiffy event editor * BBS/GBS files offer room for the most creativity. You can use embedded commands and binary color codes to create lavish widgets for callers. How to set up a new message area * Create a subdirectory for the message area * Get to the sysop menu ("!" from the main Opus menu) * Select A)rea maintenance from the sysop menu Opus CBCS 1.0 -34- Opus Setup * Type "A" then the number you want to use for the new area. This can be any number between 0 and 99. NOTE: Areas should be numbered consecutively, except in special circumstances. If you skip a number, all higher-numbered areas will be invisible to callers. They will be accessible, but they won't appear on the menu displays. If this really is a never-used-before area, Opus will say something like "No area #2. Create one [y,N] ?." Type "Y" to say YES. You should see a screen full of options. Go through the options one by one: PRIV REQUIRED set the minimum access level you want to require to get into the area. Most callers will be NORMAL. New areas are created with an access level of SYSOP. MESSAGE PATH select "M." When asked, type the path to your new message area. This would be the subdirectory you just created. For example: "C:\MSG\TECHTALK\." Most likely, Opus will complain that it can't find the file DIR.BBS. This is a normal reaction. Don't worry about it. If there is no DIR.BBS, Opus will tell you. Then it will say "Continue anyway?" Type "Y." KINDS select the KINDS of messages you want to allow in the area. The KINDS line should say "Local, Public+Private Messages." This is just what you want in most cases. TITLE Select "T" then "M" to setup a description of your message area. You have about 50 characters available. This title is used on menus and area listings. Q)uit the setup section. Say G)oodbye from the main menu, and get off line, for crying out loud. Callers out there are waiting to use your new message area! Opus CBCS 1.0 -35- Opus Setup Message area maintenance Message are stored in individual files. Message #1 is in a file called "1.MSG," for example. Large gaps between message numbers can cause big on-line delays. There are several public domain message renumber utilities (e.g., QkRenum and Renum). You should renumber message areas regularly. In addition, several public domain utilities are available to automatically kill messages by age. This keeps you from taking up disk space with old material. One thing you probably shouldn't do too often: reorganize your physical drive. Several utilities are available (e.g., Optimize and DOG) to do such things. They are handy and highly recommended. In technical terms, these programs "de-fragment" your disk. Running the programs too often, however, causes extra wear on your disk drive head actuator(s). Run them once a month or so. How to set up a new file area * Follow the steps for setting up a message area. * Instead of a message path, setup DOWNLOAD and UPLOAD paths. The download path is the subdirectory containing file you want to make available to callers. The upload path is the subdirectory to hold any files that callers might send to you. * Copy any downloadable files into the subdirectory. * You should find a file called FILES.BBS in the subdirectory. Use a text editor to list the downloadable files. Make sure the file name starts in the far left column. You can type a short description of each file, but remember to leave space on the line for a date. Opus automatically inserts the file's date when it displays the FILES.BBS information. Opus CBCS 1.0 -36- Opus Setup Color is added automagically by Opus. You don't have to mess with it. IMPORTANT: FILES.BBS ABSOLUTELY CANNOT END WITH A CONTROL-Z CHARACTER. Some text editors enjoy putting ^Z's at the end of a file, but Opus doesn't like ^Z's at all. If your editor insists this, you need to run FILES.BBS through a filter such as "STRIP_Z.EXE" before putting the system on-line. File area maintenance Opus keeps a list of files for each file area. It's in a text file called FILES.BBS in the area's subdirectory. Unless a file is listed in FILES.BBS, callers with an access level of NORMAL or below can't download the file. When a user uploads a file, Opus will automatically put the file into FILES.BBS. Adding and deleting files and editing FILES.BBS is about all there is to file section maintenance. Opus CBCS 1.0 -37- Opus Setup ### ### ######## ######## ######## ###### ## ## #### #### ## ## # ## # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ## ####### ## ## ## ## ######## ## ###### ## #### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ###### ## ## +---------------------------------------------+ | | | "Arrogance is the mother of invention." | | | | - Guido Palermo - | | Opus Bylaws and Covert Action Committee | | | | | | | | Actually, Guido just claims this | | quote. When I checked, the quote's | | serial number had been filed off... | | so it's impossible to tell for sure. | | | +---------------------------------------------+ This is a general explanation of the methods involved with sending messages from your system to other systems. IMPORTANT Old hand or no, if you skip this section, you are going to have a hard go of it later! The reason is that Opus 1.0, in its treatment of mail, is almost, but not quite entirely unlike Fido and Opus 0.0 (apologies to Douglas Adams. Netmail phone connections work like other systems. It's the operation from sysop's point of view that is so different. It's important to set up your head for all of this before you set up your computer. There's no rule that says you have to get Opus Opus CBCS 1.0 -38- Opus Matrix Outbound running today, so please kick back and enjoy reading how Opus does mail. It'll save you time in the long run. IF YOU'RE AN OLD HAND, be forewarned that some of the ideas will seem very different. You old hands may now jump ahead to page 49. Please leave quietly; the rest of us will be along soon. Netmail for the complete novice: Introduction This section is dedicated to the sysop who has no previous experience with netmail. If you follow the step-by-step instructions, you will quickly set up simple node-to-node netmail and one echomail conference. This does not cover netmail comprehensively, but it will get you up and running without a lot of frustration Advanced netmail topics will be covered in other sections of the documentation. The novice's introduction to netmail is overwhelming, with all the jargon and programs that abound: +-----------------------------------------------------+ | ECHOMAIL PACKETS setmarks | | | | killdups NETWORK TOSSMAIL NODES | | e | | Testlist tidymail Xlatlist | | i | | Route LISTGEN routegen | | k | | NODELIST SEEN-BY Prune | | m | | Setmark ---1.36 NMH IFNA | | | | net REGION BUNDLES | | y | | Inbound Host HUB SCANMAIL newscan | +-----------------------------------------------------+ NO WONDER IT'S CONFUSING! Unfortunately, no single source of documentation or information covers it all. At the time of this writing, the Fidonet was only three years old, and Echomail, just over a year. With Opus, things are much simpler, yet very complicated situations can be handled. Opus CBCS 1.0 -39- Opus Matrix List of programs for netmail: If you peruse an active Opus or Fido bulletin board, you will probably see many programs for doing all kinds of wonderful things. But we are trying to save time and get you going. So here is a list of what you will need: oMMM from your Opus kit. Used to package up messages to send to other systems NODE LIST This is your "phone directory" of other systems. Its will be in a file named something like NODELIST.107 (the 107 means it was published on the 107th day of the year). It is published weekly by the International Fidonet Association in St. Louis, Mo., U.S.A. XLATLIST by SEA Used to translate your NODELIST to a form usable by OPUSNODE. It is sometimes packaged in an archive, XLATRGEN.ARC, but all you will need for now will be XLATLIST.EXE and XLATLIST.CTL. OPUSNODE from your Opus kit. Used to compile the output of XLATLIST. ARCA.COM by V. Buerg Used to create compressed mail bundles. DO NOT SUBSTITUTE ANY ARCHIVE PROGRAM THAT CREATES ARCHIVES DIFFERENTLY FROM ARCA. In particular, the "squashing" algorithm used in PKARC by Phil Katz is not allowed in the Matrix. ARCE.COM by V. Buerg Used to unpack mail bundles from other systems. An overview of node-to-node mail Opus CBCS 1.0 -40- Opus Matrix Most novices are quickly confused by the complexities of netmail, but would appreciate a simple overview. The following flowcharts show the paths of incoming and outgoing mail bundles and which programs operate on them. Note that once your node list is compiled, only four programs are required to handle all forms of node-to-node mail: OPUS, ARCA, ARCE, and OMMM. Opus CBCS 1.0 -41- Opus Matrix The incoming message bundle | | | v Opus (Matrix session) | | v ARCE (only called if mail bundle | must be de-compressed) | v Opus (message unpacker) | | v [Matrix Message Area] Note: Only one of your message areas in Opus can be declared as a Matrix message area Opus CBCS 1.0 -42- Opus Matrix The outgoing mail bundle [Matrix message area] | | | v oMMM (creates mail bundles | from individual messages) | | v ARCA (called by oMMM only if mail | bundles are to be compressed) | v | | v Opus | | v Quick start to netmail This section will list each step required to get node-to-node netmail working. It is a "cookbook." The steps are explained in detail after this section. This section assumes your Opus system directory is C:\OPUS. If it is not, you will need to substitute your own directory name in the instructions. * Place these programs and files in you Opus system directory: OMMM ARCA ARCE XLATLIST XLATLIST.CTL OPUSNODE LATEST NODELIST.??? from IFNA (You may find a NODELIST.A##, which is an ARC'd node list which needs to be unpacked before using with XLATLIST. Opus CBCS 1.0 -43- Opus Matrix * Edit the XLATLIST control file (XLATLIST.CTL) to represent your phone costs and local area code (see instructions included with the XLATLIST program) * Translate the nodelist by running XLATLIST. * Compile the nodelist by running OPUSNODE (instructions included with OPUSNODE) * Create the following directories: C:\MSG\NET\ C:\FILE\NET\ C:\OPUS\OUTBOUND\ * Create a network message area using the sysop menu in Opus. It should reference the directory C:\MSG\NET\ and the message type should be "Matrix." * Test the integrity your setup by using the P)oll option from the M)atrix menu at the local console to call a known node in your local area. This part is really satisfying if everything works correctly. * Create a batch file to invoke OMMM for moving messages to the outbound area. Let's call it MASH.BAT. It should have three lines: C: CD \OPUS OMMM -HC:\OPUS\OUTBOUND -MC:\MSG\NET -IC:\OPUS * Login from the local console. Enter a message in your Matrix mail area to a sysop of a local node, preferably one running Opus, that can accept mail at any time. You can then mark it as "Crash." After logging off, run the MASH.BAT file. Look for a screen report that it is processing the message. If you can call the M)atrix menu and select I)nformation, it should show your message in the outbound area, waiting to be sent. After logging off, Opus will wait a couple of minutes, then attempt to send the message. If you are anxious, you can select the C)all option from the local console. This will Opus peek in the outbound area and send mail immediately. You can try it again with a file attached. Just attach a file when entering a message in the Matrix message area. Opus CBCS 1.0 -44- Opus Matrix * Test your ability to receive and unpack mail by having a local sysop send mail and files to you. If everything is working correctly, you will see it come in, get unpacked, and automagically placed in the correct areas. The node list The node list is simply a "telephone directory" of other FidoNet-compatible systems in the Matrix. It contains information about each system's name, location, sysop, maximum baud rate and special information on operating times and types of mail that can be processed. A new node list is created each week in St. Louis by the International FidoNet Association (IFNA). You can usually obtain such a list from anyone that runs a FidoNet-compatible system that handles netmail. You could create your own nodelist using an ASCII editor, but that would be very cumbersome. CONFIGURATION FOR NETMAIL - The BBS.CTL file There are several options in your BBS.CTL file which must be set in order to handle net mail. These options appear in two sections of the control file, "Dialing" and "The Matrix." Since this section is devoted to the novice, several non-essential advanced options will be skipped. DIALING PREFIX -- the code sent as a prefix for dialing your modem: Modem dial prefix ATDT,, If your phone only supports pulse dialing it be: Modem dial prefix ATDP,, The is where you could add any special codes required for ALL outbound phone calls. Codes unique to a phone number are defined in XLATLIST.CTL. DIALING SUFFIX -- the code sent after the phone number. Usually just a carriage return, shown as: Modem dial suffix | Opus CBCS 1.0 -45- Opus Matrix MATRIX ADDRESS -- This is essential for sending/receiving netmail. You are normally assigned a number by a coordinator for your region or net. Information on coordinator locations is located in the nodelist published by the IFNA. Before you are assigned an official number, you should use a -1/-1 as your address. Un-comment this line in BBS.CTL: Matrix Address -1/-1 Other local sysops can temporarily patch your phone number into their *nodelists until you have an "official" number. SUBDIRECTORIES USED BY NETMAIL -- several new directories are required to support netmail. INBOUND MESSAGES DIRECTORY -- un-comment this line in BBS.CTL: Matrix Messages C:\MSG\NET\ Note the trailing "\"! The directory can be anywhere you want it to be. But note that it should be the message area you declared as being Matrix. (See "How to set up a new message area" in the SETUP section of this documentation. INBOUND FILE DIRECTORY -- un-comment this line in BBS.CTL: Matrix Files C:\FILE\NET\ This is the subdirectory Opus will use to store files that are sent to you by other systems. OUTBOUND DIRECTORY -- un-comment this line in BBS.CTL: Matrix Hold_Area C:\Opus\Outbound\ This directory can be anywhere you want it to be, but it the one shown is recommended. Some programs will use this directory as the default for the outbound area. Opus CBCS 1.0 -46- Opus Matrix LOCATION OF THE NODELIST -- un-comment this line in BBS.CTL: Path NetInfo C:\Opus\ Note the trailing "\" ! The directory can be anywhere you want it to be. OPUS DEFAULT BEHAVIOR FOR NETMAIL ACTIVITIES OPUS can do be configured in many different ways to accommodate the many variables in netmail as well as your own preferences. Some of the variables in netmail are: your own system configuration cost of phone calls scheduling mail traffic to conform to local or national schedules viewability of various attributes associated with a netmail message while reading messages in Opus. the ability to define various attributes of a netmail message. Rather than attempt to explain it all here, we are going to make some assumptions to keep it simple. You may wish to change things later. First, we will assume that your system has 256k memory available to run Opus. Second, we are going make some decisions for you about preferred behavior to get you going quickly. Long explanations and justifications are omitted to avoid confusion. Edit your Opus control file to enable the following options: Matrix After Edit Exit 11 Matrix Send LOCAL MATRIX Kludge HIDDEN MATRIX Extract ARCmail MATRIX Toss Echomail Echo Seenby HIDDEN Matrix Ask Crash Sysop Matrix Ask FileAttach Sysop Matrix Ask KillSent Sysop Matrix Scan Echomail Echo Exit 7 Matrix ABOUT c:\opus\mysys.lst Matrix OKFILE c:\opus\okfile.lst Matrix AVAIL e:\opus\myfiles.lst Opus CBCS 1.0 -47- Opus Matrix Your Opus distribution may come with a Z event enabled. Go to the event menu and disable all Z events. This will allow Opus outbound netmail behavior to default to the control file settings. To confirm this is true, go to the Matrix menu (press "M" when Opus is waiting for a call). Select the I)nformation option. At the top of the screen it should say: Matrix Capabilities LOCAL Opus CBCS 1.0 -48- Opus Matrix Matrix overview for the grizzled (who rejoin us here) A new way of thinking about mail Doing outbound mail with Opus is fairly simple. In fact, getting that message across has been one of the toughest jobs. Some of the beta testers say most of their work fell into one of two categories: * deleting lines of batch and routing files * convincing themselves that fewer lines of instruction would do just as well Idea #1 With Opus, "mail events" are less important. In fact, they don't even exist. Instead, we'll be dealing with "behavior windows." With an event, you have to give every detail... making statements that are procedural in nature. With a behavior window, you paint with a wide brush telling the system what to do with classes of remote systems. When systems could handle Matrix traffic only during special times, routing and times were important. Because more and more systems can process mail at any time, the idea of a schedule becomes less important. The item of prime importance in Opus is COST. We are going to try to relieve you of the tedious details of scheduling and concentrate on doing things for the least cost. More on this later. Idea #2 Another new idea deals with the way bundles are created. A "bundle" is what some other systems call a "packet." In network operations, a packet has a special meaning... a meaning that has nothing to do with network mail. An "XModem Block" is a packet in network terminology. To avoid confusion with an established word, Opus docs use "bundle." Opus CBCS 1.0 -49- Opus Matrix Anyway... you are probably used to seeing bundles generated several times. With some programs, bundles are built every time a mail schedule starts. As a result, one message may be put into a bundle several times. With Opus, bundles are built once by an external program called oMMM (the Opus Matrix Message Masher). The original version of oMMM was written by Wynn Wagner, but the program was adopted by Bob Hartman, who has added lots of widgets and handy features. Idea #3 The driving forces of outbound traffic are file names! You'll have a special subdirectory set aside just for bundles and other Matrix files. It's a subdirectory that belongs to Opus and shouldn't have anything else put in there. Opus will maintain this subdirectory for you. It's kind of a "black hole." David Finster says having messages disappear into it takes some getting used to. As soon as you run oMMM, messages that are marked KILL/SENT in your Matrix message area will disappear. They haven't been sent, yet. They're just bundled and ready to go. File names are important to Opus... Bundle names The file names of the bundles tell Opus how to treat the different bundles. Here's a typical bundle name: 12345678.OUT That says the bundle is for 1234/5678. The numbers are in hexadecimal (base 16). The ".OUT" means it is a regular bundle. Other bundle extensions include: .HUT .... hold the bundle for pickup .CUT .... the other system can receive continuous mail One nice thing is that you can manually change the file's extension if you need to. That would change the behavior of the bundle the next time Opus sees it. Opus CBCS 1.0 -50- Opus Matrix The oMMM program knows about these extensions and creates them based on information you put into the oMMM control file. You'll have statements like this: HOLD 124/102 That would create a .HUT bundle file. Flow file names Files are also sent through the Matrix. oMMM builds and maintains a file that tells Opus what files to send (or hold) for whom. A typical "file attach" file might be named: 12345678.FLO Other flow file extensions are: .HLO .... hold these files for pickup .CLO .... the other system can receive continuous mail A flow file is just a text file. It contains a list of files that are to be sent to another system: e:\net\outbound\00096581.mo1 e:\pascal\notes.doc File names in a flow file never include wildcards. Archived messages The oMMM program will put messages into archives for you. Details on this is done may be found in the oMMM section. The point is that oMMM combines the functionality of "generating packets" with that of programs like ArcMail. oMMM creates archives using the same numbering convention as other message archive programs. The file name is the difference between the sender's net/node and the receiver's net/node. The file extension is ."MO#" where `#' is a number between 0 and 9. In this case, MO stands for "messages for outbound" and has nothing to do with Monday. oMMM will NOT produce a "TU" or "WE" (etc) file. How it all works Opus CBCS 1.0 -51- Opus Matrix So far, we've covered bundles and flow files. We've also hit on some of the high points of oMMM. Here's the flow of a message... Let's say I've written a message to Mike Kelleher. The message is in my Matrix message area and is flagged KILL/SENT. oMMM is executed, and converts the message into a bundle. In my control file for oMMM, I have this: CRASH 161/521 161/ALL The word "crash" is VERY misleading. We just haven't come up with a better word, yet. CRASH in this case means that Mike (161/521) runs a system that can receive continuous mail. This control file line tells oMMM to build a message archive to 161/521. In the archive will be any messages to Mike (521) as well as messages to anybody else in net 161. When the dust settles, you'll have a file called "00A10209.CLO" and another one with an ."MO1" extension. The message is now in queue. +-------------------------------+ | | | "Roads? Where we're going we | | don't need roads." | | | |- from Back To The Future | | | +-------------------------------+ Enter Opus, stage right Opus can tell by looking at the outbound subdirectory (called the HOLD AREA) that there's a bundle for Mike. Opus infers from the .CLO extension that Mike's system can receive continuous mail. It's in the middle of the afternoon. Phone rates between Dallas and San Francisco are the highest they'll be all day. It's a bad time to call. We aren't controlling calling times because of our software. The software doesn't care. Both ends can handle Matrix traffic Opus CBCS 1.0 -52- Opus Matrix anytime. We're controlling calling times based on the phone rates. I have a Z-EVENT set in Opus that tells the system to make daytime calls only to local systems that can receive continuous mail. Z-Event: The behavior window A Z-EVENT is setup using the Opus event manager. It starts out looking like any other event... except that it has a Z for a tag. In addition to the start time and event length, there are several yes/no questions that go along with a Z-EVENT: Local only? ....... YES: only make calls to systems whose cost field is 0. NO: it's okay to make calls that cost money #CM only? ..........YES: only call systems who have .CUT and/or .CLO files NO: not restricted to continuous mail systems Mail only? .........YES: don't let human callers on- line, concentrate on mail. NO: humans and the Matrix coexist. File requests ok? ..YES: let other systems make file requests NO: don't allow file requests During the day, I have a Z-EVENT that has LOCAL, #CM, and FILE REQUESTS set to YES. I don't want to make long-distance calls, and I don't want to call systems that can't handle mail on a continuous basis. Poor Mike, just hanging out So, there sits the .CLO file for Mike (see EXAMPLE above). Although it says Mike's board can accept mail on a continuous basis, the COST field in the node list for 161/521 isn't zero. It's a long distance call. Opus will not call 161/521. At midnight, the phone rates are lower. I have another Z-EVENT that allows #CM only. In other words, at midnight I drop the requirement that all calls be local. Opus CBCS 1.0 -53- Opus Matrix At that point, Opus will start trying to send the stuff. (Knowing Mike's board, it will take all night to get it through!) Z-Event overview Here's how my Z-Events go... Daytime ..... #CM, LOCAL Overnight ... #CM NMH ......... MAIL_ONLY For NMH (National Mail Hour), I drop the #CM requirement. That let's Opus send to systems that can't handle continuous mail. The point to all of this is that messages stay bundled all the time. What changes is the behavior of Opus. That's about it At this point, the standard reaction is "I have some special cases that this won't handle. I have several pages of routing and batch files to do all this special stuff." This is my experience: sysop thought patterns are what complicate matters. Possibly there are some special cases that Opus outbound can't handle. I haven't seen any. In the rest of this file, you'll find excerpts of NEW.DOCs form various beta releases. There are details on the HOLD AREA (sub- directory), file requests, and dialing scripts. How to set up Opus to receive Matrix traffic * Set up a message area and a file area as described above. The KINDS OF MESSAGES should be "MATRIX." Opus CBCS 1.0 -54- Opus Matrix * In your control file, make sure you have these items set: Matrix Messages [path] (path to your message area) Matrix Files [path] (path to your file area) Path Netinfo [path] (probably "C:\OPUS\") If you have a network address ("net/node number"), include the ADDRESS statement in the control file. ADVANCED USERS: You might want to look at these other items in the control file. They can be used to "fine tune" your handling of inbound Matrix traffic: Matrix after crashmail exit [errorlevel] Matrix extract arcmail Matrix after arcmail exit [errorlevel] Matrix toss echomail Matrix log echomail Matrix Scan Echomail Echo Exit 7 Matrix ABOUT c:\opus\mysys.lst Matrix OKFILE c:\opus\okfile.lst Matrix AVAIL e:\opus\myfiles.lst How to set up Opus to send Matrix traffic Even if you think you know all about Matrix traffic, please set things up this way. After you've gone through all the steps, you can go back and adjust things to suit your needs. The fact is that this simple setup will handle most cases. If you're an old hand at Matrix traffic, you'll notice a stark absence of such things as "routing" and "mail events." All you need to know now is that the result of these steps will be a very powerful Matrix system that is able to handle situations that used to take several pages of routing files and mail schedules. * Go through Receive Setup steps (above) * You will need at least three external programs and one additional data file: NODELIST: the network's "phone book." Updated weekly by the International FidoNet Association. Opus CBCS 1.0 -55- Opus Matrix XLATLIST: a program that takes the raw node list data and converts it into something more meaningful to your locale. For example, it will strip the area codes from local phone numbers. XLATLIST can also process a per-message "cost" item. This is the amount you would charge your users for sending a message, should you decide to give them access to the Matrix message area. Opus will use the "cost" information to decide whether a call to a remote system is local or long-distance. LOOKY HERE--------> Getting the cost information correct is a vital part of controlling outbound traffic! The XLATLIST program produces an intermediate data file called NODELIST.BBS. OPUSNODE: a program that takes the generic NODELIST.BBS data file produced by XLATLIST and turns it into NODELIST.SYS and NODELIST.IDX for use by Opus. oMMM the Opus Matrix Message Masher is a program that takes outbound messages and converts them into "bundles" for transmission. * Run the latest node list through XLatList and OpusNode. * Create a HOLD_AREA subdirectory: C:\OPUS\OUTBOUND\ * Check these items in the control file: Modem dial prefix [dial command] Modem dial suffix [dial command] Zone [zonenumber] Address [net/node] Matrix Hold_Area [path] NOTE: If you don't yet have an address, use "-1/-1" on the address line. Don't just make up an address! ADVANCED USERS: You might want to check out this control file item, "Matrix after edit exit." Opus CBCS 1.0 -56- Opus Matrix * Quadruple check to be absolutely sure that you have a "TZ" environment variable set ... and that your event manager is reacting to it well. When your system is waiting for a call, the "Ready" status message should show information about the next event. See that the time of the next event coincides with your expectations. The "TZ" environment variable can be a little tricky. * Get to the Event Manager (part of the on-line Sysop Section). If you are using the event file (SCHED.BBS) that came with Opus, you probably have a 1440 minute Z-event that says NO OUTBOUND. This event must be deleted... or its slot re-used for something else. You can use L)IST EVENTS to find the slot number... then C)HANGE to delete or re-use. * Set up the following events: The national mail hour The theory is, if you can't get a message to another system at any other time, you can send it during the national mail hour. One hour is supposed to be set aside for Matrix traffic... with no human callers. As far as we can tell, being able to accept traffic during "NMH" is the sole requirement for being listed in IFNA's node list. Kind: Z/Matrix Day: ALL Zone: GMT Time: 09:00 (North American National Mail Hour) Length: 60 Internal: Matrix YES: Mail Only YES: Exits Suppressed NO: [everything else] Opus CBCS 1.0 -57- Opus Matrix Overnight long distance This event tells Opus it's ok to make long distance calls because rates are low... but only if the remote systems can receive mail on a continuous basis. Kind: Z/Matrix Day: ALL Zone: LOCAL Time: 00:00 Length: 360 (midnight - 6:00am) Internal: Matrix YES: Cont.Mail Only YES: File Requests Allowed [optional] NO: [everything else] Daytime local-only During the day, when long distance phone rates are high, you should probably tell Opus not to make any long distance calls. In fact, the only calls should be to local systems that can accept mail continuously. Kind: Z/Matrix Day: ALL Zone: LOCAL Time: 00:00 Length: 1080 (6:00-midnight) Internal: Matrix YES: Cont.Mail Only YES: Local Only YES: File Requests Allowed [optional] NO: [everything else] * Set up an oMMM control file. The oMMM program must be run before Opus can send any messages. It converts message(s) into a transmissible form. How to get into the Matrix We're using the term "Matrix" to mean the amateur e-mail network that's sometimes called FidoNet. The coordinating group for this is the International FidoNet Association. Opus is not affiliated with IFNA or anybody else. The developers of Opus neither endorses nor oppose the idea of such an association. Although this section describes the operation of FidoNet, you should also know two things: * There is nothing to stop you from creating and maintaining your own private node list. Opus CBCS 1.0 -58- Opus Matrix * Because FidoNet is independent, we can't vouch for of any of this information. It was compiled based on experiences in the Matrix, but should not be taken as an official statement from FidoNet or IFNA. Getting into the Matrix consists of getting a Matrix address. Those numbers are assigned by NET HOSTS. Normally, you can't call your net host or log onto his/her system. That isn't the way this works. Instead, you have to send a message through the network requesting an address. When it's assigned, you will get your Matrix address in a return message from the net host. So, by the time you have an address, you will have proved that you have a functioning system! You will have sent and received traffic. Matrix structure The Matrix is a loose collection of independent systems. To break things down into manageable pieces, the Matrix is divided four ways. You'll be dealing with the middle two items for the most part... ZONE ... normally a continent AREA ... a local "net" or region NODE ... an individual system (you are a node!) POINT ... a sub-node (a caller can be a point) Unless you are doing international e-mail, you don't have to worry about zones. Major cities have been designated as NETs in the Matrix. The person who coordinates things in a net is called a NET HOST. Rural areas fall into a REGION. The person who does net host kinds of things in a region is called the REGIONAL COORDINATOR. A NODE is part of a net or a region. The person who runs a node is you. Your system is a node. Opus CBCS 1.0 -59- Opus Matrix Matrix addresses A Matrix address looks like this: 1:124/102.3 That would be zone 1, net 124, node 102, point 3. Most of the time, you'll see the shorthand version of that: 124/102. A host's address is looks like this: NET/0 The host for net #103, for example, would be 103/0. The zero for the second digit is the signal that the address refers to a host. The address of a regional coordinator looks just like a net host's address. Your area Here's how to find your area: * Using a text editor or viewer, look at the NODELIST.BBS file. Search for your city. * Find the line that begins with the word HOST. Here's an example... HOST 102 30 2400 SoCalNet 1-213-874-9484 Los_Angeles_CA This line tells you that folks living in Los Angeles are in net #102. If you live in a small town, you may not be in a net. Rural areas are covered by regions. If your town isn't in the node list, do a text search for your state. Someone in Ohio, for example might find this: REGION 11 30 1200 Central 1-502-762-3140 IL_IN_KY_MI_OH_WI The region coordinator (or "regional host") would have a network address of 11/0 in this case. Opus CBCS 1.0 -60- Opus Matrix Asking for a number * Use Opus to generate a Matrix-area message to your net host or regional coordinator. * Transmit the message. * Wait patiently for a reply. If you don't hear anything for a few days, you might call the hosts system and leave a local message. Getting along Please remember that hosts and coordinators don't get paid. It is a hobby for them. Getting hooked up to the Matrix can be a frustrating experience sometimes. The host knows that... he/she had to go through it, too! It's O.K. to ask for help. After you are hooked up, it's a common practice for net hosts to ask for a deposit to cover expenses. This is normal and to be expected. Most of your long distance traffic will end up being "host routed." You'll send non-local traffic through your host, and nobody expects the host to pay for your long distance calls. The going rate seems to be 15-30 cents per message. When things are finally running smoothly, you ought to consider offering to help. YOU ARE NOT A CONSUMER... this is a hobby where everybody pitches in. In Dallas, sysops other than the host take care of such things as distributing of the weekly node list update, writing/distributing our local sysop newsletter, coordinating the local sysop echomail message area, arranging the notorious sysop picnics, and on and on. There's plenty to do, and no net host can do it all. The point is that being in the Matrix is not like subscribing to a commercial service. Opus CBCS 1.0 -61- Opus Matrix Operating (in) the Matrix Matrix hold area [Control file addition] Opus wants its own subdirectory for outbound traffic. Declare that area like this: MATRIX HOLD_AREA C:\Opus\Outbound\ The system will maintain that subdirectory for you. There are no user-serviceable parts inside. That's not really true. We'll be storing the OUT, FLO, and AM? files there. You can change the names of the files, and that will affect the behavior of Opus. I strongly suggest you don't put other files in this holding area. Outbound Matrix traffic [control file addition] You have two primary methods for controlling phone calls made by your Opus system: the control file and the event manager. The control file method is in effect if there is no event to override it. In other words, Opus will give priority to the event (described later). To disable outbound calls, un-comment this line in your control file: Matrix Send NOTHING To disable long distance outbound calls, un-comment this line in your control file: Matrix Send LOCAL With those two restrictions, Opus now attempts to send any outbound material it finds in the subdirectory declared as your Hold_Area. If you want to keep humans off-line during a critical mail period, include this: Matrix Allow MAIL ONLY Opus CBCS 1.0 -62- Opus Matrix IMPORTANT: See the section called "The Matrix UNschedule." You can over-ride these control file settings with a new kind of event. The "UNschedule" section describes this event. The Matrix UNschedule A new event has been declared. It's event tag "Z" which had been designated "Opus Internal Event." This is a way to override control file settings. +----------------------------------------------+ | | | "But what HAPPENS during this event?" | | | | "Nothing. It's not a real event. A better | | phrase would be BEHAVIOR WINDOW." | | | +----------------------------------------------+ When a "Z" event is in progress, it's settings remain in effect until the next "Z" event. In other words, the settings do NOT RETURN TO THEIR ORIGINAL VALUE at the "end" of this event. Let's say you declare a "Z" event for every day of the week from 9am to noon. The behavior you describe in the "Z" event will be in effect for those three hours. Here's the part that needs to be stressed... at noon, the behavior will remain in effect unless there is a "Z" event declared then. That should probably be repeated... * You can set up Matrix behavior in the control file. If Opus runs into a "Z" event that is in progress, those control file values are gone for the life of the program. * To end a "Z" event, you have to begin another one. In this case, the duration of the event means, "go to these values whenever you find yourself in this time period." * The end of a "Z" event does NOT mean return to the old values. * Whew. Opus CBCS 1.0 -63- Opus Matrix You can use this event to set the following items: Local only. No "Cost" phone calls are made Regular mail. Outbound goes to all (except HOLDs) Continuous mail. Only packets (etc.) marked for continuous mail are sent Mail only. No human callers are allowed on-line No traffic. Outbound mail is turned off Using the "!" command from the main menu, select the event section. Then just set an otherwise unused event to a type "Z." Additional selections will appear; set them appropriately. Matrix bundlings [control file addition] There is no internal bundler (the thing that maintains message bundles destined for some other system). You can exit Opus with a pre-set ErrorLevel to call the bundler program when the contents of the Matrix area changes. For example, if you call and enter a message into your network area, Opus will exit with an ErrorLevel of 11 *after* you have ended your regular session... Matrix After Edit Exit 11 For information on one possible bundling method, refer to "oMMM.".. a stand-alone no-frills bundling program. Matrix File Requests A file request is when one matrix system asks another matrix system for a file. It is something like logging onto the other system and downloading a file, but it is handled during a matrix session rather than a human-caller session. Opus CBCS 1.0 -64- Opus Matrix There are currently two methods for handling network file requests: "bark" and WaZOO. "Bark" is a telink-transfer method used by some non-WaZOO systems. The WaZOO method uses zmodem and offers more capabilities than the older method. NOTE: Opus can *accept* "bark" style requests but never initiates such a request. Enabling requests If you want to allow file requests, un-commend this line in your control file: Matrix allow requests IMPORTANT: See the section called "The Matrix UNschedule." You can override these control file settings with a new Z-event. Approval listing In addition, you will need a file containing a list of files approved for file requests. This is a standard, garden-variety text file. It MAY include wildcards. Declare the file like this: Matrix okfile c:\opus\okfile.lst This is a "raw" list. It should contain nothing other than file names. Only one file name should be on a line. The items must begin in the far left column. Example: c:\dl\pascal\*.* c:\net\node*.a?? c:\dl\forth\this.one ^ | Pretend this starts way over there | <--------------------------------------------------+ Opus CBCS 1.0 -65- Opus Matrix System advertisement and file list Two more declarations will generalize your list of available files. If somebody wants to know what you have on line for requesting, the standard Opus method is to request a file called FILES. When Opus receives a request for FILES, it will automatically transmit the file you declare like this: Matrix avail c:\opus\filelist.arc The other is the ABOUT file. It is sent on file requests for "ABOUT," or when a file request cannot be satisfied. NOTE: Do NOT put comments on the `okfile,' `avail' or `about' lines. In addition to a listing of files, it would be a good idea to include a statement that wildcards are not allowed on file requests (see below). This file can also tell the caller something about your system. You include the extension in the control file... so the file can be a TXT, DOC, ARC or any other kind of file. PLEASE do not use "filelist.arc" as the name of the file. For The POLE, we're using "POLELIST.LST." Using this scheme, every system can have a unique file name. This should make file management much easier on the caller. Implementation restriction The requesting system cannot use a wildcard in the file name. By letting you put wildcards in the list of approved files, it makes it a little tedious to allow wildcards in the request. Not impossible. Just tedious. So... to make things easy on the sysop... I made a design decision to make it harder on the calling system. This will probably change sometime down the line, but I have my hands too full to worry about such stinkin' niceties. As it were. Errors: No such file This version of Opus sends the "about" file if no requested files are available. Opus CBCS 1.0 -66- Opus Matrix BEFORE ANYBODY ASKS No, Opus does not have a method for initiating "bark" type file requests. It can, however, initiate a WaZOO file request by using an external program named oGET. Special Matrix menu When Opus is waiting for a call, you can get to a special Matrix section. Press "M" when you see the "Ready" status line. The menu includes these items: I)nformation: This generates a chart showing the status of pending outbound traffic. P)oll: force a call to another system whether there is any pending outbound mail or not. If a connection is made, Opus will dynamically generate and transmit a dummy message bundle if a real one isn't available. As many as 9 or 10 tries will be made. You can stop the poll by pressing . If no connection is made after several attempts, Opus will recycle to its on-line ("Ready") state. If a connection is made, you can expect all items for that node to be transmitted ... even those marked as "hold." When you cancel a poll, you may have to press a couple of times. The first will cancel the current call; the second one will cancel the poll. U)npack: process/toss any PKT files found in the current default subdirectory. This does the same thing as the familiar `-u' command line option. S)can Scans the message areas looking for messages that need to be gathered up into the outbound area Opus CBCS 1.0 -67- Opus Matrix C)lear undialables Resets the "unavailable" counter for any boards that Opus has found to be unreachable, so calls may once again be made to them. Q)uit Takes you back to the previous menu Immediate call: When Opus has outbound traffic but is waiting for a call, you can force it to make a call immediately. Simply press "C" when you see the "Ready" status message. If it has any pending mail (not counting "hold" items), Opus will make a call. In other words, this does not cause Opus to make a call it would not have made--it merely speeds up the process. Sometimes Opus will just flicker your modem lights instead of actually making a call. This is normal behavior. Just select C)ALL again. Unsuccessful connections Version 1.0 maintains a counter. It is incremented when there is an unconsummated connection. Whenever there is a carrier but no Matrix session, this counter gets bumped. PLEASE READ THIS: If Opus finds a counter file showing it tried five times unsuccessfully to call a board, it will not make further calls to that board. You can manually delete a counter file to enable further calls to the board in question. If you have some kind of daily house-cleaning routine, you could put this into your batch file: DEL C:\OPUS\OUTBOUND\*.?$? The path should be your Opus hold area. It deletes all files that have "$" as the middle character of the extension. Every time you use this statement, it will re-enable calls to boards that had unsuccessful tries earlier. There is also a HOUSECLEANING Z-EVENT which will remove these Dollar-Sign Files. Opus CBCS 1.0 -68- Opus Matrix Wild Echomail The unarc routine now uses wildcards. In other words, it will try to unarc "*.MO?" in your Matrix hold area. If you get something from a message archiver other than oMMM (*ie "TU?," "WE?."...), it will try to unarc that specific file. This change means that attached messages are no longer needed for archived messages! oMMM does not produce such a message, and neither FidoNet nor WaZOO protocol requires such a message. All existing systems work fine without it. New Matrix behavior mask Using the event setup menu, you can now tell Opus not to exit after SQUIRTmail and ArcMail. The mask is called "Exits suppressed" on the menu. If you turn this on, then any "EXIT AFTER CRASHMAIL" and "EXIT AFTER ARCMAIL" in your control file are ignored. NOTE: There was a slight re-wording of the event menu. The "Exit code" for external events is now "X)exit code." Matrix session scripts Instead of (or in addition to) a phone number, the "phone" field of a record in the node list can contain the name of a script file. The script file name and optional phone number must be in the following format: "FILENAME.EXT"123-456-7890 The quotes are mandatory; they tell Opus that this is a script name. The name within the quotes must be the simple filename (no directory path) of a script file in the subdirectory you've declared as being the NET_INFO subdirectory. The phone number, if given, must be in the format shown. It's used only by the AREACODE and PHONE script commands. Opus CBCS 1.0 -69- Opus Matrix Script names may be easily inserted into the node list by using the PHONE and/or DIAL substitution commands provided by XlatList: phone 124/210 "HardWire.Scr" or Dial / 011- 1-201- "PCP.SCR"201- ... 1-919- "PCP.SCR"919- Contents of a script file A script file is created with a text editor. Each line must contain a KEYWORD. In many cases, it will contain other material. The keyword must be in the far *lefthand column of each line. The system is not sensitive to the case of keywords... upper- and *lowercase is the same. Some keywords require additional information. You should put a single space after the keyword, then start typing the additional information. In other words, if you put a keyword then TWO spaces... the second space will be considered part of the additional information. Keywords Remember: in actual practice, the following keywords must always begin appear in the far *lefthand column. Xmit: send something to the modem. As in the modem initialization string in the control file, Opus understands the following special characters: ~ slight pause | transmit a character EXAMPLE: xmit ATZ| xmit AT|~ATH0| Opus CBCS 1.0 -70- Opus Matrix Dial: transmit whatever additional information appears on the same line of the script, then wait for a modem response. If the modem reports any kind of failure (e.g., "BUSY"), the script will be terminated. NOTE: The dial "prefix" and "suffix" from the control file are NOT used here. EXAMPLE: dial 555-1212 Areacode: transmit the area code portion of the phone number given after the script file name, e.g.: "xxxxxxxx.xxx"@@@-xxx-xxxx This is primarily useful for placing PC-Pursuit calls. EXAMPLE: areacode Phone: transmit the local phone number portion of the phone number given after the script file name, e.g.: "xxxxxxxx.xxx"xxx-@@@-@@@@ This is primarily useful for placing PC-Pursuit calls. EXAMPLE: phone Pattern: designate a text string to be searched for by the WAIT command. Up to 4 such text strings, numbered 0-3, may be searched for simultaneously. Each string may be a single "word" (no embedded spaces) up to 20 characters long. Upper/lower-case ARE significant; a pattern will only be matched by an identical incoming string. EXAMPLES: pattern 0 : pattern 1 OPUS pattern 2 (disables pattern) Wait: wait for any of the text strings previously designated by PATTERN to be received from the remote system. The command will continue until either a match is found, or there is no input from the remote system for the specified number of seconds. The silence timeout defaults to 40 seconds if not given. If no match is found the script is terminated. EXAMPLES: wait wait 20 Opus CBCS 1.0 -71- Opus Matrix Session: in most cases, this will be the last keyword in your scripts. It means Opus should begin a network session with the remote system. The session begins with whacking, if necessary. Then it moves through the SYNC procedure into the exchange of bundles and files. EXAMPLE: session Dos: send a command to DOS. You can process something.or even summon a stand-alone netmail session-handler. EXAMPLE: dos DIR dos ARCA test *.pkt Carrier: if there's no carrier when Opus reaches this keyword, the script will terminate EXAMPLE: carrier Init: go through the normal modem initialization routine. EXAMPLE: init Baud: set the computer's async port to the remote system's baud rate EXAMPLE: baud Checklist: * Script file names are in quotes in the node list phone field. * All script files must be in the NET_INFO subdirectory. * Each line must have a keyword in the far *lefthand column. * Most keywords require additional information. This information should be separated from the keyword by a single space character. * Most script files should end with "session." Opus CBCS 1.0 -72- Opus Matrix Sample script This script, for PC PURSUIT, was done by Rick Huebner: +--------------------------------------------+ | init | | baud | | | | xmit ~~AT|~~ATDT3417733|~(32 squiggles)~ | | carrier | | | | xmit ~|~D~| | | pattern 0 = | | wait 10 | | xmit ~D1| | | | | pattern 0 @ | | wait 10 | | xmit ~c dial | | areacode | | xmit /12,username| | | pattern 0 = | | wait 10 | | xmit ~password| | | | | pattern 0 CONNECT | | wait 20 | | xmit ~~~~|~~~~I|~~~~ATZ| | | | | pattern 0 OK | | wait 20 | | xmit ~ATDT | | phone | | xmit | | | | | pattern 0 OPUS | | pattern 1 SEA | | pattern 2 Fido | | wait | | xmit ~~~~~~ | | carrier | | | | session | +--------------------------------------------+ Opus CBCS 1.0 -73- Opus Matrix Matrix-oriented batch files Any batch file for Opus must be able to respond to the following pre-defined ErrorLevels: VALUE | MEANING | ACTION -------+-------------------------------------+--------- 255 | an internal error generated by | recycle | Microsoft "C." (e.g., stack | | overflow | | | 5 | reserved by Opus | recycle | | 4 | reserved by Opus | recycle | | 3 | extremely serious error (No FOSSIL, | halt | no user file, etc) | | | 2 | minor error (i/o error) | recycle | | 1 | ^C (keyboard halt request) | halt | | 0 | ??? | recycle -------+-------------------------------------+--------- Opus CBCS 1.0 -74- Opus Matrix Sample batch file: +----+----------------------------------------------------+ |Line| Batch file command | +----+----------------------------------------------------+ | | | | 1 | :start | | 2 | E: | | 3 | cd E:\opus | | 4 | Opus %1 %2 %3 %4 %5 %6 | | 5 | if ERRORLEVEL 255 goto start | | 6 | if ERRORLEVEL 8 goto start | | 7 | if ERRORLEVEL 7 goto bundles | | 8 | if ERRORLEVEL 6 goto prepecho | | 9 | if ERRORLEVEL 3 goto end | | 10 | if ERRORLEVEL 2 goto start | | 11 | if ERRORLEVEL 1 goto end | | 12 | if ERRORLEVEL 0 goto start | | 13 | :prepecho | | 14 | E:\Opus\Util\ScanMail -maxmsgs 500 -short | | 15 | :bundles | | 16 | E:\Opus\oMMM -hE:\Opus\Outbound -cE:\Opus\oBUN.Ctl | | 17 | goto start | | 18 | :end | | 19 | | +----+----------------------------------------------------+ NOTES: Line 5. The check for #255 isn't really needed here because the following line (ErrorLevel 8) will end up trapping 255. It's put here to stress that 255 is a possible ErrorLevel. Line 6. Checking for ErrorLevel 8 is a safety measure. It will trap any ErrorLevels above 8, too. In other words, the batch file is saying "If you get anything else just recycle." Line 7. Respond to "Matrix After Edit Exit 7." The ErrorLevel 7 means something in my netmail message area has changed. The only thing we need to do is put the new messages into bundles by calling oMMM. This ErrorLevel happens after somebody types a message in the netmail area. Line 8. ErrorLevel 6 is this: "Matrix After Arcmail Exit 6." It means we've gotten echomail that needs to be scanned then put into bundles. Line 13. PREPECHO calls ScanMail. Note that this falls through to the bundler. Opus CBCS 1.0 -75- Opus Matrix Line 19. With DOS, you always have to have a blank line when the last item is a label. Checklist for goin' online * Make an outbound hold area subdirectory * Quadruple check to make sure that both ARCE and ARCA are on your path. This may seem silly, but some folks had trouble with it. For example, they had changed "ARCA.COM" into "AA.COM" because of a patch message archive program. * Without both ARCE and ARCE on your path, you can expect problems... tragic and/or humorous depending on your attitude. Do this: * From the DOS prompt, type ARCE and press Enter. The Arce program should display a help screen. If it doesn't, don't try to run Opus outbound. ARCE must be on- line. From the DOS prompt, type ARCA and press Enter. If ARCA doesn't respond with a help screen, you need to get ARCA on your path. * Put OpED.BBS into the C:\OPUS\MISC subdirectory. * Put OPUS.EXE and the three new PRIV files into your Opus root subdirectory. * Customize OPUS.CTL and compile it using OPUS_CTL. * Build an oMMM control file * Build a new batch file * Put everything on-line and fly to London for a week. Vince Perriello can probably explain this step in greater detail. The chief cause of problems is solutions. -- Eric Sevareid -- Opus CBCS 1.0 -76- Opus Matrix ########### #### #### #### #### #### #### ############# ### ### ### ### ### ### ### ### #### #### #### #### #### #### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ## # ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ### ## ## ## ## ## ## ############# ## ## ## ## ## ## ########### #### #### #### #### #### #### +--------------------------------------------------------+ | THE MATRIX: | | The world's first CyberPunk BBS Network | +--------------------------------------------------------+ NAVIGATING THE MATRIX using oMMM: The Opus Matrix Message Masher Original oMMM (now a collectors item) was written by Wynn Wagner III, otherwise known as "Arrogant Hacker I" The program was tweaked/rewritten/cleaned-up/added-to under the care of Bob Hartman, otherwise known as "Arrogant Hacker II" +-----------------------------------------------+ | | | "Hackers - Heroes of the Computer Revolution" | | The story of the whiz kids whose irreverence, | | idealism, and sheer genius changed the world. | | | | - From the cover of a Steven Levy book | +--------------+--------------------------------+--------------+ | | | And some people thought that I would dislike | | being called an "arrogant hacker" | | | | - Bob Hartman, "Arrogant Hacker II" | +-----------------------------------------------+ Opus CBCS 1.0 -77- Opus oMMM +---------------------------------------------+ | | | Technology itself has changed. | | | | Not for us the giant steam-snorting wonders | | of the past: the Hoover Dam, the Empire | | State Building, the nuclear power plant. | | | +--------------+------------------------------+--------------+ | | | Eighties tech sticks to the skin, responds | | to touch: the personal computer, the Sony | | Walkman, the portable telephone, the soft | | contact lens." | | | | - Bruce Sterling | | | +---------------------------------------------+ Quick Review of the Matrix The Matrix is an international connection between individual system operators. Other system operators may be getting access to this "network" using various pieces of software including Fido and Seadog. One method for Opus sysops to use the Matrix is a program called oMMM: the Opus Matrix Message Masher. oMMM creates the `.OUT' and `.FLO' files used by Opus-Cbcs for outbound Matrix traffic. Actually, it combines the functionality of such programs as Arcmail[(c)SEA] with the "generating packets" rigmarole previously internal to programs putting messages onto the IFNA-type network. Opus Outbound (or "OO" for sort) is compatible but not identical to existing IFNA-type network software. Please do not just assume you understand OO routing just because you are familiar with other systems. This document assumes you are already familiar with the operation of the IFNA-type network. Opus CBCS 1.0 -78- Opus oMMM Outbound hold area +---------------------------------------------+ | | | I think it might be in the basement - | | I'll check upstairs. | | | | -M.C. Escher | | | +---------------------------------------------+ Remember: Pending outbound traffic is stored in a special subdirectory called a HOLD AREA. To be on the safe side, you should make this subdirectory just for the holding area. In other words, it is possible (or likely) that Opus will get confused if it finds other material in the subdirectory. Opus considers everything in that area to be "fair game" as far as creating, deleting, and appending is concerned. Methods +---------------------------------------------+ | | | Whenever a system becomes completely | | defined, some damn fool discovers something | | that either abolishes the system or expands | | it beyond recognition. | | | | - Finagle's Fifth Rule | | The Book of Rules | | | +---------------------------------------------+ Other programs which do IFNA-type network mail have built-in routines which build bundles ( or "generate packets"). These bundles are sometimes built and un-built several times before they are transmitted. Opus does not contain any internal bundling routines. You have to use an external program, such as oMMM. The reason for this is simple: MEMORY. To do bundling correctly takes vast amounts of memory, and Opus just does not want to share that much memory with a bundler. Opus CBCS 1.0 -79- Opus oMMM There is another reason for keeping it external: clever programmers can write their own bundling programs to handle whatever special cases might arise. The final reason is speed because bundles are built once, then kept current. Opus wants to be ready for Matrix traffic at any time. Therefore, there is no facility provided for un-doing a bundle (i.e., separating a bundle into the individual messages). A special un-bundler utility could be written for such a thing if anybody is inflicted with the need. What's in the holding area You can expect to find three kinds of files being stored in your holding area: OUT files Normal bundles of messages waiting to be transmitted. The extension may actually be OUT, DUT, HUT, or CUT. FLO files A list of files waiting to be transmitted. This file contains the names of all the files to be sent as "file attaches" as well as any archived bundle files built by the oMMM program. It is a standard, garden-variety text file with only one file per line (NO WILDCARDS). The "#" is a special flag that can appear as the first character of a line. If a line begins with a pound sign, the file listed on that line will be truncated if it is successfully transmitted. This is primarily for use with archived bundles. They need to be "nulled" after they are sent. Flow files can have these extensions: FLO, DLO, HLO, and CLO. MO# files Most sysops would call these "ARCMAIL" files. They are bundles of messages which have been compressed using a program such as ARCE or ARC (Mail Outbound). Opus CBCS 1.0 -80- Opus oMMM The file extension will be "MO" followed by a number (0-9). The characters stand for MATRIX OUTBOUND and do not refer to any day of the week. oMMM does not produce any "TU#.".."SU#" files. NOTE: Opus supports a 12-bit LZ compression method. Some programs (*eg. PKARC) use a 13-bit method. They will require far to much memory to run and should not be used for archiving mail. Simple oMMM +---------------------------------------------+ | | | The concept is simply staggering - | | pointless - but staggering!" | | | | -The Doctor | | | +---------------------------------------------+ The oMMM program words in two phases. In its simplest form, oMMM will generate an OUT file for every system which has traffic in your Matrix message area. There is simply no concept of "routing" at this point. If a system has a message, there will be an OUT file. This is a "no-route" kind of operation. The OUT files will eventually be transmitted directly to the destination without going through any intermediate system such as a "host" or "hub." Every time you execute it, oMMM goes through this stage. THE INDIRECT APPROACH +---------------------------------------------+ | | | A man's best friend is his dogma. | | | | -Anonymous | | | +---------------------------------------------+ Opus CBCS 1.0 -81- Opus oMMM Routing in a nutshell - After all of the bundles have been generated, you can use a control file to send messages through a "host" or "hub" or some other intermediate system. In Opus, all indirect transmissions use archived message files. We will be creating an archive of routed files. Here is a sample control file command: ArcTo 136/12 136/ALL This command tells oMMM to build an ARC type file for 136/12 and will include the OUT files for any other system in net 136. NOTE: The "OUT" extension is changed to "PKT" when the messages are archived. You can specify several systems in an ArcTo statement: ArcTo 124/0 130/14 130/20 105/ALL This command will build an ARC file for 124/0. The file will contain any existing OUT files for 124/0, 130/14, 130/20 and all systems in net 105. Flavors of routing "Arcto" is just one of several words you can use to affect the behavior of outbound Matrix traffic. To hold archived mail for pickup by the other system, substitute the word "HOLD" for the word "ARCTO." For example... Hold 141/491 161/ALL This hold command puts messages for 141/491 and all systems in net 161 into an archive and marks the whole thing as "hold for pickup by 141/491." IMPORTANT: The "hold" statement stands by itself. In other words, you don't use hold with another command such as "ArcTo." Instead, "hold" REPLACES the "ArcTo" statement. It does everything that "ArcTo" does with the additional feature of marking the resulting bundle as HOLD FOR PICKUP. Opus CBCS 1.0 -82- Opus oMMM HINT: In the following list, the words ARCTO, HOLD, and CRASH are considered the basic statements. In most cases, you can lead a fruitful/meaningful life with nothing more complicated than those three words. All of the other words are for advanced usage or for special circumstances. (K.I.S.S.!) Here is a list of commands that oMMM understands: SCHED Starts a schedule. All oMMM statements between this statement and the next SCHED statement will be executed if the schedule tag matches the one given on the command line. tag is a character that can be in upper or lower case. SYNTAX: Sched tag ARCTO Send as regular mail during pre-set schedules. This command actually ARC's up the packets just like ARCmail would do, so you must be sure that the receiving system either has ARCmail that runs at regular intervals, or is running Opus 1.00 or higher. SYNTAX: Arcto destination [routelist] EXAMPLES: Arcto 124/0 124/ALL Arcto 135/1 POLL This creates a dummy .OUT file if there are no files existing for the given node that are not on hold. If there are files in the holding area which are going to the given node, and they are not on hold, then the POLL statement will do nothing. SYNTAX: Poll destinations LEAVE Mark all packets to the listed nodes such that Opus will not attempt to send them. Use the -z command line option of oMMM to make the packets be recognized by Opus for future sending. Use this option with extreme care! SYNTAX: Leave destinations Opus CBCS 1.0 -83- Opus oMMM SEND If a node in the destination list has a packet that has been marked as a "do not send" packet by using LEAVE, then make it so that the packet can once again be sent. SYNTAX: Send destinations EXAMPLE to do local schedule with some extra nodes: ; First mark all nodes as no-send Leave All ; Now send to our net and list Send Ournet 132/101 124/108 DOCRASH If a node in the destination list has a packet that has been marked as a "do not send" packet by using LEAVE, and the packet is a crashmail packet, then that packet is marked for sending. SYNTAX: DoCrash HOLD Prepare the archive, but disallow an outgoing phone call. The archive will be held for the other system to pickup. This has the same comment as the ARCTO statement, i.e., the receiver must have some way to unARC the packets. SYNTAX: Hold destination [routelist] ONEHOLD This call is identical to the above call except that all nodes listed have the packets held individually. This allows statements to be used in a program like XlatList that will hold for a list of nodes. SYNTAX: OneHold destinations CRASH Send to a system which supports continuous mail. Such systems include other Opus systems and Seadog (v4.00). Again, the receiver must have a way to unARC the packets. In the Opus control file, you have some control over continuous mail. See the part dealing with "Matrix send local only." Note that Opus "crash mail" is compatible but not identical to so-called crash mail in other systems. SYNTAX: Crash destination [routelist] Opus CBCS 1.0 -84- Opus oMMM ONECRASH This call is identical to the above call except that all nodes listed have the packets crashed individually. This allows statements to be used in a program like XlatList that will crash to a list of nodes. SYNTAX: OneCrash destinations UNCRASH Any packets to the nodes in the list that are marked as CRASH are marked normal. SYNTAX: UnCrash destinations UNHOLD Any packets to the nodes in the list that are marked as HOLD are marked normal. SYNTAX: UnHold destinations NORMCRASH Any packets to the nodes in the list are sent as CRASH type packets that are compatible with other software. This basically means that the packet is not ARC'd. SYNTAX: NormCrash destinations NORMHOLD. Any packets to the nodes in the list are sent as HOLD type packets that are compatible with other software. This basically means that the packet is not ARC'd. SYNTAX: NormHold destinations The control file +---------------------------------------------+ | | | There are two kinds of people in the world: | | Those with loaded guns, and those who dig. | | You dig. | | | | - Clint Eastwood | | 'The Good, The Bad, and The Ugly' | | | +---------------------------------------------+ Opus CBCS 1.0 -85- Opus oMMM Contents The oMMM control file is a text file. You can use a semi-colon (";") as a comment character. oMMM will ignore everything beyond a semi-colon on a line. Put the word ARCTO in the far left column. That's followed by the destination board plus 0 or more other systems. Examples: arcto 161/2 ; just archive 162/2's stuff arcto 100/0 100/ALL ; "host route" net 100 Do what I say, when I say it You should consider the control file as a PROCEDURAL file. In other words, oMMM will act on every statement as it comes to it. The control file is a list which says "Do this, then do that, then do whatever." Here's an example of how you can use this kind of operation: arcto 130/12 130/20 arcto 130/0 130/ALL There. Material for 130/20 and 130/12 will go to 130/12. Then everything else to net 130 will be "host routed." The first statement takes care of 130/12 and 130/20. By the time oMMM gets to the second line, material for those two systems no longer exist as individual OUT files. Special words In addition to "ALL" as a special "node number," the words "OTHERS," and "OURNET" can be used as special "net numbers." They mean networks other than our own and your own network respectively. If your net has an outbound system ("Host" or "Hub") then you can route out-of-town traffic to that system like this: arcto 124/0 OTHERS The command with "others" in it should probably be one of the last commands in your control file. Remember, this is a procedural file. Take care of your specific routing, then do the "others" command as a kind of "clean up" command. Opus CBCS 1.0 -86- Opus oMMM NOTE: If you are using XlatList to create your oMMM control file you will find that it will not pass the keyword ALL through to the control file when it is used on an ArcTo line (or any other line with other node numbers). In this instance, you should use the keyword WORLD which has the same meaning as the keyword ALL. Using oMMM +---------------------------------------------+ | | | No matter what you do today, nor where you | | go, nor whom you meet, there are at least a | | billion red Chinese who don't give a damn. | | | | - Dan Jenkins | | | +---------------------------------------------+ Operational overview You must have the program ARCA.COM available somewhere on your path. The oMMM program needs seven pieces of information from you. Switches: the optional switches that can be on the oMMM command line. The available switches are: -d to disable the conversion of Opus dates back to older Fido dates. This should not be used unless all connections are made with other Opus nodes. -z to ZAP the entire holding area so that all packets that the LEAVE statement had to modify are returned to normal. -n to disallow forwarding of messages for other boards. Note that you cannot use this switch if you are a host or hub! Opus CBCS 1.0 -87- Opus oMMM Schedule tag: the character corresponding to the schedule which oMMM should use in the control file. -s followed by the character for the TAG.specifies the schedule tag. If you don't specify a schedule tag, oMMM will assume no schedule and process any statements in the control file that are before the first SCHED statement. Info path: the subdirectory that contains the file MAIL.SYS. [NOTE: that file may end up not being needed by the version of oMMM you receive. Please check your distribution package for a READ.ME file - Ed.] -i followed by the name of the subdirectory specifies the info path. If you don't specify an info path, oMMM will use the current default subdirectory. Hold path: the subdirectory used as the Opus outbound hold area ("OO-HA" for short). -h followed by the name of the subdirectory specifies the hold path. If you don't specify a hold path, oMMM will complain at you loudly and will refuse to continue. (Dos ERRORLEVEL=1) Message path: the subdirectory where your Matrix messages are kept. You only need to use this item if you are doing something "non-standard." If you are taking messages from your normal Matrix message area, do not declare any message path. -m followed by the name of the subdirectory specifies the message path. If you don't specify a message path, oMMM will use the path declared in the info file, MAIL.SYS. Opus CBCS 1.0 -88- Opus oMMM Pre-message scan control file: the name of the file containing routing commands to be executed BEFORE message scanning takes place! -p followed by the name of the control file specifies the pre-message scan control file name. If you don't specify a pre message scan control file, no changes will be made to the holding area before messages get scanned. This command is useful for systems that do a lot of 'state changes' during the day. For example, a system may want to Hold mail in an archive for a node at some times, and send it at other times. In this scenario it is very possible that oMMM could create a file attach message, then have that archive placed into the actual archive when oMMM was run again. This is undesirable behavior which can be overcome using a pre-control file. For example, you have just executed a Hold statement for a node which places a file attach message in a .HUT file. Now you decide to send to that node by using the UnHold verb, that places the file attach message in a .OUT file. Finally, the archive was not sent out, so you once again want to hold for the node, normally you would use Hold to do this, but that will packet up the file attach message that is still in the .OUT file. The solution is to use a pre-scan control file to NormHold the node, then in the normal routing file use Hold to archive the new messages (the .HUT will still contain the file attach message and it will not be archived), and after the Hold is executed, an UnHold can be executed if necessary. This sounds a lot more complex than it is. Simply use a pre-scan control file to get your holding area into the same state all the time before the real routing gets done. This will save hours of time trying to determine what oMMM will do under certain conditions. Eventually this may also be used to force oMMM to un-oMMM packets. Opus CBCS 1.0 -89- Opus oMMM Control file: the name of the file containing routing commands. -c followed by the name of the routing control file specifies the control file name. If you don't specify a routing control file, no routing will be done. Example: oMMM -hc:\opus\outbound oMMM -hc:\ob -cc:\routes.ctl One final note about using oMMM. It may sometimes seem like a slow-running program. I can promise you that it is not. Internally, it is screaming out instructions to your computer as fast as possible. Remember: oMMM combines the functionality of an "arcmail" program with the "generating packet" of other Matrix systems. With oMMM, you only have to generate those bundles once... when the archives are built. Reference stuff: File names +---------------------------------------------+ | | | "You bring the light, | | 'n' I'll bring the tunnel." | | | | - H. Neghila | | | +---------------------------------------------+ What about Opus? Opus will try to send material (not marked ."HLO" or ."HUT"). In other words, it assumes that you and your bundle program know what you want. There is no concept of a "schedule" in Opus 1.0. It will try to dial numbers when it feels like it. Also, there is no concept of a system that is unable to do continuous mail. Fido systems, for example, are completely unable to receive mail except during a schedule. Older Seadog systems are not able to hold bundles and files for pickup except during a scheduled network event. Opus CBCS 1.0 -90- Opus oMMM There is definitely a need for a program that can use the "raw" nodelist information ("NODELIST.###" file) to produce a routing control file to ensure material headed for older systems is marked HOLD. Otherwise, Opus will try to call those systems. Here's the Real Bummer: the oMMM program knows diddley-squat about such nodelist flags as "#CM:." oMMM will not put anything on hold. In the Opus control file, you can declare such things as your Matrix hold area. There are flags that say SEND NOTHING (make no outgoing calls) and LOCAL ONLY (make calls only to those systems whose "cost" field is zero). The main point is that Opus considers the hold area current. Opus CBCS 1.0 -91- Opus oMMM ECHOMAIL Echomail is a way for several independent systems to share a message area. The idea for echomail came from Jeff Rush. You will find several national conferences on dozens of technical and non-technical subjects... from Opus to Pascal to science fiction and genealogy. To be involved with an echomail conference, you first have to get a Matrix address. Although echomail is not affiliated with FidoNet or with IFNA, it would be impossible to handle echomail without their Matrix structure. If you don't have an address, you need to take care of that first. Getting started with Echomail Find an echomail conference you want to carry on your system. This is all fairly informal. Here are some suggestions: * Log onto another local system that carries lots of echomail. Leave a note to the sysop saying "Hey, can I tie into SUCH-N-SUCH on your board?" or "Where can I tie into this area?" * Check your net's newsletter. Many local nets publish an up-to-date chart of echomail conferences. * Don't assume you'll get a helpful hand from your net host or regional coordinator. Remember that echomail has nothing to do with FidoNet, and some hosts/coordinators don't want anything to do with it. Build an ECHO.CTL file if you are using the internal echomail processor, or refer to the documentation for your external echomail utility program(s). Set up an Opus message area. On the KINDS OF MESSAGES item on the Area Maintenance menu, make sure you tell the system that the area is for ECHOMAIL and that it is to be "NO PRIVATE MESSAGES." (It's normally considered bad manners to transmit private messages in an echomail conference.) In your RUNOPUS batch file, set things up to run oMMM from time to time, to bundle messages for transmission. Opus CBCS 1.0 -92- Opus Echomail The Opus control file has some echomail-specific options. They should all be in one general place in the sample control file. Do a text search for "echomail" to find them. Some of the options are designed to make echomail processing as automatic as possible. Scan control file The internal echomail processing routines look for a file called "ECHO.CTL" on the default drive and subdirectory. The file does NOT begin with a system and sysop name line. Control file lines need to start in the far lefthand column. Items are separated by a single space character. Each line should be terminated by a . IMPORTANT: Please put a after the last line! Each line (including the first line) should have this form: number path areaname scanlist NUMBER: the area number PATH: the path to the area being scanned AREANAME: the name of the echomail area SCANLIST: a sequence of 0 to 10 Matrix addresses Examples: 17 c:\msg\sysop SYSOP 124/102 124/111 124/210 5 c:\msg\walrus WALRUS 141/491 ^ | | pretend this stuff starts <---------+ over there Method The scan process is triggered by one of three things: * Echomail messages received through the Matrix. If scanning is enabled, the messages are scanned after all bundles are unarc'd and tossed. Only the areas that have new messages are scanned. Opus CBCS 1.0 -93- Opus Echomail * Human caller entering an echomail message. If scanning is enabled, the messages are scanned after the caller's session. Only the areas that have new messages are scanned. * Selecting S)CAN from the on-line Matrix menu. This is the only way to scan all message areas. Bundles are created as .OUT files in the subdirectory designated as HOLD_AREA. If you need other processing to take place after the scan, you can use the echo EXIT feature. The exit is supposed to happen after messages are scanned. The most likely use for the EXIT will be to call oMMM to get the .OUT files into archives. The Meadow The Meadow is an echomail conference just for Opus sysops. Its distribution is more widespread than just about any other echomail conference. You will be in touch with hundreds of Opus sysops all over the world... from Australia to Holland and Hawaii to Maine. It is one of the best places to discuss problems or pick up hints. If there is ever something like an emergency "recall" of Opus software, word will be put into The Meadow first. (This is a plug for The Meadow. Can you tell?) To get hooked up to The Meadow, you have to agree to the following things: * Restrict access to Opus sysops. This means you need to set the minimum access level to SYSOP for the message area so regular callers can't get into the area. It also means you should send the area only to other Opus sysops. Sysops running other software have their own echomail areas. * Use the area in a lawful and friendly manner. * Keep the discussion on topics of interest to other Opus sysops. There really isn't anybody "in charge" of The Meadow. It's a grassroots conference run primarily by the cooperation and goodwill of Opus sysops around the world. In fact, this is a good time to offer a pat on the back to those sysops who've been involved in The Meadow. It's quite an experience. Opus CBCS 1.0 -94- Opus Echomail Most likely, there's already a local tie-in for The Meadow. If you can't find it anyplace, send an e-mail message to one of the OPUSinfo systems. Other areas To give you an idea of what's around, here are some of the echomail areas that reach Dallas... AMIGA ... Amiga users BIBLE ... Christian conference C_ECHO ... "C" language programmers CHATTER ... general discussions COMM ... modems and communications software ECHOMAC ... Macintosh users ECLOTUS ... Lotus users ECPROG ... for programmers EGA ... fans of fancy video FOR-SALE ... a nationwide flea market FOSSIL ... FOSSIL implementers GAMING ... gambling (I think) GAYNET ... gays GENEALOGY ... family ties IFNA ... International FidoNet Association members JOBSHOP ... nationwide help wanted LIFESTYLE ... aging hippies, probably MEADOW ... Opus sysops NET124 ... for local Dallas sysops PASCAL ... Pascal programmers RECOVERY ... members of Alcoholics Anonymous SF ... science fiction SIRIUS ... sysops who use the Sirius program SYSOP ... system operators TECH ... general computer talk TELIX ... users of the Telix communications program That's a partial list. It's quite a collection. The list of conferences in your area will be different. If you hear of some conference that isn't in your area, you can put yourself in charge of calling to bring it to your area. That's the way echomail conferences spread out! If there simply isn't a conference that suits you, find another sysop who shares your interest and start your own echomail conference. That's precisely how conferences begin. Opus CBCS 1.0 -95- Opus Echomail Routing and coordination Most echomail conferences have a coordinator. That's someone who's supposed to help with hookups and to keep the discussion on track. Most good coordinators are quiet. That's because most echomail conferences rely on the goodwill and cooperation of participating sysops. Some echomail conferences are on what's called "the backbone." That's a collection of mail-only systems that do very little other than send echomail. The primary backbone systems are run by George Lehtola, Bob Hartman, and Gee Wong. They swallow a great deal of the expense in running echomail, and we all owe them our gratitude. Other backbone-class hubs include systems run by Tracy Graves, the Walker brothers, and the Great Dallas Round-Robin. The situation in Dallas is fascinating. There are four systems involved: David Finster, Chuck Lawson, Jon Sabol, and Wynn Wagner. When a batch of echomail hits any of those systems, it is immediately processed and sent to the other systems within a matter of minutes. From there, it's on to other parts of the world. Wynn's system, for example, is the main link to the rest of the backbone. Jon's system takes care of Australia and New Guinea. David handles some local and some national traffic. Chuck deals with local and some regional traffic. The reason Dallas is mentioned is that it's a good example of how efficient routing is possible through an informal coalition of sysops. Not only can Dallas process an unbelievable amount of echomail traffic is a short period of time, the expense of long distance echomail is spread out. Like almost everything else that touches Opus, echomail is a grassroots sort of deal. It isn't a commercial service that has subscriptions, and you are not a consumer. If you get involved, you can be expected to share in the expense and in the responsibility. But that's what makes it a hobby! IMPORTANT: Echomail is never "host-routed." It is always sent directly from one system to another. Please don't attempt to send an echomail conference through your net host or regional coordinator. Opus CBCS 1.0 -96- Opus Echomail How it started Once upon a time, way back in 1985, Chuck Lawson and Harv Neghila noticed they were spending lots of time in chat with each other... running up their long distance bills. "There's got to be a better way," they concluded. "We ought to do something like netmail chat." That subject was brought up at the next notorious Dallas sysops' pizza party. All the sysops had opinions and suggestions, as is expected. Somebody noticed that Jeff Rush had quietly taken out paper and pencil. He seemed to be taking notes. The idea was forgotten--that is, by everyone except Jeff. A month or so after the discussion, he popped up and said, "Here 'tis!" It was a couple of programs which make up the heart of the echomail system... and which had no similarity to any of the designs laid out so carefully on our pepperoni conference table. He wrote a two programs: SCANMAIL, to move outbound messages from an echomail area into the netmail message area, and TOSSMAIL to move inbound messages from the netmail message area into the echomail area. We decided to try it out by starting two echomail message areas. One for sysops, cleverly called SYSOP... one for users called TECH. Messages bounced around (most of the time) between systems run by Chuck Lawson, Jon Sabol, and Jeff Rush. The next day two other message areas were added: CHATTER and POLITICS. Two other systems were added: Wynn Wagner in Dallas and Harv Neghila in San Francisco. Chuck-to-Harv: the first backbone. They were spending their long distance money again. Now, it wasn't just for their chatting. It was for chatting from Jon and Wynn and Jeff, too... and all they users on all five systems. So it went. In short order, other sysops started getting curious and interested. The SYSOP area spread out quickly. One of the earliest battles was to keep Dallas sysops from talking about the most recent picnic or pizza party. It took quite some time for the locals to realize their little local echomail area wasn't little or local any more. Opus CBCS 1.0 -97- Opus Echomail Another early problem was net hosts and region coordinators. Nobody realized that the volume of echomail would grow so quickly. At first, echomail went out like any other e-mail... through net hosts. Those hosts quickly made it known that they weren't amused by the sudden increase in their long distance bills. That's seems like a reasonable attitude, and everybody agreed that echomail would never be "host-routed" again. "This is going to bring the network to its knees," was the cry from some quarters. So far, though, it seems to be working. The amazing thing is, echomail is working in spite of its lack of a firm organizational structure. The backbone is an informal coalition, and they certainly wouldn't presume to tell you what you can or can't do with echomail... as long as you stay polite. Maybe it should be stated like this: echomail is working BECAUSE OF its lack of a firm organizational structure. Opus CBCS 1.0 -98- Opus Echomail OPERATING OPUS The Sysop section This section describes the on-line Sysop Maintenance section. To get to the sysop menu, use "!" (exclamation point) on the main menu. The sysop section menu looks like this: SYSOP A)rea maintenance M)atrix setup E)vents P)riv. (menu) O)utside Q)uit Area maintenance The area maintenance screen looks like this: Area #0 P)riv required ........ K)inds of messages B)bs menu path......... M)essage path.......... H)elp path............. D)ownload path......... U)pload path........... T)itles Message area...... Download area..... A)nother area Q)uit Area zero is a special area for sysops. It is primarily used to tell Opus where to put messages left by users as they log off. When a user says "G)oodbye," Opus asks if he/she wants to leave you a message. If the user says YES, the message will appear in the subdirectory you've listed as being the "M)essage path. Opus CBCS 1.0 -99- Operating Opus The items on the area maintenance menu: Priv. required Set the minimum user access level required to get into this area. It affects both the message and file sections. When you select P)riv by pressing "P," you'll see a chart of the possible access levels. Most users will be NORMAL. Kinds of messages The "Kinds Screen" lets you describe the behavior of a message area. There are three fundamental areas, Message Types, Message Editing, and Miscellaneous: Message Types M)ATRIX...Matrix message is a message sent from one system to another using the e-mail network. Only one message area should be designated as the Matrix area. Telling Opus that an area is for Matrix messages enables special checking and handling. L)OCAL....A local message is a regular bulletin board message that originates on your system and never leaves your system. If you are setting up a message area just for your callers, it should be designated as LOCAL. E)CHOMAIL.An echomail message is a message that originated on your system but will be broadcast to one or other systems using Jeff Rush's echomail method... or a message that originated on some other system and was broadcast to your systems. Telling Opus that an area is for Echomail enables some additional message processing (*eg. suppression of EchoMail's SEEN-BY information). It does NOT do anything about broadcasting the message. Message Editing !)NO PRIVATE...If you tell Opus not to allow private messages, the system will force all new messages to be public. Most echomail areas are designated as "NoPrivate." Opus CBCS 1.0 -100- Operating Opus $)NO PUBLIC...Use "NoPublic" only if you want to enforce a private message area. R)EAD-ONLY...A read-only message area means users can't enter any messages. They are allowed to read messages, but not post anything. ADVANCED USERS: The idea of a read-only area sounds curious. Consider that there's nothing to keep you from having two logical areas point to the same physical subdirectory for messages. You can setup a high numbered area *forSYSOP access only. In that area, you can post messages such as reminders or bulletins. Then the low-numbered area, accessible to regular callers, can be marked Read-Only. They can read your reminders/bulletins but can't add to them. Miscellaneous A)NON OK..As a novelty, you can mark a message area as allowing anonymous messages. If this is enabled, Opus will ask the user "FROM: _" on each message. BBS Menu path and barricade file Lets you set the location of menu files. This item should be left blank under most circumstances. If the area number is above 51, this item will appear as B)ARRICADE... instead of BBS PATH. In that case, the item is the fully-qualified path/file name of a barricade password list. A barricade file is a regular text file containing a list of passwords and access levels: HELLO NORMAL NIEL TWIT If a user hits a barricaded area, he/she is asked for an access code. There are three chances to get it right before Opus gets nasty and pulls the plug. In this example, if the user types HELLO, he/she is allowed into the barricaded area with the access level of NORMAL. When he/she leaves the area, the original access level is restored. Opus CBCS 1.0 -101- Operating Opus ADVANCED USERS: This is an excellent way to have assistant sysops. You can point two logical areas to the same physical subdirectory. You might make a barricaded area that has the same download path as one of your public areas. Then setup a barricade file like this: LUVVIE ASSTSYSOP By giving your assistant sysop the password LUVVIE, you can give extended capabilities in that single area. Message path Set the path to a message area. If this item is blank, it means you have no messages available for this area. (You can have files with no messages). Opus wants you to include the DRIVE designation on all paths. This is because the system will be checking on free space before allowing a user to type a message. Having the drive available makes this check easier/faster. Help path The location of Opus's help system. In most cases, this should be C:\OPUS\MISC. Download path The location of files available to users for downloading. If this item is blank, downloads are not available from this area. A file in that subdirectory called FILES.BBS normally contains a list of files available for download. If this file doesn't exist, Opus will grumble a little... but will then offer to create the file. For users who have an access code of NORMAL or below, the file must be listed in FILES.BBS or Opus will pretend that the file doesn't exist. Opus CBCS 1.0 -102- Operating Opus Upload path The subdirectory to hold files sent (uploaded) by callers. Sometimes this is the same subdirectory as the download path. If you want to censor or approve uploaded files before making them available to callers. If that's the case, the upload path should be different from the download path. Titles There are two titles: Message Area and File Area. When you select T)itles, Opus will ask whether you want to change the M)essage or the F)ile title. This is a way for you to give a name to your message and file areas. Opus will store the title you give in a file called DIR.BBS in your message and download paths. ADVANCED USERS: The file DIR.BBS cannot contain any "embedded commands" normally allowed in BBS/GBS files. Another area You can switch to any other area in the system to check or adjust the setup for the other area. There can be 100 areas... numbered 0 to 99. Before switching areas, Opus saves any changes you've made to the current area. If the area doesn't exist, the system will offer to create a new area. ADVANCED USERS: In Opus, areas don't have to be numbered consecutively. If you skip a number, all areas above the missing area number will be invisible to callers. In other words, if they do an area listing, only the consecutively numbered areas will be shown. Opus CBCS 1.0 -103- Operating Opus Quit The Q)uit command on the area maintenance menu returns you to The Sysop Section menu. Matrix This section of the documentation describes the on-line MATRIX menu. It does not attempt to describe the operation of the Matrix itself. To get to the Matrix menu, type "M" from the sysop section menu. ADVANCED USERS: There's a quick way to get to this Matrix section from the local keyboard. Type "M" when you see the "Ready" status message. Information Select I)nformation from the Matrix Menu to see a chart of all pending outbound traffic. You'll see the following items: Matrix capabilities .... a list of the current Matrix behavior attributes. Undialables ............ a list of systems Opus has had trouble calling. To get listed, there had to be an unsuccessful connection (not just a No Answer). After FIVE such connections, Opus will flag the remote system as undialable and won't try calling again. Regular bundles ........ Pre-bundled messages waiting for transmission or pickup. Continuous bundles ..... Pre-bundled messages for a system that can receive mail around the clock. Direct bundles ......... Pre-bundled messages from the oMMM program Hold bundles ........... Pre-bundled messages waiting to be picked up Opus CBCS 1.0 -104- Operating Opus Regular attaches ....... Files ready to be sent or picked up Continuous attaches .... Files for a system that can receive Matrix traffic around the clock. Direct attaches ........ Probably a list of archived echomail. Hold attaches .......... Files on-hold for pickup. Poll "POLL" means "call" in this case. Opus will ask you to type the net/node of a remote system and will call that system whether there is pending traffic or not. It will keep trying (as many as 10 times). You can consider this a "manual override" to the outbound system. Using POLL assumes you have the Matrix setup (*eg. a compiled node list and a Matrix address). Unpack Using U)npack, you can manually unpack Matrix bundles and extract/toss echomail files if you ever need to. Clear undialables Opus will remember that a system is undialable forever... until you clear that system for future calls. A system becomes undialable after Opus gets a carrier five times without successfully sending its pending Matrix traffic. Undialable systems are listed on the Matrix Information screen (discussed earlier). There are two ways to clear systems... telling Opus to try calling them. One of the ways is a housekeeping "event" (below). The other way is this menu item. Opus CBCS 1.0 -105- Operating Opus When you select C)LEAR, Opus will walk you through the list of systems. It will ask about each one: Clear 124/210 [Y/n] ? _ Type "Y" and ENTER to allow calls again. Type "N" to keep the system listed as undialable. Quit On the Matrix menu, the Q)UIT command will return you to the sysop menu. Events and behavior windows An event is something that happens at a certain time. A behavior window is the way you control the operation of the Matrix. There are 34 event "slots" available in the system. When you select E)VENTS from the sysop menu, you'll see this: OPUS EVENT MANAGER L)ist C)hange Q)uit event manager Events: _ List LISTing the events displays a chart of the active events: # Day Start TZone Duration Description -------------------------------------------- 1 All 00:00 Local 1440 min. Z/Matrix This chart shows only one event (actually a behavior window). It is in effect all week ("All" days). It starts at midnight (0:00) local time and lasts all day (1440 minutes). Opus CBCS 1.0 -106- Operating Opus Change Select C)HANGE when you want to add, modify, or delete information in one of the 34 event slots. Opus will ask you which slot you want to change: Change what event (slot) ? _ Type a number between 0 and 33. (ZERO is a number in Opus!) You will probably see something like this: S)tatus............DELETED A)nother event Q)uit The STATUS of an event changes the appearance of the screen. To put your slot in effect, type "S" and press ENTER. The screen will change: S)tatus............ENABLED K)ind..............??? D)ay...............Sun T)ime (start)......00:00 Z)one..............Local L)ength............1 !)Forced...........NO A)nother slot Q)uit Status The status of a message can be ENABLED or DELETED. Select S)tatus to flip back and forth between the two. No deleted (or disabled) event is executed. Kind The KIND of slot tell Opus what you want done during the event. There are three kinds of events: eXternal ..... tells Opus to exit at the prescribed time. When you have selected "X," a new item appears on the change menu: E)XIT CODE (see below). Opus CBCS 1.0 -107- Operating Opus Yell ......... Lets you tell Opus when it's okay to let users make noise on your computer. They have a menu item ("Yell") on the main menu. This event lets you set the hours when Yell works. Z/Matrix ..... See Z-EVENTS below. Day You can have an event happen one day or every day of the week. Time Use T)ime to set the leading edge of the event. The time should be typed using a 24 hour clock. Here are some examples: Type Meaning This ------------------ 00:00 ... midnight 01:00 ... 1:00 am 05:15 ... 5:15 am 13:42 ... 1:42 pm Zone The ZONE of an event is the TIMEZONE. You have two choices: Local time and Greenwich Mean Time. NOTE: For events to work, it is crucial that you have a TZ entry in your computer's environment. Please see the installation section for more information. Length The LENGTH of an event is the number of minutes the event is in effect. The shortest event is 1 minute. The longest event is... well... 32767 minutes... about a year and a half. Hopefully your events won't take that long. Opus CBCS 1.0 -108- Operating Opus Most of the time, eXternal events should have a duration of 1 minute. NOTE: It is your responsibility to stay outside of Opus for the duration of an external event. If you run an external event and get back to Opus before the minute has lapsed, the event will run again. Forced A FORCED event is an event which Opus refuses to miss. Let's say you have a 1 minute forced event set for 9:00 am. And... let's say you had your computer off-line all morning. When you bring the system back on-line in the afternoon, the 9:00am event will be executed. In other words, Opus will remember that it missed that 9:00am event for some reason. It will go back and pick it up before doing anything else. All FORCED events are "reset" at midnight. If you ever need to bring up the system SKIPPING forced events, you can use '-e' on the command line. This tells Opus to "reset" any forced events it may have missed. In fact, if you setup several new forced events in this Change Events section, it's a good idea to bring up Opus with the '-e' option once. Otherwise, you'll be exiting the system once for every new forced event. Exit code The E)XIT CODE option appears only when the event is declared as being eXternal (using "K)ind"). An exit code is the DOS ERRORLEVEL that the system will use. Your batch file can watch for the ERRORLEVEL you select: IF ERRORLEVEL 38 GOTO CLEANUP Refer to the DOS manual for your system for information about ERRORLEVELs and batch files. NOTE: Don't use ErrorLevel 255 or any ErrorLevel smaller than 5. Opus CBCS 1.0 -109- Operating Opus Bell duration The B)ELL DURATION only appears when the event is a Yell event. It's the number of seconds you want your computer to make noise when somebody selects Y)ell. Z-Event: Housecleaning There are two kinds of Z-events: Housecleaning and Matrix Behavior Windows. The housecleaning Z-event is used to clear out the list of systems marked as undialable by the Matrix software. To clear the undialable chart... * setup a 1 minute slot * select K)ind then type "Z" * select I)nternal kind until the screen shows "HOUSECLEANING." Typing "I" flips between Housecleaning and Matrix. * press "C" until the "C)lean Hold Area" line shows YES. * make sure the day, zone, and time are the way you want them Z-Event: Matrix behavior window Using Z-EVENTS, you can alter the behavior of Opus outbound Matrix traffic. * setup a Z-event slot * check the duration, day, zone, and starting times * select I)nternal kind until the screen shows "MATRIX." Typing "I" flips between Housecleaning and Matrix * You will see additional options: N)o outbound...................NO O)nly send local...............NO C)ont.mail only................NO M)ail only; no humans..........NO E)xits suppressed..............NO F)ile requests allowed.........NO NO OUTBOUND YES: Opus will not make any outgoing calls during the window NO: Opus will make calls Opus CBCS 1.0 -110- Operating Opus ONLY LOCAL YES: Opus will call only systems that have a zero cost field in the node list. NO: Opus will make "long distance" calls. CONT. MAIL YES: Opus will only send to systems with pending bundles and files that indicate the remote system can receive mail continuously. NO: Continuous mail is not a requirement... so Opus will send to ANY system. MAIL ONLY YES: When a human caller connects, he/she will get a message that your system is processing Matrix traffic. (National Mail Hour mode.) NO: Human callers can commingle with remote systems. (Normal mode) EXITS SUPPRESSED YES: Normal crashmail and archived mail exits are not taken. These exits are described in the sample control file (Opus.Ctl). NO: If you've setup the system to exit after inbound traffic, those exits will occur just like they were declared in your control file. FILE REQUESTS YES: Remote systems can request files from your system. NO: No file requests are accepted. Quit When you Q)UIT the event manager, you'll land back at the sysop menu. Opus CBCS 1.0 -111- Operating Opus Privs/Menus The PRIV/MENU section lets you control access to various features of the system. Select P)RIVS from the sysop menu. Opus will ask what menu you want to change: M)ain ... the main menu F)ile ... the file section menu 1-)message ... the local/echo message section menu 2-)Matrix ... the Matrix message section menu L)ORE editor ... after-edit options for the line-oriented editor C)hange ... the change user options menu S)ysop ... the sysop section menu After you've selected the menu, you'll see each item displayed on a line by itself. The current minimum access level is shown to the right. Example... G)oodbye ...TWIT This example shows the "G)oodbye" command. It is available to all callers (TWIT and up). To change the minimum access level, for a command select the command. In our example, you'd press "G" and press ENTER. You'll then see a chart of the available access levels. Just pick one from the chart. ADVANCED USERS: For zippier action, you can "stack" commands. Press ENTER by itself to save your changes and return to the PRIV menu. Opus CBCS 1.0 -112- Operating Opus Outside You can run an external program or drop to DOS from the sysop section using the O)utside command. Please refer to the sample control file for information on how to setup this command. NOTE: In the control file, this command is called the "ZERO COMMAND" because "0" is the key that used to be used for this item. Embedded Commands You can lead a full and meaningful life without using any of these control codes. In fact, misusing them can probably lead to a lot of grief. There is nothing here for the novice. If you are not intimately familiar with Opus and communication systems, please wait 'till later to use control codes. Most of the control codes assume you know what you are doing. Because the GBS/BBS files are prepared with a word processor or text editor (i.e, not using any Opus software), there is no way for Opus to check your work. You should review any files you create using Opus's KEYBOARD MODE before trusting the file to an on-line situation. The Control-O commands (below) can be particularly lethal if you aren't careful. An overabundance of control codes in a BBS/GBS file can make a totally unmaintainable file. You can build these files using any text editor that can insert control codes into files, but I would consider such a method the "Assembly Language of BBS/GBS Files". A handy Opus sysop utility would be some sort of program (e.g., WYSIWYG BBS/GBS editor) to make the result of these codes visible during development. At this writing, no such utility exists. [soapbox on] It's very possible, using these commands, to turn a perfectly good system into one full of gimcracks (useless junk). An Opus sysop has an order of magnitude more power over his/her system than does a Fido v11 sysop. If you take that control, you must also share the responsibility. I think it's great to add a little spice to a system, but the average user doesn't call to see his/her screen wiggle. These commands are intended to give the experienced sysop lots of versatility. They are very easy to overdo! Opus CBCS 1.0 -113- Operating Opus Also... remember that if you use the MS-DOS graphics characters in a BBS/GBS file, you are going to make non-MS-DOS screens look funny because they won't know how to display the characters. There is absolutely nothing "non-standard" in Opus itself. If you choose to add such features, you also need to be prepared to answer questions and/or complaints about them. [soapbox off] These control codes can be inserted into any .BBS or .GBS file. The only exception is DIR.BBS ... which must be a plain text file. The basics ^A ... "Press ENTER to continue: " ^B ... disable ^C/^K aborting ^C ... enable ^C/^K aborting ^D ... Mark that it's a good time for a "MORE?" ^E ... Turn auto-More ON (default) ^F ... COMBINATION COMMAND (see below) ^G ... Ring the caller's bell ^H ... Backspace ^I ... Tab ^J ... Line feed ^K ... Turn auto-More OFF ^L ... Clear screen ^M ... Carriage return ^N ... [ reserved ] ^O ... COMBINATION COMMAND (see below) ^P ... COMBINATION COMMAND (see below) ^Q ... Used for XON/XOFF. Never use this. ^R ... [ reserved ] ^S ... Used for XON/XOFF. Never use this. ^T ... [ reserved ] ^U ... [ reserved ] ^V ... video (oAnsi) ^W ... [ reserved ] ^X ... [ reserved ] ^Y ... [ reserved ] ^Z ... MS-DOS end of file marker. Never use this. Opus CBCS 1.0 -114- Operating Opus Data display NOTE: Both command characters in this section are CONTROL characters. The `^' symbol means `control.' For example, `^F' represents CONTROL-F. ^F^A ... quote of the moment ^F^B ... user's name ^F^C ... user's city/state ^F^D ... current date ^F^E ... total number of calls user has made to system expressed as an ORDINAL number (*eg. `1st', `2d', etc) ^F^F ... user's first name ^F^G ... dramatic one-second pause ^F^K ... total minutes on-line in the last 24-hours, including the time for the current call ^F^L ... length of the current call so far (in minutes) ^F^N ... control-niel (disconnect) ^F^O ... number of minutes remaining for this call ^F^P ... written-out date/time when the user has to be off the system. NOTE: This uses a built-in Lattice-C routine which appends the line with a . You should consider using ^F^P at the END of a line with no punctuation ... until Prof.Norton and I can get in and change a couple of things. ^F^Q ... number of calls to system to date (ORDINAL NUMBER) ^F^R ... NET downloads today (download minus upload). If uploads are greater than downloads, this number will be negative. ^F^T ... current time ^F^U ... on a questionnaire, all answers are required ^F^V ... on a questionnaire, all answers are optional ^F^W ... total user uploads ^F^X ... total user downloads ^F^Y ... upload:download ratio NOTE: Several ^F commands deal with the amount of time a user has remaining. Until the user is totally through the logon procedure, he/she will have about 10 minutes. The use of these commands prior to the first MAIN MENU may produce unexpected results. Opus CBCS 1.0 -115- Operating Opus Questionnaires, surveys, order forms NOTE: The second character of the commands in this section is a REGULAR ("printable") character ... NOT a control character. HINT: Calm down a little, there are samples at the end of this file. ^OMd ... store the last `^OR' response to the answer file. (See `^OR' below). `d' is is a description of the item which is NOT displayed. The description is stored in the answer file. Also, see the examples at the end of this file for more information. ^ONd ... let the user type a line and store it in the user file. This roughly corresponds to the Fido "/" command in questionnaires. `d' is for a description of the entry in the answer file. ^OOf ... open an answer file. `F' is a fully-qualified file name including path, node, and extension. ^OP ... post user information to the answer file Flow and user interaction NOTE: The second character of the commands in this section is a REGULAR ("printable") character ... NOT a control character. +-------------------------------------------+ | "Remember-- no matter where | | you go, there you are." | | --Buckaroo Banzai | | | +-------------------------------------------+ ^OCp ... call MS-DOS with the command "p". This is an embedded "O)utside" command. "P" is some command, possibly the name of a program or batch file. It is sent to MS-DOS (via Command.Com) without modification. ^ODp ... set subdirectory for future "chain" type bbs calls. "p" is the path to BBS files called from the current BBS file. ^OFb ... "On exit". Declare the name of a GBS/BBS file to be transmitted if, for any reason, the current file is terminated. Opus CBCS 1.0 -116- Operating Opus ^OQ ... quit the file immediately ^ORv ... read menu. `V' is a sequence of characters ... a list of the valid responses. Opus considers all of the characters between the `R' and the first character less than or equal to the space character to be part of the list. In other words, you terminate the list with a space, tab, end of line, or any other control character. Refer to an "ASCII CHART" for help in finding what characters are "below" the space. Opus takes care of upper/*lowercase conversion for you. It is your responsibility to handle any user prompts: there is no display associated with this command. "Command stacking" is fully supported. If the user types an unrecognized character, Opus will ask him/her to try again. ^OS ... show another file. The REST of the current line is considered the name of a BBS/GBS file. Do *not* include the file's extension. You can include a drive and path. Most settings (*eg Color, Auto-More) are maintained across file boundaries. If the file you specify doesn't exist, the entire display sequence is ended and the user is returned to Opus. ^OT ... top of file (dangerous: can produce an "endless loop"). Useful only for handling "fall-through" menu situations and (with ^B set) for handling niels. (ah-hem) ^OUc ... user response. "C" is a single character. It is the way to process information from the read menu (^OR) command. If the user's most recent response was not the value you give for `c', the REST OF THE CURRENT LINE is ignored. ^OVn ... "goto." This is a dangerous command that is primarily intended for use by automated programs that generate and/or maintain BBS files. The "n" is an ASCII representation of a 32-bit (long) integer. It is an absolute location (counting from the beginning) in the file. In other words, "^OV0" would send Opus to the beginning of the .BBS file. The line "^OV1234" would tell Opus to begin execution of the .BBS file from the 1234th byte of the file. The offsets are 0-based. Privilege control NOTE: The second character of the commands in this section is a REGULAR ("printable") character ... NOT a control character. Opus CBCS 1.0 -117- Operating Opus Dealing with the rest of the file... ^PD ... Below Disgraced don't see rest of file ^PN ... Below Normal don't see rest of file ^PP ... Below Privil (or Privel) don't see rest of file ^PE ... Below Extra don't see rest of file ^PA ... Below Assistant sysop don't see rest of file ^PS ... Below Sysop don't see rest of file Commands dealing with the rest of the current line... ^PLD ... Below Disgraced don't see rest of line ^PLN ... Below Normal don't see rest of line ^PLP ... Below Privil (or Privel) don't see rest of line ^PLE ... Below Extra don't see rest of line ^PLA ... Below Assistant sysop don't see rest of line ^PLS ... Below Sysop don't see rest of line FILES.BBS Commands @ ... in column one, stops display for those under AsstSysop. This is for Fido compatibility only. You should not count on this remaining after Version Zero. Use a ^P command instead. - ... column one only. turns on WHITE. The display will remain white until the next file name. FIDO-Compatible questionnaire commands COMMANDS Gone -- as we warned in the 0.0 documentation. All of the functionality from the Fido commands is available with ^O commands. Opus CBCS 1.0 -118- Operating Opus Example 1 CONTENTS OF THE EXAMPLE 1 FILE: Please select one of these: H)elp on using the system T)rojan horse program alert E)quipment used on-line Q)uit Select: ^ORhteq ^L ^OUh^OSc:\opus\morehelp ^OUt^OSc:\opus\trojans ^OUq^Oq We use an AT computer with a 30 meg Seagate disk drive. The modem is a USR Courier 2400. There is 640k system memory with 3 megabytes of extended memory which is used as a RAM disk. ^OT NOTES FOR EXAMPLE 1: A short menu system for multiple bulletins. First, the menu is displayed. Then, after "Select: ", Opus will wait for the caller to type `H', `T', or `A'. For aesthetics, we clear the screen after the menu response (^L). Then.... if the caller typed `H', we will display the file MOREHELP. If it's `T', the caller will see TROJANS. If the caller typed `Q', we will exit the file display and return to Opus. The only unaccounted-for menu response is `E' ... which is taken care of by the material at the end. In other words, if the user gets to the part beginning with "We use an...", he/she must have typed an `E'. It's the "fall- through" case here. Because Opus doesn't have to change to another file, the fall-through will always be the quickest. Finally, at the end of the file, we tell Opus to recycle and display the menu again (^OT). Opus CBCS 1.0 -119- Operating Opus Example 2 CONTENTS OF THE EXAMPLE 2 FILE: Welcome to the board, ^F^B. ^OOc:\opus\newusers.txt ^OP What is your occupation? ^ONoccupation Please find your favorite color ... B)lue R)ed M)agenta L)ilac Y)ellow P)uce Type the first letter of your choice: ^ORbrmlyp ^OMchoice ^OUbBlue! really? Wow, that's my favorite color, too! Thanks for taking the time to fill out this questionnaire. NOTES FOR EXAMPLE 2: A short survey. First we do a welcome that includes the user's name (^F^B). Then we setup an answer file called C:\OPUS\NEWUSERS.TXT. Any responses will be put into this file. Note that the answer file stays open across files ... should you swap files using ^OS. The first item we put into the answer file is the user's name (^OP). It is NOT ever necessary to ask a user "What is your name"... not even a new user. It is easier on the system and the caller to use the ^OP command rather than being redundant. The first question deals with the user's occupation. The display would look like this: What is your occupation? _ Whether an answer is required depends on whether you have used the ^F^U or ^F^V commands. If the caller typed "accountant" then your answer file would contain this line: occupation: accountant The description "occupation" was part of the ^ON command itself. Opus CBCS 1.0 -120- Operating Opus The next piece of business is a multiple choice question. It works exactly like the MENU in example #1 above. The addition is `^OMchoice' to store the user's response in the answer file. For example, if the user selected RED, the answer file would look like this: choice: R Note that if the caller likes BLUE, Opus will get all excited. See the `^OU' statement. We use this line for two reasons: 1)to show that you can get exceedingly (excruciatingly) clever; and 2)you can combine almost any ^O commands. You can have more than one answer file. Every time you use ^OO, the current answer file is closed and the new one opened or created. One side effect involves opening the same file... not advised for normal operation... but that is one way to force Opus physically to write to disk any responses it has buffered. Opus CBCS 1.0 -121- Operating Opus For more information on Opus There are two ways to find out more about the way Opus works and to get questions answered. If you are having problems with Opus, contact one of the InfoNodes. They can be reached at: System name Phone number Matrix Notes ----------- ------------ ------ ----- OPUSinfo Here (214) 991-3381 1/113 9600 bps OPUSinfo There (415) 672-2504 161/1 2400 bps These are for questions involving specific problems. They can give you answers to some of the most commonly asked questions. Other help nodes are: System name Phone number Matrix Notes ----------- ------------ ------ ------ OPUSinfo Pursuit 415-621-5206 ----- via PC PURSUIT OPUSarchive 302-764-7522 150/1 tech reference Still more nodes where you can route specific suggestions or requests: Complaints ............. NUL: Documentation .......... 133/12 DEC Rainbow ............ 141/491 FOSSIL echo area ....... 132/101 oMMM operation ......... 132/101 OpusNode information ... 137/42 Matrix dialing scripts.. 14/614 Meadow echo area ....... 124/110 Net_Dev echo area ...... 132/101 Suggestions ............ The Meadow Telebit Trailblazer .... 141/491 USR HST ................ 115/500 For general discussions about the usage of Opus, you should consider subscribing to the Opus sysop EchoMail area, called MEADOW. Any of the distribution nodes can refer you to a tie-in point for this area. If all else fails, contact Jon Sabol at 124/210 for information pertaining to MEADOW EchoMail connections. Opus CBCS 1.0 -122- Opus Information MEADOW carries the same copyright as Opus. You are required to act in a friendly and lawful manner if you participate. We are trying desperately to keep a casual and constructive atmosphere in the Opus area. If that is not your intent, please do not subscribe to the conference. If you wish to discuss technical aspects of the programs, you are wholeheartedly welcome to join!!! Opus CBCS 1.0 -123- Opus Information Appendix A - Cyberpunk? +-----------------------------------------------+ | | | Cyberpunk comes from the realm where the | | computer hacker and the rocker overlap, a | | cultural Petri dish where writhing gene | | lines splice. Some find the results bizarre, | | even monstrous; for others this integration | | is a powerful source of hope. | | | | - Bruce Sterling | | | +-----------------------------------------------+ This has nothing to do with Opus, exactly, but because I called The Matrix "the world's first CyberPunk BBS Network" I'd better explain the term. CyberPunk is a kind of science fiction. Characters in such works have been described in several ways. Here are a couple: * Low-budget high tech * Miami Vice with lasers * Ray-gun gothic The street people in such books are normally the techies. It can conjure up images of that broken-down freighter in the original Star Wars if you aren't careful. The TV show MAX HEADROOM is CyberPunk. One repeating theme is this: surrounded by computers and equipped with the knowledge of how to use them, Cyberpunk characters often struggle to maintain a sense of humanity. If there is to be any kind of struggle, that particular one sounds more worthy of my time than others. Opus CBCS 1.0 -124- Appendix A Finally, a short conversation from Gibson's "Johnny "Mnemonic.".. "Who's Lo Tek?" "Not us, boss." Lo Tek is just a gang in the book, of course. But it's a term you may run across from time to time when you hook into The Matrix: The World's First CyberPunk BBS Network. Opus CBCS 1.0 -125- Appendix A Appendix B - Opus and support file list: The following filenames are hard-coded in Opus, and must not be changed: CHGPRIV BBS - C)hange menu DIR BBS - Area header in each area. FILES BBS - File listing in each file area. EDITPRIV BBS - Message editor menu FILEPRIV BBS - File menu MAILPRIV BBS - Matrix menu MAINPRIV BBS - Main menu MSGPRIV BBS - Message menu SYSPRIV BBS - Sysop menu SYSTEM BBS - Main System file SYSTEM1 BBS - Message / File area 1 SYSTEM2 BBS - Message / File area 2 (etc......) LASTUSER XXX - Last user to go outside (XXX=task$) OPUSCHAT XXX - Chat buffer (XXX=task$) F1 BBS \ F2 BBS \ F3 BBS \ F4 BBS \ F5 BBS \ Function key display files. F6 BBS / These can be .GBS for graphics F7 BBS / F8 BBS / F9 BBS / F10 BBS / WHY_ANSI BBS - help screen for the (ANSI y/n) question WHY_FB BBS - help screen for the logoff prompt. WHY_HU BBS - Help for the G)oodbye command WHY_PVT BBS - help for the (Private?) Message prompt C BBS - C)hange help screen FILES BBS - File area help screen MAIL BBS - Matrix help screen MAIN BBS - Main menu help screen MSG BBS - Message area help screen OPUS EXE - Opus itself Opus CBCS 1.0 -126- Appendix B The following files MAY be changed in Opus, but be aware some external (third-party) utilities may expect them to have their original names: SCHED BBS - Scheduler record OPUSGRAF EXE - Displays settings in Control file OPUS_CTL EXE - Control file compiler ANSWER BBS - Q)uestionnaire answer file USER BBS - User records BULLETIN BBS - System Bulletin WELCOME1 BBS - Initial welcome screen WELCOME2 BBS - Second welcome screen EDTORIAL BBS - System Editorial NEWUSER1 BBS - Initial New user screen NEWUSER2 BBS - Second new user screen QNEWUSER BBS - Auto questionnaire for new users QUESTION BBS - Q)uestionnaire file QUOTES BBS - System Quotes These files may be renamed with impunity: OPUS CTL - Opus Control File OPUS LOG - Sysop Log OPUS PRM - Opus Parameter file (compiled OPUS.CTL) EDITOR BBS - Help screen for the Editor INQUIRE BBS - help screen for the Inquire command LOCATE BBS - help screen for the Locate command BYEBYE BBS - Logoff screen CONTENTS BBS - help screen for the Contents command DAYLIMIT BBS - For users whose daily time is up FILEAREA BBS - List of file areas. LEAVING BBS - Show to users before they go outside MSGAREA BBS - list of message areas RETURN BBS - Shown to users returning from Outside REP_EDIT BBS - Help for REPLACE on the Editor menu ROOKIE BBS - Welcome2 screen for users <7 calls. TIMEWARN BBS - Time limit warning TOOSLOW BBS - Your modem is too slow XFERBAUD BBS - Screen for users too slow to up/download FILE LOCATIONS File is maintained by... s ... sysop or some external utility o ... Opus b ... both sysop and Opus Opus CBCS 1.0 -127- Appendix B FILE NAME v NOTES Barricade (password) lists..s default dir. or as specified (in System?.Bbs field) DIR.BBS.....................s each message and file area subdirectory FILES.BBS...................b each file area subdirectory FILES.BAK...................o each file area subdirectory (created by Opus when it changes Files.Bbs) XFERINFO.xxx................o internal temp file (default drive/directory)* SYSTEM?.BBS.................b "Path system" in the CTL file LASTREAD....................o each message area subdirectory *.MSG.......................o each message area subdirectory. Note that all message areas should be on the same physical drive. _TMP_.$$$...................o file transfer temp file (internal) BUNDLE......................o Matrix session temp file (internal) NODELIST.SYS................s "Path NetInfo" in the CTL file ECHO.CTL....................s "Path NetInfo" in the CTL file ECHOTOSS.LOG................b default drive/directory KILLDUPE.DAT................o each echomail message area OPUSCHAT.xxx................o default drive/directory* All Matrix dialing scripts..s "Path NetInfo" in the CTL file BADARC.???..................o Inbound file area (an LZW Matrix file that could not be decompressed by ARCE). BAD_BNDL.???................o Default drive/directory (a Matrix message bundle that Opus couldn't unpack). Opus CBCS 1.0 -128- Appendix B Appendix C - Miscellaneous reference stuff Multitasker notes Matrix processing on more than one task isn't recommended for v1.00. Although you can accept inbound traffic on all partitions, you should restrict processing (scan/arc'ing/etc) to a single partition. There is no protection against collisions in the internal echomail scanner or in such external programs as ARCA and ARCE. DoubleDOS Notes Some folks consider DoubleDOS to be an amazing piece of software. That may be true, but it tries to make PC type computers do something that the machine wasn't designed to do: multi-task. If you plan to use DoubleDOS, here are some things to keep in mind..... * Set the "Multitasker DoubleDOS" option in your Opus control file. Opus will stall if you have this switch set and run it without DoubleDOS. * Don't use any of the COM definitions in DDCONFIG.SYS. * At high speeds, DoubleDOS loses interrupts on a context switch. That means if you are running 2400 baud or above, flipping from one partition to the other may cause the system to lose one or more characters. This can sometimes be critical during such things as file transfers. * At high speeds, some non-Opus programs cause DoubleDOS to do so much work that it loses interrupts. Here's one thing that doesn't seem to work on a 6mHz AT: running Opus in the foreground with a file transfer going at 9600 baud and a steady modem-to-computer speed of 19.2kb with PLINK running in the background. The PLINK program seems to keep DoubleDOS so busy that the system gets CRC errors (on an error-free connection!). Opus CBCS 1.0 -129- Appendix C * If you run more than one phone line, you should have Matrix processing going on only one partition. This doesn't mean you can't setup both tasks to accept Matrix traffic, but scanning/arc'ing/etc on both partitions on a busy system can cause some fairly colorful collisions. Future versions of Opus will (hopefully) address this problem. You and Opus and DoubleDOS can establish a happy and meaningful relationship if you keep these things in mind. You just need to know that running a multi-tasker on a single-task machine is more of an art than a science. Modem notes USR Courier The "X" setting in the init string for a USR Courier must be "X4" or less. If you use "X6," the modem will incorrectly report a VOICE connection when it tries to negotiate a baud rate with a Telebit TrailBlazer modem. Telebit Trailblazer The TeleBit TrailBlazer is a powerful piece of machinery. Because of that, you will do better if you have a powerful computer. Although the TrailBlazer has been successfully run on slow MS-DOS machines (like the DEC RainBow), it seems almost like a waste of a good modem to run it on anything less than an AT. The fewer resident programs you have, the better. That's because the computer needs all the horsepower it can get just to keep up with this modem. With a fairly clear phone line, we've seen ZModem netmail connections with file transfer rates of 12kb, but those speeds require two fast computers driving the modem. You can't really expect file transfer throughputs above 8000 baud with a 4.77mHz computer. Opus CBCS 1.0 -130- Appendix C Registers Here is a sample register chart from an Opus 1 system. It was generated using the TrailBlazer's "AT&N" command: E1 F1 M1 Q0 T V1 X1 Version Q2.19CM6-025 S00=001 S01=000 S02=043 S03=013 S04=010 S05=008 S06=002 S07=040 S08=002 S09=006 S10=007 S11=070 S12=050 S45=000 S48=000 S49=000 S50=000 S51=005 S52=001 S53=001 S54=000 S55=000 S56=017 S57=019 S58=002 S59=000 S60=000 S61=045 S62=003 S63=001 S64=000 S100=000 S101=000 S120=000 S121=000 S122=001 This setup includes a locked computer-to-modem interface speed of 19.2kb. Initialization The initialization sequence in the sample Opus control file . . . ~|AT&FS0=1S51=5S52=1S53=1S7=60S58=2S9=1S66=1S68=2Q0E0H0M0V1| . . . is a good deal more intense than it really needs to be. It is a fairly safe and conservative approach. Some use the "&W" command to write the values to the modem's non-volitile memory. If you do that, you may be able to get by with nothing more than "ATZ" in Opus itself. Opus Control File In addition to the initialization sequence, you should use the following items: Modem STEADY % -- lock the interface speed Mask CARRIER 128 % -- carrier detect mask Mask HANDSHAKING XON % -- use xon/xoff Mask HANDSHAKING CTS % -- use cts/rts Known Problems The TrailBlazer proms in our test machine had two problems: * If RTS is toggled too quickly, the modem doesn't realize it's been changed. The folks at TeleBit say this is fixed in more recent PROM versions. Opus CBCS 1.0 -131- Appendix C * When there is a hard collision (eg. Opus trying to send the init string at the same time somebody is trying to call), the TrailBlazer drops to a 9600 interface speed. Apparently it reloads the factory setting instead of the non-volitile register settings. Fortunately this doesn't happen often. When it does, your only recourse is the switch on the modem. Hayes V-Series Regrettably, Opus cannot be expected to operate correctly with a Hayes "V-Series" modem. Here's why: Hayes has redefined the set of response strings. Instead of a simple CONNECT there's now a connect message followed by a line of protocol information, followed by a "CARRIER " line. Also, it's impossible to lock the V-Series interface speed. Although connections are possible or likely, NONE OF THE BAUD-RATE SENSITIVE TIMINGS AND LIMITS WILL WORK. The connection responses would look something like this: CARRIER [some line about handshaking is here] CONNECT That may not be exact, but it illustrates the problem. The V- Series hasn't just redefined the CONTENT of the connection sequence, it has redefined the STRUCTURE of the whole thing. The point is that it would take considerable code to support the V-Series with its sometimes-locked interface baud rate. We would have two kinds of modems: the V-Series and the rest of the world. Until the V-series gains wider acceptance, there's no reason to use up code space on every body's disk just to support it. (This is subject to change, however.) Like it says in the specs, Opus requires a "Hayes-compatible" modem, and the V-Series certainly can't be put into that category. July 13, 1987 Opus CBCS 1.0 -132- Appendix C