Stickey (sbakker@cs.vu.nl) (03/08/90)
Hello, again. Recently I posted an article about my hard disk not working. I've already had some reactions to it and I want to thank everybody for that. Seems I forgot to mention the controller: it's a NEC (floppy is a Zilog, by the way). So, It's a Laser XT-3, 10 MHz, 5.25" floppy (Zilog chip), 20 Mb Seagate ST225 (NEC controller). Message I get: "hard disk won't reset, status = 0". I wanted to see how my controller reacted to a 0 being written into its status register. So I wrote w_reset into a little testprogram, compiled it with Turbo-C and got the following results: - A few times 0x1e (= 0x2 | 0x4 | 0x8), - A little more 0x10, - A lot of 0x00. W_reset() in xt_wini.c is waiting for 0x1 | 0x4 | 0x8 (0x0d) in the status, instead there's 0x2 | 0x4 | 0x8 (0xe) in the status. 0x10 is treated as an error. Questions: 1. What does 0x10 mean? It's not documented in the code (except for /** What is 10? 20 = interrupt **/). 2. Why do I get WST_INP (0x2) instead of WST_REQ (0x1) ? Has my controller swapped them (i.e. should WST_INP be WST_REQ)? I hope someone knows. Thanks in advance, Steven (sbakker@cs.vu.nl).
stickey@canremote.uucp (Stickey) (03/10/90)
From: Stickey (sbakker@cs.vu.nl) Orga: Fac. Wiskunde & Informatica, VU, Amsterdam Hello, again. Recently I posted an article about my hard disk not working. I've already had some reactions to it and I want to thank everybody for that. Seems I forgot to mention the controller: it's a NEC (floppy is a Zilog, by the way). So, It's a Laser XT-3, 10 MHz, 5.25" floppy (Zilog chip), 20 Mb Seagate ST225 (NEC controller). Message I get: "hard disk won't reset, status = 0". I wanted to see how my controller reacted to a 0 being written into its status register. So I wrote w_reset into a little testprogram, compiled it with Turbo-C and got the following results: - A few times 0x1e (= 0x2 | 0x4 | 0x8), - A little more 0x10, - A lot of 0x00. W_reset() in xt_wini.c is waiting for 0x1 | 0x4 | 0x8 (0x0d) in the status, instead there's 0x2 | 0x4 | 0x8 (0xe) in the status. 0x10 is treated as an error. Questions: 1. What does 0x10 mean? It's not documented in the code (except for /** What is 10? 20 = interrupt **/). 2. Why do I get WST_INP (0x2) instead of WST_REQ (0x1) ? Has my controller swapped them (i.e. should WST_INP be WST_REQ)? I hope someone knows. Thanks in advance, Steven (sbakker@cs.vu.nl). --- * Via MaS/HST/V32/PEP - UN Tanenbaum's MINIX * Via Usenet Newsgroup comp.os.minix