• Please review our updated Terms and Rules here

XTIDE Universal BIOS

I downloaded the binaries and the Beta 3 works fine. But I wanted to change something, SVNed the sources, compiled them and the result won't recognize the hard disk drive. What can be the problem?

FYI: the screen says that this is version Beta 3+.

Kind regards, Ruud Baltissen
www.Baltissen.org
 
Ppease provide detail about your configuration - controller type, storage device, basically anything relevant.
 
Ppease provide detail about your configuration - controller type, storage device, basically anything relevant.
I'm using the original XTIDE device, no address lines swapped.
The error happened with any hard disk I attached 540 MB, 1 Gb, 20 GB, 40 GB
I SVNed the sources again but that hadn't any effect. AFAIK they were the same as the ones I downloaded two weeks ago.

But now the big suprise: by accident I burned a BIOS yesterday that I created myself and that one worked fine:

DEFINES_RUUD = MODULE_HOTKEYS MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_EBIOS MODULE_VERY_LATE_INITIALIZATION

To make sure I created IDE_XT.BIN and IDE_RB.BIN just five minutes ago from the same sources: XT fails, RB works fine. But there is a small problem with bigger drives: they are recognized, can format them, but they won't boot. The 1 GB worked fine is more than good enough. Didn't try bigger ones thatvare smaller then 8 GB.

You are welcome to email me in privat: ruud (-at-) baltissen (-dot-) org

Kind regards, Ruud Baltissen
www.Baltissen.org
 
I'm using the original XTIDE device, no address lines swapped.
The error happened with any hard disk I attached 540 MB, 1 Gb, 20 GB, 40 GB
I SVNed the sources again but that hadn't any effect. AFAIK they were the same as the ones I downloaded two weeks ago.

But now the big suprise: by accident I burned a BIOS yesterday that I created myself and that one worked fine:

DEFINES_RUUD = MODULE_HOTKEYS MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_EBIOS MODULE_VERY_LATE_INITIALIZATION

To make sure I created IDE_XT.BIN and IDE_RB.BIN just five minutes ago from the same sources: XT fails, RB works fine. But there is a small problem with bigger drives: they are recognized, can format them, but they won't boot. The 1 GB worked fine is more than good enough. Didn't try bigger ones that are smaller then 8 GB.
Forgot to mention: I always got "Error 1h!"

Ruud
 
I'm using the original XTIDE device, no address lines swapped.
The error happened with any hard disk I attached 540 MB, 1 Gb, 20 GB, 40 GB
I SVNed the sources again but that hadn't any effect. AFAIK they were the same as the ones I downloaded two weeks ago.

But now the big suprise: by accident I burned a BIOS yesterday that I created myself and that one worked fine:

DEFINES_RUUD = MODULE_HOTKEYS MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_EBIOS MODULE_VERY_LATE_INITIALIZATION

To make sure I created IDE_XT.BIN and IDE_RB.BIN just five minutes ago from the same sources: XT fails, RB works fine. But there is a small problem with bigger drives: they are recognized, can format them, but they won't boot. The 1 GB worked fine is more than good enough. Didn't try bigger ones that are smaller then 8 GB.

Forgot to mention: I always got "Error 1h!"

Ruud
 
I want to help you with this, but it's not at all clear to me what the problem is.

Generally, any issue you have with the stock build from the current dev tree is very likely related to the late-initialisation module, which is a hack only intended for systems that don't appear to offer option BIOS initialisation in any of the normal ways (like Tandy 1400 laptops, and certain PS/2 systems).

Re the larger drives boot issue, is it that the system appears to hang after the XTIDE Universal BIOS boot message? It may be that there are 286+ instructions in the boot sector, and in that case wiping out the boot sector (and then re-partitioning and re-formatting) should resolve the issue. I have a utility for this purpose, here.

Hope that helps!
 
Sorry for the late answers but I must have missed the notifications in one or another way.

XT-IDE Rev 1 card i assume, What computer have you got this card in ? the commodore 386 as in post #175 ?
No, a XT-clone.

But I ran into something else. This minimum configuration I use is:
DEFINES_RUUD = MODULE_HOTKEYS MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_EBIOS MODULE_VERY_LATE_INITIALIZATION
Ande this runs fine: it detects my CF card as master at 300h.

I wanted to experimant with a CF card so I needed the ADVANCED module. But that would mean I would run out of ROM space. So I added the MODULE_STRINGS_COMPRESSED first. IMHO it should have no effect except a smaller ROM. But when starting up the machine, it found the CF card at 300h as well, but now as slave ???

After adding the ADVANCED module it found nothing. That is, it said there was nothing at the master but didn't show the slave anymore.


Wanting to post this message, my I fell on James' message regarding the late initialization. I thought to give it a try to remove it. Results:
- including the ADVANCED module: same effect
- without it: it found the CF card both as master as well as slave.

Ill do some more testing today.
 
Ill do some more testing today.
I did the same tests but with an hard disk drive this time.

Minimum configuration: MODULE_HOTKEYS MODULE_BOOT_MENU MODULE_8BIT_IDE MODULE_EBIOS: things work fine.
Adding just COMPRESSED: fine as well.
Adding just ADVANCED: no HDD is seen. So IMHO here is something wrong. But what?


Just some background information:
One of the ideas I have is using AT's FDD/IDE cards in a XT. I know, I will only have 8 bits access. While thinking about changing the software, I ran into this 8-bits ISA XT-CF adapter using the Universal BIOS. Now the idea rose to let UB think it is dealing with this XT-CF adapter when in reality it is this FDD/IDE card. The only thing IMHO you have to do is to remove this shifting of the address needed for XT-CF and to tell it to use 01F0h as base address plus adding 200h for the control block. But having a, IMHO, faulty ADVANCED module......
 
It's already possible to use *some* 16-Bit IDE/Floppy controllers in an 8-bit slot with the XT-IDE Universal Bios and a CF adapter / Card connected. I've had a 16-bit Ide/Floppy controller with CF adapter card working fine in my IBM XT 5160, And append a HD floppy Bios to the XT-IDE Bios and you can use HD Floppy drive.

Or am i reading this totally wrong, I've got a stinking cold :-(

Just some background information:
One of the ideas I have is using AT's FDD/IDE cards in a XT. I know, I will only have 8 bits access. While thinking about changing the software, I ran into this 8-bits ISA XT-CF adapter using the Universal BIOS. Now the idea rose to let UB think it is dealing with this XT-CF adapter when in reality it is this FDD/IDE card. The only thing IMHO you have to do is to remove this shifting of the address needed for XT-CF and to tell it to use 01F0h as base address plus adding 200h for the control block. But having a, IMHO, faulty ADVANCED module......
 
Hi Ruud!

Thanks for the testing and feedback!

MODULE_8BIT_IDE_ADVANCED is for the 8 bit IDE controllers capable of using DMA and/or memory mapped I/O; the XT-CF cards, the JR-IDE/ISA card and the Silicon Valley Computer ADP50L card. You don't need it to use Compact Flash media and since you are using the XTIDE v1 card you don't need it at all.

When you include *_ADVANCED it is assumed that you are using a XT-CF card (since that is the most common case) so the primary controller is by default set accordingly when building the BIOS (see line 138 in Main.asm). I'm guessing that you forgot to change the controller type to XTIDE v1 with XTIDECFG before flashing? There is also code in the latest revision (r566) that skips detection of slave drives when using a XT-CF controller because before the advent of the Lo-tech ISA CompactFlash board you couldn't use slave drives with the XT-CF class of controllers anyway so trying to detect them was pointless. This will be changed in my next revision btw (whenever that will be).

As James said earlier, MODULE_VERY_LATE_INITIALIZATION should not be used unless it is actually needed. There is some kind of problem with it but I don't know what. I will exclude the module from the official builds in the next revision.

The problems you had with the 20 GB drive (and other drives) is very likely due to incompatible code in the MBR. If so, the simplest solution is to run fdisk/mbr to fix it.

Hope this helps!

/Krille
 
There is a controller type option, 16-bit controller in 8-bit slot (or similar), that works with many 16-bit ISA controllers when connected to CompactFlash media (or other ATA-2 compatible HDD).
 
Thanks, Just use xtidecfg to configure the Bios and goto " Configure XTIDE Universal Bios / Primary IDE Controller / Device Type and set it to " 16-bit ISA IDE in 8-bit mode "

And if I may ask, what changes to UB did you make to make that poassible?

And I hope you get well again soon :)
 
Thanks, Just use xtidecfg to configure the Bios and goto " Configure XTIDE Universal Bios / Primary IDE Controller / Device Type and set it to " 16-bit ISA IDE in 8-bit mode "
I started with the original ide_xt.bin that I extracted from the V3 ZIP file. That one did see my CF card.

Next I ran XTIDECFG and changed the device type. The addresses were changed as well. In the file the addresses 51h, 52h, 53h (addresses), 55h (type) and 1FFFh (checksum) were changed.

Then I disconnected the HDD cable from my XTIDE rev. 1, connected it to the HDD connector of my FDD/IDE card and the CF was NOT found :(

Am I doing something wrong?
 
There are some 16-bit controllers that just do not work in 8-bit mode, Have you got others you can try ?, Also try the build that James put together a while back, Download r443xt16.rar from Lo-tech http://www.lo-tech.co.uk/wiki/Lo-tech_8-bit_ROM_Board (scroll to the bottom of the page) it's old now but does work No need to change any settings just burn it to rom chip.
 
.... so the primary controller is by default set accordingly when building the BIOS
Aha, I didn't realize that! Thank you very much!

Some background: I have the source code and makefile of 2.0 V1 and when you compile everything using that makefile, you get the same file as found in the downloaded ZIP. The XT part in the makefile of the source code you can download now also contains the *_ADVANCED module. So I assumed that this is the default value. OK, I realized that the end result is not the same as the one in the ZIP. IIRC it is even longer. So it's possible that the ZIP file bin is compiled W/O the ADVANCED module.

The reason why I want the ADVANCED module: the XT-CF card is IMHO nothing more than half a 16-bits IDE card with shifted registers and other addresses. The idea is to change the source code so I can use my AT FDC/IDE cards. I found some places where BX and DX are shifted that must not happen now. Them I found an addition that should not happen. And the addresses 51h..54h (IIRC) should be changed.
 
There are some 16-bit controllers that just do not work in 8-bit mode
I even never heard of 16-bit controllers that can work in 8-bit mode. In the old days, before you had user added values, I was more concerned if the disk could be recognized by the computer.

Also try the build that James put together a while back, Download r443xt16.rar ...
I did. Didn't work with four different FDC/IDE controllers. That means playing with the source code myself.

For James: May I ask what you the changes were you made for this BIN? Maybe I don't have to invent the wheel twice :)
 
Hi, that BIOS is configured to expect a standard IDE controller at the standard IO port addresses, but issues a SET FEATURES command to put the media in 8-bit transfer mode before attempting IDENTIFY DEVICE. Therefore, it can only work with ATA-2 compliant devices, which includes all CompactFlash media (with some exceptions, mostly recently industrial cards).
 
Aha, I didn't realize that! Thank you very much!
Just created another BIN including the ADVANCED module. But XTIDECFG didn't enable me to change the configuration (*) so I did it by hand: the addresses (300h and 308h) and type (04). Result: worked :)
Next step: editing the source code to remove the XT-CF related parts regarding the registers, the addresses and the type. IMHO the type should be 6. To be sure, can anyone confirm this, please?

(*) I still haven't found out why XTIDECFG will let me change the configuration of one bin and won't let me with another one. Who can explain this, please?

Thank you very much I/A !
 
Back
Top