diff --git a/lang/basic/lib/abs.c b/lang/basic/lib/abs.c
index 6e7d375ac..00f682942 100644
--- a/lang/basic/lib/abs.c
+++ b/lang/basic/lib/abs.c
@@ -5,11 +5,11 @@
  * See the copyright notice in the ACK home directory, in the file "Copyright".
  */
 
-long _abl(i) long i;
+long _abl(long i)
 {
 	return( i>=0?i:-i);
 }
-double _abr(f) double f;
+double _abr(double f)
 {	
 	return( f>=0.0?f: -f);
 }
diff --git a/lang/basic/lib/asc.c b/lang/basic/lib/asc.c
index 293f9bf58..3e3585de9 100644
--- a/lang/basic/lib/asc.c
+++ b/lang/basic/lib/asc.c
@@ -2,8 +2,7 @@
 
 /* $Id$ */
 
-int _asc(str)
-String *str;
+int _asc(String* str)
 {
 	if(str==0 || str->strval==0)
 		error(3);
diff --git a/lang/basic/lib/asrt.c b/lang/basic/lib/asrt.c
index 17cf34c7a..8d0b40b86 100644
--- a/lang/basic/lib/asrt.c
+++ b/lang/basic/lib/asrt.c
@@ -1,6 +1,7 @@
-/* $Id$ */
+#include <stdio.h>
+#include <stdlib.h>
 
-asrt(b)
+void asrt(int b)
 {
 	if(!b){
 		printf("ASSERTION ERROR\n");
diff --git a/lang/basic/lib/chr.c b/lang/basic/lib/chr.c
index 81d3e799c..5825ec1e6 100644
--- a/lang/basic/lib/chr.c
+++ b/lang/basic/lib/chr.c
@@ -2,8 +2,7 @@
 
 /* $Id$ */
 
-String *_chr(i)
-int i;
+String *_chr(int i)
 {
 	String	*s;
 	char	buf[2];
diff --git a/lang/basic/lib/conversion.c b/lang/basic/lib/conversion.c
index f4774b9bf..e65650fb6 100644
--- a/lang/basic/lib/conversion.c
+++ b/lang/basic/lib/conversion.c
@@ -1,6 +1,6 @@
 /* $Id$ */
 
-int _cint(f) double f;
+int _cint(double f)
 {
 	int r;
 	if( f<-32768 || f>32767) error(4);
@@ -10,8 +10,7 @@ int _cint(f) double f;
 	return(r);
 }
 
-double _trunc(f)
-double f;
+double _trunc(double f)
 {
 	long d;
 	d=f;
@@ -19,7 +18,7 @@ double f;
 	return( f );
 }
 
-double _fcint(f) double f;
+double _fcint(double f)
 {
 	long r;
 	if(f<0){
@@ -29,8 +28,7 @@ double _fcint(f) double f;
 	f=r;
 	return(f);
 }
-int _fix(f)
-double f;
+int _fix(double f)
 {
 	int r;
 
diff --git a/lang/basic/lib/error.c b/lang/basic/lib/error.c
index becc69d7a..4ab981639 100644
--- a/lang/basic/lib/error.c
+++ b/lang/basic/lib/error.c
@@ -52,8 +52,7 @@ char *errortable[255]={
 0
 };
 
-error(index)
-int	index;
+void error(int index)
 {
 	_setline();
 	if( index<0 || index >40 )
diff --git a/lang/basic/lib/file.c b/lang/basic/lib/file.c
index a227e3927..f6ba63cf1 100644
--- a/lang/basic/lib/file.c
+++ b/lang/basic/lib/file.c
@@ -18,8 +18,7 @@ int	_chann		= -1;
 FILE	*_chanrd	= stdin;
 FILE	*_chanwr	= stdout;
 
-_setchan(index)
-int index;
+void _setchan(int index)
 {
 #ifdef DEBUG
 	printf("setchannel %d\n",index);
@@ -38,7 +37,7 @@ int index;
 	_chanrd= _chanwr= _fdtable[index].fd;
 }
 
-_asschn()
+void _asschn(void)
 {
 #ifdef DEBUG
 	printf("_asschn %d\n",_chann);
@@ -55,17 +54,14 @@ _asschn()
 		error(2);
 }
 
-_clochn(nr)
-int nr;
+void _clochn(int nr)
 {
 	if( nr<1 || nr >15 || _fdtable[nr].fd==0) error(3);
 	fclose(_fdtable[nr].fd);
 	_fdtable[nr].fd=0; _fdtable[nr].fname=0;
 }
 
-_opnchn(reclen,fname,mode)
-String *mode,*fname;
-int	reclen;
+void _opnchn(int reclen, String* fname, String* mode)
 {
 	/* channel has been set */
 	FILE *f;
@@ -110,8 +106,7 @@ int	reclen;
 #endif
 }
 
-_ioeof(channel)
-int channel;
+int _ioeof(int channel)
 {
 	FILE *fd;
 	char c;
@@ -125,7 +120,7 @@ int channel;
 	return(0);
 }
 
-_close()
+void _close(void)
 {
 	/* close all open files */
 	int i;
diff --git a/lang/basic/lib/hlt.c b/lang/basic/lib/hlt.c
index 20f4d5276..c0d7f7511 100644
--- a/lang/basic/lib/hlt.c
+++ b/lang/basic/lib/hlt.c
@@ -1,12 +1,11 @@
 #include <stdlib.h>
 
-_hlt(nr)
-int nr;
+void _hlt(int nr)
 {
 	exit(nr);
 }
 
-_goto_err()
+void _goto_err(void)
 {
 	error(3);
 }
diff --git a/lang/basic/lib/io.c b/lang/basic/lib/io.c
index e0d7581f0..842cd16e5 100644
--- a/lang/basic/lib/io.c
+++ b/lang/basic/lib/io.c
@@ -10,8 +10,7 @@
 
 int	_width = 75, _pos=0, _zonewidth=15;
 
-_out(str)
-char *str;
+void _out(char* str)
 {
 	int pos;
 
@@ -27,7 +26,7 @@ char *str;
 	else _fdtable[_chann].pos= pos;
 }
 
-_outnl()
+void _outnl(void)
 {
 	fputc('\n',_chanwr);
 	if( _chann == -1)
@@ -35,7 +34,7 @@ _outnl()
 	else
 		_fdtable[_chann].pos=0;
 }
-_zone()
+void _zone(void)
 {
 	/* go to next zone */
 	int pos;
@@ -55,8 +54,7 @@ _zone()
 	if( _chann== -1) _pos=pos;
 	else _fdtable[_chann].pos= pos;
 }
-_in(buf)
-char *buf;
+void _in(char* buf)
 {
 	register int holder ;
 	char *c;
@@ -77,15 +75,13 @@ char *buf;
 		_pos=pos;
 	} else _fdtable[_chann].pos= pos;
 }
-_tab(x)
-int x;
+void _tab(int x)
 {
 	if( x> _width) error(3);
 	if( x< _pos) _outnl();
 	_spc(x-_pos);
 }
-_spc(x)
-int x;
+void _spc(int x)
 {
 	while(x-->0) _out(" ");
 }
diff --git a/lang/basic/lib/mki.c b/lang/basic/lib/mki.c
index 98de092be..ce2822c8c 100644
--- a/lang/basic/lib/mki.c
+++ b/lang/basic/lib/mki.c
@@ -2,8 +2,7 @@
 
 /* $Id$ */
 
-String *_mki(i)
-long i;
+String *_mki(long i)
 {
 	char *buffer ="    ";
 	String *s;
@@ -12,8 +11,7 @@ long i;
 	* ( (long *)s->strval ) = i ;
 	return(s);
 }
-String *_mkd(d)
-double d;
+String *_mkd(double d)
 {
 	char *buffer ="        ";
 	String *s;
@@ -22,13 +20,11 @@ double d;
 	* ( (double *)s->strval ) = d ;
 	return(s);
 }
-long _cvi(s)
-String *s;
+long _cvi(String* s)
 {
 	return *( (long *) s->strval) ;
 }
-double _cvd(s)
-String *s;
+double _cvd(String* s)
 {
 	return *( (double *) s->strval) ;
 }
diff --git a/lang/basic/lib/oct.c b/lang/basic/lib/oct.c
index ea73bc11d..04a0c34e0 100644
--- a/lang/basic/lib/oct.c
+++ b/lang/basic/lib/oct.c
@@ -4,16 +4,14 @@
 
 /* $Id$ */
 
-String *_oct(i)
-int i;
+String *_oct(int i)
 {
 	char buffer[30];
 	sprintf(buffer,"%o",i);
 	return( (String *)_newstr(buffer));
 }
 
-String *_hex(i)
-int i;
+String *_hex(int i)
 {
 	char buffer[30];
 
@@ -21,8 +19,7 @@ int i;
 	return( (String *)_newstr(buffer));
 }
 
-String *_nstr(f)
-	double f;
+String *_nstr(double f)
 {
 	char buffer[80];
 
diff --git a/lang/basic/lib/peek.c b/lang/basic/lib/peek.c
index d4d629d1e..a8810f8b8 100644
--- a/lang/basic/lib/peek.c
+++ b/lang/basic/lib/peek.c
@@ -1,7 +1,6 @@
 /* $Id$ */
 
-int peek(addr)
-int addr;
+int peek(int addr)
 {
 	/* this can not work properly for machines in which the 
 	   POINTERSIZE differs from the integer size
@@ -17,8 +16,7 @@ int addr;
 	return(i);
 }
 
-_poke(i,j)
-int i,j;
+void _poke(int i, int j)
 {
 	char *p;
 	p= (char *) i;
diff --git a/lang/basic/lib/print.c b/lang/basic/lib/print.c
index a4bdebfc1..d59b58283 100644
--- a/lang/basic/lib/print.c
+++ b/lang/basic/lib/print.c
@@ -7,19 +7,18 @@
 
 /* Here all routine to generate terminal oriented output is located */
 
-_qstmark()
+void _qstmark(void)
 {
 	/* prompt for terminal input */
 	putchar('?');
 }
 
-_nl()
+void _nl(void)
 {
 	_asschn();
 	_outnl();
 }
-_prinum(i)
-int i;
+void _prinum(int i)
 {
 	char	buffer[40];
 
@@ -29,9 +28,7 @@ int i;
 	else	sprintf(buffer,"-%d ",-i);
 	_out(buffer);
 }
-_str(f,buffer)
-double f;
-char *buffer;
+void _str(double f, char* buffer)
 {
 	register char *c = buffer;
 	int eformat = 0;
@@ -59,8 +56,7 @@ char *buffer;
 		if( *c=='.') *c=0;
 	}
 }
-_prfnum(f)
-double f;
+void _prfnum(double f)
 {
 	/* BASIC strings trailing zeroes */
 	char	buffer[100];
@@ -72,8 +68,7 @@ double f;
 	strcat(buffer," ");
 	_out(buffer);
 }
-_prstr(str)
-String *str;
+void _prstr(String* str)
 {
 	_asschn();
 	if( str==0)	_out("<null>");
diff --git a/lang/basic/lib/random.c b/lang/basic/lib/random.c
index 17340eddb..2d47e53d4 100644
--- a/lang/basic/lib/random.c
+++ b/lang/basic/lib/random.c
@@ -5,7 +5,7 @@
 #define EM_WSIZE _EM_WSIZE
 #endif
 
-_randomi()
+void _randomi(void)
 {
 	int i;
 	_setchan(-1);
@@ -14,12 +14,11 @@ _randomi()
 	_setrand(i);
 }
 
-_setrand(i)
-	int i;
+void _setrand(int i)
 {
 	srand(i);
 }
-double _rnd(d) double d;
+double _rnd(double d)
 {
 	double f; f= (int) rand();
 	return(f/
diff --git a/lang/basic/lib/read.c b/lang/basic/lib/read.c
index e1e4d3893..ac8bba3c9 100644
--- a/lang/basic/lib/read.c
+++ b/lang/basic/lib/read.c
@@ -4,14 +4,14 @@
 
 /* $Id$ */
 
-_readln()
+void _readln(void)
 {
 	register int c;
 	while( (c=fgetc(_chanrd)) != EOF && c!= '\n')
 		;
 }
 
-readskip()
+void readskip(void)
 {
 	register int c;
 #ifdef DEBUG
@@ -20,8 +20,7 @@ readskip()
 	while( (c=fgetc(_chanrd)) != EOF && c!= ',' && c!= '\n')
 		;
 }
-_readint(addr)
-int *addr;
+void _readint(int* addr)
 {
 	int i;
 	char	buf[1024];
@@ -45,8 +44,7 @@ int *addr;
 		error(40);
 	}else  { readskip(); *addr=i;}
 }
-_readflt(addr)
-double *addr;
+void _readflt(double* addr)
 {
 	double f;
 	char buf[1024];
@@ -69,8 +67,7 @@ double *addr;
 		error(40);
 	}else  { readskip(); *addr=f;}
 }
-_readstr(s)
-String **s;
+void _readstr(String** s)
 {
 	char buffer[1024];
 	register int kar ;
@@ -130,8 +127,7 @@ String **s;
 
 extern int _seektab[];
 
-_restore(line)
-int line;
+void _restore(int line)
 {
 	int nr;
 	char buffer[1024];
@@ -155,8 +151,7 @@ int line;
 		while(nr-- >0 ) fgets(buffer,1024,_chanrd);
 	}
 }
-_rdline(s)
-String **s;
+void _rdline(String** s)
 {
 	char buffer[1024];
 	if( fgets(buffer,1024,_chanrd) == 0)
diff --git a/lang/basic/lib/return.c b/lang/basic/lib/return.c
index 15798f9d4..a5126bdc6 100644
--- a/lang/basic/lib/return.c
+++ b/lang/basic/lib/return.c
@@ -5,8 +5,7 @@
 int _gotable[MAXNESTING];
 int topstk=0;
 
-_gosub(x)
-int x;
+void _gosub(int x)
 {
 	/* administer gosub */
 #ifdef DEBUG
@@ -16,7 +15,7 @@ int x;
 	_gotable[topstk]= x;
 	topstk++;
 }
-_retstmt()
+int _retstmt(void)
 {
 	/* make sure that a return label index is on top
 	  of the stack */
diff --git a/lang/basic/lib/salloc.c b/lang/basic/lib/salloc.c
index ef221a273..89bb705c5 100644
--- a/lang/basic/lib/salloc.c
+++ b/lang/basic/lib/salloc.c
@@ -1,7 +1,6 @@
 #include <stdlib.h>
 
-char * salloc(length)
-unsigned length;
+char * salloc(unsigned length)
 {
 	char *c, *s;
 	c= malloc(length);
@@ -10,8 +9,7 @@ unsigned length;
 	return(c);
 }
 
-sfree(c)
-char *c;
+void sfree(char* c)
 {
 	if( !c ) return;
 	free(c);
diff --git a/lang/basic/lib/sgn.c b/lang/basic/lib/sgn.c
index 30eeb8a95..8c1d57bf4 100644
--- a/lang/basic/lib/sgn.c
+++ b/lang/basic/lib/sgn.c
@@ -1,15 +1,13 @@
 /* $Id$ */
 
-_sgn(v)
-double v;
+int _sgn(double v)
 {
 	if( v>0) return(1);
 	if( v<0) return(-1);
 	return(0);
 }
 
-_forsgn(v)
-double v;
+int _forsgn(double v)
 {
 	if (v >= 0) return 1;
 	return -1;
diff --git a/lang/basic/lib/string.c b/lang/basic/lib/string.c
index 4ccc69191..10dfe9e80 100644
--- a/lang/basic/lib/string.c
+++ b/lang/basic/lib/string.c
@@ -9,14 +9,12 @@
 
 extern char *salloc() ;
 
-_length(str)
-String *str;
+int _length(String* str)
 {
 	okr(str);
 	return(str->strlength);
 }
-String *_newstr(str)
-char *str;
+String *_newstr(char* str)
 {
 	String *s;
 	okr(str);
@@ -27,15 +25,13 @@ char *str;
 	strcpy(s->strval,str);
 	return(s);
 }
-_incstr(src)
-String *src;
+void _incstr(String* src)
 {
 	/* one more variable uses the string */
 	ok(src);
 	src->strcount++;
 }
-_decstr(str)
-String *str;
+void _decstr(String* str)
 {
 	ok(str);
 	/* Strings in ROM are initialized with this count */
@@ -43,8 +39,7 @@ String *str;
 	str->strcount--;
 	if(str->strcount<=0) _delstr(str);
 }
-_strcpy(dst,src)
-String *src,*dst;
+void _strcpy(String* dst, String* src)
 {
 	ok(src);
 	ok(dst);
@@ -52,15 +47,13 @@ String *src,*dst;
 	*dst = *src;
 	_incstr(src);
 }
-_delstr(src)
-String *src;
+void _delstr(String* src)
 {
 	ok(src);
 	sfree(src->strval);
 	sfree((char *)src);
 }
-String *_concat(s1,s2)
-String *s1,*s2;
+String *_concat(String* s1,String* s2)
 {
 	String *s;
 	int length;
@@ -73,16 +66,13 @@ String *s1,*s2;
 	strcat(s->strval,s1->strval);
 	return(s);
 }
-_strcomp(s1,s2)
-String *s1,*s2;
+int _strcomp(String* s1,String* s2)
 {
 	okr(s1);okr(s2);
 	return(strcmp(s2->strval,s1->strval));
 }
 
-String *_left(size,s)
-String *s;
-int	size;
+String *_left(int size, String* s)
 {
 	String *ns;
 	int i;
@@ -99,8 +89,7 @@ int	size;
 	return(ns);
 }
 
-String *_space(d)
-int d;
+String *_space(int d)
 {
 	String *s;
 	int i,len;
@@ -116,11 +105,10 @@ int d;
 	return(s);
 }
 
-String *_strascii()
+String *_strascii(void)
 {
 }
-String *_string(f, d)
-double	d,f;
+String *_string(double f, double d)
 {
 	int i,j;
 	String *s;
@@ -136,9 +124,7 @@ double	d,f;
 		s->strval[i]= j;
 	return(s);
 }
-_midstmt(s2,i1,i2,s)
-int i1,i2;
-String *s, *s2;
+void _midstmt(String* s2, int i1, int i2, String* s)
 {
 	int l;
 
@@ -150,9 +136,7 @@ String *s, *s2;
 	if( i1>l ) i1=l;
 	strncpy(s->strval+i2-1,s2->strval,i1);
 }
-String *_mid(i1,i2,s)
-int i1,i2;
-String *s;
+String *_mid(int i1, int i2, String* s)
 {
 	int l;
 	String *s2;
@@ -170,9 +154,7 @@ String *s;
 	return(s2);
 }
 
-String *_right(length,str)
-String *str;
-int length;
+String *_right(int length, String* str)
 {
 	String *s;
 	int i;
diff --git a/lang/basic/lib/swap.c b/lang/basic/lib/swap.c
index a9b745435..17ec21b4b 100644
--- a/lang/basic/lib/swap.c
+++ b/lang/basic/lib/swap.c
@@ -2,8 +2,7 @@
 
 /* $Id$ */
 
-_intswap(i1,i2)
-int *i1,*i2;
+void _intswap(int* i1, int* i2)
 {
 	int i3;
 	i3= *i1;
@@ -11,8 +10,7 @@ int *i1,*i2;
 	*i2=i3;
 }
 
-_fltswap(i1,i2)
-double *i1,*i2;
+void _fltswap(double* i1, double* i2)
 {
 	double i3;
 	i3= *i1;
@@ -20,8 +18,7 @@ double *i1,*i2;
 	*i2=i3;
 }
 
-_strswap(s1,s2)
-String **s1,**s2;
+void _strswap(String** s1, String** s2)
 {
 	String *s;
 	s= *s1;
diff --git a/lang/basic/lib/trace.c b/lang/basic/lib/trace.c
index 5cc86eca2..5a28c6b75 100644
--- a/lang/basic/lib/trace.c
+++ b/lang/basic/lib/trace.c
@@ -1,7 +1,6 @@
 /* $Id$ */
 
-_trace(i)
-int i;
+void _trace(int i)
 {	
 printf("[%d]",i);
 }
diff --git a/lang/basic/lib/trap.c b/lang/basic/lib/trap.c
index 4bcf742ee..43c74d6d2 100644
--- a/lang/basic/lib/trap.c
+++ b/lang/basic/lib/trap.c
@@ -13,15 +13,12 @@
 int	_trpline;	/* BASIC return label */
 jmp_buf	trpbuf;
 
-_trpset(nr)
-int nr;
+void _trpset(int nr)
 {
 	/*debug  printf("trap set to %d\n",nr);*/
 	_trpline=nr;
 }
-void
-_trpfatal(i)
-int i;
+void _trpfatal(int i)
 {
 	extern int _errsym,_erlsym;
 
@@ -35,7 +32,7 @@ int i;
 	_trap();
 }
 
-_ini_trp()
+void _ini_trp(void)
 {
 	/* initialize trap routines */
 	int i;
@@ -45,12 +42,11 @@ _ini_trp()
 }
 
 
-_settrap(nr)
-int nr;
+void _settrap(int nr)
 {
 	_trpline=nr;
 }
-_trap()
+void _trap(void)
 {
 	int line;
 
diff --git a/lang/basic/lib/write.c b/lang/basic/lib/write.c
index 25e3c2f98..fe3adf9ca 100644
--- a/lang/basic/lib/write.c
+++ b/lang/basic/lib/write.c
@@ -5,30 +5,27 @@
 
 /* assume that the channel has been set */
 
-_wrnl()
+void _wrnl(void)
 {
 	if( fputc('\n',_chanwr) == EOF) error(29);
 }
-_wrcomma()
+void _wrcomma(void)
 {
 	if( fputc(',',_chanwr) == EOF) error(29);
 }
-_wrint(i)
-int i;
+void _wrint(int i)
 {
 	if(i>0) 
 		if( fputc(' ',_chanwr)==EOF) error(29);
 	fprintf(_chanwr,"%d",i);
 	if( ferror(_chanwr) ) error(29);
 }
-_wrflt(f)
-double f;
+void _wrflt(double f)
 {
 	fprintf(_chanwr,"%f",f);
 	if( ferror(_chanwr) ) error(29);
 }
-_wrstr(s)
-String *s;
+void _wrstr(String* s)
 {
 	fprintf(_chanwr,"\"%s\"",s->strval);
 	if( ferror(_chanwr) ) error(29);