• Please review our updated Terms and Rules here

XTIDE Universal BIOS

Does your M24 have a "bus correction kit"? I ask because when I tested the XTCFv2 on my 6300, I got reversed bytes reading the CF card.

It should work if using 8-bit PIO transfer mode (which is the default setting).
 
James,

I've not went to the source code yet (lot of things to setup ...) - I did nit find any reference to a "very late initialisation" but found another reference to "late initialisation" there (with a BridgeBoard !) http://www.vogons.org/viewtopic.php?t=30008 that exposes this solution : "Extract the files from the XTIDE BIOS zip and run idecfg.com. Select "Load BIOS from file" and select ide_at.bin. Select "Configure XTIDE Universal Bios" Select "Late initialisation" and change it to N. Select "Late initialisation" again and change it to Y. Select "Back to previous menu" and then select "Flash EEPROM" Ensure that the "Generate Checksum byte" is set to Y. Select "Back to previous Menu" and then "Exit to DOS" It will now ask you if you want to save the BIOS and say Yes."

Also, I found somewhere a thread about a Tandy 1400 discussing about "late initialisation", saying it was default seting for XT class BIOS (my actual option) - I'm using actual r566 IDE_XT.BIN.

Regards - Hervé
 
Good to know, thanks guys. Now I have another use for it :)

Note that if you upgrade to r545 or later you will no longer have memory mapped I/O or DMA transfers since support for the XT-CFv2 card was dropped back then. You could of course write a driver if you really want those transfer modes back.

On a slightly different subject, I seem to recall reading somewhere that you have a Silicon Valley Computer ADP50L card? If so, would you be willing to test the latest version of the BIOS with that? I added support for it in r536 but I still haven't heard of anyone even trying it. Would be nice to know if it works or not. :)

@hwarin: Follow the build instructions here. The wiki is a bit outdated but should be sufficient. The "late initialization" James mentioned is MODULE_VERY_LATE_INITIALIZATION which will be included by default if you make an XT version ("make xt") with the latest revision of the source code (r566). In earlier versions of the BIOS there was a setting called "Late initialization" and that's what the post at Vogons is referring to. This is a completely different thing.

If you are using the r566-binary provided by James then you will not have MODULE_VERY_LATE_INITIALIZATION included. This is why you need to make the BIOS from source yourself.
 
I'm unwilling to test with my ADP50 right now since I need it for a programming project I want to complete in June. After that, sure, I can experiment.

Regarding XT-CFv2 removal -- is there still support for XT-CFv3 in there?
 
You are one of the very few people, possibly the only one, that own one of these cards and have the skills to make changes to the code ( in the extremely unlikely case there's a problem ;) ) so it would be great if you could do the testing, whenever you have the time.

Just to be clear, when I said support was dropped for the XT-CFv2, I meant that only the memory mapped I/O and DMA transfer modes have been removed. PIO transfers still work. All other XT-CF cards (including the v3) are still fully supported.
 
James have been very kind to send me this WE a specialy built BIOS integrating the "VERY LATE INITIALIZATION" ... Here are my results :
- From the M24, it works as a charm, as the "usual" BIOS, I had to check built dates to confirm a difference
- From the SideCar, from where I did the flash, the result was a completely unbootable system, talking about "disk error press any key" and cycling on this line ... No menu, no disk access from either CF or floppy (no light).

Hervé

@hwarin: Follow the build instructions here. The wiki is a bit outdated but should be sufficient. The "late initialization" James mentioned is MODULE_VERY_LATE_INITIALIZATION which will be included by default if you make an XT version ("make xt") with the latest revision of the source code (r566). In earlier versions of the BIOS there was a setting called "Late initialization" and that's what the post at Vogons is referring to. This is a completely different thing.

If you are using the r566-binary provided by James then you will not have MODULE_VERY_LATE_INITIALIZATION included. This is why you need to make the BIOS from source yourself.
 
Maybe there's a conflict with the Sidecar's own harddrive BIOS? I assume there is a BIOS since the wikipedia page about the Amiga Sidecar mentions that it "was available with an internal hard disk".

The page also mentions having to change settings on the Amiga side for graphics and sound emulation. Maybe you need to change a setting to see the text and menu when the XTIDE Universal BIOS initializes?

You can probably tell I'm just winging it here. I have no idea how these things work. :)
 
Krille,

I have no indeep knowledge of sidecar's operation. The facts (where I am certain) are
- A sidecar is basically a standard 512Kb XT computer using mostly standard components (with a derivative from a Phoenix BIOS at Rev 2.06 (2.05 was a beta))
- The internal HD was optional. I've currently a pretty standard WD filecard working correctly laying at C800 (that I remove when I test the XTIDE)
- From XT side, the only unusual things are no keyboard, no LPT, no serial, no reset, no direct display output (as standard) and a "Janus" board interfacing the 68K world and the 8x86 world. Video output is selectable by switch as mono, color, or external
- The "Janus" board has 128Kb dual port RAM embeded, 64Kb appears to go at F000 and over, the other 64K are selectable (correct setting seems to be E000)
=> No idea on the magic details allowing MDA/CGA from B000/B800 to operate
- XT boot is only accomplished once the Amiga boot is sufficiently advanced (when libraries are loaded (to the XT side at E000 ? - I can find them there with debug))
- The Amiga side can open a Window in Mono and in Color mode (allowing keyboard input to go to the XT side), it can hard reset the XT
- LPT port can be redirected to the Amiga side and mouse input can be redirected to XT side
- File exchanges can be done at OS level with AREAD & AWRITE comands from XT side
- Amiga side has direct access to dedicated partitions (files ?) on the XT as AmigaOS partitions once DJMOUNT have been started from the Amiga side

This solution was quite elegant at the time where Amiga HDDs (mostly SCSI ones) were rare and expansive while PC HDDs were far cheaper.

I also presume that there is a solution to allow the XT side to access to a DOS/FAT file/partition from the AmigaOS side's HDD (if there is any)
 
Might be worth posting in the Amiga section? I'm out of ideas on this - if the WD card with it's BIOS at C800h initialises, so then so should the XTIDE Universal BIOS.

Krille/Tomi - is it possible there is some BIOS initialisation method being used that isn't supported? Though the very late init bought Tandy 1400 to life, it wasn't perfect (hot-keys to change CPU speed for example not working with the BIOS running). Just thinking out loud :)
 
Well, it'l possible that my "Janus library" might be the problem, also, may be something with the handling of MDA/CGA and BIOS. (1 stupid question : Does XTIDE BIOS goes directly to the screen or does it uses regular BIOS calls ? I may need to find a "real" video board)

The Comodore/Amiga on this Forum does not seems to be realy active from the 68K front - I will try on more specialized places but, as A1000 support is already rare, it'll probably be very difficult to find someone skilled on the A1060 sidecar.
 
Krille/Tomi - is it possible there is some BIOS initialisation method being used that isn't supported?
I don't think it's a problem with the initialization. More likely some kind of conflict or incompatibility. But anything is possible I guess.

Though the very late init bought Tandy 1400 to life, it wasn't perfect (hot-keys to change CPU speed for example not working with the BIOS running).
I didn't know about this. Seems really strange that it would have that effect. Do you think changing TEMPORARY_VECTOR_FOR_SYSTEM_INT13h to a different interrupt (something like 60h) would help?

Well, it'l possible that my "Janus library" might be the problem, also, may be something with the handling of MDA/CGA and BIOS. (1 stupid question : Does XTIDE BIOS goes directly to the screen or does it uses regular BIOS calls ? I may need to find a "real" video board)
Not a stupid question at all. Yes, the BIOS writes directly to video memory and that is possibly a compatibility problem. On the other hand, lots of software do that so I would expect the Sidecar to support it. The older BIOS versions (v1.1.5 and older) used BIOS calls instead but unfortunately that doesn't help you since there is no XT-CF support in them. A real graphics card could be worth trying.

I've tried to find info regarding the Sidecar and found a thread on this forum which in turn has a link to the manual. Did you have that already? If not, it might be worthwhile to verify the settings (switches and jumpers).
 
I will try to get deeper details on sidecar internals in some German forums (A1K.org) that seem to have good knowledge on A1000s bridgeboards (and sidecars) , but, as I don't speak/write/read German, google trad will be my only option.

Suspecting for the while at least an issue at initialisation time where BIOS calls might needs to be used to have a proper display (until Janus (at E000) is ready ?) - will confirm that once I'll have a real video board. Also, one other funny thing about XTCFMODE : It says, for devices 80 to 83 : read mode 4, block mode sectors 128 to 131, device is not XTCF 1) on the sidecar with a CF installed, and 2) on the M24 with no CF installed. Does this just means that correct tables are not initialized or that it don't see the CF on the Sidecar ?

About the other thread, I've already noticed it, and specially that : "The main problem was that I was using software that came with an A2386 Bridgeboard. Even though the documentation and software itself clearly states it supports all Commodore bridgeboards and the Sidecar, I was never able to get the PC drive to be shared as an Amiga drive. Eventually I managed to find the actual Sidecar disks and used those successfully. Incidentally, the sidecar address sector also has to be set to E0000 - EFFFF for the Sidecar hard drive to work as an Amiga drive. That was not mentioned in the instruction manual. "

I have no idea of the origin of my software version/origin from amiga side [IE: Sidecar or BridgeBoard (2088/2088T/2286/2386) - 5 distinct hardwares, plus some possible revisions]. The only factual element for this will be "janus handler (actually 2.63) and library (actually 33.1)" level but I've found no reference or repository detailling this point. I've downloaded RKMs but this is still lot of things to read and I'm uncertain to find something about Janus.

My DipSwitch setup is currently as [OFF/ON/ON/OFF/ON/OFF/ON/ON][OFF/OFF/OFF/OFF] what looks good for E000. Just had a try in "mono" mode but had same result.
 
Replying to myself ... I have made some progresses :

I have been able to boot the Sidecar (including boot screen !) using 2 tricks :
1) Remove the file SYS:/PC/System/PC.boot from the workbench disk
==> No more JanusHandler in memory (A000, D000 or E000) at all --> This file might contain the "ROM" image loaded to the Sidecar by the A1000 at boot time ?
2) Moving the 64K dual port memory (where goes Janus Handler/Library) from E000 to A000
==> DipSwitches as described into the sidecar manual for "location address sector" are wrong - correct affectations are :
3 & 4 On : Untested
3:On 4:Off = A000
3:Off 4:On = D000
3 & 4 Off = E000
==> I've not understood the usage of PcPref's Selection as of A000/D000/E000 (Amiga config utility) - Seen no change !

- When set (from DipSwitches) at D000 or E000, "Janus" message is displayed at boot time but nothing from XTCF
- When set (from DipSwitches) at A000, no "Janus" message is displayed at boot time, but XFCF works perfectly
==> "Janus handler" appears from the Sidecar as a ROM extension (starts with 55 AA 10 EB 72 90 20 .... ) - I would not be so surprised that BIOS would not go to A000 to initialize a ROM !

Now, we're nearly back to the start !
- No hardware issue
- Software incompatibility between "Janus" & "XTCF"
 
I have gone to analysis and compare in ROM initialization from XTCF & generic WD controlers .... Here are my findings
1) XTCF : Pretty simple : Test if CTRL key is pressed ... If not, hook INT 19h vector (boot strap) directly (no backup to any previous possible vector) and that's all, interesting things go to INT 19h
2) WD : A bit more complicated but things remains simple : Hook of INT 13h vector (direct BIOS disk access) with a backup of the original vector to INT 40h if no previous HDD was found (INT 40h points to zero while initializing of first HDD), or to INT 42h if initializing the second HDD. Then, it'll hook INT 19h vector and reset/calibrate/wait for Ready the initializing HDD, display 1701 message if something goes wrong or increase number of HDDs (0400:75) if all is fine.

Now, let's imagine what could be Janus's initialization code : hook INT 19h in the same "rude" way as WD & XTCF ... Janus bootstrap would be able to deal with any initialized HDDs previously hooked on INT 13h and even possible deal with some "virtual" HDD reachable from Amiga side. With XTCF initialization code leaving INT 13h "as is" until XTCF's bootstrap is called it seems logical to result to the non initialization of XTCF BIOS code.

The only solution to have XTCF working with the sidecar would be to have a sort of "early" initialization of INT 13h, updating HDD number as does WD BIOS... and leave Janus (if present) manage with bootstrap by itself. (nice boot device selection is not mandatory, just HDD detection i)

==> Is someone (more skilled than I am !) willing to do a such change ?
 
This is a very interesting finding, thanks for posting. Tomi/Krille - what do you think?
 
Also, one other funny thing about XTCFMODE : It says, for devices 80 to 83 : read mode 4, block mode sectors 128 to 131, device is not XTCF 1) on the sidecar with a CF installed, and 2) on the M24 with no CF installed. Does this just means that correct tables are not initialized or that it don't see the CF on the Sidecar ?

Sounds like a question for you James! ;)

I have no idea of the origin of my software version/origin from amiga side [IE: Sidecar or BridgeBoard (2088/2088T/2286/2386) - 5 distinct hardwares, plus some possible revisions]. The only factual element for this will be "janus handler (actually 2.63) and library (actually 33.1)" level but I've found no reference or repository detailling this point. I've downloaded RKMs but this is still lot of things to read and I'm uncertain to find something about Janus.

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.

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.

==> Is someone (more skilled than I am !) willing to do a such change ?

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'm Building a new 486 box and have the XTIDE BIOS R566 installed in a Rom boot socket on a Nic card, Installing Windows 95 completes with no errors but then the problem starts when i open up any program BSOD and the error message " Fatal Exception 06 has occurred at D800:XXXXXXXX, D800 being the address of the xtide bios and with that i can't do anything but switch the machine off, Restarting invokes scandisc and scandisc reports bucket loads of lost clusters, Doesn't matter what address range i use C000 -> D000 etc same thing happens.

I see there was a fix for Win 98 a few versions back and just wondered if anyone has Win 95 and R566 running ?, Going to try an older version of the bios and see what happens.
 
Back
Top