Рубрики: КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

про компютерное железо, документация, языки программирования

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

PC, XT, AT, PCjr, PC Convertible и PS/2 — это имена
компьютеров семейства IBM PC. Все они более или менее совместимы
между собой на уровне прикладных пакетов, но имеют определенные
аппаратные различия:

PC: центральный процессор 8088, тактовая частота 4.77 МГц,
5 позиций для адаптерных плат.

PCjr: ЦП 8088, нет места для плат. Выпущена мизерным
тиражом и не совместима с остальными IBM PC. В нашей серии не
описывается.

XT: ЦП 8088, жесткий диск, 8 позиций для адаптерных плат. В
остальном аналогична PC.

Turbo PC: ПЭВМ других фирм (не IBM), совместимые с PC и XT,
но имеюший ЦП 8086 или V30 фирмы NEC, тактовая частота которых 6
или 8 МГц. Обычно имеет 8 позиций для плат.

XT-286: ЦП 80286, 8 позиций для плат, частота 6 Мгц без
холостых циклов (скорость как у AT с 8 МГц). Платы от AT к ней
не подходят, от PC подходят, но не позволяют использовать
преимущества 16-разрядной системной шины.

AT: ЦП 80286, 8 позиций для плат, тактовая частота 6 или 8
МГц.

PC Convertible: Портативный вариант AT. Отличия: плазменный
(LCD) дисплей, 3.5-дюймовые дисководы, нет позиций для плат
расширения.

PS/2: Новое семейство ПЭВМ фирмы IBM. Модели 25 и 30 — это
улучшенные версии старых PC, совместимые с ними по адаптерным
платам. Модели 50 и 60 — ЦП 80286, 32-разрядная шина
MicroChannel, совместимости со старыми платами нет. Модель 80
имеет ЦП 80386. Все модели оснащены дисководами размером 3.5
дюйма.

AT-386: ПЭВМ третьих фирм, совместимая с AT, но имеющая ЦП
80386.

Если рассматриваемые устройства зависят от типа ПЭВМ, то
используются следующие пометки:

PC/XT относится к ПЭВМ IBM PC и XT, включая
Portable PC
AT относится к ПЭВМ IBM PC AT
PS/2 относится к семейству PS/2

Отсутствие таких указаний означает, что данный материал
применим ко всем ПЭВМ фирмы IBM.

Десятичные числа записываются обычным образом,

— 5 —

шестнадцатиричные отличаются добавлением буквы «h» в конце.
Например, 256 и 100h означают десятичное число 256.

Все размеры полей в управляющих структурах приведены в
байтах, если не оговорено противное.

В некоторых случаях алгоритмы сопровождаются формулами.
Операции в формулах обозначаются, как принято в языке Си, а
именно:

арифметические: +, -, *, /, % (взятие остатка)
битовые: & (и), | (или), ~ (не)
сдвиги: >.

— 6 —

E1.Таблица портов ввода-выводаF

Приведенная ниже таблица содержит распределение адресного
пространства портов ввода-вывода для IBM PC/XT, AT и PS/2. При
этом:

— порты 0 — FFh отведены для системной платы;
— порты 100h — 3FFh отведены для контроллеров устройств;
— порты, начиная с 400h, недоступны для системной шины.

AT/PS-2 PC/XT Описание См. раздел
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
000-01F 000-00F Контроллер ПДП N 1, 8237А-5 2
020-03F 020-021 Контроллер прерываний N 1, 8259A 3
040-05F 040-043 Таймер (PC/XT:8253-5, AT:8254-2) 4
060-063 Программируемый интерфейс периферии 8255 5
060-06F Контроллер клавиатуры AT 8042 6
070-07F Память CMOS и маска NMI 13
080 Диагностический регистр 14

080-08F 080-083 Регистры страниц ПДП 74LS612 2
090-097 Блок управления каналами PS/2 ДДД
0A0 Маска NMI 14
0A0-0BF Контроллер прерываний N 2, 8259A 3
0C0-0DF Контроллер ПДП N 2, 8237A-5 2
0F0-0FF (N2 при MGA) 10
380-38F 380-38F Синхронные адаптеры: SDLC или BSC N 2 ДДД
3A0-3AF 3A0-3A9 Синхронный адаптер BSC N 1 ДДД
3B0-3BF 3B0-3BF Монохромный адаптер (MGA) + принтер N 1 7,10
3C0-3CF 3C0-3CF Расширенный графический адаптер (EGA) N 1 7
3D0-3DF 3D0-3DF Цветной графический адаптер (CGA) и EGA 7
3F0-3F7 3F0-3F7 Контроллер НГМД N 1 8
3F8-3FF 3F8-3FF Стык RS-232 N 1 11
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Примечание: В таблицу не включены устройства, базовый адрес
ввода-вывода которых может настраиваться (сетевые адаптеры,
контроллеры стриммерных лент и т.д.).

— 7 —

E2. Контроллер прямого доступа к памятиF

Контроллер прямого доступа к памяти (ПДП, DMA — Direct
Memory Access) обеспечивает высокоскоростной обмен данными между
устройствами ввода-вывода и ОЗУ без использования центрального
процессора, что позволяет освободить процессор для выполнения
вычислений параллельно с обменом и независимо от него. Наиболее
часто возможности ПДП используются при работе с дисковыми
накопителями, однако реализовано использование ПДП адаптерами
накопителей на магнитной ленте и рядом других устройств.
Ощутимые приемущества дает использование ПДП в процессе обмена с
устройствами, принимающими или передающими данные достаточно
большими порциями с высокой скоростью.

В IBM PC-подобных компьютерах функции контроллера ПДП
выполняет микросхема 8237А фирмы INTEL (советский аналог
КР580ВТ57) или ее аналоги 8237А-4 и 8237А-5, работающие с
тактовой частотой 4 и 5 Мгц соответственно (стандартная
микросхема 8237А работает на частоте 3 Мгц). Контроллер имеет 4
независимых канала, каждый из которых может обслуживать одно
периферийное устройство.

— 8 —

E2.1. Принципы работы контроллера ПДПF

В работе ПДП различаются 2 главных цикла: цикл ожидания
(Idle cycle) и активный цикл (Active cycle). Каждый цикл
подразделяется на ряд состояний, занимающих по времени один
период часов (тик). Из цикла ожидания контроллер может быть
переведен в состояние программирования (Program Condition) путем
подачи на вход RESET сигнала высокого уровня, длительностью не
менее 300 нc и следующей за ним подачи сигнала низкого уровня
(уровня 0) на вывод CS (Chip Select). В состоянии програм-
мирования контроллер будет находится до тех пор, пока на выводе
CS сохранится сигнал низкого уровня. В процессе программирования
контроллеру задаются:

— начальный адрес памяти для обмена;
— уменьшенное на единицу число передаваемых байтов;
— направление обмена,

а также устанавливаются требуемые режимы работы (разрешить или
запретить циклическое изменение приоритетов, автоинициализацию,
задать направление изменения адреса при обмене и т. д.).

Загрузка 16-разрядных регистров контроллера осуществляется
через 8-разрядные порты ввода-вывода. Перед загрузкой первого
(младшего) байта должен быть сброшен (очищен) триггер-защелка
(триггер первый/последний, First/Last flip-flop), который
изменяет свое состояние после вывода в порт первого байта и
таким образом дает возможность следующей командой вывода в тот
же порт загрузить старший байт соответствующего регистра.

Запрограммированный канал должен быть демаскирован (бит
маски канала устанавливается при этом в 0), после чего он может
принимать сигналы «Запрос на ПДП», генерируемые тем внешним
устройством, которое обслуживается через этот канал. Сигнал
«Запрос на ПДП» может быть также инициирован установкой в 1 бита
запроса данного канала в регистре запросов контроллера. После
появления сигнала запроса контроллер входит в активный цикл, в
котором выполняется обмен данными. Обмен может осуществляется в
одном из четырех режимов:

1. Режим одиночной передачи (Signle Transfer Mode). После
каждого цикла передачи контроллер освобождает шину процессору,
но сразу же начинает проверку сигналов запроса и, как только
обнаруживает активный сигнал запроса, инициирует следующий цикл
передачи.

2. Режим блочной передачи (Block Transfer Mode). В этом
режиме наличие сигнала запроса требуется только до момента
выдачи контроллером сигнала «Подтверждение запроса на ПДП»
(DACK), после чего шина не освобождается вплоть до завершения
передачи всего блока.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

Графический режим 320 х 200 предоставляет пользователю 8
страниц размером по 8К. Смещение от начала страницы до байта,
содержащего пиксель с координатами (X,Y), равен 40*Y + int(X/8),
а номер соответствующего бита в этом байте равен 7 — (X % 8).
Здесь X — горизонтальная позиция точки (0 — 639), Y — ее
вертикальная позиция (0 — 199).

В графических режимах 640 х 350 имеются две страницы с
адресами A0000h и A8000h соответственно. В остальном этот режим
аналогичен предыдущим.

В качестве примера приведем три подпрограммы работы с
дисплеем EGA в режиме 640 х 200. Если Вы хотите использовать их
в других режимах, достаточно поменять значение константы
PageSize на соответствующее значение.

— 67 —

PageSize equ 4000h ; размер страницы для режима 640 х 200

;ЙННННННННННННННННННННННННННННННННННННННННННН»
;є Подпрограмма очистки экрана. є
;є Вход: CX = номер очищаемой страницы (0-3) є
;ИНННННННННННННННННННННННННННННННННННННННННННј

EGA_Cls proc near
push ax
push bx
push cx
push dx
push es
push di
xor ax,ax ; вычисляем смещение до страницы
mov bx,PageSize
jcxz Page_0
High_Page:
add ax,bx
loop High_Page
Page_0:
mov di,ax ; DI = адрес страницы в видеопамяти
mov ax,0A000h
mov es,ax ; ES:DI = полный адрес страницы
mov ax,0FF08h
mov dx,3CEh ; графический контроллер
out dx,ax ; установить все битовые маски
mov ax,0FF02h
mov dx,3C4h ; блок синхронизации
out dx,ax ; разрешить запись во все плоскости
mov ax,3
mov dx,3CEh ; графический контроллер
out dx,ax ; задать нормальный режим работы
mov cx,PageSize
xor al,al
rep stosb ; обнулить страницу
pop di
pop es
pop dx
pop cx
pop bx
pop ax
ret
EGA_Cls endp

;ЙННННННННННННННННННННННННННННННННННННННННННН»
;є Подпрограмма вывода пикселя на экран. є
;є Вход: AX = цвет пикселя є
;є BX = номер страницы є
;є CX = номер столбца (X) є
;є DX = номер строки (Y) є
;ИНННННННННННННННННННННННННННННННННННННННННННј

Put_Pixel proc near
push ax

— 68 —

push bx
push cx
push dx
push es

push ax
push cx
push dx
mov ax,dx
mov cx,80
mul cx ; AX = 80 * Y
pop dx
pop cx
push cx
shr cx,1
shr cx,1

shr cx,1 ; CX = X / 8
add ax,cx ; AX = 80 * Y + X / 8
mov cx,bx ; номер страницы
mov bx,PageSize
jcxz Page_Done
Next_Page:
add ax,bx ; учтем смещение до страницы
loop Next_Page
Page_Done:
pop cx
mov bx,ax ; BX = адрес байта, содержащего пиксель
mov ax,0A000h
mov es,ax ; ES:BX = полный адрес байта
and cl,7 ; CL = X % 7
mov ah,80h
shr ah,cl ; AH = позиция пикселя в байте
mov dx,3CEh
mov al,8
out dx,ax ; разрешить запись только в этот бит
pop ax
mov ch,al ; цвет пикселя
mov dx,3C4h
mov ax,0FF02h
out dx,ax ; разрешить запись во все плоскости
mov al,es:[bx] ; читаем байт
xor al,al
mov es:[bx],al ; обнуляем пиксель
mov al,2
mov ah,ch ; цвет
and ah,0Fh ; приведем к диапазону 0-15
out dx,ax ; разрешить запись в соотв. плоскости
mov al,es:[bx] ; читаем байт
mov al,0FFh
mov es:[bx],al ; устанавливаем пиксель
mov ax,0FF02h
out dx,ax ; разрешить запись во все плоскости
mov ax,3
mov dx,3CEh ; графический контроллер
out dx,ax ; задать нормальный режим работы

— 69 —

mov ax,0FF08h
out dx,ax ; включить все биты
pop es
pop dx
pop cx
pop bx
pop ax
ret
Put_Pixel endp

;ЙННННННННННННННННННННННННННННННННННННННННННН»
;є Подпрограмма чтения цвета пикселя. є
;є Вход: CX = номер столбца (X) є
;є DX = номер строки (Y) є
;є Выход:AX = цвет пикселя є
;ИНННННННННННННННННННННННННННННННННННННННННННј

Get_Pixel proc near
push ax
push bx
push cx
push dx
push es

push dx
mov ax,205h
mov dx,3CEh
out dx,ax ; режимы: записи=01, чтения=0
pop dx
push cx
push dx
mov ax,dx
mov cx,80
mul cx ; AX = 80 * Y
pop dx
pop cx
push cx
shr cx,1
shr cx,1
shr cx,1 ; CX = X / 8
add ax,cx ; AX = 80 * Y + X / 8
mov cx,bx ; номер страницы
mov bx,PageSize
jcxz My_Page
Higher_Page:
add ax,bx ; учтем смещение до страницы
loop Higher_Page
My_Page:
mov di,ax ; DI = адрес байта, содержащего пиксель
mov ax,0A000h
mov es,ax ; ES:DI = полный адрес байта
pop cx
and cl,7 ; CL = X % 7
mov ch,80h
shr ch,cl ; CH = позиция пикселя в байте

— 70 —

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

3. Режим передачи по требованию (Demand Transfer Mode).
Данный режим является промежуточным между двумя первыми:
передача идет непрерывно до тех пор, пока активен сигнал

— 9 —

запроса, состояние которого проверяется после каждого цикла
передачи. Как только устройство не может продолжить передачу,
сигнал запроса сбрасывается им и контроллер приостанавливает
работу. Этот режим применяется для обмена с медленными
устройствами, не позволяющими по своим временным характеристикам
работать с ПДП в режиме блочной передачи.

4. Каскадный режим (Cascade Mode). Режим позволяет включить
в подсистему ПДП более одного контроллера в тех случаях, когда
недостаточно четырех каналов ПДП. В этом режиме один из каналов
ведущего контроллера используется для каскадирования с
контроллером второго уровня. Для работы в каскаде сигнал HRQ
(«Запрос на захват») ведомого контроллера подается на вход DREG
(«Запрос на канал ПДП») ведущего, а сигнал DACK («Подтверждение
запроса») ведущего подается на вход HDLA («Потверждение
захвата») ведомого.

Такая схема подключения аналогична подключению ведущего
(первого) контроллера к микропроцессору, с которым он
обменивается сигналами HRQ и HDLA.

— 10 —

E2.2. Типы передачF

1. Передача память-память (Memory-to-memory DMA).
Используется для передачи блока данных из одного места
памяти в другое. Исходный адрес определяется в регистрах
нулевого канала, выходной — в регистрах первого канала. Число
циклов обмена (число байт минус 1) задается в регистре числа
циклов канала 1. Передача происходит с использованием рабочего
регистра контроллера в качестве промежуточного звена для
хранения информации. При передачe память-память может быть задан
специальный режим фиксации адреса (Address hold), при котором
значение текущего адреса в регистре нулевого канала не
изменяется, при этом весь выходной блок памяти заполняется одним
и тем же элементом данных, находящимся по заданному адресу.

2. Автоинициализация (автозагрузка, Autoinitialization).
После завершения обычной передачи использованный канал ПДП
маскируется и должен быть перепрограммирован для дальнейшей
работы с ним. При автоинициализации маскировка канала после
окончания передачи не происходит, а регистры текущего адреса и
счетчик циклов автоматически загружаются из соответствующих
регистров с начальными значениями. Таким образом для продолжения
(повторения) обмена достаточно выставить сигнал запроса на ПДП
по данному каналу.

3. Режим фиксированных приоритетов.
В этом режиме канал 0 всегда имеет максимальный приоритет,
а канал 3 — минимальный. Это означает, что любая передача по
каналу с более высоким приоритетом будет выполняться раньше, чем
по каналу с более низким приоритетом.

4. Циклический сдвиг приоритетов.
Позволяет избежать «забивания» шины одним каналом при
одновременной передачe по нескольким каналам. Каждому каналу, по
которому прошла передача, автоматически присваивается низший
приоритет, после чего право на передачу получает канал с
наивысшим приоритетом, для которого передача в данный момент
возможна. Таким образом, если в начале работы распределение
приоритетов было обычным (канал 0 — наивысший), и пришли сигналы
запроса на ПДП по 1-му и 2-му каналам, то сначала будет
выполняться передача по первому каналу, затем он получит низший
приоритет (а канал 2, соответственно, высший, т. к. сдвиг
приоритетов циклический) и передача выполнится по 2-му каналу,
который затем получит низший приоритет, а высший приоритет
получит, сответственно, канал 3, который и будет обладать
преимущественным правом на передачу.

5. Сжатие времени передачи (Compressed transfer timing).
В случае, если временные характеристики быстродействия
обменивающихся устройств совпадают, ПДП может сократить время
выполнения каждого такта передачи на 2 цикла часов за счет
тактов ожидания, входящих в каждый цикл передачи.

— 11 —

E2.3. Описание внутренних регистров ПДПF

Контроллер имеет 344 бита внутренней памяти, организованной
в виде регистров. Описание внутренних регистров ПДП приведено в
таблице.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДї
і Наименование і Разрядность і Число і
і регистра і (бит) і регистров і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДґ
і Регистр начального адреса і 16 і 4 і
і (Base Address Register) і і і
і і і і
і Регистр начального счетчика циклові 16 і 4 і
і (Base Word Count Register) і і і
і і і і
і Регистр текущего адреса і 16 і 4 і
і (Current Address Register) і і і
і і і і
і Регистр текущего счетчика циклов і 16 і 4 і
і (Current Word Count Register) і і і
і і і і
і Рабочий регистр адреса і 16 і 1 і
і (Temporary Address Register) і і і
і і і і
і Рабочий регистр счетчика циклов і 16 і 1 і
і (Temporary Word Count Register) і і і
і і і і
і Регистр состояния і 8 і 1 і
і (Status Register) і і і
і і і і
і Регистр команд і 8 і 1 і
і (Command Register) і і і
і і і і
і Регистр режима (Mode Register) і 6 і 4 і
і і і і
і Рабочий регистр і 8 і 1 і
і (Temporary Register) і і і
і і і і
і Регистр масок (Mask Register) і 4 і 1 і
і і і і
і Регистр запросов і 4 і 1 і
і (Request Register) і і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДЩ

Регистр начального адреса (Base Address Register).
В этом регистре задается стартовый адрес ОЗУ, с которого
начинается передача. Регистр содержит 16 разрядов и определяет
адрес внутри заданной страницы памяти размером 64К. Задание
номера страницы памяти осуществляется через специальные
страничные регистры (Page Registers), поддерживаемые внешней
логикой. Каждый канал ПДП имеет свой регистр начального адреса и
страничный регистр. Такое деление памяти на страницы не
позволяет осуществить обмен с блоком памяти, находящимся на
пересечении двух страниц. Каждая страница начинается с

— 12 —

сегментного адреса, кратного 1000h (0, 1000h, 2000h, …,
9000h).

Регистр начального счетчика циклов (Base Word Count
Register).
В этом регистре задается начальное число циклов передачи
для программируемого канала. Фактическое число передаваемых во
время работы ПДП элементов данных на единицу превышает заданное
число циклов, т. е. если Вы задаете 100 циклов передачи, а
размер элемента будет равен 1 байту, то за сеанс обмена будет
передан 101 байт информации.

Регистр текущего адреса (Current Address Register).
Начальное значение заносится в этот регистр одновременно с
регистром начального адреса. В дальнейшем в ходе передачи
значение текущего адреса автоматически увеличивается или
уменьшается (конкретное направление изменения задается при
программировании в регистре режима). Если разрешена автоини-
циализация, то после окончания передачи в регистр автоматически
устанавливается значение из регистра начального адреса.

Регистр текущего счетчика циклов (Current Word Count
Register).
Регистр содержит текущее значение счетчика циклов (число
оставшихся циклов передачи). Отображаемое в нем число циклов
всегда на единицу меньше числа еще не переданных элементов
данных, так как изменение значения в этом регистре проиводится в
конце цикла передачи, уже после фактической передачи элемента
данных, а конец передачи фиксируется в момент переполнения
счетчика (изменение его значения с 0 на 0FFFFh).

Регистр режима (Mode Register).
Данный регистр задает режимы работы своего канала
контроллера.

7 6 5 4 3 2 1 0
ЪДВДВДДВДДВДДВДДВДДВДДї
іXіXі і і і і Биты:
АДБДБДДЕДДБВДБВДБДДВДДЩ ДДДДД
і і і АДДДД> 0-1: Режим работы: 00=проверка,
і і і 01=запись (в память),
і і і 10=чтение (из памяти),
і і і 11=недопустимая комбинация
і і АДДДДДДДДД> 2: Автоинициализация: 1=разрешена,
і і 0=запрещена
і АДДДДДДДДДДДД> 3: Изменение текущего адреса при
і обмене: 0=увеличение, 1=уменьшение
АДДДДДДДДДДДДДДДД> 4-5: Тип передачи:

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

mov bl,7
sub bl,cl
mov cl,bl ; CL = номер бита в байте
xor bl,bl ; накопитель цвета
mov ah,3 ; счетчик битовых плоскостей
mov al,4 ; R4 = регистр выбора плоскости
mov dx,3CEh ; графический контроллер
Read_Plane:
out dx,ax ; выбираем плоскость AH
mov bh,es:[di] ; читать байт
and bh,ch ; выбрать бит
shr bh,cl ; сдвинуть цвет в бит 0
shl bl,1 ; сдвинуть выбранные цвета
or bl,bh ; и добавить считанный
dec ah ; следующая плоскость
jge Read_Plane ; повторить для всех плоскостей
mov al,bl
xor ah,ah ; AX = цвет пикселя
pop es
pop dx
pop cx
pop bx
pop ax
ret
Get_Pixel endp

— 71 —

E7.7. Графический видеомассив VGAF

Адаптер VGA (Video Graphics Array) представляет собой даль-
нейшее развитие EGA. В основном он полностью совместим с
адаптером EGA, поэтому мы приведем только его основные отличия.

1. Если EGA-дисплеи имеют цифровой вход, то VGA — это
дисплей с аналоговым входом. Поэтому при формировании цвета
пикселя из битовых плоскостей цвет слагается из трех основных
цветов (красного, зеленого и синего), интенсивность каждого из
которых может плавно варьироваться от нуля до максимального
значения.

2. VGA имеет большее разрешение, чем EGA, и предоставляет
пользователю три дополнительных режима:

640 x 480, 2 цвета
640 x 480, 16 цветов
320 x 200, 256 цветов

В режимах 640 х 480 имеется одна графическая страница
размером 153600 байт. В режиме 320 х 200 с 256 цветами
используется несколько иной метод формирования цвета пикселя,
чем в других режимах; за счет этого видеопамять разбивается на 4
страницы размером по 16К. Этот режим возможен только на
аналоговых дисплеях или дисплеях с переменной частотой.

3. Частота генератора пикселей VGA принимает значения 25
или 28 Мгц (в отличие от 14 и 16 Мгц у EGA).

4. VGA имеет дополнительный порт ввода 3CCh, позволяющий
считать содержимое многоцелевого регистра (см. описание порта
3C2h в п. 7.6). Графические позиции 3CAh и 3CCh, имеющиеся в
EGA, у VGA отсутствуют.

— 72 —

E8. Контроллер накопителей на гибких дискахF

E8.1. Основные сведения о контроллереF

Управление гибкими дисками в PC-подобных ПЭВМ
осуществляется микросхемой 8272А фирмы Intel, выполняющей
функции контроллера гибких дисков (Floppy Disk Controller, FDC).
Информация на дискете хранится на дорожках, дорожки разбиты на
сектора. В зависимости от типа дисковода число дорожек на одной
стороне дискеты может быть равно 40 или 80, число секторов на
дорожке колеблется от 8 до 26. Кроме того существуют дисководы,
имеющие одну головку чтения/записи (при этом вторая сторона
дискеты не используется). Контроллер управляет дисководами для
дискет диаметром 8, 5.25 и 3.5 дюйма, поддерживает запись на
дискету методами ЧМ и МЧМ, программируемую длину секторов (128,
256, 512 или 1024 байта), мультисекторные и мультидорожечные
операции обмена с дисками, операции поиска. Одновременно к
одному контроллеру может быть подключено до четырех дисководов
любого из поддерживаемых типов. Обмен с диском может
осуществляться как с использованием ПДП, так и без него. В
последнем случае используются 2 метода: опрос состояния
контроллера через регистры или использование аппаратных
прерывания контроллера. FDC генерирует аппаратные прерывания
уровня 6 (IRQ6), связанные с вектором прерываний 0Eh. Управление
контроллером и накопителями осуществляется через 3 порта

ввода-вывода.

— 73 —

E8.2. Порты контроллера накопителей на гибких дискахF

Материалы данного и следующего разделов полностью описывают
возможности контроллера 8272А, система команд которого является
базовой для всех более поздних моделей. Дополнительные
возможности контроллера 82072 не описаны, т. к. этот контроллер
полностью поддерживает описываемую систему команд, а его
неописанные функции практически не используются в стандартных
средствах.

Назначение портов ввода-вывода контроллера гибких дисков
приведено в таблице.

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і і і
і 3F2h і запись і Передача команд по управлению режимом работыі
і і і контроллера и накопителей і
і і і і
і 3F4h і чтение і Чтение регистра состояния контроллера і
і і і і
і 3F5h і запись і Передача команд по управлению накопителями і
і і і і
і 3F5h і чтение і Чтение данных с диска в режиме работы і
і і і без ПДП і
і і і і
і 3F5h і запись і Запись данных на диск в режиме работы і
і і і без ПДП і
і і і і
і 3F5h і чтение і Чтение результатов выполнения команды во і
і і і всех режимах і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Порт 3F2h.

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і і і АДДДБД> 0-1: выбор накопителя:
і і і і і і 00-первый
і і і і і і 01-второй
і і і і і і 10-третий
і і і і і і 11-четвертый
і і і і і АДДДДДДДДД> 2: 0=сброс контроллера,
і і і і і 1=разблокировать контроллер
і і і і АДДДДДДДДДДДДД> 3: 1=разрешить работу с ПДП и
і і і і прерывания контроллера
АДДДБДДДБДДДБДДДДДДДДДДДДДДДДД> 4-7: включить мотор:
0001 — первый накопитель
0010 — второй
0100 — третий
1000 — четвертый

— 74 —

На АТ-подобных ПЭВМ обычно допускается не 4, а только 2
накопителя, вследствии чего комбинации, использующие третий и
четвертый накопители, игнорируются. Бит 2, равный 0, прекращает
выполнение текущей команды в момент вывода в порт. Если команда
не завершилась, ее выполнение прерывается. Если не были считаны
результаты выполнения команды, они пропадают. Если не закончился
ввод команды, он пропадает и должен быть начат заново. В любом
случае продолжение работы возможно только после установки этого
бита обратно в 1.

Порт 3F4h.
Через этот порт осуществляется чтение регистра основного
состояния FDC.

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і АДДДБДДДБДДДБД> 0-3: накопитель занят в режиме
і і і і поиска:
і і і і 0001-первый, 0010-второй
і і і і 0100-третий, 1000-четвертый
і і і АДДДДДДДДДДДДДДДДД> 4: 0=контроллер свободен,
і і і 1=контроллер занят выполне-
і і і нием команды чтения или
і і і записи
і і АДДДДДДДДДДДДДДДДДДДДД> 5: режим работы контроллера:
і і 0=с использованием ПДП,
і і 1=без ПДП
і АДДДДДДДДДДДДДДДДДДДДДДДДД> 6: направление обмена:
і 0=процессор —> контроллер
і 1=контроллер —> процессор
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДД> 7: готовность к обмену:
0=не готов, 1=готов

Бит 7, равный 1, говорит о том, что контроллер при вводе

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

00=Режим передачи по требованию,
01=Режим одиночной передачи,
10=Режим блочной передачи,
11=Каскадный режим.

Каждый из четырех каналов ПДП имеет свой набор регистров,
описанных выше. Кроме того, имеется следующий набор регистров,

— 13 —

общих для всех каналов.

Регистр команд (Command Register).
Этот 8-битный регистр управляет работой контроллера. Он
программируется, когда контроллер находится в состоянии
программирования и очищается командами сброса «Reset» и «Master
Clear». Назначение битов регистра команд приведено на рисунке.

7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
і і і і і і і і і Бит:
АВДБВДБВДБВДБВДБВДБВДБВДЩ ДДД
і і і і і і і АД> 0: 0=запретить передачу память-память,
і і і і і і і 1=разрешить
і і і і і і АДДДД> 1: 0=запретить фиксацию адреса в канале
і і і і і і 0, 1=разрешить
і і і і і АДДДДДДД> 2: 0=разблокировать, 1=заблокировать
і і і і і контроллер
і і і і АДДДДДДДДДД> 3: 0=нормальная временная диаграмма,
і і і і 1=сжатие времени передачи; если бит
і і і і 0 установлен, то игнорируется
і і і АДДДДДДДДДДДДД> 4: 0=режим фиксированных приоритетов,
і і і 1=режим циклического сдвига
і і і приоритетов
і і АДДДДДДДДДДДДДДДД> 5: 1=Режим расширенной записи,
і і 0=задержки при записи; если бит 3
і і установлен, то игнорируется
і АДДДДДДДДДДДДДДДДДДД> 6: 0=активным считается высокий уровень
і сигнала запроса (DREQ), 1=низкий
АДДДДДДДДДДДДДДДДДДДДДД> 7: активным считается высокий уровень
сигнала подтверждения запроса на
ПДП (DACK), 1=низкий

Регистр состояния (Status Register).
Регистр отражает текущее состояние запросов и передач по
всем четырем каналам. Биты 0 — 3 устанавливаются в единицу после
завершения передачи по каналам 0 — 3 (бит 0 — канал 0, бит 1 —
канал 1 и т.д.), если не задан режим автоинициализации. Эти биты
очищаются после команды сброса контроллера и после каждой
операции считывания состояния из регистра состояния. Биты 4 — 7
указывают по какому из каналов 0 — 3 активен в текущий момент
сигнал запроса на ПДП.

Регистр масок (Mask Register).
Каждый бит этого 4-битового регистра маскирует/демаскирует
свой канал ПДП, при этом значение 1 маскирует канал, значение 0
демаскирует канал и разрешает прием сигнала запроса по этому
каналу.

Регистр запросов (Request Register).
Сигнал запроса на ПДП (DREQ) может быть издан как
обслуживаемым устройством, так и программно. Для программного
издания сигнала запроса по одному из 4-х каналов ПДП необходимо
установить соответствующий бит в 4-разрядном регистре запросов.
Запрос на ПДП может быть отменен записью нулевого значения в

— 14 —

соответствующий бит регистра. Бит запроса очищается
автоматически при окончании передачи по данному каналу. Все биты
запросов очищаются при сбросе контроллера. Для того, чтобы
воспринимать программные запросы на ПДП, канал должен находится
в режиме блоковой передачи.

Рабочий регистр (Temporary Register).
Этот 8-разрядный регистр используется для хранения
элемента данных, передаваемого в режиме фиксированного адреса
при передаче память-память или для временного хранения
передаваемого байта при всех остальных режимах передачи.

— 15 —

E2.4. Программное управление контроллером ПДПF

Программное управление контроллером ПДП осуществляется
через порты ввода-вывода. Доступ к каждому регистру контроллера
может быть осуществлен через свои порты ввода-вывода. В разделах
2.4.1 и 2.4.2 описывается программное управление контроллерами
на XT- и АТ-подобных ПЭВМ соответственно.

E2.4.1. Организация и управление ПДП на XT-подобных ПЭВМF

IBM PC XT и XT-совместимые ПЭВМ имеют один 4-канальный
контроллер ПДП 8237А. Назначение каналов следующее:

0 — обмен память-память;
1 — свободен (может использоваться сетевыми адаптерами);
2 — обмен с контроллером гибких дисков;
3 — обмен с контроллером жестких дисков.

В таблице приведено описание портов ввода-вывода,
предназначенных для управления контроллером ПДП.

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і 0h і запись і Запись начального адреса в регистр начально-і
і і і го адреса и регистр текущего адреса канала 0і
і і і і
і 2h і запись і то же для канала 1 і
і і і і
і 4h і запись і то же для канала 2 і
і і і і
і 6h і запись і то же для канала 3 і
і і і і
і 0h і чтение і Чтение начального адреса из регистра началь-і
і і і ного адреса канала 0 і
і і і і
і 2h і чтение і то же для канала 1 і
і і і і
і 4h і чтение і то же для канала 2 і
і і і і
і 6h і чтение і то же для канала 3 і
і і і і
і 1h і запись і Запись в регистр начального счетчика циклов і
і і іи в регистр текущего счетчика циклов канала 0і
і і і і
і 3h і запись і то же для канала 1 і
і і і і
і 5h і запись і то же для канала 2 і
і і і і
і 7h і запись і то же для канала 3 і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

— 16 —

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і і і
і 1h і чтение і Чтение текущего значения из регистра теку- і
і і і щего счетчика циклов канала 0 і
і і і і
і 3h і чтение і то же для канала 1 і
і і і і
і 5h і чтение і то же для канала 2 і
і і і і
і 7h і чтение і то же для канала 3 і
і і і і
і 8h і запись і Запись регистра команд ПДП і
і і і і
і 8h і чтение і Чтение регистра состояния ПДП і
і і і і
і 9h і запись і Запись в регистр запросов ПДП і
і і і і
і 0Ah і запись і Запись бита маски для одного из каналов ПДП і
і і і і
і 0Bh і запись і Запись регистра режимов для одного из і
і і і каналов ПДП і
і і і і
і 0Ch і запись і Очистка (сброс) триггера-защелки (триггера і
і і і первого/последнего) і
і і і і
і 0Dh і запись і Программный сброс контроллера і
і і і і
і 0Eh і запись і Очистка битов масок всех 4-х каналов і
і і і і
і 0Fh і запись і Запись регистра масок для всех 4-х каналов і
і і і і
і 0Dh і і і
і или і чтение і Чтение рабочего регистра ПДП і
і 0Fh і і і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і 81h і запись і Задание номера страницы для канала 2 і
і і і і
і 82h і запись і то же для канала 3 і
і і і і
і 83h і запись і то же для канала 1 і
і і і і
і 87h і запись і то же для канала 0 і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Порты 0h — 7h предназначены для записи исходных значений в
регистры начального и текущего адреса, начального и текущего
счетчика циклов для всех 4-х каналов. Так как порты
восьмиразрядные, а регистры, в которые через них заносятся
данные, 16-разрядные, то запись производится в два приема. Перед
первой командой вывода в требуемый порт необходимо сбросить
триггер-защелку, для чего выполняется команда вывода
произвольного значения в порт 0Ch, после чего в требуемый порт

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

команды готов к приему очередного байта команды, при обмене
данными в режиме без ПДП готов к приему/передаче очередного
байта данных, при приеме результата выполнения команды готов к
передаче очередного байта результата.

— 75 —

E8.3. Команды управления накопителямиF

Выполнение каждой команды имеет 3 фазы:

-фаза ввода команды;
-фаза выполнения;
-фаза результата.

В фазе ввода команды контроллер побайтно принимает и
накапливает команду. Фаза команды заканчивается запуском мотора
на соответствующем накопителе (это не относится к командам
задания режимов и чтения состояния).

В фазе выполнения осуществляется обмен данными между ОЗУ и
накопителем (если команда предполагает такой обмен). В режиме с
использованием ПДП перед приемом/передачей байта данных
генерируется сигнал «запрос на ПДП». Контроллер ПДП отвечает на
него сигналом подтверждения и командой приема/передачи. В режиме
работы без ПДП при готовности к приему/передаче каждого байта
генерируется прерывание. Если прерывания запрещены, приграмма
может в цикле проверять регистр состояния (порт 3F4h) до
получения подтверждения готовности контроллера к обмену данными.

По окончании выполнения команды генерируется прерывание,
означающее начало фазы результата. В фазе результата контроллер
передает результаты выполнения команды. Все байты результата
должны быть считаны, либо необходимо выполнить сброс
контроллера, иначе следующая команда не будет принята. Не все
команды имеют фазу результата, ряд команд выполняется в 2 фазы.

E8.3.1. Перечень команд контpоллеpа НГМДF

Ниже приводится подробное описание команд FDC. Фаза
выполнения помечена знаками «* * *». Смысл символических
обозначений элементов команд приведен после описания команд. В
битовых масках биты нумеруются справа налево. В фазе результата
все байты результата приведены в той последовательности, в
которой они возвращаются контроллером.

ЪДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДї
і Команда і Регистр данных і Назначение і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 1. Чтение і MT MF SK 0 0 1 1 0 і Ввод данных і
і данных і X X X X X HD US1 US0 і из поля дан-і
і і C і ных сектора і
і і H і і
і і R і і
і і N і і
і і EOT і і
і і GPL чячячpячячя і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 2. Чтение і MT MF SK 0 1 1 0 0 і Ввод данных і
і удаленных і X X X X X HD US1 US0 і из поля дан-і
і данных і C і ных, поме- і
і і H і ченного как і
і і R і удаленное і
і і N і і
і і EOT і і
і і GPL і і
і і DTL і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 3. Запись і MT MF 0 0 0 1 0 1 і Вывод данныхі
і данных і X X X X X HD US1 US0 і в поле дан- і
і і C і ных сектора і
і і H і і
і і R і і
і і N і і
і і EOT і і
і і GPL і і
і і DTL і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і

і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 4. Запись і MT MF 0 0 1 0 0 1 і Запись ад- і
і удаленных і X X X X X HD US1 US0 і ресного мар-і
і данных і C і кера удален-і
і і H і ных данных иі
і і R і занесение і
і і N і символа-за- і
і і EOT і полнителя в і
і і GPL і поле данных і
і і DTL і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і

— 77 —

і і H і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 5. Чтение і 0 MF SK 0 0 0 1 0 і Чтение полейі
і дорожки і X X X X X HD US1 US0 і данных сек- і
і і C і торов всей і
і і H і дорожки і
і і R і і
і і N і і
і і EOT і і
і і GPL і і
і і DTL і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і
і і N і і

При выполнении данной команды игнорируются параметры «начальный
номер сектора» и » номер последнего сектора», так как чтение
начинается с первого встреченного после индекса сектора и
передается столько секторов, сколько было запрошено. Если
запрошенное число секторов (длина принимаемой информации)
больше, чем имеется секторов на дорожке, передача повторяется с
начала первого сектора дорожки.

ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 6. Чтение і 0 MF 0 0 1 0 1 0 і Чтение пер- і
і идентифи- і X X X X X HD US1 US0 і вого встре- і
і катора і * * * і ченного і
і сектора і ST0 і идентифика- і
і і ST1 і тора сектораі
і і ST2 і і
і і C і і
і і H і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 7. Форма- і 0 MF 0 0 1 1 0 1 і Запись на і
і тирование і X X X X X HD US1 US0 і дорожку фор-і
і дорожки і N і матирующей і
і і SC і информации і
і і GPL і і
і і D і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і

— 78 —

і і N і і

Перед выполнением команды форматирования необходимо
спозиционировать головку на требуемую дорожку. Данные для записи
в идентификатор адреса сектора (цилиндр, головка, дорожка и
размер сектора) принимаются от ПДП или через порт данных и не
проверяются. Физический размер сектора определяется параметром
«N» — код длины сектора, задаваемым в команде и одинаковым для
всей дорожки. Таким образом нельзя иметь на на одной дорожке
сектора разной длины. Команда не заносит в маркер данных признак
«удаленные данные», а заполняет поле данных секторов дорожки
байтом-заполнителем.

ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і 8.Сканиро-і MT MF SK 1 0 0 0 1 і Сканирова- і
і вание до і X X X X X HD US1 US0 і ние данных і
і «равно» і C і на указан- і
і і H і ное условие і
і і R і и формирова-і
і і N і ние запроса і
і і EOT і на прерыва- і
і і GPL і ние при вы- і

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

выводится младший байт 16-разрядного значения и затем старший

— 17 —

байт следующей команды вывода в тот же порт.

Вывод в порт 8h позволяет занести значение в регистр команд
ПДП. Описание битов регистра команд приведено в п.2.3.

Чтение из порта 8h считывает регистр состояния ПДП.
Описание битов регистра состояния приведено в п.2.3.

Запись в порт 9h позволяет установить или сбросить бит
запроса в регистр запросов для одного из каналов. Формат команды
следующий:

7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
іX X X X X і і і Биты:
АДДБДДБДДБДДБДДБВДБВДБВДЩ ДДДДД
не используются і АДДБДД> 0-1: выбор канала 00 — 0
і 01 — 1
і 10 — 2
і 11 — 3
АДДДДДДДД> 2: 1=установить бит запроса на ПДП
0=сбросить бит запроса на ПДП

Запись в порт 0Ah позволяет установить или сбросить бит
маски в регистре масок для одного из каналов. Формат команды:

7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
іX X X X X і і і Биты:
АДДБДДБДДБДДБДДБВДБВДБВДЩ ДДДДД
не используются і АДДБДД> 0-1: выбор канала 00 — 0
і 01 — 1
і 10 — 2
і 11 — 3
АДДДДДДДД> 2: 1=установить бит маски
0=сбросить бит маски

Запись в порт 0Bh устанавливает значение в регистре режимов
одного из 4-х каналов ПДП. Биты 0 и 1 задают номер канала (00 —
0, 01 — 1, 10 — 2, 11 — 3). В биты 2 — 7 заносятся значения,
передаваемые соответственно в биты 0 — 6 регистра режимов.
Описание битов регистра режимов приведено в п. 2.3.

Запись в порт 0Dh задает программный сброс контроллера
(Master Clear). Вывод любого байта в этот порт имеет тот же
эффект, что и аппаратный сброс контроллера. При программном
сбросе очищаются регистры команд, состояния, запросов и рабочий
регистр. Так же сбрасывается триггер-защелка и устанавливается
все биты масок в регистре масок. После программного сброса
контроллер переходит в цикл ожидания.

Вывод любого байта в порт 0Eh очищает регистр масок —
сбрасывает биты масок всех 4-х каналов ПДП и таким образом
разрешает прием запросов на ПДП по всем каналам.

— 18 —

Через порт 0Fh можно задать произвольное значение регистра
масок ПДП. Для этого необходимо в битах 0 — 3 регистра AL
установить требуемое значение масок каналов 0 — 3 соответственно
и вывести это значение в порт.

Страничные регистры ПДП предназначены для задания параметра
страницы памяти, с которой будет производится обмен. Под номером
страницы понимаются старшие 4 бита полного 20-битового адреса
ОЗУ, т.е. начальные сегментные адреса страниц будут кратны 1000h
(0, 1000h, 2000h, …, 9000h). Напомним, что архитектура ПДП
позволяет работать только со страницей памяти размером 64К, а
логика, обеспечивающая переключение страниц устроена так, что
страницы имеют жесткие границы, описанные выше. Из-за этой
особенности невозможно с помощью ПДП осуществить обмен с блоками
памяти, пересекающими границу между двумя такими страницами.

E2.4.2. Организация и управление ПДП на AT-подобных ПЭВМF

IBM PC AT и AT-подобные ПЭВМ имеют два контроллера ПДП
8237А, работающиe в каскадном режиме.

Назначение каналов следующие:

0 — свободен;
1 — адаптер SDLC;
2 — контроллер накопителей на гибких дисках;
3 — контроллер накопителей на жестких дисках;
4 — каскад с первым контроллером ПДП;
5, 6, 7 — свободны.

Управление каналами 0 — 3 осуществляется аналогично PC/ХТ.

Каналы 4 — 7 предназначены для обмена 16-разрядными словами. В
связи с этим возникает ряд отличий в работе с этими каналами:

— бит 0 в данных, заносимых в регистры начального и
текущего адреса, всегда подразумевается равным 0, поэтому через
эти регистры передаются биты 1 — 16 полного 23-разрядного адреса
(а не биты 0 — 15 полного 20-разрядного адреса, как это
реализовано на ХТ-подобных ПЭВМ), по этой же причине в
страничные регистры каналов 4 — 7 заносятся биты 17 — 23 полного
адреса, а не биты 16 — 23, как это надо сделать при работе с
каналами 0 — 3;

— поскольку передача осуществляется 16-разрядными словами,
в регистры текущего и начального счетчика циклов заносится не
число байт, а число слов, уменьшенное на единицу;

— размеры страниц памяти, в пределах которых возможен обмен
в течение одной передачи составляют 2000h байтов.

В таблице приведено описание портов ввода-вывода,
предназначенных для управления вторым контроллером ПДП.

— 19 —

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і 0C0h і запись і Запись начального адреса в регистр начально-і
і і і го адреса и регистр текущего адреса канала 4і
і і і і
і 0C4h і запись і то же для канала 5 і
і і і і
і 0C8h і запись і то же для канала 6 і
і і і і
і 0CCh і запись і то же для канала 7 і
і і і і
і 0C0h і чтение і Чтение начального адреса из регистра началь-і
і і і ного адреса канала 4 і
і і і і
і 0C4h і чтение і то же для канала 5 і
і і і і
і 0C8h і чтение і то же для канала 6 і
і і і і
і 0CCh і чтение і то же для канала 7 і
і і і і
і 0C2h і запись і Запись в регистр начального счетчика циклов і
і і іи в регистр текущего счетчика циклов канала 4і
і і і і
і 0C6h і запись і то же для канала 5 і
і і і і
і 0CAh і запись і то же для канала 6 і
і і і і
і 0CEh і запись і то же для канала 7 і
і і і і
і 0C2h і чтение і Чтение текущего значения из регистра теку- і
і і і щего счетчика циклов канала 4 і
і і і і
і 0C6h і чтение і то же для канала 5 і
і і і і
і 0Cah і чтение і то же для канала 6 і
і і і і
і 0CCh і чтение і то же для канала 7 і
і і і і
і 89h і запись і Задание номера страницы для канала 6 і
і і і і
і 8Bh і запись і то же для канала 5 і
і і і і
і 8Ah і запись і то же для канала 7 і
і і і і
і 8Fh і запись і то же для канала 4 і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

В следующей таблице приведено описание назначения портов
второго контроллера ПДП с указанием аналогичных портов первого
контроллера. Форматы данных, вводимых/выводимых через эти порты
совпадают с форматами данных аналогичных портов первого
контроллера. При работе с этими портами следует только
учитывать, что нумерация каналов начинается не с 0, как у
первого контроллера, а с 4 (канал 4 — это канал 0 второго

— 20 —

контроллера, канал 5 — это его канал 1 и т. д.).

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДї
і Порт і і і Аналог. і
і і Режим і Назначение і порт і
і ПДП-2і і і ПДП-1 і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДґ
і 0D0h і запись і Запись регистра команд ПДП і 8h і
і і і і і
і 0D0h і чтение і Чтение регистра состояния ПДП і 8h і
і і і і і
і 0D2h і запись і Запись в регистр запросов ПДП і 9h і
і і і і і
і 0D4h і запись і Запись бита маски для одного из каі 0Ah і
і і і каналов ПДП і і
і і і і і

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

і і STP і полнении і
і і * * * і условия і
і і ST0 і і
і і чячячpячячяо і
і вание до і X X X X X HD US1 US0 і предыдущей і
і «больше і C і команде і
і или равно»і H і і
і і R і і
і і N і і
і і EOT і і
і і GPL і і
і і STP і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і10.Сканиро-і MT MF SK 1 1 1 0 1 і аналогично і
і вание до і X X X X X HD US1 US0 і предыдущей і
і «меньше і C і команде і
і или равно»і H і і
і і R і і

— 79 —

і і N і і
і і EOT і і
і і GPL і і
і і STP і і
і і * * * і і
і і ST0 і і
і і ST1 і і
і і ST2 і і
і і C і і
і і H і і
і і R і і
і і N і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і11. Река- і 0 0 0 0 0 1 1 1 і Перемещение і
і либровать і Х Х Х Х Х 0 US1 US0 і головки на і
і і * * * і нулевую і
і і і дорожку і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і12. Опреде-і 0 0 0 0 0 0 1 1 і Задание і
і ление і і режима і
і і ND і работы і
і і і дисковода і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і13.Поиск і 0 0 0 0 1 1 1 1 і Позициониро-і
і і Х Х Х Х Х HD US1 US0 і вание голов-і
і і NCN і ки на задан-і
і і * * * і ную дорожку і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і14.Чтение і 0 0 0 0 1 0 0 0 і Чтение байтаі
і состояния і * * * і состояния і
і прерыванияі ST0 і ST0 после і
і і PCN і прерываний, і
і і і вызванных і
і і і изменением і
і і і готовности і
і і і дисковода і
і і і и операцией і
і і і поиска і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і15.Чтение і 0 0 0 0 0 1 0 0 і Чтение байтаі
і состояния і Х Х Х Х Х HD US1 US0 і состояния і
і НГМД і * * * і ST3 і
і і ST3 і і
і і і і
ГДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДґ
і16. Несуще-і < ошибочный код команды FDC> і При ошибоч- і
і ствующая і * * * і ной команде і
і команда і ST0 і возвращаетсяі
і і і ST0=80h і
і і і і
АДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДЩ

Смысловое значение элементов команд:

МТ=1 — многодорожечная (двусторонняя операция);

— 80 —

MF=1 — МЧМ-кодирование (двойная плотность) — пропуск
синхроимпульсов у единичных битов и пропуск синхроимпульсов у
нулевых битов, стоящих после единичных;

SK=1 — пропуск адресного маркера удаленных данных;

HD — номер головки (0 или 1);

US1, US0 — номер накопителя (0 — 3);

С — номер цилиндра;

Н — номер головки;

R — номер сектора;

N — код длины сектора (0 — 128, 1 — 256, 2 — 512, 3 — 1024
байтов);

EOT — номер последнего сектора на цилиндре;

GPL — длина межзонного промежутка (обычно 2Ah при обмене и
50h при форматировании);

DTL — число считываемых/записываемых байт (действительно
при N = 0);

ST0 — ST3 — байты состояния ST0-ST3;

STP — межсекторное смещение;

SRT — время скорости шага в милисекундах (обычно 0Dh);

HUT — время разгрузки головки в единицах по 16 милисекунд
(обычно = 0Fh);

HLT — время загрузки головки в единицах по 2 милисекунды
(обычно = 1);

ND=0 — режим работы с использованием ПДП, =1 — режим работы
без использования ПДП;

NCN — номер цилиндра после поиска;

PCN — номер текущего цилиндра;

SC — количество секторов на цилиндре;

D — символ-заполнитель для разметки (обычно 0F6h).

— 81 —

E8.3.2. Структура байтов состоянияF

Байт состояния ST0:

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і і і АДДДБД> 0-1: номер накопителя (0 — 3)
і і і і і АДДДДДДДДД> 2: номер головки
і і і і АДДДДДДДДДДДДД> 3: НГМД не готов при обмене
і і і АДДДДДДДДДДДДДДДДД> 4: Сигнал «ошибка» НГМД или
і і і дорожка 0 не найдена после 77
і і і шагов рекалибровки
і і АДДДДДДДДДДДДДДДДДДДДД> 5: команда поиска завершена
АДДДБДДДДДДДДДДДДДДДДДДДДДДДДД> 6: код прерывания:
00-нормальное завершение команды
01-ненормальное завершение
10-недействительная команда
11-в фазе выполнения измени-
лась готовность дисковода

Бит 2 (номер головки) после выполнения команды поиска
всегда равен 0, независимо от того, на какой головке
осуществлялся поиск.

Бит 3 будет всегда равен 1, если на дисководе с одной
головкой вы попробуете обратиться к стороне 1 (допустима только
сторона 0).

Байт состояния ST1:

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і 0 і і і 0 і і і і Бит:
АДВДБДДДБДВДБДВДБДДДБДВДБДВДБДВДЩ ДДДД
і і і і і АД> 0: 1=не найден маркер иденти-
і і і і і фикатора сектора
і і і і АДДДДД> 1: 1=дискета защищена от
і і і і записи
і і і АДДДДДДДДД> 2: 1=искомый сектор не найден
і і АДДДДДДДДДДДДДДДДД> 4: 1=таймаут запросов на
і і передачу данных
і АДДДДДДДДДДДДДДДДДДДДД> 5: 1=ошибка CRC в поле иденти-
і фикации или в поле данных
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДД> 7: 1=конец цилиндра (попытка
обращения к сектору после
обращения к последнему сектору
последнего цилиндра)

— 82 —

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

і 0D6h і запись і Запись регистра режимов для одногоі 0Bh і
і і і из каналов ПДП і і
і і і і і
і 0D8h і запись і Очистка (сброс) триггера-защелки і 0Ch і
і і і (триггера первого/последнего) і і
і і і і і
і 0DAh і запись і Программный сброс контроллера і 0Dh і
і і і і і
і 0DCh і запись і Очистка битов масок всех каналов і 0Eh і
і і і і і
і 0DEh і запись і Запись регистра масок для всех 4-хі 0Fh і
і і і каналов і і
і і і і і
і 0DAh і чтение і Чтение рабочего регистра ПДП і 0Dh і
і і і і і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДЩ

— 21 —

E3.Программируемый контроллер прерыванийF

Программируемый контроллер прерываний (ПКП, Programmable
Interrupt Controller, PIC) реализует векторную систему
прерываний. Микросхема 8259А фирмы Intel (советский аналог
КР580ВН59), а так же ее модификации 8259А-2 и 8259А-8,
поддерживает 8 уровней прерываний от восьми различных устройств.
Основные функции контроллера:

— фиксация запросов на прерывания от восьми внешних
источников;
— программное маскирование поступающих запросов;
— присвоение фиксированных или циклически изменяемых при-
оритетов входам контроллера, на которые поступают запросы;
— инициация вызова процедуры обработки поступившего аппа-
ратного прерывания.

Количество обслуживаемых внешних источников прерываний
может быть увеличено путем каскадирования нескольких
контроллеров.

Расположение выводов микросхемы контроллера 8259A
приведено на рисунке.

ЪДДДДДДДДДДДДї ЪДДДДДДДДДДДДї
__ і АДДЩ і
CS ЫЭ 1 28 ЮЫ Vcc
__ і і
WR ЫЭ 2 27 ЮЫ A0
__ і і ____
RD ЫЭ 3 26 ЮЫ INTA
і і
D7 ЫЭ 4 25 ЮЫ IR7
і і
D6 ЫЭ 5 24 ЮЫ IR6
і і
D5 ЫЭ 6 23 ЮЫ IR5
і і
D4 ЫЭ 7 22 ЮЫ IR4
і і
D3 ЫЭ 8 21 ЮЫ IR3
і і
D2 ЫЭ 9 20 ЮЫ IR2
і і
D1 ЫЭ 10 19 ЮЫ IR1
і і
D0 ЫЭ 11 18 ЮЫ IR0
і і
CAS0 ЫЭ 12 17 ЮЫ INT
і і __ __
CAS1 ЫЭ 13 16 ЮЫ SP/EN
і і
GND ЫЭ 14 15 ЮЫ CAS2
і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

— 22 —

ЪДДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іОбозначениеіТип выводаі Назначение і
ГДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Vcc і — і Питание + 5 В і
і і і і
і GND і — і Общий (земля) і
і __ і і і
і CS і вход і Выбор микросхемы і
і __ і і і
і RD і вход і Чтение і
і __ і і і
і WR і вход і Запись і
і і і і
і D0-D7 ідвунаправ-і Выводы на шину данных і
і іленные і і

і івыводы і і
і і і і
і CAS0-CAS2 і входы/ і Для ведущего контроллера являются і
і і выходы і выходами, для всех ведомых входами. і
і і і Предназначены для передачи ведущим і
і і і информации для выбора необходимого і
і і і ведомого. і
і __ __ і і і
і SP/EN і вход і Выбор ведущего контроллера і
і і і і
і INT і выход і Запрос на прерывания і
і ____ і і і
і INTA і вход і Подтверждение прерывания і
і і і і
і A0 і вход і Выбор регистров контроллера і
і і і і
і IR0-IR7 і входы і Входы запросов на прерывания от і
і і і внешних источников. і
АДДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

В состав контроллера входят:

— схема управления чтением/записью;
— схема управления;
— схема каскадирования;
— регистр запросов на прерывания;
— схема обработки приоритетов;
— регистр состояния;
— регистр маскирования запросов на прерывания.

ПКП может находиться в двух основных состояниях: настройки
и обслуживания запросов на прерывания. В состоянии настройки
контроллер принимает управляющие слова инициализации
(Initialization Command Words, ICW), в состоянии обслуживания —
операционные управляющие слова (Operation Control Words, OCW).
Возможны несколько режимов обслуживания источников прерываний:

— режим фиксированных приоритетов по по уровням прерываний;
— два различных варианта циклического сдвига приоритетов;
— режим автоматического завершения обработки прерывания;

— 23 —

— режим специального маскирования;
— режим опроса устройств.

E3.1.Описание основных элементов ПКПF

Схема управления чтением/записью (Read/Write Control
Logic). Основной функцией этого блока является прием команд от
микропроцессора и передача ему информации о состоянии ПКП. Обмен
с микропроцессором осуществляется через специальный 8-разрядный
буфер данных (Data Bus Buffer), являющийся интерфейсом между ПКП
и шиной данных. В состав блока входят регистры управляющих слов
ICW и OCW. Схема управляется входами CS, RD, WR и A0. Вход CS
(Chip select) отвечает за выбор микросхемы. Низкий уровень
сигнала на входе CS разрешает выполнение обмена с ПКП. Низкий
уровень сигнала на входе WR (Write) разрешает микропроцессору
выводить управляющие слова ICW и OCW для приема их ПКП. Низкий
уровень сигнала на входе RD (Read) разрешает ПКП передать
микропроцессору информацию о состоянии специальных регистров
IRR, ISR и IMR, которые описаны ниже.

Все управляющие слова ICW и OCW принимаются контроллером в
виде 9-разрядных значений. Разряды 0 — 7 передаются через
8-разрядный буфер данных. Старший разряд (восьмой, считая с
нуля) носит название А0 и устанавливается в 0 или 1 в
зависимости от того, через какой из двух возможных портов
ввода-вывода (четный или нечетный) было передано управляющее
слово. Если для вывода значения использовался порт с четным
адресом, А0 будет равен 0, если использовался порт с нечетным
адресом на единицу большим, чем предыдущий, тогда А0 будет равен
1.

Регистр запросов на прерывания (Interrupt Request Register,
IRR) обслуживается через входы IR0 — IR7 контроллера. Сигнал на
одном входов IR0 — IR7 — это запрос на прерывание
соответствующего уровня (0 — 7). В соответствии с сигналом
запроса на прерывание схемой управления устанавливается
соответствующий бит в регистре IRR.

Регистр состояния (регистр обрабатываемых запросов,
In-Service Register, ISR) описывает в битах 0 — 7 прерывания
каких уровней (0 — 7) в данный момент обрабатываются.

Регистр маскирования запросов на прерывания (Interrupt Mask
Register, IMR) описывает, прерывания каких уровней в настоящий
момент замаскированы. Единичное значение бита в IMR указывает на
то, что прерывание соответствующего уровня при появлении запроса
в IRR блокируется.

Схема обработки приоритетов (шифратор приоритетов, Priority
Resolver) определяет, прерывание какого уровня в данный момент
является наиболее приоритетным для выполнения.

Схема управления ПКП формирует сигнал запроса на
прерывaние, поступающий на вход INT (запрос на прерывание)
микропроцессора. Если флаг IF регистра флагов процессора равен 1

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

Байт состояния ST2:

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і 0 і і і і і і і і Бит:
АДДДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДД
і і і і і і АД> 0: 1=не найден маркер данных
і і і і і і или удаленных данных
і і і і і АДДДДД> 1: 1=сбойный цилиндр
і і і і АДДДДДДДДД> 2: 1=сканирование выполнено
і і і і неудовлетворительно
і і і АДДДДДДДДДДДДД> 3: 1=при сканировании выполне-
і і і но условие «равно»
і і АДДДДДДДДДДДДДДДДД> 4: 1=неверный номер цилиндра в
і і идентификаторе сектора
і АДДДДДДДДДДДДДДДДДДДДД> 5: 1=ошибка CRC в поле данных
АДДДДДДДДДДДДДДДДДДДДДДДДД> 6: 1=в идентификаторе сектора
обнаружен адресный маркер
удаленных данных

Байт ST3:

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і і і і і Бит:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДД
і і і і і і АДДДБД> 0-1: номер накопителя
і і і і і АДДДДДДДДД> 2: номер головки
і і і і АДДДДДДДДДДДДД> 3: 1=сигнал «двусторонний»
і і і і от НГМД
і і і АДДДДДДДДДДДДДДДДД> 4: 1=сигнал «Дорожка 0» от
і і і НГМД
і і АДДДДДДДДДДДДДДДДДДДДД> 5: 1=сигнал «Готовность» от
і і НГМД
і АДДДДДДДДДДДДДДДДДДДДДДДДД> 6:1=сигнал «Защита от записи»
і от НГМД
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДД> 7: 1=сигнал «Ошибка» от НГМД

— 83 —

E8.4. Формат дорожкиF

Индикатором начала дорожки служит индексное отверстие.
Запись на дорожку осуществляется в несколько приемов. При
форматировании дорожка перезаписывается полностью. При операциях
записи перезаписываются отдельные сектора, что влечет за собой
сбой намагниченности диска в месте обрыва записи, причем
физическая длина сектора при его перезаписи не всегда точно
совпадает с длиной ранее имевшегося на этом месте сектора,
разница в длине может составлять до 4 — 5 бит даже при
перезаписи на одном дисководе в одно время. Для синхронизации
после сбоев на дорожке имеются зазоры и синхрозоны. В общем виде
формат дорожки можно изобразить следующим образом:

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і і Определяется индексным
і Индекс і отверстием
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Зазор индекса і 80 байт 4Eh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і 12 байтов 00h, 3 байта 0C2h,
і Заголовок дорожки і 1 байт 0FCh, 50 байтов 4Eh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і 1-й сектор і 574 байта
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Межсекторный промежуток і 80 байт 4Eh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ

8 или 9 секторов на дорожке

ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Последний сектор і 574 байта
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Межсекторный промежуток і 80 байт 4Eh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Зазор дорожки і байты 4Eh до индексного
і і отверстия
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Индекс і

і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

— 84 —

Формат сектора:

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і і
і Идентификатор сектора і 22 байта
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Зазор идентификатора і 22 байта 4Eh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Блок данных і 530 байт
і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Идентификатор сектора:

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і і 12 байтов 00, 3 байта 0A1h
і Маркер идентификатора і 1 байт 0FEh
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і 6 байтов: цилиндр, головка,
іИдентификатор адреса сектораі дорожка, код длины сектора
і і и 2 байта контрольной суммы
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Блок данных:

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і і 12 байтов 00, 3 байта 0A1h,
і Маркер данных і 1 байт 0FXh (Х=8 — удаленные
і і данные, 0Bh — действительные
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ данные)
і і
і Поле данных і 512 байт
і і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і
і Контрольная сумма поля і 2 байта
і данных і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

— 85 —

E8.5. Отличия контроллера для АТ-подобных ПЭВМF

Архитектура АТ-подобных ПЭВМ отличается от ХТ тем, что
контроллер гибких дисков находится на одной плате с контроллером
жестких дисков. К дополнительным возможностям относится
возможность регулирования скорости обмена данными и возможность
подключения двух контроллеров к одному ПЭВМ (в этом случае
вместо портов 3F2h — 3F7h используются порты 372h — 377h).
Функции контроллера гибких дисков на АТ-подобных ПЭВМ
выполняются микросхемой 82072 фирмы Intel (советских аналогов
нет). Дополнительно к описанным выше портам имеется еще один
порт 3F7h, позволяющий осуществить доступ к регистру выбора
скорости обмена данными (Data Rate Select Register, DSR).

Порт 3F7h.

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і і і АДДДБД> 0-1: выбор скорости обмена
і і і АДДДБДДДБДДДДДДДДД> 2-4: выбор времени
і і і предкомпенсации
і і АДДДДДДДДДДДДДДДДДДДДД> 5: 1=разрешить внешний
і і фильтр данных
і АДДДДДДДДДДДДДДДДДДДДДДДДД> 6: 1=отключить питание
і дисковода
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДД> 7: 1=программный сброс
контроллера

Возможные скорости обмена данными в зависимости от битов 0
— 1 DSR приведены в таблице.

ЪДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Биты і Скорость і
ГДДДДДДДДДВДДДДДДДДДЕДДДДДДДДДДДДДВДДДДДДДДДДДДґ
і 1 і 0 і МЧМ і ЧМ і
ГДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДЕДДДДДДДДДДДДґ
і 1 і 1 і 1 Мбит/сек і Невозможно і
і 0 і 0 і 500 Кбит/секі250 Кбит/секі
і 0 і 1 і 300 Кбит/секі150 Кбит/секі
і 1 і 0 і 250 Кбит/секі125 Кбит/секі
АДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДБДДДДДДДДДДДДЩ

В зависимости от значений битов 2, 3 и 4 DSR возможны
следующие значения времени предкомперсации:

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36