Apologies if this has been asked many times before, but: I've read lots of things saying that IRQs can't be shared, and I understand why that could be the case if I had two devices triggering the same IRQ line and two drivers I wanted to process those interrupts but the hardware and software weren't designed to cooperate in this way (I have seen explanations about this), but why can't they be shared if one device isn't actually being used and (to the best of my knowledge) no running software cares about it?
I've got a Dell OptiPlex GXL 5100 which has:
- onboard Sound Blaster Vibra 16S (ISA PnP)
- onboard 3COM EtherLink III; I turned off PnP for this
- onboard parallel port and 2 serial ports
I've recently installed a clone of an IBM Enhanced 5250 Emulation ISA adapter. It seems that this card lets you set the IRQ via software, and some programs that use the card let you pick an IRQ, but older software seems to always use IRQ 5.
I do have Windows 3.x installed and will probably install 9x at some point, but for these tests I'm just using DOS.
My onboard Vibra 16 was using IRQ 5, and I hoped that if I just didn't run the DIAGNOSE utility to tell the Vibra 16 what IRQ to use (at least that's my understanding of what DIAGNOSE does), the 5250 adapter should be able to use IRQ 5. However, that didn't work - the IBM Enhanced 5250 Emulation Program kept indicating "System Available" and then losing that again - until I turned off the onboard audio in the BIOS settings.
Then I tried changing the Vibra 16 over to IRQ 7 (set BLASTER to include that value before running DIAGNOSE), and hoped that so long as I wasn't actually using the parallel port, sound should still work, but it only worked in some games - in others digital sound no longer worked. It was only when I went into the BIOS settings and turned off the parallel port that sound worked in all games.
In these cases I don't think it's a software thing - when both the 5250 adapter and sound card were on IRQ 5, I don't think any software would have hooked IRQ 5 apart from the IBM Enhanced 5250 Emulation Program, and I don't see why the Vibra 16 would have been generating interrupts. Similarly when both the sound card and parallel port were on IRQ 7, I don't know if maybe the BIOS hooks IRQ 7 on boot for some reason, but surely the game hooked it after that anyway, and the parallel port shouldn't have generated any interrupts anyway?
Is it a hardware thing where two different devices are driving the same IRQ line to different voltage levels, rather than when a device isn't signalling an interrupt it leaves that bus line in a high-impedance state or something, so that IRQ sharing only works between certain devices which have been designed correctly at the hardware level?
It's not so bad if I have to go into the BIOS settings to turn devices on and off based on what hardware I want to use at any given point in time, but it would be nice if there was a better way!
I've got a Dell OptiPlex GXL 5100 which has:
- onboard Sound Blaster Vibra 16S (ISA PnP)
- onboard 3COM EtherLink III; I turned off PnP for this
- onboard parallel port and 2 serial ports
I've recently installed a clone of an IBM Enhanced 5250 Emulation ISA adapter. It seems that this card lets you set the IRQ via software, and some programs that use the card let you pick an IRQ, but older software seems to always use IRQ 5.
I do have Windows 3.x installed and will probably install 9x at some point, but for these tests I'm just using DOS.
My onboard Vibra 16 was using IRQ 5, and I hoped that if I just didn't run the DIAGNOSE utility to tell the Vibra 16 what IRQ to use (at least that's my understanding of what DIAGNOSE does), the 5250 adapter should be able to use IRQ 5. However, that didn't work - the IBM Enhanced 5250 Emulation Program kept indicating "System Available" and then losing that again - until I turned off the onboard audio in the BIOS settings.
Then I tried changing the Vibra 16 over to IRQ 7 (set BLASTER to include that value before running DIAGNOSE), and hoped that so long as I wasn't actually using the parallel port, sound should still work, but it only worked in some games - in others digital sound no longer worked. It was only when I went into the BIOS settings and turned off the parallel port that sound worked in all games.
In these cases I don't think it's a software thing - when both the 5250 adapter and sound card were on IRQ 5, I don't think any software would have hooked IRQ 5 apart from the IBM Enhanced 5250 Emulation Program, and I don't see why the Vibra 16 would have been generating interrupts. Similarly when both the sound card and parallel port were on IRQ 7, I don't know if maybe the BIOS hooks IRQ 7 on boot for some reason, but surely the game hooked it after that anyway, and the parallel port shouldn't have generated any interrupts anyway?
Is it a hardware thing where two different devices are driving the same IRQ line to different voltage levels, rather than when a device isn't signalling an interrupt it leaves that bus line in a high-impedance state or something, so that IRQ sharing only works between certain devices which have been designed correctly at the hardware level?
It's not so bad if I have to go into the BIOS settings to turn devices on and off based on what hardware I want to use at any given point in time, but it would be nice if there was a better way!