Index: include/stdarg.h
===================================================================
--- include/stdarg.h	(revision bfc0072417012e9cf8877387e0040d6245a99117)
+++ include/stdarg.h	(revision bfc0072417012e9cf8877387e0040d6245a99117)
@@ -0,0 +1,13 @@
+/*
+   =============================================================================
+	stdarg.h -- variable argument list macros
+	Version 1 -- 2017-07-07 -- Thomas Lopatic
+   =============================================================================
+*/
+
+typedef	char	*va_list;
+
+#define	va_start(ap, last)	ap = (char *)&last + sizeof(last)
+#define	va_arg(ap, type)	(ap += sizeof(type), ap[-1])
+#define	va_end(ap)
+
Index: clude/varargs.h
===================================================================
--- include/varargs.h	(revision 72d45452fc378431dd5b933034e8ef3fcaffff1a)
+++ 	(revision )
@@ -1,20 +1,0 @@
-/*
-   =============================================================================
-	varargs.h -- variable argument list macros
-	Version 3 -- 1987-06-16 -- D.N. Lynx Crowe
-
-	WARNING:  Be sure that the 'mode' in the sizeof(mode) in va_arg
-	matches the size of the actual argument on the stack.  If it doesn't,
-	improper argument list fetches will occur.
-	(Lattice has problems with this, as all arguments except double are
-	the same size.)
-   =============================================================================
-*/
-
-typedef	char	*va_list;
-
-#define	va_dcl	int	va_alist;
-#define	va_start(list)	list = (char *) &va_alist
-#define	va_end(list)
-
-#define	va_arg(list,mode)	((mode *)(list += sizeof(mode)))[-1]
Index: iolib/dofmt.c
===================================================================
--- iolib/dofmt.c	(revision 72d45452fc378431dd5b933034e8ef3fcaffff1a)
+++ iolib/dofmt.c	(revision bfc0072417012e9cf8877387e0040d6245a99117)
@@ -24,5 +24,5 @@
 #include "stddefs.h"
 #include "ctype.h"
-#include "varargs.h"
+#include "stdarg.h"
 
 #define	MAXDIGS	11
Index: iolib/printf.c
===================================================================
--- iolib/printf.c	(revision 72d45452fc378431dd5b933034e8ef3fcaffff1a)
+++ iolib/printf.c	(revision bfc0072417012e9cf8877387e0040d6245a99117)
@@ -15,5 +15,5 @@
 #include "stddefs.h"
 #include "biosdefs.h"
-#include "varargs.h"
+#include "stdarg.h"
 
 extern	long	dofmt_();
@@ -27,13 +27,10 @@
 */
 
-long
-printf(fmt, va_alist)
-char *fmt;
-va_dcl
+long printf(char *fmt, ...)
 {
 	register long count;
 	va_list aptr;
 
-	va_start(aptr);
+	va_start(aptr, fmt);
 	count = dofmt_(fpsub, fmt, aptr);
 	va_end(aptr);
Index: iolib/sprintf.c
===================================================================
--- iolib/sprintf.c	(revision 72d45452fc378431dd5b933034e8ef3fcaffff1a)
+++ iolib/sprintf.c	(revision bfc0072417012e9cf8877387e0040d6245a99117)
@@ -6,5 +6,5 @@
 */
 
-#include "varargs.h"
+#include "stdarg.h"
 
 extern long	dofmt_();
@@ -19,15 +19,13 @@
 */
 
-long
-sprintf(str, fmt, va_alist)
-char *str, *fmt;
-va_dcl
+long sprintf(char *str, char *fmt, ...)
 {
 	register long count;
 	va_list aptr;
 
-	va_start(aptr);
 	buff = str;
+	va_start(aptr, fmt);
 	count = dofmt_(spsub, fmt, aptr);
+	va_end(aptr);
 	*buff = '\0';
 	return(count);
Index: libcio/fprintf.c
===================================================================
--- libcio/fprintf.c	(revision 72d45452fc378431dd5b933034e8ef3fcaffff1a)
+++ libcio/fprintf.c	(revision bfc0072417012e9cf8877387e0040d6245a99117)
@@ -8,5 +8,5 @@
 #include "stdio.h"
 #include "stddefs.h"
-#include "varargs.h"
+#include "stdarg.h"
 
 static FILE *Stream;
@@ -17,9 +17,5 @@
 static	int	fpsub();
 
-int
-fprintf(stream, fmt, va_alist)
-FILE *stream;
-char *fmt;
-va_dcl
+int fprintf(FILE *stream, char *fmt, ...)
 {
 	register int count;
@@ -27,5 +23,5 @@
 
 	Stream = stream;
-	va_start(aptr);
+	va_start(aptr, fmt);
 	count = _dofmt(fpsub, fmt, aptr);
 	va_end(aptr);
