From: Dennis Flaherty (dennisf@Miles.COM)
Date: 04/13/92


From: dennisf@Miles.COM (Dennis Flaherty)
Subject: Re: Patch to preset the SVGA mode
Date: 13 Apr 1992 19:13:37 GMT

In article <12120@tamsun.tamu.edu> ail8070@tamsun.tamu.edu (Andy I. Liaw) writes:
> In article <1992Apr9.164927.11540@Miles.COM> dennisf@Miles.COM (Dennis Flaherty) writes:
> >
> >If you are tired of hitting RETURN and selecting the
> >same SVGA mode every time you boot Linux, apply this
> >patch and rebuild the kernel. It allows you to preset
> >the mode in the Makefile, so that the setup program
> >proceeds as if you had hit RETURN and your favorite number.
>
> Could you please also post the same thing for presetting
> the mode to VGA (or EGA)? Maybe it's trivial, but I'm
> not a C programmer and have no idea how this is done.
>
> Thanks!

Sure. This took some doing, and I'd appreciate some feedback.
I moved the # sign from the Makefile to boot/setup.S, so I now
use "2" instead of "\#2" in the Makefile. And now if you set
SVGA_MODE to "VGA" it will compile a kernel that boots EGA/VGA
mode, no questions asked (well, it doesn't wait for you to
answer :-,).

I've assembled all three versions; SVGA_MODE undefined prompts
you for a RETURN key and then a number, SVGA_MODE=VGA acts like
you hit another key and sets EGA/VGA mode, and SVGA_MODE=2 sets
my favorite SVGA mode. They all seem to work right for me.

Dennis

Here's the revised patch:

*** Makefile Mon Apr 6 15:41:45 1992
--- Makefile Mon Apr 13 13:48:02 1992
***************
*** 44,49 ****
--- 44,56 ----
  AS86 =as86 -0 -a
  LD86 =ld86 -0
  
+ #
+ # If you want to preset the SVGA mode, uncomment the next line
+ # and set SVGA_MODE to whatever number you want. I use 2.
+ # Set it to -DSVGA_MODE=VGA if you just want the EGA/VGA mode.
+ #
+ #SVGA_MODE= -DSVGA_MODE=2
+
  AS =as
  LD =ld
  #LDFLAGS =-s -x -M
***************
*** 124,130 ****
        $(LD86) -s -o boot/setup boot/setup.o
  
  boot/setup.s: boot/setup.S include/linux/config.h
! $(CPP) -traditional boot/setup.S -o boot/setup.s
  
  boot/bootsect.s: boot/bootsect.S include/linux/config.h
        $(CPP) -traditional boot/bootsect.S -o boot/bootsect.s
--- 131,137 ----
        $(LD86) -s -o boot/setup boot/setup.o
  
  boot/setup.s: boot/setup.S include/linux/config.h
! $(CPP) -traditional $(SVGA_MODE) boot/setup.S -o boot/setup.s
  
  boot/bootsect.s: boot/bootsect.S include/linux/config.h
        $(CPP) -traditional boot/bootsect.S -o boot/bootsect.s
*** boot/setup.S Mon Apr 6 13:32:48 1992
--- boot/setup.S Mon Apr 13 12:56:03 1992
***************
*** 245,250 ****
--- 245,251 ----
        mov es,ax
        lea si,msg1
        call prtstr
+ #ifndef SVGA_MODE
  flush: in al,#0x60 ! Flush the keyboard buffer
        cmp al,#0x82
        jb nokey
***************
*** 256,264 ****
--- 257,268 ----
        ja nokey
        cmp al,#0x9c
        je svga
+ #endif
+ #if !defined(SVGA_MODE) || SVGA_MODE == VGA
        mov ax,#0x5019
        pop ds
        ret
+ #endif
  svga: cld
        lea si,idati ! Check ATI 'clues'
        mov di,#0x31
***************
*** 497,502 ****
--- 501,509 ----
        call prtstr
        pop si
        add cl,#0x80
+ #if defined(SVGA_MODE) && SVGA_MODE != VGA
+ nonum: mov al,#SVGA_MODE ! Preset SVGA mode
+ #else
  nonum: call getkey
        cmp al,#0x82
        jb nonum
***************
*** 508,513 ****
--- 515,521 ----
  zero: sub al,#0x0a
  nozero: sub al,#0x80
        dec al
+ #endif
        xor ah,ah
        add di,ax
        inc di

-- 
Dennis T. Flaherty     dennisf@Miles.com
Miles, Inc.            dflahert@chekov.helios.nd.edu
Diagnostics Division
My doctor says Mylanta, but my boss says Alka-Seltzer!