Index: include/grub/powerpc/ieee1275/console.h =================================================================== --- include/grub/powerpc/ieee1275/console.h (revision 1864) +++ include/grub/powerpc/ieee1275/console.h (working copy) @@ -29,8 +29,8 @@ #define GRUB_CONSOLE_KEY_BACKSPACE 0x0008 #define GRUB_CONSOLE_KEY_HOME 0x4700 #define GRUB_CONSOLE_KEY_END 0x4F00 -#define GRUB_CONSOLE_KEY_NPAGE 0x4900 -#define GRUB_CONSOLE_KEY_PPAGE 0x5100 +#define GRUB_CONSOLE_KEY_NPAGE 0x5100 +#define GRUB_CONSOLE_KEY_PPAGE 0x4900 /* Initialize the console system. */ void grub_console_init (void); Index: include/grub/sparc64/ieee1275/console.h =================================================================== --- include/grub/sparc64/ieee1275/console.h (revision 1864) +++ include/grub/sparc64/ieee1275/console.h (working copy) @@ -30,8 +30,8 @@ #define GRUB_CONSOLE_KEY_BACKSPACE 0x0008 #define GRUB_CONSOLE_KEY_HOME 0x4700 #define GRUB_CONSOLE_KEY_END 0x4F00 -#define GRUB_CONSOLE_KEY_NPAGE 0x4900 -#define GRUB_CONSOLE_KEY_PPAGE 0x5100 +#define GRUB_CONSOLE_KEY_NPAGE 0x5100 +#define GRUB_CONSOLE_KEY_PPAGE 0x4900 /* Initialize the console system. */ void grub_console_init (void); Index: include/grub/i386/pc/console.h =================================================================== --- include/grub/i386/pc/console.h (revision 1864) +++ include/grub/i386/pc/console.h (working copy) @@ -29,8 +29,8 @@ #define GRUB_CONSOLE_KEY_BACKSPACE 0x0008 #define GRUB_CONSOLE_KEY_HOME 0x4700 #define GRUB_CONSOLE_KEY_END 0x4F00 -#define GRUB_CONSOLE_KEY_NPAGE 0x4900 -#define GRUB_CONSOLE_KEY_PPAGE 0x5100 +#define GRUB_CONSOLE_KEY_NPAGE 0x5100 +#define GRUB_CONSOLE_KEY_PPAGE 0x4900 #ifndef ASM_FILE Index: include/grub/efi/console.h =================================================================== --- include/grub/efi/console.h (revision 1864) +++ include/grub/efi/console.h (working copy) @@ -29,8 +29,8 @@ #define GRUB_CONSOLE_KEY_BACKSPACE 0x0008 #define GRUB_CONSOLE_KEY_HOME 0x4700 #define GRUB_CONSOLE_KEY_END 0x4F00 -#define GRUB_CONSOLE_KEY_NPAGE 0x4900 -#define GRUB_CONSOLE_KEY_PPAGE 0x5100 +#define GRUB_CONSOLE_KEY_NPAGE 0x5100 +#define GRUB_CONSOLE_KEY_PPAGE 0x4900 #include #include Index: normal/menu.c =================================================================== --- normal/menu.c (revision 1864) +++ normal/menu.c (working copy) @@ -457,6 +457,52 @@ } } break; + + case GRUB_TERM_PPAGE: + if (first == 0) + { + offset = 0; + } + else + { + first = first - GRUB_TERM_NUM_ENTRIES; + + if (first < 0) + { + offset = offset + first; + first = 0; + } + } + print_entries (menu, first, offset); + break; + + case GRUB_TERM_NPAGE: + if (offset==0) + { + offset = offset + GRUB_TERM_NUM_ENTRIES -1 ; + if (first+offset>menu->size) + { + offset=menu->size-first-1; + } + } + else + { + first = first + GRUB_TERM_NUM_ENTRIES; + + if (first + offset >= menu->size) + { + first = first - GRUB_TERM_NUM_ENTRIES; + offset = menu->size - 1; + + if (offset > menu->size - 1 || offset > GRUB_TERM_NUM_ENTRIES - 1) + { + first = offset - (GRUB_TERM_NUM_ENTRIES - 1); + offset = GRUB_TERM_NUM_ENTRIES - 1; + } + } + } + print_entries (menu, first, offset); + break; case '\n': case '\r':