1*7ba08f81SStefan Eßer# Copyright (c) 2004 2*7ba08f81SStefan Eßer# Kim Norgaard <jasen@jasen.dk>, Denmark. 3*7ba08f81SStefan Eßer# All rights reserved. 4*7ba08f81SStefan Eßer# 5*7ba08f81SStefan Eßer# Redistribution and use in source and binary forms, with or without 6*7ba08f81SStefan Eßer# modification, are permitted provided that the following conditions 7*7ba08f81SStefan Eßer# are met: 8*7ba08f81SStefan Eßer# 1. Redistributions of source code must retain the above copyright 9*7ba08f81SStefan Eßer# notice, this list of conditions and the following disclaimer as 10*7ba08f81SStefan Eßer# the first lines of this file unmodified. 11*7ba08f81SStefan Eßer# 2. Redistributions in binary form must reproduce the above copyright 12*7ba08f81SStefan Eßer# notice, this list of conditions and the following disclaimer in the 13*7ba08f81SStefan Eßer# documentation and/or other materials provided with the distribution. 14*7ba08f81SStefan Eßer# 15*7ba08f81SStefan Eßer# THIS SOFTWARE IS PROVIDED BY KIM NOORGAARD ``AS IS'' AND ANY EXPRESS OR 16*7ba08f81SStefan Eßer# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17*7ba08f81SStefan Eßer# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18*7ba08f81SStefan Eßer# IN NO EVENT SHALL KIM NOORGAARD BE LIABLE FOR ANY DIRECT, INDIRECT, 19*7ba08f81SStefan Eßer# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20*7ba08f81SStefan Eßer# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*7ba08f81SStefan Eßer# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*7ba08f81SStefan Eßer# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*7ba08f81SStefan Eßer# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24*7ba08f81SStefan Eßer# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*7ba08f81SStefan Eßer# 26*7ba08f81SStefan Eßer# $FreeBSD$ 27*7ba08f81SStefan Eßer 28*7ba08f81SStefan Eßer# scan cntrl alt alt cntrl lock 29*7ba08f81SStefan Eßer# code base shift cntrl shift alt shift cntrl shift state 30*7ba08f81SStefan Eßer# ------------------------------------------------------------------ 31*7ba08f81SStefan Eßer 000 nop nop nop nop nop nop nop nop O 32*7ba08f81SStefan Eßer 001 esc esc esc esc esc esc debug esc O 33*7ba08f81SStefan Eßer 002 '1' '!' nop nop 0xa1 0xb9 nop nop O 34*7ba08f81SStefan Eßer 003 '2' '"' nul nul '@' 0xb2 nul nul O 35*7ba08f81SStefan Eßer 004 '3' '#' nop nop 0x9e 0xb3 nop nop O 36*7ba08f81SStefan Eßer 005 '4' 0x20ac nop nop '$' 0x20ac nop nop O 37*7ba08f81SStefan Eßer 006 '5' '%' nop nop '5' '%' nop nop O 38*7ba08f81SStefan Eßer 007 '6' '&' nop nop '6' '&' nop nop O 39*7ba08f81SStefan Eßer 008 '7' '/' nop nop '{' '/' nop nop O 40*7ba08f81SStefan Eßer 009 '8' '(' esc esc '[' '8' esc esc O 41*7ba08f81SStefan Eßer 010 '9' ')' gs gs ']' ')' gs gs O 42*7ba08f81SStefan Eßer 011 '0' '=' nop nop '}' '=' nop nop O 43*7ba08f81SStefan Eßer 012 '+' '?' nop nop '+' 0xbf nop nop O 44*7ba08f81SStefan Eßer 013 dacu dgra nop nop '|' '`' nop nop O 45*7ba08f81SStefan Eßer 014 bs bs del del bs bs del del O 46*7ba08f81SStefan Eßer 015 ht btab nop nop ht btab nop nop O 47*7ba08f81SStefan Eßer 016 'q' 'Q' dc1 dc1 'q' 'Q' dc1 dc1 C 48*7ba08f81SStefan Eßer 017 'w' 'W' etb etb 'w' 'W' etb etb C 49*7ba08f81SStefan Eßer 018 'e' 'E' enq enq 0x20ac 'E' enq enq C 50*7ba08f81SStefan Eßer 019 'r' 'R' dc2 dc2 'r' 'R' dc2 dc2 C 51*7ba08f81SStefan Eßer 020 't' 'T' dc4 dc4 't' 'T' dc4 dc4 C 52*7ba08f81SStefan Eßer 021 'y' 'Y' em em 'y' 'Y' em em C 53*7ba08f81SStefan Eßer 022 'u' 'U' nak nak 'u' 'U' nak nak C 54*7ba08f81SStefan Eßer 023 'i' 'I' ht ht 'i' 'I' ht ht C 55*7ba08f81SStefan Eßer 024 'o' 'O' si si 'o' 'O' si si C 56*7ba08f81SStefan Eßer 025 'p' 'P' dle dle 'p' 'P' dle dle C 57*7ba08f81SStefan Eßer 026 0xe5 0xc5 nop nop 0x86 0x8f nop nop C 58*7ba08f81SStefan Eßer 027 duml dcir rs rs dtil '^' rs rs O 59*7ba08f81SStefan Eßer 028 cr cr nl nl cr cr nl nl O 60*7ba08f81SStefan Eßer 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O 61*7ba08f81SStefan Eßer 030 'a' 'A' soh soh 'a' 'A' soh soh C 62*7ba08f81SStefan Eßer 031 's' 'S' dc3 dc3 0xdf 'S' dc3 dc3 C 63*7ba08f81SStefan Eßer 032 'd' 'D' eot eot 'd' 'D' eot eot C 64*7ba08f81SStefan Eßer 033 'f' 'F' ack ack 'f' 'F' ack ack C 65*7ba08f81SStefan Eßer 034 'g' 'G' bel bel 'g' 'G' bel bel C 66*7ba08f81SStefan Eßer 035 'h' 'H' bs bs 'h' 'H' bs bs C 67*7ba08f81SStefan Eßer 036 'j' 'J' nl nl 'j' 'J' nl nl C 68*7ba08f81SStefan Eßer 037 'k' 'K' vt vt 'k' 'K' vt vt C 69*7ba08f81SStefan Eßer 038 'l' 'L' ff ff 'l' 'L' ff ff C 70*7ba08f81SStefan Eßer 039 0xe6 0xc6 nop nop 0x91 0x92 nop nop C 71*7ba08f81SStefan Eßer 040 0xf8 0xd8 nop nop 0x9b 0x9d nop nop C 72*7ba08f81SStefan Eßer 041 0x0153 0xa7 nop nop 0x0153 0xa7 nop nop O 73*7ba08f81SStefan Eßer 042 lshift lshift lshift lshift lshift lshift lshift lshift O 74*7ba08f81SStefan Eßer 043 ''' '*' nop nop ''' '*' nop nop O 75*7ba08f81SStefan Eßer 044 'z' 'Z' sub sub 'z' 'Z' sub sub C 76*7ba08f81SStefan Eßer 045 'x' 'X' can can 'x' 'X' can can C 77*7ba08f81SStefan Eßer 046 'c' 'C' etx etx 'c' 'C' etx etx C 78*7ba08f81SStefan Eßer 047 'v' 'V' syn syn 'v' 'V' syn syn C 79*7ba08f81SStefan Eßer 048 'b' 'B' stx stx 'b' 'B' stx stx C 80*7ba08f81SStefan Eßer 049 'n' 'N' so so 'n' 'N' so so C 81*7ba08f81SStefan Eßer 050 'm' 'M' cr cr 'm' 'M' cr cr C 82*7ba08f81SStefan Eßer 051 ',' ';' nop nop ',' ';' nop nop O 83*7ba08f81SStefan Eßer 052 '.' ':' nop nop '.' ':' nop nop O 84*7ba08f81SStefan Eßer 053 '-' '_' us us '-' '_' us us O 85*7ba08f81SStefan Eßer 054 rshift rshift rshift rshift rshift rshift rshift rshift O 86*7ba08f81SStefan Eßer 055 '*' '*' '*' '*' '*' '*' '*' '*' O 87*7ba08f81SStefan Eßer 056 lalt lalt lalt lalt lalt lalt lalt lalt O 88*7ba08f81SStefan Eßer 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O 89*7ba08f81SStefan Eßer 058 clock clock clock clock clock clock clock clock O 90*7ba08f81SStefan Eßer 059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O 91*7ba08f81SStefan Eßer 060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O 92*7ba08f81SStefan Eßer 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O 93*7ba08f81SStefan Eßer 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O 94*7ba08f81SStefan Eßer 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O 95*7ba08f81SStefan Eßer 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O 96*7ba08f81SStefan Eßer 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O 97*7ba08f81SStefan Eßer 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O 98*7ba08f81SStefan Eßer 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O 99*7ba08f81SStefan Eßer 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O 100*7ba08f81SStefan Eßer 069 nlock nlock nlock nlock nlock nlock nlock nlock O 101*7ba08f81SStefan Eßer 070 slock slock slock slock slock slock slock slock O 102*7ba08f81SStefan Eßer 071 fkey49 '7' '7' '7' '7' '7' '7' '7' N 103*7ba08f81SStefan Eßer 072 fkey50 '8' '8' '8' '8' '8' '8' '8' N 104*7ba08f81SStefan Eßer 073 fkey51 '9' '9' '9' '9' '9' '9' '9' N 105*7ba08f81SStefan Eßer 074 fkey52 '-' '-' '-' '-' '-' '-' '-' N 106*7ba08f81SStefan Eßer 075 fkey53 '4' '4' '4' '4' '4' '4' '4' N 107*7ba08f81SStefan Eßer 076 fkey54 '5' '5' '5' '5' '5' '5' '5' N 108*7ba08f81SStefan Eßer 077 fkey55 '6' '6' '6' '6' '6' '6' '6' N 109*7ba08f81SStefan Eßer 078 fkey56 '+' '+' '+' '+' '+' '+' '+' N 110*7ba08f81SStefan Eßer 079 fkey57 '1' '1' '1' '1' '1' '1' '1' N 111*7ba08f81SStefan Eßer 080 fkey58 '2' '2' '2' '2' '2' '2' '2' N 112*7ba08f81SStefan Eßer 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N 113*7ba08f81SStefan Eßer 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N 114*7ba08f81SStefan Eßer 083 del '.' '.' '.' '.' '.' boot boot N 115*7ba08f81SStefan Eßer 084 nop nop nop nop nop nop nop nop O 116*7ba08f81SStefan Eßer 085 nop nop nop nop nop nop nop nop O 117*7ba08f81SStefan Eßer 086 '<' '>' fs fs '\' '>' fs fs O 118*7ba08f81SStefan Eßer 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O 119*7ba08f81SStefan Eßer 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O 120*7ba08f81SStefan Eßer 089 cr cr nl nl cr cr nl nl O 121*7ba08f81SStefan Eßer 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O 122*7ba08f81SStefan Eßer 091 '/' '/' '/' '/' '/' '/' '/' '/' O 123*7ba08f81SStefan Eßer 092 nscr pscr debug debug nop nop nop nop O 124*7ba08f81SStefan Eßer 093 ralt ralt ralt ralt ralt ralt ralt ralt O 125*7ba08f81SStefan Eßer 094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O 126*7ba08f81SStefan Eßer 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O 127*7ba08f81SStefan Eßer 096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O 128*7ba08f81SStefan Eßer 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O 129*7ba08f81SStefan Eßer 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O 130*7ba08f81SStefan Eßer 099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O 131*7ba08f81SStefan Eßer 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O 132*7ba08f81SStefan Eßer 101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O 133*7ba08f81SStefan Eßer 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O 134*7ba08f81SStefan Eßer 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O 135*7ba08f81SStefan Eßer 104 slock saver slock saver susp nop susp nop O 136*7ba08f81SStefan Eßer 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O 137*7ba08f81SStefan Eßer 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O 138*7ba08f81SStefan Eßer 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O 139*7ba08f81SStefan Eßer 108 nop nop nop nop nop nop nop nop O 140*7ba08f81SStefan Eßer 141*7ba08f81SStefan Eßer duml '"' ( 'a' 0xe4 ) ( 'A' 0xc4 ) ( 'e' 0xeb ) ( 'E' 0xcb ) 142*7ba08f81SStefan Eßer ( 'i' 0xef ) ( 'I' 0xcf ) ( 'o' 0xf6 ) ( 'O' 0xd6 ) 143*7ba08f81SStefan Eßer ( 'u' 0xfc ) ( 'U' 0xdc ) ( 'y' 0xff ) 144*7ba08f81SStefan Eßer 145*7ba08f81SStefan Eßer dcir '^' ( 'a' 0xe2 ) ( 'A' 0xc2 ) ( 'e' 0xea ) ( 'E' 0xca ) 146*7ba08f81SStefan Eßer ( 'i' 0xee ) ( 'I' 0xce ) ( 'o' 0xf4 ) ( 'O' 0xd4 ) 147*7ba08f81SStefan Eßer ( 'u' 0xfb ) ( 'U' 0xdb ) 148*7ba08f81SStefan Eßer 149*7ba08f81SStefan Eßer dtil '~' ( 'a' 0xe3 ) ( 'A' 0xc3 ) ( 'n' 0xf1 ) ( 'N' 0xd1 ) 150*7ba08f81SStefan Eßer ( 'o' 0xf5 ) ( 'O' 0xd5 ) 151*7ba08f81SStefan Eßer 152*7ba08f81SStefan Eßer dgra '`' ( 'a' 0xe0 ) ( 'A' 0xc0 ) ( 'e' 0xe8 ) ( 'E' 0xc8 ) 153*7ba08f81SStefan Eßer ( 'i' 0xec ) ( 'I' 0xcc ) ( 'o' 0xf2 ) ( 'O' 0xd2 ) 154*7ba08f81SStefan Eßer ( 'u' 0xf9 ) ( 'U' 0xd9 ) 155*7ba08f81SStefan Eßer 156*7ba08f81SStefan Eßer dacu 0xb4 ( 'a' 0xe1 ) ( 'A' 0xc1 ) ( 'e' 0xe9 ) ( 'E' 0xc9 ) 157*7ba08f81SStefan Eßer ( 'i' 0xed ) ( 'I' 0xcd ) ( 'o' 0xf3 ) ( 'O' 0xd3 ) 158*7ba08f81SStefan Eßer ( 'u' 0xfa ) ( 'U' 0xda ) ( 'y' 0xfd ) ( 'Y' 0xdd ) 159*7ba08f81SStefan Eßer 160*7ba08f81SStefan Eßer drin 0xb0 ( 'a' 0xe5 ) ( 'A' 0xc5 ) 161*7ba08f81SStefan Eßer 162*7ba08f81SStefan Eßer dced 0xb8 ( 'c' 0xe7 ) ( 'C' 0xc7 ) 163