Browse Source

+ Finished keyboard scan code tables

michael 24 years ago
parent
commit
2936e5d81b
3 changed files with 154 additions and 146 deletions
  1. 41 146
      docs/keyboard.tex
  2. 48 0
      docs/keys.tex
  3. 65 0
      docs/mkkeytab.pp

+ 41 - 146
docs/keyboard.tex

@@ -368,149 +368,44 @@ No example available yet.
 \section{Keyboard scan codes}
 Special physical keys are encoded with the DOS scan codes for these keys
 in the second byte of the \var{TKeyEvent} type.
-What follows is a list of the scan codes.
-\begin{FPCtable}{ll}{Physical keys scan codes}
-Scan code (hex) & Key \\ \hline
-00 & NoKey \\
-01 & ALT-Esc \\
-02 & ALT-Space \\
-04 & CTRL-Ins \\
-05 & SHIFT-Ins \\
-06 & CTRL-Del \\
-07 & SHIFT-Del \\
-08 & ALT-Back \\
-09 & ALT-SHIFT-Back \\
-0F & SHIFT-Tab \\
-10 & ALT-Q \\
-11 & ALT-W \\
-12 & ALT-E \\
-13 & ALT-R \\
-14 & ALT-T \\
-15 & ALT-Y \\
-16 & ALT-U \\
-17 & ALT-I \\
-18 & ALT-O \\
-19 & ALT-P \\
-1A & ALT-LftBrack \\
-1B & ALT-RgtBrack \\
-1E & ALT-A \\
-1F & ALT-S \\
-20 & ALT-D \\
-21 & ALT-F \\
-22 & ALT-G \\
-23 & ALT-H \\
-24 & ALT-J \\
-25 & ALT-K \\
-26 & ALT-L \\
-27 & ALT-SemiCol \\
-28 & ALT-Quote \\
-29 & ALT-OpQuote \\
-2B & ALT-BkSlash \\
-2C & ALT-Z \\
-2D & ALT-X \\
-2E & ALT-C \\
-2F & ALT-V \\
-30 & ALT-B \\
-31 & ALT-N \\
-32 & ALT-M \\
-33 & ALT-Comma \\
-34 & ALT-Period \\
-35 & ALT-Slash \\
-37 & ALT-GreyAst \\
-3B & F1 \\
-3C & F2 \\
-3D & F3 \\
-3E & F4 \\
-3F & F5 \\
-40 & F6 \\
-41 & F7 \\
-42 & F8 \\
-43 & F9 \\
-44 & F10 \\
-47 & Home \\
-48 & Up \\
-49 & PgUp \\
-4B & Left \\
-4C & Center \\
-4D & Right \\
-4E & ALT-GrayPlus \\
-4F & end \\
-50 & Down \\
-51 & PgDn \\
-52 & Ins \\
-53 & Del \\
-54 & SHIFT-F1 \\
-55 & SHIFT-F2 \\
-56 & SHIFT-F3 \\
-57 & SHIFT-F4 \\
-58 & SHIFT-F5 \\
-59 & SHIFT-F6 \\
-5A & SHIFT-F7 \\
-5B & SHIFT-F8 \\
-5C & SHIFT-F9 \\
-5D & SHIFT-F10 \\
-5E & CTRL-F1 \\
-5F & CTRL-F2 \\
-60 & CTRL-F3 \\
-61 & CTRL-F4 \\
-62 & CTRL-F5 \\
-63 & CTRL-F6 \\
-64 & CTRL-F7 \\
-65 & CTRL-F8 \\
-66 & CTRL-F9 \\
-67 & CTRL-F10 \\
-68 & ALT-F1 \\
-69 & ALT-F2 \\
-6A & ALT-F3 \\
-6B & ALT-F4 \\
-6C & ALT-F5 \\
-6D & ALT-F6 \\
-6E & ALT-F7 \\
-6F & ALT-F8 \\
-70 & ALT-F9 \\
-71 & ALT-F10 \\
-72 & CTRL-PrtSc \\
-73 & CTRL-Left \\
-74 & CTRL-Right \\
-75 & CTRL-end \\
-76 & CTRL-PgDn \\
-77 & CTRL-Home \\
-78 & ALT-1 \\
-79 & ALT-2 \\
-7A & ALT-3 \\
-7B & ALT-4 \\
-7C & ALT-5 \\
-7D & ALT-6 \\
-7E & ALT-7 \\
-7F & ALT-8 \\
-80 & ALT-9 \\
-81 & ALT-0 \\
-82 & ALT-Minus \\
-83 & ALT-Equal \\
-84 & CTRL-PgUp \\
-85 & F11 \\
-86 & F12 \\
-87 & SHIFT-F11 \\
-88 & SHIFT-F12 \\
-89 & CTRL-F11 \\
-8A & CTRL-F12 \\
-8B & ALT-F11 \\
-8C & ALT-F12 \\
-8D & CTRL-Up \\
-8E & CTRL-Minus \\
-8F & CTRL-Center \\
-90 & CTRL-GreyPlus \\
-91 & CTRL-Down \\
-94 & CTRL-Tab \\
-97 & ALT-Home \\
-98 & ALT-Up \\
-99 & ALT-PgUp \\
-9B & ALT-Left \\
-9D & ALT-Right \\
-9F & ALT-end \\
-A0 & ALT-Down \\
-A1 & ALT-PgDn \\
-A2 & ALT-Ins \\
-A3 & ALT-Del \\
-A5 & ALT-Tab \\ \hline
-\end{FPCtable}
+A complete list of scan codes can be found in \seet{keyscans}.
+
+A list of scan codes for special keys and combinations with the SHIFT, ALT
+and CTRl keys can be found in \seet{speckeys}.
+\begin{FPCltable}{llllll}{Physical keys scan codes}{keyscans}
+Code & Key & Code & Key & Code & Key\\ \hline
+\input{keys.tex}
+\hline
+\end{FPCltable}
+
+\begin{FPCltable}{llccc}{Special keys scan codes}{speckeys}
+Key         & Code  & SHIFT-Key & CTRL-Key & Alt-Key \\ \hline
+NoKey       &  00   &       &     &     \\
+F1          &  3B   &  54   & 5E  & 68  \\
+F2          &  3C   &  55   & 5F  & 69  \\
+F3          &  3D   &  56   & 60  & 6A  \\
+F4          &  3E   &  57   & 61  & 6B  \\
+F5          &  3F   &  58   & 62  & 6C  \\
+F6          &  40   &  59   & 63  & 6D  \\
+F7          &  41   &  5A   & 64  & 6E  \\
+F8          &  42   &  5A   & 65  & 6F  \\
+F9          &  43   &  5B   & 66  & 70  \\
+F10         &  44   &  5C   & 67  & 71  \\
+F11         &  85   &  87   & 89  & 8B  \\
+F12         &  86   &  88   & 8A  & 8C  \\
+Home        &  47   &       & 77  & 97  \\ 
+Up          &  48   &       & 8D  & 98  \\
+PgUp        &  49   &       & 84  & 99  \\
+Left        &  4B   &       & 73  & 9B  \\
+Center      &  4C   &       & 8F  &     \\
+Right       &  4D   &       & 74  & 9D  \\
+end         &  4F   &       & 75  & 9F  \\
+Down        &  50   &       & 91  & A0  \\
+PgDn        &  51   &       & 76  & A1  \\
+Ins         &  52   & 05    & 04  & A2  \\
+Del         &  53   & 07    & 06  & A3  \\
+Tab         &  8    & 0F    & 94  & A5  \\
+GreyPlus    &       &       & 90  & 4E  \\
+\hline
+\end{FPCltable}
+

+ 48 - 0
docs/keys.tex

@@ -0,0 +1,48 @@
+00 & NoKey           & 3D & F3              & 70 & ALT-F9           \\
+01 & ALT-Esc          & 3E & F4              & 71 & ALT-F10          \\
+02 & ALT-Space        & 3F & F5              & 72 & CTRL-PrtSc       \\
+04 & CTRL-Ins         & 40 & F6              & 73 & CTRL-Left        \\
+05 & SHIFT-Ins        & 41 & F7              & 74 & CTRL-Right       \\
+06 & CTRL-Del         & 42 & F8              & 75 & CTRL-end         \\
+07 & SHIFT-Del        & 43 & F9              & 76 & CTRL-PgDn        \\
+08 & ALT-Back         & 44 & F10             & 77 & CTRL-Home        \\
+09 & ALT-SHIFT-Back    & 47 & Home            & 78 & ALT-1            \\
+0F & SHIFT-Tab        & 48 & Up              & 79 & ALT-2            \\
+10 & ALT-Q            & 49 & PgUp            & 7A & ALT-3            \\
+11 & ALT-W            & 4B & Left            & 7B & ALT-4            \\
+12 & ALT-E            & 4C & Center          & 7C & ALT-5            \\
+13 & ALT-R            & 4D & Right           & 7D & ALT-6            \\
+14 & ALT-T            & 4E & ALT-GrayPlus     & 7E & ALT-7            \\
+15 & ALT-Y            & 4F & end             & 7F & ALT-8            \\
+16 & ALT-U            & 50 & Down            & 80 & ALT-9            \\
+17 & ALT-I            & 51 & PgDn            & 81 & ALT-0            \\
+18 & ALT-O            & 52 & Ins             & 82 & ALT-Minus        \\
+19 & ALT-P            & 53 & Del             & 83 & ALT-Equal        \\
+1A & ALT-LftBrack     & 54 & SHIFT-F1         & 84 & CTRL-PgUp        \\
+1B & ALT-RgtBrack     & 55 & SHIFT-F2         & 85 & F11             \\
+1E & ALT-A            & 56 & SHIFT-F3         & 86 & F12             \\
+1F & ALT-S            & 57 & SHIFT-F4         & 87 & SHIFT-F11        \\
+20 & ALT-D            & 58 & SHIFT-F5         & 88 & SHIFT-F12        \\
+21 & ALT-F            & 59 & SHIFT-F6         & 89 & CTRL-F11         \\
+22 & ALT-G            & 5A & SHIFT-F7         & 8A & CTRL-F12         \\
+23 & ALT-H            & 5B & SHIFT-F8         & 8B & ALT-F11          \\
+24 & ALT-J            & 5C & SHIFT-F9         & 8C & ALT-F12          \\
+25 & ALT-K            & 5D & SHIFT-F10        & 8D & CTRL-Up          \\
+26 & ALT-L            & 5E & CTRL-F1          & 8E & CTRL-Minus       \\
+27 & ALT-SemiCol      & 5F & CTRL-F2          & 8F & CTRL-Center      \\
+28 & ALT-Quote        & 60 & CTRL-F3          & 90 & CTRL-GreyPlus    \\
+29 & ALT-OpQuote      & 61 & CTRL-F4          & 91 & CTRL-Down        \\
+2B & ALT-BkSlash      & 62 & CTRL-F5          & 94 & CTRL-Tab         \\
+2C & ALT-Z            & 63 & CTRL-F6          & 97 & ALT-Home         \\
+2D & ALT-X            & 64 & CTRL-F7          & 98 & ALT-Up           \\
+2E & ALT-C            & 65 & CTRL-F8          & 99 & ALT-PgUp         \\
+2F & ALT-V            & 66 & CTRL-F9          & 9B & ALT-Left         \\
+30 & ALT-B            & 67 & CTRL-F10         & 9D & ALT-Right        \\
+31 & ALT-N            & 68 & ALT-F1           & 9F & ALT-end          \\
+32 & ALT-M            & 69 & ALT-F2           & A0 & ALT-Down         \\
+33 & ALT-Comma        & 6A & ALT-F3           & A1 & ALT-PgDn         \\
+34 & ALT-Period       & 6B & ALT-F4           & A2 & ALT-Ins          \\
+35 & ALT-Slash        & 6C & ALT-F5           & A3 & ALT-Del          \\
+37 & ALT-GreyAst      & 6D & ALT-F6           & A5 & ALT-Tab          \\
+3B & F1              & 6E & ALT-F7           &                      \\
+3C & F2              & 6F & ALT-F8           &                      \\

+ 65 - 0
docs/mkkeytab.pp

@@ -0,0 +1,65 @@
+program mkkeytab;
+
+{
+ This program takes the keyboard scan code definitions, (the const section
+ of the rtl/unix/keyboard.pp file) and outputs a 
+ latex table. The final output is done with some reformatting with the
+ following sed commands:
+
+ mkkeytab | sed 's/[aA]lt/ALT-/g' | sed 's/[Ss]hift/SHIFT-/g' | sed 's/[Cc]trl/CTRL-/g' > keys.tex
+
+}
+
+uses sysutils,classes;
+
+Function ScanLine (S: String) : String;
+
+Var 
+  I : Integer;
+  KN,KC : String;
+  
+begin
+  I:=Pos('=',S);
+  Result:='';
+  If I<>0 then
+    begin
+    KN:=Trim(Copy(S,1,I-1));
+    Delete(KN,1,2);
+    Delete(S,1,I);
+    I:=Pos(';',S);
+    If I<>0 then
+      begin
+      KC:=Trim(Copy(S,1,I-1));
+      Delete(KC,1,1);
+      Result:= KC+' & '+KN;
+      end;  
+    end;      
+end;
+
+Var
+  F : text;
+  List : TstringList;
+  I,RowCount : Integer;
+  S: String;
+
+begin
+  List:=TstringList.Create;
+  Assign(f,'keys.txt');
+  Reset(f);
+  While not eof(f) do
+    begin
+    Readln (f,s);
+    S:=ScanLine(s);
+    If S<>'' then
+      List.Add(S);
+    end;
+  RowCount:=List.Count div 3;
+  if (List.Count mod 3)<>0 then 
+    begin
+    Inc(RowCount);
+    List.Add('');
+    List.Add('');
+    end;
+  For I:=0 to rowcount-1 do
+    Writeln(Format('%-20s & %-20s & %-20s \\',[List[i],List[I+RowCount],List[I+2*RowCount]]));
+end.