Family BASIC Keyboard
From NESdev Wiki
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. +---- Select keyboard (always set.)
Incrementing the row at the 9th row will cause it to wrap back to the first row.
Leaving bit 2 clear will cause writes to direct to the data recorder instead.
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 |