params->cl_magic = GRUB_LINUX_CL_MAGIC;
params->cl_offset = GRUB_OFW_LINUX_CL_OFFSET;
- params->video_width = (grub_getwh () >> 8);
- params->video_height = (grub_getwh () & 0xff);
+ {
+ grub_term_output_t term;
+ int found = 0;
+ FOR_ACTIVE_TERM_OUTPUTS(term)
+ if (grub_strcmp (term->name, "vga_text") == 0)
+ {
+ grub_uint16_t pos = grub_term_getxy (term);
+ params->video_cursor_x = pos >> 8;
+ params->video_cursor_y = pos & 0xff;
+ params->video_width = grub_term_width (term);
+ params->video_height = grub_term_height (term);
+ found = 1;
+ }
+ if (!found)
+ FOR_ACTIVE_TERM_OUTPUTS(term)
+ if (grub_strcmp (term->name, "console") == 0)
+ {
+ grub_uint16_t pos = grub_term_getxy (term);
+ params->video_cursor_x = pos >> 8;
+ params->video_cursor_y = pos & 0xff;
+ params->video_width = grub_term_width (term);
+ params->video_height = grub_term_height (term);
+ found = 1;
+ }
+ if (!found)
+ {
+ params->video_cursor_x = 0;
+ params->video_cursor_y = 0;
+ params->video_width = 80;
+ params->video_height = 25;
+ }
+ }
params->font_size = 16;
params->ofw_signature = GRUB_LINUX_OFW_SIGNATURE;
grub_curr_x++;
if (grub_curr_x > grub_ofconsole_width)
{
- grub_putcode ('\n');
+ grub_ofconsole_putchar ('\n');
grub_curr_x++;
}
}
* ANSI escape sequence. Using video console, Apple Open Firmware (version
* 3.1.1) only recognizes the literal ^L. So use both. */
grub_ofconsole_writeesc ("\f\e[2J");
- grub_gotoxy (0, 0);
+ grub_ofconsole_gotoxy (0, 0);
}
static void