/*
 * cprintf — printf для conio-набора вывода.  Форматирует в статический
 * буфер через vsprintf (из stdlib SDCC), затем выводит cputs'ом,
 * который применяет текущий текстовый атрибут посимвольно.
 *
 * '\n' в CR LF НЕ транслируется — конвенция Turbo-C: перевод строки
 * пишется в format-строке явно как "\r\n".
 *
 * Не реентерабельно (один статический буфер), но на однопоточном Z80
 * это не проблема.
 */

#include <conio.h>
#include <stdarg.h>
#include <stdio.h>

#define CPRINTF_BUF_SIZE 256

static char cp_buf[CPRINTF_BUF_SIZE];

int cprintf(const char *fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    int n = vsprintf(cp_buf, fmt, ap);
    va_end(ap);
    cputs(cp_buf);
    return n;
}
