• Please review our updated Terms and Rules here

XTIDE Universal BIOS

[2 years and a reply !]

==> Thanks, WallyB - I definitely must have a try of this, I've let my A1000+BridgeBoard setup away since long as I did not find a solution to use XT-IDE with it.

Hi,

i don't think this is a real solution.
The problem is that INT19-Init is never called with activated Janus-Handler, VERY_LATE_INIT (INT13) is called, but
fails here (marked) in Int13hBiosInit.asm:
Code:
36	Int13hBiosInit_Handler:
37	    ; Initialize XTIDE Universal BIOS only if Int13hBiosInit_Handler is still at
38	    ; vector 13h. Otherwise some other BIOS has hooked us and our very late
39	    ; initialization is not possible.
40	    push    ds
41	    push    ax
42	    LOAD_BDA_SEGMENT_TO ds, ax
43	    pop     ax
44	    cmp     WORD [BIOS_DISK_INTERRUPT_13h*4], Int13hBiosInit_Handler
45	    pop     ds
46	    jne     SHORT .VeryLateInitFailed   ; XTIDE Universal BIOS does not work.  <<<<==== Fails here
47	
48	    ; Ignore all but read command (assumed to read boot sector)
49	    cmp     ah, READ_SECTORS_INTO_MEMORY
50	    je      SHORT Int19h_BootloaderHandler

If you delete the >jne SHORT .VeryLateInitFailed< XTIDE starts with activated Janus-Handler and the HDD is accessible, but the Janus-functions AWRITE, AMOUSE,... doesnt work.
I think a "boot-mode" of a Seagate ST01/02 (INT13?) should help, this controller works out of the box.
 
Hi, Toms01

I think that you're probably pointing the real issue. I've spent hours in the code years ago and did not seen that (not expecting much of VeryLateInit … and more focussed on INT19).

==> If try to translate from the code : "If Int13 was hooked by someone else, don't try to initialize the BIOS and fail", what's pretty clear, this someone might be Janus ...

I don't know what you mean exactly with ST01/02 boot mode [ST01/02 seems to be SCSI boards] but I've got a Tandon TM9362 [including a WD1002 MFM board] fitted natively in the sidecar (*) and it works perfectly well (never tryed AWRITE/AMOUSE anyay). (*) It's so common that I have the exact same board in the M24.

Thanks so much for pointing this, now, how can we go further ?
[it should be possible to just patch actual code with NOPs in order to test ? I Don't have the tool chain ready for a custom compilation]

Regards - Hervé
 
Last edited:
I'm having a problem with XT-IDE serial port booting certain floppy image sizes only.

My setup is IBM 5150 with an glitchworks v4 XT-ide card, running XT-IDE universal bios 2 beta 3 and also a 8-bit 16550 UART.

The serial server is a notebook running win10x86 with a USB serial device. On this system I have multiple floppy image files.

I can successfully boot disk images with 360kB or 1.44MB size, but not 720kB disk images. I have tried multiple image files with the same result, and I have also verified that the images är in fact bootable when mounted on bochs. The speed setting doesn't make any difference.

Running serdrive with higher verbosity level reveals that sectors 0-8 are read, but not further, and I suspect this might be the issue.

When starting serdrive with 720kB image it's identified as a CHS 80:1:18 device, when I guess it should be 80:2:9. The values are hard coded in source, and the parameters are set based on image file size.

Has anyone else had this problem?

Best regards,
Måns
 
When starting serdrive with 720kB image it's identified as a CHS 80:1:18 device, when I guess it should be 80:2:9. The values are hard coded in source, and the parameters are set based on image file size.

That is indeed a bug! Thank you Måns, not only for reporting it but also for finding the cause. I can't believe no one has discovered this until now.

This one should work;
View attachment serdrive.zip
 
Hi,

I Don't know if I shall post in this thread or in "XTIDE Universal BIOS v2.0.0 beta testing" thread - I'm still facing an issue with last R601 version (and any known previous version) of IDE_XT BIOS. This seems to be a known issue in Amiga Community. (https://www.a1k.org/forum/showthread.php?t=67169&highlight=xtide&page=4)

The issue is with Commodore JANUS board [this board makes the link between an Amiga computer and the PC-XT "co-computer" that was optionally available by Commodore at the time Under the names of SideCar or BridgeBoard].

In details, IDE_XT BIOS operates basically from "PC side" only when compilled with VeryLateInit option and with "jne SHORT .VeryLateInitFailed ; XTIDE Universal BIOS does not work." commented out.

In facts, when it operates, IDE_XT disables completely JANUS operation.

As a consequence, I've started to prepare a "VeryEarlyInit" option for IDE_XT, with my very limited coding capabilities, done in a similar way that what was doing regular WD controllers of the time. It seems to work, as JANUS BIOS now initializes after IDE_XT. The issue is that now, JANUS cycles 4 times in it's initialization then hangs the PC-side, as per screen shot. I've attached my binary and 3 versions of JANUS BIOS (I'm using currently v2.63).

==> Needing help to fix this problem as I Don't have any idea of what, in IDE_XT "VeryEarlyInit", may prevent JANUS to start correctly and I Don't see where or how to start for debugging
==> Keeping my current code and my reference Workbench at disposition of anyone interested in helping (too big to attach here in the forum)
==> Available also in any way to explain/test the issue

r601_WithVeryEarlyInit_190421_minimal options.jpg

Regards - Hervé
 

Attachments

  • ide_xt_bin.zip
    9.9 KB · Views: 5
  • JanusHandler.zip
    9.5 KB · Views: 8
Hello everyone.
My friend and I are working on restoring a rare Soviet XT clone (based on 8086). This machine has an integrated IDE controller and an EGA card, but unfortunately, the BIOS from this board has been lost. We have already found compatible main bios and EGA videobios, now we are trying to revive the built-in IDE interface with the XT-IDE bios, but so far no luck. I have full schematics for this PC. Can anybody give advice, what setting should I try with XT-IDE? Thanks a lot.


 
Hi, Filin

I've not been able to view correctly your schematics, so, speaking in the Wind ...

I'm a bit surprised that this "Soviet XT" had an IDE built-in interface. Would it be an XTA style interface (see WD140 or WD150 controllers) requiring special and rare and unreliable 8bits HDD ?
==> Possibly as it seems sufficiently modern and luxious to have an EGA board


At first idea, I would try to disable any hardware regarding this interface and would plug directly a CF-IDE in an available slot

Regards - Hervé
 
Hi friends

I've finally got good results with "VeryEarlyInit" and "Steal_Ram" options.

Here is the code that I've successfully tested, should work for 8088 SideCar and BridgeBoard.
==> I will mail the source code to official authors to obtain their validation and let them integrate my changes to next release.

View attachment r601_hw02_190501.zip

SideCar's Boot screen
01_BootScreen.jpg

Details of last tests

DOS3.30 boot and ATIME getting Amiga's date
02_DosScreen.jpg

JLINK virtual disk
03_JlinkScreen.png

ARead / AWrite tests
04_AReadScreen.png 05_StartupSequenceScreen.jpg 06_AWriteScreen.png 07_RamConfigScreen.jpg

DJMount / Write to HD2: test
08_DJMountScreen.jpg 10_CopyToHd2Screen.png

ADisk - Anomaly [no idea why, may be this partition was incorrectly created before last build] on number of cylinders (deleted and recreated the partition => fixed)
11_ADiskScreen.jpg

Folklore (worked after a reboot/second attempt - My A1000 isn't very stable)
12_SoftwareErrorScreen.jpg 13_GuruScreen.png

Regards - Hervé
 
Trying XT-IDE on my IBM ValuePoint 425SX, but I haven't had much luck in getting it to work.

The machine only loads the option ROM when the HDD is not bootable (e.g. if I unplug it from the mainboard).
I tried both the ide_atl and ide_xtpl builds but both have the same result.
I downloaded them from here: https://www.lo-tech.co.uk/wiki/XTIDE_Universal_BIOS

I load the ROM using an old Intel Ethernet NIC.

I hope anyone has an idea why the machine does not always load the option ROM.
 
Newer versions are available from here. Not that it matters in this case.
I find R601 to have solved many of the problems I was having over R566 from the Lo-Tech website.

One suggestion I'd like to make to the people working on the XUB though, is that the revision number be included in the BIOS splash along with the date. example, the R601 BIOS would actually say "R601," instead of just saying "XTIDE Universal BIOS (XT)v2.0.03+ (2019-02-14)," which isn't very descriptive when that version number has been used for several revisions in a row. I had to add that when I was experimenting so I could more readily tell which version I had flashed against the results I was getting.
 
One suggestion I'd like to make to the people working on the XUB though, is that the revision number be included in the BIOS splash along with the date. example, the R601 BIOS would actually say "R601," instead of just saying "XTIDE Universal BIOS (XT)v2.0.03+ (2019-02-14)," which isn't very descriptive when that version number has been used for several revisions in a row. I had to add that when I was experimenting so I could more readily tell which version I had flashed against the results I was getting.

This has been discussed before and everyone agreed on having the BIOS print the revision number just like you described. The problem is that it requires changes on the server side, and no one knows how to do it/has bothered to look into it.
 
Hi friends

I've finally got good results with "VeryEarlyInit" and "Steal_Ram" options.

Here is the code that I've successfully tested, should work for 8088 SideCar and BridgeBoard.

I have a rainy-day project to setup the xtide with an 8088 bridgeboard. I have all of the parts, but haven't worked up the nerve yet... does your work imply that the standard xtide won't work in an a2000 without your modifications?
 
This has been discussed before and everyone agreed on having the BIOS print the revision number just like you described. The problem is that it requires changes on the server side, and no one knows how to do it/has bothered to look into it.

Ah well. There's always Hex Editor. That's what I've been using... For the few lines that I can actually read, anyways.
 
I have a rainy-day project to setup the xtide with an 8088 bridgeboard. I have all of the parts, but haven't worked up the nerve yet... does your work imply that the standard xtide won't work in an a2000 without your modifications?

I'm not intimately familiar with the A2000, but it does have 8 and 16-bit ISA slots, so I assume you should be able to just plug and play if it's as PC compatible as it's advertised. If you've got the parts, I say just put it together and see how it works. Electrically at least, you shouldn't have any issues.
 
I built a Tex-Elec kit a few months back and have been fighting with this stupid thing ever since. One BIOS (the publicly posted 2.0.0 b3)will run a drive, but somehow screws up the computer's ability to use floppies. Another one (r580) fixes that issue, but doesn't acknowledge any hard drive plugged into it. Others (Like the R602 and 1.1.5) simply make the card act as if there is no ROM there. (The PC itself is an XI8088 with the XT-IDE card set to 300 and c8000, but it behaves the same way in an XT)

I have finally found the page where the recent builds are stored (Is there a particular reason that page is hidden?) Am I supposed to do something special when writing these files? I used the IDE_XT.BIN, wrote it to the ROM (it's an 8K flash rom), and the XTIDE (REV 4) just acted like there was no ROM there. I noticed the bin file is 6.3K instead of 8.2K, so is there supposed to be some sort of filling/offest procedure I am supposed to do? (I use a Gq-4x4. Erase, blank check, slowest write, verify)
 
I was not aware that Tex-Elec was selling the XT-IDE rev.4. I've had good experience with R601, but that's on the XT-CF rev.2b, which Tex-Elec sells.

I'm not aware of anything special to do when writing these files, but if it's acting like there's no ROM there, the flash might have failed or you've somehow flipped the "ROM Enable" switch to the off position, because if it was successful, you should at least see the ROM's POST screen whether it can detect the card/hdd or not.

That's just off the top of my head. I don't think those address should have any conflicts, but if it's acting the same way in two different machines, then the fault is probably on the card or the ROM. If the chips are socketed, you could use your EEPROM programmer to do a logic check on the chips to make sure there aren't any lemons among them.

If Sergey or Glitch are lurking about, they may have other ideas to run through.
 
Back
Top