Input devices: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Mark some details as possibly NES-specific)
(reorder a lot (put hardware description before logic description); describe famicom 4016/4017 logic)
Line 1: Line 1:
The NES and Famicom have a set of I/O ports used for controllers and other peripherals, consisting of the following:
* One output port, 3 bits wide, accessible by writing the bottom 3 bits of $4016.
** The values latched by $4016/write appear on the [[CPU_pin_out_and_signal_description|OUT0-OUT2]] output pins of the 2A03/07, where OUT0 is routed to the controller ports and OUT0-OUT2 to the expansion port on the NES.
* Two input ports, each 5 bits wide, accessible by reading the bottom 5 bits of $4016 and $4017.
** On the NES, only D0 and D3-D4 are connected to the controller ports, while all of D0-D4 are connected to the expansion port. Reading $4016 and $4017 activates the [[CPU_pin_out_and_signal_description|/OE1 and /OE2]] signals, respectively, which are routed to the controller ports and the expansion port.
The NES has two [[Controller port pinout|general-purpose controller ports]] on the front of the console, as well as a (rarely used) [[NES_expansion_port_pinout|48-pin expansion port]] underneath.
The NES has two [[Controller port pinout|general-purpose controller ports]] on the front of the console, as well as a (rarely used) [[NES_expansion_port_pinout|48-pin expansion port]] underneath.


The Famicom's standard controllers are hardwired to the front of the unit, and a special [[Famicom expansion port pinout|15-pin expansion port]] is commonly used for third-party controllers. The AV Famicom, however, features detachable controllers using the same ports as the NES.
The Famicom's standard controllers are hardwired to the front of the unit, and a special [[Famicom expansion port pinout|15-pin expansion port]] is commonly used for third-party controllers. The AV Famicom, however, features detachable controllers using the same ports as the NES.


 
The NES and Famicom have a set of I/O ports used for controllers and other peripherals, consisting of the following:
* One output port, 3 bits wide, accessible by writing the bottom 3 bits of $4016.
** The values latched by $4016/write appear on the [[CPU_pin_out_and_signal_description|OUT0-OUT2]] output pins of the 2A03/07, where OUT0 is routed to the controller ports and OUT0-OUT2 to the expansion port on the NES.
* Two input ports, each 5 bits wide, accessible by reading the bottom 5 bits of $4016 and $4017. Reading $4016 and $4017 activates the [[CPU_pin_out_and_signal_description|/OE1 and /OE2]] signals, respectively, which are routed to the controller ports and the expansion port.
** On the NES, only D0, D3, and D4 are connected to both controller ports, while all of D0-D4 are connected to the expansion port.
** On the original Famicom, the two ports differ: D0 is permanently connected to both controllers, while $4016 D1 and all of $4017's D0-D4 are connected to the expansion port.
** On the AV Famicom, only D0 is connected to the controller ports. The expansion port is unchanged.
=== Programmer's reference ===
=== Programmer's reference ===
* [[Controller_port_registers|Registers]]
* [[Controller_port_registers|Registers]]

Revision as of 18:08, 14 April 2013

The NES has two general-purpose controller ports on the front of the console, as well as a (rarely used) 48-pin expansion port underneath.

The Famicom's standard controllers are hardwired to the front of the unit, and a special 15-pin expansion port is commonly used for third-party controllers. The AV Famicom, however, features detachable controllers using the same ports as the NES.

The NES and Famicom have a set of I/O ports used for controllers and other peripherals, consisting of the following:

  • One output port, 3 bits wide, accessible by writing the bottom 3 bits of $4016.
    • The values latched by $4016/write appear on the OUT0-OUT2 output pins of the 2A03/07, where OUT0 is routed to the controller ports and OUT0-OUT2 to the expansion port on the NES.
  • Two input ports, each 5 bits wide, accessible by reading the bottom 5 bits of $4016 and $4017. Reading $4016 and $4017 activates the /OE1 and /OE2 signals, respectively, which are routed to the controller ports and the expansion port.
    • On the NES, only D0, D3, and D4 are connected to both controller ports, while all of D0-D4 are connected to the expansion port.
    • On the original Famicom, the two ports differ: D0 is permanently connected to both controllers, while $4016 D1 and all of $4017's D0-D4 are connected to the expansion port.
    • On the AV Famicom, only D0 is connected to the controller ports. The expansion port is unchanged.

Programmer's reference

Hardware

Other I/O devices