/*
 * bios_write_until — вывести строку s до разделителя sep, ДОБИВ
 * пробелами до len (атрибут не трогается).  BIOS LP_PRINT_LN4 ($88,
 * rst 8): HL=s, B=len, D=sep.
 */

#include <bios/text.h>

void bios_write_until(const char *s, uint8_t len, char sep) __naked
{
    (void)s; (void)len; (void)sep;
    __asm
        ;; s→HL, len/sep на стеке [SP+2..3].
        ld    iy, #2
        add   iy, sp
        ld    b, 0 (iy)             ; B = len
        ld    d, 1 (iy)             ; D = sep
        push  ix
        ld    c, #0x88
        rst   #0x08
        pop   ix
        pop   hl
        inc   sp
        inc   sp
        jp    (hl)
    __endasm;
}
