[rec.games.hack] nethack for vms ??

XGRUUNIX%DDATHD21.BITNET@CUNYVM.CUNY.EDU (unix-src account) (04/25/88)

Has anybody tried to port NETHACK to VAX/VMS ?

Thanks for answering.

Christian Mahr
Institut fuer Netzwerk und Signaltheorie
TH Darmstadt

jnh@ece-csc.UUCP (Joseph Nathan Hall) (04/25/88)

In article <13097@brl-adm.ARPA> XGRUUNIX%DDATHD21.BITNET@CUNYVM.CUNY.EDU (unix-src account) writes:
>Has anybody tried to port NETHACK to VAX/VMS ?
>

It's not too difficult.  Basically you need to do a couple of things:

(well, maybe more than a couple)

1)	(the hardest) Get an interactive keystroke routine working.  This
	involves, basically, one call to sys$assign to create an i/o channel
	for subsequent calls to sys$qiow ... afterward you call a routine
	that calls sys$qiow with the proper switches set; this returns your
	character.  This is all because your basic single-character i/o
	doesn't work interactively with VMS ...

2)	(annoying but not too hard) You need to deal with some of the
	UNIX system calls that aren't supported under VMS.  The termcap
	stuff is easy enough to bypass if the idea of supporting only
	VT100 etc is ok with you; in that case use the MS-DOS ANSI-type
	sequences that are basically the same.  You can get fancy and
	modify things to use the VT100 graphics characters, but this is
	a lot of trouble to do correctly.

3)	(niggling) The VMS linker is *not* case-specific between modules
	and there are about a half-dozen identifiers that you have to
	#define as something different to keep the linker from choking
	on them.

4)	(more niggling) You need to find the correct set of #defines for
	VMS in config.h.  If I remember, it's pretty close to the BSD set
	but you have to clean some things up.

5)	(still more niggling) skip the file creation date call in main.c

There's probably a little more but nothing's too bad IF you're familiar with
VAX C, VMS, and UNIX.  I got NetHack running on a VMS system a little while
back, but I converted to Moria (:-)) and I haven't tinkered with the source
in a while ... I can't give you much more help than the hints above.  I
remember it took me about 8 hours to get everything going, and I wasn't
working too hard at it.

Please don't bombard me with questions.  I don't even have access to my
VMS-Hack source right now.  The notes above should be enough to get you
off to a good start, anyway ... :-)  Good luck!!!
-- 
v   v sssss|| joseph hall                      || 201-1D Hampton Lee Court
 v v s   s || jnh@ece-csc.ncsu.edu (Internet)  || Cary, NC  27511
  v   sss  || the opinions expressed herein are not necessarily those of my
-----------|| employer, north carolina state university . . . . . . . . . . . 

jnh@ece-csc.UUCP (Joseph Nathan Hall) (04/26/88)

In article <13097@brl-adm.ARPA> XGRUUNIX%DDATHD21.BITNET@CUNYVM.CUNY.EDU (unix-src account) writes:
>Has anybody tried to port NETHACK to VAX/VMS ?
>
... Oh, almost forgot.  You'll also need a decent MAKE utility.  I'm
currently using a public-domain VMS make clone that someone here pulled off
the net in Harvard.  But there are others.  VAX MMS will work, too.

You have to maintain your own list of dependencies, as, obviously, the
shell script for "make depend" included in the makefile won't work under
VMS.  With a moderate amount of effort you could write a C program that would
create a dependencies list from your C sources, which would be a good long-
term approach ...
-- 
v   v sssss|| joseph hall                      || 201-1D Hampton Lee Court
 v v s   s || jnh@ece-csc.ncsu.edu (Internet)  || Cary, NC  27511
  v   sss  || the opinions expressed herein are not necessarily those of my
-----------|| employer, north carolina state university . . . . . . . . . . . 

allbery@ncoast.UUCP (Brandon Allbery) (05/05/88)

As quoted from <3531@ece-csc.UUCP> by jnh@ece-csc.UUCP (Joseph Nathan Hall):
+---------------
| In article <13097@brl-adm.ARPA> XGRUUNIX%DDATHD21.BITNET@CUNYVM.CUNY.EDU (unix-src account) writes:
| >Has anybody tried to port NETHACK to VAX/VMS ?
| 
| It's not too difficult.  Basically you need to do a couple of things:
| 
> (deleted)
| 
| 2)	(annoying but not too hard) You need to deal with some of the
| 	UNIX system calls that aren't supported under VMS.  The termcap
| 	stuff is easy enough to bypass if the idea of supporting only
| 	VT100 etc is ok with you; in that case use the MS-DOS ANSI-type
| 	sequences that are basically the same.  You can get fancy and
| 	modify things to use the VT100 graphics characters, but this is
| 	a lot of trouble to do correctly.
+---------------

Bullpuckey.  The support's already there:  DEC Rainbow graphics are virtually
identical to VT100 graphics.  I modified this under Unix in 1/2 hour; most
of which time was in modifying the HACKOPTIONS processing to have an eighth-
bit quoting technique.  (I used ? as the quote character; ?? is a single
?, and ??? is an eighth-bit ?.)

BTW, guys, when did the patches go out, and in which newsgroup?  I haven't
seen them here on ncoast yet.  Can someone please mail them to me?  Thanks
in advance.
-- 
	      Brandon S. Allbery, moderator of comp.sources.misc
	{well!hoptoad,uunet!marque,cbosgd,sun!mandrill}!ncoast!allbery
Delphi: ALLBERY						     MCI Mail: BALLBERY