;   MakeKey.TBL, Copyright (c) 1997-1998 by Lukas Ruf,
;   Swiss Federal Institute of Technology,
;   Computer Engineering and Networks Laboratory.
;
;   TOPSY -- A Teachable Operating System.
;            Implementation of a tiny and simple
;            micro kernel for teaching purposes.
;
;   For further information, please visit http://www.tik.ee.ethz.ch/~topsy
;
;   This software is provided under the terms of the GNU General Public Licence.
;   A full copy of the GNU GPL is provided in the file COPYING found in the 
;   development root of Topsy.
;
;       This copyright notice supercedes all originally or previously used 
;       copyrights being used within the source code.
;       
;       Author: Lukas Ruf, lr@lpr.ch


;Topsy i386                                             Lukas Ruf, February 1998
;-------------------------------------------------------------------------------
; MakeKey.TBL
; -----------
; provides the first level mapping from the hardware scan code (some are created
; by the primitive keyboard handler KeyModifier) to the Topsy HW Code.
; This Topsy HW Code is extended by the Keyboard Modifiers (i.e. Alt Ctrl
; Shift (=Caps Lock set, too)) and is named THE TOPSY KEYCODE (=modified Topsy
; HW Code).
; The TOPSY KEYCODE points into a table of 1024Bytes (0..1023). The Byte
; located at that position can either be:
;       0x00    :       discard keypress
;       0x01..0xFE :    ASCII Code to insert into Keyboard Buffer
;       0xFF    :       send 16b Message located in KeyMsg.TBL at appropriate
;                       position
; The Key Modifiers (Alt, Ctrl, Shift, Caps Lock, Num Lock, Scroll Lock) do
; not generate a KeyCode by themselves. The Processing is stopped (if they are
; pressed/released) after KeyModifier().
;-------------------------------------------------------------------------------
; SCAN CODE (Hardware)  Topsy HW Code (7b)      KEY (I tried US Mapping)
; --------------------  ------------------      -----------------
        01              000                     ; ESC
        02              049                     ; 1
        03              050                     ; 2
        04              051                     ; 3
        05              052                     ; 4
        06              053                     ; 5
        07              054                     ; 6
        08              055                     ; 7
        09              056                     ; 8
        10              057                     ; 9
        11              048                     ; 0
        12              021                     ; - {'}
        13              022                     ; = {^}
        14              017                     ; Backspace
        15              016                     ; Tab
        16              077                     ; Q
        17              083                     ; W
        18              065                     ; E
        19              078                     ; R
        20              080                     ; T
        21              086                     ; Z
        22              081                     ; U
        23              069                     ; I
        24              075                     ; O
        25              076                     ; P
        26              023                     ; [ {�}
        27              024                     ; ] {�}
        28              013                     ; Enter
        29              044                     ; [Left Ctrl]
        30              061                     ; A
        31              079                     ; S
        32              064                     ; D
        33              066                     ; F
        34              067                     ; G
        35              068                     ; H
        36              070                     ; J
        37              071                     ; K
        38              072                     ; L
        39              025                     ; ; {�}
        40              026                     ; ' {�}
        41              020                     ; ` {�}
        42              042                     ; [Left Shift]
        43              027                     ; # {$}
        44              085                     ; Y
        45              084                     ; X
        46              063                     ; C
        47              082                     ; V
        48              062                     ; B
        49              074                     ; N
        50              073                     ; M
        51              028                     ; , {,}
        52              029                     ; . {.}
        53              030                     ; / {-}
        53              097                     ; /     (NumPad)
        54              043                     ; [Right Shift]
        55              098                     ; *     (NumPad)
        56              046                     ; [Left  Alt]
        57              018                     ; Space
        58              019                     ; [Caps Lock]
        59              001                     ; F1
        60              002                     ; F2
        61              003                     ; F3
        62              004                     ; F4
        63              005                     ; F5
        64              006                     ; F6
        65              007                     ; F7
        66              008                     ; F8
        67              009                     ; F9
        68              010                     ; F10
        69              058                     ; [Num Lock]
        70              014                     ; Scroll Lock
        71              094                     ; 7     (NumPad)
        72              095                     ; 8     (NumPad)
        73              096                     ; 9     (NumPad)
        74              099                     ; -     (NumPad)
        75              091                     ; 4     (NumPad)
        76              092                     ; 5     (NumPad)
        77              093                     ; 6     (NumPad)
        78              100                     ; +     (NumPad)
        79              088                     ; 1     (NumPad)
        80              089                     ; 2     (NumPad)
        81              090                     ; 3     (NumPad)
        82              087                     ; 0     (NumPad)
        83              101                     ; .     (NumPad)
        84              059                     ; [Alt-SysRq]
        85              015                     ; (not implemented)
        86              031                     ; \ {<}
        87              011                     ; F11
        88              012                     ; F12
;       89                                      ; (not implemented) 
        90              015                     ; BREAK  (self made MAKE CODE)
        91              060                     ; PRTSCR (self made MAKE CODE)
;       92              045                     ; [Right Ctrl]    (Extended Key) (self made MAKE CODE)
        92              102                     ; Enter (NumPad)  (Extended Key) (self made MAKE CODE)
;       93              047                     ; [Right Alt]     (Extended Key) (self made MAKE CODE)
        94              034                     ; Home            (Extended Key) (self made MAKE CODE)
        95              038                     ; Arrow Up        (Extended Key) (self made MAKE CODE)
;       96      cannot be used as 0xE0 & 0x7F = 96 Extended Key Signed
;       97      cannot be used as 0xE1 & 0x7F = 97 2nd Extended Key Signed
        98              036                     ; Page Up         (Extended Key) (self made MAKE CODE)
        99              039                     ; Arrow Left      (Extended Key) (self made MAKE CODE)
       100              041                     ; Arrow Right     (Extended Key) (self made MAKE CODE)
       101              035                     ; End             (Extended Key) (self made MAKE CODE)
       102              040                     ; Arrow Down      (Extended Key) (self made MAKE CODE)
       103              037                     ; Page Down       (Extended Key) (self made MAKE CODE)
       104              032                     ; Insert          (Extended Key) (self made MAKE CODE)
       105              033                     ; Delete          (Extended Key) (self made MAKE CODE)
; Original SCAN CODES (translated by KeyModifier())
; -------------------
; Special Keys: Extended Keys and Break/PrtScr
; Please Note: These keys are translated to represent a unique keyboard number...
;       28  0           102                     ; Enter (NumPad)  (Extended Key)
;       29  0           045                     ; [Right Ctrl]    (Extended Key)
;       29/69           015                     ; Break           (see special note)
;       55              060                     ; Print Screen    (see special note)
;       56  0           047                     ; [Right Alt]     (Extended Key)
;       71  0           034                     ; Home            (Extended Key)
;       72  0           038                     ; Arrow Up        (Extended Key)
;       73  0           036                     ; Page Up         (Extended Key)
;       75  0           039                     ; Arrow Left      (Extended Key)
;       77  0           041                     ; Arrow Right     (Extended Key)
;       79  0           035                     ; End             (Extended Key)
;       80  0           040                     ; Arrow Down      (Extended Key)
;       81  0           037                     ; Page Down       (Extended Key)
;       82  0           032                     ; Insert          (Extended Key)
;       83  0           033                     ; Delete          (Extended Key)
; End of MakeKey.TBL (TRANSLATION MAKE CODE TO KEYCODE)