Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!uw-beaver!cornell!batcomputer!itsgw!steinmetz!uunet!mcvax!botter!ast
From: ast@cs.vu.nl (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: V1.3 floppy.c with request for testing (especially 386s)
Message-ID: <1896@botter.cs.vu.nl>
Date: 1 Jun 88 21:49:36 GMT
Reply-To: ast@cs.vu.nl (Andy Tanenbaum)
Organization: VU Informatica, Amsterdam
Lines: 34

Here is the 1.3 floppy.c diff listing (against 1.2).  I hope it works on
8088, 286, and 386 machines.  It incorporates Bruce Evans' fix, but with a
shorter delay loop.  I hope it is enough.  I would appreciate people testing
it on various machines and letting me know (1) which machine and (2) if it
worked.  I am especially interested in 386s.

Andy Tanenbaum (ast@cs.vu.nl)


----------------------------- diffs to floppy.c ----------------
6c6
<  *    m_type      DEVICE    PROC_NR     COUNT    POSITION  ADRRESS
---
>  *    m_type      DEVICE    PROC_NR     COUNT    POSITION  ADDRESS
221c221
<   fp->fl_sector = (int) interleave[block % nr_sectors[d]];
---
>   fp->fl_sector = (int) interleave[(int)(block % nr_sectors[d])];
338c338
<  * Interrupts must be disabled temporarily to prevent clock interrupt from
---
>  * Interrupts must be disabled temporarily to prevent clock interrupts from
408a409
>   fp->fl_curcyl = (r == OK ? fp->fl_cylinder : -1);
431c432
<   /* The command is issued by outputing 9 bytes to the controller chip. */
---
>   /* The command is issued by outputting 9 bytes to the controller chip. */
476c477
<   int i, j, status, ready;
---
>   int i, j, k, status, ready;
481a483
> 		for (k = 0; k < 32; k++) ;	/* delay loop for 386 */