• Please review our updated Terms and Rules here

XTIDE Universal BIOS

The other 8-bit multi I/O card that i have is just like yours! I have tried it and it works fine with XTIDE. You seem to have the I/O card jumpered a bit differently. Try to set jumpers to match these settings:
XT_IO_Jumpers.jpg
 
Time to release v1.0.0_RC2. Here are the changes since RC1:
  • No more boot menu slowdown when no XTIDE Universal BIOS controlled drives present (actually i forgot to test this but it should be fixed)
  • Major improvements for error handling
  • Small improvements for interrupt handling
  • Hard disks are now reset properly. This fixes some Block Mode related bugs:
  • No more possible master drive data corruption when slave drive is reset
  • Block mode is now properly enabled for drives that require several seconds to reset

I made large changes to error handling and this is why i wasn't able to release RC2 last week as i intended. Improved error handling now hopefully prevents data corruption bugs in the future. Improved error handling has a cost: transfer rates are now a little bit slower for drives that do not support block mode or only supports very small block size (CF cards and very old hard disks).

I was able to slightly clean interrupt handling code while improving error handling.
 
I am unable to update my chips to RC2 from RC1, the utility keeps reporting the EEPROM keeps timing out, i can force the issue by manually using the flasher, or telling it to add a wait-state while writing, but if i do that, it stops just short of detecting the hard drive, or the XT reports that the ROM is bad. This has been tried on all the chips, one got bricked, the others wont take new code. only 1 of them took the new code and works ok, it was flashed using the defaults, same as the others. What could be causing this. I have even tried the recovery method earlier in this thread, no luck there either :(

*update*

I was able to manually update 1 of the bad chips using the /A parameter of the flash program, but it keeps saying verify failed, 2 columns are shown the left has different values than the right ones. I'm guessing these chips are simply refusing to take the code, no matter what jumper settings i feed it.

**update** it reports unexpected byte where another should be and fails, with the write enable jumper, ON of OFF it's ignoring the jumper. I am beginning to wonder if i have found a bug in the card
 
Last edited:
Here are some transfer rate comparisons using iotest.exe.

Computer: Tandy 1000 SX
Processor: NEC V20 @ 7.16MHz
Bios version: v1.0.0_RC2
Hard disk: Apacer Photo Steno II Pro 256MB CF card
Operating system: Tandy DOS 3.3
Partition size: 32 MB

Write speeds: (iotest write 1024 5)
XT+ build 141.09 KB/s
XT build 115.81 KB/s
Read speeds: (iotest read 1024 5)
XT+ build 189.52 KB/s
XT build 154.20 KB/s
----------
Computer: Tandy 1000 SX
Processor: NEC V20 @ 7.16MHz
Bios version: v1.0.0_RC2
Hard disk: Hitachi 6GB Microdrive
Operating system: MS-DOS 6.22
Partition size: 512 MB

Write speeds: (iotest write 1024 5)
XT+ build 154.03 KB/s
XT build 131.52 KB/s
Read speeds: (iotest read 1024 5)
XT+ build 201.97 KB/s
XT build 163.53 KB/s
----------
Computer: XT Clone (Trifunic)
Processor: 8088-2 @ 4.77MHz
Bios version: v1.0.0_RC2
Hard disk: Hitachi 6GB Microdrive
Operating system: MS-DOS 6.22
Partition size: 512 MB

Write speeds: (iotest write 1024 5)
XT build 103.58 KB/s
Read speeds: (iotest read 1024 5)
XT build 124.97 KB/s
-------------
Computer: XT Clone (Trifunic)
Processor: 8088-2 @ 4.77MHz
Bios version: v1.0.0_RC2
Hard disk: Seagate ST51080A (1GB)
Operating system: IBM DOS 5.02
Partition size: 512 MB

Write speeds: (iotest write 1024 5)
XT build 106.77 KB/s
Read speeds: (iotest read 1024 5)
XT build 125.12 KB/s
 
Here are transfer rates from Seagete ST-225 MFM drive that i have on the XT clone. It is low level formatted with controller default values so interleave might not be optimal.

Computer: XT Clone (Trifunic)
Processor: 8088-2 @ 4.77MHz
MFM Controller: WD1002S-WX2
Hard disk: Seagate ST-225 (20MB MFM)
Operating system: IBM DOS 5.02
Partition size: 20 MB

Write speeds: (iotest write 1024 5)
26.40 KB/s
Read speeds: (iotest read 1024 5)
27.74 KB/s
 
Last edited:
More transfer rates. Again with the same 6GB microdrive but now on a 286. 16-bit IDE controller gives 9 times better read rates so 16-bit IDE controller sure is useful if 16-bit ISA slots are available. I also tried to disable turbo (16 to 8 MHz) but it had only little effect since ISA runs at 8 MHz on both cases.

Computer: AT clone
Processor: 286 @ 16 MHz
Bios version: v1.0.0_RC3 (not yet released)
Hard disk: Hitachi 6 GB Microdrive
Operating system: MS-DOS 6.22
Partition size: 2 GB

Write speeds: (iotest write 1024 5)
AT build, 8-bit XTIDE: 187.94 KB/s
AT build, 16-bit IDE: 834.85 KB/s
Read speeds: (iotest read 1024 5)
AT build, 8-bit XTIDE: 251.87 KB/s
AT build, 16-bit IDE: 2221.56 KB/s
 
I've installed the AT build of the XTIDE BIOS in my 486 system which has a SCSI setup (most of my systems are SCSI). When I have a drive attached to the IDE controller, I am not able to boot from my SCSI drive by selecting the SCSI BIOS from the XTIDE boot menu, and it then proceeds to boot from the IDE device attached instead. I was already familiar with this problem from running SCSI/IDE combined setups in the past, but is there any chance the XTIDE BIOS can be modified to overcome this limitation?
 
Is the SCSI BIOS initialized before XTIDE (SCSI ROM found at lower memory address than XTIDE)? Do the SCSI drives appear before or after the IDE drives on the boot menu?
I suspect that the SCSI BIOS does some drive number swapping. It would conflict with XTIDE drive swapping so try to disable drive swapping using idecfg.com.
 
I believe the XTIDE is at D400, and the SCSI BIOS is at D800.

I will look into the the drive swapping issue.

Do I need to have the ROM plugged into the XTIDE controller to use IDECFG, or can I perform the operation from the network adapter?
 
Last edited:
The EEPROM must be plugged into XTIDE for writing.
Early initialization is the default for AT build so XTIDE detects drives before SCSI BIOS since XTIDE ROM is at lower address than SCSI ROM. Try late initialization if the drive swapping won't help. Late initialization will detect drives on the boot loader so all SCSI drives are detected by then.
 
I moved the IDE BIOS to load after the SCSI BIOS, and while the XTIDE is now able to pass the bootup sequence to the SCSI controller successfully, the system is locking up when the ASPI drivers are loading. I am going to try disabling drive swapping.
 
I disabled drive swapping, but my system is still locking up/resetting when I try to load ASPI7DOS. I don't have any IRQ or base address conflicts. I'm not quite sure what's going on.
 
What does the ASPI7DOS do? Why is it needed if the SCSI drives appear on the boot menu? Does the ASPI7DOS load correctly when XTIDE is installed without any drives connected to it?
Does the boot menu display size for the SCSI drives correctly? Do they appear before or after XTIDE controlled drives?
Did you tried to configure XTIDE to initialize before and after the SCSI BIOS after you disabled drive swapping?
Does boot menu appear even when XTIDE initializes before SCSI (and XTIDE uses early initialization)?
Do you have interrupts enabled or disabled on the XTIDE?
 
ASPI7DOS is a SCSI API for Adaptec controllers on EISA and VL bus systems. It allows the ability to communicate with CD-ROM drives and other removable devices. ASPI7DOS does NOT load correctly without any drives connected to the XTIDE. The menu appears to report the size of my SCSI disk correctly. The SCSI drive is listed BEFORE the drive connected to the XTIDE. I did try initializing XTIDE before the SCSI BIOS with drive swapping disabled. In that case the behaviour was slightly different. The system always locks up instead of resetting. The boot menu does appear regardless of which BIOS initializes first, though I did not try "early initialization". The interrupts are enabled on XTIDE. (this is on an AT (EISA) system)
 
Last edited:
ASPI7DOS does NOT load correctly without any drives connected to the XTIDE. The menu appears to report the size of my SCSI disk correctly. The SCSI drive is listed BEFORE the drive connected to the XTIDE.
SCSI BIOS indeed initialized before XTIDE Universal BIOS since SCSI drives appear before XTIDE drives. This would mean that INT 13h handler from XTIDE Universal BIOS gets called before SCSI handler and i think that is why ASPI7DOS won't work. XTIDE Universal BIOS restores DS and DI registers to same values they were when entering INT 13h handler. There might be some SCSI specific functions that return something in DS or DI. I have already fixed this to unreleased RC3.

I did try initializing XTIDE before the SCSI BIOS with drive swapping disabled. In that case the behaviour was slightly different. The floppy drive would not appear on the boot list, and removing all drives from XTIDE would allow ASPI7DOS to load.
I have no idea why floppy drive was not found. In this case SCSI INT 13h handler gets called first so ASPI7DOS should work. It should have worked even with XTIDE Universal BIOS controlled drives present.

SCSI BIOS does not have a boot loader since boot menu appears even when SCSI BIOS is initialized after XTIDE Universal BIOS.

What port are you using for IDE controller? I can give you a customized RC3 if you want to try it right away. It will take at least a week before new idecfg.com is ready.
 
I noticed the A: boot option not showing up is intermittent (that's why I revised my post).

I am currently using my drive on the primary IDE controller IRQ 14, 3F6h and 1F0h

I wouldn't mind trying the customized RC3 at all!
 
Did you try it with before and after SCSI BIOS initialization? What about without any drive attached?
 
Back
Top