Goto sanos source index
//
// kbdext.h
//
// Keyboard table for extended scancodes
//
// Copyright (C) 2002 Michael Ringgaard. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. Neither the name of the project nor the names of its contributors
// may be used to endorse or promote products derived from this software
// without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
//
unsigned short extkeys[MAX_SCANCODES][MAX_KBSTATES] = {
// normal shift ctrl alt num caps scaps snum altgr
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 00
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 01
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 02
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 03
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 04
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 05
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 06
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 07
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 08
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 09
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0A
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0B
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0C
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0D
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0E
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 0F
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 10
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 11
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 12
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 13
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 14
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 15
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 16
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 17
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 18
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 19
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 1A
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 1B
{0x0D, 0x0D, 0x0A, 0xA600, 0x0D, 0x0D, 0x0A, 0x0A, 0}, // 1C enter (kpad)
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 1D right ctrl
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 1E
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 1F
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 20
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 21
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 22
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 23
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 24
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 25
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 26
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 27
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 28
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 29
{0x0500, 0, 0x7200, 0, 0, 0, 0, 0, 0}, // 2A prtscr
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 2B
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 2C
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 2D
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 2E
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 2F
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 30
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 31
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 32
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 33
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 34
{0x2F, 0x3F, 0x9500, 0xA400, 0x2F, 0x2F, 0x3F, 0x3F, 0}, // 35 / (kpad)
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 36
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 37
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 38 right alt
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 39
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3A
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3B
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3C
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3D
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3E
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 3F
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 40
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 41
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 42
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 43
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 44
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 45
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 46
{0x4700, 0xB700, 0x7700, 0x9700, 0x4700, 0x4700, 0x4700, 0x4700, 0x4700, 0xD700}, // 47 home
{0x4800, 0xB800, 0x8D00, 0x9800, 0x4800, 0x4800, 0x4800, 0x4800, 0x4800, 0xD800}, // 48 up
{0x4900, 0xB900, 0x8400, 0x9900, 0x4900, 0x4900, 0x4900, 0x4900, 0x4900, 0xD900}, // 49 pgup
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 4A
{0x4B00, 0xBB00, 0x7300, 0x9B00, 0x4B00, 0x4B00, 0x4B00, 0x4B00, 0x4B00, 0xDB00}, // 4B left
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 4C
{0x4D00, 0xBD00, 0x7400, 0x9D00, 0x4D00, 0x4D00, 0x4D00, 0x4D00, 0x4D00, 0xDD00}, // 4D right
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 4E
{0x4F00, 0xBF00, 0x7500, 0x9F00, 0x4F00, 0x4F00, 0x4F00, 0x4F00, 0x4F00, 0xDF00}, // 4F end
{0x5000, 0xC000, 0x9100, 0xA000, 0x5000, 0x5000, 0x5000, 0x5000, 0x5000, 0xE000}, // 50 down
{0x5100, 0xC100, 0x7600, 0xA100, 0x5100, 0x5100, 0x5100, 0x5100, 0x5100, 0xE100}, // 51 pgdn
{0x5200, 0xC200, 0x9200, 0xA200, 0x5200, 0x5200, 0x5200, 0x5200, 0x5200, 0xE200}, // 52 ins
{0x5300, 0xC300, 0x9300, 0xA300, 0x5300, 0x5300, 0x5300, 0x5300, 0x5300, 0xE300}, // 53 del
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 54
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 55
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 56
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 57
{0, 0, 0, 0, 0, 0, 0, 0, 0}, // 58
};