void set_cursor(int currcons) { unsigned int idx, xt, yt, row, col; unsigned long flags; if (currcons != fg_console || console_blanked || vcmode == KD_GRAPHICS) return; if (__real_origin != __origin) __set_origin(__real_origin); save_flags(flags); cli(); if (deccm) { idx = (pos - video_mem_base) >> 1; col = idx % 80; row = (idx - col) / 80; if (tga_type == 0) { /* 8-plane */ xt = col * TGA_F_WIDTH + 64; yt = row * TGA_F_HEIGHT_PADDED + 64; /* make sure it's enabled */ BT485_WRITE(0x22, BT485_CMD_2); /* WIN cursor type */ BT485_WRITE(xt, BT485_CUR_LOW_X); BT485_WRITE((xt >> 8), BT485_CUR_HIGH_X); BT485_WRITE(yt, BT485_CUR_LOW_Y); BT485_WRITE((yt >> 8), BT485_CUR_HIGH_Y); } else {
void set_cursor(int currcons) { unsigned long flags; if (currcons != fg_console || console_blanked || vcmode == KD_GRAPHICS) return; if (__real_origin != __origin) __set_origin(__real_origin); save_flags(flags); cli(); if (deccm) { /* outb_p(14, video_port_reg); */ /* outb_p(0xff&((pos-video_mem_base)>>9), video_port_val); */ /* outb_p(15, video_port_reg); */ /* outb_p(0xff&((pos-video_mem_base)>>1), video_port_val); */ } else hide_cursor(); restore_flags(flags); }