Source: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.

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 	/* Provides prototypes of exit, spawn      */ 106. #endif 107.  108.  #if defined(__BORLANDC__) && defined(STRNCMPI) 109. #include 	/* Provides prototypes of strncmpi, etc.     */ 110. #endif 111.  112.  #if defined(__DJGPP__) 113. #define _NAIVE_DOS_REGS 114. #include   115. #include 	/* 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  /* close, etc. */ 164. /* lock in io.h interferes with lock[] in decl.h */ 165. #define lock djlock 166. #include   167. #undef lock 168. #include  /* 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   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   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 */