Leaked source code of windows server 2003
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.

139 lines
4.9 KiB

  1. .XLIST
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;
  4. ;; (C) Copyright Microsoft Corp. 1987-1990
  5. ;; MS-DOS 5.00 - NLS Support - KEYB Command
  6. ;;
  7. ;; File Name: KEYBSYS.INC
  8. ;; ----------
  9. ;;
  10. ;; Root File Name: KEYB.ASM
  11. ;; ---------------
  12. ;;
  13. ;; Description:
  14. ;; ------------
  15. ;; Include file containing structure definitions and equates
  16. ;; for the KEYBOARD.SYS file.
  17. ;;
  18. ;; Change History:
  19. ;; ---------------
  20. ;;
  21. ;;
  22. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  23. ;;
  24. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  25. ;; File header - contains pointers to keyboard tables for each language
  26. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  27. ;;
  28. KEYBSYS_HEADER STRUC ;;
  29. ;;
  30. KH_SIGNATURE DB 0FFh,'KEYB ' ;; signature
  31. KH_RESV_1 DB 8 DUP(0) ;; reserved
  32. KH_MAX_COM_SZ DW 0 ;AN000;**chg ;; maximum size of Common Xlat Sect
  33. KH_MAX_SPEC_SZ DW 0 ;AN000;;**chg ;; max size of Specific Xlat Sect
  34. KH_MAX_LOGIC_SZ DW 0 ;AN000;;**chg ;; max size of State Logic
  35. KH_RESV_2 Dw 0 ;AN000;;**chg ;; reserved CNS
  36. KH_NUM_ID Dw 0 ;AN000;;; ************* CNS
  37. KH_NUM_LANG DW 0 ;; number of languages
  38. KH_LANG_PTRS DB 0 ;; language pointers start here
  39. ;********************* CNS **********************
  40. ;KH_NUM_ID DW 0 ;; number of languages
  41. ;KH_ID_PTRS DB 0 ;; id pointers start here
  42. ;********************* CNS **********************
  43. KEYBSYS_HEADER ENDS ;;
  44. ;******************CNS*******************
  45. KEYBSYS_ID_PTRS STRUC
  46. KP_ID_CODE DW 0 ;AN000;
  47. KP_LANG_PTR DD 0 ;AN000;
  48. KEYBSYS_ID_PTRS ENDS
  49. ;;
  50. ;*****************CNS********************
  51. KEYBSYS_LANG_PTRS STRUC ;;
  52. ;; Next two entries repeat:
  53. KP_LANG_CODE DW 0 ;; language code
  54. KP_ENTRY_PTR DD 0 ;; language entry pointer
  55. ;;
  56. KEYBSYS_LANG_PTRS ENDS ;;
  57. ;;
  58. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  59. ;; Language Entry - pointed to by KH_ENTRY_PTR in KEYBSYS_HEADER
  60. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  61. ;;
  62. KEYBSYS_LANG_ENTRY STRUC ;;
  63. ;;
  64. KL_LANG_CODE DW 'XX' ;; language code
  65. KL_ID_CODE DW 0 ;; reserved (ID CODE)
  66. KL_LOGIC_PTR DD 0 ;AC000;;**chg ;; State Logic pointer
  67. KL_NUM_ID DB 0 ;AN000;;CNS ;; number of valid IDs for this lang
  68. KL_NUM_CP DB 0 ;; number of valid CPs for this lang
  69. KL_CP_PTRS DB 0 ;; CP table pointers start here
  70. ;;
  71. KEYBSYS_LANG_ENTRY ENDS ;;
  72. ;;
  73. KEYBSYS_CP_PTRS STRUC ;;
  74. ;; Next two entries repeat:
  75. KC_CODE_PAGE DW 0 ;; code page
  76. KC_ENTRY_PTR DD 0 ;; ptr to Specific Translate Section
  77. ;;
  78. KEYBSYS_CP_PTRS ENDS ;;
  79. ;;
  80. ;;
  81. ;; Everything from here down is new
  82. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  83. ;; State Logic - pointed to by KL_LOGIC_PTR in KEYBSYS_LANG_ENTRY
  84. ;; Common Translate Section follows immediately after the State Logic.
  85. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  86. ;;
  87. KEYBSYS_STATE_LOGIC STRUC ;;
  88. ;;
  89. KT_LOGIC_LEN DW ? ;; length of state logic
  90. KT_SPECIAL_FEATURES DW ? ;; Special Features (see KEYBSHAR.INC)
  91. KT_LOGIC_CMDS DB 0 ;; state logic commands begin here
  92. ;;
  93. KEYBSYS_STATE_LOGIC ENDS ;;
  94. ;;
  95. ;;
  96. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  97. ;; Translate Section - Common and Specific Translate Sections
  98. ;; are both in this form.
  99. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  100. ;;
  101. KEYBSYS_XLAT_SECT STRUC ;;
  102. ;;
  103. KX_SECTION_LEN DW ? ;; Length of this section
  104. KX_CP_ID DW ? ;; code page id
  105. KX_FIRST_STATE DB ? ;;
  106. ;;
  107. KEYBSYS_XLAT_SECT ENDS ;;
  108. ;;
  109. ;;
  110. KEYBSYS_STATE STRUC ;;
  111. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  112. ;; Translate Sections contains multiple States.
  113. ;; A State contains the translate tables for a single
  114. ;; shift state (IE lower case, upper case ....)
  115. ;; The last State is a null State containing only the
  116. ;; KX_STATE_LEN field with a value of 0.
  117. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  118. KX_STATE_LEN DW ? ;; length of state section
  119. KX_STATE_ID DB ? ;; State ID
  120. KX_KBD_TYPE DW ? ;; Keyboard Type
  121. KX_ERROR_CHAR DW ? ;; Buffer entry for error character
  122. KX_FIRST_XLAT DB ? ;; XLAT tables begin here
  123. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  124. ;; Each State consists of multiple translate tables.
  125. ;; The last translate table within a state is a null
  126. ;; table containing only the
  127. ;; KX_XLAT_LEN field with a value of 0.
  128. ;; Refer to KEYBSHAR.INC for translate table format.
  129. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  130. ;;
  131. KEYBSYS_STATE ENDS ;;
  132. ;;
  133. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  134. .LIST