Index: iolib/dofmt.c
===================================================================
--- iolib/dofmt.c	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/dofmt.c	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -33,9 +33,9 @@
 #define	todigit(x)	((x)+'0')
 
-int32_t dofmt_(int16_t (*putsub)(int16_t c), int8_t *format, va_list args)
+int16_t dofmt_(int16_t (*putsub)(int16_t c), int8_t *format, va_list args)
 {
 	register int16_t fcode;
 
-	int32_t	k,
+	int16_t	k,
 		n,
 		lzero,
@@ -69,5 +69,5 @@
 			;
 
-		if ((n = (int32_t)format - (int32_t)bp)) {
+		if ((n = (int16_t)(format - bp))) {
 
 			count += n;
@@ -244,5 +244,5 @@
 			}
 
-			lzero = (int32_t)bp - (int32_t)p + (int32_t)prec;
+			lzero = (int16_t)(bp - p + prec);
 
 			if (fsharp AND bp NE p)
@@ -297,5 +297,5 @@
 			lzero = 0;
 
-		k = (n = (int32_t)p - (int32_t)bp) + (int32_t)(lzero +
+		k = (n = (int16_t)(p - bp)) + (lzero +
 			(prefix[0] EQ '\0' ? 0 : (prefix[1] EQ '\0' ? 1 : 2)));
 
Index: iolib/dofmt.x
===================================================================
--- iolib/dofmt.x	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/dofmt.x	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -16,3 +16,3 @@
 */
 
-extern	int32_t		dofmt_(int16_t (*putsub)(int16_t c), int8_t *format, va_list args);
+extern	int16_t		dofmt_(int16_t (*putsub)(int16_t c), int8_t *format, va_list args);
Index: iolib/printf.c
===================================================================
--- iolib/printf.c	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/printf.c	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -23,7 +23,7 @@
 */
 
-int32_t printf(int8_t *fmt, ...)
+int16_t printf(int8_t *fmt, ...)
 {
-	register int32_t count;
+	register int16_t count;
 	va_list aptr;
 
Index: iolib/printf.x
===================================================================
--- iolib/printf.x	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/printf.x	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -15,3 +15,3 @@
 */
 
-extern	int32_t		printf(int8_t *fmt, ...);
+extern	int16_t		printf(int8_t *fmt, ...);
Index: iolib/sprintf.c
===================================================================
--- iolib/sprintf.c	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/sprintf.c	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -17,7 +17,7 @@
 */
 
-int32_t sprintf(int8_t *str, int8_t *fmt, ...)
+int16_t sprintf(int8_t *str, int8_t *fmt, ...)
 {
-	register int32_t count;
+	register int16_t count;
 	va_list aptr;
 
Index: iolib/sprintf.x
===================================================================
--- iolib/sprintf.x	(revision e1029439e3f8d3c8f4f724e344d6284c265ac9be)
+++ iolib/sprintf.x	(revision 8973acd23a70305139d469bac63060280979efcb)
@@ -15,3 +15,3 @@
 */
 
-extern	int32_t		sprintf(int8_t *str, int8_t *fmt, ...);
+extern	int16_t		sprintf(int8_t *str, int8_t *fmt, ...);
