ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ ³ Oblivion/2 Bulletin Board System ³ ³ Version 2.25 ³ ³ ³ ³ Copyright (C) 1991-1994 Darkflame Enterprises. ³ ³ All rights reserved. No part of this documentation may ³ ³ be altered without the consent of Darkflame Enterprises. ³ ³ ³ ³ Written by: Eric Katz (Referred to as Darkened Enmity) ³ ³ : Rony Daher (Referred to as Lord Tracer) ³ ³ Documentation: Rony Daher ³ ³ : Morten Mertner ³ ³ : Guy Rotowski ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ TABLE OF CONTENTS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ LEGAL INFORMATION 1 GENERAL OVERVIEW 1.1 REGISTRATION 1.2 ACS SYSTEM 2 CONFIGURATION PROGRAM 3 MENUCODE/STATCODE/MAKEPROM/MAKEHELP 4 DATA AREA CONFIGURATION 5 CONFERENCE EDITOR 6 SYSOP ONLINE FUNCTIONS 7 INFOFORMS 8 MAKING REPEAT ANSIS 9 MAKING STANDARD ANSIS 10 MCI CODES / SYSOP CONFIGURABLE TEXTFILES 11 CONFIGURABLE CHAT 12 MENU EDITOR 13 MESSAGE / FILE BASE SETUP 14 UPLOAD CHECKER 15 CONFIGURABLE ARCHIVERS 16 GENERIC MENU CONFIGURATION 17 FUNCTIONS OF ANSI.SYS 18 SETTTING UP WITH OS/2 19 USING E-MAIL TAGS 20 SECTION 1: LEGAL INFORMATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Darkflame Enterprises grants to the Purchaser and Purchaser accepts a nontransferable and non-exclusive license to use, on a single computer, the Software Products and accompanying materials provided to Purchaser by Darkflame Enterprises. Purchaser is hereby licensed only to read the program from its medium into the memory of a single computer solely for the purpose of executing the program. Darkflame Enterprises shall have the right to terminate this license if purchaser violates any of its provisions. Purchaser agrees that the Software Products and accompanying materials are the property of Darkflame Enterprises and that Darkflame Enterprises shall maintain title to and ownership of the Software Products at all times. Purchaser agrees to make no more than one (1) additional working copy and one (1) backup copy of the Software Products for personal use only. Except as indicated above, the Software Products may not, in whole or part, be copied, reproduced, translated, or distributed to other parties. Darkflame Enterprises makes no warranties of any kind, expressed or implied, with respect to the quality, performance, accuracy, or fitness of the Software Products for any particular purpose. Darkflame Enterprises assumes no responsibility for any decisions made or actions taken on the part of the Purchaser because of the use of the Software Products. In no event shall Darkflame Enterprises, or any of its representatives, be liable for any loss of profit or any other damages, including but not limited to special, incidental, consequential or other damages, arising out of the use or inability to use this product -even if Darkflame Enterprises or an authorized agent of such has been advised of the possibility of such damages -or for any claim by any other party. SECTION 1.1: GENERAL OVERVIEW ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Oblivion/2 BBS was designed with two things in mind: The SysOp, and the user. This bulletin board program attempts to give the best of both worlds: Power for the SysOp, and ease of use for the user. With the unique menu editor, and configurable ACS system, the power is present. The possibility for change gives the SysOp his power, while also giving the user an easy interface for operations. List of major features: o Powerful menu editor. Allows for configuring all aspects of the BBS. o Configurable String editor. No more internal strings. Add a personal touch to your BBS! o Optimized for increased speed. Runs fast on any machine! o Support for multiple menu sets. o Support for multiple stat screen sets. o Echomail/Netmail Compatible. o Configurable Data Area System. Create your own BBS/VMB/NUA listing, and configure them any way you wish. Similar to an online database, but completely configurable. o Support for SR/PCBOARD.SYS/CHAIN.TXT door file formats. o Support for up to 255 separated message/file conferences. o Support for multiple prompts. User selectable. o Integrated upload checking system! Checks all uploaded files for CRC, viruses, and runs age tests. Also includes ability for additional SysOp specified maintainence to uploaded files! o Support for multiple, SysOp configurable archivers! Anything on the BBS can be packed and unpacked in your favorite archive type. Also includes automatic archive signature recognition. The BBS knows what type of archiver a file was packed in w/o looking at its extension! o Advanced user editor with integrated searching functions! o Parameter editor for easy control and maintenance of user levels! o Advanced online RIP graphics support for transmitting graphic images over the modem. o Configurable Generic Menu system. No longer do SysOps have to edit menus when they change commands. With the generic menus, the BBS can do your editing for you. SECTION 1.2: REGISTRATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Registration of Oblivion/2 is simple. All of our registrations are handled through our HQ support system. This system, The Fringes, can be reached at 216-464-4856. The cost of Oblivion/2 is $50.00. There is no areacode restriction, or other restrictions for that matter. To clear up certain things about registration, keep these things in mind: o A completed ORDER.FRM MUST be sent with your order. o Personal checks are NOT accepted. If you send one, your order will be returned. Please send a cashier check or a money order. o You cannot transfer your registration to a friend. All registrations are handled with us. o Please only send your registration after you've been validated on The Fringes, and after a member of the team has given you the OK. If you send money before you're accepted to register the BBS, your money will be considered a donation for the betterment of Oblivion/2. NO EXCEPTIONS. o Please do NOT send Canadian Postal money orders. They're hard to cash. o If you're registering overseas, or anywhere outside of the US & Canada, make sure to get your money order from a larger bank. Smaller chains are VERY hard to cash here. For Europeans and Australians, Citibank seems to work well. Registration is handled through a serial number system. When we validate your registration, you will receive a ZIP containing a textfile named SERIAL.NUM. Inside this textfile, you'll find a BBS Name, BBS SysOp, and a 20-digit serial number. Enter that information in your Obv/2 config EXACTLY as they appear in the SERIAL.NUM. If the information is not correct, the BBS will not register. Should you lose your SERIAL.NUM, please contact any member of the Oblivion/2 staff, and a new one will be made available for you. If you decide to distribute your SERIAL.NUM file, a beta version of Oblivion/2, or anything reserved for registered SysOps only, your registration will be immediately cancelled. No questions asked. No refunds given. No exceptions made. If you wish to get in contact with the Oblivion/2 team, please mail us on The Fringes, or at this address. Due to the large amount of mail received, we cannot guarentee replies. Oblivion/2 Team Post Office Box 43364 Cleveland, Ohio 44143-0364 SECTION 2: ACS SYSTEM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ACS, or Access Conditioning System, has become a reality for many BBS programs being produced today. With ACS you can allow and restrict user's access to a certain area to the board based not only on level but on Baud Rate, Time Left, Number of File Points and much more. In essence, ACS offers the SysOp "Total Control" of his system. Before any SysOp can use the ACS System, it must be known it can get very complicated (as you will see). It can become a programming language in itself. So if your access doesn't go as planned the first time, continue to experiment until you find the results you are looking for. The following is a list of valid ACS Commands: Flag Description ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ - False + True SXXXX True if Level Greater or equal to X. VX True if user is on Node X. DXXXX True if File Level Greater or equal to XXXX. EX True if user called more than X times today. BXXX True if BPS Rate (w/o 00's) is Greater or equal to XXX. (ie:3, 12, 24, 48, 96, 144, 168, 192, 384) CXXX True if user hasn't changed his password in xxx days. FX True if X flag is set. (A-Z) HX True if user is using menu set X. IX True if user is using stat set X. JX True if user has ANSI and X=0, or user has AVATAR and X=1, or if user has RIP and X=2. PXX True if user has XX file points. YXXX True if it is at least XXX minutes past midnight. ()'s Tells Obv/2 to Process Codes in parenthesis before any other codes. | Used to "Or" what is on the left side of the | with what is on the right side of the |. ~ Makes a Code False that would otherwise be true and vice versa. \ True if Fail Flag is True. = True if user is local. [ True only when system is run multinode. ; True if input is not broken using space or ESC. ' Used to prompt for SysOp password. KX True if absolute file area # is equal to value of X. LX True if absolute message area # is equal to value of X. MX True if MSG conference is equal to the value of X. NX True of FILE conference is equal to the value of X. PXXXX True if # of file points is greater than the value of XXXX. TXXXX True if time left is greater than the value of X. UXXXX True if the user # is equal to X. AXX True of age is greater than XX. GX True if user is male (X must be 0), or user is female (X must be 1) QX True after user has called more than X times RX True if total calls exceed X. * True if user meets his Post/Call Ratio The Following are a few examples of the ACS System: ~U2 - Creates a base that can be accessed by everyone EXCEPT User #2. S20D20 - Creates a base that anyone can access as long as their main/file levels are greater/equal to 20. Y120 - Creates a Base that will open after 2:00 am and close at 11:59 pm. y60~y120 - Creates a base that will be open from 1am to 2am. =S255 - Creates a base that can only be accessed via the local terminal, AND the user online must have a security level of 255. P100|S50 - Creates an option that can be accessed only if the user has 100 or more file points, OR if the user has a security level of 50 or greater. T90|FABC - Creates an option that can only be used if the user has 90+ minutes of time, OR if he has flags A,B,C set. B144|FA - Creates an option that can be accessed only by someone who has a 14.4k or better modem, OR if the user has flag A set. A18G0 - True if the user is male, and 18 or over. A18G1 - True if the user is female, and is 18 or over. s20d20~U2|(U2Y60~Y120) - Creates a base that will allow anyone except user #2 who has both a Main Level and Transfer Level Greater than or equal to 20 OR Allow User #2 to access this base from 1am to 2am. SECTION 3: CONFIGURATION PROGRAM ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In version 2.0 and later, the configuration program is now an active part of the BBS. No longer do you have to exit the BBS, and run a large, clunky config, but you can do all of your configuration needs online. The configuration program has a number of global commands. To Clear a field, use the CTRL-Y command, to advance to the next option, use either your arrow keys, or your ENTER key. To enter into insert mode, or to exit from it, use the CTRL-V option. To end configuration from a certain menu, use CTRL-Z (Unless otherwise told). Each Section of the configuration program covers a different aspect of the BBS. Use your arrow keys to navigate throughout the config. In the next part of this section, certain commands in the configuration program will be explained in detail. Commands that are obvious, will be skipped. System Information: Multinode Operation - If you plan to run your system with multiple nodes, select yes for this option. Node Number - This is the node number for the current node. Leave this at 1 if you do not plan on running more than one node. Mins to Time Out - This value (in minutes) will tell the BBS when to hang up if there has been no keypresses from the remote side. Days to save log - This number (in days) tells the BBS how long to save the system log. The log will automatically be purged after that number of days. This is primarily a security feature. Lines of Scrollback - This number tells the BBS how many lines of text to save in the scrollback buffer. This buffer can be accessed via the F4 SysOp command, and is used to view any text/ansi that scrolled off the screen. The higher you make this number, the more memory you'll need. If you make the number too high, your system will crash with an ERROR 203. Should this happen, lower this number! Page Times - This number tells the BBS how many times to allow the user to page the SysOp. If he pages more than this amount of times, a textfile, ENOUGH.ANS, will be printed. QWKName - (Max 8 letters, no extension) This is the filename that your BBS will generate when a user creates a QWK packet for download. ie: OBV2 would make a packet called OBV2.QWK. BIOS Writes - If this option is Yes, then screen writes will be handled through the BIOS. This is very slow, but may sometimes be needed if you have multitasking problems. For normal operations, change this to No. Use MAINTAIN.BAT - Read the section on the upload checker for information on this batch file. Starting Menu - After the BBS finishes with the MATRIX.MNU file (your matrix), which menu should it then go to. This option tells Obv/2. Do not include a .MNU extension; That is assumed. Use Status Bar - If you wish to use the status bar, turn this option on. If not, keep it off. The status bar is located on line 25 of your local screen. It gives important user info on the current user. There are three different parts to the bar. Toggle all of these by using ALT-B. You can also turn off your status bar at anytime by using ALT-B. System Information 2 Data Library Ansis - Tells the BBS if the ansis for data areas are in the current status screen library, or if they're in the textfile directory. Yes = Ansis in status library, and No = Ansis are in textfile directory. Note: If you enter yes for this field, and the ansis are not there, the BBS will then look in the textfile directory. Scan all areas - When this option is set to yes, then the BBS will check all file areas for duplicates when globally uploading files. This method is slower, but there's no possibility of having the same file in 2 directories. If the option is set to no, then the current area will only be scanned for duplicates. Use upload checker - If you want your uploads CRC tested, age checked, and virus scanned, turn this option on. Read the section on the upload checker for more information on the upload checker. SCAN Command - This is the commandline of the virus scanner that the upload checker will use. IE: SCAN /A /NOMEM /NOPAUSE for SCAN.EXE from McAfee. Comment File - This is the filename of the comment that the upload checker will add to your checked files. Make sure that the file is in your textfile. If you don't want comments added, leave it blank. File to add - This is the filename of the file that the BBS will add to checked files. Again leave it blank if you don't want a file added. Age for files - If the newst file in an archive is older than this date, then the file will fail the upload checker. Delete List - This filename (in your textfile directory) contains files that the upload checker will delete from uploaded archives. Put one filename per line. Special Login - This option is used to allow the SysOp to completely configure the login. If this option is set to no, the BBS will NOT display welcome files, check the notices, display status screens, check for new email etc.. (Everything the BBS does on a regular login). Instead, the BBS will just go to your starting menu as set in the CONFIG. (This defaults to TOP.MNU). If you want to alter any aspect of the login, or make a login that looks like another software's then this is the option you'll want to use. If you want to duplicate Oblivion/2's login to modify later, here are the commands that should be present in the beginning of your TOP.MNU file (or whatever menu you have configured as the 'startup menu' in the CONFIG) Command Key : -+ Function : Displays random WELCOME.x file Command Key : -N CString : STATUS.ANS Function : Displays STATUS.ANS (Login status screen) Command Key : -( Function : Prompts the user to hit return Command Key : -@ Function : Reads System notices Command Key : &] ACS : [ Function : Sets user as not available for multinode chat Command Key : &A ACS : [& Function : Asks user whether he wants to be available for multinode chat Command Key : EN Function : Scans for new E-MAIL Command Key : -| Function : Checks for incomplete infoforms Command Key : MZ Function : Scans for new system news Command Key : VC Function : Checks for unanswered voting questions Command Key : -_ Function : Pages SysOp is user has wanted flag set Allow G and I - Allow use of the G and I commands from the message reading menu. These commands store replies and threads. In low memory situations, these commands can lock the system. Drop carrier after - Toggle this option to YES if you want the BBS to drop carrier on users when they logoff. If you do NOT want the BBS to drop carrier on users after they logoff (if you're running Obv/2 as a door), set this option to NO. MAINTAIN.BAT door file-If on, the BBS will create a DORINFO1.DEF type of door file in the door directory before the BBS executes MAINTAIN.BAT. If your file maintainence program requires a door file to run, turn this option on. System Information 3: Swap to EMS - Toggle this option to YES if you want the BBS to swap to EMS memory instead of XMS or disk. Swap to XMS - Toggle this option to YES if you want the BBS to swap to XMS memory instead of EMS or disk. Open/Close FDF - Tells tells the BBS whether to open and close the file description file while doing file listings. This option slows down file listings, and should only be used on multinode systems if you experience problems. Look and Feel: Top Ten Character - This ASCII character is the one the BBS will use in the top ten bar graph. Commonly used ones are ÿ (ALT-255), or þ (ALT-254). Use Greater than - If yes, the BBS will put a > sign before quoted text. Use Quote Headers - If you want to use quote headers, turn this option on. Quote headers are strings displayed in the message at the beginning and end of a user's quoted message. They tell when the person started, and stopped quoting. Common phrases: User Opened his mouth (start), and User Shut his mouth (end). Use Message Help - Toggle this option to yes if you want to use an external screen (MESHELP.ANS) for the message reading help. (? from the message reading prompt) Use file help - Toggle this option to yes if you want to use an external screen (FILEHELP.ANS) for the file listing help. (? from the file listing prompt) Communications: Manual Answer - When this command is set to yes, Oblivion/2 monitors the carrier pin on your serial card. When this pin signals true (when the phone rings), the BBS sends the answer string. This method is quicker than waiting for the "RING" message from the modem. It doesn't work with all modems, so experiment. Initialization String- This string is sent to the modem after every call, and when first loading up the BBS. Use | as return, and ~, or comma, for pauses. Use "+++" to put the modem into command mode. Hangup String - This string is sent to the modem when you want it to hang up the phone. Use the same symbols as above. Send Carrier Str. - This string is sent when you want to send carrier to another user. (ie: User is in his term program, and you want to switch form a voice call to a data call. User receives carrier (ATX1D), and you send carrier (ATA)) Receive Carrier Str. - Same as above, except this will receive carrier. This is typically ATX1D. Lockout Password - This password is required for a user to login when his baud rate is under the minimum baud rate. Wait Until Sent - If this option is true, the BBS will pause until the output buffer is empty after a file transfer. This may help to alleviate problems with the higher speed modems. (28.8k) 115.2k Locking - If you want to lock your comport at 115,200 baud, set this option to yes. It will ignore the port lock rate, and lock at 115,200. SysOps with 28.8k modems should set this to yes for maximum performance from their modems. ACS Configuration: Post Anonymous ACS - ACS required to post anonymously in any base. (See the section on ACS for codes) SysOp ACS - ACS required to be a full SysOp. When you have this ACS you'll be able to access all SysOp commands. (Unless otherwise changed by the menu editing) Message SysOp ACS - ACS required to have access to the message sponsor commands. (Again, this can be overriden by menu editing) File SysOp ACS - Same as above, except for file system. Exec in MiniDOS ACS - ACS required to use the *COMMAND, or &COMMAND commands in MiniDOS. *COMMAND will execute COMMAND after performing a DOS shell. Use this to run PKZIP etc.. &COMMAND will execute command w/o a DOS shell. Use this to run any commands that are internal to COMMAND.COM. (ie: DEL, ERASE, COPY) //\\COMMAND ACS - //\\COMMAND is a quick way to execute any command from anywhere. You must have the specified ACS. To use //\\COMMAND, type //\\ followed by the corresponding menu command. For example, the menu command for text editor is *T. If you've got //\\ ACS, you'd type //\\*T. This would be the same as executing the text editor from the SysOp menu, but you can do it from anywhere! Use this access with extreme caution. Anyone with this access can execute ANY command regardless of it being in your menus or not. If it's a valid menu command, the user will be able to execute it if he meets the ACS requirement. Post Mandatory ACS - ACS required to post a message in a mandatory (NEWS) message base. Mandatory message bases are automatically newscanned upon logon to the system. Use them to post news bulletins. Be sure to purge them periodically, as they will get numerous. Topten exempt ACS - ACS for users to be exempt from the top ten listing. Certified Mail ACS - ACS required for a user to send certified mail. Cerified mail is a type of Email that sends the sender a notice when the receiver has read the mail. Filemail ACS - ACS required to attach files to email. //\\xx ACS - The remaining options on this screen, and ones similar to that in ACS configuration II are used to limit your CoSysOp's use of the //\\ ACS. Each option is as follows '//\\*? ACS' This is the ACS for any //\\ command followed by a *?. For example, //\\*T is the command used to activate the text editor. If you don't want your CoSysOp accessing any of the *x functions, but wish to let him have access to other menu commands not in your menus, set the ACS higher. (Read explanation of //\\ACS just above) File Section Config: K per point - This is used to establish a file point ratio. How many K is one point worth? External Area Listing- If you have made an external file area listing, using either the straight ANSI method, or the repeat method, set this option to Yes. Repeat Method - If you made your area listing using the Repeat Method select yes. (Read the section on making external screens for instruction on making repeat method screens.) Filepoint Commission - If this option is toggled to yes, a commission system for filepoints will be used. The commission system grants the uploader a percentage credit (in FP's), when someone downloads his file. This encourages good uploads. If nobody downloads the file, then the uploader doesn't get credits. Percentage Commission- Percent of the total filepoints to give the uploader when someone downloads his file. Example: Points per 10K = 1 Percentage Commission = 100% User downloads a 100K file, and the uploader will get 10 points added on to his account. Times Point Back - When you rate a file, the uploader will get that rating multiplied by this number. (ie: if this was 2, and you rated a file at 5 pts, the user gets 10 pts added to his account) Description form 1-8 - This feature allows you to append certain options to your file listing. You can let users know who uploaded the file, the date of upload, the size compressed, the size uncompressed etc. (see the MCI code section for those codes) If you wish to use these options, simply start at line 1, and add whichever options you want your users to see in the file listing. (Suggested that you use Uploaded by, and the date of upload) Lines of extended - Tells the BBS how many lines of extended description description to use. Maximum is 7. This option has nothing to do with FILE_ID.DIZ which will use more than 7 lines of it is infact longer than 7 lines. Percent Time back - How much time back (in %) should the user get back after his upload. Autovalidate files - If yes, files will automatically be validated after upload. Otherwise, they will be marked as NEW, and must be manually validated. Min K for upload - (in Kbytes) When your HD his this amount of space, or less, uploads will not be accepted. Use Average CPS - If this option is set to true, time estimates for transfers will be made on the average CPS rate of that user. If it's set to no, time estimates will be made based upon the connect rate. Email Config: Allow Filemail - When this option is set to yes, users will be allowed to send files to each other through Email. Days to keep filemail- Filemail will be kept for this amount of days. It will then be auto-purged. Message Section: External Base List - Use an external base listing in the message section? (See section on making an external listings in these docs) Repeat Method - If you made your base listing using the repeat method, select yes. Val User/NUV Settings: Default Flags - When a user is validated, he will receive these access flags. Daily Flag Change - Flag changed on first call of each day. (Format: +FLAGS -FLAGS) (ie: +ABC-XYZ - Adds ABC, turns off XYZ) Call Flag Change - Flag changed on every call. (Format: +FLAGS -FLAGS) (ie: +ABC-XYZ - Adds ABC, turns off XYZ) SECTION 4: MENUCODE/STATCODE/MAKEPROM/MAKEHELP ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MENUCODE: Before your users can choose from multiple sets of menus, you must first code your ansi/ascii menu files into a single library file. To do this, you will need the enclosed utility MENUCODE.EXE. The commandline for the code utility is as follows. MENUCODE <.LIB Name> Note: You might want to do this in a separate dir. Also, if a file is missing the program will inform you. You may be thinking to yourself, What do I name the files? The answer is simple. With versions greater than 2.0, the SysOp decides which menu(s) will be in each library file. Do this by entering an up to 8 letter filename (no extension) in the HELP ID field in the menu editor. (Once you've begun to edit any menu, HELP ID is on the menu editor change screen.) If you do not want an ansi menu coded for a specific MNU file that you have, leave the HELP ID blank. After all files are successfully coded, copy the *.LIB, and *.NDX files to your data directory. Proceed to login to the BBS, and enter the main SysOp menu. When you've reached that, option "N" will allow you to edit your status screens or menus. Since you'll be adding menus, select M. Option "A" will add a menu set for users to choose from. Select this, and fill out the questions. If you do not wish to use Library set menus, use the Obv/2 TEXTFILE directory as the LIB filename. Example: Menu Name : Normal Menus Library File: C:\OBV2\TEXTFILE\ If you take this approach, no LIB/NDX files are necessary. STATCODE: With the ability to code multiple menu sets, the idea of being able to do the same with status screens was invented. We call these 'Status Screen Libraries. Using a small utility, called STATCODE, you will be able to code multiple statistic screen sets for your users to choose from. The status library consists of a few configurable ANSI screens, they are as follows: NEWSHEAD.ANS - The News Header EMAILHDR.ANS - Header for E-mail HDR.ANS - The Header HEADER.ANS - Message Header FSEHEAD.ANS - Header for fullscreen editor BCHANGE.ANS - Base Change Header SUBSSRT.ANS - Sub Listing Start ANSI (Optional) SUBSMID.ANS - Sub Listing Repeat ANSI (Optional) SUBSEND.ANS - Sub Listing End ANSI (Optional) AREASRT.ANS - File Area Listing Start ANSI (Optional) AREAMID.ANS - File Area Listing Repeat ANSI (Optional) AREAEND.ANS - File Area Listing End ANSI (Optional) USERSRT.ANS - User Listing Start ANSI (Optional) USERMID.ANS - User Listing Repeat ANSI (Optional) USEREND.ANS - User Listing End ANSI (Optional) STATUS.ANS - Login Status Screen USERSTAT.ANS - Your Stat ANSI FILESTAT.ANS - File Status FCONFIGS.ANS - File Listing Configuration Screen CONFSCR.ANS - Config Screen QWKDN.ANS - QWK Screen (For creating/downloading QWK) QWKUP.ANS - QWK Screen (For REP upload/message posting) It is now possible to code any screen that you want into the status library. With the invention of the -N menu command (see the menu editor documentation), you may now display status screens anywhere in the BBS. To code additional screens, create a textfile called *.LST. (ie: If you code OBV.LIB, you'll create and OBV.LST) In this textfile, each line should have a valid DOS filename without any path information. When you run STATCODE, make sure to have this textfile in the main BBS directory. You can also code the data area ansis into your status screen libraries. Simply toggle that option on in the CONFIG, and place any ansis that have to do with data areas in the temp directory that you're using, and run STATCODE. (See the section on the data areas on these ansi files) As you can see, there are quite a few files that you can include in your status screen library. You'll also notice that some of the screens were optional. Those do NOT have to be included in your library, but can be. To Code a Status Library: 1. Create a temporary directory, copy ALL files to this directory. 2. Make sure to have your .LST file in the main directory. 3. Run STATCODE.EXE with this format: STATCODE ie: STATCODE PMD C:\TEMP\ (No extension on libname!) 4. Add the status set with the "N" SysOp command. 5. If you coded any of the 3 part listing screens (ie: SUBXXXX.ANS, USERXXXX.ANS, or AREAXXXX.ANS) you must toggle their use in the CONFIG. (See the chapter on the configuration program on just where to find these options.) 6. If you coded the data area ansis, make sure that the corresponding option is turned on in the CONFIG. MAKEPROM: With the new-and-improved string system in version 2.00 and greater, there is no more need for a string compiler. Instead, we've written a new utility called MAKEPROM which will add/arrange any new strings. No textfiles, no compilers, nothing but a simple executable file. This utility will add any new strings to the data file, and will arrange them in their specific order. Do not run this program more than on time per new version. The program will inform you which prompts it can convert, and all you need to do is run it once to update your PROMPTS.DAT. MAKEHELP: With the new configuration system in version 2.0 and greater, we've created a help system. This system will give the SysOp a brief description of each option. Whenever new options are added to the config, new descriptions must be added to the data file. MAKEHELP will update your help file. Run this only once per new version, just like MAKEPROM. SECTION 5: DATA AREA CONFIGURATION ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The data area is a new outlook on an old idea. This data area system draws on the old database system found in some BBS softwares. This system takes the good features of the database, and combines them with the configurability of Oblivion/2. Data areas can be used for a few very practical applications. We've already utilized these areas in making a BBS list, Rumors, and One Liners. All of these are completely SysOp configurable, and can be altered in any way the SysOp chooses. To show the configurability of the data areas, I will demonstrate making a BBS listing, along with explaining how these data areas work. When you first enter the data area sysop menu, you'll be presented with a few self-explanatory options. (Add, delete, change, quit.) Since we're just starting out, we'll select add. You'll be presented with the following screen: (A) Area Name : BBS List (B) Access ACS : (C) Add ACS : (D) List Prefix : BBS (E) Add Ansi : ADDBBS.ANS (F) Sponsor : Lord Tracer (G) Allow Anonymous: No (H) Store Message : Yes (I) Data File Name : BBSLIST (J) Show Ansi : SHOWBBS.ANS (K) AutoDelete : 0 (L) Directory : (M) Node Number : Area name - Name of the data area. In our case, this will be BBS list. Access ACS - ACS required to access this data area. Add ACS - ACS required to add an option. In this case, it would be adding your BBS entry. List Prefix - This prefix (up to 5 letters) tells the BBS the name of the 3-part listing file to use. Using BBS, the 3 ansis you'd need to make would be BBSSRT.ANS, BBSMID.ANS, and BBSEND.ANS. (See the section on making 3 part repeat ansis for help with this) Add Ansi - The ANSI that appears when the user wants to add to the database. In this case, this ansi could be a box with BBS name, number etc. Each of these options requires an MCI code. Worry about that later. (If you use %xx as your MCI codes instead of |xx, the BBS will force input.) Sponsor - The user that can edit the database. If you want to give specific users their own database, you do not need to give them SysOp access to edit their database. Allow Anonymous - Can the user add to this database anonymously? If so, set this to yes. Store Message - Can this database store an ANSI file or description for each entry? If so, change this to yes. In our case, we wish to allow the SysOp to upload his BBS ad, or write a description. Data filename - This is the filename the BBS uses to store information about this database. Do not include an extension. Show Ansi - This ansi is displayed when the user views one of the data listings. In this example, you'd want to give a lot of information in the Show Ansi. Stuff that you didn't put in the listing ansi. Again, you'll use MCI codes for this ansi, worry about what codes to use later. Autodelete - This number is the maximum number of entries in one database. Entries will be auto-purged to stay below this number. Directory - Like message bases, data areas can also be echoed with Obv/2's DATAMAIL.EXE utility. This directory stores the *.MSG files that contain the information to network for the current data area. Node Number - Enter the node number assigned to you by your network admin. Make sure to enter the node number of the net that supports networked data areas. (IE: If you're in ImpactNet, and you want to net BBS lists with the ImpactNet SysOps, don't put your Cybercrime node number) After you've completed the configuration of the data area, press q to quit. The BBS will ask you "Edit Options?" Select yes. In this section, there are 3 options: Name : BBS Name String Length : 40 MCI Code : BN Enter every piece of information that you want to prompt the user. (You should use all of these MCI codes in your add ansi. Use the important ones in your listing ansi, and finally, all of them in your show Ansi. See the example BBS list provided with the BBS.) Taking a look at the above example, the name of the field is BBS name, you can enter up to 40 characters for this field, and the MCI code for your ansis is |BN. Notice that you do NOT put the | in the editor! Just BN! The data areas require a little work to create, but when you put in the effort, and understand how it works, the results are pleasing. With v2.20 and later, you can network your data areas. This is done just like networking a message base. You'll need an import/export directory, and a node number. The import/export directory stores the message files, and the node number tells the tosser which network it's tossing. You can only run DATAMAIL.EXE in a network that supports the networked data areas. Once you've found a network that does this, you'll just use your node #, and then a dir on your HD. Set this up JUST like a message base. Go into your tosser program, and add this area into the listing. You'll be given more information by your network admin. on exactly how to set it up. SECTION 6: CONFERENCE EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ With the conferencing system, there can be up to 255 separated message and file conferences. Also with the system comes many security features to prevent unwanted users in your conferences. The Conference Manager is located in the main SysOp menu. Upon entering, you will be asked whether you wish to edit a message or a file conference. Select the appropriate option. You will be taken to the main menu of the manager. It looks a bit like this: Add Conference Edit Conference Delete Conference Change Type Users w/Access Reorder List Quit Add/Edit/Delete/List - These are quite self- explanatory. Reorder - Will allow you to change the order of your conferences. (ie: Making Conference 2 into Conference 1) Users with Access - This command will display a listing of all users that have access to the conference. When you wish to add/edit a conference, you are presented with the following: Description : Oblivion/2 Support ACS : S25 Conference ID : 1 Password : Description - This is the name of the current conference. ACS - This is the ACS required to enter the conference. Password - This is the password required to enter the conference. Conference ID - This number is used internally by Oblivion/2 to tell the BBS which conference is which. You must use this number when working with the JT, and JF menu commands. It's also used in the sub/file area listing when you don't use repeat method screens. SECTION 7: SYSOP ONLINE FUNCTIONS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Oblivion/2 v2.0 was designed specifically with the SysOp in mind. There are a few global SysOp commands that can be accessed via the local terminal. You can also get a listing of these keys by pressing ALT-H from within the program. F1 - Bring User Into Chat mode (Split-Screen) F2 - Bring User Into Chat mode (One line) F3 - User Editor F4 - Scrollback Buffer F5 - Screen Image F9 - Input Lockout (Locks incoming data from modem) F10 - Output Lockout (Locks BBS output to modem) ALT-A - Toggle chat availability ALT-B - Toggle Status Bar (on/off) ALT-N - Nuke User (Hangs up) ALT-M - Access to all message bases ALT-O - Toggle Input timeout ALT-X - Access to all file areas ALT-T - Temporary SysOp access ALT-J - SysOp Shell to DOS ALT-V - Validate user ALT-Q - Displays KICKOFF.ANS in textfile directory, and drops carrier on user Commandline parameters for OBV.EXE: -B xxxxx : Pass xxxxx baud rate to OBV.EXE -E : Forced event run -A : Return to DOS after user hangs up -D : BBS doesn't check for work/swap directories -L : Local Login (Logs in as SysOp from DOS prompt) -N x : Load up node x -EMS : Loads OVR (Overlay) into EMS memory -MENU : Loads menu editor from DOS -USER : Loads user editor from DOS -PROMPTS : Loads string editor from DOS -CONFIG : Loads CONFIG program from DOS -T xxxx : xxxx = time in minutes after midnight before which users should be kicked off. (ie: -T 120 means that users will be kicked off until 2:00am) -M xxxx : xxxx = number of minutes until the next event before which users should be kicked off. (ie: -M 120 and an event of 7:00pm would mean that users cannot access the BBS from the hours of 5:00pm until 7:00pm) -D : Overrides the current swap directory setting. (In case you made a mistake in entering the directory, this command will allow you to enter the BBS and change the bad swap directory name.) EVENT EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄ One of the many great features of Oblivion/2 is its powerful event editing system. With the internal event editor, you're able to perform most any daily maintainence you wish, toggle SysOp availability, and much more. There are four basic types of events. They are: Errorlevel - BBS exits at a certain errorlevel to run batch files. Code - Executes one or more menu commands with full CString support. Availability- Toggles on/off SysOp availability. User ACS - Allows you to define ACS required to login to the BBS at certain times. Errorlevel events are ones in which the BBS will exit at an errorlevel of your choice, and run a batch file, or other program of your choice. To make the BBS run a batch file, you need to add statements to your batch file that runs the BBS. They will look similar to this: If errorlevel xx then runme.bat (Use batch knowledge) Define your errorlevel, and replace xx with that level. Assign a time for this event, and away it goes. This is an example of a batch file that runs the BBS, and can be used in an errorlevel event. @ECHO OFF if errorlevel 100 then speedisk if errorlevel 255 then exit :BBS OBV.EXE :SPEEDISK cd\norton SPEEDISK.EXE /BATCH C: cd\obv2 goto obv :exit exit As you can see, the errorlevel event is Norton Utilities Speedisk. The batch file was written to run speedisk when the BBS exits with errorlevel 100. It then re-loads the BBS when the program is done executing. Use this as a basis for other events you may wish to add in. Code events are probably the most useful. They allow you to perform certain menu commands with full CString support at any hour of the day. The uses for this are endless. One example is packing the Email. This should be done often to keep the Email system quick. To do this, add a 'Code' event that runs the Command Keys "EZ". Assign a time for it, and away it goes. SysOp availability is toggled through the event editor. You can toggle when the SysOp is in/out by using this event type. Select Availability event, and toggle whether it is to be when the SysOp is available or not. Assign a time, and thats it. The final event type is User ACS. This event type is used to restrict BBS logins to certain ACS requirements. For example, you can make it so that only user 20 can log into the system at 5:00am to 6:00am. Add a User ACS event, and make the ACS "U20" (No "" marks). Add 5:00 am as the start time, and 6:00 am for the end time. Simple as that. The commandline switch -E is used to execute your events if you're running FD. When running any type of mailer, chances are that the BBS will miss its events. If the time has already passed (Say you've got an event scheduled to pack the message bases at 2:00am), Obv/2 will run that 2:00am event. (Only if its past 2:00am) DELETED LIST ÄÄÄÄÄÄÄÄÄÄÄÄ The deleted list is like an improved blacklist. It gives you much more control over who gets on the system, and who stays off, and for how long. Here's how it works. When you want to delete someone, he can optionally be tossed into this deleted list. When inside of the list, there are 3 types of deletions: Immediate: File displayed to user, Then he's off the blacklist, and can re-apply. Expiration: File displayed to user until date specified. After date specified, user is off deleted list. Never: File displayed to user. Permanantly on the blacklist. If you noticed above, each level of deletion displays a file to the user. When you add a user, you can change the blacklist file for each one. This lets you put 'personal' messages to your blacklisted users. The default is BLACKLST.ANS. If you want to change the filename, enter a different one when the BBS prompts you for a filename. STRING EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄ With new versions of Oblivion/2, string editing has become much easier. You no longer need to compile your strings, the BBS will do it all for you. This new version now has an online string editor. Some features include: strings of up to 255 characters, being able to use filenames in place of strings, and customized variables for displaying BBS information in your strings. Moving around in the editor is quite simple. Press [,] to view 5 more strings. When you see a string that you wish to edit, press that strings corresponding number. The BBS will then allow you to edit that string on the lower half of the screen. You may use CTRL-V to toggle insert mode, and use CTRL-U as an ascii chart. (Use the cursor to pick the upper ASCII character you want, and it will be printed in the cursor's current position in your string). Notice that when you see your strings, you'll see 2 lines for each string. The upper line is what the string description is, and the lower line is what you've configured that string to be. You may use |Ux (1-6) for each of the six user colors. You can also use |01-15 to force a certain color. |OT, and |O2 are internal variable MCI codes that the BBS uses to place information. If you see one of the prompts with a |OT, or |O2, make sure that your string also has one. Another approach to string editing is filenames. You can have the BBS print a file instead of a string. This comes in handy for places where you just need to put more information. For example, you might want to configure your message reading string, or file newscanning string to use a textfile. This is a simple process. Create your ANSI, and place it into your textfile directory. Use %%FILENAME.EXT for that string in your editor. This will force the BBS to read that string from the file. In this external file, you may use 3 percent codes: %IN, %OT, and %O2. %IN tells the BBS where to place the cursor after the screen has been drawn. Use this to place user input anywhere you want. The input color will be the same as the color that you use with %IN. Like above %OT, and %O2 are information placers. Only use them if the original string has them. A new code has been added to let the string pause for a return. This string is |PA. When you add this anywhere in your string, you'll be paused until the user hits return. You should run the Oblivion/2 Utility MAKEPROM.EXE when you are instructed to by us. This updates your prompts automatically. It saves a lot of time, and is better than the old PROMPTS.TXT way of doing things. Make sure not to run the program more than one time, as it could lead to damage of your string file! MENU PROMPT EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The menu prompt editor allows you to configure many different prompts, and have your users choose which one they like. These prompts can range from something simple like this: Main Menu: to something more extravagant: [10:06 pm EST] [Main Menu] [?/Help]: The operations of this editor are quite self- explanatory. When making menu prompts, you'll be in the Fullscreen editor. There are several MCI codes that you'll be able to use in your prompts. |01-|15 : ANSI colors from 01-15 |MN : Menu Name (Name in prompt in Menu editor) |TL : Time Left |TM : Time Now |FLxx : Sets input length to xx |RC : Regular Color |SC : Status Color |PC : Prompt Color |EC : Input Color |VC : Inverse Color |XC : Box Color |Ux : Moves up x amount of lines |Dx : Moves down x amount of lines |Fx : Moves forward x spaces |Bx : Moves backward x spaces |Xxx : Moves to absolute X value. ie: |X10 moves to the 10th row PROTOCOL EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ With version 2.xx of Oblivion/2, protocol editing has been made much easier. All protocol setup is done internally. When you first enter the protocol editor. You'll be asked which type of protocols you want to edit. There's four types of protocols: Single File, Batch, Resume, and Bidirectional. Single File protocols (both upload and download) are used in sending QWK Packets, Receiving REP Packets, Receiving Filemail, Sending Memorized Messages, Sending Complete File Lists, etc. Batch Protocols are the heart of the file system. Resume Protocols are used to let a user resume an uncompleted upload. (Only some protocols support this, DSZ, MPT, HS-Link are a few examples) Once you've selected which type of protocol you want to edit, you'll be placed in an Oblivion/2 Box editor. The options available from this screen are: Description, Key, Program Name, and Commandline. Description is the description you want to give the protocol. (ie: Zmodem Mobyturbo). Key is the KEY that users must press to activate that protocol. (for Zmodem, this could be Z). Program Name is the protocol executable itself. (For Zmodem, DSZ.COM, or GSZ.EXE) Finally, the commandline options are to be placed in the commandline string. (See the DSZ documentation for the best string to use) PARAMETER EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The parameter editor is a quick and easy way of utilizing levels. What the editor does is allow you to define a level (lets say 50), and let you give that level certain PCR, UD, UD K, Time, DL K PER DAY ratios, and various expiration values. To use the editor, just create a level (say 50). Then, enter in level 50's PCR, UD, UD K, TIME and DL K PER DAY ratios/values. Now, when someone's given level 50 from the user editor, they'll get these specified amounts. You can now also specify a # of days til expiration, and the level that the user will receive when his account expires for each level in your parameter editor. The unique feature of this Paramater editor is that it can be totally invisible to the SysOp if he/she desires. In your CONFIG, under 'Validated User Levels' there are a few 'Default XXXX level' entries. Should you wish to use the parameter editor, change those values from whatever they may be to zero. (Do this only for the Default UD, UD K, DL K per day, Time etc. Do not change Average CPS to 0). When the value is Zero, it tells Obv/2 to read from the parameter editor values. Should you wish not to use this editor, change the values to whatever you wish. The parameter editor will have no function. If you want to change a certain field for a certain user, it's simple. Say you wanted to give Joe User 30 minutes instead of 15 mins. (Say level 50 had 15 mins in it). You'd then go to the user editor. Option 'time left' should be changed to 30. Thats it. Please note, in the user editor, DL K per DAY, Time, UD, UD K, and PCR must all be zero. The parameter system will only look at those values in the parameter editor if the values for the above, in the user editor, are zero. There is a function in the editor which allows you to Zero-Out certain levels of users, so that they can follow the parameters. Also note that the default CONFIG levels must also be zero for the parameter editor to take effect. If they're not, the parameter editor will not function correctly. USER EDITOR ÄÄÄÄÄÄÄÄÄÄÄ The user editor in 2.xx has been completely overhauled. It's now completely batch oriented, and allows for many new options. A few of these include Infoform Extraction, Searching, Quick Loading of Users, Highlight Selected User Editing and more. When you first select the user edit option, you'll be asked 'Edit Individual' If you pick yes, the BBS will prompt you to enter a username. If you select no, the BBS will clear screen, and print 23 user names, and let you select them with a highlight bar. Hit "Q" to quit that process, or RETURN to select the highlighted user. Once inside the editor, you'll find a myriad of configurable options. Note a few important keys: [,] move to the previous/next user. {,} move to the previous/next user in your search link. * extracts the selected Infoform to a file. Finally, S takes you into the Search Editor. It looks like this: (H) Handle String : [OFF] (A) ACS : [OFF] (L) Level : [OFF] - [OFF] (F) File Level : [OFF] - [OFF] (D) Days Since 1st : [OFF] - [OFF] (S) Days Since Last: [OFF] - [OFF] (E) Flag : [OFF] (N) Number of Calls: [OFF] - [OFF] (Y) Age : [OFF] - [OFF] (G) Gender : [OFF] (P) PCR : [OFF] - [OFF] (U) % U/D Ratio : [OFF] - [OFF] (K) % U/D K Ratio : [OFF] - [OFF] (X) Expiration Date: [OFF] - [OFF] (T) Tabulate Search This unique editor allow you to have the BBS search for specific users, using your search criteria, and let you edit all of them easily. This makes manual changes a breeze. The options above are pretty self-explanatory. Make sure to press "T" to 'Tabulate Search' If you don't, your search won't run, and you'll lose your search criteria. When in the user editor, use the {,} keys for quick backward/forward progress in your search editing. SECTION 8: INFOFORMS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Infoforms are a sysop's easy way of keeping information about his users. Usually, when you login to a BBS, you'll be asked to fill out forms. Sometimes forms are used as applications to groups or whatnot. None the less, they are very useful in storing information. Making Ansi or Ascii infoforms is quite simple. For Ascii infoforms create your ascii file with questions, and using Qedit or any similar text editor use one of these following characters depending on what you wish to do: * -- Waits for a response. (Abortable) |Xx -- Limits User input to xx spaces. %xx -- Accepts up to xx characters, and will repeat the question if the user leaves it blank. @ -- Gets input similar to *. It will repeat the the question if the user leaves it blank. You have space for 5 information forms. After you've created your ANSI/ASCII infoform, name it INFOFORM.1 through INFOFORM.5. INFOFORM.5 is the form used by New User Voting. If you want NUV, make sure to put the appropriate form in INFOFORM.5. You can force users to fill out certain infoforms by making them mandatory in the CONFIG. Users must fill those forms out in their login in order to gain access to the system. You can clear your infoforms by using the Clear Infoform command from the SysOp menu. If you have altered your infoform, it's a good idea to clear out your infoforms because the answers could end up in the wrong spots. New with version 2.20, you can now have multiple infoform sets. Instead of letting users fill out only 5 forms, you can have an unlimited amount of infoforms. The default 5 infoforms are stored in a data file called INFOFORM . To have more than 5 forms, you can change the file that the infoforms are stored in. The user editor, and the -) menu command allow you to change the data file to another name. Each new data file stores 5 new infoforms for each user. SECTION 9: MAKING REPEAT ANSIs ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In an effort to add more configurability to Obv/2, we've created the 'Repeat Method' of making ANSI screens. These screens are used all around the BBS. Some areas include: Message base/File Area Listings, One Liners, Rumors, User Listing, Last Caller Listing, BBS Listing and more. It's important that you learn how these work. Please read carefully. In the repeat method, there are 3 screens for each type of listing. The first, an intro, the second is the actual way to repeat, and the 3rd is an ending. For example, to make a messge base listing that looked like this: Base Description Network ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 General Talk ImpactNet 2 BBS Advertisements ImpactNet ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The 3 files used in message base listing are: SUBSSRT.ANS - Intro to listing SUBSMID.ANS - Middle (This uses MCI codes, and is the one that will be repeated) SUBSEND.ANS - The end of the listing. Our SUBSTART.ANS would look like this: Base Description Network ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Our SUBSMID.ANS would look like this: |AN |BN |NN Our SUBSEND.ANS would look like this: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ As you can see, the repeat ansi is one of the most powerful features of Oblivion/2. Due to several bugs in TheDraw and missing features in the ANSI.SYS device, you need to make a few manual changes to the middle part before they will work properly. (Middle part = xxxxxMID.ANS) Load TheDraw and draw your ansi. When done, enter animation mode using top rescan (others may work, but this is standard). Place the appropiate MCI codes and save the ansi. (If you are doing a plain non-animated ansi, save it as a block. Note that this cannot be done with animated screens). Exit TheDraw, and run ANSITRAN on it. ANSITRAN is a utility supplied with the Oblivion/2 package, and is supposed to clean the ANSI saved in TheDraw from unwanted escape codes. Mostly it makes a good job of this, but since you are going to edit your ANSI anyways, you might as well double- check. To do this, load your finished ANSI into QEdit or a similar ASCII based text-editor. The strings ANSITRAN looks for are esc[255D and esc[Aesc[B (the two codes together like that or esc[Besc[A). If you see them, remove them. The important part in making your repeat ANSI work, is to replace any esc[yy;xxH codes with esc[;xxH. This is because ANSI.SYS doesnt support going to XXth column in current row, and thus TheDraw doesn't add that code in. According to the ANSI 3.64-1979 standard esc[;xxH should go to XXth column in first row, however Oblivion/2 interprets the code differently in middle repeat ansis (and only middle in the repeat ansis). Instead of going to XXth column in first row, it will go to XXth column in current row, thus making repeat ANSIs possible. Having completed this, your repeat ansi is ready for use. It may take a while to become familiar with the ANSI codes, but after a while you learn them and this procedure will be mere routine. An example of a middle repeat ansi, created for the oneliners follows below. This example repeat ansi would look like this: "Û Here goes your oneliners... Column 80 -> Û" This is how TheDraw saved the animated middle ansi I just made: [255D [0B [255D [0;1;30mÛ [78CÛ [2C [1A [0;32m|ON [0m We remove the esc[255D's and notice the esc[0B. It moves the cursor 0 chars down, so we can remove that too. The esc[78C moves the cursor 78 spaces to the right, we could also have done this using esc[;80H, thus moving the cursor to a fixed position in column 80. This is quite useful in some cases, and it makes it easier to recognize what is being done. After editing, it now looks like this: [0;1;30mÛ [78CÛ [2C [1A [0;32m|ON [0m Here's what it does: esc[0;1;30m equals the three ansi codes esc[0m, esc[1m, and esc[30m, color manipulations. Stacking commands using semicolon is used very often, and can be done as long as the last letter of the command (in this case m) is the same. Next, it puts a Û at position one, moves 79 spaces to the right and dumps another one Û, wordwrapping onto the next line. Then it goes two more spaces to the right, and one line up, fixing out location at column 3. Cursor color is set to dark green. The MCI code will be replaced by your oneliner when this is shown. At last, the colors are reset so as not to interfere with your next ansi. And this is already a working repeat ansi! If you'd rather use the esc[;xxH code, it'd look like this: [0;1;30mÛ [;80HÛ [;3H [2;32m|ON [0m I prefer this one myself, but both will work in this case. As you can see, the system is very easy to use, and is very versatile. Please note that each screen type has certain MCI codes that go with it. Only in Data Areas can you define your own MCI codes. These are as follows: With versions after v2.20, you must be careful with your xxxxMID.ANS files. They must not be over 16K. If they are, there will be certain problems. Some screens cannot even be 16K, those screens will be noted as they are listed. SUBSSTAR.ANS - Message Base Listing Start SUBSMID.ANS - Message Base Listing Middle |AN - Base Number |BN - Base Name |SS - Sponsor SUBSEND.ANS - Message Base Listing End AREASTAR.ANS - File Area Listing Start AREAMID.ANS - File Area Listing Middle |AN - Area Number |AI - Area Name |AS - Area Sponsor AREAEND.ANS - File Area Listing End USERSTAR.ANS - User Listing Start USERMID.ANS - User Listing Middle |UH - User Handle |LE - Level |UN - User Note |AC - Area Code |LC - Last Call USEREND.ANS - User Listing End LASTSRT.ANS - Recent Callers Start LASTMID.ANS - Recent Callers Middle |UH - User Handle |DO - Date On |TO - Time On |BR - Baud Rate LASTEND.ANS - Recent Callers End DAILYSRT.ANS - Daily Log Start DAILYMID.ANS - Daily Log Middle |DT - Date |NP - New Posts |NF - New Files |NC - Number of Calls |TU - Time Used |NU - New Users DAILYEND.ANS - Daily Log End PRO?SRT.ANS - Protocol Listing Start PROT?MID.ANS - Protocol Listing Middle (Limit: 1024 bytes) |KE - Key |DE - Protocol Description PROT?END.ANS - Protocol Listing End ? = 1 for download protocols ³ PROT1SRT.ANS Ä¿ 2 for upload protocols ³ PROT1MID.ANS ³ÄÄ¿ 3 for batch download protocols ³ PROT1END.ANS ÄÙ ³ 4 for batch upload protocols ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 5 for resume protocols ³ For a download protocol 6 for bidirectional protocols ³ listing. INCSRT.ANS - Incoming E-Mail Start INCMID.ANS - Incoming E-Mail Middle |NU - Mail # |TI - Title of E-Mail |ST - Status -- (New or Old) |FM - From User INCEND.ANS - Incoming E-Mail End OUTSRT.ANS - Outgoing E-Mail Start OUTMID.ANS - Outgoing E-Mail Middle |NU - Mail # |TI - Title of E-Mail |ST - Status -- (New or Old) |TO - To User OUTEND.ANS - Outgoing E-Mail End GENSRT.ANS - Generic Menu Template Start |TI - Menu Title GENMID.ANS - Generic Menu Template Middle (Limit: 2048 bytes) |K? - Keys for option ? in the line |D? - Description for option ? in the line GENEND.ANS - Generic Menu Template End (For more information on generic menus, see that section of the documentation.) SECTION 10: MAKING STANDARD ANSIS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ When making the animated statistic screens, such as a new Main User Stat screen, a few simple rules must be followed. Screens should be made in this manner to insure that they will work correctly with Oblivion/2. These are the instructions to make a non-animated status screen. Animated Status screens require a bit more work and will require maintenance if they are not correctly made. To make Stat Screens w/o Complex Animations, follow these steps: 1] Draw Basic Screen. 2] Put Thedraw into ANIMATION Mode. And when prompted to select scanning method, use "TOP" (Others may work, but this is standard.) 3] Add the Appropriate MCI Codes, some external screens use the |xx codes and others use the %xx codes. Make sure you use the right ones. 4] After you've finished adding the MCI Codes, Save Animation in Ansi file format. Select Clear Screen, and Maximum line length to 255. Again, other numbers work, but this is standard. If your MCI codes seem out of place (ie: The stat isn't showing up where I put the MCI code for it), this could be one of two things. 1] |xx codes were used instead of %xx and vice versa. 2] Thedraw has expanded the MCI codes and Oblivion/2 cannot recognize them. If you used the right type of MCI codes, chances are that your problem is #2. Thedraw has a nasty habit of expanding MCI codes to more than 3 letters, therefore making them unrecognizable to Oblivion/2. There is a solution to this, ANSITRAN.EXE was written by Darkened Enmity to combat this problem. It is included in the distribution ZIP. Here are the instructions for using this utility: 1] Save ANSI in 80 character per line mode. With whatever preparation you've previously chosen. 2] Run ANSITRAN filename to correct the MCI bug. Another Screen that requires Attention is CONFSCR.ANS Use the appropriate |xx codes for this screen, but there is a difference in this screen than in others. When making your ansi, you MUST make the Color Bar. Use Ansi Block Characters to make the bar. ALL COLORS 0-15 must be in this bar if you want it to work correctly. After you have made the main ansi with the color bar, put it into Top Scan Animation. Add the |xx codes. When you are adding the |CB code (|CB is color bar), put this code OVER the Black on Black Box. It will look a bit like this. 0123456789ABCDE (You'll have boxes, numbers are used only for example) |CB go right over 0,1, and 2. An example will be provided for you. SECTION 11: MCI CODES / SYSOP CONFIGURABLE TEXTFILES ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ STANDARD CODES: All preceeded with % UN Handle RN Real Name PN Phone Number AD Address LO Location UC UserNote UL Level FL File level FP File Points UK Uploaded K DK Downloaded K UP Uploads DN Downloads PS Posts CS Calls TL Time Left NF New Files NP New Posts CR Connect Rate TT Daily Time Limit LC Last Caller TC Total Calls CT Calls Today FT Files Uploadded or Added Today PT Messages Posts Today NT New Users Today UU User Number BN Board Name SN Sysop Name DT Date TM Time SS Current Status Screen Library Name MS Current Menu Library Name PC Post/Call Ratio NR U/D Ratio KR U/D K Ratio LD Last On Date UA Makes anything below it unabortable. Use it for screens that you want to force users to see. CA Current Area CB Current Base DU Days until expiration NN Node Number PA Pauses the screen VN Version Number VD Version Date TF Total Files TP Total Posts CF Current File Conference CM Current Message Conference ANSIS IN STATUS SCREEN LIBRARIES: BCHANGE.ANS - Message Base Changing Ansi |SN - Base Name |SS - Base Sponsor |NM - Number of Messages |UP - Number of Posts you made |LR - Last Read |DT - Date |TI - Time HDR.ANS - Message |HM - Header Message |LH - Repeats next character for as many characters there are in the header message |CC - Repeats next character for as many characters as are needed such that four |CC and |HM fill a line. |CH - Displays a centered header message HEADER.ANS - Message Header |BN - Base Name |RT - Message to which current is a reply |MN - Message Number |OU - Total Messages |TL - Title |UN - Poster's Note |FM - Poster's Name |DT - Date Posted |TI - Time Posted |TO - Sent To |ST - Status CONFSCR.ANS - User Config Screen |CB - Color Bar Starting |FS - Full Screen Editor Toggle |PL - Page Length |DP - Pause |AD - Address |LC - Location |RC - Regular Color |PC - Prompt Color |IC - Input Color |VC - Inverse Color |SC - Status Color |BC - Box Color |CP - Current Prompt |EP - Emulation |CM - Current Menu |CS - Current Status Screen |RR - Reply Reading |UN - User Note |YN - Yes No Bars |RM - Redisplay Message |SF - Scrollable File Listing &xy - X = User flag. Y = Key to toggle flag. - With this code, you can add in your own configuration - options. FCONFIGS.ANS - File List Config Screen |O1 - Option 1 - Status Points |O2 - Option 2 - Points |O3 - Option 3 - Size |O4 - Option 4 - Date Uploaded |O5 - Option 5 - Downloads |O6 - Option 6 - Uploader |O7 - Option 7 - File Description |US - Used Space |EX - Example FSEHEAD.ANS - Full Screen Editor Header |TI - Title |ST - Send To |AN - Anonymous |AU - Autosig |DT - Date |TM - Time SUBSSTAR.ANS - Base Listing Start SUBSMID.ANS - Base Listing Middle |AN - Base Number |BN - Base Name |SS - Sponsor SUBSEND.ANS - Base Listing End FHEADER.ANS - File List Header |FH - Line of Information STATUS.ANS - User's Status Standard Codes FILESTAT.ANS - User's File Status Standard Codes USERSTAT.ANS - User's Stats Standard Codes AREASTAR.ANS - File Area Listing Start AREAMID.ANS - File Area Listing Middle |AN - Area Number |AI - Area Name |AS - Area Sponsor AREAEND.ANS - File Area Listing End NEWSHEAD.ANS - News Header |BN - Base Name |RT - Message to which current is a reply |MN - Message Number |OU - Total Messages |TL - Title |UN - Poster's Note |FM - Poster's Name |DT - Date Posted |TI - Time Posted |TO - Sent To |ST - Status USERSTAR.ANS - User Listing Start USERMID.ANS - User Listing Middle |UH - User Handle |LE - Level |UN - User Note |AC - Area Code |LC - Last Call USEREND.ANS - User Listing End LASTSRT.ANS - Recent Callers Start LASTMID.ANS - Recent Callers Middle |UH - User Handle |DO - Date On |TO - Time On |BR - Baud Rate LASTEND.ANS - Recent Callers End OTHER: (Not in STAT libraries) SYSPASS.ANS - System Password Ansi |PP - Place to prompt for password |BP - Place to put any error messages USERLOG.ANS - Username Ansi |NP - Place to prompt for username |PP - Place to prompt for password |QP - Place to prompt 'Use xx for quicker login' |IP - Place to prompt 'Invalid User name' QWKUP.ANS - QWK - Upload REP Packet/Process Posts ANSI |BP - Message Base |SP - Message Sent To |TI - Title of Message |OP - Operation Messages (IE: Echomail post etc..) QWKDN.ANS - QWK - Download QWK Packet/Archive Packet ANSI Note: All Light MCI Codes will blink until that operation ends. : For ease, usually codes |B1 and |B2 are placed adjacent. |L1 - Light #1 - Creating Control File |L2 - Light #2 - Creating Door Information File |L3 - Light #3 - Conference Light |L4 - Light #4 - Message Base Light |L5 - Light #5 - Post Information Light |L6 - Light #6 - Archiving Mail Packet Light |CP - Current Conference # |BP - Current Message Base |TP - Total Posts in Message Base |NP - New Posts in Message Base |EP - End - Place Where Cursor Goes After Processing |B1 - Location of Bar + Color of Blocks as they Fill |B2 - Color of Background of Bar SYSSTAT.ANS - System Statistics Screen (This screen just uses any standard % MCI codes you want) FILEINFO.ANS - File Information Screen |FN - Filename |UL - Uploader |FP - File Points |TD - Times Downloaded |SK - File Size (in bytes) |FK - File Size (in kilobytes) Template: TOPTEN-??.ANS --- ?? = the following: TOP-1.ANS - Top ten best uploaders TOP-2.ANS - Top ten worst uploaders TOP-3.ANS - Top ten best downloaders TOP-4.ANS - Top ten worst downloaders TOP-5.ANS - Top ten best Post/Call ratios TOP-6.ANS - Top ten worst Post Call ratios TOP-7.ANS - Top ten best uploaders in K TOP-8.ANS - Top ten worst uploaders in K TOP-9.ANS - Top ten best downloaders in K TOP-10.ANS - Top ten worst downloaders in K TOP-11.ANS - Top ten best message posters TOP-12.ANS - Top ten worst message posters TOP-13.ANS - Top ten best callers TOP-14.ANS - Top ten worst callers TOP-XX.ANS must be in the following format. MCI Codes as follows: |TN - Topten Name |N1 - User name for position #1 |V1 - Value for user #1 |B1 - Bar for user #1 |N2 - User name for position #2 |V2 - Value for user #2 |B2 - Bar for user #2 |N3 - User name for position #3 |V3 - Value for user #3 |B3 - Bar for user #3 |N4 - User name for position #4 |V4 - Value for position #4 |B4 - Bar for user #4 |N5 - User name for position #5 |V5 - Value for user #5 |B5 - Bar for user #5 |N6 - User name for position #6 |V6 - Value for user #6 |B6 - Bar for user #6 |N7 - User name for position #7 |V7 - Value for user #7 |B7 - Bar for user #7 |N8 - User name for position #8 |V8 - Value for user #8 |B8 - Bar for user #8 |N9 - User name for position #9 |V9 - Value for user #9 |B9 - Bar for user #9 |N0 - User name for position #10 |V0 - Value for user #10 |B0 - Bar for user #10 EMAILHDR.ANS - E-Mail Header ANSI |FM - From |DT - Date |TM - Time |ST - Sent To |UN - Sender User Note |TI - Title FILE DESCRIPTION CONFIG MCI CODES: |DE - Main description line. |Dx - Extended description line. |TC - Size uncompressed. |CC - Size compressed. |UL - Uploader of file. |UD - Date of upload. |TM - Time of upload. PRINTED FILES: ALL use standard codes: NOTLEFT .ANS - No Time Left WELCOME .XXX - Welcome Screen EXPIRED .BBS - Account Expired SLOWBAUD.ANS - User's baud rate is too low and does not know lockout pass PRELOGON.ANS - Prelogon Screen TOONODE .ANS - User already on another node CHECKED .XXX - User checked for access, but has level less than zero XXX is a level less than 0 that the user has. PRINT .APP - User starts applying NUPBAD .APP - Does not know NUP BLACKLST.ANS - User in Blacklist LETTER .APP - Send letter to the sysop during application DONE .APP - User done applying ENOUGH .ANS - User paged more than the specified times GOODBYE .ANS - User logging off SUBS .XXX - User viewing message base listing where XXX is the conference ID, external listings are on, but repeat method is not. XFER .XXX - User viewing file area listing where XXX is the conference ID, external listings are on, but repeat method is not. (Conference ID's can be found in the Conference Editor) LINEMENU.ANS - Help Screen for the Line Editor ULCHECK.ANS - Upload checker display screen. SYSPASS.ANS - Ansi displayed when prompting for System Password USERLOG.ANS - Ansi displayed when prompting for user username and password. NUVDOWN.ANS - File displayed to a user when he is turned down by the new user voting committee. KICKOFF.ANS - File displayed to a user when the SysOp decides to kick him off using the ALT-Q key command. SECTION 12: CONFIGURABLE CHAT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Configurable Chat was added to allow for more configuration for the SysOp, therefore making his board different than anybody else's. You can make horizontal split screen chats, vertical ones, diagonal ones, or anything that pops into your head. To make a chat follow the following instructions: 1] Create the design for your chat, name this CHATDEF.ANS It will be placed in the TEXTFILE directory when you're all done. 2] Put CHATDEF.ANS into Animation Mode, and use TOP Scan. 3] You must now create the "Margins" for the SysOp side of the chat, and the user's side of the chat. To do this, you'll need some MCI codes. For the left border of each line of the SysOp's side, You use ^xx, and for the right margin of the SysOp's type, use &xx. Do the same for the user side. Here are the codes for the user side, `xx for the left, and ~xx for the right margin. These MCI codes will tell Oblivion/2 where to wordwrap each line. Here is an example Horizontal Split Screen Chat (Non-animated, of course). This will help you to get the idea of what you must do. ^01 &01 ^02 &02 ÄÄÄÄÄÄÄÄ|SNÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄSplit Screen ChatÄÄÄ|UNÄÄÄÄÄÄÄÄÄÄÄ `01 ~01 `02 ~02 As you can see, the start MCI code will tell the program where to start typing, and the end MCI code will tell the program where to wordwrap. If you notice, the xx has been replaced by numbers. Each line must have a number, so Line 01 will wordwrap onto Line 02. So, don't mix up the numbers or you'll have a REAL MESS! If you notice in the example, the end MCI codes have been placed right at the end of the line. This is because the wordwrap starts where the MCI code starts. Placing them as they are above will prevent any problems that could arise. Place them in that fashion when you make your own. Another thing to notice is the |SN and |UN. |SN is the MCI code for the SysOp Name, and |UN is the pipe code for the current user name. These are NOT required in your screen. So if you want to play some kind of game with the user, you can do that too. This is an example of a vertical chat screen, if you want to do one of those instead of the horizontal shown above: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ|SNÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ|UNÄÄÄÄÄÄÄÄÄÄÄ ^01 &01`01 ~01 ^02 &02`02 ~02 ^03 &03`03 ~03 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ In the user side, the lines `01, `02, `03 should be one space to the left. This will become obvious when you animate the screen in thedraw. The reason being that the user's type starts at the `xx code. You want to give the user the most typing he can get, so you want to start close to the middle line. Notice the SysOp side. Look at the &xx codes. Notice where I put them. The SysOp's type will end on the space where the &xx begins. To give the SysOp maximum typing, I put the codes right over the middle line. Remember, you won't overwrite this line because you'll animate the codes in using TheDraw. 4] Save the Screen, and use the ANSITRAN.EXE utility if it doesn't show up properly. See the docs of ANSITRAN for more info. There are a few options that SysOps and users can use in the chat mode: /TYPE - Allows the SysOp to type any file in the textfile directory. /PAGE - In one line chat, /PAGE will page the SysOp. In split screen chat, /PAGE will page the user. SECTION 13: MENU EDITOR ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Introduction............................... "-" Control Commands....................... "&" MultiNode Commands..................... "{" Matrix Commands........................ "!" Global Newscan Commands................ "[" Main Menu Commands..................... "." Door Commands.......................... "*" SysOp Commands......................... "^" New User Voting Commands............... "C" Conference Editor Commands............. "D" Data Commands.......................... "E" Email Commands......................... "F" File Commands.......................... "J" Join Conference Commands............... "M" Message Commands....................... "Q" QWKMail Commands....................... "R" Top Ten Listing Commands............... "S" Message Sponsor Commands............... "T" File Sponsor Commands.................. "V" Voting Booth Commands.................. "+" Color Setting Commands................. Menu Editor Function Over-View............. Introduction Oblivion/2 2.0 Menu Editor. This is, in my opinion, the best feature ever offered in any BBS software. The menu editor will allow you to modify, customize, or make a totaly unique menu system for your BBS. The Menu Editor is a very simple yet uses a complex system of commands that can be used individualy or stacked. The commands can be restricted to access levels, flags, conferences, age, and a variety other levels. Due to the fact that just about everything in Oblivion/2 2.0 can be configured via the Menu Editor, it's pretty much impossible for us to show you examples of how to use every command (Not to mention I doubt anybody would actuly print 25 meg of documentation). Instead we've put together a few samples of what can be done, and a descriptive list of all the available commands. After that is's up to you and your imagination. Have fun with it & take your time. ------------------------------------------------------------ "-" = Control Commands ------------------------------------------------------------ Command Key: -A Function : Writes CString into the Header (Use With : Stacking) CString : Command Key: -B Function : Sets the Bad Prompt to CString CString : Command Key: -C Function : Clears The FailFlag CString : None Command Key: -D Function : Sends CString to the modem. CString : ~ = .5 sec delay, | = Return, ^X = Ctrl-X : Note: Make sure to put your modem back : into online mode after you execute this : command, otherwise your BBS will be hung. : Use the ATO command to do this. Also, make : sure to use the +++ escape sequence to put : the modem into command mode. Otherwise, your : commands won't get to the modem. Command Key: -E Function : Writes Characters with ^ control char support CString : Command Key: -F Function : Displays A Text Or ANSi File CString : A MS-DOS filename. This command will display a text file located in the TEXTFILE directory. Command Key: -G Function : Goes in the x,y position specified in the : CString CString : X,Y Command Key: -H Function : Gets String with Hidden Input CString : #