Advanced Topics
K
A
DAK
161
Interrupt Masking
The Breakpoint Manager must be tailored to inhibit interrupts at breakpoints. Which
interrupts are to be inhibited and how this is done is both system and hardware
dependent.
When you include the Breakpoint Manager in your AMX system, module AA831BKA.OBJ
is included from the AMX Library. This module contains procedure AMBKOF to inhibit
selective interrupts at a breakpoint and procedure AMBKON to restore these interrupts upon
resumption from the breakpoint.
Module AA831BKA.OBJ supports the use of AMX on PC/AT compatible hardware in
which two Intel 8259 interrupt controllers are used to mask interrupts.
The 8259 interrupt disable masks AMBKM1 and AMBKM2 identify the interrupt request lines
(IRQs) which will be inhibited at breakpoints. Bits 0 to 7 of mask AMBKM1, if set to 1,
inhibit interrupts on IRQ0 to IRQ7 respectively. Bits 0 to 7 of mask AMBKM2, if set to 1,
inhibit interrupts on IRQ8 to IRQ15 respectively on the slave 8259. By default, mask
AMBKM1 is set to 0FCH and mask AMBKM2 is set to 0FFH to inhibit all interrupts except the
clock on IRQ0 and the keyboard on IRQ1.
You must leave the keyboard interrupt enabled (AMBKM1 mask bit 1 = 0) to permit PC
debuggers to use the keyboard. You must leave the clock interrupt enabled (AMBKM1
mask bit = 0) to permit proper resumption from breakpoints. You may wish to leave the
interrupt enabled for the diskette (AMBKM1 mask bit 6 = 0) or the hard disk (AMBKM2 mask
bit 6 = 0) to allow the debugger to access disk files.
If you are testing an AMX system on custom hardware, you may have to edit procedures
AMBKOF and AMBKON in module AA831BKA.ASM to meet the needs of your hardware.
Assemble the module and rebuild the AMX 86 Library to include your version of this
module. Follow the instructions provided in Appendix A of the AMX 86 Tool Guide.