Programming the 8259 with slaves

We have assumed that the processor that the processor used in this microcomputer system is 8085, and the slave which is connected to the input IR4 of Master 8259. The address of the port of 8259 is dependent on the chip and the circuit used. Using ICWs and OCWs the Master 8259 and Slave 8259 have to be programmed individually. But the interesting thing is that the two ICWs, ICW1 and ICW2 have the same meaning distinguishingly Master or Slave. So the discussion about the two ICWs, ICW1, and ICW2 is of no use. So we have not done any discussion about them. The low port address of Master 8259 is 50H and that of Slave 8259 is 60H. Whereas the high port address of Master 8259 is and that of Slave 8259 is 61H.

fig.8259 slave connected to input IR4 of Master 8259

PortMaster 8259Slave 8259
Low port50H60H
High port51H61H

The above block diagram will help us to know how 8259 is programmed with slaves. Here S8259 is the slave8259. Here M 8259 is the Master 8259 and 8085 is the microprocessor used. The interrupts are IR4 and INTR and so on. The discussions regarding the command word 3 and 4 are stated here.

initialization command Word 3 (ICW3) − The ICW3 command is written to the high port of 8259 and is needed only if there are Slave 8259s in the system. Bit-1 of ICW1 command indicates whether there are Slave 8259s or not. Several other commands are also written to the same port, for example, ICW2, ICW4, and OCW1. The 8259 identifies the command in the high port based on the ICW1 command issued to the low port of 8259 earlier.

The ICW3 command has different interpretations for Master 8259 and a Slave 8259. Basically, when the high port of 8259 is loaded with ICW3 command, the content of the high port is internally moved to the SLR.

Initialization Command Word 4 (ICW4) − The concept of the Initial Command Word (ICW4) was described by us previously, so let us recapitulate it at a glance. To the high port of 8259, it is written. When the following conditions stated below are satisfied:

  • Processor 8086 should be used.

  • 8259 should be configured in nests, buffer and automatic ends of interrupt modes independent on the material of the processor of the system.


If any of the above conditions become true, the processor issues the Initial Command Word (ICW1) with the ICW4 bit which is present in the Least Significant Bit as 1. The Least Significant of ICW1 command which indicates if the command ICW4 is in need or not. The point to be noted that we have only 5 bits here. Always the Most Significant 3 BITS are 000. There are three modes namely 

  • Buffered mode of 8259 − The bus driving buffers are always needed in the data bus when 8259 is used in a huge system. The problem is solved by configuring 8259 for buffer mode of operation.

  • Non-Buffered mode − Used when the output port enables the Buffer.

  • The default setting for ICW4 − When ICW4 is not used in the system 8259 will be configured. The processor should be 8085/8080. The mode of operation should not be buffered. Only complete Nested mode should be used