Commit Graph
14 Commits
Author SHA1 Message Date
okuji 7b43bbe40e 2004-03-12 Yoshinori K. Okuji <okuji@enbug.org>
* stage2/serial.c (serial_putchar): Handle the character code
	127 as a backspace. Reported by Florian Engelhardt
	<f.engelhardt@gmx.net>.
2004-03-12 18:27:23 +00:00
okuji bf88d91883 2002-11-30 Yoshinori K. Okuji <okuji@enbug.org>
* docs/Makefile.am (man_MANS): Added grub-terminfo.8.
	($(srcdir)/grub_terminfo.8): New target.
	* utils/grub-terminfo.in: New file.
	* util/Makefile.am (sbin_SCRIPTS): Added grub-terminfo.
	* configure.in (AC_OUTPUT): Added util/grub-terminfo.

	* docs/grub.texi (terminfo): New subsection.
	(Invoking grub-terminfo): New chapter.

	From Tilmann Bubeck <t.bubeck@reinform.de>:
	* stage2/Makefile.am (noinst_HEADERS): Added terminfo.h and
	tparm.h.
	(libgrub_a_SOURCES): Added terminfo.c and tparm.c.
	(pre_stage2_exe_SOURCES): Likewise.
	* stage2/terminfo.c: New file.
	* stage2/terminfo.h: Likewise.
	* stage2/tparm.c: Likewise.
	* stage2/tparm.h: Likewise.
	* stage2/stage2.c (get_line_from_config): Fix handling of
	backslashes.
	* stage2/char_io.c (grub_putstr): New function.
	(grub_printf): Use grub_putstr.
	(substring): Add const into both arguments.
	* stage2/builtins.c [SUPPORT_SERIAL]: Include terminfo.h.
	[SUPPORT_SERIAL] (terminfo_func): New function.
	[SUPPORT_SERIAL] (builtin_terminfo): New variable.
	 (builtin_table) [SUPPORT_SERIAL]: Added a pointer to
	BUILTIN_TERMINFO.
	* stage2/serial.c (serial_gotoxy): Use ti_cursor_address.
	(serial_cls): Use ti_clear_screen.
	(serial_highlight): use ti_enter_standout_mode and
	ti_exit_standout_mode.
2002-11-29 20:39:24 +00:00
okuji 76deb4cec4 2002-10-28 Yoshinori K. Okuji <okuji@enbug.org>
* grub/asmstub.c (console_translate_key): Deal with KEY_PPAGE
	and KEY_NPAGE.
	* stage2/serial.c (serial_translate_key_sequence): Added two new
	codes for Page Up and Page Down.
	* stage2/asm.S (translation_table): Added entries for KEY_PPAGE
	and KEY_NPAGE.
	* stage2/stage2.c (run_menu): Deal with Page Up and Page Down.
	Also recognize the right key for the selection of a boot entry.
	Suggested by Adam Lackorzynski <adam@os.inf.tu-dresden.de>.
2002-10-27 23:59:53 +00:00
okuji 36ae96d649 2002-09-13 Yoshinori K. Okuji <okuji@enbug.org>
* stage2/serial.c (fill_input_buf): Take a new argument NOWAIT.
	If NOWAIT is true, don't loop.
	All callers are changed.
2002-09-13 11:27:41 +00:00
jthomas d932c071e9 Changed highlight state code for hercules, console and serial.
The state was 0 - normal or 1 - highlight.
        The state is now defined using an enum called color_state.

        * stage2/term.h (color_state): New enum.
        (COLOR_STATE_STANDARD): Standard color to use when not using user defined.
        (COLOR_STATE_NORMAL): User defined normal color.
        (COLOR_STATE_HIGHLIGHT): User defined highlight color.
        (console_highlight): Renamed to console_setcolorstate.
        (serial_highlight): Renamed to serial_setcolorstate.
        (hercules_highlight): Renamed to hercules_setcolorstate.
        * stage2/hercules.c (herc_highlight_state): Removed.
        (herc_standard_color): New variable.
        (herc_color_state): Likewise.
        (herc_highlight): Renamed to herc_setcolorstate.
        (herc_setcolorstate): Added switch to handle new states.
        * stage2/console.c (console_highlight_state): Removed.
        (console_standard_color): New variable.
        (console_color_state): Likewise.
        (console_highlight): Renamed to console_setcolorstate.
        (console_setcolorstate): Added switch to handle new states.
        * stage2/serial.c (serial_highlight): Renamed to serial_setcolorstate.
        (serial_setcolorstate): Adjusted 'if' to suit new states.
        * grub/asmstub.c (console_highlight): Renamed to console_setcolorstate.
        (console_setcolorstate): Adjusted 'if' to suit new states.
        * stage2/stage2.c (print_entry): Set color states using new states.
        (print_border): Likewise.
        * stage2/stage2.c (run_menu): Reverse if (!) to if () for uniformitty.
2002-08-22 05:59:55 +00:00
okuji 4fcd549f56 2002-07-03 Yoshinori K. Okuji <okuji@enbug.org>
* stage2/serial.c [!GRUB_UTIL] (inb): Added a delay into this
	function itself.
	[!GRUB_UTIL] (outb): Likewise.
	[!GRUB_UTIL] (serial_hw_put): Increase the timeout value, and
	don't call serial_hw_delay explicitly any longer.
	(fill_input_buf): Increase the maximum number of retries, reset
	the counter to zero after getting a valid character, and don't
	call serial_hw_delay explicitly any longer.
2002-07-02 23:39:14 +00:00
okuji 321b3d6a1d 2002-07-03 Yoshinori K. Okuji <okuji@enbug.org>
* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed a typo.
	Reported by Ilguiz Latypov.
2002-07-02 21:23:28 +00:00
okuji d53e46f0a9 2002-06-30 Yoshinori K. Okuji <okuji@alien>
* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed the
	conditional statement. Reported by Ilguiz Latypov.
2002-06-29 20:35:27 +00:00
okuji 2369202e83 2002-06-12 Yoshinori K. Okuji <okuji@enbug.org>
The terminal handling code is rewritten radically.

	* stage2/console.c: New file.
	* stage2/term.h: Likewise.

	* stage2/Makefile.am (noinst_HEADERS): Added term.h.
	(libgrub_a_SOURCES): Added serial.c.
	(pre_stage2_exec_SOURCES): Added console.c.

	* stage2/asm.S (console_putchar): Rewritten from scratch.
	[!STAGE1_5] (translation_table): New variable.
	[!STAGE1_5] (translate_keycode): New function.
	[!STAGE1_5] (console_getkey): Call translate_keycode.
	[!STAGE1_5] (console_checkkey): Likewise.
	[!STAGE1_5] (nocursor): Renamed to ...
	[!STAGE1_5] (console_nocursor): ... this.
	[!STAGE1_5] (console_set_attrib): Removed.

	* stage2/builtins.c: Include term.h.
	(terminal): Removed.
	(normal_color): Likewise.
	(highlight_color): Likewise.
	(cat_func): Display a question mark when a non-printable
	character was read.
	(terminal_func): Rewritten almost from scratch.

	* stage2/char_io.c: Include term.h.
	[!STAGE1_5] (auto_fill): Removed.
	[!STAGE1_5] (term_table): New variable.
	[!STAGE1_5] (current_term): Likewise.
	[!STAGE1_5] (real_get_cmdline): New function. The code was
	stolen from the previous version of get_cmdline.
	[!STAGE1_5] (get_cmdline): Rewritten from scratch.
	[!STAGE1_5] (translate_keycode): Removed.
	[!STAGE1_5] (getkey): Rewritten from scratch.
	[!STAGE1_5] (checkkey): Likewise.
	(grub_putchar): Likewise.
	[!STAGE1_5] (gotoxy): Likewise.
	[!STAGE1_5] (getxy): Likewise.
	[!STAGE1_5] (cls): Likewise.
	[!STAGE1_5] (nocursor): New function.
	[SUPPORT_SERIAL] (serial_getxy): Removed.
	[SUPPORT_SERIAL] (serial_gotoxy): Likewise.
	[SUPPORT_SERIAL] (serial_cls): Likewise.
	[SUPPORT_SERIAL] (serial_getxy): Likewise.
	[!STAGE1_5] (set_attrib): Likewise.

	* stage2/cmdline.c (init_cmdline): Set COUNT_LINES to -1.

	* stage2/common.c [!STAGE1_5] (err_list): Removed
	ERR_NEED_SERIAL and added ERR_DEV_NEED_INIT.

	* stage2/hercules.c: Rewritten almost from scratch.
	* stage2/hercules.h (herc_putchar): Removed.
	(herc_cls): Likewise.
	(herc_getxy): Likewise.
	(herc_gotoxy): Likewise.
	(herc_set_attrib): Likewise.

	* stage2/serial.c: Rewritten almost from scratch.
	* stage2/serial.h: Likewise.

	* stage2/shared.h [GRUB_UTIL] (DISP_UL): Set to the same value
	as VGA's.
	[GRUB_UTIL] (DISP_UR): Likewise.
	[GRUB_UTIL] (DISP_LL): Likewise.
	[GRUB_UTIL] (DISP_LR): Likewise.
	[GRUB_UTIL] (DISP_HORIZ): Likewise.
	[GRUB_UTIL] (DISP_VERT): Likewise.
	[GRUB_UTIL] (DISP_LEFT): Likewise.
	[GRUB_UTIL] (DISP_RIGHT): Likewise.
	[GRUB_UTIL] (DISP_UP): Likewise.
	[GRUB_UTIL] (DISP_DOWN): Likewise.
	(grub_error_t): Removed ERR_NEED_SERIAL.
	Added ERR_DEV_NEED_INIT.
	(normal_color): Removed.
	(highlight_color): Likewise.
	(console_cls): Removed, because this is declared in term.h.
	(console_getxy): Likewise.
	(console_gotoxy): Likewise.
	(console_putchar): Likewise.
	(console_getkey): Likewise.
	(console_checkkey): Likewise.
	(console_set_attrib): Removed.
	(set_attrib): Likewise.
	[GRUB_UTIL] (nocursor): Declared.
	(auto_fill): Removed.
	(terminal): Likewise.
	(TERMINAL_CONSOLE): Likewise.
	(TERMINAL_SERIAL): Likewise.
	(TERMINAL_HERCULES): Likewise.
	(TERMINAL_DUMB): Likewise.
	(translate_keycode): Likewise.

	* stage2/stage2.c: Include term.h.
	(print_entry): Rewritten from scratch.
	(print_entries): Likewise.
	(print_border): Likewise.
	(set_line): Removed.
	(set_line_normal): Likewise.
	(set_line_highlight): Likewise.

	* grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_HERCULES=1.

	* grub/asmstub.c: Don't include hercules.h. Include term.h.
	(console_current_color): New variable.
	(console_translate_key): New function.
	(console_checkkey): Rewritten from scratch.
	(console_getkey): Likewise.
	(console_putchar): Likewise.
	(console_set_attrib): Removed.
	(console_highlight): New function.
	(console_setcolor): Likewise.
	(console_nocursor): Likewise.
	(serial_getkey): Removed.
	(serial_checkkey): Likewise.
	(serial_putchar): Likewise.
	(serial_exists): Likewise.
	(serial_get_port): Likewise.
	(serial_init): Likewise.
	(serial_hw_fetch): New function.
	(serial_hw_put): Likewise.
	(serial_hw_delay): Likewise.
	(serial_hw_get_port): Likewise.
	(serial_hw_init): Likewise.
	(set_serial_device): Renamed to ...
	(serial_set_device): ... this.
	(herc_putchar): Renamed to ...
	(hercules_putchar): ... this.
	(herc_cls): Renamed to ...
	(hercules_cls): ... this.
	(herc_getxy): Renamed to ...
	(hercules_getxy): ... this.
	(herc_gotoxy): Renamed to ...
	(hercules_gotoxy): ... this.
	(hercules_highlight): New function.
	(hercules_setcolor): Likewise.
	(hercules_nocursor): Likewise.
	(herc_set_attrib): Removed.

	* grub/main.c: Include term.h.
	(main): If USE_CURSES is false, set CURRENT_TERM->FLAGS to
	TERM_NO_EDIT | TERM_DUMB. TERMINAL is not used any longer.
2002-06-11 16:36:54 +00:00
okuji 3c17445bfd Fix warnings from gcc-3.0.x. Not very serious. 2001-12-11 07:49:17 +00:00
okuji 61928d1323 Ensure that a serial port is set up before used. 2001-10-13 12:02:30 +00:00
okuji e705c4bdf8 Undo previous changes on serial.h and serial.c. I'm sorry, that was my mistake. 2000-08-26 17:36:07 +00:00
okuji f1c162c0c6 preserve a magic number used by Windows NT. 2000-08-26 17:28:27 +00:00
okuji fbd0ada4bb add a serial device driver. serial console support is not implemented yet. 2000-08-11 20:38:56 +00:00