Ejemplo n.º 1
0
static void vga_get_cursor(unsigned int *x, unsigned int *y, unsigned int *en)
{
	unsigned int addr;
	addr = ((unsigned int) crtc_read(0x0E)) << 8;
	addr += crtc_read(0x0F);

	*x = addr % vga_video_console.columns;
	*y = addr / vga_video_console.columns;

	*en = !(crtc_read(0x0A) & (1 << 5));
}
Ejemplo n.º 2
0
uint8_t read_vga_register(register_set_t target, uint8_t index)
{
	switch(target)
	{
	case GRAPHIC_CTRL:
		return gctrl_read(index);
		break;
	case SEQUENCER:
		return seq_read(index);
		break;
	case ATTRIBUTE_CTRL:
		return attr_read(index);
		break;
	case CRT_CTRL:
		return crtc_read(index);
		break;
	case EXTERNAL_REGISTERS:
		switch(index)
		{
		case MISC_OUTPUT_REGISTER:
			return misc_output_read();
			break;
		case FEATURE_CONTROL_REGISTER:
			return feature_control_read();
			break;
		}
		break;
	default:
		break;
	}
	return 0;
}
Ejemplo n.º 3
0
static void vga_enable_cursor(int state)
{
	unsigned char tmp = crtc_read(0x0a);

	if (state == 0)
		tmp |= (1 << 5);

	else
		tmp &= ~(1 << 5);

	crtc_write(tmp, 0x0a);
}
Ejemplo n.º 4
0
static void vga_init_cursor(void)
{
	u8 val;

#define CURSOR_MSL   0x09   /* cursor maximum scan line */
#define CURSOR_START 0x0A   /* cursor start */
#define CURSOR_END   0x0B   /* cursor end */

	val = crtc_read(CURSOR_MSL) & 0x1f;
	crtc_write(0, CURSOR_START);
	crtc_write(val - 2, CURSOR_END);
}
Ejemplo n.º 5
0
void init_tty32() {
    
    curpos32 = (((uint16_t) crtc_read(CRTC_CURPOS_HI)) << 8) | ((uint16_t) crtc_read(CRTC_CURPOS_LO));
    __asm__("1: incl %%edi; stosb; loop 1b" : : "a" (VGA_ATTRIBUTE), "c" (80 * VGA_LINES), "D" (video32));
    put_status("");
}