PowerChat v1.6 for DLG Pro BB/OS written by Joep Grooten © Digital Intelligence 1994 1.0 WHAT IS POWERCHAT ? 1.8 LOGFILES AND THEIR MAINTENANCE 1.1 REQUIREMENTS 1.9 TIPS & TRICKS 1.2 INSTALLATION 1.10 LEGAL STUFF 1.3 CONFIGURING POWERCHAT 1.11 CONTACTING DIGITAL INTELLIGENCE 1.4 USING POWERCHAT 1.12 THANKS 1.5 ABSENCE OF THE SYSOP 1.13 HISTORY 1.6 TRANSFERRING FILES 1.7 'SEND DELAY' BUTTON 1.0 WHAT IS POWERCHAT ? PowerChat is a chat program written for the DLG Pro Bulletin Board System. It's not just a simple 'line by line' chat. PowerChat divides the terminal screen into two 'windows'. Characters typed by the sysop will be printed in the upper window and characters typed by the user are printed in the lower window. These days this is almost standard for a chat program, but PowerChat has a lot more to offer : o Can be used to interrupt a user for a chat ! o Line editing with cursor keys, backspace, delete, ctrl-x / y !!! o Sending/Receiving files with Z-Modem during chats o Users time can be stopped / increased / decreased o Users can be edited or templates can be applied o Ability to 'go voice' and re-connect again o Switchable between 'Double window' or 'Line Chat' during chats o *REAL* scrolls in each window o 3 kinds of word wrapping (wrap / warp / none) o Complete chats can be logged (optional) o keeps log of chat calls (optional) o _ALL_ to users visible text is configurable o Easy to use 'point 'n click' user interface for the sysop o Each window can be cleared by the one who types in it by pressing ctrl-l o User/sysop can display a bell to get the attention of the other o User must give chat reason with minimal length (optional) o Adjusts to terminal width and height o sysop can edit typeable keys o 'Kill' button to throw a user off your system immediately o Sysop already chatting detection (for multi line BBS's) o Broadcasted messages visible while chatting (optional) o Script support for answered/unanswered chat calls o Only one sysop call every x minutes (optional) o Supports multiple languages o Alias support o Custom font support o DLG's % switches are supported o User notes can be read 1.1 REQUIREMENTS PowerChat can only be used in combination with DLG Pro. It won't work with other BBS programs. Kickstart 2.04 or higher is required. If you want to transfer files during chats, xprzmodem.library V2 or higher is required (PowerChat will start without this library though). ** WARNING ** Some communication programs (like ProComm) may not support the ANSI sequences used by PowerChat. 1.2 INSTALLATION Installation is very simple. Assign DOORS: to the directory where you want to keep PowerChat (if you haven't done this already for another door for DLG) and unpack this archive to the DOORS: directory. Then go to the sysop menu editor and add a menu entry which looks something like this : [ 1] Letter: C [ 2] Executable: (path/name) DOORS:PowerChat/PowerChat [ 4] Description: Call the sysop for a chat [ 5] Type: Executable [ 6] Help File: MAIN/C [ 7] Lower level: 1 [ 8] Upper level: 255 [ 9] Hidden: NO * [10] Load type: OVERLAY [11] Ask user if sure: NO [12] Pend messages: YES * [13] Cli mode: NO [14] Pause on completion: NO [15] Log value: None [16] Activity string: Calls the sysop for a chat [17] Priority: DEFAULT Don't change [10] or [13], PowerChat won't work if you change one of these. That's all. PowerChat is now ready to be used. If you want to use PowerChat to interrupt users for a chat, it's best that you put powerchat in your search path (put it in the C: directory for example). If you don't put it in your search path, you would have to enter 'DOORS:PowerChat/PowerChat ' all the time instead of just 'PowerChat '. 1.3 CONFIGURING POWERCHAT If you enter 'DOORS:PowerChat/PowerChat prefs' in a Shell, a window will open on your WorkBench Screen. This is the preferences window. Sysop Name - Enter your name here (or your alias) Typeable keys - Enter the characters that may be used during a chat here Options : User may end chat - Toggles whether a user may end a chat or not. beeping - user/sysop can beep during chat by pressing ctrl-g. Keep logs - Keep log of chat calls. Keep chats - Keep complete conversations. Use Aliases - When this gadget is selected, aliases will be used instead of real names. Show broadcast msgs - When this gadget is selected, broadcasted messages will be displayed during chats (in fullscreen mode only). Activate page window - Activate the page window when it's opened. Check carrier - Check for carrier loss while chatting. If the carrier is lost, PowerChat will quit. Chat Reason : User must give reason - User must give the reason for his chat call before you are paged. min. Length - Minimum nr of chars a user must enter for a chat reason. Misc : Word Wrap - The last word of a sentence will be moved to the next line if the word doesn't fit on the line. Word Warp - When a space is typed near the end of a line, the cursor will go to the next line. No wrap - No wrapping of any kind. Chat Delay - The number of minutes a user has to wait before he can page you again. (set to 0 to disable this feature) Override - If you select the override gadget below the Chat Delay gadget, a user can page you again within the Chat Delay time if you answered to his previous chat call. Line character - The character you want to use to print horizontal lines. If you can't enter the character using the keyboard, enter it's ascii value in the gadget below (the line character as used in IBM character sets is number 196 for example). Font - Here you can enter the name of the font you want to be used on the chat screen. Currently only fonts with a size of 8 are supported. Script Functions : When chat is answered - You can select None/Executable/AmigaDOS script/ ARexx script. Below the cycle gadget you can enter the name of the executable or script. This entry will be executed when a chat call is answered. When chat isn't answered - See 'When chat is answered'. This one will be executed when a chat isn't answered. When sysop is signalled - See 'When chat is answered'. This one will be executed every time the display 'beeps'. (Naturally you can use the % switches in the names of the scripts) As mentioned above, ALL strings visible to the user are configurable. In the DOORS:PowerChat directory you will find two directories 'English' and 'Dutch'. In these directories the following textfiles are kept : Strings.txt - A text file containing text lines from PowerChat BeforeAskReason.txt - will be displayed before the user is asked for his reason to chat with the sysop. This file will not be showed when user doesn't have to give a reason. BeforeSysopPage.txt - will be displayed before the sysop will be paged. SysopDidntAnswer.txt - will be displayed when the sysop pressed the 'Ignore' button or when he didn't answer the chat request at all. ReasonTooShort.txt - will be displayed when the given reason is too short. AfterChat.txt - will be displayed when the chat is ended (will not be displayed when the sysop didn't answer) CalledTooSoon.txt - will be displayed when a user tries to page you again within the time entered in 'Chat Delay'. AlreadyChatting.txt - will be displayed when a user tries to page you but you're already chatting with someone else. SysopNotPresent.txt - will be displayed when the sysop is not available for chat. LooksForFiles.txt - will be displayed when the sysop you are looking for files to send to the user. You can change these files with a normal ASCII or ANSI text editor. If you want to add a language, create a directory called DOORS:PowerChat/, copy the textfiles from the 'Dutch' or the 'English' directory to the new directory and translate all the texts. %Switches may be used in these files. In the file DOORS:PowerChat//strings.txt you'll see a few lines that begin with a '@'. These lines are action strings (strings that indicate what a user is doing at the moment). The '@' at the begin of a line has no use, it's there to indicate which lines are action strings. You might want to use the '@' as the first character in a line, to do this enter @@ at the begin of a line. In the file DOORS:PowerChat/Reasons.txt you can put some text lines with reasons why you don't want to chat. If a user pages you, you can click on one of these lines which will be visible in the listview gadget in the page window. 'Edit paths' gadget : If you click the 'Edit paths' gadget, a new window will be opened : The paths settings window. Here you can enter paths for : Receive / Chat calls log / Chats log. You can enter the paths by typing in their names or you can use the 'select' gadget left of the name gadget to select them via a filerequester. Receive : Path where you want to receive files that are sent by a user. Chat call log : Path where to keep the 'ChatCalls.LOG' file. Chats : Path where to keep complete conversations (as 'chat.). Errors : Path where to keep the PowerChat_Errors.LOG file (log of errors) 'Screenmode' gadget : If you click this gadget, a screenmode requester will be opened. Here you can select the type of screen that must be used by PowerChat. 'Edit colors' gadget : If you click the 'Edit Colors' gadget in the preferences window, a new window will open : The color settings window. Here you can edit the colors which will be used in PowerChat. You can cycle throught the different colors by pressing the cycle gadget, the setting of the color will be printed below the gadget. If you want to change the color, press one of the color buttons. Title/cmd bar fg - Foreground color for title and command bar Title/cmd bar bg - Background color for title and command bar Line fg - Foreground color for lines between chat windows Line bg - Background color for lines between chat windows Sysop name fg - Foreground color for the sysop name Sysop name bg - Background color for the sysop name User name fg - Foreground color for the user name User name bg - Background color for the user name Broadcast line fg - Foreground color for the broadcast messages Broadcast line bg - Background color for the broadcast messages 1.4 USING POWERCHAT When a user selects PowerChat and gives his reason (or not) your WorkBench screen will pop to the front. A window containing the name of the user, the port he (or she) is on and the chat reason will be opened. You can either press the 'Chat' or 'Ignore'. If you press 'Chat' the Chat screen will be opened and you can start the chat. If you press 'Ignore' the Chat window will be closed. The user won't notice that, the paging will continue on his screen. You can also press one of the reasons in the listview gadget. This text will be printed on the user's screen. When you are chatting, you can use the following keys : cursor left - go left one position cursor right - go right one position shift cursor left - go to the beginning of a line shift cursor right - go to the end of a line backspace - delete character left of the cursor del - delete character under the cursor CTRL-X - delete the whole sentence CTRL-Y - delete everything to the end of the line CTRL-G - make screen flash (will be visible to user too) CTRL-S - switch between line/full screen chat CTRL-L - clean up your window CTRL-R - redraw the whole screen CTRL-Z - end chat CTRL-T - stop users time CTRL-N - read user notes (if any) CTRL-E - edit user (or apply template) It's possible to go back to the previous line by pressing backspace when the cursor is at the beginning of a line. If characters are under the cursor or right of the cursor, the screen will flash. The line must be empty when you want to go back (PowerChat is a chat program, not a text editor ;-) By pressing CTRL-S you can go to 'Line Chat' for users with a terminal that doesn't support all the ANSI sequences used in the FullScreen chat. If a user selected a terminal with a width less than 40 or a height less than 20 (or both) PowerChat will start in LineChat automatically. The LineChat does not support color, word wrapping and similar ANSI control code based operations. It's kept minimal because almost every modern terminal program, no matter how small it is, supports ANSI. And for the people who don't have an ANSI terminal, the LineChat had to be kept simple or their displays would be messed up as well. PowerChat can also be used to interrupt a user for a chat. Enter PowerChat in a shell and the user will be interrupted. If you're chatting and you want to throw a user off your BBS immediately, press the 'kill' button. If you want to stop the time (so that the user won't be hung up on when his time is up) you can press CTRL_T. The time (which is displayed in the 'Left:' gadget) will become blue to indicate that the time is stopped. Press CTRL_T again to start the time again. By pressing the 'left' gadget, the time window will be opened. In this window you can give users extra or less time. You can also press the cycle gadget to stop the time. 1.5 ABSENCE OF THE SYSOP You can use the program 'ToggleSysop' to toggle your absence. The ToggleSysop program needs no further explanation, it will be obvious when you start it. The presence of the sysop is checked by PowerChat by trying to find the ENV:SYSOP_NOT_PRESENT file. If this file is present, the sysop will not be available for chat. This way it's very easy to write your own ToggleSysop program or script. ENV:SYSOP_NOT_PRESENT can either be an empty file or contain a filename. If the file is empty, the file DOORS:PowerChat/SysopNotPresent.txt will be displayed. If the ENV:SYSOP_NOT_PRESENT file contains a filename, that file will be displayed instead. If 'ToggleSysop' isn't enough for you, check out ChatAvail.lha which is in the 'Contrib' directory of this archive. With ChatAvail you can select multiple reasons of absence. A file will be displayed for each reason. (ChatAvail is written by Wim Rumping... Thanks Wim). 1.6 TRANSFERRING FILES It's possible to send or receive files with the Z-Modem protocol when you're chatting. If you want to send files to the user you're chatting with, press the 'Send'. A file requester appears. Select the file (or files, keep shift pressed if you want to select multiple files) you want to send and press OK. If a user wants to send files to you, press the 'Receive' gadget. Auto sending and receiving is not yet implemented. xprzmodem.library V2 or higher is required for both the 'send' and 'receive' functions. reqtools.library V38 or higher is required for the 'send' function. (PowerChat WILL work when you don't have these libraries, only the functions that need these libraries won't work). 1.7 'SEND DELAY' BUTTON It's possible that some users complain that their display is messed up althoug their terminal is 100% ANSI compatible. PowerChat's output is VERY fast and sometimes, characters get lost if output to the screen of the user is not fast enough or when his serial buffers are too small. This problem can be fixed by pressing the 'Send Delay' button while chatting. A window with a slider gadget will be opened. Try some values (as low as possible) by changing the position of the knob. Then press CTRL-R to rebuild the screen (You are still able to chat when this window is opened) and ask the user if everything went okay. If you close the window, the send delay value for this user will be stored in DOORS:PowerChat/User.prefs and will be used the next time you chat with him (or her). 1.8 LOGFILES AND THEIR MAINTENANCE Chat calls and complete chats can be logged if you want to (see CONFIGURING POWERCHAT). If you have selected 'Keep chats' in the preferences window, complete chats will be kept kept in the directory you selected for 'Chats'. A file will be opened for every user you have spoken to in that directory in the form of 'chat.. You can look at these logfiles by using the AmigaDOS 'Type' command or you can load them into an editor. Chat calls are logged in the directory you selected for 'Chat call log'. The calls will be kept in the file 'ChatCalls.LOG'. This file contains a list of people who called you with the following format : Thu 10 Mar 94 10:45 Charley A. 'Help me *now* !!!' Thu 10 Mar 94 13:18 Charley A. 'You _MUST_ help me !! RIGHT NOW !!!!' Thu 10 Mar 94 13:18 Charley A. 'Could you please help' (Answered) After a period of time, the logfiles could grow very big. You may delete the log files, or shorten them with an editor. You'll notice that when you're logging complete chats, after every return-press or word wrap the led of your harddrive will flash. This is because the typed senctence is stored on your harddisk. At this time no buffering is used. 1.9 TIPS & TRICKS (tips & tricks were supplied by Wim Rumping) If you're using YAHOO by Alan Bland (Which I highly recommend), it is possible to do the following: In the PowerChat prefs, under 'Script functions', make both scripts 'ARexx script', and use the following line as the script name for 'When chat is answered' (include the '"' characters!): "address 'YAHOO' alert %PORT" And use this line as the script name for 'When chat isn't answered: "address 'YAHOO' alert %PORT 'NIL: s:Chatlog.batch And for the 's:Chatlog.batch', I use: -------------------------------------cut-------------------------------------- failat 21 ppmore >NIL: LOGS:ChatCalls.log append >NIL: LOGS:ChatCalls.log logs:PowerChat.log delete >NIL: LOGS:ChatCalls.log -------------------------------------cut-------------------------------------- Each time you press the 'Chatlog' button, you get a list of all people who tried to page you. Of course, this is only an example script, and you can use whatever you want. The last two tricks can also be used in other programs, such as 'Cliva' or 'ToolsDeamon'. 1.10 LEGAL STUFF POWERCHAT IS SHAREWARE. IT MAY BE FREELY DISTRIBUTED AS LONG AS THE PACKAGE IS STILL IN IT'S ORIGINAL FORM. ALL FILES IN THIS PACKAGE ARE, UNLESS OTHERWISE NOTED, COPYRIGHT (C) DIGITAL INTELLIGENCE. THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS". NO REPRESENTATIONS OR WARRANTIES ARE MADE WITH RESPECT TO THE ACCURACY, RELIABILITY, PERFORMANCE, CURRENTNESS, OR OPERATION OF THIS SOFTWARE AND DOCUMENTATION, AND ALL USE IS AT YOUR OWN RISK. NEITHER DIGITAL INTELLIGENCE NOR THE AUTHOR(S) ASSUME ANY RESPONSIBILITY OR LIABILITY WHATSOEVER WITH RESPECT TO YOUR USE OF THIS SOFTWARE AND DOCUMENTATION. NEITHER DIGITAL INTELLIGENCE NOR THE AUTHOR(S) ARE OBLIGED TO REMOVE BUGS OR CREATE UPDATES. IF YOU DON'T AGREE WITH THESE TERMS, DO NOT USE THIS SOFTWARE. BY USING THIS SOFTWARE YOU AUTOMATICALLY AGREE TO THESE TERMS. You may use the unregistered version of PowerChat for a period of 30 days. After this period, you must either become a registered user or remove PowerChat from your system. If you want to register to PowerChat, please fill in the Registration.form and send it to Digital Intelligence. The registration fee for PowerChat is 20 Dutch guilders (approx. 12 US dollars). Paying the registration fee can be done in 3 ways : o Sending a Eurocheque o Sending cash (In either Dutch Guilders or US Dollars) o An international postal order Please don't use any other methods of payment, additional costs involved in the use of a postal order are for your own account. For further details, see the included Registration.form After you have registered you'll receive a registration card with a keycode on it. You can use the makekeyfile program (included in the original PowerChat archive) in combination with the received keycode to create a keyfile. After you have created the keyfile, PowerChat will no longer show the 'This is an unregistered...' text when a chat is ended. The keyfile will also be valid for newer versions of PowerChat. 1.11 CONTACTING DIGITAL INTELLIGENCE If you want to contact us, write to : Digital Intelligence J.J. Allanstraat 222 1551 RR WESTZAAN Holland Digital Intelligence's BBS : +31-75-703832 Fidonet: 2:281/218.10 (Or via mail to Joep Grooten in the DLG_CHAT or DLG_DEV mail areas) 1.12 THANKS Thanks to (in no particular order) for contributing to PowerChat : Wim Rumping, Stanley Merkx, Kevin Miller, Albert J. Brouwer, Brian Bonner, Rick Aubin, Michael Mac Nessa, Glyn Hughes. And, of course, to all registered users of PowerChat ! 1.13 HISTORY This chat program started in 1992 when I saw the double window chat when I chatted with someone on a UNIX machine. I wanted the same kind of chat for the BBS I maintained for a local computer store so I wrote ChatUtil which worked fine. (no scrolls, when a user reached the bottom of a window, the cursor would jump to the first line of the window). 10-Mar-94 V1.0 Completely rewrote ChatUtil, this time it's called PowerChat. added scrolls/line editing/logging/languages/one chat per x minutes/3 kinds of wrapping/kill button/gui for sysops. (A lot of enhancement requests from Wim Rumping the same day, thanks Wim) 11-Mar-94 V1.1 Added (answered) in the ChatCalls.log file. Added configurable line character (instead of hardcoded '-'). Added option to use aliases. Number of sysop pages didn't increase in previous version, fixed. Added script file support for answered and unanswered sysop pages. Broadcasted messages are now displayed while chatting. Added Font support, chat delay override, redraw screen, backspace to previous line, already chatting detection. 14-Mar-94 V1.2 Added code to interrupt a user with a chat. Added checking of too many or too less strings in the strings.txt file. Added listview in the page window for reasons why you don't want to chat. ntsc support. Better broadcast intercepting. Workbench screen will now move to the position of the page window. 15-Mar-94 V1.3 Added up and download. Added activate page window option. 30-Mar-94 V1.4 Added carrier detection. Made output a little faster (no more inserts when they aren't needed). Little bug fixed (sometimes the cursor would go to the wrong window when using cursor keys). %switches can now be used in the textfiles and strings. Added the togglesysop command. Little filename bug in the upload filerequester fixed. After a file transfer, broadcasted messages got lost, fixed. Made colors configurable. Added configurable send delay. Added send delay. 15-Apr-94 V1.5 Wrapping is now possible when characters are right of or under the cursor (no more annoying flashes !). Removed mungwall hit (reported by A.J. Brouwer). Changed Upload/Download to Send/Receive. Changed screen clearing code to work with VLT. Made paths for logfiles configurable. Users time can now be stopped/increased/decreased. Added action strings for chatting/send/receive. No more 'funny output' with different font settings. Made wait after file transfer a little longer to prevent corrupted output. Added screenmode requester. 14-Jun-94 V1.6 Added edit/validate user. Powerchat now checks if a user is up/downloading before breaking in (bug reported by Rick Aubin). A script can now be executed when the sysop is signalled. The PowerChat screen now has an invisible depth gadget. User notes can be read.