comp13@tjalk.UUCP (02/11/87)
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++ <MASTER_WAIT); All linenumbers refer to the book.