/*
 * gfx_load_default_font — забрать активный системный знакогенератор
 * через BIOS WIN_GET_ZG (fn 0xB8) в _gfx_font_buf и включить его.
 */

#include "../_bgi.h"

/* BIOS WIN_GET_ZG (0xB8): DE = приёмник, возвращает 2 КБ. */
static void bios_get_zg(uint8_t *dest) __naked
{
    (void)dest;
    __asm
        push  ix                  ; BIOS клобберит IX
        ex    de, hl              ; DE = dest (аргумент пришёл в HL)
        xor   a                   ; шрифт 0 (системный)
        ld    c, #0xB8
        rst   #0x08
        pop   ix
        ret
    __endasm;
}

void gfx_load_default_font(void)
{
    bios_get_zg(_gfx_font_buf);
    _gfx_font_ptr    = _gfx_font_buf;
    _gfx_font_loaded = 1;
}
