VOGONS


First post, by renstou

User metadata
Rank Newbie
Rank
Newbie

Hi
Can anyone recommend me a P-ATA controller for my IBM PS/1.
It's the 2133-461 model and it needs to support 8GB disks.

Reply 4 of 4, by d3vi1

User metadata
Rank Newbie
Rank
Newbie

You don't need a P-ATA controller as you already have one. IDE stands for Integrated Drive Electronics. It basically means that the IDE port is directly connected to the data lines of the CPU as it should be on an ISA system. It also uses the standard IO 0x1f0-0x1f7,0x3f6 on irq 14 and any 32bit OS that uses direct disk access (bypassing the BIOS), should be able to use it, but it can't detect it. There are two problems:
1) Most systems check for the presence of an IDE drive by looking in the FDPT at the AT offset of 0x40 instead of the PS/1 offset and by looking at the CMOS. That is OK for an AT-Compatible system, but the PS/1 is not AT and at that address they find other stuff (let's call it junk). There are two possible fixes for the detection of the IDE drives: ps1win.com with the PS1 int13 driver for Windows 3.1 and UNIXBOOT.COM for the Linux kernel. It's documented in 32bitinf.txt on the pcbbs.
2) Assuming that your problem is not actually accessing the disk but seeing it's entire capacity, know that the IBM bios is limited to 528mbytes for the hard drives. You can go around that by running 540fix.exe from the pcbbs. It will give you access to the first 528mbytes of the disk. If however you still want access to the whole disk in an OS that doesn't boot with unixboot.com, you can use the XTIDE bios on an ethernet card option rom slot. It will come up with a new implementation of int13 which can handle LBA and very large disks. It's an ugly hack in my opinion.

Summary: the IBM BIOS can't handle large drives (which were not part of the IDE spec at the time) and it uses weird offsets for the information used to probe for the presence of a disk. Hardware-wise, if you add a new IDE port nothing will change since the BIOS isn't aware of it.