Quick access to computer applications

Abstract: In general, in one aspect, the invention features a method for enabling a user of a computer to rapidly begin using an application which had been previously placed in a non-running state. Prior to the time when the application was placed in the non-running state, information defining an image of an interactive screen associated with the application is stored in the memory of the computer and locked to prevent corruption by other running applications. Then, in response to a request from the user to begin using the application, and before the application has been fully loaded into memory and is again running, the image defined by the stored information is displayed to the user. In this way the user is given the impression that the application has become immediately available.

Description: This invention relates to accessing computer applications. If a user wants access to a computer application on a general purpose computer that is turned off, he must wait while a relatively long boot-up process is completed and the application is loaded and started. A delay also happens if a user working on one application wants to use another application that is not then available in memory. Some special purpose pocket-sized personal digital assistants (PDAs) are designed so that a user can have immediate access to any one of several simple applications because they are always immediately available in ROM or RAM. Some portable personal computers provide a "standby" mode which draws reduced power while maintaining an application in memory and keeping the processor "alive". When the user presses a resume button, the application becomes available after a short delay without the need to re-boot the computer or reload the application. ACM TRANSACTIONS ON GRAPHICS, vol. 5, no. 2, April 1986, pages 79-109, "The X Window System" describes the X window system that is based on a client-server model. For each physical display (screen) there is a controlling server (X server). A client application and the controlling server communicate over a duplex byte system. Multiple clients can have connections open to a server simultaneously, and a client can have connections open to multiple servers simultaneously. The basic resources provided by the X server are windows, fonts, mouse cursors, and off screen images. Access control is performed only when a client application attempts to establish a connection to the server. Once the connection is established, the client application can freely manipulate any resource. Since accidental manipulation of some other client's resource is extremely unlikely, the introduction of access control on a per-resource basis would only serve to decrease performance, not to increase security. The access control mechanism is based simply on host network addresses. Furthermore, when a client application terminates, all of the resources being created are destroyed automatically. "Inside Macintosh", volumes I, II, II, VI, October 1991, ADDISON-WESLEY, describe the Resource Manager, through which an application accesses various resources that it uses, such as menus, fonts, and icons, which are stored in resource files. It also describes the Event Manager, that allows an application to monitor the user's actions, such as those involving the mouse, keyboard, and keypad. It also discloses that a cooperative multi-tasking environment introduces a new type of event to allow the Operating System to communicate information to an application about changes in the operating status of that application. An application can be switched into and out of the background. US-A-5 386 552 & US-A- 4 823 108 also describe systems allowing a computer user to rapidly begin using an application which has previously been placed in a non-running state. According to the present invention there is provided a method for enabling a user of a computer to rapidly begin using an application which has previously been placed in a non-running state, the method comprising a) prior to the time when the application was placed in the non-running state: storing, in the memory of the computer, information defining an image of an interactive screen associated with the application, and locking the memory in which the image is stored to prevent corruption by other running applications; and b) in response to a request from the user to begin using the application, and before the application has been fully loaded into memory and is again running: displaying, to the user, the image defined by the stored information. In this way the user is given the impression that the application has become immediately available. The invention also includes apparatus for carrying out the method defined above. Implementations of the invention may include the following features. Keyboard input may be accepted from the user before the application has been fully loaded into memory and is again running. The image may be compressed as it is stored in memory and decompressed for display. Information defining images of interactive screens associated with additional applications may also be stored so that, in response to a request from the user to return any of the applications to a running state, and before the application has been fully loaded into memory and is again running, the video memory may be filled with the image associated with the application. The application may be in a non-running state because a processor in the computer may be in a standby mode. The image for which information is stored may be the image that was being displayed when the application was previously placed in a non-running state. The invention provides a method for causing a portable computer to exhibit the character of both a general purpose computer and a personal digital assistant having dedicated applications. Selected interactive screens associated with the applications available on the portable computer are stored in the computers memory, even at times when the applications are not running. When a user requests to use the application, and before the application is fully running, the selected interactive screen is displayed while the computer accepts user input for the application in a way that gives the user the impression that the application is fully running. The selected interactive screen can be either the screen which was displayed when the given application was most recently running, or the same one regardless of what interactive screen was last displayed. The user can request to use an application via a dedicated switch. The user may also alter which application is activated by the dedicated switch. There can also be different dedicated switches assigned to a single application, where the switches activate different interactive screens of the application. Depressing one of a set of dedicated switches associated with different application programs may cause the essentially immediate display of an interactive screen of the associated application, while the computer accepts user input associated with the screen, even when the application is not running. The computer may have a processor capable of entering a standby mode, and the computer can then awaken in connection with responding to the dedicated switch. The interactive screen which is provided essentially instantaneously can be a screen that had been displayed at the time the application entered the standby mode. The interactive screen can also be one preselected from a set of screens available for the associated application. Additional dedicated switches associated with other application programs can be provided, where the computer responds to each of the dedicated switches by essentially instantaneously causing each of those applications to seen active to the user. The associated applications can comprise a number of different software programs, including a calendar, an address book, or a list maker. Among the advantages of the invention are the following: A general purpose computer can provide one or more applications that seem to instantaneously become available to a user, upon pressing a button. The button or switch can be specially dedicated to this purpose, or be one of the keys found on a conventional keyboard. Any number of applications can be made to seen nearly instantaneously available. The applications can be any sort of software program, including rich graphical applications. The computer can both display a visual interface for the selected program and begin accepting input data from the user, before the program has been fully loaded into memory. Other advantages and features of the invention will become apparent from the following description by reference to the accompanying drawings in which: Fig. 1 is a representation of a portable computer providing for quick access to computer applications. Fig. 2 is a schematic diagram of a computer providing for quick access to computer applications. Fig. 3 is a flow chart of a standby sequence for quick access to a computer application. Fig. 4 is a flow chart of an operation sequence for quick access to a computer application. Referring to Figure 1, a portable computer 10 is configured to provide both the capability and richness of a typical general purpose computer and the feel and convenience of a personal digital assistant (PDA). This is achieved by providing a dedicated set of application keys 12a, 12b, and 12c, associated with respective specific applications (calendar, planner, ...). The computer is arranged so that when one of the application buttons is pressed at a time when that application is not fully loaded in the memory of the computer and "running", the screen display nevertheless essentially immediately begins to display a screen of the selected application and the computer accepts input from the pointing device and the keyboard all in a way that gives the user the impression that the application was all along present in memory and running. The application also immediately begins to fully load the application and bring it to a fully operational state so that the user is able to make full use of all features of the application within a very short time. In this way, when the user is working, say, in a spreadsheet program running under Windows and wishes to reset an appointment, he can do that essentially with the same convenience of a PDA, simply by pressing the calendar button. He could then return to the spreadsheet program by pressing the Windows button. Referring to Figure 2, the application keys 12 connect to a latch 22 that captures the identity of the latest button press. When a button is pressed, latch 22 sends an interrupt signal to central processing unit (CPU) 24, informing the CPU 24 that the user wants to use the selected application. CPU 24 then immediately retrieves from a protected area 28 of random-access memory (RAM) 26, the data and instructions which enable the user to begin to use the application. The application keys 12 can be either specialized switches added to the computer, or merely already existing keyboard switches. Each application associated with one of the keys 12 reserves space 30 in protected RAM area 28 for recording that application's screen display as it was the last time the application was exited. A compression technique is used to reduce the amount of memory these recorded screen displays 30 require. Each application also reserves a memory area 32 for storing a portion of the application's code which includes the basic input code required for handling keyboard presses, mouse movements and clicks, and other input of the user. In addition to retrieving the data and instructions stored in protected area 28, the CPU initiates the loading of the full application from hard disk drive 34. Before the full application is loaded into memory from hard disk drive 34 and is running, CPU 24 takes the stored screen display for the chosen application from memory area 30, decompresses it if necessary, and places it in video buffer 36 for transfer to display 14. This gives the user an immediate sense that the chosen application is now available, even as CPU 24 transfers the full code for the program out of the hard disk drive 34 into RAM 26 (that is, if the application is not already there). If the application is already present in memory, it can be loaded by the operating system at once. If the user starts entering data through keyboard 18 or mouse 20 before the application is fully loaded, CPU 24 uses the basic input software for the application stored in memory area 32 to accept and possibly respond to the input. Since the computer 10 immediately displays the screen for the chosen program and then allows the user to enter a certain amount of data immediately, the user remains unaware that the application is still being transferred into RAM and is not yet fully running. But for many applications, by the time the user has begun entering data, the application will be loaded and operational. Referring to the flow chart 40 of Figure 3, the portable computer can come out of standby mode when a user presses 42 one of the application keys 12. The latch 22 then records which button has been pressed 44 and sets the standby interrupt to signal the computer to awaken, according to standard Intel SMI protocols. The SMI interrupt handler then pre-fills 46 the video buffer 36 with the stored screen display 30 for the chosen application and immediately starts to check 48 for user inputs. As the user enters data and makes key strokes and mouse clicks, the operating system fills 50 a buffer in RAM 26 with these inputs for use as soon as the full application is functioning. These functions can be multitasked to proceed in parallel. Control is then handed back 52 to the Windows operating system and a specialized virtual device VxD is set 54, such that the chosen application is the first one awakened 56 by the Windows system. The chosen application's display is immediately shown and its program is executed first, before any other programs. Then, normal Windows operations proceed 58. If the computer enters standby mode 60, upon notification by the power management system, all currently running instantly available programs have their latest screen displays recorded 62 into their respective protected RAM areas 30, for use when the system comes out of standby. After these screen displays are recorded, the system retreats 64 into standby mode. Referring to the flow chart 70 of Figure 4, during windows operation 72, if the user wishes to change one instantly available application for another he can push 74 another of the application keys 12. Processing proceeds along the same path as in Figure 3, where the latch is set 76, the video buffer is pre-filled 78 with the new display, user inputs are checked 80 and filled 82 into a buffer, the specialized VxD device is set 84 for the new application and then the new application is loaded 86. After this, normal windows processing continues 88 until standby mode 90, at which time the protected RAM areas 30 are again filled 92 with the last screen displays of all instantly available applications, allowing the system to enter standby 94 again.

Claims: A method for enabling a user of a computer to rapidly begin using an application which has previously been placed in a non-running state, the method comprising a) prior to the time when the application was placed in the non-running state: storing, in the memory of the computer, information defining an image of an interactive screen associated with the application, and locking the memory in which the image is stored to prevent corruption by other running applications; and b) in response to a request from the user to begin using the application, and before the application has been fully loaded into memory and is again running: displaying, to the user, the image defined by the stored information. The method of claim 1, wherein step (b) further includes accepting keyboard input from the user before the application has been fully loaded into memory and is again running. The method of claim 1, further comprising compressing the image as it is stored in memory and decompressing it for display. The method of claim 1, wherein information is stored defining images of interactive screens associated with additional applications, and in response to a request from the user to return any of the applications to a running state and before the application has been fully loaded into memory and is again running, the video memory is filled with the image associated with the application. The method of claim 1, wherein the application is in a non-running state because a processor in the computer is in a standby mode. The method of claim 1, wherein the image for which information is stored is the image that was being displayed when the application was previously placed in a non-running state. Apparatus for enabling a user of a general purpose computer to rapidly begin using an application which has previously been placed in a non-running state, comprising means for storing in the memory of the computer, prior to the time when the application was placed in the non-running state, information defining an image of an interactive screen associated with the application, and for locking the memory in which the image is stored to prevent corruption by other running applications; and means for displaying the image defined by the stored information to the user in response to a request from the user to begin using the application before the application has been fully loaded into memory and is again running. Apparatus according to claim 7, for imparting to the general purpose computer the character of a personal digital assistant of the kind having dedicated applications accessible using dedicated application buttons, wherein the means for displaying the image defined by the stored information includes dedicated switches associated with different application programs available on the general purpose computer. A general purpose computer configured to provide a multitasking windowed graphical interface in which a user may interact with application programs by observing interactive screens and providing input related to the displays, the computer including apparatus according to claim 7, and wherein the means for displaying the image defined by the stored information includes a dedicated switch associated with one of the application programs. The computer of claim 9, wherein the application program is caused to seem to be instantaneously active by displaying an interactive screen of the associated application and accepting input for the associated application from the user. The computer of claim 9, wherein the processor of the computer is capable of being in a standby mode, and the computer is awakened from the standby mode in connection with responding to the dedicated switch. The computer of claim 10, wherein the interactive screen which is provided comprises a screen that had been displayed at the time the application entered a non-running state. The computer of claim 10, wherein the interactive screen which is provided comprises a preselected one of the screens available from the associated application. The computer of claim 9, further comprising additional dedicated switches associated with other ones of the application programs, the computer also being configured to respond to each of the dedicated switches by instantaneously causing each of those applications to seem to the user to be active. The computer of claim 9, wherein the associated application comprises a calendar, an address book, or a list maker.

Inventors: VOCE MAURICE F, VOCE, MAURICE F.
Applicants: COMPAQ COMPUTER CORP, COMPAQ COMPUTER CORPORATION
Application year: 1995
Main classification: G06F9
IPC codes: G06F9, G06F3, G06F1