dfl@.COM (David Lively) (09/11/89)
Hi, I've got a Seagate ST-225 which I've installed to replace my IBM PC/XT's original hard drive. It's been working fine for months, but I've only been able to (low-level) format half the disk. I know the drive parameters (# heads, cylinders, write precomp stuff, etc.) and I've tried accessing the controller's ROM program to change its table. From DEBUG, nothing seems to work: g=c800:5, g=c800:6, g=c800:ccc. (The controller is the original one - a Xebec.) I recently discovered the INT 13 service to read/write the drive parameters. Unfortunately, I accidentally called write when I meant to call read, apparently overwriting the old parameters. Now I can't even access the drive! The documentation I found in INTER489.ARC on SIMTEL20 describes the write routine as follows: INT 13 - FIXED DISK - INITIALIZE TWO FIXED DISK BASE TABLES (XT,AT,XT286,PS) AH = 09h Return: CF set on error AH = status code (see AH=01h) INT 41h points to table for drive 0 INT 46h points to table for drive 1 I can't find any details about this base table structure. (... and aren't the tables actually *input* to the routine, or am I misunderstanding something?) I'd greatly appreciate any suggestions/info (by email if possible). Thanks, David
daveg@hpcvlx.cv.hp.com (Dave Guggisberg) (09/12/89)
In my copy Interrupt List 489 under INT 41 it has: INT 41 - FIXED DISK PARAMETERS (XT,AT,XT2,XT286,PS except ESDI disks) offset Size Description 00h WORD cylinders 02h BYTE heads 03h WORD starting reduced write current cylender (XT only, otherwise 0) 05h WORD starting write pre-comp cylender 07h BYTE maximum ECC burst length 08h BYTE control byte bits 0-2: drive option (XT only, 0 otherwise) bit 3: set if more than 8 heads bit 4: always 0 bit 5: set if manufacturer's defect map on max cylender+1 bit 6: disable ECC retries bit 7: disable access retries 09h BYTE stardard timeout (XT only, otherwise 0) 0Ah BYTE formatting timeout XT only, otherwise 0) 0Bh BYTE timeout for checking drive (XT only, otherwise 0) 0Ch WORD landing zone (AT/PS2) 0Eh BYTE sectores/track (AT/PS2) 0Fh BYTE 0 Dave Guggisberg daveg@cv.hp.com