home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
098.lha
/
CoComm_4.0
/
shortdox
< prev
next >
Wrap
Text File
|
1986-11-20
|
33KB
|
670 lines
***********************************************************************
************** ***************
************** This file refers to CoComm Revision 4.00 ***************
************** ***************
***********************************************************************
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
***********************************************************************
***********************************************************************
Beginning with 4.00, CoComm is compiled with Lattice 4.0 C.
This compiler is a SIGNIFICANT departure from the 3.1 version
that was previously used to generate CoComm; please report any
problems with CoComm's operation immediately To ben Blish on
CIS AmigaForum. Thank you.
***********************************************************************
***********************************************************************
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. <grin>
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 three 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 an ':x', the 'x' is a parameter a-z or A-Z,
a numeric register - the text will be "43" if
the value in the register is 43.
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 is a numeric register control command; you follow it with
a register A-Z (not case sensitive) and then one of four
items; '+', '-', 'L"number"' or '0'. The + increments
the register, the - decrements it, the L"number" loads it with
the number, and the 0 clears it. So, you could say: :p0
and that would clear register P. You could say, :T+ and that
would increment register T. You could say, :uL"45" and that
would load register U with the value 45. values can be up to
six digits in length, 1 digit minimum. You use these in
conjunction with the "#" jump and "!" call operations,
described next.
"#" - 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.
Optional conditional jump uses another set of syntax;
if the '#' character is followed by a ':' character or a
';' character and a letter a-z or A-Z, then the jump will only
occur if that numeric register is ZERO or NONZERO. Used like
this: #:q03 This statement says that IF numeric register Q
contains zero, THEN we jump to key number 3. Otherwise, execution
continues in this key. If you say, #;t04 this means:
IF numeric register T is nonzero THEN we jump to key number 4.
Otherwise, execution continues in this key.
"!" - 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.
Optional conditional call uses another set of syntax;
if the '! #' character is followed by a ':' character or a
';' character and a letter a-z or A-Z, then the call will only
occur if that numeric register is ZERO or NONZERO. Used like
this: #:j09 This statement says that IF numeric register J
contains zero, THEN we call key number 9. Otherwise, execution
continues in this key. If you say, !;M14 this means:
IF numeric register M is nonzero THEN we call key number 14.
Otherwise, execution continues in this key.
";" - 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 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
* Update history from 3.13:
3.13 - bug fix - review buffer trashing system memory lists
3.14 - 16 line history for chat window
3.15 - register handling, inc, dec, clr, load, print, jump, call.
**** - no version 3.15->3.99
4.00 - Compiled with Lattice C ( lost 15k in the process! )