dslg0849@uxa.cso.uiuc.edu (Daniel S. Lewart) (09/18/90)
I just managed to zap the CMOS on my IBM PC AT. In order to recover, I ran SETUP from the Diagnostic disk. At one point, it asks me for the Fixed Disk Type which is supposed to be in the range 1-47. Here are my questions: 1) How can I figure out what the appropriate number is? 2) What does it mean? 3) Is there a table of type values somewhere? 4) How can I tell when my CMOS battery is dead without opening things up? Thank you, Daniel Lewart
rcollins@altos86.Altos.COM (Robert Collins) (09/19/90)
In article <1990Sep18.100108.9119@ux1.cso.uiuc.edu> dslg0849@uxa.cso.uiuc.edu (Daniel S. Lewart) writes: >I just managed to zap the CMOS on my IBM PC AT. In order to recover, I ran >SETUP from the Diagnostic disk. At one point, it asks me for the Fixed Disk >Type which is supposed to be in the range 1-47. Here are my questions: > >1) How can I figure out what the appropriate number is? * Open the computer up and get the drive manufacturer and model number. * Use that number to obtain how many cylinders, heads, and write precomp the drive uses. (no write precomp is -1, or FFFF) * Convert these numbers to hex. * Go into debug and look at F000:E401 (this is the hard disk parameter table. The format of the table is as follows: DW # OF CYLINDERS DB # OF HEADS DW 0 DW WRITE PRECOMP DB 0 DB CONTROL BYTE DB 3 dup (0) DW LANDING ZONE DB # SECTORS/CYLINDER DB RESERVED FOR FUTURE USE As you can figure from this description, each entry is 16 bytes. Therefore, the entry at F000:E401 maps to drive type 1. The entry at F000:E411 maps to drive type two. Etc. * Find the drive type that matches your manufacturers parameters. (just match the cylinders & heads on your IBM AT) * DRIVE TYPE = ((DRIVE_TABLE_ADDR - E401) / 10H) That should take care of you. >2) What does it mean? It is an index into the table I just described. >3) Is there a table of type values somewhere? Yes, it is at F000:E401. After you set the drive type, and boot your computer, look at the INT41 vector. INT41 is a pointer to the drive parameter table entry for device 80h, and INT46 is a pointer for device 81h. If you take the DWORD address at 0:4*41h (0:104h) you will notice it points to your DRIVE_TABLE_ADDR! Hope this helps -- "Worship the Lord your God, and serve him only." Mat. 4:10 Robert Collins UUCP: ...!sun!altos86!rcollins HOME: (408) 225-8002 WORK: (408) 432-6200 x4356
dslg0849@uxa.cso.uiuc.edu (Daniel S. Lewart) (09/19/90)
My PC AT has completely recovered thanks to the following people: Conway Yee Kevin Martin Michael Volow Robert Collins Here is some info in addition to Robert Collins' excellent post: 1) The hard disk has a sticker with the disk type stamped on it. 2) There is a useful file in the simtel20/wuarchive archives which prints out the hard disk parameter table: Directory PD1:<MSDOS.DSKUTL> DRVTYPES.ARC B 5968 880324 Display drive types your AT recognizes