summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-01-22 17:42:47 -0800
committerH. Peter Anvin <hpa@zytor.com>2010-01-22 17:42:47 -0800
commit5c0f48e49f8d7d084810ecf0b98a76aaebb44835 (patch)
treef870055f4a82f7db0e3b8f0984d95ec23990bf17
parent5d4ade0221c2387345d0a82422866bb8b937cb09 (diff)
parentaab6f6014b1719db0254f108d89bb0b6750c822a (diff)
downloadsyslinux-5c0f48e49f8d7d084810ecf0b98a76aaebb44835.tar.gz
Merge branch 'master' into i915ressyslinux-3.85-pre61
-rw-r--r--com32/lib/syslinux/load_linux.c3
-rw-r--r--core/runkernel.inc11
2 files changed, 10 insertions, 4 deletions
diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c
index db985163..df793625 100644
--- a/com32/lib/syslinux/load_linux.c
+++ b/com32/lib/syslinux/load_linux.c
@@ -253,6 +253,9 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size,
case 'n': /* "normal" */
video_mode = 0xffff;
break;
+ case 'c': /* "current" */
+ video_mode = 0x0f04;
+ break;
default:
video_mode = strtoul(arg, NULL, 0);
break;
diff --git a/core/runkernel.inc b/core/runkernel.inc
index c437d72d..f6ede382 100644
--- a/core/runkernel.inc
+++ b/core/runkernel.inc
@@ -138,15 +138,18 @@ parse_cmdline:
jmp .next_opt
opt_vga:
- mov eax,[es:di-1]
+ mov ax,[es:di-1]
mov bx,-1
- cmp eax,'=nor' ; vga=normal
+ cmp ax,'=nor' ; vga=normal
je .vc0
dec bx ; bx <- -2
- cmp eax,'=ext' ; vga=ext
+ cmp ax,'=ext' ; vga=ext
je .vc0
dec bx ; bx <- -3
- cmp eax,'=ask' ; vga=ask
+ cmp ax,'=ask' ; vga=ask
+ je .vc0
+ mov bx,0x0f04 ; bx <- 0x0f04 (current mode)
+ cmp ax,'=cur' ; vga=current
je .vc0
call parseint_esdi ; vga=<number>
jc .skip ; Not an integer