Date: Mon, 1 May 2006 14:02:08 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-hackers@freebsd.org Cc: Giorgos Keramidas <keramida@ceid.upatras.gr>, Alex Zbyslaw <xfb52@dial.pipex.com> Subject: Re: Boot manager beep (revisited) Message-ID: <200605011402.10403.jhb@freebsd.org> In-Reply-To: <20060501130704.GA57024@gothmog.pc> References: <445581DE.50901@centtech.com> <20060501130354.GA17701@toler.leo.org> <20060501130704.GA57024@gothmog.pc>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 01 May 2006 09:07, Giorgos Keramidas wrote: > On 2006-05-01 15:03, Daniel Lang <langd-freebsd-hackers@leo.org> wrote: > > Alex Zbyslaw wrote on Mon, May 01, 2006 at 10:31:34AM +0100: > > [..] > > > >off by setting WITHOUT_BOOTEASY_BEEP in `/etc/src.conf'. > > [..] > > > WITH_BOOTEASY_BEEP so that it's off by default unless you turn it on > > > > Regardless what you decide, if such an option is created, please > > call it WITH/WITHOUT_BOOTZERO_BEEP or WITH/WITHOUT_BOOT0_BEEP. > > > > The current FreeBSD bootmanager is called 'boot0'. It has replaced > > booteasy (which was indeed used in the past) centuries ago. > > I'll do, thanks for the careful review of the diff :) How about the patch below. It restores the behavior of the beep only happening for invalid input by axeing the BSD/OS partition type from the lookup table. Index: boot0.S =================================================================== RCS file: /usr/cvs/src/sys/boot/i386/boot0/boot0.S,v retrieving revision 1.14 diff -u -r1.14 boot0.S --- boot0.S 8 Feb 2005 20:43:04 -0000 1.14 +++ boot0.S 1 May 2006 18:00:37 -0000 @@ -29,7 +29,7 @@ .set PRT_OFF,0x1be # Partition table .set TBL0SZ,0x3 # Table 0 size - .set TBL1SZ,0xb # Table 1 size + .set TBL1SZ,0xa # Table 1 size .set MAGIC,0xaa55 # Magic: bootable .set B0MAGIC,0xbb66 # Identification @@ -198,12 +198,16 @@ movb _OPT(%bp),%dl # Display decw %si # default callw putkey # key + jmp main.7_1 # Skip beep /* - * Start of input loop. Beep and take note of time + * Users's last try was bad, beep in displeasure. */ main.10: movb $ASCII_BEL,%al # Signal callw putchr # beep! - xorb %ah,%ah # BIOS: Get +/* + * Start of input loop. Take note of time + */ +main.7_1: xorb %ah,%ah # BIOS: Get int $0x1a # system time movw %dx,%di # Ticks when addw _TICKS(%bp),%di # timeout @@ -410,7 +414,7 @@ * These values indicate bootable types we know the names of. */ .byte 0x1, 0x6, 0x7, 0xb, 0xc, 0xe, 0x83 - .byte 0x9f, 0xa5, 0xa6, 0xa9 + .byte 0xa5, 0xa6, 0xa9 /* * These are offsets that match the known names above and point to the strings * that will be printed. os_misc will be used if the search of the above table @@ -423,7 +427,6 @@ .byte os_dos-. # Windows .byte os_dos-. # Windows .byte os_linux-. # Linux - .byte os_bsd-. # BSD/OS .byte os_freebsd-. # FreeBSD .byte os_bsd-. # OpenBSD .byte os_bsd-. # NetBSD -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605011402.10403.jhb>