mckenney@talos.pm.com (Frank McKenney) (12/03/90)
BACKGROUND ---------- A few weeks back I reported that my Everex AT clone was unable to boot either the OS/2 1.1 or 1.2 Installation Diskettes. I <could> boot IBM PC DOS 3.3 from the A: drive with no problems. Everex System 1800 10 MHz AT Clone, 5 MB RAM AMI BIOS: S286-2098 Rev-F3-20 04/26/89-KD A: 1.44 Mb 3.5" B: 360 Kb 5.25" C: 40 Mb Seagate ST-251-1 (Everex controller) D: 80 Mb Seagate ST-296N / ST01 adapter Video-7 Vega VGA adapter Both the System and Keyboard BIOS chips were upgraded early this year, and the current ROM SETUP routine allows the A: drive to be configured as a 3.5" high-density drive. SUCCESSFUL WORK-AROUND ---------------------- Removing the Seagate ST01 SCSI Host Adapter made the problem go away. With it out of the system, I have successfully booted the OS/2 1.2 Installation diskette, run a "test" install of OS/2, and booted OS/2 from the ST-251 C: drive. UGLY DETAILS ------------ It turns out that the BIOS in my Seagate ST01 SCSI Host Adapter was mangling the diskette parameter tables so carefully set up by my System BIOS, setting a track limit of <8> sectors per track. Yes, this is an odd thing for an <HD-only> adapter to do... Why doesn't PC DOS run into the same problem? Because the DOS 3.3 boot code establishes its <own> diskette parameters specifying <18> sectors/track. This DOS table is constructed in the initial boot area (0:7C00-0:7DFF), and is later replaced with a more permanent version. I would expect this bug to affect <any> boot code that trusts the diskette parameters set up for it (i.e. non-DOS systems). Seagate Tech Support (800-468-3472) says that this problem has been fixed in the current ST01 BIOS, level 3.2 (my ST01, purchased last December, is at level 3.0). They also won't sell me an updated BIOS chip. I did come up with a work-around for the BIOS bug. I rewrote the OS/2 boot block to set up a new parameter block in the INT 80h- 82h vector locations, and then update the DISK_POINTER field (the INT 1Eh vector) to point to this new block. This let me boot the OS/2 Installation Diskette starter system and successfully complete the installation process. Unfortunately, I still cannot bring up OS/2 from my (MFM) C: drive. It comes up part way, complains about a missing COUNTRY file, and wants me to fix it. After five conversations with Seagate Tech Support persons, the last in response to a message I posted to the Seagate BBS (408-438-8771), I finally spoke to someone who admitted that there is no way I can use an ST01 with OS/2. I was also told that Seagate had no plans to make the ST01 compatible with OS/2 or networks, and that I should upgrade to a 16-bit SCSI controller. What is really frustrating is that I could live with being unable to access the SCSI drive under OS/2 if only the ST01 weren't screwing up OS/2's access to my MFM drive. My thanks to those of you who responded to my initial posting. I wish I could have found a better work-around than "remove the ST01" to post in return. I will confess that late one night I did consider disassembling the ST01 BIOS, converting the code to a DOS device driver, and then removing the ROM chip from the ST01 adapter, but at this point my queue is already full of projects with which to fill my copious (;-) free time. Besides, Seagate won't release any technical information on the ST01 - it's <proprietary>... Any recommendations for an inexpensive AT-type SCSI adapter which can coexist with an MFM controller and for which an OS/2 driver exists? Frank McKenney P.S. There were several recent articles in comp.os.minix regarding problems with the ST01, so it seemed worthwhile to cross-post.