Module Name:    src
Committed By:   christos
Date:           Tue Nov 10 22:42:19 UTC 2020

Modified Files:
        src/games/warp: bang.c bang.h config.H config.h config.h.SH init.c
            init.h intrp.c intrp.h move.c move.h object.c object.h play.c
            play.h score.c score.h sig.c sig.h sm.c term.c term.h them.c them.h
            us.c us.h util.c util.h version.c version.h warp.c warp.h weapon.c
            weapon.h

Log Message:
Time warp forward 34 years so that it compiles (but not work)


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/games/warp/bang.c src/games/warp/bang.h \
    src/games/warp/config.h src/games/warp/init.c src/games/warp/init.h \
    src/games/warp/intrp.h src/games/warp/move.c src/games/warp/move.h \
    src/games/warp/object.c src/games/warp/object.h src/games/warp/play.c \
    src/games/warp/play.h src/games/warp/score.h src/games/warp/them.c \
    src/games/warp/them.h src/games/warp/us.c src/games/warp/us.h \
    src/games/warp/version.h src/games/warp/weapon.c src/games/warp/weapon.h
cvs rdiff -u -r1.1 -r1.2 src/games/warp/config.H src/games/warp/config.h.SH
cvs rdiff -u -r1.3 -r1.4 src/games/warp/intrp.c src/games/warp/score.c \
    src/games/warp/sig.c src/games/warp/sig.h src/games/warp/sm.c \
    src/games/warp/term.c src/games/warp/term.h src/games/warp/util.c \
    src/games/warp/util.h src/games/warp/version.c src/games/warp/warp.c \
    src/games/warp/warp.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/games/warp/bang.c
diff -u src/games/warp/bang.c:1.2 src/games/warp/bang.c:1.3
--- src/games/warp/bang.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/bang.c	Tue Nov 10 17:42:19 2020
@@ -26,17 +26,15 @@
 #include "bang.h"
 
 void
-bang_init()
+bang_init(void)
 {
     ;
 }
 
 void
-make_plink(y,x)
-Reg1 int x;
-Reg2 int y;
+make_plink(int x, int y)
 {
-    Reg3 OBJECT *obj;
+    OBJECT *obj;
 
     move(y+1,x*2,0);
     beg_qwrite();
@@ -57,11 +55,7 @@ Reg2 int y;
 }
 
 void
-make_blast(y,x,mass,size)
-Reg1 int x;
-Reg2 int y;
-int size;
-long mass;
+make_blast(int x, int y, int size, long mass)
 {
     bangy[nxtbang] = y;
     bangx[nxtbang] = x;
@@ -77,7 +71,7 @@ long mass;
 	return;
     }
     else if (mass >= 0) {
-	Reg3 OBJECT *obj;
+	OBJECT *obj;
 
 	move(y+1,x*2,0);
 	beg_qwrite();
@@ -107,15 +101,15 @@ long mass;
 }
 
 void
-do_bangs()
+do_bangs(void)
 {
-    Reg1 int x;
-    Reg2 int y;
-    Reg3 int i;
-    Reg4 int j;
-    Reg7 int k;
-    Reg5 int lastxy;
-    Reg6 OBJECT *obj;
+    int x;
+    int y;
+    int i;
+    int j;
+    int k;
+    int lastxy;
+    OBJECT *obj;
 
     /* read blast list and update blast array */
     assert(nxtbang >= 0 && nxtbang <= XSIZE * YSIZE);
@@ -131,7 +125,7 @@ do_bangs()
 	    yblasted[yy[j] = (y+YSIZE00) % YSIZE] |= 1;
 	    xblasted[xx[j] = (x+XSIZE00) % XSIZE] |= 1;
 	}
-	blasted = TRUE;
+	blasted = true;
 	for (y=lastxy;y>=0;--y) {
 	    for (x=lastxy;x>=0;--x) {
 		if (lastxy > 2) {
Index: src/games/warp/bang.h
diff -u src/games/warp/bang.h:1.2 src/games/warp/bang.h:1.3
--- src/games/warp/bang.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/bang.h	Tue Nov 10 17:42:19 2020
@@ -24,7 +24,7 @@ EXT int yy[MAXBDIST];
 EXT int nxtbang;
 EXT bool banging;
 
-void make_plink();
-void make_blast();
-void do_bangs();
-void bang_init();
+void bang_init(void);
+void make_plink(int, int);
+void make_blast(int, int, int, long);
+void do_bangs(void);
Index: src/games/warp/config.h
diff -u src/games/warp/config.h:1.2 src/games/warp/config.h:1.3
--- src/games/warp/config.h:1.2	Tue Nov 10 03:49:08 2020
+++ src/games/warp/config.h	Tue Nov 10 17:42:19 2020
@@ -3,7 +3,7 @@
  *	to find out if there is input pending on an IO channel.  Generally
  *	the routine is used only if FIONREAD and O_NDELAY aren't available.
  */
-#/*undef	RDCHK		/**/
+#undef	RDCHK		/**/
 
 /* SCOREFULL:
  *	This symbol, if defined, indicates that any scoreboard kept by the
@@ -11,7 +11,7 @@
  *	to the user's login name.  If the user can change his full name he
  *	can enter multiple scores if this is defined.
  */
-#/*undef	SCOREFULL	/**/
+#undef	SCOREFULL	/**/
 
 /* SIGNEDCHAR:
  *	This symbol, if defined, indicates that characters are a signed type.
@@ -25,7 +25,7 @@
  *	termio.h rather than sgtty.h.  There are also differences in the
  *	ioctl() calls that depend on the value of this symbol.
  */
-#/*undef	TERMIO		/**/
+#undef	TERMIO		/**/
 
 /* USENDIR:
  *	This symbol, if defined, indicates that the program should compile
@@ -35,15 +35,15 @@
  *	This symbol, if defined, indicates that the program should include the
  *	system's version of ndir.h, rather than the one with this package.
  */
-#/*undef	USENDIR		/**/
-#/*undef	LIBNDIR		/**/
+#undef	USENDIR		/**/
+#undef	LIBNDIR		/**/
 #define LIBNDIR
 
 /* WHOAMI:
  *	This symbol, if defined, indicates that the program may include
  *	whoami.h.
  */
-#/*undef	WHOAMI		/**/
+#undef	WHOAMI		/**/
 
 /* HOSTNAME:
  *	This symbol contains name of the host the program is going to run on.
@@ -77,7 +77,7 @@
  */
 #define	PASSNAMES /*  (undef to take name from ~/.fullname) */
 #define	BERKNAMES /* (that is, ":name,stuff:") */
-#/*undef	USGNAMES  /* (that is, ":stuff-name(stuff):") */
+#undef	USGNAMES  /* (that is, ":stuff-name(stuff):") */
 
 /* PREFSHELL:
  *	This symbol contains the full name of the preferred user shell on this
@@ -91,32 +91,6 @@
  */
 #define RANDBITS 15		/**/
 
-/* Reg1:
- *	This symbol, along with Reg2, Reg3, etc. is either the word "register"
- *	or null, depending on whether the C compiler pays attention to this
- *	many register declarations.  The intent is that you don't have to
- *	order your register declarations in the order of importance, so you
- *	can freely declare register variables in sub-blocks of code and as
- *	function parameters.  Do not use Reg<n> more than once per routine.
- */
-
-#define Reg1 register		/**/
-#define Reg2 register		/**/
-#define Reg3 register		/**/
-#define Reg4 		/**/
-#define Reg5 		/**/
-#define Reg6 		/**/
-#define Reg7 		/**/
-#define Reg8 		/**/
-#define Reg9 		/**/
-#define Reg10 		/**/
-#define Reg11 		/**/
-#define Reg12 		/**/
-#define Reg13 		/**/
-#define Reg14 		/**/
-#define Reg15 		/**/
-#define Reg16 		/**/
-
 /* ROOTID:
  *	This symbol contains the uid of root, normally 0.
  */
Index: src/games/warp/init.c
diff -u src/games/warp/init.c:1.2 src/games/warp/init.c:1.3
--- src/games/warp/init.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/init.c	Tue Nov 10 17:42:19 2020
@@ -34,33 +34,33 @@
 #include "init.h"
 
 void
-initialize()
+initialize(void)
 {
-    Reg1 int i;
-    Reg2 int x;
-    Reg3 int y;
-    Reg4 int dist;
-    Reg5 int ydist;
-    Reg6 int xdist;
+    int i;
+    int x;
+    int y;
+    int dist;
+    int ydist = 0;
+    int xdist = 0;
     long e;
-    int yoff, xoff, ypred, xpred;
-    Reg7 OBJECT *obj;
+    int yoff = 0, xoff = 0, ypred, xpred;
+    OBJECT *obj = NULL;
     char ch;
     FILE *mapfp = NULL;
     bool tmptholspec;
     int inhabjackpot;
     long inhenergy;
     int walksplit = 200;
-    static char *distname[] =
+    static const char *distname[] =
 	{" #"," -"," \\"," /",
 	 " |"," *"," `"," '"};
 
-    cloaking = madgorns = FALSE;
+    cloaking = madgorns = false;
     deados = madfriends = 0;
     curscore = possiblescore = 0L;
     yamblast = xamblast = ambsize = 0;
     if (smarts > 90)
-	massacre = TRUE;
+	massacre = true;
     scandist = (massacre?20:15);
     antibase = (smarts>60?1:(smarts>40?2:(smarts>25?4:100)));
     sm35 = (smarts>35?35:smarts);
@@ -100,14 +100,15 @@ initialize()
 	yblasted[y] = 0;
     for (x=0; x<XSIZE; x++)
 	xblasted[x] = 0;
-    blasted = FALSE;
-    if (!starspec)
+    blasted = false;
+    if (!starspec) {
 	if (smarts < 15)
 	    inumstars = 50 + rand_mod(50);
 	else if (smarts < 50 || smarts > 85)
 	    inumstars = exdis(800) + rand_mod(100) + 1;
 	else /* too few stars makes 50..85 too hard */
 	    inumstars = exdis(700) + rand_mod(150-super*2) + 50+super*2;
+    }
     tmptholspec = (smarts > 15 && inumstars < 450 && ! rand_mod(90-sm80));
     if (!klingspec) {
 	inumenemies = rand_mod((smarts+1)/2) + 1;
@@ -203,7 +204,7 @@ stars_again:
 	if (debugging)
 	    printf(" P\r\n");
 	dist = 0;
-	Sprintf(spbuf,"smap.%d",
+	snprintf(spbuf, sizeof(spbuf), "smap.%d",
 	    (prescene>=0?prescene:rand_mod(MAPS)) );
 	if ((mapfp = fopen(spbuf,"r")) != NULL &&
 	    fgets(spbuf,10,mapfp) != NULL ) {
@@ -216,7 +217,7 @@ stars_again:
 	    xoff = rand_mod(XSIZE);	/* how much to shift x */
 	}
 	else {
-	    prespec = FALSE;
+	    prespec = false;
 	    prescene = -1;
 	    if (rand_mod(2))
 		goto scenario_again;
@@ -356,7 +357,7 @@ stars_again:
 	}
     }
     if (mapfp != NULL)
-	Fclose(mapfp);
+	fclose(mapfp);
     if (numcrushes) {
 	do {
 	    x = rand_mod(XSIZE);
@@ -515,7 +516,7 @@ stars_again:
 	mvaddch(base->posy+1, base->posx*2, base->image);
     sleep(2);
     {
-	Reg7 OBJECT *curobj;
+	OBJECT *curobj;
 
 	for (curobj = root.next; curobj != &root; curobj = curobj->next) {
 	    mvaddch(curobj->posy+1, curobj->posx*2, curobj->image);
@@ -528,7 +529,7 @@ stars_again:
     whenok = 0;
     timer = 0;
     finish = 0;
-    bombed_out = FALSE;
+    bombed_out = false;
     if (ent)
 	entmode = status = 0;
     else
@@ -537,7 +538,7 @@ stars_again:
 	else
 	    status = 3;
 
-    Sprintf(spbuf,
+    snprintf(spbuf, sizeof(spbuf),
     "%-4s E: %4d %2d B: %5d %3d Enemies: %-3d Stars: %-3d Stardate%5d.%1d %9ld",
 	"   ", 0, 0, 0, 0, 0, 0, smarts * 100, 0, 0L);
     mvaddstr(0,0,spbuf);
Index: src/games/warp/init.h
diff -u src/games/warp/init.h:1.2 src/games/warp/init.h:1.3
--- src/games/warp/init.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/init.h	Tue Nov 10 17:42:19 2020
@@ -6,4 +6,4 @@
  * 
  */
 
-void initialize();
+void initialize(void);
Index: src/games/warp/intrp.h
diff -u src/games/warp/intrp.h:1.2 src/games/warp/intrp.h:1.3
--- src/games/warp/intrp.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/intrp.h	Tue Nov 10 17:42:19 2020
@@ -9,15 +9,14 @@
  * 
  */
 
-EXT char *origdir INIT(Nullch);		/* cwd when warp invoked */
-EXT char *homedir INIT(Nullch);		/* login directory */
-EXT char *dotdir INIT(Nullch);		/* where . files go */
-EXT char *logname INIT(Nullch);		/* login id */
+EXT char *origdir INIT(NULL);		/* cwd when warp invoked */
+EXT char *homedir INIT(NULL);		/* login directory */
+EXT char *dotdir INIT(NULL);		/* where . files go */
+EXT char *logname INIT(NULL);		/* login id */
 EXT char *hostname;	/* host name */
-EXT char *realname INIT(Nullch);	/* real name from /etc/passwd */
+EXT char *realname INIT(NULL);	/* real name from /etc/passwd */
 
-void    intrp_init();
-char	*filexp();
-char	*dointerp();
-void	interp();
-char	*getrealname();
+void intrp_init(char *);
+char *filexp(const char *);
+void interp(char *, size_t, const char *);
+char *dointerp(char *, size_t, const char *, const char *);
Index: src/games/warp/move.c
diff -u src/games/warp/move.c:1.2 src/games/warp/move.c:1.3
--- src/games/warp/move.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/move.c	Tue Nov 10 17:42:19 2020
@@ -28,18 +28,17 @@
 #include "move.h"
 
 void
-move_init()
+move_init(void)
 {
     ;
 }
 
 void
-bounce(obj)
-Reg4 OBJECT *obj;
+bounce(OBJECT *obj)
 {
-    Reg1 int x;
-    Reg2 int y;
-    Reg3 int count=0;
+    int x;
+    int y;
+    int count=0;
 
     y = (obj->posy - sgn(obj->vely) + YSIZE00) % YSIZE;
     x = (obj->posx - sgn(obj->velx) + XSIZE00) % XSIZE;
@@ -66,12 +65,12 @@ Reg4 OBJECT *obj;
 }
 
 void
-move_universe()
+move_universe(void)
 {
-    Reg1 OBJECT *curobj;
-    Reg2 int x;
-    Reg3 int y;
-    Reg4 OBJECT *temp;
+    OBJECT *curobj;
+    int x;
+    int y;
+    OBJECT *temp;
     OBJECT *thenext;
 
     for (curobj = movers; curobj != &root; curobj = curobj->next) {
@@ -128,7 +127,7 @@ move_universe()
 		movers->prev = curobj;
 	    }
 	}
-	if (temp = occupant[y][x]) {		/* already occupied? */
+	if ((temp = occupant[y][x]) != NULL) {		/* already occupied? */
 	    if (!temp->contend) {
 		if (temp->type == Torp) {
 		    if (temp->image == '+')
@@ -141,7 +140,7 @@ move_universe()
 	    }
 	    yblasted[y] |= 1;
 	    xblasted[x] |= 1;
-	    blasted = TRUE;
+	    blasted = true;
 	    curobj->contend = temp;
 	    occupant[y][x] = curobj;
 	    switch (curobj->type) {
@@ -199,14 +198,14 @@ move_universe()
 		blast[y][x] += 100000;
 		yblasted[y] |= 1;
 		xblasted[x] |= 1;
-		blasted = TRUE;
+		blasted = true;
 	    }
 	}
     }
     if (blasted) {
-	Reg7 int minxblast = -1;
-	Reg8 int maxxblast = -2;
-	Reg5 long tmpblast;
+	int minxblast = -1;
+	int maxxblast = -2;
+	long tmpblast;
 
 	blasted = numamoebas;
 	for (x=0; x<XSIZE; x++) {
@@ -223,7 +222,7 @@ move_universe()
 		for (x=minxblast; x<=maxxblast; x++) {
 		    tmpblast = blast[y][x];
 		    if (numamoebas && amb[y][x] == '~') {
-			if (temp = occupant[y][x]) {
+			if ((temp = occupant[y][x]) != NULL) {
 			    if (temp->image == '&')
 				tmpblast >>= 1;
 			    else if (temp->type == Web)
@@ -237,7 +236,7 @@ move_universe()
 			yblasted[y] = 2;
 		    }
 		    if (tmpblast) {
-			Reg6 OBJECT *biggie = 0;
+			OBJECT *biggie = 0;
 
 			blast[y][x] = 0;
 			temp = occupant[y][x];
@@ -457,13 +456,13 @@ move_universe()
 					numinhab--;
 					/* FALL THROUGH */
 				    case '*':
-					banging = TRUE;
+					banging = true;
 					numstars--;
 					break;
 				    case '|': case '-': case '/': case '\\':
 					tmpblast = 100000;
 					make_blast(y,x,curobj->mass,1);
-					banging = TRUE;
+					banging = true;
 					deados = 0;
 					break;
 				    case 'x':
@@ -547,7 +546,7 @@ move_universe()
     do_bangs();
     if (numcrushes && movers->type == Crusher)
 	movers->vely = 0;
-    if (curobj = base) {
+    if ((curobj = base) != NULL) {
 	char ch;
 
 	curobj->velx = 0;
@@ -563,7 +562,7 @@ move_universe()
 	    setimage(curobj, ch);
 	}
     }
-    if (curobj = ent) {
+    if ((curobj = ent) != NULL) {
 	char ch;
 
 	if (entmode == 0) {
@@ -606,15 +605,12 @@ move_universe()
 }
 
 int
-lookaround(y, x, what)
-Reg1 int y;
-Reg2 int x;
-Reg4 char what;
+lookaround(int y, int x, char what)
 {
-    Reg3 OBJECT *obj;
-    Reg5 int count=0;
-    Reg6 int xp;
-    Reg7 int xm;
+    OBJECT *obj;
+    int count=0;
+    int xp;
+    int xm;
 
     if ((obj=occupant[y][xp=(x+XSIZE01)%XSIZE])&&obj->type == what) /* 0, 1 */
 	count++;
@@ -636,45 +632,39 @@ Reg4 char what;
 }
 
 int
-lookfor(y, x, what)
-Reg1 int y;
-Reg2 int x;
-Reg4 char what;
+lookfor(int y, int x, char what)
 {
-    Reg3 OBJECT *obj;
-    Reg5 int xp;
-    Reg6 int xm;
-
-    if ((obj=occupant[y][xp=(x+XSIZE01)%XSIZE])&&obj->type == what ||/* 0, 1 */
-        (obj=occupant[y][xm=(x+XSIZE99)%XSIZE])&&obj->type == what ||/* 0, -1 */
-        (obj=occupant[y=(y+YSIZE99)%YSIZE][xp])&&obj->type == what ||/* -1, 1 */
-        (obj=occupant[y][x])&&obj->type == what                    ||/* -1, 0 */
-        (obj=occupant[y][xm])&&obj->type == what                   ||/* -1,-1 */
-        (obj=occupant[y=(y+2)%YSIZE][xp])&&obj->type == what       ||/* 1, 1 */
-        (obj=occupant[y][x])&&obj->type == what                    ||/* 1, 0 */
-        (obj=occupant[y][xm])&&obj->type == what)                    /* 1, -1 */
+    OBJECT *obj;
+    int xp;
+    int xm;
+
+    if (((obj=occupant[y][xp=(x+XSIZE01)%XSIZE])&&obj->type == what)||/* 0, 1 */
+        ((obj=occupant[y][xm=(x+XSIZE99)%XSIZE])&&obj->type == what)||/* 0, -1 */
+        ((obj=occupant[y=(y+YSIZE99)%YSIZE][xp])&&obj->type == what)||/* -1, 1 */
+        ((obj=occupant[y][x])&&obj->type == what)                   ||/* -1, 0 */
+        ((obj=occupant[y][xm])&&obj->type == what)                  ||/* -1,-1 */
+        ((obj=occupant[y=(y+2)%YSIZE][xp])&&obj->type == what)      ||/* 1, 1 */
+        ((obj=occupant[y][x])&&obj->type == what)                   ||/* 1, 0 */
+        ((obj=occupant[y][xm])&&obj->type == what))                   /* 1, -1 */
 	return(1);
     return (0);
 }
 
 OBJECT*
-lookimg(y, x, what)
-Reg1 int y;
-Reg2 int x;
-Reg4 char what;
+lookimg(int y, int x, char what)
 {
-    Reg3 OBJECT *obj;
-    Reg5 int xp;
-    Reg6 int xm;
-
-    if ((obj=occupant[y][xp=(x+XSIZE01)%XSIZE])&&obj->image==what ||/* 0, 1 */
-        (obj=occupant[y][xm=(x+XSIZE99)%XSIZE])&&obj->image==what ||/* 0, -1 */
-        (obj=occupant[y=(y+YSIZE99)%YSIZE][xp])&&obj->image==what ||/* -1, 1 */
-        (obj=occupant[y][x])&&obj->image==what                    ||/* -1, 0 */
-        (obj=occupant[y][xm])&&obj->image==what                   ||/* -1,-1 */
-        (obj=occupant[y=(y+2)%YSIZE][xp])&&obj->image==what       ||/* 1, 1 */
-        (obj=occupant[y][x])&&obj->image==what                    ||/* 1, 0 */
-        (obj=occupant[y][xm])&&obj->image==what)                    /* 1, -1 */
+    OBJECT *obj;
+    int xp;
+    int xm;
+
+    if (((obj=occupant[y][xp=(x+XSIZE01)%XSIZE])&&obj->image==what)||/* 0, 1 */
+        ((obj=occupant[y][xm=(x+XSIZE99)%XSIZE])&&obj->image==what)||/* 0, -1 */
+        ((obj=occupant[y=(y+YSIZE99)%YSIZE][xp])&&obj->image==what)||/* -1, 1 */
+        ((obj=occupant[y][x])&&obj->image==what)                   ||/* -1, 0 */
+        ((obj=occupant[y][xm])&&obj->image==what)                  ||/* -1,-1 */
+        ((obj=occupant[y=(y+2)%YSIZE][xp])&&obj->image==what)      ||/* 1, 1 */
+        ((obj=occupant[y][x])&&obj->image==what)                   ||/* 1, 0 */
+        ((obj=occupant[y][xm])&&obj->image==what))                   /* 1, -1 */
 	return obj;
-    return Null(OBJECT*);
+    return NULL;
 }
Index: src/games/warp/move.h
diff -u src/games/warp/move.h:1.2 src/games/warp/move.h:1.3
--- src/games/warp/move.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/move.h	Tue Nov 10 17:42:19 2020
@@ -6,9 +6,10 @@
  * 
  */
 
-void bounce();
-void move_universe();
-int lookaround();
-int lookfor();
-OBJECT *lookimg();
-void move_init();
+void move_init(void);
+void bounce(OBJECT *);
+void move_universe(void);
+int lookaround(int, int, char);
+int lookfor(int, int, char);
+OBJECT *lookimg(int, int, char);
+
Index: src/games/warp/object.c
diff -u src/games/warp/object.c:1.2 src/games/warp/object.c:1.3
--- src/games/warp/object.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/object.c	Tue Nov 10 17:42:19 2020
@@ -12,20 +12,16 @@
 #include "object.h"
 
 void
-object_init()
+object_init(void)
 {
     ;
 }
 
 OBJECT *
-make_object(typ, img, py, px, vy, vx, energ, mas, where)
-char typ;
-char img;
-int px, py, vx, vy;
-long energ, mas;
-OBJECT *where;
+make_object(char typ, char img, int px, int py, int vx, int vy, long energ,
+    long mas, OBJECT *where)
 {
-    Reg1 OBJECT *obj;
+    OBJECT *obj;
 
     if (free_root.next == &free_root)
 #ifndef lint
@@ -60,8 +56,7 @@ OBJECT *where;
 }
 
 void
-unmake_object(curobj)
-Reg1 OBJECT *curobj;
+unmake_object(OBJECT *curobj)
 {
     curobj->prev->next = curobj->next;
     curobj->next->prev = curobj->prev;
@@ -72,8 +67,7 @@ Reg1 OBJECT *curobj;
 }
 
 void
-free_object(curobj)
-Reg1 OBJECT *curobj;
+free_object(OBJECT *curobj)
 {
     curobj->next = free_root.next;
     curobj->prev = &free_root;
Index: src/games/warp/object.h
diff -u src/games/warp/object.h:1.2 src/games/warp/object.h:1.3
--- src/games/warp/object.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/object.h	Tue Nov 10 17:42:19 2020
@@ -22,12 +22,8 @@
 #define Crusher 7
 
 typedef struct object {
-    char posx, posy;
-#ifdef SIGNEDCHAR
-    char velx, vely;
-#else
+    short posx, posy;
     short velx, vely;
-#endif
     struct object *next, *prev, *contend;
     long energy;
     long mass;
@@ -64,8 +60,7 @@ EXT OBJECT *nuke;
 
 EXT OBJECT *occupant[YSIZE][XSIZE];
 
-OBJECT *make_object();
-
-void unmake_object();
-void free_object();
-void object_init();
+void object_init(void);
+OBJECT *make_object(char, char, int, int, int, int, long, long, OBJECT *);
+void unmake_object(OBJECT *);
+void free_object(OBJECT *);
Index: src/games/warp/play.c
diff -u src/games/warp/play.c:1.2 src/games/warp/play.c:1.3
--- src/games/warp/play.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/play.c	Tue Nov 10 17:42:19 2020
@@ -24,20 +24,20 @@
 #include "play.h"
 
 void
-play_init()
+play_init(void)
 {
     ;
 }
 
 void
-play()
+play(void)
 {
-    bool done = FALSE;
-    Reg1 OBJECT *curobj;
-    Reg2 OBJECT *to;
-    Reg3 int i;
-    Reg4 int x;
-    Reg5 int y;
+    bool done = false;
+    OBJECT *curobj;
+    OBJECT *to;
+    int i;
+    int x;
+    int y;
 
     display_status();
 #ifdef TIOCOUTQ
@@ -48,7 +48,7 @@ play()
     do {
 	timer++;
 	nxtbang = 0;
-	banging = FALSE;
+	banging = false;
 	display_status();
 #ifdef TIOCOUTQ
 	while (output_pending() > charsperhalfsec)
@@ -69,7 +69,7 @@ play()
 		ent->energy -= ent->energy/40;
 	    }
 	    else
-		cloaking = FALSE;
+		cloaking = false;
 	    cloaked = cloaking;
 	}
 	if (base) {
@@ -138,6 +138,8 @@ play()
 			possiblescore += 5000;
 		    }
 		    if (apolloflag & 2) {
+/*###141 [cc] warning: array subscript has type 'char' [-Wchar-subscripts]%%%*/
+/*###141 [cc] warning: array subscript has type 'char' [-Wchar-subscripts]%%%*/
 			if (blast[realapollo->posy][realapollo->posx] <= 32000)
 			    bvely = bvelx = 0;
 			realapollo->energy = 32000;
@@ -152,7 +154,7 @@ play()
 	if (aretorps) {
 	    aretorps = 0;
 	    for (i=0;i<2;i++) for (y=0;y<3;y++) for (x=0;x<3;x++) {
-		if (curobj = isatorp[i][y][x]) {
+		if ((curobj = isatorp[i][y][x]) != NULL) {
 		    to = occupant[(curobj->posy+curobj->vely+YSIZE00)%YSIZE]
 				 [(curobj->posx+curobj->velx+XSIZE00)%XSIZE];
 		    if (to && !to->vely && !to->velx) {
@@ -170,7 +172,7 @@ play()
 	if (finish) {
 	    finish--;
 	    if (!finish && (!(numenemies || numos) || (!ent && !base))) {
-		done = TRUE;
+		done = true;
 		timer -= 5;
 	    }
 	}
Index: src/games/warp/play.h
diff -u src/games/warp/play.h:1.2 src/games/warp/play.h:1.3
--- src/games/warp/play.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/play.h	Tue Nov 10 17:42:19 2020
@@ -9,5 +9,5 @@
 EXT int finish INIT(0);
 EXT int timer;
 
-void play();
-void play_init();
+void play_init(void);
+void play(void);
Index: src/games/warp/score.h
diff -u src/games/warp/score.h:1.2 src/games/warp/score.h:1.3
--- src/games/warp/score.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/score.h	Tue Nov 10 17:42:19 2020
@@ -41,9 +41,9 @@ EXT char longlognam[128];
 
 EXT char c INIT(' ');
 
-void score_init();
-void wscore();
-void display_status();
-void wavescore();
-void score();
-void save_game();
+void score_init(void);
+void wscore(void);
+void display_status(void);
+void wavescore(void);
+void score(void);
+void save_game(void);
Index: src/games/warp/them.c
diff -u src/games/warp/them.c:1.2 src/games/warp/them.c:1.3
--- src/games/warp/them.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/them.c	Tue Nov 10 17:42:19 2020
@@ -35,20 +35,20 @@
 #include "them.h"
 
 void
-them_init()
+them_init(void)
 {
     ;
 }
 
 void
-their_smarts()
+their_smarts(void)
 {
-    Reg1 OBJECT *curkl;
-    Reg2 OBJECT *obj;
-    Reg3 int prob;
-    Reg4 int count;
-    Reg5 int y;
-    Reg6 int x;
+    OBJECT *curkl;
+    OBJECT *obj = NULL;
+    int prob;
+    int count;
+    int y = 0;
+    int x = 0;
 
     if (numcrushes && (obj=movers)->type == Crusher) {
 	if (numamoebas) {
@@ -303,7 +303,7 @@ their_smarts()
 			fire_torp(curkl,yyy,xxx);
 	}
 	else if (curkl->image == 'T' && (curkl->velx || curkl->vely)) {
-	    Make_object(Web,
+	    make_object(Web,
             curkl->vely?
 	     (curkl->velx?
 	      (curkl->velx==curkl->vely?
@@ -319,7 +319,7 @@ their_smarts()
 	    curkl->posy,curkl->posx,0,0,32767L,32767L,&root);
 	    if (obj && obj->type == Web) {
 		unmake_object(obj);
-		occupant[y][x] = Null(OBJECT*);
+		occupant[y][x] = NULL;
 	    }
 	}
     }
@@ -332,16 +332,11 @@ their_smarts()
 }
 
 void
-modify_amoeba(y,x,where,ch,quant)
-Reg1 int y;
-Reg2 int x;
-int where;
-Reg6 int ch;
-Reg7 int quant;
+modify_amoeba(int y, int x, int where, int ch, int quant)
 {
-    Reg3 int dy;
-    Reg4 int dx;
-    Reg5 int count = 15;
+    int dy;
+    int dx;
+    int count = 15;
 
     if (!numamoebas)
 	return;
@@ -393,7 +388,7 @@ Reg7 int quant;
 		ambsize++;
 		yblasted[y] |= 2;
 		xblasted[x] |= 2;
-		blasted = TRUE;
+		blasted = true;
 	    }
 	    else
 		ambsize--;
Index: src/games/warp/them.h
diff -u src/games/warp/them.h:1.2 src/games/warp/them.h:1.3
--- src/games/warp/them.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/them.h	Tue Nov 10 17:42:19 2020
@@ -6,6 +6,6 @@
  * 
  */
 
-void their_smarts();
-void modify_amoeba();
-void them_init();
+void them_init(void);
+void their_smarts(void);
+void modify_amoeba(int, int, int, int, int);
Index: src/games/warp/us.c
diff -u src/games/warp/us.c:1.2 src/games/warp/us.c:1.3
--- src/games/warp/us.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/us.c	Tue Nov 10 17:42:19 2020
@@ -28,23 +28,22 @@
 #include "us.h"
 
 void
-us_init()
+us_init(void)
 {
     ;
 }
 
 void
-do_direction(dy,dx)
-int dy, dx;
+do_direction(int dy, int dx)
 {
-    Reg1 int decr;
-    Reg2 OBJECT *obj;
+    int decr;
+    OBJECT *obj;
 
     if (status < 2) {
 	if (cloaking) {
 	    char ch;
 	    
-	    cloaked = FALSE;
+	    cloaked = false;
 	    ch = (ent->energy >= 500?'E':'e');
 	    if (ch != ent->image) {
 		setimage(ent, ch);
@@ -107,14 +106,13 @@ int dy, dx;
 }
 
 void
-ctrl_direction(dy,dx)
-int dy, dx;
+ctrl_direction(int dy, int dx)
 {
     if (status < 2) {
 	if (cloaking) {
 	    char ch;
 	    
-	    cloaked = FALSE;
+	    cloaked = false;
 	    ch = (ent->energy >= 500?'E':'e');
 	    if (ch != ent->image) {
 		setimage(ent, ch);
@@ -133,14 +131,13 @@ int dy, dx;
 }
 
 void
-shift_direction(dy,dx)
-int dy, dx;
+shift_direction(int dy, int dx)
 {
     if (status < 2) {
 	if (cloaking) {
 	    char ch;
 	    
-	    cloaked = FALSE;
+	    cloaked = false;
 	    ch = (ent->energy >= 500?'E':'e');
 	    if (ch != ent->image) {
 		setimage(ent, ch);
@@ -159,22 +156,21 @@ int dy, dx;
 }
 
 void
-get_commands(done)
-bool *done;
+get_commands(bool *done)
 {
     static char ch[80];
-    Reg1 int i;
-    Reg2 int count;
-    Reg3 bool ctrla = FALSE;
+    int i;
+    int count;
+    bool ctrla = false;
     char numdestructs = 0, numzaps = 0;
 
 top:
-    while (count = read_nd(ch,(sizeof ch))) {
+    while ((count = read_nd(ch,(sizeof ch)))) {
 	for (i=0; i<count; i++) {
 	    if (ch[i] == 'Q') {
-		bombed_out = TRUE;
-		*done = TRUE;
-		keepgoing = FALSE;
+		bombed_out = true;
+		*done = true;
+		keepgoing = false;
 		return;
 	    }
 	    if (ch[i] == 'q' || ch[i] == BREAKCH || ch[i] == INTRCH) {
@@ -187,8 +183,8 @@ top:
 			getcmd(&ch[i]);
 		    } while (ch[i] != 'y' && ch[i] != 'n');
 		    if (ch[i] == 'y') {
-			bombed_out = TRUE;
-			*done = TRUE;
+			bombed_out = true;
+			*done = true;
 			return;
 		    }
 		    else {
@@ -242,7 +238,7 @@ top:
 		case 'r':
 		    rewrite();
 		    roundsleep(3);
-		    ctrla = FALSE;
+		    ctrla = false;
 		    goto top;
 		case 'w':
 		    clear();
@@ -250,20 +246,20 @@ top:
 			sleep(1);
 		    rewrite();
 		    roundsleep(3);
-		    ctrla = FALSE;
+		    ctrla = false;
 		    goto top;
 #ifdef SIGTSTP
 		case 'z':
 		    clear();
 		    mytstp();
 		    sleep(4);
-		    ctrla = FALSE;
+		    ctrla = false;
 		    goto top;
 #endif
 		default:
 		    break;
 		}
-		ctrla = FALSE;
+		ctrla = false;
 	    }
 	    else {
 		switch (ch[i]) {
@@ -303,14 +299,14 @@ top:
 		    if (ent) {
 			status = entmode;
 		    }
-		    cloaking=FALSE;
-		    cloaked=FALSE;
+		    cloaking=false;
+		    cloaked=false;
 		    break;
 		case 'c':
 		    if (ent) {
 			status = entmode;
 			if (ent->energy >= 250)
-			    cloaking = TRUE;
+			    cloaking = true;
 		    }
 		    break;
 		case 'z':
@@ -347,7 +343,7 @@ top:
 		    break;
 		case 'd':
 		    if ((!damage || !damflag[NODESTRUCT]) && (base||ent)) {
-			Reg4 OBJECT *obj;
+			OBJECT *obj;
 			int x, y;
 
 			if (ent && !rand_mod(200)) {
@@ -363,7 +359,7 @@ top:
 				     += 1;
 				yblasted[y] |= 1;
 				xblasted[x] |= 1;
-				blasted = TRUE;
+				blasted = true;
 				obj->mass = (massacre?3000:4000);
 			    }
 			}
@@ -371,7 +367,7 @@ top:
 		    break;
 		case 's':
 		    if ((!damage || !damflag[NODESTRUCT]) && (base||ent)) {
-			Reg4 OBJECT *obj;
+			OBJECT *obj;
 			if (ent && !rand_mod(200)) {
 			    damage++;
 			    damflag[NODESTRUCT] = rand_mod(smarts+10)+2;
@@ -386,7 +382,7 @@ top:
 		    }
 		    break;
 		case '\001':
-		    ctrla = TRUE;
+		    ctrla = true;
 		    break;
 		case '\002':
 		case '\003':
@@ -415,7 +411,7 @@ top:
 		case '\032':
 		    ch[i] += 96;
 		    i--;
-		    ctrla = TRUE;
+		    ctrla = true;
 		    break;
 		case '\033':
 		    tractor = 0;
Index: src/games/warp/us.h
diff -u src/games/warp/us.h:1.2 src/games/warp/us.h:1.3
--- src/games/warp/us.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/us.h	Tue Nov 10 17:42:19 2020
@@ -37,7 +37,7 @@ EXT int damage INIT(0);
 EXT int olddamage INIT(-1);
 
 #ifdef DOINIT
-char *dammess[MAXDAMAGE] = {
+const char *dammess[MAXDAMAGE] = {
     "WARP",
     "IMPULSE",
     "PHASERS",
@@ -54,8 +54,8 @@ extern char *dammess[];
 extern char damflag[];
 #endif
 
-void do_direction();
-void ctrl_direction();
-void shift_direction();
-void get_commands();
-void us_init();
+void us_init(void);
+void do_direction(int, int);
+void ctrl_direction(int, int);
+void shift_direction(int, int);
+void get_commands(bool *);
Index: src/games/warp/version.h
diff -u src/games/warp/version.h:1.2 src/games/warp/version.h:1.3
--- src/games/warp/version.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/version.h	Tue Nov 10 17:42:19 2020
@@ -6,4 +6,4 @@
  * 
  */
 
-void version();
+void version(void);
Index: src/games/warp/weapon.c
diff -u src/games/warp/weapon.c:1.2 src/games/warp/weapon.c:1.3
--- src/games/warp/weapon.c:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/weapon.c	Tue Nov 10 17:42:19 2020
@@ -27,18 +27,15 @@
 #include "weapon.h"
 
 void
-weapon_init()
+weapon_init(void)
 {
     ;
 }
 
 void
-fire_torp(from, ydir, xdir)
-Reg1 OBJECT *from;
-Reg3 int ydir;
-Reg4 int xdir;
+fire_torp(OBJECT *from, int ydir, int xdir)
 {
-    Reg2 OBJECT *to;
+    OBJECT *to;
 
     if (from->type == Enemy ||
        (from == ent && etorp > 0) ||
@@ -101,18 +98,17 @@ Reg4 int xdir;
 }
 
 void
-attack(attackee)
-Reg7 OBJECT *attackee;
+attack(OBJECT *attackee)
 {
-    Reg1 int dx;
-    Reg2 int dy;
-    Reg3 int curx;
-    Reg4 int cury;
-    Reg5 int prob;
-    Reg6 OBJECT *obj;
-    Reg8 bool torps;
-    Reg9 bool webnear = FALSE;
-    Reg10 bool thru_stars;
+    int dx;
+    int dy;
+    int curx;
+    int cury;
+    int prob;
+    OBJECT *obj;
+    bool torps;
+    bool webnear = false;
+    bool thru_stars;
     int nukey;
     int nukex;
     int nukedist;
@@ -129,22 +125,22 @@ Reg7 OBJECT *attackee;
 		if (dx||dy) {
 		    cury = attackee->posy;
 		    curx = attackee->posx;
-		    torps = thru_stars = FALSE;
+		    torps = thru_stars = false;
 		    if (massacre || madgorns || !rand_mod(53-super) )
 			webnear += rand_mod(2);
 		    else
-			webnear = FALSE;
+			webnear = false;
 		    for (prob = scandist;prob;prob--) {
 			cury = (cury + dy + YSIZE00) % YSIZE;
 			curx = (curx + dx + XSIZE00) % XSIZE;
-			if (obj = occupant[cury][curx]) {
+			if ((obj = occupant[cury][curx]) != NULL) {
 			    switch (obj->image) {
 			    case 'P': case 'K': case 'R': case ' ':
 		pot_shot:
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/40+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
 				if (rand_mod(51 - sm50) <= prob) {
 				    switch (obj->strategy||thru_stars?0:
@@ -213,7 +209,7 @@ Reg7 OBJECT *attackee;
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/40+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				    goto bombout;
 				}
 				if (obj->strategy) {
@@ -223,7 +219,7 @@ Reg7 OBJECT *attackee;
 				    }
 				    obj->strategy += (!torps && deados > 10);
 				    if (obj->strategy > 4)
-					madgorns = TRUE;
+					madgorns = true;
 				    if (!torps && obj->strategy > 5) {
 					do {
 					    fire_phaser(obj, -dy, -dx);
@@ -249,7 +245,7 @@ Reg7 OBJECT *attackee;
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/40+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
 				if (thru_stars)
 				    goto bombout;
@@ -273,7 +269,7 @@ Reg7 OBJECT *attackee;
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/40+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				    if (rand_mod(2))
 					goto pot_shot;
 				}
@@ -290,45 +286,45 @@ Reg7 OBJECT *attackee;
 					    == attackee->posx &&
 					 (obj->posy + obj->vely + YSIZE00)%YSIZE
 					    == attackee->posy ) {
-					    Tract(nuke,dy,dx,-1);
+					    tract(nuke,dy,dx,-1);
 					}
 					else
 					    while (!rand_mod(82-sm80))
-						Tract(nuke,dy,dx,-1);
+						tract(nuke,dy,dx,-1);
 				    }
 				    else if (smarts > 60 ||
 				      rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/20+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
-				torps = FALSE;
-				thru_stars = FALSE;
+				torps = false;
+				thru_stars = false;
 				break;
 			    case '|': case '-': case '/': case '\\':
 				if (thru_stars)
 				    goto bombout;
 				webnear = (scandist-prob < 3);
-				torps = FALSE;
+				torps = false;
 				break;
 			    case 'x':
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/20+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
 				if (thru_stars)
 				    goto bombout;
-				torps = TRUE;
+				torps = true;
 				break;
 			    case 'o': case 'O': case '0':
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/20+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
 				if (thru_stars)
 				    goto bombout;
-				torps = TRUE;
+				torps = true;
 				if (rand_mod(99+3*scandist) < smarts+3*prob) {
 				    obj->vely = -dy + attackee->vely;
 				    obj->velx = -dx + attackee->velx;
@@ -344,14 +340,14 @@ Reg7 OBJECT *attackee;
 				}
 				if (obj->image != '0')
 				    break;
-			    /* DROP THROUGH! */
+			    /*FALLTHROUGH*/
 			    case 'X':
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/20+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
-				torps = TRUE;
+				torps = true;
 				if (thru_stars)
 				    goto bombout;
 				if (prob == scandist) {
@@ -362,13 +358,13 @@ Reg7 OBJECT *attackee;
 				      += (obj->image == '0' ? 2000 : 200);
 				    yblasted[y] |= 1;
 				    xblasted[x] |= 1;
-				    blasted = TRUE;
+				    blasted = true;
 				}
 				break;
 			    case 'A':
 				if (attackee != nuke) {
 				    if (scandist-prob>1 && !rand_mod(51-super))
-					Tract(obj,-dy,-dx,1);
+					tract(obj,-dy,-dx,1);
 				}
 				/* FALL THROUGH */
 			    case '*': case '@':
@@ -382,19 +378,20 @@ Reg7 OBJECT *attackee;
 					if (smarts > 55 && scandist-prob > 8) {
 					    if (rand_mod(30+scandist-prob) <
 					      rand_mod(smarts/20+1))
-						Tract(nuke,dy,dx,1);
+						tract(nuke,dy,dx,1);
 					}
 				    }
 				    else if (obj->vely || obj->velx) {
-					Tract(nuke,dy,dx,1); /* for looks */
+					tract(nuke,dy,dx,1); /* for looks */
 					obj->vely = obj->velx = 0;
 				    }
 				}
-				if (!thru_stars)
+				if (!thru_stars) {
 				    if (rand_mod(97-sm95))
 					goto bombout;
 				    else
-					thru_stars = TRUE;
+					thru_stars = true;
+				}
 				break;
 			    case '<': case '>':
 				if (attackee == nuke) {
@@ -402,7 +399,7 @@ Reg7 OBJECT *attackee;
 				      rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/20+1) ) {
 					nuke->mass += 10000;
-					Tract(nuke,dy,dx,-1);
+					tract(nuke,dy,dx,-1);
 					nuke->mass -= 10000;
 				    }
 				}
@@ -411,7 +408,7 @@ Reg7 OBJECT *attackee;
 				if (attackee == nuke) {
 				    if (rand_mod(2+scandist-prob) <
 				      rand_mod(smarts/40+1))
-					Tract(nuke,dy,dx,rand_mod(3)?1:-1);
+					tract(nuke,dy,dx,rand_mod(3)?1:-1);
 				}
 				goto bombout;
 			    default:
@@ -438,15 +435,12 @@ bombout:            ; /* end of loop */
 }
 
 void
-fire_phaser(obj, dy, dx)
-Reg7 OBJECT *obj;
-Reg5 int dy;
-Reg6 int dx;
+fire_phaser(OBJECT *obj, int dy, int dx)
 {
-    Reg1 int y;
-    Reg2 int x;
-    Reg3 int skipping;
-    Reg4 int size=5000;
+    int y;
+    int x;
+    int skipping;
+    int size=5000;
     int decr = 50, oldy, oldx;
     static char curchar[] = "@* ";
 
@@ -595,24 +589,20 @@ Reg6 int dx;
 		    blast[y][x] += size*smarts/25;
 		yblasted[y] |= 1;
 		xblasted[x] |= 1;
-		blasted = TRUE;
+		blasted = true;
 	    }
 	}
     }
 }
 
 int
-tract(obj, dy, dx, to_or_fro)
-Reg7 OBJECT *obj;
-Reg4 int dy;
-Reg5 int dx;
-int to_or_fro;
+tract(OBJECT *obj, int dy, int dx, int to_or_fro)
 {
-    Reg1 int y;
-    Reg2 int x;
-    Reg3 int size=10;
+    int y;
+    int x;
+    int size=10;
     static char ch;
-    Reg6 OBJECT *tractee;
+    OBJECT *tractee;
 
     if (!dy)
 	ch = '|';
Index: src/games/warp/weapon.h
diff -u src/games/warp/weapon.h:1.2 src/games/warp/weapon.h:1.3
--- src/games/warp/weapon.h:1.2	Mon Nov  9 19:02:11 2020
+++ src/games/warp/weapon.h	Tue Nov 10 17:42:19 2020
@@ -15,8 +15,8 @@ EXT OBJECT *isatorp[2][3][3];
 
 EXT int aretorps;
 
-void fire_torp();
-void attack();
-void fire_phaser();
-int tract();
-void weapon_init();
+void weapon_init(void);
+void fire_torp(OBJECT *, int, int);
+void attack(OBJECT *);
+void fire_phaser(OBJECT *, int, int);
+int tract(OBJECT *, int, int, int);

Index: src/games/warp/config.H
diff -u src/games/warp/config.H:1.1 src/games/warp/config.H:1.2
--- src/games/warp/config.H:1.1	Mon Nov  9 18:37:05 2020
+++ src/games/warp/config.H	Tue Nov 10 17:42:19 2020
@@ -67,15 +67,15 @@
 
 /* How many register declarations are paid attention to? */
 
-#define Reg1 register		/**/
-#define Reg2 register		/**/
-#define Reg3 register		/**/
-#define Reg4 register		/**/
-#define Reg5 register		/**/
-#define Reg6 register		/**/
-#define Reg7 		/**/
-#define Reg8 		/**/
-#define Reg9 		/**/
+#define register		/**/
+#define register		/**/
+#define register		/**/
+#define register		/**/
+#define register		/**/
+#define register		/**/
+#define 		/**/
+#define 		/**/
+#define 		/**/
 #define Reg10 		/**/
 #define Reg11 		/**/
 #define Reg12 		/**/
Index: src/games/warp/config.h.SH
diff -u src/games/warp/config.h.SH:1.1 src/games/warp/config.h.SH:1.2
--- src/games/warp/config.h.SH:1.1	Mon Nov  9 18:37:05 2020
+++ src/games/warp/config.h.SH	Tue Nov 10 17:42:19 2020
@@ -38,9 +38,9 @@ cat <<!GROK!THIS! >config.h
 #$d_eunice	VMS		/**/
 
 /* CHARSPRINTF:
- *	This symbol is defined if this system declares "char *sprintf()" in
- *	stdio.h.  The trend seems to be to declare it as "int sprintf()".  It
- *	is up to the package author to declare sprintf correctly based on the
+ *	This symbol is defined if this system declares "char *snprintf()" in
+ *	stdio.h.  The trend seems to be to declare it as "int snprintf()".  It
+ *	is up to the package author to declare snprintf correctly based on the
  *	symbol.
  */
 #$d_charsprf	CHARSPRINTF 	/**/
@@ -219,15 +219,15 @@ cat <<!GROK!THIS! >config.h
  *	function parameters.  Do not use Reg<n> more than once per routine.
  */
 
-#define Reg1 $reg1		/**/
-#define Reg2 $reg2		/**/
-#define Reg3 $reg3		/**/
-#define Reg4 $reg4		/**/
-#define Reg5 $reg5		/**/
-#define Reg6 $reg6		/**/
-#define Reg7 $reg7		/**/
-#define Reg8 $reg8		/**/
-#define Reg9 $reg9		/**/
+#define $reg1		/**/
+#define $reg2		/**/
+#define $reg3		/**/
+#define $reg4		/**/
+#define $reg5		/**/
+#define $reg6		/**/
+#define $reg7		/**/
+#define $reg8		/**/
+#define $reg9		/**/
 #define Reg10 $reg10		/**/
 #define Reg11 $reg11		/**/
 #define Reg12 $reg12		/**/

Index: src/games/warp/intrp.c
diff -u src/games/warp/intrp.c:1.3 src/games/warp/intrp.c:1.4
--- src/games/warp/intrp.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/intrp.c	Tue Nov 10 17:42:19 2020
@@ -23,30 +23,26 @@
     char *hostname;
 
 #ifdef TILDENAME
-static char *tildename = Nullch;
-static char *tildedir = Nullch;
+static char *tildename = NULL;
+static char *tildedir = NULL;
 #endif
 
-char *dointerp();
-char *getrealname();
+static char *getrealname(uid_t);
 #ifdef CONDSUB
-char *skipinterp();
+static char *skipinterp(const char *, const char *);
 #endif
 
-static void abort_interp();
+static void abort_interp(void);
 
 void
-intrp_init(tcbuf)
-char *tcbuf;
+intrp_init(char *tcbuf)
 {
-    char *getlogin();
-
     /* get environmental stuff */
 
     /* get home directory */
 
     homedir = getenv("HOME");
-    if (homedir == Nullch)
+    if (homedir == NULL)
 	homedir = getenv("LOGDIR");
 
     dotdir = getval("DOTDIR",homedir);
@@ -54,10 +50,10 @@ char *tcbuf;
     /* get login name */
 
     logname = getenv("USER");
-    if (logname == Nullch)
+    if (logname == NULL)
 	logname = getenv("LOGNAME");
 #ifdef GETLOGIN
-    if (logname == Nullch)
+    if (logname == NULL)
 	logname = savestr(getlogin());
 #endif
     
@@ -84,7 +80,7 @@ char *tcbuf;
 
     if (scorespec)			/* that getwd below takes ~1/3 sec. */
 	return;				/* and we do not need it for -s */
-    (void) getwd(tcbuf);		/* find working directory name */
+    (void) getcwd(tcbuf, sizeof(tcbuf));/* find working directory name */
     origdir = savestr(tcbuf);		/* and remember it */
 }
 
@@ -93,12 +89,11 @@ char *tcbuf;
 /* Note that there is a 1-deep cache of ~name interpretation */
 
 char *
-filexp(s)
-Reg1 char *s;
+filexp(const char *s)
 {
     static char filename[CBUFLEN];
     char scrbuf[CBUFLEN];
-    Reg2 char *d;
+    char *d;
 
 #ifdef DEBUGGING
     if (debug & DEB_FILEXP)
@@ -112,7 +107,7 @@ Reg1 char *s;
     s = filename;
     if (*s == '~') {	/* does destination start with ~? */
 	if (!*(++s) || *s == '/') {
-	    Sprintf(scrbuf,"%s%s",homedir,s);
+	    snprintf(scrbuf, sizeof(scrbuf), "%s%s",homedir,s);
 				/* swap $HOME for it */
 #ifdef DEBUGGING
     if (debug & DEB_FILEXP)
@@ -122,7 +117,7 @@ Reg1 char *s;
 	}
 	else {
 #ifdef TILDENAME
-	    for (d=scrbuf; isalnum(*s); s++,d++)
+	    for (d=scrbuf; isalnum((unsigned char)*s); s++,d++)
 		*d = *s;
 	    *d = '\0';
 	    if (tildedir && strEQ(tildename,scrbuf)) {
@@ -139,13 +134,12 @@ Reg1 char *s;
 		    free(tildename);
 		    free(tildedir);
 		}
-		tildedir = Nullch;
+		tildedir = NULL;
 		tildename = savestr(scrbuf);
 		{
-		    struct passwd *getpwnam();
 		    struct passwd *pwd = getpwnam(tildename);
 
-		    Sprintf(scrbuf,"%s%s",pwd->pw_dir,s);
+		    snprintf(scrbuf, sizeof(scrbuf), "%s%s",pwd->pw_dir,s);
 		    tildedir = savestr(pwd->pw_dir);
 		    strcpy(filename,scrbuf);
 		    endpwent();
@@ -170,7 +164,7 @@ Reg1 char *s;
 	    strcpy(d,s+2);
 	else {
 	    *d++ = '{';
-	    for (s++; isalnum(*s); s++) *d++ = *s;
+	    for (s++; isalnum((unsigned char)*s); s++) *d++ = *s;
 				/* skip over token */
 	    *d++ = '}';
 	    strcpy(d,s);
@@ -193,10 +187,8 @@ Reg1 char *s;
 #ifdef CONDSUB
 /* skip interpolations */
 
-char *
-skipinterp(pattern,stoppers)
-Reg1 char *pattern;
-char *stoppers;
+static char *
+skipinterp(const char *pattern, const char *stoppers)
 {
 
     while (*pattern && (!stoppers || !index(stoppers,*pattern))) {
@@ -253,7 +245,7 @@ char *stoppers;
 	}
     }
 getout:
-    return pattern;			/* where we left off */
+    return __UNCONST(pattern);			/* where we left off */
 }
 #endif
 
@@ -275,17 +267,13 @@ static char *mygets(char *str, size_t n)
 /* interpret interpolations */
 
 char *
-dointerp(dest,destsize,pattern,stoppers)
-Reg1 char *dest;
-Reg2 int destsize;
-Reg3 char *pattern;
-char *stoppers;
+dointerp(char *dest, size_t destsize, const char *pattern, const char *stoppers)
 {
-    Reg4 char *s;
-    Reg5 int i;
+    char *s;
+    int i;
     char scrbuf[512];
-    bool upper = FALSE;
-    bool lastcomp = FALSE;
+    bool upper = false;
+    bool lastcomp = false;
     int metabit = 0;
 
     while (*pattern && (!stoppers || !index(stoppers,*pattern))) {
@@ -294,19 +282,19 @@ char *stoppers;
 	    printf("dointerp till %s at %s\r\n",stoppers?stoppers:"",pattern);
 #endif
 	if (*pattern == '%' && pattern[1]) {
-	    upper = FALSE;
-	    lastcomp = FALSE;
-	    for (s=Nullch; !s; ) {
+	    upper = false;
+	    lastcomp = false;
+	    for (s=NULL; !s; ) {
 		switch (*++pattern) {
 		case '^':
-		    upper = TRUE;
+		    upper = true;
 		    break;
 		case '_':
-		    lastcomp = TRUE;
+		    lastcomp = true;
 		    break;
 		case '{':
 		    pattern = cpytill(scrbuf,pattern+1,'}');
-		    if (s = index(scrbuf,'-'))
+		    if ((s = index(scrbuf,'-')) != NULL)
 			*s++ = '\0';
 		    else
 			s = nullstr;
@@ -331,7 +319,7 @@ char *stoppers;
 			matched = strEQ(scrbuf+1,dest);
 		    }
 		    else
-			matched = instr(dest,scrbuf) != Nullch;
+			matched = instr(dest,scrbuf) != NULL;
 		    if (matched==(rch == '=')) {
 			pattern = dointerp(dest,destsize,pattern+1,":)");
 			if (*pattern == ':')
@@ -349,11 +337,11 @@ char *stoppers;
 #endif
 #ifdef BACKTICK
 		case '`': {
-		    FILE *pipefp, *popen();
+		    FILE *pipefp;
 
 		    pattern = dointerp(scrbuf,(sizeof scrbuf),pattern+1,"`");
 		    pipefp = popen(scrbuf,"r");
-		    if (pipefp != Nullfp) {
+		    if (pipefp != NULL) {
 			int len;
 
 			len = fread(scrbuf,sizeof(char),(sizeof scrbuf)-1,
@@ -398,7 +386,7 @@ char *stoppers;
 		    break;
 		case '$':
 		    s = scrbuf;
-		    Sprintf(s,"%d",getpid());
+		    snprintf(scrbuf, sizeof(scrbuf), "%d",getpid());
 		    break;
 		case 'H':			/* host name */
 		    s = hostname;
@@ -433,15 +421,15 @@ char *stoppers;
 		char *t;
 
 		if (s != scrbuf) {
-		    Safecpy(scrbuf,s,(sizeof scrbuf));
+		    safecpy(scrbuf,s,(sizeof scrbuf));
 		    s = scrbuf;
 		}
 		if (upper || !(t=rindex(s,'/')))
 		    t = s;
-		while (*t && !isalpha(*t))
+		while (*t && !isalpha((unsigned char)*t)) {
 		    t++;
-		if (islower(*t))
-		    *t = toupper(*t);
+		    *t = toupper((unsigned char)*t);
+		}
 	    }
 	    i = metabit;		/* maybe get into register */
 	    if (s == dest) {
@@ -476,7 +464,7 @@ char *stoppers;
 		    destsize++;
 		}
 		else
-		    *dest++ = i & 037 | metabit;
+		    *dest++ = (i & 037) | metabit;
 		pattern++;
 	    }
 	    else if (*pattern == '\\' && pattern[1]) {
@@ -491,7 +479,7 @@ char *stoppers;
 			i <<= 3;
 			i += *pattern++ - '0';
 		    }
-		    *dest++ = i & 0377 | metabit;
+		    *dest++ = (i & 0377) | metabit;
 		    --pattern;
 		}
 		else if (i == 'b')
@@ -514,16 +502,13 @@ char *stoppers;
     }
     *dest = '\0';
 getout:
-    return pattern;			/* where we left off */
+    return __UNCONST(pattern);			/* where we left off */
 }
 
 void
-interp(dest,destsize,pattern)
-char *dest;
-int destsize;
-char *pattern;
+interp(char *dest, size_t destsize, const char *pattern)
 {
-    (void) dointerp(dest,destsize,pattern,Nullch);
+    (void) dointerp(dest,destsize,pattern,NULL);
 #ifdef DEBUGGING
     if (debug & DEB_FILEXP)
 	fputs(dest,stdout);
@@ -533,9 +518,8 @@ char *pattern;
 /* get the person's real name from /etc/passwd */
 /* (string is overwritten, so it must be copied) */
 
-char *
-getrealname(uid)
-int uid;
+static char *
+getrealname(uid_t uid)
 {
     char *s, *c;
 
@@ -547,36 +531,36 @@ int uid;
 #ifdef BERKJUNK
     while (*s && !isalnum(*s) && *s != '&') s++;
 #endif
-    if ((c = index(s, ',')) != Nullch)
+    if ((c = index(s, ',')) != NULL)
 	*c = '\0';
-    if ((c = index(s, ';')) != Nullch)
+    if ((c = index(s, ';')) != NULL)
 	*c = '\0';
     s = cpytill(buf,s,'&');
     if (*s == '&') {			/* whoever thought this one up was */
 	c = buf + strlen(buf);		/* in the middle of the night */
 	strcat(c,logname);		/* before the morning after */
 	strcat(c,s+1);
-	if (islower(*c))
-	    *c = toupper(*c);		/* gack and double gack */
+	if (islower((unsigned char)*c))
+	    *c = toupper((unsigned char)*c);		/* gack and double gack */
     }
 #else
-    if ((c = index(s, '(')) != Nullch)
+    if ((c = index(s, '(')) != NULL)
 	*c = '\0';
-    if ((c = index(s, '-')) != Nullch)
+    if ((c = index(s, '-')) != NULL)
 	s = c;
     strcpy(buf,tmpbuf);
 #endif
     endpwent();
     return buf;				/* return something static */
 #else
-    if ((tmpfp=fopen(filexp(FULLNAMEFILE),"r")) != Nullfp) {
-	Fgets(buf,sizeof buf,tmpfp);
-	Fclose(tmpfp);
+    if ((tmpfp=fopen(filexp(FULLNAMEFILE),"r")) != NULL) {
+	fgets(buf,sizeof buf,tmpfp);
+	fclose(tmpfp);
     }
     else {
 	resetty();
 	printf("What is your name? ");
-	Fgets(buf,(sizeof buf),stdin);
+	fgets(buf,(sizeof buf),stdin);
 	crmode();
 	raw();
 	noecho();
@@ -588,7 +572,7 @@ int uid;
 	    if ((tmpfp = fopen(filexp(FULLNAMEFILE),"w")) == NULL)
 		exit(1);
 	    fprintf(tmpfp, "%s\n", buf);
-	    Fclose(tmpfp);
+	    fclose(tmpfp);
 	    exit(0);
 	}
     }
@@ -598,7 +582,7 @@ int uid;
 }
 
 static void
-abort_interp()
+abort_interp(void)
 {
     fputs("\r\n% interp buffer overflow!\r\n",stdout);
     sig_catcher(0);
Index: src/games/warp/score.c
diff -u src/games/warp/score.c:1.3 src/games/warp/score.c:1.4
--- src/games/warp/score.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/score.c	Tue Nov 10 17:42:19 2020
@@ -29,10 +29,10 @@
 #include "score.h"
 
 void
-score_init()
+score_init(void)
 {
-    Reg1 char *s;
-    Reg2 int i;
+    char *s;
+    int i;
     FILE *savfil;
 
 #if 0
@@ -65,7 +65,7 @@ score_init()
     if (scorespec)
 	wscore();
 
-    Sprintf(savefilename, "save.%s", logname);
+    snprintf(savefilename, sizeof(savefilename), "save.%s", logname);
 
     savfil = experimenting ? NULL : fopen(savefilename,"r");
     if (savfil != NULL && fgets(spbuf,100,savfil) != NULL) {
@@ -89,7 +89,7 @@ That process does not seem to exist anym
 "last wave over.\r\n\n");
 		printf(
 "                      [type anything to continue]");
-		Fflush(stdout);
+		fflush(stdout);
 		eat_typeahead();
 		getcmd(tmpbuf);
 		if (*tmpbuf == INTRCH)
@@ -109,7 +109,7 @@ That process does not seem to exist anym
 		}
 		printf("   2) Let me terminate the other game\r\n\n");
 		printf("What do you want to do? ");
-		Fflush(stdout);
+		fflush(stdout);
 		eat_typeahead();
 		getcmd(tmpbuf);
 		printf("\r\n");
@@ -122,7 +122,7 @@ That process does not seem to exist anym
 		}
 		printf(
 "Ok, hang on a few moments \r\n");
-		Fclose(savfil);
+		fclose(savfil);
 		if (kill(processnum, SIGQUIT)) {
 		    printf("Unable to kill process #%d!\r\n",processnum);
 		    roundsleep(2);
@@ -138,11 +138,11 @@ That process does not seem to exist anym
 					/* (warp ignores SIGINT) */
 			    break;
 		    }
-		    didkill++;
+		    didkill = true;
 		}
 		savfil = fopen(savefilename,"r");
 		if (savfil != NULL) {
-		    Fgets(spbuf,100,savfil);
+		    fgets(spbuf,100,savfil);
 		}
 	    }
 	}
@@ -170,35 +170,35 @@ That process does not seem to exist anym
 	tholspec   = (spbuf[46] == 't');
 	lowspeed   = (spbuf[47] == 'l') || lowspeed;
 	amoebaspec = (spbuf[48] == '&');
-	Fclose(savfil);
+	fclose(savfil);
     }
 
     if (!ismarts) {
 	ismarts = 1;
 	clear();
-	page(NEWSFILE,FALSE);
+	page(NEWSFILE,false);
 	if (smarts) {
 	    printf("\r\nSaved game: SCORE DIFF CUMDIFF ENTERPRISES BASES WAVE");
 	    printf("\r\n          %7ld  %2d   %4d        %1d        %1d   %3d",
 		totalscore,smarts,cumsmarts,numents,numbases,wave);
 	}
 	printf("\r\nWould you like instructions? ");
-	Fflush(stdout);
+	fflush(stdout);
 	eat_typeahead();
 	getcmd(buf);
 	printf("\r\n");
 	if (*buf == INTRCH)
 	    finalize(0);
 	if (*buf == 'Y' || *buf == 'y') {
-	    page(HELPFILE,FALSE);
+	    page(HELPFILE,false);
 	    printf("\r\nWould you like to play easy games for a while? ");
-	    Fflush(stdout);
+	    fflush(stdout);
 	    eat_typeahead();
 	    getcmd(buf);
 	    printf("\r\n");
 	    if (*buf == 'Y' || *buf == 'y') {
-		beginner = TRUE;
-		lowspeed = TRUE;
+		beginner = true;
+		lowspeed = true;
 	    }
 	}
     }
@@ -207,32 +207,32 @@ That process does not seem to exist anym
 }
 
 void
-wscore()
+wscore(void)
 {
     clear();
     printf("                             TOP WARPISTS\r\n\n");
     printf("RANK  WHO                     AKA        SCORE DIFF  CUMDIFF  WHEN\r\n");
-    page(SCOREBOARD,TRUE);
+    page(SCOREBOARD,true);
     printf("                     [Type anything to continue]");
-    Fflush(stdout);
+    fflush(stdout);
     getcmd(spbuf);
     if (*spbuf == INTRCH)
 	finalize(0);
     clear();
     printf("                        TOP LOW-SPEED WARPISTS\r\n\n");
     printf("RANK  WHO                     AKA        SCORE DIFF  CUMDIFF  WHEN\r\n");
-    page(LSCOREBOARD,TRUE);
+    page(LSCOREBOARD,true);
     printf("                     [Type anything to continue]");
-    Fflush(stdout);
+    fflush(stdout);
     getcmd(spbuf);
     if (*spbuf == INTRCH)
 	finalize(0);
     clear();
     printf("                          TOP FUNNY WARPISTS\r\n\n");
     printf("RANK  WHO                     AKA        SCORE DIFF  CUMDIFF  WHEN\r\n");
-    page(FSCOREBOARD,TRUE);
+    page(FSCOREBOARD,true);
     printf("                     [Type anything to continue]");
-    Fflush(stdout);
+    fflush(stdout);
     getcmd(spbuf);
     if (*spbuf == INTRCH)
 	finalize(0);
@@ -240,33 +240,33 @@ wscore()
     printf("          GAMES SAVED OR IN PROGRESS\r\n\n");
     printf("WHO           SCORE  DF   CDF  E  B  WV  FLAGS\r\n");
     resetty();
-    Sprintf(spbuf,"/bin/cat %ssave.*",SAVEDIR);
+    snprintf(spbuf, sizeof(spbuf), "/bin/cat %ssave.*",SAVEDIR);
 #ifndef lint
-    execl("/bin/sh", "sh", "-c", spbuf, 0);
+    execl("/bin/sh", "sh", "-c", spbuf, NULL);
 #endif
     finalize(1);
 }
 
 
 void
-display_status()
+display_status(void)
 {
-    Reg1 int tmp;
-    static char *status_names[] = {"Impl", "Warp", "Base", "****" };
+    int tmp;
+    static const char *status_names[] = {"Impl", "Warp", "Base", "****" };
 
     if (oldstatus != status) {
-	Sprintf(spbuf,"%-4s",status_names[status]);
+	snprintf(spbuf, sizeof(spbuf), "%-4s",status_names[status]);
 	mvaddstr(0,0, spbuf);
 	oldstatus = status;
     }
     if (ent) {
 	if (ent->energy != oldeenergy) {
 	    oldeenergy = ent->energy;
-	    Sprintf(spbuf,"%4ld",oldeenergy);
+	    snprintf(spbuf, sizeof(spbuf), "%4ld",oldeenergy);
 	    mvaddstr(0,8, spbuf);
 	}
 	if (etorp != oldetorp) {
-	    Sprintf(spbuf,"%2d",etorp);
+	    snprintf(spbuf, sizeof(spbuf), "%2d",etorp);
 	    mvaddstr(0,13, spbuf);
 	    oldetorp = etorp;
 	}
@@ -281,11 +281,11 @@ display_status()
     if (base) {
 	if (base->energy != oldbenergy) {
 	    oldbenergy = base->energy;
-	    Sprintf(spbuf,"%5ld",oldbenergy);
+	    snprintf(spbuf, sizeof(spbuf), "%5ld",oldbenergy);
 	    mvaddstr(0,19, spbuf);
 	}
 	if (btorp != oldbtorp) {
-	    Sprintf(spbuf,"%3d",btorp);
+	    snprintf(spbuf, sizeof(spbuf), "%3d",btorp);
 	    mvaddstr(0,25, spbuf);
 	    oldbtorp = btorp;
 	}
@@ -308,7 +308,7 @@ display_status()
 	if (!--damflag[dam]) {
 	    olddamage = damage;
 	    damage--;
-	    Sprintf(spbuf,"%s OK ***       ",dammess[dam]);
+	    snprintf(spbuf, sizeof(spbuf), "%s OK ***       ",dammess[dam]);
 	    spbuf[15] = '\0';
 	    mvaddstr(0,46,spbuf);
 	}
@@ -317,13 +317,13 @@ display_status()
 	    tmp = (34 - damflag[dam]) * 3 - rand_mod(3);
 	    if (tmp < 0)
 		tmp = 0;
-	    Sprintf(spbuf,"%d%% %s ***       ",tmp,dammess[dam]);
+	    snprintf(spbuf, sizeof(spbuf), "%d%% %s ***       ",tmp,dammess[dam]);
 	    spbuf[15] = '\0';
 	    mvaddstr(0,46,spbuf);
 	}
 	else if (dam != lastdam || !olddamage) {
 	    olddamage = damage;
-	    Sprintf(spbuf,"NO %s ***       ",dammess[dam]);
+	    snprintf(spbuf, sizeof(spbuf), "NO %s ***       ",dammess[dam]);
 	    spbuf[15] = '\0';
 	    mvaddstr(0,46,spbuf);
 	}
@@ -334,56 +334,52 @@ display_status()
 		status = entmode = 0;
 	}
 	tmp = damflag[dam] * damage;
-	Sprintf(spbuf,"%3d.%1d ETR",tmp/10,tmp%10);
+	snprintf(spbuf, sizeof(spbuf), "%3d.%1d ETR",tmp/10,tmp%10);
 	mvaddstr(0,69,spbuf);
 	lastdam = dam;
     }
     else {
 	if (olddamage) {
-	    Sprintf(spbuf,"Stars: %-3d Stardate",numstars);
+	    snprintf(spbuf, sizeof(spbuf), "Stars: %-3d Stardate",numstars);
 	    mvaddstr(0,42,spbuf);
 	    lastdam = -1;
 	    olddamage = 0;
 	    oldcurscore = -1;
 	}
 	else if (numstars != oldstrs) {
-	    Sprintf(spbuf,"%-3d",numstars);
+	    snprintf(spbuf, sizeof(spbuf), "%-3d",numstars);
 	    mvaddstr(0,49, spbuf);
 	}
 	oldstrs = numstars;
     }
     if (numenemies != oldenemies) {
-	Sprintf(spbuf,"%-3d",numenemies);
+	snprintf(spbuf, sizeof(spbuf), "%-3d",numenemies);
 	mvaddstr(0,38, spbuf);
 	oldenemies = numenemies;
     }
-    if (tmp = timer%10) {
-	Sprintf(spbuf,"%1d",tmp);
+    if ((tmp = timer%10) != 0) {
+	snprintf(spbuf, sizeof(spbuf), "%1d",tmp);
 	mvaddstr(0,67, spbuf);
     }
     else {
-	Sprintf(spbuf,"%5d.%1d",timer/10+smarts*100,tmp);
+	snprintf(spbuf, sizeof(spbuf), "%5d.%1d",timer/10+smarts*100,tmp);
 	mvaddstr(0,61, spbuf);
     }
     if ((!damage || !damflag[dam]) && curscore != oldcurscore) {
-	Sprintf(spbuf,"%9ld",curscore);
+	snprintf(spbuf, sizeof(spbuf), "%9ld",curscore);
 	mvaddstr(0,69, spbuf);
 	oldcurscore = curscore;
     }
 }
 
 void
-wavescore()
+wavescore(void)
 {
     double power, effectscore, starscore, pi_over_2;
     long bonuses;
     long tmp;
     FILE *mapfp;
     int row;
-    double pow();
-#ifndef lint
-    double atan2();
-#endif
 
     clear();
     if (curscore > possiblescore)
@@ -402,99 +398,95 @@ wavescore()
 	    power += (350.0 - (double)inumstars) * ((double)inumenemies - 5.0);
     if (inumstars > 850 && inumenemies > 2)
 	    power += ((double)inumstars - 850.0) * ((double)inumenemies - 2.0);
-#ifndef lint
     effectscore = ((double)curscore / possiblescore) *
 	atan2(power, (double) timer + 1.0) / pi_over_2;
-#else
-    effectscore = pi_over_2;
-#endif
     if (inumstars)
 	starscore = (double) numstars / (double) inumstars;
     else
 	starscore = 1.0;
     wave++;
-    Sprintf(spbuf,"Wave = %d, Difficulty = %d, cumulative difficulty = %d",
+    snprintf(spbuf, sizeof(spbuf), "Wave = %d, Difficulty = %d, cumulative difficulty = %d",
 	 wave, smarts, cumsmarts);
     mvaddstr(1, 13+(smarts<10), spbuf);
     mvaddstr( 4, 68, " BONUS");
-    Sprintf(spbuf,"Efficiency rating:       %1.8f (diff=%0.2f,time=%d)",
+    snprintf(spbuf, sizeof(spbuf), "Efficiency rating:       %1.8f (diff=%0.2f,time=%d)",
 	 effectscore, power, timer + 1);
     mvaddstr( 5,5, spbuf);
     if (effectscore < 0.8)
 	bonuses = tmp = 0;
     else
 	bonuses = tmp = (long) ((effectscore-0.8) * smarts * 1000);
-    Sprintf(spbuf, "%6ld", tmp);
+    snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
     mvaddstr( 5, 68, spbuf);
-    Sprintf(spbuf,"Star save ratio:         %1.8f (%d/%d)",
+    snprintf(spbuf, sizeof(spbuf), "Star save ratio:         %1.8f (%d/%d)",
 	starscore, numstars, inumstars);
     mvaddstr( 6,5, spbuf);
 #ifndef lint
     bonuses += tmp = (long) (((double)curscore / possiblescore) *
 	(starscore*starscore) * smarts * 20);
 #endif
-    Sprintf(spbuf, "%6ld", tmp);
+    snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
     mvaddstr( 6, 68, spbuf);
     row = 7;
     if (inuminhab != numinhab) {
-	Sprintf(spbuf, "Inhabited stars depopulated:  %5d", inuminhab-numinhab);
+	snprintf(spbuf, sizeof(spbuf), "Inhabited stars depopulated:  %5d", inuminhab-numinhab);
 	mvaddstr(row,5, spbuf);
 	bonuses += tmp = (long) (inuminhab-numinhab) * -500;
-	Sprintf(spbuf, "%6ld", tmp);
+	snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
 	mvaddstr(row, 68, spbuf);
 	row++;
     }
     if (inumfriends != numfriends) {
-	Sprintf(spbuf, "Friendly craft destroyed:     %5d",
+	snprintf(spbuf, sizeof(spbuf), "Friendly craft destroyed:     %5d",
 	    inumfriends-numfriends);
 	mvaddstr(row,5, spbuf);
 	bonuses += tmp = (long) (inumfriends-numfriends) * -250;
-	Sprintf(spbuf, "%6ld", tmp);
+	snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
 	mvaddstr(row, 68, spbuf);
 	row++;
     }
     if (deadmudds) {
 	mvaddstr(row,5,"For destroying Harry Mudd:");
 	bonuses += tmp = (long) rand_mod(deadmudds * 20 + 1) - deadmudds*10;
-	Sprintf(spbuf, "%6ld", tmp);
+	snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
 	mvaddstr(row, 68, spbuf);
 	row++;
     }
     if (bombed_out) {
 	mvaddstr(row,5, "For running away from reality:");
 	bonuses += tmp = (long) -possiblescore/2;
-	Sprintf(spbuf, "%6ld", tmp);
+	snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
 	mvaddstr(row, 68,  spbuf);
 	row++;
     }
     if (row < 9)
 	row++;
-    Sprintf(spbuf, "Enterprise: %-9s%5d remaining",
+    snprintf(spbuf, sizeof(spbuf), "Enterprise: %-9s%5d remaining",
 	!ient?"":ent?"saved":"destroyed", numents);
     mvaddstr(row,5, spbuf);
     bonuses += tmp = ent && !bombed_out ? (smarts+1)*15 : 0;
-    Sprintf(spbuf, "%6ld", tmp);
+    snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
     mvaddstr(row, 68, spbuf);
     row++;
-    Sprintf(spbuf, "Base: %-9s      %5d remaining",
+    snprintf(spbuf, sizeof(spbuf), "Base: %-9s      %5d remaining",
 	!ibase?"":base?"saved":"destroyed", numbases);
     mvaddstr(row,5, spbuf);
     bonuses += tmp = base && !bombed_out ? (smarts+1)*10 : 0;
-    Sprintf(spbuf, "%6ld", tmp);
+    snprintf(spbuf, sizeof(spbuf), "%6ld", tmp);
     mvaddstr(row, 68,  spbuf);
     if (beginner) {
 	mvaddstr(13+(row>11),19, "(Special games count only a tenth as much)");
 	curscore /= 10;
 	bonuses /= 10;
     }
-    Sprintf(spbuf, "Previous point total:%10ld",lastscore);
+    snprintf(spbuf, sizeof(spbuf), "Previous point total:%10ld",lastscore);
     mvaddstr(15,24, spbuf);
-    Sprintf(spbuf, "Points this round:   %10ld",curscore);
+    snprintf(spbuf, sizeof(spbuf), "Points this round:   %10ld",curscore);
     mvaddstr(16,24, spbuf);
-    Sprintf(spbuf, "Bonuses:             %10ld",bonuses);
+    snprintf(spbuf, sizeof(spbuf), "Bonuses:             %10ld",bonuses);
     mvaddstr(17,24, spbuf);
     totalscore = lastscore + curscore + bonuses;
-    Sprintf(spbuf, "New point total:     %10ld",totalscore);
+    snprintf(spbuf, sizeof(spbuf), "New point total:     %10ld",totalscore);
     mvaddstr(18,24, spbuf);
     if (lastscore / ENTBOUNDARY < totalscore / ENTBOUNDARY) {
 	mvaddstr(row-1,42,"+ 1 new");
@@ -515,9 +507,9 @@ wavescore()
 	numbases--;
     }
     if (starscore < 0.8 && inumstars > 200 && numstars > 50) {
-	Sprintf(spbuf, "smap.%d",rand_mod(MAPS-PERMMAPS)+PERMMAPS);
-	if ((mapfp = fopen(spbuf,"w")) != NULL) {
-	    Reg1 OBJECT *obj;
+	snprintf(spbuf, sizeof(spbuf), "smap.%d",rand_mod(MAPS-PERMMAPS)+PERMMAPS);
+	if ((mapfp = fopen(spbuf, "w")) != NULL) {
+	    OBJECT *obj;
 
 	    fprintf(mapfp,"%d\n",numstars);
 	    for (obj = root.next; obj != &root; obj = obj->next) {
@@ -525,20 +517,20 @@ wavescore()
 		    fprintf(mapfp,"%d %d\n",obj->posy,obj->posx);
 		}
 	    }
-	    Fclose(mapfp);
+	    fclose(mapfp);
 	}
     }
 }
 
 void
-score()
+score(void)
 {
     char tmp, *retval, cdate[30];
-    Reg1 FILE *logfd;
-    Reg2 FILE *outfd;
-    Reg3 int i;
+    FILE *logfd;
+    FILE *outfd;
+    int i;
     time_t nowtime;
-    char *scoreboard;
+    const char *scoreboard;
 
     for (i=0; link(LOGFILE, LOCKFILE) == -1 && i<10; i++)
 	sleep(1);
@@ -548,7 +540,7 @@ score()
 	fprintf(logfd,
 	    "%-24s%-9s%7ld%c%2d %4d %s",
 	    realname, logname, totalscore, c,smarts, cumsmarts, cdate);
-	Fclose(logfd);
+	fclose(logfd);
     }
     strcpy(cdate+11,cdate+20);
     if (beginner)
@@ -559,7 +551,7 @@ score()
 	scoreboard = SCOREBOARD;
     if (eaccess(scoreboard,0)) {
 	if ((logfd = fopen(scoreboard,"w")) != NULL)
-	    Fclose(logfd);
+	    fclose(logfd);
     }
     if ((logfd = fopen(scoreboard,"r")) != NULL &&
 	(outfd = fopen(TMPSCOREBOARD,"w")) != NULL) {
@@ -576,14 +568,14 @@ score()
 	}
 	if (i == 100) {
 	    mvaddstr(20,21, "You did not better your previous score");
-	    Fclose(outfd);
+	    fclose(outfd);
 	    unlink(TMPSCOREBOARD);
 	}
 	else if (i < 20) {
 	    fprintf(outfd, "%-24s%-8s%8ld%c %2d    %4d    %s",
 		realname, logname, totalscore, c,smarts, cumsmarts, cdate);
 	    i++;
-	    Sprintf(spbuf, "    Congratulations--you've placed %d%s",
+	    snprintf(spbuf, sizeof(spbuf), "    Congratulations--you've placed %d%s",
 	      i, i==1?"st":(i==2?"nd":(i==3?"rd":"th")));
 	    if (retval != NULL) {
 		if (strnNE(buf+COMPOFF,COMPNAME,COMPLEN)) {
@@ -591,7 +583,7 @@ score()
 		    i++;
 		}
 		else
-		    strcpy(spbuf,"Congratulations--you've bettered your score");
+		    strcpy(spbuf, "Congratulations--you've bettered your score");
 		while (i<20) {
 		    if (fgets(buf, 100, logfd) == NULL)
 			break;
@@ -602,8 +594,8 @@ score()
 		}
 	    }
 	    mvaddstr(20,19, spbuf);
-	    Fclose(logfd);
-	    Fclose(outfd);
+	    fclose(logfd);
+	    fclose(outfd);
 	    while (unlink(scoreboard) == 0)
 		;
 	    link(TMPSCOREBOARD,scoreboard);
@@ -612,11 +604,11 @@ score()
 	}
 	else {
 	    mvaddstr(20,22,"You did not place within the top 20");
-	    Fclose(outfd);
+	    fclose(outfd);
 	}
     }
     else {
-	Sprintf(spbuf,"(Cannot access %s file, error %d)",
+	snprintf(spbuf, sizeof(spbuf), "(Cannot access %s file, error %d)",
 	    (logfd==NULL?"log":"tmp"),errno);
 	mvaddstr(20,22,spbuf);
     }
@@ -625,7 +617,7 @@ score()
     mvaddstr(23,11,
 	"[Hit space for scoreboard, 'r' for new game, 'q' to quit]");
     unlink(LOCKFILE);
-    Fflush(stdout);
+    fflush(stdout);
     eat_typeahead();
     do {
 	getcmd(&tmp);
@@ -633,7 +625,7 @@ score()
     if (index("qQr",tmp)) {
 	justonemoretime = (tmp == 'r');
 	if (logfd != NULL)
-	    Fclose(logfd);
+	    fclose(logfd);
     }
     else {
 	clear();
@@ -650,10 +642,10 @@ score()
 		if (fgets(buf, 100, logfd) == NULL)
 		    break;
 		buf[strlen(buf)-1] = '\0';
-		Sprintf(spbuf, " %2d   %s", i, buf);
+		snprintf(spbuf, sizeof(spbuf), " %2d   %s", i, buf);
 		mvaddstr(i+2,0, spbuf);
 	    }
-	    Fclose(logfd);
+	    fclose(logfd);
 	}
 	roundsleep(1);
 	mvaddstr(23,25,"Would you like to play again?");
@@ -662,24 +654,24 @@ score()
 	    getcmd(&tmp);
 	} while (tmp != INTRCH && tmp != BREAKCH && !index("nNyY \n\r",tmp));
 	if (tmp == 'n' || tmp == 'N' || tmp == INTRCH || tmp == BREAKCH)
-	    justonemoretime = FALSE;
+	    justonemoretime = false;
     }
 
     smarts = ismarts;
     totalscore = cumsmarts = wave = 0;
     numents = 5;
     numbases = 3;
-    apolspec = FALSE;
-    beginner   = FALSE;
-    crushspec  = FALSE;
-    gornspec   = FALSE;
+    apolspec = false;
+    beginner   = false;
+    crushspec  = false;
+    gornspec   = false;
     massacre   = (ismarts >= 40);
-    romspec    = FALSE;
-    tholspec   = FALSE;
+    romspec    = false;
+    tholspec   = false;
 }
 
 void
-save_game()
+save_game(void)
 {
     FILE *savfil;
 
@@ -690,7 +682,7 @@ save_game()
 	printf("Cannot save game\r\n");
 	finalize(1);
     }
-    fprintf(savfil, "%-8s %10ld, %2d,%5d,%2d,%2d,%3d %c%c%c%c%c%c%c%c\n",
+    fprintf(savfil, "%-8s %10ld, %2d,%5d,%2d,%2d,%3d %c%c%c%c%c%c%c%c%c\n",
 	logname, totalscore, smarts, cumsmarts, numents, numbases, wave,
 	apolspec ? 'a' : ' ',
 	beginner   ? 'b' : ' ',
@@ -702,7 +694,7 @@ save_game()
 	lowspeed   ? 'l' : ' ',
 	amoebaspec ? '&' : ' '
     );
-    Fclose(savfil);
+    fclose(savfil);
     resetty();
     if (panic)
 	finalize(0);
Index: src/games/warp/sig.c
diff -u src/games/warp/sig.c:1.3 src/games/warp/sig.c:1.4
--- src/games/warp/sig.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/sig.c	Tue Nov 10 17:42:19 2020
@@ -23,7 +23,7 @@
 #include "sig.h"
 
 void
-sig_init()
+sig_init(void)
 {
 #ifdef lint
     ;
@@ -72,7 +72,7 @@ cont_catcher(int x)
 #endif
 
 void
-mytstp()
+mytstp(void)
 {
     resetty();
 #ifdef SIGTSTP
@@ -94,8 +94,7 @@ mytstp()
 }
 
 void					/* very much void */
-finalize(status)
-int status;
+finalize(int status)
 {
     if (bizarre)
 	resetty();
@@ -113,7 +112,7 @@ void
 sig_catcher(int signo)
 {
 #ifdef VERBOSE
-    static char *signame[] = {
+    static const char *signame[] = {
 	"",
 	"HUP",
 	"INT",
@@ -180,7 +179,7 @@ sig_catcher(int signo)
 	totalscore -= possiblescore / 2;
     }
     save_game();
-    if (signo != SIGHUP && signo != SIGQUIT)
+    if (signo != SIGHUP && signo != SIGQUIT) {
 #ifdef VERBOSE
 	IF(verbose)
 	    printf("\r\nCaught %s%s--%s\r\n",
@@ -189,8 +188,9 @@ sig_catcher(int signo)
 	ELSE
 #endif
 #ifdef TERSE
-	    printf("\r\nSignal %d--bye bye\r\n",signo);
+	    printf("\r\nsignal %d--bye bye\r\n",signo);
 #endif
+    }
     switch (signo) {
     case SIGBUS:
     case SIGILL:
Index: src/games/warp/sig.h
diff -u src/games/warp/sig.h:1.3 src/games/warp/sig.h:1.4
--- src/games/warp/sig.h:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/sig.h	Tue Nov 10 17:42:19 2020
@@ -6,11 +6,12 @@
  * 
  */
 
-void sig_catcher(int);
+void sig_init(void);
+void mytstp(void);
+void finalize(int status);
+void sig_catcher(int signo);
 #ifdef SIGTSTP
-void cont_catcher(int);
-void stop_catcher(int);
+void cont_catcher(int x);
+void stop_catcher(int sig);
 #endif
-void mytstp();
-void sig_init();
-void finalize();
+void sig_catcher(int);
Index: src/games/warp/sm.c
diff -u src/games/warp/sm.c:1.3 src/games/warp/sm.c:1.4
--- src/games/warp/sm.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/sm.c	Tue Nov 10 17:42:19 2020
@@ -12,11 +12,11 @@
 #include "config.h"
 
 int
-main()
+main(void)
 {
     char screen[23][90], buf[10];
-    Reg1 int y;
-    Reg2 int x;
+    int y;
+    int x;
     int tmpy, tmpx;
 
     for (x=0; x<79; x++)
@@ -45,7 +45,7 @@ main()
 	}
     }
     else {
-	Reg3 int numstars = 0;
+	int numstars = 0;
 
 	for (y=1; y<23; y++) {
 	    for (x=0; x<79; x++)
Index: src/games/warp/term.c
diff -u src/games/warp/term.c:1.3 src/games/warp/term.c:1.4
--- src/games/warp/term.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/term.c	Tue Nov 10 17:42:19 2020
@@ -26,11 +26,11 @@
 #include "INTERN.h"
 #include "term.h"
 
-int typeahead = FALSE;
+int typeahead = false;
 
 char tcarea[TCSIZE];	/* area for "compiled" termcap strings */
 
-/* guarantee capability pointer != Nullch */
+/* guarantee capability pointer != NULL */
 /* (I believe terminfo will ignore the &tmpaddr argument.) */
 
 #define Tgetstr(key) ((tstr = tgetstr(key,&tmpaddr)) ? tstr : nullstr)
@@ -55,17 +55,17 @@ struct keymap {
 
 typedef struct keymap KEYMAP;
 
-KEYMAP *topmap INIT(Null(KEYMAP*));
+KEYMAP *topmap INIT(NULL);
 
-void mac_init();
-KEYMAP *newkeymap();
-void pushstring();
+void mac_init(char *);
+static KEYMAP *newkeymap(void);
+void pushstring(char *);
 #endif
 
 /* terminal initialization */
 
 void
-term_init()
+term_init(void)
 {
     savetty();				/* remember current tty state */
 
@@ -112,12 +112,10 @@ term_init()
 /* set terminal characteristics */
 
 void
-term_set(tcbuf)
-char *tcbuf;		/* temp area for "uncompiled" termcap entry */
+term_set(char *tcbuf) /* temp area for "uncompiled" termcap entry */
 {
     char *tmpaddr;			/* must not be register */
-    Reg1 char *tstr;
-    char *tgetstr();
+    char *tstr;
     char *s;
     int retval;
 
@@ -155,7 +153,7 @@ char *tcbuf;		/* temp area for "uncompil
 	if (BC == nullstr) 		/* terminfo grok's 'bs' but not 'bc' */
 	    BC = Tgetstr("le");
     } else
-	BC = "\b";			/* make a backspace handy */
+	BC = __UNCONST("\b");		/* make a backspace handy */
     UP = Tgetstr("up");			/* move up a line */
     ND = Tgetstr("nd");			/* non-destructive move cursor right */
     DO = Tgetstr("do");			/* move cursor down */
@@ -189,15 +187,16 @@ char *tcbuf;		/* temp area for "uncompil
     XN = tgetflag("xn");		/* then eats next newline? */
     VB = Tgetstr("vb");
     if (!*VB)
-	VB = "\007";
+	VB = __UNCONST("\007");
     CR = Tgetstr("cr");
     if (!*CR) {
 	if (tgetflag("nc") && *UP) {
-	    CR = safemalloc((MEM_SIZE)strlen(UP)+2);
-	    Sprintf(CR,"%s\r",UP);
+	    size_t l = strlen(UP) + 2;
+	    CR = safemalloc(l);
+	    snprintf(CR, l, "%s\r",UP);
 	}
 	else
-	    CR = "\r";
+	    CR = __UNCONST("\r");
     }
     if (LINES <= 0)
 	LINES = 24;
@@ -240,7 +239,7 @@ char *tcbuf;		/* temp area for "uncompil
     }
 
     if (!*DO) {				/* not defined? */
-	myDO = DO = "\n";		/* assume a newline */
+	myDO = DO = __UNCONST("\n");		/* assume a newline */
 	DOsize = 1;
     }
     else {
@@ -257,7 +256,7 @@ char *tcbuf;		/* temp area for "uncompil
 	}
     }
     if (debugging)
-	Fgets(cmbuffer,(sizeof cmbuffer),stdin);
+	fgets(cmbuffer,(sizeof cmbuffer),stdin);
 
     CMsize = comp_tc(cmbuffer,tgoto(CM,20,20),0);
     if (PC != '\0') {
@@ -273,13 +272,13 @@ char *tcbuf;		/* temp area for "uncompil
 		      ospeed == B600 ? 30 :
 	      /* speed is 300 (?) */   15;
 
-    gfillen = ospeed >= B9600 ? (sizeof filler) :
+    gfillen = ospeed >= B9600 ? (int /*XXX: speed_t*/)(sizeof filler) :
 	      ospeed == B4800 ? 13 :
 	      ospeed == B2400 ? 7 :
 	      ospeed == B1200 ? 4 :
-				1+BCsize;
+				(1+BCsize);
     if (ospeed < B2400)
-	lowspeed = TRUE;
+	lowspeed = true;
 
     strcpy(term,ttyname(2));
 
@@ -300,34 +299,30 @@ char *tcbuf;		/* temp area for "uncompil
 
 #ifdef PUSHBACK
 void
-mac_init(tcbuf)
-char *tcbuf;
+mac_init(char *tcbuf)
 {
     char tmpbuf[1024];
 
     tmpfp = fopen(filexp(getval("WARPMACRO",WARPMACRO)),"r");
-    if (tmpfp != Nullfp) {
-	while (fgets(tcbuf,1024,tmpfp) != Nullch) {
+    if (tmpfp != NULL) {
+	while (fgets(tcbuf,1024,tmpfp) != NULL) {
 	    mac_line(tcbuf,tmpbuf,(sizeof tmpbuf));
 	}
-	Fclose(tmpfp);
+	fclose(tmpfp);
     }
 }
 
 void
-mac_line(line,tmpbuf,tbsize)
-char *line;
-char *tmpbuf;
-int tbsize;
+mac_line(char *line, char *tmpbuf, size_t tbsize)
 {
-    Reg1 char *s;
-    Reg2 char *m;
-    Reg3 KEYMAP *curmap;
-    Reg4 int ch;
-    Reg5 int garbage = 0;
-    static char override[] = "\r\nkeymap overrides string\r\n";
+    char *s;
+    char *m;
+    KEYMAP *curmap;
+    int ch;
+    int garbage = 0;
+    static const char override[] = "\r\nkeymap overrides string\r\n";
 
-    if (topmap == Null(KEYMAP*))
+    if (topmap == NULL)
 	topmap = newkeymap();
     if (*line == '#' || *line == '\n')
 	return;
@@ -339,7 +334,7 @@ int tbsize;
     while (*m == ' ' || *m == '\t') m++;
     for (s=tmpbuf,curmap=topmap; *s; s++) {
 	ch = *s & 0177;
-	if (s[1] == '+' && isdigit(s[2])) {
+	if (s[1] == '+' && isdigit((unsigned char)s[2])) {
 	    s += 2;
 	    garbage = (*s & KM_GMASK) << KM_GSHIFT;
 	}
@@ -349,10 +344,10 @@ int tbsize;
 	    if ((curmap->km_type[ch] & KM_TMASK) == KM_STRING) {
 		puts(override);
 		free(curmap->km_ptr[ch].km_str);
-		curmap->km_ptr[ch].km_str = Nullch;
+		curmap->km_ptr[ch].km_str = NULL;
 	    }
 	    curmap->km_type[ch] = KM_KEYMAP + garbage;
-	    if (curmap->km_ptr[ch].km_km == Null(KEYMAP*))
+	    if (curmap->km_ptr[ch].km_km == NULL)
 		curmap->km_ptr[ch].km_km = newkeymap();
 	    curmap = curmap->km_ptr[ch].km_km;
 	}
@@ -367,11 +362,11 @@ int tbsize;
     }
 }
 
-KEYMAP*
-newkeymap()
+static KEYMAP*
+newkeymap(void)
 {
-    Reg1 int i;
-    Reg2 KEYMAP *map;
+    int i;
+    KEYMAP *map;
 
 #ifndef lint
     map = (KEYMAP*)safemalloc(sizeof(KEYMAP));
@@ -379,7 +374,7 @@ newkeymap()
     map = Null(KEYMAP*);
 #endif /* lint */
     for (i=127; i>=0; --i) {
-	map->km_ptr[i].km_km = Null(KEYMAP*);
+	map->km_ptr[i].km_km = NULL;
 	map->km_type[i] = KM_NOTHIN;
     }
     return map;
@@ -390,9 +385,7 @@ newkeymap()
 /* print out a file, stopping at form feeds */
 
 void
-page(filename,num)
-char *filename;
-bool num;
+page(const char *filename, size_t num)
 {
     int linenum = 1;
 
@@ -401,7 +394,7 @@ bool num;
 	while (fgets(spbuf,(sizeof spbuf),tmpfp) != NULL) {
 	    if (*spbuf == '\f') {
 		printf("[Type anything to continue] ");
-		Fflush(stdout);
+		fflush(stdout);
 		getcmd(spbuf);
 		printf("\r\n");
 		if (*spbuf == INTRCH)
@@ -416,19 +409,17 @@ bool num;
 		    printf("%s\r",spbuf);
 	    }
 	}
-	Fclose(tmpfp);
+	fclose(tmpfp);
     }
 }
 
 void
-move(y, x, chadd)
-int y, x;
-int chadd;
+move(int y, int x, int chadd)
 {
-    Reg1 int ydist;
-    Reg2 int xdist;
-    Reg3 int i;
-    Reg4 char *s;
+    int ydist;
+    int xdist;
+    int i;
+    char *s;
 
     ydist = y - real_y;
     xdist = x - real_x;
@@ -466,9 +457,7 @@ int chadd;
 }
 
 void
-do_tc(s,l)
-char *s;
-int l;
+do_tc(const char *s, int l)
 {
     beg_qwrite();
     tputs(s,l,cmstore);
@@ -476,10 +465,7 @@ int l;
 }
 
 int
-comp_tc(dest,s,l)
-char *dest;
-char *s;
-int l;
+comp_tc(char *dest, const char *s, int l)
 {
     maxcmstring = dest;
     tputs(s,l,cmstore);
@@ -487,7 +473,7 @@ int l;
 }
 
 void
-helper()
+helper(void)
 {
     clear();
     mvaddstr(0,4,"h or 4          left");
@@ -514,7 +500,7 @@ helper()
     mvaddstr(21,4,"Q       exit this game.");
     mvaddstr(22,4,"");
     mvaddstr(23,4,"                   [Hit space to continue]");
-    Fflush(stdout);
+    fflush(stdout);
     do {
 	getcmd(spbuf);
     } while (*spbuf != ' ');
@@ -523,25 +509,25 @@ helper()
 }
 
 void
-rewrite()
+rewrite(void)
 {
-    Reg1 int x;
-    Reg2 int y;
-    Reg3 OBJECT *obj;
+    int x;
+    int y;
+    OBJECT *obj;
 
     clear();
     for (y=0; y<YSIZE; y++) {
 	for (x=0; x<XSIZE; x++) {
 	    if (numamoebas && amb[y][x] != ' ')
 		mvaddc(y+1,x*2,amb[y][x]);
-	    if (obj=occupant[y][x]) {
+	    if ((obj = occupant[y][x]) != NULL) {
 		if (obj->image != ' ')
 		    mvaddc(y+1,x*2,obj->image);
 	    }
 	}
     }
-    Sprintf(spbuf,
-    "%-4s E: %4d %2d B: %5d %3d Enemies: %-3d Stars: %-3d Stardate%5d.%1d %9ld",
+    snprintf(spbuf, sizeof(spbuf),
+     "%-4s E: %4d %2d B: %5d %3d Enemies: %-3d Stars: %-3d Stardate%5d.%1d %9ld",
 	"   ", 0, 0, 0, 0, 0, 0, timer/10+smarts*100, timer%10, 0L);
     mvaddstr(0,0,spbuf);
     oldeenergy = oldbenergy = oldcurscore =
@@ -557,16 +543,16 @@ rewrite()
 }
 
 int
-cmstore(ch)
-Reg1 int ch;
+cmstore(int ch)
 {
     *maxcmstring++ = ch;
+    return 0;
 }
 
 /* discard any characters typed ahead */
 
 void
-eat_typeahead()
+eat_typeahead(void)
 {
 #ifdef PUSHBACK
     if (!typeahead && nextin==nextout)	/* cancel only keyboard stuff */
@@ -576,7 +562,7 @@ eat_typeahead()
     {
 #ifdef PENDING
 	while (input_pending())
-	    Read_tty(buf,sizeof(buf));
+	    read_tty(buf,sizeof(buf));
 #else /* this is probably v7, with no rdchk() */
 	ioctl(_tty_ch,TIOCSETP,&_tty);
 #endif
@@ -584,10 +570,10 @@ eat_typeahead()
 }
 
 void
-settle_down()
+settle_down(void)
 {
     dingaling();
-    Fflush(stdout);
+    fflush(stdout);
     sleep(1);
 #ifdef PUSHBACK
     nextout = nextin;			/* empty circlebuf */
@@ -599,13 +585,8 @@ settle_down()
 /* read a character from the terminal, with multi-character pushback */
 
 int
-read_tty(addr,size)
-char *addr;
-int size;	/* ignored for now */
+read_tty(char *addr, ssize_t size)	/* ignored for now */
 {
-#ifdef lint
-    size = size;
-#endif
     if (nextout != nextin) {
 	*addr = circlebuf[nextout++];
 	nextout %= PUSHSIZE;
@@ -633,8 +614,8 @@ int size;	/* ignored for now */
 int
 circfill()
 {
-    Reg1 int howmany;
-    Reg2 int i;
+    int howmany;
+    int i;
 
     assert (nextin == nextout);
     howmany = read(devtty,circlebuf+nextin,metakey?1:PUSHSIZE-nextin);
@@ -658,8 +639,7 @@ circfill()
 #endif /* PENDING */
 
 void
-pushchar(ch)
-char ch;
+pushchar(int ch)
 {
     nextout--;
     if (nextout < 0)
@@ -682,7 +662,7 @@ int size;
 {
     if (is_input) {
 	*addr = pending_ch;
-	is_input = FALSE;
+	is_input = false;
 	return 1;
     }
     else {
@@ -692,7 +672,7 @@ int size;
 	if (metakey) {
 	    if (*addr & 0200) {
 		pending_ch = *addr & 0177;
-		is_input = TRUE;
+		is_input = true;
 		*addr = '\001';
 	    }
 	}
@@ -705,9 +685,7 @@ int size;
 #endif /* PUSHBACK */
 
 int
-read_nd(buff, siz)
-char *buff;
-int siz;
+read_nd(char *buff, size_t siz)
 {
     if (!input_pending())
 	return 0;
@@ -719,24 +697,24 @@ int siz;
 /* get a character into a buffer */
 
 void
-getcmd(whatbuf)
-Reg3 char *whatbuf;
+getcmd(char *wbuf)
 {
 #ifdef PUSHBACK
-    Reg1 KEYMAP *curmap;
-    Reg2 int i;
+    KEYMAP *curmap;
+    int i;
     bool no_macros; 
     int times = 0;			/* loop detector */
     char scrchar;
+    unsigned char *whatbuf = (void *)wbuf;
 
 tryagain:
     curmap = topmap;
 /*    no_macros = (whatbuf != buf && nextin == nextout);  */
-    no_macros = FALSE;
+    no_macros = false;
 #endif
     for (;;) {
 	errno = 0;
-	if (read_tty(whatbuf,1) < 0 && !errno)
+	if (read_tty(wbuf,1) < 0 && !errno)
 	    errno = EINTR;
 #ifdef read_tty
 	if (metakey) {
@@ -756,10 +734,10 @@ tryagain:
 	    *whatbuf &= 0177;
 	    goto got_canonical;
 	}
-	if (curmap == Null(KEYMAP*))
+	if (curmap == NULL)
 	    goto got_canonical;
 	for (i = (curmap->km_type[*whatbuf] >> KM_GSHIFT) & KM_GMASK; i; --i){
-	    Read_tty(&scrchar,1);
+	    read_tty(&scrchar,1);
 	}
 	switch (curmap->km_type[*whatbuf] & KM_TMASK) {
 	case KM_NOTHIN:			/* no entry? */
@@ -769,7 +747,7 @@ tryagain:
 	    goto tryagain;
 	case KM_KEYMAP:			/* another keymap? */
 	    curmap = curmap->km_ptr[*whatbuf].km_km;
-	    assert(curmap != Null(KEYMAP*));
+	    assert(curmap != NULL);
 	    break;
 	case KM_STRING:			/* a string? */
 	    pushstring(curmap->km_ptr[*whatbuf].km_str);
@@ -777,7 +755,7 @@ tryagain:
 		fputs("\r\nmacro loop?\r\n",stdout);
 		settle_down();
 	    }
-	    no_macros = FALSE;
+	    no_macros = false;
 	    goto tryagain;
 	}
 #else
@@ -791,20 +769,19 @@ got_canonical:
     if (*whatbuf == '\r')
 	*whatbuf = '\n';
 #endif
-    if (whatbuf == buf)
+    if (wbuf == buf)
 	whatbuf[1] = FINISHCMD;		/* tell finish_command to work */
 }
 
 #ifdef PUSHBACK
 void
-pushstring(str)
-char *str;
+pushstring(char *str)
 {
-    Reg1 int i;
+    int i;
     char tmpbuf[PUSHSIZE];
-    Reg2 char *s = tmpbuf;
+    char *s = tmpbuf;
 
-    assert(str != Nullch);
+    assert(str != NULL);
     interp(s,PUSHSIZE,str);
     for (i = strlen(s)-1; i >= 0; --i) {
 	s[i] ^= 0200; 
Index: src/games/warp/term.h
diff -u src/games/warp/term.h:1.3 src/games/warp/term.h:1.4
--- src/games/warp/term.h:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/term.h	Tue Nov 10 17:42:19 2020
@@ -42,8 +42,8 @@
 #define mvaddstr(y,x,s) (move((y),(x),0), tmpstr = (s), \
      tmplen = strlen(tmpstr), write(1, tmpstr, tmplen), real_x += tmplen)
 
-EXT int tmplen;
-EXT char *tmpstr;
+EXT size_t tmplen;
+EXT const char *tmpstr;
 /* EXT char tmpchr; */
 
 /* The following macros are like the pseudo-curses macros above, but do
@@ -131,7 +131,7 @@ EXT char INTRCH INIT('\03');
 #	    endif /* RDCHK */
 #	endif /* FIONREAD */
 #   else /* PENDING */
-	??? warp will not work without PENDING
+#	??? warp will not work without PENDING
 #	ifndef lint
 #	    define input_pending() (nextin!=nextout)
 #	else
@@ -162,7 +162,7 @@ EXT char INTRCH INIT('\03');
 		    ??? PENDING is not defined correctly in warp.h
 #		endif
 		EXT int devtty INIT(0);
-		EXT bool is_input INIT(FALSE);
+		EXT bool is_input INIT(false);
 		EXT char pending_ch INIT(0);
 #		ifndef lint
 #		    define input_pending() (is_input || \
@@ -175,7 +175,7 @@ EXT char INTRCH INIT('\03');
 #   else /* PENDING */
 	??? warp will not work without PENDING
 #	define read_tty(addr,size) read(0,addr,size)
-#	define input_pending() (FALSE)
+#	define input_pending() (false)
 #   endif /* PENDING */
 #endif /* PUSHBACK */
 
@@ -189,7 +189,7 @@ EXT int _res_flg INIT(0);
 #endif
 
 EXT int _tty_ch INIT(2);
-EXT bool bizarre INIT(FALSE);			/* do we need to restore terminal? */
+EXT bool bizarre INIT(false);			/* do we need to restore terminal? */
 
 /* terminal mode diddling routines */
 
@@ -245,29 +245,29 @@ EXT bool bizarre INIT(FALSE);			/* do we
  */
 
 #ifdef HAVETERMLIB
-EXT char *BC INIT(Nullch);		/* backspace character */
-EXT char *UP INIT(Nullch);		/* move cursor up one line */
+EXT char *BC INIT(NULL);		/* backspace character */
+EXT char *UP INIT(NULL);		/* move cursor up one line */
 EXT char *myUP;
-EXT char *ND INIT(Nullch);		/* non-destructive cursor right */
+EXT char *ND INIT(NULL);		/* non-destructive cursor right */
 EXT char *myND;
-EXT char *DO INIT(Nullch);		/* move cursor down one line */
+EXT char *DO INIT(NULL);		/* move cursor down one line */
 EXT char *myDO;
-EXT char *CR INIT(Nullch);		/* get to left margin, somehow */
-EXT char *VB INIT(Nullch);		/* visible bell */
-EXT char *CL INIT(Nullch);		/* home and clear screen */
-EXT char *CE INIT(Nullch);		/* clear to end of line */
-EXT char *CM INIT(Nullch);		/* cursor motion -- PWP */
-EXT char *HO INIT(Nullch);		/* home cursor -- PWP */
-EXT char *CD INIT(Nullch);		/* clear to end of display -- PWP */
-EXT char *SO INIT(Nullch);		/* begin standout mode */
-EXT char *SE INIT(Nullch);		/* end standout mode */
+EXT char *CR INIT(NULL);		/* get to left margin, somehow */
+EXT char *VB INIT(NULL);		/* visible bell */
+EXT char *CL INIT(NULL);		/* home and clear screen */
+EXT char *CE INIT(NULL);		/* clear to end of line */
+EXT char *CM INIT(NULL);		/* cursor motion -- PWP */
+EXT char *HO INIT(NULL);		/* home cursor -- PWP */
+EXT char *CD INIT(NULL);		/* clear to end of display -- PWP */
+EXT char *SO INIT(NULL);		/* begin standout mode */
+EXT char *SE INIT(NULL);		/* end standout mode */
 EXT int SG INIT(0);		/* blanks left by SO and SE */
-EXT char *US INIT(Nullch);		/* start underline mode */
-EXT char *UE INIT(Nullch);		/* end underline mode */
-EXT char *UC INIT(Nullch);		/* underline a character, if that's how it's done */
+EXT char *US INIT(NULL);		/* start underline mode */
+EXT char *UE INIT(NULL);		/* end underline mode */
+EXT char *UC INIT(NULL);		/* underline a character, if that's how it's done */
 EXT int UG INIT(0);		/* blanks left by US and UE */
-EXT bool AM INIT(FALSE);		/* does terminal have automatic margins? */
-EXT bool XN INIT(FALSE);		/* does it eat 1st newline after automatic wrap? */
+EXT bool AM INIT(false);		/* does terminal have automatic margins? */
+EXT bool XN INIT(false);		/* does it eat 1st newline after automatic wrap? */
 EXT char PC INIT(0);		/* pad character for use by tputs() */
 EXT short ospeed INIT(0);	/* terminal output speed, for use by tputs() */
 EXT int LINES INIT(0), COLS INIT(0);	/* size of screen */
@@ -293,27 +293,27 @@ EXT char KILLCH;		/* line delete charact
   ????????		/* up to you */
 #endif
 
-void	term_init();
-void	term_set();
+void term_init(void);
+void term_set(char *);
 #ifdef PUSHBACK
-void	pushchar();
-void	mac_init();
-void	mac_line();
+void pushchar(int);
+void mac_init(char *);
+void mac_line(char *, char *, size_t);
 #endif
-void	eat_typeahead();
-void	settle_down();
+void page(const char *filename, size_t);
+void move(int, int, int);
+void do_tc(const char *, int);
+int comp_tc(char *, const char *, int);
+void helper(void);
+void rewrite(void);
+int cmstore(int);
+void eat_typeahead(void);
+void settle_down(void);
 #ifndef read_tty
-    int		read_tty();
+int read_tty(char *, ssize_t);
 #endif
-void	getcmd();
-
-int read_nd();
-void page();
-void move();
-void do_tc();
-int comp_tc();
-void helper();
-void rewrite();
-int cmstore(int);
+int read_nd(char *, size_t);
+void getcmd(char *);
+void pushstring(char *);
 
 #endif
Index: src/games/warp/util.c
diff -u src/games/warp/util.c:1.3 src/games/warp/util.c:1.4
--- src/games/warp/util.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/util.c	Tue Nov 10 17:42:19 2020
@@ -22,23 +22,18 @@
 #include "util.h"
 
 void
-util_init()
+util_init(void)
 {
     ;
 }
 
 void
-movc3(len,src,dest)
+movc3(int len, char *src, char *dest)
 #ifdef vax
-char *dest, *src;
-int len;
 {
     asm("movc3 4(ap),*8(ap),*12(ap)");
 }
 #else
-Reg1 char *dest;
-Reg2 char *src;
-Reg3 int len;
 {
     if (dest <= src) {
 	for (; len; len--) {
@@ -56,20 +51,16 @@ Reg3 int len;
 #endif
 
 void
-no_can_do(what)
-char *what;
+no_can_do(const char *what)
 {
     fprintf(stderr,"Sorry, your terminal is too %s to play warp.\r\n",what);
     finalize(1);
 }
 
 int
-exdis(maxnum)
-int maxnum;
+exdis(int maxnum)
 {
     double temp, temp2;
-    double exp();
-    double log();
 
     temp = (double) maxnum;
 #ifndef lint
@@ -92,34 +83,32 @@ static char nomem[] = "warp: out of memo
 
 /* paranoid version of malloc */
 
-char *
-safemalloc(size)
-MEM_SIZE size;
+void *
+safemalloc(size_t size)
 {
     char *ptr;
 
     ptr = malloc(size?size:1);	/* malloc(0) is NASTY on our system */
-    if (ptr != Nullch)
+    if (ptr != NULL)
 	return ptr;
     else {
 	fputs(nomem,stdout);
 	sig_catcher(0);
     }
     /*NOTREACHED*/
+    return NULL;
 }
 
 /* safe version of string copy */
 
 char *
-safecpy(to,from,len)
-char *to;
-Reg2 char *from;
-Reg1 int len;
+safecpy(char *to, const char *from, size_t len)
 {
-    Reg3 char *dest = to;
+    char *dest = to;
 
-    if (from != Nullch) 
-	for (len--; len && (*dest++ = *from++); len--) ;
+    if (from != NULL) 
+	for (len--; len && (*dest++ = *from++); len--) 
+	    continue;
     *dest = '\0';
     return to;
 }
@@ -127,10 +116,7 @@ Reg1 int len;
 /* copy a string up to some (non-backslashed) delimiter, if any */
 
 char *
-cpytill(to,from,delim)
-Reg2 char *to;
-Reg1 char *from;
-Reg3 int delim;
+cpytill(char *to, const char *from, int delim)
 {
     for (; *from; from++,to++) {
 	if (*from == '\\' && from[1] == delim)
@@ -140,42 +126,40 @@ Reg3 int delim;
 	*to = *from;
     }
     *to = '\0';
-    return from;
+    return __UNCONST(from);
 }
 
 /* return ptr to little string in big string, NULL if not found */
 
 char *
-instr(big, little)
-char *big, *little;
+instr(const char *big, const char *little)
 
 {
-    Reg3 char *t;
-    Reg1 char *s;
-    Reg2 char *x;
+    const char *t;
+    const char *s;
+    const char *x;
 
     for (t = big; *t; t++) {
 	for (x=t,s=little; *s; x++,s++) {
 	    if (!*x)
-		return Nullch;
+		return NULL;
 	    if (*s != *x)
 		break;
 	}
 	if (!*s)
-	    return t;
+	    return __UNCONST(t);
     }
-    return Nullch;
+    return NULL;
 }
 
 /* effective access */
 
 #ifdef SETUIDGID
 int
-eaccess(filename, mod)
-char *filename;
-int mod;
+eaccess(const char *filename, mode_t mod)
 {
-    int protection, euid;
+    mode_t protection;
+    uid_t euid;
     
     mod &= 7;				/* remove extraneous garbage */
     if (stat(filename, &filestat) < 0)
@@ -194,132 +178,30 @@ int mod;
 }
 #endif
 
-/*
- * Get working directory
- */
-
-#ifdef GETWD
-#define	dot	"."
-#define	dotdot	".."
-
-static	char	*name;
-
-static	DIR	*dirp;
-static	int	off;
-static	struct	stat	d, dd;
-static	struct	direct	*dir;
-
-char *
-getwd(np)
-char *np;
-{
-	long rdev, rino;
-
-	*np++ = '/';
-	*np = 0;
-	name = np;
-	off = -1;
-	stat("/", &d);
-	rdev = d.st_dev;
-	rino = d.st_ino;
-	for (;;) {
-		stat(dot, &d);
-		if (d.st_ino==rino && d.st_dev==rdev)
-			goto done;
-		if ((dirp = opendir(dotdot)) == Null(DIR *))
-			prexit("getwd: cannot open ..\r\n");
-		stat(dotdot, &dd);
-		chdir(dotdot);
-		if(d.st_dev == dd.st_dev) {
-			if(d.st_ino == dd.st_ino)
-				goto done;
-			do
-				if ((dir = readdir(dirp)) == Null(struct direct *))
-					prexit("getwd: read error in ..\r\n");
-			while (dir->d_ino != d.st_ino);
-		}
-		else do {
-				if ((dir = readdir(dirp)) == Null(struct direct *))
-					prexit("getwd: read error in ..\r\n");
-				stat(dir->d_name, &dd);
-			} while(dd.st_ino != d.st_ino || dd.st_dev != d.st_dev);
-		cat();
-		closedir(dirp);
-	}
-done:
-	name--;
-	if (chdir(name) < 0) {
-		printf("getwd: can't cd back to %s\r\n",name);
-		sig_catcher(0);
-	}
-	return (name);
-}
-
 void
-cat()
-{
-	Reg1 int i;
-	Reg2 int j;
-
-	i = -1;
-	while (dir->d_name[++i] != 0);
-	if ((off+i+2) > 1024-1)
-		return;
-	for(j=off+1; j>=0; --j)
-		name[j+i+1] = name[j];
-	if (off >= 0)
-		name[i] = '/';
-	off=i+off+1;
-	name[off] = 0;
-	for(--i; i>=0; --i)
-		name[i] = dir->d_name[i];
-}
-
-void
-prexit(cp)
-char *cp;
+prexit(const char *cp)
 {
 	write(2, cp, strlen(cp));
 	sig_catcher(0);
 }
-#else
-char *
-getwd(np)			/* shorter but slower */
-char *np;
-{
-    FILE *popen();
-    FILE *pipefp = popen("/bin/pwd","r");
-
-    if (pipefp == Nullfp) {
-	printf("Can't run /bin/pwd\r\n");
-	finalize(1);
-    }
-    Fgets(np,512,pipefp);
-    np[strlen(np)-1] = '\0';	/* wipe out newline */
-    pclose(pipefp);
-    return np;
-}
-#endif
 
 /* copy a string to a safe spot */
 
 char *
-savestr(str)
-char *str;
+savestr(const char *str)
 {
-    Reg1 char *newaddr = safemalloc((MEM_SIZE)(strlen(str)+1));
+    char *newaddr = safemalloc((size_t)(strlen(str)+1));
 
-    strcpy(newaddr,str);
+    strcpy(newaddr, str);
     return newaddr;
 }
 
 char *
-getval(nam,def)
-char *nam,*def;
+getval(const char *nam, const char *def)
 {
-    char *val;
+    const char *val;
 
-    if ((val = getenv(nam)) == Nullch || !*val)
+    if ((val = getenv(nam)) == NULL || !*val)
 	val = def;
-    return val;
+    return __UNCONST(val);
 }
Index: src/games/warp/util.h
diff -u src/games/warp/util.h:1.3 src/games/warp/util.h:1.4
--- src/games/warp/util.h:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/util.h	Tue Nov 10 17:42:19 2020
@@ -15,7 +15,7 @@
 #if RANDBITS == 15	/* 15 bits of rand()? */
 #define RANDRAND 268435456.0 /* that's 2**28 */
 #define HALFRAND 0x4000 /* that's 2**14 */
-int rand();
+int rand(void);
 #define myrand() (rand()&32767)
 #define rand_mod(m) ((int)((double)myrand() / 32768.0 * ((double)(m))))
 /* pick number in 0..m-1 */
@@ -50,10 +50,6 @@ long rand();
 EXT struct timeb timebuf;
 #define roundsleep(x) (ftime(&timebuf),sleep(timebuf.millitm > 500?x+1:x))
 
-void movc3();
-void no_can_do();
-int exdis();
-
 #define waiting 0
 
 #ifdef NOTDEF
@@ -69,16 +65,17 @@ EXT int len_last_line_got INIT(0);
 #define MD_FILE 1
 #endif
 
-void util_init();
-char	*safemalloc();
-char	*safecpy();
-char	*cpytill();
-char	*instr();
+void util_init(void);
+void movc3(int, char *, char *);
+void no_can_do(const char *);
+int exdis(int);
+void *safemalloc(size_t size);
+char *safecpy(char *, const char *, size_t);
+char *cpytill(char *, const char *, int);
+char *instr(const char *, const char *);
 #ifdef SETUIDGID
-    int		eaccess();
+int eaccess(const char *, mode_t);
 #endif
-char	*getwd();
-void	cat();
-void	prexit();
-char	*savestr();
-char	*getval();
+void prexit(const char *);
+char *savestr(const char *);
+char *getval(const char *, const char *);
Index: src/games/warp/version.c
diff -u src/games/warp/version.c:1.3 src/games/warp/version.c:1.4
--- src/games/warp/version.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/version.c	Tue Nov 10 17:42:19 2020
@@ -15,7 +15,7 @@
 /* Print out the version number. */
 
 void
-version()
+version(void)
 {
     extern char rcsid[];
 
Index: src/games/warp/warp.c
diff -u src/games/warp/warp.c:1.3 src/games/warp/warp.c:1.4
--- src/games/warp/warp.c:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/warp.c	Tue Nov 10 17:42:19 2020
@@ -133,14 +133,10 @@ char rcsid[] = "@(#)Header: warp.c,v 7.0
 #include "weapon.h"
 
 int
-main(argc,argv)
-int argc;
-char *argv[];
+main(int argc, char *argv[])
 {
     char tmp, *s, *tcbuf;
 
-    int i;
-
     FILE *savfil;
 
 #if RANDBITS > 16
@@ -159,7 +155,6 @@ char *argv[];
     exit(1);
 #endif
 #endif
-rand_ok:
 
 #ifdef lint  /* to suppress "defined but never used" */
 # ifdef SIGTSTP
@@ -174,22 +169,22 @@ rand_ok:
 	for (s = argv[0]+1; *s != '\0'; s++)
 	    switch (*s) {
 	    case '&':
-		amoebaspec = TRUE;
-		beginner = TRUE;
+		amoebaspec = true;
+		beginner = true;
 		break;
 	    case 'A':
-		apolspec = TRUE;
-		beginner = TRUE;
+		apolspec = true;
+		beginner = true;
 		break;
 	    case 'b':
-		beginner = TRUE;
+		beginner = true;
 		break;
 	    case 'C':
-		crushspec = TRUE;
-		beginner = TRUE;
+		crushspec = true;
+		beginner = true;
 		break;
 	    case 'D':
-		debugging = TRUE;
+		debugging = true;
 #ifdef DEBUGGING
 		debug = atoi(++s);
 #endif
@@ -204,49 +199,49 @@ rand_ok:
 		if (ismarts > 99)
 		    ismarts = 99;
 		if (ismarts > 40)
-		    beginner = TRUE;
+		    beginner = true;
 		s += strlen(s)-1;
 		break;
 	    case 'E':
-		klingspec = TRUE;
-		beginner = TRUE;
+		klingspec = true;
+		beginner = true;
 		s++;
 		if (*s == '=') s++;
 		inumenemies = atoi(s);
 		s += strlen(s)-1;
 		break;
 	    case 'F':
-		friendspec = TRUE;
-		beginner = TRUE;
+		friendspec = true;
+		beginner = true;
 		s++;
 		if (*s == '=') s++;
 		inumfriends = atoi(s);
 		s += strlen(s)-1;
 		break;
 	    case 'G':
-		gornspec = TRUE;
-		beginner = TRUE;
+		gornspec = true;
+		beginner = true;
 		break;
 	    case 'l':
-		lowspeed = TRUE;
+		lowspeed = true;
 		break;
 	    case 'm':
-		metakey = TRUE;
+		metakey = true;
 		break;
 	    case 'M':
-		massacre = TRUE;
+		massacre = true;
 		break;
 	    case 'P':
-		piratespec = TRUE;
-		beginner = TRUE;
+		piratespec = true;
+		beginner = true;
 		s++;
 		if (*s == '=') s++;
 		inumpirates = atoi(s);
 		s += strlen(s)-1;
 		break;
 	    case 'S':
-		prespec = TRUE;
-		beginner = TRUE;
+		prespec = true;
+		beginner = true;
 		s++;
 		if (*s == '=') s++;
 		if (*s)
@@ -256,26 +251,26 @@ rand_ok:
 		s += strlen(s)-1;
 		break;
 	    case 'R':
-		romspec = TRUE;
-		beginner = TRUE;
+		romspec = true;
+		beginner = true;
 		break;
 	    case '*':
-		starspec = TRUE;
-		beginner = TRUE;
+		starspec = true;
+		beginner = true;
 		s++;
 		if (*s == '=') s++;
 		inumstars = atoi(s);
 		s += strlen(s)-1;
 		break;
 	    case 's':
-		scorespec = TRUE;
+		scorespec = true;
 		break;
 	    case 'T':
-		tholspec = TRUE;
-		beginner = TRUE;
+		tholspec = true;
+		beginner = true;
 		break;
 	    case 'x':
-		experimenting = TRUE;
+		experimenting = true;
 		break;
 	    case 'v':
 		version();
@@ -303,7 +298,7 @@ rand_ok:
     intrp_init(tcbuf);
 
     if (chdir(warplib) < 0)
-	fprintf(stderr,nocd,warplib);
+	fprintf(stderr,NOCD,warplib);
 
     term_init();
 
@@ -326,7 +321,7 @@ rand_ok:
     srand(getpid());
 
     do {
-	for (keepgoing = TRUE;;) {
+	for (keepgoing = true;;) {
 	    if (!experimenting) {
 		if ((savfil = fopen(savefilename,"w")) == NULL) {
 		    resetty();
@@ -349,7 +344,7 @@ rand_ok:
 		);
 		fprintf(savfil,"         running on %s, process #%d\n",
 		    term+5,getpid());
-		Fclose(savfil);
+		fclose(savfil);
 	    }
 
 	    lastscore = totalscore;
@@ -358,7 +353,7 @@ rand_ok:
 	    cumsmarts += smarts;
 	    wavescore();
 	    if (numents<=0 && numbases<=0)
-		keepgoing = FALSE;
+		keepgoing = false;
 	  if (!keepgoing) break;
 	    do {
 		if (experimenting) {
@@ -370,7 +365,7 @@ rand_ok:
 		      "[Hit space to continue, 's' to save, 'q' to quit]");
 		}
 		sleep(1);
-		Fflush(stdout);
+		fflush(stdout);
 		eat_typeahead();
 		getcmd(&tmp);
 		if (tmp == BREAKCH || tmp == INTRCH) {
Index: src/games/warp/warp.h
diff -u src/games/warp/warp.h:1.3 src/games/warp/warp.h:1.4
--- src/games/warp/warp.h:1.3	Tue Nov 10 03:49:08 2020
+++ src/games/warp/warp.h	Tue Nov 10 17:42:19 2020
@@ -15,17 +15,21 @@
 #ifndef WARP_H
 #define WARP_H
 
-extern int errno;
-
 #include "config.h"	/* generated by Configure script */
 
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+#include <sys/ioctl.h>
+
 #include <term.h>
+#include <math.h>
 #include <stdio.h>
 #include <signal.h>
+#include <fcntl.h>
 #include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <errno.h> 
+#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -136,13 +140,6 @@ EXT char amb[YSIZE][XSIZE];
 
 /* some handy defs */
 
-#define bool char
-#define TRUE (1)
-#define FALSE (0)
-#define Null(t) ((t)0)
-#define Nullch Null(char *)
-#define Nullfp Null(FILE *)
-
 #define Ctl(ch) (ch & 037)
 
 #define strNE(s1,s2) (strcmp(s1,s2))
@@ -201,8 +198,8 @@ EXT char amb[YSIZE][XSIZE];
 #   define ROOTID 0        /* uid of superuser */
 #endif
 
-#   define sigset Signal
-#   define sigignore(sig) Signal(sig,SIG_IGN)
+#   define sigset signal
+#   define sigignore(sig) signal(sig,SIG_IGN)
 
 #ifndef LOGDIRFIELD
 #   define LOGDIRFIELD 6		/* Which field (origin 1) is the */
@@ -299,8 +296,6 @@ EXT char amb[YSIZE][XSIZE];
 
 /* typedefs */
 
-typedef unsigned int	MEM_SIZE;	/* for passing to malloc */
-
 /* *** end of the machine dependent stuff *** */
 
 /* GLOBAL THINGS */
@@ -311,15 +306,9 @@ EXT struct stat filestat;
 
 /* various things of type char */
 
-char	*index();
-char	*rindex();
-char	*getenv();
-char	*strcat();
-char	*strcpy();
-
 EXT char buf[LBUFLEN+1];	/* general purpose line buffer */
 
-EXT char *cwd INIT(Nullch);		/* current working directory */
+EXT char *cwd INIT(NULL);		/* current working directory */
 
 /* switches */
 
@@ -330,13 +319,13 @@ EXT char *cwd INIT(Nullch);		/* current 
 
 #ifdef VERBOSE
 #   ifdef TERSE
-	EXT bool verbose INIT(TRUE);			/* +t */
+	EXT bool verbose INIT(true);			/* +t */
 #   endif
 #endif
 
 /* miscellania */
 
-EXT FILE *tmpfp INIT(Nullfp);	/* scratch fp */
+EXT FILE *tmpfp INIT(NULL);	/* scratch fp */
 
 #define NOMARKING 0
 #define STANDOUT 1
@@ -349,38 +338,36 @@ EXT char readerr[] INIT("warp read error
 EXT char cantopen[] INIT("Can't open %s\r\n");
 
 #ifdef VERBOSE
-    EXT char nocd[] INIT("Can't chdir to directory %s\r\n");
+#define NOCD "Can't chdir to directory %s\r\n"
 #else
-    EXT char nocd[] INIT("Can't find %s\r\n");
+#define NOCD "Can't find %s\r\n"
 #endif
 
-extern int errno;
+EXT bool justonemoretime INIT(true);
+EXT bool keepgoing INIT(true);
 
-EXT bool justonemoretime INIT(TRUE);
-EXT bool keepgoing INIT(TRUE);
-
-EXT bool friendspec INIT(FALSE);
-EXT bool piratespec INIT(FALSE);
-EXT bool amoebaspec INIT(FALSE);
-EXT bool starspec INIT(FALSE);
-EXT bool klingspec INIT(FALSE);
-EXT bool apolspec INIT(FALSE);
-EXT bool crushspec INIT(FALSE);
-EXT bool romspec INIT(FALSE);
-EXT bool prespec INIT(FALSE);
-EXT bool tholspec INIT(FALSE);
-EXT bool gornspec INIT(FALSE);
-EXT bool beginner INIT(FALSE);
-EXT bool massacre INIT(FALSE);
-EXT bool lowspeed INIT(FALSE);
-EXT bool debugging INIT(FALSE);
-EXT bool didkill INIT(FALSE);
-EXT bool experimenting INIT(FALSE);
-EXT bool scorespec INIT(FALSE);
-EXT bool metakey INIT(FALSE);
+EXT bool friendspec INIT(false);
+EXT bool piratespec INIT(false);
+EXT bool amoebaspec INIT(false);
+EXT bool starspec INIT(false);
+EXT bool klingspec INIT(false);
+EXT bool apolspec INIT(false);
+EXT bool crushspec INIT(false);
+EXT bool romspec INIT(false);
+EXT bool prespec INIT(false);
+EXT bool tholspec INIT(false);
+EXT bool gornspec INIT(false);
+EXT bool beginner INIT(false);
+EXT bool massacre INIT(false);
+EXT bool lowspeed INIT(false);
+EXT bool debugging INIT(false);
+EXT bool didkill INIT(false);
+EXT bool experimenting INIT(false);
+EXT bool scorespec INIT(false);
+EXT bool metakey INIT(false);
 
 EXT bool bombed_out;
-EXT bool panic INIT(FALSE);
+EXT int panic INIT(0);
 EXT bool madgorns;
 
 EXT int madfriends;
@@ -436,17 +423,6 @@ EXT int yamblast;
 EXT int xamblast;
 EXT int ambsize;
 
-EXT char spbuf[512];
-
-#define Fclose (void)fclose
-#define Fflush (void)fflush
-#define Fgets (void)fgets
-#define Sprintf (void)sprintf
-#define Signal (void)signal
-#define Safecpy (void)safecpy
-#define Cpytill (void)cpytill
-#define Tract (void)tract
-#define Make_object (void)make_object
-#define Read_tty (void)read_tty
+EXT char spbuf[1024];
 
 #endif

Reply via email to