U.S. patent application number 10/287894 was filed with the patent office on 2003-11-27 for system and method for external control of a portable processing system.
Invention is credited to Corrigan, Kern, Frohwein, Jeff.
Application Number | 20030220141 10/287894 |
Document ID | / |
Family ID | 29552974 |
Filed Date | 2003-11-27 |
United States Patent
Application |
20030220141 |
Kind Code |
A1 |
Corrigan, Kern ; et
al. |
November 27, 2003 |
System and method for external control of a portable processing
system
Abstract
A game controller is provided for controlling a portable
processing system externally. The game controller may connect
directly to the portable processing system or may connect to the
portable processing system through an interface device. The
interface device may patch memory locations of a ROM cartridge
which contain a pointer to a memory location of the portable
processing system which stores input from the built-in controls of
the portable processing system. By matching these locations, input
from the external controller may be provided to the portable
processing system. Alternatively, a device which includes software
executable by the portable processing system and external controls
may be provided to operate in conjunction with the portable
processing system. The software may be programmed to use input from
the external controls instead of the built-in controls of the
portable processing system.
Inventors: |
Corrigan, Kern; (Wilmington,
MA) ; Frohwein, Jeff; (Huntsville, AL) |
Correspondence
Address: |
WOLF GREENFIELD & SACKS, PC
FEDERAL RESERVE PLAZA
600 ATLANTIC AVENUE
BOSTON
MA
02210-2211
US
|
Family ID: |
29552974 |
Appl. No.: |
10/287894 |
Filed: |
November 5, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60382206 |
May 21, 2002 |
|
|
|
Current U.S.
Class: |
463/36 |
Current CPC
Class: |
A63F 2300/204 20130101;
A63F 2300/206 20130101; A63F 13/23 20140902; A63F 13/06 20130101;
A63F 13/95 20140902; A63F 13/92 20140902 |
Class at
Publication: |
463/36 |
International
Class: |
A63F 009/24 |
Claims
What is claimed is:
1. In a portable processing system, a method comprising: providing
an external controller, the external controller being adapted to
control a portable processing system; and providing for a coupling
of the external controller to the portable processing system.
2. The method of claim 1, wherein the portable processing system
includes a handheld video game system.
3. The method of claim 1, wherein the portable processing system
includes a plurality of built-in controls and an internal register
for storing an input received from the plurality of built-in
controls and wherein the portable processing system is electrically
connectable to a data storage medium, the data storage medium
having stored thereon a computer program accessible and executable
by the portable processing system, and wherein the method further
comprises: detecting a first access request by the portable
processing system for data comprising a pointer to a location at
which is stored input from the plurality of built-in controls, the
data being stored at a first address of the data storage medium;
providing a second address of the data storage medium to the
portable processing system, in response to the first access
request, instead of the data stored at the first address of the
data storage medium; detecting a second access request by the
portable processing system for data stored at the second address of
the data storage medium; and providing input data, based on
information received from the external controller, to the portable
processing system, in response to a second access request by the
portable processing system for data stored at the second address of
the data storage medium.
4. The method of claim 3, wherein the first access request
comprises a requested address of the data storage medium and the
act of detecting a first access request further comprises an act of
receiving the requested address from an address bus of the portable
processing system.
5. The method of claim 4, wherein the act of detecting a first
access request further comprises an act of comparing the requested
address and the first address of the data storage medium.
6. The method of claim 5, further comprising an act of providing,
to the portable processing system, data stored on the data storage
medium in response to a third access request by the portable
processing system if the third access request is not one of the
group comprising the first access request and the second access
request.
7. The method of claim 3, wherein the act of providing a second
address of the data storage medium further comprises providing, to
the portable processing system, the second address of the data
storage medium to the portable processing system on a data bus of
the portable processing system.
8. The method of claim 3, wherein the second access request
comprises a requested address of the data storage medium and the
act of detecting a second access request further comprises an act
of receiving the requested address via an address bus of the
portable processing system.
9. The method of claim 8, wherein the act of detecting a second
access request further comprises an act of comparing the requested
address and the second address of the data storage medium.
10. The method of claim 3, wherein the act of providing input from
the external controller further comprises providing the input from
the external controller to the portable processing system on a data
bus of the portable processing system.
11. The method of claim 1, wherein the portable processing system
includes built-in controls and the method further comprises an act
of causing the portable processing system to receive an input from
the external controller instead of the built-in controls of the
portable processing system.
12. The method of claim 1, further comprising an act of providing a
computer software program executable by the portable processing
system, the computer software program, when executed, allowing a
user to play a video game using the portable processing system.
13. The method of claim 12, wherein the act of providing a computer
software program further comprises an act of providing a computer
software program including computer instructions for receiving
input from the external controller.
14. The method of claim 12, wherein the external controller and the
computer software program are integrated into a single device and
the method further comprises providing a connector on the device
for connecting the external controller to the portable processing
system.
15. An apparatus comprising: an external game controller configured
to transfer control signals to control a portable processing
system, the external game controller having an output that provides
control signal information to the portable processing system.
16. The apparatus of claim 15, wherein the portable processing
system includes a handheld video game system.
17. The apparatus of claim 15, wherein the portable processing
system includes built-in controls and the apparatus further
comprises: an interface device that couples the external controller
to the portable processing system and directs the portable
processing system to receive control signal from the external game
controller in lieu of the built-in controls of the portable
processing system.
18. The apparatus of claim 17, wherein the interface device further
comprises at least one register for storing addresses of the
external memory.
19. The apparatus of claim 18, wherein the interface device further
comprises first comparison means for comparing a first address
received on an address bus of the portable processing system and a
second address stored in the at least one register.
20. The apparatus of claim 19, wherein the interface device further
comprises means for providing a special address of the external
memory on a data bus of the portable processing system in response
to receiving an address stored in the at least one register on the
address bus of the portable processing system.
21. The apparatus of claim 20, wherein the interface device further
comprises second comparison means for comparing an address received
from the portable processing system on the address bus with the
special address of the external memory.
22. The apparatus of claim 21, wherein the interface device further
comprises means for providing input received from the external
controller to the portable processing system on the data bus of the
portable processing system in response to receiving the special
address from the address bus of the portable processing system.
23. The apparatus of claim 15, further comprising: a memory for
storing computer program instructions executable by the video
system.
24. The apparatus of claim 23, wherein the computer program
instructions include instructions which, when executed by the
portable processing system, cause the portable processing system to
receive input from the external controller.
25. The apparatus of claim 23, wherein the memory is a non-volatile
memory.
26. The apparatus of claim 15, wherein the external controller and
the memory are integrated into a single device.
27. The apparatus of claim 26, wherein the single device further
comprises: a connector adapted for coupling to the portable
processing system which, when coupled to the portable processing
system, allows the portable processing system to execute
instructions stored in the memory.
28. The apparatus of claim 27, wherein the connector is adapted to
connect to the portable processing system through a cartridge slot
of the portable processing system.
29. The apparatus of claim 28, wherein the connector is adapted to
connect to the portable processing system through a link port
connector of the portable processing system.
30. A computer readable medium having encoded thereon computer
instructions which when executed by a portable processing system
perform a method comprising: causing the portable processing system
to accept input from an external controller; and causing the
portable processing system to process the input from the external
controller.
31. The computer readable medium of claim 30, wherein the computer
instructions include an address of a register capable of storing
input received from the external controller and the method further
comprises an act of causing the portable processing system to
access the register instead of a storage location for storing input
from built-in controls of the portable processing system.
32. The computer readable medium of claim 30, wherein the computer
readable medium is integrated into a single device with the
external controller
33. The computer readable medium of claim 30, wherein the computer
readable medium is removably connectable to the external
controller.
34. A method for operating a portable processing system, comprising
an act of: providing a device operatively connectable to the
portable processing system; providing, on the device, a data
storage medium for storing a computer program executable by the
portable processing system; and providing, on the device, game
controls for operating the portable processing system.
35. The method of claim 34, further comprising an act of causing
the processor to receive input from the external controller in
response to executing the computer program.
36. The method of claim 34, further comprising and act of providing
a connector for electrically connecting to the portable processing
system
37. The method of claim 36, wherein the act of providing a
connector further comprises providing a connector connectable to
the portable processing system through a cartridge slot of the
portable processing system.
38. The method of claim 37, wherein the act of providing a
connector further comprises providing a connector connectable to
the portable processing system through a link port connector of the
portable processing system.
39. An apparatus configured to control operation of a portable
processing system comprising: a device operatively connectable to
the portable processing system having: a data storage medium
configured to store computer program instructions executable by the
portable processing system; and an external game controller for
operating the portable processing system configured to operate the
portable processing system.
40. The apparatus of claim 39, wherein the computer program
instructions include instructions which, when executed by the
portable processing system, cause the portable processing system to
receive input from the external controller.
41. The apparatus of claim 40, wherein the data storage medium
comprises a non-volatile memory.
42. The apparatus of claim 39, further comprising: a connector
connectable to the portable processing system which, when connected
to the portable processing system, allows the portable processing
system to execute instructions stored on the memory.
43. The apparatus of claim 42, wherein the connector is adapted to
connect to the portable processing system through a cartridge slot
of the portable processing system.
44. The apparatus of claim 42, wherein the connector is adapted to
connect to the portable processing system through a link port
connector of the portable processing system.
45. An apparatus comprising: a housing adapted to receive a
portable processing system, the housing operatively connectable to
the portable processing system, wherein the housing includes a
computer software program executable by the portable processing
system, and wherein the shape of the housing relates to a theme of
the computer software program.
46. The apparatus of claim 45, wherein the housing further includes
external controls for controlling operation of the portable
processing system.
47. The apparatus of claim 46, wherein the computer software
program includes computer instructions which, when executed by the
portable processing system, cause the portable processing system to
receive input from the external controls.
48. An apparatus comprising: a housing adapted to receive a
portable processing system, the housing forming an integral part of
the portable processing system, such that at least a portion of a
screen of the portable processing system is visible when the
portable processing system is connected to the housing.
49. The apparatus of claim 49, wherein the housing includes
external controls for controlling the portable processing
system.
50. The apparatus of claim 49, wherein the housing includes a data
storage medium configured to store computer software instructions
for execution by the portable processing system.
51. In a portable processing system having built-in controls, the
portable processing system capable of receiving data from a data
storage medium, the data storage medium being removably connectable
to the portable processing system, a method for operating the
portable processing system with an external controller electrically
connected to the portable processing system, the method comprising:
detecting a first access request by the portable processing system
for data stored at a first address of the data storage medium;
providing to the portable processing system, in response to the
first access request, a second address of the data storage medium
instead of the data stored at the first address of the data storage
medium; detecting a second access request by the portable
processing system for data stored at the second address of the data
storage medium; and providing to the portable processing system, in
response to a second access request by the portable processing
system for data stored at the second address of the data storage
medium, input from the external controller.
52. The method of claim 51, wherein the first access request
comprises a requested address of the data storage medium and the
act of detecting a first access request further comprises an act of
receiving the requested address from an address bus of the portable
processing system.
53. The method of claim 52, wherein the act of detecting a first
access request further comprises an act of comparing the requested
address and the first address of the data storage medium.
54. The method of claim 53, further comprising an act of providing
data stored on the data storage medium, in response to a third
access request by the portable processing system if the third
access request is not one of the group comprising the first access
request and the second access request.
55. The method of claim 51, wherein the act of providing a second
address of the data storage medium further comprises providing the
second address of the data storage medium to the portable
processing system on a data bus of the portable processing
system.
56. The method of claim 51, wherein the second access request
comprises a requested address of the data storage medium and the
act of detecting a second access request further comprises
receiving the requested address from an address bus of the portable
processing system.
57. The method of claim 56, wherein the act of detecting a second
access request further comprises comparing the requested address
and the second address of the data storage medium.
58. The method of claim 51, wherein the act of providing input from
the external controller further comprises providing the input from
the external controller to the portable processing system on a data
bus of the portable processing system.
59. In a portable processing system having built-in controls, the
portable processing system capable of receiving data from a data
storage medium, the data storage medium being removably connectable
to the portable processing system, an apparatus electrically
connected to the portable processing system comprising: means for
detecting a first access request by the portable processing system
for data stored at a first address of the data storage medium;
means for providing to the portable processing system, in response
to the first access request, a second address of the data storage
medium instead of the data stored at the first address of the data
storage medium; means for detecting a second access request by the
portable processing system for data stored at the second address of
the data storage medium; and means for providing to the portable
processing system, in response to a second access request by the
portable processing system for data stored at the second address of
the data storage medium, input from the external controller.
60. The apparatus of claim 59, wherein the first access request
further comprises a requested address of the data storage medium
and the first access request is received from an address bus of the
portable processing system.
61. The apparatus of claim 60, wherein the means for detecting a
first access request further comprises comparison means for
comparing the requested address and the first address of the data
storage medium.
62. The apparatus of claim 61, further comprising: means for
providing data stored on the data storage medium, in response to a
third access request by the portable processing system if the third
access request is not one of the group comprising the first access
request and the second access request.
63. The apparatus of claim 59, wherein the means for detecting a
second access request further comprises means for providing the
second address of the data storage medium to the portable
processing system on a data bus of the portable processing
system.
64. The apparatus of claim 59, wherein the second access request
further comprises a requested address received from an address bus
of the portable processing system.
65. The apparatus of claim 64, wherein the means for detecting a
second address further comprises comparison means comparing the
requested address and the second address of the data storage
medium.
66. The apparatus of claim 59, wherein the means for providing
input from the external controller further comprises: means for
providing the input from the external controller to the portable
processing system on a data bus of the portable processing
system.
67. An apparatus comprising: a mount that is adapted to support a
portable processing system; and external controls that are coupled
to the mount and which control the portable processing system.
68. the apparatus of claim 67, further comprising: a pistol grip
coupled to the mount.
69. The apparatus of claim 68, wherein the external controls are
situated on the pistol grip.
70. The apparatus of claim 68, wherein the mount further comprises:
a connector adapted to support an interface system on the mount,
the interface system capable of being coupled to the portable
processing device.
71. The apparatus of claim 69, wherein the interface system is
capable of being coupled to a cartridge slot of the portable
processing device.
Description
RELATED APPLICATIONS
[0001] This application claims the benefit under Title 35 U.S.C.
.sctn.119(e) of U.S. Provisional Application Serial No. 60/382,206,
filed May 21, 2002, entitled "System and Method for External
Control of a Game System" by Kern Corrigan, the contents of which
are hereby incorporated by reference.
FIELD OF THE INVENTION
[0002] The present invention relates to portable processing systems
and, more particularly, to a system and method for controlling a
portable processing system using an external controller.
BACKGROUND OF THE INVENTION
[0003] Handheld game systems have become very popular and allow
users to play video games on a small and easily transportable
device. An example of a typical handheld game system is illustrated
in FIG. 1. An example of a typical commercially available handheld
video game system is the Gameboy Advance available from Nintendo
Co., Ltd. of Kyoto, Japan. In FIG. 1, game system 1 includes
controls built into case 2 that allow a user to interact with and
control a video game. The controls may include one or more buttons
3, 5, 7, 9 that perform various functions related to operation of
the video game system. The controls may also include a directional
pad 13 that provides control for operation of the video game
system. Display screen 7 displays the video game to a user.
[0004] Typically, handheld game systems, such as the one
illustrated in FIG. 1, include a processor that executes one or
more video games. These games are typically computer programs
stored on cartridges and, when inserted into a handheld game
system, are executed by the processor. Typically, cartridges may be
inserted in and removed from the handheld game system to allow the
user to play a variety of video games, each of which may be stored
on a different cartridge.
[0005] As illustrated in FIG. 1, cartridge 17 may be inserted into
cartridge receiving slot 15 of game system 1. Cartridge 17
generally includes a read-only memory (ROM) that stores computer
instructions and data of a video game. Additionally, some handheld
game systems may include a link port (not shown) which allows a
user to connect to other game systems and play video games in a
multi-player mode.
[0006] One drawback to such handheld game systems is that the
built-in controls, sometimes referred to as primary controls, such
as the buttons 3, 5, 7, 9 and directional pad 13, are typically
kept very small to maintain the portability of the game system.
Consequently, it may be difficult for some users to effectively use
the small controls. Additionally, the built-in controls may be
inadequate for other reasons. For example, some video games are
better suited for other types of controllers such as, for example,
a joystick, wheel, or other special controllers, rather than the
built-in controls of the video game system. Further, physically
disabled users may not be able to use the built-in controls at all
and may require specially designed controllers, such as foot pedals
or sip-puff controllers, to play video games.
SUMMARY OF THE INVENTION
[0007] A system and method are provided which allow external
control of a portable processing system, such as a handheld video
game system. According to one embodiment of the invention,
addresses locations of a ROM which stores software for execution by
the portable processing system may be patched, causing the portable
processing system to substitute external game controller input for
input from the built-in controls of the portable processing system.
According to another embodiment, software is provided for execution
by the portable processing system which causes the portable
processing system to receive input from the external controller in
place of the built-in controls.
[0008] A method is provided for controlling a portable processing
system externally. According to one embodiment of the invention,
the method comprises acts of providing an external controller, the
external controller being adapted to control a portable processing
system and providing for a coupling of the external controller to
the portable processing system.
[0009] According to another embodiment of the invention an
apparatus for controlling a portable processing system externally
is provided. The apparatus comprises an external game controller
configured to transfer control signals to control a portable
processing system, the external game controller having an output
that provides control signal information to the portable processing
system.
[0010] According to yet another embodiment of the invention a
computer readable medium is provided, the computer readable medium
having encoded thereon computer instructions which when executed by
a portable processing system perform a method. The method comprises
acts of causing the portable processing system to accept input from
an external controller and causing the portable processing system
to process the input from the external controller.
[0011] According to another embodiment of the invention, a method
for operating a portable processing system is provided comprising
acts of providing a device operatively connectable to the portable
processing system, providing, on the device, a data storage medium
for storing a computer program executable by the portable
processing system, and providing, on the device, game controls for
operating the portable processing system.
[0012] According to another embodiment of the invention, an
apparatus is provided that is configured to control operation of a
portable processing system. The apparatus comprises a device
operatively connectable to the portable processing system and the
device includes a data storage medium configured to store computer
program instructions executable by the portable processing system
and an external game controller for operating the portable
processing system.
[0013] According to another embodiment of the invention, an
apparatus is provided that comprises a housing adapted to receive a
portable processing system, the housing operatively connectable to
the portable processing system, wherein the housing includes a
computer software program executable by the portable processing
system, and wherein the shape of the housing relates to a theme of
the computer software program.
[0014] According to another embodiment of the invention, an
apparatus is provided that comprises a housing adapted to receive a
portable processing system, the housing forming an integral part of
the portable processing system, such that at least a portion of a
screen of the portable processing system is visible when the
portable processing system is connected to the housing.
[0015] According to another embodiment of the invention, a method
is provided for operating a portable processing system with an
external controller, the portable processing system having built-in
controls, the portable processing system capable of receiving data
from a data storage medium, the data storage medium being removably
connectable to the portable processing system. The method comprises
acts of detecting a first access request by the portable processing
system for data stored at a first address of the data storage
medium, providing to the portable processing system, in response to
the first access request, a second address of the data storage
medium instead of the data stored at the first address of the data
storage medium, detecting a second access request by the portable
processing system for data stored at the second address of the data
storage medium, and providing to the portable processing system, in
response to a second access request by the portable processing
system for data stored at the second address of the data storage
medium, input from the external controller.
[0016] According to another embodiment of the invention, an
apparatus electrically connected to a portable processing system is
provided, the portable processing system having built-in controls,
the portable processing system capable of receiving data from a
data storage medium, the data storage medium being removably
connectable to the portable processing system. The apparatus
comprises means for detecting a first access request by the
portable processing system for data stored at a first address of
the data storage medium, means for providing to the portable
processing system, in response to the first access request, a
second address of the data storage medium instead of the data
stored at the first address of the data storage medium, means for
detecting a second access request by the portable processing system
for data stored at the second address of the data storage medium,
and means for providing to the portable processing system, in
response to a second access request by the portable processing
system for data stored at the second address of the data storage
medium, input from the external controller.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Further features and advantages of the present invention as
well as the structure and operation of various embodiments of the
present invention are described in detail below with reference to
the accompanying drawings.
[0018] FIG. 1 is a diagram of a typical portable processing
system;
[0019] FIG. 2 is a block diagram of an interface system according
to one embodiment of the invention;
[0020] FIG. 3 is a block diagram of an interface system that
couples a typical game cartridge and a typical portable processing
system, according to one embodiment of the invention;
[0021] FIG. 4 is a flow chart illustrating operation of an
interface system according to one embodiment of the invention;
[0022] FIG. 5 is a perspective diagram of an interface system that
couples an external controller and a portable processing system,
according to one embodiment of the invention;
[0023] FIG. 6 is a perspective diagram of an interface system that
couples an external controller and a portable processing system,
according to one embodiment of the invention;
[0024] FIG. 7 is a perspective diagram of an interface system that
couples an external controller and a portable processing system,
according to one embodiment of the invention;
[0025] FIG. 8 is a perspective diagram of a device coupled to a
portable processing system, according to one embodiment of the
invention;
[0026] FIG. 9 is a perspective diagram of a device coupled to a
portable processing system, according to one embodiment of the
invention; and
[0027] FIG. 10 is a flow chart illustrating operation of a device
with a portable processing system, according to one embodiment of
the invention.
DETAILED DESCRIPTION
[0028] One illustrative embodiment of the invention for externally
controlling a portable processing system is depicted generally in
FIG. 2. FIG. 2 shows an interface 21 coupled to a memory 23. Memory
23 may include any type of volatile or non-volatile memory. For
example, memory 23 may include static random access memory (SRAM),
Flash Memory, dynamic random access memory (DRAM), eraseable
programmable read only memory (EPROM), electrically eraseable
programmable read only memory (EEPROM), hardware registers, or any
combination of these types of memories.
[0029] Interface 21 is also connected to secondary controller
connector 25, which is capable of connecting an external
controller, such as a game pad, joystick or wheel, to the interface
device and which may be capable of providing input from the
external controller to the interface device. Cartridge connector 27
allows game cartridge, such as a read only memory (ROM) having
computer instructions for a video game. Portable processing
connector 29 provides an electrical connection between interface 21
and a portable processing system (e.g., a handheld videogame system
such as the Gameboy Advance system). Portable processing connector
29 may connect to the portable processing system (not shown)
through, for example, a cartridge slot of the portable processing
or a link port of the portable processing system. Portable
processing system connector 29 may alternatively connect to the
portable processing system through a serial port, parallel port, or
network port of the portable processing system. Many other ways of
connecting interface 21 and the portable processing system will
occur readily to one of ordinary skill in the art and are intended
to be within the scope of the invention.
[0030] Interface 21 may allow a user to control a video game using
an external controller instead of the built-in or primary controls
of the portable processing system. Interface 21 may provide the
following functions. First, interface 21 may provide logic that
allows an external controller to interface with an internal bus of
a portable processing system. to Portable processing systems
include handheld video game systems and other portable non-gaming
systems (e.g., such as, for example, a personal digital assistant
(PDA), a mobile telephone, or a hybrid PDA and mobile telephone).
Handheld video game systems typically include built-in controls
designed primarily for playing video games. Examples of such
systems include the Gameboy Advance system and Gameboy system,
available from Nintendo Co. Ltd. of Kyoto, Japan, and the GameGear
system available from Sega Corporation of Tokyo, Japan. Portable
non-gaming systems that may benefit from the use of an external
controller include devices such as personal digital assistants
(PDAs) and mobile telephones.
[0031] Portable non-gaming systems also include built-in controls,
but such controls are not typically designed for use playing video
games. For example, in the case of a PDA, such built-in controls
may include a stylus and touch-sensitive pad which may be designed
primarily for data entry. In the case of a mobile telephones, the
built-in controls may include a standard telephone keypad and may
be designed primarily for use in dialing. Interface 21 may
interface with both handheld video game systems and with portable
non-gaming systems. Interface 21 may also interface with console
video game systems, such as the Nintendo Entertainment System,
Super Nintendo Entertainment System, the Nintendo 64, or the Game
Cube, available from Nintendo Co. Ltd. of Kyoto, Japan, the
Playstation or Playstation 2 available from Sony Corporation of
Tokyo, Japan, or the XBox available from Microsoft Corporation of
Redmond, Wash. The game systems listed above are 30 provided as
examples only, and it should be appreciated interface 21 could
interface with many other handheld or console game systems, as well
as any type of portable non-gaming system, and the invention is not
limited to any particular game system or portable non-gaming
system.
[0032] A second function provided by interface 21 includes
determining whether information should be provided to the portable
processing system from the game cartridge ROM or whether data
should be provided by the interface system from elsewhere, such as
memory 23 or registers of interface 21. For example, when a
particular game cartridge address is requested by the portable
processing system, interface 21 may provide data from memory 23 or
a register of interface 21 instead of the data stored at the
requested address of the game cartridge. Interface 21 may receive a
game cartridge address from the portable processing system,
indicating a request for data stored at that game cartridge
address. If the address is a patched address, that is, if the
address is an address for which interface 21 will provide data from
a location other than the address of the game cartridge provided by
the portable processing system, then the portable processing system
may be requesting a pointer to the location at which input from the
built-in controls of the portable processing system is stored.
Accordingly, interface 21 may provide logic for determining if any
addresses received from the portable processing system match any of
the patched addresses.
[0033] Third, interface 21 may provide an unused address of the
game cartridge as a location of secondary controller input to the
portable processing system instead of providing an address, stored
on the game cartridge, of the primary controller input in portable
processing system memory or in a buttons register of the portable
processing system. The buttons register of the portable processing
system may be a register that is hardwired to the built-in controls
of the portable processing system. For example, the buttons
register may comprise a set of flip-flops, each of which latches
when a user presses or releases a corresponding button or
combination of buttons. The buttons register may share a common
memory-map with the rest of the memory of the portable processing
system, and is thus addressable by the game software stored on a
cartridge ROM. That is, the buttons register may be within the same
address space as the main memory of the portable processing system.
The buttons register may also be a register which is updated by the
processor based on input received from the built-in controls.
Interface 21 may also provide input values from the secondary
controller to the portable processing system, to be processed by
the processor of the portable processing system.
[0034] Interface 21 may include its own memory separate from memory
23 for storing patch information and built-in controller input. For
example, interface 21 may provide patch registers that store
addresses of the ROM cartridge which can be patched. That is,
interface 21 may store game cartridge addresses that may be patched
to other memory locations. Data stored at such game cartridge
addresses may be an address in portable processing system memory at
which built-in controller input is stored. This address may be the
address of the buttons register or an address in the RAM of the
portable processing system. Thus, interface 21 may detect a request
by the portable processing system for data stored at such registers
by comparing the addresses requested by the portable processing
system with the addresses stored in the patch registers.
[0035] Interface 21 may also receive input from an external
controller. For example, interface 21 may translate input signals
received from the external controller to an integer value which may
then be provided to the portable processing via the data bus of the
portable processing. For example, an external controller may be
connected to a register of interface 21 through secondary
controller connector 25. Such a register may be used to store input
from the external controller. The register may include a set of
flip-flops, such that each flip-flop corresponds to a possible
input value of the external controller. For example, one flip-flop
may correspond to button A of the external controller, while
another flip-flop corresponds to an UP button of the direction pad
of the external controller. Accordingly, these flip-flops may
change state when the corresponding button is pressed or released
by a user. The register may be either active low or active high.
That is, in an active low register, a `0` bit output of a flip-flop
indicates that a corresponding button is pressed, while a `1` bit
output of a flip-flop indicates that a corresponding button is not
pressed. In an active high register, a `0` bit indicates that a
corresponding button is not pressed, while a `1` bit output
indicates that a corresponding button is pressed. The state of the
register may be converted into a binary integer, where the state of
each flip-flop of the register is the value of one of the bits in
the binary integer. The integer may then be provided to the
portable processing system on the data bus of the portable
processing system.
[0036] Interface 21 may be implemented using a programmable logic
device (PLD), such as a programmable logic array (PLA) or a field
programmable gate array (FPGA). Alternatively, interface 21 may be
implemented as an application specific integrated circuit (ASIC).
It should be appreciated that interface 21 may include additional
components not shown or may have different arrangements than
outlined in the drawings.
[0037] Interface 21 may be coupled to a portable processing system
through portable processing system connector 29. Portable
processing connector 29 may be, for example, a connector which
connects to a portable processing system through the cartridge
socket of the portable processing system, the link port of the
portable processing system, or any other port provided by the
portable processing system, such as a USB port or any other serial
or parallel port. If interface 21 occupies the cartridge socket of
a portable processing system, interface 21 may provide another
socket, such as cartridge connector 27 which connects to the game
cartridge (not shown) and which allows data to be transferred from
the game cartridge to the portable processing system. Devices
(e.g., a portable processing system) may receive data from the ROM
of the game cartridge through interface 21. Alternatively, the
contents of the ROM of the game cartridge may be downloaded into
memory 23 and addresses of the ROM can be translated into addresses
of memory 23. Consequently, use of the game cartridge may not be
necessary.
[0038] Secondary controller connector 25 provides a connector for
an external secondary controller. Secondary controller connector 25
may provide input signals received from the controller to interface
21, which may then be stored in a register of interface 21 as
discussed above.
[0039] Memory 23 may store patch information for different games.
That is, memory 23 may store, for a plurality of game cartridges,
which ROM address locations should be patched for a particular game
cartridge.
[0040] Memory 23 may also store software for execution by interface
21. Memory 23 may also store software that, when executed by a
portable processing system, allows a user to enter new patch
information for new games, edit and/or delete patch information,
assign names to, and group the patch information. Further, memory
23 may store other information, such as, for example, a logo for a
splash screen to be displayed upon start up. Also, memory 23 can be
used to store video games, such as the contents of the ROM of a
video game cartridge. It should be appreciated that memory 23
described above may store any type of data, and the invention is
not limited to storing any particular data.
[0041] An example operation of an interface system according to one
embodiment (e.g., the interface system shown in FIG. 2) is
described below with reference to FIG. 3. Portable processing
system 50 includes a cartridge connector 32 that receives a game
cartridge, a microprocessor 40 that processes instructions stored
on the game cartridge, and a memory 42 (e.g., a random access
memory) which may be used to store data related to the execution of
a game or other software. Portable processing system 50 also
includes an address bus 38 for transferring addresses, a data bus
37 that transfers data between microprocessor 40, memory 42, and
cartridge connector 32, and a control bus 34 that transfers control
information (e.g., microprocessor status) between microprocessor
40, memory 42, and cartridge connector 32.
[0042] Portable processing system 50 may be, for example, a
handheld game system such as the Gameboy Advance or a portable
non-gaining system, such as a PDA or mobile telephone.
[0043] According to one aspect of the invention, an interface
system 30 is provided that includes a connector 31 for coupling
interface 33 to cartridge connector 32 of portable processing 50.
System 30 also includes an interface 33 that couples an external
controller 37 to system 50. Interface 33 may include, for example,
patch registers 39. Interface system 30 may further include memory
43. A game cartridge 35 external to system 30 may also be provided
that includes a ROM 36 and which connects to interface 33 of
interface system 30. For example, game cartridge 35 may be a
conventional game cartridge having game program instructions
executable by portable processing system 50. In the example shown
in FIG. 3, ROM 36 has only eight address locations. However, it
should be appreciated that ROM 36 may have any number of address
locations and the invention is not limited to any particular number
of locations. External controller may also connect to interface 33
through a connector to provide input signals to interface 33.
[0044] In operation, ROM 36 may include one or more instructions
that cause portable processing system 50 to retrieve input from the
built-in controls of the portable processing system. This input may
be stored at a particular memory location of the portable
processing system. This particular memory location may be, for
example, a special hardwired buttons register, may be an address
location in memory 42, or may be a standard main memory location in
which all input from a controller is stored.
[0045] For example, the processor 40 of portable processing system
50 may respond to instructions that cause portable processing
system 50 to retrieve data stored at a particular address location.
For example, address location 000 of ROM 36 may include an
instruction that directs portable processing system 50 to retrieve
game controller input data from the address location or pointer
location stored at address location 001 of ROM 36. The address or
pointer stored at address location 001 of ROM 36 may be the address
of the buttons register or a pointer to the address location in
memory 42 where input from the built-in controls is stored.
Pointers to the address location where input from the built-in
controls is stored may be stored at several different address
locations in ROM 36. For example, such pointers may be stored at
address location 001, address location 100, and address location
111. It should be understood that the address locations are given
by way of example only, and any address locations on ROM 36 could
be used for this purpose.
[0046] Different game cartridges may store such pointers at
different address locations in the ROM. That is, the locations of
such pointers on a ROM may vary, depending on the type of game
cartridge. For example, a ROM for a baseball video game cartridge
may store such pointers at address locations 011, 110, and 111,
while a ROM for a football video game cartridge may store such
pointers at address locations 000 and 010. Consequently, patch
registers 39 may store the ROM address locations of these pointers.
For each different cartridge, different ROM address locations may
be loaded in to patch registers 39 from memory 43. For example,
upon startup of the portable processing system, interface system 30
may recognize the game cartridge to which it is currently
connected, find the patch information (e.g., one or more patch
addresses) for the cartridge in memory 43, and transfer these patch
addresses into patch registers 39.
[0047] For each game cartridge, one or more addresses of the
cartridge to be patched may be determined by analyzing the
cartridge to determine which memory locations of the game cartridge
ROM store a pointer to the memory location or register of the
portable processing system that stores input from the built-in
controls of the portable processing system. Each memory location
which stores such a pointer should be patched.
[0048] Also, as mentioned above, patch editor software stored in
memory 43 may be executed to allow a user to enter new patch
information for a particular game cartridge, delete patch
information for a particular game cartridge, or edit patch
information for a particular game cartridge. It should be
appreciated that a user nay cause this software to be executed by,
for example, starting up the portable processing system 50 with
interface system 30 coupled to the portable processing system, but
with no game cartridge coupled to interface system 30.
Alternatively, upon startup of the portable processing system,
interface system 30 may provide a menu which gives the user the
option of executing the patch editor software or executing software
from the game cartridge. If the user selects the patch editor
option, interface system 30 will cause portable processing system
50 to execute the patch editor software. If the user selects the
game cartridge software option, the appropriate patch information
may be transferred from memory 43 to patch registers 39 and
execution of the game cartridge software may begin. Memory 43 may
store patch information for many different game cartridges.
[0049] Additionally, according to one embodiment, interface system
30 may include a bypass (not shown), which allows software on a
game cartridge (e.g., game cartridge 35) to be executed by portable
processing system 50 as if the game cartridge were coupled directly
to portable processing system 50, instead of being coupled to
portable processing system 50 through interface system 30. That is,
when in bypass mode, the interface system does not patch address
locations of game cartridge 35 and does not provide external
controller input to portable processing system 50. Thus, in bypass
mode, the built in controls of portable processing system 50 are
operable and the external controller is not operable. The bypass
may be activated via software, such as providing an option on the
above described menu system which allows a user to select bypass
mode. Alternatively, the bypass mode may be entered via hardware,
for example, by providing a switch which selects either the normal
operating mode of interface system 30 or the bypass mode of
interface system 30. Such a switch may be activated by either
automatically or may be activated by a user.
[0050] Interface system 30 monitors addresses requested by portable
processing system 50. Such addresses are provided on address bus 38
through cartridge connector 32. For instance, if portable
processing system 50 requests access to one of the ROM addresses
stored in patch registers 39, interface 33 may provide a different
address to portable processing system 50 on data bus 37 instead of
providing data stored at the requested address of the ROM (i.e.,
the pointer to the location at which built-in controller input is
stored). The memory address provided by interface 33 may be an
unused address of ROM 36. The unused address serves as a marker for
interface system 30, such that interface system 30 provides
external controller input to portable processing system 50, when
the unused address is provided by portable processing system 50 on
the address bus. The unused address of the ROM may be determined by
analyzing the game cartridge to find an unused address. This unused
address may be stored in memory 43 and loaded into a register along
with the patch information for the game cartridge, upon startup of
the portable processing system and recognition of the game
cartridge. In an alternative embodiment, an address near the end of
the game cartridge address space may be used for all game
cartridges, because it is not likely that the software will occupy
the entire game cartridge address space.
[0051] However, if an address near the end of game cartridge
address space is provided as the unused address, it is possible
that some game cartridges may actually use this address location to
store data. In this situation, the portable processing system may
sometimes request data stored at the "unused" address as a result
of previously attempting to access one of the patched memory
locations of the game cartridge. That is, the portable processing
system may be caused to request data at the "unused" address by
interface system 30. However, at other times, the portable
processing system will request data stored at this "unused" address
as a result of normal execution of the video game software. That
is, the portable processing system will issue a real request for
data stored at this address location. At these times, it is
desirable to actually provide the data stored on the game cartridge
ROM at that address location instead of providing input from the
external controller.
[0052] In one embodiment of the invention, to avoid situations in
which external controller input is provided by interface system 30
when a real request for the ROM data is provided by the portable
processing system. External controller input, upon detection of the
"unused" address of the game cartridge ROM, is provided only if
there was a request for data at one of the patched memory locations
in the address request directly preceding the current request,
within some tolerance. That is, external controller input is only
provided if a request for one of the patched addresses was received
within a tolerance of five or ten requests before the current
request for the "unused" address location. The tolerance serves as
a number of access requests to the ROM from the portable processing
system after an access request by the portable processing system
for one of the patched ROM address locations, but before an address
request for the "unused" address location of the ROM. For example,
when using a tolerance of five requests and when interface system
30 receives a request for the "unused" address location of the ROM,
external controller input may be provided to the portable
processing system on the data bus if one of the previous five
access requests by the portable processing system was an access
request for one of the patched ROM locations. Otherwise, the actual
data stored at the "unused" address location of the ROM is provided
to the portable processing system on the portable processing
system's data bus. Although a tolerance of five results is
discussed above, it should be appreciated that any suitable
tolerance may be used. For example, a tolerance of one request
could be used if it is known that an access request for the
"unused" address requests will directly follow an access request
for one of the patched address locations. The selected tolerance
may depend in part on the compiler used to compile the game
cartridge software. For example, the compiler may cause several
pointers to be loaded in a row before these pointers are utilized,
or the compiler may cause pointers to be loaded only when they are
needed.
[0053] As a result of providing this unused address to portable
processing system 50, portable processing system 50 may request the
data stored at the unused address of ROM 36. This may be performed,
for example, by providing the unused address on address bus 38.
However, many other methods of providing the unused address to
portable processing 50 may be used. Interface 33 may detect the
request of such an address and provide input from the secondary
controller instead of data stored at the requested address of ROM
36. If portable processing system 50 requests access to a
particular address of a storage location in ROM 36 through address
bus 38, and interface 33 determines that this address is not stored
in any of the patch registers 39, interface 33 may fetch the data
at that address of a storage location in ROM 36 and send the
fetched data to portable processing system 50 through data bus 37,
without modifying or replacing the data. In this manner, input from
the external controller is substituted for input from the built-in
controls of the portable processing system.
[0054] FIG. 4 is a flow chart showing a process according to one
embodiment of the invention of operating a portable processing
system with an interface system, such as interface system 30. At
step 401, the portable processing system 50 and interface system 30
are powered up by, for example, turning on a power switch of
portable processing system 50. Portable processing system 50 may be
battery powered for portability, but also may be capable of using
grid power (e.g., from a wall socket). Interface system 30 may
receive power from the portable processing system or may include
its own power source, such as a battery.
[0055] At step 403, the interface system recognizes the cartridge
that is currently connected, by, for example, reading header
information stored on the ROM of the game cartridge. Alternatively,
the user may select from a menu provided by the interface system.
If patch information for a game is not available for a particular
game cartridge, a screen may be displayed directing the user to a
location (e.g., an Internet web page) where such patch information
may be obtained. At steps 405 and 407, the interface system loads
the appropriate patch information and the appropriate unused
address information for the currently connected cartridge from its
memory into registers.
[0056] At step 409, portable processing system 50 begins execution
of the software oil the ROM of the game cartridge. At step 411,
interface system 30 enters a loop to monitor whether any of the
addresses received from the portable processing system on the
address bus of the portable processing system match any of the
patched address locations or the unused address location. This loop
may continue until execution of the software is complete. If
neither any of the patched addresses nor the unused ROM address is
received on address bus 38, the interface system, at step 421,
simply provides the data stored at the requested address of the ROM
to the portable processing system. At steps 413 and 415 if one of
the patched addresses is received on address bus 38, then the
interface system may provide the unused address to the portable
processing system on the data bus of the portable processing
system. If, at steps 417 and 419, the unused ROM address was
received from portable processing system 50 on address bus 38 of
the portable processing system, interface system 30 may provide
input from the external controls or external controller to portable
processing system 50 on data bus 37.
[0057] Alternatively, instead of providing portable processing
system 50 with an unused address of ROM 36 upon a request by
portable processing system 50 for data stored at one of the patched
locations of ROM 36, interface 33 may provide an address location
in the memory of portable processing system 50. Interface 33 may
store input from the external controller at the provided address
location of the memory of portable processing system 50. Thus, the
portable processing system 50 will retrieve input from the external
controller using the memory address provided by interface 33.
[0058] As another alternative, it may not be necessary for
interface 33 to patch memory locations of ROM 36. For example,
interface 33 may load external controller input into the same
register or memory location that is used to store built-in
controller input. Thus, if a user of the portable processing system
operates the portable processing system using the external
controller, the input from this external controller may be
retrieved from the memory location or register used to store
built-in controller input. Also, if the user chooses to operate the
portable processing system using the built-in controls, the
portable processing system may retrieve the built-in controls input
from the same memory location or register.
[0059] FIG. 5 shows one embodiment of a connection of a portable
processing system (e.g., portable processing system 50) to an
interface system (e.g., interface system 30). As shown in FIG. 5,
portable processing system 50 includes a cartridge slot 61 through
which interface system 30 connects to the portable processing
system. A game cartridge 35 may be inserted into interface system
30 through a cartridge connector 63. External controller 60 also
connects to interface system through an external controller
connector 65 of interface system 30. Interface system 30 then
allows a user to control portable processing system 50 with an
external controller 60. Moreover, interface system 30 does not
block the link port of portable processing system 50. External
controller 60 is a controller for operating portable processing
system 50 in place of the built-in controls of the portable
processing system. A game pad may serve as an external controller
as shown in FIG. 5. However, it should be appreciated that many
other types of external controllers may be used. For example, a
joystick, a wheel, a mouse, a keyboard, or any other type of
external controller could be used and the invention is not limited
to any particular external controller.
[0060] FIG. 6 illustrates another embodiment of a connection
between an interface system (e.g., system 30) and a portable
processing system (e.g., system 50) and external controls (e.g.,
controls 80). A mount 81 is used to support portable processing
system 50. Mount 81 may include a fastener for holding portable
processing system 50 on the mount. Mount 81 allows a user to
operate the external controls 80 and clearly see the portable
processing system video screen without having to hold the portable
processing system. Alternatively, a friction fit where friction is
used to fasten the objects, could be used to hold portable
processing system 50 in place on mount 81.
[0061] Mount 81 may also include external controls 80 and a grip
82. Grip 82 allows a user to hold mount 81 while playing a video
game. A connector 85 on mount 81 allows interface system 30 to
electrically connect to mount 81 to receive input from external
controls 80. Interface system 30 may connect to mount 81 using an
external controller connector 87. Interface system 30 also connects
to portable processing system 50 through a cartridge slot 83 using
portable processing system connector 89. A game cartridge 35 may be
connected to interface system 30 though cartridge connector 86.
Alternatively, interface system 30 could be integrated as part of
mount 181. That is, interface system 30 may, in one embodiment, be
fixed to mount 181, such that portable processing system 50 may
attach to mount 181 by connecting to interface system 30 and
fastening to the mount.
[0062] FIG. 7 illustrates yet another way of connecting an
interface system 30 to a portable processing system 50 and an
external wheel controller. The wheel controller includes a wheel
70a, external controls 70b, which include a directional pad and
buttons and external controls 70c which may include additional
buttons. Interface system 30 may connect to portable processing
system 50 through a cartridge slot of portable processing system
50. Both interface system 30 and portable processing system 50 may
fasten to the center of the external controller, to allow the
portable processing system to be supported and viewed by a user
while still using both hands to operate the wheel 70a and external
controls 70b and 70c. Alternatively, interface system 30 may be
fixed to external controller 71. Portable processing system 50 may
connect to external controller 71 by connecting to the interface
system (e.g., through its cartridge slot) and fastening to external
controller 71. Also, external controller 71 may include foot pedals
(not shown), which may also provide external control of portable
processing system 50. Similar methods of mounting portable
processing system 50 on an external controller may be performed
using many other types of external controllers, such as, for
example, joysticks, game pads, mat pads, which are often used for
dance video games or track and field games, or any other type of
game controller.
[0063] In another embodiment of the invention, a device is provided
for providing external control of a portable processing system.
Secondary controls, also referred to as an external controller or
external controls, and software executable by a portable processing
system are integrated into the device. The device may also include
logic for interfacing with a portable processing system and for
providing input from the external controls of the device to the
portable processing system. However, the device may lack a
processor, a display, such as an LCD screen, and other hardware
necessary to execute the software and play a video game. The device
may also be provided with a connector which interfaces with a
portable processing system. As such, the portable processing system
may "plug-in" to the device to provide a processor, a display, and
other hardware necessary to execute the software integrated into
the device. The software may be stored in device 901 on, for
example, a Flash MEMORY, a ROM, a PROM, an EPROM, or an EEPROM. In
this manner, relatively inexpensive handheld games may be provided
which use the hardware resources of a portable processing system to
execute the video game software integrated into the handheld game.
Additionally, the handheld game may provide specialized controls
directed to the specific type of video game software to be executed
by the portable processing system.
[0064] For example, FIG. 8 shows a device 901 for providing
external control of a portable processing system. Device 901 is a
handheld slot machine game. Device 901 includes software for
playing a slot machine game and external controls for controlling
the slot machine game. That is, device 901 includes a lever 903 and
buttons 905a, 905b, and 905c. As can be seen, these external
controls are specifically designed for a slot machine game. A
portable processing system 50 may "plug-in" to device 901 and
connect electrically through a port, such as the cartridge
connector, link port, data port, or network port, of portable
processing system 50. This electrical connection allows portable
processing system 50 to fetch and execute the software integrated
into device 901, just as the portable processing system 50 would
normally fetch and execute software from a video game
cartridge.
[0065] Device 901 may cause portable processing system 50 to
receive input from an external controller in a manner similar to
that of the embodiment described above with respect to FIG. 3.
However, because the software is provided as part of device 901, it
may not be necessary to patch memory locations of the software.
Instead of having software which includes pointers to the memory
location or register used by the portable processing system to
store built-in controller input, the software included as part of
device 901 may have pointers to an unused address. Thus, device 901
may simply monitor requests from the address bus of portable
processing system 50 for this unused address. When this unused
address is requested by portable processing system 50, device 901
may provide input from the external controls to portable processing
system 50 on the data bus of portable processing system 50.
[0066] Many other devices that operate with a portable processing
system could be used according to various embodiments, and the
invention is not limited to the slot machine device described
above. For example, FIG. 9 shows a device 907 which is a laptop.
Similar to device 901 depicted in FIG. 8, device 907 includes
software, external controls, logic for interfacing with a portable
processing system, logic for providing input from the external
controls to the portable processing system, and a connector for
electrically connecting to a portable processing system. In the
example of FIG. 9, external controls 909 integrated into device 907
may include, for example, a keyboard, function buttons, and a
directional pad. These controls may be used with educational games,
word processing software, or any other program which is also
integrated into device 901. Portable processing system 50 connects
electrically to device 907 using, for example, the connector of
device 907. Portable processing system 50 may be controlled by the
external controls of device 907 in a similar manner as described
above with respect to device 901.
[0067] It should be appreciated that many other types of devices
including external controls and software could be used, and the
invention is not limited to the slot machine device or the laptop
device described above. For example, the device could be a fishing
game with a casing shaped like a fishing rod, using a reel as the
external controls and having fishing game software. The device
could also be any type of gambling game, card game, sports game,
racing game, electronic pet, or educational game. Examples of such
games include roulette, blackjack, poker, craps, solitaire, spades,
hearts, bridge, soccer games, baseball games, basketball games,
football games, or golf games. Many other types of devices will
occur to one of ordinary skill in the art and are intended to be
within the spirit and scope of the invention.
[0068] Moreover, it should be appreciated that while the software
of the device was described as being integrated into the device, it
is also possible to provide software that is removable from the
device, by using, for example, a removable cartridge. However, such
removable cartridges may still direct the portable processing
system to use input from the external controls of the device
instead of the built-in controls of the portable processing system,
without patching memory locations.
[0069] FIG. 10 is a flow chart illustrating operation of the device
when connected to a portable processing system. At step 1001, the
device and the portable processing system are powered up. At step
1003, the portable processing system begins execution of the
software stored in the device. At step 1005, the device enters a
loop to monitor whether the unused address of the software has been
provided by the portable processing system on the address bus of
the portable processing system. This loop may terminate when
execution of the software is complete. If the unused address is
provided on the address bus, then the device provides input from
the external controls or external controller to the portable
processing system on the portable processing system data bus (step
1007). Otherwise, at step 1009, the device simply provides the data
at the requested address to the portable processing system on the
portable processing system data bus.
[0070] Alternatively, the software may be programmed to use
controller input from the standard built-in controls storage
location of the portable processing system. The device may simply
load external controller input into this storage location by
providing the external controller input to the portable processing
system on the data bus of the portable processing system. In this
method, it is not necessary to monitor the address bus for an
unused address to determine when to provide external controller
input to the portable processing system.
[0071] Having thus described various embodiments of the present
invention, additional alterations, modifications, and improvements
will readily occur to those skilled in the art. Accordingly, the
foregoing description is by way of example only, and is not
intended to be limiting.
* * * * *