/* * puts — C99: вывести строку + '\n'. * * Конвенция Turbo-C: stdio-шный puts — БЫСТРЫЙ путь БЕЗ управления * атрибутом; атрибуты ячеек — какие ESTEX закэшировал (обычно цвет * шелла). Для цветного вывода — cputs() / cprintf() из . * * Реализация: посимвольный цикл через putchar (он транслирует '\n' в * CR LF), в конце — putchar('\n'). Быстрый путь через ESTEX PCHARS * ($5C) не используется: PCHARS не транслирует '\n', а добивать хвост * через PUTCHAR после PCHARS нельзя — эмпирически это иногда теряло * следующий символ. */ #include #include char puts(const char *s) __naked { (void)s; __asm puts_: ld a, (hl) or a jr z, fin_ push hl ld l, a ld h, #0 call _putchar pop hl inc hl jp puts_ ; fin_: ld l, #0x0A ld h, #0 call _putchar ret __endasm; }