Warp Six BBS, created by Jim Ferr. Public domain version 2.5 June 23, 1994. Prior version (2.4) released on November 23, 1993. Contents: About Warp Six BBS How to Update from version 8.0 or later to PD 2.5 PD Version 2.5 Changes PD Version 2.4 Changes PD Version 2.3 Changes PD Version 2.2 Changes PD Version 2.1 Changes PD Version 2.0 Changes ABOUT WARP SIX BBS Warp Six BBS is a full featured bulletin board program written in "normal" AppleSoft BASIC, with modem drivers you "CALL" to do modem related things. This makes Warp Six BBS easy to modify to suit your needs. To make full use of Warp Six BBS, you should have some familiarity with AppleSoft BASIC and some experience editing AppleSoft programs and short text files on disk. Please take note that the documentation included with Warp Six BBS does not attempt to teach you how to program. However, programming is not necessary to get your bulletin board online -- it is advantageous when you are customizing your system. While you don't need to know how to program, you should make an effort to read all of the documentation. You can skim over details like file structure information, but you should carefully read this file as well as Getting.Started and Modem.Doc. Another important file to consult is Trouble.Doc, which contains answers to many common questions. Warp Six BBS was written during the summer of 1985, and the original Warp Six BBS went online September 12th of that year. Since that time, Warp Six BBS has been re-written and improved on countless occasions. On August 1st, 1992, Warp Six BBS was placed into the public domain by its author. This means you don't have to pay any shareware fee and you can do with the software whatever you wish. Warp Six is still being improved now and then by its author and by the sysops who use it, who continue to write modifications and suggest improvements. I am grateful to the Warp Six sysops that made shareware and freeware contributions over the years. It is to those individuals that the public domain releases are dedicated. Please note I cannot accept shareware fees or donations, and my support will be limited to answering questions sent by mail or electronic mail. The software is provided "as-is" without any warranty whatsoever. HOW TO UPDATE FROM VERSION 8.0 OR LATER TO PD VERSION 2.5 Copy the Updater program from the WARP6.INFO/EXTRAS directory into your existing BBS directory, where your SYS.DATA file is located. Run your old system and get into the Sysop Utils program. Type P to enter a ProDOS command and at the command prompt, enter CHAIN UPDATER,@1000 and hit Return. Once the UPDATER program is run, it will convert all your forums to the new format used in public domain version 1.0 and later. Then you have to use similar commands to CHAIN FORUM.UPDATE,@1000 to update to version 2.5 and later. (See 2.5 changes for info.) After the conversion, simply copy all the programs and install the new drivers that come with this version, and you are done. All the menus and the FORUM.HELP file were updated, as was Help file number 7, which describes Warp Six BBS. Aside from that, only the programs (type BAS) and drivers (type BIN) have changed. PUBLIC DOMAIN VERSION 2.5 CHANGES Updated system to support 400 users instead of 200. Changed the "200" to "400" in lines 1060 and 1850 of ADD.USER and line 8040 of ADD.A.FORUM to support this. To use version 2.5 with an existing system, you must run the BBS, get into Sysop.Utils, enter P for ProDOS command and enter: CHAIN FORUM.UPDATE,@1000 The FORUM.UPDATE program will explain itself and run with your okay. The program must be located in your BBS root directory (by default, /HD1/WARP6/BBS), so it can read SYS.DATA to get information on your forums. This will add capacity for additional users to your existing forums. Otherwise, as soon as any user with an ID greater than 1200 hits a forum, its system error time. Modified the Add.User program to give all new users one letter waiting. The system uses the COPY module to copy the "NewUserMail" file from the LOGS directory to the EMAIL directory with the correct filename for the new user. You can modify the NewUserMail file in the LOGS directory to be your generic welcome in E-Mail for new users. Also modified Add.User to force new users to enter their ID number and password when entering the system for the first time. These changes were suggested by Neal Layton. Added a quick hack of a utility called QUICK.SYSOP to the EXTRAS directory. You can run this program to set up fresh USERS and REC.DATA files, to start your user file from scratch. It must be run from the LOGS directory where the USERS file is located. You can change the variable assignments to customize your sysop record, or do it the way I describe in Trouble.Doc. Modified flag entry in REC.DATA to be 17777, as a flag to indicate this system supports version 2.5 or later. The flag is used by the FORUM.UPDATE program to determine if it needs to run or not. In other words, the FORUM.UPDATE program will put this flag in REC.DATA after it is run, and if you try to run it again it will inform you that you have already updated. By request, I have disabled sysop (security level 9 users, really) immunity to the normal timeout. As sysop, if you call in remotely and sit idle, you'll get hung up on by the system with the best of them. Updated the answer routine in the GS.Driver to support connect result codes for 38400 and 57600 bps. Tested this with a Hayes Accura 288 V.FC + Fax. This may work with another modem if it reports '28' for CONNECT 38400 and '18' for CONNECT 57600. The IIe driver still supports a maximum speed of 19200 bps. I have discovered that although 38400 bps does not work with a normal IIgs running at 2.8 MHz, it works fine when using a TransWarp GS at 6 MHz. In other words, to use 38400 or 57600 you will need to accelerate your IIgs. If you try any other type of accelerator (ZipGS?), let me know if it works; Applied Engineering went out of business recently. Scott Johnson reported a cosmetic bug in the Xmodem receive routines. They were not resetting the "retries" count for the sysop display between files. This has been fixed. I've added an option when downloading to automatically log you off after a download is complete. This was also by request. Thanks, Frank! Another sysop (Ken Gagne, I believe) reported the COPY.UTIL's input routine hadn't been converted to the CALL M3$ method; this has been fixed. I noticed that my E-Mail welcome message in PD version 2.4 was present, but the sysop's user record did not indicate a letter waiting, so most users will have missed reading it. It was there in the EMAIL directory. This has been fixed in version 2.5. PUBLIC DOMAIN VERSION 2.4 CHANGES Driver changes: Went back to the old method of getting input into the first string variable in memory, instead of named variables. Changed all routines at line 100 and 130 (in all BASIC programs) to do a CALL M3 (as before) and I$=MID$(RI$,1) to return input to I$ instead of "CALL M3,I$". I found some problems too difficult to fix with the named string method, so rather than leave the reliability of the system in doubt, I've gone back to the old method. This info only has ramifications to those who have made modifications to the system. Fixed a minor bug in Add.User that refused to let a new user not interested in the system from "not continuing". PUBLIC DOMAIN VERSION 2.3 CHANGES Driver changes: fixed bug in word wrap. Removed dial routines to save memory. Updated GS.Driver to support 38400 bps maximum. Updated Xmodem RECEIVE so it ALWAYS locks received files. (Previously, it would not lock files uploaded by anyone with security level 9.) BASIC program changes: fixed calls today bug in LOGON program, updated version number in wait for call screen. In WARP6.BBS, fixed sysop mailbox limit when user sends E-Mail by name instead of R)eport to sysop. Fixed serious GOSUB bug that orphaned the "Leaving last forum/returning to main" message. In SYSOP.UTIL, fixed a minor problem. In XFER.UTIL, fixed minor problem I had already issued a fix for after the release of version 2.2. PUBLIC DOMAIN VERSION 2.2 CHANGES Found a bug in new named string feature; when remote user times out, failed to move TXTPTR to the next statement, resulting in an Error 16 at line 100 and the dreaded, "A system error has occurred..." Fixed this bug. Removed "Answering..." from answer routine. It now simply says "Ring." and then answers the phone. This was done to save memory in the largest driver, the GS.Driver, which just fits into the same space we've been using since version 8.9. Renumbered some lines in LOGON (3000-3999 back to 2000-2999) and modified the reference to LOGON in the ADD.USER program to it chains to line 2000 again. Added code to LOGON to POKE an initial timeout of 1 minute at the ID number prompt (line 1410), and back to 4 minutes after the user has entered his/her password. On leaving LOGON, the timeout is set to 2 minutes to catch people with auto-logon macros who walked away from their computers. This means that the first time they get to the Main command prompt, the timeout is still 2 minutes. The timeout is reset to the system default of 4 minutes in Warp6.BBS at line 8010. (To change the timeout, do a "POKE BA + 62,1", where the 1 is the number of minutes. 30 seconds from expiry time, a "Hello" warning is printed. If no response is received, the system hangs up and resets.) PUBLIC DOMAIN VERSION 2.1 CHANGES Fixed a bug in XModem receive that caused the ProDOS extension to fail every time. The old code was checking the CRC low byte first, but the new CRC routines store the high byte in that location, so the CRC would never match. Updated the drivers to support input to named strings, so instead of doing a CALL M3 to get input, you can do CALL M3,I$. PUBLIC DOMAIN VERSION 2.0 CHANGES Updated all drivers for use with high speed modems with support to 19200 bps with hardware handshaking. Tested with Hayes ULTRA 96 only. Other modems will also work but you'll have to figure out the correct commands for your Modem.Init file. (More on this in Modem Doc.) Completely re-wrote the IIGS interrupt handler for speed. It can handle Xmodem 4K uploads from a caller connected with a 9600 bps modem using LAPM data compression (CARRIER 9600, CONNECT 19200) without losing data. The Super Serial Card driver will not do hardware handshaking due to a bug in the ACIA 6551 chip, so you'll have to configure your modem to disable error control and handshaking if you are using the Super Serial Card. Due to Super Serial Card limitations, I recommend you don't attempt to run the system at speeds greater than 9600 bps. Eliminated the GS.HSKi driver and support for oddball GS modem cables. Your cable must now conform to the specs for the remaining GS.Driver, using GPi for carrier detect. (See Modem.Doc for pinouts.) Modified the LOGON program to support high speed modems with the addition of the following three lines: 50 POKE BA + 47,3: REM 1=300 bps 2=1200 3=2400 4=4800 5=9600 6=19200 55 POKE BA + 449,255: REM 255=Match bps to incoming calls, 0=Fixed bps 60 POKE BA + 450,0: REM RTS/CTS handshaking off. 255=on To enable the drivers for high speed modems, you must POKE in a higher default baud rate in line 50 of LOGON. You also have to do a POKE to enable hardware handshaking (line 55) and if you wish, to force the driver to talk to the modem at a fixed baud rate (line 60). It is preferable not to use a fixed baud rate to talk to the modem if possible; on the Hayes you add the S36=5 command to the Modem.Init file to accomplish this. As well, in Modem.Init you must enable hardware handshaking on the modem if you wish to use it. (On the Hayes the &K3 command does this.) The Hayes hangup flag is no longer used. The driver first tries hanging up with DTR, then does the Hayes hangup. Your users will only see the familiar +++ sequence if your cable/modem does not support DTR hangup. Here is the recommended Modem.Init for the Hayes ULTRA 96. Similar modems will have similar requirements: AT&F&K3E0V0S0=0S7=45 ATX4S36=5H0 AT&C1&D2 Added functionality to the upper case convert flag to do lower case conversion. To get a line of input in lower case, do a POKE UC,1 before doing your GOSUB 100 or 130. Make sure you do a POKE UC,0 or POKE UC,255 to set it to full case or upper case after you are done. Added functionality to the hidden mode, used for password entry. Currently it echoes * characters as the user types his or her password. To shut off echo altogether, use POKE MD,1 instead of POKE MD,255. Hidden mode (without echo or with asterisk echo) is automatically shut off after use -- you don't have to explicitly do a POKE MD,0 to shut it off before getting a line of normal input. The two additions above were added for those interested in making Warp Six appear more like a Unix system... an exercise left to the student at this point. :) Re-wrote the GS.Driver to save a lot of space in memory and tackle the Zilog 8530 more efficiently. Thanks to Greg Schaefer, author of ProTERM, for assistance in this. Here's a plug for ProTERM, from InTrec Software, at (602) 992-1345: it's the best Apple II terminal program in existence. And it will soon be a Macintosh program. Added a copy utility to the system. To enter it, get into System Utils and type P for ProDOS command, then CHAIN COPY.UTIL@1000. There is no syntax checking as you enter filenames, but error checking will report any problems if you make a typo. The copy utility can copy any file that ProDOS 8 can manipulate except a directory. Fixed problem in line 100 of most BASIC programs that could cause Open-Apple-L to logoff to loop forever. Fixed video driver support to permit full 80 column lines without cursor or scrolling problems. The default video width is now set at 79 characters, but the built-in TYPE command can display 80 character files. This was done in preparation for Internet access, which I am working on now and then. (No promises!) Updated error messages in the WARP6.LOADER programs to be nicer when exiting. For instance, if you launch the GS drivers on a IIe, you'll get a polite error message and the program will ask you to "Hit Return to exit". When you hit return, it will return to the calling program, i.e. your program selector or whatever. Updated check for AppleTalk active on the IIGS so it now will detect the Apple II EtherTalk card, which was never released. Due to heavy interrupt activity, Warp Six BBS is not compatible with AppleTalk and will not run when it is active; a polite error message is displayed and then you are returned to the launching application or ProDOS program selector. Updated documentation files to be readable with AppleWorks 2.x instead of requiring AppleWorks 3.0.