/* * Do a special thing (beep, flush, etc) */ static errr Term_xtra_emx(int n, int v) { switch (n) { case TERM_XTRA_SHAPE: if (v) { v_ctype(curs_start, curs_end); } else { v_hidecursor(); } return (0); case TERM_XTRA_NOISE: DosBeep(440, 50); return (0); case TERM_XTRA_FLUSH: while (!CheckEvents(TRUE)); return 0; case TERM_XTRA_EVENT: /* Process an event */ return (CheckEvents(!v)); /* Success */ return (0); } return (1); }
/* * Display a cursor, on top of a given attr/char */ static errr Term_curs_emx(int x, int y) { v_gotoxy(x, y); v_ctype(curs_start, curs_end); return (0); }
/* * EMX shutdown */ static void Term_nuke_emx(term *t) { /* Move the cursor to bottom of screen */ v_gotoxy(0, 23); /* Restore the cursor (not necessary) */ v_ctype(curs_start, curs_end); /* Set attribute to gray on black */ v_attrib(F_WHITE); /* Clear the screen */ v_clear(); }
static void vm_setcursorsize(char start, char end) { if (_osmode == DOS_MODE) { vi_init(); v_ctype(start, end); } else { VIOCURSORINFO vi; vi.yStart = start; vi.cEnd = end; vi.cx = 0; vi.attr = 0; VioSetCurType(&vi, 0); } }