WWIV v3.20 Copyright (C) 1986 by Wayne Bell NECESSARY EQUIPMENT: ==================== IBM-PC,XT,AT or compatible 256K or more of memory one hard disk (preferably 10 megs or more) Turbo Pascal compiler version 3.0 A Hayes Smartmodem or compatible. DISTRIBUTION: ============= You've probably read this a million times before, but I'll type it in anyway. You may freely distribute this software, as long as: 1) No fee is charged for such distribution. 2) The entire system is distributed as a whole, without modifications. Of course, once you have a copy, you are encouraged to make whatever changes you feel are necessary or appropriate, such as changing prompts, or other cosmetic changes. If you feel brave enough, you might even try changing the logic of the program, but you should refrain from this unless you really know what you are doing. DONATIONS: ========== If you find this program useful, a donation of $25 would be greatly appreciated. Also, I would be interested in knowing what WWIV systems are up, and any suggestions or possible modifications you might think of. Please address any correspondences/donations to: Wayne Bell Box 636 904 Silver Spur Road Rolling Hills Estates, CA 90274 INTRODUCTION: ============= This is not meant to be a comprehensive manual, but is only an outline of the less-obvious functions. This is because I don't feel like typing 100 pages of a manual, and also because I am sure you will discover more about the system from playing around with it yourself than you would by my telling you. Version 3.20 has been tested out pretty thoroughly, and no way has been found that remote callers can cause any harm to the computer itself, or any data outside the BBS. If you give other people high access, it will be possible for them to erase data from the BBS (ie, messages and files for downloading), but there is NO WAY they can, say, destroy WordStar documents you have in a different directory. NOTE: This documentation is pretty much the same as the documentation for previous versions, modified only in the places necessary to make it consistent with version 3.20. More complete documentation is currently being worked on, however I have no idea when that will be available. This complete documentation will go into the workings of the system and describe most of the features in extreme detail, and also give suggestions on where you might modify the software yourself. INSTALLATION: ============ You should skim through the entire installation section before beginning. On your hard disk, create a directory (such as BBS) that is a sub-directory of the root directory. Now, copy all the board files into that directory. There should be 20 files. Also copy the Turbo Pascal compiler into this directory. You should now have the following files in your BBS directory: BBS.PAS COMMON.PAS CONVERT.PAS DLMENU.MSG DLOADS.PAS DLP1.PAS DLP2.PAS DOS.PAS DOSMNU.MSG HELP.MSG INIT.PAS MAINMENU.MSG PART1.PAS PART2.PAS PART3.PAS PARTX.PAS SECLEV.DAT SKELETON.PAS SYSOPMNU.MSG WWIV320.DOC TURBO.COM TURBO.MSG You should now enter the turbo pascal compiler, and run "INIT.PAS". This program will initialize the necessary BBS files and directories. You will be asked which com port (1 or 2) your modem is hooked up to, and what its maximum speed of operation is. For example, if you have a Smartmodem 1200 hooked up to COM1:, you are using com port 1 and your modem speed is 1200. You now need to compile to disk the main BBS program. To do this, compile BBS.PAS to a .COM file, then compile DLOADS.PAS and DOS.PAS to .CHN files. The following keystroaks will do this for you: TURBO NRINIT This runs the initialization program (about 1300 lines). (com port number) (modem speed) MBBS OCQC This will compile about 5200 lines of the main program. MDLOADS OHQC This compiles about 3200 lines of the file system. MDOS OHQC This compiles about 3900 lines of the dos routines. Q CUSTOMIZATION: There are a few files that you will want to customize for your needs. These files are in the sub-directory GFILES of the main BBS directory. They are: SYSTEM.MSG - This file should contain system rules and other general information. NEWUSER.MSG - This file should tell new users what information they should leave to the sysop. WELCOME.MSG - This is the file printed out right after a person connects, and should list the system name. LOGON.MSG - This file is printed out after each person logs on, and should contain any recent system information or updates. LOGOFF.MSG - This file is printed out after people log off, and may contain the phone numbers of other BBS's. NONEWUSER.MSG - File listed out when "NEW" is typed for a CLOSED system. TRASHCAN.TXT - This is where you put the names of users who you do not want to log on to your BBS. For example, if you don't want anyone with "THE" in their name (ie, "THE HACKER", etc), just put "THE" on a separate line in the file. This will restrict anyone with "THE" (as a DISTINCT WORD) in their name from logging on. These files may be changed by using the built-in text editor, which will be described later. The next step in initialization is logging on the sysop. Run the main BBS program by typing BBS at the DOS prompt. The modem will be initialized, and a few files read into memory, and you will be presented with a blank screen. Hit the spacebar and the "Y" key. You will now see the welcome message and the NN: prompt. Type in "NEW" and hit enter. Enter the applicable information for the sysop account now. After verifying the password, the sysop will be logged onto the system. You now need to change the account's attributes to sysop access. to do this, hit F1 and type in "255" , then hit F2 and hit "V", then hit Shift-F1 and enter "255". Now log off with "/O". After logging off, the screen will again be blank. The system is now waiting for a caller. This condition will henceforth be referred to as "WFC", "Waiting For Caller." Now you will need to change the second sysop password. At WFC, hit "P". You will be presented with seven options to change. Right now you want to just change the sysop password, so hit "A" and enter the new sysop password. You will need to enter this password when logging on remotely, or to enter certain portions of the BBS. After entering it, you will be asked if this is correct. If so, enter "Y" for yes, the "Q" to quit. BOARD DATA: Your next task is to identify what boards (message bases) you will want. Before entering the board data into the computer, you will want to write down the board names that you will want, such as: GENERAL, MARKET, DISCUSSIONS, COMPUTERS, etc. You may have up to 19 boards. For each board, you will need: a name, a filename, the maximum number of messages, and a security level requirement, which limits the number of people who have access to that board. After writing this down, you will have to enter it into the computer. At WFC, hit "B" for board data change. You will have to enter your sysop password here. The system automatically initializes one board for you, but you will most likely want more. To add more boards, hit "I" for insert board. There is only one board now, so you will insert it before board #2 (which will place it after board #1). You will be returned to the previous display, but there will be two boards listed. The data for the second board will be incorrect, so you will need to modify it, using the "M" command. So hit "M", enter board #2, and you will see 9 options listed. If you want to change the Name, hit "1", and type in the new name. The filename is a very important part here. Each board >MUST< have a different filename. The maximum number of messages should vary from 20 to 100, although you may specify more than 100 messages. The SL option should vary from 10 to around 60 or 70. SL will be discussed more later. The post SL differs from the regular SL in this way: the post SL is the security level required to be able to POST on the board, and the regular (or read) SL is the SL you need to be able to see or read messages off the board. Hit "Q" to quit out of the modify routine. (Later, if you want to delete a board, first remove all messages from the board, then delete it using the D option here). After quitting out of the board edit routine, you should hit "D" at WFC. After entering your sysop password, you will be presented with a list of directories. These are different areas for up and downloading files. This routine works the same as the board edit routine. That should pretty much finish off initialization, and the board is ready to run! CONVERSION ========== If you have an older version of WWIV (ie, 3.11b or earlier), you will need to convert some of your files to work for version 3.20. Fortunately, this is easy. Just run the Turbo Pascal compiler, compile (to memory) and run the "CONVERT.PAS" program. It will prompt you for your com port number and modem speed, which you should enter. It will then reformat the necessary files for you. After you run the conversion program, just re-compile BBS, DLOADS, and DOS to the appropriate files (.COM, .CHN, and .CHN). Additional information (ie, whether they support ANSI graphics, etc) will be asked of your old users the first time they log on. That is all that is necessary for conversion. WFC COMMANDS: ============= The WFC commands are: Q,B,D,P,A,S,L,Y,M,R,T,V,F,E,G,C,. They will be discussed in that order. Q: Quits out of the BBS, and exits to DOS. B: Board edit routine, described above. D: Directory edit routine, much the same as board edit. P: Password change, described above. A: Answers the phone. This just tells the modem to answer the phone. So if you are talking to someone on the phone and he wants to connect to the BBS, hit "A", and he can log on. After the phone has been answered, you may hit "H" to hang it up before a connection is made. S: Status. This will print out the current status of the board. L: Log-of-the-day. This will show you who logged on so far today, and what they did while on. Y: Yesterday's log. It will show the log-of-the-day for yesterday. M: Mail read. This will display >ALL< mail sent, starting with the most recent piece. After each piece of mail, the system will pause. You can hit "Q" to quit back to WFC, "R" for re-read, "D" to delete the piece of mail, or any other key for the next piece of mail. R: Read feedback. Hitting "R" is the same as logging on under the sysop account, reading feedback, then logging off. This function is provided to save the trouble of logging on each time you want to just read feedback. T: Terminal mode. While running a BBS, you may feel the urge to call other BBS's. Hit "T" at WFC to access the internal terminal program. When you enter terminal mode, the computer sets up the modem to respond with result codes, and sets the keyboard to uppercase. A list of commands is available by hitting the "HOME" key on the numeric keypad. If you wish to upload files from the terminal, they must be present in the dloads directory, and downloaded files will be put in the dloads directory. V: Validate users. Using this utility, you can page through the users, delete users, and change data on them. It will start out with the sysop account, display the information, and prompt you for an option. You can hit "?" for a list of commands. The line of data for messages lists: number of Posts, number of E-mail, number of Feedback, and the number waiting. Logged on lists: the number of times logged on, number of times today, and number of illegal log-ons. DS sec lev lists the Transfer security level, number of files uploaded, number of K uploaded, number of files downloaded, and number of K downloaded. Options are: S - change security level A - change access (restrictions) [ - go to user number one lower than current ] - go to user number one higher than current O - change search options { - search down } - search up U - go to user, by name or number D - Delete the user R - Restore the user if he is deleted N - Change name/alias P - change phone number E - change real user name Q - Quit back to WFC L - alert sysop when user logs on T - change DL security level C - change computer type G - change age F - one line note about user B - board access for user F: This is the dos routine. You will be in a sort of "min-dos", which will enable you to manipulate files. Any files can be manipulated, with the exception of files used by the bbs, such as the user list, board data, and other related files. Only three directories may be accessed, "DLOADS", "GFILES", and ".". "." refers to the main BBS directory, and the other two refer to the sub-directories of the BBS directory with the same name. When refering to the different directories, you do not need to specify their actual position in the directory tree, only the name. The commands may be used as if it were from dos. Examples of valid commands are: "COPY DLOADS\SOMEFILE.TXT", "TYPE .\BBS.PAS", "COPY LOGON.MSG DLOADS" (the backslash after "DLOADS" is optional). Valid commands are: CD - Change the active directory. DEL - Delete file. REN - Rename file. DIR - List files. Only .TXT or .MSG files will be listed, unless you specify "*.*" or other such global names. XDIR - same as DIR, only a full directory listing is presented (ie, file dates + times, lengths, etc) COPY - Copy file. TYPE - Type file. EDIT - Edit a file. Invoked as "EDIT LOGON.MSG." A description of the text editor follows. GFILE - Gfile edit. CLS - clears screen. VOTEPRINT - Print out votes. LOADHELP - If you have edited the help file, "HELP.MSG", this will re-load it into memory, so your changes will take effect. QUIT - Quit Mini-DOS. E: Edit. This is the same as typing "F" for the dos routines, then typing "EDIT" followed by a filename, except this will prompt you for the filename. This option is provided only for convenience. G: G-file edit. This is the same as entering the dos routines and typing "GFILE". C: Chain-file edit routine. This is sort of like the board-edit routine, except it allows you to add additional routines to the BBS. If you want to write your own routine to the BBS (for example, a casino or user fight or other such thing), you will have to do it in the format of the rest of the BBS. A "SKELETON.PAS" program is provided. You should copy this file to your own (ie, CASINO.PAS), and put in your own routines where they would normally go in a Turbo-Pascal program. To have your program work correctly, it must use standard I/O routines (such as the print and input routines used throughout the BBS), and have hangup an exit condition for all loops which do I/O to the user, as well as many other things, which won't be documented here. If you feel confident enough with the style of the BBS, go ahead and write your own add-on program, and feel free to distribute it to other SysOps. This feature will be covered fully in the complete documentation sometime in the future. (the chain files are accessed by the user with the "." main menu command) : hit spacebar then "Y" to log on from the keyboard. TEXT EDITOR: =========== The text editor is available from the dos routine, and may ONLY edit files with .MSG or .TXT extensions. After entering the editor, the file will be read in, or you will be told that it is a new file. For long files, not all of the file may be read in. The text editor is line oriented, and has a command list on line. At the ":" prompt hit "?" for a list of commands. A number may be specified with most commands, such as "+15" to go forward 15 lines, or "15" to go to line #15. SECURITY LEVELS: ================ Each user is assigned, by the sysop, a security level. This determines what the user can and can not do on the system. New users are given a 10, which doesn't allow them to do much at all. Validated users should be given about a 30. Board access: If the user's security level is less than the SL for a board, the user cannot access the board. In general, a user's SL should vary between 30 and 100. If the user has a 100, he is able to do anything the sysop is able to do. There is a time limit for each user, which is generally 10 minutes less than the security level itself, so a user with a SL of 30 can stay on for 20 minutes. Special security levels: 70 and above: can post anonymously on any board 80 and above: can send anonymous mail 90 and above: can read names on anonymous messages 95 and above: can read names on anonymous mail 99: this will allow the user to validate and delete messages on the board number specified by the SBN for that user. If the SBN is zero, the user can validate and delete messages on any board. 100: The user can do virtually anything the sysop can, with 3 exceptions, listed later. 255: The sysop. Can do anything. The download, or transfer, security level is much the same as the regular security level, except it is used for access to different directories in the file system. ACCESS/RESTRICTIONS: ==================== Each user has a set of restrictions that can be used against him. For "good" users, none of these should be enacted. They are: L - restrict logons to 1/day C - restrict from chatting V - make messages unvalidated B - restrict from back/downspacing A - restrict from changing auto- message and adding to BBS list * - restrict from posting anon msgs P - restrict from posting at all E - restrict from sending e-mail K - restrict from voting M - auto-message deletion TOP OF THE SCREEN DATA: ======================= While any user is logged on, there will be information on that user printed on the top of your screen. The remote user will not be aware of this information. There are three lines of information. The first line contains: the user's name, user number, real name, phone number, and either: last date logged on, or number of times logged on today. The second line contains: SL: security level AR: board access; don't worry about this LO: number of times logged on P : number of messages posted E : number of pieces of mail sent F : number of pieces of feedback sent W : number of pieces of mail waiting for him to receive SC: screen size (ie, 80X25). Before a user is logged on, this area will show his/her password FW: number of pieces of mail waiting for user #1 D : download/transfer SL The third line contains: AC: access/restrictions (if any) C : computer type ML: messages left before forced logoff. This will only show for users who have been on more than one time that day TL: time left, in minutes The next area shows "Sysop Available" or "----- ---------". If it shows "sysop available", the user is able to request a chat. After this, there will be: nothing, or "CHAT ON", which means the user has requested a chat. SYSOP KEYS: =========== While someone is logged on the system (remotely or from the computer itself), the function keys can be used for special commands. These are: F1: change the user's security level. Shift-F1: change the user's download security level. F2 - change the user's access/restrictions. Shift-F2: change board access for a user. F3 - disable remote keyboard. This is used mainly if you want to do something on the system without the remote user interfering. F4 - turn off the chat call if it is on. F5 - hang up on the user - this is the same as if the user hung up. F6 - update time left, and hang up on the user if his time is expired. F7 - decrease time left by 5 minutes. If you are annoyed at a user, and want him/her off the system sooner, hit f7 one or more times. You can hit it enough that the time left will be negative, but the system won't hang up yet. You have to hit F4 to have it hang up. F8 - increase time left by 5 minutes. Shift-F7 - decrease number of messages allowed by 10. Shift-F8 - increase number of messages allowed by 10. F9 - give >TEMPORARY< sysop access. After the user hangs up, his SL will be returned to what it was before. If you don't want to wait until he hangs up, hit F9 again, and his SL will be restored then. F10 - chat mode. If you want to type to a user, hit F10. When you are done chatting, hit F10 again, and the user will be returned to where he was before. While in chat mode, you may use all the other function keys also. In chat mode, you may store what is being said. Just hit (with num- lock off), and every line that is typed will be stored in "CHAT.MSG" in the GFILES directory. To stop storing the lines, hit again, or just exit chat mode with F10. Scroll-lock - toggles sysop available. MAIN MENU SYSOP COMMANDS: ========================= There are a few sysop commands at the main menu. If they are more than one character long (as most of them are), and you have one key input on, you must precede them with "//", which will enable you to type a whole line. For example, if you want to enter uedit, you would type "//UEDIT". The sysop commands (which may be used by anyone with a SL of 100 or greater) are: ! - Validate users UEDIT - user edit procedure STATUS - print system status IVOTES - initialize voting data LOG - print today's sysop log YLOG - print yesterday's sysop log TEDIT - edit a text file OLDUSERS - list out users in order of number of days since last logon DOS - enter the dos routine. Users with SL's less than 255 (100-254) may only access the DLOADS and GFILES directory, and within those, only files with .TXT or .MSG extensions. All of these have either been described or should be self-evident. A list of these commands is also available to the sysop from the main menu. Simply type "/?" at the main menu and the above list, along with some other data, will be printed out. There are four other main menu sysop commands, which are only available to users with a SL of 255. They are: BOARDEDIT, DLBOARDEDIT, MAILR, and QUIT. BOARDEDIT and DLBOARDEDIT are the same as B and D from WFC. MAILR is the same as M from WFC. QUIT returns to dos, the same as a Q from WFC, except an errorlevel of 1 is returned. This is not very useful, except for non- standard setups. These commands are not listed in any menu, and are only meant for use by the sysop if he needs to run the entire board remotely. HIDDEN SYSOP COMMANDS: ====================== There are a few sysop commands which are not listed anywhere. They are: Validate user: After reading a piece of mail or posted message, the sysop can hit "V" at the prompt, and change the SL or restrictions for that user. This is useful for validating new users, and restricting people who have abused privileges. Remove messages: using the R main menu command, the sysop can remove any message on a board. Also, in the scan routine, the sysop can hit "D" at the prompt, which will delete the last message read. At the message read prompt, the sysop may type "M" to move the last message read to another board. TRANSFER SECTION SYSOP COMMANDS: ================================ There are also a few sysop commands in the file system, which work pretty much like the ones at the main menu. They are: M - Move a file from one directory to another. You enter the filename, then the destination directory number. SORT - Sort files by filename or date uploaded. REN - Rename file and/or description of file. 0 - change to sysop directory. Files uploaded with a backslash ("\") at the beginning of their description will be uploaded into directory number zero. The sysop can then remove or move the files. Of course, files can not be downloaded when you are logged on from the keyboard, but they can be uploaded. To do this, first exit to DOS and copy the file into the DLOADS directory. Then run the BBS, log on, enter the file system, and upload the file as you normally would remotely. Files can also be uploaded remotely by the sysop if they already exist in the DLOADS directory. This is meant for people who already have a large amount of software that they need to put in the transfer section, but need to do it remotely. Also, in version 3.1A, users can up and download files from Apple computers if they want. HELP FILE: ========== Version 3.20 has a special feature - on-line help. At just about any point in the BBS (with the exception of sysop functions), you can hit ctrl-Z, and get semi-detailed help about whatever function it is you are using at the time. This is especially useful for new users, so you should have this function listed in your newuser file, or some other place so newusers can be aware of it. You may want to change the help file yourself, so this is how it is set up: All the help files are stored in one dos file, gfiles\help.msg. Each seperate help file is stored as follows: |C description help file . . . |D description help file . . . Each file is started with a vertical bar, followed by the character which identifies which help file it is. The rest of the line is a "comment", and is never printed out. It is to aid in editing the file only. Because the vertical bar is a "reserved character", none of the help files may contain vertical bars. The help file is loaded into memory when the the board is initially run, to save on I/O, so if you edit the help file with the built-in text editor, you must re-load the help file into memory, using the "LOADHELP" command in the DOS routine. FUTURE MODIFICATIONS: ===================== It is possible that there are a few bugs in the program, and there are certainly more things to be added. Future versions that are numbered 3.xx will be compatible with other version 3.xx's. CREDITS: ======== Although I did write most of the code myself, there are quite a few people who did help, or whose code got used. The com routines are based on those by: Philib Burns, Alan Bishop, C. J. Dunford, and Michael Quinlan, although they did get changed quite a bit. The Neuron (%) also helped in the development quite a bit, especially with testing the software. Making sure the XMODEM and com routines work is quite difficult without another patient person to help. George Lehmann is currently working on the expanded documentation, and I hope he gets done with the preliminary version sometime soon. (It is hard for me to write most of the documentation; all that stuff seems so obvious to me.) NOTES ON PROGRAM STRUCTURE ========================== This section previously had a description of what routines were held in the separate .PAS files. However, much has been changed, and I am in a hurry to get this version out (people have been bugging me for some time about it), so they won't be included. Future versions of the documentation should, though.