/*
 * _videomode_raw_set — установить видеорежим (ESTEX SETVMOD $50),
 * БЕЗ валидации класса режима.  Публичный settextmode (conio)
 * оборачивает его text-only проверкой; gfx_init/gfx_done зовут
 * напрямую, чтобы входить В графические режимы.
 * Возврат: 0 или -1 (errno из кода ESTEX).
 */

#include <stdint.h>
#include <errno.h>

int _videomode_raw_set(uint8_t mode) __naked
{
    (void)mode;
    __asm
        ;; SDCC __sdcccall(1): единственный uint8_t уже в A.
        push  ix
        ld    bc, #0x0050           ; ESTEX SETVMOD (B=0 (страница), C=0x50)
        rst   #0x10
        jr    c, _vmr_err
        ld    de, #0
        pop   ix
        ret
    _vmr_err:
        call  __errno_set
        ld    de, #-1
        pop   ix
        ret
    __endasm;
}
