/*
 * getchar — через ESTEX RST 10h.
 *
 *   ESTEX 0x30 (WAITKEY): блокируется до нажатия клавиши, возвращает
 *     A = скан-код, D = позиционный код, E = ASCII,
 *     C = флаги режима, B = флаги шифтов.
 *
 * IX сохраняется (RST 10h его клобберит; для вызывающего это frame
 * pointer).
 */

#include <stdio.h>

int getchar(void) __naked
{
    __asm
        push  ix
        ld    c, #0x30        ; ESTEX WAITKEY
        rst   #0x10
        pop   ix
        ld    d, #0
        ret
    __endasm;
}
