1 Instructions for Installing NetHack 3.3.1 2 on a VMS system 3 ========================================= 4 50. Please read this entire file before trying to build or install 6 NetHack, then read it again! 7 81. Building NetHack requires a C compiler (either VAX C, DEC C, or GNU C) 9 and VMS version V4.6 or later (but see note #9). This release has been 10 tested on VAX/VMS V5.5-2 and V6.2, and Alpha/VMS V6.2 and V7.1. The 11 build procedure (vmsbuild.com) should not need to be modified; it accepts 12 an option for selecting the compiler, and it can detect different 13 versions which might require specific command qualifiers. Versions 14 of VAXC earlier than V2.3 will produce many warning messages (about 15 200 per source file; over to 25,000 total!), but NetHack has been 16 verified to compile, link, and execute correctly when built with VAXC 17 V2.2 using vmsbuild.com. There is also a set of Makefiles suitable 18 for use with MMS; they may or may not work with other make utilities. 19 202. Make sure all the NetHack files are in the appropriate directory 21 structure. You should set up a directory--referred to as "top" below 22 and in some of the assorted files, but which may be a subdirectory-- 23 that has these subdirectories 24 [.dat] -- data files 25 [.doc] -- documentation files 26 [.include] -- C header files 27 [.src] -- primary source files 28 [.sys] -- parent for [.sys.*] 29 [.sys .share] -- files shared by several ports, including VMS 30 [.sys .vms] -- VMS-specific source and support files 31 [.util] -- sources for essential utility programs 32 [.win] -- parent for [.win.*] 33 [.win .tty] -- "window" routines for ordinary terminals 34 (including terminal windows on workstations) 35 The following subdirectories may be present, but are not useful for 36 building NetHack on VMS and are not required: 37 [.sys .amiga] -- AmigaDOS 38 [.sys .amiga .splitter] 39 [.sys .atari] -- Atari TOS 40 [.sys .be] -- BeBox BeOS 41 [.sys .mac] -- Macintosh 42 [.sys .mac .old] 43 [.sys .msdos] -- MSDOS for IBM PCs and compatibles 44 [.sys .msdos .old] 45 [.sys .os2] -- OS/2 46 [.sys .share .sounds] -- AIFF format audio files 47 [.sys .unix] -- guess :-) 48 [.sys .winnt] -- Windows NT 49 [.win .gem] -- window routines for Atari/GEM 50 [.win .gnome] -- window routines for Unix/GNOME 51 [.win .Qt] -- window routines for Qt 52 [.win .share] -- "tile" graphic support 53 [.win .win32] -- Windows NT 54 [.win .X11] -- window routines for X-Windows; requires X11R4 55 or later and MIT's Athena Widget set 56 You must arrange things in this structure or the supplied procedures 57 and instructions in this file will not work properly. Several DCL 58 command files are present in the [.sys.vms] subdirectory and won't 59 work as intended if they're moved elsewhere. The file called Files 60 in the top directory contains lists of everything that should be in 61 each subdirectory, including things that are constructed as NetHack 62 is being built. (If you obtain the NetHack distribution via the 63 "shar" packaging used for Usenet newsgroup comp.sources.games and its 64 archives, you may have to reconstruct several files that get split 65 for posting.) 66 673. Prior to beginning compilation, go to the [.include] subdirectory and 68 edit vmsconf.h according to its comments. You should set Local_WIZARD 69 and Local_HACKDIR to appropriate values, and you might want to define 70 TEXTCOLOR if you have any color VAXstations or color terminals which 71 handle ANSI-format escape sequences to set foreground and background 72 color for text characters. (VT241/VT340 color graphics won't work.) 73 Other things which may be of interest are SECURE if you intend to 74 set up NetHack as an installed image which is granted privileges, and 75 SHELL which should be disabled if you intend to allow captive accounts 76 to run NetHack. You may also want to edit file config.h, but that's 77 only necessary if you want or need to disable some of the game options. 78 The distributed copy of config.h will work successfully on VMS; 79 vmsconf.h has conditional code to deal with the UNIX-specific items. 80 814. If you have the programming utilities lex or flex and yacc or bison, 82 you may edit the procedure [.sys.vms]spec_lev.com and execute it to 83 process several source files for NetHack's special level and dungeon 84 compilers. If you don't modify spec_lev.com, it will copy some 85 pre-processed versions of the appropriate files (dgn_lex.c, lev_lex.c, 86 dgn_yacc.c, lev_yacc.c, dgn_comp.h, and lev_comp.h) from [.sys.share] 87 into [.util]*.c and [.include]*.h. 88 $ @[.SYS.VMS]SPEC_LEV ![OPTIONAL] 89 If you perform this step, do it prior to executing vmsbuild.com; if 90 you don't perform this step, vmsbuild.com will do so for you. 91 925. To build NETHACK.EXE and its auxiliary programs, execute the 93 following DCL command: 94 $ @[.SYS.VMS]VMSBUILD !defaults to CC, either VAXC or DECC 95 or $ @[.SYS.VMS]VMSBUILD "GNUC" !force "GCC" 96 It can take quite a bit of time for a full build to complete. 97 vmsbuild.com will display some feedback as it executes; generally 98 this will be the name of each source file that's about to be compiled 99 or the name of the executable that has just been linked. 100 1016. If you have already started (or finished) a build and decide to start 102 over with a different compiler, you should DELETE [.SRC]CRTL.OPT;* 103 first. 104 1057. After compilation, it's time to perform installation. Go back to 106 the top directory. Either edit [.sys.vms]install.com to indicate 107 where you want everything to be installed, or specify the location 108 and "playground" owner on the command line. Then execute either 109 $ @[.SYS.VMS]INSTALL 110 or $ @[.SYS.VMS]INSTALL location owner 111 where location is a device:[directory] specification and owner is 112 either a rights identifier or UIC. If install.com is not modified 113 and if values aren't supplied on the command line, the default values 114 used are the translation of logical name HACKDIR, if any, or else 115 [.PLAY] (relative to the current directory), and the UIC for the 116 current process. install.com will use the auxiliary programs 117 constructed by vmsbuild.com to process quite a few data files in the 118 [.dat] subdirectory. Then it will create the playground directory, 119 if necessary, plus the associated [.save] subdirectory. Next it will 120 copy the data files into the playground; this step can take a while. 121 Finally it will copy nethack.exe and a few additional support files. 122 123 After it completes, the files [.src]nethack.olb, [.src]nethack.exe, 124 [.util]*.obj, [.util]*_comp.exe, and [.util]makedefs.exe can be 125 deleted in order to save disk space if desired. The other program, 126 [.util]recover.exe, should not be deleted unless you make a copy of 127 it somewhere--perhaps in the playground directory--first. It can be 128 used to resurrect some games disrupted by system or program crash. 129 1308. The file nethack.com which is copied to the playground directory can 131 be used to invoke NetHack, or nethack.exe can be run directly. Most 132 of the command-line options specified in the Unix man-page (file 133 [.doc]nethack.txt) are also applicable to VMS. Some comments at the 134 beginning of nethack.com illustrate several of the options. New 135 players should read the file "Guidebook.txt" which will be copied 136 into the playground directory as "Guidebook.doc". 137 138 139Notes: 140 1411. Save files and bones files from earlier versions will not work with 142 3.3.1. The scoreboard file (RECORD) from 3.3.0 will work; one from 143 version 3.2.x is slightly different format but should be compatible. 144 1452. To specify user-preference options in your environment, define the 146 logical name NETHACKOPTIONS to have the value of a quoted string 147 containing a comma separated list of option values. The option names 148 are case-insensitive. 149 $ define nethackoptions "noAutoPickup,Dog:Rover,Cat:Felix,DECgraphics" 150 One value you'll probably want to specify is "noLegacy" to turn off 151 the initial introductory passage. The "checkpoint" option controls 152 whether or not enough data is saved to disk so that the set of level 153 files left behind after a crash contains sufficient information for 154 recover.exe to be able to construct a save file after the fact. The 155 tradeoff for enabling checkpoint is that using it makes level changes 156 do more I/O and take longer. The "menustyle" option controls some 157 aspects of the user interface, and can be set to "menustyle:traditional" 158 to make 3.3.1 or 3.2.x behave more like 3.1.3. 159 160 If logical name or DCL symbol NETHACKOPTIONS is not defined, NetHack 161 will try HACKOPTIONS instead. Regardless of whether or not either 162 is defined, it will also try to find a configuration file containing 163 additional option settings. If the value of the translation of 164 NETHACKOPTIONS--or HACKOPTIONS--begins with an "@" character then the 165 rest of the translation is assumed to be the name of the configuration 166 file. Otherwise, the following are tried: file specified by logical 167 name NETHACKINI, file SYS$LOGIN:NETHACK.INI, and file HOME:NETHACK.CNF 168 (note that the C run-time library sets up the value of HOME to match 169 sys$login). Syntax for the configuration file is similar to 170 NETHACKOPTIONS, but multiple lines can be used, each must start with 171 OPTIONS=, and comments can be included by placing '#' in the first 172 column. Several options which take more complex values (graphics 173 representation) can also be present; see the "Guidebook" for details. 174 (Guidebook.txt can be found in the [.doc] subdirectory; a copy gets 175 placed in the playground directory by install.com. Also, an example 176 configuration file can be found in [.win.X11]nethack.rc.) 177 1783. Instead of using vmsbuild.com to compile and link everything, you can 179 use the set of Makefiles found in the vms subdirectory, provided you 180 have an appropriate and compatible make utility. They've been tested 181 using MMK, a freeware clone of Digital's MMS. There are five of them, 182 and the suffix or filetype on their names indicates where they should 183 be placed. 184 $ copy [.sys.vms]Makefile.top []Makefile. 185 $ copy [.sys.vms]Makefile.src [.src]Makefile. 186 $ copy [.sys.vms]Makefile.utl [.util]Makefile. 187 $ copy [.sys.vms]Makefile.dat [.dat]Makefile. 188 $ copy [.sys.vms]Makefile.doc [.doc]Makefile. 189 After doing that, edit [.src]Makefile and [.util]Makefile to specify 190 pertinent compiler options in CFLAGS, linker options in LFLAGS, and 191 libraries in LIBS and/or MORELIBS if the default values aren't right. 192 Be sure to make compatible compilation and linking settings in both 193 files. While in there, edit [.util]Makefile to specify the appropriate 194 values for lex and yacc, _or_ move to that directory and use MMS or 195 make to build targets no_lex and no_yacc which will copy several 196 pre-processed files from [.sys.share] into [.util]. Finally, edit 197 Makefile in the top directory to specify values for GAMEDIR and 198 GAMEOWNER. This top Makefile invokes [.sys.vms]install.com to do 199 much of the actual installation work, so if you want to make any 200 customizations or file protection changes, edit install.com to suit. 201 Also set MAKE in all of the Makefiles to the appropriate command if 202 not using MMS or MMK. 203 204 Once the Makefiles are tailored for your site, give the command 205 $ mms all,install 206 or $ make all install 207 To compile and install everything. The object files compiled via 208 the Makefiles are left as individual .OBJ files rather than placed 209 into an object library (in contrast to step #7 above and note #10 210 below). These Makefiles are provided on an as-is basis; vmsbuild.com 211 is the preferred way to compile because it's guaranteed to compile 212 and link everything. 213 2144. termcap is an ASCII data file containing descriptions of terminal 215 capabilities and the escape sequences that software must use to take 216 advantage of them. If you do not already have a termcap file in use 217 on your system there is a small one in file [.SYS.SHARE]TERMCAP. It 218 contains definitions for common Digital terminals, also suitable for 219 most clones and emulators. This file is copied into the playground 220 by install.com, and NetHack will use it if it can't find any other 221 one. NetHack uses the following sequence to attempt to locate the 222 termcap file: translation of the logical name TERMCAP (used as-is), 223 file NETHACKDIR:TERMCAP, similar file HACKDIR:TERMCAP, GNU-Emacs file 224 EMACS_LIBRARY:[ETC]TERMCAP.DAT, file []TERMCAP, and lastly file 225 $TERMCAP (which most likely would be a logical name). If NetHack 226 can't find the termcap file, or if the above search sequence finds a 227 different one than you'd prefer, then use the DCL ASSIGN or DEFINE 228 command to define a value for logical name TERMCAP. 229 230 NetHack also tries fairly hard to figure out what kind of terminal 231 you're using. It checks for logical names (or symbols) NETHACK_TERM, 232 HACK_TERM, EMACS_TERM, and lastly TERM. The last is set up by the 233 C run-time library and you cannot use a logical name or symbol for 234 it. If all those fail, or if whichever one succeeds has a value of 235 "undefined" or "unknown" (which can happen under VMS V5.4-* and 236 V5.5-* for VT420 terminals), NetHack will query the VMS TERMTABLE 237 database used by the SMG library routines. Whatever value NetHack 238 eventually comes up with needs to be the name of an entry in the 239 termcap file, otherwise a message about "Unknown terminal type" will 240 be printed and NetHack will exit. 241 2425. NetHack contains code which attempts to make it secure in case it's 243 installed with privileges (to allow the playground to be protected 244 against world write access). This has only undergone limited testing, 245 so install NetHack with privileges at your own risk. If you discover 246 any potential security holes, please let us know so that we can take 247 steps to correct the problem(s). NetHack always includes filename 248 punctuation when accessing files, so that it should never be affected 249 by inadvertent or malicious logical name definitions, and it always 250 deactivates installed privileges prior to spawning a subprocess. 251 252 Note to end users: "installing with privileges" is an option for 253 system managers who set up system-wide access to the game. Since 254 CMKRNL privilege and modification of the system boot routines are 255 both required, it is not an option for ordinary users. There are 256 no explicit instructions on how to do such an installation, because 257 only system managers who are already familiar with the process and 258 its potential security ramifications should even consider it. 259 260 The default setup by install.com assumes no privileges and uses 261 world-writable files to allow arbitrary users to play. This is 262 NOT secure and not advisable in any environment where there are 263 untrustworthy users, but works fine for many sites. If you allow 264 users to run NetHack from captive accounts (VMS 5.1-* or earlier) 265 or from restricted accounts (5.2 and later), you should either make 266 sure that they do not have TMPMBX privilege or else disable NetHack's 267 ability to spawn an interactive subprocess. To disable subprocesses, 268 disable the "!" (shell escape) command by commenting out the definition 269 of SHELL in vmsconf.h prior to building the program. This necessity 270 may be removed in some future release, where NetHack will check for 271 captive accounts instead of spawning unconditionally. Note that 272 disabling the SHELL command also prevents spawning MAIL when scrolls 273 of new mail are received. 274 275 In order for installed privileges to be used at all, the value of 276 HACKDIR (via Local_HACKDIR in vmsconf.h) compiled into the program 277 must correspond to the actual playground directory. If logical name 278 HACKDIR (or NETHACKDIR) is used to override that value, installed 279 privileges will be deactivated unless its value corresponds to the 280 same device and directory as the internal value. If that internal 281 value contains a logical name, only an executive-mode translation 282 will be honored; if there is no such translation, installed privs 283 will be deactivated. 284 285 To be able to install nethack.exe with privileges (SYSPRV or GRPPRV, 286 perhaps EXQUOTA, depending on site usage and needs), you'll need to 287 link it with debugging and tracebacks both disabled. You can do this 288 by specifying an argument to vmsbuild.com when performing step #6 289 above; pass it "/noTrace/noDebug" as the 4th parameter. 290 $ @[.SYS.VMS]VMSBUILD "" "" "" "/noTrace/noDebug" 291 /Trace/noDebug is the linker's normal default. If you've already 292 built NetHack, you can relink with tracebacks disabled by doing 293 $ @[.SYS.VMS]VMSBUILD "LINK" "" "" "/noTrace/noDebug" 294 2956. If you can't or won't install nethack.exe with privileges and if you 296 don't have access to a privileged account yourself, then if you intend 297 to allow other users to access your copy of NetHack you should probably 298 place an ACL on the playground directory and its save subdirectory. 299 The access control list should contain a default protection ACE which 300 grants delete+control access to the playground owner (ie, your own 301 account if there's no special games account involved). install.com 302 does not attempt to do this automatically at the present time. After 303 executing install.com to create the playground directory, perform a 304 pair of commands similar to the following 305 $ SET ACL/ACL=(IDENT=your_id, OPTIONS=DEFAULT, ACCESS=R+W+E+D+C) - 306 $_ device:[playground's.parent.directory]playground.DIR 307 $ SET ACL/ACL=(IDENT=your_id, OPTIONS=DEFAULT, ACCESS=R+W+E+D+C) - 308 $_ device:[playground.directory]SAVE.DIR 309 The two commands use the same options, but SET ACL won't accept a 310 list of files to modify. (For recent versions of VMS, SET ACL was 311 made obsolete in favor of SET FILE/ACL, which in turn has been made 312 obsolete in favor of SET SECURITY/CLASS=FILE/ACL; however, the older 313 forms will still work.) 'your_id' should be the rights identifier 314 which corresponds to the account which should retain access to those 315 files; 'device:[playground's.parent.directory]' is the name of the 316 parent directory for the playground (ie, if your playground directory 317 is disk$foo:[me.games.nethack.play], then you want to specify 318 disk$foo:[me.games.nethack]play.dir on the SET ACL command), and 319 'device:[playground.directory]' is the playground itself. Those ACLs 320 establish a default protection scheme such that every newly created 321 file in those directories will have an ACL attached to it, and the 322 attached ACL will grant 'your_id' full access to the corresponding 323 file. That should allow you to clear away level files from aborted 324 games, and to delete old save files if necessary. It will not enable 325 you to run recover.exe on behalf of other users, because you won't be 326 able to create files owned by them unless you have elevated privileges. 327 3287. Many NetHack commands can be aborted by sending it the <escape> 329 character when it wants input. This is displayed as ESC inside the 330 game. Digital VK201 keyboards (used by VT2xx and VT3xx and older 331 VAXstations) and VK401 keyboards (used by VT4xx, newer VAXstations, 332 and DEC's X Terminals) do not have an <escape> key. They may 333 transmit <escape> for the <F11> key if the terminal or emulator 334 window is set to operate in VT100 mode, or there may be a setup-type 335 option for making the <` | ~> key behave as <escape>. If your 336 terminal does not have that, or if it's set to a mode where that 337 won't work, then just use <ctrl/[> instead. (Press the "[" key while 338 holding down the "Ctrl" key, then release both; <escape> and <ctrl/[> 339 have the same ASCII code and are indistinguishable once they reach 340 the computer; note that VAXstations and X Terminals _can_ tell the 341 difference, but that won't matter for NetHack.) 342 343 VMS NetHack is configured to use the SYS$QIOW system service for 344 reading characters from the keyboard. This allows ^C and ^Y (as well 345 as ^X and ^O for wizard mode debugging) to be used as commands without 346 being intercepted or interpreted by the terminal driver. The code 347 which parses arrow and function keys is not perfect, and it's possible 348 to get strange results if you hold such keys down to just type too 349 quickly, particularly on slow multiplexor lines. Those keys are 350 never needed in actual play, and most function keys are just treated 351 as <escape> for use in aborting partial commands. 352 353 VMS NetHack also still has code to use SMG$READ_KEYSTROKE instead. 354 That can be activated by modifying vmsconf.h and recompiling, but 355 it should never be necessary. If you use it, you'll need to press 356 either <esc> or <ctrl/[> twice to abort partial commands, or else 357 press an arbitrary function key, such as <PF4>, once. 358 359 If SUSPEND is defined in vmsconf.h, <ctrl/Z> is used for that command. 360 Since Unix-style job control is not available, it's used for connecting 361 to the parent process if NetHack is running in a subprocess. When not 362 in a subprocess, it doesn't do anything except give a message to the 363 effect that it's not doing anything.... The suspend command does not 364 save the current game; if you use ^Z to attach to your parent process, 365 be sure to remember to eventually reattach to the NetHack subprocess; 366 otherwise the game in progress won't get saved when you logout. 367 3688. NetHack optionally maintains a logfile which receives one line appended 369 to it whenever a game ends. This can be disabled entirely by adding 370 an "#undef LOGFILE" directive to vmsconf.h prior to building the 371 program, or it can be disabled later by removing the file(s) LOGFILE.;* 372 from the playground directory. If not disabled prior to compilation, 373 the logfile can be reinitialized by simply creating an empty file 374 named LOGFILE in the playground, but make sure that users are able 375 to write into it, or new entries will not be appended. 376 3779. Some attempt at support for VMS versions earlier than V4.6 has been 378 included, but no such obsolete system was available for testing it. 379 vmsbuild.com detects the need for the extra support routines and 380 arranges automatically for them to be compiled. The reason that 381 special support is needed is that the C Run-Time Library (VAXCRTL) 382 underwent a major revision for VMS V4.6 and several routines which 383 NetHack utilizes were not available prior to that upgrade. 384 38510. vmsbuild.com collects almost all of the object files (xxx.OBJ) into 386 an object library (NETHACK.OLB) as it compiles the source files. 387 This should prevent the quota-exceeded problems from the linker 388 that some sites have reported for prior versions. Note that if you 389 compile any source files manually, you'll need to replace those 390 modules in the object library prior to linking the program: 391 $ cc/include=[-.include] [-.sys.vms]vmstty !for example 392 $ libr/obj []nethack vmstty !replace VMSTTY 393 $ @[-.sys.vms]vmsbuild LINK !re-link NETHACK.EXE 394 If you forget to replace the library entry, your newly compiled code 395 will not be included in the new executable image. 396 39711. To access "wizard mode"--intended for debugging purposes, not to 398 spoil the game with unlimited wishes--you must be running from the 399 username compiled into the game via Local_WIZARD in vmsconf.h, and 400 you must specify "-D" on the command line when invoking NetHack. 401 Note that it must be uppercase, and it must be in quotes to prevent 402 the C run-time library's program startup code from converting it into 403 lowercase. 404 $ @hackdir:nethack "-D" 405 Any character name you specify will be ignored in favor of "wizard". 406 40712. At program startup time, NetHack uses the empty file PERM to prevent 408 two different processes from using the same character name (under the 409 same UIC ownership) at the same time. It does this by temporarily 410 giving that file a second directory entry named PERM.LOCK, then 411 removing the alternate entry once started. If the PERM file is 412 missing or inaccessible, NetHack will give a message and then quit. 413 Several possible messages and their usual causes are: 414 Can't find file perm;1 to lock! 415 PERM.;1 is missing from the playground directory. Fix: reinstall 416 the playground directory using install.com, or use CREATE or an editor 417 to make an empty file named PERM. Version number must be 1. 418 Can't lock perm;1 due to directory protection. 419 The playground directory is not allowing write access. Fix: players 420 need to be able to write files for dungeon levels and "bones" into 421 the playground directory. Set the protection or ACL on the xxx.DIR;1 422 file in the playground's parent directory to allow write access. 423 Can't unlink perm.lock;1. 424 The empty file PERM.;1 is protected against delete access; only matters 425 under some versions of VMS. Fix: set the protection or ACL on PERM.;1 426 to allow delete access to players. Under VMS V5.5-2, delete access is 427 not necessary. PERM does not have to remain writable. 428 Waiting for access to perm;1. (# retries left). 429 If some other process is also starting up NetHack at about the same 430 time, you may have to wait a short period. NetHack will retry once 431 per second, counting down to 0. If 0 is reached, the message 432 Perhaps there is an old perm.lock;1 around? 433 will be displayed and then NetHack will give up. Fix: to forcibly 434 remove a stale PERM.LOCK entry, issue the following command 435 $ SET FILE/REMOVE PERM.LOCK;1 436 from the playground directory. The file PERM should remain intact. 437 Do not use that command for real files, only alternate directory 438 entries. If output from a DIRECTORY command on the playground reports 439 PERM.LOCK;1 no such file 440 then someone has deleted PERM.;1 while the synonym entry was still 441 in place, and PERM.LOCK was left as a dangling name which no longer 442 points at any file. The SET FILE/REMOVE command above will fix the 443 dangling name; a new PERM.;1 will need to be created as mentioned above. 444 445 In similar fashion, synchronized access to the scoreboard file RECORD 446 is accomplished using temporary entry RECORD.LOCK and LOGFILE using 447 entry LOGFILE.LOCK. 448 44913. Unless you have both Motif and the Athena Widget set from MIT, you 450 will not be able to use the X11 interface on VMS. Even if you do 451 have both those things, such a configuration has not been tested and 452 there are no provisions for it in vmsbuild.com. Makefile.src does 453 have the extra source files listed, but not the necessary libraries. 454 455 The X11 port will not compile and link with DECwindows, but it will 456 be able to display on a VMS DECwindows X server provided that it and 457 its Unix X client have a compatible transport between them (either 458 TCP/IP added to VMS or DECnet added to Unix) and session security 459 is set up appropriately. You'll need to add the contents of file 460 [.win.X11]NetHack.ad into your DECW$USER_DEFAULTS:DECW$XDEFAULTS.DAT, 461 and modify some of the lines. The DECwindows window manager does not 462 support having input focus automatically follow the pointer, so you 463 should uncomment the "NetHack*autofocus" resource line. (For Motif 464 this may not be necessary, depending on customization options.) 465 Uncommenting the "NetHack*slow" line is highly recommended. You'll 466 also need to set "NetHack*fonts: fixed" (rather than "variable"), and 467 either set the map font to "fixed" too or install the "nh10" font 468 that comes in file [.win.X11]nh10.bdf. If NetHack warns that the map 469 font is variable, then something isn't set up properly. 470 471 After creating or modifying decw$xdefaults.dat, you must restart the 472 window manager in order for any changes to take effect; it's easiest 473 to just make the session manager quit and then log in again. 474 47514. There is no support for VMS POSIX in this release of NetHack. 476 47715. If necessary, send problem reports via e-mail to 478 <devteam@nethack.org> 479 Always include version information for NetHack, the operating system, 480 and the C compiler used. 481 482 3-AUG-2000 483