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.

153 lines
6.2 KiB

  1. IF1 ;AN000;
  2. ;%OUT INCLUDING MSGHAN.INC...;AN000;
  3. ENDIF ;AN000;
  4. ;THIS IS A COMMONLY INCLUDED FILE, USED BY (AT LEAST) THE FOLLOWING COMPONENTS:
  5. ;TREE, GRAFTABL, DISKCOMP, DISKCOPY, COMP - WRITTEN OR Revised BY E.K.
  6. ; VALUES FOR THE MSG_DESC CONTROL BLOCK
  7. ONE_SUBS EQU 1 ;AN000;ONE VARIABLE FIELD IN MESSAGE
  8. TWO_SUBS EQU 2 ;AN000;TWO VARIABLE FIELDS IN MESSAGE
  9. THREE_SUBS EQU 3 ;AN000;THREE VARIABLE FIELDS IN MESSAGE
  10. CLASS_1 EQU EXT_ERR_CLASS ;AN000;CLASS 1 (DOS EXTENDED ERRORS)
  11. CLASS_2 EQU PARSE_ERR_CLASS ;AN000;CLASS 2 (PARSE ERRORS)
  12. CLASS_A EQU UTILITY_MSG_CLASS ;AN000;CLASS A TYPE MESSAGE
  13. ;THIS MESSAGE DESCRIPTOR CONTROL BLOCK IS GENERATED, ONE PER MESSAGE,
  14. ;TO DEFINE THE SEVERAL PARAMETERS THAT ARE EXPECTED TO BE PASSED IN
  15. ;CERTAIN REGISTERS WHEN THE SYSDISPMSG FUNCTION IS TO BE INVOKED.
  16. MSG_DESC STRUC ;AN000;
  17. MSG_NUM DW 0 ;AN000;MESSAGE NUMBER (TO AX)
  18. MSG_HANDLE DW STDOUT ;AN000;HANDLE OF OUTPUT DEVICE (TO BX)
  19. MSG_SUBLIST DW 0 ;AN000;POINTER TO SUBLIST (TO SI)
  20. MSG_COUNT DW 0 ;AN000;SUBSTITUTION COUNT (TO CX)
  21. MSG_CLASS DW CLASS_A SHL 8 ;AN000;MESSAGE CLASS (IN HIGH BYTE, TO DH)
  22. ; LOW BYTE HAS 0 (FUNCTION "NO INPUT", TO DL)
  23. MSG_DESC ENDS ;AN000;
  24. ; VALUES FOR THE SUBLIST CONTROL BLOCK
  25. PC_ID_0 EQU 0 ;AN000;ID OF " - " TRAILER TO MESSAGE
  26. PC_ID_1 EQU 1 ;AN000;ID OF PERCENT VARIABLE FIELD
  27. PC_ID_2 EQU 2 ;AN000;ID OF PERCENT VARIABLE FIELD
  28. PC_ID_3 EQU 3 ;AN000;ID OF PERCENT VARIABLE FIELD
  29. MAX_0 EQU 0 ;AN000;MAXIMUM WIDTH OF STRING FIELD (0=NO LIMIT)
  30. MIN_1 EQU 1 ;AN000;MINIMUM WIDTH OF STRING FIELD
  31. PAD_BLK EQU " " ;AN000;CHAR FOR PAD FIELD
  32. FILL_OFF EQU 0 ;AN000;TO BE REPLACED WITH ACTUAL OFFSET
  33. FILL_SEG EQU 0 ;AN000;TO BE REPLACED WITH ACTUAL SEG ID
  34. ;THIS SUBLIST CONTROL BLOCK, POINTED TO BY SI WHEN SYSDISPMSG IS CALLED
  35. ;FURTHER DESCRIBES THE MESSAGE AND THE VARIABLE FIELDS THE MSG MAY CONTAIN.
  36. ;THERE IS ONE OF THESE CONTROL BLOCKS PER VARIABLE FIELD. ADDITIONAL
  37. ;VARIABLE FIELDS ARE DEFINED IN ADDITIONAL "SUBLIST" CONTROL BLOCKS,
  38. ;CONSECUTIVE AND CONTIGUOUS WITH THIS ONE. THE NUMBER OF THESE CONTROL
  39. ;BLOCKS IS THE SUBSTITUTION COUNT, PASSED IN CS TO SYSDISPMSG, AS DEFINED
  40. ;IN THE ABOVE "MSC_DESC" CONTROL BLOCK.
  41. SUBLIST STRUC ;AN000;
  42. SUB_SIZE DB 11 ;AN000;SUBLIST SIZE (POINTER TO NEXT SUBLIST)
  43. SUB_RES DB 0 ;AN000;RESERVED
  44. ;NEXT FIELD IS TO BE USED AS A DOUBLE WORD
  45. SUB_VALUE DW 0 ;AN000;TIME, DATE, OR PTR TO DATA ITEM
  46. SUB_VALUE_SEG DW 0 ;AN000;SEG ID OF PTR
  47. ;(ABOVE FIELD MUST BE FILLED AT EXECUTION TIME
  48. ; IF THIS IS A .COM FILE)
  49. SUB_ID DB 0 ;AN000;N OF %N
  50. SUB_FLAGS DB 0 ;AN000;DATA TYPE FLAGS
  51. SUB_MAX_WIDTH DB MAX_0 ;AN000;MAXIMUM FIELD WIDTH (0=UNLIMITED)
  52. SUB_MIN_WIDTH DB 0 ;AN000;MINIMUM FIELD WIDTH
  53. SUB_PAD_CHAR DB PAD_BLK ;AN000;CHARACTER FOR PAD FIELD
  54. ; CAN BE " ", "0" OR ",".
  55. ; "," CAUSES INSERTION OF THE ACTIVE
  56. ; THOUSANDS SEPARATOR BETWEEN EVERY 3 DIGITS.
  57. SUBLIST ENDS ;AN000;
  58. ; BITS DEFINED FOR SUB_FLAGS ABOVE
  59. ; FORMAT = A0SSTTTT
  60. ; ++ + +--- FIELD TYPE
  61. ; || +--- DATA VARIABLE SIZE
  62. ; |+--- RESERVED, MUST BE ZERO
  63. ; +--- ALIGNMENT INDICATOR
  64. SF_BITS RECORD F_ALIGN:1,F_RES:1=0,F_SIZE:2,F_TYPE:4;AN000;
  65. ; F_ALIGN FIELD, ALIGNMENT INDICATOR
  66. SF_LEFT EQU 0 ;AN000;LEFT ALIGN
  67. SF_RIGHT EQU 1 ;AN000;RIGHT ALIGN
  68. ; F_RES FIELD, RESERVED, SHOULD BE ZERO
  69. ; F_TYPE FIELD, FIELD TYPE
  70. SF_CHAR EQU 0000B ;AN000;TYPE IS CHARACTER
  71. ; F_SIZE FIELD,
  72. SF_CH EQU 00B ;AN000;SINGLE CHARACTER
  73. SF_ASCIIZ EQU 01B ;AN000;ASCIIZ STRING
  74. ; F_TYPE FIELD, FIELD TYPE
  75. SF_UN_BD EQU 0001B ;AN000;UNSIGNED BINARY TO DECIMAL CHARACTER
  76. ; F_SIZE FIELD,
  77. SF_BYTE EQU 01B ;AN000;DATA IS BYTE SIZED
  78. SF_WORD EQU 10B ;AN000;DATA IS WORD SIZED
  79. SF_DWORD EQU 11B ;AN000;DATA IS DOUBLE WORD SIZED
  80. ; F_TYPE FIELD, FIELD TYPE
  81. SF_SIN_BD EQU 0010B ;AN000;SIGNED BINARY TO DECIMAL CHARACTER
  82. ; F_SIZE FIELD,
  83. ;SF_BYTE EQU 01B ;DATA IS BYTE SIZED
  84. ;SF_WORD EQU 10B ;DATA IS WORD SIZED
  85. ;SF_DWORD EQU 11B ;DATA IS DOUBLE WORD SIZED
  86. ; F_TYPE FIELD, FIELD TYPE
  87. SF_UN_BH EQU 0011B ;AN000;UNSIGNED BINARY TO HEXADECIMAL CHARACTER
  88. ; F_SIZE FIELD,
  89. ;SF_BYTE EQU 01B ;DATA IS BYTE SIZED
  90. ;SF_WORD EQU 10B ;DATA IS WORD SIZED
  91. ;SF_DWORD EQU 11B ;DATA IS DOUBLE WORD SIZED
  92. ; F_TYPE FIELD, FIELD TYPE
  93. SF_DATE EQU 0100B ;AN000;DATE TO CHARACTER,
  94. ; USING CURRENT COUNTRY FORMAT
  95. ;SUB_VALUE HIGH=YEAR
  96. ;SUB_VALUE LOW=MMDD
  97. ; F_SIZE FIELD,
  98. SF_MD EQU 01B ;AN000;MONTH AND DAY ONLY
  99. SF_MDY2 EQU 10B ;AN000;MONTH,DAY AND YEAR (2 DIGITS)
  100. SF_MDY4 EQU 11B ;AN000;MONTH,DAY AND YEAR (4 DIGITS)
  101. ; F_TYPE FIELD, FIELD TYPE
  102. SF_TIME_12 EQU 0101B ;AN000;TIME TO CHARACTER, 12 HOUR FORMAT
  103. ; USING CURRENT COUNTRY FORMAT
  104. ;SUB_VALUE HIGH=HHMM
  105. ;SUB_VALUE LOW=SSHH
  106. ; F_SIZE FIELD,
  107. SF_HHMM EQU 00B ;AN000;HH:MM (ACTIVE TIME FORMAT)
  108. SF_HHMMSS EQU 01B ;AN000;HH:MM:SS (ACTIVE TIME FORMAT)
  109. SF_HHMMSSHH EQU 10B ;AN000;HH:MM:SS:HH
  110. ; F_TYPE FIELD, FIELD TYPE
  111. SF_TIME_24 EQU 0110B ;AN000;TIME TO CHARACTER, 24 HOUR FORMAT
  112. ; USING CURRENT COUNTRY FORMAT
  113. ;SUB_VALUE HIGH=HHMM
  114. ;SUB_VALUE LOW=SSHH
  115. ; F_SIZE FIELD,
  116. ;SF_HHMM EQU 00B ;HH:MM (ACTIVE TIME FORMAT)
  117. ;SF_HHMMSS EQU 01B ;HH:MM:SS (ACTIVE TIME FORMAT)
  118. ;SF_HHMMSSHH EQU 10B ;HH:MM:SS:HH
  119. ; THE NEXT GROUP ARE ALL CLASS "1" MESSAGES
  120. PUBLIC MSGNUM_EXTERR;AN000;
  121. MSGNUM_EXTERR MSG_DESC <,STDERR,,,CLASS_1 SHL 8> ;AN000;ALL EXTENDED DOS ERRORS
  122. ;ERROR NUMBER WILL NEED TO BE FILLED IN
  123. ; THE NEXT GROUP ARE ALL CLASS "2" MESSAGES
  124. PUBLIC MSGNUM_PARSE ;AN000;SO PARSE DRIVER CAN FIND IT
  125. MSGNUM_PARSE MSG_DESC <,STDERR,,,CLASS_2 SHL 8> ;AN000;ALL PARSING ERRORS
  126. ;ERROR NUMBER WILL NEED TO BE FILLED IN
  127. ; THE NEXT GROUP ARE ALL CLASS "A" MESSAGES
  128. ; THESE ARE THE "CANNED" MESSAGES ALWAYS PRESENT
  129. PUBLIC MSGNUM_VER ;AN000;
  130. MSGNUM_VER MSG_DESC <1,STDERR> ;AN000;"Incorrect DOS Version"
  131. ;end of MSGHAN.INC
  132.