Source:NetHack 3.2.0/vmsconf.h

Below is the full text to vmsconf.h from the source code of NetHack 3.2.0. To link to a particular line, write [[NetHack 3.2.0/vmsconf.h#line123 ]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

1.   /*	SCCS Id: @(#)vmsconf.h	3.2	96/03/02	*/ 2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3.    /* NetHack may be freely redistributed. See license for details. */ 4.     5.    #ifdef VMS 6.   #ifndef VMSCONF_H 7.   #define VMSCONF_H 8.    9.    /*  10.    * Edit these to choose values appropriate for your site. 11.   * WIZARD is the username allowed to use the debug option of nethack; no harm 12.   *   is done by leaving it as a username that doesn't exist at your site. 13.   * HACKDIR can be overridden at run-time with the logical name HACKDIR, as in  14. *  $ define hackdir disk$users:[games.nethack] 15.   * Trailing NULs are present in the default values in order to make some 16.   *   extra room for patching longer values into an existing executable. 17.   */  18.   #define Local_WIZARD	"NHWIZARD\0\0\0\0" 19.  #define Local_HACKDIR	"DISK$USERS:[GAMES.NETHACK.3-2-0.PLAY]\0\0\0\0\0\0\0\0" 20.   21.   /*  22.    * This section cleans up the stuff done in config.h so that it  23. * shouldn't need to be modified. It's conservative so that if 24. * config.h is actually edited, the changes won't impact us. 25.   */  26.   #ifdef UNIX 27.  # undef UNIX 28.  #endif 29.  #ifdef HACKDIR 30.  # undef HACKDIR 31.  #endif 32.  #ifdef WIZARD 33.  # undef WIZARD 34.  #endif 35.  #ifdef WIZARD_NAME 36.  # undef WIZARD_NAME 37.  #endif 38.  #define HACKDIR Local_HACKDIR 39.  #ifndef KR1ED 40.  # define WIZARD Local_WIZARD 41.  # define WIZARD_NAME WIZARD 42.  #else 43.  # define WIZARD 1 44.  # define WIZARD_NAME Local_WIZARD 45.  #endif 46.   47.   /* filenames require punctuation to avoid redirection via logical names */ 48.  #undef RECORD 49.  #define RECORD	"record;1"	/* scoreboard file (retains high scores) */ 50.  #undef LOGFILE 51.  #define LOGFILE	"logfile;0"	/* optional file (records all games) */ 52.   53.   #define HLOCK	"perm;1"	/* an empty file used for locking purposes */ 54.   55.   /* want compression--for level & save files--performed within NetHack itself */ 56.  #ifdef COMPRESS 57.  # undef COMPRESS 58.  #endif 59.  #ifndef INTERNAL_COMP 60.  # define INTERNAL_COMP 61.  #endif 62.   63.   /*  64.    * If nethack.exe will be installed with privilege so that the playground 65.   * won't need to be left unprotected, define SECURE to suppress a couple 66.   * of file protection fixups (protection of bones files and ownership of  67.    * save files). 68.   */  69.   /* #define SECURE /**/ 70.   71.   /*  72.    * Put the readonly data files into a single container rather than into 73.   * separate files in the playground directory. 74.   */  75.   #define DLB	/* use data librarian code */ 76.   77.   /*  78.    * You may define TEXTCOLOR if your system has any terminals that recognize 79.   * ANSI color sequences of the form ``[#;#m'', where the first # is  80. * a number between 40 and 47 represented background color, and the second 81.   * # is a number between 30 and 37 representing the foreground color. 82.   * GIGI terminals and DECterm windows on color VAXstations support these 83.   * color escape sequences, as do some 3rd party terminals and many micro 84.   * computers. 85.   */  86.   /* #define TEXTCOLOR /**/ 87.   88.   /*  89.    * If you define USE_QIO_INPUT, then you'll get raw characters from the 90.   * keyboard, not unlike those of the unix version of Nethack. This will 91.   * allow you to use the Escape key in normal gameplay, and the appropriate 92.   * control characters in Wizard mode. It will work most like the unix version. 93.   * It will also avoid " " being displayed when ^Y is pressed. 94.   *  95.    * Otherwise, the VMS SMG calls will be used. These calls block use of 96. * the escape key, as well as certain control keys, so gameplay is not 97.   * the same, although the differences are fairly negligible. You must 98.   * then use a VTxxx function key or two s to give an ESC response. 99.   */  100.  #define USE_QIO_INPUT	/* use SYS$QIOW instead of SMG$READ_KEYSTROKE */ 101.  102.  /*  103.   * Allow the user to decide whether to pause via timer or excess screen 104.  * output for various display effects like explosions and moving objects. 105.  */  106.  #define TIMED_DELAY	/* enable the `timed_delay' run-time option */ 107.  108.  /*  109.   * If you define MAIL, then NetHack will capture incoming broadcast 110.  * messages such as "New mail from so-and-so" and "Print job completed," 111.  * and then deliver them to the player. For mail and phone broadcasts 112.  * a scroll of mail will be created, which when read will cause NetHack 113.  * to prompt the player for a command to spawn in order to respond. The 114.  * latter capability will not be available if SHELL is disabled below. 115.  * If you undefine MAIL, broadcasts will go straight to the terminal, 116.  * resulting in disruption of the screen display; use  to redraw. 117.  */  118.  #define MAIL		/* enable broadcast trapping */ 119.  120.  /*  121.   * SHELL enables the player to 'escape' into a spawned subprocess via 122.  * the '!' command. Logout or attach back to the parent to resume play. 123.  * If the player attaches back to NetHack, then a subsequent escape will 124.  * re-attach to the existing subprocess. Any such subprocess left over 125.  * at game exit will be deleted by an exit handler. 126.  * SUSPEND enables someone running NetHack in a subprocess to reconnect 127.  * to the parent process with the  command; this is not very 128.  * close to Unix job control, but it's better than nothing. 129.  */  130.  #define SHELL		/* do not delete the '!' command */ 131. #define SUSPEND		/* don't delete the ^Z command, such as it is */ 132.  133.  #define RANDOM		/* use sys/share/random.c instead of vaxcrtl rand */ 134.  135.  #define FCMASK	0660	/* file creation mask */ 136.  137.  /*  138.   * The remainder of the file should not need to be changed. 139.  */  140.   141.  /* data librarian defs */ 142. #ifdef DLB 143. # define DLBFILE	"nh-data.dlb" 144. 	/*  145.  	 * Since we can do without case insensitive filename comparison, 146. 	 * avoid enabling it because that requires compiling and linking 147. 	 * src/hacklib into util/dlb_main. 148. 	 */  149.  /* # define FILENAME_CMP	strcmpi	/* case insensitive */ 150. #endif 151.  152.  #if defined(VAXC) && !defined(ANCIENT_VAXC) 153. # ifdef volatile 154. #  undef volatile 155. # endif 156. # ifdef const 157. #  undef const 158. # endif 159. #endif 160.  161.  #ifdef __DECC 162. # define STRICT_REF_DEF	/* used in lev_main.c */ 163. #endif 164. #ifdef STRICT_REF_DEF 165. # define DEFINE_OSPEED 166. #endif 167.  168.  #ifndef alloca 169. 	/* bison generated foo_yacc.c might try to use alloca */ 170. # ifdef __GNUC__ 171. #  define alloca __builtin_alloca 172. # else 173. #  define ALLOCA_HACK	/* used in util/panic.c */ 174. # endif 175. #endif 176.  177.  #ifdef _DECC_V4_SOURCE 178. /*  excludes some necessary typedefs when _DECC_V4_SOURCE is defined */ 179. #include   180. # ifndef __PID_T 181. # define __PID_T 182. typedef __pid_t pid_t; 183. # endif 184. # ifndef __UID_T 185. # define __UID_T 186. typedef __uid_t uid_t; 187. # endif 188. # ifndef __GID_T 189. # define __GID_T 190. typedef __gid_t gid_t; 191. # endif 192. #endif	/* _DECC_V4_SOURCE */ 193.  194.  #include   195. #if 0	/*  is missing for old gcc versions; skip it to save time */ 196. #include   197. #else	/* values needed from missing include file */ 198. # define O_RDONLY 0 199. # define O_WRONLY 1 200. # define O_RDWR   2 201. # define O_CREAT 0x200 202. # define O_TRUNC 0x400 203. #endif 204.  205.  #ifndef REDO 206. # define Getchar nhgetch 207. #endif 208. #define tgetch vms_getchar 209.  210.  #include "system.h"  211. 212. #define index	strchr 213. #define rindex	strrchr 214.  215.  /* Use the high quality random number routines. */ 216.  #if defined(RANDOM) 217. #define Rand	random 218. /* VMS V7 adds these entry points to DECC$SHR; stick with the nethack-supplied 219.    code to avoid having to deal with version-specific conditionalized builds */ 220. #define random		nh_random 221. #define srandom		nh_srandom 222. #define initstate	nh_initstate 223. #define setstate	nh_setstate 224. #else 225. #define Rand	rand 226. #endif 227.  228.  #ifndef __GNUC__ 229. #define bcopy(s,d,n)	memcpy((d),(s),(n))	/* vaxcrtl */ 230. #endif 231. #define abort		vms_abort		/* vmsmisc.c */ 232. #define creat(f,m)	vms_creat(f,m)		/* vmsfiles.c */ 233. #define exit(sts)	vms_exit(sts)		/* vmsmisc.c */ 234. #define getuid	vms_getuid		/* vmsunix.c */ 235. #define link(f1,f2)	vms_link(f1,f2)		/* vmsfiles.c */ 236. #define open(f,k,m)	vms_open(f,k,m)		/* vmsfiles.c */ 237. /* #define unlink(f0)	vms_unlink(f0)		/* vmsfiles.c */ 238. #ifdef VERYOLD_VMS 239. #define unlink(f0)	delete(f0)		/* vaxcrtl */ 240. #else 241. #define unlink(f0)	remove(f0)		/* vaxcrtl, decc$shr */ 242. #endif 243. #define C$$TRANSLATE(n)	c__translate(n)		/* vmsfiles.c */ 244.  245.  /* VMS global names are case insensitive... */ 246.  #define An vms_an 247. #define The vms_the 248. #define Shk_Your vms_shk_your 249.  250.  /* avoid global symbol in Alpha/VMS V1.5 STARLET library (link trouble) */ 251. #define ospeed vms_ospeed 252.  253.  /* used in several files which don't #include "extern.h" */ 254. extern void FDECL(vms_exit, (int)); 255. extern int FDECL(vms_open, (const char *,int,unsigned)); 256.  257.  #endif	/* VMSCONF_H */ 258. #endif	/* VMS */