Abstract:
Briefly, a computer system plays audio CDs in a CD-ROM drive during an audio CD play mode in which the computer system is not fully powered. An audio CD play controller of the computer system includes a means for detecting a plurality of audio CD play buttons for playing an audio CD in the CD-ROM drive and a means for communicating a plurality of audio CD play commands corresponding to the plurality of audio CD play buttons to the CD-ROM drive. The computer system enters the audio CD play mode without a full boot-up procedure and without loading an operating system.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 09/514,842, filed Feb. 28, 2000, issued as U.S. Pat. No. 6,266,714 on Jul. 24, 2001, which is a continuation of U.S. patent application Ser. No. 09/389,256, filed Sep. 3, 1999, issued as U.S. Pat. No. 6,279,056 on Aug. 21, 2001, which is a continuation of U.S. patent application Ser. No. 08/846,641, filed on Apr. 30, 1997, issued as U.S. Pat. No. 6,006,285 on Dec. 21, 1999, which are hereby incorporated by reference. 
     These commonly assigned United States patent applications are hereby incorporated by reference. 
     U.S. patent application Ser. No. 08/846,333, now U.S. Pat. No. 6,076,133, entitled “COMPUTER INTERFERENCE WITH HARD WIRED BUTTON ARRAY,” to James Brainard, Mark E. Taylor, Larry W. Kunkel, and Steve Walsh; and 
     U.S. patent application Ser. No. 08/846,544, now U.S. Pat. No. 5,987,537, entitled “FUNCTION SELECTOR WITH HARD WIRED BUTTON ARRAY ON COMPUTER CHASSE,” to James Brainard, Mark E. Taylor, Larry W. Kunkel, and Steve Walsh. 
    
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not applicable. 
     REFERENCE TO A MICROFICHE APPENDIX 
     Not applicable. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a computer system for playing audio CDs in a CD-ROM drive during an audio CD play mode of the computer system. 
     2. Description of the Related Art 
     Operating a CD-ROM drive in a computer system has required booting an operating system and loading and utilizing a CD-ROM drive application. The RAM-based CD-ROM device driver of the CD-ROM drive application allowed for operation of the CD-ROM drive. The lengthy duration of the booting process for an operating system and the considerable user interaction required by a CD-ROM drive application render playing an audio CD in the CD-ROM drive of a computer system, as opposed to in a conventional audio CD player, undesirable. An audio CD player, unlike a CD-ROM drive of a computer system, does not involve a timely initialization process and substantial user interaction. As such, despite the CD-ROM drive present in conventional computer systems, users have maintained a separate audio CD player in place of the portable computer. In addition, where a user is away from his or her audio CD player, a conventional computer system due to its initialization and user interaction requirements is unsuited to playing an audio CD as quickly and easily as allowed by a conventional audio CD player. Thus, because of the initialization process and user interaction required, portable computer users would often carry a separate audio CD player for music listening even though the portable computer had music playing capability. 
     BRIEF SUMMARY OF THE INVENTION 
     Briefly, a computer system plays audio CDs in a CD-ROM drive during an audio CD play mode in which the computer system is not fully powered. An audio CD play controller of the computer system includes a means for detecting a plurality of audio CD play buttons for playing an audio CD in the CD-ROM drive and a means for communicating a plurality of audio CD play commands corresponding to the plurality of audio CD play buttons to the CD-ROM drive. The computer system enters the audio CD play mode without a fill boot-up procedure and without loading an operating system. 
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
     FIG. 1 is A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which: 
     FIG. 1 is a schematic circuit diagram of a computer system of the present invention; 
     FIG. 2 is a schematic diagram of the firmware architecture within the audio CD mode ROM and associated hardware for the keyboard controller embodiment of the computer system of FIG. 1; 
     FIG. 3 is a schematic diagram of hardware and software for the keyboard controller embodiment of the computer system of FIG. 1 showing the use of a SMI, NMI, and IRQ interrupt routines; 
     FIGS. 4A and 4B are flow charts of the steps for processing a selected CD button of the computer system of FIG. 1 using the firmware of FIG. 2 or the CD-ROM drive controller embodiment of the present invention; 
     FIG. 5 is a plan view of a case containing the portable computer system of FIG. 1 in a closed state showing the CD buttons; and 
     FIG. 6 is a perspective view of the portable computer system case of FIGS. 1 and 5 in an open state. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Turning to FIG. 1, a schematic circuit diagram of a computer system S of the present invention is shown. Within the portable computer S, a CPU  10  and a Level 2 (L 2 ) cache  12  are connected. The processor  10  is preferably a Pentium® processor manufactured by Intel Corporation of Santa Clara, Calif. The processor  10  operates preferably with a standard IBM-PC compatible operating system, such as Windows 95, available from MicroSoft Corporation of Redmond, Wash. The L 2  cache  12  provides additional caching capabilities to the processor&#39;s on-chip cache to improve performance. 
     The CPU  10  and the L 2  cache  12  are connected to a host/PCI bridge  14 . Also connected to the host/PCI bridge  14  is a system DRAM  16 . The host/PCI bridge  14  is further coupled to a PCI bus P that connects to a PCMCIA/CardBus controller  18  and a video chip  20  including a video graphics controller and video memory. The PCMCIA/CardBus controller  18  is also coupled to a set of PCMCIA cards  22  for connecting a variety of peripherals to the portable computer S. 
     A PCI/ISA bridge  24  is used to connect the PCI bus P and an ISA bus I. Coupled to the PCI/ISA bridge  24  is an IDE interface  26  which connects to a CD-ROM drive  28  having an IDE controller and to a hard disk drive  30 . The IDE interface  26  is preferably a busmaster and an IDE/ATA interface having enhanced IDE features. The CD-ROM drive  28  is preferably compliant with ATAPI (AT Attachment Packet Interface), the IDE standard for CD-ROM drives, and includes a CD-ROM drive controller  102  that is preferably embedded in the CD-ROM drive  28 . Also, integrated in the PCI/ISA bridge  24  is a set of programmable interrupt controllers (PIC)  15  for managing hardware interrupts according to their priority. The set  15  preferably includes two cascaded PICs for allowing interrupt channels IRQØ-IRQ 15 . 
     Numerous chips which are preferably integrated into the PCI/ISA bridge  24  are coupled to the ISA bus I. Both a modem  32  and an audio chip  34  are coupled to the ISA bus I. The audio chip  34  is further coupled to a device  36  for outputting analog signals such as a set of speakers of the computer system S or an external stereo system. The speakers  36  are preferably audible externally while the portable computer case S is in a closed state. Also, a S-IO chip  38  is coupled to the ISA bus I. The S-IO chip  38  provides a parallel port  40 , a serial port  42  and connects to a floppy disk drive  44 . To more clearly illustrate the features and operation of the present invention, certain conventional computer devices and systems are not shown. 
     A keyboard controller  46  is also coupled to the ISA bus I. The keyboard controller  46  typically connects to a keyboard  48 , a PS/ 2  port  50 , a battery  52 , an LCD bias/control port  54  and a power switch  58 . The keyboard controller  46  of the present invention includes system management interrupt (SMI) circuitry for generating system management interrupts. Certain processors, such as the Pentium® processor, have included a mode referred to as a system management mode (SMM) which is entered upon receipt of a system management interrupt. A SMI is the software interrupt with the highest priority and is operating system independent. Generation of a SMI also causes a SMI handler  98 , which is typically located in a protected memory address space of the system DRAM  16 , to be executed. A SMI handler  98  is an interrupt service routine for performing specific system management tasks, like reducing power to specific devices or providing security services. SMI handler code thus may be written by one of ordinary skill in the art to perform a variety of system management tasks. 
     For the keyboard controller embodiment of the present invention, the keyboard controller  46  is further coupled to an audio CD mode switch  56 , DM_SW. For the CD-ROM drive controller embodiment of the present invention, the CD-ROM drive controller  102  is coupled to the audio CD mode switch  56 , DM_SW. If the power switch  58  of the computer system S is in an “on” state, the audio CD mode switch  56  is disabled. If the power switch  58  of the computer system S is in an “off” state, the audio CD mode switch  56  is enabled. When the audio CD mode switch  56  is enabled, the state of the switch  56  determines whether the computer system S is in an audio CD mode. The audio CD mode switch  56  when placed in an “on” state serves to place the computer system S of the present invention in an audio CD mode. Audio CD mode enables the computer system S of the present invention to bypass traditional system BIOS and play audio CDs in a CD-ROM drive  28  without running an operating system. 
     When the power switch  58  of a contemporary computer system is placed in an “on” state or the power switch of the computer system S of the present invention is placed in an “on” state while the audio CD mode switch  56  is in an “off” state such that the computer system S is in a PC mode, the operating system of the computer proceeds to access and execute the system BIOS in the BIOS ROM. Executing system BIOS code results in a lengthy booting process wherein a power-on-self-test (POST) is performed on the system hardware in the computer system. In order to operate a CD-ROM drive in a conventional computer, an operating system must be loaded and a CD-ROM drive application initiated such that the device driver of the CD-ROM drive application serves as the interface between the CD-ROM drive and the operating system. The initiation of a CD-ROM application requires significant user interaction such as popping up windows and clicking on various portions of a computer screen. 
     Contrastingly, the computer system S of the present invention is capable of avoiding the lengthy boot process associated with contemporary BIOS ROM and the significant user interaction associated with a contemporary CD-ROM drive application by providing an audio CD mode. For the keyboard controller embodiment of the present invention, when the computer system S enters an audio CD mode, the processor-memory subsystem  102 , the PCI/ISA bridge  24 , the CD-ROM drive  28 , the host/PCI bridge  14 , the audio CD ROM  1 , and the keyboard controller  46  are powered. ROM-based code including code for processing CD button selections is then loaded from an alternate BIOS ROM device, the audio CD ROM  1 , instead of a conventional BIOS ROM device  62 . An operating system is not loaded thereby significantly reducing the duration of the system initialization. Rather than using a ROM device for conventional BIOS code and a separate ROM device for the audio CD code of the present invention, the present invention may also be achieved by using a single ROM device. The single ROM device includes a memory address range for conventional BIOS code and a memory address range for audio CD code of the present invention. If the audio CD select signal is unasserted, a memory address range for conventional BIOS code is selected. If the audio CD select signal is asserted, a memory address range for audio CD code of the present invention is selected. Preferably, the conventional BIOS code and the audio CD code share common code such as POST code. Also, the firmware in the audio CD ROM  60  region is preferably shadowed in the system DRAM  16  to accelerate BIOS accesses. 
     For the CD-ROM drive controller embodiment of the present invention, when the computer system S enters an audio CD mode, only the CD-ROM drive  28  and the CD-ROM drive controller  102  are powered. While code is loaded from an alternate BIOS ROM region for the keyboard controller embodiment, the CD-ROM drive controller embodiment does not require embedded code to process CD button selections in an alternate ROM region since a CD-ROM drive controller  102  may directly provide CD button selections to a CD-ROM drive  28 . Although use of a ROM region is described for both embodiments, the present invention extends to other non-volatile memory types. 
     Further, when the keyboard controller embodiment of the computer system S is placed in an audio CD mode, an audio CD select signal, DMSEL, is asserted and directed to a multiplexer or gate  64 . The multiplexer or gate  64  receiving the audio CD select signal is coupled to or integrated into the PCI/ISA bridge  24 . If the audio CD select signal is unasserted, the multiplexer  64  selects the contemporary BIOS ROM  62  by asserting a BIOS control signal, BIOS_CS. If the audio CD select signal is asserted, the multiplexer  64  selects the audio CD ROM  60  of the present invention by asserting an audio CD control signal, DM_CS. 
     Turning to FIG. 2, the architecture of the firmware within the audio CD ROM  60  and associated hardware for the keyboard controller embodiment of the computer system S are shown. The firmware in the audio CD ROM  60  includes a mini-version of a power-on-self-test (POST)  66 , a mini CD-ROM device driver  68 , a SMI-keyboard controller interface  70 , and CD INIT, the initialization code  72  for the mini CD-ROM device driver  68 . Unlike the code normally run out of a contemporary BIOS ROM  62  which initializes each system hardware device, the code run out of the audio CD ROM  60  preferably allows the video chip  20 , hard disk drive  30 , floppy disk drive  44 , and the PCMCIA/CardBus controller  18  to be unpowered. Further, in the audio CD mode, the S-IO  38  is preferably powered in a low power state. Thus, the mini-version of POST  66  in the audio CD ROM  60  initializes select system hardware  74 . 
     CD INIT  72  initializes the CD-ROM drive  28  when called by the mini-version of POST  66 . While a conventional CD-ROM device driver in CD-ROM applications is RAM-based, the mini CD-ROM device driver  68  in the audio CD ROM  60  is ROM-based. Also, while the CD-ROM device driver in conventional CD-ROM applications must allow for playing audio and data CDs, the mini CD-ROM driver  68  in the audio CD ROM  60  allows for playing audio CDs, not data CDs, thereby requiring less code and reducing the execution time of the device driver code. 
     In the keyboard controller embodiment of computer system S of the present invention, switches corresponding to CD buttons  76  are integrated into a keyboard matrix  78  of the keyboard  48 . For the CD-ROM drive controller embodiment, the CD buttons are coupled to the CD-ROM drive controller  102 . The CD buttons  76  preferably include play/pause  80 , stop  82 , previous track  84 , next track  86 , volume controls  88  and  90 , and other typical buttons provided on an audio CD player (FIG.  5 ). In addition to the CD buttons  76 , a bass boost function is available in the PC mode and the audio CD mode. The bass boost function, which amplifies the audio output of the computer system, is preferably toggled by pressing function F 1  on the keyboard  48 . Also, while conventional keys of a computer are typically provided on the keyboard as shown in FIG. 6, the CD buttons  76  are preferably provided for a user on the top outer surface  98  of a portable computer system S of the present invention as shown in FIG.  5 . Similarly, the audio CD mode switch  56  is preferably provided on the top outer surface  98  of the portable computer S. It should be understood, however, that the CD buttons  76  and the audio CD mode switch  56  may be provided on or in other surfaces of the computer S or on an infrared transmitter or blaster for providing infrared communication to the computer S. Providing the audio CD mode switch  56  and the CD buttons  76  on the top outer surface  98  allows for audio CD functionality while the portable computer S system case is in a closed state. 
     Turning to FIG. 4A, in step  300  when a CD button is selected and the computer system S is in an audio CD mode, control proceeds to step  302  in the keyboard controller embodiment and step  301  in the CD-ROM drive controller embodiment. In step  302 , a switch corresponding to the selected CD button closes and is detected by a keyboard chip. The keyboard chip then sends the keycode corresponding to the detected switch to the keyboard controller  46 . When the computer S is in an audio CD mode, the keyboard controller  46  regularly checks the status of the keyboard or scan matrix  78  to determine the state of the switches corresponding to the CD buttons  76 . If a CD button is not selected, control proceeds to step  301  where it is determined if the computer S is still in an audio CD mode. If not, the method for processing a CD button returns through step  325 . If the computer S is still in an audio CD mode at step  301 , control proceeds to step  300  where it is again determined if a CD button has been selected. Thus, when the computer system S is in an audio CD mode, control remains at step  300  until selection of a CD button is detected. 
     From step  302 , control proceeds to step  304  where the keyboard controller  46  which includes SMI circuitry generates a system management interrupt placing the computer system S in a system management mode. The generation of a system management interrupt causes the SMI handler  98  to be executed. Control is passed from the keyboard controller  46  to the SMI handler  98  using SMI-keyboard controller interface firmware  70  (FIG.  2 ). The technique used for designing SMI-keyboard controller interface firmware is known in the art. Next, in step  306 , the SMI handler  98  fetches the keycode from the keyboard controller  46 , decodes the keycode, and places the decoded keycode in a keycode cache  100 . The keycode cache  100  is a portion of RAM in the system DRAM  16  which serves as a buffer between the SMI handler  98  and the mini CD-ROM device driver  68  (FIG.  2 ). 
     From step  306 , control proceeds to step  308  where the SMI handler  98  generates a non-maskable interrupt (NMI). A NMI, which is directly supplied to the processor  10  via a NMI pin, is a hardware interrupt typically generated to indicate a memory parity error. In the present invention, however, a NMI indicates that the keycode to be transmitted is present in the keycode cache  100 . In a conventional computer system, a device driver is called by an operating system and serves as the link between an operating system and a CD-ROM device. In the computer system S of the present invention, however, the mini CD-ROM device driver  68  is called by the SMI handler&#39;s generation of a NMI such that the device driver  68  serves as a link between the SMI handler  98  and the CD-ROM drive  28 . 
     Turning to FIG. 4B, in step  310 , the computer system S exits the system management mode. As the keycode corresponding to the selected CD button has been decoded and placed in the keycode cache  100 , the job of the SMI handler  98  is completed. Next, in step  312 , the mini CD-ROM device driver  68  fetches the keycode from the keycode cache  100  and transmits a CD packet command corresponding to the keycode to the CD-ROM drive  28 . Thus, the mini CD-ROM device driver  68  in step  312  services the NMI generated in step  308 . The mini CD-ROM device driver  68  essentially serves as a NMI handler. Since the NMI was generated while the computer system S was in a system management mode, the NMI was suspended until the system management mode was exited. Further, the transmitted CD packet command allows the mini CD-ROM device driver  68  to drive the CD-ROM drive  28 . The CD packet command is preferably a simplified version of a Small Computer System Interface (SCSI) command and adheres to an ATAPI packet command protocol. In addition, handshaking signals are passed between the mini CD-ROM device driver  68  and the drive  28  pursuant to ATAPI protocol. 
     Control next proceeds to step  314  where the drive  28  issues an interrupt request (IRQ) preferably over the IRQ 15  channel. The issued interrupt request informs the processor  10  that the drive  28  is ready for execution of the CD packet command. The interrupt request delivered to the CPU  10  is first transferred to a programmable interrupt controller  15  which drives an interrupt line to the CPU  10 . From step  314 , control proceeds to step  316  where the CPU  10  executes the CD packet command. For example, if the CD button selected was the play button, the CD-ROM drive  28  plays the audio CD in the drive  28 . 
     Alternatively, in the CD-ROM drive controller embodiment of the present invention, an embedded CD-ROM drive controller  102  is used to process a CD button selection instead of the keyboard controller  46  and SMI and NMI interrupt routines. The use of an embedded CD-ROM drive controller  102  to transmit a CD button selection is described by steps  301 ,  303 , and  305 . From step  300 , control may proceed to step  301  wherein the CD-ROM drive controller  102  receives the CD button selection. As with the keyboard controller  46 , the CD-ROM drive controller  102  periodically scans the CD buttons  76 . In order to use a CD-ROM drive controller  102  in place of a keyboard controller  46 , the CD-ROM drive  28  must provide for a sufficient number of inputs to the controller  102  to allow for CD button scanning. 
     From step  301 , control proceeds to step  303 . In step  303 , the CD-ROM drive controller instructs the CD-ROM drive  28  to execute an operation corresponding to the CD button selected. While using a keyboard controller  46  to scan the CD buttons  76  involves use of SMI and NMI routines to call the mini CD-ROM device driver  68 , using a CD-ROM drive controller  102  to scan the CD buttons  76  allows for directly transmitting a CD button selection to the CD-ROM drive  28  without the need for a device driver to translate the CD button selection. Control next proceeds to step  305  where the CD-ROM drive  28  executes the operation corresponding to the CD button selected. Thus, use of a CD-ROM drive controller  102  to transmit a CD button selection replaces embedded code of the present invention in an alternate ROM region as used in the keyboard controller embodiment of the present invention, resulting in a self-contained CD-ROM drive  28 . 
     Turning to FIG. 3, a schematic diagram of the hardware and software of an exemplary keyboard controller embodiment of the present invention involving SMIs, NMIs, and IRQs is shown. The PCI/ISA bridge  24  supports a SMI pin  200 , a NMI pin  202 , and a general purpose chip select (GPCS) pin  204 . The keyboard controller  46  is coupled to the SMI pin  200  so that the controller  46  may assert a SMI in response to the selection of a CD button. The SMI pin  200  is also coupled to CPU  10  so that the SMI generated by the controller  46  is sent to the processor  10 . The SMI received by the processor  10  places the computer S in a system management mode. 
     The GPCS pin  204  is a general purpose pin typically used to select peripheral devices. Here, however, the GPCS pin  204  is used by the SMI handler  98  to generate an NMI. The SMI handler  98  which is coupled to the GPCS pin  204  generates an NMI by first asserting or toggling the GPCS pin  204 . The GPCS pin  204  is coupled to the NMI pin  202  providing an input to the NMI pin  202 . The assertion of the GPCS pin  204  thereby results in the assertion of the NMI pin  202 . In this way, the SMI handler  98  generates an NMI. The NMI, however, is not serviced until the system management mode of the computer system S is exited. 
     The NMI pin  202  is coupled to the CPU  10  and the mini CD-ROM device driver  68 . While the other blocks illustrated in FIG. 3 are hardware, the device driver  58  as well as the handler  98  are shown in broken line format to indicate that each is software or firmware. When a NMI is generated by a SMI, the NMI pin  202  is asserted to generate a NMI to the CPU  10 . The NMI pin  202  is coupled to the driver  68  so that when the NMI is serviced an interrupt vector is formed to the driver  68 . When the CD-ROM drive  28  is ready to be driven by the mini CD-ROM device driver  68 , the CD-ROM drive  28  issues an interrupt request (IRQ). The interrupt request is received and managed by a PIC  15 . The request is then passed by the PIC  15  to the CPU  10 . Further, when a CD-ROM drive controller  102  is used for CD button processing in the present invention, the embodiment shown in FIG. 3 is not necessary to achieve a computer system S with an audio CD mode. 
     Returning to FIG. 4B, from step  316  and step  305 , control proceeds to step  318  where the method returns to step  301 . In step  301 , it is determined if the computer system S is still in an audio CD mode. The method ends in step  325  if the computer S is not in an audio CD mode. It is noted that the audio CD mode may be exited at or between any of the above described steps. A user causes the portable computer system S of the present invention to exit the audio CD mode by switching the audio CD mode switch  56  to an “off” state. The audio CD mode is preferably exited by the user when playing an audio CD is no longer desired. 
     The computer system S of the present invention having an audio CD mode integrates a portable or desktop computer and an audio CD player. In fact, the portable computer system S of the present invention matches the portability of portable audio CD players. Further, by steering a chip select of a BIOS ROM based on the state of the audio CD switch  56 , using a ROM-based CD-ROM device driver embedded in an audio CD ROM  60  to drive a CD-ROM drive  28 , and using the keyboard controller  46  and the SMI handler  98  to process a keycode for a CD button, the keyboard controller embodiment of the present invention provides a pseudo-embedded architecture for a computer system S capable of playing audio CDs without use of an operating system. Alternatively, by powering a CD-ROM drive  28  and a CD-ROM drive controller  102 , not-powering other devices in the computer system S based on the state of the audio CD switch  56 , and using the embedded CD-ROM drive controller  102  to transmit a CD button selection to the CD-ROM drive  28 , the CD-ROM drive embodiment of the present invention provides a computer system S with a self-contained CD-ROM drive  28  capable of playing audio CDs without use of an operating system. 
     The foregoing disclosure and description of the invention are illustrative and explanatory thereof, and various changes in the size, shape, materials, components, circuit elements, wiring connections and contacts, as well as in the details of the illustrated circuitry and construction and method of operation may be made without departing from the spirit of the invention.