[comp.sys.ibm.pc] Hard drive/Controller

mdharding@dahlia.waterloo.edu (Matthew D. Harding) (06/08/89)

To all the people who answered my plea for help: Thank you very much.

But it is still not answered!!! Nearly everyone suggested that it is probably
not low-level formatted, and suggested using debug and the command g=c800:5
to intiate the ROM program. However, this hangs my machine big time, generating
1) Divide overflow, or 2)clear screen and hang, or 3) cold reboot, or any combo
of the above. Many people suggested that I should do this if my controller is
Western Digital. I'm guessing it's not, but how can I be sure? There are no
markings on my controller card, except for various IBM logos - does this mean
it's a (gasp) IBM controller? (No wonder nothing works).

So what's next? How can I tell if it is a WD controller? Or what controller at
all? Is there a way I can low-level format without using debug (ow what is the
correct debug command)? Am I neck-deep in sh*t for the rest of my life?

Please keep those suggestions coming, and I'll summarize when (if) I ever get
it working.

BTW, I am using DOS 3.1 or DOS 3.3, if that helps (although I can't see why).

Cheers, Matt.

hashemi@leadsv.UUCP (Rahmat O. Hashemi) (06/09/89)

In article <14348@watdragon.waterloo.edu> mdharding@dahlia.waterloo.edu (Matthew D. Harding) writes:
>So what's next? How can I tell if it is a WD controller? Or what controller at
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Look for the chip set on the controller, see if it had WDxxxx or WDCxxxx on it.


>all? Is there a way I can low-level format without using debug (ow what is the
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some disk manager utilities let you do low_level format.

>correct debug command)? Am I neck-deep in sh*t for the rest of my life?
No, don't feel despared. Where there is a problem, there is a solution(may be
the wrong solution, but nontheless, a solution :-) ).

bobmon@iuvax.cs.indiana.edu (RAMontante) (06/10/89)

mdharding@dahlia.waterloo.edu (Matthew D. Harding) :
-
-But it is still not answered!!! Nearly everyone suggested that it is probably
-not low-level formatted, and suggested using debug and the command g=c800:5
-to intiate the ROM program. However, this hangs my machine big time, generating
-1) Divide overflow, or 2)clear screen and hang, or 3) cold reboot, or any combo
-of the above. Many people suggested that I should do this if my controller is
-Western Digital. I'm guessing it's not, but how can I be sure? There are no
-	[ ... ]
-correct debug command)? Am I neck-deep in sh*t for the rest of my life?

Well, I can't speak to your last question :-) but here is something that
may be small helpful.  It's a dump of the ROM on my HD controller.  I have
an Adaptec 2070A controller, and its ROM starts at a slightly different
location than you cited for WD.  (namely c800:ccc) I don't know if there's
information in front of that or not (forgot to look), but this is what the
beginning of my ROM's executable looks like.  You might be able to find
something similar in the c800:somewhere address space...

Following is a hex display of the first few bytes of the code (from
Buerg's excellent LIST utility).  Then an unassembly from DEBUG, showing
the instructions and with the initial text string commented in for
clarity's sake.  Note that the Adaptec program starts with a jump around
their copyright notice, to the "real" start of the routine.  If other
mfr's do this as well, the start will be easier to find.  Otherwise, if
you're good enough with assembler you can look for code that does similar
things.  Hope this helps.

	________________________________


LIST       1             06-10-89 07:20  HDFMT

000000  EB 25 90 28 63 29 20 63-6F 70 79 72 69 67 68 74  .%.(c) copyright
000010  2C 20 41 64 61 70 74 65-63 20 49 6E 63 2E 20 31  , Adaptec Inc. 1
000020  39 38 34 20 30 34 20 8C-C8 8E D8 8E C0 BC 00 30  984 04 ........0
000030  BD 00 20 B9 42 00 BE 00-00 B0 00 88 02 46 E2 FB  .. .B........F..
000040  C6 46 0E 00 C6 46 26 02-BA 00 1C E8 AC 0C E8 BC  .F...F&.........
000050  08 BA 80 00 B9 01 00 B4-00 CD 13 BA 80 00 B9 01  ................
000060  00 B4 11 CD 13 BA 81 00-B9 01 00 B4 11 CD 13 BA  ................
000070  4D 09 E8 4D 0C 72 F8 3D-03 00 72 F3 3D 09 00 77  M..M.r.=..r.=..w


C:\TMP debug
-
-uc800:ccc

C800:0CCC EB25          JMP     0CF3
C800:0CCE 90            NOP

    --(c) copyright, Adaptec Inc. 1984 04 --	delimiting dashes
						are mine -- bob, mon.
C800:0CF3 8CC8          MOV     AX,CS
C800:0CF5 8ED8          MOV     DS,AX
C800:0CF7 8EC0          MOV     ES,AX
C800:0CF9 BC0030        MOV     SP,3000
C800:0CFC BD0020        MOV     BP,2000
C800:0CFF B94200        MOV     CX,0042
C800:0D02 BE0000        MOV     SI,0000
C800:0D05 B000          MOV     AL,00
C800:0D07 8802          MOV     [BP+SI],AL
C800:0D09 46            INC     SI
C800:0D0A E2FB          LOOP    0D07
C800:0D0C C6460E00      MOV     BYTE PTR [BP+0E],00
C800:0D10 C6462602      MOV     BYTE PTR [BP+26],02
C800:0D14 BA001C        MOV     DX,1C00
C800:0D17 E8AC0C        CALL    19C6
C800:0D1A E8BC08        CALL    15D9
C800:0D1D BA8000        MOV     DX,0080
C800:0D20 B90100        MOV     CX,0001
C800:0D23 B400          MOV     AH,00
C800:0D25 CD13          INT     13
C800:0D27 BA8000        MOV     DX,0080
C800:0D2A B90100        MOV     CX,0001
C800:0D2D B411          MOV     AH,11
C800:0D2F CD13          INT     13
C800:0D31 BA8100        MOV     DX,0081
C800:0D34 B90100        MOV     CX,0001
C800:0D37 B411          MOV     AH,11
C800:0D39 CD13          INT     13
C800:0D3B BA4D09        MOV     DX,094D
C800:0D3E E84D0C        CALL    198E
C800:0D41 72F8          JB      0D3B
C800:0D43 3D0300        CMP     AX,0003
C800:0D46 72F3          JB      0D3B
C800:0D48 3D0900        CMP     AX,0009
C800:0D4B 77EE          JA      0D3B
C800:0D4D 884610        MOV     [BP+10],AL
C800:0D50 BA3609        MOV     DX,0936
C800:0D53 E8250C        CALL    197B
C800:0D56 2C30          SUB     AL,30
C800:0D58 72F6          JB      0D50
C800:0D5A 3C01          CMP     AL,01
C800:0D5C 77F2          JA      0D50
C800:0D5E 0C80          OR      AL,80
C800:0D60 8AD0          MOV     DL,AL
C800:0D62 88460F        MOV     [BP+0F],AL
C800:0D65 B84000        MOV     AX,0040
C800:0D68 8ED8          MOV     DS,AX
C800:0D6A D2E2          SHL     DL,CL
C800:0D6C 88164300      MOV     [0043],DL
C800:0D70 8CC8          MOV     AX,CS
C800:0D72 8ED8          MOV     DS,AX
C800:0D74 BA7009        MOV     DX,0970
C800:0D77 E8010C        CALL    197B
C800:0D7A 3C4E          CMP     AL,4E
C800:0D7C 7456          JZ      0DD4
C800:0D7E 3C59          CMP     AL,59
C800:0D80 75F2          JNZ     0D74
C800:0D82 E8EB0B        CALL    1970

	etc...

chan@chansw.UUCP (Jerry H. Chan) (06/12/89)

In article <14348@watdragon.waterloo.edu>, mdharding@dahlia.waterloo.edu (Matthew D. Harding) writes:
> To all the people who answered my plea for help: Thank you very much.
> 
> But it is still not answered!!! Nearly everyone suggested that it is probably
> not low-level formatted, and suggested using debug and the command g=c800:5
> to intiate the ROM program. However, this hangs my machine big time, generating
> 1) Divide overflow, or 2)clear screen and hang, or 3) cold reboot, or any combo
> of the above. Many people suggested that I should do this if my controller is

Not all HD controllers allow you to perform a low-level format on your disk.
It depends on whether or not you have a BIOS on your HD controller with the
necessary "program" in ROM.  One quick way that you can check is to disassemble
a the code at C800:5 via debug by typing DEBUG at the DOS prompt followed by
"u c800:5".  If there is legitimate code there and not a bunch of 0's or F's,
then you probably have the BIOS necessary to perform a low level format via
debug.

Other alternatives are to buy low-level formatting utilities (i.e., Disk
Manager, Speedstor) or to get a hold on a public-domain low-level formatter.
I can't recommend any such public domain program since I personally haven't
tried one.  Check out your local BBS if you don't want to buy a commercial
product.

BTW, I use Disk Manager regularly (you get these free w/purchase of Seagate
disks) with lots of success.  Their phone number is 1-800-752-1333, or in
MN, 612-937-1107.  I have no affiliation with this company other than being
a (generally) satisfied customer.

Good luck.

-- 
----------
Jerry Chan (encore!chansw!chan) 508-853-0747 | "My views necessarily reflect the
Chan Smart!Ware Computer Services & Products |  views of the Company because
Worcester, MA 01606                          |  I *am* the Company." :-)

grinberg@bimacs.BITNET (Dennis Grinberg) (06/12/89)

In article <14348@watdragon.waterloo.edu> mdharding@dahlia.waterloo.edu (Matthew D. Harding) writes:
>To all the people who answered my plea for help: Thank you very much.
>
>But it is still not answered!!! Nearly everyone suggested that it is probably
>not low-level formatted, and suggested using debug and the command g=c800:5
>to intiate the ROM program. However, this hangs my machine big time, generating
>1) Divide overflow, or 2)clear screen and hang, or 3) cold reboot, or any combo
>of the above. Many people suggested that I should do this if my controller is
>Western Digital. I'm guessing it's not, but how can I be sure? There are no
>markings on my controller card, except for various IBM logos - does this mean
>it's a (gasp) IBM controller? (No wonder nothing works).
>
I've seen a copy of the documentation for a WD (!!) controller that states
that because it has no on board ROM, a low level format must be done
using the IBM PC-AT advanced diagnostics.  Unfortunately, I don't remember
which controller it was.  (The controller was in an AT machine)
Hope this helps a little.................
--
Dennis Grinberg, Math & CS Department, Bar-Ilan University, Ramat-Gan ISRAEL
BITNET:   grinberg@bimacs.bitnet
INTERNET: grinberg@bimacs.biu.ac.il
CSNET:    grinberg%bimacs.bitnet%cunyvm.cuny.edu@csnet-relay
ARPA:     grinberg%bimacs.bitnet@cunyvm.cuny.edu
UUCP:     ...!uunet!mcvax!humus!bimacs!grinberg
SNAILNET: Dennis Grinberg, 13 Hava Lutzki St., Rehovot, ISRAEL

mdharding@dahlia.waterloo.edu (Matthew D. Harding) (06/13/89)

Well, I have to publicly thank the net for solving my seemingly insurmountable
problem. My hard drive / controller is now up and working fine, and all it
needed was a low-level format. Unfortunately, it was an original IBM (Xebec)
controller, and thus had no formatting program in the ROM itself (like 99% of
the people suggested). Anyway, a few people recommended disk utilities to me
and I wound up using Speedstor, a commercial program that I would recommend
to anyone. It is extremely versatile and very powerful, and had me up running
in about 10 minutes.

Why did I not do this right away you ask? Two reasons - 1) I had just taken a 
working hard drive and controller out of one machine, and transplanted it
into another machine, with _NO_ alteration of anything, and presto, low-level
format required. (Don't ask me why - it's an IBM controller, need I say more?)
2) I had the advanced diagnostics PC disk, but when I went to format a disk,
I realized I didn't want to format after all. Escape didn't work, and in 
response to the what drive? prompt, 9 didn't work. So what did I do? I typed 0,
hoping this would back me up one level, and in response to 0 it STARTED
FORMATTING MY A DRIVE (with the diagnostics disk in, of course). Boy oh boy.
Gotta love that.

Anyway, I received 37 responses in my mail, not counting the few that were
posted, and special thanks go to crowed@ece.orst.edu and davis@cs.unc.edu, who
were of extreme help. Once again, you have all confirmed my belief that the net
is the greatest exchange of information anywhere in the world. Thanks and
good night.

Cheers, Matt.

wallagh@tjalk.cs.vu.nl (Wallagh Serge R) (06/15/89)

In article <887@bimacs.BITNET> grinberg@bimacs.UUCP (Dennis Grinberg) writes:
>
>>
>>But it is still not answered!!! Nearly everyone suggested that it is probably
>>not low-level formatted, and suggested using debug and the command g=c800:5
>>to intiate the ROM program. However, this hangs my machine big time, generating
>>1) Divide overflow, or 2)clear screen and hang, or 3) cold reboot, or any combo
>>of the above. Many people suggested that I should do this if my controller is
>>Western Digital. I'm guessing it's not, but how can I be sure? There are no
>>markings on my controller card, except for various IBM logos - does this mean
>>it's a (gasp) IBM controller? (No wonder nothing works).
>>

I have had the same problems  with my Olivetti M24 (= AT&T 6300) too.
The problem is not that the controller had no ROM (although there are
some controllers who don't have a ROM).
The problem was, that my PC was not able to USE that extended ROM.
 
The solution was simple: I had to use the program FMTDRIVE to 
low-level format my drive.
After that, I had no problems anymore.
 
				Serge Wallagh (wallagh@cs.vu.nl)

howard@hpcvra.CV.HP.COM (Howard Honig) (06/15/89)

Good to hear you solved your problem.  I had a similar experience and
solved it by a kind hearted local computer salesmen who gave me a copy
of Disk Manager.

One more thing you may want to try if I can get my $0.02 in,  
since you have reformated the disk using a low level formatter, you
may have used the default settings for the interleave factor.  Try
getting your hands on a copy of Spinwrite.  It will analyze your disk
for defects, and let you know what the optimum interleave factor is.
Usually, 20Meg drive will default to a 3, when a faster AT machine can
have better throughput at a 2:1 or even a 1:1 interleave factor increasing
data transfer time by 80% or more.  

Spinwrite is unique in that it will allow you to change the interleave
factor without losing what data is on the disk (Caveat: back it up
anyway).

Howard Honig

Bob.Farley@f94.n129.z1.Fidonet.Org (Bob Farley) (09/29/89)

I hope your question/problem has been solved by now, but if not the
following may be of help.  If you have access to Disk Manager by
On-Track
Computer Systems you should be able to perform a low-level format.
Seagate manuals are a good source if your cables/drive select
jumpers, and terminating resistors are suspect.  Good luck!

--  
Bob Farley via The Heart of Gold UUCP<>Fidonet Gateway, 1:129/87
UUCP: ...!{lll-winken,psuvax1}!psuhcx!hogbbs!94!Bob.Farley
Internet: Bob.Farley@f94.n129.z1.Fidonet.Org