Re: sfx2.e and irq's higher than 7

new topic     » goto parent     » topic index » view thread      » older message » newer message

Since Windows is a DOS program ...

----- Original Message -----
From: "Bernie Ryan" <xotron at localnet.com>
To: "EUforum" <EUforum at topica.com>
Subject: RE: sfx2.e and irq's higher than 7


(...)

> Michael:
>   I took a quick look at the code in detect.ex and see that the
>   IRQ routines limit you to IRQ 7.
>
>   It looks like you have to go through detect.ex and change
>   the code in the routines that interrupt is tested to be less than
>   eight (You would have to change the 8 to 16 ).
>   Note that 8 is also being subtracted in the
>   EnableIRQ(), DisableIRQ().
>   Also change 8 tests in TstInt()
>   Add the interrupts you want to use to constant SB_INT_NO sequence
>   Hope that helps.
> Bernie

And why is that? Quoth SiSoft Sandra:

Channels - There are 2 interrupt controllers in today's PC, each providing 8
channels. One channel is used to connect the master interrupt controller to
the slave interrupt controller, leaving 15 free interrupts. However, the
chipset itself uses many interrupts (about 11) leaving only about 3-6 free.
Until recently no two devices could share and interrupt (in most cases)
since the software could not tell them apart, but new BIOSes & OSes have
implemented a resource sharing protocol since there are just not enough free
interrupts for all the hardware to use.

and also:

Software Interrupts - are interrupts generated by software, Typically they
are used to call services provided by a BIOS (system, video, hardware).
There are 256 in total which include the 16 hardware interrupts. When an
interrupt occurs the CPU  jumps to the interrupt handler which is listed in
a table called the 'interrupt vector table'. The handler saves the current
CPU state, deals with the interrupt, restores the initial state and exits.

Irq. No. - The number of the software interrupt in hexadecimal.
16:16-bit Address - The address (16bit segment + 16bit offset) of the real
mode interrupt handler. The real mode is the mode MS-DOS runs on.
Handler - The name of the Windows module/device driver which handles the
interrupt.

(from the  SiSoft Sandra Help File)

Meaning that you actually have 8 basic IRQs (numbered 0-7). You'll probably
find that one of them is not assigned to anything (in my case, it's #3, but
that's flexible). This 'vacant' IRQ is actually a pointer to the second
table, IRQs 8-15.

Have fun. 20 years from now, your kids won't believe you.

Gerardo

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu