/* * arch/mips/lib/console.c * * Copyright (C) 1994 by Waldorf Electronic, * written by Ralf Baechle and Andreas Busse * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of this archive for * more details. * * FIXME: This file is hacked to be hardwired for the Deskstation * Only thought as a debugging console output. It's as inefficient * as a piece of code can be but probably a good piece of code to * implement a preliminary console for a new target. */ #include #include static unsigned int size_x; static unsigned int size_y; static unsigned short cursor_x; static unsigned short cursor_y; static volatile unsigned short *vram_addr; static int console_needs_init = 1; extern struct screen_info screen_info; /* ---------------------------------------------------------------------- * init_console() * ---------------------------------------------------------------------- */ void init_console(void) { size_x = 80; size_y = 25; cursor_x = 0; cursor_y = 0; vram_addr = (unsigned short *)0xb00b8000; console_needs_init = 0; } void set_size_x(unsigned int x) { size_x = x; } void set_size_y(unsigned int y) { size_y = y; } void set_vram(unsigned short *vram) { vram_addr = vram; } void set_crsr(unsigned int x, unsigned int y) { cursor_x = x; cursor_y = y; } void print_char(unsigned int x, unsigned int y, unsigned char c) { volatile unsigned short *caddr; caddr = vram_addr + (y * size_x) + x; *caddr = (*caddr & 0xff00) | 0x0f00 | (unsigned short) c; } static void scroll(void) { volatile unsigned short *caddr; register int i; caddr = vram_addr; for(i=0; i