Hi folks, thanks for the kind words.
In about 95%+ systems, PNP via O/S is enabled. To assign IRQ`s manually there are two differing ways to achieve the same result. Lets explore them.
To manually assign IRQ`s do the following:
1. Set in BIOS to assign resources "MANUALLY".
2. Set PNP aware O/S to "NO".
3. Start the system and once stabilized, go to the system icon within control panel and assign these resources to your likeing.
***alternate method also a perferred method**
This is applicable to PCI based peripherals and ISA toward the end of this method.
1. In BIOS (if available) set to assign resources manually.
2. Set PNP aware o/s to "no".
3. In probably the same screen a list of PCI slots and associated IRQ`s should be listed.
Assign ONE interupt to a particular PCI slot in the order given in BIOS with the add-on card in the slot you are assigning.
4. Repeat the above process for each add`l device/slot. Be aware that most AGP equiped boards assign the s
ame IRQ for AGP and slot1.
5. If any ISA cards are installed, deallocate these by choosing in BIOS to set ISA slots to "ISA devices NOT PCI" or the system will attempt to allocate these resorces.
If you have a ISA soundcard and or a hardware modem make certain that these resorces are set to ISA and not PCI.
6. Restart the O/S and with minimal setting up all should work provided you didn`t double up on any given resourse.
First some background.
There are 2 primary types of Interupts, one is "level" triggered and one is "edge" triggered. A "level" triggered IRQ is one that is "enabled" when a given device raises is "IRQ Request" to a given "level" or voltage above or below digital ground.
An "edge" triggered IRQ is one that "enables" when the voltage BEGINS to change states. In this the beginning of the IRQ Request signal "edge" is a request for service via the Interupt.
(an Interupt is basicly a way for a device to say "I need the bus to move data")
Sharing of IRQ`s is something that has to be experimented. For some it works well and some not at all. The whole idea is that many IRQ`s are only active for a short while then they relinquish the bus to another device(s). In sharing an IRQ, you choose a device that has a different IRQ request "time" then another device also using the IRQ. If all goes well, the 2 devices share the IRQ and there is no performance hit and the devices work normally. Now why it may NOT work with your or other systems. When Micky$oft designed their O/S they wanted it to be as user friendly as possible. To make it this user friendly, they made you give up "flexiblity".
In this, the O/S attempts to allocate resources for you on what it thinks is the best method. Since IRQ sharing is generally a "no-no", Win9x will not allow sharing of IRQ`s unless the following is TRUE:
1. The device using the IRQ is OFF more then its ON.
2. Additional device(s) using the same IRQ must also perform as above.
These devices that are OFF more then ON are called "low latency" devices (my terms) because they "fire" the IRQ only when needed and not until. This is very common to many LPT ports.
Certain devices are "high latency" in that they consume many CPU cycles to do their task. These devices are comm ports and HDD controller interfaces.
Low latency devices are SCSI cards of many types, net cards, many video cards and a few other devices/interfaces.
The following interfaces/devices SHOULD NOT BE SHARED:
1. comm ports
4. HDD controllers other then SCSI.
There are a few exceptions, but these should keep you out of trouble.
An easy "share" is many video types of AGP and the first PCI slot. Choose a net card to try first if you use one. Another is SCSI cards and net cards using IRQ9. I currently have 3 devices sharing IRQ9 with no ill effect. One is a TNT2 vid-card a SCSI card and a net card. Net cards often share well in my experiences EXCEPT 100 Base T cards.
Sharing of IRQ`s is something to experiment with because it can be done when you find 2 "peaceful" devices. Back-up your system and make one change at a time. If there are several open IRQ`s the devices WONT share in some cases. You should NOT share when its not necissary and only when its absolutely needed. In most books they say NO to IRQ sharing. I personally buy my devices knowing how their IRQ`s are "fired" so that they have a better chance of sharing.
DO not share soundcard IRQ`s because these devices are a very high latency device as are "soft modems" of many kinds.
When my fingers heal...we`ll take a stab at DMA channels and an optimum way to allocate them.
I hope this answers many of your questions and if you need further assistance, post your questions here.
By the way, an IRQ is a devices way to say "I need the bus and CPU time to move/process data"
IRQ stands for "Interupt ReQuest" and it does just like the name implies. It "Requests" the CPU to "interupt" what its doing to sevice a "request" made by a given device wanting CPU/bus time.
[This message has been edited by Toaster (edited 08-02-2000).]