; 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)