WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Computer assisted graphic teleconferencing method and apparatus    
United States Patent4656654   
Link to this pagehttp://www.wikipatents.com/4656654.html
Inventor(s)Dumas; Neil S. (Mclean, VA)
AbstractAn audiographic telephone conferencing system between a plurality of parties or users either directly connected or through a piece of apparatus known as a "meet me bridge" over voice grade telephone lines. Each user has a programmed personal computer which controls a programmable or "smart" modem, cassette recorder/player, and speakerphone. A protocol is implemented by the software, i.e. the computer program, in each of the computers which puts its respective modem in a listening mode to monitor the phone line at all times. The computer is further programmed and includes a memory for storing and transmitting graphics presently on hand to other user(s) via the modem during a teleconference or alternatively receive graphics from another user, or it can switch to an external graphics program to make new or modify existing graphic images. However, one is unable to speak on the telephone line while a graphic is being transmitted during a teleconference due to the fact that voice alternates with graphic transmissions.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4656654
Computer assisted graphic teleconferencing method and apparatus - US Patent 4656654 Drawing
Computer assisted graphic teleconferencing method and apparatus
Inventor     Dumas; Neil S. (Mclean, VA)
Owner/Assignee     The United States of America as represented by the Secretary of the Army (Washington, DC)
Patent assignment
All assignments
Publication Date     April 7, 1987
Application Number     06/849,314
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 8, 1986
US Classification     379/93.21 348/14.08 379/202.01 379/902
Int'l Classification     H04M 011/00
Examiner     George; Keith E.
Assistant Examiner    
Attorney/Law Firm     Sheldon, Murray; Jeremiah G. Kanars; Rehberg; John T. ,
Address
Parent Case     This application is a continuation of application Ser. No. 598,751, filed Apr. 11, 1984, now abandoned.
Priority Data    
USPTO Field of Search     179/2 DP 179/2 TV 179/2 TS 179/18 BC 358/85 370/62
Patent Tags     computer assisted graphic teleconferencing
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4524244
Faggin
379/93.09
Jun,1985

[0 after 0 votes]
4414621
Bown
715/733
Nov,1983

[0 after 0 votes]
4317961
Johnson
379/204.01
Mar,1982

[0 after 0 votes]
4291198
Anderson
379/93.17
Sep,1981

[0 after 0 votes]
4258387
Lemelson
348/14.01
Mar,1981

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. A method of integrating graphics into a teleconference between at least two participants, a local user and a remote user, each provided with a computer programmed to control a programmable modem including a receiver and a transmitter, and a respective telephone apparatus including a speakerphone connectable to a telephone line for voice conferencing, comprising the steps of:

initializing said modem so that said receiver continuously silently monitors telephone communications between users without interference with voice conferencing except when transmitting;

initializing predetermined program variables in the computer program of said computer including enabling said modem transmitter to transmit graphic images;

displaying a first menu of a plurality of local user options, said first menu including the selective steps of: connecting to an incoming phone call, dialing a remote user telephone, interrupting the modem receiver to transmit a graphic image during the interruption, transmitting a full library and respective index of graphics to at least one said remote user, receiving a full library and respective index of graphics from at least one said remote user, and storing at least one of said libraries and its respective index in local user storage;

selecting a first menu option and depending on the selection displaying a second menu of a plurality of local user options;

checking the selection of any second menu options and executing a selected option and, if none is selected, checking for the reception of a graphic code from a remote user to display either a specified graphic image received from said remote user and stored in local user storage or to display a graphic image contemporaneously generated and transmitted from the remote user.

2. The method as defined by claim 1 wherein one of said plurality of second menu options comprises the step of signaling a remote user apparatus to retrieve a specific graphic image from the remote user's image storage and displaying said graphic image on the remote user's display unit, which step is defined as the "view" option.

3. The method as defined by claim 1 wherein said plurality of second menu options includes the steps of selectively displaying the next and previous graphics, respectively, as ordered in said index in the local user storage, which steps are defined as the "Next" and "Previous" options.

4. The method of claim 1 wherein one of said plurality of second menu options comprises the step of displaying said index of graphic images contained in the local user storage which step is defined as the "Index" option.

5. The method as defined by claim 1 wherein said step of initializing said modem includes the step of restricting operation of the telephone line to one half of the available modem bandwidth.

6. The method as defined by claim 1 wherein said step of initializing the modem includes the step of commanding the modem to ignore all signals on the phone line except when preceded by an authorized identification code indicative of a graphics image related signal being transmitted thereto from a remote user.

7. The method as defined by claim 1 wherein said step of initializing program variables includes the steps of setting the parameters for graphic images to be stored and displayed, designating storage areas therefor in a memory, and establishing storage areas of the first and second menu options in said memory followed by setting a program counter or pointer to a reference number position.
 Description Submit all comments and votes
 


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