[comp.lang.pascal] The PIC.

woodc@jacobs.cs.orst.edu (Major Havok) (06/02/91)

  Ok, I posted a message on here a few days ago and a few people responded
by giving me the names of certain books to check out. Thanks for the
information guys, but I won't have access to those books any time in the
near future. I'll ask my question again, maybe someone can provide me
with some clue that may help me.
 
  My question is this: Does anyone have any information on programming
the IBM's Programmable Interrupt Controller (or PIC)? Here is the 
information that I currently know about the PIC... I know that it
begins at port address $20 and that every group of 4 address in the PIC
correspond to an IRQ with the first IRQ being IRQ0 (i.e. port addresses
$20 thru $23 are assigned to IRQ0, port addresses $24 thru $27 are 
assigned to IRQ1, etc...). I know that there are 8 IRQs ranging from
IRQ0 to IRQ7 (and an additional 8 on IBM ATs and PS/2s). I understand
that IRQ0 thru IRQ7 correspond to interrupts $08 thru $0F. It is my
understanding that if I wish to perform a task using a level 3 
interrupt request (IRQ3) that will occur every time a change in the
status of a hand scanner (for example) occurs, then I would need
to access PIC addresses $2C thru $2F. Is this correct? Do I have
all my information right so far? If those are not the correct port
addresses, then what are? What values should be placed in these PIC
addresses and what do they mean? (For instance, are the values that
are placed in the PIC memory locations or are they port addresses? or
what???) Once again, if you have any pascal source code to accompany
an explaination, it would be greatly appreciated. Thanks in advance...
 
Chris Wood
(woodc@jacobs.cs.orst.edu)