*********************************************************************** ************** *************** ************** This file refers to CoComm Revision 3.12 *************** ************** *************** *********************************************************************** Please note that speech, highlighting, and many other features are only designed to operate when you are in AI CO Mode. When not in co, they are disabled. YOU NEED A LOT OF STACK FOR COCOMM - 20K MINIMUM!!!! OR GURU!!!!! You should NOT try to initiate Ai Co mode unless you are in Co on CIS. If you do, CoComm will "hang" until you press a ^C character, at which time it will abort the Ai Co request. Ai Co mode precedes EVERY line with ^U, ^H, ^H, ^H, ^H - if you try and run Ai Co mode anywhere BUT in CIS co areas, you'll confuse the HECk out of whatever host you are trying to communicate with! For CIS communications, use 8 bits, 1 stop bit, no parity. *********************************************************************** *********************************************************************** There is a formal manual for CoComm; it is currently over 30 pages in length, and addresses every feature in CoComm. It is constantly being updated, just like the program itself, and is well worth $15.00 - which is the shareware contribution asked for CoComm, when and if you decide you want to use it. Please, if you can, do make the shareware payment; If we see that a shareware project can be made to work, we will enter into more of these efforts - some that would be made as commercial products otherwise. Shareware is a new direction for SoftCircuits, and if it works out, you will gain by it. CBB, for SoftCircuits, January 1988 *********************************************************************** *********************************************************************** To setup CoComm, do the following. FIRST: { exec exec.me } NEXT: { METHOD A: { Put coco in a drawer or directory that you wish to run it from. cd to that directory makedir ConfigLib makedir CaptureLib copy default.Config to ConfigLib } OR METHOD B: { Put coco in a drawer or directory that you wish to run it from. copy default.config to s: } } THEN: { run coco or coco or... click on the icon; it will run under Wb just fine. } *********************************************************************** Some things you might like to know: When you download a new Version of CoComm, use the def.config file supplied in the ARC to build your own default.config file again; This prevents any differences in .config file type from causing you any confusion. If you wish to use your previous file, then make SURE you check ALL of the prefs entries, and ALL of the locator entries to be sure they're ok. If they are not, things can get.... well, funny. CoComm is uploaded with itself. Make of that what you will. You can close the following windows by pressing the ESC key, if you are NOT entering text into a string gadget at the time, and the window is active (selected): The /sen manager window; The Locator window; The Review Buffer window; In this window, the up-cursor and down-cursor keys will scroll the contents just like the arrow gadgets The Macro Keys window; Be careful - if you have a cursor in a text gadget, and you press the ESC key, then the ESC character will be entered into that text gadget instead of closing the window! The Prefs window; The configure files save the following information: The main windows size (only used on startup) The main windows position (also only used at startup) The Chat windows size (also) The Chat windows position (startup only) chat status - on or off. all of the names and ppn's in the locator window The baud rate (Only used at startup) parity (Only used at startup) word length (Only used at startup) stop bits (Only used at startup) the palette colors used when cocomm is operating the underline, boldface, and italics settings Highlight pen choices for: sen's system msgs normal co message name normal co message contents brackets around co message name Preferences; Your name Review buffer controls Chat window status (on or off) the path to look for capture files the path to look for config files the extension to look for on capture files the character position where the auto word-wrap activates your word-wrap trailer string your hard c/r trailer string if the program cannot find it's startup file, it will setup some simple defaults. The first thing you should do is change all the settings to ones you approve of, and then save a file called "default.config" either in the ConfigLib subdirectory or in your s: assign. Cocomm initially looks in ConfigLib, if it can find it. Then it looks in s:, so if you have default.config files in both places, it will use the one in configlib, rather than the one in s:. Function keys are not buffered - this means that you can set them up with things like *"o/u co"| for a status report, and press the key even though you're in the middle of a line in the chat window... it won't disturb you, and the status report will come up in the log window. In the config file supplied with this ARC, you will find comments in each of the function keys. To read them, open the function key window using either Right/Amiga/K or the menu entry, click in each key text area in turn, and scroll the text using the left and right cursor keys. Then study this section to learn how each key is programmed. In a function key definition, you can use the following special characters: "^" - this means the next char is a control char. IE: ^H for a backspace. "|" - this is a newline... just like hitting return. "`" - this means EVERYTHING after this char is ignored; a comment. "~" - this causes a short delay. ">" - This starts the function key timer. You can start any funtion key with the timer; Syntax is: >nn"x" where nn is the function key number and x is the time, which is a positive number which may be 1 through 99999 - each unit is 1/10th of a second. If you wish to disable the timer, use the "<" function, described next. When the timer times out (If it does) the function key specified will be started. This timer has a range of over 27 hours. "<" - This stops the function key timer; it will not time out, and the function key specified in the ">" statement will NOT be executed. "(" - this "SETs" a watch string. Syntax is: ("AnnSTRING" A = 1 character, A-Z, upper or lowercase: a match register. nn = 2 digits, 01-20: a macro key number. STRING = ASCII: a text string. Once set, until you execute an UNSET (see next item) for this watch string, EVERY time this string is encountered, except during file transfers, the specified function key will be invoked. There are 26 watch strings, 1 for each letter of the alphabet. IMPORTANT NOTE: match registers A-M are CASE SENSITIVE! match registers N-Z are NOT! So; ("A10testING" Will ONLY match this string: testING But: ("N10testING" Will match any of these: testing, TESTING, TESTing, testING, tEsTiNg, TeStInG. Either one would start key F10 executing upon a match. ")" - this UNSETs a watch string. Syntax is: )A where A is 1 character, A-Z, upper or lower case. Once unset, this watch will no longer be functional until another SET operation occurs for it. "@" - this turns the capture buffer on and off. It is followed by a quoted string; ie: @"df0:capfile" this would begin to capture to the file df0:capfile. To turn capture off, use this syntax: @"" that will close the capture file. "*" - This sends a string to the narrator, the printer, or the screen. The string can be either plain ASCII text followed by a quote, or it can be a 'handle' as recieved by the program on a recent line. Syntax is as follows: *"yxSTRING" where 'x' can be one of the four following options, upper or lower case: S - Speech; Text sent to the narrator. W - Window; Text sent to the window. P - Printer; Text sent to the narrator. O - Output; Text goes to CIS, out serial channel. and where 'y' is an OPTIONAL field that can be one of two things; if an '+', then the text is taken from the LAST input line from a CO level line. If an '-', the text is taken from the LAST input line from a /sen level line. If you use the y option, then the STRING portion is omitted, as the string data will come from internal registers. "\" - This loads a new .config; you can use it to run sequences of function keys limited only by disk space. Syntax: \NN"filename" (.config is added automagically) Where NN is the function key to be started after the load completes. "=" - This initiates CoComm functions. You place a single character after the "=" character, and it performs a function. These characters may be upper or lower case. =A "Ai Co Mode On" =B "Buffered Chat window On" =C "Close Chat window" =D "Disable Ai Co Mode" =F "Flash screen" =Q "Quit CoComm" =R "Review Buffer to Front" =S "Workbench Screen to Front" =U "Update /sen list" =W "CoComm Windows to Front (activated)" NOTE: if the Chat Window is open, then it is the window that gets activated; If not, then the main log window is activated. "+" - This controls a 'beep' feature. It has two three-digit numeric parameters; Use it like this: +"xxx"yyy" The 'xxx' parameter is the duration of the note; the larger, the longer it lasts. The 'yyy' is the period, or tone of the note; the larger, the lower the tone. "&" - this controls the send file feature. It is followed by a quoted string; ie: &"df0:sendfile" This would send the complete file to the serial output. Filename required. Operation can be halted by a control C. "$" - this, when placed before another of the special characters, causes that character to be emitted normally; IE, putting $| in a macro will send the "|" char, not a new line. "#" - this means that the next two chars choose another macro key; ie; #03 will start key F3 executing.... use 01-20. This is a "jump" operation; meaning that once this has occurred, the key with the #nn instruction will NOT resume operation. ";" - This invokes a standard intuition style requester. You supply a function key number that may be executed in some cases, and four text strings. If the user presses the left button (Which matches string #3) then the function key continues execution; if the user presses the right button on the requester, then the function key named in the function is started up. Syntax is as follows: ;NN"1st line"2nd Line"Positive Text"Negative Text" The first parameter (NN) is a function key number. If the user presses the right button in the requester, then this function key is jumped to and execution begins in it. You MUST supply all four text strings, especially the text for the positive button and the negative button. Example: ;"No Mail - proceed to"next operation or quit"-Proceed-"-Quit-" The first two strings are limited to 80 characters; the positive text and the negative text are each limited to 20 characters. "!" - this means that the next two chars choose another macro key; ie; !03 will start key F3 executing.... use 01-20. This is a "call" operation; meaning that once this has occurred, the key with the !nn instruction will resume operation as long as the key that was called does not cause an abort for some reason. There is no corresponding return statement, except in a (%)compare... called keys return when they complete, IF they complete, or when a (%)compare fails that has a "B" specification in the fail field. "%" - this is a combination string match/timing controller; it compares a string against incoming data; if the string matches within the specified time, then execution continues in the same key at the next item. If it fails, then the operation specified in the "fail field" is performed. syntax is as follows: %"xSTRING"VALUE" where: "x" is required: it is the "fail field", and can be: (upper or lower case) any of the following items. The fail field tells the compare what to do if the compare fails. R - which will Restart the key if it times out S - which will Stop the key if it times out C - which will Continue the key if it times out. Knn - where nn is a macro key number to be executed if this times out. (Jump) See the "#" cmd for details on jumps. Pnn - where nn is a macro key number to be executed if this times out. (Call) See the "!" cmd for details on calls. B - go back to calling key... if key was called, and this compare fails, then control returns to calling key. If the key was NOT called, then execution terminates as with the "S" option. STRING is an optional text string, which, if matched within the time specified by the VALUE field, will cause the key operation to continue. VALUE is an optional positive number, representing representing 10ths of a second, that is used to limit the amout of time that the STRING is checked for a match. The quotation marks are absolutely required! The operation of the "%" command can be aborted during a wait by pressing the CTRL and C keys together. A requester is presented, and you can select ABORT or CONTINUE. ABORT will stop the key from doing anything else. CONTINUE will do the _next_ operation in the function key - not continue the wait you interupted. Here are some examples of the "%" command's use: %"sCONNECT 1200"200" -- waits for 20 seconds, checking for the occurance of the string "CONNECT 1200". If not found in 20 seconds, the key stops running. %"cCONNECT 1200"200" -- waits for 20 seconds, checking for the occurance of the string "CONNECT 1200". If not found in 20 seconds, the key continues running. %"rCONNECT 1200"200" -- waits for 20 seconds, checking for the occurance of the string "CONNECT 1200". If not found in 20 seconds, the key starts all over again. See the example below for a practical reason to do this. %"c"" -- Doesn't do anything, just continues. %"K04test"100" -- Starts macro key F4 if the string "test" is not received within 10 seconds of starting the "%" cmd. %"sMOO"" -- checks the next four characters against the string "MOO". if they are matched, it will contine. You can only stop this by pressing the control and C keys together, as there is no timeout value. %"c"200" -- Waits 20 seconds, then continues Here is a complete key definition that will keep dialing a number until it connects - and then log you into CIS. (handy, eh?) ~*"o+++"~AT H0|%"rOK"ATDT 555-1212"%"rCONNECT 1200"200"%"sName: "200"CIS| (the following line is the rest of this same key) %"sID: "200"72667,1321|%"sword: "200"YOUR.PASSWORD|%"k02Amiga Forum"600" This definition will not only log you into CIS, but will start function key F2 executing if you are not in the amiga forum within 1 minute after CIS takes your password. Which might be to hang up, or look at email, or whatever. Depends on how you have CIS setup to handle your log on. Although not a complete scripting capability, these features of the macro key processor are enough to automate almost any concievable log on, log off, or any other reasonably set operation. Two complex function key definitions are supplied in the default.config in the distribution ARC file. F11 (shifted F1) will call CIS, and if CIS sends you to the AmigaForum (which it should if you have no email waiting) it will proceed to open a file and read thread new through all the new stuff, then close the file it created and log off, then hang up. Not bad for a macro key, eh? F15 (shifted F5) will call CIS and get you in through all the ids, names, ppns and all of that. You can customize these very easily. First, change the phone number in the front of the key def (unless you live near me!) Then replace "YOUR-PPN" with your CIS ppn #. Then replace "YOUR.PASSWORD" with your CIS password. Then these should work. Note that the F11 key opens a capture file on df0:... either change it to where you want it, or put a disk in there with some room! To clear a sen entry in the sen window, hit FlushOne and then press the arrow gadget to the immediate left of the entry you wish to delete. If you wish to cancel the operation, just close the window after you hit the Flush one gadget but before you hit the arrow gadget of any entry. There are two menu functions that affect sens. One turns the sen operation on and off, the other is handy for when you have /sen't a line to someone and you meant it to go to the normal co level, in public. This function allows you to retransmit your last line. Simply change to the other mode (Amiga/d) then retransmit (Amiga/e). When you are using /sens with another individual who has CoComm, and they are in AI Co mode, you can cause text to be underlined, italicised, or boldfaced. You can do this in any combination, and without worrying about what it looks like to others in Co. To underline, place the '_' character before and after the word or group of words you want underlined. To Boldface, use a '*" before and after the group or word. To Italicise, use the reverse apostrophe: '`' Like this: I did _NOT_ do it! The "NOT" will be underlined. In the locator window, you can put anything before the ppn as long as it does not contain a ":" character. This is used to tell cocomm where the ppn starts. F11 through F20 are shifted function keys F1 through F10. CoComm supports the "Quick" B protocol - files uploaded from your computer will not have to be "chopped", and files downloaded may not have to be either, depending on whether they were uploaded with B or QB protocol. To use QB protocol, follow the prompts in the data library; no action is required by you inside CoComm, other than to answer the questions CIS asks you. All file transfer operations are fully automatic. Simply Choose the "B" protocol option at the prompt where that option is a choice; CoComm will inform CIS that the version of B proto to be used is the Quick version. You can observe the progress of the transfer in the window CoComm opens for that purpose. For Uploads, since CoComm knows all about the file in question, a larger window with more data is displayed. For Downloads, only the number of blocks, retrys, and file name are shown. However, If you notice the size of the file in the DL description (it's there) you can type the number of bytes into the DL status window, and it will give you a running time estimate of dl'ing time. If you wish to abort a quick B transfer, 'hit' the transfer status window's "close" gadget. After a moment, the transfer should complete. If (Especially at 2400 baud) the Quick B transfer seems to "hang up", click in the log window and type a ^U -- several times, if needed. This should get CIS to continue the transfer. Apparently, there are problems with CIS's 2400 baud handling that can cause this. CoComm does absolutely nothing different at 2400 baud; nor is it missing characters or something like that. It is CIS's problem entirely. Speech! works fine, play with, enjoy. CoComm sleeps; this means that when it is not busy, other Amiga tasks can run full speed even while the CoComm window is open and active. Only when CoComm is processing data does it use system CPU time. When the chat window is open, the log window is still active - this is important - if you are sen'ing somebody using the auto-sen capabilities of cocomm, then ALL input to the chat window goes to the person you are senning. If you type into the log window (just click in it), then unbuffered input begins immediately... you can carry on normal co level communications in the log window while you carry on a sen conversation in the chat window. There are a number of control chars you can type into the chat window; First, ctrl H, or the backspace key. Ctrl X, which will cancel the line you have in the window, and ctrl W, which will cancel the last word if you are at the end of the line, and the current word if you are within the line. The chat window has some editing capability. pressing the left and right cursor keys will move the cursor through the text. The delete key will delete the character under the cursor. The backspace key will delete the character before the cursor. SHIFT/left arrow will put the cursor at the beginning of the line. SHIFT/right arrow will put the cursor at the end of the line. SHIFT/up arrow will put the cursor at the next word. SHIFT/down arrow will put the cursor at the previous word. Review Buffer: This option is fairly straightforward. In order to use it, you first open the buffer. Then tell CoComm how many lines you wish it to reserve in the buffer. This is an important decision; If you choose 100 lines, and the conversation you wanted to review was 105 lines long, then you will lose the first five lines. try to be generous... You won't regret it. When the Review buffer is saved, it is saved in an editable format as a normal Amiga ascii text file. Likewise, when you load the Review buffer from a file, it expects a _text_ file... don't go trying to shovel in some binary file! The review buffer is a "concurrent" window; it co-exists peacefully with the main window(s). You can specify a default situation for the review buffer in the prefs window. You can choose it to be opened and allocated, started or stopped, and shown or now shown. If you save the .config file while the review window is actually allocated and the window open, then the window's size and position will be saved as well. So, (for instance, GreG!) if you want the review buffer active all the time, and of a particular size, then select start, open, and showing; as well as specifying the default number of lines to allocate (at 140 bytes of memory / line). CoComm will allocate the review buffer when it starts, and it'll be there all the time unless you turn it off. You can use the cursor up/down keys, unshifted, any time the review buffer window is open to scroll the text in the review window. NOTE: When you use the capture facility, PLEASE do not put files in the ram: device! For that matter, don't run CoComm there, either! Why? (I hear you cry) Because ram:, also known as Blowup.Device, is unreliable, tends to flake your system, and definitely can crash CoComm. RAM: should never be used for anything, if you can avoid it! Since you're planning on using CoComm, you must be a CIS subscriber - so go to the data libraries and download ASDG's VD0: device. It is _far_ better than the CBM supplied ram: device, won't blow up, and furthermore can retain your data through a warm boot if you have expansion memory. Get it! Doubt me on ram:'s instability and general reliability? go to any CLI and type the following; dir "Ram Disk:" But don't do it with anything important in the machine - because you're going to visit the Guru as soon as you hit return. There are LOTS of other known problems with the ram: device. Don't Use It! The terminal type used here is ANSI - both of the windows used for communications in cocomm are Amiga console devices; As far as performance goes, CoComm is fairly ambitious in the way it is structured. The Amiga console devices, while very nice, are not what you would call high-performance. Running two of them, as well as the serial channel and the usual Intuition stuff is a fair demand on the computer. You may experience some performance degradation when running other programs at the same time, though in general I have seen few problems. A technical note - CoComm inherits the priority of the CLI it was started from, so if you have a CLI with a priority of 1 or more, then CoComm will perform better when run with other programs. You can also, if you started CoComm from the CLI, use the SetPri program (also by SoftCircuits - FreeWare on CIS in DL9) to change CoComm's priority to anything you like. Feel free to experiment with it. I'm Ben Blish - I spend a LOT of time on the Amiga Forum. I like CIS, I like the people I meet there, and I'll probably see you there. If you have suggestions, please leave them for me on the forum - NOT in EMAIL. I HATE EMAIL! When you see a msg from me, simply reply to it using the UA option, which will let you rename your msg. You can also give me suggestions in co... assuming I'm there, of course. If you meet any pirates, kick them in the... I mean, explain to them that they're misdirected. Remember - this is shareware - you want more? send 15.00 to us at: SoftCircuits, Inc. 701 Nw 13th Street, Suite C4 Boca Raton, Fl 33432 If you can't afford it, that's ok. Use it anyway, and enjoy! Special thanks to Keith, who helped debug the original standard B proto code; It would have taken much longer to get the first version of CoComm up to the point where it could have transferred files without his knowledge and experience with CIS. Quick B protocol was implemented using methods provided by Compuserve's Russ Ranshaw, converted to generic 'c' code by Paul M. Resch, and modified to work in CoComm by myself. Thanks to Anne, Larry, Doug, GreG, Jim, Steve, and all the co'ers who have been involved in supplying rude remarks... I mean, constructive feedback on the life and times of CoComm. Actually, Anne never says anything rude. But Doug, now... of course, HE tries to run two term programs at one time, so who's gonna listen to him? Not only that - he has been known to use an 8k stack! Ben Blish, For SoftCircuits, Inc. Dec 28th, 1987 CoComm/CBB