[comp.os.minix] Hard disk & 1.5.5 again.

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