*BSD News Article 34097


Return to BSD News archive

Xref: sserve comp.os.msdos.misc:25287 comp.os.386bsd.questions:12214
Newsgroups: comp.sys.ibm.pc.hardware,comp.os.msdos.misc,comp.os.386bsd.questions
Path: sserve!newshost.anu.edu.au!munnari.oz.au!bunyip.cc.uq.oz.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!pipex!uknet!festival!edcogsci!richard
From: richard@cogsci.ed.ac.uk (Richard Tobin)
Subject: Re: MS-DOS can't see disk, BSD can
Message-ID: <Cu8pJw.IvK@cogsci.ed.ac.uk>
Organization: HCRC, University of Edinburgh
References: <Cu2D5v.GEr@cogsci.ed.ac.uk>
Date: Mon, 8 Aug 1994 23:35:54 GMT
Lines: 31

Thanks to those who already tried to help me with this.  I have found
out some more about the problem:

I tried running "ide_conf".  It told me that the BIOS believed the
disk had 1024 cylinders, 0 heads and 0 sectors.  The values it got
from the controller were the ones I expected (816/15/32 -  these
are also the values in the non-volatile memory, as shown by the setup
program).

ide_conf seems to get the BIOS values by following pointers at
addresses 104 for disk 0 and 118 for disk 1.  104 contains 40:00b6
which contains the (correct) parameters for drive 0.  Immediately
afterwards, at 40:00c6, are the correct values for drive 1 (which is
the one with the problem).  However, the pointer at 118 doesn't point
there, it points to 40:0041, which contains rubbish.

I used MSDOS debug to change the pointer at 118 to be 40:00c6,
and this "fixes" the problem (until I reboot, of course).

Can anyone explain what's going on here?  I take it that the system
copies the parameters from the non-volatile memory at boot time; it
seems to be copying them correctly but setting the pointers to them
incorrectly.  Do these pointers also come from the non-volatile
memory?

-- Richard
-- 
Richard Tobin, HCRC, Edinburgh University                 R.Tobin@ed.ac.uk

Ooooh!  I didn't know we had a king.  I thought we were an
autonomous collective.