Home | History | Annotate | Download | only in grub
      1 2005-05-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
      2 
      3 	* configure.ac (AC_INIT): Upgraded to 0.97.
      4 
      5 	* compile: Copied from Automake 1.9.4.
      6 	* config.guess: Likewise.
      7 	* config.sub: Likewise.
      8 	* depcomp: Likewise.
      9 	* install-sh: Likewise.
     10 	* missing: Likewise.
     11 	* mkinstalldirs: Likewise.
     12 	* mdate-sh: Likewise.
     13 	* docs/texinfo.tex: Likewise.
     14 
     15 2005-05-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
     16 
     17 	* stage2/fsys_xfs.c (next_dentry): Use arrays of arrays instead of
     18 	arrays of pointers for USUAL, to avoid read-only strings. Reported
     19 	by Sven Wegener <swegener (a] gentoo.org>.
     20 
     21 2005-03-28  Yoshinori K. Okuji  <okuji (a] enbug.org>
     22 
     23 	* lib/device.c (get_drive_geometry): Use ST.ST_SIZE instead of
     24 	ST.ST_BLOCKS to get the total number of sectors, because st_blocks
     25 	is not the same if it is a sparse file.
     26 
     27 2005-03-19  Yoshinori K. Okuji  <okuji (a] enbug.org>
     28 
     29 	* stage2/stage2.c (cmain): Initialize DEFAULT_FILE to an empty
     30 	string. Reported by NATORI Shin <natori (a] adm.s.u-tokyo.ac.jp>.
     31 
     32 2005-03-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
     33 
     34 	* stage2/fsys_fat.c (fat_mount): Ignore the 3rd bit of a media
     35 	descriptor, because some BIOSes overwrite this value, according
     36 	to the storage mode (e.g. USB Floppy or USB HDD).
     37 
     38 2005-02-16  Yoshinori K. Okuji  <okuji (a] enbug.org>
     39 
     40 	* grub/asmstub.c (grub_stage2): Remove the attribute `volatile'
     41 	from doit. I hope this change is safe for all compilers.
     42 
     43 2005-02-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
     44 
     45 	* stage2/builtins.c (install_func): If DEST_DRIVE is a hard
     46 	disk, enable the workaround in Stage 1 by replacing the jmp
     47 	with double nop's.
     48 
     49 	* stage1/stage1.h (STAGE1_BOOT_DRIVE_CHECK): New macro.
     50 	(STAGE1_BOOT_DRIVE_MASK): Removed.
     51 
     52 	* stage1/stage1.S (boot_drive_check): New label. This implements
     53 	a different workaround for buggy BIOSes which don't pass boot
     54 	drive correctly. This is effective for BIOSes which pass a value
     55 	without the seventh bit (0x80).
     56 	(boot_drive_mask): Removed.
     57 
     58 2005-02-03  Yoshinori K. Okuji  <okuji (a] enbug.org>
     59 
     60 	* grub/asmstub.c (console_current_color): Make it global as
     61 	declared.
     62 	(grub_stage2): Tweak the declaration and the definition of the
     63 	nested function doit.
     64 
     65 2005-02-02  Yoshinori K. Okuji  <okuji (a] enbug.org>
     66 
     67 	* stage2/smp-imps.h (imps_any_new_apics): Removed.
     68 	(imps_enabled): Likewise.
     69 	(imps_lapic_addr): Likewise.
     70 	(imps_num_cpus): Likewise.
     71 	(imps_cpu_apic_map): Likewise.
     72 	(imps_apic_cpu_map): Likewise.
     73 
     74 	* stage2/Makefile.am (libgrub_a_CFLAGS): Remove
     75 	-fwritable-strings. Not required for the grub shell actually.
     76 
     77 	* grub/Makefile.am (AM_CFLAGS): Likewise.
     78 
     79 2005-02-01  Yoshinori K. Okuji  <okuji (a] enbug.org>
     80 
     81 	* grub/asmstub.c (grub_stage2): Use auto instead of static for
     82 	nested functions.
     83 
     84 	* stage2/char_io.c (memcheck) [GRUB_UTIL]: Likewise.
     85 
     86 	* stage2/builtins.c (blocklist_func): Likewise.
     87 	(color_func): Likewise.
     88 	(install_func): Likewise.
     89 	(setkey_func): Likewise.
     90 
     91 	* lib/device.c (read_device_map): Likewise.
     92 
     93 2005-01-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
     94 
     95         * configure.ac (AC_INIT): Upgraded to 0.96.
     96 
     97 2004-10-11 Jason Thomas <jason (a] staff.pnc.com.au>
     98 
     99 	Patch from Stefanus Du Toit  <sjdutoit (a] uwaterloo.ca>
    100 	* docs/kernel.c.texi (cmain): Incremement mod by one, instead of
    101 	sizeof(module_t), since it's already a pointer of type module_t.
    102 	* docs/kernel.c (cmain): Do the same.
    103 
    104 2004-09-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
    105 
    106 	* docs/internals.texi (Internals): Changed to an appendix.
    107 
    108 	* docs/grub.texi (@setchapternewpage): Changed to odd from off.
    109 	(@contents): Moved to the beginning.
    110 	(Future): Changed to an appendix.
    111 
    112 2004-08-17  Yoshinori K. Okuji  <okuji (a] enbug.org>
    113 
    114 	* stage2/cmdline.c (run_script): Fix a reversed conditional.
    115 	Reported by Alban Crequy <alban.crequy (a] apinc.org>.
    116 
    117 2004-08-07  Jason Thomas  <jason (a] staff.pnc.com.au>
    118 	
    119 	From Michael Hohnbaum <hohnbaum (a] us.ibm.com>:
    120 	* stage2/fsys_ext2fs.c (ext2fs_read): Handle sparse files.
    121 
    122 2004-07-24  Yoshinori K. Okuji  <okuji (a] enbug.org>
    123 
    124 	* stage2/stage2.c (cmain): Terminate DEFAULT_FILE with NUL
    125 	correctly. Reported by Alban Crequy <alban.crequy (a] apinc.org>.
    126 
    127 2004-07-21  Robert Millan  <robertmh (a] gnu.org>
    128 
    129 	Patch from David Weinehall <tao (a] debian.org>
    130 	* util/mkbimage: Fix XSI-isms (for supporting POSIX-only shells).
    131 
    132 2004-07-20  Robert Millan  <robertmh (a] gnu.org>
    133 
    134 	* util/grub-install.in: Detect GNU/k*BSD systems as well.
    135 
    136 2004-07-16  Yoshinori K. Okuji  <okuji (a] enbug.org>
    137 
    138 	* util/grub-install.in (convert): Fix the sed statement for
    139 	Linux. The expression was ambigious in some cases.
    140 
    141 2004-06-29  Robert Millan  <robertmh (a] gnu.org>
    142 
    143 	* util/grub-set-default.in: Fix minor syntax error (non-escaped
    144 	characters).
    145 
    146 2004-06-24  Robert Millan  <robertmh (a] gnu.org>
    147 
    148 	Fixes for FHS compliance. (/usr/share is for arch-independant data)
    149 	* stage1/Makefile.am: Move stage files to pkglibdir.
    150 	* stage2/Makefile.am: Likewise.
    151 	* docs/grub.texi: s,/usr/share,/usr/lib,g.
    152 	* util/grub-image.in: Look for stage files in pkglibdir.
    153 	* util/grub-install.in: Likewise.
    154 
    155 	* util/grub-install.in: Improve usage message.
    156 
    157 2004-06-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
    158 
    159 	This is a big change on saving a default entry. This change
    160 	makes it possible to set up a quite robust system using GRUB.
    161 	Now we do not use the second sector of Stage 2 to store an
    162 	entry number but use the file /boot/grub/default. This file
    163 	must be generated by grub-set-default, although this file is
    164 	plain-text.
    165 	
    166 	* util/grub-set-default.in: New file.
    167 	
    168 	* util/grub-install.in (grub_set_default): New variable.
    169 	Use /grub instead of /boot/grub on OpenBSD as well as NetBSD.
    170 	Run grub-set-default to make a default file.
    171 
    172 	* util/Makefile.am (sbin_SCRIPTS): Added grub-set-default.
    173 
    174 	* stage2/stage2.c (run_menu): Change the fallback handling to
    175 	support multiple fallback entries.
    176 	(cmain): Likewise. Also, get a saved entry from a default file
    177 	if possible, before reading a config file.
    178 
    179 	* stage2/shared.h (DEFAULT_FILE_BUF): New macro.
    180 	(DEFAULT_FILE_BUFLEN): Likewise.
    181 	(CMDLINE_BUF): Set to DEFAULT_FILE_BUF + DEFAULT_FILE_BUFLEN.
    182 	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - MENU_BUF.
    183 	(fallback_entry): Removed.
    184 	(fallback_entries): Declared.
    185 	(fallback_entryno): Likewise.
    186 	(MAX_FALLBACK_ENTRIES): New macro.
    187 
    188 	* stage2/cmdline.c (run_script): Use FALLBACK_ENTRYNO instead of
    189 	FALLBACK_ENTRY.
    190 
    191 	* stage2/builtins.c (fallback_entry): Removed.
    192 	(fallback_entryno): New variable.
    193 	(fallback_entries): Likewise.
    194 	(init_config): Initialize FALLBACK_ENTRYNO and FALLBACK_ENTRIES.
    195 	(fallback_func): Rewritten completely.
    196 	(savedefault_func): Likewise.
    197 
    198 	* docs/grub.texi (grub-set-default): New direntry.
    199 	(Installation): Describe grub-set-default for manual
    200 	installations.
    201 	(Making your system robust): New section.
    202 	(Booting once-only): New subsection.
    203 	(Booting fallback systems): Likewise.
    204 	(fallback): Describe multiple fallback entries.
    205 	(savedefault): Describe an optional argument.
    206 	(Invoking grub-set-default): New chapter.
    207 	(Future): Replaced with a description about GRUB 2.
    208 
    209 	* configure.ac (AC_CONFIG_FILES): Added util/grub-set-default.
    210 
    211 2004-06-19  Yoshinori K. Okuji  <okuji (a] enbug.org>
    212 
    213 	* stage2/ufs2.h (int8_t): Renamed to ...
    214 	(grub_uint8_t): ... this.
    215 	(int16_t): Renamed to ...
    216 	(grub_int16_t): ... this.
    217 	(int32_t): Renamed to ...
    218 	(grub_int32_t): ... this.
    219 	(int64_t): Renamed to ...
    220 	(grub_int64_t): ... this.
    221 	(uint8_t): Renamed to ...
    222 	(grub_uint8_t): ... this.
    223 	(uint16_t): Renamed to ...
    224 	(grub_uint16_t): ... this.
    225 	(uint32_t): Renamed to ...
    226 	(grub_uint32_t): ... this.
    227 	(uint64_t): Renamed to ...
    228 	(grub_uint64_t): ... this.
    229 	(u_char): Renamed to ...
    230 	(grub_u_char): ... this.
    231 	(u_int): Renamed to ...
    232 	(grub_u_int): ... this.
    233 	(u_int8_t): Renamed to ...
    234 	(grub_u_int8_t): ... this.
    235 	(u_int16_t): Renamed to ...
    236 	(grub_u_int16_t): ... this.
    237 	(u_int32_t): Renamed to ...
    238 	(grub_u_int32_t): ... this.
    239 	(u_int64_t): Renamed to ...
    240 	(grub_u_int64_t): ... this.
    241 	(ino_t): Renamed to ...
    242 	(grub_ino_t): ... this.
    243 	All callers are changed.
    244 
    245 2004-06-14  Jeroen Dekkers  <jeroen (a] dekkers.cx>
    246 
    247 	* stage2/ufs2.h (__uint8_t): Remove.
    248 	(__uint16_t): Likewise.
    249 	(__uint32_t): Likewise.
    250 	(__uint64_t): Likewise.
    251 	(ino_t): Typedef to uint32_t.
    252 
    253 2004-06-13  Yoshinori K. Okuji  <okuji (a] enbug.org>
    254 
    255 	* stage2/Makefile.am (noinst_HEADERS): Added ufs2.h.
    256 	
    257 2004-06-13  Yoshinori K. Okuji  <okuji (a] enbug.org>
    258 
    259 	* configure.ac (AC_INIT): Upgraded to 0.95.
    260 
    261 2004-05-23  Yoshinori K. Okuji  <okuji (a] enbug.org>
    262 
    263 	* stage2/char_io.c (grub_isspace): Use a switch sentense instead
    264 	of an if sentense, because that reduces the size.
    265 
    266 	* lib/device.c (read_device_map): Change the max number of DRIVE
    267 	to 127 from 8. This was too strict.
    268 
    269 	* stage2/asm.S (stop_floppy): Call pusha and popa outside the
    270 	block of real mode code. Reported by Guillem Jover
    271 	<guillem (a] debian.org>.
    272 
    273 2004-05-20  Damian Ivereigh  <damian (a] cisco.com>
    274 
    275 	* netboot/main.c: Fixed bootp only code so that options
    276 	work properly. This fix is obvious when compared with the
    277 	DHCP code.
    278 
    279 2004-05-17  Pavel Roskin  <proski (a] gnu.org>
    280 
    281 	* stage2/char_io.c (safe_parse_maxint): Disable for stage 1.5.
    282 	(grub_tolower): Disable for stage 1.5 except fat_stage1_5.
    283 	(grub_memcmp): Disable for stage 1.5 except iso9660_stage1_5.
    284 
    285 2004-05-14  Yoshinori K. Okuji  <okuji (a] enbug.org>
    286 
    287 	From Sergey Matveychuk <sem (a] ciam.ru>:
    288 	* stage2/size_test: Added a check for ufs2_stage1_5.
    289 
    290 	* stage2/shared.h (STAGE2_ID_UFS2_STAGE1_5): New macro.
    291 	[FSYS_UFS2] (STAGE2_ID): Set to STAGE2_ID_UFS2_STAGE1_5.
    292 
    293 	* stage2/filesys.h (FSYS_UFS2_NUM): New macro.
    294 	[FSYS_UFS2] (ufs2_mount): New prototype.
    295 	[FSYS_UFS2] (ufs2_read): Likewise.
    296 	[FSYS_UFS2] (ufs2_dir): Likewise.
    297 	[FSYS_UFS2] (ufs2_embed): Likewise.
    298 	(NUM_FSYS): Added FSYS_UFS2_NUM.
    299 
    300 	* stage2/disk_io.c (fsys_table): Added an ufs2 entry.
    301 
    302 	* stage2/builtins.c (setup_func): Added ufs2 into the
    303 	STAGE1_5_MAP.
    304 
    305 	* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_ufs2.c.
    306 	(libgrub_a_CFLAGS): Added -DFSYS_UFS2=1.
    307 	(pkgdata_DATA): Added ufs2_stage1_5.
    308 	(noinst_PROGRAMS): Added ufs2_stage1_5.exec.
    309 	(ufs2_stage1_5_exec_SOURCES): New variable.
    310 	(ufs2_stage1_5_exec_CFLAGS): Likewise.
    311 	(ufs2_stage1_5_exec_CCASFLAGS): Likewise.
    312 	(ufs2_stage1_5_exec_LDFLAGS): Likewise.
    313 
    314 	* grub/Makefile.am (AM_CPPFLAGS): Added -DFSYS_ISO9660=1,
    315 	-DFSYS_JFS=1, -DFSYS_REISERFS=1, -DFSYS_UFS2=1, -DFSYS_VSTAFS=1,
    316 	-DFSYS_XFS=1, and -DUSE_MD5_PASSWORDS=1.
    317 
    318 	* configure.ac (--disable-ufs2): New option.
    319 
    320 	* stage2/fsys_ufs2.c: New file.
    321 	* stage2/ufs2.h: Likewise.
    322 
    323 2004-05-10  Robert Millan  <robertmh (a] gnu.org>
    324 
    325 	* lib/device.c: Mangle __FreeBSD_* macro usage to support
    326 	kFreeBSD-based non-FreeBSD systems (i.e. GNU/kFreeBSD).
    327 
    328 	Implement runtime detection of version of kFreeBSD. Now if
    329 	we build against kFreeBSD 5.x headers the GRUB shell will work on
    330 	both 4.x and 5.x.
    331 
    332 	Replace `u_int_t' types with portable `unsigned int' and old
    333 	reference to `geometry' structure to new `geom' one.
    334 
    335 	* docs/menu.lst: Split GNU/kFreeBSD and GNU/kNetBSD as separate
    336 	options than FreeBSD and NetBSD, respectively. There are minor
    337 	differences now (different paths).
    338 
    339 2004-05-03  Pavel Roskin  <proski (a] gnu.org>
    340 
    341 	* stage2/char_io.c (convert_to_ascii): Remove "%b" support.
    342 	It's non-standard and is not used anymore.
    343 	(grub_printf): Likewise.
    344 
    345 2004-04-29  Robert Millan  <robertmh (a] gnu.org>
    346 
    347 	From Yann Dirson  <dirson (a] debian.org>:
    348 	* util/mkbimage: Misc syntax fixes.
    349 
    350 2004-04-29  Jeroen Dekkers  <jeroen (a] dekkers.cx>
    351 
    352 	* stage2/char_io.c (grub_memcmp): Define for stage1.5 too.
    353 
    354 	* stage2/fsys_iso9660.c (iso9660_mount): Use memcmp() instead of
    355 	__builtin_memcmp().
    356 	(iso9660_dir): Likewise.
    357 
    358 2004-04-26  Christian Jones  <chjones (a] aleph0.com>
    359 
    360 	* docs/grub.texi (Making a GRUB bootable CD-ROM): minor edits,
    361 	including a few compatibility notes and a change to
    362 	-boot-load-size 4 for the mkisofs command.
    363 
    364 2004-04-22  Jeroen Dekkers  <jeroen (a] dekkers.cx>
    365 
    366 	* Makefile.am (AUTOMAKE_OPTIONS): Add "gnu".
    367 	* configure.ac: Update to work with automake 1.8, quote all
    368 	AC_DEFUN's correctly and provide descriptions for AC_DEFINE's.
    369 	* acinclude.m4: Likewise.
    370 	* acconfig.h: Removed.
    371 	
    372 	* stage1/Makefile.am (.exec): Use suffix rules instead of pattern
    373 	rules.
    374 	* stage2/Makefile.am (.exec): Likewise.
    375 
    376 2004-04-18  Yoshinori K. Okuji  <okuji (a] enbug.org>
    377 
    378 	* docs/grub.texi (Making a GRUB bootable CD-ROM): New section.
    379 
    380 	* stage2/disk_io.c (set_device): Use CH instead of *DEVICE to
    381 	test the first character of DEVICE, because DEVICE is
    382 	incremented.
    383 	Reported by Bernhard Treutwein.
    384 
    385 2004-04-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
    386 
    387 	* netboot/fsys_tftp.c (buf_fill): Cast 1 to unsigned short
    388 	explicitly so that the constant doesn't extend unsigned short
    389 	to int automatically.
    390 	Reported by Eduard Guzovsky <eguzovsk (a] enterasys.com>.
    391 
    392 	* docs/grub.texi (Invoking grub-md5-crypt): Fixed the chapter
    393 	name.
    394 	Reported by Martin Pool <mbp (a] sourcefrog.net>.
    395 
    396 2004-04-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
    397 
    398 	* configure.ac (STAGE2_CFLAGS): Check if -fno-stack-protector is
    399 	supported by GCC. If yes, added the option. This is necessary
    400 	for OpenBSD, because the stack protector defines additional
    401 	symbols. Reported by uc.sheda <uc.sheda (a] laposte.net>.
    402 
    403 2004-03-28  Pavel Roskin  <proski (a] gnu.org>
    404 
    405 	* stage2/boot.c: Imply --no-mem-option for Linux kernels with
    406 	protocol version 2.03 and above (Linux 2.4.18 and newer).
    407 
    408 2004-03-27  Yoshinori K. Okuji  <okuji (a] enbug.org>
    409 
    410 	* stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
    411 	defined as an alias of grub_memmove. This is copied from GRUB 2.
    412 
    413 	* stage2/disk_io.c (print_completions): Simplified conditionals
    414 	to make it easier to edit the file with Emacs.
    415 	Added support for (cd).
    416 	(set_device): Likewise.
    417 
    418 	* stage2/common.c (init_bios_info): Check if BOOT_DRIVE is a
    419 	CDROM drive. If it is true, set CDROM_DRIVE to BOOT_DRIVE.
    420 	(cdrom_drive): New variable.
    421 
    422 	From Leonid Lisovskiy <lly (a] pisem.net>:
    423 	* stage2/start_eltorito.S: New file.
    424 
    425 	* stage2/stage2.c (run_menu): Use GRUB_INVALID_DRIVE instead of
    426 	0xFF.
    427 
    428 	* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
    429 	[FSYS_ISO9660] (STAGE2_ID): Set to STAGE2_ID_ISO9660_STAGE1_5.
    430 	(struct geometry): Added a new member ``sector_size''.
    431 	(BIOSDISK_FLAG_CDROM): New macro.
    432 	(cdrom_drive): Declared.
    433 
    434 	* stage2/fsys_iso9660.c: New file.
    435 	* stage2/iso9660.h: Likewise.
    436 
    437 	* stage2/filesys.h (FSYS_ISO9660_NUM): New macro.
    438 	[FSYS_ISO9660] (iso9660_mount): Declared.
    439 	[FSYS_ISO9660] (iso9660_read): Likewise.
    440 	[FSYS_ISO9660] (iso9660_dir): Likewise.
    441 	(NUM_FSYS): Added FSYS_ISO9660_NUM.
    442 
    443 	* stage2/disk_io.c (fsys_table) [FSYS_ISO9660]: Added iso9660.
    444 	(current_drive): Use GRUB_INVALID_DRIVE.
    445 	(log2): New function.
    446 	(rawread): Use BUF_GEOM.SECTOR_SIZE instead of SECTOR_SIZE.
    447 	Change the type of BUFADDR from int to char *.
    448 	Use a virtual track to make sure that one track fits in the
    449 	buffer.
    450 	(sane_partition): Allow CURRENT_DRIVE to be CDROM_DRIVE, because
    451 	a bios drive for a CD-ROM is often assigned to greater than
    452 	0x88.
    453 	(set_device): Use GRUB_INVALID_DRIVE instead of 0xFF.
    454 	(setup_part): Likewise.
    455 
    456 	* stage2/cmdline.c (init_cmdline): Use GRUB_INVALID_DRIVE.
    457 
    458 	* stage2/builtins.c (install_func): Use GRUB_INVALID_DRIVE.
    459 	(setup_func): Added iso9660_stage1_5.
    460 
    461 	* stage2/bios.c (biosdisk): Don't fall back to the CHS mode
    462 	if the drive is a CDROM.
    463 	(get_cdinfo): New function.
    464 	(get_diskinfo): Call get_cdinfo if the drive is greater than or
    465 	equal to 0x88 or the drive supports LBA.
    466 	Set the sector size to SECTOR_SIZE if it is not a CD-ROM.
    467 
    468 	* stage2/asm.S (biosdisk_int13_extensions): Take a word
    469 	argument AX instead of a byte argument AH.
    470 	(get_diskinfo_int13_extensions): Removed.
    471 
    472 	* stage2/Makefile.am (noinst_HEADERS): Added iso9660.h.
    473 	(libgrub_a_SOURCES): Added fsys_iso9660.c.
    474 	(libgrub_a_CFLAGS): Added -DFSYS_ISO9660=1.
    475 	(pkgdata_DATA): Added iso9660_stage1_5 and stage2_eltorito.
    476 	(noinst_PROGRAMS): Added iso9660_stage1_5.exec and
    477 	start_eltorito.exec.
    478 	(noinst_DATA): Added start_eltorito.
    479 	(pre_stage2_exec_SOURCES): Added fsys_iso9660.c.
    480 	(START_ELTORITO_LINK): New variable.
    481 	(start_eltorito_exec_SOURCES): Likewise.
    482 	(start_eltorito_exec_CCASFLAGS): Likewise.
    483 	(start_eltorito_exec_LDFLAGS): Likewise.
    484 	(start_eltorito_exec-start.$(OBJEXT)): New dependency.
    485 	(stage2_eltorito): New target.
    486 	(iso9660_stage1_5_exec_SOURCES): New variable.
    487 	(iso9660_stage1_5_exec_CFLAGS): Likewise.
    488 	(iso9660_stage1_5_exec_CCASFLAGS): Likewise.
    489 	(iso9660_stage1_5_exec_LDFLAGS): Likewise.
    490 
    491 	* stage1/stage1.h (GRUB_INVALID_DRIVE): New macro.
    492 
    493 	* stage1/stage1.S (boot_drive): Use the macro GRUB_INVALID_DRIVE.
    494 	(real_start): Likewise.
    495 
    496 	* lib/device.c (get_drive_geometry): Set GEOM->SECTOR_SIZE to
    497 	SECTOR_SIZE by default.
    498 
    499 	* configure.ac (--disable-iso9660): New option.
    500 
    501 2004-03-13  Yoshinori K. Okuji  <okuji (a] enbug.org>
    502 	
    503 	From Daniele Zelante <zeldan (a] email.it>:
    504 	* stage2/asm.S (stop_floppy): Use INT 13, AH=00h to stop the
    505 	floppy controller instead of a direct I/O.
    506 
    507 2004-03-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
    508 
    509 	* stage2/serial.c (serial_putchar): Handle the character code
    510 	127 as a backspace. Reported by Florian Engelhardt
    511 	<f.engelhardt (a] gmx.net>.
    512 
    513 2004-03-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
    514 
    515 	From Boji Tony Kannanthanam <boji.t.kannanthanam (a] intel.com>:
    516 	* util/grub-install.in (convert): Add support for ATARAID
    517 	device names.
    518 	* lib/device.c (get_ataraid_disk_name) [__linux__]: New
    519 	function.
    520 	(init_device_map) [__linux__]: Probe ATARAID disks.
    521 
    522 	* stage2/size_test (check): Don't use the local statement any
    523 	longer. It was unneeded actually. Reported by Paul Jarc.
    524 
    525 2004-03-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
    526 	
    527 	From Sergey Matveychuk <sem (a] ciam.ru>:
    528 	* lib/device.c (get_drive_geometry): Do not open the same device
    529 	more than once unnecessarily.
    530 	(get_drive_geometry) [__FreeBSD_version >= 500040]: Use new
    531 	ioctl methods.
    532 	(get_floppy_disk_name) [__FreeBSD__ >= 4]: Use /dev/fd%d rather
    533 	than /dev/rfd%d.
    534 	(get_ide_disk_name) [__FreeBSD__ >= 4]: Use /dev/ad%d rather
    535 	than /dev/rad%d.
    536 	(get_scsi_disk_name) [__FreeBSD__ >= 4]: Use /dev/da%d rather
    537 	than /dev/rda%d.
    538 	* grub/asmstub.c (get_diskinfo): Check if ERRNO is EPERM as
    539 	well.
    540 
    541 2004-02-28  Jeroen Dekkers  <jeroen (a] dekkers.cx>
    542 
    543 	* docs/grub.texi (partnew): Change @var{to} to @var{len}.
    544 
    545 2004-02-18  Yoshinori K. Okuji  <okuji (a] enbug.org>
    546 
    547 	From Yury V. Umanets <umka (a] namesys.com>:
    548 	* stage2/fsys_reiserfs.c (REISER3FS_SUPER_MAGIC_STRING): New
    549 	macro.
    550 	(reiserfs_mount): Added checks for ReiserFS 3.
    551 	(reiserfs_embed): Likewise.
    552 
    553 2004-01-25  Yoshinori K. Okuji  <okuji (a] enbug.org>
    554 
    555 	* docs/grub.texi (Obtaining and Building GRUB): Instead of
    556 	describing how to use the anoncvs method, specify the URL of
    557 	the description page on Savannah.
    558 	Reported by Bernhard Treutwein.
    559 
    560 2004-01-18  Yoshinori K. Okuji  <okuji (a] enbug.org>
    561 
    562 	From Thomas Schwinge <kischde (a] gmx.net>:
    563 	* grub/Makefile.am (AM_CPPFLAGS): New variable.
    564 	(AM_CFLAGS): Removed all cpp flags.
    565 
    566 	* stage2/xfs.h (__int8_t): Renamed to ...
    567 	(xfs_int8_t): ... this.
    568 	(__uint8_t): Renamed to ...
    569 	(xfs_uint8_t): ... this.
    570 	(__int16_t): Renamed to ...
    571 	(xfs_int16_t): ... this.
    572 	(__uint16_t): Renamed to ...
    573 	(xfs_uint16_t): ... this.
    574 	(__int32_t): Renamed to ...
    575 	(xfs_int32_t): ... this.
    576 	(__uint32_t): Renamed to ...
    577 	(xfs_uint32_t): ... this.
    578 	(__int64_t): Renamed to ...
    579 	(xfs_int64_t): ... this.
    580 	(__uint64_t): Renamed to ...
    581 	(xfs_uint64_t): ... this.
    582 	All callers are changed.x
    583 
    584 	From Egmont Koblinger <egmont (a] uhulinux.hu>:
    585 	* util/grub-install.in: Support an install devices in GRUB's
    586 	notation without parentheses.
    587 
    588 	* docs/grub.texi (Installing GRUB using grub-install): Added an
    589 	example of using grub-install without parentheses.
    590 
    591 2004-01-18  Yoshinori K. Okuji  <okuji (a] enbug.org>
    592 	
    593 	* util/grub-install.in: Use the first word of GRUB_SHELL when
    594 	checking if the grub shell is present. This is necessary to
    595 	support options to the grub shell (e.g. grub --read-only).
    596 
    597 	From Eric Kvaalen <E_Kvaalen.Arnesen (a] noos.fr>:
    598 	* docs/grub.texi: Many bug fixes.
    599 
    600 2004-01-17  Yoshinori K. Okuji  <okuji (a] enbug.org>
    601 
    602 	* lib/device.c [__linux__] (MAJOR): Support 32 bit and 64 bit
    603 	dev_t. This code is stolen from glibc.
    604 	Suggested by Shen Feng <shen (a] nanjing-fnst.com>.
    605 
    606 2004-01-11  Yoshinori K. Okuji  <okuji (a] enbug.org>
    607 
    608 	* stage2/terminfo.c (ti_set_term): Use a pointer to struct
    609 	terminfo instead to avoid GCC's bug, which inserts a reference
    610 	to memcpy implicitly.
    611 	(ti_get_term): Likewise.
    612 	All callers are fixed.
    613 
    614 	* stage2/terminfo.h (ti_set_term): Updated.
    615 	(ti_get_term): Likewise.
    616 
    617 	* stage2/shared.h (struct linux_kernel_header): New member,
    618 	initrd_max_address. Defined in the boot protocol 2.03 or higher.
    619 
    620 	* stage2/boot.c (load_initrd): If the boot protocol is greater
    621 	than or equal to 2.03, use the field ``initrd_max_address''
    622 	instead of LINUX_INITRD_MAX_ADDRESS.
    623 
    624 2003-12-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
    625 
    626 	* stage2/fsys_ext2fs.c (ext2_is_fast_symlink): New function.
    627 	(ext2fs_dir): Use ext2_is_fast_symlink to check if the current
    628 	inode is a fast or slow symlink. This change was required
    629 	because Linux now uses acl seriously (i.e. incompatibility).
    630 	Reported by Chris PeBenito <pebenito (a] gentoo.org> and Seemant
    631 	Kulleen <seemant (a] gentoo.org>
    632 
    633 2003-11-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
    634 
    635 	* lib/device.c (read_device_map) (sho_warning): New internal
    636 	function.
    637 	(read_device_map): If DRIVE is greater than 8, emit a warning
    638 	and ignore the drive, rather than exiting abnormally.
    639 	Reported by Greg Newby <newby (a] arsc.edu>.
    640 
    641 2003-10-19  Yoshinori K. Okuji  <okuji (a] enbug.org>
    642 
    643 	Migrated to newer autotools. Also, don't install mkbimage
    644 	because its name is too general and it does not conform to the
    645 	GNU Coding Standards in some points.
    646 	
    647 	* util/Makefile.am (EXTRA_DIST): New variable.
    648 	(sbin_SCRIPTS): Removed mkbimage.
    649 	(noinst_SCRIPTS): Added mkbimage.
    650 
    651 	* stage1/Makefile.am (AM_ASFLAGS): Renamed to ...
    652 	(AM_CCASFLAGS): ... this.
    653 
    654 	* stage2/Makefile.am (pre_stage2_exec_ASFLAGS): Renamed to ...
    655 	(pre_stage2_exec_CCASFLAGS): ... this.
    656 	(start_exec_ASFLAGS): Renamed to ...
    657 	(start_exec_CCASFLAGS): ... this.
    658 	(e2fs_stage1_5_exec_ASFLAGS): Renamed to ...
    659 	(e2fs_stage1_5_exec_CCASFLAGS): ... this.
    660 	(fat_stage1_5_exec_ASFLAGS): Renamed to ...
    661 	(fat_stage1_5_exec_CCASFLAGS): ... this.
    662 	(ffs_stage1_5_exec_ASFLAGS): Renamed to ...
    663 	(ffs_stage1_5_exec_CCASFLAGS): ... this.
    664 	(minix_stage1_5_exec_ASFLAGS): Renamed to ...
    665 	(minix_stage1_5_exec_CCASFLAGS): ... this.
    666 	(reiserfs_stage1_5_exec_ASFLAGS): Renamed to ...
    667 	(reiserfs_stage1_5_exec_CCASFLAGS): ... this.
    668 	(vstafs_stage1_5_exec_ASFLAGS): Renamed to ...
    669 	(vstafs_stage1_5_exec_CCASFLAGS): ... this.
    670 	(jfs_stage1_5_exec_ASFLAGS): Renamed to ...
    671 	(jfs_stage1_5_exec_CCASFLAGS): ... this.
    672 	(xfs_stage1_5_exec_ASFLAGS): Renamed to ...
    673 	(xfs_stage1_5_exec_CCASFLAGS): ... this.
    674 	(diskless_exec_ASFLAGS): Renamed to ...
    675 	(diskless_exec_CCASFLAGS): ... this.
    676 	(nbloader_exec_ASFLAGS): Renamed to ...
    677 	(nbloader_exec_CCASFLAGS): ... this.
    678 	(pxeloader_exec_ASFLAGS): Renamed to ...
    679 	(pxeloader_exec_CCASFLAGS): ... this.
    680 
    681 	* configure.in: Removed.
    682 	* configure.ac: New file. Mostly derived from configure.in.
    683 	
    684 2003-10-19  Yoshinori OKUJI  <okuji (a] enbug.org>
    685 
    686 	From KB Sriram <mail_kb (a] yahoo.com>:
    687 	* stage2/disk_io.c (set_device) [SUPPORT_NETBOOT]: Added support
    688 	for a completion of a network device.
    689 	(print_completions): Likewise.
    690 
    691 2003-10-10  Robert Millan  <robertmh (a] gnu.org>
    692 
    693 	* config.guess: Update from official source (CVS).
    694 	* config.sub: Likewise.
    695 
    696 2003-09-18  Robert Millan  <robertmh (a] gnu.org>
    697 
    698 	* docs/texinfo.tex: Update from ftp.gnu.org.
    699 
    700 2003-09-05  KB Sriram  <mail_kb (a] yahoo.com>
    701 
    702 	* stage2/fsys_fat.c: Fix missdetection of ext2fs as fatfs.
    703 
    704 2003-09-05  Robert Millan  <robertmh (a] gnu.org>
    705 
    706 	* docs/menu.lst (GNU/Linux): Add commented initrd command, which
    707 	is consistent with documentation.
    708 
    709 2003-09-01  Robert Millan  <robertmh (a] gnu.org>
    710 
    711 	* docs/menu.lst: Add NetBSD, OpenBSD, GNU/KFreeBSD and
    712 	GNU/KNetBSD.
    713 
    714 2003-08-13  Jason Thomas  <jason (a] intology.com.au>
    715 
    716 	* util/grub-install.in (resolve_symlink): New function to
    717 	resolve symlinks.
    718 	(find_device): Moved symlink code to new function.
    719 	Before we convert the install_device we attempt to resolve it if
    720 	its a symlink using the new function.
    721 	* util/mbchk.c (check_multiboot): The sense of an error message
    722 	was inverted.
    723 	Reported by Timothy Baldwin <T.E.Baldwin99 (a] members.leeds.ac.uk>.
    724 
    725 2003-08-12  Jochen Hoenicke  <jochen (a] gnu.org>
    726 
    727 	* stage2/fsys_reiserfs.c (read_tree_node): Fixed a typo; only
    728 	matters for very large fs when tree doesn't fit in cache.
    729 	(IH_KEY_OFFSET): Don't check for INFO->version.  There are
    730 	actually old version file systems that use new version items.
    731 	(IH_KEY_ISTYPE): Likewise.
    732 	(reiserfs_dir): Likewise.
    733 
    734 2003-08-09  Thierry Laronde  <tlaronde (a] polynum.org>
    735 
    736 	* util/mkbimage: New File. `mkbimage' depends on GRUB and
    737 	existed	elsewhere. It is now part of GRUB so that people can
    738 	fix/contribute.
    739 	* util/Makefile.am (sbin_SCRIPTS): Added script `mkbimage'
    740 
    741 2003-08-01  Jason Thomas  <jason (a] intology.com.au>
    742 
    743 	* util/grub-install.in: support --no-floppy
    744 	This allow users to specify the --no-floppy option which
    745 	is passed onto the grub shell, so it does not probe the floppy
    746 	drive. 
    747 	Patch from kesha (a] diedas.soften.ktu.lt
    748 
    749 2003-06-17  Jochen Hoenicke  <jochen (a] gnu.org>
    750 
    751 	* stage2/fsys_reiserfs.c (reiserfs_mount): Clear the node cache.
    752 	This fixes a problem where files from other partitions appear at
    753 	the wrong partition.  Problem reported by Johan Regin.
    754 
    755 2003-05-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
    756 
    757 	* docs/grub.texi (partnew): Fixed the inconsistency between the
    758 	implementation and the documentation. The last argument is the
    759 	length instead of the ending address.
    760 	Reported by Daniel Farrell <s2108287 (a] student.rmit.edu.au>.
    761 
    762 2003-03-19  Yoshinori K. Okuji  <okuji (a] enbug.org>
    763 
    764 	From Adam Lackorzynski <adam (a] os.inf.tu-dresden.de>:
    765 	* stage2/shared.h (KEY_NPAGE): Changed to 0x5100.
    766 	(KEY_PPAGE): Changed to 0x4900.
    767 
    768 2003-03-19  Yoshinori K. Okuji  <okuji (a] enbug.org>
    769 
    770 	* stage2/boot.c (load_image): Check if DATA_LEN plus SECTOR_SIZE
    771 	is less than or equal to MULTIBOOT_SEARCH, instead of if
    772 	DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
    773 	Reported by Neelkanth Natu <neelnatu (a] yahoo.com>.
    774 
    775 2003-03-10  Yoshinori K. Okuji  <okuji (a] enbug.org>
    776 
    777 	From Andrew Walrond <andrew (a] walrond.org>:
    778 	* stage2/fsys_reiserfs.c (struct reiserfs_journal_header):
    779 	Remove an unnecessary ``long''.
    780 
    781 2003-03-10  Yoshinori K. Okuji  <okuji (a] enbug.org>
    782 
    783 	From Tilmann Bubeck:
    784 	* stage2/builtins.c [SUPPORT_SERIAL] (terminfo_func): Unescape
    785 	arguments before copying them, and escape sequences before
    786 	printing them.
    787 	* stage2/terminfo.h (TERMINFO_LEN): Changed to 40.
    788 
    789 2003-02-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
    790 
    791 	* util/grub-install.in (find_device): Fix the sed script.
    792 
    793 2003-02-17  Yoshinori K. Okuji  <okuji (a] enbug.org>
    794 
    795 	* lib/device.c (check_device): If DEVICE is empty, just return
    796 	1.
    797 	(get_scsi_disk_name) [__QNXNTO__]: Make NAME empty, because SCSI
    798 	disks are detected as IDE disks on QNX RTP.
    799 
    800 	From Taketo Kabe <kabe (a] sra-tohoku.co.jp>:
    801 	* lib/device.c (get_ide_disk_name) [__QNXNTO__]: Set NAME to
    802 	"/dev/hdX".
    803 	(get_floppy_disk_name) [__QNXNTO__]: Set NAME to "/dev/fdX".
    804 	* stage2/mb_info.h (struct AddrRangeDesc): Specified with the
    805 	attribute packed.
    806 	* stage2/shared.h (struct mmar_desc): Likewise.
    807 
    808 2003-01-29  Yoshinori K. Okuji  <okuji (a] enbug.org>
    809 
    810 	From Ilguiz Latypov:
    811 	* configure.in: Fix a syntax error in a sed script.
    812 	* stage2/bios.c (get_diskinfo): PhoenixBIOS 4.0 Revision 6.0 
    813 	for ZF Micro might understand the greater buffer size for the
    814 	"get drive parameters" int 0x13 call in its own way.  
    815 	Supposedly the BIOS assumes even bigger space is available and
    816 	thus corrupts the stack.  This is why we specify the exactly 
    817 	necessary size of 0x42 bytes.
    818 
    819 2003-01-25  Yoshinori K. Okuji  <okuji (a] enbug.org>
    820 
    821 	From Steven Dick <ssd.gnu (a] mmae.ucf.edu>:
    822 	* stage2/pc_slice.h (PC_SLICE_TYPE_DELL_UTIL): New macro.
    823 	(IS_PC_SLICE_TYPE_FAT): Recognize PC_SLIDE_TYPE_DELL_UTIL as
    824 	well.
    825 
    826 2003-01-25  Yoshinori K. Okuji  <okuji (a] enbug.org>
    827 
    828 	From Karsten Scheibler <karsten.scheibler (a] student.uni-halle.de>:
    829 	* stage2/terminfo.c (term): Don't use a C99-style initializer.
    830 
    831 2003-01-16  Yoshinori K. Okuji  <okuji (a] enbug.org>
    832 
    833 	From H.J. Lu <hjl (a] gnu.org>:
    834 	* stage2/disk_io.c (part_start): Use unsigned long to support
    835 	large disks.
    836 	(part_length): Likewise.
    837 	* stage2/shared.h (part_start): Likewise.
    838 	(part_length): Likewise.
    839 
    840 2003-01-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
    841 
    842 	* configure.in (CFLAGS): When the default CFLAGS is used,
    843 	eliminate -O2 and -g from CFLAGS, because Autoconf may
    844 	automatically set CFLAGS to them.
    845 
    846 2003-01-02  Yoshinori K. Okuji  <okuji (a] enbug.org>
    847 
    848 	From Jeremy Katz:
    849 	* configure.in: Support building on x86_64 with gcc -m32.
    850 
    851 2003-01-02  Yoshinori K. Okuji  <okuji (a] enbug.org>
    852 
    853 	From Jeremy Katz:
    854 	* stage2/fsys_ext2fs.c (ext2fs_dir): Initialize STR_CHK to shut
    855 	up GCC.
    856 	* stage2/fsys_minix.c (minix_dir): Likewise.
    857 
    858 2002-12-21  Yoshinori K. Okuji  <okuji (a] enbug.org>
    859 
    860 	* stage2/asm.S (gateA20): First, try a BIOS call (INT 15H,
    861 	AX=2400/2401). Use the keyboard controller, only if that failed.
    862 
    863 2002-12-11  Yoshinori K. Okuji  <okuji (a] enbug.org>
    864 
    865 	Add a workaround for buggy BIOSes which don't pass boot drive
    866 	correctly. The idea is that GRUB forces the fixed disk flag
    867 	when booted from a hard disk. When BIOS loads GRUB directly,
    868 	the boot drive must be either of 0x00 and 0x80, so this should
    869 	work, if those BIOSes always pass zero to %dl. AFAIK, this
    870 	assumption is always correct.
    871 
    872 	* stage2/builtins.c (install_func): Store the fixed disk flag of
    873 	the destination drive in BOOT_DRIVE_MASK in Stage 1.
    874 
    875 	* stage1/stage1.h (STAGE1_BOOT_DRIVE_MASK): New macro.
    876 
    877 	* stage1/stage1.S (boot_drive_mask): New variable. It is or'ed
    878 	to %dl.
    879 
    880 2002-12-09  Yoshinori K. Okuji  <okuji (a] enbug.org>
    881 
    882 	* stage2/char_io.c (init_page): Change the software name from
    883 	"GRUB" to "GNU GRUB". This was inaccurate. Reported by Ciaran
    884 	O'Riordan <coriordan (a] compsoc.com>.
    885 
    886 2002-12-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
    887 
    888 	* stage2/builtins.c (embed_func): When checking if the disk can
    889 	store Stage 1.5, check every partition, if it isn't empty.
    890 
    891 2002-12-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
    892 
    893 	* stage2/stage2.c (print_entry): Put a right arrow, if the entry
    894 	is longer than 71 characters. Reported by Pavel Roskin.
    895 
    896 2002-12-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
    897 
    898 	* stage2/disk_io.c (set_device): If '(n' is given, add 'd' into
    899 	DEVICE. Reported by Pavel Roskin.
    900 
    901 2002-12-03  Yoshinori K. Okuji  <okuji (a] enbug.org>
    902 
    903 	Change the terminal structure a bit, to turn the cursor state
    904 	explicitly. Suggested by Pavel Roskin.
    905 	
    906 	* stage2/term.h (struct term_entry): Remove the member
    907 	`nocursor' and add `setcursor'.
    908 	[!STAGE1_5] (console_setcursor): New prototype.
    909 	[SUPPORT_HERCULES] (hercules_setcursor): Likewise.
    910 	[!STAGE1_5] (console_nocursor): Removed.
    911 	[SUPPORT_HERCULES] (hercules_nocursor): Likewise.
    912 
    913 	* stage2/stage2.c (run_menu): Call setcursor instead of
    914 	nocursor.
    915 	Call setcursor with 1 before starting a boot entry.
    916 
    917 	* stage2/shared.h (nocursor): Removed.
    918 	(setcursor): New prototype.
    919 
    920 	* stage2/hercules.c (herc_cursor_state): New variable.
    921 	(herc_turn_cursor): Removed.
    922 	(hercules_nocursor): Likewise.
    923 	(hercules_setcursor): New function.
    924 
    925 	* stage2/char_io.c (get_cmdline): Turn on the cursor at the
    926 	beginning, and restore it before returning.
    927 	(nocursor): Removed.
    928 	(setcursor): New function.
    929 
    930 	* stage2/asm.S (console_cursor_state): New variable.
    931 	(console_cursor_shape): Likewise.
    932 	(console_setcursor): New function.
    933 	(console_nocursor): Removed.
    934 
    935 	* grub/asmstub.c (console_setcursor): New function.
    936 	(hercules_setcursor): Likewise.
    937 	(console_nocursor): Removed.
    938 	(hercules_nocursor): Likewise.
    939 
    940 2002-12-03  Yoshinori K. Okuji  <okuji (a] enbug.org>
    941 
    942 	* docs/grub.texi (terminfo): Fix a misleading English sentence.
    943 	Reported by Pavel Roskin.
    944 	* stage2/builtins.c (builtin_terminfo): Likewise.
    945 
    946 2002-12-01  Yoshinori K. Okuji  <okuji (a] enbug.org>
    947 
    948 	From Alexander Langer <alex (a] big.endian.de>:
    949 	* stage2/freebsd.h (RB_GDB): New macro.
    950 	(RB_MUTE): Likewise.
    951 	(RB_MULTIPLE): Likewise.
    952 
    953 	* stage2/boot.c (bsd_boot): Set the bits of RB_MULTIPLE, RB_GDB
    954 	and RB_MUTE when "-D", "-g" and "-m" are specified,
    955 	respectively.
    956 
    957 2002-12-01  Yoshinori K. Okuji  <okuji (a] enbug.org>
    958 
    959 	* docs/grub.texi (Reporting bugs): Specify the project page of
    960 	the BTS instead of the BTS itself.
    961 
    962 2002-11-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
    963 
    964 	* docs/Makefile.am (man_MANS): Added grub-terminfo.8.
    965 	($(srcdir)/grub_terminfo.8): New target.
    966 	* utils/grub-terminfo.in: New file.
    967 	* util/Makefile.am (sbin_SCRIPTS): Added grub-terminfo.
    968 	* configure.in (AC_OUTPUT): Added util/grub-terminfo.
    969 
    970 	* docs/grub.texi (terminfo): New subsection.
    971 	(Invoking grub-terminfo): New chapter.
    972 
    973 	From Tilmann Bubeck <t.bubeck (a] reinform.de>:
    974 	* stage2/Makefile.am (noinst_HEADERS): Added terminfo.h and
    975 	tparm.h.
    976 	(libgrub_a_SOURCES): Added terminfo.c and tparm.c.
    977 	(pre_stage2_exe_SOURCES): Likewise.
    978 	* stage2/terminfo.c: New file.
    979 	* stage2/terminfo.h: Likewise.
    980 	* stage2/tparm.c: Likewise.
    981 	* stage2/tparm.h: Likewise.
    982 	* stage2/stage2.c (get_line_from_config): Fix handling of
    983 	backslashes.
    984 	* stage2/char_io.c (grub_putstr): New function.
    985 	(grub_printf): Use grub_putstr.
    986 	(substring): Add const into both arguments.
    987 	* stage2/builtins.c [SUPPORT_SERIAL]: Include terminfo.h.
    988 	[SUPPORT_SERIAL] (terminfo_func): New function.
    989 	[SUPPORT_SERIAL] (builtin_terminfo): New variable.
    990 	 (builtin_table) [SUPPORT_SERIAL]: Added a pointer to
    991 	BUILTIN_TERMINFO.
    992 	* stage2/serial.c (serial_gotoxy): Use ti_cursor_address.
    993 	(serial_cls): Use ti_clear_screen.
    994 	(serial_highlight): use ti_enter_standout_mode and
    995 	ti_exit_standout_mode.
    996 
    997 2002-11-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
    998 
    999 	* stage2/disk_io.c (rawread): Make sure that SECTOR is valid.
   1000 	If not, set ERRNUM to ERR_GEOM and return zero. This check is
   1001 	critical when a partition table is corrupted.
   1002 
   1003 2002-11-28  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1004 
   1005 	* stage2/asm.S (console_cls): Write spaces to the entire screen
   1006 	instead of getting/setting the video mode, because this flickers
   1007 	the screen and is quite annoying, if using a LCD.
   1008 
   1009 2002-11-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1010 
   1011 	* docs/grub.texi (QNX): New subsection. Reported by
   1012 	Marian-Nicolae V. ION <marian_ion (a] noos.fr>.
   1013 
   1014 2002-10-28  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1015 
   1016 	* grub/asmstub.c (console_translate_key): Deal with KEY_PPAGE
   1017 	and KEY_NPAGE.
   1018 	* stage2/serial.c (serial_translate_key_sequence): Added two new
   1019 	codes for Page Up and Page Down.
   1020 	* stage2/asm.S (translation_table): Added entries for KEY_PPAGE
   1021 	and KEY_NPAGE.
   1022 	* stage2/stage2.c (run_menu): Deal with Page Up and Page Down.
   1023 	Also recognize the right key for the selection of a boot entry.
   1024 	Suggested by Adam Lackorzynski <adam (a] os.inf.tu-dresden.de>.
   1025 
   1026 2002-10-10  Jason Thomas  <jason (a] topic.com.au>
   1027 
   1028 	* stage2/builtins.c (setup_func): Added missing space to --force-lba
   1029 	option. Reported by Kenneth Crudup <kenny (a] panix.com>
   1030 
   1031 2002-10-06  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1032 
   1033 	* stage2/asm.S (gateA20): Output a dummy command (0xff), as a
   1034 	workaround for USB keyboard hanging problem. Suggested by
   1035 	Hidetoshi Nishimaki <nishimaki (a] mxs.nes.nec.co.jp>.
   1036 
   1037 2002-10-06  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1038 
   1039 	* configure.in (falign_loop_flag): New variable. Set to if GCC
   1040 	supports `-falign-*'. If true, use `-falign-jumps',
   1041 	`-falign-loops' and `-falign-functions' instead of
   1042 	`-malign-jumps', `-malign-loops' and `-malign-functions',
   1043 	because `-malign-*' are obsolete in GCC 3.x. Reported by Jeremy
   1044 	Katz.
   1045 
   1046 2002-09-13  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1047 
   1048 	* stage2/serial.c (fill_input_buf): Take a new argument NOWAIT.
   1049 	If NOWAIT is true, don't loop.
   1050 	All callers are changed.
   1051 
   1052 2002-09-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1053 
   1054 	* configure.in (--disable-serial): Fix a typo in the
   1055 	description.
   1056 
   1057 2002-08-20  Jason Thomas <jason (a] topic.com.au>
   1058 
   1059 	Changed highlight state code for hercules, console and serial.
   1060 	The state was 0 - normal or 1 - highlight.
   1061 	The state is now defined using an enum called color_state.
   1062 
   1063 	* stage2/term.h (color_state): New enum.
   1064 	(COLOR_STATE_STANDARD): Standard color to use when not using
   1065 	user defined.
   1066 	(COLOR_STATE_NORMAL): User defined normal color.
   1067 	(COLOR_STATE_HIGHLIGHT): User defined highlight color.
   1068 	(console_highlight): Renamed to console_setcolorstate.
   1069 	(serial_highlight): Renamed to serial_setcolorstate.
   1070 	(hercules_highlight): Renamed to hercules_setcolorstate.
   1071 	* stage2/hercules.c (herc_highlight_state): Removed.
   1072 	(herc_standard_color): New variable.
   1073 	(herc_color_state): Likewise.
   1074 	(herc_highlight): Renamed to herc_setcolorstate.
   1075 	(herc_setcolorstate): Added switch to handle new states.
   1076 	* stage2/console.c (console_highlight_state): Removed.
   1077 	(console_standard_color): New variable.
   1078 	(console_color_state): Likewise.
   1079 	(console_highlight): Renamed to console_setcolorstate.
   1080 	(console_setcolorstate): Added switch to handle new states.
   1081 	* stage2/serial.c (serial_highlight): Renamed to
   1082 	serial_setcolorstate.
   1083 	(serial_setcolorstate): Adjusted 'if' to suit new states.
   1084 	* grub/asmstub.c (console_highlight): Renamed to
   1085 	console_setcolorstate.
   1086 	(console_setcolorstate): Adjusted 'if' to suit new states.
   1087 	* stage2/stage2.c (print_entry): Set color states using new
   1088 	states.
   1089 	(print_border): Likewise.
   1090 	* stage2/stage2.c (run_menu): Reverse if (!) to if () for
   1091 	uniformitty.
   1092 
   1093 2002-07-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1094 
   1095 	* stage2/boot.c (load_image): Rewrite the Linux booting support
   1096 	radically. Now it should work even on a machine having, say,
   1097 	only 128KB, theoretically. Of course, GRUB itself doesn't work
   1098 	on such a system, though.
   1099 	(load_initrd): Initialize LH based on CUR_ADDR, because the
   1100 	location becomes dynamic.
   1101 	* stage2/shared.h (LINUX_MAX_SETUP_SECTS): Set to 64.
   1102 	(LINUX_HEAP_END_OFFSET): Set to (0x9000 - 0x200).
   1103 	(LINUX_STAGING_AREA): Removed.
   1104 	(LINUX_SETUP): Likewise.
   1105 	(LINUX_KERNEL): Likewise.
   1106 	(LINUX_KERNEL_MAXLEN): Likewise.
   1107 	(LINUX_SETUP_SEG): Likewise.
   1108 	(LINUX_INIT_SEG): Likewise.
   1109 	(LINUX_SETUP_STACK): Set to 0x9000.
   1110 	(LINUX_BZIMAGE_ADDR): New macro.
   1111 	(LINUX_ZIMAGE_ADDR): Likewise.
   1112 	(LINUX_OLD_REAL_MODE_ADDR): Likewise.
   1113 	(CL_MY_LOCATION): Removed.
   1114 	(CL_MY_END_ADDR): Likewise.
   1115 	(CL_BASE_ADDR): Likewise.
   1116 	(CL_MAGIC): Renamed to ...
   1117 	(LINUX_CL_MAGIC): ... this.
   1118 	(LINUX_CL_OFFSET): New macro.
   1119 	(LINUX_CL_END_OFFSET): Likewise.
   1120 	(LINUX_SETUP_MOVE_SIZE): Likewise.
   1121 	(struct linux_kernel_header): Change the type of the member
   1122 	"cmd_line_ptr" to char *.
   1123 	(linux_data_tmp_addr): Declared.
   1124 	(linux_data_real_addr): Likewise.
   1125 	* stage2/asm.S [!STAGE1_5] (linux_data_tmp_addr): New variable.
   1126 	[!STAGE1_5] (linux_data_real_addr): Likewise.
   1127 	[!STAGE1_5] (big_linux_boot): Copy the real mode part from
   1128 	LINUX_DATA_TMP_ADDR to LINUX_DATA_REAL_ADDR.
   1129 	* grub/asmstub.c (linux_data_tmp_addr): New variable.
   1130 	(linux_data_real_addr): Likewise.
   1131 
   1132 2002-07-09  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1133 	
   1134 	From Mark Kettenis <kettenis (a] chello.nl>:
   1135 	* stage2/boot.c (load_image): Recognize newer FreeBSD kernels.
   1136 	* stage2/i386-elf.h (EI_OSABI): New macro.
   1137 	(EI_ABIVERSION): Likewise.
   1138 	(ELFOSABI_FREEBSD): Likewise.
   1139 	(EI_PAD): Set to 9.
   1140 
   1141 2002-07-06  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1142 
   1143 	* stage2/shared.h (boot_part_offset): Removed.
   1144 	
   1145 	* stage2/disk_io.c (set_bootdev): Copy the partition information
   1146 	here. Now this function can call rawread, so it can fail.
   1147 	(boot_part_offset): Removed.
   1148 
   1149 	* stage2/builtins.c (boot_func): Don't copy the partition
   1150 	information here.
   1151 	(real_root_func): Check ERRNUM after calling set_bootdev.
   1152 
   1153 2002-07-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1154 
   1155 	* docs/grub.texi (Reporting bugs): Use the group name (i.e.
   1156 	grub) instead of the group id (i.e. 68) for the URL of the BTS.
   1157 
   1158 2002-07-03  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1159 
   1160 	* stage2/serial.c [!GRUB_UTIL] (inb): Added a delay into this
   1161 	function itself.
   1162 	[!GRUB_UTIL] (outb): Likewise.
   1163 	[!GRUB_UTIL] (serial_hw_put): Increase the timeout value, and
   1164 	don't call serial_hw_delay explicitly any longer.
   1165 	(fill_input_buf): Increase the maximum number of retries, reset
   1166 	the counter to zero after getting a valid character, and don't
   1167 	call serial_hw_delay explicitly any longer.
   1168 
   1169 2002-07-03  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1170 
   1171 	* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed a typo.
   1172 	Reported by Ilguiz Latypov.
   1173 
   1174 2002-07-01  Yoshinori K. Okuji <okuji (a] enbug.org>
   1175 
   1176 	* Makefile.am (AUTOMAKE_OPTIONS): New variable. Specify the
   1177 	required Automake version explicitly.
   1178 	
   1179 2002-06-30  Yoshinori K. Okuji <okuji (a] enbug.org>
   1180 
   1181 	* stage2/builtins.c [SUPPORT_SERIAL || SUPPORT_HERCULES]
   1182 	(terminal_func): Set CURRENT_TERM to each of selected terminals
   1183 	before calling grub_printf, and restore CURRENT_TERM after it.
   1184 	Reported by Ilguiz Latypov.
   1185 	Prepend a carriage return to the prompting message, because it
   1186 	is ugly that the same messages fulfill the whole screen.
   1187 
   1188 2002-06-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1189 
   1190 	* stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed the
   1191 	conditional statement. Reported by Ilguiz Latypov.
   1192 	
   1193 2002-06-24  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1194 
   1195 	* MAINTENANCE: New file.
   1196 	
   1197 2002-06-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1198 
   1199 	* stage2/disk_io.c [SUPPORT_NETBOOT] (GRUB): Defined.
   1200 	[SUPPORT_NETBOOT]: Include etherboot.h.
   1201 	[!STAGE1_5] (print_completions) [SUPPORT_NETBOOT]: When
   1202 	completing a disk name, if NETWORK_READY is true, add "nd" as a
   1203 	completion.
   1204 	
   1205 2002-06-15  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1206 
   1207 	* stage2/fsys_xfs.c (le32): Don't use bswap, but use xchgb and
   1208 	roll, because 386 doesn't have bswap. Reported by Frode Vatvedt
   1209 	Fjeld <frodef (a] acm.org>.
   1210 	
   1211 2002-06-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1212 
   1213 	* netboot/main.c (ifconfig): If GW is specified, clear out the
   1214 	ARP entry for the gateway. If SVR is specified, clear out the
   1215 	ARP entry for the server. Reported by Uwe Dannowski
   1216 	<ud3 (a] ira.uka.de>.
   1217 	
   1218 2002-06-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1219 
   1220 	* util/grub-md5-crypt.in: Prompt to retype a password, and check
   1221 	if the passwords matches. Suggested by Matt Perry
   1222 	<matt (a] primefactor.com>.
   1223 	Also, don't use Perl any longer, because *BSD's sh and GNU
   1224 	support ``read -r'', and GRUB doesn't support any other
   1225 	operating system anyway.
   1226 	
   1227 2002-06-12  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1228 
   1229 	The terminal handling code is rewritten radically.
   1230 	
   1231 	* stage2/console.c: New file.
   1232 	* stage2/term.h: Likewise.
   1233 	
   1234 	* stage2/Makefile.am (noinst_HEADERS): Added term.h.
   1235 	(libgrub_a_SOURCES): Added serial.c.
   1236 	(pre_stage2_exec_SOURCES): Added console.c.
   1237 
   1238 	* stage2/asm.S (console_putchar): Rewritten from scratch.
   1239 	[!STAGE1_5] (translation_table): New variable.
   1240 	[!STAGE1_5] (translate_keycode): New function.
   1241 	[!STAGE1_5] (console_getkey): Call translate_keycode.
   1242 	[!STAGE1_5] (console_checkkey): Likewise.
   1243 	[!STAGE1_5] (nocursor): Renamed to ...
   1244 	[!STAGE1_5] (console_nocursor): ... this.
   1245 	[!STAGE1_5] (console_set_attrib): Removed.
   1246 
   1247 	* stage2/builtins.c: Include term.h.
   1248 	(terminal): Removed.
   1249 	(normal_color): Likewise.
   1250 	(highlight_color): Likewise.
   1251 	(cat_func): Display a question mark when a non-printable
   1252 	character was read.
   1253 	(terminal_func): Rewritten almost from scratch.
   1254 
   1255 	* stage2/char_io.c: Include term.h.
   1256 	[!STAGE1_5] (auto_fill): Removed.
   1257 	[!STAGE1_5] (term_table): New variable.
   1258 	[!STAGE1_5] (current_term): Likewise.
   1259 	[!STAGE1_5] (real_get_cmdline): New function. The code was
   1260 	stolen from the previous version of get_cmdline.
   1261 	[!STAGE1_5] (get_cmdline): Rewritten from scratch.
   1262 	[!STAGE1_5] (translate_keycode): Removed.
   1263 	[!STAGE1_5] (getkey): Rewritten from scratch.
   1264 	[!STAGE1_5] (checkkey): Likewise.
   1265 	(grub_putchar): Likewise.
   1266 	[!STAGE1_5] (gotoxy): Likewise.
   1267 	[!STAGE1_5] (getxy): Likewise.
   1268 	[!STAGE1_5] (cls): Likewise.
   1269 	[!STAGE1_5] (nocursor): New function.
   1270 	[SUPPORT_SERIAL] (serial_getxy): Removed.
   1271 	[SUPPORT_SERIAL] (serial_gotoxy): Likewise.
   1272 	[SUPPORT_SERIAL] (serial_cls): Likewise.
   1273 	[SUPPORT_SERIAL] (serial_getxy): Likewise.
   1274 	[!STAGE1_5] (set_attrib): Likewise.
   1275 
   1276 	* stage2/cmdline.c (init_cmdline): Set COUNT_LINES to -1.
   1277 
   1278 	* stage2/common.c [!STAGE1_5] (err_list): Removed
   1279 	ERR_NEED_SERIAL and added ERR_DEV_NEED_INIT.
   1280 
   1281 	* stage2/hercules.c: Rewritten almost from scratch.
   1282 	* stage2/hercules.h (herc_putchar): Removed.
   1283 	(herc_cls): Likewise.
   1284 	(herc_getxy): Likewise.
   1285 	(herc_gotoxy): Likewise.
   1286 	(herc_set_attrib): Likewise.
   1287 
   1288 	* stage2/serial.c: Rewritten almost from scratch.
   1289 	* stage2/serial.h: Likewise.
   1290 
   1291 	* stage2/shared.h [GRUB_UTIL] (DISP_UL): Set to the same value
   1292 	as VGA's.
   1293 	[GRUB_UTIL] (DISP_UR): Likewise.
   1294 	[GRUB_UTIL] (DISP_LL): Likewise.
   1295 	[GRUB_UTIL] (DISP_LR): Likewise.
   1296 	[GRUB_UTIL] (DISP_HORIZ): Likewise.
   1297 	[GRUB_UTIL] (DISP_VERT): Likewise.
   1298 	[GRUB_UTIL] (DISP_LEFT): Likewise.
   1299 	[GRUB_UTIL] (DISP_RIGHT): Likewise.
   1300 	[GRUB_UTIL] (DISP_UP): Likewise.
   1301 	[GRUB_UTIL] (DISP_DOWN): Likewise.
   1302 	(grub_error_t): Removed ERR_NEED_SERIAL.
   1303 	Added ERR_DEV_NEED_INIT.
   1304 	(normal_color): Removed.
   1305 	(highlight_color): Likewise.
   1306 	(console_cls): Removed, because this is declared in term.h.
   1307 	(console_getxy): Likewise.
   1308 	(console_gotoxy): Likewise.
   1309 	(console_putchar): Likewise.
   1310 	(console_getkey): Likewise.
   1311 	(console_checkkey): Likewise.
   1312 	(console_set_attrib): Removed.
   1313 	(set_attrib): Likewise.
   1314 	[GRUB_UTIL] (nocursor): Declared.
   1315 	(auto_fill): Removed.
   1316 	(terminal): Likewise.
   1317 	(TERMINAL_CONSOLE): Likewise.
   1318 	(TERMINAL_SERIAL): Likewise.
   1319 	(TERMINAL_HERCULES): Likewise.
   1320 	(TERMINAL_DUMB): Likewise.
   1321 	(translate_keycode): Likewise.
   1322 
   1323 	* stage2/stage2.c: Include term.h.
   1324 	(print_entry): Rewritten from scratch.
   1325 	(print_entries): Likewise.
   1326 	(print_border): Likewise.
   1327 	(set_line): Removed.
   1328 	(set_line_normal): Likewise.
   1329 	(set_line_highlight): Likewise.
   1330 	
   1331 	* grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_HERCULES=1.
   1332 	
   1333 	* grub/asmstub.c: Don't include hercules.h. Include term.h.
   1334 	(console_current_color): New variable.
   1335 	(console_translate_key): New function.
   1336 	(console_checkkey): Rewritten from scratch.
   1337 	(console_getkey): Likewise.
   1338 	(console_putchar): Likewise.
   1339 	(console_set_attrib): Removed.
   1340 	(console_highlight): New function.
   1341 	(console_setcolor): Likewise.
   1342 	(console_nocursor): Likewise.
   1343 	(serial_getkey): Removed.
   1344 	(serial_checkkey): Likewise.
   1345 	(serial_putchar): Likewise.
   1346 	(serial_exists): Likewise.
   1347 	(serial_get_port): Likewise.
   1348 	(serial_init): Likewise.
   1349 	(serial_hw_fetch): New function.
   1350 	(serial_hw_put): Likewise.
   1351 	(serial_hw_delay): Likewise.
   1352 	(serial_hw_get_port): Likewise.
   1353 	(serial_hw_init): Likewise.
   1354 	(set_serial_device): Renamed to ...
   1355 	(serial_set_device): ... this.
   1356 	(herc_putchar): Renamed to ...
   1357 	(hercules_putchar): ... this.
   1358 	(herc_cls): Renamed to ...
   1359 	(hercules_cls): ... this.
   1360 	(herc_getxy): Renamed to ...
   1361 	(hercules_getxy): ... this.
   1362 	(herc_gotoxy): Renamed to ...
   1363 	(hercules_gotoxy): ... this.
   1364 	(hercules_highlight): New function.
   1365 	(hercules_setcolor): Likewise.
   1366 	(hercules_nocursor): Likewise.
   1367 	(herc_set_attrib): Removed.
   1368 
   1369 	* grub/main.c: Include term.h.
   1370 	(main): If USE_CURSES is false, set CURRENT_TERM->FLAGS to
   1371 	TERM_NO_EDIT | TERM_DUMB. TERMINAL is not used any longer.
   1372 	
   1373 2002-06-01  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1374 
   1375 	* docs/grub.texi (FAQ): Removed. See the GNU GRUB FAQ on the web
   1376 	instead.
   1377 	
   1378 2002-05-31  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1379 
   1380 	* docs/grub.texi (Reporting bugs): Recommend using the BTS on
   1381 	Savannah rather than the list bug-grub.
   1382 	
   1383 2002-05-25  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1384 
   1385 	* stage2/builtins.c (boot_func): Load the boot partition
   1386 	information, only if the address of the boot partition entry is
   1387 	set appropriately.
   1388 	(real_root_func): If ATTEMPT_MOUNT is false, call open_partition
   1389 	and if successful, call set_bootdev, to set the offset of the
   1390 	boot partition and the address of the boot paetition entry.
   1391 	IF ATTEMPT_MOUNT is false, don't set BOOTDEV. The BSD evil hack
   1392 	is useless with the command "rootnoverify" anyway.
   1393 	* stage2/disk_io.c (boot_part_addr): Initialized with zero
   1394 	explicitly, to emphasize that it is invalid.
   1395 	
   1396 2002-05-24  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1397 
   1398 	* stage2/builtins.c (real_root_func): New function.
   1399 	(root_func): Just call real_root_func.
   1400 	(rootnoverify_func): Likewise.
   1401 	
   1402 2002-05-23  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1403 
   1404 	* configure.in (AM_INIT_AUTOMAKE): Changed the version number to
   1405 	0.93.
   1406 	
   1407 2002-05-23  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1408 
   1409 	Define the behavior of the boot loader when the load end address
   1410 	and the bss end address are zero in the Multiboot Specification,
   1411 	and add the support into GRUB. I've modified a patch from Yuri
   1412 	Zaporogets <yuriz (a] ukr.net>.
   1413 	
   1414 	* stage2/boot.c (load_image): In the case of Multiboot a.out
   1415 	kludge, set the load end address to the load address plus the
   1416 	size of the OS image file, if it is zero. Similarly, set the bss
   1417 	end address to the load end address, if it is zero.
   1418 	
   1419 	* util/mbchk.c (check_multiboot): Don't check if the load
   1420 	address is greater than or equal to the load end address, if the
   1421 	load end address is zero. Don't check if the load end address is
   1422 	greater than the bss end address, if the bss end address is
   1423 	zero. And, don't check if the load end address is less than or
   1424 	equal to the entry address, if the load end address is zero.
   1425 	
   1426 	* docs/multiboot.texi (The address fields of Multiboot header):
   1427 	Added descriptions about the behavior of the boot loader when
   1428 	LOAD_END_ADDR is zero and BSS_END_ADDR is zero.
   1429 	
   1430 2002-05-22  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1431 
   1432 	* stage2/builtins.c (boot_func): If DEBUG is true, print
   1433 	BOOT_DRIVE and BOOT_PART_OFFSET.
   1434 	Don't set ERRNUM after rawread failed, because rawread should
   1435 	set ERRNUM itself.
   1436 	
   1437 2002-05-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1438 
   1439 	* lib/device.c (read_device_map): Show an error message and exit
   1440 	abnormally, if MAP[DRIVE] has already been filled.
   1441 	* util/grub-install.in: If there is any dulicated entry, print
   1442 	an error message and exit abnormally.
   1443 	
   1444 2002-05-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1445 
   1446 	* lib/device.c: Don't include linux/hdreg.h, linux/major.h,
   1447 	or linux/kdev_t.h.
   1448 	[__linux__] (HDIO_GETGEO): Defined.
   1449 	[__linux__] (hd_geometry): Likewise.
   1450 	[__linux__] (FLOPPY_MAJOR): Likewise.
   1451 	[__linux__] (MINORBITS): Likewise.
   1452 	[__linux__] (MAJOR): Likewise.
   1453 	
   1454 2002-05-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1455 
   1456 	* netboot/fsys_tftp.c (tftp_read): Don't call buf_fill unless
   1457 	SIZE is positive.
   1458 	
   1459 2002-05-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1460 
   1461 	* netboot/etherboot.h (ETH_MAX_MTU): Because some DHCP/BOOTP
   1462 	servers don't treat the maximum length the same as Etherboot,
   1463 	subtract the size of an IP header and that of an UDP header.
   1464 	
   1465 2002-04-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1466 
   1467 	From Jean-Jacques Michel <jjmichel (a] linbox.com>:
   1468 	* stage2/boot.c (load_image): For Linux, check if DATA_LEN is
   1469 	greater than MULTIBOOT_SEARCH. If that's true, read the rest
   1470 	after copying data already read in BUFFER.
   1471 	
   1472 2002-04-30  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1473 
   1474 	* stage2/boot.c (load_image): For Linux, don't check if the
   1475 	length of protected mode code is greater than or equal to the
   1476 	expected length minus 16. Instead, just check if no error
   1477 	occurred. That was problematic, because memdisk has no protected
   1478 	mode code. Also, I don't see what the magic number 16 was for.
   1479 	
   1480 2002-04-29  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1481 
   1482 	* stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Added a
   1483 	new option ``--silent''. This suppresses messages, if specified.
   1484 	
   1485 2002-04-29  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1486 
   1487 	* config.guess: New upstream version.
   1488 	* config.sub: Likewise.
   1489 	
   1490 2002-04-20  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1491 
   1492 	* netboot/config.c (PCI_NIC) [INCLUDE_DAVICOM]: Fix typos.
   1493 	Reported by Julien Perrot <julien.perrot (a] iie.cnam.fr>.
   1494 	
   1495 2002-04-17  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1496 
   1497 	* stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Set
   1498 	COUNT_LINES to -1, to disable the pager.
   1499 	
   1500 2002-04-16  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1501 
   1502 	* docs/grub.texi (Obtaining and Building GRUB): Update the link
   1503 	to the binutils site.
   1504 
   1505 2002-04-06  Pavel Roskin  <proski (a] gnu.org>
   1506 
   1507 	* util/grub-install.in: Fix hardcoded /dev/hda1.
   1508 
   1509 2002-04-06  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1510 
   1511 	* stage2/builtins.c [GRUB_UTIL] (dump_func): New function.
   1512 	[GRUB_UTIL] (builtin_dump): New variable.
   1513 	(builtin_table) [GRUB_UTIL]: Added a pointer to BUILTIN_DUMP.
   1514 	* util/grub-install.in: Make sure that GRUB reads the same
   1515 	images as the host operating system by comparing the result of
   1516 	running the command "dump" with the contents of the OS file.
   1517 	
   1518 2002-04-04  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1519 
   1520 	* stage2/builtins.c (setup_func): Don't embed a drive number, if
   1521 	unnecessary.
   1522 	
   1523 2002-03-29  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1524 
   1525 	* docs/grub.texi (General commands): Added ``pager'' into the
   1526 	menu.
   1527 	(pager): New subsection.
   1528 	(terminal): Added a description about the option
   1529 	``--lines=LINES''.
   1530 
   1531 	* configure.in (AC_INIT_AUTOMAKE): Set the version number to
   1532 	0.92.
   1533 	
   1534 2002-03-26  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1535 
   1536 	* netboot/eepro100.c (eepro100_probe): Increase the delay at the
   1537 	initialization.
   1538 	
   1539 2002-03-26  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1540 
   1541 	* stage2/boot.c (linux_mem_size): New variable.
   1542 	(load_image): Check a mem= option and set LINUX_MEM_SIZE to the
   1543 	specified memory size, if any. Otherwise, to zero. When an
   1544 	overflow is detected, use LINUX_INITRD_MAX_ADDRESS instead.
   1545 	(load_initrd): If LINUX_MEM_SIZE is non-zero, use it instead of
   1546 	the actual memory size.
   1547 	* stage2/char_io.c (safe_parse_maxint): Use ERR_NUMBER_OVERFLOW
   1548 	instead of ERR_NUMBER_PARSING, when an overflow occurs.
   1549 	* stage2/common.c [!STAGE1_5] (err_list): Added
   1550 	ERR_NUMBER_OVERFLOW.
   1551 	* stage2/shared.h (ERR_NUMBER_OVERFLOW): New constant.
   1552 	
   1553 2002-03-24  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1554 
   1555 	* stage2/stage2.c (run_menu): Call cls outside the loop to run
   1556 	scripts.
   1557 	* stage2/cmdline.c (run_script): Prompt a user's intervention,
   1558 	only when FALLBACK_ENTRY is negative.
   1559 	
   1560 2002-02-11  Pavel Roskin  <proski (a] gnu.org>
   1561 
   1562 	* util/grub-install.in (find_device): New function - find block
   1563 	device for given file or directory.  Resolve symlinks to fix
   1564 	problem on Linux with devfs and old device names in /etc/fstab.
   1565 	Use find_device() for root_device, bootdir_device and
   1566 	grubdir_device.
   1567 
   1568 2002-02-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1569 
   1570 	* grub/main.c (OPT_NO_PAGER): New macro.
   1571 	(longopts): Added an entry for "--no-pager".
   1572 	(usage): Added a description about "--no-pager".
   1573 	(main): In case of OPT_NO_PAGER, set USE_PAGER to zero. The same
   1574 	thing is done with OPT_BATCH, because the pager is just harmful
   1575 	in batch mode.
   1576 	
   1577 2002-02-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1578 
   1579 	* stage2/builtins.c (help_func): Show all the commands runnable
   1580 	with the command-line interface, if "--all" is specified.
   1581 	
   1582 2002-02-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1583 
   1584 	An internal pager is implemented.
   1585 	
   1586 	* stage2/builtins.c (pager_func): New function.
   1587 	(builtin_pager): New variable.
   1588 	(terminal_func): New option, "--lines=LINES" is added. If this
   1589 	option is specified, set MAX_LINES to the value. Otherwise, set
   1590 	MAX_LINES to 24.
   1591 	(vbeprobe_func): Remove the pager code specific to this
   1592 	function.
   1593 	(builtin_table): Added a pointer to BUILTIN_PAGER.
   1594 	* stage2/char_io.c (max_lines) [!STAGE1_5]: New variable.
   1595 	(count_lines) [!STAGE1_5]: Likewise.
   1596 	(use_pager) [!STAGE1_5]: Likewise.
   1597 	(grub_putchar) [!STAGE1_5]: if C is a newline and COUNT_LINES is
   1598 	not -1, count up the number of lines. If it exceeds the maximum
   1599 	number of lines minus 2, show a message and wait for input of
   1600 	return key. "minus 2" is to reserve space for the message
   1601 	printed by this internal pager.
   1602 	* stage2/cmdline.c (enter_cmdline): If USE_PAGER is true, set
   1603 	COUNT_LINES to zero, before running a command, and reset
   1604 	COUNT_LINES to -1 after that.
   1605 	* stage2/shared.h (max_lines) [!STAGE1_5]: Declared.
   1606 	(count_lines) [!STAGE1_5]: Likewise.
   1607 	(use_pager) [!STAGE1_5]: Likewise.
   1608 	
   1609 2002-02-08  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1610 
   1611 	* stage2/fsys_jfs.c (jfs_read) [STAGE1_5]: Set and reset
   1612 	DISK_READ_FUNC even in Stage 1.5.
   1613 	* stage2/fsys_xfs.c (xfs_read) [STAGE1_5]: Likewise.
   1614 
   1615 	* stage2/stage1_5.c (saved_sector): Initialized with -1.
   1616 	(cmain): Check if SAVED_SECTOR was set appropriately after
   1617 	reading the second sector of Stage 2. If SAVED_SECTOR is not
   1618 	set (i.e. it is equal to -1), print an error and stop.
   1619 	
   1620 2002-02-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1621 
   1622 	* stage2/builtins.c (setup_func): Add a VSTa fs entry into
   1623 	STAGE1_5_MAP.
   1624 	
   1625 2002-02-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1626 
   1627 	* stage2/shared.h (BUILTIN_HELP_LIST): New macro. Used for
   1628 	commands whose help messages are listed when no argument is
   1629 	specified to the command "help".
   1630 	* stage2/builtins.c (builtin_blocklist): Added the attribute
   1631 	BUILTIN_HELP_LIST.
   1632 	(builtin_boot): Likewise.
   1633 	(builtin_bootp): Likewise.
   1634 	(builtin_cat): Likewise.
   1635 	(builtin_chainloader): Likewise.
   1636 	(builtin_color): Likewise.
   1637 	(builtin_configfile): Likewise.
   1638 	(builtin_device): Likewise.
   1639 	(builtin_dhcp): Likewise.
   1640 	(builtin_displayapm): Likewise.
   1641 	(builtin_displaymem): Likewise.
   1642 	(builtin_find): Likewise.
   1643 	(builtin_geometry): Likewise.
   1644 	(builtin_halt): Likewise.
   1645 	(builtin_help): Likewise.
   1646 	(builtin_hide): Likewise.
   1647 	(builtin_ifconfig): Likewise.
   1648 	(builtin_initrd): Likewise.
   1649 	(builtin_kernel): Likewise.
   1650 	(builtin_makeactive): Likewise.
   1651 	(builtin_map): Likewise.
   1652 	(builtin_md5crypt): Likewise.
   1653 	(builtin_module): Likewise.
   1654 	(builtin_modulenounzip): Likewise.
   1655 	(builtin_partnew): Likewise.
   1656 	(builtin_parttype): Likewise.
   1657 	(builtin_quit): Likewise.
   1658 	(builtin_rarp): Likewise.
   1659 	(builtin_reboot): Likewise.
   1660 	(builtin_root): Likewise.
   1661 	(builtin_rootnoverify): Likewise.
   1662 	(builtin_serial): Likewise.
   1663 	(builtin_setkey): Likewise.
   1664 	(builtin_setup): Likewise.
   1665 	(builtin_terminal): Likewise.
   1666 	(builtin_testvbe): Likewise.
   1667 	(builtin_tftpserver): Likewise.
   1668 	(builtin_unhide): Likewise.
   1669 	(builtin_uppermem): Likewise.
   1670 	(builtin_vbeprobe): Likewise.
   1671 
   1672 	(help_func): When no argument is specified, if the last entry
   1673 	was at the left column, print an extra newline.
   1674 	
   1675 2002-02-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1676 
   1677 	* stage2/shared.h (BUILTIN_HIDDEN): Renamed to ...
   1678 	(BUILTIN_NO_ECHO): ... this. The old name was too difficult to
   1679 	see _what_ was hidden.
   1680 	
   1681 2002-02-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1682 
   1683 	* netboot/misc.c (twiddle): Go back to the bar progress, copied
   1684 	from etherboot-5.0.5/src/misc.c. Execute the code only if DEBUG
   1685 	is true.
   1686 	
   1687 2002-02-05  Yoshinori K. Okuji  <okuji (a] enbug.org>
   1688 
   1689 	* stage2/builtins.c (displaymem_func): Use hex digits to display
   1690 	for consistency.
   1691 	
   1692 2002-02-04  Jason Thomas  <jason (a] topic.com.ah>
   1693 
   1694 	From Denis Kitzman  <dkitzman (a] blue.weeg.uiowa.edu>:
   1695 	* stage2/Makefile.am (libgrub_a_CFLAGS): Fixed a typo.
   1696 	FSYS_XFS, USE_MD5_PASSWORDS, SUPPORT_SERIAL, and
   1697 	SUPPORT_HERCULES did not get defined.
   1698 
   1699 2002-01-20  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1700 
   1701 	* util/grub-image.in: Check stage2 instead of stage2.c to
   1702 	determine where the script is invoked, because srcdir may not
   1703 	be used for the compilation.
   1704 	
   1705 2002-01-20  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1706 
   1707 	* grub/asmstub.c (console_putchar): When not using curses,
   1708 	ignore a carriage return, because a newline in Unix is only a
   1709 	line feed.
   1710 	
   1711 2002-01-18  Klaus Reichl  <Klaus.Reichl (a] alcatel.at>
   1712 
   1713 	* stage2/fsys_minix.c (minix_dir): Fixed bug getting filenames
   1714 	with MAXNAMELEN right.
   1715 
   1716 	* stage2/char_io.c (get_cmdline, cl_refresh): If TERMINAL_DUMB
   1717 	section is always 0.
   1718 	Line is only cleared if !TERMINAL_DUMB.
   1719 
   1720 	* grub/main.c (use_curses): Initialize to 0 if !HAVE_LIBCURSES
   1721 	(main): Check for curses use and set terminal to dumb if we
   1722 	don't use it (helps for --batch and variants of non-curses
   1723 	setup).
   1724 
   1725 2002-01-15  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1726 
   1727 	* configure.in (AM_INIT_AUTOMAKE): The version number is
   1728 	upgraded to 0.91.
   1729 	
   1730 2002-01-15  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1731 
   1732 	* docs/grub.texi (Preset Menu): New chapter.
   1733 	
   1734 2002-01-15  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1735 
   1736 	* docs/grub.texi: Added some text about JFS and XFS.
   1737 	
   1738 2002-01-08  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1739 
   1740 	* grub/main.c (use_preset_menu): New variable.
   1741 	(OPT_PRESET_MENU): New macro.
   1742 	(longopts): Added an entry for "--preset-menu".
   1743 	(usage): Added a description for "--preset-menu". Also, change
   1744 	the first character of the description for "--device-map" to
   1745 	lower case for consistency.
   1746 	(main): Set USE_PRESET_MENU to 1 in the case of OPT_PRESET_MENU.
   1747 	* stage2/shared.h (use_preset_menu): Declared.
   1748 	* stage2/stage2.c [PRESET_MENU_STRING || SUPPORT_DISKLESS]
   1749 	(open_preset_menu) [GRUB_UTIL]: If USE_PRESET_MENU is false,
   1750 	return zero immediately.
   1751 
   1752 2002-01-08  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1753 
   1754 	* stage2/common.c [SUPPORT_DISKLESS]
   1755 	(setup_diskless_environment): Removed. The feature is moved to
   1756 	the preset menu.
   1757 	* stage2/stage2.c [SUPPORT_DISKLESS] (preset_menu): Set to the
   1758 	string "bootp\n".
   1759 	[SUPPORT_DISKLESS] (preset_menu_offset): Defined, as if
   1760 	PRESET_MENU_STRING is defined.
   1761 	[SUPPORT_DISKLESS] (open_preset_menu): Likewise.
   1762 	[SUPPORT_DISKLESS] (read_from_preset_menu): Likewise.
   1763 	[SUPPORT_DISKLESS] (close_preset_menu): Likewise.
   1764 	
   1765 2002-01-06  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1766 
   1767 	The preset menu has a priority over the configuration file.
   1768 	Suggested by Christoph Plattner.
   1769 	
   1770 	* stage2/stage2.c [PRESET_MENU_STRING] (open_preset_menu):
   1771 	Check if PRESET_MENU is not NULL.
   1772 	[PRESET_MENU_STRING] (close_preset_menu): Set PRESET_MENU to
   1773 	NULL.
   1774 	(cmain): New internal function, reset. This function resets
   1775 	AUTO_FILL, CONFIG_LEN, MENU_LEN, NUM_ENTRIES, CONFIG_ENTRIES,
   1776 	MENU_ENTRIES and call init_config.
   1777 	Try to open the preset menu first, and try to open the
   1778 	configuration file, only if that failed.
   1779 	Even if the preset menu was read, try to open the configuration
   1780 	file. This time, opening the preset menu never succeed, because
   1781 	close_preset_menu ensures that the preset menu is available at
   1782 	most once.
   1783 	
   1784 2002-01-06  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1785 
   1786 	* netboot/misc.c (inet_aton): Don't check if *P is an asterisk,
   1787 	if I is 3. Reported by Rick (his real name and address are
   1788 	unknown).
   1789 	
   1790 2002-01-03  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1791 
   1792 	Update the netboot stuff to Etherboot-5.0.5.
   1793 	
   1794 	* configure.in (--enable-3c590): Removed. This was a mistake.
   1795 	(--enable-davicom): New option.
   1796 	(--enable-eepro): Likewise.
   1797 	(--enable-natsemi): Likewise.
   1798 	(--enable-ni5010): Likewise.
   1799 	(--enable-sis900): Likewise.
   1800 	(--enable-w89c840): Likewise.
   1801 	(--enable-3c509-hack): Removed.
   1802 	(--enable-ns8390-force-16bit): Likewise.
   1803 
   1804 	* netboot/Makefile.am (libdrivers_a_SOURCES): Added timer.c and
   1805 	timer.h.
   1806 	(EXTRA_libdrivers_a_SOURCES): Added davicom.c, eepro.c, fa311.c,
   1807 	natsemi.c, ni5010.c, sis900.c, sis900.h, tlan.c and w89c840.c.
   1808 	(EXTRA_DIST): Added sis900.txt.
   1809 	(3c595_drivers): Remove 3c590.o from this.
   1810 	(davicom_drivers): New variable.
   1811 	(eepro_drivers): Likewise.
   1812 	(natsemi_drivers): Likewise.
   1813 	(ni5010_drivers): Likewise.
   1814 	(sis900_drivers): Likewise.
   1815 	(w89c840_drivers): Likewise.
   1816 	(3c590_o_CFLAGS): Removed.
   1817 	(davicom_o_CFLAGS): New variable.
   1818 	(eepro_o_CFLAGS): Likewise.
   1819 	(natsemi_o_CFLAGS): Likewise.
   1820 	(ni5010_o_CFLAGS): Likewise.
   1821 	(sis900_o_CFLAGS): Likewise.
   1822 	(w89c840_o_CFLAGS): Likewise.
   1823 
   1824 	* netboot/davicom.c: New file, from Etherboot-5.0.5.
   1825 	* netboot/eepro.c: Likewise.
   1826 	* netboot/natsemi.c: Likewise.
   1827 	* netboot/ni5010.c: Likewise.
   1828 	* netboot/sis900.c: Likewise.
   1829 	* netboot/sis900.h: Likewise.
   1830 	* netboot/sis900.txt: Likewise.
   1831 	* netboot/timer.c: Likewise.
   1832 	* netboot/timer.h: Likewise.
   1833 	* netboot/w89c840.c: Likewise.
   1834 	* netboot/fa311.c: Likewise.
   1835 	* netboot/tlan.c: Likewise.
   1836 	
   1837 	* netboot/3c509.c: Copied from Etherboot-5.0.5.
   1838 	* netboot/3c509.h: Likewise.
   1839 	* netboot/3c595.c: Likewise.
   1840 	* netboot/3c90x.c: Likewise.
   1841 	* netboot/3c90x.txt: Likewise.
   1842 	* netboot/cards.h: Likewise.
   1843 	* netboot/cs89x0.c: Likewise.
   1844 	* netboot/depca.c: Likewise.
   1845 	* netboot/eepro100.c: Likewise.
   1846 	* netboot/epic100.c: Likewise.
   1847 	* netboot/i82586.c: Likewise.
   1848 	* netboot/lance.c: Likewise.
   1849 	* netboot/linux-asm-string.h: Likewise.
   1850 	* netboot/nic.h: Likewise.
   1851 	* netboot/ns8390.c: Likewise.
   1852 	* netboot/ns8390.h: Likewise.
   1853 	* netboot/otulip.c: Likewise.
   1854 	* netboot/pci.h: Likewise.
   1855 	* netboot/rtl8139.c: Likewise.
   1856 	* netboot/sk_g16.c: Likewise.
   1857 	* netboot/smc9000.c: Likewise.
   1858 	* netboot/tiara.c: Likewise.
   1859 	* netboot/tulip.c: Likewise.
   1860 	* netboot/via-rhine.c: Likewise.
   1861 	
   1862 	* netboot/config.c: Applied a diff between Etherboot-4.6.4 and
   1863 	Etherboot-5.0.5 manually.
   1864 	* netboot/main.c: Likewise.
   1865 	* netboot/pci.c: Likewise.
   1866 	* netboot/etherboot.h: Rewritten mostly from scratch, based on
   1867 	the same file in Etherboot-5.0.5.
   1868 	* netboot/misc.c: Likewise.
   1869 	* netboot/osdep.h: Likewise.
   1870 	* netboot/fsys_tftp.c (GRUB): Defined.
   1871 	(buf_fill): Use rfc2131_sleep_interval instead of rfc951_sleep.
   1872 
   1873 	* stage2/builtins.c [SUPPORT_NETBOOT] (GRUB): Defined.
   1874 	(boot_func) [SUPPORT_NETBOOT]: Call cleanup_net.
   1875 	* stage2/cmdline.c [SUPPORT_DISKLESS] (GRUB): Defined.
   1876 	* stage2/common.c [SUPPORT_DISKLESS] (GRUB): Likewise.
   1877 	
   1878 2002-01-02  Jeremy Katz  <katzj (a] redhat.com>
   1879 	
   1880 	* util/grub-install.in: Support using mktemp as well as tempfile
   1881 	for secure temporary file creation.
   1882 
   1883 2002-01-02  Jeremy Katz  <katzj (a] redhat.com>
   1884 	
   1885 	* stage2/md5.c (md5_password): Ensure the password exists before
   1886 	trying to check against the md5 crypted version.
   1887 
   1888 2001-12-30  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1889 
   1890 	* stage1/stage1.S: Don't call INT 13, AH=48H, because it is
   1891 	difficult to call this function with the workaround implemented
   1892 	in the previous change due to the size limit of Stage 1.
   1893 	
   1894 	(lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]: Don't check the
   1895 	geometry explicitly. This shouldn't be harmful, as INT 13,
   1896 	AH=42H should take care of it, and if you cannot read Stage 2
   1897 	even with LBA because of a geometry problem, you can never read
   1898 	it.
   1899 
   1900 	* stage2/start.S (lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]:
   1901 	Likewise.
   1902 	
   1903 2001-12-30  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1904 
   1905 	* stage2/bios.c (get_diskinfo): Clear out the structure DRP
   1906 	before calling get_diskinfo_int13_extensions, because the Ralf
   1907 	Brown's Interrupt List says that Dell machines using PhoenixBIOS
   1908 	4.0 Release 6.0 fail, if DRP.FLAGS is not zero. Setting the
   1909 	entire structure to zero may be overkill, but it should be safe.
   1910 	
   1911 	* stage2/char_io.c [STAGE1_5] (grub_memset): Defined.
   1912 	
   1913 2001-12-30  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1914 
   1915 	From John Goerzen <jgoerzen (a] complete.org>:
   1916 	* util/grub-install.in (convert): Added NetBSD support.
   1917 	
   1918 2001-12-30  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1919 
   1920 	* util/grub-install.in: Set GRUB_PREFIX and BOOTDIR to "/grub"
   1921 	and "${rootdir}" respectively in NetBSD.
   1922 	
   1923 2001-12-30  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1924 
   1925 	* stage2/builtins.c (builtin_geometry): Add extra space
   1926 	characters into the long description.
   1927 	(builtin_kernel): Likewise.
   1928 	(builtin_vbeprobe): Likewise.
   1929 	
   1930 2001-12-19  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1931 
   1932 	From Michael Sullivan <mike (a] trdlnk.com>:
   1933 	* stage1/stage1.S (real_start): Added a workaround for AST BIOS,
   1934 	because it clobbers %dl with INT 13, AH=41H.
   1935 
   1936 2001-12-19  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1937 
   1938 	* stage2/fsys_fat.c (fat_read): Fix the contradictory comment.
   1939 	Reported by Filip Van Raemdonck <mechanix (a] digibel.org>.
   1940 	
   1941 2001-12-11  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1942 
   1943 	* stage2/builtins.c (displayapm_func): Don't use multi-line
   1944 	string literals but string concatenation instead, to suppress
   1945 	warnings from gcc-3.0.x.
   1946 	* stage2/cmdline.c (print_cmdline_message): Likewise.
   1947 	* util/mbchk.c (usage): Likewise.
   1948 	
   1949 	* stage2/smp-imps.c (imps_read_config_table): Add a break
   1950 	statement after the label ``default''.
   1951 	
   1952 	* util/mbchk.c: Include <stdlib.h> for the prototype of exit.
   1953 
   1954 	* stage2/serial.c (serial_port): Initialize with 0 instead of
   1955 	-1, as an invalid value, because SERIAL_PORT is unsigned. This
   1956 	change shouldn't affect anything.
   1957 	(serial_exists): For the above change, check SERIAL_PORT with 0
   1958 	instead of -1.
   1959 	
   1960 2001-12-10  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1961 
   1962 	* stage2/shared.h (ERR_NO_DISK_SPACE): New constant.
   1963 	* stage2/common.c (err_list): Added an entry for
   1964 	ERR_NO_DISK_SPACE.
   1965 	* docs/grub.texi (Stage2 errors): Added the description.
   1966 	* stage2/builtins.c (embed_func): Use ERR_NO_DISK_SPACE instead
   1967 	of ERR_DEV_VALUES when the spare space is too small. Suggested
   1968 	by Eric Mumpower <nocturne (a] permabit.com>.
   1969 	
   1970 2001-12-10  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1971 
   1972 	* grub/asmstub.c: Include <signal.h>.
   1973 	(grub_stage2) [HAVE_LIBCURSES]: If USE_CURSES is true, ignore
   1974 	the signal SIGWINCH. Reported by Christian Hudon
   1975 	<chrish (a] debian.org>.
   1976 
   1977 2001-11-29  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1978 
   1979 	From Jason Thomas:
   1980 	* stage2/disk_io.c (set_partition_hidden_flag): Complete rewrite
   1981 	of this function which now supports logical partitions.
   1982 	
   1983 2001-11-12  Yoshinori K. Okuji  <okuji (a] gnu.org>
   1984 
   1985 	* docs/grub.texi: The copyright of this file is only held by
   1986 	Free Software Foundation, Inc., as Erich Boleyn has assigned his
   1987 	copyright to the FSF.
   1988 	* stage1/stage1.S: Likewise.
   1989 	* stage2/asm.S: Likewise.
   1990 	* stage2/boot.c: Likewise.
   1991 	* stage2/builtins.c: Likewise.
   1992 	* stage2/char_io.c: Likewise.
   1993 	* stage2/cmdline.c: Likewise.
   1994 	* stage2/common.c: Likewise.
   1995 	* stage2/disk_io.c: Likewise.
   1996 	* stage2/fat.h: Likewise.
   1997 	* stage2/filesys.h: Likewise.
   1998 	* stage2/freebsd.h: Likewise.
   1999 	* stage2/fsys_ext2fs.c: Likewise.
   2000 	* stage2/fsys_fat.c: Likewise.
   2001 	* stage2/fsys_ffs.c: Likewise.
   2002 	* stage2/gunzip.c: Likewise.
   2003 	* stage2/i386-elf.h: Likewise.
   2004 	* stage2/mb_header.h: Likewise.
   2005 	* stage2/mb_info.h: Likewise.
   2006 	* stage2/pc_slice.h: Likewise.
   2007 	* stage2/shared.h: Likewise.
   2008 	* stage2/stage1_5.c: Likewise.
   2009 	* stage2/stage2.c: Likewise.
   2010 	* stage2/start.S: Likewise.
   2011 	
   2012 2001-11-07  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2013 
   2014 	* stage2/builtins.c (terminal_func) [!SUPPORT_SERIAL]: Disable
   2015 	the wait code, as it is usable only when serial support is on.
   2016 	Reported by Karl Hammar <karl (a] kalle.csb.ki.se>.
   2017 	
   2018 2001-10-27  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2019 
   2020 	JFS and XFS support is added.
   2021 	
   2022 	From Serguei Tzukanov <tzukanov (a] narod.ru>:
   2023 	* configure.in (--disable-jfs): New option.
   2024 	(--disable-xfs): Likewise.
   2025 	* stage2/Makefile.am (noinst_HEADERS): Added jfs.h and xfs.h.
   2026 	(libgrub_a_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
   2027 	(libgrub_a_CFLAGS): Added -DFSYS_JFS=1 and -DFSYS_XFS=1.
   2028 	(pkgdata_DATA): Added jfs_stage1_5 and xfs_stage1_5.
   2029 	(noinst_PROGRAMS): Added jfs_stage1_5.exec and
   2030 	xfs_stage1_5.exec.
   2031 	(pre_stage2_exec_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
   2032 	(jfs_stage1_5_exec_SOURCES): New variable.
   2033 	(jfs_stage1_5_exec_CFLAGS): Likewise.
   2034 	(jfs_stage1_5_exec_ASFLAGS): Likewise.
   2035 	(jfs_stage1_5_exec_LDFLAGS): Likewise.
   2036 	(xfs_stage1_5_exec_SOURCES): Likewise.
   2037 	(xfs_stage1_5_exec_CFLAGS): Likewise.
   2038 	(xfs_stage1_5_exec_ASFLAGS): Likewise.
   2039 	(xfs_stage1_5_exec_LDFLAGS): Likewise.
   2040 	* stage2/builtins.c (setup_func): Add items for JFS and XFS into
   2041 	STAGE1_5_MAP.
   2042 	* stage2/disk_io.c (fsys_table): Added entries for JFS and XFS.
   2043 	* stage2/filesys.h [FSYS_JFS] (FSYS_JFS_NUM): Set to 1.
   2044 	[FSYS_JFS] (jfs_mount): Declared.
   2045 	[FSYS_JFS] (jfs_read): Likewise.
   2046 	[FSYS_JFS] (jfs_dir): Likewise.
   2047 	[FSYS_JFS] (jfs_embed): Likewise.
   2048 	[!FSYS_JFS] (FSYS_JFS_NUM): Set to 0.
   2049 	[FSYS_XFS] (FSYS_XFS_NUM): Set to 1.
   2050 	[FSYS_XFS] (xfs_mount): Declared.
   2051 	[FSYS_XFS] (xfs_read): Likewise.
   2052 	[FSYS_XFS] (xfs_dir): Likewise.
   2053 	(NUM_FSYS): Added FSYS_JFS_NUM and FSYS_XFS_NUM.
   2054 	* stage2/shared.h (STAGE2_ID_JFS_STAGE1_5): New macro.
   2055 	(STAGE2_ID_XFS_STAGE1_5): Likewise.
   2056 	[FSYS_JFS] (STAGE2_ID): Set to STAGE2_ID_JFS_STAGE1_5.
   2057 	[FSYS_XFS] (STAGE2_ID): Set to STAGE2_ID_XFS_STAGE1_5.
   2058 	* stage2/fsys_jfs.c: New file.
   2059 	* stage2/fsys_xfs.c: Likewise.
   2060 	* stage2/jfs.h: Likewise.
   2061 	* stage2/xfs.h: Likewise.
   2062 
   2063 2001-10-27  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2064 
   2065 	* stage2/apm.S: Always disconnect from APM. Written by Erich
   2066 	Stefan Boleyn.
   2067 
   2068 	* util/Makefile.am (noinst_DATA): Removed.
   2069 	(EXTRA_DIST): Likewise.
   2070 	
   2071 2001-10-14  Gordon Matzigkeit  <gord (a] fig.org>
   2072 
   2073 	* configure.in: Explicitly call _AM_DEPENDENCIES(CC) for the
   2074 	benefit of older Autoconfs.
   2075 
   2076 2001-10-13  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2077 
   2078 	* netboot/fsys_tftp.c (tftp_read): Move the unused data
   2079 	forwards, only if AMT is more than zero. If AMT is not positive,
   2080 	subtract BUF_READ from SAVED_FILEPOS and set BUF_READ to zero,
   2081 	to skip the whole buffer. Reported by Frank Mehnert.
   2082 	
   2083 2001-10-13  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2084 
   2085 	Don't use get_diskinfo_floppy. Reported by Ben Liblit
   2086 	<liblit (a] eecs.berkeley.edu>.
   2087 	
   2088 	* stage2/asm.S (get_diskinfo_floppy): Removed (by cpp).
   2089 	* stage2/bios.c (get_diskinfo_floppy): Removed.
   2090 	(get_diskinfo): Don't call get_diskinfo_floppy any longer.
   2091 	
   2092 2001-10-13  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2093 
   2094 	Based on a patch from Jeremy Katz <katzj (a] redhat.com>:
   2095 	* docs/grub.texi (Stage2 errors): Added documentation on the
   2096 	error number 33 (Serial device not configured).
   2097 	* grub/asmstub.c (serial_exists): New function.
   2098 	* stage2/serial.c (serial_exists): Likewise.
   2099 	* stage2/serial.h (serial_exists): New prototype.
   2100 	* stage2/shared.h (grub_error_t): ERR_NEED_SERIAL is added.
   2101 	* stage2/builtins.c (terminal_func) [SUPPORT_SERIAL]: If a
   2102 	serial device is not configured yet, restore the terminal and
   2103 	set ERRNUM to ERR_NEED_SERIAL.
   2104 	* stage2/common.c (err_list): Added an item for ERR_NEED_SERIAL.
   2105 	
   2106 2001-10-13  Yoshinori K. Okuji  <okuji (a] gnu.org>
   2107 
   2108 	From Jason Thomas <jason (a] topic.com.au>:
   2109 	* util/grub-install.in (convert): Add support for DAC960.
   2110 
   2111 	From Adrian Phillips <a.phillips (a] dnmi.no>:
   2112 	* lib/device.c (get_dac960_disk_name): New function.
   2113 	(init_device_map) [__linux__]: Add support for DAC960.
   2114 	
   2115 2001-10-11  Jochen Hoenicke  <jochen (a] gnu.org>
   2116 
   2117 	* stage2/fsys_reiserfs.c (reiserfs_super_block): Updated
   2118 	to better match recent reiserfs versions.
   2119 	(reiserfs_mount): Handle cases where journal can't be found,
   2120 	e.g. journal on another disk or unexpected journal parameters.
   2121 	In that case the journal isn't used.
   2122 	
   2123 2001-10-10  Jochen Hoenicke  <jochen (a] gnu.org>
   2124 
   2125 	* stage2/fsys_reiserfs.c (reiserfs_mount):  Don't look at
   2126 	the superblock field s_journal_block_count anymore.  It used
   2127 	to contain 0, it never contained a valid value, and now I
   2128 	have a report that it can contain an invalid value.
   2129 	Bug reported by Jim Caley <caley (a] chesco.com>.
   2130 	
   2131 2001-09-24  Jochen Hoenicke  <jochen (a] gnu.org>
   2132 
   2133 	* stage2/fsys_reiserfs.c (reiserfs_dir):  Set errnum to 
   2134 	ERR_FSYS_CORRUPT if a symlink can't be read for some reason,
   2135 	but no error is set by read.
   2136 	
   2137 2001-08-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   2138 
   2139 	From Derrik Pates <dpates (a] dsdk12.net>:
   2140 	* stage2/asm.S [!STAGE1_5] (grub_halt): Set the level of APM
   2141 	support to 1.1, before turning off the power state.
   2142 	
   2143 2001-08-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   2144 
   2145 	* util/grub-md5-crypt.in: Prefix backquotes with backslashes in
   2146 	strings.  From Fernando Silveira.
   2147 	
   2148 2001-08-02  Gordon Matzigkeit  <gord (a] fig.org>
   2149 
   2150 	* stage2/common.c (init_bios_info): Ignore zero-length memory
   2151 	ranges.  From Derrik Pates <dpates (a] dsdk12.net>.
   2152 
   2153 2001-07-26  Jochen Hoenicke  <jochen (a] gnu.org>
   2154 
   2155 	* stage2/Makefile.am (libgrub_a_CFLAGS): Enable USE_MD5_PASSWORDS
   2156 	for libgrub.  Previously that was implicitly done by configure.in
   2157 	until the patch from 2001-07-04, which moved that flag from CFLAGS
   2158 	to FSYS_CFLAGS.  Reported by YAMAGUCHI Shingo
   2159 	<shingo (a] kip.iis.toyama-u.ac.jp>
   2160 
   2161 2001-07-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   2162 
   2163 	* util/grub-install.in (convert): Recognize the naming scheme
   2164 	for Linux devfs floppy devices. Reported by Jason Thomas
   2165 	<jason (a] topic.com.au>.
   2166 	
   2167 2001-07-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   2168 
   2169 	* netboot/compile: New file. This was also missing... How many
   2170 	``compile''s does automake want?
   2171 	
   2172 2001-07-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   2173 
   2174 	From Jan Zerebecki <jan.list (a] elite-pferde.de>:
   2175 	* acinclude.m4 (grub_DEFINE_FILE): Escape double-quotations as
   2176 	well.
   2177 	
   2178 2001-07-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   2179 
   2180 	* configure.in (AM_INIT_AUTOMAKE): Set the version number to
   2181 	0.90.
   2182 
   2183 2001-07-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   2184 
   2185 	Ughh! I forgot to add this file to the CVS.
   2186 
   2187 	* docs/compile: New file.
   2188 	
   2189 2001-07-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   2190 
   2191 	* docs/grub.texi: Updated.
   2192 	
   2193 2001-07-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   2194 
   2195 	* stage2/boot.c (load_initrd) [!NO_DECOMPRESSION]: Set
   2196 	NO_DECOMPRESSION to one before opening INITRD, so that GRUB
   2197 	doesn't decompress an initrd automatically. Reported by
   2198 	Thierry Laronde.
   2199 	
   2200 2001-07-04  OKUJI Yoshinori  <okuji (a] gnu.org>
   2201 
   2202 	* stage2/compile: New file.
   2203 	* docs/mdate-sh: Likewise.
   2204 	* docs/texinfo.tex: Likewise.
   2205 	* compile: Removed.
   2206 	* mdate-sh: Likewise.
   2207 	* texinfo.tex: Likewise.
   2208 	* config.guess: Updated from automake-1.4h.
   2209 	* config.sub: Likewise.
   2210 	* depcomp: Likewise.
   2211 	* install-sh: Likewise.
   2212 	* missing: Likewise.
   2213 	* mkinstalldirs: Likewise.
   2214 	* configure.in (AS): New variable.
   2215 	(ASFLAGS): Likewise.
   2216 	(--disable-md5-password): Use FSYS_CFLAGS instead of CFLAGS.
   2217 	* stage1/Makefile.am (AM_CFLAGS): Renamed to ...
   2218 	(AM_ASFLAGS): ... this.
   2219 	* stage2/Makefile.am (pre_stage2_exec_ASFLAGS): New variable.
   2220 	(start_exec_CFLAGS): Renamed to ...
   2221 	(start_exec_ASFLAGS): ... this.
   2222 	(start_exec-start.o): Renamed to ...
   2223 	(start_exec-start.$(OBJEXT)): ... this.
   2224 	(e2fs_stage1_5_exec_ASFLAGS): New variable.
   2225 	(fat_stage1_5_exec_ASFLAGS): Likewise.
   2226 	(ffs_stage1_5_exec_ASFLAGS): Likewise.
   2227 	(minix_stage1_5_exec_ASFLAGS): Likewise.
   2228 	(reiserfs_stage1_5_exec_ASFLAGS): Likewise.
   2229 	(vstafs_stage1_5_exec_ASFLAGS): Likewise.
   2230 	(diskless_exec_ASFLAGS): Likewise.
   2231 	(nbloader_exec_CFLAGS): Renamed to ...
   2232 	(nbloader_exec_ASFLAGS): ... this.
   2233 	(nbloader_exec-nbloader.o): Renamed to ...
   2234 	(nbloader_exec-nbloader.$(OBJEXT)): ... this.
   2235 	(pxeloader_exec_CFLAGS): Renamed to ...
   2236 	(pxeloader_exec_ASFLAGS): ... this.
   2237 	(pxeloader_exec-pxeloader.$(OBJEXT)): New target.
   2238 
   2239 2001-07-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   2240 	
   2241 	From Julien Bordet <julien.bordet (a] int-evry.fr>:
   2242 	* stage2/i386-elf.h (Elf32_Shdr): New type.
   2243 	* stage2/boot.c (load_image): Added ELF symbol loading support.
   2244 	
   2245 2001-06-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2246 
   2247 	* stage2/char_io.c [STAGE1_5] (grub_strcmp): Defined, even
   2248 	for Stage 1.5. See thecomment, for a possible future strategy.
   2249 	* stage2/fsys_vstafs.c [!FSYS_VSTAFS]: Don't define anything.
   2250 	[STAGE1_5] (grub_strcmp): Removed.
   2251 	(get_file_info): Made static.
   2252 	(vstafs_readdir): Likewise.
   2253 	(vstafs_nextdir): Likewise.
   2254 	(curr_ext): Likewise.
   2255 	(current_direntry): Likewise.
   2256 	(current_blockpos): Likewise.
   2257 	(a): Likewise.
   2258 	
   2259 2001-06-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2260 
   2261 	VSTa filesystem support is added.
   2262 	
   2263 	From Kristoffer Brnemyr <ztion (a] swipnet.se>:
   2264 	* stage2/configure.in (--disable-vstafs): New option.
   2265 	* stage2/Makefile.am (noinst_HEADERS): Added vstafs.h.
   2266 	(libgrub_a_SOURCES): Added fsys_vstafs.c.
   2267 	(libgrub_a_CFLAGS): Added -DFSYS_VSTAFS=1.
   2268 	(pkgdata_DATA): Added vstafs_stage1_5.
   2269 	(noinst_PROGRAMS): Added vstafs_stage1_5.exec.
   2270 	(pre_stage2_exec_SOURCES): Added fsys_vstafs.c.
   2271 	(vstafs_stage1_5_exec_SOURCES): New variable.
   2272 	(vstafs_stage1_5_exec_CFLAGS): Likewise.
   2273 	(vstafs_stage1_5_exec_LDFLAGS): Likewise.
   2274 	* stage2/disk_io.c (fsys_table): Added an entry for vstafs.
   2275 	* stage2/filesys.h [FSYS_VSTAFS] (FSYS_VSTAFS_NUM): Defined as
   2276 	1.
   2277 	[FSYS_VSTAFS] (vstafs_mount): New prototype.
   2278 	[FSYS_VSTAFS] (vstafs_read): Likewise.
   2279 	[FSYS_VSTAFS] (vstafs_dir): Likewise.
   2280 	[!FSYS_VSTAFS] (FSYS_VSTAFS_NUM): Defined as 0.
   2281 	(NUM_FSYS): Added FSYS_VSTAFS_NUM.
   2282 	* stage2/pc_slice.h (PC_SLICE_TYPE_VSTAFS): New macro.
   2283 	* stage2/shared.h (STAGE2_ID_VSTAFS_STAGE1_5): Likewise.
   2284 	[STAGE1_5 && FSYS_VSTAFS] (STAGE2_ID): Defined as
   2285 	STAGE2_ID_VSTAFS_STAGE1_5.
   2286 	* stage2/vstafs.h: New file.
   2287 	* stage2/fsys_vstafs.c: Likewise.
   2288 	
   2289 2001-06-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2290 
   2291 	From Thierry Laronde <thierry (a] cri74.org>:
   2292 	* stage2/builtins.c (configfile_func): Added a prototype.
   2293 	(bootp_func): If `--with-configfile' is given, set
   2294 	WITH_CONFIGFILE to one, and call configfile_func with
   2295 	CONFIG_FILE.
   2296 	
   2297 2001-06-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   2298 
   2299 	* docs/grub.texi: Update the location of the CVS repository
   2300 	[/home/cvs -> /cvsroot/grub].
   2301 	* README: Likewise.
   2302 	
   2303 2001-06-19  OKUJI Yoshinori  <okuji (a] gnu.org>
   2304 
   2305 	* stage2/boot.c (load_image): If the image is a Multiboot ELF OS
   2306 	image, get the physical entry address, when a loaded memory
   2307 	segment contains it. And, set ENTRY_ADDR to it, after printing
   2308 	out the virtual one. Suggested by Rogelio M. Serrano Jr.
   2309 	<rogelio (a] victorio.com>.
   2310 	
   2311 2001-05-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   2312 
   2313 	* docs/grub.texi: Fix some typos. Reported by Florian Hatat
   2314 	<mininet (a] wanadoo.fr>.
   2315 	
   2316 2001-05-29  Pavel Roskin  <proski (a] gnu.org>
   2317 
   2318 	* configure.in (AC_OUTPUT): Remove debian/Makefile.
   2319 
   2320 2001-05-28  Gordon Matzigkeit  <gord (a] fig.org>
   2321 
   2322 	* Makefile.am (SUBDIRS): Remove reference to debian directory.
   2323 	Packaging is no longer done by the GRUB team.
   2324 
   2325 2001-05-03  Gordon Matzigkeit  <gord (a] fig.org>
   2326 
   2327 	* stage1/stage1.S (nt_magic): Explicitly reserve space for the NT
   2328 	magic number.
   2329 
   2330 2001-05-25  Klaus Reichl  <Klaus.Reichl (a] alcatel.at>
   2331 
   2332 	* stage2/stage2.c (print_entries_raw): New function.
   2333 	(run_menu): Use it to implement menu & command-list if on dumb
   2334 	terminals.  
   2335 	Changes are:
   2336 	  Adjust FIRST_ENTRY only on non-dumb terminals.
   2337 	  Setting of SHOW_MENU is honoured also on dumb
   2338 	    terminals. 
   2339 	  Likely if SHOW_MENU is false, ESC brings her to the
   2340 	    menu - not to the command-line as before.
   2341 	  PRINT_BORDER, GOTOXY, SET_LINE_xxx are only called if
   2342 	    not on dumb terminals.
   2343 	  Show entry number when timeout is running if terminal is dumb.
   2344 	  Prompt with entry number when waiting for keys.
   2345 
   2346 2001-05-14  Pavel Roskin  <proski (a] gnu.org>
   2347 
   2348 	* stage2/shared.h (ENTRY): Remove unnecessary `##'.
   2349 
   2350 2001-05-03  Jochen Hoenicke  <jochen (a] gnu.org>
   2351 
   2352 	* grub/asmstub.c (biosdisk): Work around a bug in linux's ez
   2353 	remapping.  Problem reported by Ben Byer <bbyer (a] rice.edu>.
   2354 	
   2355 2001-03-28  Gordon Matzigkeit  <gord (a] fig.org>
   2356 
   2357 	* stage2/boot.c (load_image): Don't cast entry_addr to an int, or
   2358 	the top bit will be interpreted as the sign.
   2359 
   2360 2001-03-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   2361 
   2362 	From Bodo Rueskamp <br (a] itchigo.com>:
   2363 	* stage2/boot.c (load_initrd): Avoid the last 64kb for
   2364 	Linux 2.2.x bug.
   2365 	
   2366 2001-03-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   2367 
   2368 	* docs/multiboot.texi (History): Written.
   2369 	
   2370 2001-02-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   2371 
   2372 	From HASEGAWA Tomoki <thasegawa (a] mta.biglobe.ne.jp>:
   2373 	* lib/device.c (get_ide_disk_name) [__FreeBSD__]: Add support
   2374 	for FreeBSD-4.0 or later. Use "/dev/rad0".
   2375 	* util/grub-install.in (convert): Add code for FreeBSD
   2376 	disklabels.
   2377 
   2378 2001-02-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   2379 
   2380 	From Thierry Laronde <thierry (a] cri74.org>:
   2381 	* stage2/stage2.c (cmain): If the default entry is wrong, set it
   2382 	to FALLBACK_ENTRY if FALLBACK_ENTRY is valid, otherwise set it
   2383 	to zero. Suggested by Nicolas Boos <nicolas.boos (a] wanadoo.fr>.
   2384 	
   2385 2001-02-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   2386 
   2387 	* acconfig.h (AUTO_LINUX_MEM_OPT): New entry.
   2388 	* configure.in (--disable-auto-linux-mem-opt): New option.
   2389 	* stage2/builtins.c (kernel_func) [!AUTO_LINUX_MEM_OPT]: Add
   2390 	KERNEL_LOAD_NO_MEM_OPTION into LOAD_FLAGS, whether the user
   2391 	specifies --no-mem-option or not.
   2392 	
   2393 2001-02-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2394 
   2395 	* stage2/builtins.c (chainloader_func): Don't check if the
   2396 	current partition is FAT, but check if it has a FAT partition
   2397 	type and the BPB has a system id starting with "MSWIN".
   2398 	
   2399 2001-02-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2400 
   2401 	Added hercules support based on a patch by Frank Mehnert
   2402 	<fm3 (a] os.inf.tu-dresden.de>. I translated his assembly code into
   2403 	C, and separated hercules from the normal console.
   2404 	
   2405 	* configure.in (--disable-hercules): New option.
   2406 	
   2407 	* grub/asmstub.c: Include <hercules.h>.
   2408 	(set_attrib): Renamed to ...
   2409 	(console_set_attrib): ... this.
   2410 	(herc_cls): New function.
   2411 	(herc_getxy): Likewise.
   2412 	(herc_gotoxy): Likewise.
   2413 	(herc_putchar): Likewise.
   2414 	(herc_set_attrib): Likewise.
   2415 	
   2416 	* stage2/Makefile.am (noinst_HEADERS): Added hercules.h.
   2417 	(libgrub_a_CFLAGS): Added -DSUPPORT_HERCULES=1.
   2418 	(HERCULES_FLAGS): New variable.
   2419 	(STAGE2_COMPILE): Added $(HERCULES_FLAGS).
   2420 	(pre_stage2_exec_SOURCES): Added hercules.c.
   2421 	* stage2/asm.S [!STAGE1_5] (set_attrib) Renamed to ...
   2422 	[!STAGE1_5] (console_set_attrib): ... this.
   2423 	* stage2/builtins.c [SUPPORT_HERCULES] (terminal_func): Added
   2424 	hercules support.
   2425 	(builtin_table) [SUPPORT_HERCULES]: Added a pointer to
   2426 	BUILTIN_TERMINAL.
   2427 	* stage2/char_io.c [SUPPORT_HERCULES]: Include <hercules.h>.
   2428 	[!STAGE1_5] (get_cmdline) [SUPPORT_HERCULES]: Added hercules
   2429 	support.
   2430 	[!STAGE1_5] (getkey) [SUPPORT_HERCULES]: Likewise.
   2431 	[!STAGE1_5] (checkkey) [SUPPORT_HERCULES]: Likewise.
   2432 	(grub_putchar) [SUPPORT_HERCULES]: Likewise.
   2433 	[!STAGE1_5] (gotoxy) [SUPPORT_HERCULES]: Likewise.
   2434 	[!STAGE1_5] (getxy) [SUPPORT_HERCULES]: Likewise.
   2435 	[!STAGE1_5] (cls) [SUPPORT_HERCULES]: Likewise.
   2436 	(set_attrib): New function.
   2437 	* stage2/shared.h (console_set_attrib): Declared.
   2438 	(TERMINAL_HERCULES): New macro.
   2439 	* stage2/stage2.c (run_menu) [SUPPORT_HERCULES]: Added hercules
   2440 	support.
   2441 	* stage2/hercules.h: New file.
   2442 	* stage2/hercules.c: Likewise.
   2443 	
   2444 2001-02-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   2445 
   2446 	From "Treutwein; Bernhard"
   2447 	<Bernhard.Treutwein (a] Verwaltung.Uni-Muenchen.DE>:
   2448 	* docs/grub.texi (DOS/Windows): Improved the readability.
   2449 	
   2450 2001-02-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   2451 
   2452 	* docs/grub.texi (Command-line and menu commands): Renamed to ...
   2453 	(General commands): ... this.
   2454 	
   2455 2001-02-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   2456 
   2457 	* stage2/asm.S [STAGE1_5] (chain_stage2): Save the second sector
   2458 	of stage2 in %ecx temporarily, and set %ebp to %ecx after
   2459 	switching to protected mode. I forgot that %ebp is broken by
   2460 	rot_to_real. Reported by Torvald Riegel
   2461 	<tr16 (a] inf.tu-dresden.de>.
   2462 	
   2463 2001-02-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   2464 
   2465 	* docs/grub-new.texi: Moved to ...
   2466 	* docs/grub.texi: ... here. And, include internals.texi.
   2467 	* docs/internals.texi: New file.
   2468 	* docs/prog-ref.texi: Removed.
   2469 	* docs/user-ref.texi: Likewise.
   2470 	* docs/tutorial.texi: Likewise.
   2471 	* docs/appendices.texi: Likewise.
   2472 	* docs/Makefile.am (grub_TEXINFOS): Removed prog-ref.texi,
   2473 	user-ref.texi, tutorial.texi, and appendices.texi. Added
   2474 	internals.texi.
   2475 	
   2476 2001-02-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   2477 
   2478 	From Erik Schoenfelder <schoenfr (a] gaertner.de>:
   2479 	* stage2/shared.h (LINUX_INITRD_MAX_ADDRESS): Changed from
   2480 	0x3C000000 to 0x38000000.
   2481 	
   2482 2001-02-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   2483 
   2484 	* stage2/builtins.c (savedefault_func)
   2485 	[!SUPPORT_DISKLESS && !GRUB_UTIL]: Check if the version
   2486 	contained in the buffer matches to current one as well.
   2487 	
   2488 2001-02-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   2489 
   2490 	* stage2/builtins.c (savedefault_func)
   2491 	[!SUPPORT_DISKLESS && !GRUB_UTIL]: Check if the stage2 id is
   2492 	STAGE2_ID_STAGE2. Suggested by Jochen Hoenicke.
   2493 	
   2494 	* stage2/stage2.c (cmain): If DEFAULT_ENTRY is out of entries,
   2495 	reset DEFAULT_ENTRY to zero.
   2496 	
   2497 2001-02-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   2498 
   2499 	Make savedefault workable even with Stage 1.5. Reported by
   2500 	Thierry Laronde <thierry (a] cri74.org>.
   2501 	
   2502 	* grub/asmstub.c (chain_stage2): Added an additional argument,
   2503 	SECOND_SECTOR.
   2504 	* stage2/asm.S [STAGE1_5] (chain_stage2): Set %ebp to
   2505 	SECOND_SECTOR.
   2506 	* stage2/disk_io.c [STAGE1_5] (disk_read_hook): Defined.
   2507 	[STAGE1_5] (disk_read_func): Likewise.
   2508 	(rawread) [STAGE1_5]: Handle DISK_READ_FUNC.
   2509 	(grub_read) [STAGE1_5]: Likewise.
   2510 	* stage2/fsys_ext2fs.c (ext2fs_read) [STAGE1_5]: Likewise.
   2511 	* stage2/fsys_fat.c (fat_read) [STAGE1_5]: Likewise.
   2512 	* stage2/fsys_ffs.c (ffs_read) [STAGE1_5]: Likewise.
   2513 	* stage2/fsys_minix.c (minix_read) [STAGE1_5]: Likewise.
   2514 	* stage2/fsys_reiserfs.c (reiserfs_read) [STAGE1_5]: Likewise.
   2515 	
   2516 2001-02-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   2517 
   2518 	* netboot/config.c [GRUB && INCLUDE_PCI] (pci_dispatch_table):
   2519 	New structure.
   2520 	[GRUB && INCLUDE_PCI] (PCI_NIC): New variable.
   2521 	(eth_probe) [GRUB && INCLUDE_PCI]: If a PCI NIC candidate is
   2522 	present, probe it first.
   2523 	
   2524 2001-01-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2525 
   2526 	From Danilo Godec <danci (a] agenda.si>:
   2527 	* stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_RAID): New macro.
   2528 	* stage2/fsys_ext2fs.c (ext2fs_mount): Add a check for
   2529 	PC_SLICE_LINUX_RAID.
   2530 	
   2531 2001-01-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2532 
   2533 	From Bernhard Treutwein
   2534 	<Bernhard.Treutwein (a] Verwaltung.Uni-Muenchen.DE>:
   2535 	* docs/grub-new.texi (DOS/Windows): Made more readable.
   2536 	
   2537 2001-01-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2538 
   2539 	* docs/multiboot.texi: Start reorganizing Multiboot
   2540 	Specification.
   2541 	
   2542 2001-01-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   2543 
   2544 	From Thierry Laronde <thierry.laronde (a] polynum.com>:
   2545 	* docs/user-ref.texi (Command-line and menu commands): Update
   2546 	the description about setkey.
   2547 	* stage2/builtins.c (setkey_func): When checking if TO_KEY and
   2548 	FROM_KEY are specified, see *TO_KEY and *FROM_KEY instead of
   2549 	TO_KEY and FROM_KEY, respectively.
   2550 	
   2551 2001-01-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   2552 
   2553 	From Thierry Laronde <thierry.laronde (a] polynum.com>:
   2554 	* util/grub-md5-crypt.in (prefix): New variable.
   2555 	(exec_prefix): Likewise.
   2556 	(sbindir): Likewise.
   2557 	
   2558 2001-01-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   2559 
   2560 	* docs/multiboot.h [__ELF__] (MULTIBOOT_HEADER_FLAGS): Defined
   2561 	as 0x00000003 instead of 0x00010003.
   2562 	* docs/boot.S (multiboot_header) [__ELF__]: Don't define a.out
   2563 	kludge information.
   2564 	
   2565 	* docs/Makefile.am (EXTRA_PROGRAMS): New variable.
   2566 	[BUILD_EXAMPLE_KERNEL] (noinst_DATA): Removed.
   2567 	[BUILD_EXAMPLE_KERNEL] (noinst_PROGRAMS): Changed to kernel.
   2568 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_SOURCES): Renamed to ...
   2569 	[BUILD_EXAMPLE_KERNEL] (kernel_SOURCES): ... this.
   2570 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_CFLAGS): Renamed to ...
   2571 	[BUILD_EXAMPLE_KERNEL] (kernel_CFLAGS): ... this.
   2572 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_LDFLAGS): Renamed to ...
   2573 	[BUILD_EXAMPLE_KERNEL] (kernel_LDFLAGS): ... this.
   2574 	[BUILD_EXAMPLE_KERNEL] (kernel): Removed.
   2575 	[BUILD_EXAMPLE_KERNEL] (boot.o): New dependency.
   2576 	(CLEANFILES): New variable.
   2577 	
   2578 2001-01-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   2579 
   2580 	* stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): Always
   2581 	print current network configuration.
   2582 	[SUPPORT_NETBOOT] (tftpserver_func): Use ifconfig instead of
   2583 	arp_server_override.
   2584 	* netboot/main.c (arp_server_override): Removed.
   2585 	* netboot/etherboot.h (arp_server_override): Likewise.
   2586 
   2587 2001-01-11  Eugene Doudine  <dudin (a] np.nk.nornik.ru>
   2588 	
   2589 	* stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): New
   2590 	function to configure network interface from command line.
   2591 	[SUPPORT_NETBOOT] (builtin_ifconfig): New variable.
   2592 	[SUPPORT_NETBOOT] (builtin_table): Added a pointer to
   2593 	BUILTIN_IFCONFIG.
   2594 	* netboot/main.c (ifconfig): New function.
   2595 	* netboot/etherboot.h (ifconfig): Added the prototype.
   2596 	
   2597 2001-01-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   2598 
   2599 	* docs/Makefile.am [BUILD_EXAMPLE_KERNEL] (noinst_DATA): New
   2600 	variable.
   2601 	[BUILD_EXAMPLE_KERNEL] (noinst_PROGRAMS): Likewise.
   2602 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_SOURCES): Likewise.
   2603 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_CFLAGS): Likewise.
   2604 	[BUILD_EXAMPLE_KERNEL] (kernel_exec_LDFLAGS): Likewise.
   2605 	[BUILD_EXAMPLE_KERNEL] (kernel): New target.
   2606 	* configure.in (--enable-example-kernel): New option.
   2607 
   2608 	* docs/kernel.c (cmain): Cast unsigned long variables to
   2609 	unsigned explicitly, to suppress GCC warnings.
   2610 	
   2611 2001-01-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   2612 
   2613 	* stage2/shared.h (BOOTSEC_BPB_HIDDEN_SECTORS): New macro.
   2614 	
   2615 	* stage2/builtins.c (chainloader_func): If CURRENT_PARTITION is
   2616 	FAT, set the hidden sectors field of the BPB to PART_START, to
   2617 	avoid a Windows bug which affects only when Windows is booted
   2618 	from a logical partition. And, clear ERRNUM after testing if a
   2619 	partition is FAT, because open_partition or fat_mount may set
   2620 	ERRNUM. Reported by Ingo Korb <ingo (a] akana.de>.
   2621 	
   2622 2001-01-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   2623 
   2624 	* stage2/builtins.c (boot_func): In the chain-loading mode,
   2625 	clear the active flag of each of the loaded partition entries,
   2626 	and then set the active flag of the booted partition image.
   2627 	
   2628 2001-01-04  Jochen Hoenicke  <jochen (a] gnu.org>
   2629 
   2630 	* stage2/builtins.c (embed_func): Call open_partition() even for
   2631  	MBR, so that part_start is correct.  This fixes a bug reported by
   2632  	Matthias Granberry <matthias (a] slurpee.org>.
   2633 	
   2634 2000-12-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2635 
   2636 	* stage2/disk_io.c (make_saved_active): Change the variable name
   2637 	``MBR'' to lower case.
   2638 	(set_partition_hidden_flag): Likewise.
   2639 	
   2640 2000-12-20  Jochen Hoenicke  <jochen (a] gnu.org>
   2641 
   2642 	From Cedric Ware <ware (a] com.enst.fr>:
   2643 	* stage2/fsys_ext2.c (ext2fs_mount): Detect ext2 partitions in
   2644 	a OpenBSD/NetBSD FS_EXT2FS slice.
   2645 	* stage2/pc_slice.h (FS_ADOS): New Macro from OpenBSD/NetBSD.
   2646 	(FS_HFS): Likewise.
   2647 	(FS_FILECORE): Likewise.
   2648 	(FS_EXT2FS): Likewise.
   2649 	
   2650 2000-12-17  Jochen Hoenicke  <jochen (a] gnu.org>
   2651 
   2652 	* stage2/disk_io.c (rawread): Check if there is a EZD partition
   2653 	and remap sector 0 to sector 1 like EZ-BIOS does.
   2654 	(rawwrite): New function to write to disk.  Also does EZD
   2655 	remapping.
   2656 	(devwrite): New function.  Does the special remapping to
   2657 	partitions needed for linux.  This contains the code that was
   2658 	previously duplicated in embed_func and install_func at several
   2659 	places.
   2660 	(make_saved_active): Use rawwrite. Don't use SCRATCHSEG, as it is
   2661 	needed by devwrite.
   2662 	(set_partition_hidden_flag): Likewise.	
   2663 	* stage2/disk_io.h (rawwrite): New function.
   2664 	(devwrite): Likewise.
   2665 	* stage2/pc_slice.h (PC_SLICE_TYPE_EZD): New macro.
   2666 	* stage2/builtins.c (embed_info): New variable to store the
   2667 	position of the embedded stage1_5 for setup_func.
   2668 	(embed_func): Don't embed after the MBR if an EZ-BIOS is detected
   2669 	there.  Use the new devwrite method.  If embedding is successful
   2670 	store position in embed_info.
   2671 	(install_func): Use devwrite.  Don't use SCRATCHSEG.
   2672 	(partnew_func): Use rawwrite.  Don't use SCRATCHSEG.
   2673 	(parttype_func): Likewise.
   2674 	(savedefault_func): Likewise.
   2675 	(setup_func): New nested function embed_stage1_5.  Stage1_5 is now
   2676 	also be embedded into filesystems which supports that.
   2677 	
   2678 2000-12-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   2679 
   2680 	* stage2/builtins.c (chainloader_func): Set ERRNUM to
   2681 	ERR_EXEC_FORMAT, when ERRNUM is ERR_NONE, even if grub_read
   2682 	fails in reading one sector.
   2683 	
   2684 2000-12-14  OKUJI Yoshinori  <okuji (a] gnu.org>
   2685 
   2686 	* docs/prog-ref.texi (Partition types): Rewrite the footnotes.
   2687 	Suggested by Ralf.Medow (a] t-online.de (Ralf Medow).
   2688 	
   2689 2000-12-14  OKUJI Yoshinori  <okuji (a] gnu.org>
   2690 
   2691 	From Erik Schoenfelder <schoenfr (a] gaertner.de>:
   2692 	* util/grub-install.in (convert): Revised the fix for floppy
   2693 	device handling.
   2694 	
   2695 2000-12-14  OKUJI Yoshinori  <okuji (a] gnu.org>
   2696 
   2697 	From HORIKAWA Kazunori <kaz-hori (a] tkd.att.ne.jp>:
   2698 	* stage2/bios.c (get_diskinfo): Append 16 bytes dummy data to
   2699 	DRP, because the BIOS of Thinkpad X20 write a garbage beyond the
   2700 	size of the structure.
   2701 	
   2702 2000-12-09  Jochen Hoenicke  <jochen (a] gnu.org>
   2703 
   2704 	* stage2/disk_io.c (next_partition): Mask out bsd partition sub
   2705 	type when checking if last partition was a bsd partition.
   2706 	Reported by Heikki Vatiainen <hessu (a] cs.tut.fi>.
   2707 	
   2708 2000-12-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   2709 
   2710 	From Leendert Meyer <leen.meyer (a] home.nl>:
   2711 	* util/grub-install.in (convert): If a floppy device is
   2712 	specified, remove everything from $tmp_part.
   2713 	
   2714 2000-12-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   2715 
   2716 	* lib/device.c [__linux__] (write_to_partition): Use strcpy
   2717 	instead of strcat, to overwrite "/disc". Reported by Thiago
   2718 	Macieira <thiagom (a] mail.com>.
   2719 	
   2720 2000-12-05  Jochen Hoenicke  <jochen (a] gnu.org>
   2721 
   2722 	* stage2/fsys_minix.c (minix_mount): Corrected the check for
   2723 	IS_PC_SLICE_TYPE_MINIX; minix was only working if slice type was
   2724 	wrong! Reported by Ralf Medow <ralf.medow (a] t-online.de>.
   2725 	
   2726 2000-11-27  Jochen Hoenicke  <jochen (a] gnu.org>
   2727 
   2728 	* stage2/fsys_reiserfs.c: Handle items with old version key on
   2729 	new version reiserfs partition.
   2730 	(K_OFFSET): Removed.
   2731 	(IH_KEY_OFFSET): New Macro, which checks item head version.
   2732 	(IH_KEY_ISOFFSET): Likewise.
   2733 	(reiserfs_read): Use new macros.
   2734 	(reiserfs_dir): Fixed version check for >4GB stat entries.
   2735 	
   2736 2000-11-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2737 
   2738 	* stage2/common.c (init_bios_info) [!STAGE1_5]: Don't call
   2739 	track_int13, because the current implementation hangs up in some
   2740 	environments.
   2741 	
   2742 2000-11-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2743 
   2744 	* grub/asmstub.c (serial_init) [!O_SYNC]: Don't specify O_SYNC
   2745 	to open SERIAL_DEVICE.
   2746 	(serial_init) [O_FSYNC]: Specify O_FSYNC to open SERIAL_DEVICE.
   2747 	Reported by Farid Hajji <farid.hajji (a] ob.kamp.net>.
   2748 	
   2749 2000-11-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2750 
   2751 	From Vesa Jaaskelainen <jaaskela (a] tietomyrsky.fi>:
   2752 	* stage2/builtins.c (testvbe_func): Don't set the bit 14 of a
   2753 	VBE mode number explicitly when calling get_vbe_mode_info.
   2754 	(vbeprobe_func): Likewise.
   2755 	
   2756 2000-11-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2757 
   2758 	The code for the "INT 13H tracking technique" is somewhat
   2759 	simplified.
   2760 
   2761 	* stage2/asm.S [!STAGE1_5] (track_int13): Don't replace an int13
   2762 	handler with set_tf_int13_handler. Instead, track_int13 itself
   2763 	emulates an int13 interrupt.
   2764 	[!STAGE1_5] (set_tf_int13_handler): Removed.
   2765 	[!STAGE1_5] (int1_handler): Use movzbw instead of xorb and movb.
   2766 	
   2767 2000-11-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   2768 
   2769 	* acconfig.h (PRESET_MENU_STRING): New entry.
   2770 	* acinclude.m4 (grub_DEFINE_FILE): New M4 macro.
   2771 	* configure.in (--enable-preset-menu): New option.
   2772 	* stage2/stage2.c [PRESET_MENU_STRING] (preset_menu): New
   2773 	variable.
   2774 	[PRESET_MENU_STRING] (preset_menu_offset): Likewise.
   2775 	[PRESET_MENU_STRING] (open_preset_menu): New function.
   2776 	[PRESET_MENU_STRING] (read_from_preset_menu): Likewise.
   2777 	[PRESET_MENU_STRING] (close_preset_menu): Likewise.
   2778 	[!PRESET_MENU_STRING] (open_preset_menu): New macro.
   2779 	[!PRESET_MENU_STRING] (read_from_preset_menu): Likewise.
   2780 	[!PRESET_MENU_STRING] (close_preset_menu): Likewise.
   2781 	(get_line_from_config): Accept a new argument READ_FROM_FILE.
   2782 	If it is false, read data from the preset menu instead.
   2783 	(cmain): If grub_open fails in opening the configuration file,
   2784 	then try to open the preset menu.
   2785 	
   2786 2000-11-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   2787 
   2788 	From Jan Fricke <fricke (a] uni-greifswald.de>:
   2789 	* stage2/asm.S [!STAGE1_5] (set_vbe_mode): Add a missing `$'
   2790 	prefix.
   2791 	
   2792 2000-11-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   2793 
   2794 	* stage2/bios.c (get_diskinfo): If BIOS supports LBA but doesn't
   2795 	return the correct total number of sectors, compute this by
   2796 	C/H/S returned by get_diskinfo_int13_extensions instead of
   2797 	get_diskinfo_standard.
   2798 	
   2799 2000-11-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   2800 
   2801 	* stage2/disk_io.c (make_saved_active): Set ERRNUM to
   2802 	ERR_DEV_VALUES instead of ERR_NO_PART, when the save partition
   2803 	is not a primary partition.
   2804 	
   2805 2000-11-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   2806 
   2807 	* docs/user-ref.texi (Features): Update the URL of grub/98.
   2808 	
   2809 2000-11-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   2810 
   2811 	VBE support is _partially_ implemented.
   2812 	
   2813 	* stage2/mb_header.h (multiboot_header): Added new fields,
   2814 	mode_type, width, height, and depth.
   2815 	(MULTIBOOT_FOUND): Check if MULTIBOOT_VIDEO_MODE is set, and
   2816 	check if LEN is greater than or equal to 48, if set.
   2817 	(MULTIBOOT_UNSUPPORTED): Set to 0x0000FFF8.
   2818 	(MULTIBOOT_VIDEO_MODE): New macro.
   2819 	* stage2/mb_info.h (multiboot_info): Added new fields,
   2820 	vbe_control_info, vbe_mode_info, vbe_mode, vbe_interface_seg,
   2821 	vbe_interface_off, and vbe_interface_len.
   2822 	(MB_INFO_VIDEO_INFO): New macro.
   2823 	
   2824 	* stage2/shared.h (vbe_controller): New structure.
   2825 	(vbe_mode): Likewise.
   2826 	(get_vbe_controller_info): Declared.
   2827 	(get_vbe_mode_info): Likewise.
   2828 	(set_vbe_mode): Likewise.
   2829 	* stage2/asm.S [!STAGE1_5] (get_vbe_controller_info): New
   2830 	function.
   2831 	[!STAGE1_5] (get_vbe_mode_info): Likewise.
   2832 	[!STAGE1_5] (set_vbe_mode): Likewise.
   2833 	* grub/asmstub.c (get_vbe_controller_info): Likewise.
   2834 	(get_vbe_mode_info): Likewise.
   2835 	(set_vbe_mode): Likewise.
   2836 
   2837 	* stage2/builtins.c (testvbe_func): New function.
   2838 	(builtin_testvbe): New variable.
   2839 	(vbeprobe_func): New function.
   2840 	(builtin_vbeprobe): New variable.
   2841 	(builtin_table): Added pointers to BUILTIN_TESTVBE and
   2842 	BUILTIN_VBEPROBE.
   2843 	
   2844 2000-11-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   2845 
   2846 	* docs/help2man: Copied from help2man-1.23.
   2847 	
   2848 2000-10-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   2849 
   2850 	* stage2/asm.S [STAGE1_5]: Don't include setjmp.S or apm.S.
   2851 	
   2852 2000-10-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   2853 
   2854 	* lib/device.c (read_device_map): Don't parse a line, if it is
   2855 	empty. Reported by Holger Bauer <bauer (a] itsm.uni-stuttgart.de>.
   2856 	
   2857 2000-10-25  Jochen Hoenicke  <jochen (a] gnu.org>
   2858 
   2859 	* stage2/builtins.c (md5crypt_func): Use all bits of currticks ()
   2860 	to generate the salt.  The old code would often produce the same
   2861 	one character salt.
   2862 
   2863 2000-10-25  OKUJI Yoshinori  <okuji (a] gnu.org>
   2864 
   2865 	* stage2/apm.S (get_apm_info): Fix a serious typo: prot_to_real
   2866 	-> real_to_prot. Umm, I can't understand why it worked for me!
   2867 	
   2868 2000-10-24  Jochen Hoenicke  <jochen (a] gnu.org>
   2869 
   2870 	* stage2/builtins.c (setup_func): When invoking install with an
   2871  	embedded stage1_5 give the path to menu.lst as real_config_file.
   2872 
   2873 2000-10-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   2874 
   2875 	* docs/multiboot.texi: Upgraded to 0.6.92.
   2876 	(Boot information format): Re-designed the graphics table.
   2877 	
   2878 2000-10-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2879 
   2880 	* docs/tutorial.texi: Miscellaneous updates.
   2881 	* docs/user-ref.texi: Likewise.
   2882 	* docs/appendices.texi: Likewise.
   2883 	
   2884 2000-10-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2885 
   2886 	* util/grub-install.in (usage): Removed unnecessary commas.
   2887 	
   2888 	* util/grub-md5-crypt.in: New file.
   2889 	* util/Makefile.am (sbin_SCRIPTS): Added grub-md5-crypt.
   2890 	* configure.in (AC_OUTPUT): Added util/grub-md5-crypt.
   2891 	* docs/Makefile.am (man_MANS): Added grub-md5-crypt.8.
   2892 	[MAINTAINER_MODE] ($(srcdir)/grub-md5-crypt.8): New target.
   2893 	* docs/grub-md5-crypt.8: New file. Generated by help2man.
   2894 
   2895 	* docs/grub.texi (grub-md5-crypt): New direntry.
   2896 	(Invoking grub-md5-crypt): New entry.
   2897 	* docs/user-ref.texi (Invoking grub-md5-crypt): New chapter.
   2898 	
   2899 2000-10-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   2900 
   2901 	From Matthias Granberry <matthias (a] slurpee.org>:
   2902 	* util/grub-install.in (convert): Added backslashes into
   2903 	continuous lines.
   2904 	
   2905 2000-10-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   2906 
   2907 	* stage2/md5.c (check_md5_password): Removed.
   2908 	(md5_password): New function. Mostly copied from
   2909 	check_md5_password.
   2910 	(md5_init): Made static.
   2911 	(md5_update): Likewise.
   2912 	(md5_final): Likewise.
   2913 	* stage2/md5.h (check_md5_password): Changed to just a macro.
   2914 	(md5_password): Declared.
   2915 	(make_md5_password): New macro.
   2916 	* stage2/char_io.c [!STAGE1_5] (grub_strstr): Rewriten, because
   2917 	it was too buggy.
   2918 	* stage2/builtins.c [USE_MD5_PASSWORDS] (md5crypt_func): New
   2919 	function.
   2920 	[USE_MD5_PASSWORDS] (builtin_md5crypt): New variable.
   2921 	(builtin_table) [USE_MD5_PASSWORDS]: Added a pointer to
   2922 	BUILTIN_MD5CRYPT.
   2923 	* docs/tutorial.texi (Security): Added a paragraph about
   2924 	md5crypt.
   2925 	
   2926 2000-10-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   2927 
   2928 	* docs/user-ref.texi: Fixed several typos and some inappropriate
   2929 	texinfo commands, and update the descriptions about some
   2930 	commands.
   2931 	
   2932 2000-10-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   2933 
   2934 	* stage2/builtins.c (displayapm_func): New function.
   2935 	(builtin_displayapm): New variable.
   2936 	(builtin_table): Added a pointer to BUILTIN_DISPLAYAPM.
   2937 	
   2938 2000-10-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   2939 
   2940 	APM BIOS table support is added, based on a patch by Matt Yourst
   2941 	<yourst (a] mit.edu>.
   2942 	
   2943 	* docs/multiboot.texi (Boot information format): Added the
   2944 	definition of APM table format.
   2945 	
   2946 	* stage2/mb_info.h (apm_info): New structure.
   2947 	(multiboot_info): Added a new element, apm_table.
   2948 	(MB_INFO_APM_TABLE): New macro.
   2949 	* stage2/asm.S (apm_bios_info): New variable.
   2950 	Include "apm.S".
   2951 	* stage2/apm.S: New file.
   2952 	* stage2/common.c (init_bios_info) [!STAGE1_5]: Added APM BIOS
   2953 	table support.
   2954 	* stage2/shared.h (apm_bios_info): Declared.
   2955 	(get_apm_info): Likewise.
   2956 	* stage2/Makefile.am (EXTRA_DIST): Added apm.S.
   2957 	* grub/asmstub.c (apm_bios_info): New variable.
   2958 	(get_apm_info): New function.
   2959 	
   2960 2000-10-19  OKUJI Yoshinori  <okuji (a] gnu.org>
   2961 
   2962 	Segregate functions which are copyrighted differently.
   2963 	
   2964 	* stage2/setjmp.S: New file.
   2965 	* stage2/Makefile.am (EXTRA_DIST): Added setjmp.S.
   2966 	* stage2/asm.S: Include "setjmp.S".
   2967 	(grub_setjmp): Moved to ...
   2968 	* stage2/setjmp.S (grub_setjmp): ... here.
   2969 	* stage2/asm.S (grub_longjmp): Moved to ...
   2970 	* stage2/setjmp.S (grub_longjmp): ... here.
   2971 	
   2972 2000-10-18  OKUJI Yoshinori  <okuji (a] gnu.org>
   2973 
   2974 	* stage2/Makefile.am (noinst_HEADERS): Added md5.h. Reported by
   2975 	Volker Augustin <Volker.Augustin (a] stud.uni-regensburg.de>.
   2976 	
   2977 2000-10-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   2978 
   2979 	* configure.in (--disable-md5password): Renamed to ...
   2980 	(--disable-md5-password): ... this. Just for my preference.
   2981 	
   2982 2000-10-17  Jochen Hoenicke  <jochen (a] gnu.org>
   2983 
   2984 	Added MD5 passwords and extended password command:
   2985 	
   2986 	* configure.in (--disable-md5password): New option.
   2987 	* stage2/Makefile.am (libgrub_a_SOURCES): Added md5.c.
   2988 	(pre_stage2_exec_SOURCES): Likewise.
   2989 	* stage2/md5.c: New file.
   2990 	* stage2/shared.h (password_t): New type.
   2991 	(password_type): New variable.
   2992 	(BUILTIN_HIDDEN): New flag, describing that a command should not
   2993 	be printed when booting the entry.
   2994 	(check_password): New function.
   2995 	* stage2/cmdline.c (run_script): Don't show commands that have
   2996 	the hidden attribute.
   2997 	* stage2/builtins.c (password_type): New variable.
   2998 	(check_password): New function.
   2999 	(password_func): Handle the --md5 option and set password_type.
   3000 	Check if in CMDLINE or SCRIPT mode and ask password immediately.
   3001 	(builtin_password): Also allow passwords in CMDLINE mode, make
   3002 	it hidden, so the user wont see the password he should enter.
   3003 	Changed command description.
   3004 	(builtin_pause): Make the command hidden.
   3005 	(pause_func): Print argument, since the command is now hidden.
   3006 	* stage2/stage2.c (run_menu): Call check_password to check password.
   3007 	* docs/tutorial.texi (Security): Describe the new features of the
   3008 	password commands.
   3009 	* docs/user-ref.texi (Menu-specific commands): password command
   3010  	moved ...
   3011 	(Command-line and menu commands): ... to here.  New features 
   3012 	doumented.
   3013 	
   3014 2000-10-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   3015 
   3016 	* stage2/builtins.c (setkey_func): Clear the all elements of
   3017 	BIOS_KEY_MAP and ASCII_KEY_MAP instead of only the first
   3018 	elements, when TO_KEY is NULL.
   3019 	
   3020 2000-10-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   3021 
   3022 	* stage2/boot.c (load_image): When handling Linux cmdline, don't
   3023 	copy a null character from SRC to DEST, because this inserted an
   3024 	extra null character into the cmdline. Reported by Robert
   3025 	Bihlmeyer <robbe (a] orcus.priv.at>.
   3026 	
   3027 2000-10-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   3028 
   3029 	Some of the new Multiboot features are supported. APM support
   3030 	and VESA support are not strictly defined or implemented yet.
   3031 	
   3032 	* docs/multiboot.texi (Top): Increase the version number.
   3033 	(Boot information format): Changed the drive information format,
   3034 	because it was not straightforward.
   3035 	
   3036 	* grub/asmstub.c (io_map): New variable.
   3037 	(track_int13): New function.
   3038 	(get_rom_config_table): Likewise.
   3039 	* stage2/stage2.c (cmain): Set CONFIG_ENTRIES to MBI.DRIVES_ADDR
   3040 	+ MBI.DRIVES.LENGTH instead of MBI.MMAP_ADDR + MBI.MMAP_LENGTH.
   3041 	* stage2/common.c (init_bios_info) [!STAGE1_5]: Added support
   3042 	for drive info, ROM config table, and boot loader name features
   3043 	of the Multiboot Specification.
   3044 	* stage2/mb_info.h (drive_info): New structure.
   3045 	(MB_DI_CHS_MODE): New macro.
   3046 	(MB_DI_LBA_MODE): Likewise.
   3047 	(multiboot_info): Added drives_length, drives_addr,
   3048 	config_table, and boot_loader_name.
   3049 	(MB_INFO_DRIVE_INFO): New macro.
   3050 	(MB_INFO_CONFIG_TABLE): Likewise.
   3051 	(MB_INFO_BOOT_LOADER_NAME): Likewise.
   3052 	* stage2/asm.S (get_rom_config_table): New function.
   3053 	* stage2/shared.h (get_rom_config_table): Declared.
   3054 	
   3055 2000-10-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   3056 
   3057 	* util/grub-install.in (convert): Check only if the file exists,
   3058 	instead of checking if the file is a block device as well.
   3059 	Because, in a sane operating system, it should be a char device
   3060 	but not a block device (unlike Linux), and it may be a symbolic
   3061 	link (this can happen if you use Linux's devfs without devfsd).
   3062 	(recheck): New variable. Set to "no" by default, and set to
   3063 	"yes", if you specify the new option ``--recheck''. If $recheck
   3064 	is "yes", remove the device map file, if present.
   3065 	
   3066 2000-10-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   3067 
   3068 	From Roderich Schupp:
   3069 	* lib/device.c: Include <limits.h>.
   3070 	[__linux__] (have_devfs): New function.
   3071 	(get_floppy_disk_name) [__linux__]: If devfs is supported, use
   3072 	the name "/dev/floppy/N" instead.
   3073 	(init_device_map) [__linux__]: If devfs is supported, use
   3074 	"/dev/discs/discN" instead.
   3075 	[__linux__] (write_to_partition): Change the size of DEV to
   3076 	PATH_MAX instead of 64.
   3077 	If devfs is supported, replace "/disc" in the device name with
   3078 	"/part".
   3079 	
   3080 2000-10-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   3081 
   3082 	From Roderich Schupp <rsch (a] ExperTeam.de>:
   3083 	* util/grub-install.in (convert): Added support for "native"
   3084 	devfs device names.
   3085 	
   3086 2000-10-14  OKUJI Yoshinori  <okuji (a] gnu.org>
   3087 
   3088 	* docs/tutorial.texi (Serial terminal): Fixed a typo.
   3089 	* docs/user-ref.texi (GRUB images): New chapter.
   3090 	* docs/grub.texi: Added an entry for the chapter "GRUB images".
   3091 	
   3092 2000-10-14  OKUJI Yoshinori  <okuji (a] gnu.org>
   3093 
   3094 	* stage2/builtins.c (setkey_func): If TO_KEY is NULL (i.e. the
   3095 	user specifies no argument), clear BIOS_KEY_MAP and
   3096 	ASCII_KEY_MAP.
   3097 	If TO_KEY is non-NULL but FROM_KEY is NULL, set ERRNUM to
   3098 	ERR_BAD_ARGUMENT and return one.
   3099 	
   3100 2000-10-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   3101 
   3102 	* docs/grub.texi: Added an entry for the new chapter "Security",
   3103 	and the order of the chapters in the Tutorial Manual was
   3104 	changed.
   3105 	* docs/tutorial.texi (Configuration): Moved to right after the
   3106 	chapter "Booting".
   3107 	(Security): New chapter.
   3108 	
   3109 2000-10-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   3110 
   3111 	From Alessandro Rubini:
   3112 	* util/grub-install.in (root_device): Use the regular expression
   3113 	's%.*\(/dev/[^ 	]*\).*%\1%' instead of
   3114 	's%.*\(/dev/[a-z0-9]*\).*%\1%'.
   3115 	(bootdir_device): Likewise.
   3116 	(grubdir_device): Likewise.
   3117 	
   3118 2000-10-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   3119 
   3120 	* stage2/start.S (copy_buffer): Use pusha and popa instead of
   3121 	pushing and poping %di and %si individually, to reduce the code
   3122 	size and save %cx as well. Reported by Herbert Nachtnebel
   3123 	<nachtneb (a] iaee.tuwien.ac.at>.
   3124 	
   3125 2000-10-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   3126 
   3127 	From Daniel Pittman <daniel (a] rimspace.net>:
   3128 	* stage2/builtins.c (setkey_func): Check if
   3129 	KEYSYM_TABLE[I].UNSHIFTED_NAME and KEYSYM_TABLE[I].SHIFTED_NAME
   3130 	are not NULLs, before calling grub_strcmp.
   3131 	
   3132 2000-10-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   3133 
   3134 	* util/grub-install.in (grub_prefix): New variable. The default
   3135 	is "/boot/grub".
   3136 	If the user has a separate boot partition, set grub_prefix
   3137 	instead of grubdir to "/grub".
   3138 	When running the command "setup", specify $grub_prefix instead
   3139 	of $grubdir to the option "--prefix".
   3140 	Report by Thierry Laronde.
   3141 	
   3142 2000-10-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   3143 
   3144 	* stage2/builtins.c (find_func): Clear ERRNUM after the last
   3145 	call of next_partition, because it always sets ERRNUM. Reported
   3146 	by Thierry Laronde <thierry.laronde (a] polynum.com>.
   3147 	
   3148 2000-10-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   3149 
   3150 	* lib/device.c [__linux__] (write_to_partition): Open DEV with
   3151 	O_RDWR instead of O_ORONLY.
   3152 	
   3153 2000-10-06  Alessandro Rubini  <rubini (a] gnu.org>
   3154 
   3155 	* docs/user-ref.texi (Commands): Added missing commands and
   3156 	reworded part of the text.
   3157 
   3158 	* stage2/builtins.c (serial_func): Unswap the setting of "speed"
   3159 	and "port".
   3160 
   3161 2000-10-06  OKUJI Yoshinori  <okuji (a] gnu.org>
   3162 
   3163 	* stage2/builtins.c (setup_func): Append "... " to the
   3164 	messages when calling embed_func and install_func, and print
   3165 	the result.
   3166 	Don't jump to the label "fail", even when embed_func failed.
   3167 	
   3168 2000-10-05  Gordon Matzigkeit  <gord (a] fig.org>
   3169 
   3170 	* stage2/disk_io.c (real_open_partition): Make sure that buf_geom
   3171 	corresponds to the current drive before using it.
   3172 
   3173 	* lib/device.c (get_drive_geometry): Use fstat if the native
   3174 	geometry methods fail, such as when the drive is mapped to a
   3175 	regular file.
   3176 
   3177 	* docs/tutorial.texi: Add `@kbd{...}' to examples in order to
   3178 	differentiate between command output and characters the user
   3179 	should type.
   3180 	* docs/user-ref.texi: Likewise.
   3181 
   3182 2000-10-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   3183 
   3184 	* docs/grub.texi: Added an entry for the chapter "Serial
   3185 	terminal".
   3186 	* docs/tutorial.texi (Serial terminal): New chapter.
   3187 	
   3188 2000-10-04  Gordon Matzigkeit  <gord (a] fig.org>
   3189 
   3190 	* util/grub-image (VERSION): Fix version calculation to tolerate
   3191 	`(GNU GRUB 0.5.96)'-style versions.
   3192 
   3193 	* docs/grub.texi: Remove braces from `@unnumbered' sections so
   3194 	that texi2html doesn't complain.
   3195 
   3196 	* debian/rules: Build HTML documentation to appease the Debian
   3197 	masses.
   3198 
   3199 2000-10-04  OKUJI Yoshinori  <okuji (a] gnu.org>
   3200 
   3201 	* stage2/fsys_reiserfs.c (reiserfs_mount): Compare PART_LENGTH
   3202 	with SUPERBLOCK + (sizeof(super) >> SECTOR_BITS) instead of
   3203 	sizeof(struct reiserfs_super_block). Reported by Jochen
   3204 	Hoenicke.
   3205 	
   3206 2000-10-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   3207 
   3208 	* configure.in (AM_INIT_AUTOMAKE): The version number is set to
   3209 	0.5.97. This version number is a dummy, as we will never release
   3210 	0.5.97 actually.
   3211 	
   3212 2000-10-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   3213 
   3214 	* lib/device.c [__linux__]: Don't include <linux/cdrom.h>.
   3215 	[__linux__ && !CDROM_GET_CAPABILITY] (CDROM_GET_CAPABILITY):
   3216 	Defined as 0x5331.
   3217 	
   3218 2000-10-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   3219 
   3220 	* lib/device.c (get_drive_geometry) [__GNU__]: Get the number of
   3221 	total sectors by fstat. The rest are filled with arbitrary
   3222 	values.
   3223 	
   3224 2000-09-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3225 
   3226 	* util/grub-install.in (convert): The code for gnu* (i.e.
   3227 	GNU/Hurd) was rewritten, since it didn't work for BSD
   3228 	partitions.
   3229 	Use "$tmp_disk *$" instead of "$tmp_disk" to get the drive name.
   3230 	
   3231 2000-09-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3232 
   3233 	* stage2/fsys_reiserfs.c (reiserfs_mount): Check if the length
   3234 	of the partition is less than the size of a super block, before
   3235 	attempting to read the super block.
   3236 
   3237 	* grub/asmstub.c (console_putchar)
   3238 	[HAVE_LIBCURSES_H && REFRESH_IMMEDIATELY]: Call refresh, to ease
   3239 	debugging.
   3240 	
   3241 2000-09-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3242 
   3243 	Added two new commands, "partnew" and "parttype", based on the
   3244 	patch by Stefan Ondrejicka <ondrej (a] idata.sk>:
   3245 	* stage2/builtins.c (partnew_func): New function.
   3246 	(builtin_partnew): New variable.
   3247 	(parttype_func): New function.
   3248 	(builtin_parttype): New variable.
   3249 	(builtin_table): Added pointers to BUILTIN_PARTNEW and to
   3250 	BUILTIN_PARTTYPE.
   3251 	
   3252 2000-09-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   3253 
   3254 	* stage2/builtins.c (find_func): New variable GOT_FILE is set to
   3255 	one if FILENAME is found. Otherwise, it is set to zero.
   3256 	Clear ERRNUM at the end in the loop for floppies, to ensure that
   3257 	ERRNUM is cleared before examining hard disks.
   3258 	Rewrite the loop for hard disks using next_partitions, so this
   3259 	function now checks all partitions you have certainly.
   3260 	If GOT_FILE is non-zero, set ERRNUM to ERR_FILE_NOT_FOUND and
   3261 	return one.
   3262 	
   3263 2000-09-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   3264 
   3265 	* stage2/disk_io.c (check_BSD_parts): Removed.
   3266 	(next_partition): New function.
   3267 	(real_open_partition): Rewritten using next_partition.
   3268 	(set_device) [!STAGE1_5]: Skip a comma in DEVICE, even when the
   3269 	BSD partition is not specified.
   3270 	[!STAGE1_5] (print_completions): Don't append ')' if the
   3271 	partition is a PC slice which may have BSD partitions. Instead,
   3272 	try to complete the command-line with possible partitions.
   3273 	* stage2/shared.h (next_partition): Declared.
   3274 	
   3275 2000-09-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   3276 
   3277 	* configure.in (--enable-serial): Changed to ...
   3278 	(--disable-serial): ... this. Now the serial support is enabled
   3279 	by default.
   3280 	
   3281 2000-09-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   3282 
   3283 	* stage2/char_io.c [!STAGE1_5] (get_cmdline) [!SUPPORT_SERIAL]: 
   3284 	Don't check if the terminal is dumb. If the terminal is console,
   3285 	always use console functions.
   3286 	* stage2/builtins.c [!SUPPORT_NETBOOT] (bootp_func): Undefined.
   3287 	[!SUPPORT_NETBOOT] (builtin_bootp): Likewise.
   3288 	[!GRUB_UTIL] (device_func): Likewise.
   3289 	[!GRUB_UTIL] (builtin_device): Likewise.
   3290 	[!SUPPORT_NETBOOT] (dhcp_func): Likewise.
   3291 	[!SUPPORT_NETBOOT] (builtin_dhcp): Likewise.
   3292 	[!GRUB_UTIL] (quit_func): Likewise.
   3293 	[!GRUB_UTIL] (builtin_quit): Likewise.
   3294 	[!SUPPORT_NETBOOT] (rarp_func): Likewise.
   3295 	[!SUPPORT_NETBOOT] (builtin_rarp): Likewise.
   3296 	[!SUPPORT_SERIAL] (serial_func): Likewise.
   3297 	[!SUPPORT_SERIAL] (builtin_serial): Likewise.
   3298 	[!SUPPORT_SERIAL] (terminal_func): Likewise.
   3299 	[!SUPPORT_SERIAL] (builtin_terminal): Likewise.
   3300 	[!SUPPORT_NETBOOT] (tftpserver_func): Likewise.
   3301 	[!SUPPORT_NETBOOT] (builtin_tftpserver): Likewise.
   3302 	(builtin_table) [!SUPPORT_NETBOOT]: Removed the pointers to
   3303 	BUILTIN_BOOTP, BUILTIN_DHCP, BUILTIN_RARP, and
   3304 	BUILTIN_TFTPSERVER.
   3305 	(builtin_table) [!SUPPORT_SERIAL]: Removed the pointers to
   3306 	BUILTIN_SERIAL and BUILTIN_TERMINAL.
   3307 	(builtin_table) [!GRUB_UTIL]: Removed the pointers to
   3308 	BUILTIN_DEVICE and BUILTIN_QUIT.
   3309 	
   3310 2000-09-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   3311 
   3312 	* util/grub-install.in (bootdir_device): New variable. If
   3313 	$bootdir_device is not the same as $root_device, set root_device
   3314 	and grubdir to $bootdir_device and "/grub", respectively.
   3315 	Add --prefix=$grubdir into the command "setup".
   3316 	
   3317 2000-09-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   3318 
   3319 	Add --prefix=DIR to the command "setup".
   3320 	
   3321 	* stage2/builtins.c (setup_func): New nested function,
   3322 	check_file checks if the file FILE exists.
   3323 	Remove the prefix "/boot/grub" in STAGE1_5_MAP.
   3324 	Don't hardcode "/boot/grub/stage1", "/boot/grub/stage2", or
   3325 	"/boot/grub/menu.lst". Instead, check if ARG contains
   3326 	"--prefix=", and if specified, set PREFIX to the value.
   3327 	If not specified, check "/boot/grub/stage1" and, if not found,
   3328 	check "/grub/stage1". If a stage1 was found, set PREFIX to the
   3329 	directory which contains the stage1.
   3330 	
   3331 2000-09-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   3332 
   3333 	Add additional magic to avoid a bug in Linux. *sigh*
   3334 	
   3335 	* stage2/boot.c (load_image): Copy SRC to DEST first, and append
   3336 	a "mem=" option to DEST instead of prepending.
   3337 	
   3338 2000-09-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   3339 
   3340 	Reported by Alessandro Rubini:
   3341 	* stage2/fsys_minix.c (minix_mount): Check if CURRENT_SLICE is a
   3342 	partition type for minix fs, using the macro
   3343 	IS_PC_SLICE_TYPE_MINIX.
   3344 	* stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_MINIX): New macro.
   3345 	(IS_PC_SLICE_TYPE_MINIX): Likewise.
   3346 	
   3347 2000-09-09  Alessandro Rubini  <rubini (a] morgana.systemy.it>
   3348 
   3349 	* stage1/stage1.S (notification_string): Print "GRUB " instead
   3350 	of "stage1 ".
   3351 	* stage2/start.S [STAGE1_5] (notification_string): Print
   3352 	"Loading stage1.5" instead of "stage1.5 ".
   3353 	[!STAGE1_5] (notification_string): Print "Loading stage2"
   3354 	instead of "stage2 ".
   3355 	(notification_step): New label, followed by a string ".".
   3356 	(notification_done): New label, followed by a string "\r\n".
   3357 	(copy_buffer): Print NOTIFICATION_STEP after copying the buffer.
   3358 	(bootit): Print NOTIFICATION_DONE before restoring %dx.
   3359 	
   3360 2000-09-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   3361 
   3362 	From Alessandro Rubini:
   3363 	* configure.in (CPPFLAGS): Added -malign-jumps=1,
   3364 	-malign-loops=1 and -malign-functions=1.
   3365 	
   3366 2000-09-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   3367 
   3368 	From Hal Snyder <hal (a] vailsys.com>:
   3369 	* lib/device.c (get_drive_geometry) [__FreeBSD__ || __NetBSD__
   3370 	|| __OpenBSD__]: Call ioctl for FD instead of
   3371 	DISKS[DRIVE].FLAGS. This was a mistake when I segregated this
   3372 	function from asmstub.c.
   3373 	
   3374 2000-09-07  Alessandro Rubini  <rubini (a] gnu.org>
   3375 
   3376 	* docs/tutorial.texi: Fixed a few typos and minor imprecisions.
   3377 	* docs/prog-ref.texi: Likewise.
   3378 	* docs/user-ref.texi: Likewise.
   3379 
   3380 2000-09-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   3381 
   3382 	From Alessandro Rubini:
   3383 	* stage2/builtins.c (terminal_func): Rename TIMEOUT to TO, to
   3384 	suppress GCC warnings.
   3385 	* grub/asmstub.c (serial_checkkey): Likewise.
   3386 	
   3387 2000-09-06  OKUJI Yoshinori  <okuji (a] gnu.org>
   3388 
   3389 	* stage2/char_io.c [!STAGE1_5] (auto_fill): New variable.
   3390 	[!STAGE1_5] (get_cmdline): Save AUTO_FILL in SAVED_AUTO_FILL in
   3391 	the beginning and restore AUTO_FILL before return.
   3392 	Set AUTO_FILL to one and zero before and after calling
   3393 	print_completions, respectively.
   3394 	(grub_putchar) [!STAGE1_5]: Use a static variable COL to track
   3395 	the position of the cursor. If C is a carriage return, clear
   3396 	COL. If C is a backspace and COL is positive, decrease COL. If C
   3397 	is a printable character, increase COL. In this case, if
   3398 	AUTO_FILL is non-zero and COL is greater than or equal to 79,
   3399 	put a newline automatically.
   3400 	* stage2/shared.h (auto_fill): Declared.
   3401 	* stage2/stage2.c (run_menu): In the menu interface, disable the
   3402 	auto fill mode (i.e. set AUTO_FILL to zero), and enable it again
   3403 	when booting an entry.
   3404 	(cmain): Initialize AUTO_FILL (i.e. set it to one) in the
   3405 	beginning of the loop.
   3406 	
   3407 2000-09-06  OKUJI Yoshinori  <okuji (a] gnu.org>
   3408 
   3409 	Add support for "boot previously booted entry by default", based
   3410 	on the patch by Mike Meyer <mwm (a] mired.org>, but I've modified
   3411 	his patch thoroughly.
   3412 	
   3413 	* grub/asmstub.c (saved_entryno): New variable. This is a dummy.
   3414 	* stage1/stage1.h (COMPAT_VERSION_MINOR): Incremented.
   3415 	* stage2/asm.S (saved_entryno): New variable.
   3416 	(codestart) [!SUPPORT_DISKLESS]: Set INSTALL_SECOND_SECTOR to
   3417 	%ebp. %ebp is set in start.S.
   3418 	(install_second_sector): New variable.
   3419 	* stage2/builtins.c (current_entryno): New variable.
   3420 	(default_func) [!SUPPORT_DISKLESS]: If ARG is "saved", set
   3421 	DEFAULT_ENTRY to SAVED_ENTRYNO.
   3422 	(savedefault_func): New function.
   3423 	(builtin_savedefault): New variable.
   3424 	(builtin_table): Added a pointer to BUILTIN_SAVEDEFAULT.
   3425 	* stage2/shared.h (STAGE2_SAVED_ENTRYNO): New macro.
   3426 	(STAGE2_STAGE2_ID): Changed to 0x10.
   3427 	(STAGE2_FORCE_LBA): Chaged to 0x11.
   3428 	(STAGE2_VER_STR_OFFS): Changed to 0x12.
   3429 	(install_second_sector): Declared.
   3430 	(saved_entryno): Likewise.
   3431 	(current_entryno): Likewise.
   3432 	* stage2/stage2.c (run_menu): Set CURRENT_ENTRYNO to FIRST_ENTRY
   3433 	+ ENTRYNO, right before calling run_script.
   3434 	* stage2/start.S (start): Save the sector number of the second
   3435 	sector in %ebp.
   3436 	
   3437 2000-09-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   3438 
   3439 	* stage1/stage1.S (lba_mode) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
   3440 	Don't check for the geometry, since some BIOSes don't return the
   3441 	number of total sectors correctly, even if they have working LBA
   3442 	support.
   3443 	* stage2/start.S (lba_mode) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
   3444 	Likewise.
   3445 	* stage2/bios.c (biosdisk) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
   3446 	Likewise.
   3447 	Reported by Jan Fricke <fricke (a] uni-greifswald.de> and Pixel
   3448 	<pixel (a] mandrakesoft.com>.
   3449 	
   3450 2000-09-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   3451 
   3452 	From Alessandro Rubini <rubini (a] gnu.org>:
   3453 	* stage2/char_io.c (print_error) [!STAGE1_5]: Print ERRNUM like
   3454 	"Error 9: Unknown boot failure".
   3455 	(print_error) [STAGE1_5]: Don't print a colon.
   3456 	* util/grub-install.in: When checking if an error occurred, use
   3457 	the expression "Error [0-9]*: " instead of "Error: ".
   3458 	* docs/user-ref.texi (Stage1.5 errors): Updated, since the error
   3459 	form changed.
   3460 	
   3461 2000-09-04  OKUJI Yoshinori  <okuji (a] gnu.org>
   3462 
   3463 	* stage2/stage2.c (run_menu) [GRUB_UTIL]: Set DISP_UP and
   3464 	DISP_DOWN to ACS_UARROW and ACS_DARROW, respectively. Don't call
   3465 	grub_printf here.
   3466 	(run_menu) [!GRUB_UTIL]: Don't call grub_printf here. Instead,
   3467 	call it...
   3468 	(run_menu): ... here.
   3469 	* stage2/shared.h (ACS_ULCORNER): Always define this ourselves,
   3470 	whether your curses library has the definition.
   3471 	(ACS_URCORNER): Likewise.
   3472 	(ACS_LLCORNER): Likewise.
   3473 	(ACS_LRCORNER): Likewise.
   3474 	(ACS_HLINE): Likewise.
   3475 	(ACS_VLINE): Likewise.
   3476 	(ACS_LARROW): Likewise.
   3477 	(ACS_RARROW): Likewise.
   3478 	(ACS_UARROW): Likewise.
   3479 	(ACS_DARROW): Likewise.
   3480 
   3481 	* stage2/char_io.c [SUPPORT_SERIAL] (serial_cls): If the
   3482 	terminal is dumb, just put a newline.
   3483 	* stage2/builtins.c (terminal_func) [SUPPORT_SERIAL]: When
   3484 	choosing a terminal, don't set TERMINAL to the type of the
   3485 	terminal. Instead, apply a logical AND operation with
   3486 	TERMINAL_DUMB, since previous code brushed off the dumb
   3487 	attribute.
   3488 	
   3489 2000-09-04  OKUJI Yoshinori  <okuji (a] gnu.org>
   3490 
   3491 	* stage2/stage2.c (run_menu): If SHOW_MENU is zero, print a
   3492 	message with the timeout per second.
   3493 	If GRUB_TIMEOUT is negative, set SHOW_MENU to one, since the
   3494 	condition "no timeout and no interface" is nonsense.
   3495 	If GRUB_TIMEOUT is equal to or greater than zero and the
   3496 	terminal is dumb, set SHOW_MENU to zero.
   3497 	If SHOW_MENU is non-zero and the terminal is dumb, enter the
   3498 	command-line interface instead. If AUTH is false and PASSWORD is
   3499 	non-NULL, prompt the user to enter a password until the entered
   3500 	password is identical to PASSWORD.
   3501 	
   3502 2000-09-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   3503 
   3504 	* util/grub-install.in: Fix a typo: grub_dir -> grubdir.
   3505 	* stage2/builtins.c (install_func) [GRUB_UTIL]: Open a Stage 2
   3506 	with "r+" instead of "r", as GRUB needs to overwrite it.
   3507 	
   3508 2000-09-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   3509 
   3510 	* stage2/stage2.c (run_menu): Don't use either `p' or `n' to
   3511 	move the cursor, because `p' is already used for another
   3512 	purpose (password).
   3513 	(run_menu) [SUPPORT_SERIAL]: Don't set the variables DISP_UP and
   3514 	DISP_DOWN at the start time. Instead, set them just before using
   3515 	them actually, because TERMINAL may change when running a menu.
   3516 	
   3517 2000-09-01  Klaus Reichl  <Klaus.Reichl (a] alcatel.at>
   3518 
   3519 	* stage2/stage2.c (run_menu): Setup and use disp_up, disp_down
   3520 	depending on the terminal mode.
   3521 	(run_menu): Allow '^' (resp. 'p') and 'v' (resp 'n') keys we
   3522 	described in our help above (resp. authors preferences).
   3523 
   3524 2000-08-31  Klaus Reichl  <Klaus.Reichl (a] alcatel.at>
   3525 
   3526 	* stage2/stage2.c (set_line): Go back one char, which is
   3527 	consistent with the original situation, when a timeout was
   3528 	running.  
   3529 	(run_menu): If GRUB_TIMEOUT is stopped don't loop busy over
   3530 	CHECKKEY, just relax in GETKEY. 
   3531 
   3532 	* stage2/builtins.c (serial_func): --speed handling: corrected
   3533 	typo: set SPEED instead of PORT. 
   3534 	
   3535 2000-08-31  OKUJI Yoshinori  <okuji (a] gnu.org>
   3536 
   3537 	* stage2/builtins.c (terminal_func): Added two new options,
   3538 	--dumb and --timeout=SECS.
   3539 	* stage2/char_io.c [!STAGE1_5] (getkey): Use logical AND
   3540 	operations, when checking if the terminal is a console or a
   3541 	serial terminal.
   3542 	[!STAGE1_5] (getkey) [SUPPORT_SERIAL]: Don't check if both
   3543 	TERMINAL_CONSOLE and TERMINAL_SERIAL are set in TERMINAL.
   3544 	
   3545 2000-08-31  OKUJI Yoshinori  <okuji (a] gnu.org>
   3546 
   3547 	* stage1/stage1.S (MOV_MEM_TO_AL): New macro.
   3548 	(real_start): Use the macro MOV_MEM_TO_AL instead of using movb
   3549 	directly, because binutils-2.9.1.0.x doesn't produce a short
   3550 	opcode for it automatically. Reported by Alessandro Rubini
   3551 	<rubini (a] gnu.org>.
   3552 
   3553 2000-08-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3554 
   3555 	* configure.in (CPPFLAGS): Remove -Wundef by default. Add the
   3556 	option only if the C compiler supports it, because GCC 2.7.x
   3557 	doesn't support it.
   3558 	* grub/main.c (longopts): The type of the argument for "hold" is
   3559 	changed to OPTIONAL_ARGUMENT.
   3560 	(main): If --hold is specified, check if OPTARG is zero. If so,
   3561 	set HOLD to -1, otherwise, set it to the digit OPTARG.
   3562 	If HOLD is greater than zero, decrease it once per loop.
   3563 	
   3564 2000-08-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3565 
   3566 	The command-line interface is switched to single-line editing
   3567 	mode.
   3568 	
   3569 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): Extensively
   3570 	rewritten. The nested functions cl_print and cl_kill_to_end are
   3571 	removed, cl_refresh, cl_backward, cl_forward and cl_delete are
   3572 	added, and, cl_init and cl_insert are rewritten from scratch.
   3573 	See the source code, for more information. I don't think this
   3574 	kind of changes can be represented in ChangeLog.
   3575 	[!STAGE1_5] (CMDLINE_WIDTH): New macro.
   3576 	[!STAGE1_5] (CMDLINE_MARGIN): Likewise.
   3577 	* stage2/shared.h (TERMINAL_DUMB): Likewise.
   3578 	
   3579 2000-08-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   3580 
   3581 	* grub/asmstub.c (console_putchar) [HAVE_LIBCURSES]: If
   3582 	USE_CURSES is true, emulate a new line like a ordinary terminal,
   3583 	because ncurses treats it badly. If current position on y-axis
   3584 	is the bottom of the screen, call scroll. Otherwise, call move
   3585 	with the arguments, Y + 1 and X, where X and Y are current
   3586 	position of the cursor.
   3587 	
   3588 2000-08-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   3589 
   3590 	* stage2/asm.S (console_putchar): Don't print a carriage return
   3591 	when C is a newline.
   3592 	* stage2/char_io.c (grub_putchar): Call grub_putchar with the
   3593 	arugment set to a carriage return, if C is a newline.
   3594 	[!STAGE1_5 && SUPPORT_SERIAL]: Don't print a carriage return
   3595 	when C is a newline.
   3596 	
   3597 2000-08-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   3598 
   3599 	* lib/device.c [__linux__]: Don't include linux/fs.h.
   3600 	[!BLKGETSIZE] (BLKGETSIZE): Defined as _IO(0x12,96).
   3601 	* grub/asmstub.c [__linux__]: Don't include linux/fs.h.
   3602 	
   3603 2000-08-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   3604 
   3605 	Preserve a magic number used by Windows NT in a MBR. Shit!
   3606 	Reported by Khimenko Victor.
   3607 	
   3608 	* stage1/stage1.h (STAGE1_WINDOWS_NT_MAGIC): New macro.
   3609 	* stage1/stage1.S (copy_buffer): Use pusha and popa, instead of
   3610 	pushing/poping %cx and %si separately, to reduce the code size.
   3611 	(nt_magic): New label. Set the offset to _start plus
   3612 	STAGE1_WINDOWS_NT_MAGIC
   3613 	(part_start): New label.
   3614 	* stage2/builtins.c (install_func): If DEST_DRIVE is a hard
   3615 	disk, copy the possible partition table and Windows NT magic to
   3616 	STAGE1_BUFFER from OLD_SECT.
   3617 	
   3618 2000-08-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   3619 
   3620 	* stage2/char_io.c (translate_keycode) [SUPPORT_SERIAL]: Don't
   3621 	drain the input buffer, since that was irritating.
   3622 	
   3623 2000-08-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   3624 
   3625 	Don't save/restore fragile registers unnecessarily.
   3626 	
   3627 	* stage2/asm.S [!STAGE1_5] (track_int13): Don't save/restore
   3628 	%ecx, %edx, or %eax.
   3629 	[!STAGE1_5] (set_int13_handler): Likewise.
   3630 	(biosdisk_int13_extensions): Likewise.
   3631 	(biosdisk_standard): Likewise.
   3632 	(check_int13_extensions): Likewise.
   3633 	(get_diskinfo_int13_extensions): Likewise.
   3634 	(get_diskinfo_standard): Likewise.
   3635 	(get_diskinfo_floppy): Likewise.
   3636 	[!STAGE1_5] (get_eisamemsize): Likewise.
   3637 	[!STAGE1_5] (get_mmap_entry): Likewise.
   3638 	[!STAGE1_5] (console_cls): Likewise.
   3639 	[!STAGE1_5] (nocursor): Likewise.
   3640 	[!STAGE1_5] (console_getxy): Likewise.
   3641 	[!STAGE1_5] (console_gotoxy): Likewise.
   3642 	[!STAGE1_5] (set_attrib): Likewise.
   3643 	[!STAGE1_5] (getrtsecs): Likewise.
   3644 	[!STAGE1_5] (currticks): Likewise, and don't zero %eax
   3645 	explicitly, since prot_to_real does that.
   3646 	
   3647 2000-08-25  OKUJI Yoshinori  <okuji (a] gnu.org>
   3648 
   3649 	* stage2/char_io.c [!STAGE1_5] (translate_keycode): New
   3650 	function. The serial part is stolen from the patch by Christoph
   3651 	Plattner.
   3652 	[!STAGE1_5] (get_cmdline): Call translate_keycode instead of
   3653 	translating special key codes into ASCII characters by itself.
   3654 	* stage2/stage2.c (run_menu): Wrap getkey with the macro
   3655 	ASCII_CHAR, when checking if ESC is pressed.
   3656 	Call translate_keycode as well as getkey, unless checkkey
   3657 	returns -1. So don't check if C is KEY_DOWN or KEY_UP. And don't
   3658 	use the macro ASCII_CHAR for C explicitly.
   3659 	* stage2/shared.h (translate_keycode): Declared.
   3660 	
   3661 2000-08-24  OKUJI Yoshinori  <okuji (a] gnu.org>
   3662 
   3663 	* stage2/builtins.c [GRUB_UTIL]: Include stdio.h before
   3664 	shared.h. Reported by Mathieu Chouquet-Stringer
   3665 	<mchouque (a] cs.stevens-tech.edu>.
   3666 	
   3667 2000-08-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   3668 
   3669 	* configure.in (--enable-serial-speed-emulation): New option.
   3670 	(SERIAL_SPEED_SIMULATION): New conditional.
   3671 	* grub/Makefile.am (SERIAL_FLAGS): New variable. Set
   3672 	-DSUPPORT_SERIAL=1 and -DSIMULATE_SLOWNESS_OF_SERIAL=1, if
   3673 	SERIAL_SPEED_SIMULATION is defined, otherwise, set it to
   3674 	only -DSUPPORT_SERIAL=1.
   3675 	(AM_CFLAGS): Removed -DSUPPORT_SERIAL=1 and added
   3676 	$(SERIAL_FLAGS).
   3677 	* grub/asmstub.c [SIMULATE_SLOWNESS_OF_SERIAL] (serial_speed):
   3678 	New variable.
   3679 	(grub_setjmp): Removed.
   3680 	(grub_longjmp): Likewise.
   3681 	(serial_getkey) [SIMULATE_SLOWNESS_OF_SERIAL]: Wait for
   3682 	1000000 / (SERIAL_SPEED >> 3) microseconds using gettimeofday.
   3683 	(serial_putchar) [SIMULATE_SLOWNESS_OF_SERIAL]: Likewise.
   3684 	(serial_init) [SIMULATE_SLOWNESS_OF_SERIAL]: Set SERIAL_SPEED to
   3685 	SPEED.
   3686 	* stage2/builtins.c (serial_func) [SUPPORT_SERIAL]: Added
   3687 	a new option, `--speed'.
   3688 	(builtin_serial): Added a description about --speed.
   3689 	(terminal_func): When get a key from a serial device, if GRUB is
   3690 	in the command-line interface, call grub_longjmp with
   3691 	RESTART_CMDLINE_ENV, instead of init_page.
   3692 	* stage2/cmdline.c (restart_cmdline_env): New variable.
   3693 	(enter_cmdline): Call grub_setjmp with RESTART_CMDLINE_ENV after
   3694 	calling init_cmdline.
   3695 	(run_script): Run BUILTIN->FUNC with BUILTIN_SCRIPT instead of
   3696 	BUILTIN_CMDLINE.
   3697 	* stage2/shared.h (BUILTIN_SCRIPT): New macro.
   3698 	[GRUB_UTIL] (grub_setjmp): Defined as setjmp.
   3699 	[GRUB_UTIL] (grub_longjmp): Defined as longjmp.
   3700 	(restart_cmdline_env): Declared.
   3701 	
   3702 2000-08-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   3703 
   3704 	* configure.in (--enable-serial): New option. Serial terminal
   3705 	support will be enabled by default, once it is stabilized.
   3706 	(SERIAL_SUPPORT): New conditional.
   3707 	* grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_SERIAL=1.
   3708 	* grub/asmstub.c (cls): Renamed to ...
   3709 	(console_cls): ... this.
   3710 	(getxy): Renamed to ...
   3711 	(console_getxy): ... this.
   3712 	(gotoxy): Renamed to ...
   3713 	(console_gotoxy): ... this.
   3714 	* stage2/Makefile.am (libgrub_a_CFLAGS): Added
   3715 	-DSUPPORT_SERIAL=1.
   3716 	(NETBOOT_FLAGS): New variable.
   3717 	(SERIAL_FLAGS): Likewise.
   3718 	(STAGE2_COMPILE): Added $(NETBOOT_FLAGS) and $(SERIAL_FLAGS).
   3719 	* stage2/asm.S [!STAGE1_5] (cls): Renamed to ...
   3720 	[!STAGE1_5] (console_cls): ... this.
   3721 	[!STAGE1_5] (getxy): Renamed to ...
   3722 	[!STAGE1_5] (console_getxy): ... this.
   3723 	[!STAGE1_5] (gotoxy): Renamed to ...
   3724 	[!STAGE1_5] (console_gotoxy): ... this.
   3725 	* stage2/builtins.c (terminal_func): If the bit flag
   3726 	BUILTIN_CMDLINE in FLAGS is set, call init_page. But this should
   3727 	be fixed so that it restarts enter_cmdline instead.
   3728 	* stage2/char_io.c [!STAGE1_5] (gotoxy): New function.
   3729 	[!STAGE1_5] (serial_gotoxy): Likewise.
   3730 	[!STAGE1_5] (getxy): Likewise.
   3731 	[!STAGE1_5] (serial_getxy): Likewise.
   3732 	[!STAGE1_5] (cls): Likewise.
   3733 	[!STAGE1_5] (serial_cls): Likewise.
   3734 	* stage2/serial.h (serial_cls): Declared.
   3735 	(serial_getxy): Likewise.
   3736 	(serial_gotoxy): Likewise.
   3737 	* stage2/shared.h (console_cls): Likewise.
   3738 	(console_getxy): Likewise.
   3739 	(console_gotoxy): Likewise.
   3740 	* stage2/stage2.c (print_entries): If serial terminal is
   3741 	enabled, print ACS_UARROW and ACS_DARROW instead of DISP_UP and
   3742 	DISP_DOWN, respectively.
   3743 	(print_border): If serial terminal is enabled, print
   3744 	ACS_ULCORNER, ACS_URCORNER, ACS_LLCORNER, ACS_LRCORNER,
   3745 	ACS_HLINE and ACS_VLINE instead of DISP_UL, DISP_UR, DISP_LL,
   3746 	DISP_LR, DISP_HORIZ and DISP_VERT, respectively.
   3747 	(print_border) [SUPPORT_SERIAL]: Color the menu only if console
   3748 	is used.
   3749 	(set_line): Take two more arguments, ENTRYNO and MENU_ENTRIES.
   3750 	(set_line_normal): Likewise.
   3751 	(set_line_highlight): Likewise.
   3752 	(set_line) [SUPPORT_SERIAL]: If serial terminal is enabled, get
   3753 	the menu entry whose attributes are being changed and redraw the
   3754 	line.
   3755 	(set_line_highlight) [SUPPORT_SERIAL]: If serial terminal is
   3756 	enabled, print `ESC [ 7 m' and `ESC [ 0 m' before and after
   3757 	calling set_line, respectively.
   3758 	(run_menu) [SUPPORT_SERIAL]: Call nocursor only if console is
   3759 	used.
   3760 	
   3761 2000-08-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   3762 
   3763 	Now the serial console support is partially working.
   3764 	
   3765 	* grub/asmstub.c (serial_checkkey): Specify a pointer to TIMEOUT
   3766 	as the fifth argument to select.
   3767 	(serial_get_port): New function. Just a dummy.
   3768 	(serial_init): If a serial device is opened, close SERIAL_FD
   3769 	before opeing a new serial device.
   3770 	Don't specify O_NDELAY to open.
   3771 	* stage2/builtins.c [SUPPORT_SERIAL]: Include serial.h.
   3772 	(serial_func): New function.
   3773 	(builtin_serial): New variable.
   3774 	(terminal_func): New function.
   3775 	(builtin_terminal): New variable.
   3776 	(builtin_table): Add pointers to BUILTIN_SERIAL and
   3777 	BUILTIN_TERMINAL.
   3778 	* stage2/char_io.c [SUPPORT_SERIAL]: Include serial.h.
   3779 	(getkey) [SUPPORT_SERIAL]: If both TERMINAL_CONSOLE and
   3780 	TERMINAL_SERIAL are set in TERMINAL simultaneously, print a
   3781 	warning and force the console terminal.
   3782 	(checkkey) [SUPPORT_SERIAL]: If TERMINAL_SERIAL is set in
   3783 	TERMINAL, call serial_checkkey.
   3784 	(grub_putchar) [SUPPORT_SERIAL]: If TERMINAL_SERIAL is set in
   3785 	TERMINAL, call serial_putchar. If C is a newline, print a
   3786 	carriage return, before printing a newline.
   3787 	
   3788 2000-08-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   3789 
   3790 	The image `nbgrub' now relocates itself from 0x10000 to 0x8000,
   3791 	since the Network Boot Image Proposal doesn't permit a second
   3792 	loader to be loaded below 0x10000. Reported by Matthias
   3793 	Kretschmer <McCratch (a] gmx.net>.
   3794 	
   3795 	* Makefile.am (NBLOADER_LINK): New variable.
   3796 	(nbloader_exec_LDFLAGS): Set to $(NBLOADER_LINK) instead of
   3797 	$(START_LINK).
   3798 	* stage2/nbi.h (NBI_DEST_ADDR): Changed to 0x10000.
   3799 	(NBI_DEST_SEG): New macro.
   3800 	(NBI_DEST_OFF): Likewise.
   3801 	(RELOCATED_ADDR): Likewise.
   3802 	(RELOCATED_SEG): Likewise.
   3803 	(RELOCATED_OFF): Likewise.
   3804 	(STAGE2_START_ADDR): Likewise.
   3805 	* stage2/nbloader.S: Added .code16 directive at the start of the
   3806 	code.
   3807 	Set the segment and the offset of the load address to
   3808 	NBI_DEST_SEG and NBI_DEST_OFF, respectively.
   3809 	Set the segment and the offset of the start address to
   3810 	NBI_DEST_SEG and NBI_DEST_OFF + relocate - _start, respectively.
   3811 	Added a routine for relocating itself.
   3812 	(relocate): New label.
   3813 	(copy_rest): Likewise.
   3814 	(copy_loop): Likewise.
   3815 	(copy): Likewise.
   3816 	(boot_stage2): Likewise.
   3817 	
   3818 2000-08-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   3819 
   3820 	* grub/main.c (main): Move the version number inside the
   3821 	parentheses, since the grub shell is merely one of the programs
   3822 	included in GNU GRUB.
   3823 	
   3824 2000-08-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   3825 
   3826 	Add a serial device emulation into the grub shell.
   3827 	
   3828 	* grub/asmstub.c: Include sys/time.h and termios.h.
   3829 	(serial_fd): New variable.
   3830 	(serial_device): Likewise.
   3831 	(serial_getkey): New function.
   3832 	(serial_checkkey): Likewise.
   3833 	(serial_putchar): Likewise.
   3834 	(get_termios_speed): Likewise.
   3835 	(serial_init): Likewise.
   3836 	(set_serial_device): Likewise.
   3837 	(grub_stage2): Restore SERIAL_DEVICE and SERIAL_FD, if they were
   3838 	allocated.
   3839 	* stage2/serial.h [GRUB_UTIL] (set_serial_device): Declared.
   3840 	
   3841 2000-08-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   3842 
   3843 	* stage2/asm.S (codestart) [SUPPORT_DISKLESS]: Don't reset a
   3844 	disk system. That is not only uncessary but also harmful.
   3845 	
   3846 2000-08-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   3847 
   3848 	Add a serial device driver (but only the driver).
   3849 	
   3850 	* stage2/serial.c: New file.
   3851 	* stage2/serial.h: Likewise.
   3852 	* stage2/shared.h (serial_getkey): Moved to stage2/serial.h.
   3853 	(serial_checkkey): Likewise.
   3854 	(serial_putchar): Likewise.
   3855 	* stage2/Makefile.am (noinst_HEADERS): Added serial.h.
   3856 	(pre_stage2_exec_SOURCES): Added serial.c.
   3857 
   3858 2000-08-10  Pavel Roskin  <proski (a] gnu.org>
   3859 
   3860 	* docs/tutorial.texi: Minor fixes.
   3861 
   3862 2000-08-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   3863 
   3864 	* docs/tutorial.texi (Installation): Divided into three sections
   3865 	instead of two sections. Don't describe the usage of the the
   3866 	grub shell any longer. Instead, how to use grub-install is
   3867 	documented.
   3868 	
   3869 2000-08-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   3870 
   3871 	* stage2/builtins.c [GRUB_UTIL]: Include stdio.h.
   3872 	(embed_func) [GRUB_UTIL && __linux__]: When embedding a Stage
   3873 	1.5 into a partition, call write_to_partition instead of
   3874 	biosdisk.
   3875 	(install_func): Set DEST_PARTITION to the partition where Stage
   3876 	1 resides.
   3877 	Set SRC_PART_START to the starting address of the partition
   3878 	where Stage 2 resides.
   3879 	(install_func) [GRUB_UTIL]: Set STAGE2_OS_FILE to the file name
   3880 	of Stage 2 under an OS, if the new option "--stage2" is
   3881 	specified. Otherwise, set it to null.
   3882 	If STAGE2_OS_FILE is not null, modify the Stage 2 via the
   3883 	filesystem serviced by the OS.
   3884 	(install_func) [GRUB_UTIL && __linux__]: If STAGE2_OS_FILE is
   3885 	null but the Stage2 resides in a partition, use
   3886 	write_to_partition.
   3887 	If DEST_PARTITION is not 0xFFFFFF, use write_to_partition, to
   3888 	embed Stage 1.
   3889 	(setup_func) [GRUB_UTIL]: If --stage2 is specified, set
   3890 	STAGE2_ARG to the string pointing to the option. Otherwise, set
   3891 	it to null.
   3892 	(setup_func) [!GRUB_UTIL]: Set STAGE2_ARG to null.
   3893 	(setup_func): If STAGE2_ARG is not null, add STAGE2_ARG and a
   3894 	space character into CMD_ARG.
   3895 	* lib/device.c (_LARGEFILE_SOURCE): Defined.
   3896 	(_FILE_OFFSET_BITS): Likewise.
   3897 	[__linux__] (write_to_partition): New function.
   3898 	* lib/device.h [__linux__] (write_to_partition): Declared.
   3899 	* util/grub-install.in: Specify the option "--stage2" for the
   3900 	command "setup".
   3901 	
   3902 2000-08-04  Jochen Hoenicke  <jochen (a] gnu.org>
   3903 
   3904 	* stage2/fsys_fat.c (fat_superblock): clust_eof_marker added.
   3905 	(fat_mount): Initialize clust_eof_marker to 0xff8, 0xfff8, or
   3906 	0xffffff8, depending on fat size.  Support for single active FAT
   3907 	added (FAT32 extension). Changed the boundary between FAT12 and
   3908 	FAT16, again.  The Microsoft KB article Q65541 seems to be wrong
   3909 	here, I go with mtools and the previous behaviour of grub: FAT12
   3910 	iff number of clusters (without counting the two nonexisting
   3911 	clusters) is less or equal 4095.
   3912 	(fat_read): Report error if cluster number is too big, but not
   3913 	greater or equal clust_eof_marker.
   3914 	* stage2/fsys_reiserfs.c (journal_init): Fixed calculation of
   3915 	journal_transaction.
   3916 	
   3917 2000-08-01  Jochen Hoenicke  <jochen (a] gnu.org>
   3918 
   3919 	* stage2/fsys_reiserfs.c: Symlink support added.
   3920 	(S_ISLNK): New macro.
   3921 	(PATH_MAX): Likewise.
   3922 	(MAX_LINK_COUNT): Likewise.
   3923 	(reiserfs_dir): Check for symlink and handle them.
   3924 	(read_tree_node): Take a block number and check if tree node was
   3925  	already read in.  If not update the INFO->blocks field.
   3926 	(next_key): Changed call of read_tree_node.
   3927 	(search_stat): Likewise.
   3928 	(journal_init): Fixed a small bug.  Some debugging messages added.
   3929 	
   3930 2000-07-31  Pavel Roskin  <proski (a] gnu.org>
   3931 
   3932 	* grub/asmstub.c (biosdisk) [__linux__]: The first argument for
   3933 	_llseek renamed from "seeked_fd" to "filedes".
   3934 
   3935 2000-07-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3936 
   3937 	* docs/appendices.texi (FAQ): Added the answer for the separate
   3938 	boot partition problem.
   3939 	
   3940 2000-07-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   3941 
   3942 	Update the network support to Etherboot-4.6.4.
   3943 	
   3944 	From Daniel Wagner <wagi (a] gmx.ch>:
   3945 	* netboot/3c509.c: Copied from Etherboot-4.6.4.
   3946 	* netboot/3c509.h: Likewise.
   3947 	* netboot/cards.h: Likewise.
   3948 	* netboot/ns8390.c: Likewise.
   3949 	* netboot/sk_g16.c: Likewise.
   3950 	* netboot/sk_g16.h: Likewise.
   3951 	* netboot/tulip.c: Likewise.
   3952 	* netboot/pci.h: Likewise.
   3953 	* netboot/main.c (dhcpdiscover): Updated.
   3954 	(dhcprequest): Likewise.
   3955 	(bootp): Likewise.
   3956 	* netboot/README.netboot: Added the information about the new
   3957 	option --enable-ns8390-force-16bit.
   3958 	* configure.in (--enable-ns8390-force-16bit): New option.
   3959 
   3960 	* netboot/config.c: Updated.
   3961 
   3962 2000-07-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   3963 
   3964 	The Linux zImage support is working now.
   3965 	
   3966 	* stage2/asm.S (linux_boot): Add 3 into %ecx and shift %ecx to
   3967 	the right by 2 bits, instead of shift %ecx to the left by 2
   3968 	bits.
   3969 	
   3970 2000-07-29  Jochen Hoenicke  <jochen (a] gnu.org>
   3971 
   3972 	* stage2/fsys_reiserfs.c (block_read): Changed the variable "len"
   3973 	to "j_len" (it shadowed a parameter).
   3974 	
   3975 2000-07-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   3976 
   3977 	* configure.in (CPPFLAGS): Added -Wshadow, -Wpointer-arith and
   3978 	-Wundef, as GCC sometimes more clever than me. :)
   3979 	* stage2/shared.h [!ASM_FILE] (multi_boot): Change the name of
   3980 	the second argument from "mbi" to "mb_info".
   3981 	[!ASM_FILE] (biosdisk): Rename the first argument "read" to
   3982 	"subfunc".
   3983 	* lib/device.h (init_device_map): Change the name of the third
   3984 	argument from "floppy_disks" to "no_floppies".
   3985 	* lib/device.c (read_device_map): Rename the internal function
   3986 	"print_error" to "show_error".
   3987 	* stage2/builtins.c (install_func): Rename CONFIG_FILE to
   3988 	REAL_CONFIG.
   3989 	(setup_func): Rename INSTALL_DRIVE, INSTALL_PARTITION and
   3990 	CONFIG_FILE to INSTALLED_DRIVE, INSTALLED_PARTITION and
   3991 	CONFIG_FILENAME, respectively.
   3992 	* stage2/char_io.c (convert_to_ascii): Rename the internal
   3993 	variable C to TMP.
   3994 	(get_cmdline): Rename KILL to KILL_BUF.
   3995 	Rename the second argument for cl_print to REAL_ECHO_CHAR from
   3996 	ECHO_CHAR.
   3997 	* stage2/stage2.c (run_menu): Rename the internal variable
   3998 	NUM_ENTRIES to NEW_NUM_ENTRIES.
   3999 	(cmain): Rename KILL to KILL_BUF.
   4000 	* stage2/disk_inode_ffs.h: Check if BYTE_MSF is defined before
   4001 	checking the value.
   4002 	* stage2/fsys_ext2fs.c (ext2fs_dir): Check if E2DEBUG is
   4003 	defined, instead of if the value is non-zero.
   4004 	* grub/asmstub.c: Check if __GLIBC__ is defined before checking
   4005 	the value.
   4006 	(biosdisk) [__linux__]: Likewise.
   4007 	Rename the first argument for _llseek to "seeked_fd" from "fd".
   4008 	(multi_boot): Rename the second argument to "mb_info" from
   4009 	"mbi".
   4010 	
   4011 2000-07-27  Gordon Matzigkeit  <gord (a] fig.org>
   4012 
   4013 	* util/grub-image.in: Initial cut at a script for creating GRUB
   4014 	boot images.
   4015 	* util/Makefile.am (noinst_SCRIPTS): Added grub-image.
   4016 	* configure.in (AC_OUTPUT): Added util/grub-image.
   4017 
   4018 2000-07-27  Jochen Hoenicke  <jochen (a] gnu.org>
   4019 
   4020 	* stage2/asm.S (check_int13_extensions): Fixed the effect of
   4021 	the --force-lba switch in stage2/stage1_5.
   4022 	
   4023 2000-07-25  Jochen Hoenicke  <jochen (a] gnu.org>
   4024 
   4025 	* stage2/fsys_fat.c (fat_mount): Fixed calculation of num_clust.
   4026 	It was off by two, since the two non existing clusters 0 and 1
   4027 	were not taken into account.  Also fixed the boundary between
   4028 	FAT12 and FAT16.
   4029 	
   4030 2000-07-25  OKUJI Yoshinori  <okuji (a] gnu.org>
   4031 
   4032 	* stage2/asm.S [!STAGE1_5] (linux_text_len): New variable.
   4033 	[!STAGE1_5] (linux_boot): Don't set %eax to LINUX_SETUP
   4034 	meaninglessly.
   4035 	Set %ecx to LINUX_TEXT_LEN instead of LINUX_KERNEL_MAXLEN.
   4036 	[!STAGE1_5] (big_linux_boot): Disable interrupts before changing
   4037 	the stack pointer.
   4038 	Change %ss right before %sp.
   4039 	Reverse the arguments for ljmp. A segment must be after an
   4040 	offset. *sigh*
   4041 	* stage2/boot.c (load_image): Set LINUX_TEXT_LEN to TEXT_LEN,
   4042 	if a Linux kernel is loaded successfully.
   4043 	* stage2/shared.h (LINUX_VID_MODE_OFFSET): Removed.
   4044 	[!ASM_FILE] (linux_kernel_header): Change the type of the member
   4045 	`heap_end_ptr' to unsigned short.
   4046 	[!ASM_FILE] (linux_text_len): Declared.
   4047 	
   4048 2000-07-24  OKUJI Yoshinori  <okuji (a] gnu.org>
   4049 
   4050 	Comply with the Linux/i386 boot protocol version 2.02.
   4051 	
   4052 	* stage2/asm.S [!STAGE1_5] (linux_boot): Set the length of moved
   4053 	bytes to LINUX_KERNEL_MAXLEN instead of
   4054 	LINUX_KERNEL_LEN_OFFSET(%eax), since the field is obsolete.
   4055 	[!STAGE1_5] (big_linux_boot): Don't use SEGMENT or OFFSET.
   4056 	Instead, embed the segment and the offset in the code itself.
   4057 	Set %ds, %es, %fs and %gs to %ax (LINUX_INIT_SEG).
   4058 	* stage2/boot.c (load_image): Rewrite the Linux support code
   4059 	heavily. Use a structure instead of a batch of macros, to access
   4060 	a Linux kernel header.
   4061 	(load_initrd): If MOVETO plus LEN is greater than or equal to
   4062 	LINUX_INITRD_MAX_ADDRESS, set MOVETO to LINUX_INITRD_MAX_ADDRESS
   4063 	minus LEN with page aligned.
   4064 	* stage2/shared.h (LINUX_MAGIC_SIGNATURE): New macro.
   4065 	(LINUX_DEFAULT_SETUP_SECTS): Likewise.
   4066 	(LINUX_FLAG_CAN_USE_HEAP): Likewise.
   4067 	(LINUX_INITRD_MAX_ADDRESS): Likewise.
   4068 	(LINUX_MAX_SETUP_SECTS): Likewise.
   4069 	(LINUX_BOOT_LOADER_TYPE): Likewise.
   4070 	(LINUX_HEAP_END_OFFSET): Likewise.
   4071 	(LINUX_SETUP_MAXLEN): Removed.
   4072 	(LINUX_KERNEL_LEN_OFFSET): Likewise.
   4073 	(LINUX_SETUP_LEN_OFFSET): Likewise.
   4074 	(LINUX_SETUP_STACK): Set to 0x7F00 instead of 0x3FF4 (why was it
   4075 	this value?).
   4076 	(LINUX_SETUP_LOADER): Removed.
   4077 	(LINUX_SETUP_LOAD_FLAGS): Likewise.
   4078 	(LINUX_SETUP_CODE_START): Likewise.
   4079 	(LINUX_SETUP_INITRD): Likewise.
   4080 	(CL_MY_LOCATION): Set to RAW_ADDR(0x97F00) instead of
   4081 	RAW_ADDR(0x92000).
   4082 	(CL_MY_END_ADDR): Set to RAW_addr(0x97FFF) instead of
   4083 	RAW_ADDR(0x920FF).
   4084 	(CL_MAGIC_ADDR): Removed.
   4085 	(CL_OFFSET): Likewise.
   4086 	[!ASM_FILE] (struct linux_kernel_header): New structure tag.
   4087 	
   4088 2000-07-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   4089 
   4090 	* docs/tutorial.texi: Fix some syntax errors and ambiguous
   4091 	sentences. Suggested by M. Meiarashi <mes (a] st.rim.or.jp>.
   4092 	
   4093 2000-07-14  Khimenko Victor  <grub (a] khim.sch57.msk.ru>
   4094 
   4095 	* stage2/boot.c (load_image): When getting the text length of a 
   4096 	Linux kernel, use unsigned long instead of unsigned short.
   4097 	
   4098 2000-07-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   4099 
   4100 	* lib/device.c: Include errno.h. Reported by Thierry DELHAISE
   4101 	<thierry.delhaise (a] delhaise.com>.
   4102 	
   4103 2000-07-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   4104 
   4105 	Just to start implementing serial console support...
   4106 	
   4107 	* stage2/asm.S (grub_putchar): Renamed to ...
   4108 	(console_putchar): ... this.
   4109 	[!STAGE1_5] (getkey): Renamed to ...
   4110 	[!STAGE1_5] (console_getkey): ... this.
   4111 	[!STAGE1_5] (checkkey): Renamed to ...
   4112 	[!STAGE1_5] (console_checkkey): ... this.
   4113 	* stage2/char_io.c [!STAGE1_5] (getkey): New function.
   4114 	[!STAGE1_5] (checkkey): Likewise.
   4115 	(grub_putchar): Likewise.
   4116 	* stage2/shared.h [!STAGE1_5] (terminal): Declared.
   4117 	[!STAGE1_5] (TERMINAL_CONSOLE): New macro.
   4118 	[!STAGE1_5] (TERMINAL_SERIAL): Likewise.
   4119 	(console_putchar): Declared.
   4120 	(serial_putchar): Likewise.
   4121 	(console_getkey): Likewise.
   4122 	(serial_getkey): Likewise.
   4123 	(console_checkkey): Likewise.
   4124 	(serial_checkkey): Likewise.
   4125 	* stage2/builtins.c (terminal): New global variable. The default
   4126 	is TERMINAL_CONSOLE.
   4127 	* grub/asmstub.c (grub_putchar): Renamed to ...
   4128 	(console_putchar): ... this.
   4129 	(getkey): Renamed to ...
   4130 	(console_getkey): ... this.
   4131 	(checkkey): Renamed to ...
   4132 	(console_checkkey): ... this.
   4133 	
   4134 2000-07-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   4135 
   4136 	* stage2/Makefile.am (libgrub_a_CFLAGS): Added
   4137 	-I$(top_srcdir)/lib.
   4138 	* stage2/builtins.c [GRUB_UTIL]: Include device.h.
   4139 	
   4140 2000-07-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   4141 
   4142 	Segreate OS-specific helper functions from asmstub.c.
   4143 	
   4144 	* grub/asmstub.c [__linux__]: Don't include linux/hdreg.h,
   4145 	linux/major.h, linux/kdev_t.h, or linux/cdrom.h.
   4146 	[__FreeBSD__ || __NetBSD__ || __OpenBSD__]: Don't include
   4147 	sys/ioctl.h, sys/disklabel.h, or sys/ioctl.h.
   4148 	[HAVE_OPENDISK]: Don't include util.h.
   4149 	Include device.h.
   4150 	(DEFAULT_FD_CYLINDERS): Removed.
   4151 	(DEFAULT_FD_HEADS): Likewise.
   4152 	(DEFAULT_FD_SECTORS): Likewise.
   4153 	(DEFAULT_HD_CYLINDERS): Likewise.
   4154 	(DEFAULT_HD_HEADS): Likewise.
   4155 	(DEFAULT_HD_SECTORS): Likewise.
   4156 	(NUM_DISKS): Likewise.
   4157 	(init_device_map): Likewise.
   4158 	(get_floppy_disk_name): Likewise.
   4159 	(get_ide_disk_name): Likewise.
   4160 	(get_scsi_disk_name): Likewise.
   4161 	(check_device): Likewise.
   4162 	(get_drive_geometry): Likewise.
   4163 	* grub/main.c (no_floppy): Removed.
   4164 	(probe_second_floppy): Likewise.
   4165 	(floppy_disks): New global variable.
   4166 	(main): Set FLOPPY_DISKS to zero, if OPT_NO_FLOPPY. Set
   4167 	FLOPPY_DISKS to two, if OPT_PROBE_SECOND_FLOPPY.
   4168 	* lib/Makefile.am (AM_CFLAGS): New variable.
   4169 	* lib/device.h: New file.
   4170 	* lib/device.c: Likewise.
   4171 	* stage2/shared.h (no_floppy): Removed.
   4172 	(probe_second_floppy): Likewise.
   4173 	(check_device): Likewise.
   4174 	(floppy_disks): Declared.
   4175 	
   4176 2000-07-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   4177 
   4178 	* grub/main.c (usage): Enclose the mail address with parentheses
   4179 	and add a period into the end of the line. That's just a
   4180 	cosmetic change.
   4181 	
   4182 2000-07-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   4183 
   4184 	* docs/appendices.texi (Obtaining and Building GRUB): Indicate
   4185 	the Cygnus's binutils webpage instead of the hjl's site, since
   4186 	you can now use a public release (i.e. 2.10).
   4187 	
   4188 2000-06-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   4189 
   4190 	* stage2/boot.c (load_image): Take an additional argument
   4191 	LOAD_FLAGS.
   4192 	If the kernel type is Linux and the bit
   4193 	KERNEL_LOAD_NO_MEM_OPTION in LOAD_FLAGS is set, don't pass a
   4194 	Linux's mem option automatically.
   4195 	* stage2/shared.h (load_image): Added the new argument.
   4196 	* stage2/builtins.c (kernel_func): If `--no-mem-option' is
   4197 	specified, set the bit KERNEL_LOAD_NO_MEM_OPTION in LOAD_FLAGS,
   4198 	otherwise, LOAD_FLAGS is zero.
   4199 	
   4200 2000-06-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   4201 
   4202 	* docs/tutorial.texi: Fixed some typos and syntax errors.
   4203 	* docs/user-ref.texi: Likewise.
   4204 	
   4205 2000-06-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   4206 
   4207 	* stage2/stage2.c (run_menu): Initialize CUR_ENTRY at the
   4208 	definition.
   4209 	If SHOW_MENU is zero, don't display the menu interface. Instead,
   4210 	wait until the timeout is expired and then boot the default
   4211 	entry. If the user presses `ESC' during the timeout, set
   4212 	SHOW_MENU to one and break the loop.
   4213 	Display the menu if SHOW_MENU is true, instead of if
   4214 	GRUB_TIMEOUT is non-zero.
   4215 	Set SHOW_MENU to one before go to the label `restart'.
   4216 	* stage2/builtins.c (show_menu): New global variable.
   4217 	(hiddenmenu_func): New function.
   4218 	(builtin_hiddenmenu): New variable.
   4219 	(builtin_table): Added a pointer to BUILTIN_HIDDENMENU.
   4220 	* stage2/shared.h (show_menu): Declared.
   4221 	
   4222 2000-06-19  OKUJI Yoshinori  <okuji (a] gnu.org>
   4223 
   4224 	* docs/mdate-sh: Moved to ...
   4225 	* mdate-sh: ... here.
   4226 	* docs/texinfo.tex: Moved to ...
   4227 	* texinfo.tex: ... here.
   4228 	
   4229 2000-06-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   4230 
   4231 	* stage2/mb_info.h (AddrRangeDesc): Use one 64bits field instead
   4232 	of two 32bits fields for BaseAddr and Length, respectively.
   4233 	BaseAddrLow + BaseAddrHigh -> BaseAddr, LengthLow + LengthHigh
   4234 	-> Length.
   4235 	* stage2/builtins.c (displaymem_func): Print BaseAddr >> 32,
   4236 	BaseAddr & 0xFFFFFFFF, Length >> 32 and Length & 0xFFFFFFFF,
   4237 	instead of BaseAddrLow, BaseAddrHigh, LengthLow and LengthHigh,
   4238 	for MAP.
   4239 	* stage2/common.c (fakemap): Adjusted to the new definition of
   4240 	AddrRangeDesc.
   4241 	(mmap_avail_at): Change the type of TOP to unsigned long long.
   4242 	If TOP is greater than 0xFFFFFFFF, set it to 0xFFFFFFFF, since
   4243 	GRUB itself cannot deal with 64bits addresses at the moment.
   4244 	(init_bios_info): When getting a maximum available address from
   4245 	the memory map, use a new unsigned long long variable MAX_ADDR
   4246 	as the temporary variable instead of MEMTMP. This should allow
   4247 	GRUB to detect at most 4TB.
   4248 	
   4249 2000-06-18  OKUJI Yoshinori  <okuji (a] gnu.org>
   4250 
   4251 	* docs/appendices.texi (FAQ): Added an question about Linux's
   4252 	`mem=' option and the answer.
   4253 	
   4254 2000-06-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   4255 
   4256 	* stage2/boot.c (load_image): Pass a mem option to Linux, only
   4257 	if SRC has no substring "mem=".
   4258 	
   4259 2000-06-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   4260 
   4261 	* stage2/compile: Removed.
   4262 	* netboot/compile: Likewise.
   4263 	* compile: New file. Copied from Automake.
   4264 	
   4265 2000-06-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   4266 
   4267 	* stage2/boot.c (load_image): Don't remove the vga option after
   4268 	parsing it. Suggested by Tim Riker.
   4269 
   4270 2000-06-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   4271 
   4272 	* stage2/asm.S (grub_halt): Use jmp instead of jc, if INT 15
   4273 	AX=5307h fails.
   4274 	
   4275 2000-06-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   4276 
   4277 	* configure.in (AM_INIT_AUTOMAKE): Increase the version number.
   4278 	I wish that 0.5.96 will not be released actually...
   4279 	
   4280 	* stage2/builtins.c (halt_func): New function.
   4281 	(builtin_halt): New variable.
   4282 	(reboot_func): New function.
   4283 	(builtin_reboot): New variable.
   4284 	(builtin_table): Added pointers to BUILTIN_HALT and
   4285 	BUILTIN_REBOOT.
   4286 	* stage2/asm.S (grub_halt): New function.
   4287 	(grub_reboot): Likewise.
   4288 	* stage2/shared.h (grub_halt): Declared.
   4289 	(grub_reboot): Likewise.
   4290 	* grub/asmstub.c (grub_reboot): New function.
   4291 	(grub_halt): Likewise.
   4292 	
   4293 2000-06-12  Gordon Matzigkeit  <gord (a] fig.org>
   4294 
   4295 	* stage2/stage2.c (run_menu): Don't display the menu if the
   4296 	timeout is zero.  This makes for cleaner use as a noninteractive
   4297 	bootloader.
   4298 
   4299 2000-06-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   4300 
   4301 	* docs/tutorial.texi (GNU/Linux): Added a caution about the
   4302 	"mem=" option.
   4303 	
   4304 2000-06-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   4305 
   4306 	* util/grub-install.in (convert): When $host_os is linux*, use
   4307 	the expression 's%\([sh]d[a-z]\)[0-9]*$%\1%' instead of
   4308 	's%[0-9]*$%%', to get rid of the partition part. This fixes the
   4309 	bug "/dev/fd0" -> "/dev/fd". (But don't you think the naming is
   4310 	quite inconsistent with hard disks? Why not /dev/fd[a-z]?)
   4311 	Report by Pavel Roskin.
   4312 	
   4313 2000-06-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   4314 
   4315 	* docs/tutorial.texi (Network): The body is moved to ...
   4316 	(General usage of network support): ... this new section.
   4317 	(Diskless): New section.
   4318 	* docs/user-ref.texi (General commands): Added a description
   4319 	about the command "tftpserver".
   4320 	
   4321 2000-06-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   4322 
   4323 	* netboot/main.c (decode_rfc1533) [GRUB]: Eliminate trailing
   4324 	NULs in the NVT string for a configuration file name, if any.
   4325 	(decode_rfc1533): Likewise, if Extensions Path is present,
   4326 	eliminate the trailing NULs, if any.
   4327 	Also, check the length carefully to ensure that EXTPATH can fit
   4328 	in FNAME.
   4329 	
   4330 2000-06-06  Jochen Hoenicke  <jochen (a] gnu.org>
   4331 
   4332 	* stage2/fsys_reiserfs.c: Added journaling to reiser.
   4333 	(reiserfs_journal_desc): new structure.
   4334 	(reiserfs_journal_commit): likewise.
   4335  	(reiserfs_journal_header): likewise.
   4336 	(fsys_reiser_info): Added fields for journaling.
   4337 	(journal_read): new function.
   4338 	(journal_init) likewise.
   4339 	(block_read): New function to read reiserfs blocks, which reads
   4340 	from the journal if it contains newer versions. All relevant
   4341 	devread calls are replaced with calls to this method.
   4342 	(reiserfs_mount): Check for journaling super block and call
   4343 	journal_init.
   4344 
   4345 2000-06-06  OKUJI Yoshinori  <okuji (a] gnu.org>
   4346 
   4347 	* netboot/main.c (dhcprequest) [GRUB]: Set the length of the
   4348 	Parameter Request List to (4 + 2).
   4349 	Set the list to RFC1533_VENDOR_MAGIC and
   4350 	RFC1533_VENDOR_CONFIGFILE in addition to the standard
   4351 	parameters.
   4352 	(decode_rfc1533) [GRUB]: If C is equal to
   4353 	RFC1533_VENDOR_CONFIGFILE, copy the contents of the tag to
   4354 	CONFIG_FILE.
   4355 	If C is equal to RFC1533_VENDOR_MAGIC, increment
   4356 	VENDOREXT_ISVALID.
   4357 	* netboot/etherboot.h [GRUB] (RFC1533_VENDOR_CONFIGFILE): New
   4358 	macro. Defined as 150.
   4359 	
   4360 2000-06-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   4361 
   4362 	* stage2/asm.S (check_int13_extensions): Check the bitmap only
   4363 	if FORCE_LBA is zero.
   4364 	* stage2/bios.c (get_diskinfo): Get rid of the wrong check for
   4365 	the bit 0 of DRP.FLAGS. Now the bitmap check is correctly
   4366 	performed in the function check_int13_extensions.
   4367 	
   4368 2000-06-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   4369 
   4370 	* docs/user-ref.texi (Invoking the grub shell): Added a caution.
   4371 	Why don't so many people still understand that BIOS drive
   4372 	numbering are different from OS device naming? How many cautions
   4373 	and warnings should we write in the documentation? Sigh.
   4374 	
   4375 2000-06-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   4376 
   4377 	From Chip Salzenberg:
   4378 	* stage2/cmdline.c (enter_cmdline) [SUPPORT_DISKLESS]: Redisplay
   4379 	network configuration after clearing screen, before first prompt.
   4380 
   4381 	* stage2/cmdline.c: Include <shared.h> instead of "shared.h".
   4382 	[SUPPORT_DISKLESS]: Include <etherboot.h>.
   4383 
   4384 2000-06-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   4385 
   4386 	* stage2/builtins.c (setup_func): Check if INSTALL_DRIVE is a
   4387 	hard disk as well as IMAGE_DRIVE, before trying to install a
   4388 	Stage 1.5. Reported by Pavel Roskin.
   4389 	
   4390 2000-05-31  OKUJI Yoshinori  <okuji (a] gnu.org>
   4391 
   4392 	* acinclude.m4 (grub_ASM_ABSOLUTE_WITHOUT_ASTERISK): New
   4393 	function. Check if GAS requires absolute indirect calls/jumps
   4394 	with NO asterisk.
   4395 	* configure.in: Call grub_ASM_ABSOLUTE_WITHOUT_ASTERISK.
   4396 	* acconfig.h (ABSOLUTE_WITHOUT_ASTERISK): New macro entry.
   4397 	* netboot/pci.c (bios32_service) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4398 	Prefix the operand to "lcall" with `*'.
   4399 	(pcibios_read_config_byte) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4400 	Likewise.
   4401 	(pcibios_read_config_word) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4402 	Likewise.
   4403 	(pcibios_read_config_dword) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4404 	Likewise.
   4405 	(pcibios_write_config_byte) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4406 	Likewise.
   4407 	(pcibios_write_config_word) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4408 	Likewise.
   4409 	(pcibios_write_config_dword) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4410 	Likewise.
   4411 	(check_pcibios) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
   4412 	* stage2/asm.S (chain_stage1) [!ABSOLUTE_WITHOUT_ASTERISK]:
   4413 	Prefix the operand to "ljmp" with `*'.
   4414 	(chain_stage2) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
   4415 	(big_linux_boot) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
   4416 	
   4417 2000-05-29  Chip Salzenberg  <chip (a] valinux.com>
   4418 
   4419 	* stage2/shared.h (grub_memmove): Prototype to use void *.
   4420 	* stage2/char_io.c (grub_memmove): Define likewise.
   4421 
   4422 2000-05-30  Gordon Matzigkeit  <gord (a] fig.org>
   4423 
   4424 	* docs/user-ref.texi (Stage2 errors): Update error messages.
   4425 
   4426 2000-05-29  Pavel Roskin  <pavel_roskin (a] geocities.com>
   4427 
   4428 	* util/grub-install.in: Fix a typo that prevented error messages
   4429 	from appearing.
   4430 	Copy and remove files individually and exit with an error as
   4431 	soon as it fails.
   4432 	Show $log_file if --debug was given on the command line.
   4433 
   4434 2000-04-19  Gordon Matzigkeit  <gord (a] fig.org>
   4435 
   4436 	* stage2/cmdline.c (enter_cmdline): Don't give errors on empty
   4437 	command lines.
   4438 
   4439 	* stage2/common.c (err_list): Clean up wordings slightly.
   4440 
   4441 2000-05-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   4442 
   4443 	Based on a patch by Neal H Walfield <neal (a] walfield.org>:
   4444 	* netboot/misc.c [GRUB] (inet_aton): Defined.
   4445 	* netboot/main.c (arp_server_override): New function.
   4446 	* netboot/etherboot.h [GRUB] (arp_server_override): Declared.
   4447 	(inet_aton): Likewise.
   4448 	* stage2/builtins.c (tftpserver_func): New function.
   4449 	(builtin_tftpserver): New variable.
   4450 	(builtin_table): Added a pointer to BUILTIN_TFTPSERVER.
   4451 	
   4452 2000-05-28  OKUJI Yoshinori  <okuji (a] gnu.org>
   4453 
   4454 	* stage2/asm.S (codestart): Fix a typo: DISKLESS_SUPPORT ->
   4455 	SUPPORT_DISKLESS.
   4456 	* stage2/nbloader.S: Fix the image length and the memory length
   4457 	fields. They shouldn't contain the first sector for a tag.
   4458 	Mmh..., that is unclear as far as I see the Net Boot Image
   4459 	Proposal...
   4460 	* stage2/shared.h (STACKOFF): Enclosed with parentheses.
   4461 	(PROTSTACKINIT): Likewise.
   4462 	
   4463 2000-05-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   4464 
   4465 	Add diskless support, mostly based on patches by Christoph
   4466 	Plattner <Christoph.Plattner (a] dot.at>, but also based on a patch
   4467 	by Chip Salzenberg <chip (a] valinux.com> for PXE. Of course, I've
   4468 	modified both the patches thoroughly to adapt them to my
   4469 	preference.
   4470 
   4471 	* configure.in (--enable-diskless): New option. Set a
   4472 	conditional DISKLESS_SUPPORT.
   4473 	* stage2/Makefile.am (noinst_HEADERS): Added nbi.h.
   4474 	(EXTRA_PROGRAMS): New variable.
   4475 	(pkgdata_DATA) [DISKLESS_SUPPORT]: Added
   4476 	nbgrub and pxegrub.
   4477 	(noinst_DATA) [DISKLESS_SUPPORT]: Added nbloader, pxeloader and
   4478 	diskless.
   4479 	(noinst_PROGRAMS) [DISKLESS_SUPPORT]: Added nbloader.exec,
   4480 	pxeloader.exec and diskless.exec.
   4481 	(PXELOADER_LINK): New variable.
   4482 	(BUILT_SOURCES) [DISKLESS_SUPPORT]: Added diskless_size.h.
   4483 	(diskless_exec_SOURCES): New variable.
   4484 	(diskless_exec_CFLAGS): Likewise.
   4485 	(diskless_exec_LDFLAGS): Likewise.
   4486 	(diskless_exec_LDADD): Likewise.
   4487 	(diskless_size.h): New target.
   4488 	(nbloader_exec_SOURCES): New variable.
   4489 	(nbloader_exec_CFLAGS): Likewise.
   4490 	(nbloader_exec_LDFLAGS): Likewise.
   4491 	(nbloader_exec-nbloader.o): New dependency.
   4492 	(nbgrub): New target.
   4493 	(pxeloader_exec_SOURCES): new variable.
   4494 	(pxeloader_exec_CFLAGS): Likewise.
   4495 	(pxeloader_exec_LDFLAGS): Likewise.
   4496 	(pxegrub): New target.
   4497 	* stage2/asm.S (install_partition): Set to 0xFFFFFF instead of
   4498 	0x020000. What was the benefit from the previous setting?
   4499 	(codestart) [SUPPORT_DISKLESS]: Don't move %dl to BOOT_DRIVE.
   4500 	(boot_drive) [SUPPORT_DISKLESS]: Set to NETWORK_DRIVE instead of
   4501 	zero.
   4502 	* stage2/common.c: Include <shared.h> instead of "shared.h",
   4503 	just for a cosmetic reason.
   4504 	[SUPPORT_DISKLESS]: Include etherboot.h.
   4505 	[SUPPORT_DISKLESS] (setup_diskless_environment): New internal
   4506 	function.
   4507 	(init_bios_info) [SUPPORT_DISKLESS]: Call
   4508 	setup_diskless_environment after the memory initialization is
   4509 	finished. Return if fails.
   4510 	* stage2/nbloader.S: New file.
   4511 	* stage2/pxeloader.S: Likewise.
   4512 	* stage2/nbi.h: Likewise.
   4513 	
   4514 2000-05-25  OKUJI Yoshinori  <okuji (a] gnu.org>
   4515 
   4516 	* netboot/fsys_tftp.c (buf_fill): Warn when amazing things
   4517 	happen.
   4518 	(tftp_dir): Revert previous change. Don't use TFTP_MIN_PACKET
   4519 	but calculate the appropriate length.
   4520 	
   4521 2000-05-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   4522 
   4523 	* netboot/fsys_tftp.c (tftp_dir): Append "0\0" to the request
   4524 	string, because the "tsize" option must be followed by zero,
   4525 	according to RFC 2349.
   4526 	
   4527 2000-05-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   4528 
   4529 	Synchronize the documentation with the code.
   4530 	
   4531 	* docs/user-ref.texi: Added ReiserFS as a supported filesystem.
   4532 	Updated the descriptions about `password', `install', `kernel',
   4533 	and `setup'.
   4534 	Added a description about `lock'.
   4535 	Added descriptions about ERR_UNALIGNED and ERR_PRIVILEGED.
   4536 	Added a description about the option `--force-lba' of
   4537 	the program `grub-install'.
   4538 	* docs/tutorial.texi: Updated the subsection for NetBSD.
   4539 	
   4540 2000-05-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   4541 
   4542 	* stage2/asm.S (set_int13_handler): Don't use MBI to get the
   4543 	lower memory size. Instead, decrease it in the BIOS memory
   4544 	directly and set %eax to it, since MBI.MEM_LOWER may not be the
   4545 	same as [0x413] any longer due to the previous change.
   4546 
   4547 	* grub/asmstub.c (CONVENTIONAL_MEMSIZE): Changed to 640 * 1024
   4548 	from 640. You didn't like the inconsistency between
   4549 	EXTENDED_MEMSIZE and CONVENTIONAL_MEMSIZE, did you?
   4550 	(get_memsize): Return CONVENTIONAL_MEMSIZE >> 10 instead of
   4551 	CONVENTIONAL_MEMSIZE, if TYPE is zero.
   4552 	(get_eisamemsize): Return EXTENDED_MEMSIZE >> 10 instead of
   4553 	EXTENDED_MEMSIZE / 1024. Just a cosmetic change.
   4554 	(MMAR_DESC_LENGTH): New macro. Defined as 20.
   4555 	(get_mmap_entry): Define a new variable DESC_TABLE statically, 
   4556 	and copy the CONTth entry to *DESC if CONT is a correct index.
   4557 	
   4558 2000-05-21  Chip Salzenberg  <chip (a] valinux.com>
   4559 
   4560 	* stage2/common.c (mmap_avail_at): New function, abstracted out
   4561 	of init_bios_info, to scan E820 memory map.
   4562 	(init_bios_info): Use mmap_avail_at for _both_ MBI.MEM_UPPER and
   4563 	MBI.MEM_LOWER.
   4564 
   4565 2000-05-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   4566 
   4567 	Update the network support to Etherboot-4.6.1.
   4568 
   4569 	* netboot/config.c (pci_nic_list) [INCLUDE_TULIP]: Added an
   4570 	entry for Davicom 9102.
   4571 	* netboot/epic100.c: Just copied.
   4572 	* netboot/pci.h: Likewise.
   4573 	* netboot/tulip.c: Likewise.
   4574 	* netboot/etherboot.h (tftp): Change the type of the first
   4575 	argument to const char * from char *.
   4576 	* netboot/main.c (tftp): Likewise.
   4577 	
   4578 2000-05-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   4579 
   4580 	* util/grub-install.in: If the program `cp' fails, exit with the
   4581 	status code 1. Suggested by Pavel Roskin.
   4582 	
   4583 2000-05-13  OKUJI Yoshinori  <okuji (a] gnu.org>
   4584 
   4585 	From Pixel <pixel (a] mandrakesoft.com>:
   4586 	* stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_EXTENDED): New macro.
   4587 	(IS_PC_SLICE_TYPE_EXTENDED): Added a check for
   4588 	PC_SLICE_TYPE_LINUX_EXTENDED.
   4589 	
   4590 2000-05-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   4591 
   4592 	* stage2/common.c (init_bios_info) [!STAGE1_5]: When the memory
   4593 	map is present, search the maximum for MEMTMP in bytes instead
   4594 	of kilobytes and set EXTENDED_MEMORY to MEMTMP minus 1MB in
   4595 	kilobytes.
   4596 	
   4597 2000-05-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   4598 
   4599 	Ignore any memory holes when passing the maximum memory address
   4600 	to non-Multiboot kernels (i.e. Linux and *BSD).
   4601 	
   4602 	* stage2/common.c [!STAGE1_5] (extended_memory): New global
   4603 	variable.
   4604 	(init_bios_info) [!STAGE1_5]: Change the type of CONT, MEMTMP
   4605 	and ADDR to unsigned long from int.
   4606 	Set EXTENDED_MEMORY to MBI.MEM_UPPER by default.
   4607 	If MBI.MMAP_LENGTH is not zero, set EXTENDED_MEMORY to the
   4608 	maximum available address, ignoring any memory holes.
   4609 	If MBI.MMAP_LENGTH is zero but get_eisamemsize returns other
   4610 	than -1, set EXTENDED_MEMORY to (CONT >> 10) + 0x3c00 if CONT is
   4611 	non-zero, otherwise, set it to MEMTMP.
   4612 	* stage2/shared.h [!STAGE1_5] (extended_memory): Declared.
   4613 	* stage2/boot.c (load_image): Always pass the "mem=" option to a
   4614 	Linux kernel, using EXTENDED_MEMORY instead of MBI.MEM_UPPER.
   4615 	(bsd_boot): Use EXTENDED_MEMORY instead of MBI.MEM_UPPER.
   4616 	
   4617 2000-04-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   4618 
   4619 	* stage1/stage1.S (message): Use lodsb instead of incw and movb.
   4620 	From Andrew Clausen <clausen (a] gnu.org>.
   4621 
   4622 	* stage1/stage1.S (copy_buffer): Set %cx to 0x100 and use movsw
   4623 	instead of movsb, since it is guaranteed that the region is
   4624 	properly aligned.
   4625 	
   4626 2000-04-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   4627 
   4628 	* stage2/builtins.c (setup_func): Use SECTOR_BITS instead of
   4629 	SECTOR_SIZE to compute BLOCKSIZE.
   4630 
   4631 2000-04-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   4632 
   4633 	* netboot/depca.c: Copied from Etherboot-4.6.0.
   4634 	
   4635 2000-04-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   4636 
   4637 	More security-related features.
   4638 	
   4639 	* stage2/builtins.c (auth): New global variable.
   4640 	(configfile_func): Clear AUTH before jumping to cmain.
   4641 	(lock_func): New function.
   4642 	(builtin_lock): New variable.
   4643 	(password_func): Make sure that LEN + 2 is less than or equal to
   4644 	PASSWORD_BUFLEN, because now the password must be terminated
   4645 	with double NULs, in order to permit an empty configuration file
   4646 	name.
   4647 	Copy LEN bytes from ARG to PASSWORD, instead of LEN + 1 bytes.
   4648 	Clear the rest of the buffer PASSWORD.
   4649 	(builtin_table): Added a pointer to BUILTIN_LOCK.
   4650 	* stage2/common.c (err_list): Added an entry for ERR_PRIVILEGED.
   4651 	* stage2/stage2.c (run_menu): If AUTH is true, show the messages
   4652 	for a non-password configuration, even if PASSWORD is not NULL.
   4653 	Likewise, if AUTH is true, allow the user to use privileged
   4654 	instructions (such as `c').
   4655 	If a correct password is entered, check if *PPTR is NUL or not.
   4656 	If it is NUL, set AUTH to 1 and go to the label restart,
   4657 	otherwise, copy PPTR to NEW_FILE, clear AUTH, and return.
   4658 	* stage2/shared.h (grub_error_t): Added a new constant
   4659 	ERR_PRIVILEGED.
   4660 	(auth): Declared.
   4661 	
   4662 2000-04-23  OKUJI Yoshinori  <okuji (a] gnu.org>
   4663 
   4664 	* docs/user-ref.texi (Command-line-specific commands): Don't use
   4665 	the command @var for the argument "file" to the command
   4666 	"configfile" on the definition.
   4667 	
   4668 2000-04-22  OKUJI Yoshinori  <okuji (a] gnu.org>
   4669 
   4670 	Update the network support to Etherboot 4.5.8.
   4671 
   4672 	* configure.in (--enable-3c590): New option.
   4673 	(--enable-3c595): Likewise.
   4674 	(--enable-depca): Likewise.
   4675 	(--enable-lance): Likewise.
   4676 	(--enable-ns8390): Likewise.
   4677 	(--enable-ntulip): Likewise.
   4678 	(--enable-lancepci): Removed.
   4679 	(--enable-nepci): Likewise.
   4680 	(--enable-otulip): Likewise.
   4681 	(--enable-smc9000): The duplicated one is named to ...
   4682 	(--enable-smc9000-scan): ... this. This was a typo, perhaps.
   4683 	
   4684 	* netboot/Makefile.am (libdrivers_a_SOURCES): Removed
   4685 	byteorder.h, if.h, netboot_config.h and netdevice.h, and added
   4686 	cards.h.
   4687 	(EXTRA_libdrivers_a_SOURCES): Removed ntulip.c and tulip.h, and
   4688 	added 3c595.c, 3c595.h, depca.c, otulip.c and otulip.h.
   4689 	(libdrivers_a_CFLAGS): Define FSYS_TFTP as 1 instead of empty.
   4690 	(EXTRA_DIST): Removed ntulip.txt, and added cs89x0.txt and
   4691 	tulip.txt.
   4692 	(3c595_drivers): New variable.
   4693 	(depca_drivers): Likewise.
   4694 	(lance_drivers): Removed lancepci.o and added lance.o.
   4695 	(ns8390_drivers): Removed nepci.o and added ns8390.o.
   4696 	(ntulip_drivers): Deleted.
   4697 	(otulip_drivers): New variable.
   4698 	($(3c595_drivers)): New target.
   4699 	($(depca_drivers)): Likewise.
   4700 	($(ntulip_drivers)): Deleted.
   4701 	($(otulip_drivers)): New target.
   4702 	(3c590_o_CFLAGS): New variable.
   4703 	(3c595_o_CFLAGS): Likewise.
   4704 	(depca_o_CFLAGS): Likewise.
   4705 	(lancepci_o_CFLAGS): Deleted.
   4706 	(lance_o_CFLAGS): New variable.
   4707 	(nepci_o_CFLAGS): Deleted.
   4708 	(ns8390_o_CFLAGS): New variable.
   4709 	(ntulip_o_CFLAGS): Deleted.
   4710 	(otulip_o_CFLAGS): New variable.
   4711 	
   4712 	* netboot/3c90x.c: Updated to Etherboot-4.5.8.
   4713 	* netboot/3c90x.txt: Likewise.
   4714 	* netboot/cs89x0.c: Likewise.
   4715 	* netboot/cs89x0.h: Likewise.
   4716 	* netboot/eepro100.c: Likewise.
   4717 	* netboot/epic100.c: Likewise.
   4718 	* netboot/epic100.h: Likewise.
   4719 	* netboot/i82586.c: Likewise.
   4720 	* netboot/lance.c: Likewise.
   4721 	* netboot/linux-asm-io.h: Likewise.
   4722 	* netboot/linux-asm-string.h: Likewise.
   4723 	* netboot/nic.h: Likewise.
   4724 	* netboot/ns8390.c: Likewise.
   4725 	* netboot/ns8390.h: Likewise.
   4726 	* netboot/pci.c: Likewise.
   4727 	* netboot/pci.h: Likewise.
   4728 	* netboot/rtl8139.c: Likewise.
   4729 	* netboot/sk_g16.c: Likewise.
   4730 	* netboot/sk_g16.h: Likewise.
   4731 	* netboot/smc9000.c: Likewise.
   4732 	* netboot/smc9000.h: Likewise.
   4733 	* netboot/tiara.c: Likewise.
   4734 	* netboot/tulip.c: Likewise.
   4735 	* netboot/via-rhine.c: Likewise.
   4736 
   4737 	* netboot/config.c: Updated to Etherboot-4.5.8 and modified (see
   4738 	below).
   4739 	[GRUB] (print_config): Undefined.
   4740 	(eth_probe) [GRUB]: If PROBED is true, do nothing. Otherwise,
   4741 	clear NETWORK_READY and ARPTABLE, set ROM to ROM_INFO_LOCATION,
   4742 	and set PROBED to 1 if succeeds.
   4743 	* netboot/etherboot.h: Likewise,
   4744 	(GRUB): New macro.
   4745 	[GRUB]: Include <shared.h>.
   4746 	[GRUB] (NO_DHCP_SUPPORT): Undefined.
   4747 	[GRUB] (RELOC): Defined as zero.
   4748 	[GRUB] (INTERNAL_BOOTP_DATA): Defined as one.
   4749 	[GRUB] (USE_INTERNAL_BUFFER): Likewise.
   4750 	[GRUB] (BACKOFF_LIMIT): Defined as 7.
   4751 	[GRUB] (CTRL_C): New macro.
   4752 	[GRUB] (print_network_configuration): Declared.
   4753 	[GRUB] (ip_abort): Likewise.
   4754 	[GRUB] (network_ready): Likewise.
   4755 	* netboot/fsys_tftp.c: Don't include <netboot_config.h>.
   4756 	(isocket): Renamed to ...
   4757 	(iport): ... this.
   4758 	(osocket): Renamed to ...
   4759 	(oport): ... this.
   4760 	(bcounter): New variable.
   4761 	(buf_fill): When checking the block order, see BCOUNTER as well
   4762 	as BLOCK.
   4763 	Don't process a packet, if BLOCK minus PREVBLOCK is not 1,
   4764 	instead of if BLOCK is less than or equal to PREVBLOCK.
   4765 	Increment BCOUNTER after reseting RETRY.
   4766 	(send_rrq): Clear BCOUNTER.
   4767 	Call await_reply with AWAIT_QDRAIN.
   4768 	* netboot/main.c: Don't include <netboot_config.h>.
   4769 	(dhcpdiscover): Made const.
   4770 	(dhcprequest): Likewise. Updated the contents.
   4771 	(broadcast): Made const.
   4772 	(udp_transmit): Copied.
   4773 	(tftp): Likewise.
   4774 	(bootp): Likewise.
   4775 	(rarp): Likewise.
   4776 	(await_reply): Likewise.
   4777 	(decode_rfc1533): Likewise.
   4778 	(rfc951_sleep): Likewise.
   4779 	(cleanup_net): Likewise.
   4780 	* netboot/misc.c (sleep): Copied.
   4781 	(twiddle): Likewise.
   4782 	(getdec): Likewise.
   4783 	* netboot/osdep.h: Copied and modified (see below).
   4784 	[GRUB] (ETHERBOOT32): Used the same definition as Linux and
   4785 	FreeBSD.
   4786 	[GRUB] (ntohl): Likewise.
   4787 	[GRUB] (htonl): Likewise.
   4788 	[GRUB] (ntohs): Likewise.
   4789 	[GRUB] (htons): Likewise.
   4790 	[GRUB] (swap32): Likewise.
   4791 	[GRUB] (swap16): Likewise.
   4792 	[GRUB]: Include "linux-asm-io.h".
   4793 
   4794 	* netboot/byteorder.h: Removed.
   4795 	* netboot/if.h: Likewise.
   4796 	* netboot/netboot_config.h: Likewise.
   4797 	* netboot/netdevice.h: Likewise.
   4798 	* netboot/ntulip.c: Likewise.
   4799 	* netboot/ntulip.txt: Likewise.
   4800 	* netboot/tulip.h: Likewise.
   4801 	
   4802 	* netboot/3c595.c: New file. Copied from Etherboot-4.5.8.
   4803 	* netboot/3c595.h: Likewise.
   4804 	* netboot/cards.h: Likewise.
   4805 	* netboot/cs89x0.txt: Likewise.
   4806 	* netboot/depca.c: Likewise.
   4807 	* netboot/otulip.c: Likewise.
   4808 	* netboot/otulip.h: Likewise.
   4809 	* netboot/tulip.txt: Likewise.
   4810 	
   4811 2000-02-29  Jochen Hoenicke  <jochen (a] gnu.org>
   4812 
   4813 	* stage2/common.c (err_list): Added message for ERR_UNALIGNED.
   4814 	* stage2/shared.h [!STAGE1_5] (disk_read_hook,disk_read_func): New
   4815  	parameters offset and length.
   4816 	(ERR_UNALIGNED): New error code.
   4817 	* stage2/disk_io.c (rawread) [!STAGE1_5]: Call disk_read_func with
   4818 	offset and length.
   4819 	* stage2/builtin.c (disk_read_print_func): Print offset and length.
   4820 	(blocklist_func): Print detailed byte ranges for partial sectors.
   4821 	(install_func): Detect partial sectors and print error message.
   4822 
   4823 2000-04-18  Pavel Roskin  <pavel_roskin (a] geocities.com>
   4824 
   4825 	* util/grub-install.in: Don't use `!' in `test' for more
   4826 	portability.
   4827 	Don't use `for' without `in' for compatability with ash.
   4828 	Check install_device before running grub if possible. Added
   4829 	error messages if install_device is not set or not unique.
   4830 	Exit if mkdir fails.
   4831 	Add a message about successful installation.
   4832 	Remove unneeded backslash in the final message.
   4833 	(convert): use `test -b' instead of `test -e' because ash
   4834 	doesn't	understand the later. Correct error message accordingly.
   4835 	
   4836 2000-04-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   4837 
   4838 	The user doesn't have to recompile GRUB for his/her buggy BIOS
   4839 	any longer. It is configurable to ignore the LBA support bitmap
   4840 	at the installation time.
   4841 	
   4842 	* stage1/stage1.S (force_lba): New variable.
   4843 	(stage2_address): Moved forwards, to align some variables in
   4844 	natural boundaries.
   4845 	(real_start): Check if FORCE_LBA is non-zero, if so, jump to
   4846 	skip_lba_bitmap_check, otherwise, check if bit 0 of the support
   4847 	bitmap is non-zero.
   4848 	Don't use #ifdef for CHECK_LBA_SUPPORT_BITMAP.
   4849 	(skip_lba_bitmap_check): New label.
   4850 	* stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 1.
   4851 	(STAGE1_FORCE_LBA): New macro.
   4852 	(STAGE1_STAGE2_ADDRESS): Set to 0x42.
   4853 	(STAGE1_STAGE2_SECTOR): Set to 0x44.
   4854 	(STAGE1_STAGE2_SEGMENT): Set to 0x48.
   4855 	* stage2/asm.S (force_lba): New variable.
   4856 	* stage2/bios.c (get_diskinfo): Don't use #ifdef for
   4857 	CHECK_LBA_SUPPORT_BITMAP. Instead, check if FORCE_LBA is
   4858 	non-zero. If so, don't check the bit 0 of DRP.FLAG.
   4859 	* stage2/builtins.c (install_func): Check if a new option
   4860 	`--force-lba' is specified. If specified, set IS_FORCE_LBA to 1
   4861 	and set ARG to a value returned by skip_to. Otherwise,
   4862 	IS_FORCE_LBA is zero.
   4863 	Set the "force LBA" flag in STAGE1_BUFFER (the offset is
   4864 	STAGE1_FORCE_LBA) to IS_FORCE_LBA.
   4865 	Likewise, set the "force LBA" flag in STAGE2_SECOND_BUFFER
   4866 	(the offset is STAGE2_FORCE_LBA) to IS_FORCE_LBA.
   4867 	If IS_STAGE1_5 is true, then modify the Stage2, regardless of
   4868 	the presence of the option REAL_CONFIG_FILE. Set the "force LBA"
   4869 	flag in SCRATCHADDR (the offset is STAGE2_FORCE_LBA) to
   4870 	IS_FORCE_LBA.
   4871 	(builtin_install): Added description about `--force-lba' into
   4872 	the docs.
   4873 	(setup_func): Check if `--force-lba' is specified in ARG. If
   4874 	specified, set IS_FORCE_LBA to 1 and set ARG to a value returned
   4875 	by skip_to. Otherwise, IS_FORCE_LBA is zero.
   4876 	If IS_FORCE_LBA is true, prepend "--force-lba " to CMD_ARG.
   4877 	(builtin_setup): Added descriptions about `--force-lba' into the
   4878 	docs.
   4879 	* stage2/shared.h (STAGE2_FORCE_LBA): New macro.
   4880 	(STAGE2_VER_STR_OFFS): Set to 0xe.
   4881 	(force_lba): Declared.
   4882 	* util/grub-install.in (force_lba): New variable. Set to an
   4883 	empty sting by default.
   4884 	(usage): Added a description about `--force-lba'.
   4885 	(--force-lba): Checked in the option handling code. If
   4886 	specified, set FORCE_LBA to "--force-lba".
   4887 	Run the command "setup" with $force_lba added before
   4888 	$install_drive.
   4889 	* configure.in (--disable-lba-support-bitmap): Removed.
   4890 	
   4891 2000-04-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   4892 
   4893 	* util/grub-install.in (root_device): Append `/' to ${rootdir},
   4894 	since ROOTDIR may be empty. Reported by Satoshi Nagayasu
   4895 	<snaga (a] oak.forus.or.jp>.
   4896 	
   4897 2000-04-15  Jochen Hoenicke  <jochen (a] gnu.org>
   4898 
   4899 	* configure.in: Added --disable-reiserfs option.
   4900 	* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_reiserfs.c.
   4901 	(libgrub_a_CFLAGS): Added -DFSYS_REISERFS=1.
   4902 	(pkgdata_DATA): Added reiserfs_stage1_5.
   4903 	(noinst_PROGRAMS): Added reiserfs_stage1_5.exec.
   4904 	(pre_stage2_exec_SOURCES): Added fsys_reiserfs.c.
   4905 	(reiserfs_stage1_5_exec_SOURCES): New variable.
   4906 	(reiserfs_stage1_5_exec_CFLAGS): Likewise.
   4907 	(reiserfs_stage1_5_exec_LDFLAGS): Likewise.
   4908 	* stage2/disk_io.c (fsys_table): Added reiserfs entry.
   4909 	* stage2/filesys.h (FSYS_REISERFS_NUM): New macro.
   4910 	[FSYS_REISERFS] (reiserfs_mount, reiserfs_read, reiserfs_dir,
   4911  	reiserfs_embed): Declare external function from fsys_reiserfs.c.
   4912 	[!NUM_FSYS] (NUM_FSYS): Added FSYS_REISERFS_NUM.
   4913 	* stage2/builtins.c (setup_func): Added reiserfs to
   4914 	STAGE1_5_MAP.
   4915 	* stage2/shared.h (STAGE2_ID_REISERFS_STAGE1_5): New macro.
   4916 	[STAGE1_5] [FSYS_REISERFS] (STAGE2_ID): Defined to
   4917  	STAGE2_ID_REISERFS_STAGE1_5.
   4918 	* stage2/fsys_reiserfs.c: New file.
   4919 
   4920 	* stage2/builtins.c (embed_func): Call open_device instead of
   4921 	open_partition.
   4922 	Don't check if the filesystem is FFS. Instead, check if
   4923 	FSYS_TABLE[FSYS_TYPE].EMBED_FUNC is NULL and, if not, call it.
   4924 	(find_func): When CURRENT_SLICE is not a BSD slice, check if the
   4925 	file can be opened, only if open_device succeeds.
   4926 	* stage2/filesys.h (fsys_table): New entry embed_func.
   4927 	(ffs_embed): Declared.
   4928 	* stage2/disk_io.c (fsys_table): Fill embed_func entries. The
   4929 	entry for FFS is ffs_embed and the others are NULLs.
   4930 	* stage2/fsys_ffs.c (ffs_embed): New function.
   4931 
   4932 	* stage2/shared.h (SECTOR_SHIFT): New constant with
   4933 	(1 << SECTOR_SHIFT) == SECTOR_SIZE.
   4934 	* stage2/shared.h [!NO_BLOCK_FILES] (block_files): No longer
   4935 	extern.
   4936 	* stage2/disk_io.c [!NO_BLOCK_FILES] (block_files): Likewise.
   4937 	(rawread, devread): Use SECTOR_BITS.
   4938 	(rawread): Fixed calculation of BUFADDR if an error occured. Set
   4939 	it to BUFFERADDR + BYTE_OFFSET instead of BUFFERSEG +
   4940 	BYTE_OFFSET.
   4941 	(grub_close) [!NO_BLOCK_FILES]: If BLOCK_FILE is non-zero,
   4942 	return immediately.
   4943 	(grub_close): Don't check if FSYS_TYPE is NUM_FSYS.
   4944 	* stage2/fsys_fat.c (log2): New inline function.
   4945 	(fat_mount): Use log2 instead of calculating the size/bit by a
   4946 	loop.
   4947 
   4948 2000-04-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   4949 
   4950 	* configure.in: Use AC_PATH_PROG instead of AC_PATH_TOOL,
   4951 	because I don't want to use the CVS version. Now you can use
   4952 	autoconf 2.13.
   4953 	
   4954 2000-04-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   4955 
   4956 	* stage2/stage2.c (run_menu): In the case where C is `o', check
   4957 	if ENTRYNO is less than 11. If not, increase FIRST_ENTRY instead
   4958 	of ENTRYNO. Reported by Pixel <pixel (a] mandrakesoft.com>.
   4959 	
   4960 2000-04-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   4961 
   4962 	* stage1/depcomp: Removed, because it makes `make dist'
   4963 	unworkable.
   4964 
   4965 	For developers: Don't run automake with --add-missing. Instead,
   4966 	you should specify --force-missing. If you really want to add a
   4967 	script from automake, copy it at hand. *sigh*
   4968 	
   4969 2000-04-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   4970 
   4971 	* stage2/builtins.c (kernel_func): Added missing ``size''
   4972 	arguments into `grub_memcmp's. Reported by Christoph Plattner
   4973 	<christoph.plattner (a] dot.at>.
   4974 
   4975 	From Torsten Duwe <duwe (a] caldera.de>:
   4976 	* stage2/boot.c (load_initrd): Mask the address with 0x3FFFFFFF
   4977 	instead of 0xFFFFFFFF to place the initrd below 1GB.
   4978 	(load_image): In Linux boot, add the option "mem=" only if more
   4979 	than 64MB are present.
   4980 	* grub/asmstub.c [__linux__]: Include <linux/cdrom.h> for
   4981 	CDROM_GET_CAPABILITY.
   4982 	[__FreeBSD__ || __NetBSD__ || __OpenBSD__]: Include <sys/cdio.h>
   4983 	for CDIOCCLRDEBUG.
   4984 	(check_device) [__linux__] [CDROM_GET_CAPABILITY]: If ioctl for
   4985 	CDROM_GET_CAPAIBILITY succeeds, return zero.
   4986 	[__FreeBSD__ || __NetBSD__ || __OpenBSD__] [CDIOCCLRDEBUG]: If
   4987 	ioctl for CDIOCCLRDEBUG succeeds, return zero.
   4988 
   4989 	* stage2/boot.c (load_initrd): Subtract 0x1000 (one page size)
   4990 	from MOVETO, to avoid a Linux 2.3.xx's bug.
   4991 	
   4992 2000-04-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   4993 
   4994 	Add a dirty hack into the kernel loader so that the user can
   4995 	force GRUB to load NetBSD ELF kernels. The support code is
   4996 	mostly stolen from a patch by Pavel Roskin.
   4997 	
   4998 	* stage2/boot.c (load_image): Added an optional argument
   4999 	SUGGESTED_TYPE.
   5000 	If BUFFER is a bootable ELF image and SUGGESTED_TYPE is
   5001 	KERNEL_TYPE_NETBSD, then load it as an ELF image and set STR2 to
   5002 	"NetBSD" and TYPE to SUGGESTED_TYPE.
   5003 	If the image is a Linux kernel and SUGGESTED_TYPE is not
   5004 	KERNEL_TYPE_NONE, make sure that SUGGESTED_TYPE matches up to
   5005 	the Linux kernel type.
   5006 	If TYPE is KERNEL_TYPE_NETBSD, set MEMADDR to
   5007 	RAW_ADDR (phdr->paddr & 0xFFFFFF) like FreeBSD.
   5008 	If SUGGESTED_TYPE is not KERNEL_TYPE_NONE, make sure that
   5009 	SUGGESTED_TYPE is equal to TYPE.
   5010 	(bsd_boot): If TYPE is not KERNEL_TYPE_FREEBSD (i.e. NetBSD or
   5011 	OpenBSD) and the bit MB_INFO_AOUT_SYMS is set, set END_MARK to
   5012 	MBI.SYMS.A.ADDR + 4 + MBI.SYMS.A.TABSIZE + MBI.SYMS.A.STRSIZE.
   5013 	If the bit is clear, set END_MARK to 0.
   5014 	Pass END_MARK to *ENTRY_ADDR instead of directly calculating the
   5015 	end of symbols.
   5016 	* stage2/shared.h (load_image): Added the argument
   5017 	SUGGESTED_TYPE to the prototype.
   5018 	* stage2/builtins.c (kernel_func): Added a new option,
   5019 	`--type=TYPE'. Check if ARG is started with "--type=".
   5020 	If so, set SUGGESTED_TYPE to KERNEL_TYPE_NETBSD,
   5021 	KERNEL_TYPE_FREEBSD, KERNEL_TYPE_NETBSD, KERNEL_TYPE_LINUX,
   5022 	KERNEL_TYPE_BIG_LINUX, KERNEL_TYPE_MULTIBOOT if ARG is "netbsd",
   5023 	"freebsd", "openbsd", "linux", "biglinux", "multiboot",
   5024 	respectively. Otherwise, set ERRNUM to ERR_BAD_ARGUMENT and
   5025 	return 1. Set KERNEL_ARG to a string after the option.
   5026 	(builtin_kernel): Added a description about the new option.
   5027 	
   5028 2000-04-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   5029 
   5030 	* stage2/stage2.c (run_menu) [GRUB_UTIL]: Removed a nested
   5031 	"#ifdef GRUB_UTIL" ... "#endif".
   5032 	* stage2/builtins.c (unhide_func): Don't modify SAVED_DRIVE or
   5033 	SAVED_PARTITION.
   5034 	(hide_func): Likewise.
   5035 	* stage2/disk_io.c (set_partition_hidden_flag): Use
   5036 	CURRENT_DRIVE and CURRENT_PARTITION instead of SAVED_DRIVE and
   5037 	SAVED_PARTITION. Check if bit 7 in CURRENT_DRIVE is non-zero
   5038 	instead of if CURRENT_DRIVE is non-zero.
   5039 
   5040 	* grub/asmstub.c (init_device_map): Change the message
   5041 	"Probe devices..." to "Probing devices...". Suggested by Neal H
   5042 	Walfield.
   5043 
   5044 	* stage2/pc_slice.h (PC_SLICE_TYPE_HIDDEN_FLAG): Move the
   5045 	definition before the PC partition type definitions.
   5046 	(IS_PC_SLICE_TYPE_FAT): Clear the hidden flag in TYPE before
   5047 	checking if TYPE is either of the FAT partition types. Reported
   5048 	by Thomas Schweikle <tschweikle (a] fiducia.de>.
   5049 	
   5050 2000-04-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   5051 
   5052 	* stage2/builtins.c (setup_func): Don't read a stage 1.5 to get
   5053 	the size. Use FILEMAX instead.
   5054 	If embed_func fails (i.e. ERRNUM is non-zero), goto fail.
   5055 	
   5056 2000-04-02  OKUJI Yoshinori  <okuji (a] gnu.org>
   5057 
   5058 	Suggested by Neal H Walfield <neal (a] walfield.org>:
   5059 	* stage2/common.c (init_bios_info): Removed a nested
   5060 	"#ifndef STAGE1_5" ... "#endif".
   5061 	* util/grub-install.in: Quote most of the references to
   5062 	shell variables by double quotation marks.
   5063 	(usage): Added a description about the argument.
   5064 	* stage2/builtins.c (setup_func): Change each of the messages
   5065 	when running embed_func and install_func. "Run" -> "Running".
   5066 	If install_func succeeds, print a message ("Done.").
   5067 
   5068 	From Frank Mehnert <fm3 (a] os.inf.tu-dresden.de>:
   5069 	* stage2/char_io.c (convert_to_ascii) [!STAGE1_5]: Accept 'X'
   5070 	and 'b' as well. If C is 'X' or 'b', then set MULT to 16.
   5071 	(grub_printf): Set a new variable MASK to 0xFFFFFFFF by default.
   5072 	Mask *DATAPTR with MASK when calling convert_to_ascii.
   5073 	(grub_printf) [!STAGE1_5]: Added 'b' and 'X'. If C is 'b', set
   5074 	MASK to 0xFF and fall through to the case 'u'. 'X' is the same
   5075 	as 'x'.
   5076 
   5077 	From Josip Rodin <joy (a] cibalia.gkvk.hr>:
   5078 	* grub.texi: Several awkward English sentences are fixed.
   5079 	* tutorial.texi: Likewise.
   5080 	* user-ref.texi: Likewise.
   5081 	* appendices.texi: Likewise.
   5082 	
   5083 2000-03-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   5084 
   5085 	* stage1/depcomp: New file. Automake forces to install it. This
   5086 	is a known bug, so I will remove this when Tom fixes it.
   5087 	* configure.in (AM_INIT_AUTOMAKE): Don't get the package name
   5088 	and the version from debian/changelog. This is a workaround.
   5089 	
   5090 2000-03-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   5091 
   5092 	* stage2/Makefile.am (nodist_pkgdata_DATA): Renamed to ...
   5093 	(pkgdata_DATA): ... this. DATA is not distributed by default.
   5094 	(CLEANFILES): Delete the first one. I don't know why this
   5095 	variable was duplicated.
   5096 	Set to $(pkgdata_DATA) instead of $(nodist_pkgdata_DATA).
   5097 	(start_exec_DEPENDENCIES): Removed. This doesn't make sense.
   5098 	(start_exec-start.o): New rule.
   5099 	* depcomp: New file. Copied from automake.
   5100 	* missing: Updated from automake.
   5101 	
   5102 2000-03-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   5103 
   5104 	* netboot/Makefile.am (EXTRA_libdrivers_a_SOURCES): 3c89x0.h ->
   5105 	cs89x0.h. Just a typo.
   5106 	
   5107 2000-03-10  Gordon Matzigkeit  <gord (a] fig.org>
   5108 
   5109 	* debian/rules: Strip mbchk.
   5110 
   5111 	* debian/postinst: Fix up /usr/doc symlink creation.
   5112 
   5113 2000-03-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   5114 
   5115 	* netboot/fsys_tftp.c (tftp_dir): Add BUF_READ into FILEMAX
   5116 	after BUF_EOF becomes non-zero. Reported by Per Lundberg.
   5117 	
   5118 2000-03-01  OKUJI Yoshinori  <okuji (a] gnu.org>
   5119 
   5120 	* stage2/builtins.c (color_func): Return 1 if safe_parse_maxint
   5121 	returns zero instead of non-zero. Reported by Magnus Holmberg
   5122 	<pucko (a] lysator.liu.se>.
   5123 	
   5124 2000-02-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   5125 
   5126 	* grub/asmstub.c [__linux__]: Include <linux/kdev_t.h> for the
   5127 	macro MAJOR. From Kalle Olavi Niemitalo <tosi (a] ees2.oulu.fi>.
   5128 	
   5129 2000-02-27  OKUJI Yoshinori  <okuji (a] gnu.org>
   5130 
   5131 	* docs/tutorial.texi (Network): New chapter.
   5132 	
   5133 2000-02-26  OKUJI Yoshinori  <okuji (a] gnu.org>
   5134 
   5135 	* docs/help2man: Upgraded to 1.020.
   5136 	* docs/grub.8: Regenerated.
   5137 	* docs/grub-install.8: Likewise.
   5138 	* docs/mbchk.1: Likewise.
   5139 
   5140 	* docs/tutorial.texi (Boot): Rewritten heavily. Added the notes
   5141 	on FreeBSD, NetBSD, OpenBSD, DOS/Windows and SCO UnixWare.
   5142 	* docs/menu.lst: Load "/boot/loader" instead of "/kernel" in the
   5143 	FreeBSD entry. This is consistent with the documentation.
   5144 	
   5145 2000-02-25  OKUJI Yoshinori  <okuji (a] gnu.org>
   5146 
   5147 	* netboot/fsys_tftp.c (tftp_read): Set BUF_READ to zero if
   5148 	FILEPOS is less than SAVED_FILEPOS, before calling buf_fill.
   5149 	Don't discard all of the copied data so that we can move FILEPOS
   5150 	backwards cheaply. Now SAVED_FILEPOS indicates the file position
   5151 	corresponding to the first byte of BUF. If (FILEPOS -
   5152 	SAVED_FILEPOS) is greater than (FSYS_BUFLEN / 2), move the data
   5153 	forwards and add (FSYS_BUFLEN / 2) into SAVED_FILEPOS and
   5154 	subtract the same value from BUF_READ.
   5155 	
   5156 2000-02-24  OKUJI Yoshinori  <okuji (a] gnu.org>
   5157 
   5158 	* stage2/disk_io.c [!STAGE1_5] (print_fsys_type): Mask
   5159 	CURRENT_SLICE with 0xFF when printing the partition type.
   5160 
   5161 	* grub/asmstub.c [__linux__]: Include <linux/major.h> for the
   5162 	definition FLOPPY_MAJOR.
   5163 	(check_device) [__linux__]: Skip the HDIO_GETGEO ioctl if the
   5164 	major number of ST.ST_RDEV is FLOPPY_MAJOR.
   5165 	
   5166 2000-02-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   5167 
   5168 	* stage2/disk_io.c (check_BSD_parts) [!STAGE1_5]: Use the term
   5169 	"BSD sub-partition" instead of "BSD slice" for consistency.
   5170 
   5171 	* stage2/builtins.c (boot_func): Copy the partition table to
   5172 	BOOT_PART_TABLE instead of (BOOTSEC_LOCATION +
   5173 	BOOTSEC_PART_OFFSET). Don't use grub_memmove, but copy it
   5174 	directly, since memcheck is too strict.
   5175 	* stage2/disk_io.c (real_open_partition) [!STAGE1_5]: Set
   5176 	CUR_PART_ADDR to (BOOT_PART_TABLE + (i << 4)).
   5177 	* stage2/shared.h (BOOT_PART_TABLE): New macro.
   5178 	(chain_stage1): Change the types of all the arguments to
   5179 	unsigned long.
   5180 	(chain_stage2): Likewise.
   5181 	* grub/asmstub.c (chain_stage1): Adjusted to the prototype.
   5182 	(chain_stage2): Likewise.
   5183 	
   5184 2000-02-21  OKUJI Yoshinori  <okuji (a] gnu.org>
   5185 
   5186 	* stage2/disk_io.c (check_BSD_parts) [!STAGE1_5]: If the BSD
   5187 	label is invalid, print a message with the partition type in the
   5188 	case where FLAGS is non-zero and DO_COMPLETION is zero.
   5189 	
   5190 2000-02-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   5191 
   5192 	* docs/user-ref.texi (Command-line-specific commands): Added a
   5193 	description about "cmp".
   5194 	* docs/appendices.texi (Reporting bugs): Rewritten.
   5195 	
   5196 2000-02-20  OKUJI Yoshinori  <okuji (a] gnu.org>
   5197 
   5198 	Update the netboot code to Etherboot 4.4.3.
   5199 	
   5200 	* netboot/netboot_config.h: Copied from etherboot-4.4.3.
   5201 	* netboot/cs89x0.h: Likewise.
   5202 	* netboot/cs89x0.c: Likewise.
   5203 	* netboot/i82586.c: Likewise.
   5204 	* netboot/lance.c: Likewise.
   5205 	* netboot/linux-asm-string.h: Likewise.
   5206 	* netboot/nic.h: Likewise.
   5207 	* netboot/ntulip.c: Likewise.
   5208 	* netboot/osdep.h: Likewise.
   5209 	* netboot/pci.h: Likewise.
   5210 	* netboot/pci.c: Likewise.
   5211 	* netboot/rtl8139.c: Likewise.
   5212 	* netboot/tiara.c: Likewise.
   5213 	
   5214 2000-02-19  OKUJI Yoshinori  <okuji (a] gnu.org>
   5215 
   5216 	* stage2/builtins.c (cmp_func): New function.
   5217 	(builtin_cmp): New variable.
   5218 	(builtin_table): Added a pointer to BUILTIN_CMP.
   5219 
   5220 	* stage2/fsys_fat.c (fat_mount): Check if BPB.SECTS_PER_CLUST is
   5221 	zero after reading the BPB to avoid zero division.
   5222 	
   5223 2000-02-18  OKUJI Yoshinori  <okuji (a] gnu.org>
   5224 
   5225 	* stage2/disk_io.c [!STAGE1_5] (make_saved_active): Make sure
   5226 	that SAVED_PARTITION is not an extended partition.
   5227 	If SAVED_DRIVE is not a hard disk drive, set ERRNUM to
   5228 	ERR_DEV_VALUES and return zero.
   5229 
   5230 	* netboot/3c59x.c: Removed.
   5231 	* netboot/Makefile.am (EXTRA_libdrivers_a_SOURCES): Deleted
   5232 	3c59x.c.
   5233 	(3c59x_drivers): Deleted.
   5234 	(3c59x_o_CFLAGS): Likewise.
   5235 	* configure.in (--enable-3c59x): Likewise.
   5236 	
   5237 2000-02-17  OKUJI Yoshinori  <okuji (a] gnu.org>
   5238 
   5239 	* configure.in (--enable-3c90x): Add -DINCLUDE_3C90X=1 instead
   5240 	of -DINCLUDE_3C90x=1. This was just a typo. Reported by Per
   5241 	Lundberg.
   5242 	
   5243 2000-02-17  Jochen Hoenicke  <jochen (a] gnu.org>
   5244 	
   5245 	* stage2/fsys_fat.c (fat_read): Forgot to increase BUF.
   5246 	(fat_dir): Use fat_read instead of grub_read; this makes
   5247 	setting the FSMAX unnecessary.
   5248 	(fat_mount): FSMAX is no longer set.
   5249 	
   5250 2000-02-16  Jochen Hoenicke  <jochen (a] gnu.org>
   5251 
   5252 	* stage2/char_io.c (grub_isspace): Make carriage return a white
   5253 	space.
   5254 	
   5255 	* stage2/fsys_fat.c (fat_dir): Long filename support.
   5256 	(NAME_BUF): New macro.
   5257 	* stage2/fat.h (FAT_LONGDIR_ID, FAT_LONGDIR_ALIASCHECKSUM,
   5258 	FAT_ATTRIB_LONGNAME): New Macros.
   5259 
   5260 	* stage2/fsys_fat.c (fat_create_blocklist): Deleted, instead
   5261 	fat_read is implemented.
   5262 	(fat_read): new function.
   5263 	* stage2/disk_io.c (fsys_table): Use fat_read.
   5264 	* stage2/filesys.h: Declare fat_read, remove NO_BLOCK_FILES
   5265 	hack.
   5266 	* stage2/Makefile.am: Compile fat_stage1_5 with
   5267 	-DNO_BLOCK_FILES=1.
   5268 	
   5269 	* stage2/fat.h (fat_bpb): New structure describing bpb.
   5270 	(FAT_CVT_U16): New macro.
   5271 	(FAT_BPB_CHECK_SIG, FAT_BPB_NUM_SECTORS,
   5272 	FAT_BPB_BYTES_PER_SECTOR, FAT_BPB_SECT_PER_CLUS, FAT_BPB_NUMFAT,
   5273 	FAT_BPB_RESERVED_SECTORS, FAT_BPB_FAT_SECTORS_16,
   5274 	FAT_BPB_FAT_SECTORS_32, FAT_BPB_IS_FAT32, FAT_BPB_FAT_SECTORS,
   5275 	FAT_BPB_FAT_START, FAT_BPB_ROOT_DIR_CLUSTER,
   5276 	FAT_BPB_HIDDEN_SECTORS, FAT_BPB_ROOT_DIR_START,
   5277 	FAT_BPB_ROOT_DIR_LENGTH, FAT_BPB_DATA_OFFSET,
   5278 	FAT_BPB_NUM_CLUST): Macros removed.
   5279 	* stage2/fsys_fat.c (fat_superblock): New structure containing
   5280 	all info about currently mounted filesystem.
   5281 	(FAT_SUPER): New Macro.
   5282 	(BPB): Macro removod.
   5283 	(fat_mount): Use fat_bpb structure, fill FAT_SUPER.
   5284 	(fat_read, fat_dir): Use FAT_SUPER info.
   5285 
   5286 2000-02-16  OKUJI Yoshinori  <okuji (a] gnu.org>
   5287 
   5288 	Pass the boot partition information to a chain-loader, in the
   5289 	partition table area of the loader, instead of right before the
   5290 	loaded address. Reported by takehiro (a] coral.ocn.ne.jp (Takehiro
   5291 	Suzuki).
   5292 	
   5293 	* stage2/builtins.c (chainloader_func): Embed the partition
   5294 	table of the boot drive in the partition table area of the
   5295 	chain-loader, if the boot drive is a hard disk drive.
   5296 	Pass BOOT_PART_ADDR instead of (BOOTSEC_LOCATION - 16) as the
   5297 	third argument for the function chain_stage1.
   5298 	* stage2/disk_io.c [!STAGE1_5] (boot_part_addr): New variable.
   5299 	[!STAGE1_5] (boot_part_offset): Likewise.
   5300 	[!STAGE1_5] (cur_part_offset): Likewise.
   5301 	[!STAGE1_5] (cur_part_addr): Likewise.
   5302 	[!STAGE1_5] (cur_part_desc): Removed.
   5303 	(real_open_partition) [!STAGE1_5]: Set CUR_PART_OFFSET and
   5304 	CUR_PART_ADDR to PART_OFFSET and (BOOTSEC_LOCATION +
   5305 	PC_SLICE_OFFSET + (i << 4)), respectively.
   5306 	[!STAGE1_5] (set_bootdev): Set BOOT_PART_OFFSET and
   5307 	BOOT_PART_ADDR to CUR_PART_OFFSET and CUR_PART_ADDR,
   5308 	respectively.
   5309 	* stage2/shared.h (boot_part_addr): Declared.
   5310 	(boot_part_offset): Likewise.
   5311 	
   5312 2000-02-12  OKUJI Yoshinori  <okuji (a] gnu.org>
   5313 
   5314 	* stage2/builtins.c (geometry_func): Attempt to read the first
   5315 	sector to examine if LBA mode is really supported.
   5316 
   5317 	* netboot/fsys_tftp.c (buf_fill) [TFTP_DEBUG]: Added some debug
   5318 	messages.
   5319 	(send_rrq) [TFTP_DEBUG]: Likewise.
   5320 	(tftp_read) [TFTP_DEBUG]: Likewise.
   5321 	(tftp_dir) [TFTP_DEBUG]: Likewise.
   5322 	(tftp_close) [TFTP_DEBUG]: Likewise.
   5323 	(tftp_read): Call buf_fill with the argument 1 first, if FILEPOS
   5324 	has been moved backwards, and use grub_memmove for copying
   5325 	SAVED_TP to TP instead of a direct assignment.
   5326 	If send_rrq fails, set ERRNUM to ERR_WRITE instead of ERR_READ.
   5327 	Check if BUF_READ is zero instead of if BUF_EOF is non-zero at
   5328 	the end of the loop.
   5329 	(tftp_dir): Set ERRNUM to ERR_WRITE instead of ERR_READ, if
   5330 	send_rrq fails.
   5331 	Save TP and LEN in SAVED_TP and SAVED_LEN respectively before
   5332 	buf_fill instead of after it, because it destroys the contents
   5333 	of TP.
   5334 	* netboot/main.c (print_network_configuration): The order of the
   5335 	arguments for grub_sprintf in the local function sprint_ip_addr
   5336 	is reversed.
   5337 
   5338 	* configure.in (--enable-packet_retransmission): Renamed to ...
   5339 	(--disable-packet-retransmission): ... this. Assume that a
   5340 	network	is congested by default.
   5341 	
   5342 2000-02-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   5343 
   5344 	From Pavel Roskin:
   5345 	* stage2/shared.h [!GRUB_SHARED_HEADER] (GRUB_SHARED_HEADER):
   5346 	Defined.
   5347 	[GRUB_SHARED_HEADER]: Don't declare or define anything.
   5348 
   5349 	* netboot/main.c (print_network_configuration): New function.
   5350 	(await_reply): Check for Control-C instead of ESC, because GRUB
   5351 	already uses ESC for another purpose.
   5352 	(rfc951_sleep): Check for the key input in the loop. If
   5353 	Control-C is pushed, return immediately.
   5354 	* netboot/etherboot (print_network_configuration): Declared.
   5355 	(CTRL_C): New macro.
   5356 	(ESC): Undefined.
   5357 	* netboot/config.c (eth_probe): Clear ARPTABLE after clearing
   5358 	NETWORK_READY.
   5359 	* stage2/builtins.c (bootp_func): Call
   5360 	print_network_configuration if bootp succeeds.
   5361 	(rarp_func): Call print_network_configuration if rarp succeeds.
   5362 	
   5363 2000-02-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   5364 
   5365 	From Per Lundberg <plundis (a] byggdok.se>:
   5366 	* docs/multiboot.texi: Added graphics support.
   5367 	
   5368 2000-02-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   5369 
   5370 	* docs/multiboot.texi (Top): Downgrade the version to 0.6.90,
   5371 	since we need more work to release it as 0.7.
   5372 	
   5373 2000-02-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   5374 
   5375 	* stage2/Makefile.am [NETBOOT_SUPPORT] (STAGE2_COMPILE): Added
   5376 	-I$(top_srcdir)/netboot and -DSUPPORT_NETBOOT=1.
   5377 	* stage2/builtins.c (bootp_func): New function.
   5378 	(dhcp_func): Likewise.
   5379 	(rarp_func): Likewise.
   5380 	(builtin_bootp): New variable.
   5381 	(builtin_dhcp): Likewise.
   5382 	(builtin_rarp): Likewise.
   5383 	(builtin_table): Added pointers to BUILTIN_BOOTP, BUILTIN_DHCP
   5384 	and BUILTIN_RARP.
   5385 	* docs/user-ref.texi (General Commands): Added descriptions
   5386 	about "bootp", "dhcp" and "rarp".
   5387 	
   5388 	* netboot/main.c (bootp) [!NO_DHCP_SUPPORT]: Added casts to
   5389 	suppress gcc warnings.
   5390 	(decode_rfc1533) [!NO_DHCP_SUPPORT]: Likewise.
   5391 	* netboot/3c90x.c: Include the local "pci.h" instead of
   5392 	<linux/pci.h> even if __FreeBSD__ is undefined.
   5393 	
   5394 2000-02-09  OKUJI Yoshinori  <okuji (a] gnu.org>
   5395 
   5396 	From Jochen Hoenicke:
   5397 	* stage2/fsys_fat.c (fat_create_blocklist): The previous change
   5398 	is reversed. Set FIRST_FAT_ENTRY to a unsigned long value in
   5399 	FAT_BUF + (NEW_MAPBLOCK - MAPBLOCK) instead of a unsigned short
   5400 	value. Mask FIRST_FAT_ENTRY with 0xFFF if FAT_SIZE is equal to
   5401 	3, whether the bit 0 of LAST_FAT_ENTRY is set or not.
   5402 
   5403 	* netboot/config.c (eth_probe): If PROBED is set to non-zero,
   5404 	return 1 without probing ethernet cards. Clear NETWORK_READY. If
   5405 	*T->ETH_PROBE return sucessfully, set PROBED to 1.
   5406 	* netboot/main.c (rarp): Call eth_probe and return zero if
   5407 	fails. Clear NETWORK_READY at first, and set NETWORK_READY to 1
   5408 	if RETRY is less than MAX_ARP_RETRIES. If IP_ABORT is non-zero,
   5409 	return zero instead of one.
   5410 	(bootp): Call eth_probe and return zero if fails. Clear
   5411 	NETWORK_READY at first, and set NETWORK_READY to 1 if
   5412 	await_reply returns successfully.
   5413 	(bootp) [T509HACK]: If FLAG is non-zero, skip calling
   5414 	await_reply. Don't call await_reply here any more.
   5415 	(bootp) [!NO_DHCP_SUPPORT]: If any ack packet is not reached
   5416 	within MAX_BOOTP_RETRIES times, return zero. If DHCP_REPLY isn't
   5417 	DHCPOFFER, set NETWORK_READY to one and return one.
   5418 	* netboot/etherboot.h (NO_DHCP_SUPPORT): Undefined.
   5419 
   5420 	* stage2/builtins.c (print_root_device): Use the macro
   5421 	NETWORK_DRIVE instead of 0x20.
   5422 	* stage2/disk_io.c [!STAGE1_5] (sane_partition): Likewise.
   5423 	(real_open_partition) [!STAGE1_5]: Likewise.
   5424 	(set_device) [!STAGE1_5]: Likewise.
   5425 	
   5426 2000-02-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   5427 
   5428 	* grub/asmstub.c (biosdisk) [__linux__]: Use _llseek when
   5429 	__GLIBC_MINOR__ is less than 1 even if __GLIBC__ is 2. Reported
   5430 	by Goran Koruga <goran.koruga (a] hermes.si>.
   5431 
   5432 	* configure.in (--disable-lba-support-bitmap-check): New option.
   5433 	Don't define CHECK_LBA_SUPPORT_BITMAP if specified.
   5434 	* stage1/stage1.S (real_start): Check if AH=0x42 is supported if
   5435 	CHECK_LBA_SUPPORT_BITMAP instead of NO_BUGGY_BIOS_IN_THE_WORLD
   5436 	is defined.
   5437 	* stage2/bios.c (get_diskinfo): Check if LBA read/write
   5438 	functions are supported iff CHECK_LBA_SUPPORT_BITMAP is defined,
   5439 	instead of NO_BUGGY_BIOS_IN_THE_WORLD.
   5440 	
   5441 2000-02-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   5442 
   5443 	The netboot support is heavily rewritten, based on
   5444 	Etherboot-4.4.2. The current one doesn't work yet, so check out
   5445 	GRUB with the tag "dresden_netboot_code" if you need working
   5446 	one.
   5447 	
   5448 	* configure.in (--enable-tftp): Deleted.
   5449 	(FSYS_CFLAGS): `AC_SUBST'ed right before AC_OUTPUT.
   5450 	(NETBOOT_DRIVERS): New variable. AC_SUBST this after examining
   5451 	the driver options.
   5452 	(--enable-packet-retransmission): New option.
   5453 	(--enable-pci-direct): Likewise.
   5454 	(--enable-3c509): Likewise.
   5455 	(--enable-3c529): Likewise.
   5456 	(--enable-3c90x): Likewise.
   5457 	(--enable-cs89x0): Likewise.
   5458 	(--enable-epic100): Likewise.
   5459 	(--enable-3c507): Likewise.
   5460 	(--enable-exos205): Likewise.
   5461 	(--enable-ni5210): Likewise.
   5462 	(--enable-lancepci): Likewise.
   5463 	(--enable-ne2100): Likewise.
   5464 	(--enable-ni6510): Likewise.
   5465 	(--enable-3c503): Likewise.
   5466 	(--enable-ntulip): Likewise.
   5467 	(--enable-rtl8139): Likewise.
   5468 	(--enable-sk-g16): Likewise.
   5469 	(--enable-smc9000): Likewise.
   5470 	(--enable-tiara): Likewise.
   5471 	(--enable-tulip): Likewise.
   5472 	(--enable-via-rhine): Likewise.
   5473 	(--enable-3c503-shmem): Likewise.
   5474 	(--enable-3c503-aui): Likewise.
   5475 	(--enable-3c509-hack): Likewise.
   5476 	(--enable-compex-rl2000-fix): Likewise.
   5477 	(--enable-smc9000-scan): Likewise.
   5478 	(--enable-t503): Deleted.
   5479 	(--enable-lance): Likewise.
   5480 	(--enable-cs): Likewise.
   5481 
   5482 	* netboot/main.c: New file. Copied and modified.
   5483 	* netboot/linux-asm-io.h: Likewise.
   5484 	* netboot/etherboot.h: Likewise.
   5485 	* netboot/misc.c: Likewise.
   5486 	* netboot/via-rhine.c: Likewise.
   5487 	* netboot/3c90x.c: Likewise.
   5488 	* netboot/3c90x.txt: Likewise.
   5489 	* netboot/epic100.c: Likewise.
   5490 	* netboot/epic100.h: Likewise.
   5491 	* netboot/i82586.c: Likewise.
   5492 	* netboot/linux-asm-string.h: Likewise.
   5493 	* netboot/ntulip.c: Likewise.
   5494 	* netboot/ntulip.txt: Likewise.
   5495 	* netboot/osdep.h: Likewise.
   5496 	* netboot/rtl8139.c: Likewise.
   5497 	* netboot/sk_g16.c: Likewise.
   5498 	* netboot/sk_g16.h: Likewise.
   5499 	* netboot/smc9000.c: Likewise.
   5500 	* netboot/smc9000.h: Likewise.
   5501 	* netboot/tiara.c: Likewise.
   5502 	* netboot/tulip.c: Likewise.
   5503 	* netboot/tulip.h: Likewise.
   5504 	* netboot/README.netboot: New file. Most information is stolen
   5505 	from Makefile and Config.32 in Etherboot.
   5506 	* netboot/3c509.c: Copied from Etherboot. The original is
   5507 	removed.
   5508 	* netboot/3c509.h: Likewise.
   5509 	* netboot/cs89x0.c: Likewise.
   5510 	* netboot/eepro100.c: Likewise.
   5511 	* netboot/lance.c: Likewise.
   5512 	* netboot/ns8390.c: Likewise.
   5513 	* netboot/ns8390.h: Likewise.
   5514 	* netboot/pci.c: Likewise.
   5515 	
   5516 	* netboot/3c59x.c: Include etherboot.h instead netboot.h.
   5517 	* netboot/config.c: Copied from Etherboot and added the 3c59x
   5518 	entries.
   5519 	* netboot/pci.h: Likewise.
   5520 	* netboot/fsys_tftp.c: Entirely rewritten based on main.c in
   5521 	Etherboot.
   5522 
   5523 	* netboot/io.h: Removed.
   5524 	* netboot/ip.h: Likewise.
   5525 	* netboot/ip.c: Likewise.
   5526 	* netboot/netboot.h: Likewise.
   5527 	
   5528 	* netboot/Makefile.am (INCLUDES): Added -I$(top_srcdir)/stage2.
   5529 	(DRIVERS): Removed.
   5530 	(libdrivers_a_SOURCES): Added etherboot.h, linux-asm-io.h,
   5531 	linux-asm-string.h, main.c, misc.c and osdep.h. Deleted io.h,
   5532 	ip.h, ip.c, netboot.h and $(DRIVERS).
   5533 	(EXTRA_libdrivers_a_SOURCES): New variable.
   5534 	(libdrivers_a_LIBADD): Set to @NETBOOT_DRIVERS@.
   5535 	(libdrivers_a_DEPENDENCIES): New variable.
   5536 	(EXTRA_DIST): Likewise.
   5537 	(3c509_drivers): New variable. Define a new rule for the value.
   5538 	(3c59x_drivers): Likewise.
   5539 	(3c90x_drivers): Likewise.
   5540 	(cs89x0_drivers): Likewise.
   5541 	(eepro100_drivers): Likewise.
   5542 	(epic100_drivers): Likewise.
   5543 	(i82586_drivers): Likewise.
   5544 	(lance_drivers): Likewise.
   5545 	(ns8390_drivers): Likewise.
   5546 	(ntulip_drivers): Likewise.
   5547 	(rtl8139_drivers): Likewise.
   5548 	(sk_g16_drivers): Likewise.
   5549 	(smc9000_drivers): Likewise.
   5550 	(tiara_drivers): Likewise.
   5551 	(tulip_drivers): Likewise.
   5552 	(via_rhine_drivers): Likewise.
   5553 	(t503_o_CFLAGS): Removed.
   5554 	(nepci_o_CFLAGS): Set to -DINCLUDE_NEPCI=1.
   5555 	(ne_o_CFLAGS): Set to -DINCLUDE_NE=1.
   5556 	(wd_o_CFLAGS): Set to -DINCLUDE_WD=1.
   5557 	(3c509_o_CFLAGS): Likewise.
   5558 	(3c529_o_CFLAGS): Likewise.
   5559 	(3c59x_o_CFLAGS): Likewise.
   5560 	(3c90x_o_CFLAGS): Likewise.
   5561 	(cs89x0_o_CFLAGS): Likewise.
   5562 	(eepro100_o_CFLAGS): Likewise.
   5563 	(epic100_o_CFLAGS): Likewise.
   5564 	(3c507_o_CFLAGS): Likewise.
   5565 	(exos205_o_CFLAGS): Likewise.
   5566 	(ni5210_o_CFLAGS): Likewise.
   5567 	(lancepci_o_CFLAGS): Likewise.
   5568 	(ne2100_o_CFLAGS): Likewise.
   5569 	(ni6510_o_CFLAGS): Likewise.
   5570 	(3c503_o_CFLAGS): Likewise.
   5571 	(ntulip_o_CFLAGS): Likewise.
   5572 	(rtl8139_o_CFLAGS): Likewise.
   5573 	(sk_g16_o_CFLAGS): Likewise.
   5574 	(smc9000_o_CFLAGS): Likewise.
   5575 	(tiara_o_CFLAGS): Likewise.
   5576 	(tulip_o_CFLAGS): Likewise.
   5577 	(via_rhine_o_CFLAGS): Likewise.
   5578 
   5579 	* stage2/char_io.c (nul_terminate): Changed the type of the
   5580 	return value to int. Return the original character changed to
   5581 	NUL.
   5582 	* stage2/shared.h (NETWORK_DRIVE): New macro.
   5583 	(nul_terminate): Adjusted to the definition.
   5584 	* stage2/gunzip.c (gunzip_test_header): Removed the TFTP check
   5585 	entirely. It is no longer necessary because we now can obtain
   5586 	the correct size of a file even for TFTP.
   5587 	
   5588 2000-02-07  OKUJI Yoshinori  <okuji (a] gnu.org>
   5589 
   5590 	* stage2/asm.S: Undo the previous changes. Is
   5591 	binutils-2.9.5.0.25 too strict to retain the compatibility?
   5592 	Reported by Kalle Olavi Niemitalo <tosi (a] ees2.oulu.fi>.
   5593 	
   5594 2000-02-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   5595 
   5596 	* stage2/cmdline.c (enter_cmdline): Set BUF_DRIVE to -1 before
   5597 	running a command to invalidate the cache.
   5598 	(run_script): Likewise.
   5599 	* stage2/char_io.c (get_cmdline): Set BUF_DRIVE to -1 before the
   5600 	completion to invalidate the cache.
   5601 	Reported by Jeff Sheinberg <jeffsh (a] erols.com>.
   5602 
   5603 	* configure.in: Use AC_PATH_TOOL instead of AC_PATH_PROG.
   5604 	* stage2/asm.S (chain_stage1): Prepend `*' to the argument for
   5605 	ljmp.
   5606 	(chain_stage2): Likewise.
   5607 	(big_linux_boot): Likewise.
   5608 	
   5609 2000-01-19  OKUJI Yoshinori  <okuji (a] gnu.org>
   5610 
   5611 	* util/grub-install.in (--root): Renamed to ...
   5612 	(--root-directory): ... this, since "root" is vague.
   5613 	* docs/user-ref.texi (Invoking grub-install): Adjusted to the
   5614 	change above, and added an example how to use --root-directory.
   5615 	* docs/grub-install.8: Regenerated.
   5616 
   5617 	* docs/appendices.texi (FAQ): Added an item about the sucked
   5618 	SCSI problem.
   5619 	
   5620 2000-01-15  OKUJI Yoshinori  <okuji (a] gnu.org>
   5621 
   5622 	* stage2/builtins.c (chainloader_func): If --force is specified
   5623 	in ARG, don't check for the signature.
   5624 	* docs/tutorial.texi (Chain-loading): Added a caution about some
   5625 	defective boot loaders and --force.
   5626 	* docs/user-ref.texi (Command-line-specific commands): Added a
   5627 	description about --force.
   5628 	
   5629 2000-01-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   5630 
   5631 	* docs/prog-ref.texi (LBA mode disk I/O): Added a footnote about
   5632 	a buggy BIOS.
   5633 	
   5634 2000-01-11  OKUJI Yoshinori  <okuji (a] gnu.org>
   5635 
   5636 	* stage1/stage1.S [!NO_BUGGY_BIOS_IN_THE_WORLD]: Don't check if
   5637 	LBA read is supported. Anyway, fallback to the CHS mode if
   5638 	fails.
   5639 	
   5640 2000-01-10  OKUJI Yoshinori  <okuji (a] gnu.org>
   5641 
   5642 	* stage2/bios.c (NO_INT13_FALLBACK): Undefined.
   5643 	(get_diskinfo) [!NO_BUGGY_BIOS_IN_THE_WORLD]: Do not check if
   5644 	bit 0 in DRP.FLAGS is set, because at least one BIOS does not
   5645 	set it correctly. Reported by "Forever shall I be."
   5646 	<zinx (a] linuxfreak.com>.
   5647 
   5648 	* util/grub-install.in: Handle the new options `--root' and
   5649 	`--grub-shell'.
   5650 	(rootdir): New variable.
   5651 	(usage): Print the help messages about the options --root and
   5652 	--grub-shell.
   5653 	(bootdir): Initialized after the option analysis.
   5654 	(grubdir): Likewise.
   5655 	(device_map): Likewise.
   5656 	(root_device): Set to the result for the directory ROOTDIR
   5657 	instead of "/".
   5658 	* docs/user-ref.texi (Invoking grub-install): Added the
   5659 	descriptions about --root and --grub-shell.
   5660 	* docs/grub-install.8: Regenerated.
   5661 	
   5662 2000-01-08  OKUJI Yoshinori  <okuji (a] gnu.org>
   5663 
   5664 	* util/grub-install.in (grubdir_device): New variable.
   5665 	If GRUBDIR_DEVICE is not equal to ROOT_DEVICE, print an error
   5666 	message and exit.
   5667 	* README: Added a caution about Automake.
   5668 	* TODO: Updated. Only the things that should be done until 0.6
   5669 	have one or more exclamations. Things with zero exclamation
   5670 	will be done after 0.6 unless someone sends a patch for it.
   5671 	
   5672 2000-01-05  OKUJI Yoshinori  <okuji (a] gnu.org>
   5673 
   5674 	* grub/asmstub.c: Include the header shared.h after including
   5675 	all the system headers, but not before.
   5676 	(EXTENDED_MEMSIZE): Reduced to 3MB.
   5677 	(grub_setjmp): New function.
   5678 	(grub_longjmp): Likewise.
   5679 	* grub/main.c: Include setjmp.h.
   5680 	* stage2/asm.S (grub_setjmp): New function. Stolen from the
   5681 	OSKit (which stole it from Mach).
   5682 	(grub_longjmp): Likewise.
   5683 	* stage2/shared.h [GRUB_UTIL] (grub_jmp_buf): New type.
   5684 	[!GRUB_UTIL] (grub_jmp_buf): New macro. Defined as jmp_buf.
   5685 	(grub_setjmp): Declared.
   5686 	(grub_longjmp): Likewise.
   5687 	(restart_env): Likewise.
   5688 	* stage2/builtins.c (configfile_func): Use grub_longjmp instead
   5689 	of invoking cmain again.
   5690 	* stage2/stage2.c (restart_env): New variable.
   5691 	(cmain): Call grub_setjmp first to initialize RESTART_ENV.
   5692 	
   5693 2000-01-03  OKUJI Yoshinori  <okuji (a] gnu.org>
   5694 
   5695 	* docs/multiboot.texi (Boot information format): Added the
   5696 	descriptions about the fields "config_table" and
   5697 	"boot_loader_name".
   5698 	
   5699 1999-12-31  OKUJI Yoshinori  <okuji (a] gnu.org>
   5700 
   5701 	* stage2/builtins.c (setup_func) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
   5702 	Specify the option `d', whether INSTALL_DRIVE is identical with
   5703 	IMAGE_DRIVE or not.
   5704 	* docs/user-ref.texi (Command-line-specific commands): Added a
   5705 	caution about buggy BIOSes which don't pass a booting drive
   5706 	properly.
   5707 
   5708 	* docs/src2texi: Added an extra space into the first line, for
   5709 	the portability issue.
   5710 
   5711 	* docs/appendices.texi (Obtaining and Building GRUB): Update the
   5712 	information on the ftp site and the CVS repository.
   5713 	
   5714 1999-12-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   5715 
   5716 	* stage2/builtins.c (blocklist_func): New function.
   5717 	(builtin_blocklist): New variable.
   5718 	(builtin_table): Added a pointer to BUILTIN_BLOCKLIST.
   5719 	* docs/user-ref.texi (Command-line-specific commands): Added a
   5720 	description about the command "blocklist".
   5721 	
   5722 1999-12-30  OKUJI Yoshinori  <okuji (a] gnu.org>
   5723 
   5724 	* stage2/disk_io.c (grub_seek): New function.
   5725 	* stage2/shared.h (grub_seek): Declared.
   5726 	* stage2/boot.c (load_image): Use grub_seek instead of setting
   5727 	FILEPOS to a new value directly.
   5728 	* stage2/builtins.c (install_func): Likewise.
   5729 	(testload_func): Likewise.
   5730 
   5731 	* docs/grub.texi: Use a single direntry command for all the
   5732 	entries instead of one per entry.
   5733 	
   5734 1999-12-29  OKUJI Yoshinori  <okuji (a] gnu.org>
   5735 
   5736 	* grub/asmstub.c (check_device) [__linux__]: Check if DEVICE is
   5737 	a CD-ROM drive by the HDIO_GETGEO ioctl. If so, then return
   5738 	zero. Reported by Pavel Roskin.
   5739 
   5740 	* stage2/Makefile.am (nodist_noinst_DATA): Renamed to ...
   5741 	(noinst_DATA): ... this. The primary DATA is `nodist' by
   5742 	default, at least theoretically. Reported by Klaus Reichl.
   5743 
   5744 	* stage2/bios.c (get_diskinfo): Set the LBA flag in GEOMETRY
   5745 	only if bit 0 in DRP.FLAGS is set. Reported by Zack Weinberg
   5746 	<zack (a] rabi.columbia.edu>.
   5747 
   5748 	From Pavel Roskin:
   5749 	* grub/asmstub.c (init_device_map): Increase the number of
   5750 	devices to be probed to 8 for IDE disks and 16 for SCSI
   5751 	disks. Reported by Anton Anisimov <aa (a] bestlinux.net>.
   5752 	
   5753 1999-12-06  Gordon Matzigkeit  <gord (a] fig.org>
   5754 
   5755 	* README (DEVELOPERS): Change CVS location to subversions.
   5756 
   5757 1999-11-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5758 
   5759 	* stage2/disk_io.c (real_open_partition): If SLICE_NO is greater
   5760 	than or equal to PC_SLICE_MAX, skip any extended partition, when
   5761 	searching for the right partition. Reported by Weil, Stefan 3732
   5762 	EPE-24 <Stefan.Weil (a] de.heidelberg.com>.
   5763 
   5764 1999-11-19  Gordon Matzigkeit  <gord (a] fig.org>
   5765 
   5766 	* grub/asmstub.c (getkey): Stop immediately if we get an EOF.
   5767 
   5768 	* stage2/stage2.c (cmain): Tell enter_cmdline to run forever.
   5769 	(run_menu): Tell print_cmdline_message and enter_cmdline that we
   5770 	won't run forever.
   5771 	* stage2/cmdline.c (enter_cmdline): New argument, FOREVER, for
   5772 	when ESC shouldn't allow an exit.  Pass it to
   5773 	print_cmdline_message.
   5774 	(print_cmdline_message): Use new argument, FOREVER, to decide
   5775 	whether to tell the user that ESC exits.
   5776 
   5777 1999-11-18  Gordon Matzigkeit  <gord (a] fig.org>
   5778 
   5779 	* debian/rules (binary-arch): Don't strip or generate shared
   5780 	library dependencies for /usr/sbin/grub-install, since it's a
   5781 	script.
   5782 
   5783 	* util/grub-install.in: Create safe temporary log files using
   5784 	/bin/tempfile if it is executable.
   5785 
   5786 1999-11-17  Gordon Matzigkeit  <gord (a] fig.org>
   5787 
   5788 	* stage1/Makefile.am (LDFLAGS): Consolidate multiple -Wl flags.
   5789 	* stage2/Makefile.am (PRE_STAGE2_LINK): Likewise.
   5790 	(START_LINK): Likewise.
   5791 	(STAGE1_5_LINK): Likewise.
   5792 
   5793 1999-11-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5794 
   5795 	* util/grub-install.in (debug): New variable.
   5796 	(convert): If the device file does not exist, then emit an
   5797 	error. Get the GRUB drive instead of the OS device.
   5798 	If --debug is specified, then set $debug to yes.
   5799 	If $debug is yes, run "set -x".
   5800 	Make sure that stage1 and stage2 exist.
   5801 	When checking for INSTALL_DEVICE, use "case" instead of "elif"s.
   5802 	Make sure that $install_drive is not empty.
   5803 	Likewise, make sure that $root_drive is not empty.
   5804 	Any error message is redirected to the standard error.
   5805 
   5806 1999-11-19  Pavel Roskin  <pavel_roskin (a] geocities.com>
   5807 
   5808 	* stage2/Makefile.am (noinst_DATA): Renamed to ...
   5809 	(nodist_noinst_DATA): ... this.
   5810 	* util/Makefile.am: sbin_SCRIPS -> sbin_SCRIPTS.
   5811 	* util/grub-install.in: grub_dir -> grubdir.
   5812 	Check if $grub_shell exists before running it.
   5813 	(convert): Added a missing "test" after "if".
   5814 
   5815 1999-11-18  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5816 
   5817 	* configure.in: Output grub-install.
   5818 	* util/Makefile.am (sbin_SCRIPTS): New variable.
   5819 	* util/grub-install.in: New file.
   5820 	* docs/Makefile.am (man_MANS): Added grub-install.8.
   5821 	[MAINTAINER_MODE] ($(srcdir)/grub-install.8): New target.
   5822 	* docs/grub-install.8: New file. Generated by help2man.
   5823 	* docs/user-ref.texi (Invoking grub-install): New chapter.
   5824 
   5825 1999-11-16  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5826 
   5827 	From Pavel Roskin:
   5828 	* stage1/stage1.S: Check for the API subset support bitmap
   5829 	returned by INT 13 AH=48h, and jump to chs_mode if AH=42h is not
   5830 	supported.
   5831 
   5832 1999-11-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5833 
   5834 	* stage2/builtins.c (install_func): When using a Stage 1.5, set
   5835 	CURRENT_DRIVE to SAVED_DRIVE and CURRENT_PARTITION to
   5836 	SAVED_PARTITION if set_device fails. If CURRENT_DRIVE is equal
   5837 	to SRC_DRIVE, then set CURRENT_DRIVE to 0xFF. We don't want to
   5838 	embed any drive number whenever possible.
   5839 	* stage2/disk_io.c (set_device) [STAGE1_5]: Always set
   5840 	CURRENT_PARTITION to PARTITION.
   5841 
   5842 1999-11-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5843 
   5844 	From Pavel Roskin:
   5845 	* stage1/stage1.S (lba_mode): Jump to chs_mode if INT 13 AH=42h
   5846 	fails.
   5847 
   5848 1999-11-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5849 
   5850 	Do not use the device map file unless --device-map is specified.
   5851 
   5852 	* grub/main.c (device_map_file): Set to 0.
   5853 	(default_device_map_file): Removed.
   5854 	(usage): Do not print DEFAULT_DEVICE_MAP_FILE.
   5855 	* grub/asmstub.c (init_device_map): If DEVICE_MAP_FILE is NULL,
   5856 	do not try to open the device map file.
   5857 	Set FP to NULL by default.
   5858 	* docs/grub.8: Regenerated.
   5859 
   5860 1999-11-11  Michael Hohmuth  <hohmuth (a] innocent.com>
   5861 
   5862 	* stage2/boot.c (load_image): grub_close was called after
   5863 	return, so exchange the order.
   5864 	* stage2/stage1_5.c (cmain): Call grub_close after grub_read.
   5865 	Set RET to the value returned by grub_read, and if RET is
   5866 	non-zero, call chain_stage2.
   5867 	* stage1/Makefile.am (BUILT_SOURCES): Removed.
   5868 	(CLEANFILES): Set to $(nodist_pkgdata_DATA).
   5869 
   5870 1999-11-11  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5871 
   5872 	Suggested by Klaus Reichl:
   5873 	* stage2/builtins.c (print_root_device): New function.
   5874 	(root_func): If no argument is specified, call the function
   5875 	print_root_device and return.
   5876 	(rootnoverify_func): Likewise.
   5877 	* stage2/disk_io.c [!STAGE1_5] (print_completions): Call
   5878 	print_error even if IS_FILENAME is zero.
   5879 	If ERRNUM is non-zero, then return -1.
   5880 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): Clear ERRNUM after
   5881 	calling print_completions to print the list as well.
   5882 
   5883 	* stage2/asm.S [!STAGE1_5] (currticks): Set %eax to %cx:%dx
   5884 	correctly. Reported by Michael Hohmuth.
   5885 
   5886 1999-11-06  Klaus Reichl  <Klaus.Reichl (a] alcatel.at>
   5887 
   5888 	* grub/asmstub.c (get_diskinfo) [__linux__]: After opening the
   5889 	drive, flush the cache, other progs may have left over something
   5890 	in the cache.
   5891 
   5892 1999-11-03  Gordon Matzigkeit  <gord (a] fig.org>
   5893 
   5894 	* debian/rules: Add variables for cross-compilation.
   5895 
   5896 	* debian/control (Standards-Version): Update to version 3.1.0.
   5897 	* debian/rules (build): Install manpages into /usr/share/man, and
   5898 	info into /usr/share/info in accordance with FHS.
   5899 	(binary-arch): Likewise, and put docs into /usr/share/doc.
   5900 	* debian/postinst: Use /usr/share/info, and manage compatibility
   5901 	/usr/doc/grub -> /usr/share/doc/grub symlink.
   5902 	* debian/prerm: Likewise.
   5903 
   5904 	* stage2/Makefile.am (CLEANFILES): Change to
   5905 	$(nodist_pkgdata_DATA) so that the raw binary files are deleted.
   5906 	* stage1/Makefile.am (CLEANFILES): Likewise.
   5907 
   5908 1999-11-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5909 
   5910 	* grub/asmstub.c (grub_putchar) [HAVE_LIBCURSES]: Do not call
   5911 	wrefresh. This was just an accident. Sorry.
   5912 
   5913 	Reported by Alan McLean <amcl (a] flash.net>:
   5914 	* stage2/builtins.c (embed_func): The sector argument for the
   5915 	function biosdisk is changed from SECTOR + I * SECTOR_SIZE to
   5916 	SECTOR + I.
   5917 	(find_func): Clear ERRNUM before each of the attempts.
   5918 
   5919 1999-11-05  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5920 
   5921 	* docs/multiboot.texi (Boot information format): Add the members
   5922 	`drives_addr' and `drives_count' into the Multiboot information
   5923 	structure, and added the descriptions.
   5924 
   5925 1999-11-03  Gordon Matzigkeit  <gord (a] fig.org>
   5926 
   5927 	* util/mbchk.c (main): Move the version number inside the
   5928 	parentheses since it is the GRUB package version, not just an
   5929 	mbchk-specific version.
   5930 
   5931 1999-10-30  Gordon Matzigkeit  <gord (a] fig.org>
   5932 
   5933 	* debian/rules (binary-arch): Compress man pages.
   5934 	Strip the grub shell.
   5935 	Install examples.
   5936 
   5937 1999-11-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5938 
   5939 	* docs/tutorial.texi: Fix typos by ispell.
   5940 	* docs/user-ref.texi: Likewise.
   5941 	* docs/prog-ref.texi: Likewise.
   5942 	* docs/appendices.texi: Likewise.
   5943 
   5944 1999-11-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5945 
   5946 	* stage2/fsys_ext2fs.c (struct ext2_dir_entry): Changed the type
   5947 	of `name_len' to __u8 and added the new member `file_type' after
   5948 	it. This is stolen from linux/ext2_fs.h in Linux 2.2.13.
   5949 	Reported by Ben Harris <bjh21 (a] cam.ac.uk>.
   5950 
   5951 	* stage2/builtins.c (device_func) [GRUB_UTIL]: Call
   5952 	nul_terminate before calling check_device.
   5953 
   5954 1999-11-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5955 
   5956 	* stage2/disk_io.c (real_open_partition): Check for the right
   5957 	partition for any extended partition as well. Set EXT to I after
   5958 	the check is done. Reported by Jeff Scheinberg
   5959 	<jeffsh (a] erols.com>.
   5960 
   5961 	* stage2/builtins.c (color_func): Use the function
   5962 	nul_terminate.
   5963 	(device_func) [GRUB_UTIL]: Likewise.
   5964 	(help_func): Likewise.
   5965 	(install_func): Save CURRENT_DRIVE, CURRENT_PARTITION and
   5966 	BUG_GEOM in SRC_DRIVE, SRC_PARTITION and SRC_GEOM respectively,
   5967 	and use them when patching the Stage 2.
   5968 	NUL-terminate the configuration filename CONFIG_FILENAME.
   5969 	If IS_STAGE1_5 is true, then check if the "real config file"
   5970 	option is present, and, if so, patch the Stage 2 CONFIG_FILENAME
   5971 	with the configuration filename REAL_CONFIG_FILENAME.
   5972 	(setkey_func): Use nul_terminate instead of the local function
   5973 	null_terminate.
   5974 	* stage2/char_io.c [!STAGE1_5] (nul_terminate): New function.
   5975 	* stage2/shared.h (nul_terminate): Declared.
   5976 
   5977 1999-11-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5978 
   5979 	* docs/grub.texi: Add "I/O ports detection" into the menu.
   5980 	* docs/user-ref.texi: Added a description about the command
   5981 	"ioprobe".
   5982 	* docs/prog-ref.texi (I/O ports detection): New chapter.
   5983 
   5984 1999-11-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5985 
   5986 	From Pavel Roskin:
   5987 	* stage2/asm.S (int1_handler): Use EXT_C(io_map) instead of
   5988 	io_map.
   5989 	(int1_handler): Use EXT_C(bios_key_map) instead of bios_key_map.
   5990 	* grub/asmstub.c [__OpenBSD__]: Include <sys/ioctl.h> and
   5991 	<sys/disklabel.h>.
   5992 	[__OpenBSD__] (get_floppy_disk_name): Added support for OpenBSD.
   5993 	[__OpenBSD__] (get_ide_disk_name): Likewise.
   5994 	[__OpenBSD__] (get_scsi_disk_name): Likewise.
   5995 	(get_drive_geometry) [__OpenBSD__]: Use for OpenBSD the same
   5996 	ioctl as for NetBSD and FreeBSD.
   5997 
   5998 1999-10-31  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   5999 
   6000 	* grub/asmstub.c (init_device_map): Add a floppy device name
   6001 	into the device map file even if check_device fails.
   6002 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): Clear ERRNUM after
   6003 	calling print_completions.
   6004 
   6005 1999-10-29  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6006 
   6007 	* stage2/asm.S (track_int13): Defined unconditionally. Do not
   6008 	use int3 any more, but replace the int13 handler with
   6009 	set_tf_int13_handler.
   6010 	(int1_handler): Defined unconditionally. Do not check for 0x0F.
   6011 	Add missing `$'s. If the code is 0xEC-0xEF, use %dx instead of
   6012 	immediate. If the code is 0xE4-0xE7, use immediate instead of
   6013 	%dx. Set %ds to zero before scanning IO_MAP. Check for the
   6014 	buffer overrun of IO_MAP before adding a port.
   6015 	[!DEFINE_TRACK_INT13] (int13_first_instruction): Removed.
   6016 	[!DEFINE_TRACK_INT13] (int3_handler): Likewise.
   6017 	(set_tf_int13_handler): New interrupt handler.
   6018 	(set_tf_int13_offset): New variable.
   6019 	(set_tf_int13_segment): Likewise.
   6020 	* stage2/builtins.c (ioprobe_func): New function.
   6021 	(builtin_ioprobe): New variable.
   6022 	(builtin_table): Added a pointer to BUILTIN_IOPROBE.
   6023 	* stage2/shared.h (IO_MAP_SIZE): New macro.
   6024 	(track_int13): Declared.
   6025 	(io_map): Likewise.
   6026 
   6027 1999-10-29  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6028 
   6029 	* stage2/char_io.c (print_error) [!STAGE1_5]: Print "Error:"
   6030 	before print the error message.
   6031 	(print_error): Do not clear ERRNUM.
   6032 	* stage2/cmdline.c (run_script): If ERRNUM is non-zero, set
   6033 	ERRNUM to ERR_NONE.
   6034 	(enter_cmdline): Clear ERRNUM after print_error.
   6035 
   6036 1999-10-28  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6037 
   6038 	From Pavel Roskin:
   6039 	* stage2/stage2.c (run_menu) [GRUB_UTIL]: Do not use IBM special
   6040 	characters in the message, but use ascii names instead.
   6041 	(run_menu) [!GRUB_UTIL]: Use DISP_UP and DISP_DOWN instead of
   6042 	the ascii codes.
   6043 	* stage2/shared.h [!ACS_ULCORNER] (ACS_ULCORNER): New macro.
   6044 	[!ACS_ULCORNER] (ACS_URCORNER): Likewise.
   6045 	[!ACS_ULCORNER] (ACS_LLCORNER): Likewise.
   6046 	[!ACS_ULCORNER] (ACS_LRCORNER): Likewise.
   6047 	[!ACS_ULCORNER] (ACS_HLINE): Likewise.
   6048 	[!ACS_ULCORNER] (ACS_VLINE): Likewise.
   6049 	[!ACS_ULCORNER] (ACS_LARROW): Likewise.
   6050 	[!ACS_ULCORNER] (ACS_RARROW): Likewise.
   6051 	[!ACS_ULCORNER] (ACS_UARROW): Likewise.
   6052 	[!ACS_ULCORNER] (ACS_DARROW): Likewise.
   6053 	[GRUB_UTIL] (DISP_UL): Set to ACS_ULCORNER.
   6054 	[GRUB_UTIL] (DISP_UR): Set to ACS_URCORNER.
   6055 	[GRUB_UTIL] (DISP_LL): Set to ACS_LLCORNER.
   6056 	[GRUB_UTIL] (DISP_LR): Set to ACS_LRCORNER.
   6057 	[GRUB_UTIL] (DISP_HORIZ): Set to ACS_HLINE.
   6058 	[GRUB_UTIL] (DISP_VERT): Set to ACS_VLINE.
   6059 	[GRUB_UTIL] (DISP_LEFT): Set to ACS_LARROW.
   6060 	[GRUB_UTIL] (DISP_RIGHT): Set to ACS_RARROW.
   6061 	[GRUB_UTIL] (DISP_UP): Set to ACS_UARROW.
   6062 	[GRUB_UTIL] (DISP_DOWN): Set to ACS_DARROW.
   6063 
   6064 1999-10-28  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6065 
   6066 	* stage2/builtins.c (keycode_func): Removed.
   6067 	(builtin_keycode): Likewise.
   6068 	(struct keysym): New structure.
   6069 	(keysym_table): New variable.
   6070 	(setkey_func): New function.
   6071 	(builtin_setkey): New variable.
   6072 	(builtin_table): Removed the pointer to BUILTIN_KEYCODE, and
   6073 	added a pointer to BUILTIN_SETKEY.
   6074 	* stage2/common.c [!STAGE1_5] (err_list): Added
   6075 	ERR_BAD_ARGUMENT.
   6076 	* stage2/shared.h (grub_error_t): Added ERR_BAD_ARGUMENT.
   6077 	(KEY_MAP_SIZE): Set to 128.
   6078 	(ascii_key_map): Declared.
   6079 	* stage2/asm.S [!STAGE1_5] (remap_ascii_char): New function.
   6080 	[!STAGE1_5] (ascii_key_map): New variable.
   6081 	[!STAGE1_5] (getkey): Call remap_ascii_char after int16.
   6082 	[!STAGE1_5] (checkkey): Likewise.
   6083 	* grub/asmstub.c (ascii_key_map): New variable.
   6084 	* docs/user-ref.texi (General commands): Added a description
   6085 	about the command "setkey".
   6086 	(Stage2 errors): Added a description about ERR_BAD_ARGUMENT.
   6087 
   6088 1999-10-27  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6089 
   6090 	* stage2/disk_io.c (set_device) [!STAGE1_5]: Remove the
   6091 	preliminary Mach-style device name support. I've decided that
   6092 	the support is not necessary.
   6093 	(setup_part) [!STAGE1_5]: Do not strip the leading "/dev/".
   6094 	* docs/help2man: Upgraded to 1.016.
   6095 	* docs/mbchk.1: Regenerated.
   6096 	* docs/grub.8: Likewise.
   6097 	* grub/asmstub.c: Rename KEY_MAP to BIOS_KEY_MAP.
   6098 
   6099 	* stage2/asm.S [!STAGE1_5] (set_int15_handler): Use 0 instead of
   6100 	the maximum number for the segment.
   6101 	[!STAGE1_5] (unset_int15_handler): Likewise.
   6102 	[!STAGE1_5] (int15_handler): Almost rewritten. If non-carrier,
   6103 	ignore the scancode. If the scancode is E1 or E0, then set
   6104 	INT15_SKIP_FLAG to 0x74, and if the previous scancode is E1 or
   6105 	E0, set INT15_SKIP_FLAG to 0xea. Clear bit 7 in %dl. Save bit 7
   6106 	of %al in %bl. Do not lcall. Use ljmp instead.
   6107 	[!STAGE1_5] (key_map): Renamed to ...
   6108 	[!STAGE1_5] (bios_key_map): ... this.
   6109 	* stage2/builtins.c (keycode_func): Check if FROM is greater
   6110 	than 0xff instead of double-checking for TO. Use BIOS_KEY_MAP
   6111 	instead of KEY_MAP.
   6112 	* stage2/shared.h (KEY_MAP_SIZE): Set to 32.
   6113 	(key_map): Removed.
   6114 	(bios_key_map): Declared.
   6115 
   6116 1999-10-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6117 
   6118 	Now the BIOS drive remapping is functional.
   6119 
   6120 	* stage2/asm.S [DEFINE_TRACK_INT13] (track_int13): Use %edi
   6121 	instead of direct addresses.
   6122 	Prefix DATA32 to the calls for real_to_prot and prot_to_real.
   6123 	Fix the address of DRIVE: 4(%ebp) -> 8(%ebp).
   6124 	(set_int15_handler): Use %edi instead of direct addresses.
   6125 	(unset_int15_handler): Likewise.
   6126 	(set_int13_handler): Copy DRIVE_MAP_SIZE * 2 bytes instead of
   6127 	DRIVE_MAP_SIZE bytes of MAP.
   6128 	Fix the address of MAP: 4(%ebp) -> 8(%ebp).
   6129 	Use %edi instead of direct addresses.
   6130 	(int13_handler): Do not set %ds to %cs. Use the segment override
   6131 	prefix of %cs instead.
   6132 	Push the flags pushed by the callee instead of the current.
   6133 	Set the flags in the stack to the flags returned by the original
   6134 	int13 call.
   6135 	(drive_map): 4bytes-aligned.
   6136 	* stage2/disk_io.c (grub_close): Do not set ERRNUM even if
   6137 	FSYS_TYPE is NUM_FSYS.
   6138 
   6139 1999-10-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6140 
   6141 	* stage1/stage1.S: Long jump to real_start, because some bogus
   6142 	BIOSes jump to 07C0:0000 instead of 0000:7C00.
   6143 	(real_start): New label.
   6144 	* docs/Makefile.am (grub.info): Removed. Use the default rule
   6145 	instead.
   6146 
   6147 1999-10-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6148 
   6149 	* stage2/asm.S [DEFINE_TRACK_INT13] (int3_handler): Save the
   6150 	modified FLAGS in 6(%bp) instead of 4(%bp).
   6151 	Decrease %bx before restoring the first instruction.
   6152 	[DEFINE_TRACK_INT13] (track_int13): Go to the real mode before
   6153 	setting up the registers for the int13 call.
   6154 
   6155 1999-10-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6156 
   6157 	Add the prototype of a function to probe I/O ports used for a
   6158 	BIOS drive.
   6159 
   6160 	* stage2/asm.S [DEFINE_TRACK_INT13] (track_int13): New function.
   6161 	[DEFINE_TRACK_INT13] (int1_handler): New interrupt handler for
   6162 	the real mode.
   6163 	[DEFINE_TRACK_INT13] (int3_handler): Likewise.
   6164 	[DEFINE_TRACK_INT13] (io_map): New variable.
   6165 
   6166 	* stage2/builtins.c (quit_func) [!GRUB_UTIL]: Fix a typo.
   6167 
   6168 1999-10-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6169 
   6170 	The new GRUB manual becomes official.
   6171 
   6172 	* docs/grub.texi: Replaced with new-grub.texi.
   6173 	* docs/new-grub.texi: Removed.
   6174 	* docs/Makefile.am (grub_TEXINFOS): New variable.
   6175 	(UNFINISHED_MANUALS): Removed.
   6176 	(EXTRA_DIST): Deleted $(UNFINISHED_MANUALS).
   6177 
   6178 1999-10-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6179 
   6180 	* stage2/builtins.c (device_func) [!GRUB_UTIL]: Set ERRNUM to
   6181 	ERR_UNRECOGINIZED and return 1.
   6182 	(impsprobe_func) [GRUB_UTIL]: Likewise.
   6183 	(quit_func) [!GRUB_UTIL]: Likewise.
   6184 	* docs/tutorial.texi: Rename "Device Syntax" to "Filename".
   6185 	Added many cross-references.
   6186 	* docs/new-grub.texi: "Device Syntax" -> "Filename".
   6187 	* docs/user-ref.texi: Fix typos and added some cross-references.
   6188 	* docs/prog-ref.texi: Likewise.
   6189 	* docs/appendices.texi: Likewise.
   6190 
   6191 1999-10-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6192 
   6193 	* stage2/builtins.c (map_func): If BIOS_DRIVE_MAP already
   6194 	contains FROM, override the existsing entry.
   6195 	If TO is equal to FROM, delete the existing entry if any.
   6196 	(keycode_func): Likewise.
   6197 	* docs/user-ref.texi (Command): Use the list of `@deffn's
   6198 	instead of @table.
   6199 	(Basic usage): Use @option instead of @code.
   6200 	(Invoking mbchk): Likewise.
   6201 
   6202 1999-10-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6203 
   6204 	* stage2/asm.S [!STAGE1_5] (set_int15_handler): New function.
   6205 	[!STAGE1_5] (unset_int15_handler): Likewise.
   6206 	[!STAGE1_5] (int15_handler): New interrupt handler for the real
   6207 	mode.
   6208 	[!STAGE1_5] (int15_offset): New variable.
   6209 	[!STAGE1_5] (int15_segment): Likewise.
   6210 	[!STAGE1_5] (key_map): Likewise.
   6211 	[!STAGE1_5] (set_int13_handler): Use the macro ABS for
   6212 	INT13_OFFSET and INT13_SEGMENT.
   6213 	* stage2/shared.h (KEY_MAP_SIZE): New macro.
   6214 	(set_int15_handler): Declared.
   6215 	(unset_int15_handler): Likewise.
   6216 	* stage2/builtins.c (boot_func): Do not allow I to be equal to
   6217 	DRIVE_MAP_SIZE.
   6218 	Call unset_int15_handler unless KERNEL_TYPE is KERNEL_TYPE_NONE.
   6219 	(map_func): Search for an empty slot till I is less than
   6220 	DRIVE_MAP_SIZE.
   6221 	Check if I is equal to DRIVE_MAP_SIZE instead of if I is greater
   6222 	than DRIVE_MAP_SIZE.
   6223 	(keycode_func): New function.
   6224 	(builtin_keycode): New variable.
   6225 	(builtin_table): Added a pointer to BUILTIN_KEYCODE.
   6226 	* grub/asmstub.c (set_int15_handler): New function.
   6227 	(unset_int15_handler): Likewise.
   6228 	(key_map): New variable.
   6229 
   6230 1999-10-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6231 
   6232 	From Michael Hohmuth <hohmuth (a] innocent.com>:
   6233 	* acconfig.h (HAVE_USCORE_USCORE_BSS_START_SYMBOL): Added the
   6234 	`undef' entry.
   6235 	(HAVE_EDATA_SYMBOL): Likewise.
   6236 	(HAVE_USCORE_EDATA_SYMBOL): Likewise.
   6237 	* acinclude.m4 (grub_CHECK_USCORE_USCORE_BSS_START_SYMBOL): New
   6238 	function.
   6239 	(grub_CHECK_EDATA_SYMBOL): Likewise.
   6240 	(grub_CHECK_USCORE_EDATA_SYMBOL): Likewise.
   6241 	* configure.in: Check for __bss, edata and _edata.
   6242 	* netboot/Makefile.am (DRIVERS): Deleted ns8390.c and ns8390.h.
   6243 	(libdrivers_a_LIBADD): New variable.
   6244 	($(libdrivers_a_LIBADD)): New target.
   6245 	(nepci_o_CFLAGS): New variable.
   6246 	(ne_o_CFLAGS): Likewise.
   6247 	(wd_o_CFLAGS): Likewise.
   6248 	(t503_o_CFLAGS): Likewise.
   6249 	* netboot/fsys_tftp.c (tftp_close): New function.
   6250 	* stage2/boot.c (load_image): Call grub_close before return.
   6251 	(load_initrd): Likewise.
   6252 	(load_module): Likewise.
   6253 	* stage2/builtins.c (cat_func): Likewise.
   6254 	(chainloader_func): Likewise.
   6255 	(configfile_func): Likewise.
   6256 	(embed_func): Likewise.
   6257 	(find_func): Likewise.
   6258 	(install_func): Set IS_OPEN to the value returned by grub_open.
   6259 	If IS_OPEN is non-zero, call grub_close before return.
   6260 	(setup_func): Call grub_close after grub_open.
   6261 	(testload): Call grub_close before return.
   6262 	* stage2/disk_io.c (fsys_table): Add the `close' member into
   6263 	each of the entries. For TFTP, tftp_close is added, and for the
   6264 	rest, NULL is added.
   6265 	(grub_read): "|" -> "||".
   6266 	(grub_close): New function.
   6267 	* stage2/filesys.h [FSYS_TFTP] (tftp_close): Declared.
   6268 	(struct fsys_entry): Added close_func.
   6269 	* stage2/shared.h (grub_close): Declared.
   6270 	* stage2/stage1_5.c (cmain): Call grub_close after grub_open.
   6271 	* stage2/stage2.c (cmain): Clear ERRNUM after calling
   6272 	find_command to just ignore the error code.
   6273 	Call grub_close after loading the configuration file.
   6274 
   6275 	* stage2/asm.S (main): Clean out the bss.
   6276 
   6277 1999-10-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6278 
   6279 	* docs/new-grub.texi: Updated.
   6280 	* docs/user-ref.texi: Likewise.
   6281 	* docs/tutorial.texi: Likewise.
   6282 	* docs/prog-ref.texi: Likewise.
   6283 	* docs/appendices.texi: Likewise.
   6284 
   6285 1999-10-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6286 
   6287 	* docs/prog-ref.texi: New file.
   6288 	* docs/appendices.texi: Likewise.
   6289 	* docs/Makefile.am (UNFINISHED_MANUALS): Added prog-ref.texi and
   6290 	appendices.texi.
   6291 
   6292 1999-10-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6293 
   6294 	* docs/user-ref.texi: New file.
   6295 	* docs/Makefile.am (UNFINISHED_MANUALS): Added user-red.texi.
   6296 
   6297 1999-10-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6298 
   6299 	Add BIOS drive remapping support for chain-loading some foolish
   6300 	operating systems.
   6301 
   6302 	* stage2/builtins.c (bios_drive_map): New variable.
   6303 	(boot_func): If KERNEL_TYPE is KERNEL_TYPE_CHAINLOADER, check
   6304 	if BIOS_DRIVE_MAP contains meaningful values. If so, search for
   6305 	SAVED_DRIVE in BIOS_DRIVE_MAP and exchange SAVED_DRIVE with the
   6306 	mapped drive if found. And then call set_int13_handler.
   6307 	(map_func): New function.
   6308 	(builtin_map): New variable.
   6309 	(builtin_table): Added a pointer to BUILTIN_MAP.
   6310 	* stage2/asm.S (ABS): New macro.
   6311 	[!STAGE1_5] (set_int13_handler): New function.
   6312 	[!STAGE1_5] (int13_handler): New interrupt handler for the real
   6313 	mode.
   6314 	[!STAGE1_5] (drive_map): New variable.
   6315 	[!STAGE1_5] (int13_handler_end): New label used for just
   6316 	computing the end address of int13_handler.
   6317 	* stage2/shared.h (DRIVE_MAP_SIZE): New macro.
   6318 	(set_int13_handler): Declared.
   6319 	* grub/asmstub.c (set_int13_handler): New function. Do nothing.
   6320 
   6321 1999-10-20  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6322 
   6323 	* stage2/builtins.c (find_func): Print only the device names.
   6324 	* docs/tutorial.texi: New file.
   6325 	* docs/Makefile.am (UNFINISHED_MANUALS): Added tutorial.texi.
   6326 	(%.c.texi): Use $(SHELL) instead of /bin/sh.
   6327 	(%.h.texi): Likewise.
   6328 	(%.S.texi): Likewise.
   6329 
   6330 1999-10-20  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6331 
   6332 	* stage2/char_io.c (memcheck): Fix the checks: "<=" -> "<".
   6333 	Reported by Mike Hicks <hick0088 (a] umn.edu>.
   6334 
   6335 1999-10-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6336 
   6337 	* stage2/builtins.c (find_func): New function.
   6338 	(builtin_find): New variable.
   6339 	(hide_func): Save SAVED_DRIVE and SAVED_PARTITION to TMP_DRIVE
   6340 	and TMP_PARTITION, respectively, and resotre them before return.
   6341 	(unhide_func): Likewise.
   6342 	(setup_func): Likewise. And set SAVED_DRIVE and SAVED_PARTITION
   6343 	instead of CURRENT_DRIVE and CURRENT_PARTITION to IMAGE_DRIVE
   6344 	and IMAGE_PARTITION before running install_func.
   6345 	(builtin_table): Added a pointer to BUILTIN_FIND.
   6346 
   6347 1999-10-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6348 
   6349 	* docs/Makefile.am (UNFINISHED_MANUALS): New variable.
   6350 	(EXTRA_DIST): Added $(UNFINISHED_MANUALS).
   6351 	* docs/new-grub.texi: New file.
   6352 
   6353 1999-10-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6354 
   6355 	* docs/Makefile.am (man_MANS): Added mbchk.1.
   6356 	[MAINTAINER_MODE] (mbchk.1): New target.
   6357 	* docs/mbchk.1: New file. Generated by help2man.
   6358 
   6359 1999-10-18  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6360 
   6361 	* Makefile.am (SUBDIRS): Added util.
   6362 	* configure.in: Output util/Makefile.
   6363 	* util/Makefile.am: New file.
   6364 	* util/mbchk.c: Likewise.
   6365 	* util/Makefile.in: Likewise. Generated by automake.
   6366 
   6367 1999-10-17  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6368 
   6369 	* docs/Makefile.am (.texi): Canceled because the dependecies can
   6370 	be circulated.
   6371 	* stage2/builtins.c (embed_func): Set BUF_TRACK to -1 before
   6372 	writing	the Stage 1.5 to the disk to clear the cache.
   6373 
   6374 1999-10-17  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6375 
   6376 	* stage2/boot.c (load_initrd): Change types of *RAMDISK and
   6377 	MOVETO to unsigned long.
   6378 	Apply the macro RAW_ADDR to MOVETO.
   6379 
   6380 1999-10-16  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6381 
   6382 	* docs/multiboot.texi: Include the example source files of a
   6383 	Multiboot kernel.
   6384 	* docs/src2texi: New file.
   6385 	* docs/boot.S: Likewise.
   6386 	* docs/multiboot.h: Likewise.
   6387 	* docs/kernel.c: Likewise.
   6388 	* docs/boot.S.texi: Likewise.
   6389 	* docs/multiboot.h.texi: Likewise.
   6390 	* docs/kernel.c.texi: Likewise.
   6391 	* docs/Makefile.am (EXAMPLES): New varilable.
   6392 	(multiboot_TEXINFOS): Likewise.
   6393 	(SRC2TEXI): Likewise.
   6394 	(noinst_SCRIPTS): Added $(SRC2TEXI).
   6395 	(EXTRA_DIST): Added $(EXAMPLES) and $(multiboot_TEXINFOS).
   6396 	(%.c.texi): New target.
   6397 	(%.h.texi): Likewise.
   6398 	(%.S.texi): Likewise.
   6399 
   6400 1999-09-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6401 
   6402         * multiboot.texi (BIOS device mapping techniques): New section.
   6403         Stolen from bios_mapping.txt in grub-0.5.
   6404         (Data comparison technique): New subsection.
   6405         (I/O restriction technique): Likewise.
   6406         (Example OS code): Rewrited from scratch.
   6407 
   6408 1999-09-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6409 
   6410         * multiboot.texi: Rename Multiboot Standard to Multiboot
   6411         Specification and upgrade the version to 0.7. Many cleanups
   6412         are done.
   6413 
   6414 1999-10-15  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6415 
   6416 	* stage2/builtins.c (setup_func): Save CURRENT_DRIVE and
   6417 	CURRENT_PARTITION into IMAGE_DRIVE and IMAGE_PARTITION
   6418 	respectively, and restore them before running install_func.
   6419 	Use DEVICE instead of BUFFER to store the device name.
   6420 	Change each type of STAGE1, STAGE2 and CONFIG_FILE to an array
   6421 	of char.
   6422 	If installing the Stage 1 into a MBR, embed the Stage 1.5 in the
   6423 	sectors right after it.
   6424 	Return the result of install_func instead of zero.
   6425 
   6426 1999-10-14  Pavel Roskin  <pavel_roskin (a] geocities.com>
   6427 
   6428 	* configure.in: Check for opendisk in libutil.
   6429 	* grub/asmstub.c [__FreeBSD__ || __NetBSD__]: Include
   6430 	<sys/ioctl.h>.
   6431 	[HAVE_OPENDISK]: Include <util.h>.
   6432 	[__NetBSD__] (get_floppy_disk_name): Added support for NetBSD.
   6433 	[__NetBSD__ && HAVE_OPENDISK] (get_ide_disk_name): Likewise.
   6434 	[__NetBSD__ && HAVE_OPENDISK] (get_scsi_disk_name): Likewise.
   6435 	(get_drive_geometry) [__NetBSD__]: Use for NetBSD the same ioctl
   6436 	as for FreeBSD.
   6437 
   6438 1999-10-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6439 
   6440 	* grub/asmstub.c (assign_device_name): If DEVICE is NULL, set
   6441 	DEVICE_MAP[DRIVE] to NULL.
   6442 	(get_diskinfo): If open or read fails, call assign_device_name
   6443 	to disable accessing the drive DRIVE.
   6444 	(grub_stage2): The device mapping routine is moved to ...
   6445 	(init_device_map): ... here. This new function also reads/writes
   6446 	a device map file. If DEVICE_MAP_FILE already exists, then use
   6447 	the data in it instead of probing devices. Otherwise, guess the
   6448 	map between BIOS drives and OS devices, and write it to the file
   6449 	DEVICE_MAP_FILE if it can be opened.
   6450 	* grub/main.c (device_map_file): New variable.
   6451 	(default_device_map_file): Likewise.
   6452 	(OPT_DEVICE_MAP): New macro.
   6453 	(longopts): Added an entry for "device-map".
   6454 	(usage): Print the usage about --device-map as well.
   6455 	(main): Set DEFAULT_DEVICE_MAP_FILE to DEVICE_MAP_FILE. If
   6456 	OPT_DEVICE_MAP is found, set DEVICE_MAP_FILE to a duplicated
   6457 	string of OPTARG.
   6458 	* stage2/shared.h [GRUB_UTIL] (device_map_file): Declared.
   6459 	* docs/grub.8: Regenerated.
   6460 
   6461 1999-10-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6462 
   6463 	* stage2/builtins.c (color_func): Do not set NORMAL_COLOR or
   6464 	HIGHLIGHT_COLOR directly, but use NEW_NORMAL_COLOR and
   6465 	NEW_HIGHLIGHT_COLOR as temporary storages instead.
   6466 	New internal function `color_number' is used to convert a
   6467 	symbolic color representation into a color number.
   6468 	Try color_number at first, and if fails, then try
   6469 	safe_parse_maxint for each of NORMAL and HIGHLIGHT.
   6470 	(builtin_color): The long doc does not describe the raw number
   6471 	syntax but the symbolic color name syntax.
   6472 	* docs/grub.texi (Commands): Adjusted to the long doc of
   6473 	BUILTIN_COLOR.
   6474 	* docs/menu.lst: Add examples of "fallback" and "color".
   6475 
   6476 1999-10-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6477 
   6478 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): If C is a newline
   6479 	or a return, then set LPOS to LLEN and call the function
   6480 	cl_setcpos.
   6481 	[!STAGE1_5] (grub_strncat): New function.
   6482 	* stage2/builtins.c (embed_func): New function.
   6483 	(builtin_embed): New varilable.
   6484 	(setup_func): New function.
   6485 	(builtin_setup): New varilable.
   6486 	(builtin_table): Added a pointer to BUILTIN_EMBED and a pointer
   6487 	to BUILTIN_SETUP.
   6488 	* stage2/shared.h (grub_strncat): Declared.
   6489 
   6490 	* stage2/Makefile.am (stage2_size.h): ../stage2/stage2 ->
   6491 	pre_stage2. Reported by Pavel Roskin.
   6492 
   6493 1999-10-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6494 
   6495 	From Pavel Roskin:
   6496 	* acinclude.m4 (grub_PROG_OBJCOPY_ABSOLUTE): main -> cmain.
   6497 	* stage2/boot.c (load_image): Only CUR_ADDR, not ENTRY_ADDR
   6498 	should be 1M-aligned for NetBSD. Don't align symbol table on 4k
   6499 	boundaries if the kernel doesn't require it.
   6500 
   6501 1999-10-10  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6502 
   6503 	* stage2/asm.S [!STAGE1_5] (start): New label to force ld quiet.
   6504 	[!STAGE1_5] (_start): Likewise.
   6505 	* stage2/builtins.c (install_func): Rewritten heavily almost
   6506 	from scratch. As the blocklist was moved to the first sector of
   6507 	Stage 2, always write sectors of Stage 2 to the disk.
   6508 	* stage1/stage1.h (STAGE1_STAGE2_SECTOR): 0x40 -> 0x41.
   6509 	(STAGE1_STAGE2_ADDRESS): 0x44 -> 0x45.
   6510 	(STAGE1_STAGE2_SEGMENT): 0x46 -> 0x47.
   6511 	(STAGE1_BOOT_DRIVE): 0x3f -> 0x40.
   6512 
   6513 1999-10-09  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6514 
   6515 	Stage1 supports both the CHS mode and the LBA mode.
   6516 
   6517 	* stage1/Makefile.am (nodist_pkgdata_DATA): Removed stage1_lba.
   6518 	(BUILT_SOURCES): Deleted.
   6519 	(CLEANFILES): Likewise.
   6520 	(noinst_PROGRAMS): Removed stage1_lba.exec.
   6521 	(stage1_exec_SOURCES): Removed stage2_size.h.
   6522 	(stage2_size.h): Deleted.
   6523 	(stage1_lba_exec_SOURCES): Likewise.
   6524 	* stage1/stage1.S: Rewritten from scratch.
   6525 	* stage1/stage1_lba.S: Deleted.
   6526 	* stage1/stage1.h (COMPAT_VERSION_MAJOR): Set to 3.
   6527 	(COMPAT_VERSION_MINOR): Set to 0.
   6528 	(STAGE1_VER_MAJ_OFFS): Set to 0x3e.
   6529 	(STAGE1_FIRSTLIST): Deleted.
   6530 	(STAGE1_INSTALLSEG): Likewise.
   6531 	(STAGE1_INSTALLADDR): Likewise.
   6532 	(STAGE1_MINPARAMSIZE): Likewise.
   6533 	(STAGE1_LISTSIZE): Likewise.
   6534 	(STAGE1_ID_OFFSET): Likewise.
   6535 	(STAGE1_ID_CHS): Likewise.
   6536 	(STAGE1_ID_LBA): Likewise.
   6537 	(STAGE1_STAGE2_SECTOR): New macro.
   6538 	(STAGE1_STAGE2_ADDRESS): Likewise.
   6539 	(STAGE1_STAGE2_SEGMENT): Likewise.
   6540 	(STAGE1_BOOT_DRIVE): Likewise.
   6541 	* stage2/start.S: New file.
   6542 	* stage2/Makefile.am (noinst_DATA): New variable.
   6543 	(CLEANFILES): Set to "$(nodist_pkgdata_DATA) $(noinst_DATA)
   6544 	$(BUILT_SOURCES)".
   6545 	(noinst_PROGRAMS): Removed stage2.exec, and added start.exec and
   6546 	pre_stage2.exec.
   6547 	(STAGE2_LINK): Deleted.
   6548 	(PRE_STAGE2_LINK): New variable.
   6549 	(START_LINK): Likewise.
   6550 	(stage2_exec_SOURCES): Deleted.
   6551 	(stage2_exec_CFLAGS): Likewise.
   6552 	(stage2_exec_LDFLAGS): Likewise.
   6553 	[NETBOOT_SUPPORT] (stage2_exec_LDADD): Likewise.
   6554 	(pre_stage2_exec_SOURCES): New variable.
   6555 	(pre_stage2_exec_CFLAGS): Likewise.
   6556 	(pre_stage2_exec_LDFLAGS): Likewise.
   6557 	[NETBOOT_SUPPORT] (pre_stage2_exec_LDADD): Likewise.
   6558 	(BUILT_SOURCES): Likewise.
   6559 	(start_exec_SOURCES): Likewise.
   6560 	(start_exec_CFLAGS): Likewise.
   6561 	(start_exec_LDFLAGS): Likewise.
   6562 	(start_exec_DEPENDENCIES): Likewise.
   6563 	(stage2_size.h): New rule.
   6564 	(stage2): Likewise.
   6565 	(e2fs_stage1_5_exec_SOURCES): Added start.S.
   6566 	(fat_stage1_5_exec_SOURCES): Likewise.
   6567 	(ffs_stage1_5_exec_SOURCES): Likewise.
   6568 	(minix_stage1_5_exec_SOURCES): Likewise.
   6569 	* stage2/asm.S (start): Renamed to ...
   6570 	(main): ... this.
   6571 	[STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x2200)
   6572 	instead of (codestart - EXT_C(start) + 0x2000).
   6573 	[!STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x8200)
   6574 	instead of (codestart - EXT_C(start) + 0x8000).
   6575 	[STAGE1_5] (chain_stage2): Use main instead of start.
   6576 	* stage2/shared.h (BOOTSEC_LISTSIZE): New macro.
   6577 	* stage2/stage1_5.c: Change the second argument for chain_stage2
   6578 	to 0x8200.
   6579 
   6580 1999-10-08  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6581 
   6582 	* configure.in (--with-binutils): New option to specify a
   6583 	directory to find binutils.
   6584 	(CFLAGS): If WITH_BINUTILS is not empty, added the option `-B'.
   6585 	(LD): Do not check for this. We don't use ld directly anyway.
   6586 	(RANLIB): If WITH_BINUTILS is not empty, search the directory
   6587 	WITH_BINUTILS first.
   6588 	(OBJCOPY): Likewise.
   6589 	* acinclude.m4 (grub_ASM_USCORE): Add CFLAGS into
   6590 	AC_TRY_COMMAND.
   6591 	(grub_ASM_ADDR32): Likewise.
   6592 	(grub_ASM_PREFIX_REQUIREMENT): Likewise.
   6593 	(grub_PROG_OBJCOPY_ABSOLUTE): Use CC instead of LD.
   6594 
   6595 1999-10-04  Pavel Roskin  <pavel_roskin (a] geocities.com>
   6596 
   6597 	* stage2/freebsd.h (struct bootinfo): New member, bi_bios_dev.
   6598 	* stage2/boot.c (bsd_boot): Set BI.BI_BIOS_DEV to SAVED_DRIVE.
   6599 
   6600 1999-10-04  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6601 
   6602 	From Pavel Roskin:
   6603 	* docs/grub.texi: Fix typos.
   6604 	* stage2/builtins.c (install_func): Reformat the warning message
   6605 	about the option `d'.
   6606 
   6607 1999-10-03  Gordon Matzigkeit  <gord (a] fig.org>
   6608 
   6609 	* stage2/builtins.c (install_func): Fix check for the Stage 2 id.
   6610 	From Pavel Roskin.
   6611 
   6612 	* debian/Makefile.am (EXTRA_DIST): Add postinst and prerm.
   6613 
   6614 1999-10-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6615 
   6616 	* stage2/builtins.c (boot_func): Pass MBI.CMDLINE instead of ARG
   6617 	to bsd_boot.
   6618 
   6619 1999-10-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6620 
   6621 	* stage2/gunzip.c (gunzip_test_header): Check if CURRENT_DRIVE
   6622 	is 0x20 instead of if the fs type is TFTP, because GRUB does not
   6623 	mount CURRENT_DRIVE when using a block file. Reported by Pavel
   6624 	Roskin.
   6625 
   6626 1999-10-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6627 
   6628 	* stage2/builtins.c (cat_func): Do not read the whole of a file
   6629 	at one time. Instead, repeat reading one byte and print it on
   6630 	the screen.
   6631 	* docs/grub.texi (Command line): List the available key
   6632 	bindings.
   6633 	(Commands): Added descriptions about "geometry", "device" and
   6634 	"cat".
   6635 
   6636 1999-10-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6637 
   6638 	Now it is possible to build the grub shell with old BSD curses.
   6639 
   6640 	* stage2/shared.h [!A_NORMAL] (A_NORMAL): Set to zero.
   6641 	[!A_REVERSE && A_STANDOUT] (A_REVERSE): Set to A_STANDOUT.
   6642 	[!A_REVERSE && !A_STANDOUT] (A_REVERSE): Set to zero.
   6643 
   6644 1999-09-30  Pavel Roskin  <pavel_roskin (a] geocities.com>
   6645 
   6646 	* stage2/disk_io.c (set_bootdev): Mask 0x7F instead of 0x79 of
   6647 	the device number.
   6648 
   6649 1999-10-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6650 
   6651 	* configure.in (--without-curses): New option. If WITH_CURSES is
   6652 	no, do not check for curses.
   6653 
   6654 	* stage2/disk_io.c (set_device) [STAGE1_5]: Change the type of
   6655 	DEV to unsigned long.
   6656 	* stage2/builtins.c (install_func): Always check for the Stage 2
   6657 	id in FILE.
   6658 	Reported by Pavel Roskin.
   6659 
   6660 1999-09-30  Gordon Matzigkeit  <gord (a] fig.org>
   6661 
   6662 	* debian/postinst: New file to call install-info.
   6663 	* debian/prerm: Likewise.
   6664 	* debian/rules (binary-arch): Add postinst and prerm, compress the
   6665 	info files, and call dpkg-shlibdeps.
   6666 
   6667 	* stage2/cmdline.c (skip_to): Restructure, and count tabs as
   6668 	whitespace.
   6669 	(find_command): Likewise.
   6670 
   6671 1999-09-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6672 
   6673 	* grub/getopt.c: Moved to ...
   6674 	* lib/getopt.c: ... here.
   6675 	* grub/getopt1.c: Moved to ...
   6676 	* lib/getopt1.c: ... here.
   6677 	* grub/getopt.h: Moved to ...
   6678 	* lib/getopt.h: ... here.
   6679 	* grub/Makefile.am (AM_CFLAGS): Added -I$(top_srcdir)/lib.
   6680 	(grub_LDADD): Added ../lib/libcommon.a.
   6681 	* lib/Makefile.am: New file.
   6682 	* Makefile.am (SUBDIRS): Added lib.
   6683 	* configure.in: lib/Makefile is added into the arguments for
   6684 	AC_OUTPUT.
   6685 
   6686 1999-09-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6687 
   6688 	From Pavel Roskin:
   6689 	* stage2/defs.h (time_t): Renamed to ...
   6690 	(mach_time_t): ... this.
   6691 	(daddr_t): Renamed to ...
   6692 	(mach_daddr_t): ... this.
   6693 	(uid_t): Renamed to ...
   6694 	(mach_uid_t): ... this.
   6695 	(gid_t): Renamed to ...
   6696 	(mach_gid_t): ... this.
   6697 	(ino_t): Renamed to ...
   6698 	(mach_ino_t): ... this.
   6699 	* stage2/disk_inode.h (FFS_MAX_FASTLINK_SIZE): Use mach_daddr_t
   6700 	instead of daddr_t.
   6701 	(struct icommon): Use mach_uid_t, mach_gid_t, mach_time_t and
   6702 	mach_daddr_t, instead of uid_t, gid_t, time_t and daddr_t.
   6703 	* stage2/fs.h (BBLOCK): Use mach_daddr_t instead of addr_t.
   6704 	(SBLOCK): Likewise.
   6705 	(ROOTINO): Use mach_ino_t instead of ino_t.
   6706 	(struct fs): Use mach_daddr_t and mach_time_t instead of daddr_t
   6707 	and time_t.
   6708 	(struct cg): Use mach_time_t instead of time_t.
   6709 	(struct ocg): Likewise.
   6710 	(cgbase): Use mach_daddr_t instead of daddr_t.
   6711 	(itod): Likewise.
   6712 
   6713 1999-09-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6714 
   6715 	* acinclude.m4 (grub_CHECK_START_SYMBOL): Use AC_TRY_LINK
   6716 	instead of AC_TRY_COMMAND.
   6717 	(grub_CHECK_USCORE_START_SYMBOL): Likewise.
   6718 	(grub_CHECK_END_SYMBOL): Likewise.
   6719 	(grub_CHECK_USCORE_END_SYMBOL): Likewise.
   6720 
   6721 	* stage2/disk_io.c (set_device) [!STAGE1_5]: Use RESULT instead
   6722 	of RETVAL to check if the analysis succeeds.
   6723 
   6724 1999-09-29  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6725 
   6726 	* stage2/builtins.c (install_func): If the Stage 2 id in FILE is
   6727 	not STAGE2_ID_STAGE2, set IS_STAGE1_5 to 1, otherwise to 0.
   6728 	Use CONFIG_FILE_LOCATION to point to the location of the name of
   6729 	a configuration file in Stage 2.
   6730 	If the option `p' is present and IS_STAGE1_5 is non-zero, reset
   6731 	the device information in CONFIG_FILE_LOCATION.
   6732 	(cat_func): New function.
   6733 	(builtin_cat): New variable.
   6734 	(builtin_table): Added a pointer to BUILTIN_CAT.
   6735 	(geometry_func): Call real_open_partition with the argument 1
   6736 	after printing out the drive information.
   6737 	* stage2/disk_io.c (real_open_partition): Made global.
   6738 	[!STAGE1_5] (print_completions): In the command completion and
   6739 	the filename completion, print a newline at the last if
   6740 	IS_COMPLETION is zero.
   6741 	* stage2/shared.h (real_open_partition): Declared.
   6742 	* stage2/fsys_ext2fs.c (ext2fs_dir): Do not print a newline even
   6743 	if PRINT_POSSIBILITIES is less than zero.
   6744 	* stage2/fsys_ffs.c (ffs_dir): Likewise.
   6745 	* stage2/fsys_fat.c (fat_dir): Likewise.
   6746 	* stage2/fsys_minix.c (minix_dir): Likewise.
   6747 
   6748 1999-09-29  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6749 
   6750 	* stage1/stage1.S [!FFS_STAGE1_5] (blocklist_default_len): Do
   6751 	not divide the size by 512, but shift the size to the right by
   6752 	9 instead, because of a binutils-2.9.1.0.x bug.
   6753 	* stage1/stage1_lba.S [!FFS_STAGE1_5] (blocklist_default_len):
   6754 	Likewise.
   6755 	* stage2/builtins.c (install_func): When installing Stage 1.5,
   6756 	if set_device returns NULL, then set CURRENT_DRIVE to 0xFF and
   6757 	CONFIG_FILE to PTR.
   6758 
   6759 1999-09-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6760 
   6761 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): In cl_insert, call
   6762 	cl_setcpos before printing BUF, even if LPOS is equal to LLEN.
   6763 	In the completion, if RET is zero, do not call cl_init.
   6764 	* stage2/disk_io.c [!STAGE1_5] (print_completions): In the
   6765 	filename completion, if UNIQUE is 1, check if UNIQUE_STRING is a
   6766 	directory or not. If so, append '/' to BUF.
   6767 	In the partition completion, if IS_COMPLETION is non-zero and
   6768 	*UNIQUE_STRING is not NUL, copy UNIQUE_STRING to PTR. Do not
   6769 	append '/'.
   6770 	(real_open_partition) [!STAGE1_5]: If DO_COMPRESSION is non-zero,
   6771 	call print_a_completion.
   6772 	(check_BSD_parts) [!STAGE1_5]: Likewise.
   6773 	[!STAGE1_5] (print_a_completion): Ignore NAME if it is "." or
   6774 	"..".
   6775 
   6776 1999-09-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6777 
   6778 	* acinclude.m4 (grub_CHECK_USCORE_END_SYMBOL): Do not call
   6779 	AC_DEFINE within AC_CACHE_VAL. Call it after AC_CACHE_VAL.
   6780 	* stage2/Makefile.am (STAGE1_5_COMPILE): Do not define
   6781 	CONFIG_FILE_ASM.
   6782 	* stage2/asm.S (config_file) [STAGE1_5]: Set the first 4 bytes
   6783 	to 0xffffffff and the following to "/boot/grub/stage2".
   6784 	(config_file) [!STAGE1_5]: Set to "/boot/grub/menu.lst".
   6785 	* stage2/builtins.c (install_func): Read a Stage 2 before
   6786 	handling the `p' option.
   6787 	If the `configfile' option is present and FILE is a Stage 2,
   6788 	translate the device name to the internal device representation
   6789 	and copy the result to STR.
   6790 	* stage2/disk_io.c [STAGE1_5] (sane_partition): Eliminated.
   6791 	[STAGE1_5] (incomplete): Likewise.
   6792 	[STAGE1_5] (disk_choice): Likewise.
   6793 	[STAGE1_5] (part_choice): Likewise.
   6794 	(set_device) [STAGE1_5]: Assume that the first 4 bytes of DEVICE
   6795 	is a device number. Set DRIVE to the forth byte of DEV and
   6796 	PARTITION to the first 3 bytes of DEV. If DRIVE is 0xFF, set
   6797 	CURRENT_DRIVE and CURRENT_PARTITION to SAVED_DRIVE and
   6798 	SAVED_PARTITION, respectively. Otherwise set to DRIVE and
   6799 	PARTITION, respectively.
   6800 	(setup_part) [STAGE1_5]: Always call set_device.
   6801 
   6802 1999-09-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6803 
   6804 	* acinclude.m4 (grub_CHECK_END_SYMBOL): Add a missing
   6805 	double-quote. Reported by Johannes Kroeger
   6806 	<hanne (a] squirrel.owl.de>.
   6807 
   6808 1999-09-14  Gordon Matzigkeit  <gord (a] fig.org>
   6809 
   6810 	* stage1/stage1.S (blocklist_default_start): New label for default
   6811 	blocklist start sector.
   6812 	(blocklist_default_len): New label for default blocklist length.
   6813 	(blocklist_default_seg): New label for default blocklist segment.
   6814 	* stage1/stage1_lba.S (blocklist_default_start): Likewise.
   6815 	(blocklist_default_len): Likewise.
   6816 	(blocklist_default_seg): Likewise.
   6817 
   6818 1999-09-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6819 
   6820 	* acinclude.m4 (grub_ASM_ADDR32): First, create a template
   6821 	source file "conftest.s.in", and then, replace @ADDR32@ with
   6822 	"addr32" if GRUB_CV_ASM_PREFIX_REQUIREMENT is yes, otherwise,
   6823 	replace it with "addr32;". Reported by John Tobey
   6824 	<spam (a] john-edwin-tobey.org>.
   6825 
   6826 1999-09-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6827 
   6828 	* stage2/builtins.c (debug_fs_print_func): Renamed to ...
   6829 	(disk_read_print_func): ... this.
   6830 	(fstest_func): Use DISK_READ_HOOK instead of DEBUG_FS.
   6831 	(install_func): Rename debug_fs_savesect_func to
   6832 	disk_read_savesect_func.
   6833 	Rename debug_fs_blocklist_func to disk_read_blocklist_func.
   6834 	Use DISK_READ_HOOK instead of DEBUG_FS.
   6835 	(testload_func): Use DISK_READ_HOOK instead of DEBUG_FS.
   6836 	* stage2/disk_io.c [!STAGE1_5] (debug_fs): Renamed to ...
   6837 	[!STAGE1_5] (disk_read_hook): ... this.
   6838 	[!STAGE1_5] (debug_fs_func): Renamed to ...
   6839 	[!STAGE1_5] (disk_read_func): ... this.
   6840 	(rawread) [!STAGE1_5]: Use DISK_READ_HOOK and DISK_READ_FUNC
   6841 	instead	of DEBUG_FS and DEBUG_FS_FUNC.
   6842 	(grub_read) [!STAGE1_5]: Likewise.
   6843 	(devread) [!STAGE1_5]: Use DISK_READ_HOOK instead of DEBUG_FS.
   6844 	* stage2/fsys_ext2fs.c (ext2fs_read) [!STAGE1_5]: Use
   6845 	DISK_READ_HOOK and DISK_READ_FUNC instead of DEBUG_FS and
   6846 	DEBUG_FS_FUNC.
   6847 	* stage2/fsys_ffs.c (ffs_read) [!STAGE1_5]: Likewise.
   6848 	* stage2/fsys_minix.c (minix_read) [!STAGE1_5]: Likewise.
   6849 	* stage2/shared.h [!STAGE1_5] (debug_fs): Renamed to ...
   6850 	[!STAGE1_5] (disk_read_hook): ... this.
   6851 	[!STAGE1_5] (debug_fs_func): Renamed to ...
   6852 	[!STAGE1_5] (disk_read_func): ... this.
   6853 	* docs/grub.texi: Likewise, replace debug_fs and debug_fs_func
   6854 	with disk_read_hook and disk_read_func, respectively.
   6855 
   6856 1999-09-23  Pavel Roskin  <pavel_roskin (a] geocities.com>
   6857 
   6858 	* stage2/builtins.c (install_func): New local function,
   6859 	debug_fs_savesect_func. Use debug_fs_savesect_func to determine
   6860 	the first sector of Stage2. Write Stage 1 after patching Stage
   6861 	2.
   6862 
   6863 1999-09-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6864 
   6865 	* acinclude.m4 (grub_ASM_USCORE): Do not define HAVE_ASM_USCORE
   6866 	within AC_CACHE_VAL. Define it after AC_CACHE_VAL if
   6867 	GRUB_CV_ASM_USCORE is yes.
   6868 
   6869 1999-09-20  Edmund GRIMLEY EVANS  <edmundo (a] rano.demon.co.uk>
   6870 
   6871 	* netboot/3c59x.c: INCLUDE_3c59x is replaced by INCLUDE_3C59X
   6872  	throughout.
   6873 	* netboot/config.c: Likewise.
   6874 	* netboot/io.h (__INS): New macro.
   6875 	(__OUTS): Likewise.
   6876 	(outl): Likewise.
   6877 	(inl): Likewise.
   6878 	(outl_p): Likewise.
   6879 	(inl_p): Likewise.
   6880 	Call __INS with the argument `b', with `w' and with `l' to
   6881 	define insb, insw and insl, respectively. Likewise, Call __OUTS
   6882 	with `b', with `w' and with `l' to define outsb, outw and outl,
   6883 	respectively.
   6884 	* netboot/pci.h (PCI_VENDOR_ID_VORTEX): New macro.
   6885  	(PCI_DEVICE_ID_VORTEX_3c595): Likewise. Defined as a random
   6886 	value.
   6887 
   6888 1999-09-20  Edward Killips  <ekillips (a] triton.net>
   6889 
   6890 	* stage2/disk_io.c (set_partition_hidden_flag): Set/clear the
   6891 	hidden flag, whether the hidden flag is set or not.
   6892 
   6893 1999-09-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6894 
   6895 	* stage2/builtins.c (install_func): Do not set DEBUG_FS at the
   6896 	first read. Set it to DEBUG_FS_BLOCKLIST_FUNC when reading the
   6897 	whole of Stage 2. Set FILEPOS to zero at the same time to read
   6898 	from the beginning of Stage 2. Reported by Pavel Roskin.
   6899 
   6900 1999-09-20  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6901 
   6902 	The argument ADDR for the command install is now optional.
   6903 
   6904 	* stage2/builtins.c (install_func): If parsing ADDR fails, set
   6905 	INSTALLADDR to zero and set PTR to ADDR.
   6906 	If INSTALLADDR is zero after parsing the command-line, check if
   6907 	the Stage 2 id is STAGE2_ID_STAGE2. If so, set INSTALLADDR to
   6908 	0x8000, otherwise set it to 0x2000.
   6909 	Set the install address in the Stage 1 after the automatic
   6910 	determination is completed.
   6911 	(builtin_install): Say that ADDR is optional in the help
   6912 	message.
   6913 	* docs/grub.texi: Synchronize the description about install to
   6914 	builtins.c. Remove explicit address arguments from all the
   6915 	examples. Add a description about help.
   6916 	* docs/menu.lst: Do not specify the address argument for
   6917 	install.
   6918 
   6919 1999-09-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6920 
   6921 	The completion code is heavily modified.
   6922 
   6923 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): In the completion
   6924 	code, use COMPLETION_BUFFER to get the completion instead of
   6925 	writing to BUF directly.
   6926 	Save the position of a possible equal character after a command
   6927 	in EQUAL_POS and replace the equal character with a space
   6928 	temporarily for the code simplicity.
   6929 	At first, just get completions, and, if there is more than one
   6930 	completions, then print the list of the completions.
   6931 	* stage2/disk_io.c [!STAGE1_5] (do_completion): New variable.
   6932 	[!STAGE1_5] (unique): Moved the definition near the beginning.
   6933 	[!STAGE1_5] (unique_string): Likewise. And changed the type to
   6934 	char *.
   6935 	(check_BSD_parts) [!STAGE1_5]: If DO_COMPLETION is non-zero, do
   6936 	not print anything.
   6937 	(real_open_partition) [!STAGE1_5]: Likewise.
   6938 	[!STAGE1_5] (print_fsys_type): Likewise.
   6939 	[!STAGE1_5] (print_a_completion): The argument FILENAME is
   6940 	renamed	to NAME.
   6941 	If DO_COMPLETION is non-zero, get the unique part from NAME and
   6942 	set UNIQUE_STRING to it.
   6943 	If DO_COMPLETION is zero, just print NAME.
   6944 	Do not call printf unconditionally.
   6945 	[!STAGE1_5] (print_completions): Accept two arguements
   6946 	IS_FILENAME and IS_COMPLETION instead of FILENAME.
   6947 	Set UNIQUE_STRING to UNIQUE_BUF.
   6948 	Set DO_COMPLETION to IS_COMPLETION and set it to zero before
   6949 	returning.
   6950 	If IS_FILENAME is zero, then complete builtin commands and
   6951 	return UNIQUE - 1.
   6952 	Use BUF instead of FILENAME.
   6953 	If IS_COMPLETION is non-zero, do not print anything.
   6954 	Copy UNIQUE_STRING to PTR only if IS_COMPLETION and
   6955 	*UNIQUE_STRING are non-zero.
   6956 	* stage2/shared.h (COMPLETION_BUF): New macro.
   6957 	(COMPLETION_BUFLEN): Likewise.
   6958 	(UNIQUE_BUF): Likewise.
   6959 	(UNIQUE_BUFLEN): Likewise.
   6960 	(MENU_BUF): Set to UNIQUE_BUF + UNIQUE_BUFLEN.
   6961 	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - UNIQUE_BUF.
   6962 	(print_completions): Adjusted to the definition.
   6963 
   6964 1999-09-19  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6965 
   6966 	* acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): Do not call
   6967 	AC_DEFINE_UNQUOTEs within AC_CACHE_VAL. Define ADDR32 and DATA32
   6968 	after it.
   6969 	(grub_CHECK_START_SYMBOL): Do not call AC_DEFINE within
   6970 	AC_CACHE_VAL. Define HAVE_START_SYMBOL after it.
   6971 	(grub_CHECK_USCORE_START_SYMBOL): Do not call AC_DEFINE within
   6972 	AC_CACHE_VAL. Define HAVE_USCORE_START_SYMBOL after it.
   6973 	(grub_CHECK_END_SYMBOL): Do not call AC_DEFINE within
   6974 	AC_CACHE_VAL. Define HAVE_END_SYMBOL after it.
   6975 	(grub_CHECK_USCORE_END_SYMBOL): Do not call AC_DEFINE within
   6976 	AC_CACHE_VAL. Define HAVE_USCORE_END_SYMBOL after it.
   6977 
   6978 1999-09-17  Pavel Roskin  <pavel_roskin (a] geocities.com>
   6979 
   6980 	* acconfig.h (ADDR32): Removed. This entry is automatically
   6981 	created by autoheader.
   6982 	(DATA32): Likewise.
   6983 	* acinclude.m4 (grub_ASM_ADD32): Use ADDR32 instead of addr32.
   6984 	Require grub_ASM_PREFIX_REQUIREMENT.
   6985 	(grub_ASM_PREFIX_REQUIREMENT): Define ADDR32 and DATA32.
   6986 	* configure.in: Call grub_ASM_PREFIX_REQUIREMENT before
   6987 	grub_ASM_ADDR32. Do not define ADDR32 and DATA32.
   6988 	* stage1/stage1.S (after_BPB): Use ABS(firstlist) instead of
   6989 	firstlist.
   6990 	(MSG): Use ABS(x) instead of x.
   6991 	(probe_loop): Use the macro MSG for fd_probe_error_string.
   6992 	* stage1/stage1_lba.S (after_BPB): Use ABS(firstlist) instead of
   6993 	firstlist.
   6994 	(MSG): Use ABS(x) instead of x.
   6995 	* stage2/asm.S (putchar): Renamed to ...
   6996 	(grub_putchar): ... this.
   6997 
   6998 1999-09-18  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   6999 
   7000 	* stage2/gunzip.c (reset_linalloc): Use the macro RAW_ADDR
   7001 	before setting LINALLOC_TOPADDR.
   7002 	* stage2/shared.h [!GRUB_UTIL] (RAW_ADDR): Added parenthesises
   7003 	to avoid a gcc warning.
   7004 	[!GRUB_UTIL] (RAW_SEG): Likewise.
   7005 
   7006 1999-09-18  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7007 
   7008 	* acinclude.m4 (grub_CHECK_START_SYMBOL): New function.
   7009 	(grub_CHECK_USCORE_START_SYMBOL): Likewise.
   7010 	(grub_CHECK_END_SYMBOL): Likewise.
   7011 	(grub_CHECK_USCORE_SYMBOL): Likewise.
   7012 	* configure.in: Call grub_CHECK_START_SYMBOL and
   7013 	grub_CHECK_USCORE_START_SYMBOL, and if neither start nor _start
   7014 	is defined, print an error message and exit.
   7015 	Likewise, call grub_CHECK_END_SYMBOL and
   7016 	grub_CHECK_USCORE_END_SYMBOL, and if neither end nor _end is
   7017 	defined, print an error message and exit.
   7018 	* acconfig.h (HAVE_START_SYMBOL): Added the "undef" entry.
   7019 	(HAVE_USCORE_START_SYMBOL): Likewise.
   7020 	(HAVE_END_SYMBOL): Likewise.
   7021 	(HAVE_USCORE_END_SYMBOL): Likewise.
   7022 	* stage2/char_io.c (memcheck): Rename the argument START to
   7023 	ADDR. Added two missing equal characters.
   7024 	[GRUB_UTIL]: Define new local functions start_addr and end_addr.
   7025 	[GRUB_UTIL && HAVE_START_SYMBOL]: The function start_addr
   7026 	returns START.
   7027 	[GRUB_UTIL && HAVE_USCORE_START_SYMBOL]: The function start_addr
   7028 	returns _START.
   7029 	[GRUB_UTIL && HAVE_END_SYMBOL]: The function end_addr returns
   7030 	END.
   7031 	[GRUB_UTIL && HAVE_USCORE_END_SYMBOL]: The function end_addr
   7032 	returns _END.
   7033 	[GRUB_UTIL]: If ADDR is equal to or greater than the address
   7034 	returned by start_addr, and ADDR plus LEN is less than the
   7035 	address returned by end_addr, return ! ERRNUM.
   7036 	* stage2/asm.S (get_code_end) [HAVE_END_SYMBOL]: Use $end as the
   7037 	end of the bss.
   7038 	[HAVE_USCORE_END_SYMBOL]: Use $_end as the end of the bss.
   7039 	* stage2/disk_io.c [!STAGE1_5] (cur_part_desc): Made static.
   7040 	Need not to be global any longer.
   7041 
   7042 1999-09-17  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7043 
   7044 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): The argument
   7045 	COMPLETION is renamed to READLINE.
   7046 	Do not initialize KILL here.
   7047 	TAB, C-a, C-e, C-f, C-b, C-u, C-k, C-y, C-p and C-n are handled
   7048 	only if READLINE is non-zero.
   7049 	If ECHO_CHAR is not NUL, do not remove the leading spaces in BUF.
   7050 	Add CMDLINE into the history list only if READLINE is non-zero.
   7051 	* stage2/stage2.c (cmain): Initialize the kill buffer.
   7052 
   7053 1999-09-17  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7054 
   7055 	Killing, yanking and manipulating the history are supported.
   7056 
   7057 	* stage2/shared.h (cur_cmdline): Removed.
   7058 	(MAX_CMDLINE): Moved near the beginning of the file.
   7059 	(NEW_HEAPSIZE): Likewise.
   7060 	(CMDLINE_BUFLEN): Set to MAX_CMDLINE.
   7061 	(KILL_BUF): New macro.
   7062 	(KILL_BUFLEN): Likewise.
   7063 	(HISTORY_BUF): Likewise.
   7064 	(HISTORY_SIZE): Likewise.
   7065 	(HISTORY_BUFLEN): Likewise.
   7066 	(MENU_BUF): Set to HISTORY_BUF + HISTORY_BUFLEN.
   7067 	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - HISTORY_BUF.
   7068 	(strcpy): New macro.
   7069 	(grub_strcpy): Delared.
   7070 	* stage2/boot.c (cur_cmdline): Removed.
   7071 	* stage2/char_io.c [!STAGE1_5] (grub_strcpy): New function.
   7072 	[!STAGE1_5] (get_history): Likewise.
   7073 	[!STAGE1_5] (add_history): Likewise.
   7074 	[!STAGE1_5] (get_cmdline): Use BUF instead of CMDLINE for the
   7075 	working buffer for the command-line.
   7076 	A new function cl_insert is used to insert a string to the
   7077 	command-line.
   7078 	In the case where C-u or C-k is pressed, copy the string being
   7079 	deleted to KILL.
   7080 	If C-y is pressed, insert KILL to the command-line.
   7081 	If C-p is pressed, fetch the previous command from the history
   7082 	list HISTORY, and if C-n is pressed, fetch the next command from
   7083 	it.
   7084 	If LPOS is less than LLEN, add CMDLINE into the history list.
   7085 	If C is equal to KEY_UP, set C to 16, and if C is equal to
   7086 	KEY_DOWN, set C to 14.
   7087 	[!STAGE1_5] (num_history): New variable.
   7088 
   7089 1999-09-15  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7090 
   7091 	* stage2/size_test: Do not check for the size of Stage 2.
   7092 	* stage1/Makefile.am (stage2_size.h): Use `set' and `echo'
   7093 	instead of awk, since we cannot expect awk is present. Remove
   7094 	stage2_size.h before creating it.
   7095 
   7096 1999-09-15  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7097 
   7098 	* Makefile.am (SUBDIRS): Put stage1 after stage2 so that stage2
   7099 	is built before stage1.
   7100 	* stage1/Makefile.am (BUILT_SOURCES): New varilable.
   7101 	(CLEANFILES): Added BUILT_SOURCES.
   7102 	(stage1_exec_SOURCES): Added stage2_size.h.
   7103 	(stage1_lba_exec_SOURCES): Likewise.
   7104 	(stage2_size.h): New rule.
   7105 	* stage1/stage1.S: Include <stage2_size.h> and use STAGE2_SIZE
   7106 	to determine how much number of sectors to be read when loading
   7107 	Stage 2.
   7108 	* stage1/stage1_lba.S: Likewise.
   7109 
   7110 1999-09-15  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7111 
   7112 	* netboot/config.h: Moved to ...
   7113 	* netboot/netboot_config.h: ... here.
   7114 	* netboot/config.c: Include netboot_config.h instead of config.h.
   7115 	* netboot/fsys_tftp.c: Likewise.
   7116 	* netboot/ip.c: Likewise.
   7117 	* netboot/Makefile.am (libdrivers_a_SOURCES): Removed config.h
   7118 	and added netboot_config.h.
   7119 
   7120 1999-09-14  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7121 
   7122 	* grub/asmstub.c [__linux__]: On GLibc 2.0 and newer use lseek,
   7123 	don't include <linux/fs.h> and define BLKFLSBUF if needed.
   7124 
   7125 1999-09-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7126 
   7127 	Now the grub shell works fine on FreeBSD. A patch by Pavel
   7128 	Roskin is modified and applied.
   7129 
   7130 	* grub/asmstub.c (get_drive_geometry): New function.
   7131 	(get_diskinfo): Use get_drive_geometry to set the geometry of
   7132 	DRIVE.
   7133 
   7134 1999-09-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7135 
   7136 	* configure.in (--enable-ne): Made the description more clear.
   7137 	(--enable-nepci): Likewise.
   7138 	(--enable-wd): Likewise.
   7139 	(--enable-t503): Likewise.
   7140 	(--enable-t509): Likewise.
   7141 	(--enable-3c59x): Likewise.
   7142 	(--enable-lance): Likewise.
   7143 	(--enable-cs): Likewise.
   7144 	(--enable-eepro100): Likewise.
   7145 	(--enable-wd-default_mem): Renamed to ...
   7146 	(--enable-wd-default-mem): ... this.
   7147 	(--enable-cs-scan): Corrected the description.
   7148 	(NETBOOT_SUPPORT): Defined if NET_CFLAGS is not empty.
   7149 	* stage2/Makefile.am (stage2_exec_LDADD): Defined only if
   7150 	NETBOOT_SUPPORT is true.
   7151 	* netboot/Makefile.am (LIBDRIVERS): New variable. If
   7152 	NETBOOT_SUPPORT is true, set to libdriver.a, otherwise set to an
   7153 	empty string.
   7154 	(noinst_LIBRARIES): Set to LIBDRIVERS.
   7155 	(DRIVERS): Added 3c509.h, cs89x0.h and ns8390.h.
   7156 	(libdrivers_a_SOURCES): Added byteorder.h, config.h, if.h, io.h,
   7157 	ip.h, netboot.h, netdevice.h, nic.h and pic.h.
   7158 	(libdrivers_a_CFLAGS): Added -fno-builtin and -nostdinc and
   7159 	removed -O2.
   7160 	* stage2/char_io.c (grub_sprintf): Added parenthesises to avoid
   7161 	gcc warnings.
   7162 	* stage2/gunzip.c (gunzip_test_header): Check if FSYS_TYPE is
   7163 	TFTP. If so, set IS_TFTP to non-zero, otherwise to zero. And,
   7164 	use IS_TFTP to check if we have GZIP_CRC instead of the equation
   7165 	"FILEMAX == 16 * 1024 * 1024".
   7166 
   7167 1999-09-13  Edmund GRIMLEY EVANS  <edmundo (a] rano.demon.co.uk>
   7168 
   7169 	The netboot support in the Dresden version of GRUB is integrated.
   7170 
   7171 	* Makefile.am (SUBDIRS): Added netboot.
   7172 	* configure.in (--enable-tftp): New option.
   7173 	(--enable-ne): Likewise.
   7174 	(--enable-nepci): Likewise.
   7175 	(--enable-wd): Likewise.
   7176 	(--enable-t503): Likewise.
   7177 	(--enable-t509): Likewise.
   7178 	(--enable-3c59x): Likewise.
   7179 	(--enable-lance): Likewise.
   7180 	(--enable-cs): Likewise.
   7181 	(--enable-eepro100): Likewise.
   7182 	(--enable-ne-scan): Likewise.
   7183 	(--enable-wd-default_mem): Likewise.
   7184 	(--enable-cs-scan): Likewise.
   7185 	(NET_CFLAGS): New variable.
   7186 	(NET_EXTRAFLAGS): Likewise.
   7187 	Do AC_OUTPUT for netboot/Makefile as well.
   7188 	* stage1/stage1.S: Set the number of sectors for Stage 2 to 130.
   7189 	* stage1/stage1_lba.S: Likewise.
   7190 	* stage2/Makefile.am (stage2_exec_LDADD): Added
   7191 	../netboot/libdrivers.a.
   7192 	* stage2/asm.S [!STAGE1_5] (currticks): New function.
   7193 	* stage2/char_io.c [!STAGE1_5] (grub_sprintf): Likewise.
   7194 	[!STAGE1_5] (grub_memcmp): Likewise.
   7195 	* stage2/disk_io.c (fsys_table) [FSYS_TFTP]: Added an entry for
   7196 	tftp.
   7197 	(sane_partition) [!STAGE1_5]: If CURRENT_DRIVE is a network
   7198 	drive, return 1.
   7199 	(real_open_partition) [!STAGE1_5]: Likewise.
   7200 	(set_device): If DEVICE contains a network drive, set
   7201 	CURRENT_DRIVE to 0x20.
   7202 	* stage2/filesys.h [FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 1.
   7203 	[!FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 0.
   7204 	(NUM_FSYS): Added FSYS_TFTP_NUM.
   7205 	* stage2/gunzip.c (gunzip_test_header): If FILEMAX >= 16MB, do
   7206 	not try to examine the last 8 bytes of the file. This is
   7207 	required for compressed files by TFTP.
   7208 	* stage2/shared.h (sprintf): New macro.
   7209 	(memcmp): Likewise.
   7210 	(currticks): Declared.
   7211 	(grub_sprintf): Likewise.
   7212 	(grub_memcmp): Likewise.
   7213 	* stage2/size_test: Set the maximum size of Stage 2 to 66560.
   7214 	* netboot/3c509.c: New file.
   7215 	* netboot/3c509.h: Likewise.
   7216 	* netboot/3c59x.c: Likewise.
   7217 	* netboot/Makefile.am: Likewise.
   7218 	* netboot/Makefile.in: Likewise.
   7219 	* netboot/byteorder.h: Likewise.
   7220 	* netboot/compile: Likewise.
   7221 	* netboot/config.c: Likewise.
   7222 	* netboot/config.h: Likewise.
   7223 	* netboot/cs89x0.c: Likewise.
   7224 	* netboot/cs89x0.h: Likewise.
   7225 	* netboot/eepro100.c: Likewise.
   7226 	* netboot/fsys_tftp.c: Likewise.
   7227 	* netboot/if.h: Likewise.
   7228 	* netboot/io.h: Likewise.
   7229 	* netboot/ip.c: Likewise.
   7230 	* netboot/ip.h: Likewise.
   7231 	* netboot/lance.c: Likewise.
   7232 	* netboot/netboot.h: Likewise.
   7233 	* netboot/netdevice.h: Likewise.
   7234 	* netboot/nic.h: Likewise.
   7235 	* netboot/ns8390.c: Likewise.
   7236 	* netboot/ns8390.h: Likewise.
   7237 	* netboot/pci.c: Likewise.
   7238 	* netboot/pci.h: Likewise.
   7239 
   7240 1999-09-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7241 
   7242 	* configure.in (--enable-maintainer-mode): Do not use our own
   7243 	rule, but use AM_MAINTAINER_MODE instead. If the maintainer mode
   7244 	is enabled, then check for perl, and if it is not found, print
   7245 	an error message and abort.
   7246 	* docs/Makefile.am (grub.8): Regenerated if MAINTAINER_MODE is
   7247 	defined, instead of GRUB_MAINT. Use the variable PERL rather
   7248 	than running help2man directly.
   7249 
   7250 1999-09-13  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7251 
   7252 	* stage2/pc_slice.h (IS_PC_SLICE_TYPE_EXTENDED): New macro.
   7253 	* stage2/disk_io.c (real_open_partition): Use
   7254 	IS_PC_SLICE_TYPE_EXTENDED instead of comparing CURRENT_SLICE
   7255 	with the extended partition types.
   7256 
   7257 1999-09-11  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7258 
   7259 	* acconfig.h: New file for autoheader support.
   7260 	* acinclude.m4 (grub_ASM_EXT_C) Renamed to ...
   7261 	(grub_ASM_USCORE): ... this. Define HAVE_ASM_USCORE if a C
   7262 	symbol gets an underscore after compiling to assembler.
   7263 	* configure.in: Added AM_CONFIG_HEADER. Autoconf 2.13 is now
   7264 	required. Test for wgetch(), not getch() in -l[n]curses.
   7265 	* stage2/shared.h (EXT_C): Defined.
   7266 	Include the best existing header for [n]curses.
   7267 
   7268 1999-09-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7269 
   7270 	* stage2/boot.c (load_image): Use CURRENT_DRIVE and
   7271 	CURRENT_PARTITION instead of SAVED_DRIVE and SAVED_PARTITION for
   7272 	the boot device in the Multiboot information. Reported by
   7273 	Stephen Early <steve (a] greenend.org.uk>.
   7274 
   7275 1999-09-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7276 
   7277 	* stage2/disk_io.c (sane_partition) [STAGE1_5]: Defined.
   7278 	(set_device): Use sane_partition to make sure that CURRENT_DRIVE
   7279 	has a valid value. Reported by Pavel Roskin.
   7280 
   7281 1999-09-11  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7282 
   7283 	From Pavel Roskin:
   7284 	* stage2/builtins.c (device_func) [GRUB_UTIL]: Use check_device
   7285 	in order to make sure that DEVICE exists.
   7286 	* grub/asmstub.c (check_device): New function.
   7287 	(grub_stage2): Use check_device to probe a device.
   7288 
   7289 	* stage2/builtins.c (geometry_func) [GRUB_UTIL]: Copy the
   7290 	modified geometry to GEOM and reset BUF_DRIVE. Reported by Pavel
   7291 	Roskin.
   7292 
   7293 	* grub/main.c (no_floppy): New variable.
   7294 	(probe_second_floppy): Likewise.
   7295 	(OPT_NO_FLOPPY): New macro.
   7296 	(OPT_PROBE_SECOND_FLOPPY): Likewise.
   7297 	(longopts): Added no-floppy and probe-second-floppy.
   7298 	(usage): Added the descriptions about --no-floppy and
   7299 	--probe-second-floppy.
   7300 	(main): Handle OPT_PROBE_SECOND_FLOPPY and OPT_NO_FLOPPY.
   7301 	* grub/asmstub.c (grub_stage2): Print a message before the probe
   7302 	routine. If NO_FLOPPY is non-zero, do not probe any floppy drive.
   7303 	If PROBE_SECOND_FLOPPY is zero, skip the probe of the second
   7304 	floppy drive.
   7305 	(get_floppy_disk_name): New function.
   7306 	(get_ide_disk_name): Likewise.
   7307 	(get_scsi_disk_name): Likewise.
   7308 
   7309 1999-09-10  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7310 
   7311 	* stage2/builtins.c (device_func): New function.
   7312 	(builtin_device): New variable.
   7313 	(builtin_table): Added the pointer to BUILTIN_DEVICE.
   7314 	(builtin_geometry) [GRUB_UTIL]: Accept extra arguments,
   7315 	CYLINDER, HEAD, SECTOR and TOTAL_SECTOR, and, if they are found,
   7316 	set the geometry of a drive specified to them.
   7317 	* grub/asmstub.c (disks): Made global.
   7318 	(assign_device_name): New function.
   7319 
   7320 1999-09-09  Gordon Matzigkeit  <gord (a] fig.org>
   7321 
   7322 	* docs/grub.texi (Commands): Synchronize descriptions with
   7323 	builtins.c.
   7324 
   7325 	* stage2/builtins.c (hide_func): Use set_partition_hidden_flag.
   7326 	(unhide_func): Likewise.
   7327 	Many help message cleanups.  From Pavel Roskin.
   7328 
   7329 	* stage2/shared.h (set_partition_hidden_flag): Declare.
   7330 
   7331 	* stage2/disk_io.c (set_partition_hidden_flag): New function
   7332 	merged from hide_partition and unhide_partition.  Make sure we OR
   7333 	with the inverse of the flag bit rather than XORing to unhide the
   7334 	partition.
   7335 
   7336 1999-09-10  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7337 
   7338 	* grub/asmstub.c (_FILE_OFFSET_BITS): Defined.
   7339 	(biosdisk) [!__linux__]: Pass the offset argument as off_t
   7340 	instead of int to lseek, and compare the return value with
   7341 	OFFSET. Reported by Pavel Roskin.
   7342 	(grub_stage2) [!__linux__ && !__GNU__]: Print a warning message.
   7343 
   7344 1999-09-08  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7345 
   7346 	* stage2/stage2.c (run_menu): If run_script is successfully
   7347 	finished, break the loop. Reported by Pavel Roskin.
   7348 	Do not wait an input character when FALLBACK_ENTRY is less than
   7349 	zero.
   7350 	* stage2/cmdline.c (run_script): If ERRNUM is non-zero, wait an
   7351 	input character, whether FALLBACK is less than zero or not.
   7352 
   7353 1999-09-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7354 
   7355 	* stage2/builtins.c (configfile_func): New function.
   7356 	(builtin_configfile): New variable.
   7357 	(builtin_table): Added the pointer to BUILTIN_CONFIGFILE.
   7358 
   7359 1999-09-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7360 
   7361 	From Pavel Roskin:
   7362 	* stage2/asm.S [!STAGE1_5] (chain_stage2): Deleted.
   7363 	[STAGE1_5] (get_code_end): Likewise.
   7364 	* stage2/char_io.c (grub_strncat): Likewise.
   7365 	* stage2/common.c [STAGE1_5] (saved_mem_upper): Likewise.
   7366 	* stage2/smp-imps.c (imps_release_cpus): Likewise.
   7367 	(imps_any_new_apics): Made static.
   7368 	(imps_enabled): Likewise.
   7369 	(imps_num_cpus): Likewise.
   7370 	(imps_lapic_addr): Likewise.
   7371 	(imps_cpu_apic_map): Likewise.
   7372 	(imps_apic_cpu_map): Likewise.
   7373 
   7374 1999-09-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7375 
   7376 	* stage2/builtins.c (testload_func): Fix the typos: 0x2000000 ->
   7377 	0x200000 and 0x3000000 -> 0x300000.
   7378 
   7379 1999-09-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7380 
   7381 	From Hisazumi Kenji <nel (a] soraneko.com>:
   7382 	* stage2/fsys_ffs.c (mapblock_offset): New variable.
   7383 	(mapblock_bsize): Likewise.
   7384 	(MAPBUF): New macro.
   7385 	(MAPBUF_LEN): Likewise.
   7386 	(ffs_mount): Set MAPBLOCK_OFFSET to -1.
   7387 	(block_map): Added partial read support.
   7388 
   7389 1999-09-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7390 
   7391 	* stage2/cmdline.c (find_command): If COMMAND is less than
   7392 	(*BUILTIN)->NAME in dictionary order, break the loop.
   7393 	* stage2/builtins.c (builtin_chainloader): Capitalize the
   7394 	variable name in the short doc.
   7395 	(builtin_color): Likewise.
   7396 	(builtin_geometry): Likewise.
   7397 	(builtin_help): Likewise.
   7398 	(builtin_hide): Likewise.
   7399 	(builtin_initrd): Likewise.
   7400 	(builtin_install): Likewise.
   7401 	(builtin_kernel): Likewise.
   7402 	(builtin_module): Likewise.
   7403 	(builtin_modulenounzip): Likewise.
   7404 	(builtin_pause): Likewise.
   7405 	(builtin_read): Likewise.
   7406 	(builtin_root): Likewise.
   7407 	(builtin_testload): Likewise.
   7408 	(builtin_unhide): Likewise.
   7409 	(builtin_uppermem): Likewise.
   7410 
   7411 1999-09-05  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7412 
   7413 	The internal of the command handling is heavily modified, and
   7414 	a new command "help" is added.
   7415 
   7416 	* stage1/stage1.S: Set the number of sectors for Stage 2 to 110.
   7417 	* stage1/stage1_lba.S: Likewise.
   7418 	* stage2/builtins.c: New file.
   7419 	* stage2/Makefile.am (libgrub_a_SOURCES): Added builtins.c.
   7420 	(stage2_exec_SOURCES): Likewise.
   7421 	* stage2/boot.c (load_image): Return kernel_t instead int.
   7422 	(bsd_boot): Change the type of the first argument to kernel_t.
   7423 	* stage2/char_io.c (get_cmdline): Do not accept the argument
   7424 	COMMANDS and accept the argument COMPLETION.
   7425 	Print completions only if COMPLETION is non-zero.
   7426 	Print the list of short docs when the command is completed.
   7427 	* stage2/cmdline.c [GRUB_UTIL]: Do not include apic.h and
   7428 	smp-imps.h.
   7429 	(fallback): Deleted.
   7430 	(password): Likewise.
   7431 	(debug): Likewise.
   7432 	(normal_color): Likewise.
   7433 	(highlight_color): Likewise.
   7434 	(print_cmdline_message): New function.
   7435 	(commands): Deleted.
   7436 	(debug_fs_print_func): Likewise.
   7437 	(installaddr): Likewise.
   7438 	(installlist): Likewise.
   7439 	(installsect): Likewise.
   7440 	(debug_fs_blocklist_func): Likewise.
   7441 	(find_command): New function.
   7442 	(init_cmdline): Initialize the data for the command-line
   7443 	interface. The function to print the message is moved to
   7444 	print_cmdline_message.
   7445 	(enter_cmdline): Rewritten from scratch. Now deal with only the
   7446 	pure command-line and the function to deal with a menu entry is
   7447 	moved to run_script.
   7448 	(run_script): New function.
   7449 	* stage2/shared.h (PASSWORD_BUF): New macro.
   7450 	(PASSWORD_BUFLEN): Likewise.
   7451 	(CMDLINE_BUF): Likewise.
   7452 	(CMDLINE_BUFLEN): Likewise.
   7453 	(MENU_BUF): Likewise.
   7454 	(MENU_BUFLEN): Likewise.
   7455 	(fallback): Deleted.
   7456 	(fallback_entry): Declared.
   7457 	(default_entry): Likewise.
   7458 	(BUILTIN_CMDLINE): New macro.
   7459 	(BUILTIN_MENU): Likewise.
   7460 	(BUILTIN_TITLE): Likewise.
   7461 	(struct builtin): New tag.
   7462 	(builtin_table): Declared.
   7463 	(cmdline_t): Deleted.
   7464 	(kernel_t): New type.
   7465 	(kernel_type): Declared.
   7466 	(grub_timeout): Likewise.
   7467 	(init_builtins): Likewise.
   7468 	(init_config): Likewise.
   7469 	(find_command): Likewise.
   7470 	(print_cmdline_message): Likewise.
   7471 	(run_script): Likewise.
   7472 	[!STAGE1_5] (bsd_boot): Deleted.
   7473 	[!STAGE1_5] (load_image): Likewise.
   7474 	[!STAGE1_5] (load_module): Likewise.
   7475 	[!STAGE1_5] (load_initrd): Likewise.
   7476 	* stage2/size_test: Set the maximum size of Stage 2 to 56320.
   7477 	* stage2/stage2.c (grub_timeout): Deleted.
   7478 	(menu_t): Likewise.
   7479 	(run_menu): Changed the return type to void.
   7480 	Use FALLBACK_ENTRY instead of FALLBACK.
   7481 	Do not check the return value of enter_cmdline.
   7482 	(run_menu) [GRUB_UTIL]: Call stop instead of returning
   7483 	MENU_ABORT.
   7484 	(cmain): Set MENU_ENTRIES to MENU_BUF.
   7485 	Call init_config instead of clearing the variables directly.
   7486 	Use CMDLINE_BUF for the command-line buffer instead of the
   7487 	stack.
   7488 	Adapted the analysis routine for the configuration file to the
   7489 	new builtin commands interface.
   7490 	Run enter_cmdline forever.
   7491 	If run_menu returns, restart the loop.
   7492 
   7493 1999-09-04  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7494 
   7495 	* docs/menu.lst: More meaningful examples. Not using (0x80,0)
   7496 	notation anymore.
   7497 	* stage2/stage2.c (run_menu): Erase the entered password before
   7498 	get_cmdline(). Help on TAB disabled when entering the password.
   7499 	* stage2/char_io.c (get_cmdline): Restore command-line even if
   7500 	there is no help string.
   7501 	* configure.in: --disable-gunzip disables decompression in
   7502 	stage2.
   7503 	* stage2/gunzip.c [NO_DECOMPRESSION]: Disable all code if
   7504 	decompression is disabled.
   7505 
   7506 1999-09-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7507 
   7508 	* stage2/boot.c (load_image): Use PHDR->P_PADDR instead of
   7509 	PHDR->P_VADDR. Reported by Ramon van Handel <vhandel (a] chem.vu.nl>.
   7510 
   7511 1999-09-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7512 
   7513 	* docs/help2man: Upgraded to 1.013.
   7514 	* docs/grub.8: Regenerated.
   7515 
   7516 1999-09-02  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7517 
   7518 	* stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: Add a space in
   7519 	the LBA warning	message.
   7520 
   7521 1999-09-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7522 
   7523 	The character `=' after a command is now optional.
   7524 
   7525 	* stage2/char_io.c (get_cmdline): Search for a space or a equal
   7526 	character after the first word in CMDLINE when TAB lists
   7527 	completions, instead of just searching for a eqaul character.
   7528 	* stage2/cmdline.c (skip_to): Treat the character `=' as a space
   7529 	if AFTER_EQUAL is non-zero.
   7530 	(commands): Delete all the equal characters.
   7531 	* docs/menu.lst: Likewise.
   7532 	* docs/grub.texi: Likewise.
   7533 
   7534 1999-09-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7535 
   7536 	* grub/asmstub.c (env_for_exit): New variable.
   7537 	(grub_stage2): Do a setjmp in doit, and when it returns
   7538 	non-zero, set STATUS to 1 if ERRNUM is non-zero.
   7539 	(stop): Call longjmp instead of exit.
   7540 
   7541 1999-08-31  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7542 
   7543 	* stage2/boot.c [GRUB_UTIL] (bsd_boot_entry): New function.
   7544 	(bsd_boot) [GRUB_UTIL]: Set ENTRY_ADDR to BSD_BOOT_ENTRY to fake
   7545 	the *BSD boot.
   7546 
   7547 1999-08-31  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7548 
   7549 	* stage2/fsys_fat.c (fat_create_blocklist): Cast FAT_BUF to
   7550 	unsigned short * instead of unsigned long *. Suggested by Pavel
   7551 	Roskin.
   7552 
   7553 1999-08-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7554 
   7555 	From Edward Killips <ekillips (a] triton.net>:
   7556 	* stage2/cmdline.c (commands): Added hide and unhide.
   7557 	(enter_cmdline): Likewise.
   7558 	* stage2/disk_io.c (unhide_partition): New function.
   7559 	(hide_partition): Likewise.
   7560 	* stage2/pc_slice.h (PC_SLICE_TYPE_HIDDEN_FLAG): New macro.
   7561 
   7562 1999-08-29  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7563 
   7564 	From Pavel Roskin <pavel_roskin (a] geocities.com>:
   7565 	* stage2/fsys_minix.c (namelen): New variable.
   7566 	(MINIX_NAME_LEN): Deleted.
   7567 	(minix_mount): Set NAMELEN to 14 if SUPRTBLOCK->S_MAGIC is
   7568 	MINIX_SUPER_MAGIC, and set NAMELEN to 30 if it is
   7569 	MINIX_SUPER_MAGIC2.
   7570 	(minix_dir): Use NAMELEN instead of MINIX_NAME_LEN.
   7571 
   7572 1999-08-29  Pavel Roskin  <pavel_roslin (a] geocities.com>
   7573 
   7574 	* grub/Makefile.am, stage1/Makefile.am, stage2/Makefile.am:
   7575 	Avoid using variables inclosed in '@' because they cannot be
   7576 	overridden at the make time.
   7577 
   7578 1999-08-29  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7579 
   7580 	* stage2/fsys_fat.c (fat_create_blocklist): Return 1 for the
   7581 	root directory on FAT12 and FAT16.
   7582 
   7583 1999-08-27  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7584 
   7585 	* stage2/boot.c (load_image): Accept two arguments, KERNEL and
   7586 	ARG. And use them instead of CUR_CMDLINE.
   7587 	(load_module): Accept two arguments, MODULE and ARG. And use
   7588 	them instead of CUR_CMDLINE.
   7589 	(load_initrd): Accept one argument, INITRD. And use it instead
   7590 	of CUR_CMDLINE.
   7591 	(bsd_boot): Accept one additional argument, ARG. And use it
   7592 	instead of CUR_CMDLINE.
   7593 	* stage2/cmdline.c (enter_cmdline): Use MB_CMDLINE instead of
   7594 	HEAP for the Multiboot command-line buffer.
   7595 	* stage2/shared.h (MB_CMDLINE_BUF): New macro.
   7596 	(MB_CMDLINE_BUFLEN): Likewise.
   7597 
   7598 1999-08-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7599 
   7600 	* docs/Makefile.am [GRUB_MAINT] (grub.8): The argument for the
   7601 	option --name is changed to "the grub shell".
   7602 	* docs/grub.8: Regenerated.
   7603 	* docs/grub.texi: Do not use the name "the Stage 2 emulator" any
   7604 	more. Use the name "the grub shell" instead.
   7605 
   7606 1999-08-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7607 
   7608 	From Klaus Reichl <klaus.reichl (a] alcatel.at>:
   7609 	* stage2/fsys_minix.c: New file.
   7610 	* stage2/size_test: Added a check for the size of minix_stage1_5.
   7611 	* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_minix.c.
   7612 	(libgrub_a_CFLAGS): Added -DFSYS_MINIX=1.
   7613 	(nodist_pkgdata_DATA): Added minix_stage1_5.
   7614 	(noinst_PROGRAMS): Added minix_stage1_5.exec.
   7615 	(stage2_exec_SOURCES): Added fsys_minix.c.
   7616 	(minix_stage1_5_exec_SOURCES): New variable.
   7617 	(minix_stage1_5_exec_CFLAGS): Likewise.
   7618 	(minix_stage1_5_exec_LDFLAGS): Likewise.
   7619 	* stage2/pc_slice.h (PC_SLICE_TYPE_MINIX): New macro.
   7620 	* stage2/disk_io.c (fsys_table) [FSYS_MINIX]: Added minix entry.
   7621 	* stage2/filesys.h [FSYS_MINIX] (FSYS_MINIX_NUM): Set to 1.
   7622 	[!FSYS_MINIX] (FSYS_MINIX_NUM): Set to 0.
   7623 	[!NUM_FSYS] (NUM_FSYS): Added FSYS_MINIX_NUM.
   7624 	* stage2/shared.h (STAGE2_ID_MINIX_STAGE1_5): New macro.
   7625 	[STAGE1_5 && FSYS_MINIX] (STAGE2_ID): Set to
   7626 	STAGE2_ID_MINIX_STAGE1_5.
   7627 	* grub/Makefile.am (AM_CFLAGS): Added -DFSYS_MINIX=1.
   7628 	* configure.in (--disable-minix): New option.
   7629 
   7630 1999-08-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7631 
   7632 	From Jochen Hoenicke <jochen (a] gnu.org>:
   7633 	* stage2/fat.h (FAT_BPB_FAT_SECTORS_16): New macro.
   7634 	(FAT_BPB_FAT_SECTORS_32): Likewise.
   7635 	(FAT_BPB_IS_FAT32): Likewise.
   7636 	(FAT_BPB_ROOT_DIR_CLUSTER): Likewise.
   7637 	(FAT_BPB_FAT_SECTORS): If FAT_BPB_FAT_SECTORS_16 returns
   7638 	a non-zero value, return it. Otherwise return
   7639 	FAT_BPB_FAT_SECTORS_32.
   7640 	(FAT_DIRENTRY_FIRST_CLUSTER): Corrected.
   7641 	* stage2/fsys_fat.c (root_dir): New variable.
   7642 	(fat_mount): Use the macro IS_PC_SLICE_TYPE_FAT instead of
   7643 	checking for each fs types directly.
   7644 	Omit the >64 sectors check.
   7645 	If the current fs type is FAT32, then set FAT_SIZE to 8 and
   7646 	get the root from BPB.
   7647 	(fat_create_blocklist): Use the macro SECTOR_SIZE instead of a
   7648 	magic number.
   7649 	(fat_dir): Set MAP to ROOT_DIR instead of -1.
   7650 	* stage2/pc_slice.h (PC_SLICE_TYPE_FAT32): New macro.
   7651 	(PC_SLICE_TYPE_FAT32_LBA): Likewise.
   7652 	(PC_SLICE_TYPE_FAT16_LBA): Likewise.
   7653 	(IS_PC_SLICE_TYPE_FAT): Likewise.
   7654 
   7655 1999-08-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7656 
   7657 	* stage2/fsys_ffs.c (ffs_mount): Do not shift the fs type
   7658 	FS_BSDFFS. Reported by Takehiro Suzuki
   7659 	<takehiro (a] coral.ocn.ne.jp>.
   7660 	* stage2/fsys_fat.c (fat_mount): Do not shift the fs type
   7661 	FS_MSDOS.
   7662 
   7663 1999-08-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7664 
   7665 	Pavel Roskin's patch that adds new options to disable arbitrary
   7666 	filesystems is heavily modified and applied.
   7667 
   7668 	* configure.in (--disable-ext2fs): New option.
   7669 	(--disable-fat): Likewise.
   7670 	(--disable-ffs): Likewise.
   7671 	(FSYS_CFLAGS): New variable. Set to filesystems the user choose.
   7672 	* grub/Makefile.am (AM_CFLAGS): Added -DFSYS_EXT2FS=1,
   7673 	-DFSYS_FAT=1 and -DFSYS_FFS=1.
   7674 	* stage2/Makefile.am (libgrub_a_CFLAGS): Likewise.
   7675 	(stage2_exec_CFLAGS): Added @FSYS_CFLAGS@.
   7676 	* stage2/filesys.h
   7677 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FFS): Deleted.
   7678 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FAT): Likewise.
   7679 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_EXT2FS): Likewise.
   7680 	* stage2/fsys_ext2fs.c [!FSYS_EXT2FS]: Do not define anything.
   7681 	* stage2/fsys_fat.c [!FSYS_FAT]: Likewise.
   7682 	* stage2/fsys_ffs.c [!FSYS_FFS]: Likewise.
   7683 
   7684 1999-08-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7685 
   7686 	* stage1/stage1_lba.S: Use STAGE1_DRP_ADDR for the address of
   7687 	drive parameters instead of DRIVE_PARAMETER.
   7688 	(drive_parameter): Deleted.
   7689 	* stage1/stage1.h (STAGE1_DRP_ADDR): New macro.
   7690 	(STAGE1_DRP_SIZE): Likewise.
   7691 
   7692 1999-08-11  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7693 
   7694 	* stage2/bios.c (get_diskinfo): In LBA mode, set TOTAL_SECTORS
   7695 	to the low 32bits of DRP.TOTAL_SECTORS instead of the multiple
   7696 	of CHS.
   7697 	* stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: In the command
   7698 	"geometry", print the device file name instead of CHS/LBA
   7699 	information.
   7700 	* stage2/shared.h (device_map): Declared.
   7701 	* grub/asmstub.c (device_map): Defined as a global variable
   7702 	instead of a local variable.
   7703 
   7704 1999-08-10  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7705 
   7706 	Support the NetBSD and OpenBSD partition slices.
   7707 
   7708 	* stage2/pc_slice.h (PC_SLICE_TYPE_BSD): Deleted.
   7709 	(PC_SLICE_TYPE_FREEBSD): New macro.
   7710 	(PC_SLICE_TYPE_OPENBSD): Likewise.
   7711 	(PC_SLICE_TYPE_NETBSD): Likewise.
   7712 	(IS_PC_SLICE_TYPE_BSD_WITH_FS): Likewise.
   7713 	(IS_PC_SLICE_TYPE_BSD): Likewise.
   7714 	* stage2/fsys_ffs.c (ffs_mount): Use the macro
   7715 	IS_PC_SLICE_TYPE_BSD_WITH_FS instead of checking if
   7716 	CURRECT_SLICE is equal to the BSD partition type directly.
   7717 	* stage2/fsys_ext2fs.c (ext2fs_mount): Likewise.
   7718 	* stage2/fsys_fat.c (fat_mount): Likewise.
   7719 	* stage2/disk_io.c (check_BSD_parts): Set the low bits of
   7720 	CURRENT_SLICE to PC_SLICE_TYPE_FREEBSD instead of
   7721 	PC_SLICE_TYPE_BSD.
   7722 	(real_open_partition): Use the macro IS_PC_SLICE_TYPE_BSD instead
   7723 	of checking if CURRENT_SLICE is	equal to the BSD partition type
   7724 	directly.
   7725 
   7726 1999-08-09  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7727 
   7728 	* stage2/cmdline.c (commands): Added geometry.
   7729 	(enter_cmdline): If CUR_HEAP has the string "geometry", print
   7730 	out the information about a drive that the argument represents.
   7731 
   7732 1999-08-09  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7733 
   7734 	* stage2/stage2.c (run_menu): Terminate the string PASSWORD
   7735 	before checking if ENTERED is identical to PASSWORD. Reported
   7736 	by Mark Lundeberg <aa026 (a] pgfn.bc.ca>.
   7737 
   7738 1999-08-08  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7739 
   7740 	* stage2/stage2.c (set_line_normal): New function.
   7741 	(set_line_highlight): Likewise.
   7742 	(run_menu): Do not call the function set_line directly any
   7743 	longer, call set_line_normal and set_line_highlight instead.
   7744 
   7745 	From Pavel Roskin:
   7746 	* stage2/stage2.c (run_menu) [GRUB_UTIL]: Quit when pushing the
   7747 	key `q'.
   7748 
   7749 1999-08-05  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7750 
   7751 	* acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): New function.
   7752 	* configure.in: Call grub_ASM_PREFIX_REQUIREMENT, and define
   7753 	ADDR32 and DATA32 based on the result.
   7754 	* stage2/asm.S: Replace addr32 and data32 prefixes with	ADDR32
   7755 	and DATA32 respectively.
   7756 
   7757 1999-08-05  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7758 
   7759 	* stage2/boot.c (load_image): Use RAW_ADDR macro when loading
   7760 	an a.out kernel.
   7761 
   7762 1999-08-04  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7763 
   7764 	* stage2/asm.S: Make each of the addr32 and data32 prefixes
   7765 	appear in the same line as it modifies, as the gas manual in
   7766 	binutils-2.9.5.0.4 says "it must be in the same line".
   7767 
   7768 1999-08-04  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7769 
   7770 	* boot.c (load_image): Fix a strcmp test. Reported by Pavel
   7771 	Roskin <pavel_roskin (a] geocities.com>.
   7772 
   7773 1999-08-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7774 
   7775 	From "Dan J. Walters" <djw (a] cs.utexas.edu>:
   7776 	* stage2/i386-elf.h (EI_BRAND): New macro.
   7777 	* stage2/boot.c (load_image): If the kernel is ELF, check if it
   7778 	is a FreeBSD kernel as well as a Multiboot kernel, and if it is
   7779 	a FreeBSD kernel, then mask ENTRY_ADDR since FreeBSD requires
   7780 	that. Likewise, mask MEMADDR.
   7781 	(bsd_boot): Set the bi_symtab and the bi_esymtab members of BI
   7782 	only if MBI.FLAGS has the flag MB_INFO_AOUT_SYMS. Otherwise,
   7783 	clear them.
   7784 
   7785 1999-07-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7786 
   7787 	From Pavel Roskin <pavel_roskin (a] geocities.com>:
   7788 	* grub/getopt.c: New file. Copied from texinfo-3.12n.
   7789 	* grub/getopt1.c: Likewise.
   7790 	* grub/getopt.h: Likewise.
   7791 	* grub/Makefile.am (grub_SOURCES): Added getopt.c, getopt1.c and
   7792 	getopt.h.
   7793 	* configure.in: Check for string.h and strings.h.
   7794 	* grub/asmstub.c (grub_stage2): Fix a misordering in the output
   7795 	format of the inline assembly.
   7796 
   7797 1999-07-30  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7798 
   7799 	From Pavel Roskin <pavel_roskin (a] geocities.com>:
   7800 	* stage2/asm.S (get_diskinfo_standard): If the number of sectors
   7801 	returned is zero, then return an error code, even if non-carrier.
   7802 
   7803 1999-07-15  Gordon Matzigkeit  <gord (a] zen.fig.org>
   7804 
   7805 	* docs/Makefile.am (grub.info): Use an ugly hack to downgrade
   7806  	grub.texi so that it works with Debian's version of texinfo.
   7807 
   7808 1999-07-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7809 
   7810 	* stage2/bios.c (get_diskinfo): When DRIVE is a floppy drive,
   7811 	try standard probe routine at first. Reported by Peter Astrand
   7812 	<altic (a] lysator.liu.se>.
   7813 
   7814 	* grub/main.c (main): Call printf instead of grub_printf.
   7815 	Reported by Klaus Reichl <a8709182 (a] unet.univie.ac.at>.
   7816 
   7817 1999-07-15  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7818 
   7819 	* stage2/cmdline.c (skip_to): Don't increase CMDLINE if the
   7820 	character to which CMDLINE points is NUL.
   7821 
   7822 	* stage2/Makefile.am (EXTRA_DIST): Removed smp-imps.c.
   7823 	(stage2_exec_SOURCES): Added smp-imps.c.
   7824 	* stage2/cmdline.c [!GRUB_UTIL] (IMPS_DEBUG) (KERNEL_PRINT)
   7825 	(CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL)
   7826 	(VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte)
   7827 	(cmos_read_byte): These are now defined in ...
   7828 	* stage2/smp-imps.c (IMPS_DEBUG) (KERNEL_PRINT)
   7829 	(CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL)
   7830 	(VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte)
   7831 	(cmos_read_byte): ... here.
   7832 	* stage2/cmdline.c [!GRUB_UTIL]: Include apic.h and smp-imps.h.
   7833 
   7834 1999-07-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7835 
   7836 	The function ungetch is simulated so that the user can use a
   7837 	buggy curses.
   7838 
   7839 	* grub/asmstub.c [HAVE_LIBCURSES] (save_char): New variable.
   7840 	(getkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return
   7841 	SAVE_CHAR and clear it.
   7842 	(checkkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return
   7843 	SAVE_CHAR. If C is not ERR, set SAVE_CHAR to C.
   7844 
   7845 1999-07-14  Pavel Roskin  <pavel_roskin (a] geocities.com>
   7846 
   7847 	* stage2/char_io.c (get_cmdline) [GRUB_UTIL]: Recognize
   7848 	backspace when ncurses fails to do this.
   7849 
   7850 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call wtimeout
   7851 	instead of nodelay.
   7852 	(getkey) [HAVE_LIBCURSES]: Likewise.
   7853 
   7854 1999-07-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7855 
   7856 	* stage1/stage1_lba.S (probe_values): New variable. This is not
   7857 	used actually, but prevents `install' command from failing
   7858 	bogusly.
   7859 
   7860 1999-07-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7861 
   7862 	All constants in stage1s are moved to stage1.h and renamed
   7863 	appropriately, and include stage1.h instead.
   7864 
   7865 	* grub/Makefile.am (AM_CFLAGS): Added the include path to stage1.
   7866 	* stage2/Makefile.am (INCLUDES): New variable.
   7867 	* stage1/Makefile.am (stage1_exec_SOURCES): Added stage1.h
   7868 	(stage1_lba_exec_SOURCES): Likewise.
   7869 	* stage1/stage1.h: New file.
   7870 	* stage1/stage1.S (SIGNATURE): Renamed to ...
   7871 	* stage1/stage1.h (STAGE1_SIGNATURE): ... this.
   7872 	* stage1/stage1.S (BPBEND): Renamed to ...
   7873 	* stage1/stage1.h (STAGE1_BPBEND): ... this.
   7874 	* stage1/stage1.S (PARTSTART): Renamed to ...
   7875 	* stage1/stage1.h (STAGE1_PARTSTART): ... this.
   7876 	* stage1/stage1.S (MINPARMSIZ): Renamed to ...
   7877 	* stage1/stage1.h (STAGE1_MINPARMSIZE): ... this.
   7878 	* stage1/stage1.S (LISTSIZ): Renamed to ...
   7879 	* stage1/stage1.h (STAGE1_LISTSIZE): ... this.
   7880 	* stage1/stage1.S (REALSTACK): Renamed to ...
   7881 	* stage1/stage1.h (STAGE1_STACKSEG): ... this.
   7882 	* stage1/stage1.S (BUFFERSEG): Renamed to ...
   7883 	* stage1/stage1.h (STAGE1_BUFFERSEG): ... this.
   7884 	* stage1/stage1.S (BIOS_HD_FLAG): Renamed to ...
   7885 	* stage1/stage1.h (STAGE1_BIOS_HD_FLAG): ... this.
   7886 	* stage1/stage1_lba.S (SIGNATURE): Removed.
   7887 	* stage1/stage1_lba.S (BPBEND): Likewise.
   7888 	* stage1/stage1_lba.S (PARTSTART): Likewise.
   7889 	* stage1/stage1_lba.S (MINPARMSIZ): Likewise.
   7890 	* stage1/stage1_lba.S (LISTSIZ): Likewise.
   7891 	* stage1/stage1_lba.S (REALSTACK): Likewise.
   7892 	* stage1/stage1_lba.S (BUFFERSEG): Likewise.
   7893 	* stage1/stage1_lba.S (BIOS_HD_FLAG): Likewise.
   7894 
   7895 	* stage1/stage1.S (stage1_id): New variable.
   7896 	* stage1/stage1_lba.S (stage1_id): Likewise.
   7897 	* stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 2.
   7898 	(STAGE1_ID_OFFSET): New macro.
   7899 	(STAGE1_ID_CHS): Likewise.
   7900 	(STAGE1_ID_LBA): Likewise.
   7901 	* stage2/cmdline.c (enter_cmdline) [!GRUB_UTIL]: When running
   7902 	the command `install' and STAGE1_FILE is stage1_lba, check if
   7903 	LBA is supported.
   7904 	(enter_cmdline) [GRUB_UTIL]: In the same case above, check only
   7905 	if CURRENT_DRIVE is a hard disk and, if so, print a warning
   7906 	message, because /sbin/grub cannot detect if LBA is supported or
   7907 	not.
   7908 
   7909 	* stage1/stage1_lba.S: Fix a bug that incorrectly assigns the
   7910 	segment of buffer address.
   7911 
   7912 1999-07-13  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7913 
   7914 	* stage2/boot.c (load_image): When removing "vga=...", memmove
   7915 	the length of VGA_END plus one.
   7916 
   7917 1999-07-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7918 
   7919 	* stage2/bios.c (get_diskinfo): In LBA mode, compute
   7920 	TOTAL_SECTORS from DRP instead of GEOMETRY.
   7921 	Clear GEOMETRY->FLAGS first.
   7922 
   7923 	* stage2/boot.c (load_image): Fix inverted lines.
   7924 
   7925 1999-07-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7926 
   7927 	Support Linux video mode selection.
   7928 
   7929 	* stage2/shared.h (LINUX_VID_MODE_OFFSET): New macro.
   7930 	(LINUX_VID_MODE_NORMAL): Likewise.
   7931 	(LINUX_VID_MODE_EXTENDED): Likewise.
   7932 	(LINUX_VID_MODE_ASK): Likewise.
   7933 	[!WITHOUT_LIBC_STUBS] (strlen): Likewise.
   7934 	(grub_strlen): Declared.
   7935 	* stage2/boot.c (load_image): Added Linux video mode selection.
   7936 	* stage2/char_io.c [!STAGE1_5] (grub_strlen): New function.
   7937 
   7938 1999-07-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7939 
   7940 	* stage2/char_io.c (print_error): Print ERRNUM in the format of
   7941 	%u instead of %d.
   7942 	(convert_to_ascii) [STAGE1_5]: Eliminate the `x' and `d'
   7943 	handling code.
   7944 	(grub_printf): Declare FORMAT as `const char *'.
   7945 	(grub_printf) [STAGE1_5]: Eliminate the `x' and `d' handling
   7946 	code.
   7947 	(get_based_digit): Removed.
   7948 	(safe_parse_maxint): Remove unnecessary `register' prefixes,
   7949 	because GCC does better optimization.
   7950 	Declare DIGIT as `unsigned int' and calculate the value by more
   7951 	compact instructions.
   7952 	[!STAGE1_5] (grub_strncat): Declare S2 as `const char *'.
   7953 	[!STAGE1_5] (grub_strcmp): Declare S1 and S2 as `const char *'.
   7954 	[!STAGE1_5] (grub_strstr): Likewise.
   7955 	(grub_memmove): Declare FROM as `const char *'.
   7956 	The copy code is replaced with inline assembly code stolen from
   7957 	Linux-2.2.2.
   7958 
   7959 	* stage2/shared.h (grub_printf) : Corrected.
   7960 	(grub_strncat): Likewise.
   7961 	(grub_memmove): Likewise.
   7962 	(grub_strstr): Likewise.
   7963 	(grub_strcmp): Likewise.
   7964 
   7965 1999-07-11  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7966 
   7967 	* stage1/stage1.S (sectors): Change the size to long.
   7968 	(heads): Likewise.
   7969 	(sector_start): New variable.
   7970 	(head_start): Likewise.
   7971 	(cylinder_start): Likewise.
   7972 	(final_init): Set %si to SECTORS first, and use %si for memory
   7973 	references.
   7974 	Zero %eax so that the high 16 bits are always zero.
   7975 	Set %di to FIRSTLIST - LISTSIZ instead of FIRSTLIST.
   7976 	(bootloop): Omit the complex CHS recomputation, and always
   7977 	compute them from LBA address instead.
   7978 	Call 32bits div instructions instead of 16bits div instructions.
   7979 	Update the position where to load data from at the end of this
   7980 	loop, instead of the beginning.
   7981 
   7982 	* stage1/stage1_lba.S: New file.
   7983 	* stage1/Makefile.am (nodist_pkgdata_DATA): Added stage1_lba.
   7984 	(LDFLAGS): New variable.
   7985 	(noinst_PROGRAMS): Added stage1_lba.exec.
   7986 	(stage1_lba_exec_SOURCES): New variable.
   7987 	(%: %.exec): New rule.
   7988 
   7989 1999-06-28  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7990 
   7991 	* grub/main.c (main): The third argument for strtoul is changed
   7992 	to 0 in the case where an option is OPT_INSTALL_PARTIION.
   7993 	Reported by Pavel Roskin <pavel_roskin (a] geocities.com>.
   7994 
   7995 1999-06-27  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   7996 
   7997 	* stage2/shared.h (STAGE2_STAGE2_ID): New macro.
   7998 	(STAGE2_VER_STR_OFFS): Set to 0xd.
   7999 	(STAGE2_ID_STAGE2): New macro.
   8000 	(STAGE2_ID_FFS_STAGE1_5): Likewise.
   8001 	(STAGE2_ID_E2FS_STAGE1_5): Likewise.
   8002 	(STAGE2_ID_FAT_STAGE1_5): Likewise.
   8003 	(STAGE2_ID) [!STAGE1_5]: Defined as STAGE2_ID_STAGE2.
   8004 	(STAGE2_ID) [STAGE1_5] [FSYS_FFS]: Defined as
   8005 	STAGE2_ID_FFS_STAGE1_5.
   8006 	(STAGE2_ID) [STAGE1_5] [FSYS_EXT2FS]: Defined as
   8007 	STAGE2_ID_STAGE1_5.
   8008 	(STAGE2_ID) [STAGE1_5] [FSYS_FAT]: Defined as
   8009 	STAGE2_ID_FAT_STAGE1_5.
   8010 	(COMPAT_VERSION_MINOR): Set to 1.
   8011 	* stage2/asm.S (stage2_id): New variable.
   8012 	* stage1/stage1.S: Change the minor version to 1.
   8013 
   8014 1999-06-27  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8015 
   8016 	* configure.in (CFLAGS): Set to "-g", since only this flag is
   8017 	always sharable.
   8018 	(STAGE1_CFLAGS): Set to "-O2", and AC_SUBST this.
   8019 	(GRUB_CFLAGS): Likewise.
   8020 	(saved_CFLAGS): New variable for temporarily saving CFLAGS.
   8021 	(STAGE2_CFLAGS): Set to "-Os" if this option is available,
   8022 	otherwise set to "-fno-strength-reduce -fno-unroll-loops",
   8023 	and then AC_SUBST this.
   8024 	* grub/Makefile.am (AM_CFLAGS): Prepended @GRUB_CFLAGS@.
   8025 	* stage1/Makefile.am (AM_CFLAGS): Prepended @STAGE1_CFLAGS@.
   8026 	* stage2/Makefile.am (libgrub_a_CFLAGS): Prepened @GRUB_CFLAGS@.
   8027 	(STAGE2_COMPILE): Prepended @STAGE2_CFLAGS@.
   8028 
   8029 	* stage2/asm.S (chain_stage2): Pass CURRENT_PARTITION and
   8030 	CURRENT_DRIVE, instead of INSTALL_PARTITION and BOOT_DRIVE.
   8031 
   8032 1999-06-27  Pavel Roskin  <pavel_roskin (a] geocities.com>
   8033 
   8034 	* configure.in: set CFLAGS to "-Os -g" for compilers which
   8035 	understand "-Os" if CFLAGS is not already set. Use
   8036 	"-O2 -fno-strength-reduce -fno-unroll-loops -g" for older gcc
   8037 	versions.
   8038 
   8039 1999-06-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8040 
   8041 	* stage2/disk_io.c (attempt_mount) [STAGE1_5]: Set FSYS_TYPE to
   8042 	0, and set it to NUM_FSYS if mount fails.
   8043 	(real_open_partition): Call rawread in Stage 1.5 as well.
   8044 
   8045 1999-06-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8046 
   8047 	* Makefile.am (SUBDIRS): Change the order of the directories so
   8048 	that a directory will be made after the dependent directories
   8049 	are made. `grub' depends on `stage2', and `docs' depends on
   8050 	`grub'. Do not make in parallel.
   8051 	* docs/help2man: Copied from help2man-1.012, which contains my
   8052 	previous change.
   8053 	* docs/grub.8: Regenerated.
   8054 
   8055 1999-06-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8056 
   8057 	Build process is cleaned up. Stage 2 and Stage 1.5's are all
   8058 	built in the directory stage2.
   8059 
   8060 	From Pavel Roskin <pavel_roskin (a] geocities.com>:
   8061 	* Makefile.am (SUBDIRS): e2fs_stage1_5, ffs_stage1_5,
   8062 	fat_stage1_5 and shared_src are removed.
   8063 	(DISTCLEANFILES): Deleted.
   8064 	* configure.in: Call AC_PROG_RANLIB.
   8065 	(AC_INIT): Change the argument to stage2/stage2.c.
   8066 	(LIBS): Renamed to ...
   8067 	(GRUB_LIBS): ... this, and call AC_SUBST for this.
   8068 	Our own rules are removed.
   8069 	(AC_OUTPUT): e2fs_stage1_5/Makefile, ffs_stage1_5/Makefile,
   8070 	fat_stage1_5/Makefile and shared_src/Makefile are removed.
   8071 	* docs/Makefile.am (HELP2MAN): The prefix $(srcdir) is removed.
   8072 	[GRUB_MAINT]: Prepend $(srcdir) to $(HELP2MAN).
   8073 	* e2fs_stage1_5/Makefile.am: Deleted.
   8074 	* e2fs_stage1_5/Makefile.in: Likewise.
   8075 	* fat_stage1_5/Makefile.am: Likewise.
   8076 	* fat_stage1_5/Makefile.in: Likewise.
   8077 	* ffs_stage1_5/Makefile.am: Likewise.
   8078 	* ffs_stage1_5/Makefile.in: Likewise.
   8079 	* grub/Makefile.am (CLEANFILES): Likewise.
   8080 	(COMPILE): Likewise.
   8081 	(INCLUDES): Likewise.
   8082 	(DEP_FILES): Likewise.
   8083 	(@SHARED_SRC_RULES@): Likewise.
   8084 	(AM_CFLAGS): New variable.
   8085 	(grub_LDADD): Set to the library libgrub.a and @GRUB_LIBS@.
   8086 	* shared_src/Makefile.am: Deleted.
   8087 	* shared_src/Makefile.in: Likewise.
   8088 	* shared_src/apic.h: Moved to ...
   8089 	* stage2/apic.h: ... here.
   8090 	* shared_src/asm.S: Moved to ...
   8091 	* stage2/asm.S: ... here.
   8092 	* shared_src/bios.c: Moved to ...
   8093 	* stage2/bios.c: ... here.
   8094 	* shared_src/boot.c: Moved to ...
   8095 	* stage2/boot.c: ... here.
   8096 	* shared_src/char_io.c: Moved to ...
   8097 	* stage2/char_io.c: ... here.
   8098 	* shared_src/cmdline.c: Moved to ...
   8099 	* stage2/cmdline.c: ... here.
   8100 	* shared_src/common.c: Moved to ...
   8101 	* stage2/common.c: ... here.
   8102 	* shared_src/defs.h: Moved to ...
   8103 	* stage2/defs.h: ... here.
   8104 	* shared_src/dir.h: Moved to ...
   8105 	* stage2/dir.h: ... here.
   8106 	* shared_src/disk_inode.h: Moved to ...
   8107 	* stage2/disk_inode.h: ... here.
   8108 	* shared_src/disk_inode_ffs.h: Moved to ...
   8109 	* stage2/disk_inode_ffs.h: ... here.
   8110 	* shared_src/disk_io.c: Moved to ...
   8111 	* stage2/disk_io.c: ... here.
   8112 	* shared_src/fat.h: Moved to ...
   8113 	* stage2/fat.h: ... here.
   8114 	* shared_src/filesys.h: Moved to ...
   8115 	* stage2/filesys.h: ... here.
   8116 	* shared_src/freebsd.h: Moved to ...
   8117 	* stage2/freebsd.h: ... here.
   8118 	* shared_src/fs.h: Moved to ...
   8119 	* stage2/fs.h: ... here.
   8120 	* shared_src/fsys_ext2fs.c: Moved to ...
   8121 	* stage2/fsys_ext2fs.c: ... here.
   8122 	* shared_src/fsys_fat.c: Moved to ...
   8123 	* stage2/fsys_fat.c: ... here.
   8124 	* shared_src/fsys_ffs.c: Moved to ...
   8125 	* stage2/fsys_ffs.c: ... here.
   8126 	* shared_src/gunzip.c: Moved to ...
   8127 	* stage2/gunzip.c: ... here.
   8128 	* shared_src/i386-elf.h: Moved to ...
   8129 	* stage2/i386-elf.h: ... here.
   8130 	* shared_src/imgact_aout.h: Moved to ...
   8131 	* stage2/imgact_aout.h: ... here.
   8132 	* shared_src/mb_header.h: Moved to ...
   8133 	* stage2/mb_header.h: ... here.
   8134 	* shared_src/mb_info.h: Moved to ...
   8135 	* stage2/mb_info.h: ... here.
   8136 	* shared_src/pc_slice.h: Moved to ...
   8137 	* stage2/pc_slice.h: ... here.
   8138 	* shared_src/shared.h: Moved to ...
   8139 	* stage2/shared.h: ... here.
   8140 	* shared_src/smp-imps.c: Moved to ...
   8141 	* stage2/smp-imps.c: ... here.
   8142 	* shared_src/smp-imps.h: Moved to ...
   8143 	* stage2/smp-imps.h: ... here.
   8144 	* shared_src/stage1_5.c: Moved to ...
   8145 	* stage2/stage1_5.c: ... here.
   8146 	* shared_src/stage2.c: Moved to ...
   8147 	* stage2/stage2.c: ... here.
   8148 	* stage1/Makefile.am (pkgdata_DATA): Renamed to ...
   8149 	(nodist_pkgdata_DATA): ... this.
   8150 	(COMPILE): Deleted.
   8151 	(AM_CFLAGS): New variable.
   8152 	* stage2/Makefile.am: Completely rewritten from scratch.
   8153 	(TESTS): New variable.
   8154 	(noinst_SCRIPTS): Likewise.
   8155 	(noinst_HEADERS): Likewise.
   8156 	(EXTRA_DIST): Set to smp-imps.c and $(noinst_SCRIPTS).
   8157 	(noinst_LIBRARIES): New variable.
   8158 	(libgrub_a_SOURCES): Likewise.
   8159 	(libgrub_a_CFLAGS): Likewise.
   8160 	(pkgdata_DATA): Deleted.
   8161 	(nodist_pkgdata_DATA): New variable.
   8162 	(MOSTLYCLEANFILES): Set to $(noinst_PROGRAMS).
   8163 	(COMPILE): Deleted.
   8164 	(INCLUDES): Likewise.
   8165 	(stage2_exec_LDADD): Likewise.
   8166 	(DEP_FILES): Likewise.
   8167 	(stage2_exec_SOURCES): Set to the actual source files instead of
   8168 	dummy.
   8169 	(DISTFILES): Deleted.
   8170 	(stage2.exec): Likewise.
   8171 	(stage2): Likewise.
   8172 	(@SHARED_SRC_RULES@): Likewise.
   8173 	(noinst_PROGRAMS): Set to executable formats of Stage 2 and
   8174 	Stage 1.5's.
   8175 	(STAGE2_LINK): New variable.
   8176 	(STAGE2_COMPILE): Likewise.
   8177 	(STAGE1_5_LINK): Likewise.
   8178 	(STAGE1_5_COMPILE): Likewise.
   8179 	(stage2_exec_CFLAGS): Likewise.
   8180 	(stage2_exec_LDFLAGS): Likewise.
   8181 	(e2fs_stage1_5_exec_SOURCES): Likewise.
   8182 	(e2fs_stage1_5_exec_CFLAGS): Likewise.
   8183 	(e2fs_stage1_5_exec_LDFLAGS): Likewise.
   8184 	(fat_stage1_5_exec_SOURCES): Likewise.
   8185 	(fat_stage1_5_exec_CFLAGS): Likewise.
   8186 	(fat_stage1_5_exec_LDFLAGS): Likewise.
   8187 	(ffs_stage1_5_exec_SOURCES): Likewise.
   8188 	(ffs_stage1_5_exec_CFLAGS): Likewise.
   8189 	(ffs_stage1_5_exec_LDFLAGS): Likewise.
   8190 	(% : %.exec): New rule.
   8191 
   8192 	* stage2/size_test: New file, for checking for the sizes of
   8193 	Stage 2 and Stage 1.5's.
   8194 
   8195 1999-06-24  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8196 
   8197 	* stage1/stage1.S: Call testb instead of andb when checking if
   8198 	the drive is a floppy.
   8199 
   8200 1999-06-23  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8201 
   8202 	* grub/asmstub.c [__linux__]: Include linux/fs.h for BLKFLSBUF.
   8203 	(grub_stage2): Call sync before and after calling doit.
   8204 	(gurb_stage2) [__linux__]: Invalidate buffer caches by BLKFLSBUF
   8205 	ioctl.
   8206 	* grub/main.c (main): Call sync first. Suggested by Pavel Roskin
   8207 	<pavel_roskin (a] geocities.com>.
   8208 
   8209 	* configure.in: Curses libraries are always checked.
   8210 	(--enable-sbin-grub): Deleted. Now /sbin/grub is always built.
   8211 	(--enable-maintainer-mode): New option.
   8212 	* grub/Makefile.am (EXTRA_PROGRAMS): Deleted.
   8213 	(sbin_PROGRAMS): Just set to grub.
   8214 	* docs/Makefile.am (man_MANS): New variable.
   8215 	(HELP2MAN): Likewise.
   8216 	(noinst_SCRIPTS): Likewise.
   8217 	(EXTRA_DIST): Add $(man_MANS) and $(noinst_SCRIPTS).
   8218 	[GRUB_MAINT]: Define the rule for the /sbin/grub manual.
   8219 	* docs/help2man: Copied from texinfo-3.12i.
   8220 	(--section): New option to specify which section a manual
   8221 	belongs	to.
   8222 	(opt_section): New variable.
   8223 	(section): Likewise.
   8224 	* docs/grub.8: Produced by help2man automatically.
   8225 
   8226 1999-06-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8227 
   8228 	* shared_src/char_io.c (get_cmdline): Add two missing `break's.
   8229 
   8230 	* shared_src/cmdline.c (commands): Add quit.
   8231 	(enter_cmdline): Change the return type	to cmdline_t, and return
   8232 	CMDLINE_OK if successful, otherwise CMDLINE_ERROR if fail.
   8233 	(enter_cmdline) [GRUB_UTIL]: Return CMDLINE_ABORT if CUR_HEAP
   8234 	contains "quit".
   8235 	[!GRUB_UTIL]: Just print an annotation message.
   8236 	* shared_src/shared.h (cmdline_t): New enum type.
   8237 	(enter_cmdline): Change the return type to cmdline_t.
   8238 	(cmain): Remove ``noreturn'' attribute.
   8239 	* shared_src/stage2.c (menu_t): New enum type.
   8240 	(run_menu): Change the return type to menu_t.
   8241 	If enter_cmdline returns CMDLINE_ABORT, then return MENU_ABORT,
   8242 	otherwise return MENU_OK.
   8243 	(cmain): If enter_cmdline aborts, then break the command-line
   8244 	loop and return. If run_menu aborts, then return.
   8245 
   8246 1999-06-22  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8247 
   8248 	* shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by
   8249 	Pavel Roskin <pavel_roskin (a] geocities.com>.
   8250 
   8251 1999-06-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8252 
   8253 	* docs/Makefile.am (html): Deleted.
   8254 	(txt): Likewise.
   8255 	(EXTRA_DIST): $(txt) and $(html) are removed.
   8256 	* docs/boot-proposal.html: Removed.
   8257 	* docs/errors.html: Likewise.
   8258 	* docs/faq.html: Likewise.
   8259 	* docs/grub.html: Likewise.
   8260 	* docs/install.html: Likewise.
   8261 	* docs/mem64mb.html: Likewise.
   8262 	* docs/technical.html: Likewise.
   8263 	* docs/using.html: Likewise.
   8264 	* docs/PC_partitioning.txt: Likewise.
   8265 	* docs/bios_mapping.txt: Likewise.
   8266 	* docs/commands.txt: Likewise.
   8267 	* docs/embedded_data.txt: Likewise.
   8268 	* docs/filesystem.txt: Likewise.
   8269 
   8270 1999-06-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8271 
   8272 	From Alexander K. Hudek <alexhudek (a] home.com>:
   8273 	* shared_src/disk_io.c (real_open_partition): Check if
   8274 	CURRENT_SLICE is equal to PC_SLICE_TYPE_WIN95_EXTENDED as well.
   8275 	* shared_src/pc_slice.c (PC_SLICE_TYPE_WIN95_EXTENDED): New
   8276 	macro.
   8277 	* shared_src/bios.c (biosdisk): Clear the reserved member of DAP.
   8278 
   8279 1999-06-08  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8280 
   8281 	Color-menu support based on Peter Astrand
   8282 	<altic (a] lysator.liu.se>'s patch.
   8283 
   8284 	* shared_src/asm.S (nocursor): New function.
   8285 	* shared_src/cmdline.c (normal_color): New variable.
   8286 	(highlight_color): Likewise.
   8287 	(commands): Added "color" command.
   8288 	(enter_cmdline): Handle the color command.
   8289 	* shared_src/shared.h (normal_color): Declared.
   8290 	(highlight_color): Likewise.
   8291 	[!GRUB_UTIL] (nocursor): Likewise.
   8292 	* shared_src/stage2.c (print_border) [!GRUB_UTIL]: Color the
   8293 	menu.
   8294 	(run_menu) [!GRUB_UTIL]: Call nocursor, and call set_line with
   8295 	the second argument HIGHLIGHT_COLOR when highlighting a line,
   8296 	and NORMAL_COLOR when drawing a normal line.
   8297 	(cmain): Initialize normal_color and highlight_color. Handle
   8298 	the color command in the same way as the command-line
   8299 	interface.
   8300 
   8301 1999-06-07  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8302 
   8303 	* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 31744.
   8304 	* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
   8305 
   8306 1999-06-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8307 
   8308 	The debug version of Stage 2 is removed.
   8309 
   8310 	* shared_src/cmdline.c: The imps code is now defined if GRUB_UTIL
   8311 	is not defined, but not if DEBUG.
   8312 	(debug): New global variable.
   8313 	(commands): All commands are always enabled, and added "debug".
   8314 	(debug_fs_print_func): Defined unconditionally.
   8315 	(debug_fs_blocklist_func): If DEBUG is true, then call printf.
   8316 	(enter_cmdline): Handle "testload", "read", "fstest",
   8317 	"impsprobe" and "displaymem" unconditionally, and added "debug"
   8318 	handling.
   8319 	[GRUB_UTIL]: If a command is impsprobe, just fails.
   8320 	* shared_src/disk_io.c (devread) [!STAGE1_5]: If DEBUG_FS and
   8321 	DEBUG are true, then call printf.
   8322 	* shared_src/asm.S (patch_code): Defined unconditionally.
   8323 	(patch_code_end): Likewise.
   8324 	* stage1/stage1.S (firstlist) [!FFS_STAGE1_5]: Increase the
   8325 	number of sectors to 90, because Stage 2 is larger than 80
   8326 	sectors.
   8327 	* configure.in: The option --enable-debug is removed, and do
   8328 	not output "stage2_debug/Makefile".
   8329 	* Makefile.am (SUBDIRS): stage2_debug is removed.
   8330 	* stage2_debug/Makefile.am: Deleted.
   8331 	* stage2_debug/Makefile.in: Likewise.
   8332 
   8333 1999-06-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8334 
   8335 	* grub/main.c (verbose): New variable.
   8336 	(read_only): Likewise.
   8337 	(OPT_VERBOSE): New macro.
   8338 	(OPT_READ_ONLY): Likewise.
   8339 	(longopts): Add --read-only and --verbose options.
   8340 	(usage): Add the descriptions about --read-only and --verbose.
   8341 	(main): Handle OPT_VERBOSE and OPT_READ_ONLY.
   8342 	If HOLD and VERBOSE are non-zero, then display the message
   8343 	about how to restart /sbin/grub.
   8344 
   8345 	* shared_src/shared.h (verbose) [GRUB_UTIL]: Declared.
   8346 	(read_only) [GRUB_UTIL]: Likewise.
   8347 
   8348 	* grub/asmstub.c (hex_dump): New function.
   8349 	(biosdisk): In the case where SUBFUNC is
   8350 	BIOSDISK_WRITE, check for READ_ONLY and call nwrite if
   8351 	READ_ONLY is zero. If VERBOSE is non-zero, display what GRUB
   8352 	will try to do.
   8353 	(get_diskinfo): Open DEVNAME with the mode O_RDWR if READ_ONLY
   8354 	is zero, and attempt to open DEVNAME with the mode O_RDONLY
   8355 	regardless of ERRNO if READ_ONLY is non-zero. If VERBOSE is
   8356 	non-zero, then display the drive DRIVE and the file DEVNAME.
   8357 
   8358 	* shared_src/disk_io.c (set_device) [STAGE1_5]: Eliminate
   8359 	completion code.
   8360 
   8361 1999-06-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8362 
   8363 	* grub/asmstub.c: Do not use I_AM_VERY_BRAVE any more.
   8364 	(grub_stage2): Delete first_scsi_disk and add a variable
   8365 	num_hd, which is used for counting how many drives are
   8366 	detected.
   8367 	Initialize the flags member of each element of disks to -1
   8368 	instead of 0, and check if it is equal to -1 instead of 0 when
   8369 	close it.
   8370 	(get_diskinfo): Treat -1 as non-caching state instead of 0.
   8371 
   8372 1999-06-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8373 
   8374 	Reported from Klaus Reichl <a8709182 (a] unet.univie.ac.at>:
   8375 	* docs/.cvsignore: New file.
   8376 	* shared_src/disk_io.c (print_a_completion): New function
   8377 	which saves what has been printed to UNIQUE_STRING and printf
   8378 	it.
   8379 	(unique) [!STAGE1_5]: New variable.
   8380 	(unique_string): Likewise.
   8381 	(print_completions): Use print_a_completion, and improve the
   8382 	completion facility.
   8383 	* shared_src/fsys_ext2fs.c (ext2fs_dir) [!STAGE1_5]: Use
   8384 	print_a_completion instead of just printf.
   8385 	* shared_src/fsys_ffs.c (ffs_dir) [!STAGE1_5]: Likewise.
   8386 	* shared_src/fsys_fat.c (fat_dir) [!STAGE1_5]: Likewise.
   8387 	* shared_src/shared.h (print_a_completion): Declared.
   8388 	* shared_src/cmdline.c (enter_cmdline): Explicitly cast
   8389 	int to pointer to char for grub_read.
   8390 	* grub/asmstub.c (grub_stage2) [__linux__]: Don't use /dev/fd1.
   8391 	Probe 4 IDE drives instead of 2.
   8392 	(biosdisk) [__linux__]: Add a prototype for _llseek.
   8393 	* shared_src/char_io.c (get_cmdline): Update LPOS and LLEN_OLD
   8394 	when the functon print_completion modifies CMDLINE.
   8395 	* shared_src/stage2.c (get_line_from_config): Fix LITERAL
   8396 	handling.
   8397 
   8398 1999-05-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8399 
   8400 	* grub/asmstub.c (grub_stage2): Fix a memory leak that FP is
   8401 	not closed.
   8402 
   8403 1999-05-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8404 
   8405 	* grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and
   8406 	OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES
   8407 	respectively.
   8408 	(longopts): Rename from "disable-config-file" to
   8409 	"no-config-file", and from "disable-curses" to "no-curses".
   8410 	(usage): Use "grub" instead of ARGV[0], read the standards.
   8411 	Change the help message according to the changes above.
   8412 	(main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead
   8413 	of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES.
   8414 
   8415 1999-05-21  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8416 
   8417 	* docs/TODO: Moved to ...
   8418 	* TODO: ... here.
   8419 	* docs/BUGS: Moved to ...
   8420 	* BUGS: ... here.
   8421 	* docs/COPYING: Removed.
   8422 	* docs/Makefile.am (EXTRA_DIST): Get rid of BUGS.
   8423 	* Makefile.am (EXTRA_DIST): Set to BUGS.
   8424 
   8425 1999-05-17  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8426 
   8427 	* acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command
   8428 	shift. Reported by Pavel Roskin <pabel_roskin (a] geocities.com>.
   8429 
   8430 1999-05-14  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8431 
   8432 	* docs/Makefile.am (info_TEXINFOS): Added multiboot.texi.
   8433 	* docs/multiboot.texi: New file. From Kunihiro Ishiguro.
   8434 
   8435 1999-05-12  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8436 
   8437 	* grub/asmstub.c: Include <errno.h>. Reported by Kunihiro
   8438 	Ishiguro <kunihiro (a] zebra.org>.
   8439 
   8440 1999-05-11  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8441 
   8442 	Reported by Brian Brunswick <brian (a] skarpsey.demon.co.uk>:
   8443 	* shared_src/asm.S (start) [STAGE1_5]: Jump to 0x0:0x2000.
   8444 	* shared_src/cmdline.c (enter_cmdline): Doesn't check for the jump
   8445 	address in stage2. We are not paranoid.
   8446 	Add a missing RAW_ADDR macro.
   8447 	* shared_src/diskio.c (grub_open): Call setup_part even in stage1.5.
   8448 	And, include necessary functions that were eliminated incorrectly.
   8449 	* shared_src/char_io.c [STAGE1_5]: Eliminate unnecessary functions
   8450 	for stage1.5.
   8451 
   8452 	* grub/asmstub.c (nread): New function. Handle EINTR.
   8453 	(nwrite): Likewise.
   8454 	(biosdisk) [I_AM_VERY_BRAVE]: When SUBFUNC is BIOSDISK_WRITE, call
   8455 	nwrite.
   8456 
   8457 	Reported by Pavel Roskin <pavel_roskin (a] geocities.com>:
   8458 	* shared_src/fsys_ext2fs.c (off_t): Renamed to ...
   8459 	(linux_off_t): ... this.
   8460 	* shared_src/defs.h (off_t): Renamed to ...
   8461 	(mach_off_t): ... this.
   8462 	* shared_src/fs.h (BBOFF): Use mach_off_t instead of off_t.
   8463 	(SBOFF): Likewise.
   8464 
   8465 	* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 81920.
   8466 	* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
   8467 	* ffs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 7168.
   8468 
   8469 1999-05-03  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8470 
   8471 	From Pavel Roskin:
   8472 	* shared_src/shared.h: Redeclare.
   8473 
   8474 	* grub/main.c (main): Use strncpy rather than pointer assignment
   8475 	to set the config file name.
   8476 
   8477 	* grub/asmstub.c: Make config_file a static array, not a pointer.
   8478 	Correct the value of VERSION_STRING.
   8479 
   8480 1999-04-10  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8481 
   8482 	* debian/rules (build): Install into /lib instead of /share.
   8483 
   8484 1999-05-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8485 
   8486 	Preliminary non-interactive use support.
   8487 
   8488 	* grub/main.c (use_config_file): New variable.
   8489 	(use_curses): Likewise.
   8490 	(OPT_DISABLE_CONFIG_FILE): New constant.
   8491 	(OPT_DISABLE_CURSES): Likewise.
   8492 	(OPT_BATCH): Likewise.
   8493 	(longopts): Add new options, --disable-config-file, --disable-curses,
   8494 	and --batch.
   8495 	(usage): Print the help messages about these new options.
   8496 	(main): Handle them.
   8497 
   8498 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: If ! USE_CURSES,
   8499 	fallback non-curses code.
   8500 	(stop) [HAVE_LIBCURSES]: Likewise.
   8501 	(cls) [HAVE_LIBCURSES]: Likewise.
   8502 	(getxy) [HAVE_LIBCURSES]: Likewise.
   8503 	(gotoxy) [HAVE_LIBCURSES]: Likewise.
   8504 	(grub_putchar) [HAVE_LIBCURSES]: Likewise.
   8505 	(getkey) [HAVE_LIBCURSES]: Likewise.
   8506 	(checkkey) [HAVE_LIBCURSES]: Likewise.
   8507 	(set_attrib) [HAVE_LIBCURSES]: Likewise.
   8508 
   8509 	* shared_src/cmdline.c (enter_cmdline): Do not use getc, but use
   8510 	getkey.
   8511 
   8512 	* shared_src/stage2.c (cmain) [GRUB_UTIL]: Check if USE_CONFIG_FILE
   8513 	is non-zero or not.
   8514 
   8515 	* shared_src/shared.h (getc): Removed.
   8516 	(use_config_file) [GRUB_UTIL]: Add the declaration.
   8517 	(use_curses) [GRUB_UTIL]: Likewise.
   8518 
   8519 1999-05-02  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8520 
   8521 	* shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported
   8522 	by Pavel Roskin <pavel_roskin (a] geocities.com>.
   8523 
   8524 1999-04-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8525 
   8526 	* docs/menu.lst: Rewritten, so that it contains up-to-date
   8527 	information and FAQish configuration examples.
   8528 
   8529 1999-04-09  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8530 
   8531 	* shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads
   8532 	and the one of cylinders.
   8533 
   8534 1999-04-06  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8535 
   8536 	* grub/asmstub.c (get_diskinfo): Compute the total number of sectors
   8537 	for DRIVE.
   8538 
   8539 	* shared_src/asm.S (get_diskinfo_standard): Clear the data segment
   8540 	after calling int 0x13. Restore the base pointer after returning
   8541 	to protected mode.
   8542 	(get_diskinfo_floppy): Likewise.
   8543 
   8544 	* shared_src/bios.c (get_diskinfo): Always set the size of DRP to
   8545 	the max size of DRP, regardless of the major version of extensions.
   8546 
   8547 1999-04-03  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8548 
   8549 	* shared_src/shared.h (struct geometry): Declare total_sectors as
   8550 	unsigned long instead of unsigned long long, because GRUB represents
   8551 	a sector number by 4bytes integer, so it doesn't make sense.
   8552 
   8553 	* shared_src/bios.c (biosdisk) [!NO_INT13_FALLBACK]: Recompute
   8554 	TOTAL_SECTORS according to CHS information.
   8555 	(get_diskinfo) [DEBUG]: Print the geometry of DRIVE.
   8556 
   8557 	* shared_src/disk_io.c (real_open_partition): Set PART_LENGTH to
   8558 	BUF_GEOM.TOTAL_SECTORS.
   8559 
   8560 1999-04-01  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8561 
   8562 	* docs/texinfo.tex: Copied from automake-1.4a.
   8563 
   8564 	* configure.in (SHARED_SRC_RULES): Add bios into shared sources.
   8565 
   8566 	* e2fs_stage1_5/Makefile.am (e2fs_stage1_5_exec_LDADD): Added bios.o.
   8567 	* fat_stage1_5/Makefile.am (fat_stage1_5_exec_LDADD): Likewise.
   8568 	* ffs_stage1_5/Makefile.am (ffs_stage1_5_exec_LDADD): Likewise.
   8569 	* stage2/Makefile.am (stage2_exec_LDADD): Likewise.
   8570 	* stage2_debug/Makefile.am (stage2_debug_exec_LDADD): Likewise.
   8571 
   8572 	* shared_src/Makefile.am (EXTRA_DIST): Added bios.c.
   8573 
   8574 	* shared_src/asm.S (biosdisk): Deleted. Now defined in bios.c.
   8575 	(get_diskinfo): Likewise.
   8576 	(biosdisk_int13_extensions): New function.
   8577 	(biosdisk_standard): Likewise.
   8578 	(check_int13_extensions): Likewise.
   8579 	(get_diskinfo_int13_extensions): Likewise.
   8580 	(get_diskinfo_standard): Likewise.
   8581 	(get_diskinfo_floppy): Likewise.
   8582 
   8583 	* shared_src/bios.c: New file.
   8584 
   8585 	* shared_src/shared.h (struct geometry): Added new member,
   8586 	total_sectors.
   8587 
   8588 1999-03-28  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8589 
   8590 	* shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES
   8591 	the entries starting from FIRST.
   8592 
   8593 1999-03-27  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8594 
   8595 	* Change everything to use memset and memmove instead of bzero and
   8596 	bcopy.  GNB's Not BSD.
   8597 
   8598 	* shared_src/shared.h (grub_memset): Adapted from grub_bzero.
   8599 	(grub_memmove): Adapted from grub_bcopy.
   8600 
   8601 	* grub/asmstub.c (checkkey): Fix unterminated comment.
   8602 
   8603 	* shared_src/char_io.c (grub_printf): Renamed from printf.
   8604 	(grub_tolower): Renamed from tolower.
   8605 	(grub_isspace): Renamed from isspace.
   8606 	(grub_strncat): Renamed from strncat.
   8607 	(grub_strstr): Renamed from strstr.
   8608 	(grub_bcopy): Renamed from bcopy.
   8609 	(grub_bzero): Renamed from bzero.
   8610 
   8611 	From Bradford Hovinen:
   8612 	* shared_src/char_io.c (get_cmdline): Add new argument to hide
   8613 	password entry.
   8614 	(grub_strcmp): New function.
   8615 	* shared_src/shared.h (get_cmdline): Fix declaration.
   8616 	(grub_strcmp): Declare.
   8617 	* shared_src/stage2.c (run_menu): Use get_cmdline with an
   8618 	ECHO_CHAR of `*'.  This protects against both brute-force and
   8619 	sidelong-glance password cracking attempts.
   8620 
   8621 	* grub/main.c (usage): Display defaults for stage2 options.
   8622 
   8623 	* grub/asmstub.c [WITHOUT_LIBC_STUBS]: Renamed from
   8624 	NO_REMAPPING_LIBC_FUNCTIONS.
   8625 	* grub/main.c: Likewise.
   8626 	* shared_src/shared.h: Likewise.
   8627 
   8628 1999-03-27  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8629 
   8630 	* grub/asmstub.c (set_attrib): Use inch and addch, instead of
   8631 	chgat, because chgat doesn't work as expected.
   8632 
   8633 1999-03-26  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8634 
   8635 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call nodelay.
   8636 	(checkkey) [HAVE_LIBCURSES]: If getting an input character, then
   8637 	ungetch it, because checkkey shouldn't modify the input queue.
   8638 
   8639 	Use file descriptors instead of file pointers to support
   8640 	>4GB disks in Linux.
   8641 
   8642 	* grub/asmstub.c (grub_stage2): Call close instead of fclose.
   8643 	(get_diskinfo): Call open instead of fopen.
   8644 	(biosdisk) [__linux__]: Use _llseek instead of lseek.
   8645 	(biosdisk): Call read instead of fread.
   8646 
   8647 	Add options so that the user can specify the config file.
   8648 
   8649 	* grub/Makefile.am (CPPFLAGS): Use -fwritable-strings, because
   8650 	grub assumes that all strings resides at the data section.
   8651 
   8652 	* grub/main.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
   8653 	shared.h.
   8654 	(OPT_CONFIG_FILE): New macro.
   8655 	(OPT_INSTALL_PARTITION): Likewise.
   8656 	(OPT_BOOT_DRIVE): Likewise.
   8657 	(longopts): Add new options, config-file, install-partition and
   8658 	boot-drive.
   8659 	(usage): Add the documentation for them.
   8660 	(main): Add handling code for OPT_CONFIG_FILE, OPT_INSTALL_PARTITION
   8661 	and OPT_BOOT_DRIVE.
   8662 
   8663 	* grub/asmstub.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
   8664 	shared.h.
   8665 	(config_file): Make it char * instead of char [].
   8666 	(getrtsecs): Return current time instead of 0xff.
   8667 
   8668 	* shared_src/shared.h [NO_REMAPPING_LIBC_FUNCTIONS]: Don't define
   8669 	libc-API-compatible function names.
   8670 	(config_file): Change the prototype from char [] to char *.
   8671 	(grub_putchar): Renamed from putchar.
   8672 
   8673 1999-03-25  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8674 
   8675 	* char_io.c (get_cmdline): Call cl_setcpos even if lpos == llen,
   8676 	because ncurses won't update the cursor position.
   8677 
   8678 	* grub/main.c (OPT_HOLD): New macro.
   8679 	(longopts): New option --hold.
   8680 	(usage): Add the documentation about --hold.
   8681 	(main): Set hold if --hold is specified. Wait until cleared.
   8682 
   8683 1999-03-22  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8684 
   8685 	* shared_src/cmdline.c (enter_cmdline): Check the return value of
   8686 	set_device in the `root' command.
   8687 
   8688 	* shared_src/char_io.c (memcheck): Special-case cur_part_desc and
   8689 	reenable memory checking.
   8690 
   8691 1999-03-21  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8692 
   8693 	* shared_src/boot.c (load_image): Make sure we use the mapped
   8694 	address before actually writing data to memaddr.
   8695 
   8696 	* shared_src/char_io.c (get_cmdline): Only zero-terminate if there
   8697 	were leading blanks.  This prevents accidental truncation of
   8698 	commands.
   8699 
   8700 	* grub/asmstub.c (get_diskinfo): Cache device geometries as well
   8701 	as file handles.
   8702 	Use the Linux HDIO_GETGEO ioctl to make a better guess at hard
   8703 	disk geometries.
   8704 
   8705 1999-03-16  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8706 
   8707 	* shared_src/shared.h (geometry_t): Delete typedef, until we
   8708 	actually use it.
   8709 
   8710 1999-03-16  OKUJI Yoshinori  <okuji (a] kuicr.kyoto-u.ac.jp>
   8711 
   8712 	* shared_src/asm.S (biosdisk): Use a structure for geometry
   8713 	instead of a integer.
   8714 	(get_diskinfo): Take a pointer to a geometry structure as the
   8715 	second argument, and fill a geometry in it. Return 1 if an error
   8716 	occurs, otherwise return 0.
   8717 	* shared_src/boot.c (bsd_boot): Compute BIOS geometries for BSD.
   8718 	* shared_src/cmdline.c (enter_cmdline): Declare dest_geom as
   8719 	struct geometry.
   8720 	* shared_src/disk_io.c (buf_geom): Declare as struct geometry.
   8721 	* shared_src/filesys.h (SECTORS): Deleted.
   8722 	(HEADS): Likewise.
   8723 	(CYLINDERS): Likewise.
   8724 	* shared_src/shared.h (BIOSDISK_FLAG_LBA_EXTENSION): New macro.
   8725 	(struct geometry): New structure.
   8726 	(buf_geom): Correct the prototype.
   8727 	(get_diskinfo): Likewise.
   8728 	(biosdisk): Likewise.
   8729 
   8730 1999-03-15  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8731 
   8732 	* grub/asmstub.c (doit): Nested function to get a clean stack
   8733 	frame while in grub_stage2.
   8734 	Use different assembler magic.  From OKUJI Yoshinori.
   8735 
   8736 1999-03-14  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8737 
   8738 	* shared_src/stage2.c (run_menu): Use A_REVERSE and A_NORMAL
   8739 	constants instead of magic numbers.
   8740 
   8741 	* shared_src/shared.h (A_REVERSE): Renamed from ATTR_INVERSE for
   8742 	compatibility with curses.
   8743 	(A_NORMAL): Renamed from ATTR_NORMAL.
   8744 
   8745 	* shared_src/cmdline.c (enter_cmdline): Change prompt to "grub> ".
   8746 	(enter_cmdline): Only abort the boot if we are in a script.
   8747 
   8748 	* shared_src/stage2.c (run_menu): Change prompts to "grub edit> ".
   8749 
   8750 	* shared_src/char_io.c (memcheck): Use RAW_ADDR to compute memory
   8751 	locations.
   8752 	(get_cmdline): Change the `goto next line' code to account for
   8753 	newlines deleting to end of line under curses.
   8754 
   8755 	* Innumerable cleanups to fix warnings.  There are still too many
   8756 	typecasts in the wrong places (int variables used to hold
   8757 	pointers, then casted to a pointer type), but things look better.
   8758 
   8759 	* configure.in (CPPFLAGS): Bump up GCC warnings to -Wall
   8760 	-Wmissing-prototypes -Wunused.
   8761 
   8762 	* shared_src/shared.h: Delete stupid declarations, and totally
   8763 	rearrange for clarity.
   8764 	(inb, outb): Move to cmdline.c, since it's only used there.
   8765 	(print_possibilities, fsmax, fsys_table): Move definitions to
   8766 	disk_io.c.
   8767 
   8768 	* grub/asmstub.c: Fill in more stubs.
   8769 
   8770 1999-03-13  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8771 
   8772 	* shared_src/gunzip.c (border): Rename to bitorder, to resolve
   8773 	clash with curses.
   8774 	* shared_src/stage2.c (timeout): Rename to grub_timeout.
   8775 
   8776 	* configure.in: Check for curses libraries for use with
   8777 	/sbin/grub.
   8778 
   8779 	* shared_src/shared.h (KEY_DELETE): Rename to KEY_DC, for
   8780 	compatibility with curses.
   8781 	(KEY_INSERT): Rename to KEY_IC.
   8782 	(KEY_PGDN): Rename to KEY_NPAGE.
   8783 	(KEY_PGUP): Rename to KEY_PPAGE.
   8784 
   8785 	* shared_src/asm.S (asm_getkey): Renamed to getkey.
   8786 
   8787 	* shared_src/char_io.c (getkey): Delete, because it's useless.
   8788 
   8789 	* shared_src/shared.h: Resolve name clashes with libc by renaming
   8790 	overlapping functions to have grub_ prefixes, then defining
   8791 	macros.
   8792 
   8793 	* grub/asmstub.c (start_stage2): Make some assertions about our
   8794 	scratch memory area.
   8795 
   8796 	* shared_src/shared.h (end): Delete declaration.
   8797 	(RAW_ADDR, RAW_SEG): Macros to redirect /sbin/grub memory requests
   8798 	through grub_scratch_mem.
   8799 
   8800 	* grub/asmstub.c (get_mem_map): Implement, simulating 4MB
   8801 	contiguous memory.
   8802 	(get_code_end): Implement, simulating with a malloced area.
   8803 	grub/asmstub.c (start_stage2): Initialize grub_scratch_mem.
   8804 
   8805 	* shared_src/asm.S (get_mem_map): Some BIOSes expect the high word
   8806 	of %eax to be zero.
   8807 	(get_code_end): Move this from common.c so that we can stub it out
   8808 	in the simulator.
   8809 
   8810 	* debian/rules: Make sure info files end up in /usr/info, not
   8811 	/info.
   8812 
   8813 1999-03-10  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8814 
   8815 	* shared_src/asm.S (biosdisk): Make LBA mode work correctly.  From
   8816 	OKUJI Yoshinori.
   8817 	Unconditionally define NO_INT13_FALLBACK until we release GRUB
   8818 	0.6.  This will help debug any problems with the LBA support until
   8819 	then.
   8820 
   8821 1999-03-09  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8822 
   8823 	* shared_src/asm.S (biosdisk): Compute location of
   8824 	disk_address_packet correctly.  From OKUJI Yoshinori.
   8825 
   8826 1999-03-08  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8827 
   8828 	* docs/grub.texi: New Texinfo documentation.
   8829 
   8830 	* shared_src/disk_io.c (set_device): First stab at interpreting
   8831 	Mach-style partition naming.
   8832 
   8833 	* shared_src/stage2.c (run_menu): Don't say it was a failure if
   8834 	enter_cmdline returns nonzero... just wait for a key.
   8835 
   8836 	* shared_src/cmdline.c (enter_cmdline): Return nonzero, and avoid
   8837 	the fallback command if we did an install.
   8838 
   8839 	* shared_src/asm.S (_start): New explicit symbol to supress
   8840 	warnings.
   8841 
   8842 	* e2fs_stage1_5/Makefile.am (NO_FANCY_STUFF): Renamed to STAGE1_5,
   8843 	since that describes this conditional more accurately.
   8844 	* fat_stage1_5/Makefile.am: Likewise.
   8845 	* ffs_stage1_5/Makefile.am: Likewise.
   8846 	* shared_src/asm.S: Likewise.
   8847 	* shared_src/char_io.c: Likewise.
   8848 	* shared_src/common.c: Likewise.
   8849 	* shared_src/disk_io.c: Likewise.
   8850 	* shared_src/fsys_ext2fs.c: Likewise.
   8851 	* shared_src/fsys_ffs.c: Likewise.
   8852 	* shared_src/shared.h: Likewise.
   8853 
   8854 1999-03-07  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8855 
   8856 	* configure.in (SHARED_SRC_RULES): Automatically generate
   8857 	Makefile dependencies for files in shared_src.
   8858 	e2fs_stage1_5/Makefile.am: Use them.
   8859 	fat_stage1_5/Makefile.am: Likewise.
   8860 	ffs_stage1_5/Makefile.am: Likewise.
   8861 	grub/Makefile.am: Likewise.
   8862 	stage2/Makefile.am: Likewise.
   8863 	stage2_debug/Makefile.am: Likewise.
   8864 
   8865 	* shared_src/disk_inode.h: Fix typo: i_ic shouldn't be defined.
   8866 
   8867 	* shared_src/fsys_ffs.c (block_map): Make static, since this
   8868 	function isn't used outside of its defining file.
   8869 
   8870 	* shared_src/disk_io.c [NO_FANCY_STUFF]: Eliminate a whole bunch
   8871 	more functions from the stage1.5.  From OKUJI Yoshinori.
   8872 	* shared_src/fsys_ffs.c: Likewise.
   8873 	* shared_src/char_io.c: Likewise.
   8874 
   8875 1999-03-05  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8876 
   8877 	* shared_src/char_io.c (getkey): Don't set BUF_DRIVE to -1.
   8878 	BUF_DRIVE has nothing at all to do with getkey.
   8879 
   8880 	* shared_src/common.c (err_list): Change description of ERR_GEOM
   8881 	to be more informative.
   8882 
   8883 	* Makefile.am (configure): Depend on debian/changelog.
   8884 
   8885 	* configure.in (host_cpu): Make all fully i386-compatible CPUs be
   8886 	identified as i386.
   8887 	(AM_INIT_AUTOMAKE): Fetch values for PACKAGE and VERSION from
   8888 	debian/changelog, so that we only have one file to update.
   8889 
   8890 	* shared_src/asm.S (get_diskinfo): Fix a few bit-twiddling bugs in
   8891 	the BIOS extension detection code.
   8892 	(biosdisk) [AWARD_INT13_EXTENSIONS]: Preliminary implementation
   8893 	of Award's encoding of cylinder bits 10 and 11.
   8894 	(biosdisk) [NO_INT13_FALLBACK]: If defined, don't use the standard
   8895 	disk interface if the extended interface fails.
   8896 
   8897 	* configure.in: Make sure $(host_cpu) and $(host_vendor) are
   8898 	substituted into the Makefile.
   8899 
   8900 	* e2fs_stage1_5/Makefile.am (pkgdatadir): Install files in
   8901 	$(datadir)/grub/$(host_cpu)-$(host_vendor).
   8902 	* fat_stage1_5/Makefile.am: Likewise.
   8903 	* ffs_stage1_5/Makefile.am: Likewise.
   8904 	* stage1/Makefile.am: Likewise.
   8905 	* stage2/Makefile.am: Likewise.
   8906 	* stage2_debug/Makefile.am: Likewise.
   8907 
   8908 1999-03-03  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8909 
   8910 	* shared_src/asm.S (biosdisk): Use LBA mode if high nibble of
   8911 	GEOMETRY is nonzero.
   8912 	(get_diskinfo): Set high nibble of GEOMETRY (0xf0000000) to 1 if
   8913 	LBA mode is detected.
   8914 
   8915 1999-03-02  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8916 
   8917 	* shared_src/disk_io.c (make_saved_active): Use BIOSDISK_READ and
   8918 	BIOSDISK_WRITE.
   8919 
   8920 	* shared_src/cmdline.c (enter_cmdline): Use BIOSDISK_WRITE.
   8921 
   8922 	* shared_src/shared.h (BIOSDISK_SUBFUNC_READ,
   8923 	BIOSDISK_SUBFUNC_WRITE): Delete constants.
   8924 
   8925 	* shared_src/asm.S (biosdisk): Change subfunc argument to be
   8926 	read=0, write=1.
   8927 
   8928 	* configure.in: Drop redundant AC_PROG_INSTALL.  From OKUJI
   8929 	Yoshinori.
   8930 
   8931 1999-03-01  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8932 
   8933 	* debian/rules (binary-arch): Properly install README.debian.
   8934 
   8935 	* acinclude.m4 (grub_OBJCOPY_ABSOLUTE): Don't forget to move the
   8936 	old binary out of the way before reentering the loop.
   8937 	(grub_ASM_ADDR32): Delete conftest files after running the test.
   8938 
   8939 	* debian/rules (binary-arch): Remove empty /sbin directory until
   8940 	/sbin/grub is installed.  Use $(DESTDIR) instead of $(prefix) to
   8941 	install files.
   8942 
   8943 	* shared_src/asm.S (version_string): Set the version string from
   8944 	the VERSION specified in configure.in.
   8945 
   8946 	* Change all Makefiles into Makefile.ams.  Many major build
   8947 	environment changes to get Automake/Autoconf working nicely.
   8948 
   8949 1999-02-28  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8950 
   8951 	* NEWS: Moved from docs/NEWS.
   8952 
   8953 	* configure.in, acinclude.m4: New files for Autoconf.  From OKUJI
   8954 	Yoshinori.
   8955 
   8956 	* AUTHORS, INSTALL: New files.
   8957 
   8958 1999-02-24  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8959 
   8960 	* stage1/stage1.S (after_BPB): Do a hard disk probe first, so that
   8961 	we can work with IDE floppies (like the LS-120).
   8962 
   8963 	* Run GNU Indent on */*.[ch].
   8964 
   8965 1999-02-21  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8966 
   8967 	* debian: Add to the distribution, since we maintain the GRUB
   8968 	Debian package ourselves.
   8969 
   8970 	* grub/asmstub.c: New file to implement stubbed assembly functions
   8971 	under Unix.
   8972 
   8973 	* stage1/Makefile: Delete spurious dependencies on Makefile.
   8974 	* stage2/Makefile: Likewise.
   8975 	* stage2_debug/Makefile: Likewise.
   8976 	* grub/Makefile: Likewise.
   8977 
   8978 	* shared_src/fsys_ext2fs.c (ext2fs_dir): Follow symbolic links
   8979 	rather than giving an error.
   8980 
   8981 	* shared_src/common.c (err_list): Use labeled elements to
   8982 	associate messages with error codes.
   8983 	* shared_src/shared.h: Make error codes into an enumerated type.
   8984 
   8985 	* shared_src/common.c (err_list): Add ERR_SYMLINK_LOOP.
   8986 	* shared_src/shared.h: Likewise.
   8987 
   8988 	* shared_src/char_io.c (bcopy): Don't make any assumptions about
   8989 	the length of an unsigned long.
   8990 
   8991 	* grub/Makefile: Treat CFLAGS, CPPFLAGS, LDFLAGS according to
   8992 	GNU standards.
   8993 	* stage2/Makefile: Likewise.
   8994 	* e2fs_stage1_5/Makefile: Likewise.
   8995 	* fat_stage1_5/Makefile: Likewise.
   8996 	* ffs_stage1_5/Makefile: Likewise.
   8997 
   8998 1999-02-20  Gordon Matzigkeit  <gord (a] trick.fig.org>
   8999 
   9000 	* docs/index.html: Rename to grub.html, so that we don't hide
   9001 	files in this directory from a web browser.
   9002 
   9003 1999-02-15  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9004 
   9005 	* Makefile.end (PROGS): Add grub.
   9006 
   9007 	* grub/main.c: New file.
   9008 
   9009 	* grub/Makefile: New directory to contain the stage2 Unix program.
   9010 
   9011 	* shared_src/cmdline.c: Use substring.
   9012 	* shared_src/fsys_ext2fs.c: Likewise.
   9013 	* shared_src/fsys_fat.c: Likewise.
   9014 	* shared_src/fsys_ffs.c: Likewise.
   9015 	* shared_src/stage2.c: Likewise.
   9016 
   9017 	* shared_src/shared.h: Delete strcmp, declare substring.
   9018 
   9019 	* shared_src/char_io.c (strcmp): Rename to `substring', because
   9020 	this function doesn't behave the same as libc's strcmp.
   9021 
   9022 1999-02-14  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9023 
   9024 	* shared_src/shared.h: (addr32, data32): Delete definitions.
   9025 
   9026 	* stage1/stage1.S: Modify to use GAS's new .code16 semantics.
   9027 	shared_src/asm.S: Likewise.
   9028 
   9029 	* configure: Test to see if the `addr32' instruction is supported.
   9030 	Ian Lance Taylor says that GAS's interpretation of `.code16' has
   9031 	changed.  Older versions always generated 32-bit code, but
   9032 	implicitly inserted addr32 and data32 when .code16 was given.
   9033 	Newer versions generate 16-bit code, and require manual addr32 and
   9034 	data32 overrides.
   9035 
   9036 	* shared_src/shared.h: Add some assertions to check that buffer
   9037 	addresses are properly defined.
   9038 
   9039 1999-02-12  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9040 
   9041 	* shared_src/stage2.c (run_menu): Pause if we failed to boot both
   9042 	the default and fallback entries.
   9043 
   9044 	* configure: Check to make sure that GAS actually honors .code16
   9045 	directives.
   9046 
   9047 1999-02-02  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9048 
   9049 	* shared_src/asm.S: Fix typo that called interrupt 0xd (decimal
   9050 	13) instead of 0x13.
   9051 
   9052 1999-01-31  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9053 
   9054 	* e2fs_stage1_5/Makefile: Avoid gratuitous dependencies on
   9055 	Makefile.
   9056 	* fat_stage1_5/Makefile: Likewise.
   9057 	* ffs_stage1_5/Makefile: Likewise.
   9058 
   9059 	* Makefile.end (PROGS): Add e2fs_stage1_5, fat_stage1_5, and
   9060 	grubinst.
   9061 	(distclean): New GNU standard rule.
   9062 
   9063 1998-10-23  Gordon Matzigkeit  <gord (a] trick.fig.org>
   9064 
   9065 	* configure: Accept `--host' as a synonym for `--target', and
   9066 	accept a non-optional argument as the target name.  Join the
   9067 	prefix to the tool name with a hyphen.
   9068 
   9069 	* shared_src/disk_io.c (print_fsys_type): Always print the
   9070 	partition type.
   9071 
   9072 	* shared_src/stage2.c (run_menu): Check to make sure that the
   9073 	fallback entry is nonnegative.
   9074 	(run_menu): For consistency, use `e' rather than enter to edit the
   9075 	command entry.
   9076