#include #include void RawDoFmt(char *, APTR, void(*)(), APTR); #pragma syscall RawDoFmt 20a ba9804 void __stdargs MyPrintf(char *fmt, ...) { va_list args; va_start(args, fmt); VPrintf((UBYTE *)fmt, (LONG *)args); Flush(Output()); va_end(args); } static void __regargs MySPrintfSupp(char); void __stdargs MySPrintf(char *buf, char *fmt, ...) { va_list args; va_start(args, fmt); RawDoFmt(fmt, (APTR)args, MySPrintfSupp, (APTR)buf) va_end(args); } extern long __builtin_getreg(int); extern void __builtin_putreg(int, char *); static void __regargs MySPrintfSupp(char Char) { char *ptr; ptr = (char *)__builtin_getreg(11); *ptr++ = Char; __builtin_putreg(11, ptr); }