static void kchar_putchar(wchar_t ch) { if (ascii_check(ch)) *kchar.addr = ch; else *kchar.addr = '?'; }
void putchar(const wchar_t ch) { if (ascii_check(ch)) *((char *) MSIM_VIDEORAM_ADDRESS) = ch; else *((char *) MSIM_VIDEORAM_ADDRESS) = U_SPECIAL; }
/** Display a character * * @param ch Character to display */ void putchar(const wchar_t ch) { if (ch == '\n') scons_sendb('\r'); if (ascii_check(ch)) scons_sendb((uint8_t) ch); else scons_sendb(U_SPECIAL); }
static void ns16550_putchar(outdev_t *dev, wchar_t ch) { ns16550_instance_t *instance = (ns16550_instance_t *) dev->data; if ((!instance->parea.mapped) || (console_override)) { if (ascii_check(ch)) ns16550_sendb(instance->ns16550, (uint8_t) ch); else ns16550_sendb(instance->ns16550, U_SPECIAL); } }
/** Draw the character at the specified position. * * @param field Character field. * @param col Horizontal screen position. * @param row Vertical screen position. * */ static void draw_char(charfield_t *field, sysarg_t col, sysarg_t row) { uint8_t glyph; if (ascii_check(field->ch)) glyph = field->ch; else glyph = '?'; uint8_t attr = attrs_attr(field->attrs); ega.addr[FB_POS(col, row)] = glyph; ega.addr[FB_POS(col, row) + 1] = attr; }
/** Draw the character at the specified position in viewport. * * @param vp Viewport. * @param col Screen position relative to viewport. * @param row Screen position relative to viewport. * */ static void draw_vp_char(fbvp_t *vp, sysarg_t col, sysarg_t row) { sysarg_t x = vp->x + col; sysarg_t y = vp->y + row; charfield_t *field = screenbuffer_field_at(vp->backbuf, col, row); uint8_t glyph; if (ascii_check(field->ch)) glyph = field->ch; else glyph = '?'; uint8_t attr = attrs_attr(field->attrs); ega.addr[FB_POS(x, y)] = glyph; ega.addr[FB_POS(x, y) + 1] = attr; }