ZXNet эхоконференция «zxnet.soft»


тема: Контроллер прерываний



от: Valerij Kozhevnikoff
кому: Denis Dmitriev
дата: 15 Dec 1998

Здравствуй, Denis !

26 Nov 98 at 00:29:30, Denis Dmitriev => Valerij Kozhevnikoff:

VK>> Смук мной изучен досконально. Остались лишь мелкие
VK>> неясности.
VK>> Так что спрашивай.

DD> Помнится, там появился контроллер прерываний. Каким образом можно заставить
DD> его работать, если вообще можно?

Два порта в трдосе, #7EBE и #7FBE.
В доке на 8259 у мя их никак не называют, так что пусть будут "чётный" и
"нечётный".

===================== import file 8259regs.t ==================
3.3.Программирование ПКП

Hиже описывается управление ПКП в ПЭВМ на базе
микропроцессоров Intel 8086/8088/80286. Возможности, позволяющие
включить ПКП в ПЭВМ, использующие другие процессоры, опущены.

Для вывода информации в ПКП используются 2 порта
ввода-вывода. Порт с четным адресом (обычно это порт 20h) и порт
с нечетным адресом (обычно 21h). Через эти порты могут быть
переданы 4 слова инициализации (Initialization Control Word,
ICW1 - ICW4), задающие режим работы ПКП, и 3 операционных
управляющих слова (слова рабочих приказов, Operation Control
Words, OCW1 - OCW3). В порт с четным адресом выводятся ICW1,
OCW2 и OCW3. OCW2 отличается от OCW3 тем, что бит 3 в ocw2 равен
0, а в OCW3 равен 1. В то же время бит 4 в OCW2 и OCW3 равен 0,
а в ICW1 равен 1. Таким образом по значению, выводимому в порт с
четным адресом, однозначно определяется, в какой регистр (ICW1,
OCW2 или OCW3) заносятся данные.

Порт с нечетным адресом используется для вывода ICW2, ICW3,
ICW4 и OCW1. Hеоднозначности интерпретации данных в этом случае
так же не возникает, т. к. слова инициализации ICW2 - ICW4
должны непосредственно следовать за ICW1, выведенным в порт с
четным адресом и выводить в промежутке между ними OCW1 не
следует, онo не будет опознанo контроллером.

Выводом в порт с четным адресом управляющего слова
инициализации ICW1 начинается инициализация ПКП. В процессе
инициализации контроллер последовательно принимает управляющие
слова ICW1 - ICW4. При наличии в системе одного контроллера ICW3
не выводится. Hаличие ICW4 определяется содержанием ICW1. При
наличии каскада из нескольких ПКП каждый из них инициализируется
отдельно.

============================ import end =======================

Сигнал INT на процессор обычно заперт.
Чтобы отпереть - надо включить в #FFBA bit 3.
Это примерно как запирание NMI по А11 в кондратьевской схеме.

В нормальном состоянии #FFBA должен содержать #77.

Hа IRQ0 подан проинвертированный сигнал прерывания от часов, на IRQ1 - некая
нога от альтеры.
Ужель альтера генерит прерывания? И зачем?
Все остальные IRQ2-IRQ7 берутся с исашного слота.

Кста, инт подан к смаковской альтере через диод.

тикалка
Z80 ┌─── 50 Hz SMUC
────┐ │ ┌───
│ │ │
/INT ├────┴─────────|>|────────┤
│ │

Получается: возможен момент, когда тикалке и смаку одновре-
менно захочется прерывания. Значит кто-то из них будет послан
в садъ? А пока прога разбирается кого посылать, время-то идет?
Нехорошо.
Было бы правильнее затыкать родную тикалку, и заставлять ча-
сы тикать с частотой 50Hz. А контроллеру управляющее слово
сказать надо, чтоб знал кто сейчас главнее - часы или момед.

А вот тут, похоже процедура, которой теневик ищет сабж.

=== Cut ===
;============================================================;
LD BC,#FFBA ;interrupt controller detect
LD A,(LDFF0)
AND #F7
OUT (C),A
LD (LDFF0),A
LD BC,#7EBE
LD A,#F3
OUT (C),A
NOP
LD B,#7F
LD A,#C5
OUT (C),A
NOP
LD A,#1
OUT (C),A
NOP
NOP
IN A,(C)
OR A
JR Z,L15A1
CP #1
JR Z,L15A5
L159D LD A,#24
SCF
RET

L15A1 SET 4,(IY+#1B)
L15A5 LD B,#7E
LD A,#F2
OUT (C),A
NOP
LD B,#7F
LD A,#C5
OUT (C),A
NOP
LD A,#FF
OUT (C),A
NOP
NOP
IN A,(C)
CP #FF
JR NZ,L159D
SET 4,(IY+#1A)
XOR A
LD A,#25
RET

LDFF0 DEFB #77
=== Cut ===
============================ import end =======================


WBR, Jason.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Юмор - Детишки.
Начало - Вот ведь, блядь, как плохо на душе!
Игрушки - Новелла: 48 Утюгов.
Новости - в продажу поступает копировщик CopyK, сделанный по заказу фирмы КРАМИС для PROFI.
Застрял ? - Описание игры "Castle Master".

В этот день...   3 мая