Source:NetHack 3.2.0/pcconf.h
Revision as of 09:15, 4 March 2008 by Kernigh bot (talk | contribs) (NetHack 3.2.0/pcconf.h moved to Source:NetHack 3.2.0/pcconf.h: Robot: moved page)
Below is the full text to pcconf.h from the source code of NetHack 3.2.0. To link to a particular line, write [[NetHack 3.2.0/pcconf.h#line123]], for example.
Warning! This is the source code from an old release. For the latest release, see Source code
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.
1. /* SCCS Id: @(#)pcconf.h 3.2 95/10/11 */ 2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef PCCONF_H 6. #define PCCONF_H 7. 8. #define MICRO /* always define this! */ 9. 10. #ifdef MSDOS /* some of this material is MS-DOS specific */ 11. 12. /* 13. * Automatic Defines: 14. * 15. * __GO32__ is defined automatically by the djgpp port of gcc. 16. * __DJGPP__ is defined automatically by djgpp version 2 and above. 17. * _MSC_VER is defined automatically by Microsoft C. 18. * __BORLANDC__ is defined automatically by Borland C. 19. */ 20. 21. /* 22. * The following options are somewhat configurable depending on 23. * your compiler. 24. */ 25. 26. /* 27. * For pre-V7.0 Microsoft Compilers only, manually define OVERLAY here. 28. */ 29. 30. /*#define OVERLAY /* Manual overlay definition (MSC 6.0ax only) */ 31. 32. 33. # ifndef __GO32__ 34. # define MFLOPPY /* Support for floppy drives and ramdisks by dgk */ 35. # endif 36. 37. # define SHELL /* via exec of COMMAND.COM */ 38. 39. /* 40. * Music option 41. */ 42. 43. # ifdef __BORLANDC__ 44. #define PCMUSIC /* enable very basic pc speaker music notes */ 45. # endif 46. 47. /* 48. * Screen control options 49. * 50. * You may uncomment: 51. * ANSI_DEFAULT 52. * or TERMLIB 53. * or ANSI_DEFAULT and TERMLIB 54. * or NO_TERMS 55. */ 56. 57. /* # define TERMLIB /* enable use of termcap file /etc/termcap */ 58. /* or ./termcap for MSDOS (SAC) */ 59. /* compile and link in Fred Fish's termcap library, */ 60. /* enclosed in TERMCAP.ARC, to use this */ 61. 62. /* # define ANSI_DEFAULT /* allows NetHack to run without a ./termcap */ 63. 64. # define NO_TERMS /* Allows Nethack to run without ansi.sys by linking */ 65. /* screen routines into the .exe */ 66. 67. # ifdef NO_TERMS /* if NO_TERMS select one screen package below */ 68. #define SCREEN_BIOS /* Use bios calls for all screen control */ 69. /* #define SCREEN_DJGPPFAST /* Use djgpp fast screen routines */ 70. # endif 71. 72. 73. /* # define PC9800 /* Allows NetHack to run on NEC PC-9800 machines */ 74. /* Yamamoto Keizo */ 75. 76. 77. /* 78. * PC video hardware support options (for graphical tile support) 79. * 80. * You may uncomment any/all of the options below. 81. * 82. */ 83. # if (defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST)) && !defined(PC9800) 84. # ifdef USE_TILES 85. #define SCREEN_VGA /* Include VGA graphics routines in the build */ 86. # endif 87. # endif 88. 89. 90. # define RANDOM /* have Berkeley random(3) */ 91. 92. # define MAIL /* Allows for fake mail daemon to deliver mail */ 93. /* in the MSDOS version. (For AMIGA MAIL see */ 94. /* amiconf.h). In the future this will be the */ 95. /* hook for mail reader implementation. */ 96. 97. /* The following is needed for prototypes of certain functions */ 98. 99. #if defined(_MSC_VER) || defined(__BORLANDC__) 100. #include <process.h> /* Provides prototypes of exit(), spawn() */ 101. #endif 102. 103. #if defined(__BORLANDC__) && defined(STRNCMPI) 104. #include <string.h> /* Provides prototypes of strncmpi(), etc. */ 105. #endif 106. 107. #if defined(__DJGPP__) 108. #define _NAIVE_DOS_REGS 109. #include <stdlib.h> 110. #include <string.h> /* Provides prototypes of strncmpi(), etc. */ 111. #endif 112. 113. /* 114. * On the VMS and unix, this option controls whether a delay is done by 115. * the clock, or whether it is done by excess output. On the PC, however, 116. * there is always a clock to use for the delay. The TIMED_DELAY option 117. * on MSDOS (without the termcap routines) is used to determine whether to 118. * include the delay routines in the code (and thus, provides a compile time 119. * method to turn off napping for visual effect). However, it is also used 120. * in the music code to wait between different notes. So it is needed in that 121. * case as well. 122. 123. * Whereas on the VMS and unix, flags.nap is a run-time option controlling 124. * whether there is a delay by clock or by excess output, on MSDOS it is 125. * simply a flag to turn on or off napping for visual effects at run-time. 126. */ 127. 128. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 129. 130. #ifdef PCMUSIC 131. #define TIMED_DELAY /* need it anyway */ 132. #endif 133. 134. 135. #endif /* MSDOS configuration stuff */ 136. 137. 138. #define PATHLEN 64 /* maximum pathlength */ 139. #define FILENAME 80 /* maximum filename length (conservative) */ 140. #ifndef MICRO_H 141. #include "micro.h" /* contains necessary externs for [os_name].c */ 142. #endif 143. 144. /* 145. * The remaining code shouldn't need modification. 146. */ 147. 148. #ifndef SYSTEM_H 149. #include "system.h" 150. #endif 151. 152. # ifdef MSDOS 153. # ifndef EXEPATH 154. #define EXEPATH /* HACKDIR is .exe location if not explicitly defined */ 155. # endif 156. # endif 157. 158. # if defined(_MSC_VER) && (_MSC_VER >= 700) 159. # ifndef MOVERLAY 160. #define MOVERLAY /* Microsoft's MOVE overlay system (MSC >= 7.0) */ 161. # endif 162. # endif 163. 164. /* __OVERLAY__ is automatically defined by Borland C if overlay option is on */ 165. # if defined(__BORLANDC__) && defined(__OVERLAY__) 166. # ifndef VROOMM 167. #define VROOMM /* Borland's VROOMM overlay system */ 168. # endif 169. # endif 170. 171. # if defined (__BORLANDC__) && !defined(STKSIZ) 172. #define STKSIZ 5*1024 /* Use a default of 5K stack for Borland C */ 173. /* This macro is used in any file that contains */ 174. /* a main() function. */ 175. # endif 176. 177. #ifndef index 178. # define index strchr 179. #endif 180. #ifndef rindex 181. # define rindex strrchr 182. #endif 183. 184. #ifndef AMIGA 185. #include <time.h> 186. #endif 187. 188. #ifdef RANDOM 189. /* Use the high quality random number routines. */ 190. # define Rand() random() 191. #else 192. # define Rand() rand() 193. #endif 194. 195. #ifndef TOS 196. # define FCMASK 0660 /* file creation mask */ 197. #endif 198. 199. #include <fcntl.h> 200. 201. #define exit msexit /* do chdir first */ 202. 203. #ifndef REDO 204. # undef Getchar 205. # define Getchar nhgetch 206. #endif 207. 208. #ifdef MSDOS 209. # define TEXTCOLOR /* */ 210. # define PORT_HELP "msdoshlp.txt" /* msdos port specific help file */ 211. #endif 212. 213. 214. /* Sanity check, do not modify these blocks. */ 215. 216. /* OVERLAY must be defined with MOVERLAY or VROOMM */ 217. #if defined(MOVERLAY) || defined(VROOMM) 218. # ifndef OVERLAY 219. # define OVERLAY 220. # endif 221. #endif 222. 223. #if defined(OVERLAY) && !defined(MOVERLAY) && !defined(VROOMM) 224. #define USE_TRAMPOLI 225. #endif 226. 227. #if defined(MSDOS) && defined(NO_TERMS) 228. # ifdef TERMLIB 229. # ifdef _MSC_VER 230. # pragma message("Warning -- TERMLIB defined with NO_TERMS in pcconf.h") 231. # pragma message(" Forcing undef of TERMLIB") 232. # endif 233. #undef TERMLIB 234. # endif 235. # ifdef ANSI_DEFAULT 236. # ifdef _MSC_VER 237. # pragma message("Warning -- ANSI_DEFAULT defined with NO_TERMS in pcconf.h") 238. # pragma message(" Forcing undef of ANSI_DEFAULT") 239. # endif 240. #undef ANSI_DEFAULT 241. # endif 242. /* only one screen package is allowed */ 243. # if defined(SCREEN_BIOS) && defined(SCREEN_DJGPPFAST) 244. # ifdef _MSC_VER 245. /* Microsoft C compiler */ 246. # pragma message("Warning -- More than one screen package defined in pcconf.h") 247. # endif 248. # if defined(_MSC_VER) || defined(__BORLANDC__) 249. # if defined(SCREEN_DJGPPFAST) 250. # ifdef _MSC_VER 251. # pragma message(" Forcing undef of SCREEN_DJGPPFAST") 252. # endif 253. #undef SCREEN_DJGPPFAST /* Can't use djgpp fast with other compilers anyway */ 254. # endif 255. # else 256. /* djgpp C compiler */ 257. # if defined(SCREEN_BIOS) 258. #undef SCREEN_BIOS 259. # endif 260. # endif 261. # endif 262. # define ASCIIGRAPH 263. # ifdef TEXTCOLOR 264. # define VIDEOSHADES 265. # endif 266. /* SCREEN_8514, SCREEN_VESA are only placeholders presently - sub VGA instead */ 267. # if defined(SCREEN_8514) || defined(SCREEN_VESA) 268. # undef SCREEN_8514 269. # undef SCREEN_VESA 270. # define SCREEN_VGA 271. # endif 272. /* Graphical tile sanity checks */ 273. # ifdef SCREEN_VGA 274. # define SIMULATE_CURSOR 275. # define POSITIONBAR 276. /* Select appropriate tile file format, and map size */ 277. # define PLANAR_FILE 278. # define SMALL_MAP 279. # endif 280. #endif /* End of sanity check block */ 281. 282. #if defined(MSDOS) && defined(DLB) 283. #define FILENAME_CMP stricmp /* case insensitive */ 284. #endif 285. 286. #ifdef MSC7_WARN /* define with cl /DMSC7_WARN */ 287. #pragma warning(disable:4131) 288. #endif 289. 290. #ifdef TIMED_DELAY 291. # ifdef __DJGPP__ 292. # define msleep(k) (void) usleep((k)*1000) 293. # endif 294. # ifdef __BORLANDC__ 295. # define msleep(k) delay(k) 296. # endif 297. #endif 298. 299. #endif /* PCCONF_H */