Wikia

Wikihack

Source:Vmsconf.h

2,032pages on
this wiki
Talk0

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

1.    /*	SCCS Id: @(#)vmsconf.h	3.4	2003/05/19	*/
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.    #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_4_X.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 ``<ESCAPE>[#;#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 "<interrupt>" 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 <escape>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 <ctrl/R> 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 <ctrl/Z> 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.  /*
139.   * The remainder of the file should not need to be changed.
140.   */
141.  
142.  /* data librarian defs */
143.  #ifdef DLB
144.  # define DLBFILE	"nh-data.dlb"
145.  	/*
146.  	 * Since we can do without case insensitive filename comparison,
147.  	 * avoid enabling it because that requires compiling and linking
148.  	 * src/hacklib into util/dlb_main.
149.  	 */
150.  /* # define FILENAME_CMP strcmpi */	/* case insensitive */
151.  #endif
152.  
153.  #if defined(VAXC) && !defined(ANCIENT_VAXC)
154.  # ifdef volatile
155.  #  undef volatile
156.  # endif
157.  # ifdef const
158.  #  undef const
159.  # endif
160.  #endif
161.  
162.  #ifdef __DECC
163.  # define STRICT_REF_DEF /* used in lev_main.c */
164.  #endif
165.  #ifdef STRICT_REF_DEF
166.  # define DEFINE_OSPEED
167.  #endif
168.  
169.  #ifndef alloca
170.  	/* bison generated foo_yacc.c might try to use alloca() */
171.  # ifdef __GNUC__
172.  #  define alloca __builtin_alloca
173.  # else
174.  #  define ALLOCA_HACK	/* used in util/panic.c */
175.  # endif
176.  #endif
177.  
178.  #ifdef _DECC_V4_SOURCE
179.  /* <types.h> excludes some necessary typedefs when _DECC_V4_SOURCE is defined */
180.  #include <types.h>
181.  # ifndef __PID_T
182.  # define __PID_T
183.  typedef __pid_t pid_t;
184.  # endif
185.  # ifndef __UID_T
186.  # define __UID_T
187.  typedef __uid_t uid_t;
188.  # endif
189.  # ifndef __GID_T
190.  # define __GID_T
191.  typedef __gid_t gid_t;
192.  # endif
193.  # ifndef __MODE_T
194.  # define __MODE_T
195.  typedef __mode_t mode_t;
196.  # endif
197.  #endif	/* _DECC_V4_SOURCE */
198.  
199.  #include <time.h>
200.  #if 0	/* <file.h> is missing for old gcc versions; skip it to save time */
201.  #include <file.h>
202.  #else	/* values needed from missing include file */
203.  # define O_RDONLY 0
204.  # define O_WRONLY 1
205.  # define O_RDWR   2
206.  # define O_CREAT 0x200
207.  # define O_TRUNC 0x400
208.  #endif
209.  
210.  #ifndef REDO
211.  # define Getchar nhgetch
212.  #endif
213.  #define tgetch vms_getchar
214.  
215.  #include "system.h"
216.  
217.  #define index	strchr
218.  #define rindex	strrchr
219.  
220.  /* Use the high quality random number routines. */
221.  #if defined(RANDOM)
222.  #define Rand()	random()
223.  /* VMS V7 adds these entry points to DECC$SHR; stick with the nethack-supplied
224.     code to avoid having to deal with version-specific conditionalized builds */
225.  #define random		nh_random
226.  #define srandom		nh_srandom
227.  #define initstate	nh_initstate
228.  #define setstate	nh_setstate
229.  #else
230.  #define Rand()	rand()
231.  #endif
232.  
233.  #ifndef __GNUC__
234.  # ifndef bcopy
235.  #define bcopy(s,d,n)	memcpy((d),(s),(n))	/* vaxcrtl */
236.  # endif
237.  #endif
238.  #define abort()		vms_abort()		/* vmsmisc.c */
239.  #define creat(f,m)	vms_creat(f,m)		/* vmsfiles.c */
240.  #define exit(sts)	vms_exit(sts)		/* vmsmisc.c */
241.  #define getuid()	vms_getuid()		/* vmsunix.c */
242.  #define link(f1,f2)	vms_link(f1,f2)		/* vmsfiles.c */
243.  #define open(f,k,m)	vms_open(f,k,m)		/* vmsfiles.c */
244.  /* #define unlink(f0)	vms_unlink(f0)		/* vmsfiles.c */
245.  #ifdef VERYOLD_VMS
246.  #define unlink(f0)	delete(f0)		/* vaxcrtl */
247.  #else
248.  #define unlink(f0)	remove(f0)		/* vaxcrtl, decc$shr */
249.  #endif
250.  #define C$$TRANSLATE(n) c__translate(n)		/* vmsfiles.c */
251.  
252.  /* VMS global names are case insensitive... */
253.  #define An vms_an
254.  #define The vms_the
255.  #define Shk_Your vms_shk_your
256.  
257.  /* avoid global symbol in Alpha/VMS V1.5 STARLET library (link trouble) */
258.  #define ospeed vms_ospeed
259.  
260.  /* used in several files which don't #include "extern.h" */
261.  extern void FDECL(vms_exit, (int));
262.  extern int FDECL(vms_open, (const char *,int,unsigned));
263.  
264.  #endif	/* VMSCONF_H */
265.  #endif	/* VMS */

Around Wikia's network

Random Wiki