Add support for "vga=current"
authorH. Peter Anvin <hpa@zytor.com>
Sat, 23 Jan 2010 01:42:11 +0000 (17:42 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 23 Jan 2010 01:42:11 +0000 (17:42 -0800)
"vga=current" is a user-friendly synonym for "vga=0x0f04".

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
com32/lib/syslinux/load_linux.c
core/runkernel.inc

index db98516..df79362 100644 (file)
@@ -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;
index c437d72..f6ede38 100644 (file)
@@ -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