예제 #1
0
        private static void Remap(byte masterStart, byte masterMask, byte slaveStart, byte slaveMask)
        {
            PortIO.Out8(PIC1_Command, ICW1_Initialization + ICW1_ICW4);
            PortIO.Wait();
            PortIO.Out8(PIC2_Command, ICW1_Initialization + ICW1_ICW4);
            PortIO.Wait();
            PortIO.Out8(PIC1_Data, masterStart);
            PortIO.Wait();
            PortIO.Out8(PIC2_Data, slaveStart);
            PortIO.Wait();

            PortIO.Out8(PIC1_Data, 4);
            PortIO.Wait();
            PortIO.Out8(PIC2_Data, 2);
            PortIO.Wait();

            // set modes:
            PortIO.Out8(PIC1_Data, ICW4_8086);
            PortIO.Wait();
            PortIO.Out8(PIC2_Data, ICW4_8086);
            PortIO.Wait();

            // set masks:
            PortIO.Out8(PIC1_Data, masterMask);
            PortIO.Wait();
            //PortIO.Out8(PIC2_Data, slaveMask);
            //PortIO.Wait();
        }