Dec 292017
C++ class and description of the 8259 programmable interrupt controller.
File PIC_8259.ZIP from The Programmer’s Corner in
Category C++ Source Code
C++ class and description of the 8259 programmable interrupt controller.
File Name File Size Zip Size Zip Type
LEG.H 537 222 deflated
MUT_EXCL.CPP 785 371 deflated
MUT_EXCL.H 1631 703 deflated
PIC_8259.CPP 13822 2450 deflated
PIC_8259.DOC 12295 3827 deflated
PIC_8259.H 10896 2706 deflated
READ.ME 2259 1064 deflated

Download File PIC_8259.ZIP Here

Contents of the READ.ME file

The enclosed files can be used to control and determine the status of
the 8259 programmable interrupt controller. I intended to complete
the package and test it however I have not had time and decided to
release it without testing. Please address any criticisms or
suggestions to Larry Greenberg on the Programmer's Corner BBS.


The PIC_8259 class provides control and status of the 8259 Programmable
Interrupt Controller chip. A description of the chip is provided which
corresponds to the functions in this package. There is no reference to
the control words which the 8259 actually uses since this detail is not
necessary to the understanding of how the chip works and how to control
it. These are unnecessary details as far as the programmer is concerned
and are hidden. This package can be used for custom hardware systems or
for the PC.

The use of the 8259 in the PC has not been organized. INTEL specified
that interrupts 0=31 were reserved, yet MS used them in DOS. Looking

through the BIOS it seems that the master 8259 is not programmed to use
Special Fully Nested Mode. This means that an interrupt on the slave
will be locked out until the slave's current interrupt service routine
(if there is one) completes even though the requesting interrupt may
have a higher priority.

The free access provided to the PC hardware by DOS has resulted in an
unorganized use of the 8259. A package can modify the behavior of the
8259 in any way and affect other routines using the chip. Anyone can
set or mask priorities or reinitialize the chip differently from the way
it was initialized in the BIOS.

Classes for hardware can simplify designing and writing low-level software.
If you have a need to work with the 8259 I hope that the included code
and doc are of help to you.

The enclosed code and documentation may be used freely as part of a
software package.

Files included are:

READ.ME (this file)

PIC_8259.DOC a description of the 8259
PIC_8259.H CPP header (declaration)
PIC_8259.CPP CPP definition

MUT_EXCL.H class to prevent concurrent use of hardware
MUT_EXCL.CPP definition.

LEG.H a few miscellaneous "#define"s

 December 29, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>