Method for bi-directional data communication in a digital...

Amusement devices: games – Including means for processing electronic data – With communication link

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C463S036000, C463S037000, C273S14800B

Reexamination Certificate

active

06270415

ABSTRACT:

This application contains Microfiche Appendices A, B1 and B2. Micro Fiche Appendix A includes 1 microfiche with 10 frames. Appendix B1 includes 1 microfiche with 15 frames. Appendix B2 includes 1 microfiche with 30 frames.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to controllers for games and simulator programs implemented on a personal computer (“PC”) and, more particularly, to bi-directional controller drivers having the capability of receiving transmitted digital controller data to the PC game port responsive to a PC microprocessor instruction.
2. Description of the Related Art
The PC has been through a good deal of change and evolution since its initial introduction. However, in some areas, the PC has changed little. One such area is the way in which the PC interfaces to external devices. Countless add-in cards and interfaces have been developed but, with few exceptions, these new add-in cards and interfaces have not become standard to the basic PC. The standard peripheral interfaces typically found on all new PCs are the parallel interface (printer interface), serial interface(s), the game board interface, the keyboard port, and sound card interface. Bi-directional communication between the host PC and external devices has generally been restricted to the serial interface(s). The parallel interface is notably not truly a bi-directional interface. The keyboard port has also been adopted for bi-directional communications (See U.S. Pat. Nos. 5,396,267 and 5,610,631; see also U.S. Pat. No. 4,824,111 to Hoye, et al.) but does not provide a truly bi-directional interface.
One problem with the current system is that the primary bi-directional interface, the serial interface, has speed limitations and is typically dedicated to other external devices such as the printers. When not dedicated to the system printer, the serial interface is in constant use by modems, faxes, scanners, mouse, and the like. Therefore, the serial interface has not been readily available to support game controllers.
Conventionally, a PC is enabled to be controlled by external manual control devices by means of a game board or card, which provides an external game port into which control devices, such as joysticks, rudders, hand-held game controllers and the like, can be plugged. Widespread compatibility is essential to the ability to mass market a wide variety of games and simulation programs.
Industry standards have been developed for game cards for personal computers such as those commonly referred to as IBM-compatibles. The universal adoption of these standards means that any external manual input device designed to control such computers and software must be compatible with the industry-standard game port. Any input device lacking such compatibility will not be able to be used to interface with conventional personal computers through standard game boards and will not be widely accepted.
One problem is that the industry standard game port provides only a limited number of inputs: four discrete signal inputs for receiving discrete signals signifying “On” and “Off” and four analog signal inputs for receiving variable voltage signals, such as output by a potentiometer, which are continuously variable over a limited range. The number of game boards that could be plugged into a conventional PC was also limited. A multiport game card is disclosed in commonly assigned U.S. Pat. No. 5,245,320 to Bouton. Consequently, the number of controllers supported by a standard game port, and the number of allowable functions communicated thereby, is severely restricted.
Additionally, the game card or board has been typically thought of as an input only device, that is, not having the capability of communication to and from the external device.
The industry-standard game port is a very simple, somewhat primitive, interface, especially in how it handles the analog inputs. The game port appears to the host PC, more particularly to the PC microprocessor, as an Input/Output (“I/O”) address. The microprocessor communicates with I/O interfaces, like the game port, by sending instructions to the address assigned to the particular I/O device. A single I/O interface may have two or more ports, each port will have an individual address assigned.
The first game port will usually be assigned an address
0201
hex (base 16) or 513 decimal. To access the game card to read a button, for instance, the microprocessor performs an I/O READ from address
201
h. The result is an 8-bit value where each of the 4 buttons is assigned a single bit. When a button is pressed on the game controller, a contact closure to ground is applied on the game port at a pin on the connector that corresponds to the button input to the game port. A logic low voltage at the input pin and at the corresponding bit indicates that the button has been pressed.
The byte read from the game port is typically configured as follows:
BIT
7
6
5
4
3
2
1
0
But4
But3
But2
But1
Y2
X2
Y1
X1
Where:
But4 indicates button 4;
But3 indicates button 3;
But2 indicates button 2;
But1 indicates button 1;
X1 indicates forst X analog position;
Y1 indicates first Y analog position;
X2 indicates seconds X analog position; and
Y2 indicates second Y analog position.
For example, if the 8 bit value read from the game port is 11100000, the button pressed was button 1. You may notice that the analog positional values X
1
, Y
1
, X
2
, and Y
2
are also represented by a single bit in this example. This is not the value of the analog input but rather a flag.
Reading an analog positional value is not as simple as reading a button value. U.S. Pat. No. 5,245,320 to Bouton, incorporated herein by reference, describes and illustrates the conventional game controller coupled to the game port. The analog positional values must be read by first causing the microprocessor to write to the address
201
h by issuing a WRITE,
201
h instruction. This instruction causes a monostable multivibrator or one-shot to fire an output voltage pulse which charges up to power supply voltage VCC. The width of the resulting pulse will be proportional to the resistance of the external device connected to the game port. The resistance of the external device will, in turn, be proportional to the position of the controller in one axis, the X axis, for example. This is because the output of the one-shot is presented to a capacitive load located on the game port and a resistive load located on the controller. Game controllers, for instance a joystick, have a potentiometer in both the X and Y axis. The resistive value of both of these potentiometers reflects the position of the joystick in the respective axis. The one-shot drives the analog line high and the time that the line stays high is a function of the time it takes for the capacitive value of the game port to charge through the device resistance. The RC-time constant, comprising the capacitive load of the game port and the resistive load of the joystick or controller, defines the width of the pulse. The PC microprocessor must then turn this pulse width value into a value that reflects the device position capable of use in games and other programs. Typically, this conversion is accomplished by using a counter timer. When the microprocessor writes to address
201
h, a timer coupled to the one-shot is started. The timer is stopped when the output voltage pulse from the one-shot finally goes low. The timer ending count is proportional to the RC-time constant, and therefore indicative of the value of resistance and controller position.
A drawback is that the characteristics of the analog inputs can vary significantly from machine to machine. Game developers have attempted to circumvent this problem by providing calibration functions that normalize the game port inputs. These calibration functions will read the analog inputs for the extremes of travel of the respective external controller and, interactively with the user, assign values to these points. These assigned values are then used by the driver running on the host PC to sc

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for bi-directional data communication in a digital... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for bi-directional data communication in a digital..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for bi-directional data communication in a digital... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2477543

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.