• Please review our updated Terms and Rules here

XTIDE Universal BIOS v2.0.0 beta testing thread

kithylin

Experienced Member
Joined
Aug 15, 2011
Messages
91
I'm sorry for being "late to the party" and sounding like a noob here but.... is this some kind of generic system bios that will work on.. any 486/386 system?

I do notice that my 486 (which has VLB Ports) does not run any faster with a VLB controller than it does with a 16-bit ISA controller, and seems to only support 1 IDE channel in bios, regardless of what the controller supports.

I do have the VLB software / drivers for my VLB IDE controller for my 486, but when ever I load them in ms-dos 6.22, it causes the system to hang and freeze, so I can't even use em even if I wanted to.

Does this XTIDE replace my system bios in my 486 with better support?
Can I flash it into my 486 system even though I haven't the faintest idea who made the motherboard?
What is the risk of "bricking" my 486 and causing it to be unusable?
 

Chuck(G)

25k Member
Joined
Jan 11, 2007
Messages
39,784
Location
Pacific Northwest, USA
The best thing to start with is to compare your motherboard with the pictures on TH99. If you can identify it that way, it might be a great help.

A photo can't hurt, either.
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
is this some kind of generic system bios that will work on.. any 486/386 system?

No, XTIDE Universal BIOS is not system BIOS. It is extension to the system BIOS. BIOS on the motherboard will detect any additional BIOSes that expansion cards might have. XTIDE Universal BIOS will work on any ISA/VLB/PCI system. You must disable IDE support from motherboard BIOS to avoid conflicts or configure XTIDE Universal BIOS so that it uses other controllers than the main BIOS.

I do notice that my 486 (which has VLB Ports) does not run any faster with a VLB controller than it does with a 16-bit ISA controller, and seems to only support 1 IDE channel in bios, regardless of what the controller supports. Does this XTIDE replace my system bios in my 486 with better support?

Yes, but the v2.0.0 beta 1 does not include the support for QDI Vision VLB controllers if you have one (you'll have to wait beta 2). You might not get any better transfer rates at the moment but you will get support for up to 4 IDE controllers and support for large drives (MS-DOS 7/Win9x or FreeDOS is required to access more than 8.4 GB).

Can I flash it into my 486 system even though I haven't the faintest idea who made the motherboard?
What is the risk of "bricking" my 486 and causing it to be unusable?

You cannot flash it that easily. You'll need an expansion card where to place the ROM. The most easiest way would be to get one of the XTIDE cards (don't connect a drive to it unless you use it on XT) since you can flash the EEPROM easily.

Another way is to place the ROM on a network controller card (I recommend 3Com). There are also some VLB multi I/O cards with ROM socket. I have one but it requires two additional support chips so network cards are easier. Note that you cannot flash the BIOS when using NIC or I/O card (you can flash it on the XTIDE and then move the EEPROM to the NIC or you need to use external EPROM writer).
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
I too would like a simpler startup (maybe hold CTRL for boot detection details and menu?).
I have considered showing the boot menu only when some key is pressed. The problem is that there is not enough bytes left in the 8k ROM to implement it. Some helpful string with the key to press would alone require many bytes. Then some code is required to capture the keypress during drive detection. We have decided to remove standard IDE-support from XT builds so that might free enough bytes for the XT build but I don't like to remove XTIDE support from AT build (and it would save less bytes anyway). I'll see what can be done.

Product name and copyright is all good, even a "Auto-detecting drives...." just looks odd scanning 4 channels and referencing their hex addresses and 99% of the time I just want to boot off the first primary.
You can use XTIDECFG.COM to disable the controllers you don't need. I think I'll change the default settings so that only Primary and Secondary IDE ports are enabled by default.
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Hi aitotat, not that it's the core market as it were, but I have 32k available for ROM in my compact-flash card :)

If having somewhere to put the BIOS as a plugin card is something of value, we could easily produce some 8-bit ISA cards with just an SST flash on them, DIP if you like, would be very small and cheap if no ISA bracket was required. Just a ROM, comparitor, DIP switch and a couple of caps.
 

NobodyIsHere

Veteran Member
Joined
Dec 21, 2006
Messages
2,394
Hi
I think we already have such a card. Just build the XT-IDE V2 and leave everything other than the ROM BIOS circuit as Do-Not-Populate. No bracket necessary.

Thanks and have a nice day!

Andrew Lynch
 

Chuck(G)

25k Member
Joined
Jan 11, 2007
Messages
39,784
Location
Pacific Northwest, USA
I went digging through some of my old EPROMs and discovered a 32Kb (4Kx8 bits) Western Digital BIOS ROM (probably for the WD-XTGEN) that includes the LLF routine (the chip has G=C800:5 printed on the chip, not on a paper label). A peek into the ROM shows room left over.

I guess I'm wondering why a 2864 (8Kx8 bit) EEPROM is barely adequate to the task on an XTIDE. I'm not trying to make trouble; I'm just curious as to why so much space is used.
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
I'm just curious as to why so much space is used.

Serial port support takes over 800 bytes and EBIOS functions (to access more than 8.4 GB) take over 300 bytes. I'd estimate that boot menu requires maybe 2000 bytes (menu libraries alone require more than 1400 bytes). Display libraries (to print formatted strings) require nearly 1200 bytes. That leaves about 4k for drive detection and initialization + INT 13h functions.
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Interesting. For my purposes I'd prefer to have auto-v20 detection, longer loop unrolling and so on, but I guess the serial-line stuff necessitates the menu/display stuff. In my case my ROM is big enough to do the lot I would hope.

Re the little ROM board, yes the XT-IDEv2 does that of course; I was thinking of something smaller and (much) cheaper though, either as a home-brew or a short run perhaps if it were SMT. I guess there probably isn't much call for it though.

But anyway, the 8-bit controller "fast" writes code works perfectly it seems, if it's at all possible to include that in the general availability releases?
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
But anyway, the 8-bit controller "fast" writes code works perfectly it seems, if it's at all possible to include that in the general availability releases?

Nice that these 8-bit controllers get faster. The "Fast XTIDE" will certainly be supported in future public releases.
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Just an update, I tested the v2 beta in an Amstrad PC-2286 along side it's Western Digital RLL controller, which worked pretty well (the WD was the boot drive). I also successfully tested Trixter's 8088 Corruption on a 5155 a couple of times, which I've found to be quite tough test in the past. This was a custom build from the code I checked out yesterday, albeit that the only change was to set A4 in the fast-XTide write routine.

HTH
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
After noticing drives in extended partitions create with XTIDE weren't visible with the drive connected directly to a P200 mobo IDE port, I've run the BIOSDRVS utility, here are the results:

On the P200:

ah=25h returned code 1

old in13h ah=08h and ah=15h
cyl 1023, hds 16, sec 63
total sectors 2046240

ebios ah=48h
ver 21h, int bitmap 1h
cyl 63, hds 16, sec 2031
total sectors 2047248
sec sz 512


On XT-IDE adapter:

ah=25h
name: Industrial CF Card
Cyl 2031, hds 16, sec 63
chs sectors 2047248
lba28 sectors 2048000

XTIDE Universal BIOS v2.0.0b1 generates the following L-CHS:
cyl 1015, hds 32, sec 63

Old in13h ah=08h and ah=15h
cyl 1015, hds 32, sec 63
total sectors 2046240

ebios ah=48h
ver 21h, int bitmap 1h
total sectors 2048000
sec sz 512


Hope that helps!
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
Interesting. It looks like the P200 BIOS just limits the P-CHS cylinders to maximum L-CHS cylinder value of 1024 and then reserves one diagnostic cylinder. What is strange that the AH=15 returns the same total sectors as XTIDE Universal BIOS, 2046240 sectors. That is a result from multiplying 1015 cylinders, 32 heads and 63 sectors. So at AH=15h the P200 BIOS seems to use the same L-CHS values as XTIDE Universal BIOS but in AH=08h the L-CHS values are different.

P200 certainly auto detects the drive but does it use LBA or LARGE addressing mode? Probably LARGE since AH=48h seems to return total sectors from multiplied P-CHS values. The larger sector count returned by XTIDE Universal BIOS is the LBA sector count read from ATA-information.

Is the P200 BIOS from Phoenix (likely not), Award or AMI?
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Chaintech 5SIM motherboard with patch Award BIOS I think, but let me check (and the numbers) in case I've made a mistake.

The extended partition does appear in FDISK, but no logicial drives in it.
 

Krille

Veteran Member
Joined
Aug 14, 2010
Messages
1,008
Location
Sweden
Something like "BIOSDRVS > output.txt" should reduce the risk of a mistake (not to mention your typing). :) If it appears to hang, just hit enter.
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Why didn't I think of that ;) So here it is:

-- Chaintech 5SIM P200 (Award BIOS) --

BIOS Drive Information Tool v1.0.1
(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...
BIOS returned error code 1h
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 1023 , Heads: 16 , Sectors: 63
Total sectors: 2046240
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Cylinders : 63 , Heads: 16 , Sectors: 2031
Total sectors: 2047248
Sector size : 512

BIOS translation options are:
Options (size/cyls/hds/sector):
LBA : 1047/1015/32/63
Normal: 1048/2031/16/63
Large : 1027/1015/32/63

It seems to suggest the default is LBA; drives are on 'auto' in the detection section.

-- PC/XT with XT-IDE Universal BIOS --

BIOS Drive Information Tool v1.0.1
(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: Industrial CF Card
Cylinders : 2031 , Heads: 16 , Sectors: 63
CHS sectors: 2047248
LBA28 sectors: 2048000
XTIDE Universal BIOS v2.0.0á1 (2012-03-19) generates following L-CHS...
Cylinders : 1015 , Heads: 32 , Sectors: 63
Old INT 13h information from AH=08h and AH=15h...
Cylinders : 1015 , Heads: 32 , Sectors: 63
Total sectors: 2046240
EBIOS information from AH=48h...
Version : 21h , Interface bitmap: 1h
Total sectors: 2048000
Sector size : 512
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
BIOS translation options are:
Options (size/cyls/hds/sector):
LBA : 1047/1015/32/63
Normal: 1048/2031/16/63
Large : 1027/1015/32/63

It seems to suggest the default is LBA; drives are on 'auto' in the detection section.
I think it uses the NORMAL addressing because AH=08h returns 1023,16,63. Heads and Sectors are unchanged so no translation. Cylinders are simply limited to the maximum old INT 13h value. That is the 504 MiB limit so DOS 6 and older can only access half the CF capacity in NORMAL mode. Also note that the LBA CHS is the same what XTIDE Universal BIOS uses. Try to manually set LBA mode if possible.

For some odd reason AH=15h seems to report the LBA or LARGE capacity even thought the AH=08h seems to return NORMAL mode CHS (with cylinders limited). Looks like a bug in Award BIOS. What I don't understand is why EBIOS reports P-CHS capacity and not LBA capacity.
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
I've done some research and I'm sorry to say but the L-CHS parameters in v2 beta 1 are still not generated correctly. This makes moving drives from one system to another problematic, so I don't recommend doing that. I'll try to fix the geometry translations to beta 2. It would help to have BIOSDRVS.COM results from many systems and drives.
 

pearce_jj

Veteran Member
Joined
May 14, 2010
Messages
2,804
Location
UK
Odd issue with v2 beta BIOS with a Kingston 128MB Compact Flash card (labelled CF/128 P722282X1 9930295-002.A00). Card supports PIO mode 4.

Connected in a IDE-to-CF adapter directly on a Chaintech 5Sim motherboard with P200, card works fine - detected OK, then can boot from DOS floppy, wipe it, create a partition, format, transfer system, and boot from the card.

Connected in my 8-bit CF board, can do all the above BUT it won't boot, it reports the DOS 4 boot sector message (Missing operation system).

Move the CF card back to the motherboard port and it won't boot there either when the XT-IDE Universal BIOS is installed, so the configuration at this point is: 8-bit CF board installed with no CF card fitted, XT-IDE Universal BIOS installed but handling no drives, motherboard BIOS handing the card on the on-port IDE channel. Result: Can't boot. Flick the switch to disable the XT-IDE Universal BIOS and reboot, and it boots fine.

As said it won't boot with XTIDE Universal BIOS installed, but in this configuration when booted from a floppy the partition on the card can be accessed fine and passes any number of pattern tests.

Next I built the universal BIOS with a delay between the reset and sector access:

Code:
LoadFirstSectorFromDriveDL:
	LOAD_BDA_SEGMENT_TO	es, bx				; ES:BX now points to...
	mov		bx, BOOTVARS.rgbBootSect		; ...boot sector location
	mov		di, BOOT_READ_RETRY_TIMES		; Initialize retry counter

.ReadRetryLoop:
	call	.ResetBootDriveFromDL			;
	push	AX						; JJP debug - add a 200ms wait after device reset,
	mov	AX, 4						; in attempt to resolve certain CF card boot issues
	call	Timer_DelayTimerTicksFromAX	; 
	pop	AX						; 
	call	.LoadFirstSectorFromDLtoESBX	; 
	jnc		SHORT .Return			;
	dec		di					; Decrement retry counter
	jnz		SHORT .ReadRetryLoop		; Loop while retries left
.Return:
	ret

With that in place it will boot every time when the card is in my 8-bit CF board BUT NOT in the on-board IDE port (no change).

Finally when I move the 8-bit CF board to real XT, it won't boot with either BIOS build but the drive can be accessed OK mostly, but when rebooting the BIOS detection often shows garbled drive ID string.
 

aitotat

Experienced Member
Joined
Aug 13, 2009
Messages
351
Location
Finland
Next I built the universal BIOS with a delay between the reset and sector access

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.


but when rebooting the BIOS detection often shows garbled drive ID string.

It might be hardware related but it might not. I had similar problem with 4GB Magicstor Microdrive and XTIDE rev 1 on IBM 5150. The ID string was garbled on first power up and when rebooting. Some change to the BIOS made the string appear fine or at least something made it appear fine but the drive never passed disktest.exe Walking-Zeros test. Hitachi microdrive never had any problems with the same system and BIOS. The Magicstor worked fine on a P133 system with same XTIDE and BIOS, so I don't know what the problem is.
 
Top