/** * @file printf.h * @brief Library for printf() function. * @author Miguel I. Garcia Lopez / FloppySoftware * * Implementation of printf() function, for MESCC (Mike's Enhanced * Small C Compiler for Z80 & CP/M). * * Revisions: * - 20 Oct 2000 : Last revision. * - 16 Apr 2007 : GPL'd. * - 25 Aug 2016 : Documented. GPL v3. * * Copyright (c) 1999-2016 Miguel I. Garcia Lopez / FloppySoftware. * * Licensed under the GNU General Public License v3. * * http://www.floppysoftware.es * floppysoftware@gmail.com */ #ifndef PRINTF_H #define PRINTF_H // Dependencies // ------------ #ifndef XPRINTF_H #include #endif #ifndef CONIO_H #include #endif /** * @fn int printf(char *fmt, arg1, arg2, ...) * @brief Formatted output to stdout (or console). * * See the documentation for xprintf.h to learn about the string format. * * @param fmt - string format * @param arg1 - argument #1 * @param arg? - argument #? * @return number or characters written, or -1 on failure (currently always #). */ #asm printf: ADD HL,HL ADD HL,SP INC HL INC HL ;HL=Adr. fmt LD DE,xpfout PUSH DE LD DE,xpfend PUSH DE PUSH HL CALL xprintf POP BC POP BC POP BC RET #endasm // int xpfout(char ch) : output ch to stdout; return 0 on success, !=0 on failure (currently always returns 0). #asm xpfout: PUSH HL CALL putchar POP BC LD HL,0 RET #endasm // void xpfend(void) : end formatted output; currently does nothing. #asm xpfend: RET #endasm #endif