| 1999-10-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am (UNFINISHED_MANUALS): New variable. | 
 | 	(EXTRA_DIST): Added $(UNFINISHED_MANUALS). | 
 | 	* docs/new-grub.texi: New file. | 
 | 	 | 
 | 1999-10-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am (man_MANS): Added mbchk.1. | 
 | 	[MAINTAINER_MODE] (mbchk.1): New target. | 
 | 	* docs/mbchk.1: New file. Generated by help2man. | 
 | 	 | 
 | 1999-10-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* Makefile.am (SUBDIRS): Added util. | 
 | 	* configure.in: Output util/Makefile. | 
 | 	* util/Makefile.am: New file. | 
 | 	* util/mbchk.c: Likewise. | 
 | 	* util/Makefile.in: Likewise. Generated by automake. | 
 | 	 | 
 | 1999-10-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am (.texi): Canceled because the dependecies can | 
 | 	be circulated. | 
 | 	* stage2/builtins.c (embed_func): Set BUF_TRACK to -1 before | 
 | 	writing	the Stage 1.5 to the disk to clear the cache. | 
 | 	 | 
 | 1999-10-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/boot.c (load_initrd): Change types of *RAMDISK and | 
 | 	MOVETO to unsigned long. | 
 | 	Apply the macro RAW_ADDR to MOVETO. | 
 | 	 | 
 | 1999-10-16  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/multiboot.texi: Include the example source files of a | 
 | 	Multiboot kernel. | 
 | 	* docs/src2texi: New file. | 
 | 	* docs/boot.S: Likewise. | 
 | 	* docs/multiboot.h: Likewise. | 
 | 	* docs/kernel.c: Likewise. | 
 | 	* docs/boot.S.texi: Likewise. | 
 | 	* docs/multiboot.h.texi: Likewise. | 
 | 	* docs/kernel.c.texi: Likewise. | 
 | 	* docs/Makefile.am (EXAMPLES): New varilable. | 
 | 	(multiboot_TEXINFOS): Likewise. | 
 | 	(SRC2TEXI): Likewise. | 
 | 	(noinst_SCRIPTS): Added $(SRC2TEXI). | 
 | 	(EXTRA_DIST): Added $(EXAMPLES) and $(multiboot_TEXINFOS). | 
 | 	(%.c.texi): New target. | 
 | 	(%.h.texi): Likewise. | 
 | 	(%.S.texi): Likewise. | 
 | 	 | 
 | 1999-09-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 |         * multiboot.texi (BIOS device mapping techniques): New section. | 
 |         Stolen from bios_mapping.txt in grub-0.5. | 
 |         (Data comparison technique): New subsection. | 
 |         (I/O restriction technique): Likewise. | 
 |         (Example OS code): Rewrited from scratch. | 
 |          | 
 | 1999-09-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 |         * multiboot.texi: Rename Multiboot Standard to Multiboot | 
 |         Specification and upgrade the version to 0.7. Many cleanups | 
 |         are done. | 
 |  | 
 | 1999-10-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (setup_func): Save CURRENT_DRIVE and | 
 | 	CURRENT_PARTITION into IMAGE_DRIVE and IMAGE_PARTITION | 
 | 	respectively, and restore them before running install_func. | 
 | 	Use DEVICE instead of BUFFER to store the device name. | 
 | 	Change each type of STAGE1, STAGE2 and CONFIG_FILE to an array | 
 | 	of char. | 
 | 	If installing the Stage 1 into a MBR, embed the Stage 1.5 in the | 
 | 	sectors right after it. | 
 | 	Return the result of install_func instead of zero. | 
 | 	 | 
 | 1999-10-14  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* configure.in: Check for opendisk in libutil. | 
 | 	* grub/asmstub.c [__FreeBSD__ || __NetBSD__]: Include | 
 | 	<sys/ioctl.h>. | 
 | 	[HAVE_OPENDISK]: Include <util.h>. | 
 | 	[__NetBSD__] (get_floppy_disk_name): Added support for NetBSD. | 
 | 	[__NetBSD__ && HAVE_OPENDISK] (get_ide_disk_name): Likewise. | 
 | 	[__NetBSD__ && HAVE_OPENDISK] (get_scsi_disk_name): Likewise. | 
 | 	(get_drive_geometry) [__NetBSD__]: Use for NetBSD the same ioctl | 
 | 	as for FreeBSD. | 
 |  | 
 | 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (assign_device_name): If DEVICE is NULL, set | 
 | 	DEVICE_MAP[DRIVE] to NULL. | 
 | 	(get_diskinfo): If open or read fails, call assign_device_name | 
 | 	to disable accessing the drive DRIVE. | 
 | 	(grub_stage2): The device mapping routine is moved to ... | 
 | 	(init_device_map): ... here. This new function also reads/writes | 
 | 	a device map file. If DEVICE_MAP_FILE already exists, then use | 
 | 	the data in it instead of probing devices. Otherwise, guess the | 
 | 	map between BIOS drives and OS devices, and write it to the file | 
 | 	DEVICE_MAP_FILE if it can be opened. | 
 | 	* grub/main.c (device_map_file): New variable. | 
 | 	(default_device_map_file): Likewise. | 
 | 	(OPT_DEVICE_MAP): New macro. | 
 | 	(longopts): Added an entry for "device-map". | 
 | 	(usage): Print the usage about --device-map as well. | 
 | 	(main): Set DEFAULT_DEVICE_MAP_FILE to DEVICE_MAP_FILE. If | 
 | 	OPT_DEVICE_MAP is found, set DEVICE_MAP_FILE to a duplicated | 
 | 	string of OPTARG. | 
 | 	* stage2/shared.h [GRUB_UTIL] (device_map_file): Declared. | 
 | 	* docs/grub.8: Regenerated. | 
 | 	 | 
 | 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (color_func): Do not set NORMAL_COLOR or | 
 | 	HIGHLIGHT_COLOR directly, but use NEW_NORMAL_COLOR and | 
 | 	NEW_HIGHLIGHT_COLOR as temporary storages instead. | 
 | 	New internal function `color_number' is used to convert a | 
 | 	symbolic color representation into a color number. | 
 | 	Try color_number at first, and if fails, then try | 
 | 	safe_parse_maxint for each of NORMAL and HIGHLIGHT. | 
 | 	(builtin_color): The long doc does not describe the raw number | 
 | 	syntax but the symbolic color name syntax. | 
 | 	* docs/grub.texi (Commands): Adjusted to the long doc of | 
 | 	BUILTIN_COLOR. | 
 | 	* docs/menu.lst: Add examples of "fallback" and "color". | 
 | 	 | 
 | 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): If C is a newline | 
 | 	or a return, then set LPOS to LLEN and call the function | 
 | 	cl_setcpos. | 
 | 	[!STAGE1_5] (grub_strncat): New function. | 
 | 	* stage2/builtins.c (embed_func): New function. | 
 | 	(builtin_embed): New varilable. | 
 | 	(setup_func): New function. | 
 | 	(builtin_setup): New varilable. | 
 | 	(builtin_table): Added a pointer to BUILTIN_EMBED and a pointer | 
 | 	to BUILTIN_SETUP. | 
 | 	* stage2/shared.h (grub_strncat): Declared. | 
 | 	 | 
 | 	* stage2/Makefile.am (stage2_size.h): ../stage2/stage2 -> | 
 | 	pre_stage2. Reported by Pavel Roskin. | 
 | 	 | 
 | 1999-10-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* acinclude.m4 (grub_PROG_OBJCOPY_ABSOLUTE): main -> cmain. | 
 | 	* stage2/boot.c (load_image): Only CUR_ADDR, not ENTRY_ADDR | 
 | 	should be 1M-aligned for NetBSD. Don't align symbol table on 4k | 
 | 	boundaries if the kernel doesn't require it. | 
 |  | 
 | 1999-10-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/asm.S [!STAGE1_5] (start): New label to force ld quiet. | 
 | 	[!STAGE1_5] (_start): Likewise. | 
 | 	* stage2/builtins.c (install_func): Rewritten heavily almost | 
 | 	from scratch. As the blocklist was moved to the first sector of | 
 | 	Stage 2, always write sectors of Stage 2 to the disk. | 
 | 	* stage1/stage1.h (STAGE1_STAGE2_SECTOR): 0x40 -> 0x41. | 
 | 	(STAGE1_STAGE2_ADDRESS): 0x44 -> 0x45. | 
 | 	(STAGE1_STAGE2_SEGMENT): 0x46 -> 0x47. | 
 | 	(STAGE1_BOOT_DRIVE): 0x3f -> 0x40. | 
 | 	 | 
 | 1999-10-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Stage1 supports both the CHS mode and the LBA mode. | 
 | 	 | 
 | 	* stage1/Makefile.am (nodist_pkgdata_DATA): Removed stage1_lba. | 
 | 	(BUILT_SOURCES): Deleted. | 
 | 	(CLEANFILES): Likewise. | 
 | 	(noinst_PROGRAMS): Removed stage1_lba.exec. | 
 | 	(stage1_exec_SOURCES): Removed stage2_size.h. | 
 | 	(stage2_size.h): Deleted. | 
 | 	(stage1_lba_exec_SOURCES): Likewise. | 
 | 	* stage1/stage1.S: Rewritten from scratch. | 
 | 	* stage1/stage1_lba.S: Deleted. | 
 | 	* stage1/stage1.h (COMPAT_VERSION_MAJOR): Set to 3. | 
 | 	(COMPAT_VERSION_MINOR): Set to 0. | 
 | 	(STAGE1_VER_MAJ_OFFS): Set to 0x3e. | 
 | 	(STAGE1_FIRSTLIST): Deleted. | 
 | 	(STAGE1_INSTALLSEG): Likewise. | 
 | 	(STAGE1_INSTALLADDR): Likewise. | 
 | 	(STAGE1_MINPARAMSIZE): Likewise. | 
 | 	(STAGE1_LISTSIZE): Likewise. | 
 | 	(STAGE1_ID_OFFSET): Likewise. | 
 | 	(STAGE1_ID_CHS): Likewise. | 
 | 	(STAGE1_ID_LBA): Likewise. | 
 | 	(STAGE1_STAGE2_SECTOR): New macro. | 
 | 	(STAGE1_STAGE2_ADDRESS): Likewise. | 
 | 	(STAGE1_STAGE2_SEGMENT): Likewise. | 
 | 	(STAGE1_BOOT_DRIVE): Likewise. | 
 | 	* stage2/start.S: New file. | 
 | 	* stage2/Makefile.am (noinst_DATA): New variable. | 
 | 	(CLEANFILES): Set to "$(nodist_pkgdata_DATA) $(noinst_DATA) | 
 | 	$(BUILT_SOURCES)". | 
 | 	(noinst_PROGRAMS): Removed stage2.exec, and added start.exec and | 
 | 	pre_stage2.exec. | 
 | 	(STAGE2_LINK): Deleted. | 
 | 	(PRE_STAGE2_LINK): New variable. | 
 | 	(START_LINK): Likewise. | 
 | 	(stage2_exec_SOURCES): Deleted. | 
 | 	(stage2_exec_CFLAGS): Likewise. | 
 | 	(stage2_exec_LDFLAGS): Likewise. | 
 | 	[NETBOOT_SUPPORT] (stage2_exec_LDADD): Likewise. | 
 | 	(pre_stage2_exec_SOURCES): New variable. | 
 | 	(pre_stage2_exec_CFLAGS): Likewise. | 
 | 	(pre_stage2_exec_LDFLAGS): Likewise. | 
 | 	[NETBOOT_SUPPORT] (pre_stage2_exec_LDADD): Likewise. | 
 | 	(BUILT_SOURCES): Likewise. | 
 | 	(start_exec_SOURCES): Likewise. | 
 | 	(start_exec_CFLAGS): Likewise. | 
 | 	(start_exec_LDFLAGS): Likewise. | 
 | 	(start_exec_DEPENDENCIES): Likewise. | 
 | 	(stage2_size.h): New rule. | 
 | 	(stage2): Likewise. | 
 | 	(e2fs_stage1_5_exec_SOURCES): Added start.S. | 
 | 	(fat_stage1_5_exec_SOURCES): Likewise. | 
 | 	(ffs_stage1_5_exec_SOURCES): Likewise. | 
 | 	(minix_stage1_5_exec_SOURCES): Likewise. | 
 | 	* stage2/asm.S (start): Renamed to ... | 
 | 	(main): ... this. | 
 | 	[STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x2200) | 
 | 	instead of (codestart - EXT_C(start) + 0x2000). | 
 | 	[!STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x8200) | 
 | 	instead of (codestart - EXT_C(start) + 0x8000). | 
 | 	[STAGE1_5] (chain_stage2): Use main instead of start. | 
 | 	* stage2/shared.h (BOOTSEC_LISTSIZE): New macro. | 
 | 	* stage2/stage1_5.c: Change the second argument for chain_stage2 | 
 | 	to 0x8200. | 
 | 	 | 
 | 1999-10-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* configure.in (--with-binutils): New option to specify a | 
 | 	directory to find binutils. | 
 | 	(CFLAGS): If WITH_BINUTILS is not empty, added the option `-B'. | 
 | 	(LD): Do not check for this. We don't use ld directly anyway. | 
 | 	(RANLIB): If WITH_BINUTILS is not empty, search the directory | 
 | 	WITH_BINUTILS first. | 
 | 	(OBJCOPY): Likewise. | 
 | 	* acinclude.m4 (grub_ASM_USCORE): Add CFLAGS into | 
 | 	AC_TRY_COMMAND. | 
 | 	(grub_ASM_ADDR32): Likewise. | 
 | 	(grub_ASM_PREFIX_REQUIREMENT): Likewise. | 
 | 	(grub_PROG_OBJCOPY_ABSOLUTE): Use CC instead of LD. | 
 | 	 | 
 | 1999-10-04  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/freebsd.h (struct bootinfo): New member, bi_bios_dev. | 
 | 	* stage2/boot.c (bsd_boot): Set BI.BI_BIOS_DEV to SAVED_DRIVE. | 
 | 	 | 
 | 1999-10-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* docs/grub.texi: Fix typos. | 
 | 	* stage2/builtins.c (install_func): Reformat the warning message | 
 | 	about the option `d'. | 
 | 	 | 
 | 1999-10-03  Gordon Matzigkeit  <gord@fig.org> | 
 |  | 
 | 	* stage2/builtins.c (install_func): Fix check for the Stage 2 id. | 
 | 	From Pavel Roskin. | 
 |  | 
 | 	* debian/Makefile.am (EXTRA_DIST): Add postinst and prerm. | 
 |  | 
 | 1999-10-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (boot_func): Pass MBI.CMDLINE instead of ARG | 
 | 	to bsd_boot. | 
 |  | 
 | 1999-10-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/gunzip.c (gunzip_test_header): Check if CURRENT_DRIVE | 
 | 	is 0x20 instead of if the fs type is TFTP, because GRUB does not | 
 | 	mount CURRENT_DRIVE when using a block file. Reported by Pavel | 
 | 	Roskin. | 
 |  | 
 | 1999-10-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (cat_func): Do not read the whole of a file | 
 | 	at one time. Instead, repeat reading one byte and print it on | 
 | 	the screen. | 
 | 	* docs/grub.texi (Command line): List the available key | 
 | 	bindings. | 
 | 	(Commands): Added descriptions about "geometry", "device" and | 
 | 	"cat". | 
 |  | 
 | 1999-10-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Now it is possible to build the grub shell with old BSD curses. | 
 |  | 
 | 	* stage2/shared.h [!A_NORMAL] (A_NORMAL): Set to zero. | 
 | 	[!A_REVERSE && A_STANDOUT] (A_REVERSE): Set to A_STANDOUT. | 
 | 	[!A_REVERSE && !A_STANDOUT] (A_REVERSE): Set to zero. | 
 |  | 
 | 1999-09-30  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/disk_io.c (set_bootdev): Mask 0x7F instead of 0x79 of | 
 | 	the device number. | 
 |  | 
 | 1999-10-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* configure.in (--without-curses): New option. If WITH_CURSES is | 
 | 	no, do not check for curses. | 
 |  | 
 | 	* stage2/disk_io.c (set_device) [STAGE1_5]: Change the type of | 
 | 	DEV to unsigned long. | 
 | 	* stage2/builtins.c (install_func): Always check for the Stage 2 | 
 | 	id in FILE. | 
 | 	Reported by Pavel Roskin. | 
 |  | 
 | 1999-09-30  Gordon Matzigkeit  <gord@fig.org> | 
 |  | 
 | 	* debian/postinst: New file to call install-info. | 
 | 	* debian/prerm: Likewise. | 
 | 	* debian/rules (binary-arch): Add postinst and prerm, compress the | 
 | 	info files, and call dpkg-shlibdeps. | 
 |  | 
 | 	* stage2/cmdline.c (skip_to): Restructure, and count tabs as | 
 | 	whitespace. | 
 | 	(find_command): Likewise. | 
 |  | 
 | 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/getopt.c: Moved to ... | 
 | 	* lib/getopt.c: ... here. | 
 | 	* grub/getopt1.c: Moved to ... | 
 | 	* lib/getopt1.c: ... here. | 
 | 	* grub/getopt.h: Moved to ... | 
 | 	* lib/getopt.h: ... here. | 
 | 	* grub/Makefile.am (AM_CFLAGS): Added -I$(top_srcdir)/lib. | 
 | 	(grub_LDADD): Added ../lib/libcommon.a. | 
 | 	* lib/Makefile.am: New file. | 
 | 	* Makefile.am (SUBDIRS): Added lib. | 
 | 	* configure.in: lib/Makefile is added into the arguments for | 
 | 	AC_OUTPUT. | 
 |  | 
 | 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* stage2/defs.h (time_t): Renamed to ... | 
 | 	(mach_time_t): ... this. | 
 | 	(daddr_t): Renamed to ... | 
 | 	(mach_daddr_t): ... this. | 
 | 	(uid_t): Renamed to ... | 
 | 	(mach_uid_t): ... this. | 
 | 	(gid_t): Renamed to ... | 
 | 	(mach_gid_t): ... this. | 
 | 	(ino_t): Renamed to ... | 
 | 	(mach_ino_t): ... this. | 
 | 	* stage2/disk_inode.h (FFS_MAX_FASTLINK_SIZE): Use mach_daddr_t | 
 | 	instead of daddr_t. | 
 | 	(struct icommon): Use mach_uid_t, mach_gid_t, mach_time_t and | 
 | 	mach_daddr_t, instead of uid_t, gid_t, time_t and daddr_t. | 
 | 	* stage2/fs.h (BBLOCK): Use mach_daddr_t instead of addr_t. | 
 | 	(SBLOCK): Likewise. | 
 | 	(ROOTINO): Use mach_ino_t instead of ino_t. | 
 | 	(struct fs): Use mach_daddr_t and mach_time_t instead of daddr_t | 
 | 	and time_t. | 
 | 	(struct cg): Use mach_time_t instead of time_t. | 
 | 	(struct ocg): Likewise. | 
 | 	(cgbase): Use mach_daddr_t instead of daddr_t. | 
 | 	(itod): Likewise. | 
 |  | 
 | 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_CHECK_START_SYMBOL): Use AC_TRY_LINK | 
 | 	instead of AC_TRY_COMMAND. | 
 | 	(grub_CHECK_USCORE_START_SYMBOL): Likewise. | 
 | 	(grub_CHECK_END_SYMBOL): Likewise. | 
 | 	(grub_CHECK_USCORE_END_SYMBOL): Likewise. | 
 |  | 
 | 	* stage2/disk_io.c (set_device) [!STAGE1_5]: Use RESULT instead | 
 | 	of RETVAL to check if the analysis succeeds. | 
 |  | 
 | 1999-09-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (install_func): If the Stage 2 id in FILE is | 
 | 	not STAGE2_ID_STAGE2, set IS_STAGE1_5 to 1, otherwise to 0. | 
 | 	Use CONFIG_FILE_LOCATION to point to the location of the name of | 
 | 	a configuration file in Stage 2. | 
 | 	If the option `p' is present and IS_STAGE1_5 is non-zero, reset | 
 | 	the device information in CONFIG_FILE_LOCATION. | 
 | 	(cat_func): New function. | 
 | 	(builtin_cat): New variable. | 
 | 	(builtin_table): Added a pointer to BUILTIN_CAT. | 
 | 	(geometry_func): Call real_open_partition with the argument 1 | 
 | 	after printing out the drive information. | 
 | 	* stage2/disk_io.c (real_open_partition): Made global. | 
 | 	[!STAGE1_5] (print_completions): In the command completion and | 
 | 	the filename completion, print a newline at the last if | 
 | 	IS_COMPLETION is zero. | 
 | 	* stage2/shared.h (real_open_partition): Declared. | 
 | 	* stage2/fsys_ext2fs.c (ext2fs_dir): Do not print a newline even | 
 | 	if PRINT_POSSIBILITIES is less than zero. | 
 | 	* stage2/fsys_ffs.c (ffs_dir): Likewise. | 
 | 	* stage2/fsys_fat.c (fat_dir): Likewise. | 
 | 	* stage2/fsys_minix.c (minix_dir): Likewise. | 
 |  | 
 | 1999-09-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage1/stage1.S [!FFS_STAGE1_5] (blocklist_default_len): Do | 
 | 	not divide the size by 512, but shift the size to the right by | 
 | 	9 instead, because of a binutils-2.9.1.0.x bug. | 
 | 	* stage1/stage1_lba.S [!FFS_STAGE1_5] (blocklist_default_len): | 
 | 	Likewise. | 
 | 	* stage2/builtins.c (install_func): When installing Stage 1.5, | 
 | 	if set_device returns NULL, then set CURRENT_DRIVE to 0xFF and | 
 | 	CONFIG_FILE to PTR. | 
 |  | 
 | 1999-09-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): In cl_insert, call | 
 | 	cl_setcpos before printing BUF, even if LPOS is equal to LLEN. | 
 | 	In the completion, if RET is zero, do not call cl_init. | 
 | 	* stage2/disk_io.c [!STAGE1_5] (print_completions): In the | 
 | 	filename completion, if UNIQUE is 1, check if UNIQUE_STRING is a | 
 | 	directory or not. If so, append '/' to BUF. | 
 | 	In the partition completion, if IS_COMPLETION is non-zero and | 
 | 	*UNIQUE_STRING is not NUL, copy UNIQUE_STRING to PTR. Do not | 
 | 	append '/'. | 
 | 	(real_open_partition) [!STAGE1_5]: If DO_COMPRESSION is non-zero, | 
 | 	call print_a_completion. | 
 | 	(check_BSD_parts) [!STAGE1_5]: Likewise. | 
 | 	[!STAGE1_5] (print_a_completion): Ignore NAME if it is "." or | 
 | 	"..". | 
 |  | 
 | 1999-09-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_CHECK_USCORE_END_SYMBOL): Do not call | 
 | 	AC_DEFINE within AC_CACHE_VAL. Call it after AC_CACHE_VAL. | 
 | 	* stage2/Makefile.am (STAGE1_5_COMPILE): Do not define | 
 | 	CONFIG_FILE_ASM. | 
 | 	* stage2/asm.S (config_file) [STAGE1_5]: Set the first 4 bytes | 
 | 	to 0xffffffff and the following to "/boot/grub/stage2". | 
 | 	(config_file) [!STAGE1_5]: Set to "/boot/grub/menu.lst". | 
 | 	* stage2/builtins.c (install_func): Read a Stage 2 before | 
 | 	handling the `p' option. | 
 | 	If the `configfile' option is present and FILE is a Stage 2, | 
 | 	translate the device name to the internal device representation | 
 | 	and copy the result to STR. | 
 | 	* stage2/disk_io.c [STAGE1_5] (sane_partition): Eliminated. | 
 | 	[STAGE1_5] (incomplete): Likewise. | 
 | 	[STAGE1_5] (disk_choice): Likewise. | 
 | 	[STAGE1_5] (part_choice): Likewise. | 
 | 	(set_device) [STAGE1_5]: Assume that the first 4 bytes of DEVICE | 
 | 	is a device number. Set DRIVE to the forth byte of DEV and | 
 | 	PARTITION to the first 3 bytes of DEV. If DRIVE is 0xFF, set | 
 | 	CURRENT_DRIVE and CURRENT_PARTITION to SAVED_DRIVE and | 
 | 	SAVED_PARTITION, respectively. Otherwise set to DRIVE and | 
 | 	PARTITION, respectively. | 
 | 	(setup_part) [STAGE1_5]: Always call set_device. | 
 |  | 
 | 1999-09-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_CHECK_END_SYMBOL): Add a missing | 
 | 	double-quote. Reported by Johannes Kroeger | 
 | 	<hanne@squirrel.owl.de>. | 
 |  | 
 | 1999-09-14  Gordon Matzigkeit  <gord@fig.org> | 
 |  | 
 | 	* stage1/stage1.S (blocklist_default_start): New label for default | 
 | 	blocklist start sector. | 
 | 	(blocklist_default_len): New label for default blocklist length. | 
 | 	(blocklist_default_seg): New label for default blocklist segment. | 
 | 	* stage1/stage1_lba.S (blocklist_default_start): Likewise. | 
 | 	(blocklist_default_len): Likewise. | 
 | 	(blocklist_default_seg): Likewise. | 
 |  | 
 | 1999-09-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_ASM_ADDR32): First, create a template | 
 | 	source file "conftest.s.in", and then, replace @ADDR32@ with | 
 | 	"addr32" if GRUB_CV_ASM_PREFIX_REQUIREMENT is yes, otherwise, | 
 | 	replace it with "addr32;". Reported by John Tobey | 
 | 	<spam@john-edwin-tobey.org>. | 
 |  | 
 | 1999-09-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (debug_fs_print_func): Renamed to ... | 
 | 	(disk_read_print_func): ... this. | 
 | 	(fstest_func): Use DISK_READ_HOOK instead of DEBUG_FS. | 
 | 	(install_func): Rename debug_fs_savesect_func to | 
 | 	disk_read_savesect_func. | 
 | 	Rename debug_fs_blocklist_func to disk_read_blocklist_func. | 
 | 	Use DISK_READ_HOOK instead of DEBUG_FS. | 
 | 	(testload_func): Use DISK_READ_HOOK instead of DEBUG_FS. | 
 | 	* stage2/disk_io.c [!STAGE1_5] (debug_fs): Renamed to ... | 
 | 	[!STAGE1_5] (disk_read_hook): ... this. | 
 | 	[!STAGE1_5] (debug_fs_func): Renamed to ... | 
 | 	[!STAGE1_5] (disk_read_func): ... this. | 
 | 	(rawread) [!STAGE1_5]: Use DISK_READ_HOOK and DISK_READ_FUNC | 
 | 	instead	of DEBUG_FS and DEBUG_FS_FUNC. | 
 | 	(grub_read) [!STAGE1_5]: Likewise. | 
 | 	(devread) [!STAGE1_5]: Use DISK_READ_HOOK instead of DEBUG_FS. | 
 | 	* stage2/fsys_ext2fs.c (ext2fs_read) [!STAGE1_5]: Use | 
 | 	DISK_READ_HOOK and DISK_READ_FUNC instead of DEBUG_FS and | 
 | 	DEBUG_FS_FUNC. | 
 | 	* stage2/fsys_ffs.c (ffs_read) [!STAGE1_5]: Likewise. | 
 | 	* stage2/fsys_minix.c (minix_read) [!STAGE1_5]: Likewise. | 
 | 	* stage2/shared.h [!STAGE1_5] (debug_fs): Renamed to ... | 
 | 	[!STAGE1_5] (disk_read_hook): ... this. | 
 | 	[!STAGE1_5] (debug_fs_func): Renamed to ... | 
 | 	[!STAGE1_5] (disk_read_func): ... this. | 
 | 	* docs/grub.texi: Likewise, replace debug_fs and debug_fs_func | 
 | 	with disk_read_hook and disk_read_func, respectively. | 
 |  | 
 | 1999-09-23  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/builtins.c (install_func): New local function, | 
 | 	debug_fs_savesect_func. Use debug_fs_savesect_func to determine | 
 | 	the first sector of Stage2. Write Stage 1 after patching Stage | 
 | 	2. | 
 |  | 
 | 1999-09-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_ASM_USCORE): Do not define HAVE_ASM_USCORE | 
 | 	within AC_CACHE_VAL. Define it after AC_CACHE_VAL if | 
 | 	GRUB_CV_ASM_USCORE is yes. | 
 |  | 
 | 1999-09-20  Edmund GRIMLEY EVANS  <edmundo@rano.demon.co.uk> | 
 |  | 
 | 	* netboot/3c59x.c: INCLUDE_3c59x is replaced by INCLUDE_3C59X | 
 |  	throughout. | 
 | 	* netboot/config.c: Likewise. | 
 | 	* netboot/io.h (__INS): New macro. | 
 | 	(__OUTS): Likewise. | 
 | 	(outl): Likewise. | 
 | 	(inl): Likewise. | 
 | 	(outl_p): Likewise. | 
 | 	(inl_p): Likewise. | 
 | 	Call __INS with the argument `b', with `w' and with `l' to | 
 | 	define insb, insw and insl, respectively. Likewise, Call __OUTS | 
 | 	with `b', with `w' and with `l' to define outsb, outw and outl, | 
 | 	respectively. | 
 | 	* netboot/pci.h (PCI_VENDOR_ID_VORTEX): New macro. | 
 |  	(PCI_DEVICE_ID_VORTEX_3c595): Likewise. Defined as a random | 
 | 	value. | 
 |  | 
 | 1999-09-20  Edward Killips  <ekillips@triton.net> | 
 |  | 
 | 	* stage2/disk_io.c (set_partition_hidden_flag): Set/clear the | 
 | 	hidden flag, whether the hidden flag is set or not. | 
 |  | 
 | 1999-09-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (install_func): Do not set DEBUG_FS at the | 
 | 	first read. Set it to DEBUG_FS_BLOCKLIST_FUNC when reading the | 
 | 	whole of Stage 2. Set FILEPOS to zero at the same time to read | 
 | 	from the beginning of Stage 2. Reported by Pavel Roskin. | 
 |  | 
 | 1999-09-20  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The argument ADDR for the command install is now optional. | 
 |  | 
 | 	* stage2/builtins.c (install_func): If parsing ADDR fails, set | 
 | 	INSTALLADDR to zero and set PTR to ADDR. | 
 | 	If INSTALLADDR is zero after parsing the command-line, check if | 
 | 	the Stage 2 id is STAGE2_ID_STAGE2. If so, set INSTALLADDR to | 
 | 	0x8000, otherwise set it to 0x2000. | 
 | 	Set the install address in the Stage 1 after the automatic | 
 | 	determination is completed. | 
 | 	(builtin_install): Say that ADDR is optional in the help | 
 | 	message. | 
 | 	* docs/grub.texi: Synchronize the description about install to | 
 | 	builtins.c. Remove explicit address arguments from all the | 
 | 	examples. Add a description about help. | 
 | 	* docs/menu.lst: Do not specify the address argument for | 
 | 	install. | 
 |  | 
 | 1999-09-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The completion code is heavily modified. | 
 |  | 
 | 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): In the completion | 
 | 	code, use COMPLETION_BUFFER to get the completion instead of | 
 | 	writing to BUF directly. | 
 | 	Save the position of a possible equal character after a command | 
 | 	in EQUAL_POS and replace the equal character with a space | 
 | 	temporarily for the code simplicity. | 
 | 	At first, just get completions, and, if there is more than one | 
 | 	completions, then print the list of the completions. | 
 | 	* stage2/disk_io.c [!STAGE1_5] (do_completion): New variable. | 
 | 	[!STAGE1_5] (unique): Moved the definition near the beginning. | 
 | 	[!STAGE1_5] (unique_string): Likewise. And changed the type to | 
 | 	char *. | 
 | 	(check_BSD_parts) [!STAGE1_5]: If DO_COMPLETION is non-zero, do | 
 | 	not print anything. | 
 | 	(real_open_partition) [!STAGE1_5]: Likewise. | 
 | 	[!STAGE1_5] (print_fsys_type): Likewise. | 
 | 	[!STAGE1_5] (print_a_completion): The argument FILENAME is | 
 | 	renamed	to NAME. | 
 | 	If DO_COMPLETION is non-zero, get the unique part from NAME and | 
 | 	set UNIQUE_STRING to it. | 
 | 	If DO_COMPLETION is zero, just print NAME. | 
 | 	Do not call printf unconditionally. | 
 | 	[!STAGE1_5] (print_completions): Accept two arguements | 
 | 	IS_FILENAME and IS_COMPLETION instead of FILENAME. | 
 | 	Set UNIQUE_STRING to UNIQUE_BUF. | 
 | 	Set DO_COMPLETION to IS_COMPLETION and set it to zero before | 
 | 	returning. | 
 | 	If IS_FILENAME is zero, then complete builtin commands and | 
 | 	return UNIQUE - 1. | 
 | 	Use BUF instead of FILENAME. | 
 | 	If IS_COMPLETION is non-zero, do not print anything. | 
 | 	Copy UNIQUE_STRING to PTR only if IS_COMPLETION and | 
 | 	*UNIQUE_STRING are non-zero. | 
 | 	* stage2/shared.h (COMPLETION_BUF): New macro. | 
 | 	(COMPLETION_BUFLEN): Likewise. | 
 | 	(UNIQUE_BUF): Likewise. | 
 | 	(UNIQUE_BUFLEN): Likewise. | 
 | 	(MENU_BUF): Set to UNIQUE_BUF + UNIQUE_BUFLEN. | 
 | 	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - UNIQUE_BUF. | 
 | 	(print_completions): Adjusted to the definition. | 
 |  | 
 | 1999-09-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): Do not call | 
 | 	AC_DEFINE_UNQUOTEs within AC_CACHE_VAL. Define ADDR32 and DATA32 | 
 | 	after it. | 
 | 	(grub_CHECK_START_SYMBOL): Do not call AC_DEFINE within | 
 | 	AC_CACHE_VAL. Define HAVE_START_SYMBOL after it. | 
 | 	(grub_CHECK_USCORE_START_SYMBOL): Do not call AC_DEFINE within | 
 | 	AC_CACHE_VAL. Define HAVE_USCORE_START_SYMBOL after it. | 
 | 	(grub_CHECK_END_SYMBOL): Do not call AC_DEFINE within | 
 | 	AC_CACHE_VAL. Define HAVE_END_SYMBOL after it. | 
 | 	(grub_CHECK_USCORE_END_SYMBOL): Do not call AC_DEFINE within | 
 | 	AC_CACHE_VAL. Define HAVE_USCORE_END_SYMBOL after it. | 
 |  | 
 | 1999-09-17  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* acconfig.h (ADDR32): Removed. This entry is automatically | 
 | 	created by autoheader. | 
 | 	(DATA32): Likewise. | 
 | 	* acinclude.m4 (grub_ASM_ADD32): Use ADDR32 instead of addr32. | 
 | 	Require grub_ASM_PREFIX_REQUIREMENT. | 
 | 	(grub_ASM_PREFIX_REQUIREMENT): Define ADDR32 and DATA32. | 
 | 	* configure.in: Call grub_ASM_PREFIX_REQUIREMENT before | 
 | 	grub_ASM_ADDR32. Do not define ADDR32 and DATA32. | 
 | 	* stage1/stage1.S (after_BPB): Use ABS(firstlist) instead of | 
 | 	firstlist. | 
 | 	(MSG): Use ABS(x) instead of x. | 
 | 	(probe_loop): Use the macro MSG for fd_probe_error_string. | 
 | 	* stage1/stage1_lba.S (after_BPB): Use ABS(firstlist) instead of | 
 | 	firstlist. | 
 | 	(MSG): Use ABS(x) instead of x. | 
 | 	* stage2/asm.S (putchar): Renamed to ... | 
 | 	(grub_putchar): ... this. | 
 |  | 
 | 1999-09-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/gunzip.c (reset_linalloc): Use the macro RAW_ADDR | 
 | 	before setting LINALLOC_TOPADDR. | 
 | 	* stage2/shared.h [!GRUB_UTIL] (RAW_ADDR): Added parenthesises | 
 | 	to avoid a gcc warning. | 
 | 	[!GRUB_UTIL] (RAW_SEG): Likewise. | 
 |  | 
 | 1999-09-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_CHECK_START_SYMBOL): New function. | 
 | 	(grub_CHECK_USCORE_START_SYMBOL): Likewise. | 
 | 	(grub_CHECK_END_SYMBOL): Likewise. | 
 | 	(grub_CHECK_USCORE_SYMBOL): Likewise. | 
 | 	* configure.in: Call grub_CHECK_START_SYMBOL and | 
 | 	grub_CHECK_USCORE_START_SYMBOL, and if neither start nor _start | 
 | 	is defined, print an error message and exit. | 
 | 	Likewise, call grub_CHECK_END_SYMBOL and | 
 | 	grub_CHECK_USCORE_END_SYMBOL, and if neither end nor _end is | 
 | 	defined, print an error message and exit. | 
 | 	* acconfig.h (HAVE_START_SYMBOL): Added the "undef" entry. | 
 | 	(HAVE_USCORE_START_SYMBOL): Likewise. | 
 | 	(HAVE_END_SYMBOL): Likewise. | 
 | 	(HAVE_USCORE_END_SYMBOL): Likewise. | 
 | 	* stage2/char_io.c (memcheck): Rename the argument START to | 
 | 	ADDR. Added two missing equal characters. | 
 | 	[GRUB_UTIL]: Define new local functions start_addr and end_addr. | 
 | 	[GRUB_UTIL && HAVE_START_SYMBOL]: The function start_addr | 
 | 	returns START. | 
 | 	[GRUB_UTIL && HAVE_USCORE_START_SYMBOL]: The function start_addr | 
 | 	returns _START. | 
 | 	[GRUB_UTIL && HAVE_END_SYMBOL]: The function end_addr returns | 
 | 	END. | 
 | 	[GRUB_UTIL && HAVE_USCORE_END_SYMBOL]: The function end_addr | 
 | 	returns _END. | 
 | 	[GRUB_UTIL]: If ADDR is equal to or greater than the address | 
 | 	returned by start_addr, and ADDR plus LEN is less than the | 
 | 	address returned by end_addr, return ! ERRNUM. | 
 | 	* stage2/asm.S (get_code_end) [HAVE_END_SYMBOL]: Use $end as the | 
 | 	end of the bss. | 
 | 	[HAVE_USCORE_END_SYMBOL]: Use $_end as the end of the bss. | 
 | 	* stage2/disk_io.c [!STAGE1_5] (cur_part_desc): Made static. | 
 | 	Need not to be global any longer. | 
 |  | 
 | 1999-09-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/char_io.c [!STAGE1_5] (get_cmdline): The argument | 
 | 	COMPLETION is renamed to READLINE. | 
 | 	Do not initialize KILL here. | 
 | 	TAB, C-a, C-e, C-f, C-b, C-u, C-k, C-y, C-p and C-n are handled | 
 | 	only if READLINE is non-zero. | 
 | 	If ECHO_CHAR is not NUL, do not remove the leading spaces in BUF. | 
 | 	Add CMDLINE into the history list only if READLINE is non-zero. | 
 | 	* stage2/stage2.c (cmain): Initialize the kill buffer. | 
 |  | 
 | 1999-09-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Killing, yanking and manipulating the history are supported. | 
 |  | 
 | 	* stage2/shared.h (cur_cmdline): Removed. | 
 | 	(MAX_CMDLINE): Moved near the beginning of the file. | 
 | 	(NEW_HEAPSIZE): Likewise. | 
 | 	(CMDLINE_BUFLEN): Set to MAX_CMDLINE. | 
 | 	(KILL_BUF): New macro. | 
 | 	(KILL_BUFLEN): Likewise. | 
 | 	(HISTORY_BUF): Likewise. | 
 | 	(HISTORY_SIZE): Likewise. | 
 | 	(HISTORY_BUFLEN): Likewise. | 
 | 	(MENU_BUF): Set to HISTORY_BUF + HISTORY_BUFLEN. | 
 | 	(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - HISTORY_BUF. | 
 | 	(strcpy): New macro. | 
 | 	(grub_strcpy): Delared. | 
 | 	* stage2/boot.c (cur_cmdline): Removed. | 
 | 	* stage2/char_io.c [!STAGE1_5] (grub_strcpy): New function. | 
 | 	[!STAGE1_5] (get_history): Likewise. | 
 | 	[!STAGE1_5] (add_history): Likewise. | 
 | 	[!STAGE1_5] (get_cmdline): Use BUF instead of CMDLINE for the | 
 | 	working buffer for the command-line. | 
 | 	A new function cl_insert is used to insert a string to the | 
 | 	command-line. | 
 | 	In the case where C-u or C-k is pressed, copy the string being | 
 | 	deleted to KILL. | 
 | 	If C-y is pressed, insert KILL to the command-line. | 
 | 	If C-p is pressed, fetch the previous command from the history | 
 | 	list HISTORY, and if C-n is pressed, fetch the next command from | 
 | 	it. | 
 | 	If LPOS is less than LLEN, add CMDLINE into the history list. | 
 | 	If C is equal to KEY_UP, set C to 16, and if C is equal to | 
 | 	KEY_DOWN, set C to 14. | 
 | 	[!STAGE1_5] (num_history): New variable. | 
 |  | 
 | 1999-09-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/size_test: Do not check for the size of Stage 2. | 
 | 	* stage1/Makefile.am (stage2_size.h): Use `set' and `echo' | 
 | 	instead of awk, since we cannot expect awk is present. Remove | 
 | 	stage2_size.h before creating it. | 
 |  | 
 | 1999-09-15  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* Makefile.am (SUBDIRS): Put stage1 after stage2 so that stage2 | 
 | 	is built before stage1. | 
 | 	* stage1/Makefile.am (BUILT_SOURCES): New varilable. | 
 | 	(CLEANFILES): Added BUILT_SOURCES. | 
 | 	(stage1_exec_SOURCES): Added stage2_size.h. | 
 | 	(stage1_lba_exec_SOURCES): Likewise. | 
 | 	(stage2_size.h): New rule. | 
 | 	* stage1/stage1.S: Include <stage2_size.h> and use STAGE2_SIZE | 
 | 	to determine how much number of sectors to be read when loading | 
 | 	Stage 2. | 
 | 	* stage1/stage1_lba.S: Likewise. | 
 |  | 
 | 1999-09-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* netboot/config.h: Moved to ... | 
 | 	* netboot/netboot_config.h: ... here. | 
 | 	* netboot/config.c: Include netboot_config.h instead of config.h. | 
 | 	* netboot/fsys_tftp.c: Likewise. | 
 | 	* netboot/ip.c: Likewise. | 
 | 	* netboot/Makefile.am (libdrivers_a_SOURCES): Removed config.h | 
 | 	and added netboot_config.h. | 
 |  | 
 | 1999-09-14  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* grub/asmstub.c [__linux__]: On GLibc 2.0 and newer use lseek, | 
 | 	don't include <linux/fs.h> and define BLKFLSBUF if needed. | 
 |  | 
 | 1999-09-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Now the grub shell works fine on FreeBSD. A patch by Pavel | 
 | 	Roskin is modified and applied. | 
 |  | 
 | 	* grub/asmstub.c (get_drive_geometry): New function. | 
 | 	(get_diskinfo): Use get_drive_geometry to set the geometry of | 
 | 	DRIVE. | 
 |  | 
 | 1999-09-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* configure.in (--enable-ne): Made the description more clear. | 
 | 	(--enable-nepci): Likewise. | 
 | 	(--enable-wd): Likewise. | 
 | 	(--enable-t503): Likewise. | 
 | 	(--enable-t509): Likewise. | 
 | 	(--enable-3c59x): Likewise. | 
 | 	(--enable-lance): Likewise. | 
 | 	(--enable-cs): Likewise. | 
 | 	(--enable-eepro100): Likewise. | 
 | 	(--enable-wd-default_mem): Renamed to ... | 
 | 	(--enable-wd-default-mem): ... this. | 
 | 	(--enable-cs-scan): Corrected the description. | 
 | 	(NETBOOT_SUPPORT): Defined if NET_CFLAGS is not empty. | 
 | 	* stage2/Makefile.am (stage2_exec_LDADD): Defined only if | 
 | 	NETBOOT_SUPPORT is true. | 
 | 	* netboot/Makefile.am (LIBDRIVERS): New variable. If | 
 | 	NETBOOT_SUPPORT is true, set to libdriver.a, otherwise set to an | 
 | 	empty string. | 
 | 	(noinst_LIBRARIES): Set to LIBDRIVERS. | 
 | 	(DRIVERS): Added 3c509.h, cs89x0.h and ns8390.h. | 
 | 	(libdrivers_a_SOURCES): Added byteorder.h, config.h, if.h, io.h, | 
 | 	ip.h, netboot.h, netdevice.h, nic.h and pic.h. | 
 | 	(libdrivers_a_CFLAGS): Added -fno-builtin and -nostdinc and | 
 | 	removed -O2. | 
 | 	* stage2/char_io.c (grub_sprintf): Added parenthesises to avoid | 
 | 	gcc warnings. | 
 | 	* stage2/gunzip.c (gunzip_test_header): Check if FSYS_TYPE is | 
 | 	TFTP. If so, set IS_TFTP to non-zero, otherwise to zero. And, | 
 | 	use IS_TFTP to check if we have GZIP_CRC instead of the equation | 
 | 	"FILEMAX == 16 * 1024 * 1024". | 
 |  | 
 | 1999-09-13  Edmund GRIMLEY EVANS  <edmundo@rano.demon.co.uk> | 
 |  | 
 | 	The netboot support in the Dresden version of GRUB is integrated. | 
 |  | 
 | 	* Makefile.am (SUBDIRS): Added netboot. | 
 | 	* configure.in (--enable-tftp): New option. | 
 | 	(--enable-ne): Likewise. | 
 | 	(--enable-nepci): Likewise. | 
 | 	(--enable-wd): Likewise. | 
 | 	(--enable-t503): Likewise. | 
 | 	(--enable-t509): Likewise. | 
 | 	(--enable-3c59x): Likewise. | 
 | 	(--enable-lance): Likewise. | 
 | 	(--enable-cs): Likewise. | 
 | 	(--enable-eepro100): Likewise. | 
 | 	(--enable-ne-scan): Likewise. | 
 | 	(--enable-wd-default_mem): Likewise. | 
 | 	(--enable-cs-scan): Likewise. | 
 | 	(NET_CFLAGS): New variable. | 
 | 	(NET_EXTRAFLAGS): Likewise. | 
 | 	Do AC_OUTPUT for netboot/Makefile as well. | 
 | 	* stage1/stage1.S: Set the number of sectors for Stage 2 to 130. | 
 | 	* stage1/stage1_lba.S: Likewise. | 
 | 	* stage2/Makefile.am (stage2_exec_LDADD): Added | 
 | 	../netboot/libdrivers.a. | 
 | 	* stage2/asm.S [!STAGE1_5] (currticks): New function. | 
 | 	* stage2/char_io.c [!STAGE1_5] (grub_sprintf): Likewise. | 
 | 	[!STAGE1_5] (grub_memcmp): Likewise. | 
 | 	* stage2/disk_io.c (fsys_table) [FSYS_TFTP]: Added an entry for | 
 | 	tftp. | 
 | 	(sane_partition) [!STAGE1_5]: If CURRENT_DRIVE is a network | 
 | 	drive, return 1. | 
 | 	(real_open_partition) [!STAGE1_5]: Likewise. | 
 | 	(set_device): If DEVICE contains a network drive, set | 
 | 	CURRENT_DRIVE to 0x20. | 
 | 	* stage2/filesys.h [FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 1. | 
 | 	[!FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 0. | 
 | 	(NUM_FSYS): Added FSYS_TFTP_NUM. | 
 | 	* stage2/gunzip.c (gunzip_test_header): If FILEMAX >= 16MB, do | 
 | 	not try to examine the last 8 bytes of the file. This is | 
 | 	required for compressed files by TFTP. | 
 | 	* stage2/shared.h (sprintf): New macro. | 
 | 	(memcmp): Likewise. | 
 | 	(currticks): Declared. | 
 | 	(grub_sprintf): Likewise. | 
 | 	(grub_memcmp): Likewise. | 
 | 	* stage2/size_test: Set the maximum size of Stage 2 to 66560. | 
 | 	* netboot/3c509.c: New file. | 
 | 	* netboot/3c509.h: Likewise. | 
 | 	* netboot/3c59x.c: Likewise. | 
 | 	* netboot/Makefile.am: Likewise. | 
 | 	* netboot/Makefile.in: Likewise. | 
 | 	* netboot/byteorder.h: Likewise. | 
 | 	* netboot/compile: Likewise. | 
 | 	* netboot/config.c: Likewise. | 
 | 	* netboot/config.h: Likewise. | 
 | 	* netboot/cs89x0.c: Likewise. | 
 | 	* netboot/cs89x0.h: Likewise. | 
 | 	* netboot/eepro100.c: Likewise. | 
 | 	* netboot/fsys_tftp.c: Likewise. | 
 | 	* netboot/if.h: Likewise. | 
 | 	* netboot/io.h: Likewise. | 
 | 	* netboot/ip.c: Likewise. | 
 | 	* netboot/ip.h: Likewise. | 
 | 	* netboot/lance.c: Likewise. | 
 | 	* netboot/netboot.h: Likewise. | 
 | 	* netboot/netdevice.h: Likewise. | 
 | 	* netboot/nic.h: Likewise. | 
 | 	* netboot/ns8390.c: Likewise. | 
 | 	* netboot/ns8390.h: Likewise. | 
 | 	* netboot/pci.c: Likewise. | 
 | 	* netboot/pci.h: Likewise. | 
 |  | 
 | 1999-09-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* configure.in (--enable-maintainer-mode): Do not use our own | 
 | 	rule, but use AM_MAINTAINER_MODE instead. If the maintainer mode | 
 | 	is enabled, then check for perl, and if it is not found, print | 
 | 	an error message and abort. | 
 | 	* docs/Makefile.am (grub.8): Regenerated if MAINTAINER_MODE is | 
 | 	defined, instead of GRUB_MAINT. Use the variable PERL rather | 
 | 	than running help2man directly. | 
 |  | 
 | 1999-09-13  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/pc_slice.h (IS_PC_SLICE_TYPE_EXTENDED): New macro. | 
 | 	* stage2/disk_io.c (real_open_partition): Use | 
 | 	IS_PC_SLICE_TYPE_EXTENDED instead of comparing CURRENT_SLICE | 
 | 	with the extended partition types. | 
 |  | 
 | 1999-09-11  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* acconfig.h: New file for autoheader support. | 
 | 	* acinclude.m4 (grub_ASM_EXT_C) Renamed to ... | 
 | 	(grub_ASM_USCORE): ... this. Define HAVE_ASM_USCORE if a C | 
 | 	symbol gets an underscore after compiling to assembler. | 
 | 	* configure.in: Added AM_CONFIG_HEADER. Autoconf 2.13 is now | 
 | 	required. Test for wgetch(), not getch() in -l[n]curses. | 
 | 	* stage2/shared.h (EXT_C): Defined. | 
 | 	Include the best existing header for [n]curses. | 
 |  | 
 | 1999-09-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/boot.c (load_image): Use CURRENT_DRIVE and | 
 | 	CURRENT_PARTITION instead of SAVED_DRIVE and SAVED_PARTITION for | 
 | 	the boot device in the Multiboot information. Reported by | 
 | 	Stephen Early <steve@greenend.org.uk>. | 
 |  | 
 | 1999-09-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/disk_io.c (sane_partition) [STAGE1_5]: Defined. | 
 | 	(set_device): Use sane_partition to make sure that CURRENT_DRIVE | 
 | 	has a valid value. Reported by Pavel Roskin. | 
 |  | 
 | 1999-09-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* stage2/builtins.c (device_func) [GRUB_UTIL]: Use check_device | 
 | 	in order to make sure that DEVICE exists. | 
 | 	* grub/asmstub.c (check_device): New function. | 
 | 	(grub_stage2): Use check_device to probe a device. | 
 |  | 
 | 	* stage2/builtins.c (geometry_func) [GRUB_UTIL]: Copy the | 
 | 	modified geometry to GEOM and reset BUF_DRIVE. Reported by Pavel | 
 | 	Roskin. | 
 |  | 
 | 	* grub/main.c (no_floppy): New variable. | 
 | 	(probe_second_floppy): Likewise. | 
 | 	(OPT_NO_FLOPPY): New macro. | 
 | 	(OPT_PROBE_SECOND_FLOPPY): Likewise. | 
 | 	(longopts): Added no-floppy and probe-second-floppy. | 
 | 	(usage): Added the descriptions about --no-floppy and | 
 | 	--probe-second-floppy. | 
 | 	(main): Handle OPT_PROBE_SECOND_FLOPPY and OPT_NO_FLOPPY. | 
 | 	* grub/asmstub.c (grub_stage2): Print a message before the probe | 
 | 	routine. If NO_FLOPPY is non-zero, do not probe any floppy drive. | 
 | 	If PROBE_SECOND_FLOPPY is zero, skip the probe of the second | 
 | 	floppy drive. | 
 | 	(get_floppy_disk_name): New function. | 
 | 	(get_ide_disk_name): Likewise. | 
 | 	(get_scsi_disk_name): Likewise. | 
 |  | 
 | 1999-09-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (device_func): New function. | 
 | 	(builtin_device): New variable. | 
 | 	(builtin_table): Added the pointer to BUILTIN_DEVICE. | 
 | 	(builtin_geometry) [GRUB_UTIL]: Accept extra arguments, | 
 | 	CYLINDER, HEAD, SECTOR and TOTAL_SECTOR, and, if they are found, | 
 | 	set the geometry of a drive specified to them. | 
 | 	* grub/asmstub.c (disks): Made global. | 
 | 	(assign_device_name): New function. | 
 |  | 
 | 1999-09-09  Gordon Matzigkeit  <gord@fig.org> | 
 |  | 
 | 	* docs/grub.texi (Commands): Synchronize descriptions with | 
 | 	builtins.c. | 
 |  | 
 | 	* stage2/builtins.c (hide_func): Use set_partition_hidden_flag. | 
 | 	(unhide_func): Likewise. | 
 | 	Many help message cleanups.  From Pavel Roskin. | 
 |  | 
 | 	* stage2/shared.h (set_partition_hidden_flag): Declare. | 
 |  | 
 | 	* stage2/disk_io.c (set_partition_hidden_flag): New function | 
 | 	merged from hide_partition and unhide_partition.  Make sure we OR | 
 | 	with the inverse of the flag bit rather than XORing to unhide the | 
 | 	partition. | 
 |  | 
 | 1999-09-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (_FILE_OFFSET_BITS): Defined. | 
 | 	(biosdisk) [!__linux__]: Pass the offset argument as off_t | 
 | 	instead of int to lseek, and compare the return value with | 
 | 	OFFSET. Reported by Pavel Roskin. | 
 | 	(grub_stage2) [!__linux__ && !__GNU__]: Print a warning message. | 
 |  | 
 | 1999-09-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/stage2.c (run_menu): If run_script is successfully | 
 | 	finished, break the loop. Reported by Pavel Roskin. | 
 | 	Do not wait an input character when FALLBACK_ENTRY is less than | 
 | 	zero. | 
 | 	* stage2/cmdline.c (run_script): If ERRNUM is non-zero, wait an | 
 | 	input character, whether FALLBACK is less than zero or not. | 
 |  | 
 | 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (configfile_func): New function. | 
 | 	(builtin_configfile): New variable. | 
 | 	(builtin_table): Added the pointer to BUILTIN_CONFIGFILE. | 
 |  | 
 | 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* stage2/asm.S [!STAGE1_5] (chain_stage2): Deleted. | 
 | 	[STAGE1_5] (get_code_end): Likewise. | 
 | 	* stage2/char_io.c (grub_strncat): Likewise. | 
 | 	* stage2/common.c [STAGE1_5] (saved_mem_upper): Likewise. | 
 | 	* stage2/smp-imps.c (imps_release_cpus): Likewise. | 
 | 	(imps_any_new_apics): Made static. | 
 | 	(imps_enabled): Likewise. | 
 | 	(imps_num_cpus): Likewise. | 
 | 	(imps_lapic_addr): Likewise. | 
 | 	(imps_cpu_apic_map): Likewise. | 
 | 	(imps_apic_cpu_map): Likewise. | 
 |  | 
 | 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/builtins.c (testload_func): Fix the typos: 0x2000000 -> | 
 | 	0x200000 and 0x3000000 -> 0x300000. | 
 |  | 
 | 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Hisazumi Kenji <nel@soraneko.com>: | 
 | 	* stage2/fsys_ffs.c (mapblock_offset): New variable. | 
 | 	(mapblock_bsize): Likewise. | 
 | 	(MAPBUF): New macro. | 
 | 	(MAPBUF_LEN): Likewise. | 
 | 	(ffs_mount): Set MAPBLOCK_OFFSET to -1. | 
 | 	(block_map): Added partial read support. | 
 |  | 
 | 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/cmdline.c (find_command): If COMMAND is less than | 
 | 	(*BUILTIN)->NAME in dictionary order, break the loop. | 
 | 	* stage2/builtins.c (builtin_chainloader): Capitalize the | 
 | 	variable name in the short doc. | 
 | 	(builtin_color): Likewise. | 
 | 	(builtin_geometry): Likewise. | 
 | 	(builtin_help): Likewise. | 
 | 	(builtin_hide): Likewise. | 
 | 	(builtin_initrd): Likewise. | 
 | 	(builtin_install): Likewise. | 
 | 	(builtin_kernel): Likewise. | 
 | 	(builtin_module): Likewise. | 
 | 	(builtin_modulenounzip): Likewise. | 
 | 	(builtin_pause): Likewise. | 
 | 	(builtin_read): Likewise. | 
 | 	(builtin_root): Likewise. | 
 | 	(builtin_testload): Likewise. | 
 | 	(builtin_unhide): Likewise. | 
 | 	(builtin_uppermem): Likewise. | 
 |  | 
 | 1999-09-05  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The internal of the command handling is heavily modified, and | 
 | 	a new command "help" is added. | 
 |  | 
 | 	* stage1/stage1.S: Set the number of sectors for Stage 2 to 110. | 
 | 	* stage1/stage1_lba.S: Likewise. | 
 | 	* stage2/builtins.c: New file. | 
 | 	* stage2/Makefile.am (libgrub_a_SOURCES): Added builtins.c. | 
 | 	(stage2_exec_SOURCES): Likewise. | 
 | 	* stage2/boot.c (load_image): Return kernel_t instead int. | 
 | 	(bsd_boot): Change the type of the first argument to kernel_t. | 
 | 	* stage2/char_io.c (get_cmdline): Do not accept the argument | 
 | 	COMMANDS and accept the argument COMPLETION. | 
 | 	Print completions only if COMPLETION is non-zero. | 
 | 	Print the list of short docs when the command is completed. | 
 | 	* stage2/cmdline.c [GRUB_UTIL]: Do not include apic.h and | 
 | 	smp-imps.h. | 
 | 	(fallback): Deleted. | 
 | 	(password): Likewise. | 
 | 	(debug): Likewise. | 
 | 	(normal_color): Likewise. | 
 | 	(highlight_color): Likewise. | 
 | 	(print_cmdline_message): New function. | 
 | 	(commands): Deleted. | 
 | 	(debug_fs_print_func): Likewise. | 
 | 	(installaddr): Likewise. | 
 | 	(installlist): Likewise. | 
 | 	(installsect): Likewise. | 
 | 	(debug_fs_blocklist_func): Likewise. | 
 | 	(find_command): New function. | 
 | 	(init_cmdline): Initialize the data for the command-line | 
 | 	interface. The function to print the message is moved to | 
 | 	print_cmdline_message. | 
 | 	(enter_cmdline): Rewritten from scratch. Now deal with only the | 
 | 	pure command-line and the function to deal with a menu entry is | 
 | 	moved to run_script. | 
 | 	(run_script): New function. | 
 | 	* stage2/shared.h (PASSWORD_BUF): New macro. | 
 | 	(PASSWORD_BUFLEN): Likewise. | 
 | 	(CMDLINE_BUF): Likewise. | 
 | 	(CMDLINE_BUFLEN): Likewise. | 
 | 	(MENU_BUF): Likewise. | 
 | 	(MENU_BUFLEN): Likewise. | 
 | 	(fallback): Deleted. | 
 | 	(fallback_entry): Declared. | 
 | 	(default_entry): Likewise. | 
 | 	(BUILTIN_CMDLINE): New macro. | 
 | 	(BUILTIN_MENU): Likewise. | 
 | 	(BUILTIN_TITLE): Likewise. | 
 | 	(struct builtin): New tag. | 
 | 	(builtin_table): Declared. | 
 | 	(cmdline_t): Deleted. | 
 | 	(kernel_t): New type. | 
 | 	(kernel_type): Declared. | 
 | 	(grub_timeout): Likewise. | 
 | 	(init_builtins): Likewise. | 
 | 	(init_config): Likewise. | 
 | 	(find_command): Likewise. | 
 | 	(print_cmdline_message): Likewise. | 
 | 	(run_script): Likewise. | 
 | 	[!STAGE1_5] (bsd_boot): Deleted. | 
 | 	[!STAGE1_5] (load_image): Likewise. | 
 | 	[!STAGE1_5] (load_module): Likewise. | 
 | 	[!STAGE1_5] (load_initrd): Likewise. | 
 | 	* stage2/size_test: Set the maximum size of Stage 2 to 56320. | 
 | 	* stage2/stage2.c (grub_timeout): Deleted. | 
 | 	(menu_t): Likewise. | 
 | 	(run_menu): Changed the return type to void. | 
 | 	Use FALLBACK_ENTRY instead of FALLBACK. | 
 | 	Do not check the return value of enter_cmdline. | 
 | 	(run_menu) [GRUB_UTIL]: Call stop instead of returning | 
 | 	MENU_ABORT. | 
 | 	(cmain): Set MENU_ENTRIES to MENU_BUF. | 
 | 	Call init_config instead of clearing the variables directly. | 
 | 	Use CMDLINE_BUF for the command-line buffer instead of the | 
 | 	stack. | 
 | 	Adapted the analysis routine for the configuration file to the | 
 | 	new builtin commands interface. | 
 | 	Run enter_cmdline forever. | 
 | 	If run_menu returns, restart the loop. | 
 |  | 
 | 1999-09-04  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* docs/menu.lst: More meaningful examples. Not using (0x80,0) | 
 | 	notation anymore. | 
 | 	* stage2/stage2.c (run_menu): Erase the entered password before | 
 | 	get_cmdline(). Help on TAB disabled when entering the password. | 
 | 	* stage2/char_io.c (get_cmdline): Restore command-line even if | 
 | 	there is no help string. | 
 | 	* configure.in: --disable-gunzip disables decompression in | 
 | 	stage2. | 
 | 	* stage2/gunzip.c [NO_DECOMPRESSION]: Disable all code if | 
 | 	decompression is disabled. | 
 |  | 
 | 1999-09-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/boot.c (load_image): Use PHDR->P_PADDR instead of | 
 | 	PHDR->P_VADDR. Reported by Ramon van Handel <vhandel@chem.vu.nl>. | 
 |  | 
 | 1999-09-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/help2man: Upgraded to 1.013. | 
 | 	* docs/grub.8: Regenerated. | 
 |  | 
 | 1999-09-02  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: Add a space in | 
 | 	the LBA warning	message. | 
 |  | 
 | 1999-09-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The character `=' after a command is now optional. | 
 |  | 
 | 	* stage2/char_io.c (get_cmdline): Search for a space or a equal | 
 | 	character after the first word in CMDLINE when TAB lists | 
 | 	completions, instead of just searching for a eqaul character. | 
 | 	* stage2/cmdline.c (skip_to): Treat the character `=' as a space | 
 | 	if AFTER_EQUAL is non-zero. | 
 | 	(commands): Delete all the equal characters. | 
 | 	* docs/menu.lst: Likewise. | 
 | 	* docs/grub.texi: Likewise. | 
 |  | 
 | 1999-09-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (env_for_exit): New variable. | 
 | 	(grub_stage2): Do a setjmp in doit, and when it returns | 
 | 	non-zero, set STATUS to 1 if ERRNUM is non-zero. | 
 | 	(stop): Call longjmp instead of exit. | 
 |  | 
 | 1999-08-31  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/boot.c [GRUB_UTIL] (bsd_boot_entry): New function. | 
 | 	(bsd_boot) [GRUB_UTIL]: Set ENTRY_ADDR to BSD_BOOT_ENTRY to fake | 
 | 	the *BSD boot. | 
 |  | 
 | 1999-08-31  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/fsys_fat.c (fat_create_blocklist): Cast FAT_BUF to | 
 | 	unsigned short * instead of unsigned long *. Suggested by Pavel | 
 | 	Roskin. | 
 |  | 
 | 1999-08-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Edward Killips <ekillips@triton.net>: | 
 | 	* stage2/cmdline.c (commands): Added hide and unhide. | 
 | 	(enter_cmdline): Likewise. | 
 | 	* stage2/disk_io.c (unhide_partition): New function. | 
 | 	(hide_partition): Likewise. | 
 | 	* stage2/pc_slice.h (PC_SLICE_TYPE_HIDDEN_FLAG): New macro. | 
 |  | 
 | 1999-08-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin <pavel_roskin@geocities.com>: | 
 | 	* stage2/fsys_minix.c (namelen): New variable. | 
 | 	(MINIX_NAME_LEN): Deleted. | 
 | 	(minix_mount): Set NAMELEN to 14 if SUPRTBLOCK->S_MAGIC is | 
 | 	MINIX_SUPER_MAGIC, and set NAMELEN to 30 if it is | 
 | 	MINIX_SUPER_MAGIC2. | 
 | 	(minix_dir): Use NAMELEN instead of MINIX_NAME_LEN. | 
 |  | 
 | 1999-08-29  Pavel Roskin  <pavel_roslin@geocities.com> | 
 |  | 
 | 	* grub/Makefile.am, stage1/Makefile.am, stage2/Makefile.am: | 
 | 	Avoid using variables inclosed in '@' because they cannot be | 
 | 	overridden at the make time. | 
 |  | 
 | 1999-08-29  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/fsys_fat.c (fat_create_blocklist): Return 1 for the | 
 | 	root directory on FAT12 and FAT16. | 
 |  | 
 | 1999-08-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/boot.c (load_image): Accept two arguments, KERNEL and | 
 | 	ARG. And use them instead of CUR_CMDLINE. | 
 | 	(load_module): Accept two arguments, MODULE and ARG. And use | 
 | 	them instead of CUR_CMDLINE. | 
 | 	(load_initrd): Accept one argument, INITRD. And use it instead | 
 | 	of CUR_CMDLINE. | 
 | 	(bsd_boot): Accept one additional argument, ARG. And use it | 
 | 	instead of CUR_CMDLINE. | 
 | 	* stage2/cmdline.c (enter_cmdline): Use MB_CMDLINE instead of | 
 | 	HEAP for the Multiboot command-line buffer. | 
 | 	* stage2/shared.h (MB_CMDLINE_BUF): New macro. | 
 | 	(MB_CMDLINE_BUFLEN): Likewise. | 
 |  | 
 | 1999-08-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am [GRUB_MAINT] (grub.8): The argument for the | 
 | 	option --name is changed to "the grub shell". | 
 | 	* docs/grub.8: Regenerated. | 
 | 	* docs/grub.texi: Do not use the name "the Stage 2 emulator" any | 
 | 	more. Use the name "the grub shell" instead. | 
 |  | 
 | 1999-08-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Klaus Reichl <klaus.reichl@alcatel.at>: | 
 | 	* stage2/fsys_minix.c: New file. | 
 | 	* stage2/size_test: Added a check for the size of minix_stage1_5. | 
 | 	* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_minix.c. | 
 | 	(libgrub_a_CFLAGS): Added -DFSYS_MINIX=1. | 
 | 	(nodist_pkgdata_DATA): Added minix_stage1_5. | 
 | 	(noinst_PROGRAMS): Added minix_stage1_5.exec. | 
 | 	(stage2_exec_SOURCES): Added fsys_minix.c. | 
 | 	(minix_stage1_5_exec_SOURCES): New variable. | 
 | 	(minix_stage1_5_exec_CFLAGS): Likewise. | 
 | 	(minix_stage1_5_exec_LDFLAGS): Likewise. | 
 | 	* stage2/pc_slice.h (PC_SLICE_TYPE_MINIX): New macro. | 
 | 	* stage2/disk_io.c (fsys_table) [FSYS_MINIX]: Added minix entry. | 
 | 	* stage2/filesys.h [FSYS_MINIX] (FSYS_MINIX_NUM): Set to 1. | 
 | 	[!FSYS_MINIX] (FSYS_MINIX_NUM): Set to 0. | 
 | 	[!NUM_FSYS] (NUM_FSYS): Added FSYS_MINIX_NUM. | 
 | 	* stage2/shared.h (STAGE2_ID_MINIX_STAGE1_5): New macro. | 
 | 	[STAGE1_5 && FSYS_MINIX] (STAGE2_ID): Set to | 
 | 	STAGE2_ID_MINIX_STAGE1_5. | 
 | 	* grub/Makefile.am (AM_CFLAGS): Added -DFSYS_MINIX=1. | 
 | 	* configure.in (--disable-minix): New option. | 
 |  | 
 | 1999-08-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Jochen Hoenicke <jochen@gnu.org>: | 
 | 	* stage2/fat.h (FAT_BPB_FAT_SECTORS_16): New macro. | 
 | 	(FAT_BPB_FAT_SECTORS_32): Likewise. | 
 | 	(FAT_BPB_IS_FAT32): Likewise. | 
 | 	(FAT_BPB_ROOT_DIR_CLUSTER): Likewise. | 
 | 	(FAT_BPB_FAT_SECTORS): If FAT_BPB_FAT_SECTORS_16 returns | 
 | 	a non-zero value, return it. Otherwise return | 
 | 	FAT_BPB_FAT_SECTORS_32. | 
 | 	(FAT_DIRENTRY_FIRST_CLUSTER): Corrected. | 
 | 	* stage2/fsys_fat.c (root_dir): New variable. | 
 | 	(fat_mount): Use the macro IS_PC_SLICE_TYPE_FAT instead of | 
 | 	checking for each fs types directly. | 
 | 	Omit the >64 sectors check. | 
 | 	If the current fs type is FAT32, then set FAT_SIZE to 8 and | 
 | 	get the root from BPB. | 
 | 	(fat_create_blocklist): Use the macro SECTOR_SIZE instead of a | 
 | 	magic number. | 
 | 	(fat_dir): Set MAP to ROOT_DIR instead of -1. | 
 | 	* stage2/pc_slice.h (PC_SLICE_TYPE_FAT32): New macro. | 
 | 	(PC_SLICE_TYPE_FAT32_LBA): Likewise. | 
 | 	(PC_SLICE_TYPE_FAT16_LBA): Likewise. | 
 | 	(IS_PC_SLICE_TYPE_FAT): Likewise. | 
 |  | 
 | 1999-08-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/fsys_ffs.c (ffs_mount): Do not shift the fs type | 
 | 	FS_BSDFFS. Reported by Takehiro Suzuki | 
 | 	<takehiro@coral.ocn.ne.jp>. | 
 | 	* stage2/fsys_fat.c (fat_mount): Do not shift the fs type | 
 | 	FS_MSDOS. | 
 |  | 
 | 1999-08-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Pavel Roskin's patch that adds new options to disable arbitrary | 
 | 	filesystems is heavily modified and applied. | 
 |  | 
 | 	* configure.in (--disable-ext2fs): New option. | 
 | 	(--disable-fat): Likewise. | 
 | 	(--disable-ffs): Likewise. | 
 | 	(FSYS_CFLAGS): New variable. Set to filesystems the user choose. | 
 | 	* grub/Makefile.am (AM_CFLAGS): Added -DFSYS_EXT2FS=1, | 
 | 	-DFSYS_FAT=1 and -DFSYS_FFS=1. | 
 | 	* stage2/Makefile.am (libgrub_a_CFLAGS): Likewise. | 
 | 	(stage2_exec_CFLAGS): Added @FSYS_CFLAGS@. | 
 | 	* stage2/filesys.h | 
 | 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FFS): Deleted. | 
 | 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FAT): Likewise. | 
 | 	[!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_EXT2FS): Likewise. | 
 | 	* stage2/fsys_ext2fs.c [!FSYS_EXT2FS]: Do not define anything. | 
 | 	* stage2/fsys_fat.c [!FSYS_FAT]: Likewise. | 
 | 	* stage2/fsys_ffs.c [!FSYS_FFS]: Likewise. | 
 |  | 
 | 1999-08-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage1/stage1_lba.S: Use STAGE1_DRP_ADDR for the address of | 
 | 	drive parameters instead of DRIVE_PARAMETER. | 
 | 	(drive_parameter): Deleted. | 
 | 	* stage1/stage1.h (STAGE1_DRP_ADDR): New macro. | 
 | 	(STAGE1_DRP_SIZE): Likewise. | 
 |  | 
 | 1999-08-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/bios.c (get_diskinfo): In LBA mode, set TOTAL_SECTORS | 
 | 	to the low 32bits of DRP.TOTAL_SECTORS instead of the multiple | 
 | 	of CHS. | 
 | 	* stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: In the command | 
 | 	"geometry", print the device file name instead of CHS/LBA | 
 | 	information. | 
 | 	* stage2/shared.h (device_map): Declared. | 
 | 	* grub/asmstub.c (device_map): Defined as a global variable | 
 | 	instead of a local variable. | 
 |  | 
 | 1999-08-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Support the NetBSD and OpenBSD partition slices. | 
 |  | 
 | 	* stage2/pc_slice.h (PC_SLICE_TYPE_BSD): Deleted. | 
 | 	(PC_SLICE_TYPE_FREEBSD): New macro. | 
 | 	(PC_SLICE_TYPE_OPENBSD): Likewise. | 
 | 	(PC_SLICE_TYPE_NETBSD): Likewise. | 
 | 	(IS_PC_SLICE_TYPE_BSD_WITH_FS): Likewise. | 
 | 	(IS_PC_SLICE_TYPE_BSD): Likewise. | 
 | 	* stage2/fsys_ffs.c (ffs_mount): Use the macro | 
 | 	IS_PC_SLICE_TYPE_BSD_WITH_FS instead of checking if | 
 | 	CURRECT_SLICE is equal to the BSD partition type directly. | 
 | 	* stage2/fsys_ext2fs.c (ext2fs_mount): Likewise. | 
 | 	* stage2/fsys_fat.c (fat_mount): Likewise. | 
 | 	* stage2/disk_io.c (check_BSD_parts): Set the low bits of | 
 | 	CURRENT_SLICE to PC_SLICE_TYPE_FREEBSD instead of | 
 | 	PC_SLICE_TYPE_BSD. | 
 | 	(real_open_partition): Use the macro IS_PC_SLICE_TYPE_BSD instead | 
 | 	of checking if CURRENT_SLICE is	equal to the BSD partition type | 
 | 	directly. | 
 |  | 
 | 1999-08-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/cmdline.c (commands): Added geometry. | 
 | 	(enter_cmdline): If CUR_HEAP has the string "geometry", print | 
 | 	out the information about a drive that the argument represents. | 
 |  | 
 | 1999-08-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/stage2.c (run_menu): Terminate the string PASSWORD | 
 | 	before checking if ENTERED is identical to PASSWORD. Reported | 
 | 	by Mark Lundeberg <aa026@pgfn.bc.ca>. | 
 |  | 
 | 1999-08-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/stage2.c (set_line_normal): New function. | 
 | 	(set_line_highlight): Likewise. | 
 | 	(run_menu): Do not call the function set_line directly any | 
 | 	longer, call set_line_normal and set_line_highlight instead. | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* stage2/stage2.c (run_menu) [GRUB_UTIL]: Quit when pushing the | 
 | 	key `q'. | 
 |  | 
 | 1999-08-05  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): New function. | 
 | 	* configure.in: Call grub_ASM_PREFIX_REQUIREMENT, and define | 
 | 	ADDR32 and DATA32 based on the result. | 
 | 	* stage2/asm.S: Replace addr32 and data32 prefixes with	ADDR32 | 
 | 	and DATA32 respectively. | 
 |  | 
 | 1999-08-05  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/boot.c (load_image): Use RAW_ADDR macro when loading | 
 | 	an a.out kernel. | 
 |  | 
 | 1999-08-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/asm.S: Make each of the addr32 and data32 prefixes | 
 | 	appear in the same line as it modifies, as the gas manual in | 
 | 	binutils-2.9.5.0.4 says "it must be in the same line". | 
 |  | 
 | 1999-08-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* boot.c (load_image): Fix a strcmp test. Reported by Pavel | 
 | 	Roskin <pavel_roskin@geocities.com>. | 
 |  | 
 | 1999-08-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From "Dan J. Walters" <djw@cs.utexas.edu>: | 
 | 	* stage2/i386-elf.h (EI_BRAND): New macro. | 
 | 	* stage2/boot.c (load_image): If the kernel is ELF, check if it | 
 | 	is a FreeBSD kernel as well as a Multiboot kernel, and if it is | 
 | 	a FreeBSD kernel, then mask ENTRY_ADDR since FreeBSD requires | 
 | 	that. Likewise, mask MEMADDR. | 
 | 	(bsd_boot): Set the bi_symtab and the bi_esymtab members of BI | 
 | 	only if MBI.FLAGS has the flag MB_INFO_AOUT_SYMS. Otherwise, | 
 | 	clear them. | 
 |  | 
 | 1999-07-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin <pavel_roskin@geocities.com>: | 
 | 	* grub/getopt.c: New file. Copied from texinfo-3.12n. | 
 | 	* grub/getopt1.c: Likewise. | 
 | 	* grub/getopt.h: Likewise. | 
 | 	* grub/Makefile.am (grub_SOURCES): Added getopt.c, getopt1.c and | 
 | 	getopt.h. | 
 | 	* configure.in: Check for string.h and strings.h. | 
 | 	* grub/asmstub.c (grub_stage2): Fix a misordering in the output | 
 | 	format of the inline assembly. | 
 |  | 
 | 1999-07-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Pavel Roskin <pavel_roskin@geocities.com>: | 
 | 	* stage2/asm.S (get_diskinfo_standard): If the number of sectors | 
 | 	returned is zero, then return an error code, even if non-carrier. | 
 |  | 
 | 1999-07-15  Gordon Matzigkeit  <gord@zen.fig.org> | 
 |  | 
 | 	* docs/Makefile.am (grub.info): Use an ugly hack to downgrade | 
 |  	grub.texi so that it works with Debian's version of texinfo. | 
 |  | 
 | 1999-07-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/bios.c (get_diskinfo): When DRIVE is a floppy drive, | 
 | 	try standard probe routine at first. Reported by Peter Astrand | 
 | 	<altic@lysator.liu.se>. | 
 |  | 
 | 	* grub/main.c (main): Call printf instead of grub_printf. | 
 | 	Reported by Klaus Reichl <a8709182@unet.univie.ac.at>. | 
 |  | 
 | 1999-07-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/cmdline.c (skip_to): Don't increase CMDLINE if the | 
 | 	character to which CMDLINE points is NUL. | 
 |  | 
 | 	* stage2/Makefile.am (EXTRA_DIST): Removed smp-imps.c. | 
 | 	(stage2_exec_SOURCES): Added smp-imps.c. | 
 | 	* stage2/cmdline.c [!GRUB_UTIL] (IMPS_DEBUG) (KERNEL_PRINT) | 
 | 	(CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL) | 
 | 	(VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte) | 
 | 	(cmos_read_byte): These are now defined in ... | 
 | 	* stage2/smp-imps.c (IMPS_DEBUG) (KERNEL_PRINT) | 
 | 	(CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL) | 
 | 	(VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte) | 
 | 	(cmos_read_byte): ... here. | 
 | 	* stage2/cmdline.c [!GRUB_UTIL]: Include apic.h and smp-imps.h. | 
 |  | 
 | 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The function ungetch is simulated so that the user can use a | 
 | 	buggy curses. | 
 |  | 
 | 	* grub/asmstub.c [HAVE_LIBCURSES] (save_char): New variable. | 
 | 	(getkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return | 
 | 	SAVE_CHAR and clear it. | 
 | 	(checkkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return | 
 | 	SAVE_CHAR. If C is not ERR, set SAVE_CHAR to C. | 
 |  | 
 | 1999-07-14  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* stage2/char_io.c (get_cmdline) [GRUB_UTIL]: Recognize | 
 | 	backspace when ncurses fails to do this. | 
 |  | 
 | 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call wtimeout | 
 | 	instead of nodelay. | 
 | 	(getkey) [HAVE_LIBCURSES]: Likewise. | 
 |  | 
 | 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage1/stage1_lba.S (probe_values): New variable. This is not | 
 | 	used actually, but prevents `install' command from failing | 
 | 	bogusly. | 
 |  | 
 | 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	All constants in stage1s are moved to stage1.h and renamed | 
 | 	appropriately, and include stage1.h instead. | 
 |  | 
 | 	* grub/Makefile.am (AM_CFLAGS): Added the include path to stage1. | 
 | 	* stage2/Makefile.am (INCLUDES): New variable. | 
 | 	* stage1/Makefile.am (stage1_exec_SOURCES): Added stage1.h | 
 | 	(stage1_lba_exec_SOURCES): Likewise. | 
 | 	* stage1/stage1.h: New file. | 
 | 	* stage1/stage1.S (SIGNATURE): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_SIGNATURE): ... this. | 
 | 	* stage1/stage1.S (BPBEND): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_BPBEND): ... this. | 
 | 	* stage1/stage1.S (PARTSTART): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_PARTSTART): ... this. | 
 | 	* stage1/stage1.S (MINPARMSIZ): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_MINPARMSIZE): ... this. | 
 | 	* stage1/stage1.S (LISTSIZ): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_LISTSIZE): ... this. | 
 | 	* stage1/stage1.S (REALSTACK): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_STACKSEG): ... this. | 
 | 	* stage1/stage1.S (BUFFERSEG): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_BUFFERSEG): ... this. | 
 | 	* stage1/stage1.S (BIOS_HD_FLAG): Renamed to ... | 
 | 	* stage1/stage1.h (STAGE1_BIOS_HD_FLAG): ... this. | 
 | 	* stage1/stage1_lba.S (SIGNATURE): Removed. | 
 | 	* stage1/stage1_lba.S (BPBEND): Likewise. | 
 | 	* stage1/stage1_lba.S (PARTSTART): Likewise. | 
 | 	* stage1/stage1_lba.S (MINPARMSIZ): Likewise. | 
 | 	* stage1/stage1_lba.S (LISTSIZ): Likewise. | 
 | 	* stage1/stage1_lba.S (REALSTACK): Likewise. | 
 | 	* stage1/stage1_lba.S (BUFFERSEG): Likewise. | 
 | 	* stage1/stage1_lba.S (BIOS_HD_FLAG): Likewise. | 
 |  | 
 | 	* stage1/stage1.S (stage1_id): New variable. | 
 | 	* stage1/stage1_lba.S (stage1_id): Likewise. | 
 | 	* stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 2. | 
 | 	(STAGE1_ID_OFFSET): New macro. | 
 | 	(STAGE1_ID_CHS): Likewise. | 
 | 	(STAGE1_ID_LBA): Likewise. | 
 | 	* stage2/cmdline.c (enter_cmdline) [!GRUB_UTIL]: When running | 
 | 	the command `install' and STAGE1_FILE is stage1_lba, check if | 
 | 	LBA is supported. | 
 | 	(enter_cmdline) [GRUB_UTIL]: In the same case above, check only | 
 | 	if CURRENT_DRIVE is a hard disk and, if so, print a warning | 
 | 	message, because /sbin/grub cannot detect if LBA is supported or | 
 | 	not. | 
 |  | 
 | 	* stage1/stage1_lba.S: Fix a bug that incorrectly assigns the | 
 | 	segment of buffer address. | 
 |  | 
 | 1999-07-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/boot.c (load_image): When removing "vga=...", memmove | 
 | 	the length of VGA_END plus one. | 
 |  | 
 | 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/bios.c (get_diskinfo): In LBA mode, compute | 
 | 	TOTAL_SECTORS from DRP instead of GEOMETRY. | 
 | 	Clear GEOMETRY->FLAGS first. | 
 |  | 
 | 	* stage2/boot.c (load_image): Fix inverted lines. | 
 |  | 
 | 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Support Linux video mode selection. | 
 |  | 
 | 	* stage2/shared.h (LINUX_VID_MODE_OFFSET): New macro. | 
 | 	(LINUX_VID_MODE_NORMAL): Likewise. | 
 | 	(LINUX_VID_MODE_EXTENDED): Likewise. | 
 | 	(LINUX_VID_MODE_ASK): Likewise. | 
 | 	[!WITHOUT_LIBC_STUBS] (strlen): Likewise. | 
 | 	(grub_strlen): Declared. | 
 | 	* stage2/boot.c (load_image): Added Linux video mode selection. | 
 | 	* stage2/char_io.c [!STAGE1_5] (grub_strlen): New function. | 
 |  | 
 | 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/char_io.c (print_error): Print ERRNUM in the format of | 
 | 	%u instead of %d. | 
 | 	(convert_to_ascii) [STAGE1_5]: Eliminate the `x' and `d' | 
 | 	handling code. | 
 | 	(grub_printf): Declare FORMAT as `const char *'. | 
 | 	(grub_printf) [STAGE1_5]: Eliminate the `x' and `d' handling | 
 | 	code. | 
 | 	(get_based_digit): Removed. | 
 | 	(safe_parse_maxint): Remove unnecessary `register' prefixes, | 
 | 	because GCC does better optimization. | 
 | 	Declare DIGIT as `unsigned int' and calculate the value by more | 
 | 	compact instructions. | 
 | 	[!STAGE1_5] (grub_strncat): Declare S2 as `const char *'. | 
 | 	[!STAGE1_5] (grub_strcmp): Declare S1 and S2 as `const char *'. | 
 | 	[!STAGE1_5] (grub_strstr): Likewise. | 
 | 	(grub_memmove): Declare FROM as `const char *'. | 
 | 	The copy code is replaced with inline assembly code stolen from | 
 | 	Linux-2.2.2. | 
 |  | 
 | 	* stage2/shared.h (grub_printf) : Corrected. | 
 | 	(grub_strncat): Likewise. | 
 | 	(grub_memmove): Likewise. | 
 | 	(grub_strstr): Likewise. | 
 | 	(grub_strcmp): Likewise. | 
 |  | 
 | 1999-07-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage1/stage1.S (sectors): Change the size to long. | 
 | 	(heads): Likewise. | 
 | 	(sector_start): New variable. | 
 | 	(head_start): Likewise. | 
 | 	(cylinder_start): Likewise. | 
 | 	(final_init): Set %si to SECTORS first, and use %si for memory | 
 | 	references. | 
 | 	Zero %eax so that the high 16 bits are always zero. | 
 | 	Set %di to FIRSTLIST - LISTSIZ instead of FIRSTLIST. | 
 | 	(bootloop): Omit the complex CHS recomputation, and always | 
 | 	compute them from LBA address instead. | 
 | 	Call 32bits div instructions instead of 16bits div instructions. | 
 | 	Update the position where to load data from at the end of this | 
 | 	loop, instead of the beginning. | 
 |  | 
 | 	* stage1/stage1_lba.S: New file. | 
 | 	* stage1/Makefile.am (nodist_pkgdata_DATA): Added stage1_lba. | 
 | 	(LDFLAGS): New variable. | 
 | 	(noinst_PROGRAMS): Added stage1_lba.exec. | 
 | 	(stage1_lba_exec_SOURCES): New variable. | 
 | 	(%: %.exec): New rule. | 
 |  | 
 | 1999-06-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/main.c (main): The third argument for strtoul is changed | 
 | 	to 0 in the case where an option is OPT_INSTALL_PARTIION. | 
 | 	Reported by Pavel Roskin <pavel_roskin@geocities.com>. | 
 |  | 
 | 1999-06-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/shared.h (STAGE2_STAGE2_ID): New macro. | 
 | 	(STAGE2_VER_STR_OFFS): Set to 0xd. | 
 | 	(STAGE2_ID_STAGE2): New macro. | 
 | 	(STAGE2_ID_FFS_STAGE1_5): Likewise. | 
 | 	(STAGE2_ID_E2FS_STAGE1_5): Likewise. | 
 | 	(STAGE2_ID_FAT_STAGE1_5): Likewise. | 
 | 	(STAGE2_ID) [!STAGE1_5]: Defined as STAGE2_ID_STAGE2. | 
 | 	(STAGE2_ID) [STAGE1_5] [FSYS_FFS]: Defined as | 
 | 	STAGE2_ID_FFS_STAGE1_5. | 
 | 	(STAGE2_ID) [STAGE1_5] [FSYS_EXT2FS]: Defined as | 
 | 	STAGE2_ID_STAGE1_5. | 
 | 	(STAGE2_ID) [STAGE1_5] [FSYS_FAT]: Defined as | 
 | 	STAGE2_ID_FAT_STAGE1_5. | 
 | 	(COMPAT_VERSION_MINOR): Set to 1. | 
 | 	* stage2/asm.S (stage2_id): New variable. | 
 | 	* stage1/stage1.S: Change the minor version to 1. | 
 |  | 
 | 1999-06-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* configure.in (CFLAGS): Set to "-g", since only this flag is | 
 | 	always sharable. | 
 | 	(STAGE1_CFLAGS): Set to "-O2", and AC_SUBST this. | 
 | 	(GRUB_CFLAGS): Likewise. | 
 | 	(saved_CFLAGS): New variable for temporarily saving CFLAGS. | 
 | 	(STAGE2_CFLAGS): Set to "-Os" if this option is available, | 
 | 	otherwise set to "-fno-strength-reduce -fno-unroll-loops", | 
 | 	and then AC_SUBST this. | 
 | 	* grub/Makefile.am (AM_CFLAGS): Prepended @GRUB_CFLAGS@. | 
 | 	* stage1/Makefile.am (AM_CFLAGS): Prepended @STAGE1_CFLAGS@. | 
 | 	* stage2/Makefile.am (libgrub_a_CFLAGS): Prepened @GRUB_CFLAGS@. | 
 | 	(STAGE2_COMPILE): Prepended @STAGE2_CFLAGS@. | 
 |  | 
 | 	* stage2/asm.S (chain_stage2): Pass CURRENT_PARTITION and | 
 | 	CURRENT_DRIVE, instead of INSTALL_PARTITION and BOOT_DRIVE. | 
 |  | 
 | 1999-06-27  Pavel Roskin  <pavel_roskin@geocities.com> | 
 |  | 
 | 	* configure.in: set CFLAGS to "-Os -g" for compilers which | 
 | 	understand "-Os" if CFLAGS is not already set. Use | 
 | 	"-O2 -fno-strength-reduce -fno-unroll-loops -g" for older gcc | 
 | 	versions. | 
 |  | 
 | 1999-06-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage2/disk_io.c (attempt_mount) [STAGE1_5]: Set FSYS_TYPE to | 
 | 	0, and set it to NUM_FSYS if mount fails. | 
 | 	(real_open_partition): Call rawread in Stage 1.5 as well. | 
 |  | 
 | 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* Makefile.am (SUBDIRS): Change the order of the directories so | 
 | 	that a directory will be made after the dependent directories | 
 | 	are made. `grub' depends on `stage2', and `docs' depends on | 
 | 	`grub'. Do not make in parallel. | 
 | 	* docs/help2man: Copied from help2man-1.012, which contains my | 
 | 	previous change. | 
 | 	* docs/grub.8: Regenerated. | 
 |  | 
 | 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Build process is cleaned up. Stage 2 and Stage 1.5's are all | 
 | 	built in the directory stage2. | 
 |  | 
 | 	From Pavel Roskin <pavel_roskin@geocities.com>: | 
 | 	* Makefile.am (SUBDIRS): e2fs_stage1_5, ffs_stage1_5, | 
 | 	fat_stage1_5 and shared_src are removed. | 
 | 	(DISTCLEANFILES): Deleted. | 
 | 	* configure.in: Call AC_PROG_RANLIB. | 
 | 	(AC_INIT): Change the argument to stage2/stage2.c. | 
 | 	(LIBS): Renamed to ... | 
 | 	(GRUB_LIBS): ... this, and call AC_SUBST for this. | 
 | 	Our own rules are removed. | 
 | 	(AC_OUTPUT): e2fs_stage1_5/Makefile, ffs_stage1_5/Makefile, | 
 | 	fat_stage1_5/Makefile and shared_src/Makefile are removed. | 
 | 	* docs/Makefile.am (HELP2MAN): The prefix $(srcdir) is removed. | 
 | 	[GRUB_MAINT]: Prepend $(srcdir) to $(HELP2MAN). | 
 | 	* e2fs_stage1_5/Makefile.am: Deleted. | 
 | 	* e2fs_stage1_5/Makefile.in: Likewise. | 
 | 	* fat_stage1_5/Makefile.am: Likewise. | 
 | 	* fat_stage1_5/Makefile.in: Likewise. | 
 | 	* ffs_stage1_5/Makefile.am: Likewise. | 
 | 	* ffs_stage1_5/Makefile.in: Likewise. | 
 | 	* grub/Makefile.am (CLEANFILES): Likewise. | 
 | 	(COMPILE): Likewise. | 
 | 	(INCLUDES): Likewise. | 
 | 	(DEP_FILES): Likewise. | 
 | 	(@SHARED_SRC_RULES@): Likewise. | 
 | 	(AM_CFLAGS): New variable. | 
 | 	(grub_LDADD): Set to the library libgrub.a and @GRUB_LIBS@. | 
 | 	* shared_src/Makefile.am: Deleted. | 
 | 	* shared_src/Makefile.in: Likewise. | 
 | 	* shared_src/apic.h: Moved to ... | 
 | 	* stage2/apic.h: ... here. | 
 | 	* shared_src/asm.S: Moved to ... | 
 | 	* stage2/asm.S: ... here. | 
 | 	* shared_src/bios.c: Moved to ... | 
 | 	* stage2/bios.c: ... here. | 
 | 	* shared_src/boot.c: Moved to ... | 
 | 	* stage2/boot.c: ... here. | 
 | 	* shared_src/char_io.c: Moved to ... | 
 | 	* stage2/char_io.c: ... here. | 
 | 	* shared_src/cmdline.c: Moved to ... | 
 | 	* stage2/cmdline.c: ... here. | 
 | 	* shared_src/common.c: Moved to ... | 
 | 	* stage2/common.c: ... here. | 
 | 	* shared_src/defs.h: Moved to ... | 
 | 	* stage2/defs.h: ... here. | 
 | 	* shared_src/dir.h: Moved to ... | 
 | 	* stage2/dir.h: ... here. | 
 | 	* shared_src/disk_inode.h: Moved to ... | 
 | 	* stage2/disk_inode.h: ... here. | 
 | 	* shared_src/disk_inode_ffs.h: Moved to ... | 
 | 	* stage2/disk_inode_ffs.h: ... here. | 
 | 	* shared_src/disk_io.c: Moved to ... | 
 | 	* stage2/disk_io.c: ... here. | 
 | 	* shared_src/fat.h: Moved to ... | 
 | 	* stage2/fat.h: ... here. | 
 | 	* shared_src/filesys.h: Moved to ... | 
 | 	* stage2/filesys.h: ... here. | 
 | 	* shared_src/freebsd.h: Moved to ... | 
 | 	* stage2/freebsd.h: ... here. | 
 | 	* shared_src/fs.h: Moved to ... | 
 | 	* stage2/fs.h: ... here. | 
 | 	* shared_src/fsys_ext2fs.c: Moved to ... | 
 | 	* stage2/fsys_ext2fs.c: ... here. | 
 | 	* shared_src/fsys_fat.c: Moved to ... | 
 | 	* stage2/fsys_fat.c: ... here. | 
 | 	* shared_src/fsys_ffs.c: Moved to ... | 
 | 	* stage2/fsys_ffs.c: ... here. | 
 | 	* shared_src/gunzip.c: Moved to ... | 
 | 	* stage2/gunzip.c: ... here. | 
 | 	* shared_src/i386-elf.h: Moved to ... | 
 | 	* stage2/i386-elf.h: ... here. | 
 | 	* shared_src/imgact_aout.h: Moved to ... | 
 | 	* stage2/imgact_aout.h: ... here. | 
 | 	* shared_src/mb_header.h: Moved to ... | 
 | 	* stage2/mb_header.h: ... here. | 
 | 	* shared_src/mb_info.h: Moved to ... | 
 | 	* stage2/mb_info.h: ... here. | 
 | 	* shared_src/pc_slice.h: Moved to ... | 
 | 	* stage2/pc_slice.h: ... here. | 
 | 	* shared_src/shared.h: Moved to ... | 
 | 	* stage2/shared.h: ... here. | 
 | 	* shared_src/smp-imps.c: Moved to ... | 
 | 	* stage2/smp-imps.c: ... here. | 
 | 	* shared_src/smp-imps.h: Moved to ... | 
 | 	* stage2/smp-imps.h: ... here. | 
 | 	* shared_src/stage1_5.c: Moved to ... | 
 | 	* stage2/stage1_5.c: ... here. | 
 | 	* shared_src/stage2.c: Moved to ... | 
 | 	* stage2/stage2.c: ... here. | 
 | 	* stage1/Makefile.am (pkgdata_DATA): Renamed to ... | 
 | 	(nodist_pkgdata_DATA): ... this. | 
 | 	(COMPILE): Deleted. | 
 | 	(AM_CFLAGS): New variable. | 
 | 	* stage2/Makefile.am: Completely rewritten from scratch. | 
 | 	(TESTS): New variable. | 
 | 	(noinst_SCRIPTS): Likewise. | 
 | 	(noinst_HEADERS): Likewise. | 
 | 	(EXTRA_DIST): Set to smp-imps.c and $(noinst_SCRIPTS). | 
 | 	(noinst_LIBRARIES): New variable. | 
 | 	(libgrub_a_SOURCES): Likewise. | 
 | 	(libgrub_a_CFLAGS): Likewise. | 
 | 	(pkgdata_DATA): Deleted. | 
 | 	(nodist_pkgdata_DATA): New variable. | 
 | 	(MOSTLYCLEANFILES): Set to $(noinst_PROGRAMS). | 
 | 	(COMPILE): Deleted. | 
 | 	(INCLUDES): Likewise. | 
 | 	(stage2_exec_LDADD): Likewise. | 
 | 	(DEP_FILES): Likewise. | 
 | 	(stage2_exec_SOURCES): Set to the actual source files instead of | 
 | 	dummy. | 
 | 	(DISTFILES): Deleted. | 
 | 	(stage2.exec): Likewise. | 
 | 	(stage2): Likewise. | 
 | 	(@SHARED_SRC_RULES@): Likewise. | 
 | 	(noinst_PROGRAMS): Set to executable formats of Stage 2 and | 
 | 	Stage 1.5's. | 
 | 	(STAGE2_LINK): New variable. | 
 | 	(STAGE2_COMPILE): Likewise. | 
 | 	(STAGE1_5_LINK): Likewise. | 
 | 	(STAGE1_5_COMPILE): Likewise. | 
 | 	(stage2_exec_CFLAGS): Likewise. | 
 | 	(stage2_exec_LDFLAGS): Likewise. | 
 | 	(e2fs_stage1_5_exec_SOURCES): Likewise. | 
 | 	(e2fs_stage1_5_exec_CFLAGS): Likewise. | 
 | 	(e2fs_stage1_5_exec_LDFLAGS): Likewise. | 
 | 	(fat_stage1_5_exec_SOURCES): Likewise. | 
 | 	(fat_stage1_5_exec_CFLAGS): Likewise. | 
 | 	(fat_stage1_5_exec_LDFLAGS): Likewise. | 
 | 	(ffs_stage1_5_exec_SOURCES): Likewise. | 
 | 	(ffs_stage1_5_exec_CFLAGS): Likewise. | 
 | 	(ffs_stage1_5_exec_LDFLAGS): Likewise. | 
 | 	(% : %.exec): New rule. | 
 |  | 
 | 	* stage2/size_test: New file, for checking for the sizes of | 
 | 	Stage 2 and Stage 1.5's. | 
 |  | 
 | 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* stage1/stage1.S: Call testb instead of andb when checking if | 
 | 	the drive is a floppy. | 
 |  | 
 | 1999-06-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c [__linux__]: Include linux/fs.h for BLKFLSBUF. | 
 | 	(grub_stage2): Call sync before and after calling doit. | 
 | 	(gurb_stage2) [__linux__]: Invalidate buffer caches by BLKFLSBUF | 
 | 	ioctl. | 
 | 	* grub/main.c (main): Call sync first. Suggested by Pavel Roskin | 
 | 	<pavel_roskin@geocities.com>. | 
 |  | 
 | 	* configure.in: Curses libraries are always checked. | 
 | 	(--enable-sbin-grub): Deleted. Now /sbin/grub is always built. | 
 | 	(--enable-maintainer-mode): New option. | 
 | 	* grub/Makefile.am (EXTRA_PROGRAMS): Deleted. | 
 | 	(sbin_PROGRAMS): Just set to grub. | 
 | 	* docs/Makefile.am (man_MANS): New variable. | 
 | 	(HELP2MAN): Likewise. | 
 | 	(noinst_SCRIPTS): Likewise. | 
 | 	(EXTRA_DIST): Add $(man_MANS) and $(noinst_SCRIPTS). | 
 | 	[GRUB_MAINT]: Define the rule for the /sbin/grub manual. | 
 | 	* docs/help2man: Copied from texinfo-3.12i. | 
 | 	(--section): New option to specify which section a manual | 
 | 	belongs	to. | 
 | 	(opt_section): New variable. | 
 | 	(section): Likewise. | 
 | 	* docs/grub.8: Produced by help2man automatically. | 
 |  | 
 | 1999-06-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/char_io.c (get_cmdline): Add two missing `break's. | 
 |  | 
 | 	* shared_src/cmdline.c (commands): Add quit. | 
 | 	(enter_cmdline): Change the return type	to cmdline_t, and return | 
 | 	CMDLINE_OK if successful, otherwise CMDLINE_ERROR if fail. | 
 | 	(enter_cmdline) [GRUB_UTIL]: Return CMDLINE_ABORT if CUR_HEAP | 
 | 	contains "quit". | 
 | 	[!GRUB_UTIL]: Just print an annotation message. | 
 | 	* shared_src/shared.h (cmdline_t): New enum type. | 
 | 	(enter_cmdline): Change the return type to cmdline_t. | 
 | 	(cmain): Remove ``noreturn'' attribute. | 
 | 	* shared_src/stage2.c (menu_t): New enum type. | 
 | 	(run_menu): Change the return type to menu_t. | 
 | 	If enter_cmdline returns CMDLINE_ABORT, then return MENU_ABORT, | 
 | 	otherwise return MENU_OK. | 
 | 	(cmain): If enter_cmdline aborts, then break the command-line | 
 | 	loop and return. If run_menu aborts, then return. | 
 |  | 
 | 1999-06-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by | 
 | 	Pavel Roskin <pavel_roskin@geocities.com>. | 
 |  | 
 | 1999-06-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am (html): Deleted. | 
 | 	(txt): Likewise. | 
 | 	(EXTRA_DIST): $(txt) and $(html) are removed. | 
 | 	* docs/boot-proposal.html: Removed. | 
 | 	* docs/errors.html: Likewise. | 
 | 	* docs/faq.html: Likewise. | 
 | 	* docs/grub.html: Likewise. | 
 | 	* docs/install.html: Likewise. | 
 | 	* docs/mem64mb.html: Likewise. | 
 | 	* docs/technical.html: Likewise. | 
 | 	* docs/using.html: Likewise. | 
 | 	* docs/PC_partitioning.txt: Likewise. | 
 | 	* docs/bios_mapping.txt: Likewise. | 
 | 	* docs/commands.txt: Likewise. | 
 | 	* docs/embedded_data.txt: Likewise. | 
 | 	* docs/filesystem.txt: Likewise. | 
 |  | 
 | 1999-06-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	From Alexander K. Hudek <alexhudek@home.com>: | 
 | 	* shared_src/disk_io.c (real_open_partition): Check if | 
 | 	CURRENT_SLICE is equal to PC_SLICE_TYPE_WIN95_EXTENDED as well. | 
 | 	* shared_src/pc_slice.c (PC_SLICE_TYPE_WIN95_EXTENDED): New | 
 | 	macro. | 
 | 	* shared_src/bios.c (biosdisk): Clear the reserved member of DAP. | 
 |  | 
 | 1999-06-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Color-menu support based on Peter Astrand | 
 | 	<altic@lysator.liu.se>'s patch. | 
 |  | 
 | 	* shared_src/asm.S (nocursor): New function. | 
 | 	* shared_src/cmdline.c (normal_color): New variable. | 
 | 	(highlight_color): Likewise. | 
 | 	(commands): Added "color" command. | 
 | 	(enter_cmdline): Handle the color command. | 
 | 	* shared_src/shared.h (normal_color): Declared. | 
 | 	(highlight_color): Likewise. | 
 | 	[!GRUB_UTIL] (nocursor): Likewise. | 
 | 	* shared_src/stage2.c (print_border) [!GRUB_UTIL]: Color the | 
 | 	menu. | 
 | 	(run_menu) [!GRUB_UTIL]: Call nocursor, and call set_line with | 
 | 	the second argument HIGHLIGHT_COLOR when highlighting a line, | 
 | 	and NORMAL_COLOR when drawing a normal line. | 
 | 	(cmain): Initialize normal_color and highlight_color. Handle | 
 | 	the color command in the same way as the command-line | 
 | 	interface. | 
 |  | 
 | 1999-06-07  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 31744. | 
 | 	* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise. | 
 |  | 
 | 1999-06-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	The debug version of Stage 2 is removed. | 
 |  | 
 | 	* shared_src/cmdline.c: The imps code is now defined if GRUB_UTIL | 
 | 	is not defined, but not if DEBUG. | 
 | 	(debug): New global variable. | 
 | 	(commands): All commands are always enabled, and added "debug". | 
 | 	(debug_fs_print_func): Defined unconditionally. | 
 | 	(debug_fs_blocklist_func): If DEBUG is true, then call printf. | 
 | 	(enter_cmdline): Handle "testload", "read", "fstest", | 
 | 	"impsprobe" and "displaymem" unconditionally, and added "debug" | 
 | 	handling. | 
 | 	[GRUB_UTIL]: If a command is impsprobe, just fails. | 
 | 	* shared_src/disk_io.c (devread) [!STAGE1_5]: If DEBUG_FS and | 
 | 	DEBUG are true, then call printf. | 
 | 	* shared_src/asm.S (patch_code): Defined unconditionally. | 
 | 	(patch_code_end): Likewise. | 
 | 	* stage1/stage1.S (firstlist) [!FFS_STAGE1_5]: Increase the | 
 | 	number of sectors to 90, because Stage 2 is larger than 80 | 
 | 	sectors. | 
 | 	* configure.in: The option --enable-debug is removed, and do | 
 | 	not output "stage2_debug/Makefile". | 
 | 	* Makefile.am (SUBDIRS): stage2_debug is removed. | 
 | 	* stage2_debug/Makefile.am: Deleted. | 
 | 	* stage2_debug/Makefile.in: Likewise. | 
 |  | 
 | 1999-06-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/main.c (verbose): New variable. | 
 | 	(read_only): Likewise. | 
 | 	(OPT_VERBOSE): New macro. | 
 | 	(OPT_READ_ONLY): Likewise. | 
 | 	(longopts): Add --read-only and --verbose options. | 
 | 	(usage): Add the descriptions about --read-only and --verbose. | 
 | 	(main): Handle OPT_VERBOSE and OPT_READ_ONLY. | 
 | 	If HOLD and VERBOSE are non-zero, then display the message | 
 | 	about how to restart /sbin/grub. | 
 |  | 
 | 	* shared_src/shared.h (verbose) [GRUB_UTIL]: Declared. | 
 | 	(read_only) [GRUB_UTIL]: Likewise. | 
 |  | 
 | 	* grub/asmstub.c (hex_dump): New function. | 
 | 	(biosdisk): In the case where SUBFUNC is | 
 | 	BIOSDISK_WRITE, check for READ_ONLY and call nwrite if | 
 | 	READ_ONLY is zero. If VERBOSE is non-zero, display what GRUB | 
 | 	will try to do. | 
 | 	(get_diskinfo): Open DEVNAME with the mode O_RDWR if READ_ONLY | 
 | 	is zero, and attempt to open DEVNAME with the mode O_RDONLY | 
 | 	regardless of ERRNO if READ_ONLY is non-zero. If VERBOSE is | 
 | 	non-zero, then display the drive DRIVE and the file DEVNAME. | 
 |  | 
 | 	* shared_src/disk_io.c (set_device) [STAGE1_5]: Eliminate | 
 | 	completion code. | 
 |  | 
 | 1999-06-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c: Do not use I_AM_VERY_BRAVE any more. | 
 | 	(grub_stage2): Delete first_scsi_disk and add a variable | 
 | 	num_hd, which is used for counting how many drives are | 
 | 	detected. | 
 | 	Initialize the flags member of each element of disks to -1 | 
 | 	instead of 0, and check if it is equal to -1 instead of 0 when | 
 | 	close it. | 
 | 	(get_diskinfo): Treat -1 as non-caching state instead of 0. | 
 |  | 
 | 1999-06-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Reported from Klaus Reichl <a8709182@unet.univie.ac.at>: | 
 | 	* docs/.cvsignore: New file. | 
 | 	* shared_src/disk_io.c (print_a_completion): New function | 
 | 	which saves what has been printed to UNIQUE_STRING and printf | 
 | 	it. | 
 | 	(unique) [!STAGE1_5]: New variable. | 
 | 	(unique_string): Likewise. | 
 | 	(print_completions): Use print_a_completion, and improve the | 
 | 	completion facility. | 
 | 	* shared_src/fsys_ext2fs.c (ext2fs_dir) [!STAGE1_5]: Use | 
 | 	print_a_completion instead of just printf. | 
 | 	* shared_src/fsys_ffs.c (ffs_dir) [!STAGE1_5]: Likewise. | 
 | 	* shared_src/fsys_fat.c (fat_dir) [!STAGE1_5]: Likewise. | 
 | 	* shared_src/shared.h (print_a_completion): Declared. | 
 | 	* shared_src/cmdline.c (enter_cmdline): Explicitly cast | 
 | 	int to pointer to char for grub_read. | 
 | 	* grub/asmstub.c (grub_stage2) [__linux__]: Don't use /dev/fd1. | 
 | 	Probe 4 IDE drives instead of 2. | 
 | 	(biosdisk) [__linux__]: Add a prototype for _llseek. | 
 | 	* shared_src/char_io.c (get_cmdline): Update LPOS and LLEN_OLD | 
 | 	when the functon print_completion modifies CMDLINE. | 
 | 	* shared_src/stage2.c (get_line_from_config): Fix LITERAL | 
 | 	handling. | 
 |  | 
 | 1999-05-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (grub_stage2): Fix a memory leak that FP is | 
 | 	not closed. | 
 |  | 
 | 1999-05-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and | 
 | 	OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES | 
 | 	respectively. | 
 | 	(longopts): Rename from "disable-config-file" to | 
 | 	"no-config-file", and from "disable-curses" to "no-curses". | 
 | 	(usage): Use "grub" instead of ARGV[0], read the standards. | 
 | 	Change the help message according to the changes above. | 
 | 	(main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead | 
 | 	of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES. | 
 |  | 
 | 1999-05-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/TODO: Moved to ... | 
 | 	* TODO: ... here. | 
 | 	* docs/BUGS: Moved to ... | 
 | 	* BUGS: ... here. | 
 | 	* docs/COPYING: Removed. | 
 | 	* docs/Makefile.am (EXTRA_DIST): Get rid of BUGS. | 
 | 	* Makefile.am (EXTRA_DIST): Set to BUGS. | 
 |  | 
 | 1999-05-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command | 
 | 	shift. Reported by Pavel Roskin <pabel_roskin@geocities.com>. | 
 |  | 
 | 1999-05-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/Makefile.am (info_TEXINFOS): Added multiboot.texi. | 
 | 	* docs/multiboot.texi: New file. From Kunihiro Ishiguro. | 
 |  | 
 | 1999-05-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c: Include <errno.h>. Reported by Kunihiro | 
 | 	Ishiguro <kunihiro@zebra.org>. | 
 |  | 
 | 1999-05-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Reported by Brian Brunswick <brian@skarpsey.demon.co.uk>: | 
 | 	* shared_src/asm.S (start) [STAGE1_5]: Jump to 0x0:0x2000. | 
 | 	* shared_src/cmdline.c (enter_cmdline): Doesn't check for the jump | 
 | 	address in stage2. We are not paranoid. | 
 | 	Add a missing RAW_ADDR macro. | 
 | 	* shared_src/diskio.c (grub_open): Call setup_part even in stage1.5. | 
 | 	And, include necessary functions that were eliminated incorrectly. | 
 | 	* shared_src/char_io.c [STAGE1_5]: Eliminate unnecessary functions | 
 | 	for stage1.5. | 
 |  | 
 | 	* grub/asmstub.c (nread): New function. Handle EINTR. | 
 | 	(nwrite): Likewise. | 
 | 	(biosdisk) [I_AM_VERY_BRAVE]: When SUBFUNC is BIOSDISK_WRITE, call | 
 | 	nwrite. | 
 |  | 
 | 	Reported by Pavel Roskin <pavel_roskin@geocities.com>: | 
 | 	* shared_src/fsys_ext2fs.c (off_t): Renamed to ... | 
 | 	(linux_off_t): ... this. | 
 | 	* shared_src/defs.h (off_t): Renamed to ... | 
 | 	(mach_off_t): ... this. | 
 | 	* shared_src/fs.h (BBOFF): Use mach_off_t instead of off_t. | 
 | 	(SBOFF): Likewise. | 
 |  | 
 | 	* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 81920. | 
 | 	* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise. | 
 | 	* ffs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 7168. | 
 |  | 
 | 1999-05-03  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	From Pavel Roskin: | 
 | 	* shared_src/shared.h: Redeclare. | 
 |  | 
 | 	* grub/main.c (main): Use strncpy rather than pointer assignment | 
 | 	to set the config file name. | 
 |  | 
 | 	* grub/asmstub.c: Make config_file a static array, not a pointer. | 
 | 	Correct the value of VERSION_STRING. | 
 |  | 
 | 1999-04-10  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* debian/rules (build): Install into /lib instead of /share. | 
 |  | 
 | 1999-05-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	Preliminary non-interactive use support. | 
 |  | 
 | 	* grub/main.c (use_config_file): New variable. | 
 | 	(use_curses): Likewise. | 
 | 	(OPT_DISABLE_CONFIG_FILE): New constant. | 
 | 	(OPT_DISABLE_CURSES): Likewise. | 
 | 	(OPT_BATCH): Likewise. | 
 | 	(longopts): Add new options, --disable-config-file, --disable-curses, | 
 | 	and --batch. | 
 | 	(usage): Print the help messages about these new options. | 
 | 	(main): Handle them. | 
 |  | 
 | 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: If ! USE_CURSES, | 
 | 	fallback non-curses code. | 
 | 	(stop) [HAVE_LIBCURSES]: Likewise. | 
 | 	(cls) [HAVE_LIBCURSES]: Likewise. | 
 | 	(getxy) [HAVE_LIBCURSES]: Likewise. | 
 | 	(gotoxy) [HAVE_LIBCURSES]: Likewise. | 
 | 	(grub_putchar) [HAVE_LIBCURSES]: Likewise. | 
 | 	(getkey) [HAVE_LIBCURSES]: Likewise. | 
 | 	(checkkey) [HAVE_LIBCURSES]: Likewise. | 
 | 	(set_attrib) [HAVE_LIBCURSES]: Likewise. | 
 |  | 
 | 	* shared_src/cmdline.c (enter_cmdline): Do not use getc, but use | 
 | 	getkey. | 
 |  | 
 | 	* shared_src/stage2.c (cmain) [GRUB_UTIL]: Check if USE_CONFIG_FILE | 
 | 	is non-zero or not. | 
 |  | 
 | 	* shared_src/shared.h (getc): Removed. | 
 | 	(use_config_file) [GRUB_UTIL]: Add the declaration. | 
 | 	(use_curses) [GRUB_UTIL]: Likewise. | 
 |  | 
 | 1999-05-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported | 
 | 	by Pavel Roskin <pavel_roskin@geocities.com>. | 
 |  | 
 | 1999-04-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/menu.lst: Rewritten, so that it contains up-to-date | 
 | 	information and FAQish configuration examples. | 
 |  | 
 | 1999-04-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads | 
 | 	and the one of cylinders. | 
 |  | 
 | 1999-04-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (get_diskinfo): Compute the total number of sectors | 
 | 	for DRIVE. | 
 |  | 
 | 	* shared_src/asm.S (get_diskinfo_standard): Clear the data segment | 
 | 	after calling int 0x13. Restore the base pointer after returning | 
 | 	to protected mode. | 
 | 	(get_diskinfo_floppy): Likewise. | 
 |  | 
 | 	* shared_src/bios.c (get_diskinfo): Always set the size of DRP to | 
 | 	the max size of DRP, regardless of the major version of extensions. | 
 |  | 
 | 1999-04-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/shared.h (struct geometry): Declare total_sectors as | 
 | 	unsigned long instead of unsigned long long, because GRUB represents | 
 | 	a sector number by 4bytes integer, so it doesn't make sense. | 
 |  | 
 | 	* shared_src/bios.c (biosdisk) [!NO_INT13_FALLBACK]: Recompute | 
 | 	TOTAL_SECTORS according to CHS information. | 
 | 	(get_diskinfo) [DEBUG]: Print the geometry of DRIVE. | 
 |  | 
 | 	* shared_src/disk_io.c (real_open_partition): Set PART_LENGTH to | 
 | 	BUF_GEOM.TOTAL_SECTORS. | 
 |  | 
 | 1999-04-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* docs/texinfo.tex: Copied from automake-1.4a. | 
 |  | 
 | 	* configure.in (SHARED_SRC_RULES): Add bios into shared sources. | 
 |  | 
 | 	* e2fs_stage1_5/Makefile.am (e2fs_stage1_5_exec_LDADD): Added bios.o. | 
 | 	* fat_stage1_5/Makefile.am (fat_stage1_5_exec_LDADD): Likewise. | 
 | 	* ffs_stage1_5/Makefile.am (ffs_stage1_5_exec_LDADD): Likewise. | 
 | 	* stage2/Makefile.am (stage2_exec_LDADD): Likewise. | 
 | 	* stage2_debug/Makefile.am (stage2_debug_exec_LDADD): Likewise. | 
 |  | 
 | 	* shared_src/Makefile.am (EXTRA_DIST): Added bios.c. | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Deleted. Now defined in bios.c. | 
 | 	(get_diskinfo): Likewise. | 
 | 	(biosdisk_int13_extensions): New function. | 
 | 	(biosdisk_standard): Likewise. | 
 | 	(check_int13_extensions): Likewise. | 
 | 	(get_diskinfo_int13_extensions): Likewise. | 
 | 	(get_diskinfo_standard): Likewise. | 
 | 	(get_diskinfo_floppy): Likewise. | 
 |  | 
 | 	* shared_src/bios.c: New file. | 
 |  | 
 | 	* shared_src/shared.h (struct geometry): Added new member, | 
 | 	total_sectors. | 
 |  | 
 | 1999-03-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES | 
 | 	the entries starting from FIRST. | 
 |  | 
 | 1999-03-27  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* Change everything to use memset and memmove instead of bzero and | 
 | 	bcopy.  GNB's Not BSD. | 
 |  | 
 | 	* shared_src/shared.h (grub_memset): Adapted from grub_bzero. | 
 | 	(grub_memmove): Adapted from grub_bcopy. | 
 |  | 
 | 	* grub/asmstub.c (checkkey): Fix unterminated comment. | 
 |  | 
 | 	* shared_src/char_io.c (grub_printf): Renamed from printf. | 
 | 	(grub_tolower): Renamed from tolower. | 
 | 	(grub_isspace): Renamed from isspace. | 
 | 	(grub_strncat): Renamed from strncat. | 
 | 	(grub_strstr): Renamed from strstr. | 
 | 	(grub_bcopy): Renamed from bcopy. | 
 | 	(grub_bzero): Renamed from bzero. | 
 |  | 
 | 	From Bradford Hovinen: | 
 | 	* shared_src/char_io.c (get_cmdline): Add new argument to hide | 
 | 	password entry. | 
 | 	(grub_strcmp): New function. | 
 | 	* shared_src/shared.h (get_cmdline): Fix declaration. | 
 | 	(grub_strcmp): Declare. | 
 | 	* shared_src/stage2.c (run_menu): Use get_cmdline with an | 
 | 	ECHO_CHAR of `*'.  This protects against both brute-force and | 
 | 	sidelong-glance password cracking attempts. | 
 |  | 
 | 	* grub/main.c (usage): Display defaults for stage2 options. | 
 |  | 
 | 	* grub/asmstub.c [WITHOUT_LIBC_STUBS]: Renamed from | 
 | 	NO_REMAPPING_LIBC_FUNCTIONS. | 
 | 	* grub/main.c: Likewise. | 
 | 	* shared_src/shared.h: Likewise. | 
 |  | 
 | 1999-03-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (set_attrib): Use inch and addch, instead of | 
 | 	chgat, because chgat doesn't work as expected. | 
 |  | 
 | 1999-03-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call nodelay. | 
 | 	(checkkey) [HAVE_LIBCURSES]: If getting an input character, then | 
 | 	ungetch it, because checkkey shouldn't modify the input queue. | 
 |  | 
 | 	Use file descriptors instead of file pointers to support | 
 | 	>4GB disks in Linux. | 
 |  | 
 | 	* grub/asmstub.c (grub_stage2): Call close instead of fclose. | 
 | 	(get_diskinfo): Call open instead of fopen. | 
 | 	(biosdisk) [__linux__]: Use _llseek instead of lseek. | 
 | 	(biosdisk): Call read instead of fread. | 
 |  | 
 | 	Add options so that the user can specify the config file. | 
 |  | 
 | 	* grub/Makefile.am (CPPFLAGS): Use -fwritable-strings, because | 
 | 	grub assumes that all strings resides at the data section. | 
 |  | 
 | 	* grub/main.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including | 
 | 	shared.h. | 
 | 	(OPT_CONFIG_FILE): New macro. | 
 | 	(OPT_INSTALL_PARTITION): Likewise. | 
 | 	(OPT_BOOT_DRIVE): Likewise. | 
 | 	(longopts): Add new options, config-file, install-partition and | 
 | 	boot-drive. | 
 | 	(usage): Add the documentation for them. | 
 | 	(main): Add handling code for OPT_CONFIG_FILE, OPT_INSTALL_PARTITION | 
 | 	and OPT_BOOT_DRIVE. | 
 |  | 
 | 	* grub/asmstub.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including | 
 | 	shared.h. | 
 | 	(config_file): Make it char * instead of char []. | 
 | 	(getrtsecs): Return current time instead of 0xff. | 
 |  | 
 | 	* shared_src/shared.h [NO_REMAPPING_LIBC_FUNCTIONS]: Don't define | 
 | 	libc-API-compatible function names. | 
 | 	(config_file): Change the prototype from char [] to char *. | 
 | 	(grub_putchar): Renamed from putchar. | 
 |  | 
 | 1999-03-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* char_io.c (get_cmdline): Call cl_setcpos even if lpos == llen, | 
 | 	because ncurses won't update the cursor position. | 
 |  | 
 | 	* grub/main.c (OPT_HOLD): New macro. | 
 | 	(longopts): New option --hold. | 
 | 	(usage): Add the documentation about --hold. | 
 | 	(main): Set hold if --hold is specified. Wait until cleared. | 
 |  | 
 | 1999-03-22  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/cmdline.c (enter_cmdline): Check the return value of | 
 | 	set_device in the `root' command. | 
 |  | 
 | 	* shared_src/char_io.c (memcheck): Special-case cur_part_desc and | 
 | 	reenable memory checking. | 
 |  | 
 | 1999-03-21  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/boot.c (load_image): Make sure we use the mapped | 
 | 	address before actually writing data to memaddr. | 
 |  | 
 | 	* shared_src/char_io.c (get_cmdline): Only zero-terminate if there | 
 | 	were leading blanks.  This prevents accidental truncation of | 
 | 	commands. | 
 |  | 
 | 	* grub/asmstub.c (get_diskinfo): Cache device geometries as well | 
 | 	as file handles. | 
 | 	Use the Linux HDIO_GETGEO ioctl to make a better guess at hard | 
 | 	disk geometries. | 
 |  | 
 | 1999-03-16  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/shared.h (geometry_t): Delete typedef, until we | 
 | 	actually use it. | 
 |  | 
 | 1999-03-16  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp> | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Use a structure for geometry | 
 | 	instead of a integer. | 
 | 	(get_diskinfo): Take a pointer to a geometry structure as the | 
 | 	second argument, and fill a geometry in it. Return 1 if an error | 
 | 	occurs, otherwise return 0. | 
 | 	* shared_src/boot.c (bsd_boot): Compute BIOS geometries for BSD. | 
 | 	* shared_src/cmdline.c (enter_cmdline): Declare dest_geom as | 
 | 	struct geometry. | 
 | 	* shared_src/disk_io.c (buf_geom): Declare as struct geometry. | 
 | 	* shared_src/filesys.h (SECTORS): Deleted. | 
 | 	(HEADS): Likewise. | 
 | 	(CYLINDERS): Likewise. | 
 | 	* shared_src/shared.h (BIOSDISK_FLAG_LBA_EXTENSION): New macro. | 
 | 	(struct geometry): New structure. | 
 | 	(buf_geom): Correct the prototype. | 
 | 	(get_diskinfo): Likewise. | 
 | 	(biosdisk): Likewise. | 
 |  | 
 | 1999-03-15  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* grub/asmstub.c (doit): Nested function to get a clean stack | 
 | 	frame while in grub_stage2. | 
 | 	Use different assembler magic.  From OKUJI Yoshinori. | 
 |  | 
 | 1999-03-14  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/stage2.c (run_menu): Use A_REVERSE and A_NORMAL | 
 | 	constants instead of magic numbers. | 
 |  | 
 | 	* shared_src/shared.h (A_REVERSE): Renamed from ATTR_INVERSE for | 
 | 	compatibility with curses. | 
 | 	(A_NORMAL): Renamed from ATTR_NORMAL. | 
 |  | 
 | 	* shared_src/cmdline.c (enter_cmdline): Change prompt to "grub> ". | 
 | 	(enter_cmdline): Only abort the boot if we are in a script. | 
 |  | 
 | 	* shared_src/stage2.c (run_menu): Change prompts to "grub edit> ". | 
 |  | 
 | 	* shared_src/char_io.c (memcheck): Use RAW_ADDR to compute memory | 
 | 	locations. | 
 | 	(get_cmdline): Change the `goto next line' code to account for | 
 | 	newlines deleting to end of line under curses. | 
 |  | 
 | 	* Innumerable cleanups to fix warnings.  There are still too many | 
 | 	typecasts in the wrong places (int variables used to hold | 
 | 	pointers, then casted to a pointer type), but things look better. | 
 |  | 
 | 	* configure.in (CPPFLAGS): Bump up GCC warnings to -Wall | 
 | 	-Wmissing-prototypes -Wunused. | 
 |  | 
 | 	* shared_src/shared.h: Delete stupid declarations, and totally | 
 | 	rearrange for clarity. | 
 | 	(inb, outb): Move to cmdline.c, since it's only used there. | 
 | 	(print_possibilities, fsmax, fsys_table): Move definitions to | 
 | 	disk_io.c. | 
 |  | 
 | 	* grub/asmstub.c: Fill in more stubs. | 
 |  | 
 | 1999-03-13  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/gunzip.c (border): Rename to bitorder, to resolve | 
 | 	clash with curses. | 
 | 	* shared_src/stage2.c (timeout): Rename to grub_timeout. | 
 |  | 
 | 	* configure.in: Check for curses libraries for use with | 
 | 	/sbin/grub. | 
 |  | 
 | 	* shared_src/shared.h (KEY_DELETE): Rename to KEY_DC, for | 
 | 	compatibility with curses. | 
 | 	(KEY_INSERT): Rename to KEY_IC. | 
 | 	(KEY_PGDN): Rename to KEY_NPAGE. | 
 | 	(KEY_PGUP): Rename to KEY_PPAGE. | 
 |  | 
 | 	* shared_src/asm.S (asm_getkey): Renamed to getkey. | 
 |  | 
 | 	* shared_src/char_io.c (getkey): Delete, because it's useless. | 
 |  | 
 | 	* shared_src/shared.h: Resolve name clashes with libc by renaming | 
 | 	overlapping functions to have grub_ prefixes, then defining | 
 | 	macros. | 
 |  | 
 | 	* grub/asmstub.c (start_stage2): Make some assertions about our | 
 | 	scratch memory area. | 
 |  | 
 | 	* shared_src/shared.h (end): Delete declaration. | 
 | 	(RAW_ADDR, RAW_SEG): Macros to redirect /sbin/grub memory requests | 
 | 	through grub_scratch_mem. | 
 |  | 
 | 	* grub/asmstub.c (get_mem_map): Implement, simulating 4MB | 
 | 	contiguous memory. | 
 | 	(get_code_end): Implement, simulating with a malloced area. | 
 | 	grub/asmstub.c (start_stage2): Initialize grub_scratch_mem. | 
 |  | 
 | 	* shared_src/asm.S (get_mem_map): Some BIOSes expect the high word | 
 | 	of %eax to be zero. | 
 | 	(get_code_end): Move this from common.c so that we can stub it out | 
 | 	in the simulator. | 
 |  | 
 | 	* debian/rules: Make sure info files end up in /usr/info, not | 
 | 	/info. | 
 |  | 
 | 1999-03-10  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Make LBA mode work correctly.  From | 
 | 	OKUJI Yoshinori. | 
 | 	Unconditionally define NO_INT13_FALLBACK until we release GRUB | 
 | 	0.6.  This will help debug any problems with the LBA support until | 
 | 	then. | 
 |  | 
 | 1999-03-09  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Compute location of | 
 | 	disk_address_packet correctly.  From OKUJI Yoshinori. | 
 |  | 
 | 1999-03-08  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* docs/grub.texi: New Texinfo documentation. | 
 |  | 
 | 	* shared_src/disk_io.c (set_device): First stab at interpreting | 
 | 	Mach-style partition naming. | 
 |  | 
 | 	* shared_src/stage2.c (run_menu): Don't say it was a failure if | 
 | 	enter_cmdline returns nonzero... just wait for a key. | 
 |  | 
 | 	* shared_src/cmdline.c (enter_cmdline): Return nonzero, and avoid | 
 | 	the fallback command if we did an install. | 
 |  | 
 | 	* shared_src/asm.S (_start): New explicit symbol to supress | 
 | 	warnings. | 
 |  | 
 | 	* e2fs_stage1_5/Makefile.am (NO_FANCY_STUFF): Renamed to STAGE1_5, | 
 | 	since that describes this conditional more accurately. | 
 | 	* fat_stage1_5/Makefile.am: Likewise. | 
 | 	* ffs_stage1_5/Makefile.am: Likewise. | 
 | 	* shared_src/asm.S: Likewise. | 
 | 	* shared_src/char_io.c: Likewise. | 
 | 	* shared_src/common.c: Likewise. | 
 | 	* shared_src/disk_io.c: Likewise. | 
 | 	* shared_src/fsys_ext2fs.c: Likewise. | 
 | 	* shared_src/fsys_ffs.c: Likewise. | 
 | 	* shared_src/shared.h: Likewise. | 
 |  | 
 | 1999-03-07  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* configure.in (SHARED_SRC_RULES): Automatically generate | 
 | 	Makefile dependencies for files in shared_src. | 
 | 	e2fs_stage1_5/Makefile.am: Use them. | 
 | 	fat_stage1_5/Makefile.am: Likewise. | 
 | 	ffs_stage1_5/Makefile.am: Likewise. | 
 | 	grub/Makefile.am: Likewise. | 
 | 	stage2/Makefile.am: Likewise. | 
 | 	stage2_debug/Makefile.am: Likewise. | 
 |  | 
 | 	* shared_src/disk_inode.h: Fix typo: i_ic shouldn't be defined. | 
 |  | 
 | 	* shared_src/fsys_ffs.c (block_map): Make static, since this | 
 | 	function isn't used outside of its defining file. | 
 |  | 
 | 	* shared_src/disk_io.c [NO_FANCY_STUFF]: Eliminate a whole bunch | 
 | 	more functions from the stage1.5.  From OKUJI Yoshinori. | 
 | 	* shared_src/fsys_ffs.c: Likewise. | 
 | 	* shared_src/char_io.c: Likewise. | 
 |  | 
 | 1999-03-05  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/char_io.c (getkey): Don't set BUF_DRIVE to -1. | 
 | 	BUF_DRIVE has nothing at all to do with getkey. | 
 |  | 
 | 	* shared_src/common.c (err_list): Change description of ERR_GEOM | 
 | 	to be more informative. | 
 |  | 
 | 	* Makefile.am (configure): Depend on debian/changelog. | 
 |  | 
 | 	* configure.in (host_cpu): Make all fully i386-compatible CPUs be | 
 | 	identified as i386. | 
 | 	(AM_INIT_AUTOMAKE): Fetch values for PACKAGE and VERSION from | 
 | 	debian/changelog, so that we only have one file to update. | 
 |  | 
 | 	* shared_src/asm.S (get_diskinfo): Fix a few bit-twiddling bugs in | 
 | 	the BIOS extension detection code. | 
 | 	(biosdisk) [AWARD_INT13_EXTENSIONS]: Preliminary implementation | 
 | 	of Award's encoding of cylinder bits 10 and 11. | 
 | 	(biosdisk) [NO_INT13_FALLBACK]: If defined, don't use the standard | 
 | 	disk interface if the extended interface fails. | 
 |  | 
 | 	* configure.in: Make sure $(host_cpu) and $(host_vendor) are | 
 | 	substituted into the Makefile. | 
 |  | 
 | 	* e2fs_stage1_5/Makefile.am (pkgdatadir): Install files in | 
 | 	$(datadir)/grub/$(host_cpu)-$(host_vendor). | 
 | 	* fat_stage1_5/Makefile.am: Likewise. | 
 | 	* ffs_stage1_5/Makefile.am: Likewise. | 
 | 	* stage1/Makefile.am: Likewise. | 
 | 	* stage2/Makefile.am: Likewise. | 
 | 	* stage2_debug/Makefile.am: Likewise. | 
 |  | 
 | 1999-03-03  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Use LBA mode if high nibble of | 
 | 	GEOMETRY is nonzero. | 
 | 	(get_diskinfo): Set high nibble of GEOMETRY (0xf0000000) to 1 if | 
 | 	LBA mode is detected. | 
 |  | 
 | 1999-03-02  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/disk_io.c (make_saved_active): Use BIOSDISK_READ and | 
 | 	BIOSDISK_WRITE. | 
 |  | 
 | 	* shared_src/cmdline.c (enter_cmdline): Use BIOSDISK_WRITE. | 
 |  | 
 | 	* shared_src/shared.h (BIOSDISK_SUBFUNC_READ, | 
 | 	BIOSDISK_SUBFUNC_WRITE): Delete constants. | 
 |  | 
 | 	* shared_src/asm.S (biosdisk): Change subfunc argument to be | 
 | 	read=0, write=1. | 
 |  | 
 | 	* configure.in: Drop redundant AC_PROG_INSTALL.  From OKUJI | 
 | 	Yoshinori. | 
 |  | 
 | 1999-03-01  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* debian/rules (binary-arch): Properly install README.debian. | 
 |  | 
 | 	* acinclude.m4 (grub_OBJCOPY_ABSOLUTE): Don't forget to move the | 
 | 	old binary out of the way before reentering the loop. | 
 | 	(grub_ASM_ADDR32): Delete conftest files after running the test. | 
 |  | 
 | 	* debian/rules (binary-arch): Remove empty /sbin directory until | 
 | 	/sbin/grub is installed.  Use $(DESTDIR) instead of $(prefix) to | 
 | 	install files. | 
 |  | 
 | 	* shared_src/asm.S (version_string): Set the version string from | 
 | 	the VERSION specified in configure.in. | 
 |  | 
 | 	* Change all Makefiles into Makefile.ams.  Many major build | 
 | 	environment changes to get Automake/Autoconf working nicely. | 
 |  | 
 | 1999-02-28  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* NEWS: Moved from docs/NEWS. | 
 |  | 
 | 	* configure.in, acinclude.m4: New files for Autoconf.  From OKUJI | 
 | 	Yoshinori. | 
 |  | 
 | 	* AUTHORS, INSTALL: New files. | 
 |  | 
 | 1999-02-24  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* stage1/stage1.S (after_BPB): Do a hard disk probe first, so that | 
 | 	we can work with IDE floppies (like the LS-120). | 
 |  | 
 | 	* Run GNU Indent on */*.[ch]. | 
 |  | 
 | 1999-02-21  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* debian: Add to the distribution, since we maintain the GRUB | 
 | 	Debian package ourselves. | 
 |  | 
 | 	* grub/asmstub.c: New file to implement stubbed assembly functions | 
 | 	under Unix. | 
 |  | 
 | 	* stage1/Makefile: Delete spurious dependencies on Makefile. | 
 | 	* stage2/Makefile: Likewise. | 
 | 	* stage2_debug/Makefile: Likewise. | 
 | 	* grub/Makefile: Likewise. | 
 |  | 
 | 	* shared_src/fsys_ext2fs.c (ext2fs_dir): Follow symbolic links | 
 | 	rather than giving an error. | 
 |  | 
 | 	* shared_src/common.c (err_list): Use labeled elements to | 
 | 	associate messages with error codes. | 
 | 	* shared_src/shared.h: Make error codes into an enumerated type. | 
 |  | 
 | 	* shared_src/common.c (err_list): Add ERR_SYMLINK_LOOP. | 
 | 	* shared_src/shared.h: Likewise. | 
 |  | 
 | 	* shared_src/char_io.c (bcopy): Don't make any assumptions about | 
 | 	the length of an unsigned long. | 
 |  | 
 | 	* grub/Makefile: Treat CFLAGS, CPPFLAGS, LDFLAGS according to | 
 | 	GNU standards. | 
 | 	* stage2/Makefile: Likewise. | 
 | 	* e2fs_stage1_5/Makefile: Likewise. | 
 | 	* fat_stage1_5/Makefile: Likewise. | 
 | 	* ffs_stage1_5/Makefile: Likewise. | 
 |  | 
 | 1999-02-20  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* docs/index.html: Rename to grub.html, so that we don't hide | 
 | 	files in this directory from a web browser. | 
 |  | 
 | 1999-02-15  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* Makefile.end (PROGS): Add grub. | 
 |  | 
 | 	* grub/main.c: New file. | 
 |  | 
 | 	* grub/Makefile: New directory to contain the stage2 Unix program. | 
 |  | 
 | 	* shared_src/cmdline.c: Use substring. | 
 | 	* shared_src/fsys_ext2fs.c: Likewise. | 
 | 	* shared_src/fsys_fat.c: Likewise. | 
 | 	* shared_src/fsys_ffs.c: Likewise. | 
 | 	* shared_src/stage2.c: Likewise. | 
 |  | 
 | 	* shared_src/shared.h: Delete strcmp, declare substring. | 
 |  | 
 | 	* shared_src/char_io.c (strcmp): Rename to `substring', because | 
 | 	this function doesn't behave the same as libc's strcmp. | 
 |  | 
 | 1999-02-14  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/shared.h: (addr32, data32): Delete definitions. | 
 |  | 
 | 	* stage1/stage1.S: Modify to use GAS's new .code16 semantics. | 
 | 	shared_src/asm.S: Likewise. | 
 |  | 
 | 	* configure: Test to see if the `addr32' instruction is supported. | 
 | 	Ian Lance Taylor says that GAS's interpretation of `.code16' has | 
 | 	changed.  Older versions always generated 32-bit code, but | 
 | 	implicitly inserted addr32 and data32 when .code16 was given. | 
 | 	Newer versions generate 16-bit code, and require manual addr32 and | 
 | 	data32 overrides. | 
 |  | 
 | 	* shared_src/shared.h: Add some assertions to check that buffer | 
 | 	addresses are properly defined. | 
 |  | 
 | 1999-02-12  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/stage2.c (run_menu): Pause if we failed to boot both | 
 | 	the default and fallback entries. | 
 |  | 
 | 	* configure: Check to make sure that GAS actually honors .code16 | 
 | 	directives. | 
 |  | 
 | 1999-02-02  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* shared_src/asm.S: Fix typo that called interrupt 0xd (decimal | 
 | 	13) instead of 0x13. | 
 |  | 
 | 1999-01-31  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* e2fs_stage1_5/Makefile: Avoid gratuitous dependencies on | 
 | 	Makefile. | 
 | 	* fat_stage1_5/Makefile: Likewise. | 
 | 	* ffs_stage1_5/Makefile: Likewise. | 
 |  | 
 | 	* Makefile.end (PROGS): Add e2fs_stage1_5, fat_stage1_5, and | 
 | 	grubinst. | 
 | 	(distclean): New GNU standard rule. | 
 |  | 
 | 1998-10-23  Gordon Matzigkeit  <gord@trick.fig.org> | 
 |  | 
 | 	* configure: Accept `--host' as a synonym for `--target', and | 
 | 	accept a non-optional argument as the target name.  Join the | 
 | 	prefix to the tool name with a hyphen. | 
 |  | 
 | 	* shared_src/disk_io.c (print_fsys_type): Always print the | 
 | 	partition type. | 
 |  | 
 | 	* shared_src/stage2.c (run_menu): Check to make sure that the | 
 | 	fallback entry is nonnegative. | 
 | 	(run_menu): For consistency, use `e' rather than enter to edit the | 
 | 	command entry. |