official void documentation by irrational 01/16/98 - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - BBS Internet Email Insurrection Alpha irrational@most-wanted.com 905-ASK-SUM1 (specify topic of email) Irrational (and who you are) ------------------------------------------------------------------------------ Table Of Contents - By Section ------------------------------------------------------------------------------ Contents Section Legal notice and license ..................... i What is Void? ................................ ii What's Functioning, What's Not ............... iii Preface ...................................... 1 Minimum Hardware Requirements .............. 1.1 Software Requirements ...................... 1.2 Recommended Equipment and Software ......... 1.3 Acknowledgements ............................. 2 Source Code .................................. 3 Installation ................................. 4 The Main Distribution Archive .............. 4.1 Installation ............................... 4.2 Message Command Interpreters ................. 5 Pipe Code System ........................... 5.1 Screen control codes ..................... 5.1.1 Number Color Codes ....................... 5.1.2 Percent Code System ........................ 5.2 .......................................... 5.2.1 Ascii Chart .................................. Appendix A Ansi Escape Codes ............................ Appendix B Runtime Errors ............................... Appendix C DOS Errors ................................. Appendix C.1 I/O Errors ................................. Appendix C.2 Critical Errors ............................ Appendix C.3 Fatal Errors ............................... Appendix C.4 ------------------------------------------------------------------------------ [section i] Legal notice and license ------------------------------------------------------------------------------ The VOiD Bulletin Board Software and information attached hereto, hereafter referred to as VOiD, is copyright 1997 by the VOiD Development Team [VDT]. VOiD BBS software is considered freeware and is free of charge for non commercial use. Unauthorized selling, distribution or publication without written permission from the author is strictly prohibited. Any alteration of included files except for configuration files is strictly prohibited. VOiD may NOT be modified in any form, for any reason, including but not limited to, decompiling, disassembling, or reverse engineering of this program. If a user has been caught doing any modifying the original software, you you will be persecuted upon discovery, and will suffer the consequences of you're mistakes. This software has been bound by the copyright laws, and any copy not in the original form will be destroyed if at all possible. You may freely distribute and copy VOiD BBS software provided that you do not alter the original archive as produced by VDT, and that no money is charged for it. VOiD BBS software is 100% cripplefree. If you like the program and decide to run it, how about showing your gratitude for all the hard work we have put into this program! Neither VDT or any of the members can be held responsible for ANY damages caused by VOiD BBS software or any of our other productions. You are using them at your own risk. Lastly, VOiD is ALPHA SOFTWARE! This means that old versions may no longer be supported at ANY GIVEN TIME. We try to include conversion programs (if needed) with each new version of VOiD; but we don't save them from old versions. Beta software also means versions are released with bugs, but hopefully the features outweigh them (and we attempt to keep bugs to a minimum). All trademarks and copyrights are owned by their respective owners, even if not acknowledged. No infringements are intended. ------------------------------------------------------------------------------ [section ii] What is Void? ------------------------------------------------------------------------------ The Void Bulletin Board System package was programmed as a hobby of mine (Irrational). It is a well programmed package written and compiled using the Turbo Pascal v7.0 compiler by Borland International. Since it had began, it has grown significantly. Hopefully, when this software is released in a standard version, people will create third party software to support the Void BBS package. This package is very stable, and can only be configured by external utilities. This makes it almost impossible for a hacker to modify your data files, unless you have a menu command to execute the utility. Even through this way, you will still need to enter your SysOp password to get access to the functions. ------------------------------------------------------------------------------ [section iii] What's Functioning, What's Not ------------------------------------------------------------------------------ The Void BBS package is in it's very preliminary stages, therefore the package may be lacking features. Here's a short list of what's functioning. * MCI Codes * Menu System * Ansi Parser * Oneliners * Configurable strings * PCBoard colour codes * Time Bank What's not functioning. * File system * Message system * Dropfiles * YOU suggest something! What will not be implemented. * IEMSI. It can be useful, but can be dangerous * User number logons. A BIG hassle if the datafile is packed. * Internal Telnet stuff. Just use a free telnet server thing. ------------------------------------------------------------------------------ [section 1] Preface ------------------------------------------------------------------------------ Void BBS is a well programmed BBS package fully written by Irrational. This software is not only unique, but you can also configure this to your heart's content. 1.1 Minimum Hardware Requirements - 80286 or above - Hard disk drive with at least 2 megabytes free - 512K of free memory - EGA or VGA colour monitor - Modem (300bps or greater) 1.2 Software Requirements - MS-DOS v3.2+ or compatible - A FOSSIL driver such as X00 or BNU 1.3 Recommended Equipment and Software - 80486 or above for multinode usage - A 14400bps modem or greater - 10 megabytes or more of free space - Archive utilities (minimum of PKZIP/PKUNZIP) - An external X/Y/Zmodem protocol driver such as CE-XYZ - A front-end mailer (such as FrontDoor or InterMail) - AcidDraw, an ANSI drawing program - EMS/XMS memory for overlays and memory image swapping - A dedicated phone line ------------------------------------------------------------------------------ [section 2] Acknowledgements ------------------------------------------------------------------------------ Greets go out to all the people that made this BBS package possible: Alan Caruana/IceSoft Software - Provided an excellent ANSI parser. Ralf Brown - Provided modern swapping routines! SWAG - For some source snippets. and everyone else I forgot to mention ... (sorry!) ------------------------------------------------------------------------------ [section 3] Source Code ------------------------------------------------------------------------------ The authors of this BBS package will not give the source code to any- one, under any circumstances. We are not going to make the same mistake as many BBS authors have. The records for this BBS package will be released, so people can wri- te utilities. Look for them under this filename format: VOIDDxxx.zip where xxx corresponds to the version number. ------------------------------------------------------------------------------ [section 4] Installation ------------------------------------------------------------------------------ Included in the package are several files. This document will walk you through the installation process. All pathnames and directories sug- gested here are not required. You can change them as you wish, but the examples here will remain constant. In the examples, it will be assumed that you will install Void on drive C. 4.1 The Main Distribution Archive Unzip the main distribution archive into the directory you wish to run your BBS from (this is "main BBS directory" you decided on earlier. ie: "C:\BBS"). Read any included files in the main BBS archive, and follow any last minute instructions. The main distribution archive often contains a few other files. VOIDINIT.EXE - Initialization program. This program will install Void which includes creating directories and data files. Other DOC/TXT/NFO files - Miscellaneous information about Void. Always look over the included files, but when you are creating a new BBS, you shouldn't need to run any conversions (unless any last minute notes specifically address new systems). 4.2 Installation Run the VOIDINIT program. Follow all the on-screen prompts and directions. You can select any directory names you want, but we'll use the following for examples (all under C:\BBS): ...\ANSI - Text and *.ANS files ...\DATA - Void's main data file directory ...\MENU - Void's configurable menu directory ...\SWAP - Void's swap directory Your Void BBS should now be operational. You should keep the program VOIDINIT because it can be a file recreation utility for corrupt status files. ------------------------------------------------------------------------------ [section 5] MCI (Message Command Interpreters) ------------------------------------------------------------------------------ MCI codes are the perfect way to display a user's information from a text file or if you just want to change colours. They can be used in many ways to spice up your board, or just make the perfect touch of customization. MCI is a powerful system that allows you to display system and user information in prompts, command lines, and text messages. 5.1 Pipe Code System The pipe codes mainly deal with the display and colors. These codes don't generate information and usually will perform some type of function. Available throughout the BBS, the codes are entered with a pipe ("|") followed by a 2 character code. 5.1.1 Screen control codes |!S Save cursor position. |!U Restore cursor position. |CD Move the cursor down one row. |CL Move the cursor one column to the left. |CR Move the cursor one column to the right. |CS Clear the screen. |CU Move the cursor up one row. |CZ Clear to end of line (fast w/ansi code). |DH Delays 1/2 (half) second |DE Delays 3/4 (three-quarters) of a second. |DS Delays one (full) second |DM Delays for a millisecond |LF Linefeed and CR 5.1.2 Number Color Codes |00 Sets foreground color to black |01 Sets foreground color to blue |02 Sets foreground color to green |03 Sets foreground color to cyan |04 Sets foreground color to red |05 Sets foreground color to magenta |06 Sets foreground color to brown |07 Sets foreground color to light gray |08 Sets foreground color to dark gray |09 Sets foreground color to light blue |10 Sets foreground color to light green |11 Sets foreground color to light cyan |12 Sets foreground color to light red |13 Sets foreground color to light magenta |14 Sets foreground color to yellow |15 Sets foreground color to white |16 Sets background color to black |17 Sets background color to blue |18 Sets background color to green |19 Sets background color to cyan |20 Sets background color to red |21 Sets background color to magenta |22 Sets background color to brown |23 Sets background color to light gray ------------------------------------------------------------------------------ [appendix a] Ascii Chart ------------------------------------------------------------------------------ People have asked for a quick ASCII Chart. Here it is. To type the codes in, press ALT, then enter the code (ASCII Number) below on the Numeric Keypad, then release ALT. Characters 0 through 31 have been X'ed out to prevent the re-formating of the document while being printed. 000: X 027: X 054: 6 081: Q 108: l 135: 162: 189: 216: 243: 001: X 028: X 055: 7 082: R 109: m 136: 163: 190: 217: 244: 002: X 029: X 056: 8 083: S 110: n 137: 164: 191: 218: 245: 003: X 030: X 057: 9 084: T 111: o 138: 165: 192: 219: 246: 004: X 031: X 058: : 085: U 112: p 139: 166: 193: 220: 247: 005: X 032: 059: ; 086: V 113: q 140: 167: 194: 221: 248: 006: X 033: ! 060: < 087: W 114: r 141: 168: 195: 222: 249: 007: X 034: " 061: = 088: X 115: s 142: 169: 196: 223: 250: 008: X 035: # 062: > 089: Y 116: t 143: 170: 197: 224: 251: 009: X 036: $ 063: ? 090: Z 117: u 144: 171: 198: 225: 252: 010: X 037: % 064: @ 091: [ 118: v 145: 172: 199: 226: 253: 011: X 038: & 065: A 092: \ 119: w 146: 173: 200: 227: 254: 012: X 039: ' 066: B 093: ] 120: x 147: 174: 201: 228: 255: 013: X 040: ( 067: C 094: ^ 121: y 148: 175: 202: 229: 014: X 041: ) 068: D 095: _ 122: z 149: 176: 203: 230: 015: X 042: * 069: E 096: ` 123: { 150: 177: 204: 231: 016: X 043: + 070: F 097: a 124: | 151: 178: 205: 232: 017: X 044: , 071: G 098: b 125: } 152: 179: 206: 233: 018: X 045: - 072: H 099: c 126: ~ 153: 180: 207: 234: 019: X 046: . 073: I 100: d 127:  154: 181: 208: 235: 020: X 047: / 074: J 101: e 128: 155: 182: 209: 236: 021: X 048: 0 075: K 102: f 129: 156: 183: 210: 237: 022: X 049: 1 076: L 103: g 130: 157: 184: 211: 238: 023: X 050: 2 077: M 104: h 131: 158: 185: 212: 239: 024: X 051: 3 078: N 105: i 132: 159: 186: 213: 240: 025: X 052: 4 079: O 106: j 133: 160: 187: 214: 241: 026: X 053: 5 080: P 107: k 134: 161: 188: 215: 242: ------------------------------------------------------------------------------ [appendix b] Ansi Escape Codes ------------------------------------------------------------------------------ Using ANSI.SYS or another ANSI driver, the screen display colors and cursor movement can be controlled through the use of ANSI escape sequences. The format of an ANSI escape sequence is (alt-27) followed by a left bracket. The [ is then followed by one or a series of characters denoting the desired function. The following is a list of most commonly used ANSI escape sequences used for cursor and screen manipulation, where is the escape character. These commands are case sensitive. [y;xf Both of these commands will move the cursor to x,y, [y;xH where x is the column number and y is the line [#A This command will move the cursor up # lines. [#B This command will move the cursor down # lines. [#C This command will move the cursor right # columns. [#D This command will move the cursor left # columns. [s This command will save the current cursor position. [u This command will restore the cursor position saved using the [s command. [K This command will clear to the end of the line using the current text attribute colors. [#m This command will control the screen text attribute [#;#;#m colors. Each # is a separate m command, and many m commands many be "stacked" by separating them with a semicolon. The following are available commands: 0 All attributes off (light grey on black) 1 Bold on (ie: dark blue would become light blue, brown would become yellow, black would become dark grey, etc.) 4 Underscore (monochrome display adapters only) 5 Blinking on 7 Reverse video on 8 Concealed on Foreground colors 30 Black (w/bold: Dark Grey) 31 Red (w/bold: Light Red) 32 Green (w/bold: Light Green) 33 Brown (w/bold: Yellow) 34 Blue (w/bold: Light Blue) 35 Magenta (w/bold: Light Magenta) 36 Cyan (w/bold: Light Cyan) 37 Light Grey (w/bold: White) Background colors 40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White Parameters 30 through 47 meet the ISO 6429 standard. [2J This command will clear the screen using the current text attribute colors and move the cursor to 1,1. ------------------------------------------------------------------------------ [appendix c] Run-Time Errors ------------------------------------------------------------------------------ Certain errors during the execution can cause Void to exit back to DOS. Whenever a run-time error occurs, it is usually a bug in Void. Void is not supposed to have run-time errors occurring, but certain external factors can also cause Void to exit with an error. The run-time errors are divided into four categories: DOS errors 1-99, I/O errors 100-149, critical errors 150-199, and fatal errors 200- 255. The following is a listing of the most common run-time errors. You might be able to figure out the problem and correct it. If you can't, don't get discouraged. Just contact one of the authors, and they'll be happy to help you through any problem you might encounter. C.1 DOS Errors 1 Insufficient function number 2 File not found If this occurs at startup, you should be able to determine the missing file by noting the last file attempted to be initialized. You can try and recreate the missing file with the INIT program. 3 Path not found 4 Too many open files This error may indicate that your FILES=xx entry in your CONFIG.SYS is either non-existent or the value is too low. Add or modify the line to read "FILES=30". 5 File access denied This error most often indicates a file sharing error or a bug in Void. 6 Invalid file handle This error is reported if an invalid file handle is passed to a DOS system call. It should never occur, but if it does, it is an indication that the file variable is somehow trashed, perhaps from you editing a file that Void has opened. 12 Invalid file access code 15 Invalid drive number 16 Cannot remove current directory 17 Cannot rename across drives 18 No more files C.2 I/O Errors 100 Disk read error This error is reported if Void attempts to read past the end of a file. It is a common error in development versions and usually means a bug in Void. 101 Disk write error This error is reported if the disk becomes full or another unknown error occurs. 102 File not assigned. 103 File not open 104 File not open for input 105 File not open for output 106 Invalid numeric format C.3 Critical Errors These errors usually indicate a hardware problem. Double-check your system for faults especially your drives. 150 Disk is write-protected This error has been known to appear sporadically when running under Windows 95. A cause is yet unknown. 151 Unknown unit 152 Drive not ready 154 CRC error in data 156 Disk seek error 157 Unknown media type 158 Sector not found 159 Printer out of paper 160 Device write fault 161 Device read fault 162 Hardware failure C.4 Fatal Errors These errors always immediately terminate the program. 200 Division by zero 201 Range check error 202 Stack overflow error 203 Heap overflow error 204 Invalid pointer operation 205 Floating point overflow 206 Floating point underflow 207 Invalid floating point operation 208 Overlay manager not installed 209 Overlay file read error This can occur if you use a hard disk organizer or defragmenter such as Norton Utilities' Speed Disk or PC Tools' Compress as a DOS Shell event, because these will probably move the overlay file somewhere else on the disk. The solution is to run these events as External events. 210 Object not initialized 211 Call to abstract method 212 Stream registration error 213 Collection index out of range 214 Collection overflow error 215 Arithmetic overflow error 216 General protection fault ------------------------------------------------------------------------------ [appendix d] Sample Modem Configurations ------------------------------------------------------------------------------ This section is very short because of the lack of information about other modems. If you wish to make a contribution to this section, please contact one of the authors. Zoom 28.8k v.Fast Init string : AT&F&C1&D2M0E0W2V1S0=0 Answer string : ATA Hangup string : ATH0 Offhook string: ATM0H1 USRobotics 14.4k Sportster Init string : AT&F1 M0 S11=38 S0=0 Answer string : ATA Hangup string : ATH0 Offhook string: ATM0H1 Generic 14400 baud Init string : AT&FE0M0Q0V1W2X4&C1&D2S0=0S95=1 Answer string : ATA Hangup string : ATH0 Offhook string: ATM0H1 Generic 2400 baud Init string : ATV1S0=0&C1&D2M0E0 Answer string : ATA Hangup string : ATH0 Offhook string: ATM0H1 - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD - VOiD.NFO (c) copyright VDT 1998