/*
 * rdchar — прочитать символ и атрибут из позиции (x, y):
 * возврат (attr << 8) | ch.  ESTEX RDCHAR ($57).
 */

#include "_conio.h"

uint16_t rdchar(uint8_t x, uint8_t y) __naked
{
    (void)x; (void)y;
    __asm
        push  ix
        ld    d, l                  ; D = row
        ld    e, a                  ; E = col
        ld    c, #0x57              ; ESTEX RDCHAR
        rst   #0x10
        ;; A = ch, B = attr
        ld    d, b                  ; старший байт → attr
        ld    e, a                  ; младший байт → ch
        pop   ix
        ret
    __endasm;
}
