/*
 * bios_clearwin — очистить окно (row, col, height, width) пробелами с
 * атрибутом attr.  BIOS LP_CLS_WIN ($89, rst 8): D=row, E=col,
 * H=height, L=width, B=attr.
 */

#include <bios/text.h>

void bios_clearwin(uint8_t row, uint8_t col, uint8_t height, uint8_t width,
                    uint8_t attr) __naked
{
    (void)row; (void)col; (void)height; (void)width; (void)attr;
    __asm
        ;; row→A, col→L, height/width/attr на стеке [SP+2..4].
        ld    iy, #2
        add   iy, sp
        ld    h, 0 (iy)             ; H = height
        ld    c, 1 (iy)             ; спрятать width (L пока держит col)
        ld    e, l                  ; E = col
        ld    d, a                  ; D = row
        ld    l, c                  ; L = width
        ld    b, 2 (iy)             ; B = attr
        push  ix
        ld    c, #0x89
        rst   #0x08
        pop   ix
        pop   hl
        inc   sp
        inc   sp
        inc   sp                   ; съесть height + width + attr
        jp    (hl)
    __endasm;
}
