Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!brl-adm!seismo!mcvax!botter!tjalk!comp13 From: comp13@tjalk.UUCP Newsgroups: comp.os.minix Subject: BUG/FIX: floppy errors on 8Mhz AT Message-ID: <770@tjalk.cs.vu.nl> Date: Wed, 11-Feb-87 15:14:54 EST Article-I.D.: tjalk.770 Posted: Wed Feb 11 15:14:54 1987 Date-Received: Thu, 12-Feb-87 22:19:04 EST Reply-To: comp13@cs.vu.nl (Ogilvie R P) Distribution: world Organization: V.U. Informatica, Amsterdam, the Netherlands Lines: 32 BUG REPPORT / FIX ================= Problem: couldn't read floppies on 8Mhz AT Machine: Kaypro 286i Western Digital WD1003-WA3 floppy/HD-controller Fix: Routine "fdc_results" (p.490, line 2841) should loop until "master available". Description ----------- After an operation the status-results must be collected from the floppy-disk controller (FDC). This is a loop (L.2850-2861) in which the FDC first indicates that is ready to send them. This is a handshake by which the FDC sets a bit in the status-word it returns. The current routine only asks once if the controler is ready; if it is not it returns an error. On my 8Mhz machine it took more then once to get the status (I didn't count how many times; I set the loop-count to 20). My replacement code is: 2852 j=0; do { 2852a port_in (FDC_STATUS, &master); 2852b } while ((status & MASTER)==0 && j++