/* * putchar — emit one character via ESTEX PUTCHAR ($5B). * * Turbo-C convention: this stdio.h function is the FAST path with NO * attribute control. Whatever ESTEX has cached for the cursor cell is * used (typically the shell's default colour). Translates '\n' to * CR LF for C-string semantics. * * For coloured output, use putch() / cputs() / cprintf() from * — those honour textattr / g_text_attr at the cost of being ~10× slower. * * SDCC __sdcccall(1): char arg in L (low byte of HL=int). Returns the * char in DE (SDCC int return). */ #include int putchar(int c) __naked { (void)c; __asm ld a, l cp #0x0A jr nz, cputc call cputc ld a, #0x0D cputc: ld c, #0x5B rst #0x10 ld e, l ld d, #0 ret __endasm; }