• Please review our updated Terms and Rules here

XTIDE Universal BIOS

It has been a while since last release. I've been rewriting library functions (menu system etc). It took 3-4 weeks to write them for the first time and 6 months to rewrite them. I was hoping to save maybe 1 kB but the new libraries actually requires more space than the old one. Once again I made a big mistake by rewriting code that already works.

I think I found a way to save a few bytes in this file but I guess it is part of the old libraries? In any case I've attached the changed file.
 
It seems to be getting a little better for me. With 114 it would cause my xt to freeze and display junk, but 115 bios version, I'm practically where modem7 is, it'll detect the drives, but either will restart the system, or just "hang". Unfortunatly I have no other bios for my board, pio 10mhz. I tried the interrupt thing too, it set it at 15.
 
Incompatibility: XTIDE Universal BIOS and first IBM 5170 BIOS

Incompatibility: XTIDE Universal BIOS and first IBM 5170 BIOS

Since the source is available, and there is a Xmas break coming up, I may modify the source to try to locate the cause of my 5170 problem.
 
I may modify the source to try to locate the cause of my 5170 problem.
That would be great.

I recommend to test with XT or XT+ build with Full Mode enabled and simple or system boot loader. XT builds detect drives after main BIOS calls INT 19h so main BIOS is completely initialized when drive detecting strings appear.
There is very little code after drive detection completes when using the simpler boot loaders.

One possible reason for failure is stack corruption. BOOTVARS struct contains names for detected drives and members are set to start from 0:800h. This area should be unused but main BIOS POST could use that area for stack. You should try to relocate BOOTVARS to some higher address. Just make sure that boot sector address stays at 0:7C00h since it is also defined in BOOTVARS struct.

If that does not help, try to remove floppy drive reset and see if it helps.
 
Yes but only the new xtidecfg.com uses new libraries at the moment. Thanks for the optimizations, they are now in the SVN.

I did some more size optimizations. I hope they will be of help. The changes are marked with *Krille* so they are easier to find.
 
It's been a while since I had a chance to play with my systems (all of which are SCSI based). I have been trying to get the XTIDE BIOS (AT version) to coexist with my SCSI adapters, but still no luck. I tried the lastest version of XTIDE BIOS to be sure. I just noticed that in the XTIDE manual it now lists that there are compatibility issues with SCSI controllers. Does it look hopeful that a workaround will eventually surface?
 
Is it a conflict in I/O resources (i.e. port address or DMA), or is it the way the controllers "hook" BIOS INT 13H?

If it's the INT 13 thing, that can be fixed with software.
 
Hi *.*,
I just tried to install the XTIDE BIOS in my Commodore PC 10-II, using a Silicon Valley ADP-60 IDE Controller with BIOS.
I removed the original BIOS EPROM from the controller and put a 27C128 with XTL_IDE.BIN 2.0.0 beta2 on it.
Didn't work, the controller is at $1F0/$3F0. The BIOS was configured to use $300/$308.
So I tried to reconfigure it using XTIDECFG.COM, but the resulting file is no longer 15 KB, but 32 KB.
I tried it 3 times, the resulting file always was 32768 bytes.
Is this a bug in XTIDECFG.COM ?
I ran it on a Pentium4 under MS-DOS 6.22
 
Yes, there was a bug in XTIDECFG.COM. 8k builds were saved with correct size but large builds always became 32k. The bug is now fixed.

v2.0.0 beta 2 does not support 16-bit IDE controllers in 8-bit mode. It is now supported (in SVN r485) but you need to make your own build of XTIDE Universal BIOS and the Configurator.
 
Hi aitotat,
I built the r485 binanries.
I saw that the XTP version should work with NEC V20/V30. Since I have installed a V20 im my Commodore PC, I first tried the XTPL version, but it didn't work. The machine hung up during boot at the moment the IDE_XT BIOS should have been initialized.
So I then tried the plain XT version, which semms to work at first.
The XTIDE BIOS shows up with:
Code:
Master at 1F0h:
Slave  at 1F0h: not found
Booting C>C
Boot sector not found
Booting A>A

Booting MS-DOS 6.22 from disk A: works. Next thing I tried was creating a DOS partiton using fdisk.
Looked good ... until reboot. The XTIDE BIOS again found no boot sector.
I took a look with fdisk ... no partitions defined.
Tried fdisk /mbr ... no boot sector found.
I also tried booting MS-DOS 3.20 and creating a partition with fdisk ... same result.


biosdrvs shows no name for the drive and after listing CHS data it ends up with:
EBIOS information from AH=48h...
BIOS returned error code 1h

any hints ?
 
Drive name is missing so drive was detected but drive ID was not properly read. Did you change device type to 16-bit ISA IDE in 8-bit mode? I don't know why XTPL version did not work. I'll need to test that.
 
You're right, I missed that.
I now changed to 16bit in 8bit mode, but now the CF card isn't detected anymore. (not found)
Seem's my controler card isn't compatible ?
It uses a goldstar GM82C765B PL chip.
Does it make sense to try other controller types ?
 
Yes, there was a bug in XTIDECFG.COM. 8k builds were saved with correct size but large builds always became 32k. The bug is now fixed.

v2.0.0 beta 2 does not support 16-bit IDE controllers in 8-bit mode. It is now supported (in SVN r485) but you need to make your own build of XTIDE Universal BIOS and the Configurator.

"""I'm looking for the newer svn repositories, but http://xtideuniversalbios.googlecode.com/svn/branches has nothing underneath it."""

Nevermind, I saw that the version number on the xtidecfg was 2.0.0 so I thought it was a old version...

All's good.

Later,
dabone
 
Last edited:
That's a perfectly fine solution, in fact, it's a great solution for IDE controllers that are on the motherboard (on the AT based machines-very few XT machines have onboard IDE)
You would need to disable the BIOS on the ADP50L and put the XTIDE BIOS on a chip and put it in the network card. I've done this on a 386 machine of mine with a 3com NIC and an old promise IDE controller.

I know this is 2 years old, however is there a simple way to disable an IDE BIOS on an AT style (386DX) motherboard so that I can use a ROM on a NIC or SB etc? Could it be as simple as telling the BIOS that no HDD are installed?

I was going to use an old Unicore LBA Pro ISA card, however I can't really spare an ISA slot.
 
yep, just set the drives to NONE in the onboard setup, it should be that easy. [insert murphy's law here of course]
If you have a setting to disable the IDE controller in setup, leave it to enabled.

Then, during power up, the mainboard BIOS should skip all communication to any attached drives.
When the ROM that contains the universal BIOS then loads, it will talk to the onboard IDE controller, interrogate the drives, and add them to the system just as the mainboard BIOS would if you had them set to one of the drive types available, minus whatever drive size limitations your 386 BIOS has. It's a beautiful fix.
 
Can you burn a new version of the XTIDE Universal BIOS or make PROM settings changes to a PROM installed in a Kingston KNE20T NIC?
I was able to burn the latest version onto a 27C256 PROM using a programmer and everything works great, but when I run XTIDECFG, it does not want to write to the PROM.
Is this the way it is supposed to work? If you can't make changes while installed in the NIC, how do you change settings before programming the PROM?

Thanks for such a great project!
 
Back
Top