WO2000070437A1 - Enchanced computer keyboard system - Google Patents

Enchanced computer keyboard system Download PDF

Info

Publication number
WO2000070437A1
WO2000070437A1 PCT/US2000/013456 US0013456W WO0070437A1 WO 2000070437 A1 WO2000070437 A1 WO 2000070437A1 US 0013456 W US0013456 W US 0013456W WO 0070437 A1 WO0070437 A1 WO 0070437A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
alert
key
coupled
signal
Prior art date
Application number
PCT/US2000/013456
Other languages
French (fr)
Inventor
William R. Murray, Jr.
John Dasher
Original Assignee
Acco Brands, Inc.
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 Acco Brands, Inc. filed Critical Acco Brands, Inc.
Priority to AU48536/00A priority Critical patent/AU4853600A/en
Publication of WO2000070437A1 publication Critical patent/WO2000070437A1/en

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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0489Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Definitions

  • the present invention relates generally to keyboard devices for use with a personal computer. More specifically, the present invention relates to an enhanced keyboard system for operation with personal computers currently known in the art.
  • the keyboard is the most frequently used input device for a personal computer.
  • a typical computer keyboard has a QWERTY key layout, and often includes a numerical keypad, shift keys (e.g., right-hand and left-hand shifts, ALT, and CTRL), toggle keys (e.g., CAPS LOCK, NUM LOCK, and SCROLL LOCK) and function keys.
  • shift keys e.g., right-hand and left-hand shifts, ALT, and CTRL
  • toggle keys e.g., CAPS LOCK, NUM LOCK, and SCROLL LOCK
  • function keys e.g., CAPS LOCK, NUM LOCK, or SCROLL LOCK
  • Many models also have small indicator lights which indicate when a particular key or function (e.g., CAPS LOCK,
  • a typical keyboard includes a keyboard chip and a scan matrix which cooperate to generate two unique scan codes whenever a key is pressed—one scan code when the key is pushed down (i.e., make code) and another when the key is released (i.e., break code).
  • the keyboard chip subsequently transmits the scan codes to a keyboard controller in the host computer via the keyboard cable.
  • the keyboard controller Upon receipt on the scan codes, the keyboard controller generates an interrupt signal.
  • the computer's CPU calls an interrupt handling routine that processes the scan codes and translates them into character or command codes which are recognized by the computer's operating system or application programs.
  • a typical keyboard In addition to generating scan codes, a typical keyboard also processes a limited number of commands received from the computer to control its status. In particular, it is known in the art that a keyboard responds to commands from the computer to turn on/off the small indicator lights described above, to reset or disable the keyboard, or to set the repetition rate and repeat delay for keys when they are held down.
  • a typical personal computer to which the above-described keyboard may be attached has an operating system that enables the computer to run multiple application programs at once limited only by the amount of memory installed in the computer. Such an operating system typically also employs a graphical user interface (GUI) of the type well-known in the art. Via the GUI, the user interacts with application programs, manages files and file storage devices, operates peripherals, controls network interfaces, and executes commands by operating a pointing device to manipulate icons and menus items arranged on an electronic desktop displayed on the computer monitor.
  • GUI graphical user interface
  • the user operates the pointing device to control a cursor displayed on the screen.
  • the user launches an application program by using the pointing device to point the cursor to an icon displayed on the computer monitor that represents the desired application program, and then "clicking" on the icon with the pointing device.
  • the operating system displays the application on the electronic desktop in a "window.”
  • the typical user typically displays each running application program in its own window.
  • the typical user only interacts with one application window at a time.
  • We designate the window with which the user currently interacts as the "active" window It is often displayed so that it appears as if it is "on top of the other application program windows and/or application icons displayed on the electronic desktop. This feature of the "top-active" application window often causes it to partially or totally obscure other application windows or icons shown on the electronic desktop.
  • the user When the current top-active window partially or totally obscures the other application windows or icons, the user must first operate the pointing device to cause the operating system to close, reduce or move the current top-active window before he or she can select another top-active window and/or launch another application program.
  • the user employs a special system management window provided by the operating system (e.g., Apple Macintosh "Desktop", Windows “Program Manager”) to select a new top-active window and/or to launch another application program.
  • the operating system displays the system management window when the user operates the pointing device to point to and click on a special menu item or icon provided for that purpose.
  • the user selects a new application program to launch or to display by operating the pointing device as previously described.
  • the procedures described above require the user to rely heavily on the pointing device to manipulate items on the electronic desktop to launch another application or to select a new top-active window.
  • Using the pointing device is usually less time efficient than using the keyboard because of the hand-to-eye coordination inherently required (e.g. locating the cursor on the screen, moving the cursor to the desired location, etc.)
  • Using on the pointing device often requires the user to remove one hand from the keyboard, thereby increasing the likelihood of typographical error due to misplacement of the hands on the keyboard after manipulating the pointing device.
  • An alternative to using the pointing device is to manipulate items on the display via the keyboard.
  • the modern personal computer employs energy-saving devices with increasing frequency.
  • many personal computer systems include a power- saving apparatus which operates according to a power-saving program to disable the monitor if no user input is detected for a predetermined amount of time. The user presses a key or moves the pointing device to reactivate the monitor.
  • Such devices are a boon to energy conservation efforts and to the environment, especially in view of the proliferation of the personal computer in both homes and businesses.
  • alert messages When an alert or error conditions occurs.
  • the alert messages are displayed on the monitor and may be accompanied by an audible alarm.
  • the user When an alert condition occurs after the power-saving program has disabled the monitor, the user will not see the alert message generated by the operating system or the application program. When an audible alarm accompanies the alert message, then the user often hears the audible alarm and responds to it accordingly by reactivating the screen and responding to the message as requested. However, there are many instances when no audible alarm is provided or when the user may not hear the audible alarm. For examples of the latter, the user may be hearing-impaired, may work in a noisy operating environment, may be away from the computer at the time of the alert, or, because of the proliferation of computers in the workplace, may mistake the audible alarm of the user's workstation for the audible alarm of another's workstation.
  • the present invention comprises a method and apparatus for implementing an enhanced computer keyboard system.
  • the present invention comprises a method and apparatus for accessing and launching application programs via the keyboard and for indicating an alert status to a computer user via the computer keyboard.
  • an enhanced keyboard system comprising an application key apparatus and an alert-indicating apparatus.
  • the application key apparatus includes an enhanced computer keyboard, an application key signal generating unit, and an application key processing unit.
  • the enhanced computer keyboard comprises one or more application keys contained in a keyboard housing.
  • the application key signal generating unit is coupled to the application keys and generates an application key signal when an application key is pressed and/or released.
  • the application key processing unit is coupled to the application key signal generating unit.
  • the application key processing unit responds to the application key signal to cause the operating system to launch the specified application program.
  • the application key processing unit responds to the application key signal to cause the operating system to make the window associated with the specified application program the top-active window.
  • the alert-indicating apparatus comprises an enhanced computer keyboard, an alert filter, and an alert filter interface.
  • the enhanced computer keyboard includes a plurality of keys contained in a housing, and an alert indicator coupled to the keyboard housing.
  • the alert filter is coupled to the operating system and generates a plurality of alert indicator control signals when the operating system and/or an application program issues an alert message of a specified type.
  • the alert filter is customizable to specify the type of alert conditions for which the alert indicator will activate.
  • the alert filter is further customizable to activate the alert indicator in a characteristic manner according to the type of alert condition that has occurred.
  • the alert filter interface transfers alert indicator control signals from the alert filter to the alert indicator coupled to the keyboard.
  • it is a method for accessing and launching application programs via the keyboard that comprises the steps of 1) scanning for a key signal; 2) determining whether a received key signal is an application key signal; 3) identifying the application program that corresponds to the received application key signal; 4) determining whether the identified application program is currently running on the computer; 5) when the identified application program is cmrently running, making the window corresponding to the identified application program the top-active window; and 6) when the identified application program is not currently running, launching the identified application program.
  • it is a method for indicating an alert status to the user via the keyboard that comprises the steps of 1) detecting when an alert event occurs; 2) identifying the type of alert associated with the detected alert event; 3) determining whether the identified alert type corresponds with one of the stored alert types; 4) retrieving the alert indicator control attributes associated with the corresponding stored alert type; and 5) transmitting a plurality of alert indicator control signals according to the retrieved alert indicator control attributes.
  • Fig. 1 is a drawing of a computer workstation having a configuration that is currently known in the art
  • Fig. 2 is a block diagram a computer system having a configuration that is currently known in the art
  • Fig. 3 is a drawing of a preferred embodiment of an enhanced keyboard according to the present invention
  • Fig. 4 is an enlarged view of an illustrative embodiment of the application key portion of the enhanced keyboard of the present invention
  • Fig. 5 is an enlarged view of an illustrative embodiment of the alert lamp portion of the enhanced keyboard of the present invention
  • Fig. 6 is a block diagram of a computer system which incorporates the present invention
  • Fig. 7 is a block diagram of one embodiment of components of the enhanced keyboard according to the present invention
  • Fig. 8 is a block diagram of one embodiment of the components of the enhanced keyboard controller/driver according to the present invention.
  • Fig. 9 is a process flow diagram illustrating a method for accessing and launching an application program via the keyboard
  • Fig. 10 is a block diagram representation of an operating system that incorporates the present invention.
  • Fig. 11 is a block diagram of an illustrative embodiment of an Alert Filter according to the present invention
  • Fig. 12 is a process flow diagram illustrating a method for indicating an alert condition to a user via the keyboard.
  • FIG. 1 is an illustration of a conventional workstation 10, which includes a computer system 12 coupled to a fixed disk 14, a keyboard 16, a pointing device 18, and a monitor 20 having a display surface 22.
  • the examples that follow refer to an image being displayed on display surface 22 of monitor 20; however the invention is equally applicable to variations such as where the display device is a printer and the display surface is a printed page, or the display device is some other pixilated or rasterized display device.
  • pointing device 18 is shown as a mouse; however other types of pointing devices such as a trackball, a light-pen, etc. may also be suitably employed.
  • Display surface 22 shows a number of objects being displayed associated with the GUI.
  • the displayed objects include application program icons 24 and 26, application program windows 28 and 30, and alert dialog box 32.
  • the user employs pointing device 18 to point to and click on one of the application program icons, 24 or 26.
  • the operating system displays the corresponding application program in an application program window as shown.
  • the operating system displays each running application program in a separate application program window. Accordingly, Fig. 1 shows a first application program running in window 28 and a second application program running in window 30.
  • Alert dialog box 32 is also shown on display surface 22.
  • Alert dialog box 32 is also shown on display surface 22. Alert dialog box
  • alert dialog box 32 provides an alert message to the user to indicate when an alert or error condition has occurred.
  • Either the operating system or one of the application programs generates alert dialog box 32 automatically or according to user-provided input — as with an appointment reminder.
  • the alert messages that are displayed in alert dialog box 32 include, without limitation, an indication that an error condition has occu ⁇ ed, an appointment reminder, notification of electronic mail, an indication that an application program has completed some predefined step or steps, or a request for the user to provide additional data.
  • Alert dialog box 32 is one of several types of alert dialog boxes that are displayed on monitor 20.
  • a first type of alert dialog box may be moved or closed by the user without requiring the user to provide any further response. Alternatively, the first type of alert dialog box is displayed for a predetermined amount of time after which it disappears.
  • a second type of alert dialog box disables user input to a specified application program until the user provides the response or input requested by the alert message.
  • a third type of alert dialog box disables user input to all application programs until the user provides the response or input requested by the alert message.
  • alert dialog box types is offered primarily for illustrative purposes and is not meant to limit the type of alert dialog boxes which may be encompassed by the present invention.
  • the foregoing types of alert dialog boxes may be further delineated by whether the box is generated by the operating system or by an application program.
  • Fig. 2 is a block diagram of computer system 12.
  • Computer system 12 includes a central processing unit (CPU) 34, random access memory (RAM) 36, readonly memory 38, a disk storage device 40, a pointing device controller/driver 42, a keyboard controller/driver 44, a timer 46, a graphics accelerator 48, and a video controller 50, all coupled to computer bus 52.
  • Keyboard controller/driver 44 is shown coupled to enhanced keyboard 16 and video controller 50 is shown coupled to a monitor 20 and a printer 54.
  • pointing device controller/driver 42 and keyboard controller/driver 44 may be combined into a single unit.
  • CPU 34 processes the instructions of the various programs stored in memory on computer system 12 (e.g., RAM 36, ROM 38, or Disk Storage Device 40).
  • the stored programs include, without limitation, the operating system, various application programs, and various built-in routines for controlling the operation of computer system 12 (e.g., BIOS).
  • CPU 34 controls the interaction of the other components coupled to bus 52.
  • CPU 34 uses the pointing device controller/driver 42 to receive relative-positional data from pointing device 18, and keyboard controller/driver 44 to transfer data to/from keyboard 16.
  • CPU 34 uses timer 46 to measure precise intervals of time according to various programs running on computer system 12. Applications of timer 46 include, without limitation, controlling the refresh cycle for dynamic memory circuits, measuring a time-out interval after which monitor 20 is disabled, and generating harmonics for sound generation via a speaker or other sound-generating device.
  • CPU 34 uses video controller/driver 50 to generate images on monitor 20 and/or printer 54.
  • Video controller/driver includes a separate processor and memory (not shown).
  • Graphics accelerator 48 is optional and includes a limited instruction set for executing certain frequently used graphics functions independently of CPU 34.
  • Fig. 3 is an illustration of a prefe ⁇ ed embodiment of an enhanced keyboard 60 according to the present invention.
  • the prefe ⁇ ed embodiment of enhanced keyboard 60 includes keyboard housing 62, a plurality of keys, and a number of indicator lamps.
  • the plurality of keys are a ⁇ anged in functional groups including a QWERTY keypad 72, a numeric keypad 74, a function key group 76, and a control key group 78.
  • Each of the foregoing functional groups is well-known in the art and requires no further description.
  • enhanced keyboard 60 also includes an application key group 80.
  • Application key group 80 includes five application keys arranged along the left edge of keyboard housing 62.
  • computer system 12 is customizable to co ⁇ espond an application program stored in computer system 12 to each of the application keys. Pressing an application key launches the corresponding application program or causes the co ⁇ esponding application program window to become the top-active window depending on whether the application program is cu ⁇ ently running on computer system 12.
  • Fig. 4 is an enlarged view of a prefe ⁇ ed embodiment of application key group 80.
  • Each key is marked with a symbol for indicating the type of application program with which it co ⁇ esponds.
  • a first application key 82 is marked with a symbol which suggests that the key is operated in conjunction with an application program for providing an electronic calendar or personal information manager
  • a second application key 84 is marked with a symbol which suggests that the key is operated in conjunction with an application program for sending and receiving electronic mail
  • a third application key 86 is marked with a symbol which suggests that the key is operated in conjunction with an application program for word processing
  • a fourth application key 88 is marked with a symbol which suggests that the key is operated in conjunction with an application program for an electronic spreadsheet
  • a fifth application key 90 is marked with a symbol which suggests that the key is operated in conjunction with an application program for drawing graphics.
  • each key is not critical and may vary. For example, it may be a letter or group of letters, an emblem, or some combination thereof. Also, the manner of affixing a mark on each key is not critical and may vary. For example, the symbol may be embossed, may be painted on the key, may be applied by means of a sticker or other attachment, or may be affixed by some combination of the foregoing.
  • each application key may be marked with a generic symbol (e.g., Al, A2, A3, etc.), and a template which indicates the application program to which each application is associated is placed over the application key group 80.
  • Enhanced keyboard 60 also includes a number of indicator lamps 64, 66, 68 and 70 such as those shown in Fig. 2.
  • a first lamp 64 indicates whether a "Num Lock” feature is activated; a second lamp 66 indicates whether a "Scroll Lock” feature is activated; and a third lamp 68 indicates whether a "Caps Lock” feature is activated.
  • Each of the foregoing lamps is well-known in the keyboard art.
  • Enhanced keyboard 60 also includes a fourth lamp 70 for indicating an alert condition to the user.
  • alert lamp 70 is provided along the front edge of enhanced keyboard 60 as shown; however, the position of alert lamp 70 is not critical and may vary.
  • computer system 12 is customizable to illuminate alert lamp 70 when certain predefined alert conditions occur.
  • computer system 12 is further customizable to cause alert lamp 70 to blink a characteristic number of times, at a characteristic rate, with or without a characteristic intensity according to the type of alert condition that has occu ⁇ ed.
  • Fig. 5 is an enlarged view of one illustrative embodiment of alert lamp 70 according to the present invention.
  • alert lamp 70 comprises a light-emitting diode 92 ("LED" hereinafter) and a light cover 94 which disperses the light from the LED.
  • Cover 94 is coupled to keyboard housing 62 and is clear or colored as necessary to enhance the effect of LED 92.
  • the size and color of light cover 94 in combination with the intensity of the LED 92 are such that alert lamp 70 is easily visible to an observer from a distance of 5 meters away when LED 92 is illuminated.
  • Fig. 6 is a block diagram of computer system 95 which incorporates the present invention.
  • the items which are identical to those depicted in Fig. 2 are similarly numbered.
  • Keyboard controller/driver 44 shown in Fig. 2 has been replaced with an Enhanced keyboard controller/driver 96 which is coupled to Enhanced keyboard 60.
  • Fig. 7 is a block diagram of one embodiment of an enhanced keyboard 60 according to the present invention.
  • Enhanced keyboard 60 includes a scan matrix 98, an x-decoder 100, a y-decoder 102, a keyboard chip 104, key indicator lamps 64, 66, and 68, a key status lamp driver 106, an alert lamp 70, an alert lamp driver 108.
  • Scan matrix 98 includes a number of signal lines displaced in an x- direction and a y-direction as shown.
  • a key switch is located at the intersection of each x- and y-line co ⁇ esponding to a key of enhanced keyboard 60. The highlighted switches co ⁇ espond to application keys 80, 84, 86, 88, and 90.
  • Keyboard chip 104 is a microprocessor which includes the commands for controlling the operation of scan matrix 98.
  • scan matrix 98, x-decoder 100, y-decoder 102, and keyboard chip 104 operate together to generate a "make” code and a "break” code which uniquely co ⁇ espond to the activated application key.
  • Keyboard chip 104 transmits the "make" and "break” codes to enhanced keyboard controller/driver 96 via cable 112.
  • keyboard chip 104 includes commands for controlling key status lamps 64, 66 and 68 and alert lamp 70. To control key status lamps 64, 66 and 68, keyboard chip 104 issues control signals to key status lamp controller 106 responsive to instructions received from computer system 95 via enhanced keyboard controller 96 and keyboard cable 112.
  • keyboard chip 104 issues control signals to alert lamp controller 108 in response to instructions received from enhanced keyboard controller/driver 96 via keyboard cable 112.
  • Fig. 8 is a block diagram of one embodiment of enhanced keyboard controller/driver 96 according to the present invention.
  • the items shown in Fig. 8 include keyboard interface circuit 110, key code convertor 113, and application key processor 114.
  • Keyboard interface circuit 110 receives key codes (e.g., "make” and "break” codes) from keyboard chip 104, and acts as a serial-to-parallel buffer for computer system 95.
  • Key code convertor 113 translates the received key codes into an appropriate form for processing by the operating system or by the application programs running on computer system 95.
  • Key code convertor 113 includes, without limitation, a character code generator 116, a control code generator 118, a function key code identifier 120, an application key code identifier 122, and a key code storage unit 124.
  • Key code storage unit 124 stores all possible key codes organized into functional groups. The operation of character code generator 116, control code generator 118, and function key identifier 120 is well-known in the art and will not be described further. If the received key codes do not co ⁇ espond to a character key, a control key, or a function key, then application key code identifier 122 compares the key codes with the contents of key storage unit 124 to determine whether the received key codes co ⁇ espond to an application key code. When the received key codes do not co ⁇ espond to an application key code, the key codes are passed to the active application program without further processing. When the received key codes do so co ⁇ espond, application key code identifier 122 directs the received key codes to application key processor 114.
  • Application key processor 114 includes, without limitation, an enhanced keyboard applet 126, a key-to-application map 128, an application code generator 130, a program running detector 132, a launch/active switch 134, launching unit 136, and top- active unit 138.
  • Enhanced keyboard applet 126 provides a user interface by which a user specifies how the application programs co ⁇ espond to the application key codes (and to the application keys). This information is stored in application map 128.
  • Application code generator 130 receives an application key code from key code convertor 113 and compares it with the contents of application map 128. When there is a match, application code generator 130 issues an application code which uniquely identifies the application program to which the application key code co ⁇ esponds. The application code is transmitted to program running detector 132 and to switch 134.
  • Program running detector 132 determines whether the identified application program is running on computer system 95. If so, then program running detector 132 causes switch 134 to direct the application code to the input of top-active unit 138. Conversely, when program running detector determines that the identified application program is not running on computer system 95, then program running detector 132 causes switch 134 to direct the application code to the input of launching unit 136.
  • top-active unit 138 issues a top-active command to the operating system. The operating system executes the top-active command by making the application program window of the specified application the top-active window.
  • Launching unit 136 responds to the application code by issuing a launch command to the operating system which causes the same to launch the specified application program in its own window.
  • Fig. 9 is a process flow diagram illustrating a method for accessing and launching an application program via the keyboard according to the present invention.
  • the application key apparatus scans for a key code.
  • the application key apparatus detects a received key code, it retrieves the key code and determines at step B whether the retrieved key code co ⁇ esponds to an application key. If not, then the application key apparatus processes the key code accordingly at step C. For example, when the key code co ⁇ esponds to an alphanumeric key, the application key apparatus forwards the key code to the operating system which converts the retrieved key code into an ASCII code format and forwards the ASCII-coded key to the appropriate application program.
  • the application key apparatus compares the retrieved key code to the information stored in database E to identify the application program to which the retrieved key code is associated.
  • Database E includes information that maps the list of possible application key codes to the list of application programs on computer system 95.
  • the application key apparatus determines whether the application program specified at step D is running. When the program is running on computer system 95, the application key apparatus causes the operating system to issue a command at step G to make the window for the specified application program the top-active window. When the program is not running on computer system 95, the application key apparatus causes the operating system to issue a command at step H to launch the specified application program in its own window on computer system 95. Control then returns to step A for the next key code.
  • Fig. 10 is a block diagram representation of an operating system 150 for computer system 95 which incorporates the present invention.
  • operating system 150 is a computer program which is stored on disk storage device 40, downloaded to RAM 36, and executed by CPU 34.
  • operating system 150 is multi-tasking in that it is capable of running several application programs at once limited only by the amount of memory on computer system 95. In Fig. 10, therefore, operating system 150 is shown with several application programs 152, 154, 156 and 158, running at once.
  • Operating system 150 also includes, without limitation, a system resources block 160, an event storage unit 162, a device-independent interface 164, and several device drivers 166, 168, 170 and 172.
  • the device drivers 166, 168, 170 and 172 shown in Fig. 10 include, by way of illustration without limitation, a display driver 166, a printer driver 168, a pointing device driver 170, and an enhanced keyboard driver 172.
  • Each device driver includes routines for enabling computer system 95 to control and communicate with the various peripheral devices coupled thereto.
  • display driver 166 includes routines which enable computer system 95 to control and communicate with a particular make and model of monitor 20.
  • Printer driver 168 includes routines for enabling computer system 95 to control and communicate with a particular make and model of printer 54.
  • Pointing device driver 170 provides the routines for enabling computer system 95 to control and communicate with a particular make and model of pointing device 18.
  • enhanced keyboard driver 172 provides routines for enabling computer system 95 to control and communicate with enhanced keyboard 60.
  • enhanced keyboard driver 172 includes a group of routines for enabling key code convertor 113 and launch- active controller 114. The operation of these elements has been described above and need not be repeated here.
  • Enhanced keyboard driver 172 also includes a group of routines for controlling the operation of alert lamp 70.
  • Enhanced keyboard driver 172 includes routines for turning alert lamp 70 ON and OFF, for controlling the intensity of alert lamp 70, and for setting timer 46. These routines are executed according to instructions provided by an Alert Filter program 160 described in the following paragraphs. The routines cause CPU 34 to generate commands which are executed by enhanced keyboard controller/driver 96 and which cause the same to generate signals that operate alert lamp driver 108 as described.
  • the device-independent interface 164 provides a generalized interface between the application programs 152, 154, 156 and 158 and the various devices coupled to computer system 95. Because of the general nature of device-independent interface 164, each application program can control and communicate with the various devices coupled to computer system 95 without knowing the specific commands required to operate the particular make and model of each device.
  • the elements contained in device- independent interface 164 include, without limitation, a user interface 174, a file manager 176, and a graphics display interface 178.
  • User interface 174 includes routines which enable a user to control and communicate with the operating system 150 or an application program via enhanced keyboard 60, pointing device 18, and monitor 20.
  • File manager 176 includes routines which enable the application programs to store, retrieve, and organize data on disk storage device 40.
  • Graphics display interface 178 includes routines which enable the application programs to display a variety of graphical objects on monitor 20 and/or printer 54.
  • System resources block 160 includes the system routines, commands, and other resources which are used by all of the applications programs.
  • the resources contained in system resources block 160 include, without limitation, routines for defining, creating, moving, and destroying an application program window; a massaging system for distributing data to, among, and between application programs; routines for allocating system hardware resources to the application programs on a time-shared basis; routines for defining and creating an alert dialog box; and device-independent commands for causing an alert dialog box to be displayed on display surface 22.
  • Fig. 10 also shows an event storage unit 162 coupled to system resources block 160.
  • Event storage unit 162 maintains a record of the transactions between the application programs 152, 154, 156 and 158 and the system resources block 160.
  • event storage unit keeps a record of the transactions which occur when operating system 150 or one of the application programs 152, 154, 156 and 158 creates an alert dialog box for display on monitor 20.
  • the type of transactions recorded includes, without limitation, calls to system routines used for defining and/or creating an alert dialog box, messages communicated among and between application programs, and commands transfe ⁇ ed to the device-independent interface 164 for causing an alert dialog box to be displayed on display surface 22.
  • a power-saving program 152 includes a power-saving program 152, a generic application program 154, an alert- indicator (Al) enabled application program 156, and an alert filter program 158.
  • the function of generic application program 154 is relevant only in that it includes commands for causing an alert dialog box to be displayed on monitor 20 when an alert condition occurs. Such programs are well-known in the art.
  • Power-saving program 152 is also well-known in the art. It includes routines that cause monitor 20 to be disabled when no user input is detected at enhanced keyboard 60 and pointing device 18 for a predetermined amount of time. Power-saving program 152 causes monitor 20 to be reactivated when computer system 12 detects input from enhanced keyboard 60 or pointing device 18.
  • Al-enabled application program 156 includes commands for directly controlling alert lamp 70 via enhanced keyboard controller/driver.
  • Al-enabled application program 156 generates alert indicator control commands which are passed by operating system 150 to enhanced keyboard driver 172.
  • Enhanced keyboard driver 172 thereafter causes CPU 34 to generate control signals for timer 46 and enhanced keyboard controller/driver 96 to operate alert lamp 70 accordingly.
  • Examples of typical Al-enabled application program include, without limitation, security programs which cause alert lamp 70 to activate when computer system 95 is secured; point-of-sale programs which cause alert lamp 70 to activate when computer system 95 has been designated as a point-of-sale display device; and power-on indicator programs which cause alert lamp 70 to be activated as long as power is supplied to computer system 95.
  • Fig. 11 is a block diagram of the elements of Alert Filter 158 according to the present invention. It includes a user interface 180, an alert monitor 182, an alert lamp controller 184, and an alert lamp data storage unit 186.
  • the user interface includes routines that define and create the typical windows, menus, and dialog boxes by which the user interfaces with Alert Filter 158.
  • the user specifies the type of alert conditions for which alert lamp 70 will be activated.
  • the specified alert types are thereafter stored in alert lamp storage unit 186.
  • the user programs Alert Filter 158 to cause alert lamp 70 to blink a characteristic number of times, at a characteristic rate, with a characteristic intensity according to the type of alert condition that has occu ⁇ ed. This information is also stored in alert lamp storage unit 186.
  • the alert monitor 182 includes routines for determining whether an application program or the operating system has created an alert dialog box for display on monitor 20, and for identifying the type of alert condition associated with the identified alert dialog box.
  • the alert monitor may perform this function by intermittently reviewing the contents of event storage unit 162.
  • the alert monitor determines that an alert dialog box has been created, the alert monitor next identifies the alert type. Having determined the type of alert condition, alert monitor then passes control to the alert lamp controller 184.
  • the alert lamp controller 184 includes the routines for controlling operation of alert lamp 70.
  • Alert lamp controller 184 first compares the identified alert type to the information stored in alert lamp data storage unit 186 to determine whether the identified alert type corresponds to one of those stored in alert lamp storage unit 186. When no matching alert type is found in alert lamp data storage unit 186, no further action is performed by Alert Filter 158. When a matching alert type is found, alert lamp controller 184 retrieves the control attributes co ⁇ esponding to the stored alert type from alert lamp storage unit 186.
  • the control attributes may include, without limitation, a TIMES attribute which defines the characteristic number of times that alert lamp 70 blinks within a predetermined time period for the specified alert type, a RATE attribute which defines the characteristic frequency that alert lamp 70 blinks for the given alert type, and an INTENSITY attribute which defines the characteristic intensity for alert lamp 70 for the given alert type.
  • Alert lamp controller 184 then passes the control attributes to enhanced keyboard driver 172 in the form of alert indicator control commands.
  • Enhanced keyboard driver 172 thereafter causes CPU 34 to generate control signals for timer 46 and enhanced keyboard controller/driver 96 which operate alert lamp 70 accordingly.
  • Fig. 12 is a process flow diagram illustrating a method for indicating an alert condition to a user via the keyboard according to the present invention.
  • the alert indicator apparatus monitors the operating system at step A to detect when an alert event occurs.
  • an alert event is deemed to have occu ⁇ ed whenever the routines for creating, displaying, or destroying an dialog box of a predetermined type or the routines for creating, displaying, or destroying an e ⁇ or message box are called by an application program or by the operating system.
  • the alert indicator apparatus identifies the alert type for the detected alert event. For example, an alert event may co ⁇ espond to a fatal system e ⁇ or, to an application-specific e ⁇ or having no effect on other application programs, to a prompt for user input, or to a simple notification or reminder.
  • an alert event may co ⁇ espond to a fatal system e ⁇ or, to an application-specific e ⁇ or having no effect on other application programs, to a prompt for user input, or to a simple notification or reminder.
  • the alert types corresponds to the type of dialog box or e ⁇ or message box that is created, displayed, or destroyed.
  • a first type of dialog box is one which can be moved or closed by the user without requiring any other input by the user, or which disappears automatically after a predetermined amount of time.
  • a second type of dialog box disables user input to an associated application program until the user provides the response or input requested by the alert message. Input to other application programs is not disabled.
  • a third type of alert dialog box disables user input to all application programs until the user provides the response or input requested by the alert message.
  • the alert indicator apparatus retrieves the stored alert types from database D.
  • the stored alert types are a subset of all possible alert types which may be identified at step B.
  • the user designates those alert types for which the alert indicator will activate.
  • the designated alert types are then stored in database D as the stored alert types.
  • the alert indicator apparatus determines whether the identified alert type co ⁇ esponds to one of those retrieved from database D. When there is not a match, the alert indicator apparatus returns to the START state without further processing of the alert event. When there is a match, the alert indicator apparatus retrieves the control attributes for the co ⁇ esponding alert type from database D.
  • the control attributes define how the alert indicator operates for the specified alert type.
  • the control attributes define a blinking rate, a blinking time-period, and a blinking intensity for each stored alert type.
  • the control attributes for each alert type are designated by the user and stored in database D.
  • the alert indicator apparatus transmits control signals to operate alert lamp 70 according to the retrieved control attributes. Control then returns to step A.
  • alert filter 158 and event storage unit 162 may be combined without departing from the spirit of the invention.
  • alert lamp 70 may comprise a plurality of light-emitting diodes having different colors. The alert filter would thereafter be programmable to cause the alert lamp to activate an LED of a certain color for a specified alert type. Accordingly, the above description should not be taken as limiting the scope of the invention which is defined by the appended claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

The present invention comprises a method and apparatus for implementing an enhanced computer keyboard system. In particular, the present invention comprises a method and apparatus for accessing and launching application programs via the keyboard and for indicating an alert status to a computer user via the computer keyboard.

Description

ENHANCED COMPUTER KEYBOARD SYSTEM
BACKGROUND OF THE INVENTION The present invention relates generally to keyboard devices for use with a personal computer. More specifically, the present invention relates to an enhanced keyboard system for operation with personal computers currently known in the art. The keyboard is the most frequently used input device for a personal computer. A typical computer keyboard has a QWERTY key layout, and often includes a numerical keypad, shift keys (e.g., right-hand and left-hand shifts, ALT, and CTRL), toggle keys (e.g., CAPS LOCK, NUM LOCK, and SCROLL LOCK) and function keys. Many models also have small indicator lights which indicate when a particular key or function (e.g., CAPS LOCK, NUM LOCK, or SCROLL LOCK) is engaged.
Combinations of these features are found on keyboards compatible with both IBM-type personal computers and the Macintosh line.
A typical keyboard includes a keyboard chip and a scan matrix which cooperate to generate two unique scan codes whenever a key is pressed—one scan code when the key is pushed down (i.e., make code) and another when the key is released (i.e., break code). The keyboard chip subsequently transmits the scan codes to a keyboard controller in the host computer via the keyboard cable. Upon receipt on the scan codes, the keyboard controller generates an interrupt signal. In response, the computer's CPU calls an interrupt handling routine that processes the scan codes and translates them into character or command codes which are recognized by the computer's operating system or application programs.
In addition to generating scan codes, a typical keyboard also processes a limited number of commands received from the computer to control its status. In particular, it is known in the art that a keyboard responds to commands from the computer to turn on/off the small indicator lights described above, to reset or disable the keyboard, or to set the repetition rate and repeat delay for keys when they are held down. A typical personal computer to which the above-described keyboard may be attached has an operating system that enables the computer to run multiple application programs at once limited only by the amount of memory installed in the computer. Such an operating system typically also employs a graphical user interface (GUI) of the type well-known in the art. Via the GUI, the user interacts with application programs, manages files and file storage devices, operates peripherals, controls network interfaces, and executes commands by operating a pointing device to manipulate icons and menus items arranged on an electronic desktop displayed on the computer monitor.
On a personal computer having the typical operating system described above, the user operates the pointing device to control a cursor displayed on the screen. The user launches an application program by using the pointing device to point the cursor to an icon displayed on the computer monitor that represents the desired application program, and then "clicking" on the icon with the pointing device. The operating system displays the application on the electronic desktop in a "window." When several application programs are running at once, the operating system typically displays each running application program in its own window. However, the typical user only interacts with one application window at a time. We designate the window with which the user currently interacts as the "active" window. It is often displayed so that it appears as if it is "on top of the other application program windows and/or application icons displayed on the electronic desktop. This feature of the "top-active" application window often causes it to partially or totally obscure other application windows or icons shown on the electronic desktop.
When the current top-active window partially or totally obscures the other application windows or icons, the user must first operate the pointing device to cause the operating system to close, reduce or move the current top-active window before he or she can select another top-active window and/or launch another application program. Alternatively, the user employs a special system management window provided by the operating system (e.g., Apple Macintosh "Desktop", Windows "Program Manager") to select a new top-active window and/or to launch another application program. The operating system displays the system management window when the user operates the pointing device to point to and click on a special menu item or icon provided for that purpose. Once at the system management window, the user selects a new application program to launch or to display by operating the pointing device as previously described. The procedures described above require the user to rely heavily on the pointing device to manipulate items on the electronic desktop to launch another application or to select a new top-active window. Using the pointing device is usually less time efficient than using the keyboard because of the hand-to-eye coordination inherently required (e.g. locating the cursor on the screen, moving the cursor to the desired location, etc.) Also, Using on the pointing device often requires the user to remove one hand from the keyboard, thereby increasing the likelihood of typographical error due to misplacement of the hands on the keyboard after manipulating the pointing device. An alternative to using the pointing device is to manipulate items on the display via the keyboard. However, current methods for operating a GUI via the keyboard often involve complicated procedures which require the user to execute complex keystroke combinations (e.g., Cntl+Esc, Alt+Tab, Alt & F & R, etc.) not readily known by less experienced users, or to understand and program complicated keyboard macros for performing the desired functions.
The modern personal computer employs energy-saving devices with increasing frequency. For example, many personal computer systems include a power- saving apparatus which operates according to a power-saving program to disable the monitor if no user input is detected for a predetermined amount of time. The user presses a key or moves the pointing device to reactivate the monitor. Such devices are a boon to energy conservation efforts and to the environment, especially in view of the proliferation of the personal computer in both homes and businesses.
Most operating systems and application programs currently known in the art generate alert messages when an alert or error conditions occurs. The alert messages are displayed on the monitor and may be accompanied by an audible alarm. For example, it is known in the art to generate an alert message to notify a user that e-mail has been received, to indicate that an error condition has occurred, to notify the user of a scheduled appointment, or to ask the user to provide additional data.
When an alert condition occurs after the power-saving program has disabled the monitor, the user will not see the alert message generated by the operating system or the application program. When an audible alarm accompanies the alert message, then the user often hears the audible alarm and responds to it accordingly by reactivating the screen and responding to the message as requested. However, there are many instances when no audible alarm is provided or when the user may not hear the audible alarm. For examples of the latter, the user may be hearing-impaired, may work in a noisy operating environment, may be away from the computer at the time of the alert, or, because of the proliferation of computers in the workplace, may mistake the audible alarm of the user's workstation for the audible alarm of another's workstation.
SUMMARY OF THE INVENTION The present invention comprises a method and apparatus for implementing an enhanced computer keyboard system. In particular, the present invention comprises a method and apparatus for accessing and launching application programs via the keyboard and for indicating an alert status to a computer user via the computer keyboard.
According to one aspect of the present invention, it is an enhanced keyboard system comprising an application key apparatus and an alert-indicating apparatus. The application key apparatus includes an enhanced computer keyboard, an application key signal generating unit, and an application key processing unit. The enhanced computer keyboard comprises one or more application keys contained in a keyboard housing. The application key signal generating unit is coupled to the application keys and generates an application key signal when an application key is pressed and/or released. The application key processing unit is coupled to the application key signal generating unit. When a specified application program is not currently ranning on the computer, the application key processing unit responds to the application key signal to cause the operating system to launch the specified application program. When the specified application program is currently running on the computer, the application key processing unit responds to the application key signal to cause the operating system to make the window associated with the specified application program the top-active window.
The alert-indicating apparatus comprises an enhanced computer keyboard, an alert filter, and an alert filter interface. The enhanced computer keyboard includes a plurality of keys contained in a housing, and an alert indicator coupled to the keyboard housing. The alert filter is coupled to the operating system and generates a plurality of alert indicator control signals when the operating system and/or an application program issues an alert message of a specified type. The alert filter is customizable to specify the type of alert conditions for which the alert indicator will activate. The alert filter is further customizable to activate the alert indicator in a characteristic manner according to the type of alert condition that has occurred. The alert filter interface transfers alert indicator control signals from the alert filter to the alert indicator coupled to the keyboard. According to another aspect of the present invention, it is a method for accessing and launching application programs via the keyboard that comprises the steps of 1) scanning for a key signal; 2) determining whether a received key signal is an application key signal; 3) identifying the application program that corresponds to the received application key signal; 4) determining whether the identified application program is currently running on the computer; 5) when the identified application program is cmrently running, making the window corresponding to the identified application program the top-active window; and 6) when the identified application program is not currently running, launching the identified application program.
According to yet another aspect of the present invention, it is a method for indicating an alert status to the user via the keyboard that comprises the steps of 1) detecting when an alert event occurs; 2) identifying the type of alert associated with the detected alert event; 3) determining whether the identified alert type corresponds with one of the stored alert types; 4) retrieving the alert indicator control attributes associated with the corresponding stored alert type; and 5) transmitting a plurality of alert indicator control signals according to the retrieved alert indicator control attributes. These and other novel aspects of the present invention will be apparent to those of ordinary skill in the art upon review of the drawings and the remaining portions of the specification.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a drawing of a computer workstation having a configuration that is currently known in the art;
Fig. 2 is a block diagram a computer system having a configuration that is currently known in the art; Fig. 3 is a drawing of a preferred embodiment of an enhanced keyboard according to the present invention;
Fig. 4 is an enlarged view of an illustrative embodiment of the application key portion of the enhanced keyboard of the present invention; Fig. 5 is an enlarged view of an illustrative embodiment of the alert lamp portion of the enhanced keyboard of the present invention;
Fig. 6 is a block diagram of a computer system which incorporates the present invention; Fig. 7 is a block diagram of one embodiment of components of the enhanced keyboard according to the present invention;
Fig. 8 is a block diagram of one embodiment of the components of the enhanced keyboard controller/driver according to the present invention;
Fig. 9 is a process flow diagram illustrating a method for accessing and launching an application program via the keyboard;
Fig. 10 is a block diagram representation of an operating system that incorporates the present invention;
Fig. 11 is a block diagram of an illustrative embodiment of an Alert Filter according to the present invention; and Fig. 12 is a process flow diagram illustrating a method for indicating an alert condition to a user via the keyboard.
DESCRIPTION OF THE SPECIFIC EMBODIMENTS Fig. 1 is an illustration of a conventional workstation 10, which includes a computer system 12 coupled to a fixed disk 14, a keyboard 16, a pointing device 18, and a monitor 20 having a display surface 22. The examples that follow refer to an image being displayed on display surface 22 of monitor 20; however the invention is equally applicable to variations such as where the display device is a printer and the display surface is a printed page, or the display device is some other pixilated or rasterized display device. Here, pointing device 18 is shown as a mouse; however other types of pointing devices such as a trackball, a light-pen, etc. may also be suitably employed.
Display surface 22 shows a number of objects being displayed associated with the GUI. The displayed objects include application program icons 24 and 26, application program windows 28 and 30, and alert dialog box 32. To launch an application program, the user employs pointing device 18 to point to and click on one of the application program icons, 24 or 26. In response, the operating system displays the corresponding application program in an application program window as shown. When more than one application program is running at the same time, the operating system displays each running application program in a separate application program window. Accordingly, Fig. 1 shows a first application program running in window 28 and a second application program running in window 30. Alert dialog box 32 is also shown on display surface 22. Alert dialog box
32 provides an alert message to the user to indicate when an alert or error condition has occurred. Either the operating system or one of the application programs generates alert dialog box 32 automatically or according to user-provided input — as with an appointment reminder. The alert messages that are displayed in alert dialog box 32 include, without limitation, an indication that an error condition has occuπed, an appointment reminder, notification of electronic mail, an indication that an application program has completed some predefined step or steps, or a request for the user to provide additional data.
Alert dialog box 32 is one of several types of alert dialog boxes that are displayed on monitor 20. A first type of alert dialog box may be moved or closed by the user without requiring the user to provide any further response. Alternatively, the first type of alert dialog box is displayed for a predetermined amount of time after which it disappears. A second type of alert dialog box disables user input to a specified application program until the user provides the response or input requested by the alert message. A third type of alert dialog box disables user input to all application programs until the user provides the response or input requested by the alert message. The foregoing description of alert dialog box types is offered primarily for illustrative purposes and is not meant to limit the type of alert dialog boxes which may be encompassed by the present invention. For example, the foregoing types of alert dialog boxes may be further delineated by whether the box is generated by the operating system or by an application program.
Fig. 2 is a block diagram of computer system 12. Computer system 12 includes a central processing unit (CPU) 34, random access memory (RAM) 36, readonly memory 38, a disk storage device 40, a pointing device controller/driver 42, a keyboard controller/driver 44, a timer 46, a graphics accelerator 48, and a video controller 50, all coupled to computer bus 52. Keyboard controller/driver 44 is shown coupled to enhanced keyboard 16 and video controller 50 is shown coupled to a monitor 20 and a printer 54. In variations of computer system 12, one or more elements might by combined. For example, pointing device controller/driver 42 and keyboard controller/driver 44 may be combined into a single unit.
CPU 34 processes the instructions of the various programs stored in memory on computer system 12 (e.g., RAM 36, ROM 38, or Disk Storage Device 40). The stored programs include, without limitation, the operating system, various application programs, and various built-in routines for controlling the operation of computer system 12 (e.g., BIOS).
Under the control of these various programs, CPU 34 controls the interaction of the other components coupled to bus 52. For example, CPU 34 uses the pointing device controller/driver 42 to receive relative-positional data from pointing device 18, and keyboard controller/driver 44 to transfer data to/from keyboard 16. CPU 34 uses timer 46 to measure precise intervals of time according to various programs running on computer system 12. Applications of timer 46 include, without limitation, controlling the refresh cycle for dynamic memory circuits, measuring a time-out interval after which monitor 20 is disabled, and generating harmonics for sound generation via a speaker or other sound-generating device. CPU 34 uses video controller/driver 50 to generate images on monitor 20 and/or printer 54. Video controller/driver includes a separate processor and memory (not shown). Graphics accelerator 48 is optional and includes a limited instruction set for executing certain frequently used graphics functions independently of CPU 34.
Fig. 3 is an illustration of a prefeπed embodiment of an enhanced keyboard 60 according to the present invention. The prefeπed embodiment of enhanced keyboard 60 includes keyboard housing 62, a plurality of keys, and a number of indicator lamps. The plurality of keys are aπanged in functional groups including a QWERTY keypad 72, a numeric keypad 74, a function key group 76, and a control key group 78. Each of the foregoing functional groups is well-known in the art and requires no further description.
In the preferred embodiment of the present invention, enhanced keyboard 60 also includes an application key group 80. Application key group 80 includes five application keys arranged along the left edge of keyboard housing 62. As will be described more fully below, computer system 12 is customizable to coπespond an application program stored in computer system 12 to each of the application keys. Pressing an application key launches the corresponding application program or causes the coπesponding application program window to become the top-active window depending on whether the application program is cuπently running on computer system 12.
Fig. 4 is an enlarged view of a prefeπed embodiment of application key group 80. Each key is marked with a symbol for indicating the type of application program with which it coπesponds. For example, a first application key 82 is marked with a symbol which suggests that the key is operated in conjunction with an application program for providing an electronic calendar or personal information manager; a second application key 84 is marked with a symbol which suggests that the key is operated in conjunction with an application program for sending and receiving electronic mail; a third application key 86 is marked with a symbol which suggests that the key is operated in conjunction with an application program for word processing; a fourth application key 88 is marked with a symbol which suggests that the key is operated in conjunction with an application program for an electronic spreadsheet; and a fifth application key 90 is marked with a symbol which suggests that the key is operated in conjunction with an application program for drawing graphics.
The particular symbol or marking used for each key is not critical and may vary. For example, it may be a letter or group of letters, an emblem, or some combination thereof. Also, the manner of affixing a mark on each key is not critical and may vary. For example, the symbol may be embossed, may be painted on the key, may be applied by means of a sticker or other attachment, or may be affixed by some combination of the foregoing. Furthermore, each application key may be marked with a generic symbol (e.g., Al, A2, A3, etc.), and a template which indicates the application program to which each application is associated is placed over the application key group 80.
Enhanced keyboard 60 also includes a number of indicator lamps 64, 66, 68 and 70 such as those shown in Fig. 2. A first lamp 64 indicates whether a "Num Lock" feature is activated; a second lamp 66 indicates whether a "Scroll Lock" feature is activated; and a third lamp 68 indicates whether a "Caps Lock" feature is activated. Each of the foregoing lamps is well-known in the keyboard art.
Enhanced keyboard 60 also includes a fourth lamp 70 for indicating an alert condition to the user. In the preferred embodiment, alert lamp 70 is provided along the front edge of enhanced keyboard 60 as shown; however, the position of alert lamp 70 is not critical and may vary. As will be explained more fully in the following paragraphs, computer system 12 is customizable to illuminate alert lamp 70 when certain predefined alert conditions occur. Furthermore, computer system 12 is further customizable to cause alert lamp 70 to blink a characteristic number of times, at a characteristic rate, with or without a characteristic intensity according to the type of alert condition that has occuπed. Fig. 5 is an enlarged view of one illustrative embodiment of alert lamp 70 according to the present invention. In the prefeπed embodiment, alert lamp 70 comprises a light-emitting diode 92 ("LED" hereinafter) and a light cover 94 which disperses the light from the LED. Cover 94 is coupled to keyboard housing 62 and is clear or colored as necessary to enhance the effect of LED 92. The size and color of light cover 94 in combination with the intensity of the LED 92 are such that alert lamp 70 is easily visible to an observer from a distance of 5 meters away when LED 92 is illuminated.
Fig. 6 is a block diagram of computer system 95 which incorporates the present invention. The items which are identical to those depicted in Fig. 2 are similarly numbered. Keyboard controller/driver 44 shown in Fig. 2 has been replaced with an Enhanced keyboard controller/driver 96 which is coupled to Enhanced keyboard 60.
Fig. 7 is a block diagram of one embodiment of an enhanced keyboard 60 according to the present invention. Enhanced keyboard 60 includes a scan matrix 98, an x-decoder 100, a y-decoder 102, a keyboard chip 104, key indicator lamps 64, 66, and 68, a key status lamp driver 106, an alert lamp 70, an alert lamp driver 108. Scan matrix 98 includes a number of signal lines displaced in an x- direction and a y-direction as shown. A key switch is located at the intersection of each x- and y-line coπesponding to a key of enhanced keyboard 60. The highlighted switches coπespond to application keys 80, 84, 86, 88, and 90. Keyboard chip 104 is a microprocessor which includes the commands for controlling the operation of scan matrix 98. When one of the application keys is activated (i.e., pressed and then released), scan matrix 98, x-decoder 100, y-decoder 102, and keyboard chip 104 operate together to generate a "make" code and a "break" code which uniquely coπespond to the activated application key. Keyboard chip 104 transmits the "make" and "break" codes to enhanced keyboard controller/driver 96 via cable 112. For a more detailed description of the operation of scan matrix 98, x-decoder 100, y-decoder 102, and keyboard chip 104 in generating "make" and "break" codes and transmitting them to computer system 95, the reader is refeπed to Hans-Peter Messmer, The Indispensable PC Hardware Book, pp. 919-943 (2d ed. 1995), incorporated here by reference. In addition to controlling the operation of scan matrix 98, keyboard chip 104 includes commands for controlling key status lamps 64, 66 and 68 and alert lamp 70. To control key status lamps 64, 66 and 68, keyboard chip 104 issues control signals to key status lamp controller 106 responsive to instructions received from computer system 95 via enhanced keyboard controller 96 and keyboard cable 112. For a more detailed description of the operation of enhanced keyboard controller 96, keyboard chip 104, key status lamp controller 106, and key status lamps 66-68, the reader is refeπed again to Hans-Peter Messmer, The Indispensable PC Hardware Book, pp. 919-943 (2d ed. 1995), incorporated here by reference. To control alert lamp 70, keyboard chip 104 issues control signals to alert lamp controller 108 in response to instructions received from enhanced keyboard controller/driver 96 via keyboard cable 112.
Fig. 8 is a block diagram of one embodiment of enhanced keyboard controller/driver 96 according to the present invention. The items shown in Fig. 8 include keyboard interface circuit 110, key code convertor 113, and application key processor 114. Keyboard interface circuit 110 receives key codes (e.g., "make" and "break" codes) from keyboard chip 104, and acts as a serial-to-parallel buffer for computer system 95. Key code convertor 113 translates the received key codes into an appropriate form for processing by the operating system or by the application programs running on computer system 95. Key code convertor 113 includes, without limitation, a character code generator 116, a control code generator 118, a function key code identifier 120, an application key code identifier 122, and a key code storage unit 124.
Key code storage unit 124 stores all possible key codes organized into functional groups. The operation of character code generator 116, control code generator 118, and function key identifier 120 is well-known in the art and will not be described further. If the received key codes do not coπespond to a character key, a control key, or a function key, then application key code identifier 122 compares the key codes with the contents of key storage unit 124 to determine whether the received key codes coπespond to an application key code. When the received key codes do not coπespond to an application key code, the key codes are passed to the active application program without further processing. When the received key codes do so coπespond, application key code identifier 122 directs the received key codes to application key processor 114. Application key processor 114 includes, without limitation, an enhanced keyboard applet 126, a key-to-application map 128, an application code generator 130, a program running detector 132, a launch/active switch 134, launching unit 136, and top- active unit 138. Enhanced keyboard applet 126 provides a user interface by which a user specifies how the application programs coπespond to the application key codes (and to the application keys). This information is stored in application map 128.
Application code generator 130 receives an application key code from key code convertor 113 and compares it with the contents of application map 128. When there is a match, application code generator 130 issues an application code which uniquely identifies the application program to which the application key code coπesponds. The application code is transmitted to program running detector 132 and to switch 134.
Program running detector 132 determines whether the identified application program is running on computer system 95. If so, then program running detector 132 causes switch 134 to direct the application code to the input of top-active unit 138. Conversely, when program running detector determines that the identified application program is not running on computer system 95, then program running detector 132 causes switch 134 to direct the application code to the input of launching unit 136. In response to the application code, top-active unit 138 issues a top-active command to the operating system. The operating system executes the top-active command by making the application program window of the specified application the top-active window. Launching unit 136 responds to the application code by issuing a launch command to the operating system which causes the same to launch the specified application program in its own window.
Fig. 9 is a process flow diagram illustrating a method for accessing and launching an application program via the keyboard according to the present invention. At step A the application key apparatus scans for a key code. When the application key apparatus detects a received key code, it retrieves the key code and determines at step B whether the retrieved key code coπesponds to an application key. If not, then the application key apparatus processes the key code accordingly at step C. For example, when the key code coπesponds to an alphanumeric key, the application key apparatus forwards the key code to the operating system which converts the retrieved key code into an ASCII code format and forwards the ASCII-coded key to the appropriate application program.
When the retrieved key code does coπespond to an application key code, the application key apparatus compares the retrieved key code to the information stored in database E to identify the application program to which the retrieved key code is associated. Database E includes information that maps the list of possible application key codes to the list of application programs on computer system 95. At step F, the application key apparatus determines whether the application program specified at step D is running. When the program is running on computer system 95, the application key apparatus causes the operating system to issue a command at step G to make the window for the specified application program the top-active window. When the program is not running on computer system 95, the application key apparatus causes the operating system to issue a command at step H to launch the specified application program in its own window on computer system 95. Control then returns to step A for the next key code.
Fig. 10 is a block diagram representation of an operating system 150 for computer system 95 which incorporates the present invention. In the prefeπed embodiment, operating system 150 is a computer program which is stored on disk storage device 40, downloaded to RAM 36, and executed by CPU 34. As is typical in the art, operating system 150 is multi-tasking in that it is capable of running several application programs at once limited only by the amount of memory on computer system 95. In Fig. 10, therefore, operating system 150 is shown with several application programs 152, 154, 156 and 158, running at once. Operating system 150 also includes, without limitation, a system resources block 160, an event storage unit 162, a device-independent interface 164, and several device drivers 166, 168, 170 and 172.
The device drivers 166, 168, 170 and 172 shown in Fig. 10 include, by way of illustration without limitation, a display driver 166, a printer driver 168, a pointing device driver 170, and an enhanced keyboard driver 172. Each device driver includes routines for enabling computer system 95 to control and communicate with the various peripheral devices coupled thereto. For example, display driver 166 includes routines which enable computer system 95 to control and communicate with a particular make and model of monitor 20. Printer driver 168 includes routines for enabling computer system 95 to control and communicate with a particular make and model of printer 54. Pointing device driver 170 provides the routines for enabling computer system 95 to control and communicate with a particular make and model of pointing device 18. Finally, enhanced keyboard driver 172 provides routines for enabling computer system 95 to control and communicate with enhanced keyboard 60. In the prefeπed embodiment of the present invention, enhanced keyboard driver 172 includes a group of routines for enabling key code convertor 113 and launch- active controller 114. The operation of these elements has been described above and need not be repeated here. Enhanced keyboard driver 172 also includes a group of routines for controlling the operation of alert lamp 70. In particular, Enhanced keyboard driver 172 includes routines for turning alert lamp 70 ON and OFF, for controlling the intensity of alert lamp 70, and for setting timer 46. These routines are executed according to instructions provided by an Alert Filter program 160 described in the following paragraphs. The routines cause CPU 34 to generate commands which are executed by enhanced keyboard controller/driver 96 and which cause the same to generate signals that operate alert lamp driver 108 as described.
The device-independent interface 164 provides a generalized interface between the application programs 152, 154, 156 and 158 and the various devices coupled to computer system 95. Because of the general nature of device-independent interface 164, each application program can control and communicate with the various devices coupled to computer system 95 without knowing the specific commands required to operate the particular make and model of each device. The elements contained in device- independent interface 164 include, without limitation, a user interface 174, a file manager 176, and a graphics display interface 178. User interface 174 includes routines which enable a user to control and communicate with the operating system 150 or an application program via enhanced keyboard 60, pointing device 18, and monitor 20. File manager 176 includes routines which enable the application programs to store, retrieve, and organize data on disk storage device 40. Graphics display interface 178 includes routines which enable the application programs to display a variety of graphical objects on monitor 20 and/or printer 54. System resources block 160 includes the system routines, commands, and other resources which are used by all of the applications programs. The resources contained in system resources block 160 include, without limitation, routines for defining, creating, moving, and destroying an application program window; a massaging system for distributing data to, among, and between application programs; routines for allocating system hardware resources to the application programs on a time-shared basis; routines for defining and creating an alert dialog box; and device-independent commands for causing an alert dialog box to be displayed on display surface 22. Fig. 10 also shows an event storage unit 162 coupled to system resources block 160. Event storage unit 162 maintains a record of the transactions between the application programs 152, 154, 156 and 158 and the system resources block 160. In particular, event storage unit keeps a record of the transactions which occur when operating system 150 or one of the application programs 152, 154, 156 and 158 creates an alert dialog box for display on monitor 20. The type of transactions recorded includes, without limitation, calls to system routines used for defining and/or creating an alert dialog box, messages communicated among and between application programs, and commands transfeπed to the device-independent interface 164 for causing an alert dialog box to be displayed on display surface 22. The application programs shown in Fig. 10 include a power-saving program 152, a generic application program 154, an alert- indicator (Al) enabled application program 156, and an alert filter program 158. The function of generic application program 154 is relevant only in that it includes commands for causing an alert dialog box to be displayed on monitor 20 when an alert condition occurs. Such programs are well-known in the art. Power-saving program 152 is also well-known in the art. It includes routines that cause monitor 20 to be disabled when no user input is detected at enhanced keyboard 60 and pointing device 18 for a predetermined amount of time. Power-saving program 152 causes monitor 20 to be reactivated when computer system 12 detects input from enhanced keyboard 60 or pointing device 18. Al-enabled application program 156 includes commands for directly controlling alert lamp 70 via enhanced keyboard controller/driver. Al-enabled application program 156 generates alert indicator control commands which are passed by operating system 150 to enhanced keyboard driver 172. Enhanced keyboard driver 172 thereafter causes CPU 34 to generate control signals for timer 46 and enhanced keyboard controller/driver 96 to operate alert lamp 70 accordingly. Examples of typical Al-enabled application program include, without limitation, security programs which cause alert lamp 70 to activate when computer system 95 is secured; point-of-sale programs which cause alert lamp 70 to activate when computer system 95 has been designated as a point-of-sale display device; and power-on indicator programs which cause alert lamp 70 to be activated as long as power is supplied to computer system 95.
Fig. 11 is a block diagram of the elements of Alert Filter 158 according to the present invention. It includes a user interface 180, an alert monitor 182, an alert lamp controller 184, and an alert lamp data storage unit 186. The user interface includes routines that define and create the typical windows, menus, and dialog boxes by which the user interfaces with Alert Filter 158. By means of the user interface, the user specifies the type of alert conditions for which alert lamp 70 will be activated. The specified alert types are thereafter stored in alert lamp storage unit 186. Furthermore, by means of user interface 180 the user programs Alert Filter 158 to cause alert lamp 70 to blink a characteristic number of times, at a characteristic rate, with a characteristic intensity according to the type of alert condition that has occuπed. This information is also stored in alert lamp storage unit 186.
The alert monitor 182 includes routines for determining whether an application program or the operating system has created an alert dialog box for display on monitor 20, and for identifying the type of alert condition associated with the identified alert dialog box. The alert monitor may perform this function by intermittently reviewing the contents of event storage unit 162. When the alert monitor determines that an alert dialog box has been created, the alert monitor next identifies the alert type. Having determined the type of alert condition, alert monitor then passes control to the alert lamp controller 184.
The alert lamp controller 184, as its name indicates, includes the routines for controlling operation of alert lamp 70. Alert lamp controller 184 first compares the identified alert type to the information stored in alert lamp data storage unit 186 to determine whether the identified alert type corresponds to one of those stored in alert lamp storage unit 186. When no matching alert type is found in alert lamp data storage unit 186, no further action is performed by Alert Filter 158. When a matching alert type is found, alert lamp controller 184 retrieves the control attributes coπesponding to the stored alert type from alert lamp storage unit 186. The control attributes may include, without limitation, a TIMES attribute which defines the characteristic number of times that alert lamp 70 blinks within a predetermined time period for the specified alert type, a RATE attribute which defines the characteristic frequency that alert lamp 70 blinks for the given alert type, and an INTENSITY attribute which defines the characteristic intensity for alert lamp 70 for the given alert type. Alert lamp controller 184 then passes the control attributes to enhanced keyboard driver 172 in the form of alert indicator control commands. Enhanced keyboard driver 172 thereafter causes CPU 34 to generate control signals for timer 46 and enhanced keyboard controller/driver 96 which operate alert lamp 70 accordingly.
Fig. 12 is a process flow diagram illustrating a method for indicating an alert condition to a user via the keyboard according to the present invention. The alert indicator apparatus monitors the operating system at step A to detect when an alert event occurs. In one illustrative embodiment of the present invention, an alert event is deemed to have occuπed whenever the routines for creating, displaying, or destroying an dialog box of a predetermined type or the routines for creating, displaying, or destroying an eπor message box are called by an application program or by the operating system.
When an alert event is detected, at step B the alert indicator apparatus identifies the alert type for the detected alert event. For example, an alert event may coπespond to a fatal system eπor, to an application-specific eπor having no effect on other application programs, to a prompt for user input, or to a simple notification or reminder. The foregoing list is provided for illustrative purposes only and is not meant to limit the types of alert events which are encompassed by the present invention. In one illustrative embodiment of the present invention, the alert types corresponds to the type of dialog box or eπor message box that is created, displayed, or destroyed. A first type of dialog box is one which can be moved or closed by the user without requiring any other input by the user, or which disappears automatically after a predetermined amount of time. A second type of dialog box disables user input to an associated application program until the user provides the response or input requested by the alert message. Input to other application programs is not disabled. A third type of alert dialog box disables user input to all application programs until the user provides the response or input requested by the alert message.
Having identified the alert type of the detected alert event, at step C the alert indicator apparatus retrieves the stored alert types from database D. The stored alert types are a subset of all possible alert types which may be identified at step B. In one illustrative embodiment of the present invention, the user designates those alert types for which the alert indicator will activate. The designated alert types are then stored in database D as the stored alert types. At step E, the alert indicator apparatus determines whether the identified alert type coπesponds to one of those retrieved from database D. When there is not a match, the alert indicator apparatus returns to the START state without further processing of the alert event. When there is a match, the alert indicator apparatus retrieves the control attributes for the coπesponding alert type from database D. The control attributes define how the alert indicator operates for the specified alert type. In one illustrative embodiment of the present invention, the control attributes define a blinking rate, a blinking time-period, and a blinking intensity for each stored alert type. The control attributes for each alert type are designated by the user and stored in database D. At step G, the alert indicator apparatus transmits control signals to operate alert lamp 70 according to the retrieved control attributes. Control then returns to step A.
While the above is a complete description of a prefeπed embodiment of the invention, various modifications, alternative constructions, and equivalents may be used. For example, alert filter 158 and event storage unit 162 may be combined without departing from the spirit of the invention. Furthermore, alert lamp 70 may comprise a plurality of light-emitting diodes having different colors. The alert filter would thereafter be programmable to cause the alert lamp to activate an LED of a certain color for a specified alert type. Accordingly, the above description should not be taken as limiting the scope of the invention which is defined by the appended claims.

Claims

WHAT IS CLAIMED IS:
1. An keyboard apparatus for a computer having a first application program, a second application program, and an operating system for running the first and second application programs in a first window and a second window on a display, respectively, and for making the first and second windows alternately selectable as a top- active window, wherein the operating system and the first and second application programs each generate alert messages provided for the display upon occuπence of first set of alert conditions, the keyboard apparatus comprising: an enhanced keyboard comprising a plurality of keys coupled to a keyboard housing, said plurality of keys including an application key; an application key apparatus, coupled to said application key, for causing said operating system to launch a coπesponding application program in response to said application key being activated when said coπesponding application program is not running on said computer, and for causing said operating system to make a coπesponding one of said first and second windows said top-active window in response to said application key being activated when said coπesponding application program is running on said computer, wherein said application key apparatus is programmable to designate one of said first and second application programs as said coπesponding application program; an alert indicator, coupled to said keyboard housing; and an alert indicator apparatus, coupled to said alert indicator, for activating said alert indicator upon the occuπence of a second set of alert conditions in said computer, wherein said alert indicator apparatus is programmable to define said second set of alert conditions.
2. The enhanced keyboard apparatus of claim 1, wherein said first set of alert conditions includes elements included in said second set of alert conditions.
3. The enhanced keyboard of claim 1, wherein said alert indicator apparatus is further programmable to activate said alert indicator in a characteristic manner according to a predefined type of alert condition that has occuπed.
4. An enhanced keyboard apparatus for a computer having a first application program, a second application program, and an operating system for running the first and second application programs in a first and second window on a display, respectively, and for making said first and second windows alternately selectable as a top- active window, said enhanced keyboard apparatus comprising: a computer keyboard including a plurality of keys contained in a housing, said plurality of keys including an application key; an application key signal generating unit, coupled to said application key, for generating an application key signal when said application key is pressed and when said application key is released; and an application key processing unit, coupled to said application key signal generating unit, for causing said operating system to launch a coπesponding application program responsive to said application key signal when said coπesponding application program is not cuπently running on said computer, and for causing said operating system to make a coπesponding one of said first and second windows said top-active window responsive to said application key signal when said coπesponding application program is cuπently running on said computer, wherein said application key processing unit is programmable to designate a particular one of said first and second application programs as said coπesponding application program.
5. The enhanced keyboard system of claim 4, wherein said application key signal generating unit comprises: a key signal generating unit, coupled to said plurality of keys, for generating a key activation signal, such that said key activation signal uniquely identifies which one of said plurality of keys has been pressed and released; and an application key identifier, having an input coupled to said key signal generating unit and an output coupled to said application key processing unit, for indicating when said key activation signal coπesponds to said application key signal.
6. The enhanced keyboard system of claim 4, wherein said application key processing unit comprises: an application code generator, coupled to said application key signal generator, for providing an application code responsive to said application key signal, such that said application code uniquely identifies said coπesponding application program; and
a launch-active controller, coupled to said application code generator, said launch-active controller including: a program running detector for indicating whether said coπesponding application program is cuπently running on said computer; a launching unit, coupled to said program running detector, for causing said operating system to launch said coπesponding application program when said coπesponding application program is not cuπently running on said computer; and a top-active unit, coupled to said program running detector, for causing said coπesponding one of said first and second windows to become the top-active window when said coπesponding application program is cuπently running on said computer.
7. The enhanced keyboard system of claim 6, wherein said application code generator comprises: a mapping unit for providing a mapping signal that indicates which one of said first and second application programs coπesponds to said application key signal; and an application key signal convertor, coupled to said application key signal generator and to said key-to-application mapping unit, for converting said application key signal into said application code according to said mapping signal.
8. An enhanced keyboard apparatus for a computer having a first application program, a second application program, and an operating system for running the first and second application programs in a first and second window on a display, respectively, said first and second windows being alternately selectable as a top-active window, said enhanced keyboard apparatus comprising: a computer keyboard including a plurality of keys contained in a housing, said plurality of keys including a first application key and a second application key an application key signal generating unit, coupled to said application key, for generating a first application key signal when said first application key is pressed and when said first application key is released, and for generating a second application key signal when said second application key is pressed and when said second application key is released; and an application key processing unit, coupled to said application key signal generating unit, for causing said operating system to launch a particular one of said first and second application programs responsive to a coπesponding one of said first and second application key signals when said particular one of said first and second application programs is not cuπently running on said computer, and for causing said operating system to make a particular one of said first and second windows said top- active window responsive to said coπesponding one of said first and second application key signals when said particular one of said first and second application programs is cuπently running on said computer, wherein said application key processing unit is programmable to designate how said first and second application programs coπespond to said first and second application keys.
9. The enhanced keyboard system of claim 8, wherein said application key signal generating unit comprises: a key signal generating unit, coupled to said plurality of keys, for generating a key activation signal, such that said key activation signal uniquely identifies which one of said plurality of keys has been pressed and released; and an application key identifier, having an input coupled to said key signal generating unit and an output coupled to said application key processing unit, for indicating when said key activation signal coπesponds to said first application key signal or said second application key signals.
10. The enhanced keyboard system of claim 8, wherein said application key processing unit comprises: an application code generator, coupled to said application key signal generator, for generating an application code responsive to said first application key signal and said second application signal, such that said application code uniquely identifies a first one of said first and second application programs responsive to said first application key signal, and said application code uniquely identifies a second one of said first and second application programs responsive to said second application key signal; and a launch- active controller, coupled to said application code generator, said launch-active controller including: a program running detector for indicating whether a designated application program indicated by said application code is cuπently running on said computer; a launching unit, coupled to said program running detector, for causing said operating system to launch said designated application program indicated by said application code when said designated application program is not cuπently running on said computer; and a top-active unit, coupled to said program running detector, for causing a coπesponding one of said first and second windows to become the top-active window when said designated application program is cuπently running on said computer.
11. The enhanced keyboard system of claim 10, wherein said application code generator comprises: an mapping unit for generating a mapping signal, such that said mapping signal indicates that a first one of said first and second application programs coπesponds to said first application key signal, and said mapping signal indicates that a second one of said first and second application programs coπesponds to said second application key signal; and an application key signal convertor, coupled to said application key signal generator and to said key-to-application mapping unit, for converting an input one of said first and second application key signals into an application code according to said mapping signal.
12. In a computer having a display, a timer, an application program, and an operating system, wherein both the operating system and the application program are each capable of generating an alert message which is provided on the display, an apparatus for providing an alternate alert indication to a computer user comprising: an enhanced computer keyboard including a plurality of keys contained in a housing, and an alert indicator coupled to said housing; an alert filter, coupled to said operating system, for generating a plurality of alert indicator control signals when one of said operating system and said application program generates an alert message having a specified alert message type, wherein said alert filter is programmable to designate said specified alert message type; an alert filter interface, coupled to said alert filter and to said enhanced keyboard, for transferring said alert indicator control signals from said alert filter to said alert indicator coupled to said keyboard.
13. The apparatus of claim 12, wherein said alert filter comprises: an alert monitor for generating an alert event signal when one of said operating system and said application program generates an alert message, and for generating an alert type signal, such that said alert type signal uniquely identifies to which one of a plurality of alert message types said alert message coπesponds; an alert indicator data storage unit for maintaining a plurality of stored alert message types and a plurality of coπesponding alert indicator control attributes, such that each of said alert indicator control attributes coπesponds to one of said plurality of stored alert message types; an alert indicator controller; coupled to said alert indicator data storage unit and to said alert monitor, for retrieving one of said plurality of coπesponding control attributes from said alert data storage unit when said alert type signal indicates that said alert message type coπesponds to any one of said plurality of stored alert message types, and for generating a plurality of alert indicator control signals according to said one of said plurality of coπesponding control attributes.
PCT/US2000/013456 1999-05-18 2000-05-16 Enchanced computer keyboard system WO2000070437A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU48536/00A AU4853600A (en) 1999-05-18 2000-05-16 Enchanced computer keyboard system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31395499A 1999-05-18 1999-05-18
US09/313,954 1999-05-18

Publications (1)

Publication Number Publication Date
WO2000070437A1 true WO2000070437A1 (en) 2000-11-23

Family

ID=23217905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/013456 WO2000070437A1 (en) 1999-05-18 2000-05-16 Enchanced computer keyboard system

Country Status (2)

Country Link
AU (1) AU4853600A (en)
WO (1) WO2000070437A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20113043U1 (en) 2001-06-15 2001-10-25 Chen Richard Windows keyboard
CN103809763A (en) * 2012-11-15 2014-05-21 技嘉科技股份有限公司 Keyboard device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0588084A2 (en) * 1992-09-17 1994-03-23 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
EP0669570A1 (en) * 1994-02-28 1995-08-30 Hewlett-Packard Company Graphical key manager for computer
EP0762263A2 (en) * 1995-08-23 1997-03-12 Kabushiki Kaisha Toshiba System and method for dynamically reconfiguring keyboard assignement based on an external event
US5721850A (en) * 1993-01-15 1998-02-24 Quotron Systems, Inc. Method and means for navigating user interfaces which support a plurality of executing applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0588084A2 (en) * 1992-09-17 1994-03-23 Kabushiki Kaisha Toshiba Portable computer having dedicated register group and peripheral controller bus between system bus and peripheral controller
US5721850A (en) * 1993-01-15 1998-02-24 Quotron Systems, Inc. Method and means for navigating user interfaces which support a plurality of executing applications
EP0669570A1 (en) * 1994-02-28 1995-08-30 Hewlett-Packard Company Graphical key manager for computer
EP0762263A2 (en) * 1995-08-23 1997-03-12 Kabushiki Kaisha Toshiba System and method for dynamically reconfiguring keyboard assignement based on an external event

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20113043U1 (en) 2001-06-15 2001-10-25 Chen Richard Windows keyboard
CN103809763A (en) * 2012-11-15 2014-05-21 技嘉科技股份有限公司 Keyboard device
EP2735939A3 (en) * 2012-11-15 2015-03-11 Giga-Byte Technology Co., Ltd. Keyboard
CN103809763B (en) * 2012-11-15 2017-04-05 技嘉科技股份有限公司 Keyboard device

Also Published As

Publication number Publication date
AU4853600A (en) 2000-12-05

Similar Documents

Publication Publication Date Title
US7480863B2 (en) Dynamic and intelligent hover assistance
US5778404A (en) String inserter for pen-based computer systems and method for providing same
US5461710A (en) Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
US20040036679A1 (en) Computer system providing a visual indication when typing in caps lock mode
US5250929A (en) Interactive overlay-driven computer display system
US6928619B2 (en) Method and apparatus for managing input focus and z-order
KR100260866B1 (en) Breakaway Touchscreen Pointing Device
KR100255285B1 (en) A computer system for creating a virtual pointing device, a method of directing a computer system and an article of manufacture having a computer usable medium
US20150058776A1 (en) Providing keyboard shortcuts mapped to a keyboard
JP2002259060A (en) Computer system provided with multiple input devices, input system, device managing program, device-setting program, double-click transmitting method and storage medium
Nordgren Development of a Touch Screen Interface for Scania Interactor
JPH0962476A (en) Information display method, data processing system and computer program product
JPH1040013A (en) Method for instructing generation of virtual pointing device and computer system and device therefor
US5486846A (en) Intelligent keypad overlay for portable personal computers
US7333093B2 (en) Information processing apparatus and information processing method
US7831923B2 (en) Providing visual keyboard guides according to a programmable set of keys
US20090019388A1 (en) Anti-virus usage model at an exterior panel of a computer
EP0438019B1 (en) Method for constructing selection cursors on dependent workstations
WO2000070437A1 (en) Enchanced computer keyboard system
US6970158B2 (en) Computer keyboard providing an alert when typing in Caps Lock mode
CA2737901A1 (en) Keyboard and computing device for providing a software input panel
US20030189551A1 (en) System and method for identifying functions invoked by function keys on a keyboard
WO2000070521A9 (en) Method and apparatus for internet commerce
CN106708278A (en) Intelligent sound production keyboard, method for controlling same and electronic device
US20040090459A1 (en) Graphical user interface for presenting and manipulating object attributes

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP