--- main.c	Mon Nov  5 18:58:30 2001
+++ main.c.new	Thu Nov 15 01:45:12 2001
@@ -149,21 +151,49 @@
 static unsigned short ipchksum(unsigned short *ip, int len);
 static unsigned short udpchksum(struct iphdr *packet);
 
+
+#if defined(ASK_BOOT) && ASK_BOOT > 0 && (ANS_DEFAULT == ANS_AUTO)
+/*
+ * Read Installed Hard Disk Count from BIOS memory at 0:0475
+ */
+static int hdsk_cnt(void)
+{
+	int retv;
+	__asm__ __volatile__(
+       "xorw %%ax,%%ax\n\t"
+       "movb 0x475,%%al\n"
+       : "=a" (retv)
+       : /* no inputs */
+       : "ax", "cc", "memory"
+	);
+	return(retv);
+}
+#endif /* ASK_BOOT && ANS_AUTO */
+
+
 static inline void ask_boot(void)
 {
 #if defined(ASK_BOOT) && ASK_BOOT > 0
 	while(1) {
-		int c;
+		int c, deflt;
 		unsigned long time;
+#if defined(ASK_BOOT) && ASK_BOOT > 0 && (ANS_DEFAULT == ANS_AUTO)
+		if (hdsk_cnt() != 0)
+			deflt = ANS_LOCAL;
+		else
+			deflt = ANS_NETWORK;
+#else
+		deflt = ANS_DEFAULT;
+#endif
 		printf(ASK_PROMPT);
 		for (time = currticks() + ASK_BOOT*TICKS_PER_SEC; !iskey(); )
 			if (currticks() > time) {
-				c = ANS_DEFAULT;
+				c = deflt;
 				goto done;
 			}
 		c = getchar();
 		if ((c >= 'a') && (c <= 'z')) c &= 0x5F;
-		if (c == '\n') c = ANS_DEFAULT;
+		if (c == '\n') c = deflt;
 done:
 		if ((c >= ' ') && (c <= '~')) putchar(c);
 		putchar('\n');
