• Please review our updated Terms and Rules here

XTIDE Universal BIOS

I would recommend trying again with the 4x copy of the 8k version, but load/save it in xtidecfg first to write the checksum byte

As my last EPROM was a bad chip, in order to be able to advance in the meantime, I decided to just load the optrom from a floppy.

I didn't like the tools I found for the purpose, they seemed to be a lot of work to get working, so I ended up writing my own instead.
 
Last edited:
This is probably an out-there question, and I apologize if it has an answer that my Google-Fu has just utterly failed me at:

Is there any method for building from the XTIDE sources a binary that uses one of the configurable device types (I’m specifically most interested in 8-bit XT-CF) that instead of being a BIOS extension is a driver loadable from config.sys after booting from some other device? (Floppy or whatever.)

You're in luck. Because I ended up out of EPROMs, I went ahead and wrote optromloader.

It's a floppy bootloader. It will load the option rom image starting from the 2nd sector of the floppy, into the top of conventional memory.

XTIDE can then boot the hard disk or another floppy, with its IDE support available.

It works with XTIDE Universal BIOS even on an emulated IBM PC (PCem), thus it will probably work on your machine too. Let me know how it goes if you try it.

It will even check the ROM signature, and refuse to boot a non-configured XTIDE ;-)
 
Last edited:
I would recommend trying again with the 4x copy of the 8k version, but load/save it in xtidecfg first to write the checksum byte

Finally got my UV eraser.

I took out my multimeter, checked continuity on the NIC and figured out A14 and A13 are hardwired high. The socket of this thing will only take 8KB roms.

So I did configure my 8KB rom, tested it well with my optromloader tool, then burned it and it wouldn't work.

Turns out, the documentation for DE-200TP has rows 1/2 confused somewhere, or my DE-200TP+ (plus important) is simply the other way around (sigh). ON/OFF rows 1,2 for boot rom doesn't match ROM address rows 1,2 despite being physically the same rows. What I had set at first was colliding with VGA bios (eek).

Doing some testing I got the BIOS to see the rom at D400:, inverted the jumpers and got the desired C800:

Now it's all written down in my personal notes, and I should never have to figure out this crap again. Needless to say, I disabled the boot rom. As nice as it is, it interferes with what I'm doing these days, working on my optromloader.

optromloader - optromloader
 
Last edited:
I have created an implementation of SST39SF0x0 flash ROM programming for the XT-IDE configurator (XTIDECFG.EXE). These are used on the Lo-tech XT-CF-lite and some of Rob Kreneki's Tandy 1000 EX/HX upgrades. I use them on all of my designs too. I expect there are more. There is already a command line programmer by James Pearce but I think it is a bit more accessible integrated into the configurator. My implementation also only erases the 32K target range, rather than the entire flash ROM. I wanted this for my designs as I use jumpers to select different ROM banks so the card can support different IO port addresses and CPUs without the trouble of having to reprogram the ROM.

I have tried it on a couple of my designs. I have attached a build here for anyone who might be feeling brave enough to try alpha firmware programming software. It would be good to confirm that it works for others on other hardware. Probably not a big risk if you have a TL866 external programmer. Otherwise it might be best to hold off for a bit. Be sure to read the readme if you decide to try it.

Do the XUB dev team eval contributions somewhere? I think this would be much better to have in official releases than some builds I am putting together. The build attached here has a .patch file based off r619. Or it might be a bit easier to read this pull request I created on github: https://github.com/JayesonLS/xtideuniversalbios/pull/1 .

P.S. I do realize that calling this an EEPROM type is incorrect. I didn't want to go refactoring all the UI text unless the XUB team were on board and going to pick up the changes.

XTIDECFG_SST39SF.png
 

Attachments

  • XTIDE_SST39SF_Alpha_1.zip
    88.9 KB · Views: 7
I have tried it on a couple of my designs. I have attached a build here for anyone who might be feeling brave enough to try alpha firmware programming software. It would be good to confirm that it works for others on other hardware. Probably not a big risk if you have a TL866 external programmer. Otherwise it might be best to hold off for a bit. Be sure to read the readme if you decide to try it
I just tried your Modified XTIDECFG.COM and it works fine on my Lo-Tech Rom Board / ISA CF adapter and ISA USB adapter they all use the same SST chip, I used my IBM XT 5160 to do the testing, It's blisteringly fast when flashing a blank SST :).

Do the XUB dev team eval contributions somewhere? I think this would be much better to have in official releases
Hopefully one of the dev team will see your post, It would be great if XTIDECFG.COM supported the SST chips too, It has been mentioned before.
 
I just tried your Modified XTIDECFG.COM and it works fine on my Lo-Tech Rom Board / ISA CF adapter and ISA USB adapter they all use the same SST chip, I used my IBM XT 5160 to do the testing, It's blisteringly fast when flashing a blank SST :).

Thanks! It had not envisioned it for non-XTIDE BIOS programming but I guess that probably works. Currently it programs a fixed size of 32K. It is possible to program 64K by programming the top and bottom 32K separately. I think I will put a check in to see if the image is >32K, and if so, extend the programming range to 64. I have a little refactoring I want to do around sizes anyway to make things a bit more future proof.

On something slow (a 4.77MHz Tandy 1000), it takes around 2 seconds to program the full 32K. When there is an existing ROM and only part of the image needs updating, it is about half that. On faster machines it runs about twice as fast again.
 
Thanks! It had not envisioned it for non-XTIDE BIOS programming but I guess that probably works. Currently it programs a fixed size of 32K. It is possible to program 64K by programming the top and bottom 32K separately. I think I will put a check in to see if the image is >32K, and if so, extend the programming range to 64. I have a little refactoring I want to do around sizes anyway to make things a bit more future proof.

I went ahead and added a feature to auto-size the SST39SF programming range based on the size of the ROM image. If the image is <=32K, the programming range is 32K. If the image is larger, the programming range is 64K. I did consider adding selections for SST 32K and SST 64K to the EEPROM type selection. However I think this is confusing as none of the devices are actually this small. It does not improve robustness either - the user can still attempt to program a 64K image whether there is 64K of flash mapped in or not.

I have attached an updated build.
 

Attachments

  • XTIDE_SST39SF_Alpha_2.zip
    90 KB · Views: 5
I went ahead and added a feature to auto-size the SST39SF programming range based on the size of the ROM image. If the image is <=32K, the programming range is 32K. If the image is larger, the programming range is 64K. I did consider adding selections for SST 32K and SST 64K to the EEPROM type selection. However I think this is confusing as none of the devices are actually this small. It does not improve robustness either - the user can still attempt to program a 64K image whether there is 64K of flash mapped in or not.

I have attached an updated build.

And it works perfectly :) I used my 5160 and Lo-Tech ROM board, I set the dip switches to 64k and flashed the ROM board with a 64k 5160 system bios binary, Disabled the onboard system bios and with the ROM board set to F000h my 5160 posted successfully and booted from floppy..

Attempting to flash a 64k binary to the ROM board when set for 32k results in the standard "Timeout" error.

Good work, Hopefully the code will get merged into the official commits, It's very useful.
 
And it works perfectly :) I used my 5160 and Lo-Tech ROM board, I set the dip switches to 64k and flashed the ROM board with a 64k 5160 system bios binary, Disabled the onboard system bios and with the ROM board set to F000h my 5160 posted successfully and booted from floppy..

That is fun! Great testing and thanks again.
 
I have created an implementation of SST39SF0x0 flash ROM programming for the XT-IDE configurator (XTIDECFG.EXE). These are used on the Lo-tech XT-CF-lite and some of Rob Kreneki's Tandy 1000 EX/HX upgrades. I use them on all of my designs too. I expect there are more. There is already a command line programmer by James Pearce but I think it is a bit more accessible integrated into the configurator.

It is indeed! Thank you!

Do the XUB dev team eval contributions somewhere?

We very rarely get patches and I don't think we have ever received a patch of this quality. I do keep an eye on the XUB related threads on this forum so posting contributions here is fine but the best option is probably to send them to us via e-mail (addresses are at the top of Main.asm for the BIOS).

Anyway, I've just added your second patch to the repository so r620 is out. If you want to make more contributions then consider contacting James Pearce pearce_jj to get write access to the repository. But I will happily receive patches via e-mail if you prefer that.

Thanks again!
 
Anyway, I've just added your second patch to the repository so r620 is out. If you want to make more contributions then consider contacting James Pearce pearce_jj to get write access to the repository. But I will happily receive patches via e-mail if you prefer that.

Thanks again!

I am sure there will be bug fixes so I will PM James. And really, thanks to yourself and aitotat for all the work you have done and are doing. The scope, compatibility and quality of the work is impressive. I did my best to have my code match the existing code and you were keeping me on my toes for sure. :) It has been a long time since I have written a lot of x86 assembler. Not since Mega-Em for the UltraSound, and even that I switched much of to C after I started working for them.
 
I am sure there will be bug fixes so I will PM James...
You'll probably be better off contacting James via his website lo-tech.co.uk

If you want, maybe you could look at making the "Display ROM Boot" optional again via XTIDECFG.COM, Like it used to be in the early days, I think the option got removed back in 2010 somewhere between the release of XUB 1.1.4 and 1.1.5, Why i don't know.

I don't see the point in having the "ROM BOOT" displayed on systems that have NO cassette basic in ROM, It's more of a niggle than anything, I have no idea what's involved in doing so and i would imagine it would be a challenge today 11 years of updates later. Just a thought :)
 
If you want, maybe you could look at making the "Display ROM Boot" optional again via XTIDECFG.COM, Like it used to be in the early days, I think the option got removed back in 2010 somewhere between the release of XUB 1.1.4 and 1.1.5, Why i don't know.

I don't see the point in having the "ROM BOOT" displayed on systems that have NO cassette basic in ROM, It's more of a niggle than anything, I have no idea what's involved in doing so and i would imagine it would be a challenge today 11 years of updates later. Just a thought :)

That was removed in 2011: https://www.xtideuniversalbios.org/...ersalbios/trunk&new=109&sfp_email=&sfph_mail=

It is not quite clear to me why from the changeset but it looks on purpose to me. I have used the fall back to ROM boot on a couple of occasions when messing around with my Tandy's, so I am glad it was present. I'm never too keen on reversing someone's prior hard work either. :)
 
It's useful on some systems yes i agree, I've used it myself on my XT, but for other systems where it does nothing it's pointless, It makes more sense to be optional to me like it used to be, "Display Rom Boot Y/N"
 
I don't see the point in having the "ROM BOOT" displayed on systems that have NO cassette basic in ROM

The option to boot from ROM is also important for the IBM PS/1 2011 that is bootable from ROM with PC-DOS 4 and a GUI.
 
Hi all,
I've just finished a XT lite 4.1 board and flashed a 27c64 with an image named ide_xtl.bin but I get no universal bios splash upon boot, no led activity as well..
The .bin I've used I've found here
https://www.xtideuniversalbios.org/binaries/r622/Is there something I'm missing?
Soldering is fine and jumper settings are as seen in the malinov page of XT CF lite; only exception is that SW 2.1 is set to OFF since I'm using a UV EPROM.
 
Hi all,
I've just finished a XT lite 4.1 board and flashed a 27c64 with an image named ide_xtl.bin but I get no universal bios splash upon boot, no led activity as well..
The .bin I've used I've found here
https://www.xtideuniversalbios.org/binaries/r622/Is there something I'm missing?
Soldering is fine and jumper settings are as seen in the malinov page of XT CF lite; only exception is that SW 2.1 is set to OFF since I'm using a UV EPROM.
Your URL is not good.
 
I've just finished a XT lite 4.1 board and flashed a 27c64 with an image named ide_xtl.bin but I get no universal bios splash upon boot, no led activity as well..
IDE_XTL.BIN will not fit in a 27C64 8Kb Eprom when properly configured.

only exception is that SW 2.1 is set to OFF since I'm using a UV EPROM.
So you have DISABLED the Eprom

Is there something I'm missing?
Yep
 
Last edited:
Back
Top