Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

531 lines
9.9 KiB

  1. /*************************************************************************
  2. This file contains the character tables used by the sorters throughout the
  3. compiler and runtime to ensure support for international characters in the
  4. ASCII set and consistency between the runtime and compiler. -- MATTSMI
  5. **************************************************************************/
  6. /* note: this scheme does not handle ligatures properly
  7. e.g. 'ae' is treated as if it were just an 'a'. */
  8. unsigned char mpchordNorm[] =
  9. {
  10. 0x00, /* 0x00 */
  11. 0x01, /* 0x01 */
  12. 0x02, /* 0x02 */
  13. 0x03, /* 0x03 */
  14. 0x04, /* 0x04 */
  15. 0x05, /* 0x05 */
  16. 0x06, /* 0x06 */
  17. 0x07, /* 0x07 */
  18. 0x08, /* 0x08 */
  19. 0x09, /* 0x09 */
  20. 0x0A, /* 0x0A */
  21. 0x0B, /* 0x0B */
  22. 0x0C, /* 0x0C */
  23. 0x0D, /* 0x0D */
  24. 0x0E, /* 0x0E */
  25. 0x0F, /* 0x0F */
  26. 0x10, /* 0x10 */
  27. 0x11, /* 0x11 */
  28. 0x12, /* 0x12 */
  29. 0x13, /* 0x13 */
  30. 0x14, /* 0x14 */
  31. 0x15, /* 0x15 */
  32. 0x16, /* 0x16 */
  33. 0x17, /* 0x17 */
  34. 0x18, /* 0x18 */
  35. 0x19, /* 0x19 */
  36. 0x1A, /* 0x1A */
  37. 0x1B, /* 0x1B */
  38. 0x1C, /* 0x1C */
  39. 0x1D, /* 0x1D */
  40. 0x1E, /* 0x1E */
  41. 0x1F, /* 0x1F */
  42. 0x20, /* ' ' */
  43. 0x21, /* '!' */
  44. 0x22, /* '"' */
  45. 0x23, /* '#' */
  46. 0x24, /* '$' */
  47. 0x25, /* '%' */
  48. 0x26, /* '&' */
  49. 0x27, /* ''' */
  50. 0x28, /* '(' */
  51. 0x29, /* ')' */
  52. 0x2A, /* '*' */
  53. 0x2B, /* '+' */
  54. 0x2C, /* ',' */
  55. 0x2D, /* '-' */
  56. 0x2E, /* '.' */
  57. 0x2F, /* '/' */
  58. 0x82, /* '0' */
  59. 0x83, /* '1' */
  60. 0x84, /* '2' */
  61. 0x85, /* '3' */
  62. 0x86, /* '4' */
  63. 0x87, /* '5' */
  64. 0x88, /* '6' */
  65. 0x89, /* '7' */
  66. 0x8A, /* '8' */
  67. 0x8B, /* '9' */
  68. 0x30, /* ':' */
  69. 0x31, /* ';' */
  70. 0x32, /* '<' */
  71. 0x33, /* '=' */
  72. 0x34, /* '>' */
  73. 0x35, /* '?' */
  74. 0x36, /* '@' */
  75. 0x8D, /* 'A' */
  76. 0x8F, /* 'B' */
  77. 0x91, /* 'C' */
  78. 0x93, /* 'D' */
  79. 0x95, /* 'E' */
  80. 0x97, /* 'F' */
  81. 0x99, /* 'G' */
  82. 0x9B, /* 'H' */
  83. 0x9D, /* 'I' */
  84. 0x9F, /* 'J' */
  85. 0xA1, /* 'K' */
  86. 0xA3, /* 'L' */
  87. 0xA5, /* 'M' */
  88. 0xA7, /* 'N' */
  89. 0xAB, /* 'O' */
  90. 0xAD, /* 'P' */
  91. 0xAF, /* 'Q' */
  92. 0xB1, /* 'R' */
  93. 0xB3, /* 'S' */
  94. 0xB6, /* 'T' */
  95. 0xB8, /* 'U' */
  96. 0xBA, /* 'V' */
  97. 0xBC, /* 'W' */
  98. 0xBE, /* 'X' */
  99. 0xC1, /* 'Y' */
  100. 0xC5, /* 'Z' */
  101. 0x37, /* '[' */
  102. 0x38, /* '\' */
  103. 0x39, /* ']' */
  104. 0x3A, /* '^' */
  105. 0x3B, /* '_' */
  106. 0x3C, /* '`' */
  107. 0x8D, /* 'a' */
  108. 0x8F, /* 'b' */
  109. 0x91, /* 'c' */
  110. 0x93, /* 'd' */
  111. 0x95, /* 'e' */
  112. 0x97, /* 'f' */
  113. 0x99, /* 'g' */
  114. 0x9B, /* 'h' */
  115. 0x9D, /* 'i' */
  116. 0x9F, /* 'j' */
  117. 0xA1, /* 'k' */
  118. 0xA3, /* 'l' */
  119. 0xA5, /* 'm' */
  120. 0xA7, /* 'n' */
  121. 0xAB, /* 'o' */
  122. 0xAD, /* 'p' */
  123. 0xAF, /* 'q' */
  124. 0xB1, /* 'r' */
  125. 0xB3, /* 's' */
  126. 0xB6, /* 't' */
  127. 0xB8, /* 'u' */
  128. 0xBA, /* 'v' */
  129. 0xBC, /* 'w' */
  130. 0xBE, /* 'x' */
  131. 0xC1, /* 'y' */
  132. 0xC5, /* 'z' */
  133. 0x3D, /* '{' */
  134. 0x3E, /* '|' */
  135. 0x3F, /* '}' */
  136. 0x40, /* '~' */
  137. 0x41, /* 0x7F */
  138. 0x42, /* 0x80 */
  139. 0x43, /* 0x81 */
  140. 0x44, /* 0x82 */
  141. 0x45, /* 0x83 */
  142. 0x46, /* 0x84 */
  143. 0x47, /* 0x85 */
  144. 0x48, /* 0x86 */
  145. 0x49, /* 0x87 */
  146. 0x4A, /* 0x88 */
  147. 0x4B, /* 0x89 */
  148. 0xB3, /* 0x8A */
  149. 0x4D, /* 0x8B */
  150. 0xAB, /* 0x8C */
  151. 0x4F, /* 0x8D */
  152. 0x50, /* 0x8E */
  153. 0x51, /* 0x8F */
  154. 0x52, /* 0x90 */
  155. 0x53, /* 0x91 */
  156. 0x54, /* 0x92 */
  157. 0x55, /* 0x93 */
  158. 0x56, /* 0x94 */
  159. 0x57, /* 0x95 */
  160. 0x58, /* 0x96 */
  161. 0x59, /* 0x97 */
  162. 0x5A, /* 0x98 */
  163. 0x5B, /* 0x99 */
  164. 0xB3, /* 0x9A */
  165. 0x5D, /* 0x9B */
  166. 0xAB, /* 0x9C */
  167. 0x5F, /* 0x9D */
  168. 0x60, /* 0x9E */
  169. 0xC1, /* 0x9F */
  170. 0x62, /* 0xA0 */
  171. 0x63, /* 0xA1 */
  172. 0x64, /* 0xA2 */
  173. 0x65, /* 0xA3 */
  174. 0x66, /* 0xA4 */
  175. 0x67, /* 0xA5 */
  176. 0x68, /* 0xA6 */
  177. 0x69, /* 0xA7 */
  178. 0x6A, /* 0xA8 */
  179. 0x6B, /* 0xA9 */
  180. 0x6C, /* 0xAA */
  181. 0x6D, /* 0xAB */
  182. 0x6E, /* 0xAC */
  183. 0x6F, /* 0xAD */
  184. 0x70, /* 0xAE */
  185. 0x71, /* 0xAF */
  186. 0x72, /* 0xB0 */
  187. 0x73, /* 0xB1 */
  188. 0x74, /* 0xB2 */
  189. 0x75, /* 0xB3 */
  190. 0x76, /* 0xB4 */
  191. 0x77, /* 0xB5 */
  192. 0x78, /* 0xB6 */
  193. 0x79, /* 0xB7 */
  194. 0x7A, /* 0xB8 */
  195. 0x7B, /* 0xB9 */
  196. 0x7C, /* 0xBA */
  197. 0x7D, /* 0xBB */
  198. 0x7E, /* 0xBC */
  199. 0x7F, /* 0xBD */
  200. 0x80, /* 0xBE */
  201. 0x81, /* 0xBF */
  202. 0x8D, /* 0xC0 */
  203. 0x8D, /* 0xC1 */
  204. 0x8D, /* 0xC2 */
  205. 0x8D, /* 0xC3 */
  206. 0x8D, /* 0xC4 */
  207. 0x8D, /* 0xC5 */
  208. 0x8D, /* 0xC6 */
  209. 0x91, /* 0xC7 */
  210. 0x95, /* 0xC8 */
  211. 0x95, /* 0xC9 */
  212. 0x95, /* 0xCA */
  213. 0x95, /* 0xCB */
  214. 0x9D, /* 0xCC */
  215. 0x9D, /* 0xCD */
  216. 0x9D, /* 0xCE */
  217. 0x9D, /* 0xCF */
  218. 0x93, /* 0xD0 */
  219. 0xA7, /* 0xD1 */
  220. 0xAB, /* 0xD2 */
  221. 0xAB, /* 0xD3 */
  222. 0xAB, /* 0xD4 */
  223. 0xAB, /* 0xD5 */
  224. 0xAB, /* 0xD6 */
  225. 0xAA, /* 0xD7 */
  226. 0xAB, /* 0xD8 */
  227. 0xB8, /* 0xD9 */
  228. 0xB8, /* 0xDA */
  229. 0xB8, /* 0xDB */
  230. 0xB8, /* 0xDC */
  231. 0xC1, /* 0xDD */
  232. 0xC6, /* 0xDE */
  233. 0xB4, /* 0xDF */
  234. 0x8D, /* 0xE0 */
  235. 0x8D, /* 0xE1 */
  236. 0x8D, /* 0xE2 */
  237. 0x8D, /* 0xE3 */
  238. 0x8D, /* 0xE4 */
  239. 0x8D, /* 0xE5 */
  240. 0x8D, /* 0xE6 */
  241. 0x91, /* 0xE7 */
  242. 0x95, /* 0xE8 */
  243. 0x95, /* 0xE9 */
  244. 0x95, /* 0xEA */
  245. 0x95, /* 0xEB */
  246. 0x9D, /* 0xEC */
  247. 0x9D, /* 0xED */
  248. 0x9D, /* 0xEE */
  249. 0x9D, /* 0xEF */
  250. 0x93, /* 0xF0 */
  251. 0xA7, /* 0xF1 */
  252. 0xAB, /* 0xF2 */
  253. 0xAB, /* 0xF3 */
  254. 0xAB, /* 0xF4 */
  255. 0xAB, /* 0xF5 */
  256. 0xAB, /* 0xF6 */
  257. 0xAB, /* 0xF7 */
  258. 0xAB, /* 0xF8 */
  259. 0xB8, /* 0xF9 */
  260. 0xB8, /* 0xFA */
  261. 0xB8, /* 0xFB */
  262. 0xB8, /* 0xFC */
  263. 0xC1, /* 0xFD */
  264. 0xC6, /* 0xFE */
  265. 0xC1, /* 0xFF */
  266. };
  267. unsigned char mpchordScan[] =
  268. {
  269. 0x00, /* 0x00 */
  270. 0x01, /* 0x01 */
  271. 0x02, /* 0x02 */
  272. 0x03, /* 0x03 */
  273. 0x04, /* 0x04 */
  274. 0x05, /* 0x05 */
  275. 0x06, /* 0x06 */
  276. 0x07, /* 0x07 */
  277. 0x08, /* 0x08 */
  278. 0x09, /* 0x09 */
  279. 0x0A, /* 0x0A */
  280. 0x0B, /* 0x0B */
  281. 0x0C, /* 0x0C */
  282. 0x0D, /* 0x0D */
  283. 0x0E, /* 0x0E */
  284. 0x0F, /* 0x0F */
  285. 0x10, /* 0x10 */
  286. 0x11, /* 0x11 */
  287. 0x12, /* 0x12 */
  288. 0x13, /* 0x13 */
  289. 0x14, /* 0x14 */
  290. 0x15, /* 0x15 */
  291. 0x16, /* 0x16 */
  292. 0x17, /* 0x17 */
  293. 0x18, /* 0x18 */
  294. 0x19, /* 0x19 */
  295. 0x1A, /* 0x1A */
  296. 0x1B, /* 0x1B */
  297. 0x1C, /* 0x1C */
  298. 0x1D, /* 0x1D */
  299. 0x1E, /* 0x1E */
  300. 0x1F, /* 0x1F */
  301. 0x20, /* ' ' */
  302. 0x21, /* '!' */
  303. 0x22, /* '"' */
  304. 0x23, /* '#' */
  305. 0x24, /* '$' */
  306. 0x25, /* '%' */
  307. 0x26, /* '&' */
  308. 0x27, /* ''' */
  309. 0x28, /* '(' */
  310. 0x29, /* ')' */
  311. 0x2A, /* '*' */
  312. 0x2B, /* '+' */
  313. 0x2C, /* ',' */
  314. 0x2D, /* '-' */
  315. 0x2E, /* '.' */
  316. 0x2F, /* '/' */
  317. 0x82, /* '0' */
  318. 0x83, /* '1' */
  319. 0x84, /* '2' */
  320. 0x85, /* '3' */
  321. 0x86, /* '4' */
  322. 0x87, /* '5' */
  323. 0x88, /* '6' */
  324. 0x89, /* '7' */
  325. 0x8A, /* '8' */
  326. 0x8B, /* '9' */
  327. 0x30, /* ':' */
  328. 0x31, /* ';' */
  329. 0x32, /* '<' */
  330. 0x33, /* '=' */
  331. 0x34, /* '>' */
  332. 0x35, /* '?' */
  333. 0x36, /* '@' */
  334. 0x8D, /* 'A' */
  335. 0x8F, /* 'B' */
  336. 0x91, /* 'C' */
  337. 0x93, /* 'D' */
  338. 0x95, /* 'E' */
  339. 0x97, /* 'F' */
  340. 0x99, /* 'G' */
  341. 0x9B, /* 'H' */
  342. 0x9D, /* 'I' */
  343. 0x9F, /* 'J' */
  344. 0xA1, /* 'K' */
  345. 0xA3, /* 'L' */
  346. 0xA5, /* 'M' */
  347. 0xA7, /* 'N' */
  348. 0xAB, /* 'O' */
  349. 0xAD, /* 'P' */
  350. 0xAF, /* 'Q' */
  351. 0xB1, /* 'R' */
  352. 0xB3, /* 'S' */
  353. 0xB6, /* 'T' */
  354. 0xB8, /* 'U' */
  355. 0xBA, /* 'V' */
  356. 0xBC, /* 'W' */
  357. 0xBE, /* 'X' */
  358. 0xC1, /* 'Y' */
  359. 0xC5, /* 'Z' */
  360. 0x37, /* '[' */
  361. 0x38, /* '\' */
  362. 0x39, /* ']' */
  363. 0x3A, /* '^' */
  364. 0x3B, /* '_' */
  365. 0x3C, /* '`' */
  366. 0x8D, /* 'a' */
  367. 0x8F, /* 'b' */
  368. 0x91, /* 'c' */
  369. 0x93, /* 'd' */
  370. 0x95, /* 'e' */
  371. 0x97, /* 'f' */
  372. 0x99, /* 'g' */
  373. 0x9B, /* 'h' */
  374. 0x9D, /* 'i' */
  375. 0x9F, /* 'j' */
  376. 0xA1, /* 'k' */
  377. 0xA3, /* 'l' */
  378. 0xA5, /* 'm' */
  379. 0xA7, /* 'n' */
  380. 0xAB, /* 'o' */
  381. 0xAD, /* 'p' */
  382. 0xAF, /* 'q' */
  383. 0xB1, /* 'r' */
  384. 0xB3, /* 's' */
  385. 0xB6, /* 't' */
  386. 0xB8, /* 'u' */
  387. 0xBA, /* 'v' */
  388. 0xBC, /* 'w' */
  389. 0xBE, /* 'x' */
  390. 0xC1, /* 'y' */
  391. 0xC5, /* 'z' */
  392. 0x3D, /* '{' */
  393. 0x3E, /* '|' */
  394. 0x3F, /* '}' */
  395. 0x40, /* '~' */
  396. 0x41, /* 0x7F */
  397. 0x42, /* 0x80 */
  398. 0x43, /* 0x81 */
  399. 0x44, /* 0x82 */
  400. 0x45, /* 0x83 */
  401. 0x46, /* 0x84 */
  402. 0x47, /* 0x85 */
  403. 0x48, /* 0x86 */
  404. 0x49, /* 0x87 */
  405. 0x4A, /* 0x88 */
  406. 0x4B, /* 0x89 */
  407. 0x4B, /* 0x8A */
  408. 0x4D, /* 0x8B */
  409. 0x4E, /* 0x8C */
  410. 0x4F, /* 0x8D */
  411. 0x50, /* 0x8E */
  412. 0x51, /* 0x8F */
  413. 0x52, /* 0x90 */
  414. 0x53, /* 0x91 */
  415. 0x54, /* 0x92 */
  416. 0x55, /* 0x93 */
  417. 0x56, /* 0x94 */
  418. 0x57, /* 0x95 */
  419. 0x58, /* 0x96 */
  420. 0x59, /* 0x97 */
  421. 0x5A, /* 0x98 */
  422. 0x5B, /* 0x99 */
  423. 0x5C, /* 0x9A */
  424. 0x5D, /* 0x9B */
  425. 0x5E, /* 0x9C */
  426. 0x5F, /* 0x9D */
  427. 0x60, /* 0x9E */
  428. 0x61, /* 0x9F */
  429. 0x62, /* 0xA0 */
  430. 0x63, /* 0xA1 */
  431. 0x64, /* 0xA2 */
  432. 0x65, /* 0xA3 */
  433. 0x66, /* 0xA4 */
  434. 0x67, /* 0xA5 */
  435. 0x68, /* 0xA6 */
  436. 0x69, /* 0xA7 */
  437. 0x6A, /* 0xA8 */
  438. 0x6B, /* 0xA9 */
  439. 0x6C, /* 0xAA */
  440. 0x6D, /* 0xAB */
  441. 0x6E, /* 0xAC */
  442. 0x6F, /* 0xAD */
  443. 0x70, /* 0xAE */
  444. 0x71, /* 0xAF */
  445. 0x72, /* 0xB0 */
  446. 0x73, /* 0xB1 */
  447. 0x74, /* 0xB2 */
  448. 0x75, /* 0xB3 */
  449. 0x76, /* 0xB4 */
  450. 0x77, /* 0xB5 */
  451. 0x78, /* 0xB6 */
  452. 0x79, /* 0xB7 */
  453. 0x7A, /* 0xB8 */
  454. 0x7B, /* 0xB9 */
  455. 0x7C, /* 0xBA */
  456. 0x7D, /* 0xBB */
  457. 0x7E, /* 0xBC */
  458. 0x7F, /* 0xBD */
  459. 0x80, /* 0xBE */
  460. 0x81, /* 0xBF */
  461. 0x8D, /* 0xC0 */
  462. 0x8D, /* 0xC1 */
  463. 0x8D, /* 0xC2 */
  464. 0x8D, /* 0xC3 */
  465. 0xCF, /* 0xC4 */
  466. 0xCD, /* 0xC5 */
  467. 0xC9, /* 0xC6 */
  468. 0x91, /* 0xC7 */
  469. 0x95, /* 0xC8 */
  470. 0x95, /* 0xC9 */
  471. 0x95, /* 0xCA */
  472. 0x95, /* 0xCB */
  473. 0x9D, /* 0xCC */
  474. 0x9D, /* 0xCD */
  475. 0x9D, /* 0xCE */
  476. 0x9D, /* 0xCF */
  477. 0x93, /* 0xD0 */
  478. 0xA9, /* 0xD1 */
  479. 0xAB, /* 0xD2 */
  480. 0xAB, /* 0xD3 */
  481. 0xAB, /* 0xD4 */
  482. 0xAB, /* 0xD5 */
  483. 0xD1, /* 0xD6 */
  484. 0xAA, /* 0xD7 */
  485. 0xCB, /* 0xD8 */
  486. 0xB8, /* 0xD9 */
  487. 0xB8, /* 0xDA */
  488. 0xB8, /* 0xDB */
  489. 0xB8, /* 0xDC */
  490. 0xC2, /* 0xDD */
  491. 0xC7, /* 0xDE */
  492. 0xB4, /* 0xDF */
  493. 0x8D, /* 0xE0 */
  494. 0x8D, /* 0xE1 */
  495. 0x8D, /* 0xE2 */
  496. 0x8D, /* 0xE3 */
  497. 0xCF, /* 0xE4 */
  498. 0xCD, /* 0xE5 */
  499. 0xC9, /* 0xE6 */
  500. 0x91, /* 0xE7 */
  501. 0x95, /* 0xE8 */
  502. 0x95, /* 0xE9 */
  503. 0x95, /* 0xEA */
  504. 0x95, /* 0xEB */
  505. 0x9D, /* 0xEC */
  506. 0x9D, /* 0xED */
  507. 0x9D, /* 0xEE */
  508. 0x9D, /* 0xEF */
  509. 0x93, /* 0xF0 */
  510. 0xA9, /* 0xF1 */
  511. 0xAB, /* 0xF2 */
  512. 0xAB, /* 0xF3 */
  513. 0xAB, /* 0xF4 */
  514. 0xAB, /* 0xF5 */
  515. 0xD1, /* 0xF6 */
  516. 0xAB, /* 0xF7 */
  517. 0xCB, /* 0xF8 */
  518. 0xB8, /* 0xF9 */
  519. 0xB8, /* 0xFA */
  520. 0xB8, /* 0xFB */
  521. 0xB8, /* 0xFC */
  522. 0xC2, /* 0xFD */
  523. 0xC7, /* 0xFE */
  524. 0xC3, /* 0xFF */
  525. };