Family BASIC Keyboard

From NESdev Wiki
Revision as of 04:57, 22 March 2013 by Zzo38 (talk | contribs)
Jump to navigationJump to search

The Family Basic Keyboard (HVC-007) was a peripheral released with the Family Basic package in 1984. With the data recorder that could be attached to it, it allowed the Famicom to have the abilities of the average home computer of around that time. It is a generic 72 button keyboard using common matrix logic, and can be connected to the Famicom at the expansion port.

Keyboard map

F1  F2  F3  F4  F5  F6  F7  F8
 1 2 3 4 5 6 7 8 9 0 - ^ ¥ STOP       CH* INS DEL
ESC Q W E R T Y U I O P @ [ ENTER         UP
CTR A S D F G H J K L ; : ] KANA      LEFT RIGHT
SHIFT Z X C V B N M , . / _ SHIFT        DOWN
       GRPH   SPACE

* CH = CLR HOME

Mind that the DEL key function is actually that of Backspace we all know and love.

Hardware interface

Input ($4016 write)

7  bit  0
---- ----
xxxx xKCR
      |||
      ||+-- Reset the keyboard to the first row.
      |+--- Select column, row is incremented if this bit goes from high to low.
      +---- Enable keyboard matrix (if 0, all voltages inside the keyboard will be 5V, reading back as logical 0 always)

Incrementing the row from the (keyless) 10th row will cause it to wrap back to the first row.

Output ($4017 read)

7  bit  0
---- ----
xxxK KKKx
   | |||
   +-+++--- Receive key status of currently selected row/column.

Any key that is held down, will read back as 0.

($4016 reads from the data recorder.)

Matrix

Column 0 Column 1
$4017 bit 4 3 2 1 4 3 2 1
Row 0 ] [ ENTER F8 STOP ¥ RSHIFT KANA
Row 1 ; : @ F7 ^ - / _
Row 2 K L O F6 0 P , .
Row 3 J U I F5 8 9 N M
Row 4 H G Y F4 6 7 V B
Row 5 D R T F3 4 5 C F
Row 6 A S W F2 3 E Z X
Row 7 CTR Q ESC F1 2 1 GRPH LSHIFT
Row 8 LEFT RIGHT UP CLR HOME INS DEL SPACE DOWN

Shifted characters

1 !
2 "
3 #
4 $
5 %
6 &
7 '
8 (
9 )
- =
; +
: *
, <
. >
/ ?

References

Reverse-engineered schematics by Enri: