ast@cs.vu.nl (Andy Tanenbaum) (06/02/88)
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 */