CA2345084C - System for accessing personal computers remotely - Google Patents

System for accessing personal computers remotely Download PDF

Info

Publication number
CA2345084C
CA2345084C CA002345084A CA2345084A CA2345084C CA 2345084 C CA2345084 C CA 2345084C CA 002345084 A CA002345084 A CA 002345084A CA 2345084 A CA2345084 A CA 2345084A CA 2345084 C CA2345084 C CA 2345084C
Authority
CA
Canada
Prior art keywords
key
view
video
mouse
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002345084A
Other languages
French (fr)
Other versions
CA2345084A1 (en
Inventor
Robin L. Anderson
Ronald J. Perholtz
Dennis Hawkins
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vertiv IT Systems Inc
Original Assignee
Cybex Computer Products Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cybex Computer Products Corp filed Critical Cybex Computer Products Corp
Publication of CA2345084A1 publication Critical patent/CA2345084A1/en
Application granted granted Critical
Publication of CA2345084C publication Critical patent/CA2345084C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Abstract

A remote access device is disclosed for capturing, digitizing and communicating video signals from a host computer to a remote computer. The remote computer returns keyboard and mouse signals through the remote access device to the host computer to control the host computer as though the remote keyboard and mouse were directly connected to the host computer. The remote access device includes a circuit module interface for the host computer that allows the remote access device to operate independently of any operating system characteristics associated with the host computer.

Description

SYSTEM AND METHOD FOR ACCESSING AND
OPERATING PERSONAL COMPUTERS REMOTELY
Field of the Invention This invention relates to remote computer access, and more 5 particularly to hardware and software for coordinating video, keyboard and mouse information transfers and control tolfrom a remote PC and one or more host PCs.
BACKGROUND AND SUMMARY OF THE INVENTION
Since the introduction of the PC there has been a need to 1 o access PCs from remote locations. Initial remote access approaches software based systems, such as pcAnywhere; Reach Out, etc., Such remote access systems are operating system dependent, meaning that the software would anly function in association with a particular operating system (i.e. DOS, Windows, Unix, etc) and 15 software upgrades were normally required each time that operating system was enhanced.
Software-only based systems were also intrusive (i.e. the software had to be installed on the Host PC). As a result, the software took resources away from the Host PC and often caused 20 the Host PC to lock up due to incompatibilities between the remote access software and application software running on the Host PC.
Moreover, many critical PC applications, such as network file servers, where simply incompatible with all remote access software products. Finally, remote access software failed when the Host PC
2 failed, meaning that maintenance personnel could not remotely access a PC that had failed or locked up to determine why the failure occurred and to take corrective action.
U.S. Patent No. 5,732,212 disclosed a prior art remote access product that was marketed as so-called KEY-VIEW. Keyview was a custom designed hardware unit externally connected to a Host PC that had a proprietary internal software operating system which serviced a remote user. Proprietary software operating on a Remote User's PC
was used to remotely access the KEY-VIEW unit at the Host site.
A Remote user running this proprietary software required only a Standard modem and PC to access any Host site.
Using the present invention (sometimes referred to herein by an example embodiment called "KEY-VIEW Ir'), a single KEY-1 s VIEW PC permits remote control of a plurality of Host PCs alone or in combination with third party switch boxes and allows help desk and maintenance personnel to be highly centralized, but still respond to support calls, as if they were on-site. This means KEY-VIEW dramatically cuts down-time as well as costs for 2o maintenance and technical support.
Under KEY-VTEW II, a standard remote access entwine such as pcAnywhere is used to remotely access a KEY-VIEW' PC.
pcAnywhere in combination with the KEY-VIEW PC permit access via a LAN, modem,. the Internet andlor direct serial or parallel port 25 access. pcAnywhere supports TCIF access, so customers may access the KEY-VIEW II PC over the Internet and launch, monitor
3 and control applications running any Host computer connected to the Host PC even in distant international locations, as if they were actually on site.
The example embodiment described herein uses the remote 5 access package, pcAnywhere, using the latest 32 bit technololry.
But, other remote access engines can be substituted.
KEY-VIEW II improves control of "Host" PCs from a remote location on virtually a real time basis without any remote access hardware or software running on the Host PC. Any PC
1o running any operating system may be accessed remotely, as long as the Host PC has a standard video card and compatible keyboard.
The present invention eliminates operating system dependent, software only based remote access solutions that involve costly software upgrades and complexities each time the Host or Remote 15 PCs operating system changes.
KEY-VIEW II is a independent hardware unit that is installed between the Host PC and it's video monitor, keyboard, mouse and power source. In other words, the Host PC's video monitor output signal passes through KEY-VIEW II before reaching the VGA
20 monitor, the keyboard and mouse input signal passes throli~~h KEY-VIEW II before reaching the PC. Accordingly, KEY-VIEW II
intercepts all of the critical input and output functions of a PC
necessary to totally remotely control any PC nmning any operating system or application.
25 The KEY-VIEW II thus provides platform-independent remote access. KEY-VIEW II permits remote access to any version WO 00/17766 PCTIUS99/21$91 of any operating system, even versions that have not yet been released. Moreover, since KEY-VIEW II converts the analog video (VGA or SVGA) output signal of a Host PC to digital form, KEY-VIEW II permits a remote user to ~-iew on virtually a real-time basis s whatever is on the video. output display, even in those cases where the Host PC is totally locked up.
Using KEY-VIEW II, remote support technicians can be instantly transported to a site that has failed as if they were on-site.
KEY-VIEW II eliminates resulting downtime, technician travel time and permits scarce technical experts to be centralized and utilized efficiently.
Under the KEY-VIEW II remote control concept, a remote user simply calls the KEY-VIEW PC, using pcAnywhere, to take control of one or more Host PCs as if they are on site, non-15 intrusively, without any software or hardware installed in the Host PC(s). No special hardware other than a PC or laptop with a standard modem or LAN interface card is required by a remote user to access KEY-VIEW PC.
KEY-VIEW II has the necessary tools to remotely restore 2o normal Host PC processing in most cases. For example, KEY-VIEW II could be used to remotely view or change the CMOS
setting on a Host PC. In cases where remote repair may not be possible (e.g. a hard drive is defective), KEY-VIEW II provides the necessary unrestricted access required to remotely determine 25 what repairs (e.g. replace hard drive) will be necessary to restore normal Host PC operations.

WO 00/17766 PCT/US99/z1891 Many network operating systems do not permit remote access sofrivare applications to co-exist with the nettvork server's operating system. Even in cases where a server operating system may support remote access, many administrators don't permit 5 remote access simply because the remote access software application degrades server performance: Moreover, because such application are always running in the background constantly testing for incoming calls, such applications increase the probability of causing server failures. If the server's operating system fails. the 1o server's processor locks up for any reason, or the new-orlw cabling systems fail, the network administrator will not be able to determine the reason for the failure and effect repairs without having direct, on-site access to the server. However, if a KEY-VIEW II system had been installed, the network administrator would have been able to remotely access the Host unit, view what appears on the server's screen, physically take over the server's keyboard, control operations and/or cold boot the server, as required. KEG'-VIEW II
thus provides network administrators with unconditional access to any network server (Host PC) without requiring either CPU or 2o Local Area Network (LAN) communications support from the Host PC or the network.
As an example of other uses for KEY-VIEW Ih consider a company where each employee depends on a mufti-port net<vork communications server for remote access to their reference files. If 25 one or more ports on the communications server should fail. remote access to the company's fles and network would not be possible or would be haphazard. In such cases, simply rebooting the communications server remotely is not desirable because there may be other remote users on ports that are still operating properly, so "blindly" rebooting the communications server would immediately 5 cut off their connection(s). Obviously, a network administrator must be in a position to take immediate corrective action, buff may not be on-site. KEY-VIEW II permits administrators to remotely access and control the communications server immediately, as if they are physically sitting in front of the server.
to KEY-VIEW II may also be used for more efficient remote maintenance of PCs. When a failure occurs, a remote maintenance center can .take over the failed PC for purposes of running diagnostic procedures. In many cases the problem may be correctable remotely by the maintenance center, thus avoiding 15 wasted technician travel time. At a minimum, KEY-VIEW II
provides management personnel with the information necessary to know what parts and technician skill levels are required to make the on-site repairs before anyone is dispatched to the site.
As a final example, KEY-VIEW II may be used to remotely 2o monitor user activities to significantly enhance corporate security.
For example, a bank could connect a KEY-VIEW PC to each PC in a remote branch. Branch staff would Have no way of knowing whether or not their PC and their activities were being monitored remotely. More importantly, the monitoring process would have no 25 effect on the staffs normal PC operations.

Using the KEY-VIEW PC multiple PCs may be controlled remotely using a single phone line. LAN node connection or Internet Address. By adding supported third party switch boxes, the number of remotely accessible PCs can be increased further.
5 Incredibly, with KEY-VIEW II full remote access is possible to remotely reboot a Host PC and watch it reboot while remaining connected to the Host PC.
KEY-VIEW II supports up to 256 colors and graphics resolutions up to 1024x768 and provides remote keyboard and l0 mouse.
Within a KEY-VIEW PC a customer installs interface cards, each having the ability to capture the VGA/SVGA video output signal of a Host PC or supported third party switch box and display the Host PC's screen on the KEY-VIEW PC's screen on virtually a 15 real-time basis. The KEY-VIEW PC also has the ability to redirect it's keyboard and mouse to control the Host PC, as if the KEY-VIEW PC's keyboard and mouse were directly connected to the Host PC. On this basis, when a remote user links to the KEY-VTEW PC via a single copy of pcAnywhere, it serves as a gateway 2o to totally control any "Host" PC connected to it either directly or through an optional third-party switch box. On this basis a user may remotely control and switch between up to 48 Host PCs running any operating system or application without any special hardware or remote access software installed on any of the Host 25 PCs.

KEY-VIEW II also integrates the functions of the so-called NET-911 Control Modules and KEY-VIEW PC Access Control Card into the KEY-VIEW custom hardware unit. That is, the KEY-VIEW II can be part of a unique family of NET-91 I products. Each product in the family is designed to perform specific fiuictions that further enhance the usefulness of the entire family, particularly for remote PC network administration purposes. The other products in the family, which are described and claimed in greater detail to follow:
l0 1. Network Trouble Alert System. That is the most comprehensive, versatile and failsafe method for detectin~~ network failures and issuing alerts trouble alerts to network administrators.
Properly administering any network site requires a totally reliable means for monitoring servers and the environment ?4 hours 1 s a day, ? days a week. If a problem occurs, a fail-safe alert delivery system would also be essential.
Software based network monitoring systems currently ercist in marketplace. One example is described in U.S. Patent N~.
5,566,339 .
2o But, softlvare based systems are not fail-safe. For z~ampLe, monitoring stops without notif cation if.the PC they are numin~~-on fails or simply locks up. No known system has voice alert delivery capabilities. Moreover, these systems have no environmental monitoring capabilities. rn this regard, most server failures are a 25 direct result of either power failures or excessive heat buildup due to malfunctioning cooling systems.

WO flfl117766 PCT/US99/21891 The NET-9I 1 Trouble Alert System is a total solution solving the short-comings of existing network monitoring products. The NET-911 system consists of sofrivare installed on a network workstation as well as a hardware unit connected to the workstation via a serial cable provided. NET-911 monitors the environment as well as an unlimited number of file servers (for example, Novell Netware or Windows NT servers) visible to the workstation over the LAN. In addition, when a particular server (that is serviced by the Trouble Alert System) is used as a gateway to another server 10 operating system which is not serviced per se by the alert system, the non-serviced servers may also be monitored from the single Trouble .Alert System.
The NET-911 System can issue pager andlor custom user recorded voice alerts over the telephone should ( I ) a network server fail; (2) power fail or be restored; (3) the temperature becomes too Hot or too cold; or (4) another monitored process fail {e.~~. tape backup unit). To insure fail-safe processing, the hardware unit has its own redundant internal battery, microprocessor, and modem.
This makes it possible to deliver alerts even when the workstation 2a connected to the unit fails or loses AC power. Conversely, using software provided with the System, the workstation can be used to deliver failure alerts should the hardware unit fails. These safeguards make the Trouble Alert System excellent for reliable.
long term, unattended, monitoring of Network sites.
Numerous other innovative features are also integrated into the NET-911 system. For example, should a server faih~re be detected, NET-911 automatically cold-boots the work station to which it is connected to confirm the failure. This extra step prevents false failure alerts from being issued. As a second example, NET-911 records what is said when a person alerted 5 answers an alert call and stores this recording on the workstation's disk drive. This recording serves as a perfect audit trail to prove the alert was delivered. The NET-911 hardware unit also has t<vo adapter ports that be used to optionally detect water, smoke and intruders .
10 The NET-911 system compliments the capabilities of the KEY-VIEW II system by automatically alerting designated persons) that a problem has been detected on a network. Then, the KEY-VIEW II system could be used to immediately deal wrath the problem at hand.
15 2. Control Modules. These are unique devices permitting remote power control and serial access to an unlimited niunber of PCs or other devices, such as routers, printers, copy machines, etc.
Unlike other remote power control products that require their own phone line, NET-911 modules can be chained together and 2o connected to the serial port of any PC previously set up for remote access NET-911 Control Modules permit remote power control and serial access to an unlimited number of PCs or other devces_ such as routers, printers, copy machines, etc. Unlike other remote power 25 control products that require their own phone line, NET-911 modules can be chained together and connected to the serial port of any PC previously set up for remote access. "Module Management Software" supplied with NET-911 modules may then be installed on this "Management PC" and remotely activated whenever necessary to control power and serial access to up to 2~0 devices connected to the PC's serial port. For sites using KEY-VIEW II, the modules would be connected to the serial port of the KEY-VIEW PC to provide serial access and power control to ail Host PCs connected to the KEY-VIEW PC.
Low cost NET-911 modules may be used for numerous to practical purposes. For sites with KEY-VIEW units connected to third party supplied switch boxes, NET-911 modules may now be used to transfer files and reboot PC's connected to the switch box.
For other sites, NET-911 modules may be used to serially manage and control power to other PC's or rauters.
i 5 The Management PC may be accessed remotely using any commercially available software package, such as pcAnywhere, Remotely Possible, Carbon Copy, etc. The Management PC simply serves as the gateway to individually serially access other devices, such as routers or PCs, for management, f le transfer or AC power 2o control purposes. Most third-party, remote control, software packages will support remote access to a Management PC via the phone line, LAN and/or Internet.
Each NET-911 module has one "DATA IN" and one "DATA
OUT" port permitting up to 250 modules to be daisy-chained 25 together using inexpensive standard, 8 wire, straight-through, flat cable. The first module on the daisy-chain connects directly from the DATA IN port to any standard serial port on a Management PC, using a special serial port interface connector (RJ-45 to DB-9~
supplied. Other modules may be added to the chain by connecting the DATA IN port of the module added to the DATA OUT port of 5 the last module on the chain. Modules are addressed by the NET-911 Module Management Software (running on the Management PC) based on the order (i.e. physical sequence) that each module is installed on the daisy-chain. For example, the module directly connected to the Management PC's serial port would be Module ID
Io l, the module connected to module ID 1's DATA OUT port would be addressed as module ID 2, and so forth.
Using the Module Management Software provided. each module on the daisy-chain may be individually selected (i.e.
designated as the Active module). When a module is active. any 15 device connected to that module's SERIAL port may be serially accessed, as if that device were the only serial device connected directly to the Management PC. To avoid serial conflicts bet<veen devices and modules only one module on the daisy-chain may be active at any point in time: The active module may be chanced at 20 any time from a remote location using the Module Nlanagement Software.
A NET-911 module has one power input cord and OIIe power output receptacle. AC power input is obtained from any :AC power source, such as a wall outlet or UPS. AC power passes throll~~h the 25 module to the device connected to the module's three prone power output receptacle. Power to more than one device may be controlled by connecting any commercially available power strip having multiple receptacles to the power output receptacle on the module. When a module is accessed from the Management PC
(using the Module Management Software pro~~ided), power ma~~ be 5 turned ON or OFF to those devices) obtaining AC power from the module's power output receptacle.
Each NET-9I 1 Control Module also has a single "SERIAL
interface port". This port permits a device (such as a PC, router, printer, etc. that can be controlled or managed serially) to be to connected to the module using one of the RJ-:I~ to DB-9 serial interface adapters provided. On this basis, when the module on the daisy-chain is addressed by the Management PC (using the Module Management Software provided), it appears as if that device is the only device serially connected to the Management PC.
15 Even though there may be hundreds of modules daisy-chained together, only one module may be addressed (i.e. active) at a time by the Module Management Software provided. This approach permits unrestricted serial communications between the Management PC and whatever PC (or other device) is connected to 2o the selected module's SERIAL port. Moreover, NET-91 I modules have been designed so that there is no interference or creation of any special data packets that would in any way degrade serial performance when communicating with a device connected to a module's serial interface.
25 Using the Module Management Software provided, each module on the daisy-chain may be individually selected {i.e.

w0 00/17766 PCT/US99121891 designated as the Active module). When a module is active, any device connected to that module's SERIAL port may be serially accessed, as if that device were the only serial device connected directly to the Management PC. To avoid serial conflicts between 5 devices and modules only one module on the daisy-chain may be active at any point in time. The active module may be changed at any time from a remote location using the Module Management Software:
There is also a supported mode where none of the modules on a daisy-chain are addressed. In this mode the serial signal just passes through to whatever is connected to the end of daisy-chain.
This mode is referred to as the "Serial pass- through" mode. For example, in this mode a Management PC could communicate with a serial printer or modem connected directly to the DATA OUT port of last module on the daisy-chain, as if no modules existed: To make this direct connection to the device connected to the last module on the chain, either ( 1 ) a special optional RJ-4 ~ to DB-9 connector is required or (2) a null modem connector MUST be placed beriveen a standard NET-911 RJ-45 to DB-9 module 2o connector and the device' s serial port.
Unlike many power control products on the market, NET-911 modules remember the current status of output power even in cases where power fails to the module itself This is important in an emergency situation. For example, this feature allows a user to turn 25 OFF power permanently to devices at a remote site to prevent resulting temporary power outages from damaging the hardware at WO 00lI7766 PCT/US9912189I

the site. In this case many devices on the market improperly reset and turn power back ON to devices at the site if power fails to their module. In contrast, NET-911 will insure power remains OFF in this eacample until power is turned back ON by a remote user.
5 3. KEY-VIEW PC Access Control Gard. These cards log caller ID and restrict access to a KEY-VIEW PC based on the caller's ID. Also, they permit rebooting of the KEY-VIEW PC
remotely.
Each KEY-VIEW PC can include a unique ISA "Access 1o Control Card" designed to permit the KEY-VIEW PC to be remotely reset, to capture the caller's ID, issue pager alerts when intruders are detected and to control the KEY-VIEW PC's turbo light.
When the Reboot card is installed, a phone line is connected t5 into a "PHONE 'IN" jack on the back plate of the card. A
"PHONE OUT" jack permits the pass through of the phone signal to either a telephone or a modem, as necessary.
When a call is received, the card captures the caller's ID and passes any ID received to the KEY-VIEW II application pinning on Zo the KEY-VIEW PC. Using the Caller ID menu option, the KEY-VIEW PC could then be optionally configured to only accept calls from a pre-specified list of phone numbers to improve security . in addition, capturing the caller's ID permits logging the phone number of anyone attempting to remotely access the KEY-VIEW PC.
25 Each access control card is connected either to the PG's internal reset switch or to an optional external NET-911 Control Module to permit the reset card to reboot the KEY-VIEW PC when instructed by a remote user.
The Access Contxol Card has the capability to count incoming rings and thereby permit actions based on the number of 5 rings detected. If less and/or more than a user specified number of rings are received, the card may be configured to reboot the KEY-VIEW PC.
Rebooting the KEY-VIEW PC remotely is necessary in the event the KEY-VIEW PC should ever lockup (i.e. not respond 1o when a user attempts to access the KEY-VIEW PC remotely). The reset card monitors all incoming phone calls and can be configured to reboot the KEY-VIEW PC in the event less a user defined number of rings are detected or more than a user defined number of rings are detected.
15 When a modem is installed in the KEY-VIEW PC, it is possible that the modern answers a call but either the KEY-VIEW II
and/or the remote access engine is locked up. In this case it will be necessary to remotely reboot the KEY-VIEW PC. In order to do this the remote access engine can be configured to instruct the 2o modem to answer a call only after four rings. Then, the KEY-VIEW II "Enable Reboot when less than "n" rings" is set to, for example, 2 rings. Using these settings, a remote user simply calls the KEY-VIEW PC and hangs up after one ring, thereby causing the KEY-VIEW PC to reboot.
25 The Access Control Card also supports a variation of the "reboot on less rings'' option where a touch tone code (up to eight digits) may be entered by a remote caller after the modem answers a call to cause the KEY-VIEW PC to reboot.
It is also possible that when the KEY-VIEW PC locks up the modem locks up too and does not answer a call at all. Also, in cases where no modem is installed in the KEY-VIEW PC but the KEY-VIEW PC is accessed remotely either via a LAh1 or the Internet, it may still be necessary to use a phone line to remotely reboot the KEY-VIEW PC should it lockup. Both of these problems can be solved by setting the Enable Reboot when more to than rings option to 10 rings. In this situation, a remote user would simply call the KEY-VIEW PC and wait for more than i 0 rings before hanging up thereby causing the KEY-VIEW PC to reboot.
In rare cases, it is possible that a modem installed in the KEY-VIEW PC could lockup and hang onto a phone line, so that the line was always busy when a remote user attempts to access the KEY-VIEW PC. In addition, one remote user may wish to terminate another remote user's access during an emergency situation. Both of these situations can be resolved by connecting an external modem to the RJ-~a serial port of the Access Control card (using an optional connector and RJ-4~ cable) and connecting a second (different) phone line to this modem. Any surplus external modem may be used for this purpose, since this modem will never operate above ?400 baud. In cases where a NET-911 Control module is already connected to the Access Control Card's serial 25 port, the modem should be connected to the "Data Out" port of the module. This modem would then be configured to be in an auto-WO 00!17766 PCT/US99/21891 answer mode. Then, the option to use an external modem must be enabled and a password defined, as discussed under the Enable Modem Reboot topic. In this situation, a remote user would simply use a terminal emulation program such as Hyperterminal {supplied with Windows) to call the external modem and enter the correct password when prompted by the access control card thereby causing the KEY-VIEW PC to reboot.
An Access Control Card also has the capability to issue pager alerts in the event a potential intruder is detected. Such pager alerts to would be appropriate if a user fails to enter a correct password within a pre-specified number of guesses or a caller ID is detected from an unauthorized phone number. The person to be alerted via their pager and the related pager codes can be def ned using the Pager Alert menu option. In order to issue a pager alert an optional external modem must be connected to the Access Control Card.
The Access Control Card is also used to control the turbo light on the KEY-VIEW PC's front panel via a cable connected from the card to the KEY-VIEW PC's mother board's turbo light control pins. The turbo light is then used to visually indicate when a 2o remote user was accessing the KEY-VIEW PC and to indicate whether the KEY-VIEW PC was in Host mode or a Menu mode.
The KEY-VIEW PC's turbo light is OFF when the KEY-VIEW PC is in a Menu mode and is not being remotely accessed.
The KEY-VIEW PC's turbo light will be ON when the KEY-VIEW
PC is in a Host mode and is not being remotely accessed. This light will flash ON briefly whenever the KEY-VIEW PC is in a Menu WO OOIlfifi66 PCT/US99/21891 mode and is being remotely accessed. If the KEY-VIEW PC is in a mode where both pcAnywhere is "In Session" and the KEY-VIEW
PC is in a Host mode, the turbo light remains ON but then flashes OFF fox .5 seconds every 5 seconds.
Setting the turbo Iight in this manner coupled with the user beep option, which is handled by the KEY-VIEW application running on the KEY-VIEW PC, will improve security by ~~iving anyone working at the Host site a visible and audible indication whenever the KEY-VIEW PC is being remotely accessed.
1o In summary, the preferred embodiment of the present invention provides:
Support for 2, 4, 16, 256 or other numbers of colors in 640x480, 800x600, 1024x768 or other graphics modes, Remote access support for modem access, LA~'~1 Access, 15 direct serial/parallel cable access andlor TCP IP Internet access (i.e.
up to 2 paths may be activated for remote access to the Host site;
Full integration of a remote access engine at Host and Remote sites;
Standard operating system installation on the ILEA'-VIEW PC
2o which insures plug and play modem capability and L:~I~ interface between Host and Remote sites;
Capability to control multiple Host PCs from a sin~Tle KEY-VIEW PC using multiple KEY- VIEW PCI cards in the KEY-VIEW PC;
25 Support for third party switch boxes permittin _T a sin~~le KEY-VIEW PCI .card to access multiple Host PCs:

Mouse support for controlling Host PCs from a Remote PC;
Integration of KEY-VIEW II compatible NET-911 Control Modules permitting remote AC power control and direct serial access to an unlimited number of devices at a Host site that can be 5 managed serially (such as routers or network hubs) using the KEY-VIEWPC as the gateway; and Use of a single KEY-VIEW PC to control any combination of up to 4 Host PCs or switch boxes.
Glossary of Terms to The following terms have the following meanings, as used in the description and claims:
Remote PC Refers to the PC used to call a KEY-VIEW PC
to initiate a remote access session.
Local PC Same as Remote PC. Used in cases where 15 narrative relates to a Remote user who would naturally view a Host PC technically as the "remote PC."
KEY-VIEW PC Refers to the PC that accepts the call from the Remote PC and acts as a gateway to a desired 20 Host PC or to NET-911 Control Modules that control power and serial access to any device including PC's, Router's, etc.
Active Host PC Refers to the Host PC that the KEY-VIEW PC
is currently controlling. Even though a KEY-VIEW PC can control multiple Host PCs either via (1) an external PC switch bo~c connected to a KEY-VIEW PCI card or (2) multiple PCI cards, only one of these PC's can be controlled at any point in time. That PC which is currently being controlled is referred to as the "active PC."
5 Active PCI Card Since multiple PCI cards can be installed in a KEY-VIEW PC, the active PCI card refers to the PCI card that is currently selected for access by the KEY-VIEW APP.
KEY-VIEW Unit The first generation custom designed KEY-1o VIEW hardware device (i.e., black box) that permitted remote access to a Host site. This KEY-VIEW unit is now being replaced with the KEY-VIEW PC.
Host PC Refers to any PC that can be controlled by the 15 KEY-VIEW PC.
Host Site The location of a KEY-VIEW PC including all Host PC's connected to that KEY-VIEW PC.
KEY-VTEW APP The software running under the KEY-VIEW
PC's Windows 95 operating system necessary 2o to interface with the PCI APP and BOOT APP
software to satisfy the KEY-VIEW PC's operational requirements. No custom software exists on the Remote PC because all remote access requirements will be satisfied by the 25 pcAnywhere Remote application software.

WO 00117766 PCTlUS99121$91 BOOT A~"P Each KEY-VIEW PC will have one power control ISA card. The BOOT APP will be the software operating system on this card that communicates with the KEY-VIEW APP and any optional power control module on the daisy chain connected to the card. An unlimited number of power modules may be daisy-chained together via standard 9-pin serial cable and connected to a standard serial port on the KEY-10 VIEW PC. The BOOT APP will further permit serial pass-through access by the KEY-VIEW
PC to each boot module. Finally, this APP
permits resetting the KEY-VIEW PC via an interface from the "PHONE" RJ-11 connector to 1 s a phone line based on either the number of rings or based on touch tone pressed after the KEY-VIEW modern answers a call.
KB/MOUSE APP The KEY-VIEW PCI Card will have a separate keyboardlmouse microprocessor (APP) that will 20 accept input from the PCI APP representing user key presses, mouse pointer X/Y position on the screen and mouse button press/releases received from the KEY-VIEW APP. The KB/MOU SE
APP will process this information and provide 25 the necessary keyboard mouse interface to the active Host PC. In certain cases this z3 KBIMOUSE APP will communicate information back to the KEY-VIEW APP (via the PCI APP).
For example if the active KEY-VTEW PCi card is connected to a switch box, the switch box will 5 normally return status information to the KB/MOUSE APP whenever a switch occurs to a new PC connected to the switch box. This information would then be passed from the KB/MOUSE APP back to the KEY-VIEW APP
1o so user switching between Host PCs can be confirmed.
Variations of the above terms may be used, such as 'Remote Mouse' to refer to the mouse connected to the Remote PC, 'Remote User' to refer to the person operating the Remote PC, "Remote 15 site" to refer to the site where the Remote PC is located, etc.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 is a schematic block diagram of an example PCI
card in accordance with the present invention;
FIGURE 2 is a schematic block diagram of the video 2o interface example embodiment of the present invention;
FIGURE 3 is schematic block diagram of the main CPU
interface in accordance with an example embodiment of the present invention;
FIGURE 4 is a main CPU memory map in accordance with 25 an example embodiment of the present invention;

w0 00/17766 PCT/US99/21891 FIGURE 5 is a flash pallette converter circuit in accordance with an example embodiment of the present invention;
FIGURE 6 is a flash paliette converter circuit timing diagram in accordance with an example embodiment of the present 5 lnvenrion;
FIGURE 7 is a schematic representation of pixel assembly in accordance with an example embodiment of the present invention;
FIGURE 8 is a schematic block diagram of an example embodiment of the pixel assembly circuit;
1 o FIGURE 9 is a detailed schematic diagram of an example embodiment of the PCI card in accordance with the present invention;
FIGURE 14 is an example embodiment of daisy-chained control modules in accordance with an example embodiment of the 15 present invention;
FIGURE 1 I is an example embodiment of an access control card in accordance with an example embodiment of the present invention;
FIGURE 12 is a combination schematic and perspective view 20 of an example embodiment of the present invention including a remote access PC, control module, and modem;
FIGURES 13 through 27 are example graphical user interfaces in accordance with example embodiments of the present mventlon;

FIGURE 28 is a schematic diagram of an example embodiment of the present system configuration; and FIGURE 29 is another example embodiment of present system configuration.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED
EMBODIMENT
The preferred embodiment of the present invention is described with respect to a host site and a remote site, an example of which is shown in Figure 28.
The KEY-VIEW II Host Site consists of a KEY-VIEW PC 200 connected to one or more Host PCs 201-204. A remote user can access an unlimited number of KEY-VIEW II Host sites using the remote access engine (preferably pcAnywhere).
Using KEY-VIEW II customers completely avoid the upgrade costs typically associated with software based solution as the Host PC's 201-204 operating system changes. KEY-VIEW II is independent of the type of operating system running on the Host PC 201-204, since there is no KEY-VIEW II software running on the Host PC 201-204.
A typical preferred KEY-VIEW II PC 200 has 4 PCI and 4 ISA
slots and includes the following hardware components:
IBM Compatible keyboard Microsoft Compatible serial mouse SVGA Monitor 1 to 8 KEY-VIEW PCI Host PC interface cards (All cards share an IRQ) 1 ISA Access Control card 1 SVGA ISA graphics card (capable of switching graphics modes via Windows without rebooting) 1 ISA modem card 1 LAN Interface Card 1 serial port for use by the mouse 11 serial port for use by NET-911 Control Modules 1 parallel port for use for file transfers between the KEY-VIEW PC and Host PCs.
Using a LAN approach to remotely access the KEY-VIEW PC 200 results in the fastest screen refresh rates and is the preferred remote access approach. In cases where the LAN link 206 has failed, a modem 218 is typically used as a backup means to assure failsafe access to a KEY-VIEW II Host site in an emergency situation.
Each KEY-VIEW II PCI card 10 may be connected to either a Host PC 201-204 directly or to multiple Host PC 201-204 through a supported third party switch box. If a switch box is connected to the PCI card 10, the switch box must permit keyboard controlled switching between PCs connected to the switch box and deliver a consistent, high quality video signal to the PCI cards video input port. Most high end commercially available KVM switch boxes supplied by companies such as Cybex meet this criteria. In other embodiments, switch boxes are cascaded to one KEY-VIEW II 200.
Ideally, the video switch box used with the KEY-VIEW II 200 employs switching between PCs accomplished using a standard IBM

compatible keyboard connected to the switch box. The quality and stability of the switch box video output signal should be sufficient for KEY-VIEW PCI card 10 to capture a clear, consistent video signal from the active Host PC 201-204.
The KEY-VIEW PC 200 includes three application software packages, namely pcAnywhere, NET-911 Control Module system and the KEY-VIEW II system. Preferably, no other software applications are installed or operated from the KEY-VIEW PC.
A KEY-VIEW PC 200 must be equipped with at least one means for remote access. It is recommended that two access modes be installed in case one of the means for remote access has failed.
Typically, users install a LAN card and a modem or Internet TCP/IP server interface in the KEY-VIEW PC. LAN access is then normally used as the preferred means for remote access because of the significantly faster response times. In the event the LAN fails then the remote access could occur via a modem or Internet connection. The Possible means for remote access to the KEY-VIEW II PC are as follows:
~ Internal or external Modem (57.6 baud rate Suggested) ~ TCP/IP Internet Server ~ Local Area Network Interface Card (NetBios, SPX or Banyan Vines) uDirect Connection to KEY-VIEW PC's Parallel Port -Using SPECIAL pcAnywhere cable Interface ~ Direct Connection to KEY-VIEW PC's Serial Port - Using a Null Modem Cable IDSN via CAPI 2.0 A total of eight feature cards slots (4 ISA and 4 PCI) are typically available in the KEY-VIEW PC. The suggested use of these slots is an follows:
ISA Slots:
~ 1 -SVGAcard -~ 1- LAN Interface Card ~ 1-Modem Card ~ 1-KEY-VIEW Access Control Card PCI Slots:
~ Up to 4 KEY-VIEW II Host PC Interface Cards Preferably, the PCI slots are reserved for the KEY-VIEW II
cards even if 4 cards are not initially installed in the system. Often users find they want to install additional KEY-VIEW PCI cards.
Reserving the PCI slots for this purpose avoids the need to reconfigure the operating system if other PCI feature cards need to be changed to ISA cards.
2o Each KEY-VIEW PCI card has the necessary Host PC VGA/
SVGA analog to digital conversion hardware, Host PC keyboard interface, and Host PC mouse interface. One or more of these PCI
cards (up to a total of eight cards) may be inserted into the KEY-VIEW PC so that a single KEY-VIEW PC could control one or more Host PC's or PC switch boxes. To avoid using up available interrupts, PCI cards share the same addresses and IRQs. Each PCI
card contains a 3 position DIP switch necessary to set the card ID
from 0-7.
5 As mentioned, each PCI card could optionally be connected to a supported switch box, which in turn may be connected to multiple PCs. Based on special keyboard sequences entered, a supported switch box can be remotely instructed to switch between Host PC's and pass the selected Host PC's keyboard, mouse, serial l0 and video interfaces to the KEY-VIEW PC's PCI card. For example, a switch box could be connected to 3 PC's where PC ( 1 ) is running a DOS text mode, PC (2) is running a 640x480 graphics mode and PC (3) is running a /024x768 graphics mode. In this example, a remote user could click a menu option on the KEY-15 VIEW PC's screen to tell the switch box (via special keyboard key sequences) to switch from PC (2) to PC (3). Special unique KEY-VIEW II software interfaces to the operating system insures the KEY-VIEW PC automatically adjusts to different graphics modes on the fly, so that the KEY-VIEW PC's screen always mirrors the 2o contents of a Host PC's screen on a fullyscreen basis.
Each KEY-VIEW PC also requires one ISA KEY-VIEW
Access Control Card. This card permits a remote user to reboot (via the Reset button's circuit) the KEY-VIEW PC in event the KEY-VIEW PC should ever lock up. An RJ-45 interface port is on 25 this card that could be connected to an optional NET-91 I Control Module to further permit cold booting (i.e. cutting AC power) to WO 00/1776b PCT/US99121891 the KEY-VIEW PC from a remote location. Furthermore, this card may be used to control one of the status lights (normally the turbo light} on the front of the KEY-VIEW PC so that personnel at a Host site have a visible indication whenever someone is remotely 5 accessing the KEY-VIEW PC (i.e. the light would be Iit}. Finally, any calls to a modem in the KEY-VIEW PC must first pass through the phone line interface INIOUT ports on this card. This approach permits the card to capture the caller's ID (i.e. telephone number) from the phone line. Using this caller ID, the card could limit any 1o remote user's modem access to the KEY-VIEW PC's as well as a remote user's KEY-VIEW PC reboot options based on the caller's ID. Accordingly, this call ID information can serve to increase the level of sec~wity and remote access to the KEY-VIEW PC.
One of the standard serial ports of the KEY-VIEW PC is 1 s normally used to provide a serial interface to up to 250 NET-911 Control Modules. These modules may be daisy-chained together to pewit a remote user to cold boot Host PCs or any other devices at a Host site. In addition, the modules also permit a remote user to serially access the device connected to the module, as if that that 2o device were the only device directly connected to the Host PC's serial port.
This feature is extremely useful by allowing the KEY-VIEW
PC access to devices that can be remotely managed serially, such as routers, or as another avenue to permit file transfer to a Host PC.
25 Next, a KEY-VIEW II PCI hardware card and its internal circuit interactions are described. The chief parts of the Key View II card are the FPGAs (Field Programmable Gate Arrays) and the on-board CPUs. The card has three main functions : the video capture circuit, the keyboard/mouse circuit, and the serial port circuit. The card is designed to interface with a PCI bus 5 architecture.
As shown in Figure 1, the card is primarily desired around two FPGAs, preferably, of the Xilinx XC3100A famil~~, which operate over 80 MHz. The other is the main FPGA and is a standard Xilinx part.
1 o On the KeyView PCI card 10, the FPGA I 1 is surrounded by several different circuits. These include the video interface circuitry 14, the serial controller chip circuitry 1 ~., mouse and keyboard driver circuits 17 and 18, the keyboard and main card CPU circuits 20 and 21, the dock 19, the flash palette converter R;AM 24, the 15 video capture R.AM 25 and 26, and the PCI bus controller chip 22 communicating with PCI Bus 23. Card ID switch 16 is also included.
Figure 2 illustrates the video interface circuity 14 to the FPGA 1 i. Three sets of video buffer circuits 29-31 contain video 2o amplifiers that boost the video and send it back out to the VGA
display. These circuits 29-31 also provide noise and level conditioning to accommodate the ADCs 32-34, which expect the analog signals to be within the bounds of known ~~oltages.
After the raw video has been properly conditioned, the z5 analog color signals drive three Analog Devices AD90I2 flash analog to digital converters 32-34. These circuits convert the input voltage to an output 8 bit digital value using flash conversion technology whereby the reference signal is divided by an internal resistor voltage ladder into 256 individual steps. These voltage steps are simultaneously compared to the input signal by 256 5 separate analog comparators. By comparing all possible values at once, the chip can operate at up to 100 MHz.
Although the ADC chips output 8 bits the PCI card requires only 5 bits for each color. Thus, the 3 least signif cant bits are discarded yielding 15 address bits. The combination of the Flash 10 Palette Converter RAM discussed below and the process of discarding the three least significant bits of the video signal make the captured video extremely stable.
The sync pulses, Hsync and Vsync, from the video signal are conditioned and fed into the main FPGA 11. Both of these signals 15 are polarity coded so that older monitors (non-multiswc) will know what mode the VGA card was sending. This means that the signals might either be negative or positive pulses. Since TTL level si~rlals are needed for the FPGA, these random polarity signals must be converted to positive TTL level signals. But before that is done. the 20 polarity itself needs to be converted to a TTL level signal and also fed into the FPGA. Therefore, the sync conditioning circuits 3 ~ and 37 will output four TTL lines - two sync pulses and rivo polarit~~
pulses. The FPGA will latch the polarity pulses internally to form two stable polarity bits (see FPGA registers).
2s The FPGA also does some additional processing of the ~-ideo sync pulses. Because the saftware needs to know the exact video frame rate, the FPGA has a small frequency counter that counts the number of Vsync pulses in a second and stores that value in an FPGA register: Another FPGA counter counts the number of Hsync pulses in between Vsvnc pulses. This value is also stored in s another FPGA register.
The Hsync pulse is fed to conditioner 36 and PLL 38. Some video cards will blank this signal after the end of active video. For physical monitors, this is not a problem; however, for PLL circuits, it can cause the output frequency to drift. Most PLL circuits require to a stable reference frequency or else they will become unstable.
Some PLL chips, such as 1C51522 PLL chip, have the necessary circuitry to ignore the missing Hsync pulses. The output of the PLL
becomes the dot clock for the video. Each pulse from this dot clock should line up exactly with the center of each dot on the video ~s signal. Therefore, the PLL includes a method for adjusting the phase of the output dot clock and for supporting the various number of video line lengths, i.e. 640, 800, 1024, etc.
As shown in Figure 3, the Keyview PCI card uses two separate CPUs for embedded processing, the main CPU 21 and 2o keyboard CPU 20. The keyboard CPU interface has no external memory so most of its 1/0 pins are free to do other thins. Two ports of the keyboard CPU are used to control the t«-o mice and the keyboard and the other ports 0 and 2 are used to communicate with the main CPU and serial EEPROM.
25 The interface of the main CPU 21 to the card includes external program RAM memory 41 holding some program code for the microprocessors. The instruction fetch and data readlwrite signals from the CPU are merged by Logic in the FPGA to allow the CPU to execute code from the RAM.
The R.AM is mapped to the last 32K of the CPU's address space. This guarantees that the bootstrap program that is in the EPROM inside the CPU will receive control on reset before the R.AM does. Using software techniques, the actual program is loaded into the RAM by the bootstrap program. With this done, control is transferred to the program in the RAM after IPL.
1 o The main CPU 21 is also capable of addressing the FPGA
registers 1 l and both of the Dual Port Flash Palette Converter RAMs 24A and 24B. These are all mapped into the first 32K of the data storage space of the main CPU. This is possible since the CPU
treats data memory differently than program memory. To prevent conflicts between the FPGA registers and the Flash Palette Converter RAMS (which are all mapped to the same location and bank), two special device select bits are output directly from the main CPU. These 1/O lines select the device that will be addressed when the CPU accesses the Lower 32K of its data memory address 2o space.
The main card CPU 21 has a watchdog feature that will reset the CPU if it does not respond to it within a certain amount of time.
The keyboard CPU 20 does not have any such automatic circuitry.
Instead, the reset line to the keyboard circuit is controlled by the main card CPU directly. This keeps the main CPU from locking up indefinitely.

WO 00/1'766 PCTlUS99/21891 The address latch is, in practice, usually an external 74L~373 or equivalent. Because the inputs to this chip are needed by the FPGA 1 I to access the FPGA registers, this latch function is implemented in the FPGA. The ALE is input to the FPGA latch 5 strobe and, in response, the Q outputs of the latch are output. Using this configuration, up to 256 individual registers may be addressed inside the FPGA.
CPU Considerations 1o The CPUs are two 87C52-24 microprocessors running parallel in a master/slave arrangement from the main and keyboard CPUs 20 and 21. They will both run from the same 22.I 184 Mhz clock supplied by the keyboard circuit. The main card CPU 21 sends commands and data to the keyboard CPU in a serial fashion.
15 The keyboard CPU 20 will have a program that simply sends codes to the keyboard and mouse as it is told to do so by the main CPU
21. The main card CPU 21 has bootstrap code which controls its IPL. The main program is housed in RAM and has a jump table at a fixed address so that whatever program is running will know how 2o to call the library functions. This way, many of the library functions can be incorporated into the extra space of the EPROM and then overwritten if they become obsolete. Likewise, the inter-CPU
communication routines can be shared between the keyboard CPU
prot,~asn segment and the main card CPU program segment.
25 The main memory map is shown in Figure 4. Rather than keeping the RAM (data) and ROM (code) address spaces separate, WO 0011'I766 PCT/US99/21$91 m this design, a RAM program storage area is needed to facilitate program uploading, meaning that the RAM chip is mapped to both the RAM and the ROM areas of the upper 32K of each address space. In this design, a bootstrap program is burned into the 5 internal EPROM 45. It is 8K in length and is mapped starting at ROM address OQOQH and cannot be accessed using RAM reads.
On power up, the bootstrap code will have control.
Shortly after power up, the KV-APP will load the main card CPU's RAM with it's program, called an IPL (Initial Pro~~ram 1 o Load). The RAM is mapped to OOOH-FFFFH in both RAM and ROM address spaces 46 of the main card CPU. The RAM is a 32Kx8 1 Sns chip or better. The program in the keyboard CPU is f xed and cannot be overwritten by the KV-APP.
The CPU's can be mask programmed, OTP programmed, or 15 EPROM programmed. It is important that the security bits on the CPU not be set in a way that would prevent external code from executing. To maintain maximum usability and high security, an Intel 87C52BH series microprocessor may be used. It is highly likely that both the keyboard and the main card IPL code will be 2o combined into the same EPROM program space. On power up. the CPU would determine if there is any external RAM attached to it.
If so, the device will run the main card CPU code. If not, the device will assume the personality of the keyboard CPU. Currently, the keyboard process is allocated 2~% of the total EPROM space 25 and the main process is allocated 75%. In the currently selected 87C52-24 chip there is 8K of EPROM which translates to 2K for the keyboard process and 6K for the main process.
After the IPL of the main CPU RAM, the KV-APP will instruct the main card CPU to begin executing the RAM program.
s The RAM program contains extra code and functionality that the bootstrap program does not.
Serial Bus The serial I/O pins, RxD (data) and TxD (clock) of the main to card CPU 2I communicate serially with its peripheral devices. The serial lines (Clock, Data, and RD/WR [P1 .O]) are bussed to all the serial devices. The CPU 21 also outputs individual device select lines for each device. The serial devices ignore their inputs {clock, data, and RD/WR) until they receive a high level on their device 15 select (CS) input. No device is allowed to output any signal until it is selected and must change all of it's outputs to a high impedance state when it is not selected. The PLL 38 is a special case. With it, the RD/WR pin is not used, and the Read/Write function is incorporated into the data stream.
20 No serial de~zce will ever initiate any communication with the main card CPU, not even if it is selected by the device select lines.
The keyboard CPU has a private EEPROM chip attached to it so the keyboard circuit can access the EEPROM data while the 25 remainder of the circuit is powered down.

Keyboard CPU Serial Access The keyboard CPU must be accessed serially. It does not have any registers that are directly accessible, but uses a command 5 approach instead. With this approach, the number of bytes to and from the device are variable depending on which command is executed. The first byte that is written to the keyboard CPU is the CO~~MAND byte, Some example commands include:
CODE COh%hMAND Action l0 00000000 NOP No Operation O 1000000 RESET Reset the. keyboard CPU error flag Copy the status register to the output register 01000100 READ FIFO Copy the top FIFO byte to the output 15 register 00000001. MOUSE TYPE Change the mouse hardware type {next byte) O l 00000 i SEND KEY Send a b~~te to the keyboard (next byte) 10000001 SEND MOUSE Send a b~-te to the mouse (next byte) 20 111 I 1 READ PROM Move an EEPROM byte to the output register 1 I I i 1000 ENABLE WRITE Enable a WRITE PROM as next command I 11 l 1010 WRITE PROM Writes a bye to the EEPROM
All read operations on the keyboard CPU 20 will read the 25 contents of the CPU 20 output register. This register is set by certain commands and may be read multiple times without affecting its contents. The lower three bits of the keyboard command codes have a special meaning. The two LSBs (bits 1 and 0) always indicate the number of bytes that will follow the command byte.
5 This configuration allows for up to three bytes to follow the command byte. If bit 2 is set, then the command will alter the contents of the keyboard CPU's output register. The remaining bits are arbitrary and serve only to make each command unique.
In the case of serial EEPROM access, special conditions to apply. After the command is sent, the keyboard CPU 20 will expect an 8 bit address to be sent immediately following the command byte. The address byte is the address in the EEPROM of the byte to store or retrieve. In the case of a READ PROM
command, the value in the EEPROM location addressed by the 15 address byte is copied to the keyboard's output register. For the WRITE PROM command, the next byte received by the ke~~board CPU after the address byte is stored in the EEPROM at the addressed location. However, before the EEPROM can be written to, the keyboard CPU must receive an ENABLE WRITE command 20 from the main CPU. This command enables a write operation only if it is the very next command. After the write command, or am~
other command, the WRITE ENABLE condition is ~~oided. Any attempt to send a WRITE PROM command without first sending a WRITE ENABLE command will cause the keyboard CPU to i~lore 25 the WRITE PROM command and set the appropriate error flag in the keyboard status register. The requirement of a preceding WRITE ENABLE command before a WRITE PROM command will help prevent inadvertent EEPROM writes by confused microprocessors.
Any time that the keyboard CPU 20 is selected by the device 5 select signal for serial I/O, the keyboard CPU software resets the serial interface so that if the last byte was sent in error, it will be cleared. The keyboard CPU is written to when the RD/WR' pin is low and read when the RDIWR' pin is high.
The status register that is returned for a QUERY STATUS
1 o command has the following definitions:
Bit 0 = Num-Lock light status --- Light status from host.
Bit 1 = Scroll-Lock Light status --- Light status from host.
Bit 2 = Caps-lock light status --- Light status from host.
15 Bit 3 = Host Power On Bit 4 _ EEPROM is busy.
Bit 5 = Error - Attempt to white to protected memory.
Bit 6 = Error - An error was detected in communication.
Bit 7 = FIFO ovemln - FIFO has lost bytes because it has 2o not been read.
Keyboard Serial Algorithm The main CPU 21 has several IIO pins drat are dedicated to communication with the keyboard CPU 20. One I/O pin is a special 25 BUSY input pin that 1S fed directly by the keyboard CPU. This indicates to the main card CPU that the keyboard CPU is busy with something and cannot respond to serial input. When the keyboard CPU is idle, it will clear the BUSY output. Another I/O pin of the main CPU is connected to the RST (Reset) input of the keyboard CPU circuit. This allows the main CPU to reset the keyboard CPU
5 when the keyboard CPU loses control. Special circuitry is also in place to allow the keyboard CPU to reset itself on power up and to prevent accidental resets when the main CPU is powered down. A
third input I/O pin on, the main CPU is fed by the keyboard's RTS
(Ready To Send) output. This output tells the main CPU that the 1o keyboard's internal FIFO, has something in it and that it needs to be serviced.
In order to initiate a serial communication between the main CPU 21 and the keyboard CPL' 20, a handshaking approach is used.
When the main CPU wants to send a byte to the keyboard CPU, it i5 first checks the BUSY input from the keyboard CPU to make sure that it is low. If it is high, the main CPU must wait for it to clear. If the main CPU has to wait longer than one second, it will assume that the keyboard CPU has crashed and will reset it by toggling the RST pin on the keyboard CPU . Otherwise, with the BUSY input 20 low, the main CPU can begin transferring a serial byte.
The BUSY flag also indicates to the main CPU that the keyboard CPU has finished processing a serial input bit. This status is triggered by the device select input. Therefore it is important to read the BUSY pin before selecting the keyboard CPU.
25 Before the main CPU 2I sends the first bit, it first sets the serial clock and RD/WR' lines low and sets the keyboard device select line high. It then outputs the data bit on the serial data line.
With this done, it changes the level of the clock output to high.
When the keyboard CPU sees a Iow to high transition on the serial clock line, it reads the bit on the serial data line. Then, when the 5 keyboard CPU 20 has finished processing the bit, it pulls its BUSY
output high. This tells the main CPU that the bit was received and processed. The main CPU then pulls the serial clock back low which signals the keyboard CPU to do the same with it's BUSY
output. This process continues until all eight bits of the byte are 1o transferred from the main CPU to the keyboard CPU. When all of the command bytes have been transferred, the device select line is cleared and the keyboard BUSY output returns to normal use. This procedure enables the keyboard CPU to detect serial framing errors while maintaining a high data transfer rate.
1s A similar process takes place when the main CPU reads a serial byte from the keyboard CPU's output register. First, after verifying that the keyboard CPU is not busy or crashed, the main CPU sets the clock line low and the RDIWR' and device select lines high. This time, when the main CPU pulls the clock line high, the 2o keyboard CPU will output a bit on the serial data line. With tlus done, the keyboard CPU then pulls it's BUSY output high. This tells the main CPU that the data is ready to be read. When the main CPU has read and finished processing the input bit, it pulls the serial clock Iine back low. The keyboard CPU sees this and does 25 the same with its BUSY output. Again, the process continues until the entire byte is sent from the keyboard CPU to the main CPU.
Since there is only one byte to read, the device select line is reset.
Keyboard Command Procedure Typical keyboard operation for sending scan codes to the 5 host is for the main card CPU to issue the following commands to the keyboard CPU:
{Check Busy} SEND KEY CODE <scan code>
Upon receiving the scan code byte, the keyboard CPU
temporarily sets its BUSY pin and sends the byte verbatim to the 1o host. The ERROR flag in the stattis register is set if the keyboard CPU is asked to process a command that is not valid. This error detection applies only to keyboard CPU commands and not to scan code data.
Sometimes the switch box will return invalid scan codes as a 15 form of communication. These are added to a I6 byte software FIFO inside the keyboard CPU upon receipt. This FIFO is actually implemented as a circular queue. Since the switch boxes would normally never send more than 4 bytes in response to a key sequence, there is only a remote possibility that the 16 byte FIFO
2o would be ovemln before it could be serviced by the main card CPU.
The sequence would be something like this (fox a [NUIVILOCK][MINUS] [DOCK] key sequence):
{Check Busy} SEND KEY CODE <Make Num-Lock>
{ Check Busy} SEND KEY CODE <Break Num-Lock 25 {Check Busy} SEND KEY CODE <Make ->

{Check Busy} SEND KEY CODE <Break->
{Check Busy} SEND KEY CODE <Make Num-Lock>
{Check Busy} SEND KEY CODE <Break Num-Lock if (RTS) then {Check Busy} READ FIFO
5 There would also be a QUERY STATUS right before and after every SEND KEY CODE. Regardless of the last scan code that was sent, if the RTS output pin on the keyboard CPU is set indicating that the FIFO needs servicing, then the main CPU must read the FIFO and send the data back to the KV-APP. The 1o keyboard CPU will not be at all concerned with the proper format of make-break-repeat codes or if they are valid codes or not. If asked to, it will send multiple break codes with no intervening makes and an unlimited number of invalid codes.
PLL Serial Access 15 As stated above, the PLL 38 video dot clock chip requires special serial access. One main difference is that the RD/WR' pin for all the other devices is not used. The PLL gets this bit via the data stream. The device select output from the main CPU is connected to the SELn input pin of the PLL chip. The PLL 38 uses 2o a RDIWR bit, followed by a three bit address, ,followed by an eleven bit data byte.
Serial EEPROM Access A 4-wire serial EEPROM is provided on the card for non-25 volatile data storage. An example design calls for a 2K serial EEPROM organized as 256 x 8 bytes. The EEPROM stores the External Serial Port IRQ and Base addresses when the KeyView computer is powered down. The EEPROM is local to the keyboard CPU 20 and be powered by the dual power supply of the keyboard S circuit. The main card CPU 2I can access the information in the EEPROM by querying the keyboard CPU. The EEPROM is not on the serial bus and the main CPU cannot access it directly.
Watchdog Timer 10 The watchdog timer circuit for the main CPU 21 is incorporated into the main CPU IC. The keyboard CPU 20 has a software driven watchdog circuit built into the main CPU. If the keyboard does not respond to a command that the main CPU sends it within a finite amount of time, then the main CPU will toggle the 15 keyboard CPU's RST Iine. This will cause the keyboard CPU to reset.
Both CPUs have special circuitry to enable power up reset and other circuitry to prevent inadvertent resets of the keyboard CPU when the main CPU is not powered up.

FPGA Register Access The main FPGA, which is the only one that contains registers, is mapped into the main card CPU's RAM space (Figure
4). The first 256 bytes of R.AM space 47 {OOH to FFH) 25 correspond exactly to the FPGA register space. It is important that the FPGA device select be set high for all FPGA register accesses.

WO 00/I77bb PCT/US99/21891 If not, CPU accesses to RAM locations in the OOOOH to 7FFFH
region will be mapped to the Flash Palette Converter RAM.
However, when the FPGA device select bit is set high, the contents of the FPGA registers can be read from and written to directly.
S
PORT 1 Definitions The main CPU 21 has eight identified Port 1 connections (P1.0-Pi.7) shown in Figure 3, and discussed as follows:
The P1.0 - RD/WR' Serial Bus Read/Write Output port 10 outputs to the keyboard CPU 20. This output pin acts as a RD/WR' signal during mode serial bus accesses. The pin is normally high (read) and ~.vill be set low when writing data to a serial device. For most devices, including the EEPROM
and keyboard chips, the operation of this pin is as described.
15 However, for the PLL 38, this pin is not connected.
The Pl.l - FPGA Device Select Output connects to the FPGA 11 and serves as the chip select line for the lower 32K
of the main CPU's RAM data address space. When this pin is high and the main CPU makes a data read or write to the 2o OOH to FFH address space, it will actually be reading or writing FPGA registers directly. However, when this pin is low and the main CPU addresses data in the OOOOH to 7FFFH region, it will actually be addressing data in the Flash Palette Converter RAM.
25 The P1.2 - Keyboard Busy Input outputs to the keyboard CPU 20 and is a special dedicated pin that indicates that the keyboard CPU is busy and cannot respond to serial commands. This input also has a dual purpose and is also used as a timing signal during serial transfers between the main CPU and the keyboard CPU.
5 The P1.3 - Keyboard Reset Output pin is connected directly (almost) to the RST (reset) input of the keyboard CPU 20. It is used by the main CPU to reset the keyboard CPU when a crash is detected. The main CPU can also toggle this bit under command from the PCI APP. To help prevent l0 inadvertent resets of the keyboard CPU, FPGA logic will require that the keyboard CPU be selected by the FPGA chip select register before the reset signal will get through.
The P1.4 - FIFO RTS Input connects to the keyboard CPU
20 and is the FIFO Ready to Send strobe. It's purpose is to 15 indicate when the FIFO in the keyboard chip has at least one byte in it. It will clear when the last byte is read from the FIFO. This input will perform a soft interrupt of the main CPU so that the byte can be handled before a FIFO ovemm occurs.
2o The P1.5 - ICS/ 522 Device Select is the I/O pin that controls the SELn pin on the PLL dot clock 38. The device is selected when this pin goes low. When the device is selected, it may write to the serial bus.
The P 1.5 - Keyboard Device Select is the I/O pin that 25 controls the Device Select input to the keyboard CPU. The keyboard CPU is selected when this pin is high. When the
6 PCTIUS99/21891 keyboard is selected, it may read or write data on the serial bus.
The P 1.7 - Flash Palette Converter Chip Select connects to the FPGA 11 and controls which one of the dual port flash s palette converter RAMS are accessed during CPU reads and writes. If this pin is high, then the odd bank is selected.
Otherwise, the even bank is selected.
Main FPGA register index 10 The design may include several FPGAs I 1 from a hardware standpoint, even though from the software standpoint, all of the registers are in a single FPGA. When a second FPGA needs register information it will be necessary for it to have a hardware connection to the first FPGA in order to gain access to the registers.
1 S As explained above, the registers are addressed directly by the main CPU 21 and there can be potentially up to 2S6 registers in each FPGA. Before the main CPU can address any of these registers it must first output a high level on the FPGA Device Select output pin P1.1. This enables the FPGA registers and disables the Flash 2o Palette Converter RAM.
In the preferred embodiment, some registers include:
00 - This is a null register and returns random values when read or written.
O 1 - FPGA Flags - This byte is read only and the contents of 25 this register are set by the FPGA. Bit 1 is imported from the video FPGA. The flags in this register are:

w0 00/17766 PCT/US99/21891 0 -Reserved 1 *- Busy - Set when the FPGA is busy writing the selected video block.

2 -Hsync polarity of last pulse - 0 = negative polarity, 1 5 = positive polarity 3 -Vsync polarity of last pulse - 0 = negative polarity, I

= positive polarity Note that the polarity flags are constant and do not poise with the syncs.

4 -Reserved l0 5 -Reserved 6 -Reserved
7 -Reserved 02 - DIP Switch Setting - This byte is a read only flag that contains the four bits selected by the dip switch. Bits 0 and 1 are 15 used as a card address. Bits 2 and 3 are reserved. The flags in this register are:
0 -Bit 0 of the card address which is set by the nTP
switch.
1 -Bit 1 of the card address which is set by the DIP
2o switch.
2 -Switch 2 of the card address DIP switch that is reserved for future use.
3 -Switch 3 of the card address DIP switch that is reserved for future use.
25 4 -Reserved 5 -Reserved 6 -Reserved 7 -Reserved 03 - CPU Flags - This byte can be read or written, but only 5 the CPU can change the values. Bits 2 and 3 are exported to the video FPGA. The flags in this register are:
0 -Video Bank - This bit determines which video bank 25 and 26 is connected to which circuit. A high bit means that the FPGA 13 has bank 0 (25) and the bus 10 23 has bank 1 (26). When using a 16K x 32 bit dual port R.AM configuration, this pin would be tied to address line A14 of the Left {capture) port of the RAM.
The same address line on the right (PCI bus) port is tied to the inverse of this bit. This way, while one 15 circuit has total access to the 0-8K section of the RAM, the other has access to the 8-i6K section of the 1 -Reserved for Flash Palette Converter Multiplexer.
2, 3 -This indicates the number of pixels per byte in the 2o video format. The following table shows how this is decoded:
Bits 3, 2 Bits per Pixel Pixels per byte Max colors 0,0 1 8 2 25 0,1 2 4 4 1,0 4 2 16 1,1 8 1 256 4 -Reserved 5 -Reserved s 6 -Reserved 7 -Stealth Mode - With this bit~set, the card will not respond to any read commands from the PCI bus. The card serial port and the video memory are off line and will not respond to any read/write attempts by the PCI
to bus. The card is otherwise fully operational but is invisible to the system. The main card CPU will accept writes from the PCI bus, but will not respond via the bus until this bit is reset. This allows the system to issue the command to the main card CPU to 1 s reset the stealth flag. Other commands can also be sent to the main card CPU, but none w ill allow a read of the FPGA until the stealth bit is reset. Some aspects of stealth mode are controlled directly by software. but this bit is provided so that the FPGA can handle the 20 hardware end by shutting down the 8?~0 serial port controller device in Stealth Mode.
04 - Command Port - This register is a command register with the lower 5 bits being the instruction to execute. W11eI1 this register is written to by the KV-APP, the FPGA generates an 25 intemipt to the main card CPU by toggling its INTI pin. The main card CPU can then begin processing this command. Upon receiving a command to this register from the PCI bus, all the bits in the status register of the FPGA are set to their appropriate values. This action is performed automatically by the FPGA itself and not by the main CPU for performance reasons. The command byte is 5 organized as follows:
0 - S - The 6 bit command to the main card CPU
6 - 7 - The card address that is to respond to the command This register can only be written to by the action of the KV
APP writing to the base I/O (Command) register. The Status 10 Register (FPGA register 08) is returned when the KV-APP reads the same base I/O register. The main CPU cannot write to the command register. The opposite applies to the Status Register. It can be written by the main CFU and is read when the KV-APP
reads the base I/O (Command) register.
15 OS - Parameter Port 0 - This FPGA register is a copy of the contents of the Base + 1 Ilk port. It may be read or written to by the main CPU and its contents are reflected by the I/O port. In effect, both the KV-APP and the main CPU have direct read/write access to this parameter register. The parameter port registers are 2o generally parameters of commands that are sent to the Command Register.
06 - Parameter Port 1 -~ This FPGA register is a copy of the contents of the Base + 2 Il0 port. See Parameter Port 0 for details.
07 - Parameter Port 2 - This FPGA register is a copy of the 25 contents of the Base + 3 IIO port. See Parameter Port 0 for details.

WO 00!17766 PCT/US99/21891 08 - Status register - This is the register that the KV-APP
receives when it reads the base I/O register. It indicates various facets of the card's operation state. While the KV-APP can only read this register, the CPU has both read and write access. The bit 5 organization is as follows:
0 - Busy Command - The card is still processing the last command that it received from the KV-APP. This bit is automatically set by the FPGA when the KV-APP writes a command to the command register (base I/O register) in 10 the FPGA. The main card CPU resets this bit and all the parameter port busy bits when it is finished processing.
Unlike the parameter ports, reading the status register does not set the busy flag.
I - Busy Parameter Port 0 - The card is busy transfernng a 15 byte from or to FPGA parameter port 0. This bit is automatically set by the FPGA when the KVAPP writes or reads a parameter to Parameter Port 0 (base + I I/O
register) in the FPGA. The main card CPU resets this bit when it is finished processing or is ready for the next byte 20 to be transferred.
2 - Busy Parameter Port 1 - The card is busy transferring a byte from or to FPGA parameter port i . This bit is automatically set by the FPGA when the KVAPP writes or reads a parameter to Parameter Port 1 (base + 2 I/O
2s register) in the FPGA. The main card CPU resets this bit when it is finished processing or is ready for the next byte to be transferred.
3 - Busy Parameter Port 2 - The card is busy transferring a byte from or to FPGA parameter port 2. This bit is 5 automatically set by the FPGA when the KV-APP writes or reads a parameter to Parameter Port 2 (base + 3 I/O
register) in the FPGA. The main card CPU resets this bit when it is finished processing or is ready for the next byte to be transferred.
10 4 - Mode Change - This flag is set when a video mode change is detected by the main card CPU. This flag is normally reset when the card receives a "Load Video Parameters" command.
5 - Reserved 15 6 - Reserved 7 - Instruction Not SupportedlTransfer Error - This bit is set upon detecting an error condition. Usually if a command is sent to the card that is badly formatted or invalid, this bit will get set. Also, if there is an error during a packet 2o transfer, such as a mismatched checksum, this bit will get set. The bit is cleared when the next command is written.
09 - Video page segment MSB - high byte of the video page segment address. This is the segment of the address that the KV-APP uses to address the KeyView II's video buffer. The PCI
25 circuitry of the card will map the KeyView II's video RAM to the beginning of this segment in the KV-APP's memory.

10 - Video page segment LSB - low byte of the video page segment address. This is the segment of the address that the KV-APP uses to address the KeyView iI's video buffer. The PCI
.circuitry of the card will map the KeyView II's video RAM to the s beginning of this segment in the KV-APP's memory.
I 1 - Main card I/O base address MSB - high byte of the UO
base address. This is the 1lO address that the KV-APP uses when it sends and receives data to and from the KeyView II card.
Specifically, it is the I!O address of the Command Port register.
to The Parameter Port registers are accessed by adding an appropriate offset to this address (i.e.- base + 1, base + 2, and base + 3). The PCI circuitry on the Key View card will map the command port base register to this UO address. This is not the serial port base address. It is defined by another FPGA register.
15 12 - Main card I/O base address LSB - low byte of the IIO
base address. See above for details.
13 - Serial port I/O base address MSB - high byte of the serial IIO base address. This is the I/O base address that the operating system will use when accessing the KeyView card's serial 2o chip. The PCI circuitry on the KeyView card will map the serial port base register to this T/O address.
14 - Serial port I/O base address LSB - low byte of the serial I/O base address. See above for details.
1 S - Serial port IRQ - The IRQ of the serial port. This is the 25 IRQ that the serial port uses to interrupt the operating system. The PCI circuitry on the KeyView II card uses this register to initiate an IRQ interrupt 16 - The FPGA set's version number - The MSN is the major version and the LSN is the minor. All of the FPGA's are considered 5 one piece for version identification purposes.
17 - Current video line - This register holds the value of the 12 bit counter in the Pixel Validation Circuit that counts the Hsync pulses. This value cannot be changed by the CPU and represents the true number of lines since the last Vsync pulse.
10 18 - Flash Palette RAM data - This register is reserved.
19 - Video Timing Register - "START SEGMENT" - The number of lines, or Hsyncs, including invisible lines after the Vsync and before the ftrst line of captured video. This includes alI of the uncaptured active video lines that are before the first horizontal line 15 to be .captured. This is the exact physical line on which segment capture begins.
20 - Video Timing Register - "START LINE" - The number of invisible pixels, or dot clocks, after the Hsync pulse and before the first active video pixel on all active lines. This is the exact 2o physical pixel on which to start the video line capture. This register is exported to the video FPGA.
21 - Video Timing Register - "END LINE" - The number of pixels, or dot clocks, after the Hsync pulse, including invisible pixels as well as all active pixels. This is the exact physical pixel 25 on which to stop the video line capture. This register is exported to the video FPGA.

22 - Video Timing Register - ".STOP SEGMENT" - The number of lines, or Hsyncs, including both invisible lines as well as captured lines before the last active line of video to capture. This is the exact physical line on which segment capture ends.
5 23 - Chip Select Register- This register is not used.
24 - The MSB of the MSW of the 32 bit checksum for the current video bank.
25 - The LSB of the MSW of the 32 bit checkstun for the current video bank.
10 2b - The MSB of the LSW of the 32 bit checksum for the current video bank.
27 - The LSB of the LSW of the 32 bit checksturl for the current video bank.
This is the XOR SHIFT-21 checksum for the current video 15 segment that is selected by the video timing registers above. At the start of the first line in the selected segment, the checksum register is cleared. The checksum is continually written to this regrister when the video scanning beam is in the selected segment. When the video scanning beam exits the selected segment, the value in the 2o checksum register is valid for that segment. If this value is not promptly read, it will become corrupted if the next frame overwrites it. Also, at the end of the captured segment, the FPGA generates an intemlpt to the main card CPU by toggling the INTO pin. These registers are imported from the video FPGA.
25 28 - Vertical Frame Rate - The FPGA has a frequency counter circuit that continually counts the number of Vsync Pulses WO OOJ177bb PCTIUS99/21$91 5g in one second. This count is stored in this register as a total and not as an active count.
29 - Horizontal Line Rate MSB - The FPGA has another special 16 bit counter that counts the number of Hsync pulses in 5 between Vsync pulses. This register is the upper byte of that 16 bit count.
30 - Horizontal Line Rate LSB - This register is the lower byte of the 16 bit horizontal line count.
1 o KeyView PCI Card System Commands This section provides a command overview to the Keyview PCI card (Figure 1 ). All commands are unidirectional. That is, they can only be initiated by the KV-APP and not the card itself. This is primarily due to a Iack of need for card initiated communication and i s the Lack of a dedicated interrupt to the KV-APP system. At first glance, one might expect that this would result in the KV-APP
processor becoming tangled in redundant polling of the cards, however, this is not the case. As it turns out, because the KV-APP
must constantly read the status register to correctly process the 2o video, a bit in this register indicates when the card has something important to say. This way, the KV-APP gets the information it needs without the need for a hardware interrupt.
a. Initialization 25 To send a command to the KV-CARD 10, it must first be initialized. When the card is powered up, it is in stealth mode and WO 0011776b PCT/US99/21891 does not contain much of the program needed to implement the commands presented here. The main card CPU program must be loaded, but before that, the I/O port and video segment address must be loaded first.
5 At power up, the card I O does not contain any knowledge of which I/O base address is supposed to actually be the command port. Without the I/O base address, there is no way for it to receive commands from the KV-APP. To get around this, a small self training procedure has been developed. In this procedure, the KV-1o APP selects one I/O base address out of a possible 8 that the card will be using. It will then send a NOP (code 00) addressed to card 0 to this address repeatedly. These NOP's are sent in I / l Oth second . intervals for up to ten seconds. If the card is present, it will latch on to the IIO base address and decloak. This function is part of the 15 software and not the FPGA. All cards are in stealth mode during this phase of the initialization or else bus conflicts will occur.
The KV-APP then confirms the card's presence by reading the command! status register and the three parameter ports.
Decloaking is not the normal operation for the NOP
20 command and should not be used to tell the card to decloak.
Normally, the NOP command simply does nothing except clear the status register to zero. With the first card properly loaded with the correct I/O base address, the KV-APP then repeats the procedure for all four PCI cards in the Keyview PC. Before proceeding to the 25 next card, the decloaked card is put back into stealth mode (cloaked). During initialization, the code that processes the NOP

WO 00/17766 PCTlUS99/21891 instruction will be located in the EPROM IPL code. After the main card CPU software is loaded, the old NOP processing code is overwritten by the new code in the RAM.
b. Calling Sequence 5 Some of the commands to the KeyView II card require multiple parameters: The parameters are first loaded into the parameter port registers and then into the command register. This is because the card will take action on the command as soon as it is written and will not wait for the parameters to be written. The 10 order in which non-packeted parameters are written is not important as long as the command register is written last.
In the case of packeted data, special rules apply. In this case, multiple 256 byte records are transferred under the same command.
See below for an explanation of how packets are transferred to and 15 from the main card CPU.
c. Packet Transfer from the KV-APP to the KV-CARD
The transfer of packets to the KV-CARD 10 is fairly straightforward. The code for the device or internal buffer that is to receive the packet is first written into parameter port 0. The file 2o that is to be sent to the card is divided into 256 byte chunks. The 'chunk' number (starting at zero) is loaded into parameter port 1 with the high bit set. Setting the high bit indicates that it is writing and not reading. The 8 bit checksum of the 256 byte packet will be sent as the 257th byte of data, so the CPU on the card can verify a 25 valid transfer. The first byte of the packet is written to parameter port 2. Writing all of these registers does nothing by itself, however, when the "TR.ANSFER PACKET" command is written to the command register by the KV-APP, the transfer process begins.
The f rst thing that happens during a packet transfer 5 command is that the first byte in parameter port 2 is loaded and saved into a temporary buffer. Because writing to the command or parameter ports by the KV-APP causes the FPGA to automatically set the busy flag for that register, the CPU will have to clear the busy flag for parameter port 2 when it is finished processing each 1 o byte.
When the busy flag for parameter port 2 is cleared by the main card CPU, the KV-APP detects this and writes the second byte of the packet to this port. With that done, the KV-APP waits until the busy flag is clear again. It then sends the next byte, and so 15 on, until all 256 bytes have been transferred. The 8 bit checksum is then sent as the 257th byte. At that time, the main card CPU
compares the checksum with the actual checksum of the received packet. If the two are different, the CPU reports this by setting the ERROR flag in the status register: On error, the contents of the 2o temporary buffer are discarded. If the checksum matches, the contents of the temporary buffer is copied to the device or location that was initially referenced by the value written to parameter port 0 and at the address specified in parameter port 1. The BUSY flag for the command register remains set until the packet transfer is 25 complete. All command and parameter port busy flags are cleared when the packet operation is complete.

The 'chunk' (packet) number that was loaded into parameter port 1 is only used when transferring data to and from the CPU
RAM 41 and the flash palette converter R.AMs 24A and 24B. With single packet transfers, the high bit is still important, and the packet 5 number should be set to zero. The checksum is valid for all transfers. It should also be noted that if any other command is written to the command register during a packet transfer, even a NOP, the entire packet is discarded.
In the cases where there are multiple packets, such as the to program and flash palette converter RAM's, each 256 byte packet is sent separately as a separate command. In these cases, it is important to specify which 256 byte packet is being transferred.
Only one of 128 packets (32K) may be specified in parameter port 1 to any given device. These packets do not have to be in 15 sequential order.
d. Packet Transfer from the KV-CARD to the KV-APP
For the transfer of packets from the KV-CARD to the KV-APP, the address of the device or internal buffer that the packets are to be read from is first written into parameter port 0, The index 2o number of the packet that is to be read is loaded into parameter port 1 with the high bit clear. For everything except the R.AM devices, this will simply be zero. Clearing the high bit indicates that it is reading and not writing. A zero is written into parameter port 2 in order to force the FPGA to set the busy flag far parameter port 2.
25 During this transfer, the card will first send the 256 bytes of the packet and then the checksum byte, so the CPU on the card can verify a valid transfer. Writing all of these registers does nothing by itself, however, when the "TRANSFER PACKET" command is written to the command register by the KV-APP, the transfer process begins.
During a packet transfer command, first the main card CPU
writes the first byte in the packet to parameter port 2. Then it clears the busy flag for that port. When the KV-APP detects that the busy flag for parameter port 2 is no longer set, it reads the port and stores the first byte of the packet. The FPGA automatically sets the busy 1 o flag for the port when the KV-APP reads it. This prevents the KV-APP program from reading the same byte multiple times.
Next, the main card CPU places the second byte of the packet in parameter port 2 and clears its busy flag. The KV-APP
then reads and stores that byte also. This process continues until all 15 256 bytes have been read by the KV-APP. At that time, the main card CPU transfers a 257th byte which is the checksLUn. The KV-APP always makes a point of reading the checksum byte even if it does not use it.
The BUSY flag for the command register remains set until zo the packet transfer is complete. All command and parameter port busy flags are cleared when the packet operation is complete.
The packet number that was loaded into parameter port 1 is only used when transferring data to and from a R.AM device. For all other devices, this is set to zero. The checksum is valid for all 25 transfers. If any other command is written to the command register during a packet transfer, even a NOP, the packet transfer is terminated and may leave the KV-APP in an unspecified stafe.
In the cases where there are multiple packets for transfer.
such as for the RAM devices, each 256 byte packet is sent separately as a separate command. In these cases, it is important to specify which 256 byte packet is being transferred. Only one of 128 packets (32K total) may be specified for any given device.
These packets do not have to be in sequential order.
Ke View II Card Commands The following is a list of the commands and their parameters that the KV-CARD will accept:
a. OO-NOP (NO OPERATION) This command has the effect of clearing the busy and error flags in the status register. The busy flags are always cleared when the command completes. Since a NOP doesn't do anything in particular, it is always complete and thus clears all four busy- flays.
The first 6 bits of the command byte are all zero and the last two, bits 6 and 7, are for card addressing. Only the card that is actually addressed will process the NOP instruction. This is 2o regardless of whether or not the card was in stealth mode.
As discussed above, the NOP command in the EPROVI code during IPL will cause the card to decloak.
b. OI (STEALTH) This command provides the capability to cloak, decloak, thin off, and turn on the cards in the system. The actual ftmction of this 6~
command is prescribed by the value present in Parameter port 0 These functions are explained below:
00 - Cloak - When the card is cloaked, it cannot be seen by the KV-APP. Attempts to read a cloaked card will fail. The serial 5 chip is also disabled and cannot interrupt the KV-APP CPU. Other than that, the cloak function does not cause the card to stop functioning. The video capture still functions on a card that is cloaked although the video data cannot be read by the KV-APP.
When a command is issued to cloak, all cards in the system will 1o cloak regardless of the address specified in the command byte.
Ol - DeCloak - This reverses the state of a cloaked card.
Only cards that were specifically addressed will respond to this command. A "Turn On" command is implied by this command.
02 - Turn Off - This causes the PLL dot clock generator to be 15 loaded with a Iow frequency divisor. This helps reduce FCC
emissions. This command will also cause the card to cloak, but can be aimed at a single specific card. If a subsequent "Cloak"
command is issued, it will nat effect the "Off" status of this card.
This function is supplied for the purpose of reducing EMI from 2o these cards. All of the registers in the FPGA remain unchanged as a result of this command.
03 - Turn On - This causes the card to reload the PLL dot clock divisor with the value that was being used before the "Turn Off" command. Since it is possible for a card to-be "Turned On"
25 and "Cloaked" at the same time, this function will not cause the card to DeCloak:

c. 02 (PACKET TRANSFER) This command allows 256 byte packets to be transferred to and from the KV-APP. The device or buffer that the data comes from or goes into is specified by the DEVICE parameter which is 5 loaded into Parameter port 0 before calling this command.
The address of the packet in the card device can be specified in cases where there are multiple packets. This includes the main card CPU program and the flash palette converter RAM contents.
The address byte is stored in Parameter port 1. It is actually only 7 1 o bits so that the range of values for the address is limited to 0 to 127.
Since this is actually an index to 256 byte pages, it can actually address from 0 to 32,768. The CPU RAM is addressed relative to the beginning of the device and not to the actual CPU address.
This command supports both reads and writes. Bit 7 of the 15 address byte controls this. If bit 7 it set, the operation is a packet WRITE to the card. If bit 7 is clear, the operation is a packet READ from the card.
Parameter port 2 is where all the data is read or written to.
The 256 bytes are transferred sequentially until all have been sent.
2o After this, an additional one byte checksum is also sent.
The following are the device codes that are valid for the TRANSFER command:
00 - Null Device - This will work for transfers except that the data that is written to the card is automatically discarded.
25 The checksum is compared just like in any other device. In WO 00/1776b PCTIUS99l21891 b7 the case of reads from this device, the packet will contain all zeros. This address is useful for debugging.
O1 - Main Card CPU RAM Device - This is the main program code for the Main Card CPU that is loaded in. This 5 code overwrites a jmnp table that determines which version of the functions are e~~ecuted ~rhen called.
02 - Flash Palette Converter RAM Device (Even) - This buffer is essential far the video capture circuit. The data supplied is a color cube that the captured colors will be 1 o matched to in order to palettize the video data in the proper video mode. Another main card CPU command, GENERATE PALETTE, will automatically load a generic color or B&W palette. The difference between the GENERATE PALETTE command and this TRANSFER
15 PALETTE command is that the latter allows custom palettes and the former is a fined, mathematically generated palette.
03 - Flash Palette Converter RAM Device (Odd) - Same as above but for odd bank.
04 - Video Parameter Record - This device is for storing a 20 256 b~~te structure of ~.~ideo parameters into tl~e card. This is a quick and simple way to ensure that all the video registers are loaded when a video mode change occurs.
OS - KeyboardlMouse Setup Record - This is a 256 byte structure of keyboard and mouse setup information. This 25 record contains information about the type of mouse and keyboard that are connected to the card.

06 - Checksum Registers - This is the entire 64 DWORD
(256 b~~te) checksum array. Individual registers may be read using the Video Checksum Manager. The Transfer command also allows the checksum registers to be written.
s d. 03 (GENERATE PALETTE) This command causes the Main Card CPU to mathematically generate a uniform palette and load it into the flash palette converter RAM. The actual palette generated depends on the contents of 1 o parameter ports 0 and 1. If parameter port 0 is zero, the palette will be Black & White Greyscale. If there is any other value in parameter port 0, then the palette will be color. Parameter port I
contains the total number of colors to generate in the palette. The only available options for the number of colors are 0 {2 color), 1 {4 1 s color), 2 (16 color), and 3 (256 color). Only the lower two bits of parameter port 1 are considered.
e. 04 (FPGA REGISTER ACCESS) This command allows the KV-APP to have full indirect access to all of the registers in the FPGA. This command also 2o allows the KV-APP to have indirect access to the EEPROM and the ICS-1 522 video chip. Parameter port 0 defines the device to access. These are the same as for the serial addressing section:
Param 0* Device Param 1 0 Main FPGA regs Register number 2s 1 Keyboard CPU Keyboard CPU
command 2 ICS 1522 chip Register Number 3 Keyboard reset Don't care (write only) 4-127 None Don't Care * Only the first two bits are valid device select bits. Bit 7 is a Read/Write bit. All other bits of parameter port 0 are igmored.
Parameter port 2 is where the data is returned for read operations and entered for write operations. For read operations, the data in parameter port 2 is valid when the busy status flag is re set.
to The EEPROM is accessed through keyboard commands.
The keyboard interface can also require multiple bytes. Since this command can only send one byte at a time, multiple calls to the keyboard may be necessary in order to fully access it. Keyboard reads will always return the keyboard output register.
15 Since the ICS 1 522 chip uses 11 bit registers instead of the usual 8, only the lower 8 bits are returned or set. To access the upper 3 bits of the register, 32 is added to the register number before invoking this command.
f. 05 (VIDEO CHECKSUM MANAGER) 2o All video modes are divided into 32K segments. Each one of these segments has a checksum associated with it. There can be up to 64 of these segments in the 1280x1 024 resolution. The main card CPU stores the checksums in its R.AM memory. The Video Checksum Manager allows the KV-APP to read these values. Note 2s that to read the entire checksum array {64 DWORDs = 256 bytes), WO 00!17766 PCT/US99/21891 the KV-,APP may use the TRANSFER command. The TRANSFER
command is the only yay that the KV-APP can write to the checksum registers.
The following table represents the various video modes. The 5 number of segments in each video mode are shown. The number of physical lines per segment follows in parenthesis. Note that not all modes are supported by KeyView Fro.
Mode 2 color 4 color 16 color 256 color 320x200 I (200) 1 (200) 1 (200) 2 ( 100) 10 640x200 I (200) 1 (200) 2 (100) 4 (50) 640x350 I (350) 2 (175) 5 {70) 7 (50) 640x400 I (400) 2 (200) 4 (100) 8 {50) 640x480 2 (240) 3 (160) 5 (96) 10 (48) 800x600 2 (300) 4 (150) 8 (75) 15 (40) 15 1024x768 3 (256) 6 (128) 12 (64) 24 (32) 1056x350 2 {175) 5 (70) 7 (50) 14 (25) 1056x400 2 (200) 4 (100) 8 (50) 16 (25) 1280x1024 8 (128) 16 (64) 32 (32) 64 (16) The following subcommands should be written into 2o parameter port 0 prior to writing the command port:
00 - Return the number of segments {and lines per segrrlent) in the current video mode. Upon completion of this command, parameter port 0 contains the number of video segments used and parameter ports I and 2 contain the number of lines in each video segment. The MSB is in parameter port 1 and the LSB is in parameter port 2.
01 - Return the lower 16 bits of the selected checksum. The checksum register number is written to parameter port 1. Qn 5 return, the lower 16 bits of the checksum are stored in parameter ports l and 2. The MSB is in parameter port 1 and the LSB is in parameter port 2. The current checkstun register number is stored in parameter port 0.
02 - Return the upper 16 bits of the selected checksum. The 1 o checksum register number is written to parameter port 1. On return, the upper 16 bits of the checksum are stored in parameter ports 1 and 2. The MSB is in parameter port 1 and the LSB is in parameter port 2. The current checksum register number is stored in parameter port 0.
15 03 - Return the currently selected video segment checksum (lower I 6 bits). This is the checksum that is associated with the video segment that is in the video buffer. The segment number is returned in parameter port 0. The lower 16 bits of the current checksum are stored in parameter ports 1 and 2.
2o The MSB is in parameter port 1 and the LSB is in parameter port 2.
04 - Return the currently selected video segment checksum (upper 16 bits). This is the checksum that is associated with the video segment that is in the video buffer. The segment 25 number is returned in parameter port 0. The upper 16 bits of the current checksum are stored in parameter ports 1 and 2.

The MSB is in parameter port 1 and the LSB is in parameter port 2.
g. O6 (VIDEO CAPTURE) s The following commands may be written to parameter port 0:
00 - This subcommand selects the segment that the video capture hardware will write to the video RAM. The segment number is written to parameter port 1. With this option, the segment will not increment automatically.
1 o O l - This subcommand starts an automatic capture of all of the video segments. A non-zero segment interleave is written to parameter port I . After this subcommand is executed, segment number 0 will be captured. Then, the current segment plus the interleave will be captured. This continues 15 until the last segment (plus the interleave) is captured. At that time, the capture restarts on segment number 1 and goes to the last segment (plus interleave}. This continues until all segments have been captured. At that time, the process repeats. For example, with an interleave of 3, on the first 20 pass the system will capture segments 0; 3, 6, 9, 12, etc.. On the second pass the system will capture segments 1, 4, 7, 10, 13, etc.. On the third pass the system will capture segments 2, 5, 8, 11, 14, etc. This is the preferred capture method.
25 h. 07 (KEYBOARD MANAGER) w0 00/17766 PCT/US99121891 00 - This subcommand will send a scan code byte written to parameter port I to the keyboard. The scan codes are not verified; authenticated, or checked in any way.
OI - This subcommand will read up to two bytes back from 5 the keyboard CPU. On return, parameter port 0 contains a compressed byte. The upper 6 bits contain the total number of keyboard bytes available (including any returned with this command). The lower two bits contain the number of keyboard bytes that are currently being returned. Up to two 1 o bytes can be returned with a single call to this command.
The first byte returned will be in parameter port I and the second will be in parameter port 2.
02 - This subcommand will return the keyboard status lights in parameter port 0.
15 Bit 0 = Num-Lock light status Bit 1 = Scroll-Lock Light status Bit 2 = Caps-Lock light status i. 08 {MOUSE MANAGER) 2o This command sends the mouse mickey information. The X-mickeys are written to parameter port 1 and the Y-mickeys are sent to parameter port 2.
j. 09 (SERIAL PORT MANAGER) 25 This command sets the base port and IRQ of the 8250 serial port controller. The IRQ is written to parameter port 0 and the base WO flfl/17766 PCT/US99121891 port, address is written to parameter ports 1 and 2. The 1VISB is in parameter port 1 and the LSB is in parameter port 2. If all of the parameter ports are zero, then the 8250 chip will be disabled without affecting the actual IRQ and base part address. If all of the 5 parameter ports are 255, then the current values of the serial port are returned without changing them.
FLASH PALETTE CONVERTER
The Flash Palette Converter Circuit 52 will now be described 1 o with reference to Figure 5 .
In order to minimize the data bandwidth requirements and speed pixel delivery to the VGA screen, this design uses a flash palette converter 52, shown in Figure S. This circuit uses a simple hardware circuit to convert RGB S-5-5 color inputs directly to a 15 palette index. The circuit will allow the main card CPU 21 to program the Flash Palette Converter RAM 24 with values on the fly so that the video mode can be changed. It should be noted that the palette index that is output by this circuit is not a color value and has no direct correlation to color or luminance. It is simply an index 2o that is used by the VGA card to look up the preprogrammed color values. Computations and comparisons on the palette index value will not necessarily yield meaningful results. The output from the video capture circuit 53 is digital video in RGB 8-8-8 format.
Because the Flash Palette Converter RAM 24 has only 15 address 25 inputs, the three least significant bits of each color are discarded to form video in RGB 5-5-5 format.

The address and data lines of the Flash Palette Converter RAM are both fed by way of h~~o multiplexers 54 and 55. The address multiplexes 54 is a simple, unidirectional multiplexes that will handle all 15 address bits. The multiplexes has two input 5 selections and one output. The data going tluough the address multiplexes travels in only one direction regardless of which input bank is selected. There are t«~o possible input bani;s to tl~e address multiplexes. The select input to the multiplexes will switch betv~~een the RGB 5-5-5 signals for normal operation and the output of a I5 10 bit counter for program mode:
The data multiplexes 55 is a little more complicated. During normal operation, the data signals coming from the I/O pins on the Flash Palette Converter RAM 24 are output only and are sent to the Pixel Storage Circuit 56. The data flow is one way only in normal 15 operation mode. However, in program mode, the data flow is bi-directional. In program mode; the multiplexes 55 makes a bi-directional data connection bett~~een the FPC R.AM 24 and the FPGA data register 57 that contains the byte to write to it. Thus, in program mode, the RAM contents can be both read and written.
2o The reason for allowing the data to be read out in program mode is for self diagnostic purposes.
The Flash Palette Converter timing circuit 58 generates the various control signals that are needed throughout the FPC circuit.
These signals include RD/WR' and CS' ofthe RAM 24, CLR and z5 CLK of the address counter 59, and the two SEL lines to the multiplexers 54 and S5. It will use the FPGA regristers 57 and the pixel clock as input. The pixel clock is needed during normal operation to ensure that the RAM reads are timed properly. In program mode, the pixel clock is not used. The SEL lines to the multiplexers are connected to the flag in the FPGA registers that s control the operation of the SEL signal. The CLR signal to the address counter is done the same wa'~. Since both the SEL and CLR lines are directly connected to a bit in the FPGA registers, the5- will account for a minimal portion of logic in this circuit. The data Lines from the data multiplexer are connected directly to the 1 o FPGA register. This register can be accessed directly by the Main Card CPU 21 as though it were R;AM memory.
During normal operation, the RD/WR' input to the FPC RAM
is held high while the CS' input is connected to pixel clock. The pixel clock is conditioned in such a way as to account for 15 propagation delay and RAM access times. This signal is also passed on to the Pixel Assembly Circuit. In program mode, the address to the FPC R.AM is supplied by the 15 bit counter. This counter is cleared to zero under CPU control by toggling the FPGA
register flag that corresponds to the CLR pin on the counter. The 2o counter is then incremented by the FPC timing circuit following READ and WRITE operations by the CPU tolfrom the FPGA data register.
For reading and writing to the FPC RAM 24 in program mode, the sequence of timing signals is shown in the timing diagxam zs of Figure 6.

WO 00/17766 PCTlUS99/21891 A standard clock (FPGA CLK) reference will be necessary for program operation. The pixel clock (PIXEL CLK) cannot be used because there is no guarantee that it will exist, nor is its frequency well established. The standard FPGA clock is therefore 5 used for generating timing patterns when in program mode. Note that the Address Clock signal occurs after the RAM RdIWr' signal.
The Address Clock (Addr CLK) is the pulse that is used to advance the 1 ~ bit address counter 59 during programming. The CPU RD' and CPU WR' signals are random in lengdl, therefore, the Address 1 o Clock signal will not rise until the CPU signal has returned high.
When that happens, the Address Clock signal will rise for exactly one FPGA clock cycle.
It is also possible to use the ALE strobe from the main card CPU 21 as the clock source for program mode. In fact, the very 1 s next ALE pulse after the conclusion of the RD' or WR' strobe (and only that pulse) can be used directly as the Address clock pulse.
Care in designing any circuits that use the ALE should be taken so that there is no direct connection to the Address Counter. If that were to happen, the main card CPU would not be able to correctly 2o read or write to the FPC RAM. The main point is that the Address Counter is incremented only after a byte is read or written to the FPC RAM.
Pixel Assembly Circuit 25 The purpose of the Pixel Assembly Circuit 75 (Figure 8) is to compact up to eight pixels into a single byte for storage, as shown for example in Figure 7. The number of pixels that will fit in a byte depend on the number of bits per pixel of the particular color mode in use. There is a direct correlation between the number of bits per pixel and the number of possible colors: There will oot be a situation where there are pixels of different sizes stored in the same bvte.
In one bit per pixel mode 70, there are only W o possible colors and eight pixels are stored in a single byte. Because there are only two possible colors, this mode can only be used fox 1o monochrome screens. The colors used in two color mode do not necessarily have to be black and white, but could be any two colors.
Similarly, the original captured screens can be any number of colors. The action of the Flash Palette Converter will automatically select one of the two colors that is closest.
In two bits per pixel mode 71, there are four possible colors and four pixels axe stored in a single byte. Because there are only four possible colors, this mode is on the borderline of reasonable color. Some text screens, such as those designed for CGA
monitors, have only four colors to capture. However, in practice, 2o the two bit mode is best suited for four level grayscale. Again, it makes no difference how many original captured colors exist on the host. The Flash Palette Converter will automatically approximate each color into the appropriate gray level.
In four bits per pixel mode 72, there are 16 possible colors and fit two pixels are stored in a single byte. This mode can be used realistically for 16 colors or I 6 level grayscale. Microsoft w0 00/17766 PCTIUS99/21891 t~~indo~~Ts' screens use 16 color mode at least 95% of the time. This is also tn~e of OS/2. Grayscale mode can also be used where the colors on the screen aren't a good match for the palette colors. In practice however, there will probably not be much need for 16 level 5 grayscale as both grayscale and color modes are transmitted with equal speed.
In eight bits per pixel mode 73, there are 256 possible colors but it takes the whole byte to store it. Because there are fewer calculations needed to display a color on the VGA screen in this to mode, this mode is the favorite mode for rapid updates in local mode. However, the 16 color mode is probably the most practical in remote mode. The 256 color mode is generally not needed for remote networking, however it is useful in the case where photo realism is required.
1 s As was stated before, the action of the Pixel Assembly Circuit 75 of Figure 8 is to pack the pixels into a byte that will be stored in the video RAM and eventually sent across the bus 23 to the PCI APP. In 256 color mode, all eight bits are used so for that mode, the Pixel Assembly circuit simply passes through the byte.
2o In all other modes, the Pixel Assembly Circuit must assemble a byte from fragments of up to eight pixels.
The output byte from the Flash Palette Converter RAM 24 is applied to a special eight bit register. This register is really a latch composed of eight, independently controlled D-type flip-flops 78.
25 With this configuration, each bit on the input side can be selectively loaded into the register. In this circuit, the Sum-of Products (SOP) logic array 77 controls wluch bits are loaded and when the inputs to the SOP circuit 77 are the color mode and a three bit counter.
The color mode is as previously defined and is used by the SOP logic array 77 compute the number of pixels that are loaded 5 into a single byte. A value of'00' represents one bit per pixel mode {2 colors). A value of'01' represents two bits per pixel mode (4 colors). A value of'10' represents four bits per pixel {16 colors).
A value of'I 1' represents eight bits per pixel (256 colors). This value is obtained directly from the appropriate FPGA register.
10 The three bit counter 76 is provided so that the SOP logic array 77 knows which part of the byte to load. In 256 color mode, all eight bits are used so the counter is ignored. In I6 color mode, only the Isb of the counter is used. Likewise, with 4 color mode, only the two lsb's of the counter are used. However, in 2 color 15 mode, all three bits of the counter are used. The SOP logic array automatically decides how many bits of the counter to consider.
Therefore, there is no need for additional circuitry to modify the number of counter output bits.
The CLK strobe to the three bit counter 76 is connected to 2o the Byte Ready Strobe from the Flash Palette Converter circuit 52.
This pulse is used to increment the counter once for each pixel that comes in.
The CLR strobe to the three bit counter 76 is derived from the Hsync pulse. The purpose of this arrangement is to ensure that 25 the counter will be zero for the first pixel on each horizontal line. It might not be possible to use a raw Hsync pulse, but the signal that clears the counter can be derived from it by using the appropriate gates.
In 2 color mode, the pixel byte from the Flash Palette Converter RAM 24 is presented to the inputs of the eight flip-flops 5 78. The SOP logic array 77 will signal the flip-flop in the DO
position to load, and no others. When the next pixel byte comes in, only the flip-flop in the Dl position will be loaded, and no others.
This continues until the eighth pixel byte comes in and is loaded into the D7 position. When D7 is clocked, the compressed pixel is 1o fully assembled. The D7 clock strobe also functions as the B~~te Ready Strobe for the next circuit.
In 4 color mode, an operation takes place that is similar to the 2 color mode operation. Here DO and Dl are loaded from the first pixel byte from the Flash Palette Converter R.AM 24. Then D2 and 15 D3 are loaded next, then D4 and D5, and then finally D6 and D7.
In 16 color mode, only two pixels will fit in each outgoing byte. The packing process is again similar to the 2 color and the 4 color modes. Here the lower nibble, DO-D3, is loaded from the first pixel byte from the Flash Palette Converter R.AM. Then the 2o upper nibble, D4-D7, is loaded:
In 256 color mode, all eight bits of the pixel byte from the Flash Palette Converter RAM are loaded at once. The Pixel Assembly Circuit 52 merel~~ passes these bytes directly to the next circuit.

Boolean Equations for the Sum-of Products Logic Array The following is the sum of minterm products and the corresponding Boolean equations. The X and Y variables correspond to the two bit color mode from the appropriate FPGA
5 register. The X is the least significant bit and the Y is the most significant bit. The color modes are "00" for 2 color mode, "Ol"
for 4 color mode, "10" for 16 color mode, and "11" for 256 color mode. The A, B, and C variables are the output of tl~e 3 bit counter.
A is the least significant and the C is most significant.
8 BIT DATA MODEL
OutO = Em{0,8,12,I6,18,20,22,24,25,26,27,28,29,30,31) OutO=XY+A'Y+A'B'X+A'B'C~
15 Outl = Em(1,8,12;16,18,20,22,24,25,26,27,28,29,30,31) Outl=XY+A'Y+A'B'X+A'B'C'X'Y' Out? = Ern(2,9,13,16,18,20,22,24,25,26,27,28,29,30,31) Out? = XY + A' Y + AB' X + A' BC' X' Out3 = Em{3,9, I 3, I 6,18,20,22,24,25,26,27,28,29,30,3 i ) Out3 = XY + A' Y + AB' X + ABC' X' Y' Out4 = Em{4,10,14,17,19,21,23,24,25,26,27,28,29,30,3 I) 25 Out4=XY+AY+A'BX+A'B'CX'Y' Outs = Em(S,10,14, I 7,19,21,23,24,25,26,27,28;29,30,3 I ) Outs=XY+Ay+A'BX+AB'CX' Out6 = Em(6,1 l, l S,17,19,21,23,24,25,26,27,28,29,30,3 I ) Out6=XY+Ay+ABX+A'BCX'Y' Out7 = Em(7,11,15,17,19,21,23,24,25,26,27,28,29,30,31) Out7 = XY + AY + ABX + ABC
to Gate Summary 8 - 4 input OR gates S - inverter gates 3 - 2 input AND gates I s 6 - 3 input AND gates 2 - 4 input AND gates 4 - S input AND gates FPGA designs speak in terms of logic cells and not gates. In reality, since the logic cells include the above gates as well as flip 2o flops, only 8 Iogic cells are required for this design. The three bit counter will add another three logic cells. Therefore, the total circuit requires only 11 logic cells.
Truth Table 25 XY = 1 bit per pixel DEC YX CBA

0 = 00 000 = OutO

1 = 00 OOI = Outl 2 = 00 010 = Out2 3 = 00 OI I = Out3 4 = 00 100 = Out4 5 = 00 I01 = Outs 6= 00 I10=Outb 7 = 00 111 = Out7 XY =
2 bits per pixel 1 o DEC YX CBA

8 = Ol 000 = OutO+putl
9 = OI 001 = Out2+put3 I0 = O1 010 = Out4+OutS

I 1 = Ol 0.11 = Out6+put7 12 OI 100 = OutO+Outl =

I3 = O1 101 = Out2+put3 14 = O1 I 10 = Out4+put5 I ~ _ 0 11 I = Outb+put7 I

2o XY
= 4 bits per pixel DEC YX CBA

16 = 10 000 = OutO + Out 1 + Out2 + Out3 I 7 = 10 OOI = Out4 + Outs + putb + Out7 I8 = IO 010 = OutO + Qutl + Out2 + Out3 19 10 011 = Out4 + puts + put6 = + put?

20 = 10 I00 = OutO + Outl + Out2 + put3 21 = 10 101 = Out4 + Outs + Out6 + put?
22 = I O 110 = OutO + Outl + putt + Qut3 23 = I0 I 11 = Out4 + QutS + Out6 + Out7 XY = 8 bits per pixel DEC YX CBA
24 = 11 000 = OutO + Out 1 + Out2 + put3 + Out4 + Outs + Qutb +
Out7 l0 25 = 11 001 = OutO + Outl + Out2 + Out3 + Out4 + Outs + put6 +
Out7 26 = 11 010 = OutO + putl + pub + Out3 + Out4 + Outs + Out6 +
Out7 27 = 11 OI 1 = OutO + Qutl + Out2 + Out3 + put4 + puts + Out6 +
15 Out7 28= 11100=OutO+Outl+pu~+Out3+Qut4+put5+Out6+
Out7 29 = 1 I 101 = OutO + Outl + pub + put3 + Out4 + puts + put6 +
Ouf7 20 30 = 11 110 = OutO + putl + putt + Out3 + put4 + Outs + put6 +
Out7 31 = I 1 1 I 1 = OutO + putt + Out2 + put3 + put4 + puts + put6 +
Out7 An alternative, preferred arrangement for the video storage 2s RAM circuit is now described, with respect to the use of two 32Kx8 bit SRAMS, rather than eight 8Kx8 bit chips. Such chips can be found from Motorola and others.
The 32x8 SRAM approach requires wait states even if very fast Sns SRAMs are used. The reason for this assumption is that the FPGA would have to operate at over 200MHz in order to make the four 8 bit reads, concatenate them into a single 3? bit word. and present them on the PCI bus. Since the FPGAIPCI MASTER only operates at around 100 MHz, this means that there could be as many as four wait states per 32 bit word transfer. This would choke 1o data transfer speeds and would not be acceptable. Instead, it is better to keep the video storage at 32 bits for the present embodiment.
Regarding the use of a 32K x 32 bit SRAMs for video storage, a speed of l2ns or faster should be acceptable. One further requirement will be that the SRAM may have "Byte Write"
capability (an example of such is Cypress CY7C1337). This alternative allows the use of an 8 bit Pixel Assembly Circuit (thus reducing the number of gates) while still presenting a full 32 bits to the PCI bus. Since there are 4 write strobes on the RAM (one fox 2o each byte), a simple cyclic 4 bit counter can be used to load the byte into the proper location of the 32 bit word.
A detailed diagram of the Keyview II example embodiment Expansion Card is shown in Figure 9. The attached Figure 9 is not to be interpreted as an exclusive schematic for the expansion card but only as a general block diagram description for the functionality of the Keyview II Product.

The block diagram is divided into fifteen separate sections as identified by the broken Line enclosures for each block. All I/O's for the Keyview II card ("KV card") is through three connectors, i.e., the VGA DB-15, the Cybex 44-pin, and the PCI plug-in connector 5 located at the bottom of the expansion card. Input power for the card (+~ VDC) is derived from the PCI motherboard of a standard PC, tluough the PCI connector.
Section 1.0 of Figure 9 is the power supply circuit. Because the KV card requires a negative -SVDC rail which is used in the 1 o input video section of the card, it is necessary to derive the negative voltage from the standard +SVDC rail supplied by the PC
motherboard. The negative voltage is derived by using a charge-pump technique in which the +SVDC is converted to a power dock signal using a comparator circuit and a power buffer stage arranged 15 in a push-pull mode. The output of the power clock is AC coupled and DC rectified using a two diode bridge as shown. The diode bridge acts as a DC restoration circuit in which the reference level is +0.7 volts. The second diode biases the reference level to ground potential. The full excursion of the clock (SVpp) is forced to zo operate below ground, thereby providing the necessary negative rail of -5 VDC.
Section 2.0 of Figure 9 is the Video Input Buffering circuit.
The input video buffer circuits is composed of six (6) wide bandwidth operational amplifiers configured as unity gain amplifiers 25 and as non-inverting amplifiers with sufficient voltage gain to meet WO 00/17766 PCTlUS99/21891 the input voltage requirements of the analog-to-digital converters (ADC's) of Section ~.0, discussed below.
The input video signals (Red, Green, Blue) from the 1 ~-pin VGA connector must be properly terminated into 75 ohms to 5 minimized overshoots and ringing also known as impedance matching the coaxial cables. Once terminated, the video signals are buffered using three non-inverting unity gain amplifiers and allowed to pass-thru to the Cybex 44-pin connector to be used by an external monitor which will also terminate the signals into 75 ohms.
1 o The other three video amplifiers are configured with a gain of 4X to amplify the video Ie~~els to a maximum level of 3 Vpp, which is the level required by the ADC's.
Section 3.0 of Figure 9 is the Analog-to-Digital Converter (ADCs) circuit. Three high-speed analog-to-digital conversion 15 circuits (preferably TDA8714) are used to digitize the input video levels provided by Section 1Ø The ADC's have an 8=bit resolution specification and can process at a conversion sampling rate of up to 80MHz. This sampling rate is sufficient to meet the video bandwidth requirements of the SVGA pixel format of 1024x768 at 20 60Hz, refresh rate. All digital inputs and outputs are TTL
compatible, which is commensurate with the Logic level requirements of the main FPGA#1 (of Section 4.0 described below).
The ADC's receive the conversion clock from the pixel clock generator which is derived in the clock generation circuit of Section 25 _ 10Ø The clock from the pixel clock generator (PCG) is precisely synchronized with the original clock which generated the input WO 00/17766 PCT/US99/2189i video signals. The outputs from the ADC's are fed to the main FPGA# 1 of Section 4Ø The ADC's are enabled (CE) by the FPGA#1 by an active low level. Power to the ADC's is supplied by an analog +5 V and a digital +5 V. Although both voltages are the 5 same, the analog and digital references are with regard to the required external power supply filtering to the appropriate input power pins. They also refer to the PCB layout trace procedure for the appropriate power pins.
Section 4.0 of Figure 9 is the Main FPGA# 1 circuit.
1 o FPGA# 1 (element 12 in Figure 1 ) is an 7K gate array ( 144-pin) which controls all «ideo data traffic between the ADC's, the three external 32Kx8 S-R.AMs 24-26, the main CPU (2 I ), and the PCI
Master Gate Array 22. It also receives the card ID code which is read by the main CPU 21. The FPGA# 1 also determines the Check 15 Sum difference between two video frames and delivers the difference to the FPGA#2 (corresponding to elements 13 in Figure 1 and Section 7.0 in Figure 9) to be processed by the PCI master.
The check sum difference is derived from the comparison between one of the S-RAMS in Section 5.0 and the Palette RAM in Section 20 6Ø It also receives commands from the main CPU to activate the number of colors to be transferred from the ADC's to the PCI
Master. The FPGA#1 can select either two (2), four (4), sixteen (16) or two hundred fifty-six (256) colors to be processed by the PCI Master, as dictated by the main CPU. It controls the 25 interleaving function of the two external S-R.A.MS as shown in Section 5.0 (and corresponding to elements 25-26 of Figure 1 ).

WO 00/177bb PCTIUS99121$91 This interleaving function allows the external S-RAMS to operate as Read and Write elements to the PCI Master Array. The interleaving function is initiated from the CPU via the PCI Master Array to the main FPGA ;:~ 1. As shown in the Block Diagram, three s logic rnultiplexers (MUX 1, MUX2, and MUX3 of FPGA # I ) are required to access the tluee external S-II;A,MS of Sections ~ .0 and 6Ø In addition, the input serial ports for the main CPU are also provided by the main FPGA # 1. Finally, a Timing and Control Section is required within the FPGA # 1 to precisely synchronize the 1 o various control functions as describe above. The only input power to the FPGA #1 is +~ VDC.
Sections 5.0, and 6.0 of Figure 9 are Interleaving 32Kx8 External RAMS. All Address, Data, Read/Write, and Chip-Enable (CE) control lines are pro~~ided by the main FPGA #1's muitiplexer 1 s sections. The two external RAMS of Section 5.0 and the RAM of Section 6.0 are not part of the Main FPGA and are stand-alone chips. The access times of the S-RAMS can be 12n5 maximum, which is commensurate wide the maximum data rate of 80MHz.
Section 7.0 of Figure 9 is the FPGA #2. FPGA #2 is the 2o second Field-Programmable-Gate Array of the KV card and is a 4K
gate array, 144-pin chip. It is composed of the same logic family as the main FPGA and is capable of 100MHz operation and beyond.
Within the subsections of the FPGA #2, Figure 9 shows that there is a Timing and Control Section, a VGA Format Decode Section, a 25 Video Latch Area, CPU Serial Ports, and the PCI Master Gate Array Section. It is the function of the PCI Master to act as a w0 00/17766 PCTIUS99I21891 "bridge" behveen the main FPGA 1 I and the PCI Buss. The FPGA
#2 receives the video difference calculation from FPGA #1 and stores the data in input video latches. In conjunction with the Timing and Control Section, it transfers the video data to the PCI
5 Master to be read out to the PCI Buss (Section 13.0) at the PCI
transfer rate of 33MHz. The VGA Format Decode section determines the VGA pixel format. Tl~e VGA modes can occur at either 640x480, 800x600, or I024x768, all at either 60Hz or 72Hz refresh rate. It is the function of this section to determine which 1o VGA format is being addressed by using the coded information present in the polarities of the horizontal and vertical sync signals.
By using logic which interprets the sense of the Iogic levels, a combination of active high and active low TTL signals, the correct VGA format can be decoded. The information is then stored in a 1 s shift register and presented to the main CPU, (Section 9.0). This information is required by the Main CPU to calculate the required divisor number for the pixel clock generator, in Section 10Ø The required shift registers for the main CPU and the Keyboard CPU
are also provided by the FPGA#2, such that the Keyboard CPU can 2o communicate with the Main CPU. As such the second FPGA acts as a conduit for the two CPU's to communicate.
Section 8.0 of Figure 9 is the System Clock circuit. This section of the block diagram is a stand-alone clock chip which can provide three separate clock frequencies. The output frequencies 2s can be manually programmed and are derived using a frequency synthesizer involving PLL techniques working from an external WO 00/17766 PCT/US99/21$91 cr~~stal. The system clock provides a 100MHz, 24MHz and 1 OOKHz clock. The 24MHz clock is used by the on board CPU's (8702-24). The 100KHz clock is used to generate the -~VDC rail, and the 100MHz clock is used to drive both FPGA's. Although a 5 24MHz clock is shown as inputs for both CPU's this frequency can be changed to another frequency such as 22IvIHz if desired.
Section 9.0 of Figure 9 includes the Main CPU and Keyboard CPU. The main CPU and Keyboard CPU communicate with both FPGA's. The main CPU is programmed to direct data between the 1 o external SRAMs and FPGA#2 in accordance with the interleaving function, the number of colors selected, and the readout of the checksum difference to FPGA#2. The main CPU requires an external SRAM (32Kx8) {Section 11.0) similar to the other three SRAMS around the main FPGA#l . It's external SRAM is used to 15 store data from the keyboard and mouse devices, and from the VGA Format Decode Section.of the second FPGA#2. The data from the VGA Format Decode Section is used by the main CPU to produce the correct divisor number for the Pixel Clock Generator (Section 10.0). The number v~~ill be a difference value for each 20 pixel format ranging from 640x480 to 1024x768 at 60Hz and 72Hz refresh. The KV card is designed to capture video at 640x480, 800x600, 1024x768, at 60Hz and 72Hz. 'Therefore, a total of six divisor numbers will be generated by the main CPU and fed to the Protocall Corrector of Section 10.0, which in turn will feed the 25 number to the 1CS 1522, dot clock generator.

w0 OO/I7766 PCT/US99/21891 Section I 0.0 of Figure 9 includes the Pixel Clock Generator (Dot Clock Generator) It is the function of Section 10.0 to accurately reproduce (frequency and phase} the pixel clock which was used by the Host 5 PC Graphic Card to produce the analog video signal present in the Red, Green, and BIue inputs to the KV card. Section 10.0 uses the feedback divisor input from the main CPU (Section 9.0) and the Horizontal Sync Input from the Host PC via the DB-1 S input connector, to produce the output pixel clock which is used by the 1 o three Analog-to-Digital Converters in Section 2.0 to convert the analog data to digital data. As explained in Section 9.0, the output frequency of the PLL is determined by the input Horizontal frequency and the Feedback Divisor number from the main CPU
which changes as a function of the VGA Pixel Format. In 15 accordance with the VGA video standard, the Horizontal Sync is actually a Composite Sync Signal which includes-the Vertical Sync Signal. During the duration of the Vertical Sync period, there can be a complete absence of Horizontal Sync pulses, or there can be what is known as Equalization and Serration pulses in accordance 2o with the EIA Standard R5343A. Some Graphics Cards will include the Equalization azld Serration pulses while others will exclude them entirely. The Equalization and Serration pulses are actually 2X
horizontal pulses during the vertical blanking period, where 2X
corresponds to twice the horizontal frequency.
25 The effect of either the absence or the existence of the 2X
pulses has a profound effect on the Phase-Lock-Loop. It is the w0 00/17766 PCT/US99/21891 nature of any PLL to operate as either a second-order or third-order feedback system requiring time to respond to any differential chan;~e in input frequency. Depending on the amplitude of the damping coefficient of the second-order system, the PLL will 5 overshoot and undershoot due to an input frequency change and will finall~~ settle to a steady-state condition. In addition, if the PLL
looses "lock" during the differential change in frequency, i.e. loss of horizontal pulses, it will require a finite time to re-acquire and re-lock to the input frequency. It is for this reason that the PLL must 1 o be designed to perform, i.e.; not loose lock, during the absence or frequency doubling of the horizontal input signal. In Section 10.0 a method is used to avoid the loss of lock by using a Sample-and-Hold Circuit which effectively "breaks" the feedback loop of the PLL during the vertical blanking period. The disconnection is 15 performed at the output of the phase detector of the PLL. Recall that the phase detector accepts a sigm.al from the input horizontal sync and the feedback clock. In a normally connected PLL, at the time of the Vertical Sync period the loss or addition of 2X pulses would cause the output of the phase detector to produce a large 2o phase error signal causing the VCO to move in the direction of the frequency change, i.e., either Lower or higher in output frequency.
Due to the differential change, the PLL loop would require additional time to acquire and settle to its steady-state condition.
The result would be a disturbance period once the normal horizontal 25 pulses returned, after the vertical blanking period.

The design technique which is used in Section 10.0 is to reirlove the phase error signal from the phase detector, during the Vertical Blanking Period. The Vertical Blanking Period is also generated in the VGA Format Decode Section of the second 5 FPGA#2 and fed to the Hold signal of the Sample-and-Hold Circuit.
The Vertical Blanking Period also varies as a function of the VGA
Pixel Format and can vary from SOOus to l.2mS. It is therefore only necessary to use a hold period which exceeds the maximum vertical blanking period. To accomplish this, the input vertical sync pulse is
10 extended within the Sample-and-Hold Circuit to a maximum of 1.SmS. In order to insure that the DC level on the integrating capacitor (C 1 ) maintain a steady hold level it is necessary to buffer the input and output sections of the loop filter with high impedance, low leakage, buffer circuits.
15 Section 11.0 of Figure 9 is Main CPU SRAM, the reason for which is described above with respect to Section 9Ø
Section 12.0 of Figure 9 is the Keyboard & Mouse Devices.
These devices are needed in order for the Remote PC to Control the Host PC during an access session. .
20 Section 13.0 of Figure 9 is the PCI Bus. The PCI Bus is part of a standard PG Motherboard Design.
Section 14.0 of Figure 9 is a brief list of example integrated circuits disclosed KV card embodiment:
MANUFACTURER PART NUMBER
25 HARRIS HF1205, OP AMP

w0 00/17766 PCT/US99/21891 9s NATIONAL LF357, OP AMP

PHILIPS TDA8714T/7, ADC

INTEGRATED CIRCUITS SYS ICS1522, PLL

CYPRESS CY7C199,SRAM

S CYPRESS CY2071,CLOCK

CYPRESS CY38007P208,FPGA

CYPRESS CYC38GP-XAC,FPGA

INTEL 87C52-24, GPU

NATIONAL LF398M. S/H

1o CENTRAL SEMI PZT2222A, XISTOR

CENTRAL SEMI PZT2907AT, XISTOR

MOTOROLA MIvIBD7000,BRIDGE

KOA-SPEER RESISTOR, CAPS

Section 15.0 of Figure 9 is the ID Dip Switch To meet the requirement of remotely accessing multiple Host PC's, where each Host PC is matched with one Keyview-Pro Expansion Card, it is 20 necessary to provide an LD. code for each card, up to a total of eight cards. In order to accomplish this, a manually programmable DIP switch will be used as shown in Section 15Ø This 3-Bit code will be accepted by the main FPGA#1 and passed to the main CPU
for card identification and tagging.
zs Remote Reset Card Specification In addition to the KV PCI cards each KEY-VIEW PC
includes one KEY-VIEW ISA "Reboot" card 90 designed to permit the KEY-VIEW PC to be remotely reset, to capture the caller's ID
5 and to control the KEY-VIEW PC's turbo light. An example Reboot card (AKA access control card) is show in Figure 11, with further detail sho«~n in Figure 12.
When the Reboot card is installed, a phone. line is connected into the phone jack 91 on the back plate of the card. A phone out 1o jack 92 permits the pass through of the phone signal to either a telephone or a modem.
When a call is received, the card captures the caller's ID and passes any ID received to the KEY-VIEW .APP va the ISA bus.
Storage on the card is sufficient to handle the current caller's ID
15 (i.e., one may, but need not provide storage on the card of caller ID
numbers from previous calls). Since the caller ID can only be captures' between the first and second ring, pcAnywhere on the KEY-VIEW PC is set to answer on the third ring (or a higher number of rings), if the user wishes to capture the caller's ID.
2o The card has the ability to count incoming rings and thereby permit the CPU on the card to take actions based on the number of rings detected. Ideally this ring detection feature also handles rings in foreign countries. If this is not possible then the hardware supports the ability to write custom operating system software to 25 detect special types of ring conditions in foreign countries.

The card also has a DTMIF decoder capable of accurately distinguishing a remote user's touch tone entries after the modem in the KEY-VIEW PC has answered a call. Since a modem generates noise immediately after answering a call and until the call is 5 terminated by the modem, the DTMF decoder is able to accurately recognize a remote user's tones while this noise is occurring. Any tone received by the remote user will be passed back to the card's operating system. Up to eight tones may be captured in this manner per call.
1 o When the remote user enters a correct touch tone reboot code, hardware means on the card sends back an audible tone to the caller (that can be heard over the modem noise discussed above) confirming that the correct code has been received.
In some cases; the operating system of the card may need to 15 reboot the PC if less than a user specified number of rings (e.g. 3 rings) are detected. This feature is necessary in cases where the modem answers a call on three rings, but the KEY-VIEW APP or pcAnywhere APP is locked up and the user is not at a touch tone phone that will activate the touch tone code feature or in a country 2o that the DTNlF decoder will not recognize tones.
In other cases the KEY-VIEW PC may need to be booted if more than a user specified number of rings (e.g. 10) is detected to handle a case where the modem fails to answer a call, in which case a remote user would have no way to enter touch tones. This user 25 option will also be needed in cases when the KEYVIEW PC does not have a modem.

WO 00!17766 PCT/US99121891 From an operating viewpoint, the hardware on the card simply passes ring information, caller ID information and touch tone information back to the card's operating system which wjould decide what to do with the information based on how the user has 5 configured the card to operate. In addition, for foreign countries, it ma~~ be necessary for the operating system to perform the ring/tone detection features in place of the standard hardware on the cards, so there hardware links can be used to avoid further hardware changes.
The reboot card 90 will cause the KEY-VIEW PC to reset by 1 o sendula a signal to the reset pin on the PC's motherboard, assuming that a tt~~o pin cable is installed between the re-boot board's reset pins and the reset pins on the KEY-VIEW PC's motherboard. In addition. a PJ-45 jack, standard serial interface is provided, to permit the card's operating system to control power to the KEY-1 s VIEW module connected to the port.
The second function of the reboot card 90 is to control the turbo light on the KEY-VIEW PC's front panel, assuming that a two pin cable is installed between the re-boot board's turbo pins and the turbo pins on the KEY-VIEW PC's motherboard. The turbo light 2o would be used to visually indicate when a remote user is accessing the KEY-VIEW PC and to indicate whether the KEY-VIEW PC
was in Host mode or a Menu mode.
The KEY-VIEW PC's turbo light will be off when the KEY-VIEW PC is in a Menu mode and is not being remotely accessed.
2s The KEY-VIEW PC's turbo light will be ON when the KEY-VIEW
PC is in a Host mode and is not being remotely accessed. This light will flash ON briefly whenever the KEY-VIEW PC is in a Host mode and is being remotely accessed. More specifically, the turbo light should remain OFF but flash ON (for .5 seconds) every 5 seconds, whenever the KEY-VIEW PC is being remotely accessed 5 {i.e. pcAnywhere is "In session") and is in a menu mode. If the KEY-VIEW PC is in a mode where both pcAnywhere is "In Session" and the KEY-VIEW PC is in a Host mode, the turbo Iight should remain ON and then flash OFF far .5 seconds every 5 seconds.
10 The KEY-VIEW APP running on the KEY-VIEW PC must be able to send commands or a code to the reboot card via the ISA
bus to tell the boot card what to do with the turbo light as follows:
Code Action 1 Turn light ON
1 s 2 Turn light OFF
3 Turn Light ON but blink OFF every ~ secs 4 Turn Light OFF but blink ON every 5 secs Setting the turbo light in this manner coupled with the user beep option, which is handled by the KEY-VIEW APP, gives 2o anyone working at the Host site a visible and audible indication whenever the site is being remotely accessed. Moreover, whenever the turbo light stays OFF, the user at the Host site will know that the KEY-VIEW PC is not in a Host mode and will not pass keyboard or mouse input through to the Host PC. In this case the 2s user at the Host site will need to connect a monitor to the KEY-VIEW PC's SVGA card to see what state the KEY-VIEW PC is in.

WO 00/177b6 PCTIUS99/21891 Normally when the light is OFF it will indicate that someone has shut-down the KEY-VIEW APP.
KEYVIEW SYSTEM STRUCTURES
s To install the KEY-VIEW PC 200 (Figures 28-29), each Host PC's (201-204) keyboard, mouse; and monitor are disconnected from the Host PC. These peripheral devices are of no further use and may used for the KEY-VIEW PC or elsewhere by the customer. Next, a supplied multi-port interface cable 213 is to connected from the KEY-VIEW PC's PCI card's 25 pin connector to the Host PC's keyboard, mouse and video card input ports, so that when necessary the KEY-VIEW PC's optional monitor, keyboard and mouse (not shown in Figures 28-29) could be used to control the Host PC 20-1204, similar to how a PC switch box is 15 used on site to control multiple PC's. An appropriate mouse driver would be installed on the Host PC and may be a Keyview mouse driver in place of any existing driver. In such a case, the KEY-VIEW PC would be automatically trained (as described later) to recognize the video output signals of the Host PG and mouse 2o control procedure of the Host PC using software provided with the KEY-VIEW II system.
Instead of connecting the KEY-VIEW PCI card directly to a single Host PC, as described above, KEY-VIEW II alternatively permits connecting the card directly to a supported PC switch box 25 that may in turn allow switching between multiple PC's using special ke~~board hot keys. If the KEY-VIEW PCI card is to be WO 00!17766 PCTIUS99/21891 connected to a supported third pam~ switch box, it is advisable to power off all PCs connected to the switch box. If NET-911 Control .
Modules {Figure 10) are to be connected to the Host PCs comlected to the Switch Box, then the Control Modules are daisy-chained and S connected to these Host PCs: as shaven in Figure 10.
One KEY-VIEW Access Control Card 90, shown in Figures 1 I and 12, may be installed in a ISA slot in KEY-VIEW PC. The primary functions of this card are {1) to permit the KEY-VIEW PC
to be remotely rebooted in the event it should lockup; (2) to alert 1o host site personnel that someone is remotely accessing the KEY-VIEW PC by causing the turbo light on the PC to blink; {3) to capture and log the caller ID of anyone attempting to access the KEY-VIEW PC by modem, (~) to optionally automatically terminate a phone connection if the caller ID has been blocked or ~ 5 the caller's phone number does not match a list of pre-authorized numbers, and (4) to issue pager alerts in the event an unauthorized user is detected.
One of two alternatives can be used to permit the KEY-VIEW PC to be remotely rebooted.
20 The fu-st alternative is sho«'n in Figure I2 and requires that an optional NET-91 I Control Module 80 be connected to the Access Control Card's RJ-45 DATA port using the RJ-45 cable provided with the module 80. In this case the module's AC power output cord is plugged into the KEY-VIEW PC's power input 25 receptacle and the module's AC power input cord is plugged into a source of AC power such as a wall outlet or UPS. When a KEY-VIEW Control Module is used in this manner no other modules may be daisy chained to this module. After a module is connected in this manner; the KEY-VIEW PC will be automatically cold-booted by instructing the module to temporarily cut power to the KEY-VIEW
5 PC for 20 seconds «~hen the reset card determines that the KEY-VIEW PC should be rebooted (see below). This alternative is the recommended remote boot approach.
The second alternative for rebooting the KEY-V1EW PC
requires that the two pin cable supplied with each access card be 1 o connected from the pins labeled Reset (Figure 11 ) on the card 90 to the reset pins on the KEY-VIEW PC's motherboard and the reset button on the front of the KEY-VIEW PC be connected to the Access Control card 90. After a module is connected in this manner, the KEY-VIEW PC will be automatically reset by closing ~ s the pins on the KEY-VIEW PC's motherboard {as if the reset button was physically pressed) when the reset card determines that the KEY-VIEW PC should be rebooted (see below).
The main advantage of using the Control Module alternative over the internal reset alternative is the Host PC can be cold booted, 20 which is usually a more reliable means to insure that the KEY-VIEW PC and all cards in the PC are fully reset. The primary advantage of the internal reset alternative is that it avoids the added cost of a Control Module 80. If both alternatives are installed at the same time, the Control Module alternative will be invoked first and 25 the reset option only used if the Control module fails or is removed.
In other words, when a Control Module 80 is connected to Access WO 00/1776b PCTIUS99121891 Control Card 90, the card will automatically sense the module's presence and cold-boot the KEY-VIEW PC, when necessary, instead of using the internal reset approach.
In addition to the tu~o different hardware approaches to 5 remotely rebooting the KEY-VIEW PC, there are also two options for initiating the reboot process, remotely. Reboot processing can either be initiated (1) based on the number of phone rings detected by the reset card or {2) via a password sent to an optional modem connected to the optional NET-911 Control module 80. Rebooting o the KEY-VIEW PC remotely is necessary in the event the KEY-VIEW PC should ever lockup (i.e. not respond when a user attempts to access the KEY-VIEW PC remotely).
The access card 90 monitors all incoming phone calls and may be configured to reboot the KEY-VIEW PC in the event {1) 7 5 less than a user defined number of rings are detected or (2) more than a user defined number of rings are detected.
When a modem is installed in the KEY-VIEW PC, it is possible that the modem answers a call, but the KEY-VIEW and/or the remote access engine is locked up. In this case, it will be 20 necessary to remotely reboot the KEY-VIEW PC. In order to do this the remote access engine is configured to tell the modem 82 to answer a call only after four rings. Then, the KEY-VIEW Enable Reboot when less than rings option (discussed later) should be set to three rings. Using these settings, a remote user would then 2s simply call the KEY-VIEW PC and hang up after two rings, thereby causing the KEY-VIEW PC to reboot.

It is also possible that when the KEY-VIEW PC locks up the modem 82 locks up too and will simply not answer a call. Also, in cases where a modem is not installed in the KEY-VIEW PC and the KEY-VIEW PC is accessed remotely either via a LAN or the 5 Internet, a means is still be necessary using a phone line to remotely reboot the KEY-VIEW PC should it lockup. Both of these problems can be solved by setting the Enable Reboot when more than rings option to six or more rings. In this situation, a remote user would simply call the KEY-VIEW PC and wait for more than 1 o six rings before hanging up, which will cause the KEY-VIEW PC to reboot.
In rare cases, it is possible that a modem installed in the KEY-VIEW PC could lockup and hang onto a phone line, so that the line was always busy when a remote user attempts to access the 15 KEY-VIEW PC or to reboot the PC. In addition, remote users may wish to have the ability to terminate another remote user's access during an emergency situation. Both of these situations can be resolved by connecting an external modem 81 to the RJ-45 DATA
OUT port of the optional NET-911 Control Module 80 connected to 2o the Access Control card (using the CMM modem RJ-45 to DB-9 (male) connector provided with the module). In this configuration (shown in Figure 12), a second (different) phone line must be connected to this optional modem 81. An older, surplus external modem works well in this case, since this modem doesn't operate 25 above 2400 baud. Figure 12 illustrates how to connect both an optional NET-911 Control Module 80, an external modem 8I , and an internal modem 82 to a Access Control Card 90.
When an external modem 8I is installed, any DIP switch setting on the modem should be set so as to not prevent the modem 5 from auto-answering a call. After installing the external modem, the option to use this modem must be enabled and a password defined.
After the modern has been properly installed and set to accept a password, a remote user would simply use a terminal emulation program such as Hyperterminal (supplied with Windows) to ( I ) call 1 o the external modem, (2) type "RESET" when the connection was completed and (3) enter the correct password when prompted by the Access Control card 90 thereby causing the KEY-VIEW PC to reboot.
An Access Control Card 90 also has the capability to issue 15 pager alerts in the event a potential intruder is detected. Such pager alerts would be appropriate if a user fails to enter a correct password within a pre-specified number of guesses or a caller ID is detected from an unauthorized phone number. Persons) to be alerted via pager and the related pager codes can be defined using 2o the Pager Alert menu option (discussed later). In order to issue a pager alert, an optional external modem 8I must be connected to the Access Control Card 90, as discussed above.
When the KEY-VIEW Access Control Card 90 is installed, one of the cables from a front panel status light (e.g. turbo light) on 25 the KEY-VIEW PC is unplugged from the KEY-VIEW PC's motherboard and plugged back into the LED pins (J2 in Figure 1 I ) on the Access Control Card 90. This connection insures that one of the LED lights on the front of the KEY-VIEW PC blinks whenever someone is remotely connected to the KEY-VIEW PC. This blinking coupled with an audible beep is designed to alert personnel s at tl~e Host site whenever someone is remotely accessing the KEY-VIEVV PC.
Preferably, the phone line has the optional caller ID feature from the phone company enabled so that KEY-VIEW will automatically capture the caller ID when a call is received.
1 o Acti~~ating the caller II7 service on this line permits the KEY-VIEW
Access Control Card to track and log all calls received and to optionally automatically terminate a call from a remote user whenever (1) a caller ID is not available, (2) has been intentionally blocked (i.e. the caller precedes their call with *67). or (3) where is the caller's ID is not on a list of pre-authorized ID's. See the Caller ID topic for information on how to configure these KEY-VIEW
caller ID features.
24 KEY-VIEW PC Video Monitor Installation A VGA monitor 214 is plugged into the KEY-VIEW PC's video card. Normally the monitor that was unplugged from the Host PC 201-204 or Switch Box is used for this purpose. This video monitor reflects what is happening in the KEY-VIEW PC or 2s active Host PC and is normally the only monitor needed for the KEY-VIEW PC. When the KEY-VIEW PC is in a Host Mode this monitor reflects what appears on the active Host PC 201-204 on a slightly delayed basis. Since the KEY-VIEW PC can switch from Host PC to Host PC only one monitor is needed to view the active PC once the switching process is complete.
Some users want to view the active Host PC 201-204 on a real time basis. For these users, a Video output port exists on back of each PCI card that passes,through the video output si~,nal of the active Host PC for each PCI card on a real time basis. In cases where more than one PCI card is installed in the KEY-VIEW PC
l o multiple monitors would be required at the Host site to see the output of the active Host PC. To avoid the need for such multiple monitors, a simple, inexpensive A-B style video switch box can be installed to switch between each of the PCI cards video output ports and the KEY-VIEW PC's video card's output, so that one monitor 1 s will be able to view anything on a real time basis.
Normally an internal modem is installed in the KEY-VIEW
PC permitting remote access via modem to the KEY-VIEW PC. In addition to the modem, it is also suggested that another means of remote access be also installed in the KEY-VIEW PC, such as a zo LAN card.
Normally a LAN card is installed in the KEY-VIEW PC that is compatible with a customer's internal network to permit remote LAN or Internet access to the KEY-VIEW PC. An example of this is shown in Figures 28 and 29, where remote site 20~ accesses the 25 Keyview PC directly via network 206. Network 206 may be a LAN wherein the remote PC 210 and Keyview PC 200 include internal LAN cards. Since remote access to a KEY-VIEW PC is often r~ezded on an emergency- basis, another means of remote access cm be installed in the KEY-VIEW PC, such as a modem 81/8?.
s After the applicable LAN card is installed in the KEY-VIEW
PC, the card should be connected to the LAN as shown in Figures 28 and ?9.
~~onnally NET-911 Control Modules are connected to one of the hEY-VIEW PC's serial port (Figure 12). These modules are dais~~ chained together (Figure IO) and connected to each Host PC
accessible by the KEY-VIEW' PC to permit serial access to and power control of the Host PCs by a remote user. The serial access feature of the modules is normally used to facilitate file transfers between a Host PC 201-204 and KEY-VIEW PC 200. Any other 1 s device for which serial access and/or power control is required remotely, such as routers or printers, may be connected to modules on the daisy chain. So, in this regard the KEY-VIEW PC becomes an all inclusive platform for remotely managing network devices.

Start-Up Processing Each time the KEY-VIEW II PC is rebooted the following major events occur:
The operating system is loaded including any device drivers 2s such as a LAN driver for a network interface card or the modem driver for any modem installed in the KEY-VIEW PC.

Ila Any Device drivers needed to access the KEY-VIEW PCI
cards) will be loaded to permit the KEY-VIEW application to coimnunicate with the card.
The KEY-VIEW PCI cards operating system will be loaded s from the KEY-VIEW PC's disk drive into the cards memory. This approach facilitates PCI card firmware upgrades to occur simply by replacing the PCI card's operating system's program files with new program f les..
Next, the remote access engine is automatically loaded in a 10 "Host" mode using whatever means (up to 2) the user has specified to permit remote access to the KEY-VIEW PC (e.g. modem and LAN access could bath be specified).
The KEY-VIEW II application (KV-APP) is then activated automatically, whereupon the following events occur:
15 The KEY-VIEW PC switches to an 800x600 graphics mode and the KEY-VIEW 11 graphics logo displays for 5 seconds. This Logo can be cleared sooner by pressing any key or clicking a mouse button.
While the KEY-VIEW TI logo is being displayed, the 2o KEY-VIEW application accesses information stored on a disk status file as to the last active Host PC (e.g.
PCI Card ID, switch box PC ID, video driver for the PC, etc.). This information is then be sent as commands to the KEY-VIEW PCI cards thereby 25 causing the appropriate KEY-VIEW PCI card to become the active card.

If the last accessed KEY-VIEW PCI card is no longer accessible (e.g. it does not respond to the KEY-VIEW
II applications request to become active), an error message will be displayed and the KEY-VIEW II
5 system reverts to it's Menu Mode. While in a Menu Mode, all Remote or Host site key-board or mouse input controls the KEY-VIEW PC instead of the Host PC. , From this Menu mode, a user can attempt to re-access the last active PCI card or select another PCI
ho card to access, if there is more than one KEY-VIEW
PCI card in the KEY-VIEW PC.
If the last accessed KEY-VIEW PCI card is accessible, the KEY-VIEW PC will automatically initiate Host mode processing wherein the active Host 15 PC's screen is mirrored using the KEY-VIEW PC's full screen (i.e. the KEY-VIEW PC graphics mode is automatically adjusted to the graphics mode of the active Host PC) and Remote or Host site keyboardlmouse inputs are forwarded to the active 2o Host PC.
As indicated by the above steps, once the KEY-VIEW
application becomes operational, it will operate in one of two modes, namely either a Host Mode or Menu Mode and normal KEY-VIEW II processing commences. Tapping the left Ctrl key 25 four times causes the KEY-VIEW PC to switch from a Host Mode to a Menu Mode. From tle Menu Mode, either pressing the FS key lI2 or selecting the Exit Menu Mode option from the KEY-VIEW main menu bar Other option causes the KEY-VIEW PC to switch from a Menis Mode to a Host mode.
The KEY-VIEW Host Mode gives a user total control over the active Host PC from the KEY-VIEW PC. In the Host Mode all remote or host site mouse or keyboard input is trapped {i. e.
redirected) by the KEY-VIEW application and passed to the active Host PG, as if the Remote/Host site's keyboard/mouse was directly attached to the active Host PC. In cases where multiple Host PCs 1 o are connected to the KEY-VIEW PC only one Host PC may be desilmated at any point in time as the active Host PC. If necessary, information, such as the status of the keyboard's num lock, caps, lock and scroll lock lights would be passed back through the KEY-VIEW system so the Remote and local PC's keyboard status lights ~ s would reflect the status lights of the active Host PC.
The KEY-VIEW II Menu Mode permits (1) configuring the KEY-VIEW PC for KEY-VIEW processing including adding PCT
cards, Host PCs definitions, etc., (2) switching between Host PCs, {3) accessing NET-911 Control Modules to control power to Host 2o PC and/or serial access Host PCs, and {4) creating video or mouse drivers necessary to successfully control a Host PC. In the KEY-VIEW Menu Mode both Remote and Host keyboardlmouse activity is input is directed to the KEY-VIEW PC. Nonnaliy a user would only switch to a Host Mode temporarily to perform a specific task, 2s which is typically to switch from Host PC to Host PC or to access NET-911 Control Modules. A more detailed discussion of the WO 00/17766 1'CT/US99/2I891 processing options available under the Menu Mode are discussed under that topic S Host Mode The KEY-VIEW Host mode gives a user total control over the active Host PC. In the Host Mode all Remote or Host site mouse or keyboard input is trapped by the KEY-VIEW application and passed to the active Host PC, as if the RemotelHost site's ~ o keyboard/mouse was directly attached to the Host PC. If necessary, information, such as the status of the keyboard's num lock, caps, lock and scroll Iock lights would be passed back through the KEY-VIEW system so the Remote and local PC's keyboard status lights would reflect the status lights of the active Host PC.
15 When in a Host Mode, the KEY-VIEW PC's screen reflects what is being displayed on the Host PC's screen. In cases where the Host PC screen is in a different graphics mode, then the KEY-VIEW PC's screen, the KEY-VIEW application will automatically change the graphics resolution of the KEY-VIEW PC to match the 20 ~,~raphics resolution of the Host PC's screen, so that the Host PCs screen will always be displayed on a :full screen basis on the KEY-VIEW PC. Supported graphics resolutions are 640x480, 800x600 and 1024x768.
Frorn a Host mode certain "hot key" combinations are 25 trapped by the KEY-VIEW application and not passed back to the active Host PC. Hot key actions are triggered by 4 consecutive WO 00/17766 PCT/IJS99/21$91 press-releases (taps) of the hot key within a 3 second interval. A
list of these keys are discussed below. Tapping hot keys four times was set as a standard for KEY-VIEW II to minimize any chance of interfering with similar mufti-tap hot-key approaches that may be used by applications running on a Host PC. Hot keys must be tapped consecutively, so any key pressed other than the hot-key resets the hot-key tap counter.
In cases where a user taps one of the above hot keys less than 4 times during a 3 second interval, then all of the key taps will be 1 o assumed to be directed at the active Host PC and will be passed through to the Host PC. This approach insures that the KEY-VIEW
application will not trap possible hot key tap combination used by other applications.
When a KEY-VIEW PCI card is connected to a switch box, 15 a special procedure exists to help avoid the need to switch from a Host mode to a Menu mode. The KEY-VIEW menu system permits the assignment of any one of the various supported switch box hot key sequences to the standard KEY-VLEW hot key sequence of tapping the Left Shift key four times. For example, the 20 switch box command code of <NumLock> <~us> <Num Lock>
could be assigned to this special Left Shift key sequence for a given KEY-VIEW PCI card, so that when KEY-VIEW detects the Left Shift key sequence from either a Remote or Host site user while in a Host mode, KEY-VIEW would send the <NumLock> <Minus>
25 <Num Lock> sequence to the Host PC and do whatever is necessary to load any drivers or other steps required when WO fl0117766 PCT/US99I2189I

switching between PCs. This approach has the added benefit of permitting a user to use the same procedure at either a Host or Remote site to switch between PC's connected to a switch box.
To avoid having to trap a ~~arieri~ of different Hot keys for s switch boxes, which may conflict with hot keys used by user applications, KEY-VIEW will not look for the entry of any switch box vendor's hot key sequences. If such keys are entered and cause a switch box to switch PCs, the KEY-VIEW application may be unaware of the change and rnay not decode floe video output of the 1o new PC correctly. This may cause an unreadable Hast screen image to appear on the KEY-VIEW PC.
When a user switches beriveen PCs on a switch box via either ( 1 ) pressing a different channel selector button on the switch box or (2) entering the vendor's hot key sequence instead of tapping 1s the Left shift key four times, KEY-VIEW ~~-ill not be aware of the change until after the change occurs. In these cases, supported switch boxes are designed to send a special code back to the KEY-VIEW application alerting the application that a change has already occurred. In rare cases it is possible that this feedback may not 20 occur. In this event the KEY-VIEW PC will not be in sync with the Host PC, causing the Host PC's screen to be scrambled. Moreover, even «~hen the change is detected; the Host screen will be scrambled from the time the chance is detected until KEY-VIEW
performs the necessary steps to s~mc to the new Host PC's video 25 output. Accordingly, tapping the Left Shift key is the recommended approach to switch between switch box PCs.

WO 00!17766 PCTlUS99121891 In cases where this is no active Host PC, the KEY-VIEW
application will not permit switching from a Menu Mode to a Host mode until a Host PC is successfully selected as the active Host PC.
~~l~en in a Host mode, the user at the Host site will see a s slightl~~ delayed painted image of the Host PC's screen (assuming a monitor at the Host site is connected to the SVGA card in the KEY-VIEVv' PC) and will be able to use the KEY-VIEW PC's mouse and keyboard to control the Host PC. To avoid Host PC screen display delays. a Host site user could plug a monitor directly into the SVGA
t o output of a PCi card and plug a second monitor into the KEY-VIEW PC's SVGA card to access KEY-VIEW Menu mode or to test ho«- fast KEY-VIEW is displaying the Host screen (by using the two monitors to compare the KEY-VIEW PCI card's real time video output to the KEY-VIEW PC's SVGA card output). For 15 normal operation users at a Host site will likely just plug one monitor into the SVGA output of the KEY-VIEW PC and minimize any screen paint delays by reducing the number of colors displayed.
This approach would avoid any confusion caused by the need to switch to different video ports when the KEY-VIEW PC is in a 2o menu mode or when multiple PCI cards are installed. If real-time displays are essential for Host site users, then an inexpensive video switch box to switch between the PCI cards) video outputs and the KEY-VIEW PC's SVGA video output.
As mentioned, a user at a KEY-VIEW PC with only one 25 KEY-VIEW PCI card would rarely need to use KEY-VIEWs Menu mode or see the normal SVGA output of the KEY-VIEW PC's w0 00/17766 PCT/US99/21891 1~~
SVGA card. Even if this single PCl card were connected to an external PC switch box, the Host site user could enter keyboard "hot-key" commands to switch bet,~Jeen PC's connected to the card, as opposed to going into a KEY-VIEW Menu mode. However, 5 remote users would need to use the Menu mode because pcAnywhere may block the necessary keyboard hot key commands necessary to switch between PC connected to the switch box (e.g.
<NumLock> <Minus> <Num Lock>). Avoiding this need to switch to a Menu mode is desirable. If the remote user leaves a KEY-1 o VIEW PC in a Menu mode and the timer used to automatically switch back has been disabled; a subsequent user at the Host site may become confused (because they will not see the KEY-VIEW's screen is in a Menu mode) when they try to use the KEY-VIEW
PC's mouse or keyboard and it doesn't pass through to the Host PC.
15 When a KEY-VIEW PC is rebooted, it will automatically attempt to initiate Host mode processing. This approach assures that KEY-VIEW PC is always ready to control the active Host PC.
When KEY-VIEW user security has been activated on a KEY-VIEW PC, KEY-VIEW will automatically terminate Host 2o mode processing and display a special login screen each time the KEY-VIEW PC is remotely accessed. The remote user must then enter the correct Login ID and password before KEY-VIEW will permit access to the KEY-VIEW application. In addition to prevent a situation where a remote user attempts to gain access to the 25 application by rebooting the KEY-VIEW PC, when user KEY-WO OOII7766 PCT/US9912I$91 VIEW user securiy has been activated, KEY-VIEW requires that a user login whenever KEY-VIEW application processing is initiated.
5 Menu Mode The KEY-VIEW II Menu Mode permits (1) configuring the KEY-VIEW PC for KEY-VIEW processing including adding PCl cards, Host PCs definitions, etc., (2) switching betv4~een Host PCs, (3) accessing NET-911 Control modules to control power to Host 10 PC and/or serial access Host PCs, and (4) creating video or mouse drivers necessary to successfully control a Host PC. In the KEY-VIEW Menu Mode both Remote and Host keyboard/mouse activity is input is directed to the KEY-VIEW PC.
The KEY-VIEW main menu options bar is at the top of the 15 KEY-VIEW PC's screen while in a Menu Mode. This menu consists of several options and sub-options. When a main menu option is selected, additional menus are displayed. A,n example menu is shown in Figure 13.
From anywhere in the Menu mode, including in the middle of 2o a data entry operation, control can be returned to the last active PCI
card and Host PC whenever a Remote or Host site user taps the FS
key. When the F5 key is pressed, any active data entry item or unfinished new entn~, such as the definition of a new PC. will be ignored. For this reason, it is not recommended to hit the F5 key 25 while any data entnl process or transaction is active. The WO 00/17766 PCT/US99i21891 recommended method to return to the Host mode is to select the Exit Menu Mode item from the Qther menu option.
In cases when a KEY-VIEW PC has only one PCI card, a Host site may not have a monitor connected to the KEY-VIEW
5 PC's SVGA card. If someone at a Remote site leaves the KEY-VIEW PC in a Menu mode when terminating their connection, a Host site user may get confused and frustrated «~hen they attempt to access a Host PC and find they do not have keyboard/'mouse control. To correct this situation, the KEY-VIEW s~~stem has a 1 o feature that automatically returns to a Host mode if either Remote or KEY-VIEW keyboard input is not detected for a user defined number of seconds. The number of seconds desired is one of the data entry options in the Menu mode. This auto-switch feature may be disabled by setting the number of seconds to zero.
15 When either ( 1 ) a KEY-VIEW PC at a Host site is switched to a Menu mode or (2) KEY-VTEW application processing has been terminated on the Host PC, the Host site user will need to either reboot the KEY-VIEW PC or connect a monitor to the KEY-VIEW
PC's SVGA card to control the KEY-VIEW PC. In either of these 2o cases, control of any Host PCs connected to the KEY-VIEW PC
will not be possible until the KEY-VIEW PC is returned to a Host mode. For this reason, it is recommended that (I) the KEY-VIEW
application on the Host PC never be terminated from the Menu mode and {2) the auto-switch feature be implemented to permit the zs KEY-VIEW application to automatically return from a Menu mode to a Host mode after a user defined number of seconds. The latter WO 00/177b6 PCT/US99/21891 feature will solve the problem where remote users leave a KEY-VIEW unit in a Menu Mode when terminating a connection, thus precluding Host site users from controlling Host PCs until they exit the Menu mode.
Switch The "switch" menu option of Figure 13 coordinates switclung between PCs and switching between modules.
1 o The Switch PCs sub-menu (Figure 14) option is used to addl delete Host PC definitions or permit a user to switch between Host PCs in cases where multiple Host PC's are connected to a KEY-VIEW PC. KEY-VIEW supports switching between PCs either by (1) switching between KEY-VIEW PCI cards in the KEY-VIEW
unit or (2) switching between PCs connected to a single card (via a supported switch box). This menu option permits switching between PCs in either of these two cases.
The Switch Modules sub-menu (Figure 15) option permits switching between optional NET-911 Control Modules that rnay be 2o daisy-chained together and connected to one of the KEY-VIEW
PC's serial port. This approach permits a remote user to control AC
power or serial access to any device connected to each module (e.g.
a Host PC, router, etc). When this menu option is selected, a list all NET-911 modules detected on the serial port is displayed. From this list a module may be selected as the "active module" permitting AC power to turned ON or OFF to the devices) receiving AC

power from that module or the KEY-VIEW PC to serial access any device plugged into that module's serial port.
a. Switching PCs The switch pc's sub-menu option is a list of the all of the possible PCI card numbers (Card-IDs), and related, user specified, 40 character Description of «~hat is connected to the card. An example list is shown in Figure 14.
When the KEY-VIEVi~ PC is booted the KEY-VIEW polls 7 o each of the 8 possible PCI card ID's to see which cards respond to the poll. A table will then be built by the KEY-VIEW of the cards that respond.
The Card ID column displays the KEY-VIEW PCI cards ID
number which would range from 0 to 7.
The Card Description colulnll displays a 40 character description of the card previously defined by the user.
The Select Host PC button applies to the PCI card ID
presently highlighted in the PCI card list box. If the highlighted PCI
card is connected directly to an active Host PC, then that Host PC
2o will become the active Host PC and that PC will be controlled by the KEY-VIEW when the KEY-VIEW PC is in a Host Mode. If the highlighted PCI card is connected to a PC Switch box, then a window of those Host PC's defined for this Switch Box will be displayed as discussed further under the Switch Box PC List topic.
What the KEY-VIEW PCI card is connected to is determined by the "Card Connected to" setting, as defined by clicking on the Settings button.
When a PCI card is selected, the PCI card is internally retested to make sure the card is still accessible. If it is no loner 5 accessible, an error message is displayed.
The Settings button permits the configuration data for the highlighted PCI card to be entered or changed. A wllldOw entitled "KEY-VIEW PCI CARD SETTINGS" appears showing the current setting for the PCI card. Processing occurring for this window is 1 o discussed under the "PCI Card Settings" topic following Test - If a card ID is installed that was not detected, that card number may be highlighted and the Test button option selected to check if the card may have just temporarily malfunctioned at boot up. When the Test option is selected, the highlighted card ID will 15 be retested and if found the card's description will be displayed next to the Card ID on the PCI card ID list.
An entry is added to the KEY-VIEW event log whenever a new Host PC is selected as the active Host PC.

PCI Card Settings The KEY-VIEW PCI Card Settings screen, an example of which is shown in Figure 17, permits entering or changing the configuration of the selected KEY-VIEW PCT card. A description 25 of each setting on this screen is as follows:

WO 00/I7766 PCT/US99/21$91 "Card Description" is a user-defined description for each PCI card installed in the KEY-VIEW PC.
''Card Connected To" references whether a KEY-VIEW PCI card is connected directly to either a (1 ) s Host PC or (2) Switch Box that permits the PCI card to access multiple Host PC.
Switch Box Hot Keys This entry is not accessible (i.e.
it is grayed out) when the Card Connected To setting is set to PC. Otherwise, the currently selected switch 1 o box hot key entry is displayed in this pull-down Window. Switch Box Hot Keys are whatever key sequence has been specified by the switch box manufacturer to cause their switch box to go into a command mode to permit switching between channels ~ s (i.e. PCs) on their switch box.
Upon clicking on this pull down menu's arrow, a list of any switch box hot key commands supported by KEY-VIEW is displayed, an example Iist is shown in Figure 18.
2o A Hot key sequence is selected for each switch box connected to each PCI card. This approach permits different command mode sequences to be defined for each PCI card in a KEY-VIEW PC. This sequence will also be assigned to the KEY-VIEW PC's left Shift 2s key, so that when the left shift key is tapped four times when connected to this PCI card, the command WO 00117766 PCT/US99/2189i sequence will be sent to the switch box connected to the active PCI card. This left shift key procedure is very useful shortcut for Host site users to switch between PCs connected to a switch box without having 5 to enter the KEY-VIEW menu system.
Returning to Figure 17, the "Video Drivers" menu specifies up to a 12 character video driver name containing the video attributes needed by KEY-VIEW to properly interpret this Host PC's video output signal.
1 o The "Mouse Interface" menu entry indicates the type of interface (i.e. PS/2 or Serial) to which this PCI card's mouse cable is connected.
The "Mouse Driver" menu defines the mouse driver name for any PC connected directly to the card.
15 KEY-VIEW PC II7 - This entry is not user updatable. The PC ID number is displayed only if the Card Connected To entry is set to PC. Internally KEY-VIEW assigns a unique sequential number to any Host PC defined. This number will be a part of any driver file names related to the PC.

Switch Box PC List When a KEY-VIEW PCI card is connected to a PC switch box, each PC connected to the switch box must be defined and configured to pernait the KEY-VIEW PC to access each PC. This 25 dialog box, an example of which is shown as Figure 19, contains a list of all those PC previously def-~ned and permits (1 ) designating a PC on the list the active Host PC, (2) modifying the configuration of a PC on the list, (3) adding and configuring a new PC, or (4) deleting a PC definition from the list.
The Switch Box PC List window displays information on 5 each PC connected to the switch box as follows:
1 ) Tl~e PC ID column displays the PC's identifying number.
Internally, KEY-VIEW assigns each PC added to the list a unique, sequential PC LD number. This number is useful in identifying the PC when viewing the KEY-VIEW event iog.
10 2) The PC Description column displays the 40 character user defined description of the PC.
When the "Settings" button of Figure 19 is selected, the Switch Box PC Settings screen permits entering or changing the conf guration of each PC connected to the PC switch box that is 15 connected to the selected KEY-VIEW PCI card. An example screen is shown in Figure 20. A description of each setting on this screen is as follows:
PC Description - For a newly added PC the description is blank. In this case a unique description must be 2o entered that clearly identifies the new Host PC to KEY-VIEW users.
The Switch Box ID entry identifies the key sequence (e.g. channel Tl7) that needs to be sent to the switch box (immediately following the Switch Box Hot keys 25 command Setting - see below) to cause the switch box to switch to this PC.

The Video Driver entry specifies up to a 12 character video driver name containing the video attributes needed by KEY-VIEW to properly interpret this Host PC's video output signal.
5 The Mouse Driver entry defines the house driver name for the PC.
The KEY-VIEW PC ID in Figure 20 is an internally assigned a unique sequential number for each Host PC defined.
This number will be a part of any driver file names related to the 1 o PC.
b. Switching Modules Under the switch menu a switch modules sub-menu exists.
The Modules main menu bar selection permits accessing the module daisy chain {referenced in Figure 18), designating a module on the 15 daisy chain as active; turning power OFF, ON or rebooting the device connected the active module and conf guring module parameters. When this menu option is selected two sub-menu options appear as follows:
1 ) Module Processing - This menu selection permits 2o accessing and controlling all of the modules on a daisy chain. This includes (1) designating a module on the daisy chain as active so that the device connected to the module may be serially accessed, (2) turning power OFF, ON or rebooting the device connected the active module, (3) placing the module daisy chain in a Pass-25 Through mode, and (4) specifying criteria to be used by NET-91 1 to automatically control power to devices connected to modules based on external events.
2) Module System Configuration - This menu option permits {J ) specifying the COM port to be used to access a module daisy 5 chain, (2) determining if users must enter into NET-911 ~ a reason whenever power is turned OFF or ON {for event logging purposes) and (3) specifying the number of seconds between the time power is turned OFF and power is turned ON when rebooting a device connected to a NET-911 module.

Module Processing Before activating Module Processing for the first time, the COM port to which the module daisy chain is connected must be 15 properly specified using the Module System Configuration menu option. For newly installed NET-911 module software the COM
port is set to COMI by default.
When the Module Processing menu option (Figure 16) is selected, the module daisy chain on the COM port specified in the 2o Module System Configuration is polled automatically. The polling process takes about I second per module. During the polling process NET-911 determines if (1) new modules have been added to the chain, (2) modules have been deleted from the chain, or {3) the physical positions of the modules have changed, since the last 2s time the daisy chain was polled. If any of these events occur, applicable messages are displayed on the screen at the end of the polling process and the changes are logged to the NET-911 event file. Also, any active modules are cleared during the polling process, which places the daisy-chain into a pass-through mode.
If no modules are detected during the polling process, an 5 appropriate message is displayed and the Activate, Settings and Pass Through buttons on the Listing of Net-911 Control Modules window are grayed-out. When this occurs it is likely the wrong COM port has been specified, another device in the PC is interfering with access to the COM port or the daisy chain is not I o properly installed as discussed under the Hardware Installation topic.
When user securiy is enabled and the current user does not have access rights to all modules on a daisy chain, then only those modules for which the user may access appear on the module list.
15 Setting user access rights is discussed under the "Security" below.
For each NET-911 control module detected on the daisy-chain, the Windows list box contain the following information:
Pos This field shows the modules physical order (position}
in the chain.
2o Power This field contains the current power status of the AC
power "POWER OUT" cord on the back of each module. ''ON" indicates any devices) connected the module are receiving power. "OFF" indicates power has been cut to the device(s).
25 Module Description This is a user defined description of the device to which the module is connected.
A description of processing occurring related to each of the options buttons on the List of NET-911 Control Modules in the 5 window of Figure 16 is as follows:
The Activate button 120 makes the currently highlighted module active. A module must be made active before the module's power or other settings may be changed or before any device connected to the module may be accessed serially by third party 10 supplied terminal emulation software programs.
The Settings button 121 causes a setting window to appear with the following processing options and settings:
A Reboot button will reboot the active module. If this button is grayed-out, it means the module's "Output" AC power status is 15 currently. OFF in which case a reboot can be accomplished by simply clicking on the Power ON button. When this option is selected, a confirmation window appears requesting confrmation to start the reboot process. In addition, if either of the "Require Reason" settings (see Module System Configuration) are checked, a 20 window pops up requiring up to two 50 character lines describing why the devices connected to the modules are being rebooted.
After the action is confirmed (and any required reason entered), power will be temporarily cut to any device receiving power form active module's "Output" AC power receptacle for the number of 25 seconds specified in the Module System Configuration "Reboot Delay in Seconds" settings..

When the reboot process begins, NET-911 exits from all module processing and returns to the main menu. This action is taken to preclude any further access to the module daisy chain until the reboot process is completed.
5 If necessary, the Reboot button could be used to reboot the PC that a NET-9I 1 module is running on. When a reboot occurs, a NET-911 module acts on it's own to restore power in the user specified number of seconds without any support frou the NET-911 application.
1 o A Power ON button will turn power ON to the active module. If the "Require Reason for Power ON Actions" settings (see Module System Configuration) is checked, a window pops up requiring up to two 50 character lines describing why power is being turned ON.
15 A Power OFF button v~~ill turn power OFF to the active module. If the "Require Reason for Power OFF Actions" settings (see Module System Configuration) is checked, a window pops up requiring up to two 50 character lines describing why power is being turned OFF.
zo Also under the Settings sub-menu are:
a. Description of Device Connected to Control Module -This edit box displays the current description and permits the description to be changed.
b. Schedule Module Events - this section of the dialog box 25 permits module power actions to be automated, as follows:

c. File Name to Trigger Reboots - This unique NET-911 feature permits a Drv:\directory\file name to be specified which, when detected by NET-911 causes any devices) receiving power from the module to be rebooted. When the 5 specified file is detected by NET-911, it is deleted before the reboot action occurs to prevent continuous rebooting. This features is useful to NET-911 customers with third party monitoring systems by allowing any device (where a problem is detected by the monitoring system) to be automatically 1 o rebooted. In this case the monitoring system would merely create the specified file to cause NET-911 to reboot the device. The contents of a reboot trigger file does not matter.
NET-911 is only concerned about the existence of the file.
d. File Name to Trigger Power OFF - This unique NET-911 15 feature permits a Drv:\directorylfile name to be specified that when detected by NET-911 causes power to be turned OFF
to any devices) receiving power from this module. When the specified file is detected by NET-911, it is deleted before the power OFF action occurs to prevent infinite power OFF
Zo actions. This feature is useful to NET-911 customers with thud party monitoring systems by allowing power to be turned OFF when a problem is detected. In this case the monitoring system would merely create the specified file to cause NET-911 to turn power OFF to the device connected 25 to the module. The contents of a power OFF trigger file does not matter. NET-911 is only concerned about the existence of the file.
e. File Name to Trigger Power ON - This unique NET-9I 1 feature permits a Drv:\directorylfile name to be specified that «-hen detected by NET-911 causes power to be turned ON to any de-ice{s) receiving power from this module. When the specified file is detected by NET-91 I , it is deleted before the power ON action occurs to prevent infinite power ON
actions. The contents of a power ON trigger file does not hatter. NET-91 I is only concerned about the existence of the file.
f. Dail~~ Scheduled Reboot Times - the devices connected to a NET-9I 1 module may be rebooted on a time scheduled basis up to three times per day.
t 5 g. Dail~~ Scheduled Power OFF Times - the devices connected to a NET-91 I module may be have their power turned OFF on a time scheduled basis up to three different times each day.
h. Daily Scheduled Power ON Times - the devices 2o connected to a NET-91 I module may be have their power turned ON on a time scheduled basis up to tluee different times each day.
i. Module information - this status section of the settings Window contains additional information about the module 25 which cannot be updated. A description of each of these status items is as follows:

a. Position Current - The current physical position of the module on the module daisy chain.
b. Position Previous - The physical order (position) the module was at the last time the module daisy s chain was polled.
c. Power Status Indicates if power is ON or OFF to any devices connected to the module.
d. Serial Number This field contains the module's serial number as assigned by the factory.
1o e. Firmware Version This is the hardware/firmware version of the module and the modules operating system.
f. Module Type Indicates if the module is Single Break module or a port on a Muiti-Break module.
15 The Pass Through button 122 clears any active module and places the module daisy chain into a Pass-Through mode where any serial communications pass through to any device connected directly to the data-out port of the module at the end of the chain.
The Repoll button 123 repolls the module daisy chain and 2o refreshes the module list box.
The Active Module status box 124 at the bottom of the List of Active Modules window contains the currently active module. If no module is current active, this status box contains "No Modules Active - Pass-Through Mode."

WO OOII776b PCT/US99/21891 The Module System Configuration menu (Figure 27) option permits changing parameters applicable to all module processing as followrs:
Require Reasons for Power OFF Actions - Checking this box 5 causes users to provide a reason whenever they reboot or turn OFF power to any device connected to a NET-9I 1 module. The reason entered may contain two lines of SO
characters per line. The reason entered is saved in the KEY-VIEW Event Log. If this check box is cleared, reasons for power OFF action will not be requested.
Require Reasons for Power ON Actions - Checking this box causes users to provide a reason whenever they turn ON
power to any device connected to a NET-911 module. The reason entered may contain two lines of 50 characters per 15 line. The reason entered is saved in the K.EY-VIEW Event Log. If this check box is cleared, reasons for power ON
action will not be requested.
Reboot Delay in Seconds - This option sets the number of seconds that power will be temporarily shut OFF to the 2o device connected to an acti~-e module whenever the Reboot option is selected from the Module Processing Settings window. The factory default for this option is 20 seconds, which should give any disk drives on the device time to spin-down before power is automatically restored.
25 Module Daisy Chain COM Port - This menu option designates the COM port that NET-911 uses to access a module daisy chain. For PCs with only one module daisy chain, this setting only needs to be set once. NET-911 modules are installed on COMI to COM 4 and should not share an IRQ with any other device.
5 In those rare cases where a PC has more than one module daisy chain, it will be necessary to change the COM port whenever a different daisy chain needs to be accessed. The factory default COM port is COMI. If this setting is not set to the proper COM port, the module daisy chain will not be 1 o accessible:
In an alternative embodiment, a DOS-based program is created when the DOS version of the NET-9I 1 Control Module software is installed and may be initiated using command Iine parameters. This DOS based approach may be more convenient for 15 use by third party monitoring application instead of using the NET-91 i 32-bit Scheduled Event approach discussed above. On this alternative DOS-based basis, NET-91 I modules may be accessed by any other third party application and power cut or restored to modules automatically when necessary. The following DOS
2o commands can be executed:
? or HELP - Displays help.
NOLOGO - Omits the logo screen on startup.
NOMSGS - Eliminates messages from command Iine functions.
25 COUNT - Returns the number of attached modules.
LOGTN:n - Logs into module number 'n'.

LOGOUT - Logs out of all modules.
POWER:v - If'v° is 'O'~ turn off power from current module. If'v' any other value, tum power on.
REBOOT - Reboots the active module 5 Most third party monitoring systems and timer based software applications permit programs) to be executed on the occurrence of an event. When an event occurs, the DOS program can be invoked using one of more of the above parameters to automatically select a module, then cut power, restore power or 1 o reboot a device connected to the module.
When using the command line option, it is important to confirm {by logging into the desired module) that the intended module number is active before taking actions to cut or restore power or reboot the device. Otherwise, power could be I5 inadvertently cut or restored to the wrong device. As an example, the command line format "N9MODDOS login:2 power:0 logout"
will cut power to module position number 2 and restore the daisy chain to a pass-through mode.
When modules are first installed on the daisy-chain, it is 2o important to test that the module functions properly by accessing the module, toggling power to the device connected to the module, and testing that whatever is connected to the module's SERIAL port can be successfully accessed serially.
A NET-911 module can handle any 110 volt devices with a 25 total power consumption up to 10 amps. Some laser printers require as much as 10 amps of power periodically. Normally, most WO 00!17766 PCT/US99I21891 PC configuration require less than 5 amps of power. A module may be disconnected from the daisy-chain at any time without affecting the power status of other modules on the chain. If a module removed from a daisy-chain is not the last module on the chain, any 5 re-connect any remaining modules should be reconnected to the daisy-chain. If a module is removed or added to the chain, the sequence number assignments of some or all of the modules may change and should be re-verified by the Module Management Software described later to insure that each module is correctly 1o described in relation to its {i.e. sequence) on the daisy-chain.
In cases where (1) a large number of modules are daisy-chained together, (2) there are Long RJ-45 cable runs between modules, or (3) there is excessive electronic emissions from other devices, it may be necessary to reduce the serial baud rate for a 15 device or devices connected to the daisy-chain. Also, at high baud rates, serial transmission errors may occur unless, highly shielded serial cable is used.
Also, when pcAnywhere is running in Host mode, pcAnywhere should be assigned the necessary priority as a 2o background task to communicate with the remote client PC.
In rare cases, any device accessed in a serial "Pass-Tlu-ough"
mode at the end of the daisy-chain may temporarily interfere with the Module Management Software's ability to detect the modules present on the daisy-chain. This occurs because the device at the 25 end of the chain may also be polling while it is waiting for a connection. In this case, additional modules may appear on the chain, if this should occur, the daisy-chain can be re-polled to remedy the issue.
There are three status lights on the front of each module 80.
The purpose of each of these lights is as follows:
Power In When lit indicates the NET-9I 1 Control Module is receiving AC power through the module's power cord.
Power Out When lit indicates the module is passing AC
power to the POWER-OUT receptacle on the back of the module.
Module Active When lit indicates the module is has been selected as the active module using the NET-911 Module Management Software.
The NET-911 Module ACTION button is located next to the "Power Out" indicator light on the front of the unit. A pen or pencil point maybe used to press this ACTION button to manually cause AC power to the device connected to the module to switch from ON to OFF or vice-versa.
If KEY-VIEW security is enabled, a user must have 2o supervisor access rights to access the NET-91 1 Module Configuration settings.
SECURITY
The "security" selection of Figure 13 will now be described.
pcAnywhere has extensive securit5l features designed into the product, including encryption, user passwords, support for special DES security modems, event logging, blanking the screen at a Host site, call back support and an option to require someone at the Host site to specifically permit a remote access session to begin. For users demanding even higher levels of remote access security, there are numerous third party supplied hardware based user authentication and encryption devices that are compatible with both pcAnywhere and KEY-VIEW II. Most of theses devices comply with the Federal Government's Data Encryption Standard (DES) for 1 o high security situations.
In addition to these extensive remote access security available with the peAnywhere application, additional security measures have been built into the KEY-VIEW II system. These additional KEY-VIEW security features can create a second, independent manufacturers fire wall preventing a situation where a manufacturer's employee knowledgeable about the about manufacturer's security procedures could break into a customer's system. A brief description of each of these additional security features are as follows:
Users - permits defining users, Login ID's and encrypted passwords, user supervisory authority, and access rights to KEY-VIEW PCI cards or NET-911 Control Modules.
System - permits specifying {1) the number of login attempts allowed by a remote user, (2) an optional expiration period 25 for passwords, (3) the minimum characters required for a password, (4) how often the KEY-VIEW PC should beep when a remote user is accessing the KEY-VIEW PC, and (5) an event timer that permits either automatically logging out users or automatically switching from a Menu Mode to a Host Mode if no activity is detected for a user specified number of minutes.
Caller ID - permits requiring remote users to have a caller ID
and further optionally restricting remote user access to only designated caller ID nmnbers. the KEY-VIEW PC's Access Control card captures each caller's ID. As a result the KEY-lo VIEW PC may be configured to lock out users who are not calling from designated numbers and/or who have intentionally blocked their caller D.
Pager Alerts Permits issuing alerts to one or more pagers whenever a user fails to successfully Login to KEY-VIEW
~ 5 within the allowed number of password guesses.
System Backup Permits saving any KEY-VIEW
configuration changes made or restoring conf guration files from backup files automatically created weekly by KEY-VIEW.
20 Event Log - permits viewing the KEY-VIEW event log which tracks a remote users use of the KEY-VIEW system and access to KEY-VIEW cards as a supplement to the pcAnywhere event log. This date/time stamp log shows the user's login information, if applicable; caller ID information;
25 when the KEY-VIEW application processing was initiated or terminated; any switching that occurred between PCI cards;

and a log of any changes made to the User Security, System Security, or Caller ID security settings.
Change Password - permits a user who has successfully logged in to change their password.
5 Logout - permits a user to Logout of the KEY-VIEW
application.
In addition to the above optional security features, the KEY-VIEW PC issues audible beeps or .wa~~ file sounds to notify Host site personnel when a remote user is accessing the KEY-VIEW PC.
1 o Furthermore, the turbo light on the KEY-VIEW PC starts flashing as a vsuai alert that the KEY-VIEW PC is being remotely accessed. The audible alert sounds can be amplified to desired volume levels by installing an optional sound card in the KEY-VIEW PC. This approach insures on-site personnel can clearly hear 15 that someone is remotely accessing the KEY-VIEW PC.
When user security is enabled; any on-site user currently logged into the KEY-VIEW system will be automatically logged out should another user access the KEY-VIEW PC remotely. This feature prevents a situation where a on-site user forgets to logout 20 giving a remote users the opportunit5~ to assume the on-site user's identity. Conversely, should a remote user fail to logout of the KEY-VIEW system before terminating a remote access session, KEY-VIEW will automatically Iogout the remote user upon termination of any remote access session. Again, this approach 25 precludes someone else from assuming the Login ID of a remote user who has terminated access. Finally, after a user logs out of KEY-VIEW processing always returns to the KEY-VIEW menu mode to preclude a new user from accessing or viewing a Host PC
to which they may not be authorized.
The KEY-VIEW users security supports defining two classes 5 of users namely supervisory and regular (non-supervisory users).
Supervisory users have full access to all Host PCs and KEY-VIEW
security and configuration settings. Regular users cazmot change any KEY-VIEW security or system settings (i.e. the main menu options are grayed-out). In addition regular users may be restricted 10 as to which KEY-VIEW PCI cards or NET-911 Control Modules that they may not access.
User Security 15 KEY-VIEW Security also permits defining KEY-VIEW
users, passwords, supervisory authority, and access rights to KEY-VIEW PCI cards. In order to access this menu item either (1) security must be disabled or (2) the user currently logged into KEY-VIEW must have "Supervisory" rights:
20 The ENABLE SECURITY check box determines whether KEY-VIEW security is enabled (box checked) or disabled (box cleared).
If security is disabled, anyone rnay access the KEY-VIEW
application without logging into the system. In this case any user 25 lists that have been previously authorized will simply be ignored and the list box containing the list of any users who may have been previously setup will be grayed-out. If security is disabled no logging of events occurs. In addition, the Event Log, Change Password and Logout Security menu items will be grayed-out.
When security is enabled, anyone attempting to access the 5 KEY-VIEW application either remotely or on-site must first Login using a valid user ID and password. Before KEY-VIEW will permit security to be enabled, at least one user must be defined with supervisor access rights.
The Add User button permits a new user to be defined: The 1o Change User button is similar and permits a previously identified user profile to be edited. When selected, a dialog box appears requesting the following information for the new or changed user:
User Name - defines a user name up to 25 characters long.
Password - A password may be up to 15 characters long. All 15 passwords are internally encrypted by KEY-VIEW.
Confirm Password - All passwords entered must be reentered to confirm the desired password.
Supervisor Rights - When this box is checked, the user has "supervisor rights" meaning the user has full access to all 20 KEY-VIEW systems settings including the ability to enable/disable security, add or delete other users, or change user's passwords. If this box is not checked, the user's will be classified as a "Normal" user. A Normal user's access rights may be restricted to only designated KEY-VIEW PCI
25 cards and NET-911 control modules. Normal users cannot change systems setting, add users, disable security, etc.

Force Password Change - When this options is checked it forces the user to change their password the next time they login.
User Locked Out - If this box is checked, the user will be prevented from logging into the KEY-VIEW system. This box is checked automatically by the KEY-VIEW system whenever the user exceeds a user specified number of Login attempts without entering a valid password.
Non-Supervisor KEY-VIEW PCI Card Access Rights -1 o Designates up to 8 PCI cards may be installed in a KEY-VIEW PC that normal (i.e. Non-Supervisor) users may have access. Users who have their Supervisor Rights box checked automatically have rights to all PCI cards.
Non-Supervisor NET-911 Module Access Rights - Up to 250 NET-911 Control Modules may be connected to the serial port of a KEY-VIEW PC to control AC power and serial access to devices connected to the modules. Normal (i.e.
Non-Supervisor) users, may be prevented from accessing designated module numbers (i.e. positions on the module 2o daisy chain). Users who have their Supervisor Rights box checked automatically have rights to all NET-911 Control modules connected to the PC.
Before restricting user access to designated modules, the daisy chain must have been previously accessed so that 25 KEY-VIEW can identify the COM port to which the module daisy chain is connected. This is necessary because, in rare cases, it is possible that a customer may have more than 1 NET-911 module daisy chain connected to different serial ports of the KEY-VIEW PC. If user access will be restricted in such cases, it will be necessary to access the daisy chain (i.e COM port) where module access is to be restricted immediately prior to entering any user module access restrictions for that daisy chain. In other words, KEY-VIEW
automatically associates any newly specified user module access restrictions with the last COM port where modules 1 o were successfully accessed.
The User Delete button causes the highlighted user to be deleted. An "Are You Sure?" message will pop up to confirm that the user should be deleted.
A System Security Settings dialog box permits specifying the number of unsuccessful log in attempts allowed by a remote user, criteria for the expiration of passwords, criteria for automatically logging out users, the minimum size for passwords and caller ID
requirements. These features are defined and may be configured as follows 2o Enable Limit on LOGIN Attempts - This feature limits the number of successive attempts a given user has to enter a valid password.
Enable Password Expiration - This feature forces users to periodically change their passwords.
25 Remote Session Beep Interval - This feature alerts users at a Host site whenever someone is remotely accessing the KEY-WO 00/17766 PCTlUS99/21891 VIEW PC by causing the KEY-VIEW PC to beep at periodic intervals.
Enable Minimum Password Length - This feature sets the minimum number of characters required for a user password.
5 Enable Inactivity Timer This setting is used to initiate one of two possible actions in the event "user activity" is not detected for a user specified number of seconds. User activity occurs whenever (1) a menu option is selected or an OKICANCEL button is clicked while in a Menu Mode, or (2) 1o any keyboard input occurs while in a Host Mode When this check box is checked, the specified action will be taken after no activity for the period specified in NUMBER OF
MINUTES entry. The NUMBER OF MINUTES setting may be any value between 1 and 99 minutes. The possible actions 15 that may occur in the event no activity is detected for the specified number of minutes depends on which Timer Option button is marked as follows:
Automatic Logout - This option handles cases where users forget to log out when they are done, leaving the 20 system open for possible security breaches by unauthorized persons. When this button option is enabled, KEY-VIEW automatically logs out any user after the NUMBER OF MINUTES specified, whenever there is no activity for this period of time.
25 Immediately prior to logging out a user in this manner, a message box will be displayed giving 20 seconds to abort the Iog out process. If this automatic logout feature is enabled; but User Security has not been activated, the setting will be ignored, since users are not required to LOGIN.
5 Automatic Switch to Host Mode - This option only applies «~hen the KEY-VIEW PC is in a Menu mode.
It is designed for customers who want the KEY-VIEW
PC to automatica115~ default to a Host Mode so that users do not have to bother switching from a Menu t o Mode to the Host Mode whenever they initially access the KEY-VIEW PC {because a previous user left the KEY-VIEW PC in a Menu Mode). When this radio button option is selected, KEY-VIEW will automatically switch to a Host Mode, whenever there 1 s is no activiy for the NUMBER OF MINUTES
specified. If no Host PC is active at the time this automatic switch occurs, an appropriate error message is displayed and no switch to a Host Mode occurs.
Immediately prior to switching to a Host Mode in this 20 manner, a message box will be displayed giving 20 seconds to abort the switching process.
If the Enable Inactivity Timer box is not checked, the timer will be disabled and no automatic logout or switching to a Host Mode processing will occur.

WO 00/1776b PCTIUS99/21891 Site ID
The Site ID menu option permits assigning the KEY-VIEW
PC an up to 8 character Site name.
5 The purpose of the site TD is to permit each of the event logs stored within each remote KEY-VIEW PC to be consolidated into a central company wide event log file.
Each time a KEY-VIEW PC (site) is accessed remotely, the Event Log stored in the PC can be automatically transferred to the 1 o remote site by setting the "Auto File Transfer" file option of pcAnywhere to transfer the file immediately after logging into the site. When this transfer is initiated. pcAnywhere automatically transfers (using it's file synchronization feature) only the records that have been added to the KEY-VIEW PC since the last file 15 transfer to tl~e remote site.
Caller ID
Most telephone companies now offer an optional "Caller ID"
feature permitting capturing a caller's phone number whenever a call is received.
20 The KEY-VIEW PC's Access Control card can capture each caller's ID. As a result the KEY-VIEW PC may be configured to lock out remote users attempting to connect to the KEY-VIEW PC
(via modem) who are not calling from a pre-authorized phone number or who have intentionally blocked their phone number (i.e.
z5 their caller ID). if this caller ID service is installed, KEY-VIEW
automatically captures the caller ID received from any incoming call and logs the caller ID information in the KEY-VIEW Event Log, even if none of the additional securiy features discussed in this topic are activated.
New caller ID phone locations can be added by specifying 5 the phone number for the location to be authorized. The following fields are required:
Location of Phone Number - Describe the location where the phone number specified is physically located: This description must be 40 character or less.
1 o Phone Number - Enter the phone number that is authorized to remotely access this KEY-VIEW PC via modem. This phone number must include an area code and be formatted exactly as reported in the KEY- VIEW log.
15 Pager Alerts When KEY-VIEW User Security is enabled and a user fails to successfully Login to KEY-VIEW within the allowed number of password guesses, KEY-VIEW may be configured to issue pager alerts to one or more pagers announcing that a potential intruder has 2o been detected.
Prior to implementing this feature, a modem must be connected through a NET-911 Module to the KEY-VIEW Access Control Card as more fully discussed with respect to the Access Control Card 90 of Figure 12. The modem connected 81 may be 25 used to dial the pager alert phone calls and to enter a password to remotely reboot the KEY-VIEW PC.

WO 00/17766 PCTIf1S99/21891 The Pager Alert Settings include:
a. When enabled, the Pager Alert issues a page in the event (1) a caller TD violation occurs (see Caller ID topic) or (2) KEY-VIEW security is enabled and a user fails to login to KEY-VIEW within the allowed number of attempts and is put in a Lock-Out status (see System Security Settings topic). In the later case, pager alerts are not re-issued in the event a user who is "locked-out" of KEY-VIEW
attempts to login again after being locked out.
b. All persons or locations to be paged in the event an autharized user is detected are included in a list. When an unauthorized intruder is detected, all persons on this list will be paged.
c. New persons to be paged can be added by entering a description of the person or location where the pager number specified is physically located and the Pager Phone Number and Alert Code. The pager alert code specified should first clearly identify to the NET-911 administrator receiving the page that it is a KEY-VIEW
2o alert. A code prefix of 911 can be used for this purpose.
This code can be followed by a Site ID number to uniquely identify the KEY-VIEW PC that is issuing the alert. In cases where a KEY-VIEW PC has an internal modem, the code can end with the phone number used to access this modem.

d. Changes can be made to the page alert list by editing the information described above in section c.
When a KEY-VIEW administrator receives a pager alert, he or she should access the KEY-VIEW PC that issued the page 5 (either remotely or on site} and review the end of that site's event log to determine why the page was issued.
Each pager alert takes about 70 seconds to complete. No actiy~ occurs on the KEY-VIEW PC until all specified pager alerts are delivered. So, the number of pager alerts should be kept to a 1 o minimum, to prevent the possibility that an administrator can access the Iog while pages are being issued. A pager alert will not be deli~~ered if the number being called is busy.
15 System Backup This menu option permits (1) encnpting and saving the current status of any KEY-VIEW configuration changes made or (2) restoring the KEY-VIEW configuration from backup in the event KEY-VIEW files become corrupted.
20 KEY-VIEW configuration changes can be optionally stored to permanent disk storage.
The system backup routine maintains a list of configuration backup files saved by KEY-VIEW. Each time a KEY-VIEW menu option is selected, KEY-VIEW checks the current date against the 25 date that the system configuration was last backed up and automatically backs up the conf guration if more than 7 days have elapsed. Up to one year of configuration files are maintained by KEY-VIEW in this manner.
Upon user initiation, the current status of the KEY-VIEW
configuration is encrypted and saved to disk. Thereafter, a selected s backup f Ie can be restored as the current KEY-VIEW
configuration.
Event Log Io The Event Log option on the KEY-VIEW Security menu is a unique feature that keeps a record of all Keyview II activity and permits viewing the KEY-VIEW activity at a later date. This log contains datel time stamped entries tracking all aspects of user access to KEY-VIEW Host PC's as well as changes made by users 15 to the KEY-VIEW system configuration.
More specifically, the KEY-VIEW Event Log shows the user's login activity, if applicable; caller ID information; when the KEY-VIEW application processing was initiated or terminated; any switching that occurred between PCI cards; and a log of any 2o changes made to the User Security, System Security, or Caller ID
security settings or other system configuration settings.
The Event column contains a brief 1 line description of each event that occurred. Some of these lines may be indented. Indented lines mean the event relates to a preceding event line. For example 2$ if a user connected a switch box to a KEY-VIEW PCI card that was previously connected to a PC, the user would change the PCI card's setting from "Switch Box" to "PC". This event would then cause other events to occur namely the deletion of any video drivers and mouse drivers associated with the PC that was formally directly connected to the PGI card. These resulting events would then 5 appear on the log indented and immediately following the event that noted the setting change from "'Switch Box" to "PC".
Mouse The Mouse menu bar option of Figure 13 permits creating 10 and listing mouse drivers, that are used to control Host PC mouse movements and symclzz-onize the Host PC's mouse position with the KEY-VIEW PC's mouse position. In cases where Host PCs does not need mouse support or the special KEY-VIEW mouse driver has been installed on the Host PC, this menu option will not apply.
15 Before discussing the process for creation of a mouse driver, it is important to understand why a mouse driver needs to be created.
During a KEY-VIEW session, the KEY-VIEW PC's PCI
card must process video output data from the active Host PC before 2o displaying the video screen on the KEY-VIEW PC. The slight delay resulting from this processing causes the Host PC's mouse pointer to appear to trail behind the KEY-VIEW PC's mouse pointer as a shadow. This delay is even longer for a remote user, because the Host screen data must be processed a second time by the 25 pcAnywhere application to transmit the screen data to a remote user.

w0 00/1776b PCTIUS99/21891 When the KEY-VIEW PC's mouse pointer is properly synchronized with the Host PC's mouse pointer (i.e both pointers converge whenever mouse movement stops), the KEY-VIEW PC's pointer represents the true position of the mouse on the Host PCs 5 screen and the shadow can be ignored. Because two pointers appear on the screen during mouse movements, it can become confusing. This problem can be avoided by either using the mouse conf guration setting on the Host PC to blank out the Host PCs or use the Windows 95 mouse pointer control panel option to change 10 appearance of the KEY-VIEW PC's mouse pointer to be different from the Host PC's mouse pointer, so users are able to tell which mouse on the screen is the KEY-VIEW PC's pointer vs. the Host PC's pointer. A mouse pointer in the shape of a FOX is provided with KEY-VIEW II.
15 The main problem in this s~mchronization process is that an application running on the Host PC could cause the mouse position to jump to a new location causing the KEY-VIEW PC's mouse to be out of sync with this new location. Other synchronization problems would result if someone changed the mouse acceleration 2o factors on the Host PC.
The main problem when the mouse positions become unsynchronized is that it is impossible to move the Host PC's mouse to all positions on the screen using the KEY-VIEW PC's mouse. For example, if the KEY-VIEW PC's mouse pointer 25 becomes unsynchronized to the left of the Host PC's mouse pointer it would be impossible to move the Host PC's mouse to the left WO 00117766 PCT/US99/21$91 1~~
edge of the screen because mouse movement data on the KEY-VIEW' PC would no longer occur (i.e., detected by the application running on the Host PC) when the KEY-VIEW PC's mouse reached the left edge of the screen.
5 In order to keep the KEY-VIEW PCs mouse pointer synchronized with the Host PCs mouse pointer several approaches are possible.
Under a first approach, a special mouse driver provided with KEY-VIEW II would be installed on the Host PC in place of the ~ o Host PCs mouse driver. This approach allows this mouse driver to communicate «lith the KEY-VIEW PC application to insure all mouse movements are always synchronized.
Under a second mouse synchronization approach, a special KEY-VIEW mouse driver must be created on the KEY-VIEW PC
~ 5 when the Host PC is defined for access by the KEY-VIEW. The creation of this mouse driver is a simple task. When this approach is used, any special mouse options set on the Host PC to (1) change the mouse sensitivity or acceleration factors, (2) change the click speed or (3) permit automatic jumping to a specific location (e.g. a 2o highlighted button of a new dialog box) must be disabled. Any such feature that are active on the Host PC will cause the Host PC's mouse to become out of s~mc with the KEY-VIEW PC's mouse, making mouse control of the Host PC difficult or impossible.
Another approach uses a specially colored and/or drawn 25 mouse pointer, that could be trapped by looking for the pointer on the video screen data captured from the Host PC.

WO 00!17766 PCT/US99/21891 Under still another approach, a special software in the KEY-VIE~~4' PC, specifically looks for a situation where the mouse reaches any edge of the screen. When this occurs, the software continues to transmit mouse movements (mickeys) in that direction 5 to the Host PC until the mouse on the KEY-VIEW PC was moved off of the edge of the screen. This embodiment solves the problem n-here the mouse position on the KEY-VIEW PC becomes unsvnchronized with the mouse position on the Host PC so that the mouse cannot be moved to the end of the screen as previously 1o discussed in an example above. A variation of this embodiment captures raw mouse movement data directly from the mouse itself.
Synchronizing the KEY-VIEW PC's mouse with the Host PC's mouse thus presents numerous technical obstacles. Several synchronization designs were evaluated and determined to be less 15 preferable, though not necessarily excluded from the present invention. For the sake of completeness, these alternatives are also discussed below.
The preferred approach identified for mouse synchronization appears to be writing a mouse driver to be installed on the Host PC
20 that captures the mouse's current position on the Host PC screen and feeds this position back to the KEY-VIEW PC through either a serial or PS-2 mouse interface cable, depending on what type of mouse interface had been used for the Host PC. The mouse driver written is designed to replace any mouse driver currently installed 25 on the Host PC.

Unlike existing mouse drivers, the KEY-VIEW mouse driver is designed for two way communications between the Host and KEY-VIEW PCs. Instead of sending mickeys through the mouse interface cable to the Host PC, exact X/Y co-ordinates are sent to 5 the Host PC from the KEY-VIEW PC that cause the Host PC's mouse to jump the specified coordinate, as if the mouse had been told to jump to that co-ordinate by an application on the Host PC.
When a Host or Remote site user clicks their mouse button, the exact X/Y co-ordinate and button that was clicked is transmitted to 1 o the Host PC in a single data packet. In a case were no click occurred when an XlY co-ordinate was transmitted, the button clicked segment of the packet is set as a null value, so that aII
packet formats sent are consistent. Any packet sent to the Host PC
by the KEY-VIEW PC must be acknowledged via a typical serial 15 ACKINAK protocol. Packets not acknowledged by the Host PC
that do not include mouse click information may be dropped by the KEY-VIEW PC in favor transmitting any more recent X/Y co-ordinates packets in the KEY-VIEW PC's buffer.
Having a means to permit the KEY-VIEW PC to cause a 2o Host PC's mouse to jump has one major side benefit. Each time a house pointer is moved across a Host PC's screen, it causes more screen differences to occur, which means more 32k screens are sent to the KEY-VIEW APP merely to track the mouse. By having the KEY-VIEW PC intentionally ignore a selected number of mouse 25 co-ordinate changes that do not involve mouse clicks, the Host PC
mouse is moved Iess frequently and in greater jumps. As a result, w0 00117766 PCT/US99/21891 the number of screen differences that will occur is reduced. This significantly increases the speed at u-hich a remote user sees the Host PC's mouse synced with the KEY-VIEW PC's mouse.
The KEY-VIEW mouse driver is designed to service alI
s required functions of a typical mouse; but ignores most typical requests by Host PC applications to change mouse functionality.
For example, requests to (1) change the mouse sensitivity or acceleration factors, (2) change the click speed or (3) implement a feature to permit automatic jumping to a specific location (e.g. a 1o highlighted button of a new dialogue box) are acknowledged like a normal mouse driver, but ignored and hence have no impact on mouse movements. In any case where one of these mouse features is ignored by KEY-VIEW, if possible, the application (e.g.
Windows) that requested the change is notified that the option is not 1 s supported by the KEY-VIEW driver. Tllis permits the application to notify the user that the feature is not supported.
In the design of the KEY-VIEW mouse driver, special routines support the essential functional requirements of a mouse in cases where a Hast application cannot be told the function is not 2o available. For example, as a result of a KEY-VIEW PC's mouse movementlclick packet, the application on the Host PC may have the right to call the -mouse driver and cause the mouse to jump to another location on the screen. If the application cannot be told at the time of the request that the jump function is not supported, the 2s mouse driver must accept the jump. In this case, the jump movement is ignored and discarded by the mouse driver and the WO 00/17766 PCT/US99i21891 pointer left at it's current location. Ignoring this application generated jump should have no impact on the application code because the application thinks the user moved the pointer back to it's original location when it next queried the current position of the pointer. Permitting the jump to occur will have a major impact on the KEY-VIEW design, because provision must be then be made to transmit a X/Y packet back to the KEY-VIEW PC and then the KEY-VIEW PC must have a means to force its mouse pointer to the jump location. Adding this level of complexity to the design is not 1 o warranted.
It is believed that one of the older required support functions of a mouse driver is to pass raw mickeys, if requested, directly to a Host PC application, so that the application can present and control it's own mouse movements. Applications that control their own 15 mouse are rare and most modem applications rely on the mouse driver to move the mouse, keep track of it's position and report the position back to the application. The preferred embodiment does not tap into applications requesting mickeys to determine how many mickeys per pixel are being used to move the mouse, when the 2o application has caused the mouse to jump to a different location, etc., but instead presumes that all modern applications rely on the mouse drivers. As mentioned, it is believed that only older applications rely on mickey input for mouse control. Accordingly, the preferred embodiment does not provide mouse support for such 25 applications.

w0 00/17766 PCT/US99/2i891 To stop mouse support in such cases and avoid unpredictable mouse movements, the KEY-VIEW Host PC mouse driver simply does not update lriickey movements whenever XIY co-ordinate chances are received from the KEY-VIEW PC. This approach 5 could create a problem where a Host PC application starts with a mouse pointer in the middle of a screen and the user has no way to mo~~ a the mouse pointer out of the way-. To resolve this problem, a special packet could be sent to the KEY-VIEW mouse driver with a x/y co-ordinate of 9999/9999, that would tell the driver that the 1o Host PC has just been accessed by KEY-VIEW and to send an excessive number of mickeys to the current application to force any mouse pointer relying on mickeys to move to the bottom, right corner of the screen, which is the normal place most typical slanted mouse arrow pointer would disappear from the screen. This packet 15 would also cause the mouse pointer to be positioned in a consistent place in the middle of the screen for those normal applications that rel~~ on XIY co-ordinates.
If the Host PC's KEY-VIEW mouse driver is capable of detecting applications that rely on mickey input for movement, 20 which is probably unlikely, then the driver returns a special packet back to the KEY-VIEW PC that alerts the user that mouse mo~~ements are not supported for the current application.
Developing special KEY-VIEW mouse drivers for installarion on Host PCs is the recommended approach. This 25 assures that the Host PC's mouse movements will occur on a real time basis and the KEY-VIEW PC's mouse pointer will reflect WO 00/17766 PCT/US99121$91 actual position of the mouse on the Host PC's screen. A minor problem will occur when a Host PC is accessed by a Remote PC
because, due to screen refresh delays, tl~e Host PC's mouse's image will lag behind the KEY-VIEW PC's mouse's current position. In s such cases the user will be instructed to simply ignore the Host PC's mouse image, which will have a different pointer appearance, because the unique KEYVIEW mouse pointer will be installed on the KEY-VIEW PC. In any event, dual mouse pointers cannot be simply solved by blanking out the Host PC's mouse pointer because 1 o the Host PC's mouse pointer will need to be visible to a user at the Host site viewing the Host PC's screen from the video output port of the KEY-VIEW PCI card. Alternatively, the Host PC mouse can be cloaked and then restored as necessary under program control.
a. Less preferred Mouse Synchronization Options 15 Under the new KEY-VIEW system all mouse input to Host PC's connected to the KEY-VIEW PC wrill be controlled by the KEY-VIEW PC's mouse interface. Four major design approaches that could be taken to control the Host PC's mouse are discussed next and are not preferred for various reasons. The recommended 2o approach, which involves the creation of a custom KEY-VIEW
mouse driver for installation on each Host PC in place of any existing mouse driver, is described above.
Approach #1:
Under the first design approach, the KEY-VIEW PC's mouse 25 pointer could be setup to use a blank (null) pointer which would cloak the pointer whenever the KEY-VIEW PC was in a Host mode. The KEY-VIEW PC's pointer would be restored when switching back to a Menu mode. In order for this approach to work, any mouse movements from either the KEY-VIEW or remote 5 PC's mouse would have to be transmitted to the Host PC even when the true pointer's position was at the corner of the host or remote PC's screen. This is a good approach, but is not presently feasible.
pcAnywhere stops transmitting mouse movement data to the Host site whenever the mouse reaches or passes the boundary of the 1o KEY-VIEW PC's window on the remote PC. On this basis, if the Host PC's mouse is at the bottom of the screen and the KEY-VIEW
PC's mouse is at the top of the screen boundary when the KEY-VIEW PC is first accessed; there will be no way to move the Host PC's mouse pointer up from a remote PC. In this case, a trick to 1 s grab the Host PC's pointer by using a "hot key" to temporarily suspend the transmission of mouse movement data would require a visible pointer on the Host PC and would only work temporarily due to differences in mouse sensitivity and acceleration as discussed below. These problems would force the need for a driver file and 20 eliminate the simplicity of this design approach. Also, there is a secondary technical issue of being able to change the mouse pointer on the fly from within the KEY-VIEW AFP to a new mouse pointer when switching between host and Menu modes.
Approach #2:
25 One reliable way to insure that the KEY~VIEW and Host PC's pointers will eventually synchronize is to install a unique mouse pointer on a Host PC. This technique is herein referred to as the "unique pointer" approach. Using a unique pointer, the KEY-VIEW or PCI APP could always detect the exact current location of this unique pointer on the Host PC via scanning the Host screen differencing file.
Under the unique pointer approach, the KEY-VIEW APP
must be able to determine the exact position of the mouse pointer's hot spot by analyzing the Host PC's screen display data. To avoid a potential processing burden on the KEY-VIEW PC's CPU, it may 1 o be necessary to initially incorporate pointer detection in the PCI
card's analog to digital video hardware requirements. Ultimately, this process would likely be removed from the PCI card and included in the KEY-VIEW APP if it does not adversely affect throughput.
15 The unique pointer concept requires that the Host PC's mouse pointer's shape, colors) and location of the hot spot (which is a single pixel) be pre-defined.
When a mouse pointer moves, the PC's mouse driver insures the hot-spot remains within the screen area. Under Windows, the 20 hot spot is at the tip of the standard arrow pointer, so when the arrow is positioned at the lowest, right most section of the screen, the pointer appears to disappear. But, in fact the hot spot's pixel is positioned at the very edge of the screen.
To permit the PCI card to detect the location of the pointer, 25 we will need to design a painter with a unique set of color combinations that will be unlikely to occur on any Host PC's screen.

Because the KEY-VIEW PC can only capture a portion of a Host PC's screen as it is being displayed, a problem occurs when attempting to detect the location of a pointer that is "sitting" ~i.e.
stopped) over the edges of one or more blocks. Because these blocks will likely be built from left to right and from top to bottom, the most straight-fon~ and way to detect the location of the cursor would be based on a unique horizontal pattern of color pixels, so that the video capture engine does not have to look up and down (just left to fight). Using only horizontal pattern identification means that the cursor could never be fragmented into more than two blocks. Furthermore, if the horizontal line was composed of an even number of pixels on both sides of the hot spot, the majority of the pointer's x-axis would always be in only one block, so the pointer could never be in stopped in an undetectable position.
The color pattern selected should include only the least distortable primary colors of red, green and blue with a white pixel hot spot. The following pattern is suggested - B R C B R G W C R
B G R B. On this basis if either the horizontal pixel pattern B R C
B R C W or W G R B G R B was detected while building a block the Hot spot would be the location of the W pixel. Thus, with two simple pattern "mask" tests, it will be possible to find the pointer's hot spot in all cases, even if the pointer is stopped between adjoining blocks. If the pattern test is too long to be captured efficiently, it could be reduced to just B R G W or W G R B.
As mentioned, one problem with the unique pointer approach is that any application running on the Host PC must be able to support this custom mouse pointer. This is no problem for Windows NT or 95 based Host PCs, but is not a universal solution for other Host PC's. In addition; totally relying on a custom pointer feedback from the Host PC could slow down mouse movements 5 waiting on video data to be decoded and scanned before the mouse position could be determined. This delay in the mouse's responsiveness would be frustrating for a remote user. Finally, the process of detecting where the mouse was positioned may be processing intensive which may either signif candy increase the cost to the PCI card's hardware or slow down KEY-VIEW APP processing on the KEY-VIEW PC depending on where the pointer detection function was performed.
Approach #3:
Under the third design approach, the Host PC's mouse would 15 be kept synchronized with the KEY-VIEW PC's mouse position by properly controlling mouse data input to the Host PC via the KEY-VIEW PC's PCI card. SSmchronization would be accomplished by training the KEY-VIEW PC to understand the exact effect that mouse movements would have on the Host PC.
2o Mouse driver software supplied with the mouse can be used to change the sensitivity of the mouse connected to the PC. When the mouse sensitivity is low, it will take greater physical movement by the mouse to move the pointer on the screen. A mouse's movement causes a fix number of "clicks" to occur for a given 25 distance. When the sensitivity is lowered, the mouse driver reading the mouse clicks requires more clicks to move the mouse on the screen a given distance. Data to move a mouse on a screen is often referred to as "mickeys"
As merely a point of information, the mouse's pointer position of the Host PC could be automatically synced to the mouse's pointer S position of KEY-VIEW PC simply by sending excessive mouse movement commands to the Host screen to force tl~e mouse to move to position 0,0 regardless of where it is currently positioned (e.g. stuff I0?4 movements up by 76$ movements Left into the Host PC's mouse interface cable}. Then, mouse movements could be 1o transmitted and tracked to move the mouse from it's known position 0,0 to it's current location on the KEY-VIEW PC.
If the mouse sensitivity of a Host PC is set differently than the mouse sensiti~.~ity of the KEY-VIEW PC, as controlled by pcAnywhere, when a remote user moves their real-time {remote) 15 mouse, the Host PC's mouse (as shown on the captured Host screen) will not stay in sync. Because it is highly unlikely that the sensitivity of a remote PC's mouse will be set the same as a Host PC's mouse, it «~ill not be possible to have real-time synchronization between the Host and KEY-VTEW PC's because the difference 2o must be calculated and tracked.
In addition to mouse sensitivity, many mouse drivers also support an acceleration factor, whereby the longer a mouse is moved without stopping the faster the mouse accelerates. In other words, when a mouse is constantly being moved, the first mouse 25 movements will be at less mickey's per click that the last mouse movements. Mouse acceleration settings are not of concern on either the remote or KEY-VIEW PCs because the KV-APP only needs to know where the mouse is positioned (i.e. ~.'y coardinates) at any point in time on the KEY-VIEW PC. The KV-APP is not concerned how fast the KEY-VIEW PC's mouse got to it's current 5 position. But, yhen the Host PC is set to use an acceleration factor, a problem is created. In this event the number of mickeys needed to move the Host PC across a vector could vary depending on the length of the vector. So, the Host PC's mouse could become constantly out of sync with the KEY-VIEW PC's mouse.
1 o Moreover, creating a mouse driver with a synchronization factor based on different acceleration equations used b~~ mouse driver authors could be a di~cult task.
To resolve the mouse acceleration problem, one could (1 ) require all users to disable any mouse acceleration feature on Host 15 PC's or (?) add a mouse speed factor to the Menu made that permits the user to slow down mouse movement data transmitted to a Host PC below the minimum level for acceleration. Option 1 is preferable because it assures the Host and KEY-VIEW PC's mice will always be accurately synced in the shortest.period of time using 20 the minimum amount of processing. Option 2, may cause major delays in moving the Host PC's mouse to align with the KEY-VIEW
PC's mouse and could involve tedious user controlled trial-and-error mouse speed adjustment settings.
To predict the effect of mouse movements on the Host PC
25 without alerting the Hast PC's mouse settings would involve training the KEY-VIEW PC to know the precise number of mickeys needed WO 00/1'766 PCT/US99/21891 to move a Host PC's mouse pointer one pixel along either the x or y axis. The number of mickeys required to move the mouse pointer for a given Host PC would be stored as that Host PC's mouse driver file in the KEY-VIEW PC. Because the effect of any Host PG
5 mouse acceleration routine may be difficult to capture, this approach would likely require disabling any mouse acceleration on Host PC. This approach has the major benefit of avoiding any delays on waiting for the video feedback required in the unique pointer approach, because the driver has the necessary information 1 o to predict where the Host PC mouse is positioned. However, if mouse clicks are dropped in transmission to the Host PC, the user forgets to disable the acceleration feature, or a custom Host PC
application includes an acceleration feature that cannot be disabled, the Host and KEY-VIEW PC mouse pointer may become 15 permanently out of sync. Moreover, some applications running on the Host PC may issue a command to the Host PC's mouse driver to tell it to jump to a given co-ordinate. If this were to occur, the KEY-VIEW PC's would become totally out of sync with the Host PC.
2o Approach #4:
in order to overcome many of the shortcoming of Approaches 2 and 3, both of these approaches could be combined and improved.
However, using both the mouse driver and a unique pointer approaches further complicates mouse synchronization. By the time 25 video feedback positioning occurs, the mouse driver MAY have been synced beyond that point with the KEY-VIEW PC's mouse.

WO 00/17766 PCTlUS99/21891 lb9 To resolve this problem, video mouse synchronization should occur only when the KEY-VIEW PC's mouse position has not changed (i.e. it has stopped moving) as determined by the unique pointer approach. Waiting for the mouse to stop moving insures the 5 captured Host PC's video screen will accurately reflect the current position of the mouse.
KEY-VIEW could also support cases where a user (using the unique pointer approach) elects not to create a mouse driver.
However, as mentioned host PC's pointer movements will likely be 1o far more jumpy that using both the unique pointer and mouse driver approaches. In cases where a unique pointer is not installed, the Host user would be required to create a mouse driver for the Host PC as described below and insure acceleration is disabled.
Otherwise, the Host PC's mouse will not stay in s}rnc with the KEY-15 VIEW PC's mouse.
Using the mouse driver approach, the KEY-VIEW APP will always know the current, exact, X/Y co-ordinate position of the KEY-VIEW PC's mouse pointer regardless of mouse sensitivity differences between the remote and KEY-VIEW PC's mouse 2o settings. When creating a mouse driver, the trick is to sync tlus known position precisely with the Host PC's mouse position. As mentioned, this becomes complicated because the Host PC could be set to any one of a numerous different sensitivity settings and the pointer could be anywhere on the screen when the Host PC is 25 initially accessed. The obj ectives would then be to ( 1 } determine the Host PC's sensitivity setting and store this setting as a driver file for that Host PC and {2) force the Host PC's mouse to a known position (e.g. position 0,0) after a Host PC is initially accessed. In rare cases a user may have different applications running on the Host PC with different sensitivity settings. In these cases KEY-5 VIEW will need to save multiple mouse drivers for a Host PC
similar to how the KEY-VIEW design now provides for saving multiple video drivers for a Host PC.
Unlike video training which requires a special screen to be displayed on a Host PC, creating a mouse driver must be done so as 1 o not to require software resident on a Host PC. This is a requirement because a Host application that could set sensitivity will not likely support running a mouse training program while the application is running.
To create a KEY-VIEW mouse driver the user will need to I5 select one of the four corners of the screen where there is no video movement (e.g. blinking cursor) within the corner selected. After a Host PC was properly setup in this manner, the Host PC would be selected as the active PC on the KEY-VIEW PC via the KEY-VIEW APP. Then, a new menu option would be selected that 20 would prompt the user to select in which of the four corners of the screen the Host PC mouse pointer was currently located. The KEY-VIEW APP would then cause excessive mickeys to be sent to the Host PC to force the mouse pointer's hot spot to the corner's edges of the-screen. Next, the KEY-VIEW APP / PCI APP would 25 test for several seconds that no video differences were reported in that corner (from the PCI video capture circuitry) within that 1 " x 1 "

WO 00/I77b6 PCTIUS99/21891 area. if differences were reported, an applicable error message would be displayed for the user and the mouse driver generation process terminated. Otherwise, mickeys would be counted and transmitted to the Host PC until the pointer moved 10 pixels (right) horizontally from its currently location and then counted again to the lift until the pointer returns to it's original position. The same procsss ~~~ould then be repeated vertically up, then down. At the end of this testing, a driver file would be created containing the exact number of mickeys per pixel required to move the Host PC's 1 o mouse right or left vs. up or down.
To verify that mouse acceleration had been disabled on the Host PC after the driver information had been gathered, the exact shape of the pointer could be determined by moving the pointer at least 20 pixels diagonally from the corner edges of the screen using the new mouse driver information. Since a cursor can be no more than I6 pixels, this approach assures the entire cursor is visible.
Next. a check sum would be computer for a 50x50 pixel area cover the entire area of the screen where the pointer is now located.
Then. mickeys would be sent by the KEY-VIEW PC using the new 2o mouse driver data to move the cursor around the entire screen at a rapid rate for several seconds at the end of which the pointer would be returned to it's exact starting location. At this point a second check sum would be calculated on the same 50x5fl area. If the two check sums did not agree, it would mean that training failed because either mickeys were lost in transmission or the mouse on the Host PC had an acceleration factor. In this event, the test could be automatically repeated using a slower rate of transmission of mickeys to the Host PC to determine that point at which a driver could be reliably be generated. Then, the user would be advised of need for a speed reduction as well as the reduction factor required.
This mouse speed factor would need to be included in the mouse driver file. The presence of a mouse acceleration factor on the Host PC or mickeys dropped in transmission could make it impossible to create a mouse driver for the Host PC. In this case an error message would be displayed requested the user to check if 1o acceleration has been disabled and suggesting the use of the unique -mouse approach.
Once the mouse driver was successfully created in this manner, a warning message would be displayed advising the user that the driver had been successfully created, but that any changes 15 made to the mouse sensitivity or acceleration settings after the driver was created would cause the Host PC's mouse to become out of Sync with KEY-VIEW PC's mouse and preclude proper remote mouse control. The message would also advise the user to re-run training for any other applications an the Host PC that may change 2o the mouse sensitivity setting, which should be a rare occurrence.
Regardless of the mouse synchronization approach used, the current location of Host PC's mouse pointer image will always lag behind the mouse pointer current position on the KEY-VIEW PC or remote PC. This occurs because of the delay required to display a 2s Host PC's screen on the -KEY-VIEW PC. As a result of this lag, a KEY-VIEW user will see two mouse pointers on the screen when WO 00/177b6 PCT/US99/21891 the mouse is being moved, To eliminate this problem, it would not be feasible to blank out the Host PC's mouse pointer using a null mouse pointer; because a user at the Host site using a monitor plugged directly into the Host PC's video output port on the KEY-S VIEW PC's PCI card will need to see where the mouse is positioned. Similarly, the mouse pointer on the KEY-VIEW PC
could not be blanked out unless a normal pointer could be automatically restored via software whenever the KEY-VIEW PC
was not in a Host mode, which may be possible and solve the 1 o problem. However, in this case a user would have no visible means of knowing if the host and KEY-VIEW PC pointers are out of sync.
When the unique KEY-VIEW pointer is installed on the Host PC, it will be much easier for a user to tell the differences between the two pointers on the screen because they will be different.
15 However, they will not be different if only the mouse driver approach is used, since the special pointer ("KVHOST.ANI") will not be installed on the Host PC. To help a remote user distinguish between the two pointers, another optional, custom, "bulls-eye"
mouse pointer called "K.ANI" will be available on the KEY-VIEW
2o PC. This pointer is entirely red. However, when the pointer is viewed from a remote PC it appears as a black pointer because pcAnywhere apparently does not support color pointers. it was further noted that having a different pointer design on the KEY-VIEW PC had another desirable effect for the remote user.
25 Presently, when the KEY-VIEW PC's screen appears as a downsized window on the remote PC and other windows also WO 00!17766 PCTNS99/21891 appear on the KEY-VIEW PC, it becomes very confiising as to whether the pointer is - pointing at the remote PC or KEY-VIEW
PC. However when the pointers are different, pcAnywhere changes the pointer to the remote PC's format, when the pointer moves out of the KEY-VIEW PC's window making it clear where the KEY-VIEW PC's screen ends and the remote PC's screen begins.
Finally, under the mouse driver approach, w-henever a Host PC is first accessed, the KEY-VIEW APP must automatically sync the KEY-VIEW mouse with the Host mouse by sending excessive 1 o mickeys to the Host mouse to insure the Host mouse is moved to position 0,0. Then, a vector would be computed to the current mouse position of the KEY-VIEW PC's mouse and tl~e mickeys sent to move the Host mouse to that position thereby causing both mice to be synced, so that normal mouse processing could begin.
Under the mouse driver approach, the KEY-VIEW Menu mode will provide an option to create a mouse driver. Also, a mouse driver Iist menu option will need to be added similar to the video driver list option to permit a user to list and delete house drivers. Finally, each KEY-VIEW PCI card and Switch Box PC list 2o will need to contain a field for updating the mouse driver file name associated with each PC connected to KEY-VIEW.
When a Host PC is accessed, if the mouse driver name is blank (for the PCI card and switch box PC, if applicable), it should be assumed that the unique cursor is being used. If the unique mouse footprint is not detected (and the "Skip Message" option has not been set, -as discussed below) by the PCI APP on the selected Host PC's screen, then a message should be displayed by the KEY-VIEW APP indicating:
Warning: a mouse driver or KEY-VIEW pointer was not detected for the active Host PC. Click 5 on the "Training" button to create a mouse driver. Click on "Skip Message" button to stop displaying this message for this PC in the future.
Click on the "Ignore" button to continue accessing the Host PC without a mouse driver, 10 or select the "Cancel" button to return to the KEY-VIEW main menu.
The "skip message" button is necessary for Host PCs, such as Novell servers that don't use a mouse. In this case, a user will not want to see an unnecessary message each time they access the 15 PC. When the training button is selected, it will be important to have a "HELP" button drat will use the text in this section to explain the mouse driver and pointer options that are available and permit the user to cancel training if they want to use the KEY-VIEW
pointer option.
2o b. When a mouse driver is necessary to control and synchronize the Host PC's mouse, the KEY-VIEW Mouse bar option must be selected to create the necessary mouse driver.
When selected two sub-menu items appear as follows:
Mouse Training This menu option is used to create a mouse 25 driver for a given Host PC.

List Mouse Drivers This menu option is used to list and delete mouse drivers previously created and switch between mouse drivers previously created for the active Host PC.
The above menu options will not be accessible in cases where the Settings for the currently active Host PC indicate that the special KEY-VIEW mouse driver is installed on the active Host PC, the active Host PC doesn't need mouse support (see the Switch PC's topic for more information on how to set the mouse requirements for a Host PC), or no Host PC is active.
1 o A Mouse Training menu option is used to create a mouse driver for a given Host PC. Prior to selecting this menu option, the Host PC for which the mouse driver will be created must be selected as the active PC and the Mouse Driver option for the active PC must be set to use the Driver Name option, as discussed under Switching PCs above. In addition, the operating system that normally uses the mouse should be running on the Host PC {e.g.
Windows, OS/2. DOS etc.), so that the mouse is visible on the Host PC. Finally, the Host PC must have a stable video image in approximately a 1 "x 1 " area bounded by one of the four corners of 2o the screen. In other words there should be no flashing cursor, color changes or movement in one of the four corners of the Host PC's screen.
When this menu option is selected, a pop up menu appears, such as is shown by example in Figure 21, requesting the selection of a stable corner of the active Host PC's screen. After one of the four corners is selected (either by double clicking on the option or highlighting the desired option and clicking on the Select option), KEY-VIEW will move the Host PC's mouse pointer to the designate corner of the screen to create the mouse driver. If other movement is detected during training or the mouse does not respond 5 properly during testing, an appropriate error message will be displayed and the mouse driver will not be created. Otherwise, the mouse driver file will be created using the file naming conventions discussed under the Switch PCs menu option, Then, the mouse driver for the active PC will be automatically updated.
Tl~e mouse driver file contains values as exact amount of mouse movement needed to move the Host PC's mouse one pixel on the Host PC's X-axis and one pixel on the Y-axis. The driver also contains a speed adjustment factor necessary to avoid any mouse acceleration settings on the Host PC.
15 After mouse training is completed, processing will automatically return to the Mouse main menu bar option.
List Mouse Drivers 2o The List Mouse Drivers menu option, an example of which is shown in Figure 22, displays a list box containing any mouse drivers created for the currently active Host PC using the Mouse Training menu option. KEY-VIEW associates each mouse driver file with a Host PC using the Host PC's unique number contained as 25 part of each driver's file name. When this menu option is selected an error message appears if (1) no Host PC is active (2) no mouse drivers have been created for the active Host PC or (3) the Mouse Driver setting for the active Host PC is not set to the Driver Name option (see the Switch PC's topic for more information on how to set the mouse requirements for a Host PC) 5 The mouse driver list box contains the following information for each of the active Host PCs mouse driver files:
File Name - Name of the mouse driver disk data file stored in the KEY-VIEW default directory. Mouse driver files are created using the Mouse Training menu option. The required 10 mouse driver file naming conventions are discussed under the PCI Card Settings topic.
Date - The date the mouse driver file was created.
Time -The time the mouse driver file was created.
Host PC - The description of the Host PC that uses this driver 1 s f le.
Mouse Driver processing options are as follows:
Select - This button is used to change the default mouse driver used by the active host PC. When this button is selected, KEY-VIEW reconfirms the mouse driver file still 2o exists in the KEY-VIEW directory. If the driver file cannot be located, an error message is displayed and the selection is ignored. Otherwise, the highlighted mouse driver becomes the default mouse driver for the Host PC. If the driver selected is already the default, an appropriate error message 25 will be displayed and the selected driver will remain the default driver. If the driver selected is not the default driver, the default driver is then changed. In this case, the active PC
would then be using an incorrect mouse driver, so KEY-VIEW automatically deactivates this Host PC: This Host PC
can then be made active again with the newly selected mouse 5 driver using the Switch PCs menu option.
Update - Since it is possible, but not recommended, to delete or copy mouse driver files outside of the KEY-VIEW
application, this button can be used to re-syncluonize the listed mouse drivers to the driver files that actually exist in to the default KEY-VIEW directory of the hard drive. If a driver file can not be found for a listed mouse driver, that driver will be automatically deleted from the list. If a driver exists in the KEY-VIEW directory but is not on the list, an entry for that driver will be automatically added to the list.
1 s Messages will be displayed indicating the names of any mouse drivers that were added or deleted during processing.
Status messages are also be displayed in the event no discrepancies are detected.
Delete - Selecting this button causes the highlighted entry and 2o associated driver file to be deleted. Normally, it should not be necessary to delete any driver files. Confirmation will be required before the deletion process starts. If the default driver for the active Host PC is deleted, the mouse driver setting for that Host PC will be blanked out and the Host PC
2s will be automatically deactivated, since a default mouse driver no longer exists for that Host PC. Before this Host PC

can be made active again either, (1) the Host PC setting must be changed to use either the No Mouse Support option or the KEY-VIEW mouse option (2) select the Mouse Training menu option to create a new mouse driver or (3) enter 5 another existing mouse driver file name using the Switch PC's menu option.
Video The Video KEY-VIEW menu bar option of Figure 13 permits creating and listing KEY-VIEW video dri~~ers that are used to display the active Host PC's screen on the KEY-VIEW PC. When selected, three menu options appear initiating video training for the active Host PC, listing and/or deleting video drivers that have been created, or setting the number of colors used when decoding the 1 s Host PC video output signal.
Before discussing the process for creating or maintaining video drivers, it is important to understand ~~~hy a video driver must be created. Each video card in a Host PC may generate video output signal that differs from other video cards. In order for the 2o KEY-VIEW PC to properly decode the video output signal of a given Host PC, it must lock into the unique characteristics of the video card installed in the Host PC at each video resolution that Host PC may use. To lock on this signal, a known test pattern must be displayed on the Host PC's screen so that the KEY-VIEW PC
25 can lock on to each pixel displayed and the properly interpret the color of the pixel during the training process so that an appropriate driver file can be created. There is no need to train KEY-VIEW at alI possible graphics resolutions if certain graphics resolution will not be used on a Host PC. The KEY-VIEW PC can automatically detect the current graphics resolution for a Host PC and create the 5 driver file required for that resolution.
KEY-VIEW supports various graphics resolutions ranging from 640 to 480 pixels to 1024x768 pixels. At higher graphics resolution the number of pixels that need to be interpreted increase dramatically. As a result, more data must be decoded by KEY-l o VIEW causing it to take longer to capture a Host PC screen and transmit it to a remote user. Accordingly, it is suggested that Host PC's be set to the lowest acceptable graphics resolution to improve screen refresh rates for remote users.
As mentioned, when the Video KEY-VIEW menu bar option 15 is selected three menu options appear as follows:
Video Training - Prior to selecting this menu option, the user must display a known full-screen graphics test pattern on the active Host PC. This menu option then creates a video graphics file for the active Host PC's current graphics mode 20 (e.g. 640x480, 800x600, etch. If no Host PC is active or the other than the intended Host PC is active the required training file will not be created.
List Video Drivers - This menu option is used to Iist and delete video drivers previously created and switch between 25 video drivers previously created for the active Host PC.

WO 00!17766 PCT/US99I21$91 Colors - This menu options will permit a user to specify the number of colors to be used to view a Host PC's screen.
Video Training 5 Video Training is the first menu option displayed when the Video option is selected from the KEY-VIEW main window bar.
Prior to selecting the Video Training menu option, the user must display a known full-screen graphics test pattern on the active Host PC. This menu option will then create a video graphics file for to the active Host PC's current graphics mode (e.g. 640x480, 800x600, etc.) of the Host PC.
When this menu item is selected, KEY-VIEW compares the known test pattern on the Host PC's screen to the actual video output received by the applicable KEY-VIEW PCI card to resolve 15 pixel alignment problems that may prevent the Host screen from displaying accurately on the KEY-VIEW PC. The KEY-VIEW
training test pattern may be alternating black and white pixels that cover the entire screen. Three test patterns will be needed to cover the three supported graphics modes (i.e. 640x480, 800x600 and 1 20 024x768).
Once the appropriate test pattern has been displayed on the Host PC, that PC is the active Host PC. With the training process completed, KEY-VLEW will load the training driver data into memory in a standard format and then will save the driver data.
25 During the testing process, the KEY-VIEW PC has the ability to detect that the required KEY-VIEW test pattern is being displayed on the active Host PC. If this pattern is not found when the training process is initiated, an appropriate error message will be displayed.
After the video training process is completed, processing will 5 automatically return to the Video main menu option.
List Video Drivers The List Video Drivers menu option, an example of which is sho~~n in Figure 23, displays a list box containing any video drivers created for the currently active Host PC using the Video Training menu option.
The video driver list box contains 1): video driver disk data file location stored during the training routine; 2) the date the video driver file was created, 3) the time the video driver file was created;
15 and 4) a description of the Host PC that uses the video driver file.
Colors Also, under KEY-VIEW's Video main bar option, a user can 2o specify the number of colors to be used to view a Host PC's screen, namely 256, 16, 4, or 2 colors.
Generally, selecting the lowest number of acceptable colors results in the fastest Host PC screen refresh rates. So, users who want the KEY-VIEW PCs screen, while in a Host Mode, to more 25 closely approach a real-time display of the active Host PC's screen should select as fevv colors as is necessary for the application.

WO !EO/17766 PCT/US99/21891 Host PC Video Screen Display It is important to give the remate user as close to real-time 5 interaction with the Host PC as possible. This is accomplished by the present invention through differencing methods.
pcAnywhere's compression routines that will transfer data from a KEY-VIEW PC to a Remote PC (1) look for pixel changes on the screen, (2) break the screen up into sections to identify o segments of the screen that have changed, and (3) give priority in posting changes in those sections of the screen that have most recently changed. pcAnywhere looks for changes beginning at the top left of the screen and moves from a left-to-right top-to-bottom approach.
15 With regard to looking for only pixels changes to the screen, this would mean that the KEY-VIEW APP can re-paint the screen or a section of the screen without concern as to whether or not pcAnywhere will treat repainting a pixel with same color as a change {because the pixel was re-painted). Accordingly, from 20 pcAnywhere's standpoint there is no reason to use the CPU to pre-analyze Host screens to determine exactly which pixels have changes and just post those pixels to the KEY-VIEW PC's screen.
With regard to breaking the screen up into segments and g~i~~ing priority to looking first at the last segments that have recently 25 changed, the pcAnywhere approach helps the KEY-VIEW system optimize the transmission of mouse pointer movements to a remote user, which is a major area of concern.
Host PC screens are being refreshed at a incredible speed (e.g. 70 frames per second). The hardware design of the KEY
5 VIEW PCI card calls for capturing a different 32k section of the Host PC's screen during each screen refresh cycle: The primary reason for breaking a screen up into 32k segments is not because the entire screen can't be captured during each refresh cycle, but is to minimize the need for expensive, high speed, static RAM chips 1 o that would be needed to store and analyze captured Host screen information between Host screen refresh cycles. Increasing the captured block size would also have the undesirable effects of (1) requiring too much board space for RAM chips, (2) substantially increasing the cost of the PCI board, and (3) stressing the ability of 1 s the PCI buss to transfer the larger blocks.
As the number of colors captured and video mode of the Host increases, more 32k sections will need to be captured to complete an entire screen capture. This also means more refresh cycles will occur and more elapsed time will pass before a full Host screen can 2o be analyzed. However, by breaking a Host screen up into 32k segments, check sums can be calculated on each segment to determine which segments have pixel changes. On this basis, only the segments that have changed need be passed from the KEY-VIEW PCI card to the KEY-VIEW APP which will take a 2s substantial burden off of the PCI buss and eliminate a possible choke point. If the block size is set below 32k, it will take a longer WO 00/17766 PCT/US99I2189i time to analyze a Host PC's full screen, which will slow screen refresh below an acceptable level, particularly at a 1024x768 video mode.
Because (1) the 32k approach does not represent a full screen s at a any point in time and (2) the KEY-VTEW PC will only be processing screen data from the active PCI card and active Host PC
(in the case of a switch box); KEY-VIEW will does not continually sa~~e the last several screens in cases where a Host PC has failed.
1o KEYBOARD Menu Returning to the main menu of Figure 13, when a Host PC is connected to a KEY-VIEW PC, there is no keyboard physically present on the Host PC. Instead, all keystrokes are input to the Host PC via either the KEY-VIEW PCs keyboard or the remote 15 PCs keyboard. The Keyboard main menu option permits either defining and sending keystroke combinations (macros) to the Host PC or resetting the Host PC's keyboard controller to correct a situation where it may have locked up.
The Keyboard menu option on KEY-VIEW main menu bar 20 has t<vo sub-options as follows:
CreatelSend Keyboard Macro - The Create !Send Keyboard Macro option permits naming and defining hot key sequences (e.g. Shift+Ctrl+End) that are sent to the active Host PC
when the named macro is selected. Defining hot key 25 sequences in this manner avoids the need for users to recall or enter the specified hot key sequence via the keyboard. In certain cases, the Windows application running on the KEY-VIEW PC traps hot keys such as Ctrl+Alt+Delete or Alt-Tab before they can be sent to the active Host PC: For such cases appropriate keyboard macros have already been pre-defined.
s When this option is selected, a list of pre-defined and user defined hot key combination appears, permitting a user at the Host site or a remote user to select one of the hot-key combinations and transmit that combination directly to the active Host PC, as if the key sequence was actually entered 1o at the Host PC's keyboard. An example of such a list is shown in Figure 24. In cases where a KEY-VIEW PC is connected to a keyboard controlled switch box, macros must be defined using this menu option to put the switch box in a command mode and then additional macros must be defined 15 to cause the switch box to switch between the PC's connected to it.
Reset Active Host PC's Keyboard - Each KEY-VIEW PCI
card contains a internal switch that safely emulates pulling a PC's keyboard plug thereby forcing the active Host PC's 2o keyboard controller to reboot. This menu option simply invokes that switch and gives a KEY-VIEW user the power to attempt to unlock a locked up PC remotely without rebooring the Host PC.
25 Create/Send Keyboard Macro The Create/Send Keyboard Macro option permits naming and defning keyboard hot key sequences (e.g. Shift+Ctrl+End) that are sent to the active Host PC when the named macro is selected.
Defining hot key sequences in this matlner avoids the need for users to recall or enter the specified hot key sequence via the keyboard.
In certain cases, the Windows application running on the KEY-VIEW PC traps hot keys such as Ctrl+Alt+Delete or Alt-Tab before they can be sent to the active Host PC. For such cases appropriate keyboard macros have 'already been pre-defined.
10 In rare cases it may be necessary to create a macro because Windows traps or delays key press combinations so that they do not pass through to the active Host PC properly. Known key press combinations that may cause a problem are discussed at the end of this topic. Again, should any of these problems appear, the problem can be solved using this menu option to create a macro and send the macro created to the Host PC instead of using keyboard input.
This menu option may be used to create or delete keyboard macros and to send a macro created to the active Host PC.. Once a macro is created, that macro also automatically appears on any 2o applicable KEY-VIEW menu option that involves sending keyboard macros to the Host PC. These menu options include: (1) PCI Card Settings (Switch Box Hot Keys setting), and (2) Switch Box PC
Settings (Switch Box ID). Alternatively, Switch Box macros can be amended or selected independently, such as via the example menu 25 showm in Figure 25. In Figure 25, a scrolling list (displaying 15 macros at a tame) of switch box command macros related to the Wo 00/17766 PCT/1JS99/21$91 currently active PCI card appears. If no strings have been defined for the active PCI card, the user would click on the Add button to permit a macro to be defined.
When defining a macro, the command key sequence for the 5 switch box must not be entered. KEY-VIEW will automatically add the applicable command mode sequence before sending the macro and a <Enter> key ,after sending the macro.
Internally, the KEY-VIEW APP will associate a list of macros with a PCI card ID so that different macros can be assigned to each PCI card. If the currently active PCI card ID is not defined as a switch box card (i.e. an SB as discussed under the SwPCs menu option above), a error message will appear if this menu option is selected which will preclude any entry of macros for the PCI
card.
15 After either (1) an option is selected and the selected macro sequence sent to the Host PC, (2) the user presses the Esc key or (3) the user clicks on the cancel button processing will return to the Keyboard main menu option. From the Keyboard menu option, a user may use the arrow keys/Enter key or mouse to select a menu 20 option.
Reset Active Host PC's Keyboard Many PCs appear to have locked up and are needlessly rebooted because the PC's keyboard controller has simply locked z5 up. In such cases, the PC may be unlocked by simply pulling the PC's keyboard plug out and putting in back into the PC. However, since keyboards receive power from the PC, this procedure could short out the PC and or keyboard and is not a recommended procedure to attempt manually.
Each KEY-VIEW PCI card contains a internal switch that s safely emulates pulling a PC's keyboard plug thereby forcing the PC's keyboard controller to reboot. This menu option simply invokes that switch and gives a KEY-VIEW user the power to attempt to unlock a locked up PC remotely without rebooting the Host PC. Before attempting this operation on a Host PC; it is I o recommended that this option be run on a test basis when the PC is not running critical applications, before it is used in an emergency situation. Such a test insures that this menu option does not have any undesirable side effects on a Host PC or switch box.
t 5 Other The Key-VIEW Main menu bar Other menu on Figure 13 option contains several sub-menu options as follows:
1. Card Addresses - This menu option permits changing the memory address and/or IRQ's used by the KEY-VIEW software 2o application to communicate with the KEY-VIEW PCI and Access Control Cards:
2. Reset Options - This menu option is used to conf gure the KEY-VIEW Access Control Card. This option (shown as an example in Figure 26) configures how the KEY-VIEW PC Access 25 Control Card operates, including:

a. Enable Reboot When Less Than - This allows a user to specify a NLJ1VIBER OF RINGS from 3 to 9, whereupon, if less than the number of rings specified is detected on the phone line plugged into the KEY-VIEW Access Control 5 Card, then the KEY-VIEW PC will be rebooted. If this option is enabled, the Enable Reboot When More Than rings option must also be enabled and vice-versa. This feature is essential to remotely reboot the KEY-VIEW PC in the event the KEY-VIEW PC should ever lock up and not permit 1 o remote access. If a modem is installed in the KEY-VIEW
PC, the modem should be set via pcAnywhere to answer on at least one ring more than is specified in this setting, to avoid a situation where the KEY-VIEW PC reboots before the call is answered by the modem.
15 b. Enable Reboot When More Than - This allows a user to specify a NUMBER OF RINGS from 5 to 1 a, whereupon, if more than the number of rings specified is detected on the phone line plugged into the KEY-VIEW Access Control Card ,then the KEY-VIEW PC will be rebooted. If this 20 option is enabled, the Enable Reboot When Less Than rings option must also be enabled and vice-versa. This feature is essential to remotely reboot the KEY-VIEW PC in the event the KEY-VIEW PC's modem should lockup and not answer a call. If a modem is installed in the KEY-VIEW PC, the 25 modem should be set via pcAnywhere to answer on at least two rings less than is specified in this setting; to avoid a situation where the KEY-VIEW PG reboots before the call is answered by the modem.
c. Enable Reboot via external modem - This allows a user to specify a 10 character password that can be provided by 5 the remote user to cause the KEY-VIEW PC to reboot itself This remote reboot feature is handled by the KEY-VIEW
PC's Access Control Card 90 and requires an external modem connected to this Access Control Card's DATA port. To reboot a KEY-VIEW PC using this feature, a remote site 205 1 o calls the external modem connected to the NET-911 module using a terminal emulation program (such as the Hvper terminal program supplied with Windows). The modem connected to the 1'lET-911 control module is set to an auto-answer mode and will answer all incoming calls after the ~ 5 second ring. When this modem linkage is completed, the remote user types the password specified and, if correct, the KEY-VIEW PC immediately reboots. In emergency situations this remote reboot feature could also be used to remotely terminate another remote user's connection to the 20 KEY-VTEW PC, since a separate independent phone line and modem is used to cause the KEY-VIEW PC to reset.
3. Sound Options - This menu option sets the sound that occurs when {1) a system message is displayed or (2) a user is remotely accessing the KEY-VTEW PC or an automated NET-9I 1 2S module event is triggered. The beep sound made by a PC's internal speaker is often hard to hear, especially in typical computer rooms where there is substantial of background noise. As a result, audible KEY-VIEW notifications may go unnoticed. For example, many users want a loud audible sound to occur whenever someone is remotely accessing their site to alert any Host site personnel present 5 that the site is being accessed.
4. Switch Resolutions - This menu option permits switching the graphics resolutions of the KEY-VIEW PC's screen. In the preferred embodiment, the following settings are available: 640 x 480; 800 x 600, and 1024x768, although others are possible and are 1 o envisioned in the present invention. The graphics resolution selected only applies to the KEY-VIEW PC's screen and is a convenient was to synchronize the KEY-VIEW PC's screen resolution with a remote PC's screen resolution, so that the KEY-VIEW PC appears as a full screen on the remote PC. However, 15 when the KEY-VIEW PC switches to a Host Mode, the KEY-VIEW PCs screen will automatically assume the resolution of the Host PC's screen. so that the Host PC's screen appears as a full screen on the KEY-VIEW PC.
. Exit Menu Mode - This menu options causes the KEY-2o VTEW PC to switch from a Menu Mode to a Host Mode 6. Quit KEY-VIEW - This menu option terminates KEY-VI~VGT application processing .and returns control back to the Vi~'indow~s 95 Operating system. .
7. Remote Session Beep Interval - This sets how often the 25 KEY-VIEW PC should beep while a Remote PC is accessing the KEY-VIEW PC.

w0 00/17766 PCT/US99/2I891 8. Auto-Switch to Host mode Interval - This sets the number of seconds that may elapse without mouse or keyboard input to the KEY-VIEW APP before the KEY-VIEW switches from a Menu mode back to a Host mode. Automatically switching back to a Host mode is necessary so that a Host site user will normally have console control of a Host PC and not have to worry about switching the consoles monitor from a Host PC to the KEY-VIEW PC's VGA
card to switch the KEY-VIEW PC out of a Menu mode.
1 o Settings for Active Host PG
Returning to the KEY-VIEW main menu screen of Figure 13, the banner at the bottom of the menu screen shows all current information related to the active Host PC. This banner always appears in this fixed location of screen whenever the KEY-VIEW
PC is in a Menu Mode. The information includes: the PCI Card description, the SB Hot Key, the PC ID, mouse type, mouse and video driver locations, switch box channels, and the # colors displayed.
2o Hot- Keys Certain functions can be assigned hot keys sequences. In the Host mode, the Keyview specific hot key combinations are trapped by the Key-view application and are not passed back to the active Host PC. Some example hot key- functions are:
a. switch from Menu mode to Host mode.
b. Repaint Active Host PC screen.

w0 00/17766 PCT1US99J21891 c. Send selected Switch Box Command sequence to the switch box connected to the active PCI card.
d. Switch between KEY-VIEW PCI cards.
e. Send a keyboard macro to Host PC (without this feature 5 the operating system on the KEY-VIEW PC may trap any operating system specified hot keys before they would reach the Host PC), such as Ctrl=Alt Delete, Alt-tab, Ctrl-Esc, Alt-Space, Alt-Enter, etc.
KEY-VIEW PC LED Indicator I o The KEY-VIEW Access Control Card has a connection to one of the status LED lights, normally the Turbo Iight, on the front of the KEY-VIEW PC. This state of this LED Iight indicates the status of the KEY-VIEW PC. This LED light will be OFF when the KEY-VIEW PC is in a Menu Mode and is not being remotely 15 accessed. This light will remain ON whenever the KEY-VIEW PC
is in a Host Mode and is not being remotely accessed.
When the KEY-VIEW PC is being remotely access the LED
will flash, More specifically, the turbo light remains OFF but flashes ON for .5 seconds every 5 seconds, whenever the KEY-20 VIEW PC is being remotely accessed (i.e. a pcAnywhere is "In session"} and is in a Menu Mode. If the KEY-VIEW PC is in a mode where both pcAnywhere is "In Session" and the KEY-VIEW
PC is m a Host Mode, the turbo light remains ON and then flashes OFF for .5 secands every 5 seconds.
25 Setting the turbo light in this manner coupled with the user configurable beep option gives personnel at the Host site a visible and audible indication whenever the site is being remotely accessed.
Moreover, whenever the turbo light stays OFF, the user at the Host site will know that the KEY-VIEW PC is not in a Host Mode and will not pass keyboard or mouse input through to Host PC's until the KEY-VIEW PC is switched to a Host Mode.
FILE TRANSFERS
In KEY-VIEW II, the remote access engine (such as pcAnywhere) will handle file transfers from the Remote site 205 to the KEY-VIEW PC 200 and vice-versa. pcAnywhere, for example, makes all the latest file transfer tools (e.g. drop and drag) available to the remote user. However; getting files to the KEY-VIEW PC
200 is of little value unless the files can then be transferred to a Host PC 201-204, or vice-versa.
If a LAN card is installed in the KEY-VIEW PC 200, the KEY-VIEW PC can be setup to attach to the LAN and/or the Host PC's via drive mapping as part of the boot up process. If the Host PCs are also connected to the LAN '(not shown, but available, in Figure 28), when a remote user 205 accesses the KEY-VIEW PC
200 via modem 218 to transfer a file to the Hast site 201-204. the 2o remote user 205 simply sends the file transfer to the drive that the Host PC's hard disk is mapped to, or suspends the KEY-VIEW
application, logs into the applicable Host PC and transfers the file to that Host PC.
Alternatively, in cases where a single KEY-VIEW PCI card 90 is installed in the KEY-VIEW PC 200, the KEY-VIEW PC's existing parallel port could be used to make file transfers to the w0 00/17766 PCTIUS99/21891 Host PC 201 using any cammercial file transfer software package such as Lapiink or pcAnywhere, as long as the necessary parallel cable is connected from the KEY-VIEW PC 200 to the Host PC
201.
a In another alternative, in cases where multiple Host PCs 201-204 are connected to the KEY-VIEW PC 200, file transfers between the KEY-VIEW and any Host PC could also be made using a serial linkage (Figure 10) through NET-911 Control Modules 80. These modules 80 are daisy chained together and 1 o connected to one of the serial ports on the KEY-VIEW PC and one other serial port ("optional serial connection" in Figure 10) on each Host PC 201-204. Procedures for accessing a NET-911 Control Modules and linking to the Host PC connected to the module are discussed in detail above. Serially based file transfer software such 15 as pcAnywhere, Laplink, or the Hyperterminal software (provided with Windows) would then be used to transfer files between the KEY-VIEW PC and Host PCs. NET-911 Control Modules also permit the KEY-VIEW PC to serially access and control any other serial based devices such as routers, printers, UPS systems either 20 locally or remotely via the KEY-VIEW PC.
As example of the typical steps used to transfer a file from a remote PC to a Host PC via NET-911 Control Modules would be as follows:
1. Transfer all required files files) from the Remote PC to a 2s temporary directory on the KEY-VIEW PC using pcAnywhere.

2. Select the Switch option off the KEY-VIEW main menu, then select the Switch Modules option and select the control module that is connected to the Host PC where the files need to be transferred and make sure that module is 5 set as the active module. This step will then open up a direct standard serial linkage from the KEY-VIEW PC's serial port to the Host PC's serial port via the active module selected.
3. Select the Switch option off the KEY-VIEW main menu, 1o then select the Switch PCs and make the Host PC where the files need to be transferred the active Host PC.
4. On the KEY-VIEW PC switch from the Menu Mode to the Host Mode and initiate a file transfer software program on the active Host PC, such as pcAnywhere (in 15 Host mode) or Hyper terminal (supplied with Windows) to receive the files from the KEY-VIEW PC via the direct serial interface between the KEY-VIEW PC and the Host PC. Note any serial port parameter settings such as baud rate, stop bits, flow control, etc. to insure that such 2o settings agree with the KEY- VIEW PCs settings in step 6 below.
5. On the KEY-VIEW PC switch from the Host Mode back to the Menu Mode and minimize the KEY-VIEW II
application.
25 6. From the Windows desktop initiate a file transfer program on the KEY-VIEW PC that is compatible with the file transfer program initiated on the active Host PC in step 4 above. For example, if pcAnywhere was initiated in a Host mode in step 4 above, initiate pcAnywhere in a remote mode on the KEY-VIEW PC. Make sure the serial port parameter settings for the file transfer software being used agree with the settings noted in step 4 above.
'~ . Transfer alI files from the KEY-VIEW PC's temporary directory setup in step I above to the active Host PC via the file transfer software being used.
8. Delete the files transferred from the KEY-VIEW PC's temporary directory.
9. Terminate file transfer processing on the KEY-VIEW PC
and maximize the KEY-VIEW application that was minimized in step 5 above.
1 ~ 10. Switch to a Host Mode and then terminate file transfer processing on the acti~-e Host PC that was initiated in step 4 above.
11. Resume normal KEY-VIEW processing.
Steps identical to the above would be followed to transfer 2o files from the active Host PC to a Remote PC except that the transfer of the files from the active Host PC to the KEY-VIEW PC's temporary directory would OCCllr first. Then, these files would be transferred by pcAnywhere from the KEY-VIEW PC to the Remote PC.
5 If file serial file transfer processing will not initiate between the active Host PC and the KEY- VIEW PC it is possible that a special: null modem adapter may be needed on the serial cable be~tvveen the PCs.
To configure Windows NT/95 Hyperterminal program to handle file transfers on a KEY-VIEW PC, perform the same steps detailed above for the Host PC except in step 3 and 4 above modify the description to use the COM port to which the serial cable is connected to on the KEY-VIEW PC.
pcAn«~~here Sessions 1 o It is sometimes necessary to determine when a pcAnywhere session begins and ends. First, the best procedure to determine whether pcAnywhere is active is to test the active operating system (such as Windo~~s 95) status bars for the key words "In session". If this is not possible, then the following, more complicated, alternative can be used.
Merely accessing the pcAnywhere log file to determine when a pcAm~where session has started or stopped will not work since pcAn«~There understandably does not access it's log file in a shared mode. This means that if KEY-VIEW APP was attempting to read 2o the LOG file when a remote access session started or ended, pcAn«~~here would receive a file open error from the operating system (because KEY-VIEW APP has the file open) and pcAn«~~here simply does not update the log file.
To correct this problem, the KEY-VIEW APP looks at the file time and date of the pcAnylhere log file which is updated each time a user logs ON or OFF. To avoid dragging down the Host PC

processor this viewing at the time and date of the file can occur approximately even ~ seconds. No entries other than sign-off and sign-on occur to the Hast log file and the file time & date is updated when either of these events occur. Other log entries, such as file 5 transfer information, are only logged at the remote end.
Since only time and date changes are tracked Keyview may get out of sync with whether or not the session is being activated or terminated, especially in cases where the Host PC locked up when a pcAnywhere session was active and had to be rebooted. To prevent 1o this, the file is read each time KEY-VIEW APP processing is first initiated and immediately after a dateltime change has occurred to see if Keyview is in session or out of session by looking at the last entry in the log.
Because the file rnay falsely indicate a session is open, if the 15 K PC locked up during a pcAnywhere session and had to be rebooted, at bootup of the Keyview PC a dummy flag file is created (in the AUTOEXEC.BAT of the Keyview PC) to tell KEY-VIEW
APP to assume a remote access session is not active regardless of what the pcAnywhere log says. Upon finding the dummy file when 2o KEY-VIEW APP is first loaded, KEY-VIEW APP would assume a session is not open then delete the dummy file, so this assumption will not be made again in a case where KEY-VIEW APP is terminated then re-loaded without rebooting the Host PC. Under this approach there would be no need to update the pcAnywhere log 25 to indicate that any open session has ended because KEY-VIEW
APP won't look at the Iog again until the date & time has changed in which case the last entry will reflect a new PC AW session has begun.
When a PC AW session begins, as detected by KEY-VIEW
APP as described above, KEY-VIEW APP will stop re-directing all 5 keyboard and mouse input to the Host PC and display the Keyview main menu on the Kevview PC's screen as discussed above. When a pcA,nywvhere session ends, as detected by KEY-VIEW APP using the above procedure, and the user has not ended Key-view Main menu processing; the Key-view main menu is removed from the to Key-view PC's screen automatically and aII keyboard/mouse input re-routed from the Key-view PC to the Host PC.
While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not to be 15 limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims (33)

What is claimed is:
1. A remote access circuit module installed between a remote computer and at least one host computer having a particular type of operating system, the at least one host computer having a video output providing an analog RGB video signal normally destined for a standard monitor associated with the host computer, and the at least one host computer having a mouse input to receive a mouse control signal normally delivered by a standard mouse associated with the host computer;
the remote access circuit module including a video capture circuit connected to receive the video output, and a mouse interface to deliver the mouse control signal to the mouse input of the host computer;
the remote access circuit module further including:
a video process circuit, in communication with the video capture circuit and operating independently of the particular type of operating system on the host computer, to synchronize and digitize the analog RGB
video signal received by the video capture circuit, and to deliver, via a network interface communicating with a network medium, the digitized RGB video signal to the remote computer to allow the remote computer user to view in essentially real-time the same RGB video signal as provided by the host computer even when the host computer has locked up to no longer accept the mouse control signals, at least one of said video capture circuit or mouse interface including a mouse lag correction routine to coordinate the mouse signals captured by the mouse interface and the video capture circuit.
2. The circuit module according to claim 1, wherein the video process circuit syncs the captured video signals by deducing a video format characteristic of the analog video signals created by the host computer.
3. The circuit module according to claim 2, wherein the video format characteristic includes resolution information.
4. The circuit module according to claim 3, wherein the resolution information is created by a VGA card of the host computer.
5. The circuit module according to any of claims 1-4, wherein the video capture circuit communicates with a standard video interface of the host computer.
6. The circuit module according to claim 5, wherein the video capture circuit operates independently of all software operation of the host computer except to receive the output of the standard video interface of the host computer.
7. The circuit module according to claim 6, wherein the video process circuit syncs the captured video signals by deducing a video format characteristic of the analog video signals created by the external host computer.
8. The circuit module according to claim 1, wherein the network access interface cooperates with a remote access engine to deliver the synchronized and digitized video to the remote computer via a logical data path of the network medium.
9. The circuit module according to claim 8, wherein the video process circuit further includes:
a main CPU to coordinate the digitization of the analog RGB video signals from the host computer;
a field programmable gate array, in communication with the main CPU;
a video RAM to store the digitized RGB video signals from the main CPU and field programmable gate array, and to deliver the digitized video signals to the remote access engine for delivery to the remote computer, the video RAM in communication with the field programmable gate array to receive at least video sync processing from the field programmable gate array; and a bus controller, in communication with the field programmable gate array, to communicate information identifying the digitized host video signals and the mouse and keyboard information to the remote access engine.
10. The circuit module according to any of claims 1-9, wherein the video process circuit further includes:
sync polarity circuits to receive, respectively, horizontal and vertical sync signals from the host computer;
a phase locked loop video dot clock circuit communicating with the sync polarity circuits and outputting a dot clock signal; and a converter to automatically determine a graphics mode of the RGB
video signals.
11. The circuit module according to claim 10, further including circuitry to determine a video frame rate characteristic of the RGB video signals.
12. The circuit module according to any of claims 10-11, wherein the graphics mode includes a number of available colors.
13. The circuit module according to any of claims 10-12, wherein the graphics mode includes a screen resolution in horizontal pixels per screen by vertical pixels per screen.
14. The circuit module according to any of claims 10-13, wherein the graphics made includes a table characterizing a number of available colors versus a screen resolution in horizontal pixels per screen by vertical pixels per screen.
15. The circuit module according to any of claims 10-14, wherein the video processing circuit includes memory to store a set of predefined video graphics mode characteristics, and wherein the video processing circuit further divides the RGB video signals into one or more video screen segment parts and compares the video screen segment parts to the stored predefined video graphics mode characteristics.
16. The circuit module according to claim 15, wherein the video processing circuit includes a video checksum manager for storing and managing checksums associated with each video screen segment part.
17. The circuit module according to any of claims 1-7 further comprising:

a remote access engine between the host computer and the remote computer to coordinate delivery of data packets along a telecommunications link between the host computer and the remote computer; and a remote access controller, including a remote access control card communicating with the telecommunications link, to read a present caller ID associated with the remote computer, to store a list of predefined caller IDs, to compare the present caller ID with the list and to disable the remote access engine whenever the present caller ID fails to match any from the list of predefined caller IDs.
18. The circuit module according to claim 17, wherein the remote access controller further includes a telephone jack to automatically issue a page alert to a predefined telephone number whenever the present caller ID fails to match any from the list of predefined caller IDs.
19. The circuit module according to claim 17, wherein the remote access controller further resets the host computer wherever the predefined caller ID matches the present caller ID.
20. The circuit module according to claim 17, wherein the remote access controller further reboots the host computer wherever the predefined caller ID matches the present caller ID.
21. The circuit module according to claim 17, further including an external modem and a control module providing AC power to the host computer, the external modem communicating with the control module and automatically answering calls received by the external modem on a different telecommunications link, said control module temporarily interrupting power to the host computer whenever said external modem automatically answers a call.
22. The circuit module according to claim 1, wherein the video process circuit further includes a combination of interleaved video RAMS to store the digitized RGB video signals.
23. The circuit module according to claim 22, wherein the video process circuit further includes a checksum section to determine a checksum difference between two video frames of the RGB video signal stored in the interleaved video RAM.
24. The circuit module according to claim 1, wherein the video process circuit further includes a video RAM and a palette RAM, the video process circuit including a checksum section to derive a checksum difference between video frame information in the video RAM versus the palette RAM.
25. The circuit module according to claim 24, further including:
a flash palette converter circuit, including:
an address mux receiving the digitized RGB video signal as a stream of digital RGB pixel data;
a flash palette converter RAM being addressed by the stream of digital RGB pixel data and outputting for each RGB pixel a palette index byte corresponding to a color value of said RGB
pixel.
26. The circuit module according to claim 25, further including a pixel assembly circuit to condense a number of palette index bytes into a single assembled pixel byte for storage, including:
a logic array receiving a video format of the RGB video information from the video processing circuit and receiving the palette index byte from the flash palette converter circuit; and a set of flip-flops to assemble the number of palette index bytes as a function of a characteristic of the video format of the RGB video information,
27. The circuit module according to any of claims 1-26, further comprising:
a control module having an AC power input to receive AC power from an external power source, an AC power output to deliver the AC
power from the external power source to the host computer, a switch therebetween, and a control data input to receive a reboot signal from the remote computer and thereupon interrupt AC power to the host computer by operation of the switch.
28. The circuit module according to any of claims 1-26, further comprising:
a control module having an AC power input to receive AC power from an external power source, an AC power output to deliver the AC
power from the external power source to the host computer, a switch therebetween, and a control data input to receive a reboot signal from the remote computer and thereupon interrupt AC power to the host computer by operation of the switch;
a communication circuit establishing a first logical data path, different from a second logical data path established between the remote computer and the host computer, between the remote computer and the control module, the communication circuit delivering the reboot signal to the control module when commanded to do so by the remote computer via the first logical data path.
29. The circuit module according to claim 28, wherein the communication circuit includes a modem.
30. The circuit module according to claim 28, further comprising:
a second control module daisy-chained to the first control module to receive AC power from the external power source, to deliver the AC
power from the external power source to a second controlled device, the second control module including a second switch therebetween to interrupt AC power to the second controlled device by operation of the second switch;
the communication circuit establishing a third logical data path between the remote computer and the second control module, and delivering an instruction from the remote computer to the second control module via the thud logical data path to interrupt AC power to the second controlled device by operation of the second switch.
31. The circuit module according to any of claims 1-30, further including:
a mouse synchronizer to capture a current mouse position of the mouse pointer on a monitor associated with the remote computer; and a video application to communicate the current mouse position of the mouse pointer on the monitor associated with the remote computer to the host computer whereupon the host computer jumps the host mouse pointer to a position coincident with the current mouse position.
32. The circuit module according to claim 31, wherein the current mouse position is communicated from the remote computer to the mouse synchronizer in the form of current X/Y coordinates of the remote computer mouse pointer.
33. The circuit module according to claim 31, wherein the mouse synchronizer captures the current moose position of the mouse pointer on the monitor associated with the remote computer whenever a remote user clicks a mouse button.
CA002345084A 1998-09-22 1999-09-22 System for accessing personal computers remotely Expired - Lifetime CA2345084C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10143098P 1998-09-22 1998-09-22
US60/101,430 1998-09-22
PCT/US1999/021891 WO2000017766A2 (en) 1998-09-22 1999-09-22 System for accessing personal computers remotely

Publications (2)

Publication Number Publication Date
CA2345084A1 CA2345084A1 (en) 2000-03-30
CA2345084C true CA2345084C (en) 2004-11-02

Family

ID=22284604

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002345084A Expired - Lifetime CA2345084C (en) 1998-09-22 1999-09-22 System for accessing personal computers remotely

Country Status (10)

Country Link
US (3) US6633905B1 (en)
EP (1) EP1116086B1 (en)
JP (1) JP4146089B2 (en)
AT (1) ATE354824T1 (en)
AU (1) AU774003B2 (en)
CA (1) CA2345084C (en)
DE (1) DE69935234T2 (en)
HK (1) HK1043228B (en)
IL (1) IL142119A0 (en)
WO (1) WO2000017766A2 (en)

Families Citing this family (254)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020091850A1 (en) * 1992-10-23 2002-07-11 Cybex Corporation System and method for remote monitoring and operation of personal computers
US5721842A (en) 1995-08-25 1998-02-24 Apex Pc Solutions, Inc. Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch
US6711613B1 (en) * 1996-07-23 2004-03-23 Server Technology, Inc. Remote power control system
US7774443B2 (en) 1996-07-23 2010-08-10 Server Technology, Inc. Power-manager configuration upload and download method and system for network managers
US7099934B1 (en) * 1996-07-23 2006-08-29 Ewing Carrel W Network-connecting power manager for remote appliances
US7171461B2 (en) * 1996-07-23 2007-01-30 Server Technology, Inc. Network remote power management outlet strip
US7043543B2 (en) * 1996-07-23 2006-05-09 Server Technology, Inc. Vertical-mount electrical power distribution plugstrip
BR9815964A (en) * 1998-07-27 2001-06-05 Webtv Networks Inc Remote computer access process, remote computing server system, video transmission process, multi-head monitor generator, processes for generating a compressed video stream, from motion estimation to image stream compression, to change the detection for image stream compression, for generating a catalogue, and for internet browsing, software program for www page design, software modified by compression to perform at least one function and to generate at least one video, control processes of video, image processing, video compression, asynchronous video stream compression, to store frame rate, to customize advertising, advertising, throughput accrual, interactive tv, to allocate bandwidth to a stream of compressed video, for allocating bandwidth for transmitting video over a cable network, for generating a plurality of videos, for transmitting a plurality of similar compressed video channels, statistically bit multiplexing, to generate a plurality of unrelated image streams, to generate a plurality of unrelated audio streams, and to produce different representations of video in a plurality of locations remote
JP4146089B2 (en) 1998-09-22 2008-09-03 アボセント ハンツヴィル コーポレーション System for remote access to personal computers
US7130616B2 (en) * 2000-04-25 2006-10-31 Simple Devices System and method for providing content, management, and interactivity for client devices
US20050210101A1 (en) * 1999-03-04 2005-09-22 Universal Electronics Inc. System and method for providing content, management, and interactivity for client devices
US7468934B1 (en) * 1999-07-12 2008-12-23 Ez4Media, Inc. Clock with link to the internet
US6920500B2 (en) * 1999-05-20 2005-07-19 Prosia Overseas, Inc. Method and apparatus for providing simplified access to the internet
US7363330B1 (en) * 1999-06-07 2008-04-22 Symantec Corporation Work monitor with file synchronization
US6378014B1 (en) 1999-08-25 2002-04-23 Apex Inc. Terminal emulator for interfacing between a communications port and a KVM switch
US20040015615A1 (en) * 1999-10-25 2004-01-22 Liu Cheng Kuo Method for performing data transfer of KVM switch
US20010027470A1 (en) * 2000-01-11 2001-10-04 Friedemann Ulmer System, method and computer program product for providing a remote support service
US6766456B1 (en) 2000-02-23 2004-07-20 Micron Technology, Inc. Method and system for authenticating a user of a computer system
US8396950B1 (en) * 2000-03-02 2013-03-12 Rockstar Consortium Us Lp Method and apparatus for the fast detection of connectivity loss between devices in a network
US7281040B1 (en) * 2000-03-07 2007-10-09 Cisco Technology, Inc. Diagnostic/remote monitoring by email
EP1417830A1 (en) * 2000-04-17 2004-05-12 Thomson Multimedia Distribution (Netherlands) B.V. Arrangement for processing digital video signals in real time
US6681250B1 (en) * 2000-05-03 2004-01-20 Avocent Corporation Network based KVM switching system
KR100338604B1 (en) * 2000-05-29 2002-05-27 배영주 remote network management system via serial port
US20020004849A1 (en) * 2000-06-22 2002-01-10 Elink Business Fault tolerant internet communications system
US7069205B1 (en) * 2000-07-17 2006-06-27 Microsoft Corporation System and method for emulating the operation of a video graphics adapter
KR20020009650A (en) * 2000-07-26 2002-02-02 김인광 Method for remote controlling
US20020029259A1 (en) * 2000-07-26 2002-03-07 Nec Corporation Remote operation system and remote operation method thereof
US6826777B1 (en) * 2000-08-04 2004-11-30 International Business Machines Corporation Rack mounted digital video
US7249167B1 (en) * 2000-11-09 2007-07-24 Raritan, Inc. Intelligent modular server management system for selectively operating a plurality of computers
US9627888B2 (en) 2000-12-08 2017-04-18 Server Technology, Inc. Electrical power distribution device having a current display
US6968462B2 (en) * 2000-12-11 2005-11-22 International Business Machines Corporation Verifying physical universal serial bus keystrokes
JP2002182961A (en) * 2000-12-13 2002-06-28 Nec Corp Synchronization system for database and method of the synchronization
US7036144B2 (en) * 2000-12-21 2006-04-25 Jon Ryan Welcher Selective prevention of undesired communications within a computer network
US8812666B2 (en) * 2001-01-29 2014-08-19 Da Capital Fund Limited Liability Company Remote proxy server agent
DE10105987A1 (en) * 2001-02-09 2002-08-29 Infineon Technologies Ag Data processing device
US6829714B2 (en) * 2001-03-01 2004-12-07 International Business Machines Corporation Method for timed booting of logical partitions in a computer system in accordance with a preset schedule stored in nonvolatile memory
US7424551B2 (en) 2001-03-29 2008-09-09 Avocent Corporation Passive video multiplexing method and apparatus priority to prior provisional application
US6973509B2 (en) * 2001-05-14 2005-12-06 International Business Machines Corporation Automatic frame identification, door status, and frame count detection system
US20040097222A1 (en) * 2001-05-16 2004-05-20 Sony Computer Entertainment Inc. Method for transmitting information data associated with the number of transmissions of a calling signal
JP2003037875A (en) * 2001-05-16 2003-02-07 Sony Computer Entertainment Inc Message transmitting and receiving method, message transmitting method, message receiving method, computer readable storage medium storing message transmitting program which is executed by computer, computer readable storage medium storing message receiving program which is executed by computer, transmitter, receiver, transmitting and receiving apparatus, message transmitting and receiving system, message transmitting program which is executed by computer, and message receiving program which is executed by computer
US7320033B2 (en) * 2001-07-27 2008-01-15 Intel Corporation Dynamic local drive and printer sharing
US20030055909A1 (en) * 2001-08-24 2003-03-20 Stephan Hartwig Pluggable server module for wireless remote controlling of devices
US7107588B2 (en) * 2001-08-31 2006-09-12 Hewlett-Packard Development Company, L.P. System and method for installing window installer service without rebooting
JP2003076452A (en) * 2001-09-05 2003-03-14 Nagano Fujitsu Component Kk Computer switching unit and computer system, program for exchanging data, storage medium storing it and computer body incorporating it
US7318149B2 (en) * 2001-09-28 2008-01-08 Hewlett-Packard Development Company, L.P. Semi-persistent relocatable ram-based virtual floppy disk method
US7299345B2 (en) * 2001-09-28 2007-11-20 Hewlett-Packard Development Company, L.P. Reserved ROM space for storage of operating system drivers
US20030065864A1 (en) * 2001-10-03 2003-04-03 Dell Products L.P. System and method supporting remote data processing system management
TW544617B (en) * 2001-11-08 2003-08-01 Aten Int Co Ltd Intelligent computer switch
US8176226B2 (en) * 2001-11-09 2012-05-08 Aten International Co., Ltd. KVMP switch allowing asynchronous and synchronous switching for console devices and peripheral devices among different computers
US6957287B2 (en) * 2001-11-09 2005-10-18 Aten International Co., Ltd. Asynchronous/synchronous KVMP switch for console and peripheral devices
US7184797B2 (en) 2001-12-28 2007-02-27 Nokia Corporation Data transfer rate display selection
US7038696B2 (en) * 2002-01-04 2006-05-02 Hewlett-Packard Development Company Method and apparatus for implementing color graphics on a remote computer
JP2003248629A (en) * 2002-02-26 2003-09-05 Fujitsu Ltd Removable disc device having identification information
US6884946B2 (en) * 2002-03-05 2005-04-26 Premark Feg L.L.C. Scale for weighing and determining a price of an item
US7038669B2 (en) * 2002-07-01 2006-05-02 Hewlett-Packard Development Company, L.P. System and method for providing a reference video signal
US20040004812A1 (en) * 2002-07-03 2004-01-08 Dell Products L.P. Pivotable processor shroud and method of use
TW569572B (en) * 2002-07-18 2004-01-01 Macronix Int Co Ltd Chip of multi-port Ethernet network switch and daisy chain test method thereof
US20040059806A1 (en) * 2002-07-31 2004-03-25 Webb Randall K. System and method for indicating the status of a communications link/traffic activity on non-protocol aware modules
US8068546B2 (en) * 2002-08-29 2011-11-29 Riip, Inc. Method and apparatus for transmitting video signals
US8558795B2 (en) * 2004-03-12 2013-10-15 Riip, Inc. Switchless KVM network with wireless technology
US7818480B2 (en) * 2002-08-29 2010-10-19 Raritan Americas, Inc. Wireless management of remote devices
US7684483B2 (en) * 2002-08-29 2010-03-23 Raritan Americas, Inc. Method and apparatus for digitizing and compressing remote video signals
US7606314B2 (en) * 2002-08-29 2009-10-20 Raritan America, Inc. Method and apparatus for caching, compressing and transmitting video signals
US20040121299A1 (en) * 2002-12-20 2004-06-24 Electronic Data Systems Corporation System and method for remote-access virtual-lab environment
US7363059B1 (en) * 2003-01-16 2008-04-22 Sprint Spectrum L.P. Method and system for presenting a graphical representation of telephone keys on a wireless terminal
US20040145605A1 (en) * 2003-01-28 2004-07-29 Sujoy Basu Access method and system for remote desktops
US7203359B1 (en) * 2003-02-18 2007-04-10 Novell, Inc. Split screen technique for improving bandwidth utilization when transferring changing images
US6938047B2 (en) * 2003-02-19 2005-08-30 Maui X-Stream, Inc. Methods, data structures, and systems for processing media data streams
US7496676B2 (en) * 2003-02-19 2009-02-24 Maui X-Stream, Inc. Methods, data structures, and systems for processing media data streams
US20040215742A1 (en) * 2003-03-04 2004-10-28 Soronti, Inc. Image perfection for virtual presence architecture (VPA)
EP1636713B1 (en) * 2003-06-02 2016-04-27 Seiko Epson Corporation Image display device and method of communicating with an image display device over a network
US7546584B2 (en) * 2003-06-16 2009-06-09 American Megatrends, Inc. Method and system for remote software testing
US7808974B2 (en) * 2003-06-19 2010-10-05 At&T Intellectual Property I, L.P. Method and apparatus for Voice over Internet Protocol telephony using a virtual private network
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
JP2005023843A (en) * 2003-07-02 2005-01-27 Toyota Motor Corp Abnormality diagnostic device for automatic start timer circuit
US7091967B2 (en) * 2003-09-01 2006-08-15 Realtek Semiconductor Corp. Apparatus and method for image frame synchronization
US6805560B1 (en) * 2003-09-02 2004-10-19 Intel Corporation Apparatus interconnecting circuit board and mezzanine card or cards
US8176155B2 (en) 2003-11-26 2012-05-08 Riip, Inc. Remote network management system
US8683024B2 (en) * 2003-11-26 2014-03-25 Riip, Inc. System for video digitization and image correction for use with a computer management system
US8650267B2 (en) 2003-12-05 2014-02-11 Hewlett-Packard Development Company, L.P. Method and system for switching between remote console sessions
US20050125648A1 (en) * 2003-12-05 2005-06-09 Luciani Luis E.Jr. System for establishing hardware-based remote console sessions and software-based remote console sessions
US7345689B2 (en) * 2003-12-19 2008-03-18 Intel Corporation Interfacing a digital display card through PCI express connector
JP4494002B2 (en) * 2003-12-19 2010-06-30 富士通コンポーネント株式会社 Switching device and switching method of switching device
JP4408692B2 (en) * 2003-12-19 2010-02-03 富士通株式会社 Communication device management program
US7996514B2 (en) * 2003-12-23 2011-08-09 Microsoft Corporation System and method for sharing information based on proximity
US20050149738A1 (en) * 2004-01-02 2005-07-07 Targosky David G. Biometric authentication system and method for providing access to a KVM system
US7827258B1 (en) * 2004-03-01 2010-11-02 American Megatrends, Inc. Method, system, and apparatus for communicating with a computer management device
US20050204015A1 (en) * 2004-03-11 2005-09-15 Steinhart Jonathan E. Method and apparatus for generation and transmission of computer graphics data
US20050202388A1 (en) * 2004-03-11 2005-09-15 Zuhl Michael A. Method and apparatus for remote interaction with a computer over a network
US20050201404A1 (en) * 2004-03-11 2005-09-15 Steinhart Jonathan E. Method and apparatus for remote interaction with a computer over a network
US7853663B2 (en) * 2004-03-12 2010-12-14 Riip, Inc. Wireless management system for control of remote devices
US7293198B2 (en) * 2004-03-25 2007-11-06 Emc Corporation Techniques for maintaining operation of data storage system during a failure
US7281150B1 (en) 2004-03-26 2007-10-09 Emc Corporation Methods and apparatus for controlling operation of a data storage system
US7734797B2 (en) * 2004-03-29 2010-06-08 Marvell International Ltd. Inter-processor communication link with manageability port
JP2005301708A (en) * 2004-04-13 2005-10-27 Hitachi Ltd Storage device system and software management method in same system
US20050257041A1 (en) * 2004-05-14 2005-11-17 Cory Wallenstein Method and apparatus for remote computer reboot
TWI257048B (en) 2004-06-04 2006-06-21 Aten Int Co Ltd Display card
US7551298B2 (en) * 2004-06-04 2009-06-23 Primax Electronics Ltd. Print control device with embedded engine simulation module and test method thereof
US7484051B2 (en) * 2004-06-14 2009-01-27 International Business Machines Corporation Apparatus, system and method for reliably updating a data group in a read-before-write data replication environment using a comparison file
US7580959B2 (en) * 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing
US20050283414A1 (en) * 2004-06-17 2005-12-22 Fernandes Curtis T Remote system management
JP2006011541A (en) * 2004-06-22 2006-01-12 Hitachi Ltd Information recording method in computer system including computer and shared storage device
US8933941B2 (en) 2004-08-23 2015-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
US20060046851A1 (en) 2004-08-24 2006-03-02 Hewlett-Packard Development Company, L.P. Remote gaming and projection
US7519749B1 (en) 2004-08-25 2009-04-14 American Megatrends, Inc. Redirecting input and output for multiple computers
US7814216B2 (en) * 2004-09-07 2010-10-12 Route 1 Inc. System and method for accessing host computer via remote computer
US20060059556A1 (en) * 2004-09-10 2006-03-16 Royer Barry L System for managing inactivity in concurrently operating executable applications
CA2583741C (en) * 2004-10-15 2014-10-14 Verisign, Inc. An algorithm to create and validate a one time password
US7613927B2 (en) * 2004-11-12 2009-11-03 Raritan Americas, Inc. System for providing secure access to KVM switch and other server management systems
US8407347B2 (en) * 2004-11-19 2013-03-26 Xiao Qian Zhang Method of operating multiple input and output devices through a single computer
US8219807B1 (en) 2004-12-17 2012-07-10 Novell, Inc. Fine grained access control for linux services
US8271785B1 (en) 2004-12-20 2012-09-18 Novell, Inc. Synthesized root privileges
US8301739B1 (en) 2004-12-23 2012-10-30 Emc Corporation Storage system initialization utility
US7698405B2 (en) * 2005-01-07 2010-04-13 Lantronix, Inc. MILARRS systems and methods
CN100351773C (en) * 2005-01-11 2007-11-28 宏正自动科技股份有限公司 Computer switcher supporting digital video frequency interface
US7490072B1 (en) 2005-02-16 2009-02-10 Novell, Inc. Providing access controls
WO2006108104A2 (en) * 2005-04-05 2006-10-12 Cohen Alexander J Multi-media search, discovery, submission and distribution control infrastructure
US7526208B2 (en) * 2005-04-26 2009-04-28 Finisar Corporation Changing transceiver module device addresses using a single host interface
US8352935B2 (en) * 2005-05-19 2013-01-08 Novell, Inc. System for creating a customized software distribution based on user requirements
US8074214B2 (en) 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
US8949404B2 (en) * 2005-05-24 2015-02-03 Hewlett-Packard Development Company, L.P. Acquiring graphical operating system post-failure screen
US8332826B2 (en) * 2005-05-26 2012-12-11 United Parcel Service Of America, Inc. Software process monitor
US7823021B2 (en) * 2005-05-26 2010-10-26 United Parcel Service Of America, Inc. Software process monitor
US7908325B1 (en) * 2005-06-20 2011-03-15 Oracle America, Inc. System and method for event-based collaboration
US7421600B2 (en) * 2005-07-29 2008-09-02 Silicon Integrated Systems Corp. Power saving method
US8788633B2 (en) 2005-08-02 2014-07-22 Hamilton Sundstrand Space Systems International, Inc. Low bandwidth remote control of an electronic device
US7487409B2 (en) * 2005-08-31 2009-02-03 International Business Machines Corporation Apparatus, system, and method for accessing system information
US8478884B2 (en) * 2005-09-30 2013-07-02 Riip, Inc. Wireless remote device management utilizing mesh topology
US8319728B2 (en) * 2005-10-17 2012-11-27 Avocent Huntsville Corporation Input-device movement to cursor movement correlator
US20070103739A1 (en) * 2005-11-09 2007-05-10 Anderson Thomas P Jr Apparatus and methods for remote viewing and scanning of microfilm
US7739726B2 (en) * 2005-11-14 2010-06-15 Route1 Inc. Portable device for accessing host computer via remote computer
US8010843B2 (en) * 2005-12-14 2011-08-30 American Megatrends, Inc. System and method for debugging a target computer using SMBus
US7423642B2 (en) * 2005-12-14 2008-09-09 Winbond Electronics Corporation Efficient video frame capturing
US20070169165A1 (en) * 2005-12-22 2007-07-19 Crull Robert W Social network-enabled interactive media player
US7852873B2 (en) * 2006-03-01 2010-12-14 Lantronix, Inc. Universal computer management interface
US8676973B2 (en) 2006-03-07 2014-03-18 Novell Intellectual Property Holdings, Inc. Light-weight multi-user browser
US7502992B2 (en) 2006-03-31 2009-03-10 Emc Corporation Method and apparatus for detecting presence of errors in data transmitted between components in a data storage system using an I2C protocol
US8089903B2 (en) * 2006-03-31 2012-01-03 Emc Corporation Method and apparatus for providing a logical separation of a customer device and a service device connected to a data storage system
JP2007280071A (en) * 2006-04-07 2007-10-25 Yokogawa Electric Corp Alarm information display
US9258124B2 (en) 2006-04-21 2016-02-09 Symantec Corporation Time and event based one time password
US8589489B2 (en) 2006-06-19 2013-11-19 Bomgar Method and system for providing secure remote access and control
US9621559B2 (en) * 2006-06-19 2017-04-11 Bomgar Corporation Network apparatus for secure remote access and control
TW200802033A (en) * 2006-06-23 2008-01-01 Alcor Micro Corp Expandable switching device of computer systems
US8645852B2 (en) 2006-06-23 2014-02-04 International Business Machines Corporation Drag and drop quoting mechanism for use with discussion forums
US20080002894A1 (en) * 2006-06-29 2008-01-03 Winbond Electronics Corporation Signature-based video redirection
US8427489B2 (en) 2006-08-10 2013-04-23 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
US8009173B2 (en) 2006-08-10 2011-08-30 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
US7783799B1 (en) 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
US20080077726A1 (en) * 2006-09-07 2008-03-27 Gilbert David W Computer remote control module, interface, system and method
EP2062115A2 (en) * 2006-09-07 2009-05-27 Powerdesk Ltd Computer remote control module, interface, system and method
US8614954B2 (en) * 2006-10-26 2013-12-24 Hewlett-Packard Development Company, L.P. Network path identification
US8010959B2 (en) * 2006-11-29 2011-08-30 Sony Ericsson Mobile Communications Ab System and method for updating device drivers
JP5028979B2 (en) * 2006-12-01 2012-09-19 富士通株式会社 Device management system, device management method and agent
GB2446455B (en) * 2007-02-08 2011-08-17 Adder Tech Ltd Video switch and method of sampling simultaneous video sources
US9024878B2 (en) * 2007-02-16 2015-05-05 Emulex Corporation Hardware cursor snooping
US7765266B2 (en) 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium, and signals for publishing content created during a communication
US7765261B2 (en) 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers
US8627211B2 (en) 2007-03-30 2014-01-07 Uranus International Limited Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication
US7950046B2 (en) 2007-03-30 2011-05-24 Uranus International Limited Method, apparatus, system, medium, and signals for intercepting a multiple-party communication
US8702505B2 (en) 2007-03-30 2014-04-22 Uranus International Limited Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication
US8060887B2 (en) 2007-03-30 2011-11-15 Uranus International Limited Method, apparatus, system, and medium for supporting multiple-party communications
CN101291231A (en) * 2007-04-17 2008-10-22 鸿富锦精密工业(深圳)有限公司 Network appliance and restarting method thereof
US20080273113A1 (en) * 2007-05-02 2008-11-06 Windbond Electronics Corporation Integrated graphics and KVM system
US20080288781A1 (en) * 2007-05-18 2008-11-20 Richard Lee Lawson Systems and methods for secure password change
US20090006261A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Portable device for carrying licenses
JP5127366B2 (en) 2007-08-29 2013-01-23 富士通コンポーネント株式会社 Information processing apparatus, KVM switch, server, and control program
US7774518B2 (en) 2007-09-19 2010-08-10 Aten International Co., Ltd. Method for switching of KVM switch ports and related device
US20090080538A1 (en) * 2007-09-20 2009-03-26 Aten International Co., Ltd. Method and Apparatus for Decoding a Video Signal
US20090093245A1 (en) * 2007-10-04 2009-04-09 Chunghwa United Television Co., Ltd. Method of protecting multimedia unit against abnormal conditions and protection system therefor
US20090091462A1 (en) * 2007-10-04 2009-04-09 Chunghwa United Television Co., Ltd. Method of restarting an electric home appliance in an energy-saving manner and system therefor
JP5008007B2 (en) * 2007-11-21 2012-08-22 富士通コンポーネント株式会社 Information processing apparatus, remote system, program, and computer-readable recording medium
TW200926748A (en) * 2007-12-11 2009-06-16 Inventec Appliances Corp Procedure of phone guard
US8793786B2 (en) * 2008-02-08 2014-07-29 Microsoft Corporation User indicator signifying a secure mode
US8266637B2 (en) * 2008-03-03 2012-09-11 Microsoft Corporation Privacy modes in a remote desktop environment
US20090249214A1 (en) * 2008-03-31 2009-10-01 Best Steven F Providing a Shared Buffer Between Multiple Computer Terminals
US8031722B1 (en) 2008-03-31 2011-10-04 Emc Corporation Techniques for controlling a network switch of a data storage system
US20090249219A1 (en) * 2008-03-31 2009-10-01 Best Steven F Providing a Shared Desktop Interface of Multiple Computer Terminals
JP5104544B2 (en) * 2008-05-23 2012-12-19 富士通株式会社 Key input processing apparatus and key input processing method
JP2009288935A (en) * 2008-05-28 2009-12-10 Brother Ind Ltd Device management system and program
CN101645779A (en) * 2008-08-08 2010-02-10 鸿富锦精密工业(深圳)有限公司 Network data transmission equipment
TW201007469A (en) * 2008-08-15 2010-02-16 Asustek Comp Inc Computer with remote mangement system
US7930447B2 (en) 2008-10-17 2011-04-19 International Business Machines Corporation Listing windows of active applications of computing devices sharing a keyboard based upon requests for attention
JP4634499B2 (en) * 2008-12-01 2011-02-16 富士通コンポーネント株式会社 Image display method and image display program
US20100251375A1 (en) * 2009-03-24 2010-09-30 G2, Inc. Method and apparatus for minimizing network vulnerability
US8559755B2 (en) * 2009-04-07 2013-10-15 Citrix Systems, Inc. Methods and systems for prioritizing dirty regions within an image
EP2419854A4 (en) * 2009-04-17 2014-05-21 Siemens Ag Monitoring an automation system
US20100268521A1 (en) * 2009-04-17 2010-10-21 Rainer Heller Monitoring An Automation System
US8694563B1 (en) * 2009-04-18 2014-04-08 Hewlett-Packard Development Company, L.P. Space recovery for thin-provisioned storage volumes
US10565065B2 (en) 2009-04-28 2020-02-18 Getac Technology Corporation Data backup and transfer across multiple cloud computing providers
US9760573B2 (en) 2009-04-28 2017-09-12 Whp Workflow Solutions, Llc Situational awareness
US10419722B2 (en) 2009-04-28 2019-09-17 Whp Workflow Solutions, Inc. Correlated media source management and response control
US8311983B2 (en) * 2009-04-28 2012-11-13 Whp Workflow Solutions, Llc Correlated media for distributed sources
US8271704B2 (en) 2009-06-16 2012-09-18 International Business Machines Corporation Status information saving among multiple computers
US7984323B2 (en) * 2009-07-17 2011-07-19 International Business Machines Corporation Apparatus, system, and method for providing a backup configuration image to a programmable hardware device
US9104452B2 (en) * 2009-07-27 2015-08-11 Microsoft Technology Licensing, Llc Hybrid remote sessions
US8519960B2 (en) * 2009-09-17 2013-08-27 Aten International Co., Ltd. Method and apparatus for switching of KVM switch ports using gestures on a touch panel
US8693485B2 (en) * 2009-10-14 2014-04-08 Dell Products, Lp Virtualization aware network switch
US20110161721A1 (en) 2009-12-30 2011-06-30 Dominic Fulginiti Method and system for achieving a remote control help session on a computing device
US9229737B2 (en) * 2010-01-27 2016-01-05 Hewlett Packard Enterprise Development Lp Method and system of emulating devices across selected communication pathways through a terminal session
US20110208963A1 (en) * 2010-02-24 2011-08-25 Aviv Soffer Secured kvm system having remote controller-indicator
AU2011242390A1 (en) * 2010-04-21 2012-12-13 James Ross An apparatus for use in providing technical support for a computing device
JP2011244250A (en) * 2010-05-19 2011-12-01 Mitsubishi Electric Corp Display device, display method, and remote control device
US8410994B1 (en) 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
JP5761331B2 (en) * 2011-03-22 2015-08-12 富士通株式会社 I / O control device, information processing system, and log collection program
GB2491165A (en) 2011-05-26 2012-11-28 Realvnc Ltd Mobile device having a priority adjusting thread for link wi th remote terminal
US10133361B2 (en) * 2011-06-06 2018-11-20 International Business Machines Corporation Device driver-level approach for utilizing a single set of interface input devices for multiple computing devices
US8868975B2 (en) * 2011-07-26 2014-10-21 International Business Machines Corporation Testing and operating a multiprocessor chip with processor redundancy
US10042656B2 (en) 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
US9104508B2 (en) * 2012-01-18 2015-08-11 International Business Machines Corporation Providing by one program to another program access to a warning track facility
US8850450B2 (en) * 2012-01-18 2014-09-30 International Business Machines Corporation Warning track interruption facility
KR101185896B1 (en) * 2012-02-27 2012-09-26 (주)시스윈일렉트로닉스 Input control apparatus and method for realizing remote control system
US20130300557A1 (en) * 2012-05-09 2013-11-14 International Business Machines Corporation Alert and response messaging between devices
JP5197868B2 (en) * 2012-05-22 2013-05-15 富士通コンポーネント株式会社 Information processing apparatus, KVM switch, and control program
US20130339768A1 (en) * 2012-06-13 2013-12-19 Chiu-Ming LEE Ip power controller
US9313602B2 (en) 2012-10-24 2016-04-12 Beta Brain, Inc. Remotely accessing a computer system
US9846906B1 (en) 2013-02-28 2017-12-19 Jpmorgan Chase Bank, N.A. Digital bank branch
DE102013203905B4 (en) * 2013-03-07 2016-12-29 Telemotive AG Processor-controlled storage device and method
US9551768B2 (en) 2013-03-15 2017-01-24 East Carolina University NMR method for monitoring changes in the core of lipoprotein particles in metabolism and disease
US9780966B2 (en) 2013-04-10 2017-10-03 Bomgar Corporation Network apparatus for secure remote access and control
US9363264B2 (en) * 2013-11-25 2016-06-07 At&T Intellectual Property I, L.P. Networked device access control
US10049202B1 (en) 2014-03-25 2018-08-14 Amazon Technologies, Inc. Strong authentication using authentication objects
US10050787B1 (en) * 2014-03-25 2018-08-14 Amazon Technologies, Inc. Authentication objects with attestation
US9264419B1 (en) 2014-06-26 2016-02-16 Amazon Technologies, Inc. Two factor authentication with authentication objects
CN106164924B (en) * 2014-06-26 2020-03-06 维谛信息技术系统有限公司 System and method for forming KVM device for data leakage prevention secure peripheral sharing switch
US9819488B2 (en) * 2014-07-10 2017-11-14 Ohio State Innovation Foundation Generation of encryption keys based on location
US20160170552A1 (en) * 2014-12-11 2016-06-16 Elan Microelectronics Corporation Processing method for touch signal and computer system thereof
JP2016143029A (en) * 2015-02-05 2016-08-08 シナプティクス・ディスプレイ・デバイス合同会社 Semiconductor device and portable terminal
US10397233B2 (en) 2015-04-20 2019-08-27 Bomgar Corporation Method and apparatus for credential handling
US10229262B2 (en) 2015-04-20 2019-03-12 Bomgar Corporation Systems, methods, and apparatuses for credential handling
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US10514766B2 (en) * 2015-06-09 2019-12-24 Dell Products L.P. Systems and methods for determining emotions based on user gestures
CN104994350B (en) * 2015-07-07 2019-01-04 小米科技有限责任公司 Information query method and device
US10592438B2 (en) * 2015-11-03 2020-03-17 American Megatrends International, Llc Firmware configuration through emulated commands
CN107295153B (en) * 2016-03-31 2020-12-22 宇龙计算机通信科技(深圳)有限公司 Management method and terminal for switching login accounts
US10277671B2 (en) * 2016-06-03 2019-04-30 Logitech Europe S.A. Automatic multi-host discovery in a flow-enabled system
US11579708B2 (en) 2017-04-28 2023-02-14 Hewlett-Packard Development Company, L.P. Keyboard emulation
CN107220190B (en) * 2017-05-25 2024-03-08 无锡英斯特微电子有限公司 System and method for realizing bidirectional information interaction with host driver by using custom USB mouse and keyboard
CN107562221B (en) * 2017-08-21 2019-11-15 北京航空航天大学 PS/2 keyboard and mouse interface online experiment method based on FPGA online experiment platform
US10996742B2 (en) * 2017-10-17 2021-05-04 Logitech Europe S.A. Input device for AR/VR applications
US10775458B2 (en) 2018-03-05 2020-09-15 Texas Tech University System Method and system for non-invasive measurement of metabolic health
US10628077B2 (en) * 2018-03-23 2020-04-21 Hamilton Sundstrand Corporation System to acquire analog to digital (ADC) data using high end timer (N2HET) and high end timer transfer unit (HTU)
KR102050068B1 (en) * 2018-06-14 2019-11-28 (주)시스윈일렉트로닉스 Image delay elimnation apparatus of mouse for remote control system
CN110865890B (en) * 2018-08-28 2022-04-26 龙芯中科技术股份有限公司 Event processing method and device based on remote connection and storage medium
IL265789A (en) 2019-04-01 2020-10-28 Fibernet Ltd Device for secure video streaming
IL266118B2 (en) 2019-04-17 2023-08-01 Fibernet Ltd Device for secure unidirectional audio transmission
CN110161930B (en) * 2019-06-05 2021-11-09 安徽三实信息技术服务有限公司 Data monitoring system and data monitoring method thereof
KR20210128628A (en) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 Electronic Apparatus, and Data Storage Apparatus and Operation Method Therefor
US11334173B2 (en) 2020-07-13 2022-05-17 High Sec Labs Ltd. System and method of polychromatic identification for a KVM switch
US10922246B1 (en) 2020-07-13 2021-02-16 High Sec Labs Ltd. System and method of polychromatic identification for a KVM switch
CN112235417B (en) * 2020-11-09 2022-06-10 北京百度网讯科技有限公司 Method and device for sending debugging instruction
CN112558988A (en) * 2020-11-16 2021-03-26 中国航发西安动力控制科技有限公司 Remote filling method and filling equipment for engine control software
US11379253B2 (en) 2020-11-30 2022-07-05 International Business Machines Corporation Training chatbots for remote troubleshooting

Family Cites Families (359)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB476935A (en) 1938-05-18 1937-12-15 Alan Dower Blumlein Improvements in or relating to television systems
US5742677A (en) 1995-04-03 1998-04-21 Scientific-Atlanta, Inc. Information terminal having reconfigurable memory
US3541541A (en) 1967-06-21 1970-11-17 Stanford Research Inst X-y position indicator for a display system
US3634830A (en) 1969-06-13 1972-01-11 Ibm Modular computer sharing system with intercomputer communication control apparatus
US3955188A (en) 1971-01-04 1976-05-04 Honeywell Information Systems Inc. Encoding technique for enabling a device to process different types of digital information transmitted along a single information channel
US3774158A (en) 1972-01-06 1973-11-20 Rca Corp Multiple terminal display system
US4081797A (en) 1972-11-03 1978-03-28 Heath Company On-screen channel display
US4150429A (en) 1974-09-23 1979-04-17 Atex, Incorporated Text editing and display system having a multiplexer circuit interconnecting plural visual displays
IT1047329B (en) 1975-09-30 1980-09-10 C Olivetto E C S P A Ing REMOTE IGNITION AND INITIALIZATION DEVICE OF A TERMINAL
US4124889A (en) 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
US4078249A (en) 1976-06-01 1978-03-07 Raytheon Company Digital display composition system
US4054911A (en) * 1976-06-03 1977-10-18 Idr, Inc. Information retrieval system for providing downstream loading of remote data and processing control thereof
US4101959A (en) * 1976-10-22 1978-07-18 Informer, Inc. Terminal display and storage system
US4177514A (en) * 1976-11-12 1979-12-04 General Electric Company Graph architecture information processing system
US4310720A (en) 1978-03-31 1982-01-12 Pitney Bowes Inc. Computer accessing system
CA1140690A (en) 1978-07-19 1983-02-01 Everhard H.B. Bartelink Remote supervisory system for monitoring telephone subscriber premises
US4213015A (en) 1978-12-04 1980-07-15 Reliance Telecommunication Electronics Company Failure alarm for a transmission line communications system
US4243984A (en) 1979-03-08 1981-01-06 Texas Instruments Incorporated Video display processor
GB2046051B (en) 1979-03-29 1983-01-26 Philips Electronic Associated Real time histogram modification system for image processing
US4357624A (en) 1979-05-15 1982-11-02 Combined Logic Company Interactive video production system
US4371752A (en) 1979-11-26 1983-02-01 Ecs Telecommunications, Inc. Electronic audio communication system
US4313176A (en) 1980-03-07 1982-01-26 The Lockwood Association, Inc. Data controlled switch for telephone inputs to a computer
US4862268A (en) * 1980-03-31 1989-08-29 General Instrument Corporation Addressable cable television control system with video format data transmission
US4371751A (en) 1980-04-07 1983-02-01 Newart Electronic Sciences, Inc. Automatic telephonic user emergency message transmitting apparatus
US4317114A (en) 1980-05-12 1982-02-23 Cromemco Inc. Composite display device for combining image data and method
JPS6020755B2 (en) 1980-12-26 1985-05-23 松下電器産業株式会社 screen display device
US4593323A (en) 1981-04-09 1986-06-03 Ricoh Company, Ltd. Facsimile system control apparatus
US4404551A (en) 1981-04-14 1983-09-13 Reuters Limited Plural video keyboard access system
US4381427A (en) 1981-06-16 1983-04-26 Northern Telecom Limited Subscriber loop system for voice and data
US4371702A (en) 1982-02-16 1983-02-01 E. I. Du Pont De Nemours And Company Vapor phase oxidation of n-butane to maleic anhydride
US4479122A (en) 1982-03-05 1984-10-23 At&T Bell Laboratories Remotely controlled switched access to the console port of an electronic computer
US4498098A (en) 1982-06-02 1985-02-05 Digital Equipment Corporation Apparatus for combining a video signal with graphics and text from a computer
US4599611A (en) 1982-06-02 1986-07-08 Digital Equipment Corporation Interactive computer-based information display system
US4460918A (en) 1982-07-14 1984-07-17 Zenith Electronics Corporation Automatic switching circuit for a dual mode television receiver
US4461205A (en) 1982-07-30 1984-07-24 Allis-Chalmers Corp. Combination lighting and filtering unit for a clean room
US4475193A (en) 1982-09-30 1984-10-02 Astech, Inc. Power line carrier multi telephone extension system for full duplex conferencing between telephones
US4555775B1 (en) 1982-10-07 1995-12-05 Bell Telephone Labor Inc Dynamic generation and overlaying of graphic windows for multiple active program storage areas
US4533910A (en) 1982-11-02 1985-08-06 Cadtrak Corporation Graphics display system with viewports of arbitrary location and content
US4503291A (en) 1982-11-12 1985-03-05 Dasa Corporation Repertory dialer with efficient data storage
JPS59114631A (en) 1982-12-22 1984-07-02 Hitachi Ltd Terminal control device
US4641262A (en) 1983-03-07 1987-02-03 International Business Machines Corporation Personal computer attachment for host system display station
US4547880A (en) 1983-05-13 1985-10-15 Able Computer Communication control apparatus for digital devices
US4653618A (en) * 1983-05-25 1987-03-31 International Telephone And Telegraph Corporation Twin tube shock absorber gas seal
US4665501A (en) 1983-09-30 1987-05-12 Esprit Systems, Inc. Workstation for local and remote data processing
DE3485007D1 (en) 1983-10-14 1991-10-10 Hitachi Ltd METHOD AND DEVICE FOR THE SCANING AND PROCESSING OF A VIDEO SIGNAL.
JPS6089278A (en) 1983-10-21 1985-05-20 Pioneer Electronic Corp Picture information processing system
US4641205A (en) 1984-03-05 1987-02-03 Rca Corporation Television system scheduler with on-screen menu type programming prompting apparatus
US4692941A (en) 1984-04-10 1987-09-08 First Byte Real-time text-to-speech conversion system
US4580165A (en) 1984-04-12 1986-04-01 General Electric Company Graphic video overlay system providing stable computer graphics overlayed with video image
US4823256A (en) 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4716541A (en) 1984-08-02 1987-12-29 Quatse Jesse T Boolean processor for a progammable controller
US4870614A (en) 1984-08-02 1989-09-26 Quatse Jesse T Programmable controller ("PC") with co-processing architecture
EP0174099B1 (en) 1984-08-06 1993-07-14 Texas Instruments Incorporated Fiber optic terminal interface
US4660073A (en) 1984-12-18 1987-04-21 Eastman Kodak Company Video apparatus for selectively processing either composite or component color video signals
US4630284A (en) 1984-12-28 1986-12-16 Gte Laboratories Incorporated Low power line driving digital transmission system
US4631588A (en) 1985-02-11 1986-12-23 Ncr Corporation Apparatus and its method for the simultaneous presentation of computer generated graphics and television video signals
US4680622A (en) 1985-02-11 1987-07-14 Ncr Corporation Apparatus and method for mixing video signals for simultaneous presentation
US4639765A (en) 1985-02-28 1987-01-27 Texas Instruments Incorporated Synchronization system for overlay of an internal video signal upon an external video signal
US4633297A (en) 1985-04-01 1986-12-30 Zenith Electronics Corporation Television receiver having teletext processor with ROM for on-screen message
US4710917A (en) 1985-04-08 1987-12-01 Datapoint Corporation Video conferencing network
US4718025A (en) 1985-04-15 1988-01-05 Centec Corporation Computer management control system
US4622589A (en) 1985-04-15 1986-11-11 Rca Corporation Television receiver on-screen character display
US4656318A (en) 1985-05-09 1987-04-07 Hewlett-Packard Company Modem with power-off ring detection
US4677484A (en) 1985-05-10 1987-06-30 Rca Corporation Stabilizing arrangement for on-screen display
US4760391A (en) 1985-05-10 1988-07-26 Rca Licensing Corporation Tri-state on-screen display system
US4706121B1 (en) 1985-07-12 1993-12-14 Insight Telecast, Inc. Tv schedule system and process
US4677488A (en) 1985-07-25 1987-06-30 Zenith Electronics Corporation Video system with television receiver and teletext processor capable of switching external RGB signals
US4709267A (en) 1985-11-07 1987-11-24 Rca Corporation Synchronizing circuit with improved interlace arrangement
US4728948A (en) 1985-11-15 1988-03-01 Fields Gary C Remote monitor and control system
US4748656A (en) 1986-03-21 1988-05-31 American Telephone And Telegraph Company Personal computer--as an interface between a telephone station set and a business communication system
US4939507A (en) 1986-04-28 1990-07-03 Xerox Corporation Virtual and emulated objects for use in the user interface of a display screen of a display processor
US4731815A (en) 1986-05-28 1988-03-15 Fortel Corporation Reset system for telephone answering machine in the event of a power failure
JP2585535B2 (en) 1986-06-02 1997-02-26 株式会社日立製作所 Process connection method in compound computer system
US4833625A (en) 1986-07-09 1989-05-23 University Of Arizona Image viewing station for picture archiving and communications systems (PACS)
US4807184A (en) 1986-08-11 1989-02-21 Ltv Aerospace Modular multiple processor architecture using distributed cross-point switch
JPH087567B2 (en) 1986-08-12 1996-01-29 株式会社日立製作所 Image display device
SE454730B (en) 1986-09-19 1988-05-24 Asea Ab PROCEDURE AND COMPUTER EQUIPMENT FOR SHORT-FREE REPLACEMENT OF THE ACTIVITY FROM ACTIVE DEVICES TO EMERGENCY UNITS IN A CENTRAL UNIT
US5230066A (en) 1986-09-19 1993-07-20 Mitsubishi Denki Kabushiki Kaisha Microcomputer
US4709258A (en) 1986-09-26 1987-11-24 Motorola Inc. Circuit and method for adding green synchronization pulse to red and blue video signals
US4907146A (en) 1986-10-07 1990-03-06 Giancarlo Caporali Interactive video network between one master computer and a plurality of slave computers
US4862154A (en) 1986-10-31 1989-08-29 International Business Machines Corporation Image display processor for graphics workstation
CA1258912A (en) 1986-11-20 1989-08-29 Stephen J. King Interactive real-time video processor with zoom, pan and scroll capability
US4736250A (en) 1986-11-28 1988-04-05 Tektronix, Inc. Digital camera frame capture circuit
IT1215206B (en) * 1986-12-18 1990-01-31 Sip INTERFACE MODULE FOR OVERLAPPING ALPHANUMERIC CHARACTERS AND RGB VIDEO SIGNAL
US4878196A (en) 1986-12-18 1989-10-31 Rose Frederick A Communications management system
US5014218A (en) 1986-12-24 1991-05-07 Halliburton Company Using a remote control computer connected to a vocal control computer and a monitor computer
US5062060A (en) 1987-01-05 1991-10-29 Motorola Inc. Computer human interface comprising user-adjustable window for displaying or printing information
EP0275090B1 (en) 1987-01-14 1993-11-10 Pioneer Electronic Corporation Method of recording and reproducing color video signals
JP2509597B2 (en) 1987-01-30 1996-06-19 株式会社東芝 Video signal transmission system
US4964065A (en) 1987-03-12 1990-10-16 Decibel Products, Inc. Computer-controlled electronic system monitor
EP0288169A3 (en) 1987-04-07 1990-04-25 Possum Controls Limited Control system
US4768083A (en) 1987-04-29 1988-08-30 Rca Licensing Corporation Digital TV having on-screen display feature
US5029111A (en) 1987-04-29 1991-07-02 Prime Computer, Inc. Shared bit-plane display system
JPH0715013Y2 (en) 1987-06-25 1995-04-10 三菱電機株式会社 Color display device
KR900002792B1 (en) 1987-07-30 1990-04-30 주식회사 금성사 Automatic selecting circuit for synchronous signal
US5353409A (en) 1987-09-11 1994-10-04 Cybex Corporation Computer-monitor extended range communications link
US5576723A (en) 1987-09-11 1996-11-19 Cybex Computer Products Corporation VGA signal converter for converting VGA color signals to VGA monochrome signals
US4885718A (en) 1987-09-11 1989-12-05 Cybex Corporation Extended communications link for keyboard and display units remotely located from a computer
US5268676A (en) 1987-09-11 1993-12-07 Cybex Corporation Computer-monitor extended range communications link
US5465105A (en) 1987-09-11 1995-11-07 Cybex Corporation Autosensing switching system
US4907079A (en) 1987-09-28 1990-03-06 Teleview Rating Corporation, Inc. System for monitoring and control of home entertainment electronic devices
SE459517B (en) * 1987-10-09 1989-07-10 Maskinteknik Foersaeljnings Ol DEVICE FOR MATCHING DETAILS
US4845722A (en) 1987-10-16 1989-07-04 Digital Equipment Corporation Computer interconnect coupler employing crossbar switching
US5121486A (en) 1987-11-20 1992-06-09 Hitachi, Ltd Network control system for dynamically switching a logical connection between an identified terminal device and an indicated processing unit
US4855813A (en) 1987-12-11 1989-08-08 Russell David P Television image processing system having capture, merge and display capability
US4879716A (en) 1987-12-23 1989-11-07 Bull Hn Information Systems Inc. Resilient data communications system
US4939509A (en) 1988-01-25 1990-07-03 At&T Company Data conferencing arrangement for stations having keyboards and displays, using a keyboard buffer and a screen buffer
GB8801628D0 (en) 1988-01-26 1988-02-24 British Telecomm Evaluation system
US4972504A (en) 1988-02-11 1990-11-20 A. C. Nielsen Company Marketing research system and method for obtaining retail data on a real time basis
US4800429A (en) 1988-03-14 1989-01-24 Motorola, Inc. Auto sync polarity control circuit for use with monitor
US4835613A (en) 1988-04-08 1989-05-30 The Grass Valley Group, Inc. Transition status display for video switcher
US5043866A (en) 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US4872004A (en) 1988-05-02 1989-10-03 Sun Electric Corporation Plural source arbitration system
US5280583A (en) 1988-05-13 1994-01-18 Hitachi, Ltd. System and method for performing interlocution at a plurality of terminals connected to communication network
US4873712A (en) 1988-05-19 1989-10-10 Alliance Research Corporation Telephone controlled interrupter circuit
US5251301A (en) 1988-05-27 1993-10-05 Pc Connection, Inc. Computer remote control through a video signal
CA1341310C (en) 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
US4949248A (en) 1988-07-15 1990-08-14 Caro Marshall A System for shared remote access of multiple application programs executing in one or more computers
US5144548A (en) 1988-07-15 1992-09-01 Iris Technologies, Inc. Routing switcher
US4977455B1 (en) 1988-07-15 1993-04-13 System and process for vcr scheduling
JP2541631B2 (en) 1988-07-26 1996-10-09 ファナック株式会社 CNC remote diagnosis method
US5036315A (en) 1988-09-06 1991-07-30 Spectragraphics, Inc. Simultaneous display of interleaved windowed video information from multiple asynchronous computers on a single video monitor
US5222212A (en) 1988-09-16 1993-06-22 Chips And Technologies, Inc. Fakeout method and circuitry for displays
JPH0290335A (en) 1988-09-28 1990-03-29 Hitachi Ltd Remote operation control system for computer system
US5140435A (en) 1988-10-24 1992-08-18 Victor Company Of Japan, Ltd. Video signal frame search apparatus for selection of a desired frame
US4988984A (en) 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system
US5051817A (en) 1988-11-18 1991-09-24 Rohm Co., Ltd. Superimposing system
US5036484A (en) 1988-11-23 1991-07-30 International Business Machines Corporation Personal computer/host emulation system for handling host data with personal computer application programs at personal computers
US4937850A (en) 1988-12-22 1990-06-26 Illinois Bell Telephone Company Programmable automatic call-thru set
KR920002049B1 (en) 1988-12-31 1992-03-10 삼성전자 주식회사 Multi-screen execution method
US4953159A (en) 1989-01-03 1990-08-28 American Telephone And Telegraph Company Audiographics conferencing arrangement
US4994912A (en) 1989-02-23 1991-02-19 International Business Machines Corporation Audio video interactive display
US5132788A (en) 1989-02-25 1992-07-21 Minolta Camera Kabushiki Kaisha Image processing apparatus for processing respective image data obtained by reading an outputting image signal corresponding to pixels forming the original image
US4996597A (en) 1989-04-20 1991-02-26 Rca Licensing Corporation User programmable switching arrangement
US5068730A (en) 1989-04-20 1991-11-26 Thomson Consumer Electronics, Inc. Video control circuit
US4962427A (en) 1989-04-20 1990-10-09 Motorola Inc. TV receiver including multistandard OSD
US4953027A (en) 1989-04-24 1990-08-28 Motorola Inc. OSD in a TV receiver including a window, smoothing and edge enhancing
WO1990013865A1 (en) 1989-04-28 1990-11-15 Softel, Inc. Method and apparatus for remotely controlling and monitoring the use of computer software
US5117225A (en) 1989-05-01 1992-05-26 Summit Micro Design Computer display screen monitoring system
US4901036A (en) 1989-06-29 1990-02-13 Motorola, Inc. Frequency synthesizer with an interface controller and buffer memory
KR910004021A (en) 1989-07-13 1991-02-28 강진구 OSD automatic color conversion circuit
US5315512A (en) 1989-09-01 1994-05-24 Montefiore Medical Center Apparatus and method for generating image representations of a body utilizing an ultrasonic imaging subsystem and a three-dimensional digitizer subsystem
US5214785A (en) 1989-09-27 1993-05-25 Third Point Systems, Inc. Controller with keyboard emulation capability for control of host computer operation
US5220312A (en) 1989-09-29 1993-06-15 International Business Machines Corporation Pixel protection mechanism for mixed graphics/video display adaptors
KR910009072A (en) 1989-10-05 1991-05-31 강진구 Step control method using PWM
US5170466A (en) 1989-10-10 1992-12-08 Unisys Corporation Storage/retrieval system for document
US5099319A (en) 1989-10-23 1992-03-24 Esch Arthur G Video information delivery method and apparatus
JPH03137686A (en) 1989-10-24 1991-06-12 Mazda Motor Corp Touch panel device
US4949169A (en) 1989-10-27 1990-08-14 International Business Machines Corporation Audio-video data interface for a high speed communication link in a video-graphics display window environment
JP2804125B2 (en) 1989-11-08 1998-09-24 株式会社日立製作所 Fault monitoring device and control method for information processing system
US4972452A (en) 1989-11-09 1990-11-20 Aspect Telecommunications Corporation Digital bypass for telephone system
JPH03160494A (en) 1989-11-10 1991-07-10 Internatl Business Mach Corp <Ibm> Datacprocessing device
US5051720A (en) 1989-11-13 1991-09-24 Secure Telecom, Inc. Remote control system using power line of remote site
US5128766A (en) 1989-11-30 1992-07-07 Goldstar Co., Ltd. Multiple television receiver with teletext function
US5327243A (en) 1989-12-05 1994-07-05 Rasterops Corporation Real time video converter
US5594467A (en) * 1989-12-06 1997-01-14 Video Logic Ltd. Computer based display system allowing mixing and windowing of graphics and video
US5333286A (en) 1989-12-13 1994-07-26 Joseph Weinberger Two way copier monitoring system
US5084875A (en) 1989-12-13 1992-01-28 Joseph Weinberger System for automatically monitoring copiers from a remote location
JP2793308B2 (en) 1989-12-21 1998-09-03 株式会社日立製作所 Dialogue system
US5153886A (en) 1990-01-31 1992-10-06 Hewlett Packard Company Visual display signal processing system and method
US5161156A (en) 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
JP3092135B2 (en) 1990-03-13 2000-09-25 株式会社日立製作所 Application execution control method
JP2698685B2 (en) 1990-03-27 1998-01-19 株式会社東芝 Computer system remote control device
US5012511A (en) 1990-04-06 1991-04-30 Bell Atlantic Network Services, Inc. Method of and system for control of special services by remote access
JPH03293845A (en) 1990-04-11 1991-12-25 Toshiba Corp Dialing device for telephone terminal coping with power failure
JPH05324821A (en) 1990-04-24 1993-12-10 Sony Corp High-resolution video and graphic display device
US5185670A (en) 1990-04-26 1993-02-09 Gold Star Co., Ltd. Zooming position on-screen display device for camcorders
US5075766A (en) 1990-04-30 1991-12-24 Sendelweck Gene K Television on-screen character display system with provisions for edging characters
US5276789A (en) 1990-05-14 1994-01-04 Hewlett-Packard Co. Graphic display of network topology
US5274753A (en) 1990-05-24 1993-12-28 Apple Computer, Inc. Apparatus for distinguishing information stored in a frame buffer
US5260778A (en) 1990-06-26 1993-11-09 General Instrument Corporation Apparatus for selective distribution of messages over a communications network
US5305435A (en) 1990-07-17 1994-04-19 Hewlett-Packard Company Computer windows management system and method for simulating off-screen document storage and retrieval
US5193174A (en) 1990-07-23 1993-03-09 International Business Machines Corporation System for automatically redirecting information to alternate system console in response to the comparison of present and default system configuration in personal computer system
JP3222456B2 (en) 1990-07-30 2001-10-29 株式会社東芝 Video monitoring system, transmitting device, receiving device, and video monitoring method
US5214421A (en) 1990-07-30 1993-05-25 Support Systems International Corp. Automatic keyboard and monitor switching device
US5220380A (en) 1990-08-10 1993-06-15 Minolta Camera Kabushiki Kaisha Control system for copying machines with improved communication function for centralized control unit
US5349675A (en) 1990-09-04 1994-09-20 International Business Machines Corporation System for directly displaying remote screen information and providing simulated keyboard input by exchanging high level commands
US5388252A (en) 1990-09-07 1995-02-07 Eastman Kodak Company System for transparent monitoring of processors in a network with display of screen images at a remote station for diagnosis by technical support personnel
US5557302A (en) 1990-09-10 1996-09-17 Next, Inc. Method and apparatus for displaying video data on a computer display
ES2366191T3 (en) 1990-09-10 2011-10-18 Starsight Telecast, Inc. USER INTERFACE FOR TELEVISION PROGRAMMING SYSTEM.
US5287453A (en) 1990-09-18 1994-02-15 Bull Hn Information Systems, Inc. Fast remote file access facility for distributing file access requests in a closely coupled computer system
GB2249645B (en) 1990-11-07 1994-08-17 Granada Computer Services Coupling device
US5327156A (en) 1990-11-09 1994-07-05 Fuji Photo Film Co., Ltd. Apparatus for processing signals representative of a computer graphics image and a real image including storing processed signals back into internal memory
US5144651A (en) 1990-11-19 1992-09-01 Exxon Research And Engineering Company Reduced time remote access method and system
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
KR930008172B1 (en) 1990-11-28 1993-08-26 주식회사 금성사 Teletext receiving circuit of vcr
US5237305A (en) 1990-11-30 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Home bus system
US5091774A (en) 1990-11-30 1992-02-25 Eastman Kodak Company Method and apparatus for providing sync on R-G-B video signals
JPH0727504B2 (en) 1990-12-10 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション System for defining network configuration, method for generating configuration parameters for network, and system for configuring network
US5261079A (en) 1990-12-18 1993-11-09 International Business Machines Corporation Interface for keyboard emulation provided by an operating system
US5198806A (en) 1990-12-31 1993-03-30 Lord & Sebastian, Inc. Remote control and secure access for personal computers
KR930011847B1 (en) 1991-02-01 1993-12-21 주식회사 금성사 Cctv apparatus
FR2672707B1 (en) 1991-02-13 1993-06-04 Commande Electronique METHOD FOR REMOTE MAINTENANCE OF A COMPUTER WORKSTATION AND SYSTEM FOR ITS IMPLEMENTATION.
US6692359B1 (en) 1991-02-15 2004-02-17 America Online, Inc. Method of interfacing on a computer network by visual representations of users, method of interacting and computer network
US5617547A (en) 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
US5495474A (en) 1991-03-29 1996-02-27 International Business Machines Corp. Switch-based microchannel planar apparatus
US5347622A (en) 1991-04-12 1994-09-13 Accom Inc. Digital image compositing system and method
US5375163A (en) 1991-04-25 1994-12-20 Matsushita Electric Industrial Co., Ltd. Multi-channel cordless telephone system for maintaining master-slave communication
GB9109613D0 (en) 1991-05-03 1991-06-26 Thomson Consumer Electronics A television system having an ultrablack video signal blanking level for an on-screen character display
US5233642A (en) 1991-05-24 1993-08-03 Omnitronix, Inc. Cellular telephone usage monitoring system
KR940001742B1 (en) 1991-05-27 1994-03-05 삼성전자 주식회사 High speed video color printer
US5216704A (en) 1991-06-12 1993-06-01 Coherent Communications Systems Corp. Method for remote power fail detection and maintaining continuous operation for data and voice devices operating over local loops
CA2072198A1 (en) 1991-06-24 1992-12-25 Scott C. Farrand Remote console emulator for computer system manager
US5283905A (en) 1991-06-24 1994-02-01 Compaq Computer Corporation Power supply for computer system manager
US5351067A (en) 1991-07-22 1994-09-27 International Business Machines Corporation Multi-source image real time mixing and anti-aliasing
US5386574A (en) 1991-07-26 1995-01-31 Cybex Corporation Temperature compensated extended range computer communications link
US5323420A (en) 1991-07-26 1994-06-21 Cybex Corporation Circuitry for regenerating digital signals in extended distance communications systems
US5257390A (en) 1991-07-26 1993-10-26 Cybex Corporation Extended range computer communications link
US5311582A (en) 1991-08-06 1994-05-10 International Teleservice Corporation Integrated cocot and regulated paystation telephone system
JPH0546568A (en) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> Dispersion application execution device and method
US5260875A (en) 1991-08-20 1993-11-09 Micro-Trak System, Inc. Networked agricultural monitoring and control system
US5257384A (en) 1991-09-09 1993-10-26 Compaq Computer Corporation Asynchronous protocol for computer system manager
EP0532102B1 (en) 1991-09-11 1998-04-22 Lucent Technologies Inc. System for controlling data access to a data apparatus
JP2793390B2 (en) 1991-09-13 1998-09-03 日本電気アイシーマイコンシステム株式会社 Sync separation circuit
JPH0589069A (en) 1991-09-30 1993-04-09 Toshiba Corp Dispersion type control system
US5404393A (en) 1991-10-03 1995-04-04 Viscorp Method and apparatus for interactive television through use of menu windows
US5396546A (en) 1991-10-03 1995-03-07 Viscorp Apparatus and method for automatic and user configurable information appliance
US5337044A (en) 1991-10-08 1994-08-09 Nomadic Systems, Inc. System for remote computer control using message broadcasting system
FR2682786B1 (en) 1991-10-17 1993-12-10 Bull Sa DOWNLOADING AN OPERATING SYSTEM THROUGH A NETWORK.
US5287461A (en) 1991-10-31 1994-02-15 Sun Microsystems, Inc. Method and apparatus for remotely accessing a plurality of server consoles
US5315711A (en) 1991-11-01 1994-05-24 Unisys Corporation Method and apparatus for remotely and centrally controlling a plurality of host processors
US5689671A (en) 1991-11-27 1997-11-18 Icl Systems Ab System for reducing quantity of data transmitted to a user unit by transmitting only an identifier which points to pre-stored information in the user unit
US5247364A (en) 1991-11-29 1993-09-21 Scientific-Atlanta, Inc. Method and apparatus for tuning data channels in a subscription television system having in-band data transmissions
US5317391A (en) 1991-11-29 1994-05-31 Scientific-Atlanta, Inc. Method and apparatus for providing message information to subscribers in a cable television system
US5301028A (en) 1991-11-29 1994-04-05 Scientific-Atlanta, Inc. Method and apparatus for displaying channel identification information
US5477262A (en) 1991-11-29 1995-12-19 Scientific-Altanta, Inc. Method and apparatus for providing an on-screen user interface for a subscription television terminal
US5243477A (en) 1991-12-17 1993-09-07 Datatape Incorporated Apparatus for threading magnetic tape from a single reel cartridge in a rotary head tape transport
US5315633A (en) 1991-12-20 1994-05-24 Unisys Corporation Digital video switch for video teleconferencing
GB9200426D0 (en) 1992-01-09 1992-02-26 Philips Electronic Associated Television receiver
US5486869A (en) 1992-02-18 1996-01-23 Cooper; J. Carl Synchronizing signal separating apparatus and method
JP2935307B2 (en) 1992-02-20 1999-08-16 株式会社日立製作所 display
KR930018994A (en) 1992-02-29 1993-09-22 이필곤 T.V built-in image display circuit
US5526024A (en) 1992-03-12 1996-06-11 At&T Corp. Apparatus for synchronization and display of plurality of digital video data streams
US5309564A (en) 1992-03-19 1994-05-03 Bradley Graham C Apparatus for networking computers for multimedia applications
US5351129A (en) * 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
DE69334216D1 (en) 1992-03-25 2008-06-19 Thomson Multimedia Sa Circuit for synchronizing a display on a screen
US5345554A (en) 1992-04-17 1994-09-06 Intel Corporation Visual frame buffer architecture
US5642515A (en) 1992-04-17 1997-06-24 International Business Machines Corporation Network server for local and remote resources
US5337229A (en) 1992-06-02 1994-08-09 Balance Engineering Corporation Shared interface for multiple controllers
US5479617A (en) 1992-06-05 1995-12-26 Maxpeed Corporation System for combining and encoding first plurality of video signals to produce second plurality of signals and transmitting the signals via unshielded telephone cable to remote workstation
JP2921265B2 (en) 1992-06-08 1999-07-19 松下電器産業株式会社 Television receiver
JPH05347674A (en) 1992-06-12 1993-12-27 Matsushita Electric Ind Co Ltd Synchronization displaty controller
US5243447A (en) 1992-06-19 1993-09-07 Intel Corporation Enhanced single frame buffer display system
US5689663A (en) 1992-06-19 1997-11-18 Microsoft Corporation Remote controller user interface and methods relating thereto
US5640543A (en) 1992-06-19 1997-06-17 Intel Corporation Scalable multimedia platform architecture
US5392400A (en) 1992-07-02 1995-02-21 International Business Machines Corporation Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
US5274454A (en) 1992-08-10 1993-12-28 Motorola, Inc. Programming interface for electronic devices
US5424938A (en) 1992-10-13 1995-06-13 First Chicago Corporation Method and apparatus for providing access to a plurality of payment networks
US5566339A (en) 1992-10-23 1996-10-15 Fox Network Systems, Inc. System and method for monitoring computer environment and operation
US5732212A (en) * 1992-10-23 1998-03-24 Fox Network Systems, Inc. System and method for remote monitoring and operation of personal computers
US20020091850A1 (en) 1992-10-23 2002-07-11 Cybex Corporation System and method for remote monitoring and operation of personal computers
US5402147A (en) 1992-10-30 1995-03-28 International Business Machines Corporation Integrated single frame buffer memory for storing graphics and video data
JP3080795B2 (en) 1992-11-10 2000-08-28 株式会社日立製作所 Power system frequency simulation method and power system training simulator
US5404493A (en) 1992-11-17 1995-04-04 Intermec Corporation Method and computer system for processing keycode data and symbol code data in a bar code device
US5438607A (en) 1992-11-25 1995-08-01 U.S. Monitors, Ltd. Programmable monitoring system and method
US5367571A (en) 1992-12-02 1994-11-22 Scientific-Atlanta, Inc. Subscriber terminal with plug in expansion card
US5657414A (en) 1992-12-01 1997-08-12 Scientific-Atlanta, Inc. Auxiliary device control for a subscriber terminal
US5357276A (en) 1992-12-01 1994-10-18 Scientific-Atlanta, Inc. Method of providing video on demand with VCR like functions
US5592551A (en) 1992-12-01 1997-01-07 Scientific-Atlanta, Inc. Method and apparatus for providing interactive electronic programming guide
US5440632A (en) 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal
US5715515A (en) 1992-12-02 1998-02-03 Scientific-Atlanta, Inc. Method and apparatus for downloading on-screen graphics and captions to a television terminal
US5410363A (en) 1992-12-08 1995-04-25 Lightwave Communications, Inc. Automatic gain control device for transmitting video signals between two locations by use of a known reference pulse during vertical blanking period so as to control the gain of the video signals at the second location
US5379296A (en) 1992-12-31 1995-01-03 Unisys Corporation Method and apparatus for interfacing a workstation to a plurality of computer platforms
US5544320A (en) 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
JP3792733B2 (en) * 1993-01-18 2006-07-05 キヤノン株式会社 Server apparatus and control method
US5428806A (en) 1993-01-22 1995-06-27 Pocrass; Alan L. Computer networking system including central chassis with processor and input/output modules, remote transceivers, and communication links between the transceivers and input/output modules
US5381477A (en) 1993-02-16 1995-01-10 Scientific-Atlanta, Inc. Method of selecting cable television converter groups
JPH08509849A (en) 1993-02-16 1996-10-15 サイエンティフィック−アトランタ・インコーポレーテッド System and method for remote selection of subscribers and control of messages to subscribers in a cable television system
US5502498A (en) 1993-03-10 1996-03-26 Samsung Electronics Co., Ltd. Clamp signal generation-control circuit and a method therefor
US5815411A (en) 1993-09-10 1998-09-29 Criticom Corporation Electro-optic vision system which exploits position and attitude
TW372294B (en) 1993-03-16 1999-10-21 Ht Res Inc Multiple computer system
US5608872A (en) 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
AU687045B2 (en) * 1993-03-31 1998-02-19 Luma Corporation Managing information in an endoscopy system
US5499377A (en) 1993-05-03 1996-03-12 Designed Enclosures, Inc. Multi-computer access switching system
US5388032A (en) 1993-05-04 1995-02-07 Ibus Technologies, Inc. Computer equipment monitor and discriminator
JP3019178B2 (en) 1993-05-27 2000-03-13 インターナショナル・ビジネス・マシーンズ・コーポレイション Screen display sharing system
EP0658048B1 (en) 1993-05-28 2004-01-14 Sony Corporation Method for connecting av equipment to av system
US5386247A (en) 1993-06-02 1995-01-31 Thomson Consumer Electronics, Inc. Video display having progressively dimmed video images and constant brightness auxiliary images
JP3201882B2 (en) 1993-06-04 2001-08-27 株式会社アカシ Error Correction Method for Rockwell Testing Machine
JPH08511390A (en) 1993-06-07 1996-11-26 サイエンティフィック−アトランタ・インコーポレーテッド Display system for subscriber terminals
US5485221A (en) 1993-06-07 1996-01-16 Scientific-Atlanta, Inc. Subscription television system and terminal for enabling simultaneous display of multiple services
TW228631B (en) 1993-06-07 1994-08-21 Microsoft Corp Facsimile user interface and method of use
US5399813A (en) 1993-06-24 1995-03-21 The Whitaker Corporation Category 5 telecommunication cable
US5557342A (en) 1993-07-06 1996-09-17 Hitachi, Ltd. Video display apparatus for displaying a plurality of video signals having different scanning frequencies and a multi-screen display system using the video display apparatus
JPH0746579A (en) 1993-07-21 1995-02-14 Sony Corp Signal monitoring device
US5608425A (en) 1993-08-31 1997-03-04 Zilog, Inc. Technique for generating on-screen display characters using software implementation
US5448697A (en) 1993-09-10 1995-09-05 Dell Usa, L.P. Method and apparatus for simplified control of a video monitor
US6037936A (en) 1993-09-10 2000-03-14 Criticom Corp. Computer vision system with a graphic user interface and remote camera control
US5608426A (en) * 1993-09-28 1997-03-04 Ncr Corporation Palette management for application sharing in collaborative systems
GB2282944B (en) 1993-09-30 1998-01-28 Intel Corp Remote display of objects and cursor movement in a conferencing system
US5548722A (en) 1993-10-14 1996-08-20 Apple Computer, Inc. User-centric system for choosing networked services
US5446726A (en) 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5583562A (en) 1993-12-03 1996-12-10 Scientific-Atlanta, Inc. System and method for transmitting a plurality of digital services including imaging services
US5606604A (en) 1993-12-13 1997-02-25 Lucent Technologies Inc. System and method for preventing fraud upon PBX through a remote maintenance or administration port
GB9400101D0 (en) 1994-01-05 1994-03-02 Thomson Consumer Electronics Consumer interface for a satellite television system
EP0739527A4 (en) 1994-01-14 1998-01-14 Elonex Technologies Inc Remote control of display functions
US5583993A (en) 1994-01-31 1996-12-10 Apple Computer, Inc. Method and apparatus for synchronously sharing data among computer
AU1523695A (en) * 1994-02-08 1995-08-29 Cognex Corporation Methods and apparatus for remote monitoring and control of automated video data systems
US5680536A (en) 1994-03-25 1997-10-21 Tyuluman; Samuel A. Dual motherboard computer system
US5539822A (en) 1994-04-19 1996-07-23 Scientific-Atlanta, Inc. System and method for subscriber interactivity in a television system
US5491743A (en) 1994-05-24 1996-02-13 International Business Machines Corporation Virtual conference system and terminal apparatus therefor
US5534942A (en) 1994-06-17 1996-07-09 Thomson Consumer Electronics, Inc. On screen display arrangement for digital video signal processing system
US5489947A (en) 1994-06-17 1996-02-06 Thomson Consumer Electronics, Inc. On screen display arrangement for a digital video signal processing system
US5517236A (en) * 1994-06-22 1996-05-14 Philips Electronics North America Corporation Video surveillance system
US5541666A (en) 1994-07-06 1996-07-30 General Instrument Method and apparatus for overlaying digitally generated graphics over an analog video signal
JP3520572B2 (en) 1994-08-02 2004-04-19 ソニー株式会社 Input device selection method
JP3534331B2 (en) 1994-08-09 2004-06-07 ゼロックス コーポレイション How to build multi-segment print jobs from a variety of local and remote sources using a network interface
US5598536A (en) 1994-08-09 1997-01-28 Shiva Corporation Apparatus and method for providing remote users with the same unique IP address upon each network access
US6137473A (en) 1994-09-02 2000-10-24 Nec Corporation System and method for switching control between a host computer and a remote interface device
US6519540B1 (en) 1994-10-04 2003-02-11 Iris Technologies, Inc. Signal router with cross-point view graphical interface
KR970008963B1 (en) 1994-10-22 1997-06-03 Samsung Electronics Co Ltd Remote controlling method & device
KR0129951B1 (en) 1994-11-25 1998-04-11 김광호 Wireless transmission receiver and overlay apparatus using the stuff & control method
US5701161A (en) 1994-12-14 1997-12-23 Williams; Mark C. Method and apparatus for providing real time data on a viewing screen concurrently with any programing in process
US5627978A (en) 1994-12-16 1997-05-06 Lucent Technologies Inc. Graphical user interface for multimedia call set-up and call handling in a virtual conference on a desktop computer conferencing system
US5715475A (en) 1994-12-29 1998-02-03 Intel Corporation Topological identification and initialization of a system for processing video information
US5774859A (en) 1995-01-03 1998-06-30 Scientific-Atlanta, Inc. Information system having a speech interface
US5581303A (en) 1995-01-18 1996-12-03 Radius Inc. Video timing signal generation circuit
US5754881A (en) 1995-01-24 1998-05-19 Hewlett-Packard Company Method of controlling a PC parallel port switch for connecting multiple peripherals to the same parallel port
JPH08249254A (en) 1995-03-15 1996-09-27 Mitsubishi Electric Corp Multicomputer system
US5604509A (en) 1995-04-14 1997-02-18 Advent Design, Inc. Remote display monitor system
US5674003A (en) 1995-04-28 1997-10-07 Andersen; David B. Mechanisms for accessing unique features of telephony networks from a protocol-Independent data transport interface
US5708961A (en) 1995-05-01 1998-01-13 Bell Atlantic Network Services, Inc. Wireless on-premises video distribution using digital multiplexing
US5606615A (en) 1995-05-16 1997-02-25 Lapointe; Brian K. Computer security system
US5486868A (en) 1995-05-19 1996-01-23 Winbond Electronics Corporation Generator for scan timing of multiple industrial standards
US5926174A (en) * 1995-05-29 1999-07-20 Canon Kabushiki Kaisha Display apparatus capable of image display for video signals of plural kinds
US5539479A (en) 1995-05-31 1996-07-23 International Business Machines Corporation Video receiver display of cursor and menu overlaying video
US5604544A (en) 1995-05-31 1997-02-18 International Business Machines Corporation Video receiver display of cursor overlaying video
JP3003545B2 (en) 1995-06-28 2000-01-31 日本電気株式会社 Magnetic disk drive connection device
US5684789A (en) 1995-06-29 1997-11-04 Lucent Technologies Inc. Remote control, link independent A/B switch box with diagnostic loopback
US5875293A (en) * 1995-08-08 1999-02-23 Dell Usa, L.P. System level functional testing through one or more I/O ports of an assembled computer system
US5812825A (en) 1995-08-17 1998-09-22 Hitachi, Ltd. Integrated console and console apparatus and method for use thereof
US5721842A (en) 1995-08-25 1998-02-24 Apex Pc Solutions, Inc. Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch
US6018765A (en) * 1996-01-23 2000-01-25 Storage Concepts, Inc. Multi-channel multimedia data server
US5719622A (en) 1996-02-23 1998-02-17 The Regents Of The University Of Michigan Visual control selection of remote mechanisms
US5796440A (en) * 1996-02-29 1998-08-18 Rupinski; Frederick A. Baseband video/audio/data transceiver
AU740560B2 (en) * 1996-06-26 2001-11-08 Sony Electronics Inc. System and method for overlay of a motion video signal on an analog video signal
US6356313B1 (en) * 1997-06-26 2002-03-12 Sony Corporation System and method for overlay of a motion video signal on an analog video signal
US6154600A (en) * 1996-08-06 2000-11-28 Applied Magic, Inc. Media editor for non-linear editing system
US5828848A (en) * 1996-10-31 1998-10-27 Sensormatic Electronics Corporation Method and apparatus for compression and decompression of video data streams
US6677936B2 (en) * 1996-10-31 2004-01-13 Kopin Corporation Color display system for a camera
US6070253A (en) * 1996-12-31 2000-05-30 Compaq Computer Corporation Computer diagnostic board that provides system monitoring and permits remote terminal access
KR100243170B1 (en) 1997-01-17 2000-02-01 윤종용 Method for transmitting the pointing data of remocon and method for processing the received data
AU6260398A (en) * 1997-02-03 1998-08-25 Curt A. Schmidt A computer system using a plurality of remote workstations and centralized computer modules
US6333750B1 (en) * 1997-03-12 2001-12-25 Cybex Computer Products Corporation Multi-sourced video distribution hub
US6104414A (en) * 1997-03-12 2000-08-15 Cybex Computer Products Corporation Video distribution hub
US6304895B1 (en) 1997-08-22 2001-10-16 Apex Inc. Method and system for intelligently controlling a remotely located computer
WO1999010801A1 (en) * 1997-08-22 1999-03-04 Apex Inc. Remote computer control system
US6330594B1 (en) * 1997-09-02 2001-12-11 Cybershift Holdings, Inc. Multiple tier interfacing with network computing environment
US6349330B1 (en) * 1997-11-07 2002-02-19 Eigden Video Method and appparatus for generating a compact post-diagnostic case record for browsing and diagnostic viewing
US6313822B1 (en) * 1998-03-27 2001-11-06 Sony Corporation Method and apparatus for modifying screen resolution based on available memory
US6243738B1 (en) * 1998-04-06 2001-06-05 National Instruments Corporation Data acquisition system which includes remote access to data acquisition devices
JP3627791B2 (en) 1998-08-10 2005-03-09 富士通株式会社 Other terminal operation device
JP4146089B2 (en) 1998-09-22 2008-09-03 アボセント ハンツヴィル コーポレーション System for remote access to personal computers
US6263373B1 (en) * 1998-12-04 2001-07-17 International Business Machines Corporation Data processing system and method for remotely controlling execution of a processor utilizing a test access port
EP1041776A1 (en) * 1999-03-30 2000-10-04 International Business Machines Corporation Multiple ARP functionality for an IP data transmission system
JP3116091B2 (en) 1999-11-08 2000-12-11 農林水産省畜産試験場長 Method for introducing foreign gene into cultured cells or fertilized eggs
KR100633154B1 (en) 2001-03-20 2006-10-11 삼성전자주식회사 method and system for automatically setting display mode of monitor and recording media for computer program therefor
JP4212555B2 (en) 2002-06-28 2009-01-21 シャープ株式会社 Thin plate manufacturing method, thin plate manufacturing apparatus, and base plate
JP4215159B2 (en) 2003-06-25 2009-01-28 日本信号株式会社 Ground device and train control device

Also Published As

Publication number Publication date
US20070033265A1 (en) 2007-02-08
US7349956B2 (en) 2008-03-25
WO2000017766A3 (en) 2000-10-12
EP1116086B1 (en) 2007-02-21
JP4146089B2 (en) 2008-09-03
EP1116086A2 (en) 2001-07-18
IL142119A0 (en) 2002-03-10
AU6055899A (en) 2000-04-10
US6633905B1 (en) 2003-10-14
CA2345084A1 (en) 2000-03-30
DE69935234D1 (en) 2007-04-05
US7747702B2 (en) 2010-06-29
DE69935234T2 (en) 2007-11-08
AU774003B2 (en) 2004-06-10
HK1043228B (en) 2007-10-12
JP2002525750A (en) 2002-08-13
WO2000017766A2 (en) 2000-03-30
HK1043228A1 (en) 2002-09-06
US20030217123A1 (en) 2003-11-20
ATE354824T1 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
CA2345084C (en) System for accessing personal computers remotely
USRE44814E1 (en) System and method for remote monitoring and operation of personal computers
US5732212A (en) System and method for remote monitoring and operation of personal computers
EP0825535B1 (en) A server controller for storing and retrieving sequences of video screens forwarded by a server host computer
US6233634B1 (en) Server controller configured to snoop and receive a duplicative copy of display data presented to a video controller
US5796566A (en) Printed circuit board having conductors which can be decoupled for isolating inactive integrated circuits connected thereto
US7861020B1 (en) Redirecting input and output for multiple computers
EP0632382A1 (en) Method and apparatus for remote service of a host system
US20050132408A1 (en) System for controlling a video display
WO1999010801A1 (en) Remote computer control system
JPH10501907A (en) Method and apparatus for monitoring and controlling programs in a network
US6819322B2 (en) Method and apparatus for detecting potential lock-up conditions in a video graphics controller
US7886091B2 (en) Methods and arrangements for performing desktop switching
US20070088840A1 (en) Methods and arrangements for managing and maintaining a switch environment
CA2533841C (en) System and method for accessing and operating personal computers remotely
Solutions Hewlett-Packard A5799A Terminal Server Reference

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20190923