void (*showcursor)(const struct term_state *st);
void (*scroll_up)(const struct term_state *st);
void (*set_cursor)(int x, int y, int visible);
+ void (*beep)(void);
};
struct term_info {
void __ansi_init(const struct term_info *ti);
void __ansi_putchar(const struct term_info *ti, uint8_t ch);
+void __ansicon_beep(void);
#endif /* COM32_LIB_SYS_ANSI_H */
.showcursor = ansicon_showcursor,
.set_cursor = ansicon_set_cursor,
.scroll_up = ansicon_scroll_up,
+ .beep = __ansicon_beep,
};
static struct term_info ti =
return n;
}
+void __ansicon_beep(void)
+{
+ static com32sys_t ireg;
+
+ ireg.eax.w[0] = 0x0e07;
+ ireg.ebx.b[1] = BIOS_PAGE;
+ __intcall(0x10, &ireg, NULL);
+}
+
const struct output_dev dev_ansicon_w = {
.dev_magic = __DEV_MAGIC,
.flags = __DEV_TTY | __DEV_OUTPUT,
.showcursor = vesacon_showcursor,
.set_cursor = __vesacon_set_cursor, /* in drawtxt.c */
.scroll_up = vesacon_scroll_up,
+ .beep = __ansicon_beep,
};
static struct term_info ti =