add graphics support into the Multiboot Specification.
This commit is contained in:
parent
f328ddf8bb
commit
b9104596eb
3 changed files with 65 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2000-02-11 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
|
From Per Lundberg <plundis@byggdok.se>:
|
||||||
|
* docs/multiboot.texi: Added graphics support.
|
||||||
|
|
||||||
2000-02-10 OKUJI Yoshinori <okuji@gnu.org>
|
2000-02-10 OKUJI Yoshinori <okuji@gnu.org>
|
||||||
|
|
||||||
* docs/multiboot.texi (Top): Downgrade the version to 0.6.90,
|
* docs/multiboot.texi (Top): Downgrade the version to 0.6.90,
|
||||||
|
|
1
THANKS
1
THANKS
|
@ -27,6 +27,7 @@ Michael Hohmuth <hohmuth@innocent.com>
|
||||||
Miles Bader <miles@gnu.org>
|
Miles Bader <miles@gnu.org>
|
||||||
OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
Pavel Roskin <pavel_roskin@geocities.com>
|
Pavel Roskin <pavel_roskin@geocities.com>
|
||||||
|
Per Lundberg <plundis@byggdok.se>
|
||||||
Peter Astrand <altic@lysator.liu.se>
|
Peter Astrand <altic@lysator.liu.se>
|
||||||
Ramon van Handel <vhandel@chem.vu.nl>
|
Ramon van Handel <vhandel@chem.vu.nl>
|
||||||
Stephen Early <steve@greenend.org.uk>
|
Stephen Early <steve@greenend.org.uk>
|
||||||
|
|
|
@ -353,6 +353,11 @@ header is as follows:
|
||||||
24 | bss_end_addr | (present if flags[16] is set)
|
24 | bss_end_addr | (present if flags[16] is set)
|
||||||
28 | entry_addr | (present if flags[16] is set)
|
28 | entry_addr | (present if flags[16] is set)
|
||||||
+-------------------+
|
+-------------------+
|
||||||
|
32 | mode_type | (present if flags[2] is set)
|
||||||
|
36 | width | (present if flags[2] is set)
|
||||||
|
40 | height | (present if flags[2] is set)
|
||||||
|
44 | depth | (present if flags[2] is set)
|
||||||
|
+-------------------+
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@ -383,6 +388,28 @@ structure (@pxref{Boot information format}) must be included. If the
|
||||||
bootloader is capable of passing a memory map (the @samp{mmap_*} fields)
|
bootloader is capable of passing a memory map (the @samp{mmap_*} fields)
|
||||||
and one exists, then it must be included as well.
|
and one exists, then it must be included as well.
|
||||||
|
|
||||||
|
If bit 2 in the @samp{flags} word is set, information about the video
|
||||||
|
mode table, defined later, must be available to the kernel.
|
||||||
|
|
||||||
|
Also, information about a preferred default mode can be specified in the
|
||||||
|
@samp{mode_type}, @samp{width}, @samp{height} and @samp{depth}
|
||||||
|
fields. This is only a @emph{recommended} mode by the kernel. If the
|
||||||
|
mode exists, the boot loader should set it if the user hasn't specified
|
||||||
|
a mode. If not, it should fall back to a similar mode, if available.
|
||||||
|
|
||||||
|
Valid numbers for @samp{mode_type} is 0 for linear graphics mode and 1
|
||||||
|
for EGA-standard text mode. Everything else is reserved for future
|
||||||
|
expansion. Please note that even if you set this field to indicate that
|
||||||
|
you want a graphics mode, you might get a text mode.
|
||||||
|
|
||||||
|
@samp{width} and @samp{height} is specified in pixels, if graphics mode,
|
||||||
|
or characters in EGA text mode. @samp{depth} is given in bits per pixel
|
||||||
|
for graphics, or zero for EGA text modes.
|
||||||
|
|
||||||
|
Any, some or all of those three fields may be set to zero, indicating to
|
||||||
|
the boot loader that no preference is given. This makes it possible for
|
||||||
|
a kernel to just say it wants a 32-bit resolution, for example.
|
||||||
|
|
||||||
If bit 16 in the @samp{flags} word is set, then the fields at offsets
|
If bit 16 in the @samp{flags} word is set, then the fields at offsets
|
||||||
8-24 in the Multiboot header are valid, and the boot loader should use
|
8-24 in the Multiboot header are valid, and the boot loader should use
|
||||||
them instead of the fields in the actual executable header to calculate
|
them instead of the fields in the actual executable header to calculate
|
||||||
|
@ -549,6 +576,8 @@ follows:
|
||||||
+-------------------+
|
+-------------------+
|
||||||
68 - ?? | apm_table | (present if flags[10] is set)
|
68 - ?? | apm_table | (present if flags[10] is set)
|
||||||
+-------------------+
|
+-------------------+
|
||||||
|
?? - ?? | graphics_table | (present if flags[11] is set)
|
||||||
|
+-------------------+
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@ -800,6 +829,36 @@ string.
|
||||||
|
|
||||||
@c I haven't defined the apm_table field yet. - okuji
|
@c I haven't defined the apm_table field yet. - okuji
|
||||||
|
|
||||||
|
If bit 11 in the @samp{flags} is set, video mode information is
|
||||||
|
available in the mode table. This should only be done if the kernel has
|
||||||
|
indicated in the @samp{Multiboot Header} that it accepts graphics modes.
|
||||||
|
|
||||||
|
The mode table looks like this:
|
||||||
|
|
||||||
|
@example
|
||||||
|
@group
|
||||||
|
|
||||||
|
+----------------------+
|
||||||
|
0 | mode_type |
|
||||||
|
4 | width |
|
||||||
|
8 | height |
|
||||||
|
12 | depth |
|
||||||
|
16 | frame_buffer_address |
|
||||||
|
+----------------------+
|
||||||
|
|
||||||
|
@end group
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Valid numbers for @samp{mode_type} is 0 for linear graphics mode and 1
|
||||||
|
for EGA-standard text mode. Everything else is reserved for future
|
||||||
|
expansion.
|
||||||
|
|
||||||
|
@samp{width} and @samp{height} is specified in pixels, if graphics mode,
|
||||||
|
or characters in EGA text mode. @samp{depth} is given in bits per pixel
|
||||||
|
for graphics, or unused for EGA text mode.
|
||||||
|
|
||||||
|
@samp{frame_buffer_address} specifies the physical start address of the
|
||||||
|
linear frame buffer. This is valid for both graphics and text modes.
|
||||||
|
|
||||||
@node Examples
|
@node Examples
|
||||||
@chapter Examples
|
@chapter Examples
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue