• Please review our updated Terms and Rules here

XTIDE Universal BIOS

@Krille Power management is disabled. Tested it with another hard drive in the same PC. With this smaller hard disk (a Quantum Fireball 640 (640Mb)) I didn't get the delay and I couldn't hear any stop/start sounds from this one. So it seems it's hard disk related?
Yeah, I suspect that this only affects some hard disk models and I'm pretty sure it has to do with power management. Do you know if that Quantum Fireball 640 supports the power management feature set? Will it stop spinning if you enable the timeout? Though I am a bit surprised that this is a problem even when the timeout has been disabled.

Either way, please try the custom build you made without MODULE_POWER_MANAGEMENT. If the problem with the original drive disappears then that's a big step forward in debugging this.
 
Can't find anything in the specs about power management for the Quantum Fireball 640. But as it's an old one it most probably doesn't support it.

I removed MODULE_POWER_MANAGEMENT, MODULE_SERIAL, MODULE_SERIAL_FLOPPY and MODULE_WIN9X_CMOS_HACK and it now works perfectly! No more stop/start of the hard disk. Last 3 modules I removed as I don't need them anyway.

Can't explain why this solved the problem as the power management was already disabled in the settings but I am glad it is solved. Thanks for your help!
 
@maxtherabbit @Yoghoo
Is the power management idle timeout value set to something or is it disabled? Do you know if this problem affects all hard drives or just some models?
Power management would have been whatever the default setting is, I never messed with it. For me it's happening both on a 4GB silver Caviar AC and a 2GB maxtor
 
Can't find anything in the specs about power management for the Quantum Fireball 640. But as it's an old one it most probably doesn't support it.

I removed MODULE_POWER_MANAGEMENT, MODULE_SERIAL, MODULE_SERIAL_FLOPPY and MODULE_WIN9X_CMOS_HACK and it now works perfectly! No more stop/start of the hard disk. Last 3 modules I removed as I don't need them anyway.

Can't explain why this solved the problem as the power management was already disabled in the settings but I am glad it is solved. Thanks for your help!
Personally, I need the Win9x support. If that's somehow related it's no good for me to strip it out
 
Hello all and apologies if this is not the right channel to ask this question.
First of all thanks so much for the work you've done in this.

I am trying to do one of two things with a custom build of XT Universal Bios
A - Hide the Hotkey Bar while still maintaining it's functionality with key presses.
B - Move the Hotkey bar lower on the screen, not on line 0. (Say, line 15).

It looks like I need to change HotkeyBar.asm.
Option B seems to be the easiest, changing the HotkeyBar_DrawToTopOfScreen function somehow. Can someone here point me to what I need to change? I'm not an assembly expert.
On the other hand, for option A, seems like it would be move involved, but I would appreciate a pointer on that as well.

Thank you and take care.
 
Sorry if this is the wrong place to post, not sure if I should start a new thread.

Anyway I recently bought a 8088 4.77MHz Hyundai Super16 PC. Came with 5&1/4 floppy and MFM drive. The problem is the MFM drive is knackered and I have no 360k boot floppy (or way to create one). But, I do have a XT-CF_lite V4.1 PCB. When I last tried it many months ago (on a 486), I had zero success.

I have a 486 (with no HDD, just floppy boot) as a tool. I have managed to get the CH375 USB to ISA card to work, but the SYS driver file has to be loaded from floppy. Nevertheless it gives a way to get files onto this PC and copied to the floppy.

I now have a homebrew option ROM PCB, and I blew ide_386l.bin into a 16k EPROM. Had lots of problems until I realised that I tried to put the EPROM at address 0xE0000 which clashed with the BIOS. When I moved it to 0xD0000 I get the familiar boot menu (A>> etc). Didn't help that it was looking for address 0x240 !

I then had lots of issues with the XT-CF Lite. To summarise
1) the silk screen info for the IO 4 bit switch is incorrect.
2) the 74LS688 address enable IC for the CF IO port was broken!!! I swapped with the ROM address enable IC and removed the non-working 28C16.

After re-blowing the EPROM with the IO port address of 0x300 and selecting "XT-CF PIO8", XTIDE was able to see the CF. Using my Novell Dos 7 boot floppy (from years ago) I was able to partition and format a 256Mb CF, and eventually I was able to boot Novell DOS 7 from the CF. Thank you XTIDE :)

The Hyundai PC has an empty ROM socket (16k size, at 0xF8000). I blew another 16k EPROM using ide_xt.bin and "XT-CF PIO8" again.
When I switched on this PC, the XTIDE menu appears, but the text that should read "SMART CF" is garbled. See attachment.

I made an assumption that the problem might be with the boot code of Novell DOS 7 (perhaps it uses 386 opcodes?), so I returned to the 486 PC and after many frustrating hours, I created another 256Mb CF card which booted MSDOS 3.11, which I read works for 8088 CPUs.
When I tried to boot the Hyundai PC with this version of DOS, it just hangs.

My question
1) any ideas what might be going wrong?
2) is there a way to switch on any verbose diagnostics? (even if it means doing a custom compiler of XTIDE).

Many thanks...

P.S. For some reason I have labelled all my Novell DOS 7 disks as "NWDOS". While I still have the original disks, I threw out the manuals years ago.
 

Attachments

  • MSDOS311.JPG
    MSDOS311.JPG
    777.1 KB · Views: 13
  • NWDOS7.JPG
    NWDOS7.JPG
    619.4 KB · Views: 13
But, I do have a XT-CF_lite V4.1 PCB.
I then had lots of issues with the XT-CF Lite. To summarize
1) the silk screen info for the IO 4 bit switch is incorrect.
...
I have one of those cards, pictured at [here].
On my card, the 'I/O Selection Address' part of the silkscreen matches with the 'I/O Selection Address' table at the designer's web site at [here].
How is yours different?

( Switch bank SW1 in wrong orientation ? )
 
I have one of those cards, pictured at [here].
On my card, the 'I/O Selection Address' part of the silkscreen matches with the 'I/O Selection Address' table at the designer's web site at [here].
How is yours different?

( Switch bank SW1 in wrong orientation ? )
Just checked the KiCad layout. My mistake. :rolleyes: I mis-read as SW1 = IO port on/off SW2-4 = IO Port setting. So in my head I had them shifted over by one.
 
The Hyundai PC has an empty ROM socket (16k size, at 0xF8000). I blew another 16k EPROM using ide_xt.bin and "XT-CF PIO8" again.
When I switched on this PC, the XTIDE menu appears, but the text that should read "SMART CF" is garbled. See attachment.
Out of curiosity, is there a reason why you are trying to use the empty motherboard ROM socket? You have an EPROM programmer. You could use that to program the XT-CF Lite's 28C64 EEPROM.

I made an assumption that the problem might be with the boot code of Novell DOS 7 (perhaps it uses 386 opcodes?), so I returned to the 486 PC and after many frustrating hours, I created another 256Mb CF card which booted MSDOS 3.11, which I read works for 8088 CPUs.
When I tried to boot the Hyundai PC with this version of DOS, it just hangs.
By "hangs", I am presuming that the first photo in post #672 shows that. If so, I am seeing that the XTIDE Universal BIOS (XUB) is not detecting the CF card. Note that per [here], that has nothing to do with what data (ones and zeroes) is on the CF.

I can see that you have the XUB configured for I/O base port 300h, and presumably, you have the XT-CF Lite configured for 300h. Could it be that there is something on the motherboard that uses I/O ports about 300? Another expansion card is fitted that uses I/O ports about 300? Or was this a misreading of the XT-CF Lite's I/O switches?
 
On the 8088 PC I have no way to get files onto this PC (without more work[*]). This was the reason for wanting to "debug" the XT-CF in the 486 in order to transplant into the 8088 and boot DOS off a CF card.
The 8088 has a 360k 5&1/4 floppy drive, but I have no boot disk.

I now have 2 CF cards, one MSDOS 3.11 the other Novell DOS 7, both boot using XTIDE on the 486. The 486 does not have a IDE drive. Before I even had the 8088 I wanted a way to "transfer" files between my main PC and the 486. The XT-CF/XTIDE combo appeared to give me a solution. I did get the CH375/USB stick combo working on the 486, but this needs a .SYS file on the boot disk. You can't boot from the USB flash. So XT-CF/XTIDE works well as a solution for the 486. So for quite some time I have being booting from floppy, a floppy which was created back in the 80's !

My initial attempts to get the XT-CF card to do anything last year, were a complete failure. So I gave up and put the card to one side. The "new" 8088 Hyundai PC encouraged me to "try again" since I have no way to boot this PC.

1) I initially misread the DIP switch silk screen, but used the KiCad layout to determine the order and since then the switches have been set to 0x300, and the ide_XXX.bin files have also been configured to 0x300. This is no longer an issue.

2) One of the 74LS688 address "decode" ICs was faulty.

3) It is possible that the 28C64 was also faulty.

Figuring out 1) and 2) finally allowed me to get the XT-CF working in the 486, but using a separate ROM card. I was very happy to reach this stage.

About 3) the XT-CF, the PCB did have a Seeq PQ28C64 installed, but in previous experiments I never ever saw the XTIDE menu appear. Perhaps during these past experiments the 74LS688 and 28C84 got fried?
When I tried to program the 28C64 today, it failed to verify, so perhaps this chip is now also faulty. I do not have a spare.

I used the 16k EPROM and my own PCB since 1) I wanted to validated this PCB which came back from JLCPCB only last week 2) I used the ide_386l.bin image which is 10k to get things working on the 486.

The 8088 Hyundai motherboard does have on board floppy, serial and parallel. Serial and Parallel are disabled. On-board floppy cannot be disabled, but it is at the normal port address (0x3F0-0x3F7). It also came with a VGA card.
So the only cards plugged in are VGA and XT-CF. So I am 100% sure of no conflicts at port 0x300.

I have used the 8088 Hyundai spare ROM socket, since it makes sense to me. I can see that the code is being executed. The option ROM fixed hardware address base is 0xF8000. BIOS is at0xFC000.

By "hangs" I mean that it says booting C, but then nothing. The XT-CF LED never flashes. I have no idea if the boot sector was read. I do see that the text "SMART CF" is corrupted with funny C characters, which do not appear on the 486. I have no idea where these come from.

Today I compiled a "custom" XTIDE image. The first time I typed "make" (in Cygwin) it worked "out of the box". I edited the makefile to create an image for XT with CF. I blew an EPROM and installed in the motherboard socket. The results are exactly the same as using the EPROM based on the "ide_xt.bin" image.

So I was wondering if the code could now be modified to print even simple diagnostics, perhaps send codes to my POST card, in order to figure out what code has run and what hasn't.

[*] today I connected the 5&1/4 360k drive to the 486, having found a suitable cable with both 5&1/4 and 3&1/2 connectors. I was able to format a 360k disk and install Novell DOS 7 from my 3&1/2 Novell 7 boot floppy. When moved back to the 8088 it did boot into Novell DOS 7. This isn't the most convenient way to get software to run on the 8088 machine, not helped since I only have one 5&1/2 floppy disk and one drive.
 
The XT-CF LED never flashes.
The CF card controls the LED - see [here]. From memory, for something simple like reading one sector, I don't think the LED flashes. Maybe it does flash, but so fast that a human can't detect it. And since the CF card controls the LED, the 'on' duration may be dependent on the make-model of CF card. There are times when I noticed that a DIR command did not result in the LED flashing.

By "hangs" I mean that it says booting C, but then nothing. The XT-CF LED never flashes. I have no idea if the boot sector was read. I do see that the text "SMART CF" is corrupted with funny C characters, which do not appear on the 486. I have no idea where these come from.
I got confused, thinking the corrupted 'SMART CF' was appearing when the XT-CF Lite was in the 486. If that same {XT-CF Lite + CF combination} correctly displays 'SMART CF' when it is in the 486, the question becomes, "In the 8088, what is corrupting some bytes read from the CF?'

Does that corruption vary, e.g. where the strange characters appear in the model string?

I have no idea if the boot sector was read.
With this {XT-CF Lite + CF combination} booting okay in the 486, we can rule out the first issue described at [here].

Hypothesis. I think the first sector on the CF is being read: The XUB put the CF card into 8-bit mode, then interrogated it for model information. The returned model information is corrupted but the XUB does not know that. Refer to post #17 at [here]. You are not seeing the XUB report an INT13 error, and you are not seeing "Boot sector not found". So maybe the first sector, the MBR, was read, but some of the bytes were corrupted on their way to the CPU, but not the 55AA signature bytes.

To test the 'data is being corrupted' hypothesis, what you could do is use DEBUG (or other) to look at the MBR when the {XT-CF Lite + CF combination} is fitted to the 484 (i.e. all working okay), then do the same examination when the {XT-CF Lite + CF combination} is in the 8088, comparing the two sets of bytes.

( BTW. We've seen a few cases of corrupted data read from a good CF. An example is posts 1182 through 1192 of the thread at [here]. )
 
So I was wondering if the code could now be modified to print even simple diagnostics, perhaps send codes to my POST card, in order to figure out what code has run and what hasn't.
Some issues that I have experienced with a POST card in a PC or XT class computer, are detailed at [here].

Instead, for a PC or XT class computer, I insert code that sends diagnostic codes/bytes to a parallel (LPT) port, and use the device shown at [here] to view the bytes. The bytes can also be viewed by a line printer that has a 'hex' mode - example at [here]. Rather than sending to a single LPT port, for flexibility, I send to three:
Code:
outLptPort:
    mov    dx,378h
    out    dx,al
    mov    dx,278h
    out    dx,al
    mov    dx,3BCh
    out    dx,al
    ret
 
[*] today I connected the 5&1/4 360k drive to the 486, having found a suitable cable with both 5&1/4 and 3&1/2 connectors. I was able to format a 360k disk and install Novell DOS 7 from my 3&1/2 Novell 7 boot floppy. When moved back to the 8088 it did boot into Novell DOS 7. This isn't the most convenient way to get software to run on the 8088 machine, not helped since I only have one 5&1/2 floppy disk and one drive.
Presumably, you will be acquiring more 360K sized floppies.

FYI. In the 8088, if you attach a 'standard' 1.44M drive up to the floppy controller, in place of the 360K drive, it is expected that you will be able to boot from a 720K sized DOS boot diskette. For those with an IBM PC or IBM XT, the instructions that I point to are at [here].

FYI. In the 8088, the XTIDE Universal BIOS (XUB) together with the motherboard's serial port, and some other hardware, can access a serial drive - see [here].
 
I did get the CH375/USB stick combo working on the 486, but this needs a .SYS file on the boot disk. You can't boot from the USB flash
Are you aware of 'Hak Foo's' Boot bios and 'FreddyV's' DOS driver ?, If you got a spare ROM board you could try with the Boot bios on that.
By "hangs" I mean that it says booting C, but then nothing. The XT-CF LED never flashes. I have no idea if the boot sector was read. I do see that the text "SMART CF" is corrupted with funny C characters, which do not appear on the 486. I have no idea where these come from.
Your first priority is to get the CF 'Model string' to read correctly, Wipe the CF RAW / Zero out the whole of the CF, The XUB issues the 'Drive Identify' command and gets the parameters from the CF. Did you build this XT-CF lite yourself or buy it Pre-built ?. What IC's are on the board, are they 'LS' / 'HC' / 'HCT' series or ?.
 
Back
Top