|
Description  |
|
|
REFERENCED MATERIAL
Reference is made to the microfiche Appendix which sets forth a computer
program listing including that which is applicable to the present
invention. Included is 1 microfiche containing a total of 21 frames.
FIELD OF THE INVENTION
This invention relates generally to telephone communications systems and
more particularly to computer enhanced telephone conferencing systems
permitting the sending or receiving of graphics to the connected parties
prior to or during a particular telephone conference.
BACKGROUND OF THE INVENTION
In multiperson conferences, most people's first choice for a conference
would be a face-to-face meeting with all of the participants or parties.
All conversations are then in real time but at a great deal of expense,
particularly where participant travel is involved. One alternative to
face-to-face meetings is a TV conference wherein participants go to local
TV studios for an electronic "face-to-face" meeting. TV meetings tend to
lessen cost by reducing travel but studios equipped for TV conferencing
are limited and facility rental might occasionally even exceed actual
face-to-face meeting costs. Still another alternative would be a specially
equipped conference room, e.g., with an electronic blackboard, that might
be more readily available and at a lower cost than TV conferencing. While
this eliminates face-to-face contact, two telephone lines, one of which
must be a dedicated high speed data circuit, are usually required for a
link-up at each site. Then there is the well known telephone conference
call which comprises a widely used relatively inexpensive way of
conducting a conference. However, telephone conferencing provides a voice
only system even though it is economical enough to permit each individual
to have a regular telephone unit.
Computer conferencing, although known, is usually limited to terminal
produced text communications with other participants via a central or host
computer. A relatively permanent transcript of the text is produced as a
by-product of using a host computer, thus allowing participants to enter
or leave the "meeting" at uncoordinated times. A returning conferee need
only read the proceedings actually missed. Messages may be left for
non-attendees. Computer conferencing offers but has not yet realized the
potential of using the computer itself as an interactive participant, such
as fetching data not previously retrieved and/or conducting real time
analyses during the conference. While all of the above prior art systems
are useful for the task intended, they lack one or more certain desirable
but heretofore unavailable features.
Accordingly, it is an object of the present invention to provide an
improved method and apparatus for implementing a conference via a
telephone.
Another object of the invention is to provide facilities for recording
conferences, sending or receiving messages so that all parties need not be
simultaneously present.
Still another object of the invention is to provide an improved method and
apparatus for integrating graphics into a telephone conference.
A further object of the invention is to provide a method and apparatus for
implementing audio-visual teleconferencing on a real time or delayed
basis.
Still another object of the invention is to provide a method and means
whereby computerized control of a telephone conferencing system permits
the transmission and reception of graphics between the parties prior to or
during a telephone conference.
SUMMARY OF THE INVENTION
Briefly, the subject invention comprises a computer enhanced telephone
conferencing system providing dial-up audiographic communications between
a plurality of participants or users, each having a personal computer
specifically programmed to control a programmable modem and telephone
apparatus such as a speakerphone, and with the parties being connected by
voice grade telephone lines via direct connection, an operator connection,
a meet-me-bridge or other appropriate apparatus. The computer software is
operable to control the speakerphone, turning it on and off at appropriate
times to eliminate room noise during the transmission or reception of
color graphics during a telephone conversation. Each modem is furthermore
controlled by the computer to be "live", that is on-line in a silent
receive mode status unless transmitting and thus operates to monitor the
phone line at all times. The computer is furthermore programmed to ignore
all signals on the phone line except when proceeded by one of a
predetermined set of identification codes, indicating that a graphics
related signal is being transmitted to another conference participant. The
computer, moreover, is operable to control the reception of incoming
signals from remote users and either display a graphic transmitted
therefrom, retrieve and display a graphic presently contained in a local
storage, maintain the display unchanged, dial up a remote user, transmit a
graphic thereto or request a graphic on hand in his local buffer storage
to be displayed. Also when desirable one can switch to a companion
graphics program to create new and/or modify existing graphics.
All users connected on the telephone line are in a parallel hook-up, i.e.,
all receive a transmitted graphic(s) simultaneously or alternatively, all
hear voice communications simultaneously. All graphic images and
associated data, such as title and text description for each graphic
image, moreover, can be bulk transmitted in an unattended mode, i.e.,
forwarded to and stored at a remote location. In this event, programmed
procedures are provided for setting the order of presentation,
transmitting only picture titles and causing simultaneous retrieval at all
conferencing, i.e., user locations.
In addition to live, interactive conferencing, the system provides for
delayed conferences wherein users are not all simultaneously present and
leave voice-graphic messages for each other on computer controlled
cassette recording apparatus, also included in the system. Further, the
recording apparatus provides a record of the entire voice-graphics
conference on a recording medium.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing as well as other objects and advantages of the invention will
be more readily understood when considered in light of the detailed
description to follow taken in connection with the accompanying drawing in
which:
FIG. 1 is a block diagram broadly illustrative of an audiographic telephone
conference system in accordance with the subject invention;
FIG. 2 is a block diagram illustrative of the apparatus required by each
user in the system shown in FIG. 1;
FIG. 3 is a flow diagram providing an overview of the operational software
included in each personal computer of the system shown in FIG. 1;
FIG. 4 is a software flow diagram illustrative of the steps for
initializing each modem shown in FIGS. 1 and 2;
FIG. 5 is a software flow diagram for initializing the program variables in
each computer shown in FIGS. 1 and 2;
FIG. 6 is a flow diagram illustrative of the operational mode of one user's
computer wherein a code for viewing a locally stored graphic is received
from another user;
FIG. 7 is a flow diagram illustrative of the operational mode of one user's
computer wherein a code is received for receiving and displaying a picture
or graphic sent from another user; and
FIGS. 8 through 17 comprise a set of flow diagrams illustrative of ten
computer controlled operational sequences selectable by way of the
keyboard at each computer.
DETAILED DESCRIPTION OF THE INVENTION
Referring now to the drawings and more particularly to FIG. 1, the subject
invention is directed to an audiographic teleconferencing system and its
method of operation whereupon a plurality of user apparatus 10.sub.1,
10.sub.2, 10.sub.3 . . . 10.sub.n of n participants or users are
interconnected over standard voice grade telephone lines 12.sub.1,
12.sub.2, 12.sub.3 . . . 12.sub.n by way of telephone connection apparatus
14 comprising either means for a direct connection, an operator connection
or conference call connection means such as a "meet-me-bridge". A
meet-me-bridge is a well known piece of telephone apparatus employing
amplifying circuitry and which operates to eliminate line drop in a
telephone conferencing system connection between parties.
Each user apparatus 10.sub.1 . . . 10.sub.n of the system shown in FIG. 1
further comprises a computer 16 such as an IBM Personal Computer which is
programmed to operate in accordance with self contained software, to be
explained in detail subsequently. Each personal computer (PC) 16 is
bidirectionally coupled to and controls the operation of a programmable
modem 18, such as a Hayes Smartmodem 1200, via a signal path 19 including
an input/output port, now shown. The PC also controls turn on and turn off
of speakerphone type of telephone apparatus 20 and an audio cassette
recorder/player 22 by means of power leads 21a and 21b. The
recorder/player 22 is adapted to provide a record of a particular
telephone conference at the time it is in progress or record audiographic
messages in an unattended mode.
Before considering the invention in any further detail, however, it should
be pointed out that the system of the present invention operates with a
computer protocol where no "handshaking" is required for interaction
between the n participants hereinafter referred to simply as users, due to
the fact that when the system is in operation, all of the computer
controlled modems 18 are silent, i.e. in a receive mode unless the
respective personal computer 16 orders it to transmit graphic information
to one or more other users. Accordingly, any number of the computers 16 in
the network of FIG. 1 can receive the same digital information from
another user computer simultaneously via their modems 18, the only
constraint being that the user(s) are unable to hear each other speak
during the transmission of a picture, hereinafter referred to as a
graphic, in the event that visual information is to be transferred between
users during a telephone conference. In some instances, the visual
information is transmitted to one or more other users or parties prior to
a telephone conference. In such instances, it is entered into the user's
recorder/player 22 and thereafter retrieved and displayed during the
conference.
This now leads to a consideration of FIG. 2 which is intended to further
disclose the details of one of a plurality of identical user apparatus
10.sub.1 . . . 10.sub.n. As shown in FIG. 2, each personal computer 16 is
comprised of a keyboard 21, joystick 23, and videocamera device 25, a
visual display unit 24 including a cathode ray tube (CRT) and two disk
drive units 26, comprising a floppy or hard disk drive unit containing a
disk, not shown, all of which couple to a system's unit 28 which in an IBM
PC includes a digital memory 30 and at least one serial input-output (I/O)
port 32, a game port 33, one parallel I/O port 34 and a digitizing board
35. When desirable, other input devices such as "mouse" and light pen can
be utilized. For example, a mouse shown by reference numeral 27 can be
connected to the system unit 28 via the same input port, now shown, as the
keyboard 21. A light pen would be coupled in parallel with the joystick to
the same port 41. The memory 30 includes a main memory section 36 which,
among other things, stores a computer program comprising a sequence of
instructions in the form of an operational code which is further set forth
in referenced Appendix and is outlined in the flow charts depicted in
FIGS. 3 through 17. The memory 30 also includes a video display buffer
section 38 which is bi-directionally coupled to the dual disk drive unit
26 via a data bus 40 and to the video display unit 24 by means of the
digital data bus 42. The game port 33 is shown coupled to the main memory
section 36 via the data bus 41 while the digitizing board is coupled
thereto by means of data bus 43. The serial I/O port 32 is coupled to the
main memory section 36 by bus 44 and operates to couple the main memory
section to the programmable modem 18. The parallel I/O port 34 couples to
the main memory by bus 46 for controlling the operation of a multiposition
power relay 48 which activates or deactivates speakerphone 20 and/or
cassette recorder 22 at appropriate times.
In operation, each personal computer 16 is programmed to initialize its
respective programmable modem 18 into a listening mode which will then
operate to monitor the phone line 12 at all times. The computer 16 is
further programmed to monitor all signals and execute authorized commands
proceeded by an identification code which, for example, indicates that the
following signal is a graphic image signal, whereupon the computer 16
turns off the speakerphone 20 and graphic image information will either be
transmitted to or received from another computer 16 or responds to a
command to display graphic images currently in storage and thereafter
displayed on the video display unit 24. The computer operation of the
associated modem 18, moreover, requires only half of the available
bandwidth to transmit or receive graphics via the respective modems 18
over a voice grade telephone line 12. This provides for possible use of
twin transmitters or receivers, not shown, to double transmission rates
and thus reduce transmission time by one half.
In order to fully understand system operation, however, one must consider
the software, i.e., the computer program, contained in each of the
personal computers 16 in order to make the system operate as intended.
Pursuant to this, the following flow charts as disclosed in FIGS. 3
through 17 will be considered with reference to one of the participants
being considered a local user (LU) with the other participants being
considered remote users (RU).
Accordingly, and now referring first to FIG. 3, disclosed thereat is an
overview of the operation of each user equipment. When a local user (LU)
wants to use the system, he must first turn on his computer 16 as
indicated by reference numeral 56. Thereafter the computer initializes or
"boots up" the program which comprises a set of initialization statements
that prepare the program for execution. The computer controlled steps
include initializing the modem 18, the steps of which are shown in FIG. 4
by reference numeral 58, initializing the program variables 60, the steps
of which are shown in FIG. 5, and a display of an initial or "Main Menu"
as indicated by step 62. The Main Menu consists of five user options which
are set forth in the following Table I and which are selectable from the
user's keyboard 21 (FIG. 2).
TABLE I
Main Menu
1. Connect to an Incoming Call From Remote User(s)
2. Dial a Call To Remote User(s)
3. Switch to Companion Graphics (Army Graphics)
4. Transmit a full library and index of graphics To Remote User(s)
5. Receive a full library and index of graphics From Remote User(s)
By selecting option No. 1, the local user connects to an incoming call from
a remote user as indicated by step 64. By option No. 2 the local user
automatically dials a remote user telephone either directly or through the
bridge 14 per reference numeral 65 while option No. 3 transfers to a
Companion Graphics program stored along with the subject program in his
personal computer 16 and which is shown by reference numeral 66.
Option No. 4 permits a user to transmit an entire collection or library of
graphic images one after another without pause as shown in step 67.
Finally, option No. 5 permits a user to automatically receive and save a
complete library of graphics including the index information, i.e.,
graphic name and description as shown in step 68.
Further as indicated in FIG. 3, the two option steps 64 and 65 of
connecting to an incoming call or dialing a remote user telephone permits
an "escape" from either operational sequence through the keyboard 21
whereupon depressing of a designated "Escape" key causes the program to
revert back to the display of the Main Menu as evidenced by step 62. In
the event that a "Switch To Companion Graphics" is selected from the
keyboard 21, the program immediately exits to this graphics program and
terminates there as evidenced by the step 70.
In the event that preparation for a formal presentation is desired, a
facility is further provided whereby the presenter can have his personal
computer 16 automatically call all other participants, i.e. remote users,
and transmit an entire library of graphics in advance of actual usage as
shown in step 67. Similarly, if this full library transmission mode is to
be employed, all remote user recipients are required to leave their
unattended personal computers in a storage mode which is initiated via the
fifth Main Menu option "Receive" (step 68). This mode comprises putting
the remote user's personal computer 16 into an auto-answer mode to accept
and store a complete library of graphics including index information
without human attention.
Assuming that either option No. 1 or No. 2 of connecting to an incoming
call or dialing a remote user telephone is selected, a subroutine whereby
the display of a "Standard Menu", as shown by reference numeral 72,
occurs. The Standard Menu consists of ten options selectable from the
keyboard 21 as set forth in the following Table II.
TABLE II
Standard Menu
1. USE--Retrieve Graphic From Storage To Screen--(FIG. 8)
2. SAVE--Store New Graphic (Screen to Disk)--(FIG. 9)
3. TRANSMIT--Transmit Graphic On Screen To Remote User--(FIG. 10)
4. VIEW--Request Remote User To Retrieve Graphic From His Storage To His
Screen--(FIG. 11)
5. NEXT PICTURE--View Command For Next Appropriate Graphic as arranged in
the Index--(FIG. 12)
6. PREVIOUS PICTURE--View Command For Previous Appropriate Graphic as
arranged in the Index--(FIG. 13).
7. INDEX--Display title and description of All Stored Graphics--(FIG. 14)
8. GRAPHICS--Selects "External Graphics" Program--(FIG. 15)
9. TAB--Display Or Suppress Display Of Standard Menu--(FIG. 16)
10. ESCAPE--Abort And Return to Main Menu--(FIG. 17)
Along with the display of the Standard Menu, a main program loop is
entered, as shown by reference numeral 74, which operates to continuously
check the modem 18 or the keyboard 21 for a command which involves either
receiving a view "V" code or a transmit "T" code from a remote useras
evidenced by steps 76 and 78 or executes per step 80, one of the ten
selectable Standard Menu options from the keyboard 21. In order of
preference the main program looks first to the keyboard 22 and then to the
modem 18. The receive "V" code and "T" code operation is further disclosed
in the flow charts of FIGS. 6 and 7, respectively, while the operation of
the Standard Menu options is set forth in the flow charts shown in FIGS. 8
through 17.
It is to be noted that the two operations of receiving the "V" and "T"
codes permit a return, i.e. an "escape" route 81 back to the Standard Menu
and the main program loop steps 72 and 74 as referenced by ESCAPE #2 shown
in FIG. 3. This escape is provided by depressing a designated "Escape" key
on the keyboard 21. However, while the Standard Menu is displayed and
prior to or during the display of the Standard Menu (step 72), an escape
route 79 back to the display of the Main Menu (step 62) is provided by
depressing the "Escape" key, in which case ESCAPE #1 is provided back to
the Main Menu display shown in Table I.
Considering now the operational software in further detail, reference is
now made back to the first sequence of instructions following the turn on
of power (step 56) which involves the initialization of the modem 18. This
is shown in FIG. 4. The first thing that is done is to open a
communications port, namely the serial I/O port 32 (FIG. 2) which connects
the modem 18 to the Main Memory section 36 of the computer 16. This is
shown in FIG. 4 by step 82. The port 32 is initialized with data to be
transmitted using eight bits of data with no parity bits and two stop
bits. Further the port 32 is set up so that two control lines, now shown,
will be ignored, namely, the "clear to send" (CTS) line and the "data set
ready" (DSR) line. This is indicated in FIG. 4 by reference numerals 84
and 86. Once port 32 is initialized, a command is sent to the programmable
modem 18 to set several parameters, the first of which is to ignore the
carrier from a remote user modem 18 as indicated by step 88. This means
that no matter whether the local user modem 18 hears the remote carrier or
not, it is to stay "on line", i.e. connected to the telephone line 12. The
second parameter is to turn off the transmitter section of the modem,
which includes both a transmitter section and a receiver section, not
shown, as well as an input data buffer, and turn on the receiver section
as indicated by reference numerals 90 and 92. It should be pointed out
that once the receiver section is turned on, it is never turned off but
remains "alive" as long as the system is active and the computer 16 is
turned on. Next a command is issued which turns off modem echo as
evidenced by reference numeral 94. This suppresses result codes from local
user's modem 18 so that the modem will not echo back characters that are
transmitted to it from a remote user modem 18 when it is on line.
Additionally, it suppresses internal result codes from being transmitted
from the local user modem 18, that is, ordinarily when a command is sent
to the modem it will echo back to the remote user modem a result of the
code indicating what happened with the command it has received. Next a
parameter is set (step 96) which turns on the modem speaker, also not
shown, integral with the modem 18, so that it will be on until it is
commanded otherwise, such as when the local user is connected to a remote
user. Following this, a parameter sets the guard time for an "escape"
sequence sent to the modem. This is shown by reference numeral 98. The
escape sequence is required to switch the local user modem 18 from being
on line with a remote user computer 16 to being in the command state when
commands may be sent to change its condition. The guard time is the amount
of pause that must surround a particular escape sequence.
Finally the local user modem 18 is placed in a mode in which it will
transmit and receive on the same frequency as shown by step 100. This is
important to this invention in that it has the effect of restricting modem
operation to one half the total bandwidth available and thus permits the
computer 16 to operate pairs of transmitters or receivers to send or
receive pictures or graphics transmitted over the voice grade telephone
line 12. When only one modem (single transmitter and receiver pair) is
used, only half the bandwidth is actually used. The lower frequency half
is selected because this part of the bandwidth provides somewhat more
reliable communications than the high frequency part.
After the modem 18 of the local user is initiated, a series of statements
are next executed which sets certain program variables to be used in the
respective program of the local user's personal computer 16. This is
disclosed in FIG. 5 and which is entitled "Initialize Program Variables".
First of all, a set of instructions are executed to set up the screen
width of the local user video display 24 which includes a color CRT, now
shown. This is indicated as step 102. This set of instructions defines the
screen to be of a width, for example, of 40 characters, that is, it will
show a 40 character display extending from one side of the screen to the
next. When desirable, the screen width can be set to 80 characters,
depending upon the needs of the user.
Following this, the entire screen of the video display 24 is cleared as
indicated by the "Clear Screen" step 104. Then parameters are set, as
evidenced by reference numeral 106, designating the desired foreground,
background, as well as the default colors for a color picture on the CRT.
A parameter is next initialized which will set the maximum number of
pictures, i.e. graphics, which can be saved in the form of an index file
on the disks in the dual disk drive unit 26 (FIG. 2). This is shown by
reference numeral 108 and for the basic embodiment of the program, the
quantity is set to be 30 per "library" with a directory limit of 30
libraries. Next, a drive designation for graphic storage is set. This is
shown by reference numeral 110, and for the embodiment of the invention
shown in FIGS. 1 and 2, it comprises the dual disk drive 26. A flag is
then set, as indicated by step 112, which indicates within the code
whether the program executing is the internal program of the computer 16
or the Companion Graphics package which can be accessed through the local
user keyboard 21. The next two instructions (steps 114 and 116) set up the
area that will be used for saving the part of any graphics which would be
covered by a menu, used during program execution. The program menus are
stored in the last four lines of a twenty-five line display of the video
display 24. This area of the screen is initialized to the selected
background color and then copied into a local array (modem input buffer)
which will be used for storing the section of the screen when a graphic is
received. Along with this a flag is set which indicates whether or not the
Main Menu is correctly being displayed and accordingly is initially set to
be "true".
The final set of statements 118 and 120 executed in the program variable
utilization section of the code defines the addresses in the video display
buffer section 38 of the computer memory 30 which will be used when the
entire contents of the buffer previously loaded from the disk drive unit
26 are transmitted to a remote user over the telephone line 12.
In the basic embodiment of the program, the CRT display has a minimum
resolution of 200 horizontal lines. These graphic image lines are stored
or defined by a section of the computer's Main Memory section 36. During
the transmission of an entire picture, defining a particular graphic over
the phone line 12 this set of lines is divided up into 100 segments, each
of which will contain the information for two or more complete lines
across the screen of a remote user's video display 24. The initialization
process consists of computing and storing in local arrays the addresses in
the video display buffer of each of the 100 valid segments for use during
transmission or receipt of an entire picture. Invalid segments are
rejected and replaced with the default background color. This process is
indicated by reference numeral 118 of FIG. 5. Finally, a program pointer
is set as evidenced by reference numeral 120, which sets the pointer to
the first graphic (picture No. 1) in the graphic storage index. As
referred to earlier, and following the initialization steps 58 and 60
(FIG. 3), the next procedure executed calls a routine 62 to display the
Main Menu (Table I) with a flag being set indicating that this menu is
being displayed. The local user may manually turn on his speakerphone 20
at anytime.
Again recapitulating, the first choice available by this Main Menu (Table
I) is to connect the local user modem 18, i.e. bring the modem on line, in
the case where a phone connection has already been established with one or
more remote users. The second choice is to employ the local user modem 18
itself to dial the phone number of a remote user or in the case where a
conference bridge 14 as shown in FIG. 1 is being used, the number of the
bridge. These generate Connect (C) and Dial (D) commands, respectively.
The third choice is to switch to a Companion Graphics program such as a
separately provided Army Graphics program while the fourth and fifth
choice involves transmitting and receiving graphic libraries. The local
user is then asked to make a choice between the five. If the first option
is chosen, the program will immediately put the local user modem 18 on
line using a command which causes it to use the same frequency when
transmitting and receiving hereinafter called the "answer mode". After
putting the modem 18 on line, the program branches to a display routine
(step 72) of the Standard Menu (Table II) which is displayed in the lower
portion of the video display provided by the CRT of the display apparatus
24.
If instead of the "C" command of option No. 1 of the Main Menu the local
user has chosen the second option, a "D" command is initiated and the
program goes into a dial routine which executes that command. The dial
routine is contained within a loop which is executed until either a
successful connection is made to a remote user, for example, via the
bridge 14 (FIG. 1) or the local user aborts the attempt. The first
statements within the loop cause the local user modem 18 to hang up in
case it should be on line at this point, i.e., when the local user begins
the dialing sequence. Also text is printed on the CRT screen of the LU
video display 24 requesting the local user to supply a phone number which
is to be dialed. The local user, moreover, has the option of specifying
pulse dialing instead of the default which is tone dialing. The local user
is also offered the option of introducing one second delays at arbitrary
points in the phone number. These are used when dialing through a PBX
system in which a digit must first be entered to get an outside line and
the remainder of the phone number is then entered. After printing this
information on the CRT screen, the program waits for the local user input
via the keyboard 21. If that input should happen to be actuation of the
"Escape" key on the keyboard 21, the program aborts the attempt to dial a
remote user and returns to the Main Menu (step 62) via the ESCAPE #1 route
79 shown in FIG. 3 which again provides the five options indicated by
Table I.
If a phone number is now entered by the local user, a command string is set
up to cause the modem 18 to dial the phone number and then return to the
command state rather than going on line. Also in this string is a command
to the local user's modem which will force it to be in the answer mode
when connection is made. The reason for this is the same as described
above with respect to the "C" command. After the modem 18 has been
commanded to dial the telephone number, the program enters a brief delay
loop and then clears the lower section of the local user's CRT and prints
the question "Should the number be dialed again? Yes or No". If the local
user hits the "Escape" key on the keyboard 21, then the modem 18 is
commanded to hang up and a return is made to the initial Menu options
(step 62). If the user, however, replies to the question entering "Yes",
then the loop inside of the dial procedure is repeated. That will bring it
down through the logic that has just been described, the first step of
which is to hang up. Alternatively, if the local user doesn't press the
"Escape" key and doesn't say "Yes", but enters "No" on the keyboard 21
indicating that he does not want to dial the phone number again, the modem
18 is put on line and its speaker is turned off. A flag which indicates
whether or not the Main Menu is to be displayed is set to "False" and a
return from the dial procedure is executed. Finally, if the local user
selects the option requesting option No. 3 of the Main Menu which requests
External Graphics, then all local files of the computer 16 are closed, the
external Companion Graphics program is run and the internal program of the
computer 16 exits (step 70).
Once a successful connection is made to a remote user, however, the
computer program of the local user computer 16 enters its main loop (step
74) which is executed from now until the "Escape" key on the keyboard 21
is hit and consists in first looking for a local input from the keyboard
21 which would designate one of the commands available on the Standard
Menu (Table II) at this point. The commands available are: "Use", "Save",
"Transmit", "View", "Next Picture", "Previous Picture", "Index",
"Graphics", "Tab" and "Escape". The functions associated with these
commands are set forth in the flow charts shown in FIGS. 8 through 17.
Assuming for the moment, however, that no local user keyboard input has
been received, the main program loop (step 74) then checks to see whether
any incoming characters have been received from a remote user computer 16
via the modem 18, for example, either a "V" code or a "T" code. The local
user program calls a routine which checks the input buffer of the local
user modem 18 to see if any characters are present. Since the receiver
section for the modem 18 is always active, i.e. "on" following
initialization, it is likely that characters have been received; however,
such characters are most likely erroneous ones constructed from the sound
of user's voices, for example. Accordingly, the first thing the routine
does is to see if there are at least five characters in the modem's input
buffer. If not, it returns immediately to the main program loop of step 74
(FIG. 3).
If, on the other hand, there are at least five characters in the input
buffer of the modem 18, the routine goes into a loop which retrieves
characters from the input buffer in groups of five. Each group of five
characters is then checked to see if it, for example, consists of five
repetitions of the letter "V" or five repetitions of the letter "T". If
either of these two patterns is detected, then execution continues as
shown by the flow diagrams in FIGS. 6 or 7; otherwise, control returns to
the main program loop (step 74) checking for keyboard entries.
Considering now first that a five character pattern consisting of the
letter "V" has been detected, reference is now made to FIG. 6 wherein step
122 indicates that a routine is called which handles an incoming "View"
command for local user viewing of a specific graphic already stored in his
dual disk drive unit 26. The local user speakerphone 20 is turned off as
indicated by reference numeral 124 followed by an initialization of a
local storage array in Main Memory 36 (FIG. 2) having the ability to
contain twelve data set names followed by a clearing of the CRT display 24
and an internal flag is set to "true" which indicates that a new data set
name is required. This routine is comprised of a loop consisting of two
portions depending upon the answer to a query 126 made regarding the
presence of the specific graphic in the local user index. Thus in the
loop, incoming graphic names are installed in the empty array and the loop
proceeds from the first entry to the twelfth entry and compares each new
name to all previous names in turn. If the current name is not the same as
any previous entry, then the loop continues looking for subsequent
entries. If a single match is discovered, then it is assumed that this is
the true graphic name that is required and at that point power to the
local user speakerphone 20 is turned back on as indicated by reference
numeral 128 and the data set name is placed in a procedure 130 that loads
the video display buffer section 38 of the memory 30 from the disk drive
26 and the graphic is generated (step 132) on the CRT of the local user's
video display 24. The lower portion of the display is stored in an
internal array so that the Standard Menu (Table II) may be displayed
without losing any data. The modem's input buffer is then cleared and the
Standard Menu (Table II) is redisplayed if the flag to display the menu
says that it should be done and the procedure returns to the main program
loop via .circle.2 providing an escape, i.e. ESCAPE #2, back to steps 72
and 74 as shown in FIG. 3. If it is found that the graphic that is
commanded by the remote user to be viewed is not present in the index, the
speakerphone is turned on in step 134 and a message is displayed to the
local user, per step 136, advising him that the graphic is not on hand,
and the procedure returns back to the Standard Menu via .circle.2 at
which time the remote user can, if desired, transmit a "T" code which now
leads to a consideration of FIG. 7.
The "T" code is used by the remote user to transmit the contents of his
screen buffer to the local user. If five repetitions of the letter "T" are
detected by the local user, then another routine is called to handle the
incoming "T" code as indicated, in FIG. 7, by reference numeral 138, which
is a command to handle the contents of a graphic which is transmitted from
a remote user. Power to the speakerphone 20 is turned off, per step 140,
and a routine 142 clears the local user's display screen or CRT and sets
an internal flag indicating that graphic data is being received in
segments preceded by header data consisting of five consecutive zeros. If
a zero is found, the next byte is checked to see whether it also contains
a zero. If it does, then subsequent bytes are examined until a non-zero
value is found. This value is taken to be a segment number and a flag
indicating that a segment header is needed is then set to "false". The
program logic will then remain in a loop looking for zeros until two
successive zeros are found or until 1600 attempts have been made to
retrieve the character from the input buffer of the local user modem 18.
If there is none available, the entire routine will terminate its
execution and control is returned to the main program loop via .circle.2
after the local user's speakerphone 20 has been turned on by step 144.
Assuming that the appropriate header data is detected, the number of the
segment is used to obtain the address of the particular segment in the
local user modem buffer memory. In the preferred embodiment, all data are
encoded or compressed before transmission. In one case the data are
interpreted as byte pairs, the first byte containing a count and the
second one a bit pattern consisting of the color of four pixels. Each byte
pair is expanded by copying the pattern byte the indicated number of times
into the video display buffer memory section 38 (FIG. 2) up to the limit
of the amount of memory required to display a particular segment. After
all the bytes of the segment have been written into the display memory 38,
a flag indicating that the signal header is required is set to "True" and
processing continues as in the first half of this routine. The use of
segmented transition in this way has the effect of restricting any data
error in the transmission to a single pair of lines on the screen.
Segments with out of sequence segment numbers are rejected entirely. When
the main loop in this procedure times out, which is about one second of
silence on the pa | | |