Dec 142017
 
COP v.09 Communications package from Italy. Part 1 of 2.
File COP09A.ZIP from The Programmer’s Corner in
Category Communications
COP v.09 Communications package from Italy. Part 1 of 2.
File Name File Size Zip Size Zip Type
#COP.EXE 56079 53624 deflated
ALL.EXP 108 85 deflated
ALL.SCR 893 394 deflated
COP.BAT 142 112 deflated
COP.CFG 529 288 deflated
COP.DOC 79113 23784 deflated
COP.EXP 3093 927 deflated
COP.HLP 792 381 deflated
COP.MAC 4985 1325 deflated
COP.MSG 698 370 deflated
COP.SCR 1264 512 deflated
COP.SHW 117 77 deflated
COPFOS.EXE 64551 61683 deflated
COPSHOW.EXE 29362 28241 deflated
COP_VGA.EXE 6059 5259 deflated
ELAPSED.HEL 197 136 deflated
ELAPSED.HLP 152 111 deflated
GENFIL.EXP 56 54 deflated
GENFIL.SCR 1279 473 deflated
IGNORED.HEL 390 269 deflated
INFO.EXE 49932 48217 deflated
NOTSAVED.HEL 295 222 deflated
NOTSAVED.HLP 295 222 deflated
PORT.BAT 66 57 deflated
QC2.HEL 410 272 deflated
QC2.HLP 406 271 deflated
QCHELP.HEL 6512 2600 deflated
QCHELP.HLP 7130 2912 deflated
REENTER.HEL 447 289 deflated
REENTER.HLP 446 289 deflated
START.NOW 2319 942 deflated
WHAT.HEL 443 284 deflated
WHAT.HLP 443 284 deflated
X00.EXE 10573 10136 deflated
X00.SYS 16607 9432 deflated
XU.EXE 7295 4554 deflated

Download File COP09A.ZIP Here

Contents of the COP.DOC file











C O P
=======

COmmunication Program
Version 0.9
Done in format

(R)egistered Maurizio's House
June 1st 1991
























This package is completely dedicated
to my family.
To my wife Tina and my sons Lorenzo
Beatrice and Elena.
Thank you to them I was enabled to put my
ideas at your disposal.




TABLE OF CONTENENTS
=====================




Welcome to COP.......................
Why another communication program?....
Unpacking COP.........................
Files in COPnn.ZIP....................
Quick Start...........................
Configuration file COP.CFG............
COP Command line......................
Notes on some setting.................
Notes on color setting................
COP messages COP.MSG..................
COP help file COP.HLP.................
Script Language.......................
- An Example..........................
- Language Syntax.....................
- Example. Unattended Downloading.....
Macros................................
- Macro file COP.MAC..................
- An Example..........................
Main Screen...........................
Pop Up Help Screen....................
Expert Language.......................
- Sample Expert File..................
- Expert Rule Format..................
- Device Code.........................
- Event Code..........................
- Action Code.........................
X00 communication driver..............
Help Master...........................
- Using HM with MACRO keys............
- Using HM in Expert rules............
COP in the integrated environment.....
Personal DOS..........................
Archives you need for full COP........
History...............................
Notes for Help Master.................

pag 4



Welcome to COP
===============
COP is a communication program using , a compatible
communication drive, an extensive Script Language, up to 44 user defined
macros via customized hot keys, capable to process rules,
with a complete set of external error free protocols. Multilingual.



My Licence Fee
==============
In spite of 800 hours spent in developing COP during my time, this
package is free of charge for personal use. Do as many copies you like for
your friend. However don't sell it, don't make any kind of profit outside
shareware umbrella. Any commercial use of COP must be agreed with the
.



My pay
======
My pay is that you really enjoy using COP discovering the powerful of
communicating not between cold pieces of iron, terminals and computers, but
really between different people having different culture with different
habits speaking different languages, around the world.



My English
==========
The following document has been written in tongue. Fill free to
do any translation you want into Queen's English or true American. What I ask
to you is to have back your translation to improve.



My preferred sentence
=====================
"Plerique amicos, tamquam pecudes, eos potissimum diligunt, ex quibus sperant
se maximum fructum esse capturos". (Cicerone 106 B.C.)










Maurizio Ammannato
Via Preguda N.60
22049 Valmadrera (CO)
---------------------
ITALY

pag 5



Why another communication program?
==================================
Well, for three main reasons. After more than 15 years in communication, I've
used many packages. Each of them excellent for some aspect but, just for my
daily use, no one having at the same time exactly what I like and need. First
one is good for script, second one for macro, the third for user friendly
screen.




First Reason
------------
I have now what I need and like.



Second Reason
-------------
While doing that for me I've thought to you too.

If you want to change all comments and help messages in your tongue, do it.
If you want to change completely pop up help, do it.
If you want to link your application through hot keys, do it.
If you want to exe your favorite file transfer protocol,do it.
If you want to edit files with your usual text editor, do it.



Third Reason
------------
This program tries, for the first time as well as I know, to apply some
Expert Rules to an end-user communication program, allowing you to have a
more 'intelligent' conversation with the application running on the other
side of the line.

If I send a wrong command and host replays simply with a "WHAT?", what really
can I do? Could be wonderful to have a simple rule in a simple file
like that telling COP :

"If host answers back with a "WHAT?", then execute Help Master program on PC
just to know how to go head in more details"

"If I'm sending something wrong to host from my keyboard advise me to pay
more attention"

"If during connection capture a special word from host, please set DOS
Errorlevel to a specific number"


Well you can do it.



There is really another 4th reason. It's free of charge!

pag 6



Unpacking COP
=============
Create COP directory. Use utility to unpack COPnn.ZIP into COP
directory :

C:\COP\PKUNZIP COPnnA
C:\COP\PKUNZIP COPnnB
C:\COP\PKUNZIP nnnnn


Erase all .ZIP files => C:\COP\erase *.zip
Take .ZIP files on diskettes as your back-up.



Files in COP distribution files
===============================
README.NOW To know how to start
COP.BAT COP batch file
#COP.EXE Checks for X00 presence (as or )
COPFOS.EXE Main COP program
COPSHOW.EXE Display LOG file after connection
COP_VGA.EXE Change FONT character if VGA screen/board
COP.CFG COP configuration file
COP.MSG COP external messages and comments file
COP.HLP COP external help file
COP.MAC COP files with MACROs
COP.DOC COP manual (in format)
HM.EXE Help Master utility
HM.CFG Help Master Configuration file
HM.MSG External HM messages and comments
HM.DOC Help Master manual (in HM format)
COP.SCR Main COP script file
COP.EXP COP expert rules file
GENFIL.SCR Another script files example
GENFIL.EXP Another expert rules file
WHAT.HEL file used by Expert Processor
QC2.HEL ASCII files used by Expert Processor
ELAPSED.HEL ASCII files used by Expert Processor
NOTSAVED.HEL ASCII files used by Expert Processor
REENTER.HEL ASCII files used by Expert Processor
QCHELP.HEL ASCII files used by Expert Processor
POP.BAT To execute #POP.EXE program
#POP.EXE Pop Menu for Integrated Environment
POP.DAT Configuration and data ASCII file
POP.DOC Brief Pop Up Menu Documentation
X00.EXE TSR version of X00 comm driver
X00.SYS Device version of X00 comm driver
X00USER.DOC X00 documentation.
XU.EXE Utility to know more about your comm board
PORT.BAT To know more about your Comm Port
ALL.SCR Script file for generic connection
ALL.EXP Related Expert Rule File
SZMODSML.EXE Shareware External Protocol (X/Y/ZMODEM) from SZMOD131.ZIP
SZCONFIG.EXE To configure SZMODSML.EXE
SZMODEM.CFG Configuration File for SZMODSML.EXE
ED.EXE Small shareware Editor
ED.DOC It's documentation

pag 7



Quick Start
===========
If you are "communication aware", you can start COP now, otherwise skip this
section and continue reading next page. After files, you have to
tell COP something about your MODEM or PAD or PABX or whatever you have to
connect your host.


When COP starts, it simply opens communication port with the
found in COP.CFG file. It looks for .SCR file and executes its script
commands. If you want to set parameters, do it in the .SCR file. If
you want to tell COP to pick phone and call remote, do it in .SCR file.


*****************************************************************************
TO START QUICKLY YOU NEED TO MODIFY ONLY THE FOLLOWING FILES
COP.CFG COP.SCR
*****************************************************************************



Quick Start Procedure :

1) Edit and Modify COP.CFG to set your COMM parameters (speed,bits,etc)
=======================================================================

2) Edit and Modify COP.SCR file filling lacking fields :
========================================================
send "ATD........." you need to write here P for pulse (ECC)
or T for tone (USA) and access phone number

receive "CONNECT 2400" or "..1200" or "..2400/REL" depending on your
modem values

send "UserId,Password" again fill this field with your values

3) Execute: COP
========================

4) Once connected press Alt-H keys for on line help
===================================================

5) Send a 'bye'
===============

6) Press Alt-X to quit
======================

7) Execute COPSHOW to see off-line just finished session.
=========================================================



N.B.
COP is ready to start with COM1 or COM2. If you need other ports, read
X00USER.DOC and modify X00 parameters in COP.BAT (TSR option) or DEVICE=....
in CONFIG.SYS (device option).

pag 8



COP.CFG
=======
You have to check COP.CFG to accept or modify some values.
As an example I report some usual values.


'------------------------------------------------------ COP.CFG file
PORT=1 port number (from 1 to 4)
SPEED=2400 modem speed (from 300 up to 9600)
PARITY=E E for Even, O for Odd, N for None
BITS=7 7 for ASCII transmission or 8 for binary
STOP=2 number of stop bits (1 or 2)
ECHO=ON Send input echo to local terminal
HANG_UP=ATH Line HangUp string (depending on modem)
TIMEOUT=60 Script file time-out
RAM=NO Fastest device (RAMDISK,etc. Write NO or devicename)
SOUND=Y Sound on/off
BREAK=0 Break decimal value (0 = TRUE electrical Break)
SCRIPT=COP.SCR Default script filename
EDITOR=ED Editor
FLOW=ON Flow on/off
AUTO_BREAK=Y Automatic break when uploading ASCII file
CAPTURE=ON Capture file on/off (Alt-l command)
'-------------------------------------------------------- Color Section
F_MAIN=15 Main window Foreground color
B_MAIN=1 Main window Background color
F_TXTM=7 Host text Fore color
B_TXTM=1 Host text Back color
F_OUT=11 Terminal text Fore color
B_OUT=1 Terminal text Back color
F_DESK=15 Help Desk window Fore color
B_DESK=2 Help Desk window Back color
F_TXTD=0 Help Desk text Fore color
B_TXTD=2 Help Desk text Back color
F_HELP=15 Help window Fore color
B_HELP=7 Help window Back color
F_TXTH=0 Help text Fore color
B_TXTH=7 Help text Back color
F_INPUT=15 Input window/text Fore color
B_INPUT=4 Input window/text Back color




COP Command Line
================
You can execute COP giving some parameters directly, thus in the command
line, TO OVERRIDE default COP.CFG values on the fly. For example :


COP MY-MAIL /PORT:2/SPEED:4800


tells COP to change PORT and SPEED values found in COP.CFG, then to execute
MY-MAYL.SCR script file.

pag 9



You can change PORT,SPEED,PARITY,BITS,STOP values, writing them in any order
but with NO BLANK in the middle, using "/" (decimal 47) to separate
PARAMETERS and ":" (decimal 58) to separate new VALUE from PARAMETER.


Full command line may be :

COP MY-APP /PORT:1/SPEED:2400/PARITY:N/BITS:7/BITS:7
P S
r c { New Values }
o r
g i
r p
t




Notes on some Setting
=====================
- RAM. If you have a fast device (RAM disk, VIRTUAL disk, etc.)
giving the name of that device, COP loads there some temporary files
speeding up some procedures.
(i.e. if you have a VIRTUAL disk on D:, write RAM=D:)

- HARD BREAK. Leaving BREAK=0, COP sends to host an electrical break

- SOFT BREAK. When you use a decimal value, you have to tell the host of
changed value (i.e. if the value is decimal 1, send to GE IS host
following string SET B^A (control A) that is keyboard way to code
decimal value. Follow this procedure :

. in COP.CFG file write => BREAK=1
. in script file => send "SET B^A"


- FLOW. It's ABSOLUTELY useful to use xon/xoff handshake protocol. COP
uses it (if ON) quite often (stopping video scrolling, buffers
overflows, etc.) If you decide to use it YOU HAVE TO TELL HOST of
that. In the case of GE IS Host follow this procedure :

. in COP.CFG file write => FLOW=ON
. in the script file => send "SET FN,60"


- AUTO_BREAK. This simple command tells COP to send automatically a
break when an ASCII file ends.


- CAPTURE. Deciding to have a LOG file, COP saves in COP.LOG binary
file all communication traffic. That allows you, activating Alt-l
on-line command, to navigate from the beginning of connection up
to last row while still connected to the host. NO LIMIT in the number
of characters you can see. Once off-line, you can still navigate all
communication session by executing COPSHOW off-line program. Each new
connection purges old COP.LOG file. Rename it if you want to save it.

pag 10



Notes on Color Use
==================
You can choice colors depending on following table.


F_ stands for Foreground (0 to 31)
==================================


Monochrome display Color display
------------------ -------------
0 = black when BG 0 or 7) 0 = black 8 = gray
green otherwise 1 = blue 9 = light blue
1 = uderlined green 2 = green 10 = light green
2-7 = green 3 = cyan 11 = light cyan
8 = black when BG 0 or 7 4 = red 12 = light red
light green otherwise 5 = magenta 13 = light magenta
9 = light underlined green 6 = brown 14 = yellow
10-15 = light green 7 = white 15 = light white
16 = blinking black when BG 0 or 7 add 16 for blinking
blinking green otherwise
17 = Underlined blinking green
18-23 = blinking green
24 = blinking black when BG 0 or 7
blinking green otherwise
25 = light blinking underlined green
26-31 = light blinking green



B_ stands for Background color (0 to 7)
=======================================


Monochrome display Color display
------------------ -------------
0-6 = black 0 = black
7 = green when FG 0,8,16,24 1 = blue
black otherwise 2 = green
3 = cyan
4 = red
5 = magenta
6 = brown
7 = white

pag 11



COP.MSG
=======
These files are pure , thus you can modify them easily with your
preferred text editor or word processor (document option).

Remember only to MAINTAIN same string size, less than or equal to allowed
length, never more than original size.


The following is a sample COP.MSG file (English version) :

"................."
"Alt-B = Break"
"Alt-H = Help"
" Input Required "
"ESCcape Script"
"Filename:"
"ASCII File Closed"
" Home Alt-l to quit End PgDn PgUp"
"Wrong command in SCRIPT file"
"Wrong option in COP.CFG file"
"time-out waiting for SCRIPT string"
" Capture File "
"FOSSIL drive not found or version < 5"
"Client Support"
"ESC to escape from Expert Window"
"................................."


Each message has its length. Try to maintain the same size in your
translation.

pag 12



COP.HLP
=======

This in an example of COP.HLP file (English version):

"a-B Send a Break"
"a-C Capture On/Off"
"a-D Shell to DOS"
"a-E Edit File"
"a-F Flow On/Off"
"a-I Last Input"
"a-H This Help"
"a-L List Capt File"
"a-M Mask Password"
"a-O EchO On/Off"
"a-P Print On/Off"
"a-Q Force Xon"
"a-R Re-Dial"
"a-S Force Xoff"
"a-V Video On/Off"
"a-X Quit Program"
"a-1 ASCII Upload"
"a-2 ASCII Download"
"SCRoll on/off video"
"ESCape current job"
"UpLoading"
"a-F1 XMODEM Up"
"a-F2 YMODEM Up"
"a-F3 ZMODEM Up"
"a-F4 KERMIT Up"
"DownLoading"
"a-F7 XMODEM Down"
"a-F8 YMODEM Down"
"a-F9 ZMODEM Down"
"a-F10 SZMODEM Down"
"Send Macro"
"s-F1 Start XM Up"
"s-F2 Start XM Down"
"Other Commands"
"c-F1 Full Help"
"c-F2 Available Mem"
"c-F3 Sorted Dir"
"c-F4 Lotus 123"


In this case the message length is fixed to a maximum of 19 characters per
help message.

NO LIMIT in help file dimension. It depends on your MACRO use and detail
level you wish. You could have for instance more than one line per help :

"a-l List Capt File."
" This allow you"
" to navigate cap"
" file from beg"
" up to end."

pag 13



SCRIPT Language
===============
Script languages allow PC to have unattended connections with remote hosts,
partially (to automate for example procedure only) or totally for
example to build overnight procedures.

This script language has simple English like language composed by a syntax
(send, receive, waitfor), variables (strings or integers) and commands
(@TIMEOUT(n), @ERRORLEVEL(0)).


You can prepare as many script files as you need to connect different
services on same host or different .


*****************************************************************************
C:\COP\cop (COP executes default script file, probably COP.SCR)
C:\COP\cop e-mail (COP executes e-mail.scr)
*****************************************************************************


You have only to use your preferred text editor building a new file
preferably with .SCR extension (standing for SCRipt).



Before discussing on each language element a brief example of an host
connection to GE IS Services.

pag 14



An example
==========

'------------------------------------------------ COP.SCR script file
*** start label ***
:Start:
@WAIT(5)

do(3)
@TIME_OUT(3)
send "~ATZ"
@CR
exitfor "OK"
@LF
loop

if "OK" then :SendPar:
goto :ScriptEnd:
:SendPar:
do(3)
@TIME_OUT(3)
send "~ATQ0V1\V1X1S0=0&D0:T3=0%O0\J0%E0\E0\N3%C1"
@CR
exitfor "OK"
@LF
loop

if "OK" then :Main:
goto :ScriptEnd:
:Main:
@TIME_OUT(60)
send "~ATDP[T]......."
waitfor "CONNECT 2400" or "CONNECT 2400/REL" else :Start:
send "~H~H~H"
receive "U#="
:Again:
*** Alt-M Mask following password
[50]
send "~HOW00000,areyou"
*** Alt-M Now usual way
[50]

*** wait for 30 secs READY or UNITS, then goto check label ***
@TIME_OUT(30)
waitfor "READY" or "UNITS" else :SomeThingWrong:

*** If all OK capture file on ***
@CR
[46]
*** set some network parameters (flow control on) ***
send "~SET FN,60"
receive "READY"
@CR
*** now you are on-line with host ***
@ERRORLEVEL(0)
end

pag 15



:SomeThingWrong:
*** If host string is REENTER, then goto label :Again: ***
if "REENTER" then :Again:
*** If host string is NOT AVAILABLE then goto end ***
if "NOT AVAILABLE" then :NoThatSystem:
goto :IdontKnowWhy:


:ScriptEnd:
@ERRORLEVEL(1)
end


:NoThatSystem:
@ERRORLEVEL(2)
end


:IdontKnowWhy:
@ERRORLEVEL(3)
end

pag 16



Language elements
=================

@command This kind of command identified by a "@" at the beginning
-------- tells COP to do something locally on PC, they don't affect
Host communication; they are :

@CLS Clear Screen

@CR Send Carriage Return to Screen

@LF Send Line Feed to Screen

@WAIT(secs) Waits n secs before executing next command

@TIME_OUT(secs) Reset time-out value

@START_AT(time) Tell COP to start at a specific hh:mm time.

@DATA At the very script file beginning you can store up to 100
'answer strings' useful for loops, i.e.

@DATA
string1
string2
string3
.......
@DATA

@DATA When in a loop, sends what's been loaded into @DATA vector
adding the value of one to internal counter

@ERRORLEVEL(n) Set DOS errorlevel value (you can check for this value in a
.BAT file after COP execution)

Output String That's the string sent by host. To check its value put the
------------- string between two quotation marks (dec 34) i.e. "WHO ARE
YOU?"

Input String That's the string you send to host. Quote it between two
------------ dec 34 characters. i.e. "I am"
You can use inside this string following characters :
~ (dec 126) = half second delay (.5 sec)
i.e. "~bye"
| (dec 124) = carriage return
i.e. "string1|string2|string3"
^ (dec 94) = symbol emulating Control key
i.e. ^@ means [email protected]


Label It's identified by two colons (dec 58) at the beginning
----- and at the end of word (i.e. :START:).
It is CASE sensitive.

pag 17



Syntax
======


send Send a string to host.
---- FORMAT = send "string"
EXAMPLE = send "good bye"

receive Wait for a specific string from host.
------- FORMAT = receive "string"
EXAMPLE = receive "How are you?"
COMMENT = COP waits for host string, the number of secs
set up by last @TIME_OUT command, after that
it continues script procedure. Use it when
you are absolutely sure of host answer.

receive(n) Same as before except than the host string MUST start
---------- at 'n' position.
FORMAT = receive "string(pos)"
EXAMPLE = receive "READY(1)"
COMMENT = that means COP has to wait for READY at the very
line beginning (col 1).

waitfor/else Wait for one or more (up to 10) host strings. Then jump
------------ jump to 'else defined' label.
FORMAT = waitfor "READY" or "UNITS" else :goafter:
EXAMPLE = @TIME_OUT(10)
waitfor "READY" or "ready" or "Ready" else :stop:
:all_ok:
COMMENT = This piece of script says COP to set Timeout value
at 10 seconds, to wait then 10 secs for READY or
ready or Ready then if ok to continue sequentially
the script file. Otherwise (else) after 10 secs
tells COP to jump to :stop: label, probably at the
script end.

goto Unconditional jump to specified label.
---- FORMAT = goto :labelname:
EXAMPLE = goto :EndScript:

if/then Conditional jump to specific label.
------ FORMAT = if "string" then :labelname:
EXAMPLE = if "REENTER" then :StartAgain:
COMMENT = this command allows you to check just arrived host
string to test again its value.

:Again:
send "Usenumber,Password"
@TIME_OUR(5)
waitfor "UNITS" or "READY" else :whynot:
.. ok procedure ....
....................
end

:whynot:
if "REENTER" then :Again:
end

pag 18



do/loop Advise COP to repeat nn times the script command between
------- "do" and "loop" statements.
FORMAT = do(times)
.........
loop
COMMENT = look at following example:
:start:
@DATA (load into @DATA vector some values)
string1
.......
string100
@DATA

do(100)
receive "WHAT ELSE"
send @DATA
@CR
loop

exitfor this command allows you to escape from loop
------ FORMAT = exitfor "string"
EXAMPLE = exitfor "OK"
COMMENT = let imagine to send some values to initialize
the modem and to escape when ok :

do(5)
@TIME_OUT(3)
send "ATZ"
@CR
exitfor "OK"
@LF
loop

if "OK" then :GoHead:
goto :EndScript:

[nnn] Tell COP to exe a macro defined in COP.MAC by the nnn value
----- FORMAT = [decimalvalue]
EXAMPLE = [25] (decimal 25 means Alt-P, printer on/off)
COMMENT = Following example tells COP to print all strings
coming from host (first [25] command), then to
close printer (second [25]) :

receive "Command?"
[25]
send "list"
receive "Command?"
[25]

pag 19



You can use following built-in macro codes plus your own:
[46] Capture File Off/On
[48] Send BREAK
[25] Print On/Off
[31] Screen Off/On
[45] Quit Program
[50] Mask Password On/Off
[24] Echo On/Off
[120] ASCII Upload
[121] ASCII Download



[nnn] [xxxxx] Tell COP to execute the macro "nnn" as defined in COP.MAC
using "xxxxx" parameter.
i.e.

[121] [output.txt]
[31]
send "list all"
receive "Command?"
[31]
[121]

This script tells COP to open a PC file called output.txt,
to write there all strings coming from host and to close it
at the end. In the between the screen will be blinded
(command [31]).


You can use with the same procedure all macros you have
defined for uploading or downloading files with external
protocols, i.e. [113] download using .

pag 20



Unattended Downloading Script
=============================
The following is an example of completely unattended downloading session from
services, starting at 01:00 of coming morning and downloading 5 files
from IBM roundtable using external protocol.



'---------------------------------------- Downloading files from GEnie
*
*** load file codes into @DATA variable ***
*
@DATA
21001
21002
21003
21004
21005

@DATA

@START_AT(01:00)

:Start:
@WAIT(5)

do(3)
@TIME_OUT(3)
send "~ATZ"
@CR
exitfor "OK"
@LF
loop

if "OK" then :SendPar:
goto :ScriptEnd:

:SendPar:
do(3)
@TIME_OUT(3)
send "~ATQ0V1\V1X1S0=0&D0:T3=0%O0\J0%E0\E0\N3%C1"
@CR
exitfor "OK"
@LF
loop

if "OK" then :Main:
goto :ScriptEnd:

pag 21



:Main:

@TIME_OUT(99)
send "~ATDP[T]......"
waitfor "CONNECT 2400" or "CONNECT 2400/REL" ELSE :start:
send "~H~H~H"
receive "U#="
send "~ABC12345,pippo|~SET fn,60|TYPE 6"
receive "continue?"
send "~MOVE 615;3"
receive "

revious?"
send "~6"

do(4)
receive "elp?"
send @DATA
receive(1) "?"
send "~d"
receive "to skip?"
send "~4"
receive "dd38"
@WAIT(2)
[113]
receive "(Y/N)?"
send "~y"
loop

receive "elp?"
send @DATA
@TIME_OUT(10)
receive(1) "?"
send "~d"
@TIME_OUT(30)
receive "to skip?"
send "~4"
receive "dd38"
@WAIT(2)
[113]
receive "(Y/N)?"
send "~n"
receive "elp?"
send "~bye"
receive "NO CARRIER"
[45]
@ERRORLEVEL(0)
end

:ScriptEnd:
@ERRORLEVEL(1)
end

pag 22



MACRO PROCESSOR
===============
COP allows you to customize up to 48 hot keys for your personal use, exactly
12 basic Fnn , 12 Shift-Fnn, 12 Ctrl-Fnn and finally 12 Alt-
Fnn keys.


Go ahead by examples.
---------------------
You want to upload a file using protocol, executing external DSZ.COM
program



1) edit COP.MAC adding following row :
[104] [DSZ port %p sx %f] [c] XMODEM Upload
| | | |
| | | | free comment
| | |
| | | option 'c'
| |
| | macro string with parameters %p and %f to be filled
|
| Alt-F2 (chosen from available 48 keys)



To let COP to use this macro, you have thus to define the decimal code of the
hot key (104 means Alt-F1) between two squared brackets, then the string to
execute with parameters (see below) always between brackets and finally an
option (if it exists). For your reminder you can write any comment you want
outside brackets. It's MANDATORY to have in each macro-row no more, no less
than three pairs of squared brackets [] [] [].


DSZ.COM program requires the communication port number and the name of local
DOS file. That is why of %p (for port) and %f (for file).


COP before executing command string, looks for the parameters and fills them
directly (port number, speed etc.) or asks for an input in the case of the
filename.


In above example COP fills automatically %p with the port you are connected
on, then pops up an input window for a DOS filename.

pag 23



You can (or have) to use some options in doing that. When COP processes
MACROs, in reality executes a to DOS, passing program and its
parameters. During the DOS SHELL the communication port can be closed
(mandatory for external protocols) or not (if called program
doesn't use communication port).

That's why of 'c' option which tells COP to CLOSE port during shell.



2) for your reminder, add to COP.HLP file the new hot key command, so that
you can remember more easily the available keys. In this example we have
used decimal 104 that is the code for Alt-F1. Then edit COP.HLP file
and insert :

".................."
"Alt-F1 XMODEM UpLn"
".................."

pag 24



COP.MAC file
============
Now before going head with another example, let give a look at COP.MAC files.


Sample Macro File


You can write any comment you want. Only don't use in your comment squared
brackets ("[" and "]"), which are for COP the string delimiters.


Macro
Code Macro String for uploading (sending) Opt Comments

[104] [DSZ port %p sx %f] [c] XMODEM Upload with CRC
[105] [DSZ port %p sb %f] [c] YMODEM Upload
[106] [DSZ port %p sz %f] [c] ZMODEM Upload
[107] [KERMIT set port %p,set speed %s, SEND %f] [c] KERMIT Upload


Macro
Code Macro String for downloading Opt Comments

[110] [DSZ port %p rc %f] [c] XMODEM Download with CRC
[111] [DSZ port %p rb] [c] YMODEM Download
[112] [DSZ port %p pR1 rz] [c] ZMODEM Download
[113] [SZMODSML port %p speed %s rz] [c] SZMODEM Download


Macro
Code Macro to Send Strings to Host Opt Comments

[84] [/M3XM*** PCTOM3;%f;B] [s] Start XMODEM Up on Host
[85] [/M3XM*** M3TOPC;%f] [s] Start XMODEM Dn on Host


Macro
Code Macro String Opt Comments

[94] [HM COP.DOC] [n] COP.DOC file in HM
[95] [MAP] [w] Available Memory
[96] [SD %i] [w] Sort Directory of %i
[97] [123] [] Lotus 123


pag 25



Available Parameters

%p = write port number in the command line
%s = write port speed in the command line
%f = ask for filename, check it on disk and write it in the command line
%i = ask for an input string and write it in the command line


Available Options

c = close communication port during shell (DTR remains ON)
w = wait any key from keyboard before coming back to terminal program
s = send string to Host
n = don't clear screen while doing a shell to DOS



Built-in Macro Codes (usable in Script file)

Alt-B = 48 Send BREAK
Alt-C = 46 Capture File Off/On
Alt-F = 33 Flow Control On/Off
Alt-M = 50 Mask Password On/Off
Alt-O = 24 Echo On/Off
Alt-P = 25 Print On/Off
Alt-S = 47 Screen Off/On
Alt-X = 45 Quit Program
Alt-1 = 120 ASCII Upload
Alt-2 = 121 ASCII Download


Available User Defined Macro Codes

F1 = 59 Shift-F1 = 84 Ctrl-F1 = 94 Alt-F1 = 104
F2 = 60 Shift-F2 = 85 Ctrl-F2 = 95 Alt-F2 = 105
F3 = 61 Shift-F3 = 86 Ctrl-F3 = 96 Alt-F3 = 106
F4 = 62 Shift-F4 = 87 Ctrl-F4 = 97 Alt-F4 = 107
F5 = 63 Shift-F5 = 88 Ctrl-F5 = 98 Alt-F5 = 108
F6 = 64 Shift-F6 = 89 Ctrl-F6 = 99 Alt-F6 = 109
F7 = 65 Shift-F7 = 90 Ctrl-F7 = 100 Alt-F7 = 110
F8 = 66 Shift-F8 = 91 Ctrl-F8 = 101 Alt-F8 = 111
F9 = 67 Shift-F9 = 92 Ctrl-F9 = 102 Alt-F9 = 112
F10 = 68 Shift-F10 = 93 Ctrl-F10 = 103 Alt-F10 = 113
F11 = 133 Shift-F11 = 135 Ctrl-F11 = 137 Alt-F11 = 139
F12 = 134 Shift-F12 = 136 Ctrl-F12 = 138 Alt-F12 = 140


pag 26



Second MACRO example
====================
Let imagine you are editing an on-line E-Mail message and you've forgot a
number in your local 123 Lotus spreadsheet. It could be very useful for you
to press an hot key, go to 123 program, execute your spreadsheet, then quit
from Lotus and come back to your on line e-mail text with the right number.

Do as following:

1) edit COP.MAC file inserting following command line:

[97] [Lotus] [] Lotus 123. Execute 123 program.

2) edit COP.HLP and insert following help line :

"c-F4 Lotus 123"

In this case we don't use any option because comm port can remain open.



Third MACRO example
===================
While connected you need to access dBASE program and its DB outside COP
directory; exactly on device d:, directory \database\dbase\.

Do as following:

1) edit COP.MAC file inserting following command line:

[98] [dBASE] [] .BAT file to execute dBASE

2) edit COP.HLP and insert following help line :

"c-F5 dBASE"


Now prepare in COP directory the following .BAT (batch) file :

@echo off
d:
cd\database\dbase
dbase
cd\


In this way you can execute any program, anywhere in your PC.

pag 27



Main COP screen
===============
Once executed, cop looks for script file. Writing COP without any filename,
COP uses COP.SCR default filename (or the name defined in COP.CFG). If you
write any other filename, then COP executes that specified script file.


Put in this script file all parameters. You can write here also usual
information like password, project name, etc.


While executing script, COP disables keyboard; only ESCape key can be pressed
to anticipate script end, then you are left on line with host.


Once on line you see in the last 24th line following information:



. Alt-B = Break (on the left)
. Alt-H = Help (on the right)

In the middle you may see :

. Pr Printer ON
. Nu Num Lock ON
. In Insert key ON
. Lg Log file ON
[Up] while ASCII file
[Dn] while ASCII file
. Vd Video ON
. Ec Echo ON
. Ca Cap Lock ON
. Sc Scroll Off
. Mk Mask input ON
. On Flow Control On
[Of] when is Off


depending on active function.

pag 28



ON-LINE HELP
============
There are two different types of on line help commands. The first one is COP
built-in help (from alt-a to ESC keys); the second one depends on the use
you've done of MACRO option.


Now a brief description of first type, the second type is described in the
MACRO section.


Before starting pay attention to following leggenda:
a-x = Alt-x where x is any key to be pressed together with ALT key
s-x = Shift-x where x is any key to be pressed together with SHIFT key
c-x = Ctrl-x where x is any key to be pressed together with CONTROL key


" Send a Break" Force a Break
" Capture On/Off" Disable or enable Capture capability
" Shell to DOS" Go temporarily to DOS. Remember to type EXIT
to come back to COP which remains on-line.
" Flow On/Off" Switch On or Off
" Edit File" Edit a file while connected
" Last Input" Repeat last input
" This Help" Display help file
" List Capt File" Navigate capture file
" Mask Password" Don't display data coming from keyboard
" EchO On/Off" Set echo on/off (for half/full duplex)
" Print On/Off" Printer on/off
" Force Xon" Force Xon
" Re-Dial" Redial host
" Force Xoff" Force Xoff
" Video On/Off" Video on/off (useful while up/downloading
ASCII files)
" Quit Program" Drop connection
" ASCII Upload" ASCII file upload
" ASCII Download" ASCII file download
" on/off video" Stop and resume video scrolling
" current job" Escape window

pag 29


EXPERT SYSTEM for COP
=====================




What we have seen up to now can be 'usual' for a communication program. What
instead is absolutely new is a limited but powerful "Expert" capability.


Too many times I've seen poor users (and I am one of them) in front of the
screen looking at Host's messages like "WHAT?", "WRONG INPUT; RETYPE IT",
"ERROR #546786", "COMMAND UNKNOWN", "CALL YOUR REPRESENTATIVE" or in the best
case "ERROR ...., READ MANUAL AT PAGE 2001".


That's why I try to cover this strong poor user need, just a little, just for
what I can do in my time.




Giving expertise to COP
=======================
You can build as many expert file for COP as you want, depending on how many
services you use or more probably on how many you're preparing
for your non expert users. For example you can have an expert rule file for
your e-mail (i.e. E-MAIL.EXP), or for GEnie (i.e. GENIE.EXP) or for your
client's procedure (i.e. PROC1.EXP). Let me start with an easy example.


COP starts and looks for default COP.SCR script file, then looks for default
COP.EXP expert file. If you instead start COP with following filename:


C\COP\>cop e-mail


COP looks for E-MAIL.SCR script file and E-MAIL.EXP expert file (thus E-MAIL
with .SCR extension for script file and .EXP extension for expert rules).
Both of them are part of an .


This an example of E-MAIL.EXP file with Expert rules for the E-MAIL specific
.

IF [TIME] EQ [30] THEN [disp(elapsed.hlp)] OPTION []
IF [COM1] EQ [WHAT?(1)] THEN [disp(WHAT.HLP)] OPTION []
IF [COM1] EQ [IDLE TOO LONG(1)] THEN [send(|~TTY)] OPTION []
IF [COM1] EQ [** Unknown Cmd(1)] THEN [exe(hm qchelp.hlp)] OPTION [n]
IF [COM1] EQ [FILE NOT SAVED(10)] THEN [disp(NOTSAVED.HLP)] OPTION []
IF [COM1] EQ [NO CARRIER(1)] THEN [drop(1)] OPTION []
IF [KEYB] EQ [good morning(1)] THEN [exe(replay goodmorn)] OPTION [n]
IF [KEYB] EQ [bye(1)] THEN [play(aaggaaf)] OPTION []
IF [KEYB] EQ [BYE(1)] THEN [play(aaggaaf)] OPTION []

pag 30




Sample Expert File


* This file has the rules to let COP to be expert. General rule format :



IF [device] EQ [event] THEN [action(string)] option []




* Device Code Comment

* COM1 First Comm Port
* KEYB Keyboard
* TIME Elapsed Time


* Action Code Comment

* disp(DOS filename) Display filename on screen
* send(string to COM1) Send back a string
* exe(DOS program+parameters) Execute DOS program holding comm line
* errorlevel(number) Set DOS Errorlevel
* print(string) Print string to PRINTER
* save(string) Save string in COP.SAV file
* play(string) Play string on speaker
* drop(sec) Drop line after n seconds
* beep() Beep
* print(@LINE) Print last Host string to PRINTER
* print(@TIME) Print TIME to PRINTER
* save(@LINE) Save last Host string to COP.SAV
* save(@TIME) Save TIME in COP.SAV file


* Available Options

* c = close communication port during shell (DTR remains ON)
* w = wait any key before coming back to terminal program
* s = send a string to Host
* n = don't clear screen while doing a shell to DOS



* Expert Rules

IF [....] EQ [......] THEN [.................] OPTION [.]
IF [....] EQ [......] THEN [.................] OPTION [.]
IF [....] EQ [......] THEN [.................] OPTION [.]
IF [....] EQ [......] THEN [.................] OPTION [.]


pag 31



Expert Rule Format
------------------
An expert instruction must have following format :


IF [device] EQ [event] THEN [action(string)] option []

Which sounds like :


"If from that DEVICE this EVENT happens, then take following ACTION, using
this OPTION" .


Also in this case it's MANDATORY to have 4 pairs of squared brackets in each
command line. In the between any comment you want. You can write above
instruction also in the following way :


IF IT HAPPENS THAT FROM [device] YOU SEE FOLLOWING STRING [event] THEN BEFORE
GETTING MAD TO DISCOVER WHAT DOES IT MEAN, TAKE FOLLOWING ACTION
[action(parameter)] USING THE FOLLOWING OPTION []


There are two constraints : 1) on line for each instruction and 2) 4 pairs of
brackets for each line.



Device Code
===========
Allowed codes are following :


- COM1 communication port N. 1
- KEYB keyboards
- TIME elapsed time in minutes from the beginning



COP checks all strings coming from host [COM1], or/and all string coming from
keyboard [KEYB] or/and spent time [TIME] from the beginning of the
connection.

pag 32



Event
=====
Event represents the string or its portion you want to capture to do
something. Optionally you can write between two brackets at what column (or
string position) to search word.


IF [COM1] EQ [WHAT?]..........

This rule tells COP to search the word "WHAT?" ANYWHERE in coming string.


IF [COM1] EQ [WHAT?(1)].......

This rule tells COP to search "WHAT?" only if it starts from column 1.

If exists another "WHAT?" in any other string position, COP doesn't take any
action. (It's better to use this option whenever possible to don't make too
heavy the processing).


IF device code is TIME, the event simple is a number representing, in
minutes, elapsed time from connection start.


IF [TIME] EQ [30].............

Check clock and if elapsed time if equal to 30 minutes than..



Action Code
===========
If COP captures searched word from COM1 or from keyboard [KEYB] or elapsed
time has been reached then COP takes the specified action.

Action code has this format [action(parameter)] where action is on of
following codes meanwhile parameter is completely free.

Action code can be :


disp(filename) Display filename on screen
------------------------------------------
This command tells COP to display a message in a pop up window, reading it
from an file, using filename convention. The message in the
file must not exceed 17 x 72 dimension (max 17 rows in width and max 72
characters in length).


IF [COM1] EQ [WHAT?(1)] THEN [display(what.hlp)] option []


This rule tells COP to detect WHAT? string at column 1, then to open a DOS
file called what.hlp, to display it on screen in a pop-up window, to wait for
the EAScape key and to continue.

pag 33



send(string) Send back string
------------------------------
This action tells COP to send back to host a string.


IF [COM1] EQ [PLEASE RESPOND] THEN [send(|act)] option []


IF host says you have been idle too much, send back the host command
"activity" just to restart host clock. (The "|" character, decimal 124, tells
COP to send before a Carriage Return).



exe(prog+par) Execute DOS program holding line
-----------------------------------------------
This is one of the most powerful command you can use. In fact you can execute
any stand alone DOS program together with all the parameters it needs while
holding the line.


IF [COM1] EQ [I need help(1)] THEN [exe(hm more.hlp)] option []


This rule tell COP to execute the DOS program called (Help Master)
passing a parameter (in this case a filename), then to wait for program end
and to come back to communication session.


You could also instruct COP to execute another communication program (or
another copy of COP itself) from port 2, to hold parent host line, to wait
for child communication end and to come back to primary communication
session. Use 'c' option in this case.


IF [COM1] EQ [other host] THEN [exe(cop other)] option [c]

pag 34



errorlevel(number) Set DOS errorlevel
---------------------------------------
You tell COP to set the errorlevel you want. This allow you, at
communication end via a BAT procedure, to do what you want depending on that
value.

An example.

1) Prepare a BAT file like following.

@echo off
cop
IF ERRORLEVEL 9 GOTO virus
GOTO end

:virus
SCAN c:
SCAN d:

:end

2) insert into cop.exp file following rule


IF [COM1] EQ [check for virus(1)] THEN [errorlevel(9)] opt []


3) after COP execution, if host sent above string, a .BAT file can test the
value of errorlevel and can take a decision. Read manual to better know
how to do it.

pag 35



print(string) Print string to PRINTER
--------------------------------------
This command tells COP to print a string at the printer.

IF [KEYB] EQ [pippo(10)] THEN [print(pluto)] option []

If from keyboard comes "pippo" string (starting at column 10) then print
"pluto" at the PC printer.



save(string) Save string in COP.SAV file
------------------------------------------
For tracing purpose you can also save in a fixed filename called COP.SAV the
string you want.


IF [COM1] EQ [WHAT?(1)] THEN [save(wrong command sent)] option []



play(string) Play string on speaker
-------------------------------------
To send a musical advise.

IF [KEYB] EQ [good-bye(1)] THEN [play(AAGGAAF)] option [c]
where AAGGAAF represent musical note (A = La, G = SOL, etc)



beep() Beep
-------------
To send a BEEP.


IF [COM1] EQ [WHAT?(1)] THEN [beep()] option []



drop(sec) Drop line after n seconds
-------------------------------------
To drop line when 'event' happens.


IF [COM1] EQ [OFF AT(1)] THEN [drop(4)] option [c]


If from host comes "OFF AT......" drop line after 2 seconds.

pag 36



print(@LINE) Print last Host Line to PRINTER
-----------------------------------------------
For tracing purpose, this command allows you to print last host message when
'event' happens.



IF [COM1] EQ [help] THEN [print(@LINE)] option [c]



print(@TIME) Print TIME to PRINTER
------------------------------------
For tracing purpose, this command allows you to print TIME when 'event'
happens. Together with above option :

IF [COM1] EQ [help] THEN [print(@TIME)] option [c]
IF [COM1] EQ [help] THEN [print(@LINE)] option [c]



save(@LINE) Save last Host Line to COP.SAV
save(@TIME) Save TIME in COP.SAV file
--------------------------------------------
The same as before except that you send @TIME and @LINE to COP.SAV file.

pag 37


X00 DRIVER
==========



In reality you can execute COP in two different ways.
In fact #COP.EXE checks for the presence of the X00 device (it must
be declared in CONFIG.SYS at boot time) equal or greater than version 5. If
it's found, COPFOS.EXE is executed immediately otherwise X00.EXE
program is loaded into main memory, then COPFOS is executed and at COPFOS
end, X00 is removed from main memory. From the user point of view both of
them have exactly same functionality in term of speed, etc.



X00.SYS
-------
This driver is FOSSIL communication services compatible.
FOSSIL (it stands for Fido,Opus,SEAdog Standard Interface Layer) has a large
acceptance in the marketplace. It was born mainly for less MS-DOS compatible
PCs, then step by step enriched with many other utilities so that now it's
quite a comprehensive communication utilities package.


To load FOSSIL drive, copy file into main root DOS directory and
edit CONFIG.SYS file adding following line :


DEVICE=X00.SYS R=4096 T=512 E

and system.
This solution allows you to go faster when executing COP, while it takes
about 12 kbytes of your main memory for ever. (Use that if you communicate a
lot).





X00.EXE
-------
If you prefer to load X00 driver only during communication sessions and
disinstall it at its end, simply don't add the above DEVICE line into
CONFIG.SYS, COP.BAT does it for you just for strictly needed time. (Use this
solution if you communicate sometimes or you don't have a lot of main
memory).




You have both X00.SYS/X00.EXE in this package. For full documentation and use
of FOSSIL, download, from many BBS, X00V12.ZIP file.

pag 38



HELP MASTER
===========




To let COP to be more powerful in helping novices to use easily
communication, I have loaded into this package another my utility. Help
Master uses technology to facilitate navigation into complex help
file. To have an idea on how it does work, execute Help Master with COP.DOC
manual because it has been written in HM format :

c:\cop>HM COP.DOC

You can customize an hot key via MACRO capability to automate this function
and have info you need while connected.



Using Help Master with MACRO keys
---------------------------------
- Edit COP.MAC and chose a free key (i.e. 94 for Ctrl-F1).
- Write "HM COP.DOC" in the execution string.
- Nothing in the option string so that it must looks like :

[94] [HM COP.DOC] []

- Update COP.HLP file adding info on new option, like :

"c-F1 Full Cop Doc"



Using Help Master in an Expert Rule
-----------------------------------
Pay attention to following expert rule:

IF [COM1] EQ [* Unknown Command(1)] THEN [exe(hm appl.hlp)] opt []

Novice is using a package on the host; he sends a wrong command and Host
answers with an "* Unknown Command" and waits for another command. Your user
usually will have to consult application manual etc.etc.


You can make his life easier executing immediately (while holding the line)
"HM APPL.HLP" where APPL.HLP is an document file done with Help
Master, read HM.DOC to know how to prepare a new document in Help Master
format or execute "HM HM.DOC". Now your user can navigate through a very easy
document file and comes back to line more comfortable.



- HM.EXE is the program
- HM.CFG the configuration file
- HM.MSG the external HM message file you can customize
- HM.DOC the / manual

pag 39



POP Integrated Menu
===================
You can use COP alone (executing COP at prompt) or in a more integrated
environment (list of services to connect, editing, utilities, etc.). Use POP
package to do that.


POP is Pop Up Menu for programs management. It can handle up to 1440 commands
in a windowed fashion. I have loaded POP program and data (as an example) in
main COP archives. Check POP.DAT file and execute POP to see what I mean.
Print POP.DOC.


You can obviously modify what you want in COP.DAT file to remove programs you
don't need or to add what you usually use or to modify parameter values.




Personal DOS
============
Using Integrated Environment, it easier for you to use some DOS command
(format, copy, dir, erase, etc.) in more easy-to-use fashion from POP menu.
Download PD09.ZIP package to use these free of charge utilities.

pag 40



Archives you need for Full COP Usage
====================================



You MUST have the following :


COP09A.ZIP COP pre-release package (main)
COP09B.ZIP COP pre-release package
PD09.ZIP Personal DOS package (personalized DOS)


You can have these others :

X00V12.ZIP X00 v 1.24 package (comm driver)
SZMOD131.ZIP ZMODEM package (x/y/zmodem external protocols)
DSZ1215.ZIP ZMODEM package (x/y/zmodem external protocols)
MSKER301.ZIP KERMIT package (kermit external protocol)






History
=======

0.9 01/04/1991 Prototype version


pag 41




Notes for Help Master (type "HM COP.DOC" at DOS level)
======================================================
{HM}
Help Master is a program which allows to use the same documentation
file for both printing and display function. Using HM program
you can read the same file in fashion, that means
navigation and window facility.

An highlighted word represents a . Using left and right
you can move between key-words.

There are two different types of key-word; the first one opens an
explanation window, the second one jumps to a specific document point.

Pressing the key you can open an explanation window on that
words (first type) or jump to a specific point (2nd type).


. Press F1 for Help

. Press ESCape key to come back basic text
[email protected]
{ASCII}
When you have an ASCII file on your PC, that means you can PRINT it,
you can TYPE it, you can EDIT it.

- PRINT filename
- TYPE filename
- EDLIN filename
[email protected]
{Hyper Text}
That is a new technique to improve a text comprehension speed. Each
Hyper Text word can be a key-word which opens a new text folder, in
this new folder you can find new key-words which open new folders etc.

So that you can read text at the layer of your knowledge layer.
[email protected]
{Hypertext}
See .
[email protected]
{key-word}
A key-word is a special word you want to detail more. Depending on the
key-word type, you may enter in a window with more details or jump to a
specific point of the document you are reading
[email protected]
{arrows}
See
[email protected]
{arrow}
Looking at your keyboard, on numeric small keyboard, there are some
small arrows. For this program you can use Left and Right Arrow to move
right and down or left and up.
[email protected]

pag 42



{myenglish}
That is a strange tongue born firstly at school when a Latin language
professor without job was told to teach us English. After that splendid
beginning, I attended to more than 20 English courses, with more than
30 different professors. On top of that for my professional job, I had
to know a lot of international people half of them speaking 'their
mother English' (Australians, Indians, Canadians, Scottish, Americans,
English...) the remaining part speaking their 'horrible scholastic
English' (like me).

After shaking all those English words, using probably an Italian phrase
structure, remembering something of classic Latin and Greek still hard
to eradicate, it was born "myenglish" new tongue much closer to
Esperanto than to perfect English.

I must apologize my readers for that.
[email protected]
{RETURN}
Often you can find this key as IMMISSION key or a CARRIAGE RETURN key
or ENTER key.
[email protected]
{TTY}
A communication programs often emulates a particular communication
protocol. A TTY comm program emulates so called start-stop asynchronous
protocol with a bit as start, 7 or 8 bits for data and 1 or 2 bits as
stop.
[email protected]
{FOSSIL}
Stands for Fido/Opus/Seadog Standard Interface Layer.
It was born to let less MS-DOS clone compatible PC to use standard
communication programs. Step by step it has become a really complete
set of asynchronous API service.

COP utilizes a special version of X00 driver (HLLAPI) which doesn't use
BIOS INT 14 commonly reserved by LAN protocols or multitasker programs.

X00 has been done by Raymond L. Gwinn.
[email protected]
{Author}
Yes, I am.
[email protected]
{Expert System}
Basically an Expert System allow you, through English like rules, to
capture an event and to teach the program to perform some specific
action depending on such kind of event.
[email protected]

pag 43



{error free}
This kind of communication protocol allow you to transfer file between
terminal and host in packet way. That means all data are packed, sent
to host (or viceversa), checked for integrity and unpack or receiver
site. If something strange happened during data transfer, error free
protocol send a NACK (Not ACKnowledge) for packet retrasmission.

ZMODEM, XMODEM, YMODEM, KERMIT, CIS-B, PUMA, etc are examples of more
common error free protocols in today market place.
[email protected]
{XMODEM}
See .
[email protected]
{ZMODEM}
See
[email protected]
{PKUNZIP}
That is an utility to decompress archives file. It is shareware and you
can find it on many BBS.

To decompress for example COP.ZIP, simply write at the the
following command > PKUNZIP COP.
[email protected]
{packing}
See .
[email protected]
{unpacking}
See .
[email protected]
{decompression}
See .
[email protected]
{compression}
This is a new technique to save program size. You can use some
utilities for that purpose like ARC, ZOO, LHARC or PKZIP. You have
firstly to compress the file you want save in archives format, then,
when you need original files, you have to decompress them with
companion utility.

For my purpose I use "PKZIP -a archives name filelist" to compress and
"PKUNZIP archives" for decompression.
[email protected]
{parameters}
To use communication port you have to customize at the same time
asynchronous board and or whatever you have for that function,
giving speed (from 300 bps up to 115.000 bps), bit numbers etc.
[email protected]
{MODEM}
Stands for MODulator/DEModulator device to transform data from digital
computer format into telephone analogic format and viceversa.
[email protected]

pag 44



{upload}
See .
[email protected]
{download}
See .
[email protected]
{downloading}
See .
[email protected]
{uploading}
This a function to exchange files from PC and remote Host. If you
exchange files you say "ASCII up/downloading" otherwise you say
"Binary up/downloading" or simply "up/downloading".
[email protected]
{hosts}
See .
[email protected]
{host}
Usually your PC, as a terminal, connects an Host. It depends on the
software you've loaded into PC. Some software allow PCs to be Host with
other PCs (terminals). In this document the Terminal is always a MS-DOS
Personal Computer and the Host is a remote Service.
[email protected]
{logon}
In communication "logon procedure" is the procedure to recognize the
connecting host and to let host to give to PC the right to access an
application on Host Service computers.

Logon is the connecting procedure.
Logoff is the disconnecting procedure.
[email protected]
{logoff}
See .
[email protected]
{GEnie}
GEnie is the GE Information Services consumer service.
You have access to more then 400 different services ranging from games
to teleshopping up to external data bases access.

It's becoming international now.
[email protected]
{function keys}
See .
[email protected]
{function key}
On MS-DOS keyboard you have usually up to 10 Function Keys ranging from
F1 up to F10. On enhanced keyboard you have 2 more function keys, F11
and F12.

Using these keys you can perform some special activity depending on
running program.
[email protected]

pag 45



{SHELL}
This technique allow a program to execute a child process while
remaining resident in RAM. When child process ends, parent program
takes again control.

Parent process is calling program.
Child process is called program.
[email protected]
{Flow Control}
That is a procedure to discipline data flow from Host to PC and
viceversa.

COP uses extensively this capability (stopping video scroll, or during
Expert processing,etc.) so that I STRONGLY recommend to use it.
[email protected]
{flow control}
See .
[email protected]
{flow}
See
[email protected]
{DOS}
Disk Operating System.
[email protected]
{reboot}
This a function to restart PC. There are two different ways :

- cold reboot (turn off PC, then turn on PC again)

- warm reboot (press together ctrl-alt-end keys)
[email protected]
{X00.SYS}
See .
[email protected]
{X00}
X00.EXE version or X00.SYS ,DEVICE> version, is a
compatible communication driver by Raymond L. Gwinn.
[email protected]
{RS232}
Is the standard asynchronous communication hardware requirement.
[email protected]
{SS&LN}
Thank you to TV programs I don't see, and because I live in a place
where it rains very very often, I have a lot of available hours on
Saturday and Sunday (SS) and Late Night (LN). That is my SS&LN time.
[email protected]

pag 46



{a-B}
Send break to host.
There are two different types of break: soft and hard break.
- Soft Break : you have to tell COP what decimal value to use in
COP.CFG (i.e. BREAK=1) and as soon as you are connected to host you
have to tell it on that value : i.e. SET B^A (Control A). Pressing
Alt-B, COP sends this character as a break.

- Hard Break : you have simply to leave "BREAK=0" in the COP.CFG file.
It means TRUE BREAK, thus an electrical low signal between 200-300
milliseconds. Pressing Alt-B, COP sends that electrical signal.
[email protected]
{a-C}
It's a switch to open or close capture file. This file has a fixed
name, COP.LOG. It's binary. You can see all communication session by
pressing Alt-L key while connected or executing COPSHOW program
locally.

The "Ca" message appears on last screen row.
[email protected]
{a-D}
It executes a temporary shell to DOS. Pressing Alt-D keys COP holds the
communication line and open a child process executing a secondary
COMMAND.COM copy. At this point you are in DOS environment and can
execute whatever program you want.

To come back to cop write EXIT at prompt.
[email protected]
{a-F}
This a switch to enable or disable while you are on
line. You can set this value also in COP.CFG file.

The "On" message appears on last screen row when is
enabled.
[email protected]
{a-E}
You can edit an file while on line (i.e. before sending it to
host). After pressing Alt-E keys, COP opens an input window on main
screen, answer with the filename to edit. COP comes back automatically
to on line when your edit program ends.
[email protected]
{a-I}
This command allow you to redisplay last edited input on 24th line, to
update that string and to send it again to host.
[email protected]
{a-H}
On line help. You can activate help function also when host is sending
data. Pressing Alt-H again pop up help window disappears.
[email protected]

pag 47



{a-L}
This option allows you to see all data exchanged with host from the
beginning. You can navigate this window with usual keys. Again Alt-L
comes back to on line. If flow control is active and host is sending
data, COP sends back to host a Xoff character to tell him to stop
sending data up to an enabling Xon character.
[email protected]
{a-M}
This mask function is useful when you don't want to display on screen
what you're writing (i.e. your password). Press Alt-M before, write
your secrets, again Alt-M for standard use.

The "Mk" message appears on last screen row.
[email protected]
{a-O}
Some hosts send back keyboard input to remote PC. In this case Alt-E
disables COP echo function. You can set value permanently in COP.CFG
file.
[email protected]
{a-P}
Printer On or Off.

The "Pr" message appears on last screen row.
[email protected]
{a-Q}
This function enables remote host to send data again after holding data
by an Alt-S command (which tells host to stop sending data). This
command works only if handshaking is active.
See also .
[email protected]
{a-S}
Tell remote host to stop sending data. This is the Xoff command. This
function works only if handshaking is active.
See also .
[email protected]
{a-R}
If something was wrong during logon, you can issue a redial command to
start again script logon procedure.
[email protected]
{a-V}
This command enables or disables data writing on screen. It useful
while downloading or uploading files.

The "Vd" message appears or disappears on last screen row.
[email protected]
{a-X}
Close communication, close files, quit COP and comes back to DOS.
[email protected]

pag 48



{a-1}
This function let COP to upload an PC file to remote host. COP
opens an input window. Give the name of local file. When uploads stops,
COP send automatically a break signal if you have set up this option in
COP.CFG.

An "Up" message appears on last screen row.
[email protected]
{a-2}
This function let COP to download an file from remote host.
Give the name of local PC file to the input window.

The "Dn" message appears on last screen row.
[email protected]
{SCRoll}
This really useful command tells COP to stop scrolling video or to
enable scrolling again. It MUST be used when is enabled
to allow COP to tell remote to stop sending data while you're
reading screen. It's a switch, thus pressing SCR key again, scrolling
restarts immediately.

The "Sc" message appears on last screen row.
[email protected]
{ESCape}
This key allow you to come back to previous job. This key is used in
conjuction with "display" command with Expert System (that allow you to
escape from expert window and come back to online).
[email protected]
{applications}
See .
[email protected]
{Expert Application}
See
[email protected]
{application}
See .
[email protected]
{Expert Communication Application}
It's intended here for application a combination of script/expert
language to automate logon and the service you or your users are
connecting with. Let imagine you want to facilitate for your novice
users the E-Mail access to a remote Host. Call this for example "E-Mail
Application".

1) Prepare the E-MAIL.SCR file to automate the logon to that service as
much you can (MODEM configuration, telephone call, password procedure
and host service execution). Now your novice is online.

2) Prepare the E-MAIL.EXP file and teach COP what it will have to do if
novice sends wrong online command or if the host or communication line
have strange behavior.

That is in my mind an "Expert Communication Application".
[email protected]

pag 49



{H}
Stands for Help in this application.
[email protected]
{DOS prompt}
When DOS stops an activity it writes the device name and waits for your
input. That is the DOS prompt. For example : C> or C:\dirname> etc.
[email protected]
{TSR}
Terminate and Stay Resident.
This kind of programs once executed, remain on main memory to work as a
monitor for some devices (ports, keyboards, external disks, etc).
[email protected]
{DEVICE}
A device driver is a program with .SYS extension, loaded at boot time
into high memory and always there resident.
VDISK.SYS, KEYBOARD.SYS, RAMDISK.SYS are examples of device programs.
[email protected]



 December 14, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)