diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-01-04 16:24:11 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-01-04 16:24:11 -0800 |
commit | c54b3aad457950cc5d3e408ae1a65d05f12b7173 (patch) | |
tree | 53bef0951b1f453cde97e586c5d80ac2b1b1fb8b | |
parent | 6e799707077193baa008edcb040aadcd913bac90 (diff) | |
download | syslinux-c54b3aad457950cc5d3e408ae1a65d05f12b7173.tar.gz |
Handle vga={ask|normal|ext} in linux.c32syslinux-3.55-pre4
linux.c32 didn't handle vga={ask|normal|ext}, fix that.
-rw-r--r-- | com32/modules/linux.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/com32/modules/linux.c b/com32/modules/linux.c index c20536f3..90aab68b 100644 --- a/com32/modules/linux.c +++ b/com32/modules/linux.c @@ -204,8 +204,22 @@ int main(int argc, char *argv[]) if ((arg = find_argument(argp, "mem="))) mem_limit = saturate32(suffix_number(arg)); - if ((arg = find_argument(argp, "vga="))) - video_mode = strtoul(arg, NULL, 0); + if ((arg = find_argument(argp, "vga="))) { + switch (arg[0] | 0x20) { + case 'a': /* "ask" */ + video_mode = 0xfffd; + break; + case 'e': /* "ext" */ + video_mode = 0xfffe; + break; + case 'n': /* "normal" */ + video_mode = 0xffff; + break; + default: + video_mode = strtoul(arg, NULL, 0); + break; + } + } if ((arg = find_argument(argp, "initrd="))) { do { |