• Please review our updated Terms and Rules here

XTIDE Universal BIOS

Fatal Exception 06 means Invalid Opcode Fault.

Are you using a large build? Some NICs map only 8 or 16 KB of the ROM into the address space even though the ROM is actually larger than that (they need additional programming to swap in the remaining ROM pages). So if the offset address (the X:s in D800:XXXXXXXX) is higher than 1FFFh or 3FFFh, that would be a likely cause. On the other hand, if that is the case, I'm surprised that you would be able to go as far as installing and booting Windows 95 before the problem manifests itself.

Can you provide the brand and model of the NIC and also the build options you used (assuming you made a custom build)? I am also assuming that you have verified that the ROM was programmed properly.
 
Small AT build, I removed MODULE_SERIAL / MODULE_SERIAL_FLOPPY / MODULE_HOTKEYS and added MODULE_DRIVEXLATE. The ROM was verified. The nic is a 3com 3C509B, I never made a note of the offset address and currently can't confirm what it is as i have now removed the NIC card and have the Bios chip in a 16-Bit Floppy / IDE card, Have wiped the drive and need to re-install 95, i'll see how that goes.

Before i removed the Nic card i tried Windows 98 SE and same thing, 98 installed fine and then BSOD. Strange.
 
The nic is a 3com 3C509B

OK, those cards will map in 16 KB so the scenario I described should not be the problem (unless you combined XTIDE Universal BIOS with another BIOS but I figure you would have mentioned that).

When you get a BSOD again you should be able to find the offending instruction by looking for the offset address in the list file.
 
need some assistance. I recently purchased an xtide prototype card just to use as a hdd controller in my nec v20 machine. on boot I get this "d000h optional rom bad checksum = 14h

I thought maybe I had to adjust the dip switchs but I cant seem to find a guide to the switches, my card has 2 switch banks of 8 switches eatch.
 
need some assistance. I recently purchased an xtide prototype card just to use as a hdd controller in my nec v20 machine. on boot I get this "d000h optional rom bad checksum = 14h

I thought maybe I had to adjust the dip switchs but I cant seem to find a guide to the switches, my card has 2 switch banks of 8 switches eatch.

http://n8vem-sbc.pbworks.com/w/file/63879658/XTIDE REV2 settings.png

Not sure if this is the right one, but it took me forever to find this one for mine. The links on this forum no longer properly work for the XT-IDE references.
 


I played with the dips a little, doing so somtimes get me an error elsewhere C000H for instance. other times I get nothing as if the card isnt installed.
 
yhea. just did, i know this one has ver 1 on it. i got the ver 2 update flasher on a 720kb disk. I got to the menu but when I pick anything it froze up.

is it generally reccommended to flash this thing in an old machine or can I use something like a socket 7 machine and a 16 bit isa slot.
 
Socket-7 should be fine, just set the CPU as slow as it goes and make sure there is no ROM shadowing enabled.

Bear in mind the card is really two separate parts: the memory-mapped ROM, and the IO-mapped IDE interface. Hence, to troubleshoot the issue as presented, focus on the address decoder (and associate DIP switch settings) for the ROM, and of course the ROM itself. Nothing else is needed to the BIOS initialisation to appear once the correct code is on the chip.
 
This might be worth a try: Have you seen the schematic on the n8vem site, It shows settings for Rom address D000 and IO 300, Looking at the pic you posted SW block 2 has switch 5 = off and it should be ON, Leave the rest as is.
 
This might be worth a try: Have you seen the schematic on the n8vem site, It shows settings for Rom address D000 and IO 300, Looking at the pic you posted SW block 2 has switch 5 = off and it should be ON, Leave the rest as is.

thanks but no cigar. wich block 2 is the block to the right? right? anyways I tried having both set to on and I get the same D000 BIOS ROM checksum error

I tried flashing the thing but unfortunately the instruction don't seem to be very user friendly. i'm assuming the file i want to flash to it is the ide_xt.bin file. when i go to flash it starts the process, get maybe 2 seconds in and I get an error "EEPROM did not return the same byte that was written"

i'm doing this on a 16bit isa slot on a 33mhz 486 machine

*I ended up going back and tried it again. I got the same error but on the third try it completed and told me "flash successful" but now when I boot the machine just hangs indefinatly when it gets to the sport that the hdd would load at, no error message.
 
Last edited:
thanks but no cigar. wich block 2 is the block to the right? right? anyways I tried having both set to on and I get the same D000 BIOS ROM checksum error

SW block 2 on the right, Leave SW block 1 as is in the pic.

i'm doing this on a 16bit isa slot on a 33mhz 486 machine

Should be fine

I tried flashing the thing but unfortunately the instruction don't seem to be very user friendly. i'm assuming the file i want to flash to it is the ide_xt.bin file. when i go to flash it starts the process, get maybe 2 seconds in and I get an error "EEPROM did not return the same byte that was written"

What version of xtidecfg.com are you using, where did you get the files from ?, As you have the card in the 486 i'd use the IDE_AT.bin file, you can always reflash later once the card is working.

Do you have a programmer you can erase the ROM in and start with a blank chip ?, I also seem to remember in the early days some people had problems with the " SEEQ " chips but can't remember which ones.
 
Hallo allemaal,

I ran into trouble with a Commodore as well but in this case a PC35-III (http://www.richardlagendijk.nl/cip/computer/item/pc35iii/en). I implented AT-LARGE. The first strange thing is that the menu doesn't show the name/type of the hard disk; the field is just blank. Booting from drive A goes fine and FDISK seems to go fine as well. Here the first strange thing: I use a used disk so I expect to see the former DOS. In this case a NON-DOS entry. But I see nothing. After creating the partitions I have to reboot. After the reboot I cannot format any partition and FDISK tells me there isn't any partition at all.
Of course I tried a second time, same result. And of course I tried other disks, with various sizes, same result.
Anyone any idea?

Thank you very much for any info or help!

FYI: I partly solved my lack of space by hacking the ROM; now I have 503 MB instead of 202 MB as biggest drive.

Met vriendelijke groet / kind regards, Ruud Baltissen
 
Hi, Ruud

How did you implemented the "AT-Large" settings and on wich hardware [IE : XT-CF or something else] ?

Yesterday, as I was working on universal BIOS source and binary codes (trying to assemble a 100% identical binary before going to changes to support sidecar/bridgeboard [IE : Add an "Early initialization option - Similar to WD's filecard initialization code"]), I've found some mismatches between binary code published on LO-TECH site and the code generated with plain R566 code produced by "google code"/Subversion/Nasm.
1) In makefile, comment out "MODULE_VERY_LATE_INITIALIZATION" but leave "MODULE_8BIT_IDE_ADVANCED" ==> That's okay
2) In "DetectDrives.asm" file, comment out lines between "StartDetectionWithDriveselectByteInHandStringInCX" and "DoNotSkipSlaveDriveDetection" ==> That's the first real mismatch - Don't know the impact but it seems related to XT-CF support of slave drives
3) Two bytes are different in constants at offsets 0053 and 0054 - In LO-TECH binary, there is 0803 to those locations but when assembled by Nasm, binary code gives 0000. This is located in "Main.asm" .... at ROMVARS.ideVars0+IDEVARS.bDevice, db DEVICE_8BIT_XTCF_PIO8 line ==> That's the second mismatch ... I've not understood so far a) how to have a "0803" in a "db" statement and b) purpose and impact

@James/Krille/Tomi : What should be the reference ? "Google code" binary or "LO-TECH" one ?
 
Hi Krille, noticing that I've never provided you Janus BIOS code ... Here is what I've collected so far (Handler/Library/XLS reference)

View attachment Sidecar_Bridgeboard_PcBoot.zip

A4000Bear is still an active member on this forum. I'd suggest that you PM him and ask for disk images of the Sidecar disks just to make sure you have the real thing. He might also be able to provide help in general. And as James said, you should post a new thread in the Commodore subforum.

Openned the thread ... Seems that the handler 100% working with sidecar should be 2.20 ... but nothing is fully confirmed yet.

I'd like to know what the Janus handler really is and what it does. Did you look at it in a debugger or disassembler? Are you sure it is the same as that PC.Boot file (you might want to dump the ROM from the Sidecar's side and compare with the PC.Boot file)? Is it loaded from disk from the Amiga side? How does that work if both the Amiga and Sidecar is powered on simultaneously? Unless the Sidecar is held in a constant reset I don't see how the Amiga would be able to load the file into the PC:s address space before the Sidecar's system BIOS does its ROM scan.

I can confirm that PC.boot file contents is 8086 code and that it's copied to E000 segment (defined by dipswitches) of PC side at one time of the boot. I am not 100% certain yet of the remaining as I've not been able to find proper documentations/reference. Cinematics is that, when Amiga boots, from one certain point (binddrivers command ?), it initializes the Amiga library and copies the handler code to PC side. PC side don't boots (completely ?) until handler code is copied and there is no (screen) access to PC side until this point. Details might be confirmed with a real 8 bit ISA video board that I don't have actually under the hand.

Not likely. At least not without a complete understanding of how this thing works. The differences in initialization you described is essentially what the setting "Late initialization" used to be in older versions of XTIDE Universal BIOS. As of r229 there is no "early" init anymore. I don't recall the exact reasons for the removal but there might have been some quirks or incompatibilities. Or maybe it was just to simplify the code. Tomi would be the person to ask about this.

I've not been able to retrieve code of R229 (my ignorance with google code/subversion) and that seems very old ... It might be preferable to restart from actual sources.
 
Hallo Hwarin,

How did you implemented the "AT-Large" settings and on which hardware [IE : XT-CF or something else] ?
I use the on-board IDE interface. I use an old ThunderByte Anti-Virus card to host the EPROM with the Universal BIOS. I have a Commodore 386SX-25 where this idea just works fine. I even swapped the cards to see if a faulty card was to blame.
Writing the above I realized that I could have tested the card including EPROM with the 286 version in the 386. Cannot do it right now, both PCs have been made ready for transport; tomorrow I will go to a Commodore meeting. If I pack the loose card as well, I can test things there.
 
2) In "DetectDrives.asm" file, comment out lines between "StartDetectionWithDriveselectByteInHandStringInCX" and "DoNotSkipSlaveDriveDetection" ==> That's the first real mismatch - Don't know the impact but it seems related to XT-CF support of slave drives

This allows XT-CF cards to support slave devices.

3) Two bytes are different in constants at offsets 0053 and 0054 - In LO-TECH binary, there is 0803 to those locations but when assembled by Nasm, binary code gives 0000. This is located in "Main.asm" .... at ROMVARS.ideVars0+IDEVARS.bDevice, db DEVICE_8BIT_XTCF_PIO8 line ==> That's the second mismatch ... I've not understood so far a) how to have a "0803" in a "db" statement and b) purpose and impact

I *think* that is the default controller type, until configured. But I don't know why you are seeing differences; I've not made any changes there. I guess half of the value is word-alignment padding (and, in case it has any impact, I'm building on Linux).

Hope that helps!
 
This allows XT-CF cards to support slave devices.

OK - I don't mind about support of slave devices - If I don't comment it out, will XT-CF continue to work with master device ?

I *think* that is the default controller type, until configured. But I don't know why you are seeing differences; I've not made any changes there. I guess half of the value is word-alignment padding (and, in case it has any impact, I'm building on Linux).

- OK for a padding random value and word alignment ...
- In consequence (from your binary), "DEVICE_8BIT_XTCF_PIO8" constant should be "08" and not "00" - I must review how it's defined/computed.

Hope that helps!

Yes, of course that helps !
 
SW block 2 on the right, Leave SW block 1 as is in the pic.



Should be fine



What version of xtidecfg.com are you using, where did you get the files from ?, As you have the card in the 486 i'd use the IDE_AT.bin file, you can always reflash later once the card is working.

Do you have a programmer you can erase the ROM in and start with a blank chip ?, I also seem to remember in the early days some people had problems with the " SEEQ " chips but can't remember which ones.

well, I give up. cant get it to work regardless of what I try. it either hangs indefinitely on boot or throws that error message.

I'm using the latest BIOS from here http://code.google.com/p/xtideuniversalbios/ 2.0.0 I don't have any programmer. I've flashed a mb BIOS once or twice but thats as far as I know.

The card is going into a V20 machine but I was flashing it on a 486 cause that machine is more accessible. I successfully flashed it with the xtp bios (thats supposed to run with a V20?) but again, same error when i stuck it in my v20 machine. I thought "well maybe the speed had something to do with it" so I tried reflashing it again in the XT machine but halfway through flashing I just get "EPROM did not return the same byte that was written" error regardless of how many times I try.

I'll gladly send the card and the ribbon/CF card i'm using as the HDD to someone with an XT machine and pay shipping plus a few extra dollars if someone knowledgeable with these can set it up and confirm it works correctly for me but I'm just tired of trying at this point.
 
Back
Top