Computer system and method capable of automatically inputting product key of a software program upon reinstalling the program thereon

A computer system having a hard disk drive including a product key input program for writing a product key of an operating system (OS) program in a CMOS RAM, and a CD-ROM drive including a recovery program for recovering an OS program and application programs to an initial state. Should a defect of the hard disk drive or critical error of the OS program occur, the OS program may need be reinstalled or a recovery program may be run to recover the initial states of the OS program and the application programs. The product key stored in the CMOS RAM will be used during the recovery or re-install process, so that the user does not have to manually input the product key again.

CLAIM OF PRIORITY

This application makes reference to, incorporates the same herein, and claims all benefits accruing under 35 U.S.C §119 from an application entitled Computer System And Method Capable Of Automatically Inputting Product Key Of A Software Program Upon Reinstalling The Program Thereon earlier filed in the Korean Industrial Property Office on 23 Nov. 1999, and there duly assigned Serial No. 99-52232 by that Office.

FIELD OF THE INVENTION

The present invention relates to a computer system and, more particularly, to a computer system capable of automatically inputting a product key of a software program upon reinstalling the program in the computer system and method of reinstalling a software program.

BACKGROUND OF THE INVENTION

Every general-purpose computer has an operating system to provide a user interface between a user and the computer and to run other programs on the computer. Operating system programs provide a software platform on top of which other programs, called application programs, are able to run, and perform basic tasks, such as recognizing an input from a keyboard, sending an output to a display apparatus, keeping track of files and directories on disks, and controlling peripheral devices such as disk drives and printers.

Currently, most PC manufacturers provide a bundle of basic and essential software programs already installed in the computers being offered for sale, for user's convenience. Thus, upon purchasing a new computer, a user has no need to install such programs, and all that is required is for the user to register the installed programs with the programs' manufacturers.

If a user bought a computer operated with a Windows® 98 operating system program, he may first add information to some part of the program to his computer if necessary and compose the program to his environment, such as inscription of his name, keyboard composition, time setting, and so on, to complete the installation of the program.

In such a user program install process, a user must correctly input a product key of the program into product key input window, otherwise the program cannot be completely installed and will not operate until the correct product key is input. In other software programs, which must be completely installed by the user, the product key, also known as the product ID, product certificate information or serial number, must be correctly entered before any part of the program can be installed.

Current software programs, however, have complex product key structures (e.g., the Windows® 98 program has a product key of 25 characters), thus there is a high probability that an error occurs in inputting the product key unless a user carefully checks each character of a product key. Also, since software program product keys are typically stored in a specific area of a hard disk in the hard disk drive, should the user have to reinstall the software programs on his/her computer due to a software failure or due to damage to a portion of the hard disk, etc, then the user must manually input the product keys again for the software being reinstalled. However, if the user cannot find the authentication certificate of a program and has no record of the product key of the program, he cannot reinstall the software. Moreover, if the operating system software had to be reinstalled, or a disk recovery operation needed to be performed, and the user had no record of the product key for the operating system software, the computer would be inoperable until either new software was purchased or, if the software was properly registered, the manufacturer could provide the necessary information to the user.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide computer systems and methods capable of improving product key retention reliability.

It is another object of the present invention to provide computer systems and methods capable of conveniently reinstalling software programs that require product key input.

According to an aspect of the present invention, a computer system having an operating system program containing product key information includes a first storage step for storing the operating system program, a second storage step for storing the product key information of the operating system program when the operating system program is first installed in the first storage step, a write means for writing the product key information in the second storage step, and input means for reading out the product key information from the memory means and inputting the read-out information in an information input window for product authentication of the operating system program when a reinstalled operating system program is matched with an operating system program corresponding to the product key information written in the memory means.

According to another aspect of the present invention, a computer system has a central processing unit (CPU), a main memory, a BIOS ROM, and an auxiliary memory for storing information set by the BIOS ROM, and uses an operating system program containing product key information. A method of writing the product key information in the auxiliary memory when the operating system program is installed first comprises the steps of making a user manually input the product key information corresponding to a procedure of installing the operating system program; executing the product key information writing program; and writing the manually input product key information into the auxiliary memory.

According to further another aspect of the present invention, a computer system has an operating system program containing product key information and comprising a central processing unit (CPU), a main memory, an auxiliary memory for storing the product key information, and at least one auxiliary memory device. A method of automatically inputting the product key information manually input by a user when the operating system program is first installed comprises the steps of reading out the product key information form the auxiliary memory; checking whether the read-out product key information is matched with product key information of an operating system program that will be reinstalled; and, if matched, automatically inputting the product key information in a product key information input window of the operating system program.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1shows a computer system100according to the present invention, which comprises a system unit90, a display device110, an alphanumeric input device120such as a keyboard, and a point device130such as a mouse. The system unit90is equipped with one or more hard disk drives (HDDs)140(and144ofFIG. 3), a compact disk read only memory (CD-ROM) drive150, a floppy disk drive (FDD)170, and other mass storage devices such as a digital versatile disk (DVD) player (not shown).

Also, the computer system100contains a bundle of software programs including an essential part of an operating system (OS) program and other application programs, all of which are installed by a computer manufacturer or user and stored in the hard disk drive140.

A commercial software program, such as a Windows® OS program, is usually provided with a manual10including an authentication certificate for the program. For example, the authentication certificate of a Windows® 98 OS program contains a product key12printed thereon. Additionally, the product key may be printed on a label (not shown) attached to the case161for compact disk160having the Windows® 98 OS program stored thereon. A product key12of a Windows® 98 OS program is composed of 25 characters.

FIG. 2shows a product key input screen20displayed on a display screen of display device110upon installing a software program that requires the user to input the product key. In such an installation process, it is required to correctly input a product key12of the program in a product key input window22of the product key input screen20.

FIG. 3shows a circuit configuration of the computer system100as shown inFIG. 1. Referring toFIG. 3, the computer system100includes a central processing unit (CPU)102, a main (RAM) memory104, a basic input output system (BIOS) ROM106, a complementary metal oxide semiconductor (CMOS) random access memory (RAM)108for BIOS setup, a video controller112, an input/output (I/O) controller114, an intelligent or integrated drive electronics (IDE) controller116, and an FDD controller118, all of which are coupled to a bus such as a processor bus, a peripheral component interconnect (PCI) bus, an industrial standard architecture (ISA) bus, or a system management (SM) bus.

I/O controller114is coupled to the alphanumeric input device120such as a keyboard and to the pointing device130such as a mouse. IDE controller116is coupled to one or more hard disk drives (HDDs)140and144. And, FDD controller118is coupled to the FDD170.

BIOS ROM106stores a BIOS program that controls the booting operation of the computer system using HDD140or CD-ROM160in accordance with the information stored in CMOS RAM108.

As is well known, although the CMOS RAM108is a volatile memory, it is operated by a battery and thus acts like a non-volatile memory. That is, the CMOS RAM108always retains the BIOS setup information without loss of the information upon system power-off.

The computer system100also includes a product key input program installed by the manufacturer and stored in the HDD140. The product key input program writes a product key of a software program into the CMOS RAM108used for BIOS setup of the computer100. The product key input program preferably is installed when an OS program is installed for the first time.

The system100further includes a system recovery CD-ROM160that contains a system recovery program for the recovery of the software programs stored in the hard disk drive140. When OS and application programs of the computer100become defective, the system recovery program restores those defective programs to their original installation states. According to the present invention, the recovery program automatically writes a product key stored in the CMOS RAM108into a product key window22when a program is reinstalled.

In the system memory map, the CMOS RAM108corresponds to I/O ports70h-73h. The ports70hand71hare the IBM® personal computer standard CMOS RAM ports, and the other ports72hand73hare additional ports according to the present invention. The port72his used to store an offset value of a location of the CMOS RAM108that is subjected to a read or write operation. A data item is read from or written into the location indicated by the offset value via the port73h. That is, the additional ports72hand73hserve as additional index and data ports of the CMOS RAM108, respectively.

For example, assuming that an offset value is stored in a storage location38hof the CMOS RAM108, a processor, such as the CPU102, reads a data item corresponding to the offset value from the CMOS RAM108as shown in the following Table 1.

First, a content of location38h(i.e., an offset value) is moved into a register AL in the processor. The processor then writes the offset value stored in its register AL into the index port72hof the CMOS RAM108so that a data item stored in a CMOS RAM location corresponding to the offset value is read out and stored in the data port73hof the CMOS RAM108. Thereafter, the processor reads the data item from the data port73hand stores it into its register AL. In this manner, a product key of an software program such as an OS program, stored in the CMOS RAM108, can be read out from a specific area thereof under the control of the recovery program.

In the computer system100, HDDs140and144act, respectively, as a primary device containing at least one OS program for system booting and a secondary device for optional functions. While the primary HDD140stores an OS program142and application software programs, the secondary HDD144stores a copy version146of the recovery program162contained in the recovery CD-ROM160. The copied program162is used to restore the OS and application programs to their initial installation states.

CD-ROM drive150can be used as a boot device, like HDD140. Also, when a software program fails, the CD-ROM drive150can directly recover or reinstall the programs using the CD-ROM160. At this time, the CD-ROM drive150reads a product key of the software program from CMOS RAM108, and then automatically inputs it into a product key input window22produced by the CD-ROM160upon reinstallation of the defective software program.

FIG. 4shows a storage region180of the CMOS RAM108shown inFIG. 3. Referring toFIG. 4, the storage region180of CMOS RAM108includes BIOS areas182and194, a checksum area184, a program install flag area186, a product key area188, a recovery CD booting menu area190, and a recovery mode information area192.

The BIOS areas182(00h-DFh) and194(FEh-FFh) are available to a BIOS only and cannot be employed for other use.

The checksum area184(E0h) is used to determine whether a product key written into the CMOS RAM108is correct by checking whether a result of summing up contents of the product key storage area188with contents of the program install flag area186by bytes is zero (‘0’).

The program install flag area186(E1h-E2h) is used for indicating which program is being installed. In other words, a product key presently being stored in the CMOS RAM108is provided for which program.

The recovery CD booting menu area190(FCh) stores information about the boot device that is determined by BIOS CMOS setup, as shown in Table 2.

The recovery mode information area192(FDh) is used to store information about functions that will be carried out after system booting using the recovery CD-ROM160, in which the information is stored by bytes. As shown in Table 3, the area192determines whether the system100will be restored to its initial state or only an OS program will be installed.

TABLE 3Setting CodeContents0Restore System To Initial State1Installing Only an OS Program

The product key input storage area188(E3h-FBh) preferably has a 25-byte storage size and each character of the product key is preferably represented by an 8-bit ASCII code. However, area188may have various sizes enough to retain all the product key characters of the programs installed in the system100, and each character may be represented by a 6-bit code, a 5-bit code, or other codes defined by computer makers in accordance with the character numbers of product keys.

FIG. 5shows a format of a program install flag186aaccording to the present invention. Referring toFIG. 5, the program install flag186ais an 8-bit code. InFIG. 5, X symbols mean ‘don't care’ values, i.e., it doesn't matter if each bit of 4-bit codes has any of the hex values 0h-Fh. The lower 4-bit portion, bit0-bit3, of the flag186aindicates the types of software programs installed such as Windows® OS programs, or other application programs. For example, the lower bit portion of ‘0h’ indicates that no program is installed, ‘1h’ indicates that Windows® 98 is installed, and ‘2h’ indicates that Windows® 98 SE is installed. the upper 4-bit portion, bit4-bit7, of the flag186aindicates the bit formats of the product keys. For example, the upper bit portion of ‘0h’ indicates an eight-bit format, ‘1h’ indicates a 6-bit format, and ‘2h’ indicates a 5-bit format. For example, when a Windows® 98 SE OS program is installed, each character of the OS program's product key is preferably encoded into 8 bits with lower 4 bits of ‘2h’ and upper 4 bits of ‘0h’.

FIG. 6shows an 8-bit format188aof a product key code according to the present invention. As shown inFIG. 6, characters of a product key of ‘43 . . . HBB’ are encoded into 8-bit ASCII codes, respectively, and then are stored in the product key area188(E3h-FBh) of the CMOS RAM108. For example, the first character B of ASCII code ‘01000010’ is stored at storage location E3h, and the last character 4 of ASCII code ‘00110100’ is stored at location FBh.

FIG. 7shows a 6-bit format188bof the product key code, andFIG. 8shows a code table200for use with the code format188b. Referring toFIG. 7, each character code has 2 higher-order bits TH and 4 lower-order bits FL. For example, the ASCII character ‘A’ is represented by a 6-bit code ‘010001’ in accordance with the code table ofFIG. 8. This format188bpermits representing the product key having a maximum number of 32 ASCII characters as 24 bytes using a compress conversion process. That is, as shown inFIG. 7, an example of 4 characters are encoded into 3 bytes using the code table200ofFIG. 8. A 6-bit code of a character is encoded by subtracting 30h from the value of a corresponding ASCII code so that the value of the 6-bit code is in a range of 00h-3Fh. For Example, the ASCII character ‘Z’ has a hex value of 5Ah; subtracting 30h from 5Ah results in a hex value 2Ah; and the binary value of 2Ah is 00101010. Thus the 6-bit code of the ASCII character ‘Z’ is 101010. In limiting the 6-bit code to a range of 00h-3Fh (binary values 000000˜111111) the product key may include the ASCII characters shown inFIG. 8with the reservation area being available for the ASCII characters (‘ and a˜o).

FIG. 9shows a 5-bit format188cof the product key code, andFIG. 10shows a code table210for use with the code format188c. Referring toFIG. 9, each character code has 1 higher-order bit OH and 4 lower-order bits FL. For example, the ASCII character ‘Y’ is represented by a 5-bit code ‘10000’ in accordance with the code table ofFIG. 10. This format188callows 3 characters to be encoded into 2 bytes using the code table210ofFIG. 10and the compress conversion process ofFIG. 9, so that it can represent a product key having up to 40 ASCII characters.

FIG. 11is a flowchart showing a program install process according to the present invention. For convenience of explanation, the process ofFIG. 11will be described using a specific example, i.e., a user install process of an OS program, such as one of the Windows® family, however, it should be understood that the inventive concept of the present invention is applicable to installation of other software programs.

As described earlier in the background section of this specification, most PC makers provide computers installed with a bundle of basic and essential software programs. Thus, upon purchasing a new computer with an OS program and upon turning on the computer, S220, a user may be required to first add some part of the OS program to his computer such as registering user information S222.

Thereafter, the user may have to input a product key of the OS program, S224, which is stored in a specific area of HDD140, so that the installation of the OS program continues, S226. At this time, a processor, such as CPU102, executes the product key input program stored in the HDD140, S228so that the product key is read out from the HDD140and is written into the CMOS RAM108, S230. After completion of writing the product key into the CMOS RAM108, the key input program stored in the HDD140is automatically uninstalled stored from the HDD140, since it is no longer needed, S232. At this time, the installation of the OS program may not be fully complete, so in step S234, the OS program continues to be installed until finished.

FIG. 12is a flowchart showing a program recovery (or re-install) process according to the present invention. Referring toFIG. 12, when the OS program stored in the HDD140becomes defective, first, a processor, such as CPU102, executes the system recovery program162stored in the system recovery CD-ROM160by using the CD-ROM drive150, or system recovery program146stored in the HDD144, in order to restore the defective program to its original installation state, S240. Next, the processor reads out the product key of the defective OS program from the CMOS RAM108, S242.

After a checksum of the read-out product key is checked, S244, to identify the correctness of the read-out data, it is determined whether or not the read-out product key is matched with the product key of the OS program, S246, stored in the system recovery program (162or146). If so, the read-out product key is input to a product key input window22for reinstallation of the OS program, S248, but if not, the processor instructs the user to input the product key of the OS program, S250.

The foregoing description of the embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to limit the present invention to the embodiments disclosed, and obviously many modifications and variations are possible in light of the above teachings.