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,
Daviddaveg@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