`Silen et al.
`
`[54] METHOD AND APPARATUS FOR DISPLAY
`CONTROL BOOTUP
`[75] Inventors: Bradley A. Silen, Sausalito; Lorenzo
`Cotton, Tracy; Mark I)_ Moore, P2110
`Alto all of Calif.
`’
`[73] AssigneeZ Compaq Corporation Corporatiom
`Houstom TeX-
`[21] Appl. No.: 08/866,393
`.
`_
`[22] Flled'
`May 30’ 1997
`[51] Int. c1.7 ...................................................... .. G06F 9/44
`-
`[52] US. Cl. ............................................... .. 713/2, 713/200
`713/2 200 1
`[58] Field of Search
`652 653 £86’
`’
`’
`
`’
`
`’
`References Cited
`U.S. PATENT DOCUMENTS
`2/1997 Deckys et al. ........................ .. 395/135
`5/1998 Uehara et a1. ........................ .. 395/284
`
`[56]
`
`5,600,766
`5,754,798
`
`US006049871A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,049,871
`Apr. 11, 2000
`
`5,774,652
`6/1998 Smith .................................... .. 713/200
`5,809,230
`9/1998 Pereira .................................. .. 713/200
`P 1' imary Examiner—Dennis M- Butler
`Attorney, Agent, or Firm—Jenkens & Gilchrist
`[57]
`ABSTRACT
`A computer system includes a display control apparatus for
`preventing the display of certain characters during the
`bootup sequence prior to transfer of control to an operating
`system. The control may be instituted Without signi?cantly
`augmenting the basic input/output system memory require
`ments using a terminate and stay resident driver to cause
`certain interrupts Which Would Otherwise result in screen
`dis la s to cache the screen dis la characters. The screen
`P Y
`P Y
`display characters maybe displayed upon user command if
`elected. The computer system is sensitive to a variety of
`conditions Which require restoration of the screen display
`including situations Which require user key input and the
`failure of the operating system to initiate Within a certain
`period of [mm
`
`19 Claims, 3 Drawing Sheets
`
`( BIOS )
`
`LOAD
`MS-DOS
`DRI
`IER
`
`CAPTURE
`INTERRUPTS
`
`SET UP
`BIOS DATA
`
`QUERY
`CONFIG
`S
`Fl
`
`SWITCH
`GRAPHIC
`MODES
`
`EXHIBIT 2001
`
`
`
`U.S. Patent
`
`Apr. 11,2000
`
`Sheet 1 0f 3
`
`6,049,871
`
`2o\
`CPU
`
`2s\
`L2 CACHE
`
`HOST BUS
`24\
`
`30
`
`k
`V
`MEMORY
`
`CONTROLLER _ BRIDGE
`
`/28
`
`.
`%
`I
`
`34\
`
`BRIDGE
`
`PCI BUS 36\
`
`CONTROLLER
`VIDEO MEMoRY
`\ 37
`r33
`
`______ __
`
`— DISPLAY
`
`/32
`38\
`
`.
`
`.
`
`44
`46
`
`48 if KEYBOARD
`
`CIRCUIT
`
`52
`
`14\
`___R_°M___
`12\ BIOS ‘PP-(gr ‘6
`
`ISA BUS
`
`MOUSE
`
`_| r50
`39\
`IDE
`INTERFACE
`
`40
`
`22
`[18
`
`FIG. 1
`
`EXHIBIT 2001
`
`
`
`U.S. Patent
`
`Apr. 11, 2000
`
`Sheet 2 0f 3
`
`6,049,871
`
`( BIOS )
`
`LOAD
`MS- DOS
`DRIVER
`
`CAPTURE
`INTERRUPTS
`
`SET UP
`BIOS DATA
`
`66\ 1 QUERY
`CONFIG
`FILES
`68 \
`SWITCH
`GRAPHIC
`
`MODELS 0
`
`FIG. 2
`
`EXHIBIT 2001
`
`
`
`U.S. Patent
`
`Apr. 11,2000
`
`Sheet 3 of3
`
`6,049,871
`
`on
`i @
`
`mm;
`00
`
`mm
`
`oz
`
`02
`
`mm;
`
`02
`
`mm;
`
`@105
`
`m 9 Hz_
`
`moi
`oz
`
`mmohmmm
`
`Cm;
`
`@N
`
`m. 6.5‘
`
`EXHIBIT 2001
`
`
`
`10
`
`15
`
`35
`
`45
`
`25
`
`6,049,871
`2
`1
`A variety of interrupts may be detected to facilitate
`METHOD AND APPARATUS FOR DISPLAY
`control of the bootup display. For eXample, the terminating
`CONTROL BOOTUP
`step may include the step of detecting an interrupt Which
`BACKGROUND OF THE INVENTION
`occurs When the operating system, such as WindoWs®,
`completes initialiZation. Similarly, the method can include
`This invention relates generally to booting a computer
`the step of pausing the interrupting step When a boot
`system.
`program requests a user key input.
`Modern personal computers typically include a set of
`In accordance With still other aspects of the present
`built-in softWare routines called the basic input/output sys
`invention, a method may include the step of determining the
`tem or “BIOS.” The BIOS controls many important func
`time betWeen the interrupting step and time When an oper
`tions of the personal computer such as hoW it interprets key
`ating system completes initialiZation. The interrupting step
`strokes, hoW it puts characters on the screen, and hoW it
`may be terminated if a predetermined time period is
`communicates With other devices.
`exceeded after the interrupting step begins Without eXecu
`The BIOS typically instructs the computer to test itself
`tion of the operating system program.
`In accordance With another aspect of the present
`every time the user turns it on. To do this, the BIOS uses a
`poWer on self test (“POST”).
`invention, a computer system includes a central processing
`unit and a storage device, communicable With the central
`When a personal computer starts, it typically ?rst enters
`processing unit. The storage device may contain a basic
`What is called “real mode”. The computer accesses a special
`input/output system. A display control device is adapted to
`memory location holding program instructions including a
`prevent display of screen characters by the basic input/
`jump instruction pointing to the BIOS code. Initially, the
`output system.
`BIOS instructs the system microprocessor to run through all
`the knoWn components of the system and to determine
`The display control device may include a DOS device
`Whether they are operating properly. NeXt, any eXpansion
`driver. In addition, a timer may be provided for timing the
`amount of time before an operating system begins operation
`boards Which have been installed are checked, and
`thereafter, the microprocessor begins the actual bootup
`in the computer system. The system may also include an
`apparatus for terminating the operation of the display control
`process. During the bootup process, the BIOS code instructs
`the microprocessor to jump to a section of code instructing
`device When a given period of time has passed.
`the microprocessor hoW to read the ?rst sector of the system
`The display control device may include an element Which
`?oppy, hard disk drive, or CD-ROM drive. The micropro
`terminates the operation of the display control device When
`cessor then loads the operating system from the disk to start
`it is necessary to receive a key input from the user. A
`actual computer operations.
`mechanism may store the screen characters that are not
`Once the operating system has been loaded and is
`displayed as a result of the operation of the display control
`device.
`operating, the BIOS may continue to contribute to the
`operation of the computer. It may do this through routines
`The storage device may be a read only memory, and the
`computer system may further include a system memory. The
`that programs can access to facilitate commonplace com
`puter functions, such as reading key strokes, timing events
`basic input/output system may be stored in the read only
`memory such that the basic input/output system may be
`or putting characters on a screen. Through the use of such
`BIOS routines, programmers can create complex programs
`shadoWed in said system memory. The screen characters are
`Without being concerned about these underlying functions.
`then stored in the system memory. A device is adapted to
`In WindoWs®-based computer operating systems, the
`automatically display the screen characters in response to a
`user input.
`Windows@ operating system starts only after a DOS boot
`sequence is completed. There is typically a time lag betWeen
`Among the advantages of the invention is the ability to
`When the user turns the computer on and the time When the
`control the bootup display screen. This means that one can
`control the graphics Which are displayed prior to the time
`Windows@ program takes over.
`When the operating system is fully initialiZed. This Would
`During this DOS/WindoWs® booting sequence, an
`alloW one to display graphics Which are advantageous, for
`attached monitor Will typically display information concern
`ing the booting sequence, and then indicate (through a
`eXample, to a computer manufacturer, such as information
`Windows@ “splash screen”) When the Windows@ operating
`about the computer manufacturer, instead of the default
`bootup display. In addition, the ability to control the bootup
`system is loading.
`display screen enables the user to eliminate some of the
`SUMMARY OF THE INVENTION
`information Which is currently displayed Which may be
`In accordance With one aspect of the present invention, a
`meaningless or irritating to some users. Some embodiments
`method for booting a computer system involves initiating a
`of the system may provide the ability to cache the informa
`machine boot program. The machine boot program is altered
`tion Which Would otherWise have been displayed. The user
`can then selectively display the cached bootup display
`to prevent a certain screen display.
`information, as desired. The system also advantageously
`The method may also include the step of loading a driver
`alloWs the output generated by the bootup program to be
`into memory and hooking the driver onto an interrupt vector
`table. The driver loading may be terminated at some point in
`displayed. There are a variety of instances When this Would
`be desirable. For eXample, display may be returned When a
`time. The driver may be maintained in the interrupt vector
`user’s key input is necessary. Similarly, control over the
`table. One type of driver Which is useful as the driver in this
`computer display screen may be terminated When the oper
`method is a DOS device driver.
`ating system is not initialiZed after a given period of time.
`Other variations may involve trapping outputs that Would
`Under such circumstances, a variety of problems may have
`cause characters on the screen to be displayed prior to the
`time When the operating system is eXecuted. Information
`arisen Which the computer user may have no Way to diag
`nose Without the display information.
`may be stored corresponding to the prevented screen dis
`plays. The information corresponding to the prevented
`Other advantages Will become apparent from the folloW
`ing description and from the claims.
`screen displays may be displayed upon request.
`
`55
`
`65
`
`EXHIBIT 2001
`
`
`
`10
`
`15
`
`25
`
`35
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is an exemplary schematic of a computer system.
`FIG. 2 is a How chart showing a booting display method.
`FIG. 3 is a How chart showing additional functions of a
`booting display method.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`As shoWn in FIG. 1, a computer system 10 has a collec
`tion of ?rmWare programs often called a basic input/output
`system (BIOS) 12. Typically, BIOS 12 includes a subgroup
`of programs knoWn as the poWer on self test program
`(POST) 16. BIOS 12 may be stored in read only memory
`(ROM) 14. HoWever, unlike typical computer systems, the
`POST 16 may be expanded to include routines stored outside
`ROM 14 on hard disk drive 18.
`Executing a portion of POST program 16, central pro
`cessing unit (CPU) 20 determines Which routines 22 from
`hard disk 18 are needed by other parts of POST program 16,
`and transfers these routines 22 to a system memory 24 Where
`routines 22 may be executed. Routines 22 may be accom
`panied in system memory 24 by a “shadoWed” copy of BIOS
`12. Because CPU 20 can execute code faster from system
`memory 24 than from ROM 16, in a technique called
`“shadowing”, CPU 20, during the initial stages of POST
`program 16, transfers a copy of BIOS 12 to system memory
`24 Where BIOS 12 is thereafter executed.
`Computer system 10 may include a level tWo (L2) cache
`26 coupled to a host bus 28, along With CPU 20. Also
`coupled to host bus 28 are system memory 24 and system
`memory controller/host bridge 30. Computer system 10 may
`include a peripheral component interconnect (PCI) bus 32
`Which may be interfaced to an industry standard architecture
`(ISA) bus 33 via a PCI-ISA bridge 34. Also coupled to PCI
`bus 32 is a display controller 36 Which controls display 38.
`Video memory 37 may be included With display controller
`36. ROM 16 is coupled to ISA bus 32, along With an
`intelligent device electronics (IDE) interface 39, Which may
`control hard disk drive 18 and CD-ROM drive 40.
`Computer system 10 may further include an input/output
`circuit 42 Which can provide a parallel port 44 and a serial
`port 46. The input/output circuit 42 can also receive inputs
`from a keyboard 48 and a mouse 50. U0 circuit 42 also
`interfaces a ?oppy disk drive 54 to computer system 10.
`When computer system 10 is ?rst turned on, control of the
`system is governed by POST program 14. POST program 14
`detects and checks all devices in the computer system. At the
`completion of POST program 14, control of computer
`system 10 is typically transferred to an operating system
`such as the Windows@ softWare, Which is loaded from hard
`disk drive 18.
`To direct BIOS 12 to the location of the operating system,
`a boot record is stored in a predetermined location on hard
`disk drive 18. The boot record contains a partition table
`identifying the location and siZe of partitions of hard disk
`drive 18. One of these partitions contains a boot sector,
`Which has program code for transferring the operating
`system from the hard drive to system memory 24. Besides
`the partition table, the boot record also includes program
`code for checking the integrity of the partition table and
`loading the boot sector into system memory 24.
`In order to control display 38 during the bootup process,
`While the BIOS is in control of the system, bootup display
`driver 54 (an MS-DOS device driver) operating in the real
`mode can be used. This driver can be considered akin to a
`
`6,049,871
`4
`terminate and stay resident (“TSR”) driver Which loads as a
`device driver. Bootup display driver 54 is a bundle of code
`that implements a series of operations and then terminates.
`It includes a nonresident section 56 and a resident section
`58. Nonresident section 56 has the code to load and set up
`the bootup display program. It checks to see if the program
`has been installed, and sets up any con?guration
`information, redirects interrupts and then exits, leaving the
`code resident. The resident section 58 checks for activation,
`and executes routines if activated. Bootup display driver 54
`uses the loWest available memory. After it has been used, the
`resident section 58 stays resident in memory. Additional
`information about terminate and stay resident drivers can be
`found in “Write TSRs NoW” by Jim Ras, published by
`WordWare Publishing, Inc., incorporated by reference. But it
`should be noted that While TSRs are loaded and executed by
`command.com, Which processes Autoexec.bat, MS-DOS
`device drivers are loaded from Con?g.sys before command
`.com starts processing the Autoexec.bat ?le. Thus, DOS
`device drivers of the type used herein are not, strictly
`speaking, considered TSRs.
`Bootup display driver 54 may be loaded from disk drive
`18 under command from Con?g.sys into system memory 24.
`Once loaded, the nonresident loader portion 56 of bootup
`display driver 54 is terminated. Next, the driver hooks its
`resident section 58 onto an interrupt in an interrupt vector
`table located in system memory 24. The interrupt handling
`routines in resident section 58 stay resident even after the
`non-resident section 56 has been terminated. Bootup display
`driver 54 can be reactivated thereafter.
`As explained in more detail beloW, When bootup driver 54
`sees certain interrupts it takes control. When one of these
`particular interrupts occurs, computer system 10 locates the
`appropriate routine to handle the interrupt, typically by
`multiplying the interrupt number for that interrupt by four
`and using the result as an address to the interrupt vector table
`stored in system memory. Each address in the vector table
`typically points to a BIOS routine that handles the corre
`sponding interrupt. When one of the particular bootup
`display interrupts occurs, the bootup display driver 54 can be
`activated once it has been hooked onto that particular
`interrupt.
`For example, if hooked into BIOS interrupt 10, and that
`interrupt is detected, bootup display driver 54 traps all
`attempts to display characters onto display 38. These char
`acters are stored instead in a display cache 59 in system
`memory 24. In this Way, the bootup characters are prevented
`from being displayed on the screen. At the same time, the
`bootup characters can be restored and vieWed if desired, for
`example, if a user Wishes to see the character information
`Which occurs during the bootup process. In addition, if
`certain problems arise, the system operator may get useful
`information from the bootup display. By employing a pre
`determined key sequence on keyboard 48, the boot
`characters, stored in display cache 59, can be displayed on
`display 38.
`Thus, bootup display driver 54 hooks onto bootup inter
`rupts and Wrests certain controls from BIOS 12 Without
`requiring any signi?cant alteration of the BIOS program
`itself. By hooking bootup display driver 54 into the interrupt
`vector table, BIOS 12 responds in its usual fashion, but a
`different display result occurs. For example, an interrupt
`Which normally corresponds to an error condition can be
`used by bootup display driver 54, hooked into the particular
`space in the interrupt vector table occupied by that interrupt,
`to, in effect, silence BIOS program 12, by storing its bootup
`display characters in display cache 59 instead of displaying
`them on display 38.
`
`45
`
`55
`
`65
`
`EXHIBIT 2001
`
`
`
`10
`
`15
`
`35
`
`45
`
`25
`
`6,049,871
`6
`5
`Thus, bootup display driver 54 can take control of bootup
`interception so that the display screen information stored in
`execution during certain interrupt conditions, creating dif
`display cache 59 may be displayed alloWing the user to ?nd
`ferent effects from those originally programmed in BIOS 12.
`out What has gone Wrong.
`HoWever, bootup display driver 54 should also obey certain
`Bootup display driver 54 is loaded by the Con?g.sys
`responsibilities. For example, if another piece of code has
`program, preferably before anything else. Thus, it blanks
`been hooked into the interrupt vector table before bootup
`display 38 before the other drivers start displaying informa
`display driver 54 inserts itself into the table, bootup display
`tion. HoWever, some users may ?nd it desirable to load
`driver 54 should take the address of the replaced code in
`another driver ?rst.
`order to pass execution onto the prior inserted code.
`Cached display screen data may be displayed When a
`OtherWise, the start up sequence could end improperly With
`predetermined key sequence is used during the bootup
`bootup display driver 54.
`process. The cached display information is then transferred
`Another responsibility of bootup display driver 54 is that
`to display 38 so that the user can consider the information.
`once bootup display driver 54 has been inserted into the
`Bootup display driver 54 recogniZes the predetermined
`interrupt vector table, bootup display driver 54 should not
`sequence key actuation, retrieves the cached display infor
`remove itself. This is because other code might insert itself
`mation from system memory 24, and displays it on display
`into the interrupt vector table as Well, after bootup display
`38. After computer system 10 shuts doWn, the data cached
`driver 54 has been inserted. This neW code may become
`in system memory is disposed.
`dependent upon the presence of bootup display driver 54
`In some implementations it may be desirable to make the
`code and Without it might generate an error condition. Thus,
`display screen absolutely black during bootup. This may be
`When it is no longer necessary for bootup display driver 54
`done by a call to the video controller 36 to turn off its video
`to operate, it may be advantageous to bypass bootup display
`output. After bootup display driver 54 terminates and cedes
`driver 54 With a ?ag.
`control to the operating system, video controller 36 can be
`To successfully control the screen display, bootup display
`turned back on automatically. Use of this technique can
`driver 54 should handle a series of conventional interrupts
`insure that legacy devices do not address video memory 37
`that support the operation of the system. For example, in a
`and display information on display 38, regardless of the
`Windows@ operating system embodiment, control should be
`operation of bootup display driver 54. Another option is to
`transferred to the Windows@ operating system When Win
`?ll a video display buffer With information corresponding to
`doWs® launches (e.g., With the issuance of interrupt 2F).
`a completely black screen and to load that information into
`Once WindoWs® launches, the bootup information is no
`video controller 36.
`longer relevant and control of the bootup information is
`Another technique for taking control of the display screen
`super?uous. Therefore, bootup display driver 54 recogniZes
`during the bootup process is to use an extension to the
`interrupt 2F and ceases operations, alloWing Windows@ (or
`bootup process. Such an extension can be contained in the
`another operating system) to control the screen display.
`BIOS; hoWever, in many systems, there is little available
`Conventional interrupts may also need to be recogniZed
`room in the BIOS and additional usage is undesirable. In
`When a program asks the user to log in and bootup display
`such cases, the necessary code can be stored in a hard drive
`driver 54 should then trap BIOS keyboard interrupt 16.
`18 and accessed as an extension to POST program 16.
`Suppression of the conventional screen display can then be
`Techniques for accomplishing this are disclosed in US.
`patent application Ser. No. 08/778,391, titled “Expanding
`paused so that necessary information can be displayed to
`prompt the user to input necessary information. For
`Firmware,” ?led in the names of Mark J. Altendorf, et al. on
`Dec. 31, 1996, incorporated by reference.
`example, When a user leaves a ?oppy disk in the ?oppy disk
`drive When starting the Windows@ program, an interrupt
`The operating system splash screen can also be inter
`reports that the inserted ?oppy disk is not the boot ?oppy
`cepted. The splash screen is an initially-displayed screen
`disk, and requests that the boot ?oppy disk be inserted and
`typically shoWing the name of the operating system. By
`a key struck, or else the program Will not continue. In order
`intercepting the splash screen, a computer manufacturer, for
`to prompt the user to comply, this information should be
`example, can control the screen display up to and including
`provided via display 38 in response to the appropriate
`the point When the operating system is actually running. In
`interrupt during the bootup process.
`Windows@ applications, the splash screen may be blanked
`by setting the boot delay equal to Zero and the boot GUI
`Although the screen display can be controlled in any
`number of system con?gurations, sometimes display control
`equal to one in msdos.sys. It is also possible to alter logo.sys
`may be undesirable. For example, if something goes Wrong
`in Windows@ Which is the bit map ?le for the logo. The
`during the bootup process, the user may never be able to
`logo.sys bit map ?le may be replaced With an empty ?le or
`With another desired display.
`determine that a problem has arisen if the normal screen
`display has been cached instead of displayed. As a failsafe
`Referring to FIG. 2, a bootup display method begins With
`default, a timed “bail out” can, if the operating system is not
`the initiation of BIOS 12. An MS-DOS device driver is then
`loaded Within a certain amount of time, delete the screen
`loaded (step 60). Bootup display driver 54 captures a series
`interception operation of bootup display driver 54 and alloW
`of BIOS and DOS interrupts to effect the text interception
`normal screen display. For example, if a given amount of
`process (step 61). The pertinent interrupts can include BIOS
`time passes from the time bootup display driver 54 loaded
`interrupts 10, 1C, 16, and 9, and DOS interrupts 21 and 2F.
`Without the Windows@ program starting, the cached screen
`Interrupt 10 is the BIOS video interrupt used to prevent text
`display data may be automatically displayed.
`screen Writes to the display screen. Interrupt 1C is a BIOS
`timer interrupt Which may be used to time animated graphics
`The timer (Which may be a “dead man” type timer system)
`can be implemented by hooking to timer interrupt 1C. A
`or to implement a failure mode timeout. Interrupt 16 is a
`BIOS keyboard interrupt useful in monitoring user keyboard
`certain number of times per second, a bit is generated for use
`activity, and to exit the bootup display accordingly. Interrupt
`as a DOS clock. Bootup display driver 54 interrupts 1C to
`9 is a BIOS keyboard controller interrupt Which catches
`count the time elapsed, and When the time exceeds a preset
`interrupts possibly missed by interrupt 16. Interrupt 21 is a
`amount of time (e.g., 90 seconds), it terminates display
`
`55
`
`65
`
`EXHIBIT 2001
`
`
`
`25
`
`6,049,871
`8
`7
`DOS interrupt used to monitor other programs/drivers’
`and sets interrupt 2F When the user hits the escape key, by
`other keyboard activity, or by timeout, as discussed above.
`attempts to read the keyboard. Interrupt 2F is a DOS
`Bootup display driver 54 remains memory resident, since
`interrupt used to monitor the Windows@ initialiZation. Addi
`tional information about BIOS and DOS interrupts can be
`there is usually no practical Way to unload an MS-DOS
`driver after other drivers have subsequently been loaded,
`found in a number of sources such as the “PC Programmer’s
`Guide to LoW-Level Functions and Interrupts” by Marcus
`because of interrupt linkages. As a result, about 5 k of
`Johnson, published by SAMS Publishing, incorporated by
`unusable memory may result, including 2 k of video cache
`buffer space. HoWever, bootup display driver 54 can be
`reference.
`structured to permit most of the initialiZation routine to
`Several data locations in the BIOS data area may be
`relinquish memory space after the driver loader phase is
`modi?ed to conceal the fact that the text screens have been
`complete. This can result in substantial savings of memory,
`intercepted and cached (step 64). Speci?cally, these data
`especially considering the potential siZe of an initial video
`locations may be changed to re?ect standard VGA, color
`graphic animation routine.
`capable, text mode.
`As discussed above, screen information sent to video
`Next, the con?guration ?les are queried (step 66), by
`display 38 by interrupt 10 may be intercepted and stored in
`opening and parsing tWo con?guration ?les. The graphics
`system memory, for example in a memory buffer. Since a
`modes in the bootup display method may con?ict With the
`text screen normally holds approximately tWo kilobytes of
`default WindoWs® bootup splash screen. The presence and
`information, a relatively small buffer is all that is needed.
`setting of these con?guration ?les prevent con?icts from
`When the user or other program activity requires termination
`taking place. The graphic modes are sWitched (step 68) to
`of bootup display driver 54, it can restore the display graphic
`change the video graphic display mode in preparation for
`mode to text and dump the buffered text to screen (step 88).
`loading the bootup graphics if any, inserted in place of the
`Bootup display driver 54 monitors keyboard related inter
`normal bootup display.
`rupt calls (step 84) and counts the density and frequency of
`Referring to FIG. 3, a graphic color animation used during
`such calls. The timer interrupts can be used in the density
`the bootup sequence may be loaded (step 70). Timers may
`count. Some programs periodically sample keyboard inter
`be used to manage the loading and color progression display
`rupts to monitor user input activity and any user attempt to
`of the inserted graphics. A graphic bit map may be loaded
`abort a process. Bootup display driver 54 can trap and
`from a hidden partition on hard drive 18 into video memory
`prevent any such infrequent monitoring from erroneously
`37.
`terminating any substituted bootup graphics.
`Atimer estimates the bootup delay of the user’s particular
`While the present invention has been described With
`system using interrupt 2F. The delay estimate may be saved
`respect to certain embodiments, those skilled in the art Will
`on hard disk 18 for use in subsequent boot cycles to time the
`appreciate a number of modi?cations and variations, the
`progression of a graphic color animation. The delay estimate
`scope of Which are limited only by the following claims.
`is made on each boot cycle and saved.
`What is claimed is:
`The text interception process monitors a number of
`1. A method for booting a computer system comprising
`events. For example, BIOS interrupt 10 is monitored (step
`the steps of:
`72) to prevent text screen Writes to the display screen 38. If
`initiating a machine boot program;
`interrupt 10 is detected, the text data is cached (step 74).
`altering said machine boot program to prevent characters
`BIOS interrupt 1C is also monitored (step 76). If detected,
`generated during execution of said machine boot pro
`a timer is incremented (step 78). A check is made to
`gram from being displayed;
`determine Whether the display time has been exceeded (steps
`prior to execution of an operating system controlling said
`80 and 82). This is important When loading graphic infor
`computer system, trapping characters for display; and
`mation for timing the color progression of a displayed
`returning to execution of said machine boot program.
`animation. In addition, a check is made (step 82) to deter
`2. The method of claim 1, further comprising the step of:
`mine Whether too much time has passed since bootup
`responsive to the step of altering said machine bootup
`display driver 54 initially loaded, indicating that something
`program, storing information corresponding to said
`in the booting process has failed. In that case, the text
`characters generated during execution of said machine
`display is restored (step 88). Operation of bootup display
`boot program.
`driver 54 is then terminated.
`3. The method of claim 2, further comprising the steps of:
`Also, interrupts 16 and 9 are checked, since they monitor
`retrieving said stored information corresponding to said
`keyboard activity. If keyboard activity occurs, indicating
`characters generated during execution of said machine
`that the user Wants the suppressed display information, the
`boot program; and
`information is restored (step 88) and a bypass of normal
`displaying information corresponding to said characters
`bootup display driver 54 operation occurs.
`upon request.
`Also, interrupt 21 is detected (step 86). If so, the sup
`4. The method of claim 1, further comprising the step of
`pressed display information is restored for the same reason
`terminating the altering of said machine boot program When
`discussed above.
`an operating system begins execution.
`Finally, a check is made to determine Whether the Win
`5. The method of claim 4, Wherein said operating system
`doWs® initialiZation has begun (step 90). If so, the bootup
`comprises a Windows@ operating system.
`display driver 54 proceeds to terminate (step 92).
`6. A method of claim 4, Wherein said terminating step
`Bypass mode (step 92) involves setting all captured
`includes the step of detecting an interrupt Which occurs
`When the operating system begins execution.
`interrupt handlers into a bypass mode, Which may be accom
`plished by setting an internal ?ag variable, Where each
`7. The method of claim 4, further comprising the step of
`interrupt handler checks this ?ag. Each handler does nothing
`determining the time betWeen said detecting an interrupt
`if the bypass ?ag has been set. Bypass mode (step 92) may
`step and the time When the operating system begins execu
`be instigated when Windows@ begins started initialiZation
`tion.
`
`65
`
`15
`
`35
`
`45
`
`EXHIBIT 2001
`
`
`
`6,049,871
`10
`9
`8. The method of claim 7, further comprising the step of
`basic input/output system may be shadoWed in said system
`terminating said interrupting step When a predetermined
`memory, said screen characters being stored in said system
`time period is exceeded after said interrupting step begin
`memory, and said computer system further including a
`Without execution of said operating system.
`device adapted to automatically display said screen charac
`9. The method of claim 1, further comprising the step of
`ters in response to a user input.
`16. A method for controlling a computer display in
`pausing the altering When the boot program requests a user
`key input.
`communication With a computer system, the method com
`prising the steps of:
`10. A computer syste