-/*-------------------------------------------------------------------------*/
-/* stdarg.h - ANSI macros for variable parameter list */
-/*-------------------------------------------------------------------------*/
+/*-----------------------------------------------------------------------------------*/
+/* stdarg.h - ANSI macros for variable parameter list */
+/*-----------------------------------------------------------------------------------*/
-#ifndef _STDARG_H
-#define _STDARG_H 1
+#ifndef __SDC51_STDARG_H
+#define __SDC51_STDARG_H 1
+
+#if defined(__ds390)
+
+typedef unsigned char * va_list ;
+#define va_arg(marker,type) *((type *)(marker -= sizeof(type)))
+#define va_start(marker,first) { marker = &first; }
-#if defined(SDCC_MODEL_LARGE) || defined(SDCC_MODEL_FLAT24)
-typedef unsigned char _xdata * va_list ;
#elif defined(SDCC_USE_XSTACK)
+
typedef unsigned char _pdata * va_list ;
+#define va_arg(marker,type) *((type _data *)(marker -= sizeof(type)))
+#define va_start(marker,first) { marker = (va_list)((char _pdata *)&first); }
+
#else
-typedef unsigned char _data * va_list ;
+
+typedef unsigned char _data * va_list ;
+#define va_arg(marker,type) *((type _data * )(marker -= sizeof(type)))
+#define va_start(marker,first) { marker = (va_list) ((char _data * )&first); }
+
#endif
-#define va_arg(valist,type) (*((type *)(valist -= sizeof(type))))
-#define va_start(valist,first) (valist = (va_list)&(first))
-#define va_end(valist) (valist = (va_list) 0)
+#define va_end(marker) marker = (va_list) 0;
#endif
#include <stdarg.h>
-#ifdef SDCC_MODEL_FLAT24
-#ifndef TINIBIOS_H
+#ifdef __ds390
#include <tinibios.h>
-#endif TINIBIOS_H
-#endif
-
-#if defined(SDCC_MODEL_LARGE) || defined(SDCC_MODEL_FLAT24)
-#define XSPEC xdata
-#else
-#define XSPEC
#endif
extern printf_small (char *,...) reentrant;
-extern printf (XSPEC const char *,...) reentrant;
+extern printf (const char *,...) reentrant;
extern int vprintf (const char *, va_list);
-extern int sprintf (const char *, XSPEC const char *, ...) reentrant;
+extern int sprintf (const char *, const char *, ...) reentrant;
extern int vsprintf (const char *, const char *, va_list);
extern int puts(const char *);
extern char *gets(char *);
extern char getchar(void);
extern void putchar(char);
-#endif
+
+#endif __SDC51_STDIO_H
#include <stdarg.h>
#include <stdio.h>
-#if defined(SDCC_MODEL_LARGE) || defined(SDCC_MODEL_FLAT24)
-#define XSPEC xdata
-#else
-#define XSPEC
-#endif
-
-int printf (XSPEC const char *format, ...) reentrant
+int printf (const char *format, ...) reentrant
{
va_list arg;
int done;
return done;
}
-int sprintf (const char *buf, XSPEC const char *format, ...) reentrant
+int sprintf (const char *buf, const char *format, ...) reentrant
{
va_list arg;
int done;
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding!
-------------------------------------------------------------------------*/
+#ifdef __ds390
#define USE_FLOATS 1
+#endif
#include <stdarg.h>
#include <string.h>
signed char reqDecimals,
bit left, bit zero, bit sign, bit space)
{
- XSPEC char negative=0;
- XSPEC long integerPart;
- XSPEC float decimalPart;
- XSPEC char fpBuffer[128];
- XSPEC char fpBI=0, fpBD;
- XSPEC unsigned char minWidth, i;
+ char negative=0;
+ long integerPart;
+ float decimalPart;
+ char fpBuffer[128];
+ char fpBI=0, fpBD;
+ unsigned char minWidth, i;
// save the sign
if (f<0) {
bit long_argument;
bit float_argument;
- XSPEC unsigned char width;
- XSPEC signed char decimals;
- XSPEC unsigned char length;
- XSPEC char c;
+ unsigned char width;
+ signed char decimals;
+ unsigned char length;
+ char c;
// reset output chars
charsOutputted=0;