From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CEEKa-0001Lq-6V for qemu-devel@nongnu.org; Sun, 03 Oct 2004 17:55:48 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CEEKZ-0001LS-Ph for qemu-devel@nongnu.org; Sun, 03 Oct 2004 17:55:47 -0400 Received: from [129.104.30.34] (helo=a.mx.polytechnique.org) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CEEDd-0001Yy-OC for qemu-devel@nongnu.org; Sun, 03 Oct 2004 17:48:38 -0400 Received: from localhost (localhost [127.0.0.1]) by djali.polytechnique.org (Postfix) with ESMTP id D9F95331BC for ; Sun, 3 Oct 2004 23:48:38 +0200 (CEST) Received: from djali.polytechnique.org ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03439-02 for ; Sun, 3 Oct 2004 23:48:38 +0200 (CEST) Received: from bellard.org (unknown [84.99.204.244]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTP id 717A1331B4 for ; Sun, 3 Oct 2004 23:48:38 +0200 (CEST) Message-ID: <416073E6.6080009@bellard.org> Date: Sun, 03 Oct 2004 23:49:26 +0200 From: Fabrice Bellard MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: Qemu floppy emulation problems - partially solved References: <001301c48538$f9e406b0$0401a8c0@putte2k> <20040831175536.A29557@edinburgh.cisco.com> In-Reply-To: <20040831175536.A29557@edinburgh.cisco.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Applied a modified version. Tell me if it works. Fabrice. Derek Fawcus wrote: > On Wed, Aug 18, 2004 at 05:35:19PM +0200, Mike Nordell wrote: > >>Johannes Martin wrote: >> >>1. diskette_param_table in rombios.c from Bochs is too short. It neeed two >>more bytes, else e.g. NT believes the floppy only got 31 cylinders (the code >>following the table begins with "push ds", 0x1e, and that just happens to be >>"maximum track" NT expects). Append: >>db 79 >>db 0 >> >>This is obvious if looking at the registry value >>HKLM\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\x\DiskController\y\Flo >>ppyDiskPeripheral\0\Configuration Data. >> >>(x, y was 5 and 0 respectively on a real machine, but you might experience >>local fluctuations) >> >>Compare the last two bytes from a real system (working) with a non-working >>QEMU-installed system. > > > Well that would seem to be an error in the NT code, or we're triggering > something in the NT code which makes it seem to think there should be > a larger table. > > The original table was only 11 bytes (as in the Bochs BIOS), you can > look at the interrupt list to see. It seems there is an enhancement > that adds an additional 3 bytes. > > However from the layout of the BIOS, it looks as if there is no room > to expand the table in place, one'll have to have the param table pointer > (int 1e) point somewhere else. > > Anyway, I hacked something up if you want to try... > > The diff is at http://www.employees.org/~dfawcus/rombios.c-diff, and the > rom image is at http://www.employees.org/~dfawcus/bios.bin > > I've not tried your other diffs yet. > > DF > > Format of diskette parameter table: > Offset Size Description (Table 01264) > 00h BYTE first specify byte > bits 7-4: step rate (Fh=2ms,Eh=4ms,Dh=6ms,etc.) > bits 3-0: head unload time (0Fh = 240 ms) > 01h BYTE second specify byte > bits 7-1: head load time (01h = 4 ms) > bit 0: non-DMA mode (always 0) > Note: The DOS boot sector sets the head load time to 15ms, > however, one should retry the operation on failure > 02h BYTE delay until motor turned off (in clock ticks) > 03h BYTE bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024) > 04h BYTE sectors per track (maximum if different for different tracks) > 05h BYTE length of gap between sectors (2Ah for 5.25", 1Bh for 3.5") > 06h BYTE data length (ignored if bytes-per-sector field nonzero) > 07h BYTE gap length when formatting (50h for 5.25", 6Ch for 3.5") > 08h BYTE format filler byte (default F6h) > 09h BYTE head settle time in milliseconds > 0Ah BYTE motor start time in 1/8 seconds > ---IBM SurePath BIOS--- > 0Bh BYTE maximum track number > 0Ch BYTE data transfer rate > 0Dh BYTE drive type in CMOS > > > > _______________________________________________ > Qemu-devel mailing list > Qemu-devel@nongnu.org > http://lists.nongnu.org/mailman/listinfo/qemu-devel > >