• Please review our updated Terms and Rules here

XTIDE Universal BIOS v2.0.0 beta testing thread

Strange that such delay was necessary. I just made few changes. Boot loader now resets drive only after error so the delay should no longer be needed. I made another change as well, there is now extra delay after resetting controller and before initializing drives. It is actually meant to wait until drive motor reaches full speed so it might not do any good for CF cards.

Hi, thanks - this seems to work OK, from a quick test at least, in the P200. It won't run in the 5160 still.

What's puzzling me is why the universal-BIOS Int19h handler seemingly prevents the card booting when it's though attached to the motherboard IDE board and handled by the motherboard BIOS. To help me debug that, how involved is the universal-BIOS in the boot process if it's handling no drives?
 
To help me debug that, how involved is the universal-BIOS in the boot process if it's handling no drives?

INT 19h handler should work no matter what BIOS handles the drive. I don't know why it does not work. I suspect the problem might be in INT 13h handler and not in INT 19h handler. I might be that the 13h handler unintentionally requires at least one drive to be handled by XTIDE Universal BIOS. I'll need to do some testing but I'm quite busy at the moment.
 
Regarding 32-bit I/O support on VLB IDE controllers. This site is a good reference and has programming info: http://www.ryston.cz/petr/vlb/vlbidechips.html

Don't know if support for all those different chipsets can be crammed into the ROM though.

Thank you, although I already know that site. In fact I implemented the QDI Vision support (not in beta 1) using that info. The biggest problem is that I don't have controllers to test with. I do have one with Promise PDC20230C so that is next in line, then Intel Pentium chipsets. If I only had enough time...
 
INT 19h handler should work no matter what BIOS handles the drive. I don't know why it does not work. I suspect the problem might be in INT 13h handler and not in INT 19h handler. I might be that the 13h handler unintentionally requires at least one drive to be handled by XTIDE Universal BIOS. I'll need to do some testing but I'm quite busy at the moment.

I did a bit more digging. Every other CF-Card I have boots fine in either my controller or the P200's onboard controller in both cases, i.e. with the XT-IDE BIOS installed or not. There seems to be something about the v2 beta BIOS that is stopping the Kingston CF/128 card working even when its installed in the mobo port and controlled by the mobo BIOS.
 
Very minor comment - the top line of text on the default initialisation screen is almost illegible on 5155 screen (monochrome display driven by CGA card). Can see A>>, C>> and F8 but what's next to them on the shaded background is not produced properly by the differing system on that hardware.
 
There seems to be something about the v2 beta BIOS that is stopping the Kingston CF/128 card working even when its installed in the mobo port and controlled by the mobo BIOS.
So only the Kingston does not work? I have no idea what might cause it. Certainly a bug should affect all drives. I made a small change to the BIOS. INT 13h handler is no longer installed if no drives are detected. But you must not include MODULE_HOTKEYS to the build since INT 13h handler is required for drive swapping (so INT 13h must be installed even if no drives are detected).

Can you try with latest sources and without MODULE_HOTKEYS? If the problem remains, then I know it is not caused by INT 13h handler.

the top line of text on the default initialisation screen is almost illegible on 5155 screen (monochrome display driven by CGA card).
You are using color text mode with non-color monitor. I used to suffer from similar problem when I had B&W VGA monitor long ago (certain foreground/background color pairs resulted in pretty much the same shade of gray => unreadable gray box). This is the reason why there is an option to specify text mode when booting. Use the configurator to select 40 or 80 column B&W mode.
 
Hallo Aitotat,

I sent you a PM asking for the source codes but ran into them over an hour ago by reading one of the previous messages. I downloaded SVN and MinGW and installed both. Then I down loaded the sources, with succes. I had to change the makefile a bit because NASM isn't in my PATH: "AS = d:\programs\nasm\nasm.exe". And then I ran "mingw32-make":


D:\Temp\XTIDE_Universal_BIOS>\programs\mingw\bin\mingw32-make large
*15k XT version "Build/ide_xtl.bin" built.
*15k XT Plus version "Build/ide_xtpl.bin" built.
*15k AT version "Build/ide_atl.bin" built.
All 15 kiB binaries built!

D:\Temp\XTIDE_Universal_BIOS>dir build
Volume in drive D is Data
Volume Serial Number is E0D6-DDA3

Directory of D:\Temp\XTIDE_Universal_BIOS\build

06-07-2012 21:38 <DIR> .
06-07-2012 21:38 <DIR> ..
06-07-2012 21:38 8.725 ide_atl.bin
06-07-2012 21:38 1.715.229 ide_atl.lst
06-07-2012 21:37 8.465 ide_xtl.bin
06-07-2012 21:37 1.695.232 ide_xtl.lst
06-07-2012 21:38 8.301 ide_xtpl.bin
06-07-2012 21:38 1.694.348 ide_xtpl.lst
6 File(s) 5.130.300 bytes
2 Dir(s) 158.627.741.696 bytes free


But as you can see, the sizes of the generated files aren't near the 15 KB mentioned by the program or the files in the distributed ZIP. So I generated the 8 KB files and got ones around 6.5 KB. Using an hexviewer I soon found out that the trailing zeros were missing. But without the zeros the March version stil has more then 8000 bytes but the version I just downloaded only $18c7 bytes. Can you explain what is going on?

If you wonder how I was able to assemble the 1.1.5 version: I downloaded the sources somewhere from the Internet and made one big ASM file of everything by manipulating everything so long until the generated bin was exactly like the original :) A lot of work but I didn't know better then.

Many thanks for any help!


Groetjes, Ruud Baltissen
www.Baltissen.org
 
The xtidecfg utility writes out the files configured to the exact ROM size selected, so after building the source you need to set it up through xtidecfg then save the file. The current build is smaller because the boot menu has been excluded (by default).
 
pearce_jj said:
The xtidecfg utility writes out the files configured to the exact ROM size selected, so after building the source you need to set it up through xtidecfg then save the file.
Weird, I cannot find the line that enables me to save the changes to a file. I only can flash the result. What am I missing?

The current build is smaller because the boot menu has been excluded (by default).
If I choose the BIN I got with the ZIP file, I get a line that enables me to configure the BIOS. I expect this line with the XT_LARGE version as well, but I don't get it. I even created my own small verion by adding the MENU heading and disposing the serial part. No configuration line either. Again, what am I missing?

Edit: typos.
 
Last edited:
Build the latest version of the config utility, a save option has been added to the menu. Or, when you quit if configuration options have been set it will prompt to save too. HTH!
 
pearce_jj said:
Build the latest version of the config utility
That's what I tried in the first place but doing the same as with building the BIN file, I got a huge list of errors. Being tired and it was already a bit late, I used the downloaded EXE. But I'll give it another try and will have a good look why things went wrong.
And before I forget again: thank you for your help!
 
As said before, I got an errors when trying to assemble XTIDECFG. The first one:


H:\Ruud\Projects\XTIDE200\Conf>make all
Deleted "(*.*)" from "Build/"
Src/Main.asm:26: fatal: unable to open include file `Romvars.inc'
make: *** [xt] Error 1

H:\Ruud\Projects\XTIDE200\Conf>


I located in the "Configurator" directory but that didn't work out at all. The one in the "XTIDE_Universal_BIOS" did the trick.

This version of XTIDECFG also showed indeed the lines I was missing. And it also corrected the size of the file. But I cannot test the result until this evening.
 
XTIDE Universal BIOS v2.0.0 beta 2 released!

XTIDE Universal BIOS v2.0.0 beta 2 released!

I can't believe it took this long to release beta 2. There are a lot more changed than I thought there would be. Most important changes are:

  • CHS parameters are finally generated correctly (note that you most likely need to repartition the drive after updating!!!)
  • Boot Menu is no longer included in 8k builds since it has been replaced by hotkeys (you can install DOS from any floppy drive to any hard drive just like you could with Boot Menu)
  • Optimizations so you no longer need to worry about transfer rates when updating from v1.x.x to v2.
  • Native support for QDI Vision QD6500 and QD6580 VLB IDE controllers
  • XT builds no longer support 16-bit devices (but AT builds do support 8-bit devices)

You can find the BIOS and documentation here.
 
I've been playing with the new bios trying to test 16bit cards in 8bit machines when I found out that the latest bios won't see my cf card at all even on my XTIDEv1.

All versions up to and including XTIDE_Universal_BIOS_v2.0.0_beta1 see my card fine.

The card is a 512MB Sandisk. on the back it has SDCFB and a 03 copyright.

So the new one is a very much no go with me, (No other cf cards at the moment.)

Thanks,
Later,
dabone
 
Here's the driveinfo from beta 1.

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-512
Cylinders : 993 , Heads: 16 , Sectors: 63
CHS sectors: 1000944
LBA28 sectors: 1000944
Block mode : Set to 1 from max 1 sectors
PIO mode : Max 4, Min cycle times: 120 ns, with IORDY 120 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 992 , Heads: 16 , Sectors: 63 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 993 , Heads: 16 , Sectors: 63
Total sectors: 3298820100
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 5h
Total sectors: 1000944
Sector size : 512

Later,
dabone
 
Total sectors: 3298820100

This sure looks odd. That's almost 1.54 terabytes of storage!

For simplicity and future reference, let's discuss any problems with XTIDE Universal BIOS v2 in this thread.

Ok, sucessful test with the following.

Acculogic Side-2/CD Controller address 170h. Using the latest build as of yesterday.

It ran fine with a sandisk 4gb card on a tandy 1000sx and a DTK PIM-Turbo motherboard.

The newest bios won't find my 512meg card. 2.0.1 finds it fine on my xtide-v1 but the 2.0.2 doesn't see it.

Later,
dabone

All tests were done with the XT build?

What settings did you change with XTIDECFG (if any)?

It would be very helpful if you could try to pinpoint the exact revision where the 512 MB CF card stops working. It could be a long and tedious process as the whole range is from r358 to r461 but fortunately most of the revisions are not changes to the actual BIOS and with a smart method of testing (like a binary-search approach) it might not be as bad as it sounds.

I've tried to find something that could explain this and if I were to guess I'd say that the ATA-ID validation introduced in r441 might be the culprit. If I'm right r440 should work and would be a good place to start testing.
 
I did a batch file to build alot of versions and tested them last night only to see your message this morning.
The break point is 441, 440 will see the 512mb and a 64mb, (both sandisk), but 441 and on do not.

Later,
dabone
 
I guess the ATA-ID validation needs work then (I'll let Tomi look into this).

Thanks for the help with testing. I hope it wasn't too painful...
 
It was a learning process, it had been a LONG time since I used svn, and I had forgotten it.

The sector issue that you noticed seem to be a error from the bios I was using, the original oprom from the chuckg thread about modifing the xtide.

I can ONLY test the XT code, because I have a 1000sx and a 8088 PIM-Turbo, and nothing else with ISA.
I might can test it in a early pentinum next week.


Here is a report for the 512Meg Card with 3 different bios.

BIOS Version : Oprom from the original chuck mod thread.

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-512
Cylinders : 993 , Heads: 16 , Sectors: 63

CHS sectors: 1000944
LBA28 sectors: 1000944
Block mode : Set to 1 from max 1 sectors
PIO mode : Max 4, Min cycle times: 120 ns, with IORDY 120 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 992 , Heads: 16 , Sectors: 63 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 993 , Heads: 16 , Sectors: 63

Total sectors: 3298820100
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 5h
Total sectors: 1000944
Sector size : 512


BIOS Version : 2.0.1.b

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-512
Cylinders : 993 , Heads: 16 , Sectors: 63

CHS sectors: 1000944
LBA28 sectors: 1000944
Block mode : Set to 1 from max 1 sectors
PIO mode : Max 4, Min cycle times: 120 ns, with IORDY 120 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 992 , Heads: 16 , Sectors: 63 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 993 , Heads: 16 , Sectors: 63

Total sectors: 1000944
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Total sectors: 1000944
Sector size : 512

BIOS Version : 440


BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-512
Cylinders : 993 , Heads: 16 , Sectors: 63

CHS sectors: 1000944
LBA28 sectors: 1000944
Block mode : Set to 1 from max 1 sectors
PIO mode : Max 4, Min cycle times: 120 ns, with IORDY 120 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 992 , Heads: 16 , Sectors: 63 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 992 , Heads: 16 , Sectors: 63

Total sectors: 999936
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Cylinders : 993 , Heads: 16 , Sectors: 63

Total sectors: 1000944
Sector size : 512

And a 64Meg Card.


BIOS Version : Oprom from the original chuck mod thread.

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-64
Cylinders : 490 , Heads: 8 , Sectors: 32

CHS sectors: 125440
LBA28 sectors: 125440
Block mode : Set to 0 from max 1 sectors
PIO mode : Max 1, Min cycle times: 383 ns, with IORDY -1 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 489 , Heads: 8 , Sectors: 32 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 490 , Heads: 8 , Sectors: 32

Total sectors: 832569345
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 5h
Total sectors: 125440
Sector size : 512

BIOS Version : 2.0.1.b

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-64
Cylinders : 490 , Heads: 8 , Sectors: 32

CHS sectors: 125440
LBA28 sectors: 125440
Block mode : Set to 0 from max 1 sectors
PIO mode : Max 1, Min cycle times: 383 ns, with IORDY -1 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 489 , Heads: 8 , Sectors: 32 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 995 , Heads: 2 , Sectors: 63

Total sectors: 125370
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Total sectors: 125440
Sector size : 512

BIOS Version : 440

BIOS Drive Information Tool v1.0.2
(C) 2012 by XTIDE Universal BIOS Team
Released under GNU GPL v2
http://code.google.com/p/xtideuniversalbios/

-= Drive 80h =-
ATA-information from AH=25h...
Name : SanDisk SDCFB-64
Cylinders : 490 , Heads: 8 , Sectors: 32

CHS sectors: 125440
LBA28 sectors: 125440
Block mode : Set to 0 from max 1 sectors
PIO mode : Max 1, Min cycle times: 383 ns, with IORDY -1 ns
XTIDE Universal BIOS v2.0.0á2 (2012-09-11) generates following L-CHS...
Cylinders : 489 , Heads: 8 , Sectors: 32 , Mode: NORMAL
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 489 , Heads: 8 , Sectors: 32

Total sectors: 125184
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Cylinders : 490 , Heads: 8 , Sectors: 32

Total sectors: 125440
Sector size : 512

Hope this helps in some way, and thank you very very much for your hard work.

Later,
dabone
 
Back
Top