As promised, I've done a little work on the WD server, with quite useful
results. Basically, the other "kludge" parameters should no longer be
needed when running the server at startup. I hope that a simple:
        ../wd/wd d0:readp d1:readp
will work for everyone's disks - it works for mine. The patch is pretty
straightforward, enjoy.
---[begin included patch]---
--- c:\unix\tmp/T0AA.AAA	Fri Sep 17 02:42:18 1993
+++ wd.c	Fri Sep 17 02:39:04 1993
@@ -161,8 +161,9 @@
                         uint s = parm[unit].w_size * SECSZ;
                         const uint m = 1024*1024;
 
-			printf("wd%d: %d.%dM\n", unit,
-				s / m, (s % m) / (m/10));
+			printf("wd%d: %d.%dM - %d heads, %d cylinders, %d sectors\n", unit,
+				s / m, (s % m) / (m/10),
+				parm[unit].w_tracks, parm[unit].w_cyls, parm[unit].w_secpertrk);
                         found_first = 1;
                         if (unit < first_unit) {
                                 first_unit = unit;
@@ -460,6 +461,17 @@
         }
         repinsw(WD_PORT+WD_DATA, buf, sizeof(buf)/sizeof(ushort));
         bcopy(buf, &xw, sizeof(xw));
+
+	/*
+	 * Give the controller the geometry. I'm not really sure why my
+	 * drive needs the little delay, but it did... (pat)
+	 */
+	__msleep(100);
+	outportb(WD_PORT+WD_SDH, WDSDH_EXT|WDSDH_512 | (unit << 4) | (xw.w_heads - 1));
+	outportb(WD_PORT+WD_SCNT, xw.w_sectors);
+	if (wd_cmd(WDC_SPECIFY) < 0) {
+		return;
+	}
 
         /*
          * Fix big-endian lossage
--- c:\unix\tmp/T0AA.AAA	Fri Sep 17 02:42:24 1993
+++ wd.h	Mon Sep 13 01:31:54 1993
@@ -60,6 +60,7 @@
 #define WDC_WRITE	0x30	/*  ...write */
 #define WDC_READP	0xEC	/*  ...read parameters */
 #define WDC_DIAG	0x90	/* Run controller diags */
+#define WDC_SPECIFY	0x91	/* Initialise controller parameters */
 
 /*
  * Read parameters command (WDC_READP) returns this.  I think this
---[end included patch]---
-- Pat -- Alien lands on head, gives birth to mutant.Received on Thu Sep 16 12:17:42 1993
This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 19:37:12 PDT