Programming interrupts – Micromod MOD: 1731N ICN Mini-Link Users Guide User Manual
Page 19

IB-23C003
PROGRAMMING MINI LINK INTERRUPTS
SECTION 3
PROGRAMMING MINI LINK INTERRUPTS
3.1
GENERAL
The IBM PC/AT has reserved hardware interrupts for common devices (printers, disk
drives, etc.) within the interrupt level range (IRQ3-IRQ7) of the Mini Link. The Mini Link
does not support the high order (8-15) interrupt request lines available on the IBM PC/AT.
To operate the Mini Link on COM1, COM2, COM3 or COM4, the jumper settings from
Tables 2-2, 2-3 and 2-4 must be employed exactly as they appear.
MicroMod Auto-
mation
assumes no liability for improperly installed hardware or damage caused by
improperly
installing the Mini Link card in your personal computer.
3.2
COMMUNICATIONS POLLING (NO INTERRUPTS)
Not all serial communications routines require the use of hardware interrupts. If your
controlling software polls the Transmit Data Register Empty (TDRE) and Receive Data
Register Full (RDRF) status bits of the PC/AT Serial Port, you probably will not need to
enable ANY of the interrupt lines. The Mini Link will continue to function properly without
an enabled Interrupt Request Line.
3.3
COMMUNICATIONS USING INTERRUPT SERVICE ROUTINES
To enable a particular Mini Link Interrupt line (IRQ3-IRQ7), Interrupt Service Routine
commands must be issued to the 8259 Programmable Interrupt Controller (PIC) by the
controlling software. In most cases, these commands are issued by the controlling
software package (PC30, etc.). In those cases where the user is programming the Mini
Link, the software protocol described below is observed.
CPU Response to Programmed Interrupt
When an interrupt is generated by a device on the personal computer I/O channel, the
CPU responds by:
1.
Completing the current CPU instruction
2.
Saving the contents of volatile registers
3.
Fetching the interrupt ID from the PIC
4.
Fetching the interrupt service routine vector associated with interrupt ID
5.
Executing the interrupt service routine at the memory location pointed to by the
interrupt service routine vector
6.
Restoring the contents of volatile registers
7.
Continuing execution of the current program
3-1