Difference between revisions of "Keyboard"

From BeebWiki
Jump to: navigation, search
(Added columns 12 to 15.)
(References)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category:Hardware]]
 
[[Category:Hardware]]
[[Category:Stubs]]
+
The '''keyboard''' is attached to the [[slow bus]] and accessed by the [[system VIA]]. On the BBC there are 74 keys including BREAK, 93 including BREAK on the Master series. On the BBC 73 keys and 8 keyboard links are wired in a 10 × 8 matrix; on the Master 92 keys are a 13 × 8 matrix. The two SHIFT keys are connected to one cell and cannot be told apart. The BREAK key is on a separate circuit and resets the computer.
  
The '''keyboard''' is attached to the [[slow bus]] and accessed by the [[system VIA]].  There are 74 keys including BREAK.  73 keys and 8 keyboard links are wired in a 10 × 8 matrix; the two SHIFT keys are connected to one cell and cannot be told apart. The BREAK key is on a separate circuit and resets the computer.
+
The Electron has a superficially similar keyboard, but with a reduced number of keys with many sharing functions. The Electron keyboard is accessed via hardware addressed in sideways ROM space.
  
 
All keys except CTRL and SHIFT cause an interrupt when pressed, which makes the BBC scan the keyboard to identify the key(s) that are held down.
 
All keys except CTRL and SHIFT cause an interrupt when pressed, which makes the BBC scan the keyboard to identify the key(s) that are held down.
  
The keyboard has an unusual ''bit-paired'' layout, unlike the ''typewriter-paired'' layout that is standard on British PCs. Pressing SHIFT or CTRL neatly adds or subtracts a power of two from the [[ASCII]] value of the base character, except for the singleton characters space, 0, @, _, £ and [[VDU 127|DELETE]]. The layout is shown in Chapter 1 of the User Guide.
+
The keyboard is an ECMA-23<ref>[https://en.wikipedia.org/wiki/ECMA-23 Wikipedia: ECMA-23 Keyboard standard]</ref> ''bit-paired'' layout<ref>[https://en.wikipedia.org/wiki/Bit-paired_keyboard Wikipedia: Bit-paired keyboards]</ref>, previously common on programming-orientated computer systems, unlike the ''typewriter-paired'' layout that is standard on mechanical typewriters and modern PCs. Pressing SHIFT or CTRL neatly adds or subtracts a power of two from the [[ASCII]] value of the base character, except for the singleton keys space, 0, @ and [[VDU 127|DELETE]]; and the _ &pound; key. The layout is shown in Chapter 1 of the User Guide.
  
 
There is a circuit diagram of the keyboard on page 489 of ''The Advanced User Guide''.
 
There is a circuit diagram of the keyboard on page 489 of ''The Advanced User Guide''.
Line 12: Line 12:
 
{| class="wikitable"
 
{| class="wikitable"
 
|+ BBC Micro keyboard types
 
|+ BBC Micro keyboard types
! 8bs.com Type<ref>[http://www.bbcmicro.net/old-8bs/insides.htm Keyboard photos on mirror of 8bs.com.]</ref>
+
! 8bs.com Type<ref>[http://8bs.com/insides.htm Keyboard photos on mirror of 8bs.com.]</ref>
 
! Seen on
 
! Seen on
 
! Key legends
 
! Key legends
Line 27: Line 27:
 
| Flat
 
| Flat
 
| Beige
 
| Beige
| Narrow margins, lip at front
+
| Narrow margins, lip at front and rear
 
| White, round body, square-edged shoulder, cross head
 
| White, round body, square-edged shoulder, cross head
 
| Plastic tabs and wire rod (concealed)
 
| Plastic tabs and wire rod (concealed)
Line 66: Line 66:
 
The number under each key is the scan code in hexadecimal.
 
The number under each key is the scan code in hexadecimal.
  
<table style="font-family:sans-serif;text-align:center;">
+
<table style="font-family:sans-serif;text-align:center;" class="mw-widebody">
 
<tr><td style="border-spacing:0px;"><div style="display:table-cell;text-align:center;">
 
<tr><td style="border-spacing:0px;"><div style="display:table-cell;text-align:center;">
 
<div style="display:inline-block;">
 
<div style="display:inline-block;">
Line 238: Line 238:
  
 
===Scan Code Matrix===
 
===Scan Code Matrix===
Columns 10 to 12 contain the Master keypad scan codes. Columns 12 to 15 with scan codes in (brackets) are keys on RISC OS/Archimedes and other systems. Note that in the diagram rows 0 and 7 are swapped to be similar to the physical keyboard layout.
+
Columns 10 to 12 contain the Master keypad scan codes. Columns 12 to 15 with scan codes in (brackets) are keys on RISC OS/ Archimedes and other systems.<ref>[http://mdfs.net/System/C/Lib/console.txt Keyboard scan codes.]</ref> Note that in the diagram rows 0 and 7 are swapped to be similar to the physical keyboard layout.
  
<table style="font-family:sans-serif;text-align:center;">
+
<table style="font-family:sans-serif;text-align:center;" class="mw-widebody" cellspacing="0">
 
<tr><th><th>C0<th>C1<th>C2<th>C3<th>C4<th>C5<th>C6<th>C7<th>C8<th>C9<th>C10<th>C11<th>C12<th>C13<th>C14<th>C15<tr><th>R7
 
<tr><th><th>C0<th>C1<th>C2<th>C3<th>C4<th>C5<th>C6<th>C7<th>C8<th>C9<th>C10<th>C11<th>C12<th>C13<th>C14<th>C15<tr><th>R7
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">ESCAPE</div></div><br><span style="font-size:x-small">&amp;70</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">ESCAPE</div></div><br><span style="font-size:x-small">&amp;70</span>
Line 255: Line 255:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">5</div></div><br><span style="font-size:x-small">&amp;7B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">5</div></div><br><span style="font-size:x-small">&amp;7B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">2</div></div><br><span style="font-size:x-small">&amp;7C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">2</div></div><br><span style="font-size:x-small">&amp;7C</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">No Conv</div></div><br><span style="font-size:x-small">(&amp;7D)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Left</div></div><br><span style="font-size:x-small">(&amp;7D)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Conv</div></div><br><span style="font-size:x-small">(&amp;7E)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Right</div></div><br><span style="font-size:x-small">(&amp;7E)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Kana</div></div><br><span style="font-size:x-small">(&amp;7F)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Menu</div></div><br><span style="font-size:x-small">(&amp;7F)</span>
 
<tr><th>R1
 
<tr><th>R1
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">Q</div></div><br><span style="font-size:x-small">&amp;10</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">Q</div></div><br><span style="font-size:x-small">&amp;10</span>
Line 276: Line 276:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Scroll Lock</div></div><br><span style="font-size:x-small">(&amp;1F)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Scroll Lock</div></div><br><span style="font-size:x-small">(&amp;1F)</span>
 
<tr><th>R2
 
<tr><th>R2
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;font-size:medium;background-color:#E81D0B;border-color:#F82D1B #D80000 #D80000 #F82D1B;"><i>f</i><sub>0</sub></div></div><br><span style="font-size:x-small">&amp;20</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;font-size:medium;background-color:#E81D0B;border-color:#F82D1B #D80000 #D80000 #F82D1B;"><i>f</i><sub>0</sub></div></div><br><span style="font-size:x-small">&amp;20*</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">W</div></div><br><span style="font-size:x-small">&amp;21</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">W</div></div><br><span style="font-size:x-small">&amp;21</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">E</div></div><br><span style="font-size:x-small">&amp;22</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">E</div></div><br><span style="font-size:x-small">&amp;22</span>
Line 284: Line 284:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">)<br>9</div></div><br><span style="font-size:x-small">&amp;26</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">)<br>9</div></div><br><span style="font-size:x-small">&amp;26</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">Ø</div></div><br><span style="font-size:x-small">&amp;27</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">Ø</div></div><br><span style="font-size:x-small">&amp;27</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">£<br>&mdash;</div></div><br><span style="font-size:x-small">&amp;28</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">£<br>_</div></div><br><span style="font-size:x-small">&amp;28</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#666666;border-color:#888888 #444444 #444444 #888888;font-size:large;">↓</div></div><br><span style="font-size:x-small">&amp;29</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#666666;border-color:#888888 #444444 #444444 #888888;font-size:large;">↓</div></div><br><span style="font-size:x-small">&amp;29</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">8</div></div><br><span style="font-size:x-small">&amp;2A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">8</div></div><br><span style="font-size:x-small">&amp;2A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">9</div></div><br><span style="font-size:x-small">&amp;2B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">9</div></div><br><span style="font-size:x-small">&amp;2B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Pause Break</div></div><br><span style="font-size:x-small">(&amp;2C)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Pause Break</div></div><br><span style="font-size:x-small">(&amp;2C)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">` |</div></div><br><span style="font-size:x-small">(&amp;2D)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:small;">~ &nbsp; ¬<br>' &nbsp;&nbsp; `</div></div><br><span style="font-size:x-small">(&amp;2D)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">&pound; &yen;</div></div><br><span style="font-size:x-small">(&amp;2E)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:small;">&curren; &nbsp; |<br>&pound; &nbsp; &yen;</div></div><br><span style="font-size:x-small">(&amp;2E)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Back Space</div></div><br><span style="font-size:x-small">(&amp;2F)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Back Space</div></div><br><span style="font-size:x-small">(&amp;2F)</span>
 
<tr><th>R3
 
<tr><th>R3
Line 305: Line 305:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">+</div></div><br><span style="font-size:x-small">&amp;3A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">+</div></div><br><span style="font-size:x-small">&amp;3A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">-</div></div><br><span style="font-size:x-small">&amp;3B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">-</div></div><br><span style="font-size:x-small">&amp;3B</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">RETURN</div></div><br><span style="font-size:x-small">&amp;3C</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">KEYPAD<br>RETURN</div></div><br><span style="font-size:x-small">&amp;3C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Insert</div></div><br><span style="font-size:x-small">(&amp;3D)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Insert</div></div><br><span style="font-size:x-small">(&amp;3D)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Home</div></div><br><span style="font-size:x-small">(&amp;3E)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Home</div></div><br><span style="font-size:x-small">(&amp;3E)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Page Up</div></div><br><span style="font-size:x-small">(&amp;3F)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">Page<br>Up</div></div><br><span style="font-size:x-small">(&amp;3F)</span>
 
<tr><th>R4
 
<tr><th>R4
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">CAPS LOCK</div></div><br><span style="font-size:x-small">&amp;40</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">CAPS LOCK</div></div><br><span style="font-size:x-small">&amp;40</span>
Line 321: Line 321:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">RETURN</div></div><br><span style="font-size:x-small">&amp;49</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; xkey">RETURN</div></div><br><span style="font-size:x-small">&amp;49</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">/</div></div><br><span style="font-size:x-small">&amp;4A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">/</div></div><br><span style="font-size:x-small">&amp;4A</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">DELETE</div></div><br><span style="font-size:x-small">&amp;4B</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">KEYPAD<br>DELETE</div></div><br><span style="font-size:x-small">&amp;4B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">.</div></div><br><span style="font-size:x-small">&amp;4C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">.</div></div><br><span style="font-size:x-small">&amp;4C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Num Lock</div></div><br><span style="font-size:x-small">(&amp;4D)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Num Lock</div></div><br><span style="font-size:x-small">(&amp;4D)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Page Down</div></div><br><span style="font-size:x-small">(&amp;4E)</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Page Down</div></div><br><span style="font-size:x-small">(&amp;4E)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">&quot;<br>'</div></div><br><span style="font-size:x-small">(&amp;4F)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:small;">&quot;&nbsp;&nbsp;@<br>' &nbsp;&nbsp; '</div></div><br><span style="font-size:x-small">(&amp;4F)</span>
 
<tr><th>R5
 
<tr><th>R5
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">SHIFT LOCK</div></div><br><span style="font-size:x-small">&amp;50</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">SHIFT LOCK</div></div><br><span style="font-size:x-small">&amp;50</span>
Line 337: Line 337:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">}<br>]</div></div><br><span style="font-size:x-small">&amp;58</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">}<br>]</div></div><br><span style="font-size:x-small">&amp;58</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">DELETE </div></div><br><span style="font-size:x-small">&amp;59</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">DELETE </div></div><br><span style="font-size:x-small">&amp;59</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">#</div></div><br><span style="font-size:x-small">&amp;5A</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:small;">#&nbsp; ~<br> &nbsp;&nbsp;&nbsp; #</div></div><br><span style="font-size:x-small">&amp;5A</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">*</div></div><br><span style="font-size:x-small">&amp;5B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">*</div></div><br><span style="font-size:x-small">&amp;5B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">,</div></div><br><span style="font-size:x-small">&amp;5C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">,</div></div><br><span style="font-size:x-small">&amp;5C</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">+<br>=</div></div><br><span style="font-size:x-small">(&amp;5D)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">+<br>=</div></div><br><span style="font-size:x-small">(&amp;5D)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">|<br>\</div></div><br><span style="font-size:x-small">(&amp;5E)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">|<br>\</div></div><br><span style="font-size:x-small">(&amp;5E)*</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">_<br>\</div></div><br><span style="font-size:x-small">(&amp;5F)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;line-height:1.1em;">_<br>\</div></div><br><span style="font-size:x-small">(&amp;5F)*</span>
 
<tr><th>R6
 
<tr><th>R6
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; wkey">TAB</div></div><br><span style="font-size:x-small">&amp;60</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; wkey">TAB</div></div><br><span style="font-size:x-small">&amp;60</span>
Line 357: Line 357:
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">1</div></div><br><span style="font-size:x-small">&amp;6B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">1</div></div><br><span style="font-size:x-small">&amp;6B</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">3</div></div><br><span style="font-size:x-small">&amp;6C</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:large;">3</div></div><br><span style="font-size:x-small">&amp;6C</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Left</div></div><br><span style="font-size:x-small">(&amp;6D)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">No Conv</div></div><br><span style="font-size:x-small">(&amp;6D)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Right</div></div><br><span style="font-size:x-small">(&amp;6E)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Conv</div></div><br><span style="font-size:x-small">(&amp;6E)</span>
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Win Menu</div></div><br><span style="font-size:x-small">(&amp;6F)</span>
+
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small;">Kana</div></div><br><span style="font-size:x-small">(&amp;6F)</span>
 
<tr><th>R0
 
<tr><th>R0
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; wkey">SHIFT</div></div><br><span style="font-size:x-small">&amp;00</span>
 
<td><div style="display:inline-block;"><div style="width:3rem;height:3rem;border-style:solid;border-width:1px;text-align:center;display:table-cell;vertical-align:middle;color:white;background-color:#222222;border-color:#444444 #000000 #000000 #444444;font-size:x-small; wkey">SHIFT</div></div><br><span style="font-size:x-small">&amp;00</span>
Line 392: Line 392:
 
<td>
 
<td>
 
</table>
 
</table>
 +
Notes:
 +
* &amp;20: keyboards with 'Print' generate f0 keypress
 +
* &amp;2D: key to the left of 1 on PC layout keyboard
 +
* &amp;5E: key between left shift and Z on PC layout keyboard<ref name="iyonix">[https://web.archive.org/web/20130401185753/http://www.iyonix.com/32bit/2205203-02.htm RISC OS Japanese Support Functional Specification]</ref>
 +
* &amp;5F: key between ? and right shift on PC layout keyboard<ref name="iyonix"/>
 +
 +
==See also==
 +
* [[INKEY numbers]]
 +
* [[Key codes]]
  
 
==References==
 
==References==
 
<references />
 
<references />
  
-- [[User:Beardo|beardo]] 00:01, 18 October 2007 (BST)
+
 
 +
----
 +
[[User:Beardo|beardo]] 00:01, 18 October 2007 (BST)
 +
[[User:JGharston|jgharston]] 00:19, 30 December 2020 (GMT)

Latest revision as of 01:20, 30 December 2020

The keyboard is attached to the slow bus and accessed by the system VIA. On the BBC there are 74 keys including BREAK, 93 including BREAK on the Master series. On the BBC 73 keys and 8 keyboard links are wired in a 10 × 8 matrix; on the Master 92 keys are a 13 × 8 matrix. The two SHIFT keys are connected to one cell and cannot be told apart. The BREAK key is on a separate circuit and resets the computer.

The Electron has a superficially similar keyboard, but with a reduced number of keys with many sharing functions. The Electron keyboard is accessed via hardware addressed in sideways ROM space.

All keys except CTRL and SHIFT cause an interrupt when pressed, which makes the BBC scan the keyboard to identify the key(s) that are held down.

The keyboard is an ECMA-23[1] bit-paired layout[2], previously common on programming-orientated computer systems, unlike the typewriter-paired layout that is standard on mechanical typewriters and modern PCs. Pressing SHIFT or CTRL neatly adds or subtracts a power of two from the ASCII value of the base character, except for the singleton keys space, 0, @ and DELETE; and the _ £ key. The layout is shown in Chapter 1 of the User Guide.

There is a circuit diagram of the keyboard on page 489 of The Advanced User Guide.

BBC Micro keyboard types
8bs.com Type[3] Seen on Key legends Key sound PCB colour Chassis plate Key switches Space bar support DIP switch orientation
Type 1 B, ? Large Flat Beige Narrow margins, lip at front and rear White, round body, square-edged shoulder, cross head Plastic tabs and wire rod (concealed) East-west (under DELETE)
Type 2 B, B+ Small Echoing Tawny brown Wide margins, deep skirt Black, square body, chamfered shoulder, cross head Wire rod support North-south
Type 3  ? Large Flat Tawny brown Wide margins, shallow skirt Dark grey, deep bevelled shoulder, square cup head Plastic guides? North-south
Type 4  ? Large Echoing Beige Narrow margins, lip at front Black, square body, chamfered shoulder, cross head Wire rod support East-west (between SHIFT and DELETE)

Keyboard Scan Codes

The number under each key is the scan code in hexadecimal.

f0

&20
f1

&71
f2

&72
f3

&73
f4

&14
f5

&74
f6

&75
f7

&16
f8

&76
f9

&77
BREAK

ESCAPE

&70
!
1

&30
"
2

&31
#
3

&11
$
4

&12
%
5

&13
&
6

&34
'
7

&24
(
8

&15
)
9

&26
Ø

&27
=
-

&17
~
^

&18
|
\

&78

&19

&79
TAB

&60
Q

&10
W

&21
E

&22
R

&33
T

&23
Y

&44
U

&35
I

&25
O

&36
P

&37
@

&47
{
[

&38
£

&28

&39

&29
CAPS LOCK

&40
CTRL

&01
A

&41
S

&51
D

&32
F

&43
G

&53
H

&54
J

&45
K

&46
L

&56
+
;

&57
*
:

&48
}
]

&58
RETURN

&49
SHIFT LOCK

&50
SHIFT

&00
Z

&61
X

&42
C

&52
V

&63
B

&64
N

&55
M

&65
<
,

&66
>
.

&67
?
/

&68
SHIFT

&00
DELETE

&59
COPY

&69
SPACE

&62
bit 7

&02
bit 6

&03
bit 5

&04
bit 4

&05
bit 3

&06
bit 2

&07
bit 1

&08
bit 0

&09

Scan Code Matrix

Columns 10 to 12 contain the Master keypad scan codes. Columns 12 to 15 with scan codes in (brackets) are keys on RISC OS/ Archimedes and other systems.[4] Note that in the diagram rows 0 and 7 are swapped to be similar to the physical keyboard layout.

C0C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15
R7
ESCAPE

&70
f1

&71
f2

&72
f3

&73
f5

&74
f6

&75
f8

&76
f9

&77
|
\

&78

&79
4

&7A
5

&7B
2

&7C
Win Left

(&7D)
Win Right

(&7E)
Win Menu

(&7F)
R1
Q

&10
#
3

&11
$
4

&12
%
5

&13
f4

&14
(
8

&15
f7

&16
=
-

&17
~
^

&18

&19
6

&1A
7

&1B
f11

(&1C)
f12

(&1D)
f10

(&1E)
Scroll Lock

(&1F)
R2
f0

&20*
W

&21
E

&22
T

&23
'
7

&24
I

&25
)
9

&26
Ø

&27
£
_

&28

&29
8

&2A
9

&2B
Pause Break

(&2C)
~   ¬
'    `

(&2D)
¤   |
£   ¥

(&2E)
Back Space

(&2F)
R3
!
1

&30
"
2

&31
D

&32
R

&33
&
6

&34
U

&35
O

&36
P

&37
{
[

&38

&39
+

&3A
-

&3B
KEYPAD
RETURN

&3C
Insert

(&3D)
Home

(&3E)
Page
Up

(&3F)
R4
CAPS LOCK

&40
A

&41
X

&42
F

&43
Y

&44
J

&45
K

&46
@

&47
*
:

&48
RETURN

&49
/

&4A
KEYPAD
DELETE

&4B
.

&4C
Num Lock

(&4D)
Page Down

(&4E)
"  @
'    '

(&4F)
R5
SHIFT LOCK

&50
S

&51
C

&52
G

&53
H

&54
N

&55
L

&56
+
;

&57
}
]

&58
DELETE

&59
#  ~
    #

&5A
*

&5B
,

&5C
+
=

(&5D)
|
\

(&5E)*
_
\

(&5F)*
R6
TAB

&60
Z

&61
SPACE

&62
V

&63
B

&64
M

&65
<
,

&66
>
.

&67
?
/

&68
COPY

&69
Ø

&6A
1

&6B
3

&6C
No Conv

(&6D)
Conv

(&6E)
Kana

(&6F)
R0
SHIFT

&00
CTRL

&01
bit 7

&02
bit 6

&03
bit 5

&04
bit 4

&05
bit 3

&06
bit 2

&07
bit 1

&08
bit 0

&09
R0
SHIFT

&00
CTRL

&01
ALT

&02
Left Shift

&03
Left Ctrl

&04
Left
Alt

&05
Right Shift

&06
Right Ctrl

&07
Right Alt

&08
Mouse Select

&09
Mouse Menu

&0A
Mouse Adjust

&0B

Notes:

  • &20: keyboards with 'Print' generate f0 keypress
  • &2D: key to the left of 1 on PC layout keyboard
  • &5E: key between left shift and Z on PC layout keyboard[5]
  • &5F: key between ? and right shift on PC layout keyboard[5]

See also

References



beardo 00:01, 18 October 2007 (BST) jgharston 00:19, 30 December 2020 (GMT)