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