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.

187 lines
4.1 KiB

  1. /* asmconf.h -- include file for microsoft 80x86 assembler
  2. **
  3. ** microsoft (r) macro assembler
  4. ** copyright (c) microsoft corp 1986. all rights reserved
  5. **
  6. ** randy nevin
  7. **
  8. ** Ported to NT by Jeff Spencer 12/90 (c-jeffs).
  9. */
  10. /*
  11. ** M8086OPT - When defined causes the 8086 optimized assembly
  12. ** language functions in asmhelp.asm to be used rather
  13. ** than the C version. This should not be defined when
  14. ** building for NT.
  15. **
  16. ** BCBOPT - MASM 5.10A used a cache to hold the source read
  17. ** from disk. Because of the complexity of this code
  18. ** and it's negligable speed improvement this
  19. ** functionality was not duplicated in the NT port of
  20. ** this code. The constant BCBOPT was used with the
  21. ** #ifdef preprocessor directive to remove code
  22. ** associated with the caching system. All code
  23. ** contained within BCBOPT segments is dead code.
  24. **
  25. ** OS2_2 - Should be defined when producing a version of
  26. ** masm to run on OS2 2.0.
  27. **
  28. ** OS2_NT - Should be defined when producing a version of
  29. ** masm to run on NT (any processor). (OS2_2 and
  30. ** OS2_NT should not be defined at the same time)
  31. **
  32. ** NOFLOAT - When defined disables the assembly of floating
  33. ** point constants. This is usefull when the library
  34. ** fuctions strtod and _strtold aren't available in
  35. ** the C library and this functionality of MASM isn't
  36. ** needed.
  37. **
  38. ** FIXCOMPILERBUG - When defined allows some ifdef's to go around
  39. ** some known compiler bugs. This include both CL386 and
  40. ** MIPS compiler bugs. (These have been reported but not
  41. ** fixed as of 12/5/90.)
  42. **
  43. ** XENIX - Once upon a time long, long ago was used to build for
  44. ** XENIX. I garentee this code is broken.
  45. ** XENIX286 - Dito.
  46. **
  47. ** MSDOS - Generates a hodge-podge of usefull code.
  48. ** This is automatically defined for OS2_NT and OS2_2.
  49. */
  50. #if defined OS2_2 || defined OS2_NT
  51. /* Do NOT specify M8086OPT */
  52. #define M8086 /* Select 8086 */
  53. #define MSDOS /* Allow usefull older code to be generated */
  54. #define FLATMODEL /* MASM to run under 32 bit flat model */
  55. #define NOFS /* Do not use far symbols */
  56. #define NOCODESIZE /* Don't force near/far mix on functions */
  57. #else
  58. #ifdef MSDOS /* Define MSDOS, XENIX286 from command line */
  59. #define M8086 /* Select 8086 if MSDOS or XENIX286 */
  60. #else
  61. #ifdef XENIX286
  62. #define M8086
  63. #endif
  64. #endif
  65. #endif
  66. #ifndef NOFS
  67. #define FS /* Default is Far symbols */
  68. #endif
  69. #ifndef NOV386
  70. #define V386 /* Default is 386 instructions */
  71. #endif
  72. #ifndef NOFCNDEF
  73. #define FCNDEF /* Default is parameter checking */
  74. #endif
  75. #ifndef NOCODESIZE
  76. #define CODESIZE near
  77. #else
  78. #define CODESIZE
  79. #endif
  80. /* The following defines are a function the prevoius defines */
  81. #if defined OS2_2 || defined OS2_NT
  82. # define DEF_X87 PX87
  83. # define DEF_CASE CASEU
  84. # define DEF_CPU P86
  85. # define DEF_FLTEMULATE FALSE
  86. # define FARIO
  87. #endif /* XENIX286 */
  88. #if defined XENIX286
  89. /* .286c and .287 are defaults */
  90. # define DEF_X87 PX287
  91. # define DEF_CASE CASEL
  92. # define DEF_CPU P286
  93. # define DEF_FLTEMULATE TRUE
  94. # define FARIO
  95. #endif
  96. #if !defined XENIX286 && !defined OS2_2 && !defined OS2_NT
  97. # define DEF_X87 PX87
  98. # define DEF_CASE CASEU
  99. # define DEF_CPU P86
  100. # define DEF_FLTEMULATE FALSE
  101. # define FARIO far
  102. #endif /* XENIX286 */
  103. #ifdef FLATMODEL
  104. # define FAR
  105. # define NEAR
  106. #else
  107. # define FAR far
  108. # define NEAR near
  109. #endif
  110. #ifdef FS
  111. # define FARSYM far
  112. #else
  113. # define FARSYM
  114. #endif
  115. #if defined FCNDEF && !defined FLATMODEL
  116. # define PASCAL pascal
  117. #else
  118. # define PASCAL
  119. #endif
  120. #define VOID void
  121. #define REG3
  122. #define REG4
  123. #define REG5
  124. #define REG6
  125. #define REG7
  126. #define REG8
  127. #define REG9
  128. #ifdef V386
  129. # define OFFSET unsigned long
  130. # define OFFSETMAX 0xffffffffL
  131. #else
  132. # define OFFSET unsigned int
  133. # define OFFSETMAX 0xffffL
  134. #endif
  135. #define SYMBOL struct symb
  136. #define DSCREC struct dscrec
  137. #define UCHAR unsigned char
  138. #define SCHAR signed char
  139. #define USHORT unsigned short
  140. #define SHORT signed short
  141. #define UINT unsigned int
  142. #define INT signed int
  143. #define TEXTSTR struct textstr
  144. #define PARAM struct param
  145. #define NAME struct idtext