Specifications.
[pintos-anon] / specs / kbd / scancodes-2.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 <HTML>
3 <HEAD>
4  <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
5  <TITLE>Keyboard scancodes: Special keyboards - XT keyboards</TITLE>
6  <LINK HREF="scancodes-3.html" REL=next>
7  <LINK HREF="scancodes-1.html" REL=previous>
8  <LINK HREF="scancodes.html#toc2" REL=contents>
9 </HEAD>
10 <BODY>
11 <A HREF="scancodes-3.html">Next</A>
12 <A HREF="scancodes-1.html">Previous</A>
13 <A HREF="scancodes.html#toc2">Contents</A>
14 <HR>
15 <H2><A NAME="s2">2. Special keyboards - XT keyboards</A></H2>
16
17 <P><I>First keyboards with an XT interface.
18 There is no keyboard controller, no commands to the keyboard.
19 On a modern computer these will usually yield "keyboard error"
20 or "KB/interface error" or some such, but sometimes they can be
21 used nevertheless.</I>
22 <P>The IBM PC (all models) and the IBM XT (models 68, 78, 86, 87, 88,
23 267, 277) came with this 83-key keyboard.
24 The IBM AT (models 68, 99, 239, 319) came with an 84-key keyboard.
25 The IBM XT (models 89, 268, 278, 286) and the IBM AT model 339
26 came with a 101-key keyboard.
27 <P>The original IBM 83-key PC/XT keyboard did not have LEDs.
28 The original IBM 84-key AT keyboard has LEDs, separates the
29 keypad from the main area, moves the Esc key to the right,
30 and adds the SysReq key.
31 The original IBM 101-key keyboard moves the ten function keys
32 from the left to the top row and adds two more. The Esc key is moved
33 in front of this row of function keys. The "number" and "cursor"
34 functions of the keypad are separated. There are duplicate Ctrl and Alt
35 keys. 
36 <P>
37 <H2><A NAME="ss2.1">2.1 XT keyboard</A>
38 </H2>
39
40 <P>The 
41 <A HREF="xtkbd.jpg">XT keyboard</A>
42 has 83 keys, nicely numbered 1-83, that is, with scancodes
43 <B>01</B>-<B>53</B>. No escaped scancodes.
44 <P>
45 <FIGURE>
46 <EPS FILE="absent">
47 <IMG SRC="xtkbd-s.jpg">
48 </FIGURE>
49 <P>
50 <H2><A NAME="ss2.2">2.2 Victor keyboard</A>
51 </H2>
52
53 <P>This 
54 <A HREF="victor.jpg">Victor keyboard</A>
55 is very similar. The keypad is separated here, and the Esc key
56 has been moved to the keypad. The frontside of the ScrollLock key
57 says Break. It resembles an AT keyboard but has only 83 keys,
58 the SysRq is still missing.
59 <P>
60 <FIGURE>
61 <EPS FILE="absent">
62 <IMG SRC="victor-s.jpg">
63 </FIGURE>
64 <P>
65 <H2><A NAME="ss2.3">2.3 Olivetti M24 keyboard</A>
66 </H2>
67
68 <P>
69 <FIGURE>
70 <EPS FILE="absent">
71 <IMG SRC="m24.jpg">
72 </FIGURE>
73
74 The Olivetti M24 (also sold under the names Logabax 1600 and
75 ATT PC-6300) was an IBM compatible manufactured in 1984.
76 <P>John Elliott writes:
77 The Olivetti M24 is an XT sort-of clone. It
78 has two possible keyboards - the normal (83-key) IBM one,
79 and a "deluxe" one (102 keys) with 18 function keys. 
80 <P>Unlike a normal XT keyboard, it is possible to send commands to it.
81 The BIOS does this twice:
82 (1) Command 01h makes the keyboard perform a self-test.
83 (2) Command 05h makes the keyboard return a 1-byte ID. The least signficant
84 bit is set for a "deluxe" layout.
85 <P>The keyboard connector is DE-9 rather than DIN. Pins are:
86 <PRE>
87 1   KBDATA
88 2   KBCLOCK
89 3   GND
90 4   GND
91 5  +12V
92 6   -RESET1
93 7   Keyboard/-Typewriter
94 8   TEST0
95 9   +5V
96 </PRE>
97
98 (pins 6-9 are not used by the supplied keyboards).
99 <P>Attached 
100 <A HREF="m24kbd.png">the diagram</A>
101 of the 'deluxe' keyboard, which shows its scancodes in decimal.
102 <P>A mouse can be attached to the keyboard. The following is based
103 on disassembling attmouse.drv from Windows 1.0.
104 <P>Windows initialises the mouse by sending the following bytes to the
105 keyboard: 0x12, 0x77, 0x78, 0x79, 0x00.
106 The 0x12 is almost certainly a command byte; 0x77, 0x78 and 0x79 are the
107 scancodes to be returned by the three mouse buttons. I don't know what the
108 0x00 is for.
109 <P>It then handles the following scancodes:
110 0xFE -- mouse movement. The next two scancodes are delta X, then delta Y,
111 in ones' complement.
112 0x77, 0x78, 0x79 (and 0xF7, 0xF8, 0xF9) -- button presses / releases.
113 <P>When shutting down the mouse, it sends these bytes to the keyboard:
114 0x11, 0x1C, 0x53, 0x01, 0x4B, 0x4D, 0x48, 0x50, 0x02, 0x04.
115 My guesses here are:
116 0x11: Mouse movement becomes simulated keypresses.
117 0x1C, 0x53, 0x01: Scancodes to be returned by mouse button presses.
118 0x4B, 0x4D, 0x48, 0x50: Scancodes to be returned by mouse movement.
119 0x02, 0x04: Don't know.
120 <P>
121 <H2><A NAME="telerate"></A> <A NAME="ss2.4">2.4 Telerate keyboard</A>
122 </H2>
123
124 <P>The 
125 <A HREF="telerate.jpg">Telerate keyboard</A> was used
126 for financial applications, as is clear from the keycaps.
127 This keyboard (in the old XT version, without <B>e0</B> prefixes)
128 has four additional keys, with scancodes <B>61</B>,
129 <B>62</B>, <B>63</B>, <B>64</B>. The F11 and F12 keys have
130 scancodes <B>54</B> and <B>55</B> (instead of the common <B>57</B>
131 and <B>58</B>). There are two LEDs (for CapsLock and NumLock).
132 <P>
133 <FIGURE>
134 <EPS FILE="absent">
135 <IMG SRC="telerate-s.jpg">
136 </FIGURE>
137 <P>
138 <H2><A NAME="ss2.5">2.5 NCR keyboard</A>
139 </H2>
140
141 <P>Also with an XT interface this 
142 <A HREF="ncr.jpg">NCR keyboard</A>,
143 still with ten function keys on the left, but already with a separate
144 block of keys between the ordinary keys and the numeric keypad.
145 This middle block has on top five keys
146 Ctrl (<B>1d</B>, same as the Ctrl on the left),
147 Del (<B>53</B>, same as Keypad-Del/.),
148 PgUp (<B>49</B>, same as Keypad-9/PgUp),
149 End (<B>4f</B>, same as Keypad-1/End),
150 PgDn (<B>51</B>, same as Keypad-3/PgDn), and below five cursor keys
151 (<B>48</B>, same as Keypad-8/Up;
152 <B>4b</B>, same as Keypad-4/Left;
153 <B>47</B>, same as Keypad-7/Home;
154 <B>4d</B>, same as Keypad-6/Right;
155 <B>50</B>, same as Keypad-2/Down).
156 Enter and Keypad-enter are both <B>1c</B>.
157 Below the Enter key PrtScn/* (<B>37</B>), and below that again
158 Ins (<B>52</B>, same as Keypad-0/Ins).
159 CapsLock and NumLock have a built-in LED.
160 <P>
161 <FIGURE>
162 <EPS FILE="absent">
163 <IMG SRC="ncr-s.jpg">
164 </FIGURE>
165 <P>
166 <P>
167 <H2><A NAME="cherry80"></A> <A NAME="ss2.6">2.6 Cherry G80-0777</A>
168 </H2>
169
170 <P>According to 
171 <A HREF="http://titan.informatik.uni-bonn.de/~frinke/FreeKEYB/kbdinfo.html">FreeKEYB/kbdinfo.html</A>
172 this keyboard has five additional keys with scancodes
173 <B>55</B> (F11), <B>56</B> (F12),
174 <B>57</B> (F13), <B>58</B> (F14), <B>59</B> (F15).
175 <P>
176 <P>
177 <HR>
178 <A HREF="scancodes-3.html">Next</A>
179 <A HREF="scancodes-1.html">Previous</A>
180 <A HREF="scancodes.html#toc2">Contents</A>
181 </BODY>
182 </HTML>