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.

133 lines
4.9 KiB

  1. page ,132 ; :ts=8
  2. TITLE Unicode Translation Descriptions
  3. ;----------------------------------------------------------------------------
  4. ; TITLE:
  5. ; UNI.INC
  6. ; Microsoft Confidential
  7. ; Copyright (C) Microsoft Corporation 1993
  8. ; All Rights Reserved.
  9. ;
  10. ; DESCRIPTION:
  11. ; The file contains the structures and equates used by the Unicode
  12. ; translation and parsing code.
  13. ;
  14. ; MODIFICATION HISTORY:
  15. ;----------------------------------------------------------------------------
  16. ;--------------------------------------------------------------------------
  17. ; Flags returned by UniToBCS, BCSToUni, UniToBCSPath, MapUniToBCS
  18. ; MapBCSToUni. The flags indicate whether a mapping from UNICODE
  19. ; to BCS, or BCS to UNICODE have lost information. This occurs
  20. ; whenever a char cannot be mapped.
  21. ;--------------------------------------------------------------------------
  22. MAP_FLAG_LOSS equ 00001h
  23. MAP_FLAG_TRUNCATE equ 00002h
  24. ;--------------------------------------------------------------------------
  25. ; Equates used to identify special character types
  26. ;--------------------------------------------------------------------------
  27. BCS_REPL_CHAR equ '_'
  28. UNI_REPL_CHAR equ 0fffdh
  29. ;--------------------------------------------------------------------------
  30. ; Equates used in the construction of auto-generated names
  31. ;--------------------------------------------------------------------------
  32. AUTO_BASIS_SEP equ '~'
  33. AUTO_MIN_TAIL equ 1
  34. AUTO_MAX_TAIL equ 9999999
  35. OEM_INDEX equ 1 ; Equate defining the entry in the translation
  36. ; table ptr array (utbPtrTable) to be used as
  37. ; the default OEM codepage when auto-generating
  38. ; short names.
  39. MAX_CHAR_SETS equ 2 ; Maximum # of entries in utbPtrTable array.
  40. ;--------------------------------------------------------------------------
  41. ; Auto-generation flags returned from CreateBasis()
  42. ;--------------------------------------------------------------------------
  43. UFLG_LOSS equ 00000010h
  44. UFLG_TRUNC equ 00000020h
  45. UFLG_UPCASE equ 00000040h
  46. ;--------------------------------------------------------------------------
  47. ; translation table structures
  48. ;--------------------------------------------------------------------------
  49. tTree struct
  50. Lnode dw ? ; Offset, relative to tTree[0], of the
  51. ; left child of this tree node.
  52. Rnode dw ? ; Offset, relative to tTree[0], of the
  53. ; right child of this tree node.
  54. Lval dw ? ; Value of the left-hand (ordinally low)
  55. ; inclusive endpoint of the encoding run
  56. ; represented by this tree node.
  57. Rval dw ? ; Value of the right-hand (ordinally high)
  58. ; inclusive endpoint of the encoding run
  59. ; represented by this tree node.
  60. RunOffset dd ? ; Offset, relative to tTree[0], of the start
  61. ; of the encoding run for this tree node.
  62. tTree ends
  63. ;--------------------------------------------------------------------------
  64. ; BCS->UNICODE mapping struct
  65. ;--------------------------------------------------------------------------
  66. btuTreeStruct struct
  67. btuCodeSize dd (256/32) dup (?)
  68. btuTree tTree <>
  69. btuTreeStruct ends
  70. ;--------------------------------------------------------------------------
  71. ; UNICODE->BCS mapping struct
  72. ;--------------------------------------------------------------------------
  73. utbTreeStruct struct
  74. utbTree tTree <>
  75. utbTreeStruct ends
  76. LAST_CASE_MAPPED_UNI_CHAR equ 0586h
  77. ;* Token values for the UniToUpperTable.
  78. NUL equ 0 ; nul terminator
  79. PTH equ 1 ; path separator (\ or /)
  80. INV equ 2 ; invalid character
  81. SPC equ 3 ; space
  82. STAR equ 4 ; asterisk (*)
  83. QUST equ 5 ; question mark (?)
  84. DOT equ 6 ; period (.) character
  85. OKL equ 7 ; OK in long names
  86. OKA equ 8 ; OK in all names
  87. LC_BASE equ 10
  88. L_1 equ LC_BASE
  89. L_2 equ LC_BASE + 1*2
  90. L20 equ LC_BASE + 2*2
  91. L26 equ LC_BASE + 3*2
  92. L2f equ LC_BASE + 4*2
  93. L30 equ LC_BASE + 5*2
  94. L36 equ LC_BASE + 6*2
  95. L39 equ LC_BASE + 7*2
  96. L3e equ LC_BASE + 8*2
  97. L3f equ LC_BASE + 9*2
  98. L40 equ LC_BASE + 10*2
  99. L4f equ LC_BASE + 11*2
  100. L50 equ LC_BASE + 12*2
  101. L56 equ LC_BASE + 13*2
  102. L8c equ LC_BASE + 14*2
  103. Lca equ LC_BASE + 15*2
  104. Lcb equ LC_BASE + 16*2
  105. Lcd equ LC_BASE + 17*2
  106. Lce equ LC_BASE + 18*2
  107. Lcf equ LC_BASE + 19*2
  108. Ld1 equ LC_BASE + 20*2
  109. Ld2 equ LC_BASE + 21*2
  110. Ld3 equ LC_BASE + 22*2
  111. Ld5 equ LC_BASE + 23*2
  112. Ld6 equ LC_BASE + 24*2
  113. Ld9 equ LC_BASE + 25*2
  114. Lda equ LC_BASE + 26*2
  115. Ldb equ LC_BASE + 27*2
  116. Le8 equ LC_BASE + 28*2
  117. Lff87 equ LC_BASE + 29*2