home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / console / ps2-to-riscpc < prev   
Encoding:
AWK Script  |  2006-07-06  |  1.9 KB  |  146 lines

  1. #! /usr/bin/awk -f
  2. # (C) 2001 Richard Atterer
  3. # Released under the GNU General Public License, version 2 or later
  4. #
  5. # i386 PS/2 keymap from stdin, output on stdout converted for Acorn RiscPC
  6.  
  7. BEGIN {
  8.   setMap_AcornRiscPC();
  9.   print "# Automatically converted from i386 to RiscPC keycodes";
  10.   print "";
  11. }
  12.  
  13. # Do not warn if definition is empty anyway
  14. /^[ \t]*keycode[ \t]+[0-9]+[ \t]*=[ \t]*$/ {
  15.   print "# " $0;
  16.   next;
  17. }
  18.  
  19. {
  20.   line = $0; outline = "";
  21.   while (match(line, /keycode[ \t]+[0-9]+/)) {
  22.     code = substr(line, RSTART+8, RLENGTH-8) + 0;
  23.     if (code in k) {
  24.       mapcode = k[code];
  25.     } else {
  26.       mapcode = unknownKey;
  27.       print FNR": Warning: Cannot map input code "code > "/dev/stderr"
  28.     }
  29.     outline = outline substr(line, 1, RSTART-1) \
  30.               sprintf("keycode %3d", mapcode);
  31.     line = substr(line, RSTART + RLENGTH);
  32.   }
  33.   outline = outline line;
  34.   print outline;
  35. }
  36.  
  37. # Acorn RiscPC
  38. function setMap_AcornRiscPC() {
  39. unknownKey=127
  40. k[1]=0
  41. k[59]=1
  42. k[60]=2
  43. k[61]=3
  44. k[62]=4
  45. k[63]=5
  46. k[64]=6
  47. k[65]=7
  48. k[66]=8
  49. k[67]=9
  50. k[68]=10
  51. k[87]=11
  52. k[88]=12
  53. k[99]=13
  54. k[70]=14
  55. k[119]=15
  56. k[41]=16
  57. k[2]=17
  58. k[3]=18
  59. k[4]=19
  60. k[5]=20
  61. k[6]=21
  62. k[7]=22
  63. k[8]=23
  64. k[9]=24
  65. k[10]=25
  66. k[11]=26
  67. k[12]=27
  68. k[13]=28
  69. k[14]=30
  70. k[110]=31
  71. k[102]=32
  72. k[104]=33
  73. k[69]=34
  74. k[98]=35
  75. k[55]=36
  76. k[74]=58
  77. k[15]=38
  78. k[16]=39
  79. k[17]=40
  80. k[18]=41
  81. k[19]=42
  82. k[20]=43
  83. k[21]=44
  84. k[22]=45
  85. k[23]=46
  86. k[24]=47
  87. k[25]=48
  88. k[26]=49
  89. k[27]=50
  90. k[28]=71
  91. k[111]=52
  92. k[107]=53
  93. k[109]=54
  94. k[71]=55
  95. k[72]=56
  96. k[73]=57
  97. k[78]=75
  98. k[58]=93
  99. k[30]=60
  100. k[31]=61
  101. k[32]=62
  102. k[33]=63
  103. k[34]=64
  104. k[35]=65
  105. k[36]=66
  106. k[37]=67
  107. k[38]=68
  108. k[39]=69
  109. k[40]=70
  110. k[43]=29
  111. k[75]=72
  112. k[76]=73
  113. k[77]=74
  114. k[42]=76
  115. k[86]=51
  116. k[44]=78
  117. k[45]=79
  118. k[46]=80
  119. k[47]=81
  120. k[48]=82
  121. k[49]=83
  122. k[50]=84
  123. k[51]=85
  124. k[52]=86
  125. k[53]=87
  126. k[54]=88
  127. k[103]=89
  128. k[79]=90
  129. k[80]=91
  130. k[81]=92
  131. k[96]=103
  132. k[29]=59
  133. k[56]=94
  134. k[57]=95
  135. k[100]=96
  136. k[97]=97
  137. k[105]=98
  138. k[108]=99
  139. k[106]=100
  140. k[82]=101
  141. k[83]=102
  142. k[125]=124
  143. k[126]=125
  144. k[127]=126
  145. }
  146.