[net.micro.pc] 8259 PIC

nadji@uscvax.UUCP (Behzad Nadji) (04/11/86)

"One can send a EOI to 8259 PIC by writing a 20H into port 20H."

Where can I get more detail on this?
I have looked through the followings with no success:

   1) IBM PC TECH REF MANUAL
   2) IBM AT TECH REF MANUAL
   3) Norton's "Programmers Guide.."
   4) Dan Rollins' "IBM PC 8088 Assembler Prog."
   5) David Bradley's "Assembly Language Programming for the IBM PC"

The only place I found any reference to this was in Bradley's book
and that was very brief. And by looking at other peoples code and seeing 
that they all write a 20H to port 20H at the end of their interrupt handling 
routines.

Is there anything else to know about port 20H? Can anyone direct me
(exact pointers please) to find a little detail about this and related 
subjects.

Thanxs, 
nadji
                              ARPA:     nadji%usc-cse@csnet-relay.arpa
                              CSNET:    nadji@usc-cse.csnet

bet@ecsvax.UUCP (Bennett E. Todd III) (04/14/86)

In article <84@uscvax.UUCP> nadji@uscvax.UUCP (Behzad Nadji) writes:
>"One can send a EOI to 8259 PIC by writing a 20H into port 20H."
>
>Where can I get more detail on this?

The PC Tech Ref has, between the BIOS listing, the circuit diagram, and
the I/O space and memory maps, enough detail to allow you to figure out
where the 8259 is and how to get at it; the Intel Component Data Catalog
(one of the quasi-freebie spec books) has detailed programming
information on the chip. Between the two I was able to write a working
asynch interrupt handler, with help from a friend.

-Bennett
-- 

Bennett Todd -- Duke Computation Center, Durham, NC 27706-7756; (919) 684-3695
UUCP: ...{decvax,seismo,philabs,ihnp4,akgua}!mcnc!ecsvax!duccpc!bet

herman@ti-csl (04/15/86)

> Is there anything else to know about port 20H? Can anyone direct me
> (exact pointers please) to find a little detail about this and related 
> subjects.

Page 2-23 in the IBM PC Technical Reference Manual shows an I/O
address map.  This map indicates that I/O ports 20h and 21h are
assigned to the 8259A Programmable Interrupt Controller Chip.
Since this part is made by Intel, the best way to get information
on it is through Intel data sheets.

In the Intel 8259A data sheet, a full explanation is given of the
different modes the PIC can be operated in.  The least significant
bit of the I/O address is directly fed to the A0 line on the 8259A,
i.e. I/O port 20h corresponds to A0=0; 21h to A0=1.  The A0
line, in combination with some of the data lines, is used to
determine if an Initialization Command Word (ICW), or an Operation
Command Word (OCW) is used.

Writing a 20h to I/O port 20h corresponds to a non-specific EOI
command for interrupt level 0.  For more information, refer to
the Intel 8259A data sheet.  Your local Intel representative should
be able to get you a copy.  If not, try contacting the Intel Literature
Department, 3065 Bowers Avenue, Santa Clara,  CA  95051,
(800) 538-1876.

================================================================
*hardcopy*		*electr{onic, ic}*
Herman Schuurman	ARPA:  herman%TI-CSL@CSNET-RELAY.ARPA
POB 225474 M/S 238	CSNET: herman@TI-CSL
Texas Instruments Inc.	USENET: {ut-sally,convex!smu,texsun,rice}!ti-csl!herman
Dallas, Texas 75265	VOICE: (214) 995-0845

connery@bnrmtv.UUCP (Glenn Connery) (04/16/86)

> "One can send a EOI to 8259 PIC by writing a 20H into port 20H."
> 
> Where can I get more detail on this?
> I have looked through the followings with no success:
> 
>    1) IBM PC TECH REF MANUAL
>    2) IBM AT TECH REF MANUAL
>    3) Norton's "Programmers Guide.."
>    4) Dan Rollins' "IBM PC 8088 Assembler Prog."
>    5) David Bradley's "Assembly Language Programming for the IBM PC"
> 
> The only place I found any reference to this was in Bradley's book
> and that was very brief. And by looking at other peoples code and seeing 
> that they all write a 20H to port 20H at the end of their interrupt handling 
> routines.
> 
> Is there anything else to know about port 20H? Can anyone direct me
> (exact pointers please) to find a little detail about this and related 
> subjects.
> 
> Thanxs, 
> nadji
>                               ARPA:     nadji%usc-cse@csnet-relay.arpa
>                               CSNET:    nadji@usc-cse.csnet

Basically, you will have to get the Intel documents for the part.  I have
a very old copy of "The 8086 Family User's Manual" which describes this quite
well.  The only other book I've seen that really discusses this in any
detail is "Interfacing to the IBM Personal Computer" by Lewis C.
Eggebrecht, published by Howard W. Sams & Co., Inc.  The latter is not
bad actually...
-- 

Glenn Connery, Bell Northern Research, Mountain View, CA
{hplabs,amdahl,3comvax}!bnrmtv!connery

rb@ccird2.UUCP (04/18/86)

In article <84@uscvax.UUCP> nadji@uscvax.UUCP (Behzad Nadji) writes:
>"One can send a EOI to 8259 PIC by writing a 20H into port 20H."
>
>Where can I get more detail on this?
>

Check the various Intel hardware guides.  My 1978 manual lists it
as a preliminary product :-). (I really should get some new ones :-).

There are all kinds of perverse things you can do like change vector
addresses, disable different devices, assign priorities, and so on.

I don't know what specific interrupts are connected to what devices,
but it shouldn't be too hard to figure out.

dmt@mtuxt.UUCP (D.TUTELMAN) (04/20/86)

> From: nadji@uscvax.UUCP (Behzad Nadji)
> Newsgroups: net.micro.pc
> Date: Thu, 10-Apr-86 19:38:46 EST
> Organization: CS&CE Depts, U.S.C., Los Angeles, CA
> 
> "One can send a EOI to 8259 PIC by writing a 20H into port 20H."
> 
> Where can I get more detail on this?
> 
> [ ... references to a number of non-helpful sources ... ]
> 
> Is there anything else to know about port 20H? Can anyone direct me
> (exact pointers please) to find a little detail about this and related 
> subjects.

I didn't see in any of the replies so far reference to an excellent
article on the subject by Chris Dunford (yes, the author of CED).
Check out the PC Tech Journal for Nov/Dec 1983, pp 173-199.

The article concentrates on how the 8259 is used in the PC, and thus prunes
out some information (no doubt interesting, but not relevant) that you'd
have to wad through in the Intel spec sheet.  (But don't throw away the
spec sheet; IT'S the primary reference source.)

             		Dave Tutelman
                	Physical - AT&T Information Systems
                  		Room 1H120
                   		Juniper Plaza, Route 9
                  		Freehold, NJ 07728
                	Logical -  ...ihnp4!mtuxo!mtuxt!dmt
             		Audible -  (201) 577 4232
---------------------------------------------------------------

ljz@well.UUCP (Lloyd Zusman) (05/08/86)

In article <10200010@ti-csl> herman@ti-csl writes:
>
>> Is there anything else to know about port 20H? Can anyone direct me
>> (exact pointers please) to find a little detail about this and related 
>> subjects.

Also ...

A very good book for this kind of stuff is "8088 Assembler Language
Programming: The IBM PC" by David C. Willen and Jeffrey I. Krantz,
published by Howard W. Sams & Co., 1983. See pages 90-92 for a good
explanation of the 8259 and port 20h.

This is an excellent book for concise, usable explanations for many of
the internals for the PC.  It's old, though, and only covers the PC,
not XT's or AT's.  But much of the basic hardware configuration is
the same on these machines.  This book has helped me immeasurably.

rde@ukc.ac.uk (R.D.Eager) (05/10/86)

In article <1041@well.UUCP> ljz@well.UUCP (Lloyd Zusman) writes:
>In article <10200010@ti-csl> herman@ti-csl writes:
>>
>>> Is there anything else to know about port 20H? Can anyone direct me
>>> (exact pointers please) to find a little detail about this and related 
>>> subjects.
>
>Also ...
>
>A very good book for this kind of stuff is "8088 Assembler Language
>Programming: The IBM PC" by David C. Willen and Jeffrey I. Krantz,
>published by Howard W. Sams & Co., 1983. See pages 90-92 for a good
>explanation of the 8259 and port 20h.

Also, look in the Intel handbook for the device. There is lots of good,
low level info on all the PC Intel chips there.
-- 
           Bob Eager

           rde@ukc.UUCP
           rde@ukc
           ...!mcvax!ukc!rde

           Phone: +44 227 66822 ext 7589