Tron BBS System V0.67 Copyright (C) 1994-1996 by Arend-Paul Spijkermann Software and documentation written by A.Paul Spijkerman All rights reserved All information in this documentation is subject to change without prior notice ======( Intro )==================================================== Tron is a multi line BBS system with Files and Echomail capabilities. It can poll with EMSI to other systems and spawn Fax programmas. It can be controlled from dos by scripts and a cron utility. It can run doors and display RIPscrip graphics locally. ======( Features )================================================= See the 'Features' text file. ======( System Hardware and Software Requirements )================ - A Commodore Amiga Computer - AmigaDOS Release 2 or higher - An IBM.font would be usefull - Xprzmodem.library V3.5 - Xprzedzap.library V3.5 Optional: - A cron utility for example CyberCron - More Xpr file transfer librarys - Archivers like LHA, LZX, ZIP, ZOO, ARJ and ARC - An ANSI editor for example BBS-draw - Paragon TimeBankDoor - nullmodem.device to call a node without using modems or to poll yourself with your point package ======( License )=================================================== Tron is offered to you under the concepts of ShareWare. You can use it for an evaluation period of up to 30 days without paying any charge. If you are going to use Tron after the evaluation period, you should register. (which means that if you continue to use it you'll have to pay for it) If you register you will recieve a full working version, which is registered to you personally. LICENSE You are granted a limited license to evaluate this software for a 30 day period on a private, non-commercial basis only. You must decide at the termination of this evaluation period to register this product if you plan to continue using it or to cease all use otherwise. SHAREWARE This program is made available through the concept of "Shareware" which is a form of distribution that gives you the opportunity to try a piece of software before you buy it. It is not now, nor will it ever be regarded as Public Domain or otherwise "free" software. The programs and files in this distribution are Copyright (c) Paul Spijkerman. They may be freely distributed as long as no more than a nominal fee is charged to cover time and copying costs. REGISTERING If you want to register you will have to send me Dfl 120,--. (which is about $ 75 US Dollars on 1 Aug 1995) When you register , I will send you a disc with the latest version and a personalized keyfile. This keyfile will unlock the evaluation version so all features are available without restrictions. When you're a registered user, updates are available on my BBS free of costs and will be circulated. Remember, registration is needed to keep the development of future enhancements to Tron active. Without your support the product cannot continue to evolve. If you live in holland the easiest methode is probably to make a transfer to my account on the RABO BANK and mail me the registration.form RABO BANK Account number 311202179. Other methodes would be Cash (at your own risk), a postal money order, a wire bank transfer or a EuroCheck (only in Dfl!) are suggested. Foreign checks are *NOT* accepted! When you transfer the money please remember that I cannot accept any handling costs. You must also transfer the money in Dfl (Dutch Guilders) and not in your own currency. Please fill in the registration.form file to speed things up. LICENSE (Inspired by the TrapToss license) 1. This license applies to the product called "Tron", a set of programs for the Amiga computer, published by Paul Spijkerman under the concepts of ShareWare, and the accompanying documentation, example files and anything else that comes with the original distribution. The terms "Programs" and "Tron" below, refer to this product. The licensee is addressed as "you". 2. You may copy and distribute verbatim copies of the programs' executable code and documentation as you receive it, in any medium, provided that you conspicuously and appropriately publish only the original, unmodified programs, with all copyright notices and disclaimers of warranty intact and including all the accompanying documentation, example files and anything else that came with the original. 3. You may not copy and/or distribute these programs without the accompanying documentation and other additional files that came with the original. You may not copy and/or distribute modified versions of these programs. 4. You may not copy, modify, sublicense, distribute or transfer the programs except as expressly provided under this license. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the programs is void, and will automatically terminate your rights to use the programs under this license. However, parties who have received copies, or rights to use copies, from you under this license will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing and/or using the programs you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the programs, the recipient automatically receives a license from the original licensor to copy, distribute and/or use the programs subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. You may not disassemble, decompile, re-source or otherwise reverse engineer the programs. 8. You may use the programs for a period of up to 30 days for evaluation. After that, you have to register. 9. If you wish to incorporate parts of the programs into other programs, write to the author to ask for permission. 10. You agree to cease distributing the programs and data involved if requested to do so by the author. 11. You may charge a fee to recover distribution costs. The fee for diskette distribution may not be more than the cost to obtain a public domain diskette from Fred Fish. ======( Contacting me )============================================= For comments, suggestions or bug reports write to: A.Paul Spijkerman Bernhard Fabritiuslaan 19 9462 SM Gasselte,DR The Netherlands, Europe Any sign of intelligent life welcome ! (preferably in English, Dutch or German) Or visit the Tron homepage on the World Wide Web !! http://www.tip.nl/users/frank.smit ---------------------------------------------------------------------- Or call my BBS : +31-599-564696 24 Hours V32B/V42B AMY : 39:155/300 NLA : 14:103/300 DAN : 55:1100/1111 ======( Disclaimer )================================================ THERE IS NO WARRANTY FOR THE PROGRAMS, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAMS "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS WITH YOU. SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAMS AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. No warranty, either express or implied, is made with respect to the fitness or merchantability of Tron. Paul Spijkerman (referred to as "the author"), reserves the right to not develop any future versions of Tron. The author will try to make a good faith attempt at correcting any problems if any are discovered, but is in no way required, nor bound to correct them. The author neither assumes nor accepts any responsibility for the use or misuse of these programs. He also will not be held liable for damages due to loss of profit or any other damages arising out of the use, or inability to use these programs. The author will not be liable for any damage arising from the failure of these programs to perform as described, or any destruction of other programs or data residing on a system attempting to run the programs. While I know of no damaging errors, the user of these programs uses it at his or her own risk. While considerable effort has been made to provide you with a reliable product, there is no guarantee that this program is 100% "bug-free". Additionally, this disclaimer does not guarantee future versions of this product, but maintenance releases may be made available if and when feasible. ======( Acknowledgements )========================================== For all their testing, ideas and patience : Frank Smit Harry Dicker Henk Oosterwold Sjoerd-Hidde Kuperus special thanks must go to: Frank Smit for all his mail testing and pinpointing problems. Harry Dicker for finding and solving Fax problems. ======( About the system )========================================== What is Tron ? Tron is a multiline BBS package with FileCatalog and echomail capabilities and is able to run CLidoors. (For more features look at 'options' doc) Multiline means that you can start multiple BBS 'nodes' (with each a unique node number). These nodes can run localy or be connected to a serial port. Also multiple user can use the same 'resources' at once, this means that for instance 2 users can look at the same filecatalog. Echomail means that the software is capable of exchanging electronic mail with other BBS systems. To achieve this the software uses the 'fido standards'. Clidoors are expansions of the system, they are programmas which can range from games to questionaires. They are programmas which are capabel of running in a shell which is emulated by the BBS programm. The BBS system consists of a number of programms and data files. Configuring at the moment consists of editing text files in the configuration directory with your favorite editor. The system expects an assign 'tron:' to the directory with all the data to run the BBS. You could for example make a directory 'dh0:tron/' with all the files and directories, the name and place are not important as long as there is an assign to it. In this directory the following directories are expected: (these are present in the distribution package) InBound <- This is where incoming information goes with mail-connections. OutBound <- This is the Outgoing mail. NodeLists <- Nodelists with the data of other BBSes. cfg <- The configuration files of the BBS-system. data <- This is where internal data for the system is kept. docs <- Textfiles with FI command lists ans util. descriptions. doors <- Directories with 'external programms' (doors). filecat <- This is where the file database is kept. files <- This is where the downloadable files are (default). icons <- RIP graphic icons log <- All the logs of the system. mail <- This is where the message bases are (default). menus <- These are the 'menu programms'. menutext <- This is where the screens of the menus are. samples <- Sound samples for paging and Ctrl-G scripts <- All sorts of scripts to control the BBS. text <- All kind of screens for use in the BBS. upload <- Temporary place for processing Uploaded files. users <- This is where the User database/information is. utils <- Most of the executables of the BBS system. KilledFiles <- This is where files go when they are removed. Furthermore there are in the distribution archive in de tron: directory are few little texts/scripts: important <- Information on docs and how to startup. startup <- A little sample startup script. down <- A script to exit the system. Sample startup script: (look at tron:startup for more features) ======================================== stack 40000 assign tron: sys:tron assign doors: tron:doors path tron:utils tron:scripts add echo "Starting up Tron BBS nodes 0 & 1" echo "" run tron:utils/tronRM wait 2 run tron:utils/bbs -0 -i run tron:utils/bbs -1 -i -d You don't realy need 40K of stack , but i run a lot of nodes and programms to test things. The last 2 lines , are to startup the nodes. Note that there are a few flags used. The -i flag means iconized. This node will only use a tiny window until you deIonize it by clicking on it. The -d flag means Debug, in this mode a lot more information is written to the log file , including all modem result lines. The 'TronRM' programm must also be started before any other Tron utility is used otherwise they probably won't do a thing. This programm is the 'Resource Manager' and regulates all acces to the data files, thanks to this more than 1 programm can acces the same file at the same time. This is needed so you can read mail at the same time as the mail processor is running, or 2 users can browse through the same file area. Also a user can't log on to two nodes at ones because the resource manager won't allow it. Also this programm has a 'monitor' window which shows all kinds of important information, like what a node is doing, a list of last callers and statistical data. This window can be Iconized if you don't need it at the moment. To simplify testing nodes 6 & 7 are default configured to use the 'nullmodem.device' .. this is a public domain device which is available on a lot of BBS systems. This device emulates 2 modems and a phone line, so you can call a node without using an actual phone line. This is also very usefull if you want to use a point package to read and write mail, you just run node 6 and configure your point packet to node 7 of the nullmodem.device. The system is for a very big part configurable to your own wishes/likes, this includes the menus which are completely configurable. In a menu you can call other menus, so you can expand it almost infinitly. The first menu which is started when someone 'logs in' is the 'start.menu'. To make a menu is very easy , they consist of readable text files with commands and a pascal like structure. Before you can use a menu you have to 'compile' it, this is done by calling the 'menu' utility which checks your menus on errors and makes a binary file from it. The text files are calles 'source' and the result of the menu compiler are the menus. You find the sources of the menus in the 'tron:menus/' directory, this also consist a subdirectory for the compiled menus. Compiling a menu: 'menu door.src' (compiles the 'door' menu) Wildcards are allowed: 'menu #?' (this compiles all menus) For more information on menus and menu commands look in the 'tron:docs/lists/' directory. This is a sample Menu file: ============================ ; This is the 'door.src' file Menu "door.menu" ;compiled menu is called 'door.menu' flags hotkeyable ;No return needed after a key level 0 - 255 , "Door.Ansi" ;for all levels 'Door.Ansi' screen prompt 0 , 0 - 255 , "|Door Menu : " prompt 1 , 0 - 255 , "|Door Menu : " BEGIN ; Start the command definitions Cmd "T" CliDoor "doors:xtetra/ctetra '~200'" EndCmd Cmd "C" , 0-255 CliDoor "tron:utils/conf '~200' ~50" EndCmd Cmd "S" , 0-255 PassWord "xxxxxxxxxxx" RemoteShell EndCmd Cmd "Q" , 0 - 255 GotoMenu "Main.Menu" ;Jump to an other menu EndCmd END To configure the system there are a number of text files in the 'tron:cfg/' directory: AKA.config <- All your 'NodeNumbers' for mail transfers. AreaFix.cfg <- Configuration to the Tron AreaFix AllFiles.cfg <- Configuration file for allfiles util. badnames.txt <- Config. to prevent users with bad names. bbstext-0.cfg <- To config texts in the BBS nodes. bbstext-1.cfg crontab <- Config for a (Unix-alike) 'Cron' Util. fileareas.cfg <- Config with the FileAreas. filenet.cfg <- Config for the 'Tick' Util. filenodes.cfg <- Nodes and passwords for 'Tick' Util frequest.cfg <- Config for requested files language.cfg <- List with languages or text sets (see bbstext). mail.cfg <- Export list with Message Areas. mailareas.cfg <- Config with the MessageAreas. nodelist.cfg <- List with the nodelists to use. origin.list <- for 'origin lines' in echomail. protocol.cfg <- config for Xpr.. transfer libraries questionair.cfg <- config for the questionair doors route.cfg <- Netmail route config. systems.cfg <- Passwords for mail exchange. templates.cfg <- Definitions of the user levels term.names <- names en tel.numbers for the terminal mode. tron-0.cfg <- Specific info voor node 0 en 1. tron-1.cfg tron-6.cfg <- Node 6 en 7 are configured for the tron-7.cfg Nullmodem.device (handy with testing) tronRM.cfg <- Config for the Resource Manager ttrimlogs.cfg <- Config for the Util to trim the logs Each node is in waiting mode controlled by a GUI interface with buttons, in stead of the buttons you can use the Function keys. When someone is logged in on a node most of the function keys have other functions : Function Keys : --------------- Un-Shifted Shifted F1 Chat F1 Toggle 'Sysop available' F2 Iconize F2 F3 +10 Mins F3 -10 Mins F4 AutoValidate a user (L:10) F4 F5 Capture F5 F6 Typefile F6 F7 Shell F7 F8 Edit user online F8 Edit User online (Stealth Mode) F9 Userdata in MenuBalk F9 MenuBalk OFF F10 (toggle) disable user F10 Disconnect Note that the F1 and F7 keys are mutual exclusive .. you can't start a shell in a chat. ======( Modem init. )============================================= You'll find the inititiation strings for the modem in the tron:cfg/tron-X.cfg for each node. Note that a lot of modems only can accept 40 characters at once in the buffer for strings. So if your init is longer you probably have to split it up in 2 or more strings. Also note that these strings are read to memory when you run the 'bbs' executable .. so changing the strings has no effect until you stop and run the 'bbs' executable. If you want to use GPFax to receive faxes while the BBS is online you have to edit the tron:startup script. All you have to do is remove the ';' for the lines that startup GPFax. When you now use tron:startup GPFax will startup and init te modem before the BBS nodes get online. You have to add something like 'AT+FAA=1' or '+FAA=1' to your BBS init string, this makes the modem look for faxes also if answering the phone. When a fax call is detected, the 'fax.script' will be executed to spawn a fax receive programm. Most modem also need the folowing in the initstring to receive faxes correctly: '+FCLASS=0' '+FLID='+31-xxxx-xxxxx' (Your phone number) '+FCR=1' '+FDCC=1,,0,2,0,0,0,5' If you have problems receiving faxes or you have only added '+FAA=1' to your init string .. you can use the 'fax.init' script. Most fax problems area caused by previous data calls, if you get a data call after GPFax has init the modem the above mentioned data will be erased from your modem, if you get a fax call after de data call .. you will probably receive nothing. When you call the 'fax.init' script it will use GPFax to init the modem again and fax receiving should be no problem. You should call 'fax.init' after each data call in the 'incoming.x', 'logout.x' and your poll scripts. Note that the fax init is only lost after a data call, an ATZ command to reset the modem is no problem. (with thanks to Harry Dicker who discovered after a lot of testing what caused the FAX-problems and came up with the cure) Tron can detect faxes by the "FAX" and "+FCON" connect strings, these are build on , but you can change the "FAX" connect to anything you want in the tron-X.cfg's. During normal data calls, Tron is expecting a connect string in one of the following styles: CONNECT 14400 CARRIER 14400 CONNECT 28800/ARQ CONNECT 28800/V42BIS It will use the baudrate and the compression indication to calculate de expected transfer times of files. So make sure you get the DTE speed when connecting. ======( RIP Graphics )============================================= RIPscrip (Remote Imaging Protocol Script Language) is a Graphical Script Language with wich you can produce all kind of graphical effects in your menus and even use Mouse Buttons or Mouse Areas to controll your BBS. Note that you have to enable RIPscrip processing with an ANSI-code or the RIP commands will be shown as normal text. ESC[1! Disables all RIPscrip processing. Any RIPscrip sequences are interpreted as raw text. ESC[2! Enabled RIPscrip processing. Any RIPscrip sequences will be parsed and processed. Folowing is an menu example to show a single RIP screen: Cmd "1" , 0-255 Print "esc[2!|" PrintFile "tron:text/tower.rip" More Print "esc[1!|" EndCmd (Replace 'esc' with the ANSI escape code) If you want to control a part of your BBS with RIPscrip screens you only switch back to ANSI after the last screen because after the last code the mouse clicks on RIP icons don't work, and the colors are switched back to ANSI colors. (RIPscrip uses the EGA color system with 16 colors from a palette from 64 colors, which differ from the ANSI colors) Also note that RIPscrip on PC's use a screen of 640 x 350 pixels (80 x 43) characters. So if you want to use the entire RIPscreen you have to use the Interlaced mode, if you don't need the bottom 94 pixels you can use the non-Interlaced mode.