Товарищи низкоуровневые программеры! Нет ли у кого внятной спецификации (или ссылки) на данную микросхему с подробным ее описанием (с программной точки зрения, даташиты не нужны). В сети нашел какую-то, но она больше для электронщиков и совсем не описаны порты микросхемы (8259A PROGRAMMABLE INTERRUPT CONTROLLER (8259A/8259A-2) от Intel вроди бы)
simpleX Описанны там порты. Просто надо научиться читать спецификацию. Они там в не явном виде - ввиде адресса. Вот книжку можешь почитать. Тут с программерской точки описанно. http://homepage0.icehard.net/files/hardware_specs/IO-DOC/IO.PRT А вообще чего его программировать? 1. Настройка или другими словами инциализация. Последовательность из 2-4 ICW. 2. Упровлять режимами обычно ненужно. Так толко замоскировать/демаскировать прерывания и послать команду EOI конца прерывания.
мне было бы интересно разобраться в первую очередь с приоритетами, как их задавать. Ну и вообще пощупать ткскзать "руками" PIC =)
simpleX Самой этой микросхемы на материнке ты не найдешь. Но зато есть южный мост ввиде микросхемы. В него входит большое число устройств. В нем присутствуют контроллеры прерываний. А из-за ненадобности части функций 8259 были упрознены. SII хотел сказать что современные реализации контроллера(ов) прерываний не в полной мере соответствуют 8259. К примеру нет поддержки 80/85, только 86/88 Значение по умолчанию для ICW4. Intel выпускает чипсеты, где значение по умолчанию 01. Хотя когда-то раньше, когда контроллер не входил в чипсет и был предназначен для 80/85, значение по умолчанию было 00. Если не было запроса на ввод ICW4, то используется значение по умолчание. Нет поддержки буфферезирующего режима. И др.
Отдельных микросхем устройств на мат. платах нет со времён 80286, когда появились микросхемы SIO (Super I\O). Развитие технологии позволило на одном кристалле сделать несколько функциональных блоков, упростив компоновку ПП.
В свое время, когда еще были актуальны слова '8259', мне больше всего нравилось как потроха расписаны у журдена. Знаю что баян, но если уж и начинать увечить pc-шное железо, особенно под досом (под ХР '8259' не актуальны), то лучшего пособия по учумелым ручкам, имхо, не найти.
simpleX Её не было уже в компах на 80386: все нужные функции вошли в состав чипсета. А ненужные просто не реализованы. Кроме того, сам по себе PIC давным-давно устарел и сохраняется лишь для совместимости. Все процессоры, начиная с Pentium, имеют "продвинутый" контроллер прерываний -- APIC. Ну а при использовании нескольких процессоров (в частности, при наличии многоядерного проца, который по сути является несколькими отдельными процами, но на одном кристалле) PIC вообще не годится. Т.е., например, если ты на современном компе поставишь MS DOS, она будет работать, но использоваться будет только один процессор (или одно ядро многоядерного процессора), поскольку эта система не поддерживает многопроцессорные машины. Ну а если стоит Винда, Линух или ещё что, поддерживающее многопроцессорность, то в них прерывания обрабатываются с помощью APIC. Ну а если интересует всё же PIC, то лучше найти документацию на чипсет своей материнки и смотреть, что там написано. Можно воспользоваться докой и от другого чипсета, в т.ч. совсем другого производителя: в таких вещах, как контроллеры прерываний и прямого доступа к памяти, они совместимы.
хмм... ну вообще если честно PIC меня интересовал именно как "управленец" прерываниями с точки зрения ОС. Но раз он уже не актуален...
Взял проверял SIS и VIA пишут что совместимы с 8259 и никаких больше пояснений. Вообщем мой вывод такой, контроллеры совместимы с 86/88. А вот отсутствует совместимость с 80/85. Плюс не значительные расхождения. Но можно считать что в области 86/88 он полностью совместим.
simpleX PIC Используется для совместимости с дос. Его можно использовать в связке с APIC. Можно отказаться от PIC и оставить только I/O APIC+Local APIC. Последний вариант препочтительнее, но не намного