VOGONS


First post, by Bjorn

User metadata
Rank Newbie
Rank
Newbie

I have one of those unusual Jaton 8088 motherboards with SIPP/SIMM memory - very similar to those in this thread.
After many years of owning this board and thinking it was broken, I decided to tinker with it again recently and it turns out it was fine all along! (Combination of things, like VGA cards I thought were 8-bit compatible but actually weren't, and discarding the right setup because I did it only slightly wrong, like missing the exact right pixel in an adventure game)

Annnyway... it's nearly fully functional now, but I'm having a weird issue in that the system won't read 360k 5.25'' floppies, but it'll do 1.2MB disks just fine.
I have tried a genuine 360K drive (AFAIK an OEM Amstrad drive) and a 1.2MB drive (NEC FD1157C), but I just keep getting errors from that darned General Failure when trying to read Double Density disks (I don't know why he hasn't been demoted to Brigadier yet...)
All the drives as well as the controller card - an unbranded 8-bit card with a zilog chip - have been tested in another machine (a 386SX33) and will read 360k disks fine in that setting. Same disks, same card, same drive, same cable fail to work in the XT clone.
I don't have any other 360k drives or 8-bit floppy controller cards that I can test with unfortunately.

I have tried every imaginable combination of jumpers and DIP-switches on the jaton mobo and on the floppy drives (no jumpers on the controller card), together with every position before and after the twist on the floppy cable and have had no joy.

As I said, the High Density drive reads 1.2MB floppies like a champ, but General Failure is hanging over 360k floppies like a bad smell. I was a little surprised, TBH, that 1.2MB disks worked at all. Didn't expect the mobo or the floppy controller to handle them... (Haven't tried any 3.5'' drives yet)

My only suspicion now is there is something weird with the BIOS (Phoenix v2.27) - it also declares the keyboard to be bad on POST, even though the keyboard works fine.

Any suggestions will be appreciated!

Reply 1 of 8, by mkarcher

User metadata
Rank l33t
Rank
l33t

It is indeed unexpected that an XT BIOS is able to read 1.2MB floppy disks. A classic XT floppy controller has a fixed data transfer rate, and that's the rate required for DD drives. The XT BIOS does not contain any code to switch data transfer rates of the controller. And likely that's the reason for your observation: Your controller chip starts up configured at the HD transfer rate (possibly by chance), and as the XT BIOS doesn't know how to switch rates, you are stuck at the HD rate.

You either need a XT-like DD-only controller, or a BIOS extension to support your HD floppy controller.

Reply 2 of 8, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi. 🙂 That's interesting, an average XT floppy controller can't do high speed transfers, as used by HD floppy drives with HD floppies formatted with HD capacity.
I mean, there really were controllers that could, but they were higher end.

Anyway, if it's a software problem, I recommend loading a dedicated floppy controller BIOS. Like 2M-XBIOS (XT and AT version available).

More information:
https://minuszerodegrees.net/2M-XBIOS/2M-XBIO … 4M%20as%20B.htm

It helped me to get 720KB format working on an XT compatible.
I needed that feature for my Gotek (installed as drive B:).

Edit: @mkarcher Ah, sorry, we were writing at same time. Please never mind. 😅

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 3 of 8, by mkarcher

User metadata
Rank l33t
Rank
l33t
Jo22 wrote on 2023-09-14, 18:28:
Anyway, if it's a software problem, I recommend loading a dedicated floppy controller BIOS. Like 2M-XBIOS (XT and AT version ava […]
Show full quote

Anyway, if it's a software problem, I recommend loading a dedicated floppy controller BIOS. Like 2M-XBIOS (XT and AT version available).

More information:
https://minuszerodegrees.net/2M-XBIOS/2M-XBIO … 4M%20as%20B.htm

Edit: @mkarcher Ah, sorry, we were writing at same time. Please never mind. 😅

No problem at all! Your link to 2M-XBIOS adds a lot of value to the thread. While I was thinking about a ROM extension to add HD support (just like people use the XT-IDE Universal BIOS to replace the mainboard IDE BIOS), hooking INT13 in a DOS driver works equally well. If using 2M-XBIOS makes HD and DD drives work as expected, the issue is that the floppy controller is an 8-bit card (which is enough for any kind of PC/XT/AT floppy controller!), but still yet AT-level floppy controller requiring an AT-level BIOS for proper operation (like any 286 or later bios, or like 2M-XBIOS).

Reply 4 of 8, by Bjorn

User metadata
Rank Newbie
Rank
Newbie

Awesome, thanks for the info. I'll definitely be trying seeing how I go with the 2M-XBIOS!
Ideally I'd like to be able to boot from floppies, but if it only works in DOS that will be OK too.

So I did a bit more testing, and, well... bit of a silly mistake on my part earlier. I was a bit lazy with my previous tests, and it seems 1.2MB disks don't really work after all.
I can get a directory listing, but I can't boot from them, and data transfers just throw a bunch of "sector not found errors"
Oops!

Anyway, the problem with 360K disks remain - no signs of life whatsoever.
I do have an XTIDE card installed (my only 8-bit compatible HDD solution ATM), but even without it installed the system won't read DD floppies.

Reply 5 of 8, by mkarcher

User metadata
Rank l33t
Rank
l33t
Bjorn wrote on 2023-09-15, 12:49:

So I did a bit more testing, and, well... bit of a silly mistake on my part earlier. I was a bit lazy with my previous tests, and it seems 1.2MB disks don't really work after all.
I can get a directory listing, but I can't boot from them, and data transfers just throw a bunch of "sector not found errors"
Oops!

That's because the disk controller is set up to read data at the HD rate (500 kbit/s), so it can read sectors from the HD disk, but the BIOS "knows" that any floppy supported by the IBM XT can not have more than 9 sectors per track, so any sector number above 9 is rejected by the BIOS, using the status code "sector not found". So this is just another facet of the same underlying issue of running an HD controller with a DD BIOS.

Bjorn wrote on 2023-09-15, 12:49:

Anyway, the problem with 360K disks remain - no signs of life whatsoever.

Of course. The signal of a 360K floppy as read by a DD drive is at a rate of 250kbit/s. The floppy controller will not correctly read this signal while it is configured to read 500kbit/s. As HD drives rotate at 360RPM instead of 300RPM, they read DD disks at a higher rate, and the floppy controller needs to be configured to 300kbit/s to read DD floppies in HD drives. Your controller supports all three of these data rates, as long as the BIOS selects the required one. An AT BIOS with HD support considers all these issues and uses the drive type in the CMOS setup to determine which data rates might work, how many sectors per track are expected and then does test reads to determine the correct floppy type whenever a floppy is changed. Currently, you don't have a proper "driver" for your HD controller. The "driver" built into the XT BIOS just works partially "by coincidence".

Reply 6 of 8, by Bjorn

User metadata
Rank Newbie
Rank
Newbie

Oooh... that's some great info, mkarcher! It's all beginning to make sense now.

So for the record, I tried 2m-xbios, and it worked like a charm! I can read and do data transfers in DOS with no problem using it.
Of course, I still can't boot from a floppy because xbios isn't loaded yet.
Except that's not entirely true... I can trick the computer into booting from floppy anyway with a soft boot (alt+ctrl+del) after config.sys has been processed.
I'm not sure if this is weird or not, but this method only works if I boot into DOS, load xbios AND THEN do some kind of data transfer on the disk before doing the soft boot. If I don't arbitrarily copy something first, it doesn't work.

So armed with this new information, any ideas on how I can get the whole setup functioning the way it should? (Ideally I wouldn't like to rely on 2m-xbios in the long run)
Is it a matter of getting a different floppy controller, an updated BIOS for the mobo (there are a few versions floating around), or is there a way of loading something like 2m-xbios as an option ROM? Maybe OpenSOC86?

Reply 7 of 8, by mkarcher

User metadata
Rank l33t
Rank
l33t
Bjorn wrote on 2023-09-16, 03:40:

Of course, I still can't boot from a floppy because xbios isn't loaded yet.
Except that's not entirely true... I can trick the computer into booting from floppy anyway with a soft boot (alt+ctrl+del) after config.sys has been processed.
I'm not sure if this is weird or not, but this method only works if I boot into DOS, load xbios AND THEN do some kind of data transfer on the disk before doing the soft boot.

This is not weird. As soon as you do data transfer from/to a DD disk (a simple "DIR" is enough), the HD controller driver "2M-XBIOS" starts identifying the disk currently inserted in the drive and recognizes that the controller needs to be switched into DD mode to access the disk. This setting is persistent until a power cycle or the controller is reprogrammed to HD mode again. Pressing Ctrl-Alt-Del does not run any code that knows how to switch the controller into HD mode, so it stays in DD mode.

Bjorn wrote on 2023-09-16, 03:40:

So armed with this new information, any ideas on how I can get the whole setup functioning the way it should? (Ideally I wouldn't like to rely on 2m-xbios in the long run)
Is it a matter of getting a different floppy controller, an updated BIOS for the mobo (there are a few versions floating around), or is there a way of loading something like 2m-xbios as an option ROM? Maybe OpenSOC86?

All your ideas are plausible:

  • An PC/XT floppy controller (that's one that doesn't support multiple data rates) would work with 360KB disks 360KB drives. It will (obviously) not works with 1.2MB disks, because the controller doesn't support the higher data rate of HD floppies. Furthermore, it won't even work with DD floppies in HD drives, because the rotational speed (and thus the data rate) of HD drives is different than the speed / data rate of DD drives, even with the same kind of floppy inserted.
  • An aftermarket HD-compatible BIOS would fix your issue. You would need to research whether the "updated" BIOS images for your mobo are intended to add HD floppy support.
  • An option ROM would work as well. It doesn't matter whether the HD floppy driver is part of a resident DOS driver, an option ROM or the mainboard ROM. It just needs to be there.

https://github.com/skiselev/8088_bios seems to be a BIOS that has a variant which is intended to run on an IBM XT. It does support HD floppies, but likely doesn't support the Turbo feature of your Turbo XT board. The floppy driver is also available as a separate option ROM, https://github.com/skiselev/floppy_bios. As an PC/XT has not BIOS setup, that floppy ROM image needs to be patched to set the drive type.

Reply 8 of 8, by Bjorn

User metadata
Rank Newbie
Rank
Newbie

OK, I've got some options going forward now. Thanks again for all the info!
I think I like the idea of the option ROM best - the purist in me doesn't want to replace the original BIOS, and the cheapskate in me doesn't want to buy a whole new controller card.