[comp.sys.ibm.pc] Fixed Disk Base Tables on PC/XT

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