Nintendo NES-001 User Guide - Page 31

Input Devices - nes value

Page 31 highlights

5 - Input Devices 5.1 Control Pad The 6502 used memory mapped I/O (input/output). This means that the same instructions and bus are used to communicate with I/O devices as with memory, that writing to a specific memory location writes to the appropriate device. In the NES, the I/O ports for input devices were $4016 and $4017 (see Appendix B). The original NES used a rectangular control pad as shown in figure 5-1. The pad featured four buttons, A, B, Start and Select as well as a four-directional cross used to control movement. Although many variations were released, often with additional features such as slow motion and turbo fire, the original design was by far the most commonly used. Figure 5-1. Original NES control pad [43]. The system reads multiple times from the I/O port to get all information about the controller. Each of the first eight reads indicates the status of one button on the standard controller in the order A, B, Select, Start, Up, Down, Left, Right. The first controller is attached to port $4016, the second to $4017. Using a four-player adapter it was possible to connect four controllers to the system, although this was rare. In this case controllers 1 and 3 were attached to $4016 and 2 and 4 to $4017. The next eight reads would get the status of the second controller on the port, otherwise they are ignored. Reads 17-20 retrieve the signatures which identify whether a device is connected and if so, what type of device [7]. If a joypad is connected to $4016 the returned value is 01b, if one is connected to $4017 the returned value is 10b. There are four more reads which are not required before the cycle starts again. The process of reading from an I/O device can be reset by use of a strobing method. When a reset is required, it is indicated by first writing a 1 to the port, followed by a 0. 5.2 Zapper When the NES first launched in America, Nintendo included a light-gun known as the Zapper. Figure 5-2 shows the original version of the Zapper, although the colour was later changed to orange. By aiming using the sight, the gamer could produce quite accurate results. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild Gunman [44]. 31

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

31
5 - Input Devices
5.1 Control Pad
The 6502 used memory mapped I/O (input/output). This means that the same instructions
and bus are used to communicate with I/O devices as with memory, that writing to a specific
memory location writes to the appropriate device. In the NES, the I/O ports for input devices
were $4016 and $4017 (see Appendix B).
The original NES used a rectangular control pad as shown in figure 5-1. The pad featured
four buttons, A, B, Start and Select as well as a four-directional cross used to control
movement. Although many variations were released, often with additional features such as
slow motion and turbo fire, the original design was by far the most commonly used.
Figure 5-1. Original NES control pad [43].
The system reads multiple times from the I/O port to get all information about the controller.
Each of the first eight reads indicates the status of one button on the standard controller in
the order A, B, Select, Start, Up, Down, Left, Right. The first controller is attached to port
$4016, the second to $4017. Using a four-player adapter it was possible to connect four
controllers to the system, although this was rare. In this case controllers 1 and 3 were
attached to $4016 and 2 and 4 to $4017. The next eight reads would get the status of the
second controller on the port, otherwise they are ignored.
Reads 17-20 retrieve the signatures which identify whether a device is connected and if so,
what type of device [7]. If a joypad is connected to $4016 the returned value is 01b, if one is
connected to $4017 the returned value is 10b. There are four more reads which are not
required before the cycle starts again.
The process of reading from an I/O device can be reset by use of a strobing method. When a
reset is required, it is indicated by first writing a 1 to the port, followed by a 0.
5.2 Zapper
When the NES first launched in America, Nintendo included a light-gun known as the
Zapper. Figure 5-2 shows the original version of the Zapper, although the colour was later
changed to orange. By aiming using the sight, the gamer could produce quite accurate
results. Several games featured Zapper support including Duck Hunt, Gumshoe and Wild
Gunman [44].