ZX-Ревю 1997 №1-2 1997 г.

TR-DOS для начинающих - интегральная микросхема КР 1818 ВГ93.


TR-DOS ДЛЯ НАЧИНАЮЩИХ

ИФК: В наступившем году мы продолжаем публикацию книги В.Сироткина "Общие сведения по дисковой системе TP ДОС" Нужно сказать, что публикуемые далее материалы представляют интерес не только для начинающих, но и для более подготовленных пользователей и программистов. Поэтому название рубрики уже не в полной мере отражает ее содержание.

Продолжение. Начало см. в ZX РЕВЮ 1996 NN 1-2, 4-5, б, 7-8 ГЛАВА 5

ИНТЕГРАЛЬНАЯ МИКРОСХЕМА КР 1818 ВГ93.

Прежде всего нам надо разобраться с самой главной микросхемой контроллера дисковода TP ДОС (BETA DISK интерфейса): с микросхемой КР 1818 ВГ93. Вся логика работы системы зависит, прежде всего от нее. Эта микросхема представляет собой программный микроавтомат с внутренней логикой работы, который обеспечивает управление дисководом, обмен данными между процессором и дисководом, программирование номеров дорожки, сектора, стороны диска, длины сектора и т.д. и т.п.

В общем, он обеспечивает все то ,что необходимо для нормальной работы с дисководом. Обмен данными между микросхемой ВГ93 и процессором копьютера происходит по 8-ми разрядной шине данных. По этой же шине происходит программирование микросхемы на различные режимы и подача команд контроллеру.

Графическое изображение микросхемы показано ниже на рисунке 9.

РИС 9.

............

Назначение выводов микросхемы.

ВЫВОД

МНЕМОН.

НАЗНАЧЕНИЕ ВЫВОДА

1

BS

Вывод микросхемы контроль подложки; в схемах не подключается.

2

W

Вход ЗАПИСЬ.При W=0 - Разрешение записи в выбранный регистр.

3

CS

ВХОД. При 0 - микросхема выбрана

4

R

Вход ЧТЕНИЕ.При = 0 - микросхема выдает на Ш.Д. содержимое выбранного регистра .

5,6

А0,А1

Вход Адреса выбора внутренних регистров ВГ93 для операций чтения/записи. АО А1 ЧТЕНИЕ ЗАПИСЬ

0 0 РЕГ.СОСТ. РЕГ.КОМАНД

1 0 РЕГ.ДОРОЖ. РЕГ.ДОРОЖ.

0 1 РЕГ.СЕКТОР. РЕГ.СЕКТР.

1 1 РЕГ.ДАННЫХ РЕГ.ДАННЫХ

7-14

D0-D7

Вход/Выход данных или команд

15

STEP

Выход на дисковод импульса перемещения головки на 1 шаг ( цилиндр)

16

DIRC

Выход для дисковода.

При = 0 - перемещение головки от ЦЕТРА к краю ;

При = 1 - от края к центру

17

SL

Выход для внешнего регистра .Сдвиг импульса данных с выхода WD ВЛЕВО.

18

SR

Выход для внешнего регистра.Сдвиг импульса данных с выхода WD ВПРАВО.

19

CLR

Вход СБРОСА. При =0 - микросхема выполняет команду ВОСТАНОВЛЕНИЕ. РЕГ.СЕКТОР А сбрасывается в #01. Выход 39 (INTRQ) = 0.

20

GND

Корпусной вывод.

21

Uccl

Питание + 5 вольт

22

TEST

Вход- Скорость перемещения головки. При =1 на выходе 'STEP' импульсы перемещения идит с удвоенной частотой.

23

HRDY

Вход ГОТОВНОСТЬ головки. При = 1 указание на готовность к работе.

24

CLC

Тактовая частота

25

RSTB

Выход СТРОБ ЧТЕНИЯ. Устанавливается в 1 после приема 2х байтов нулей при одинарной плотности диска ; или 4х байтов

.......jPfrftMflfr У7/1»3 .

нулей (единиц) при удвоенной плотности диска.

26

S

Вход синхронизации.

Сигнал вырабатывается из сигналов RAWR.

27

RAWR

Вход ДАННЫХ от дисковода.

28

HLD

Выход ГОТОВНОСТЬ для дисковода. (При =1 - готов)

29

TR43

Выход ПОЛОЖЕНИЕ головки. При = 1 указывает,что головка на цилиндре с номером большим 43. (Сигнал вырабатывается только в процессе ЗАПИСИ или ЧТЕНИЯ )

30

WSTB

Выход. При = 1 включает дисковод на запись.

31

WD

Выход данных для записи на диск.

32

CPRDY

Вход Готовность дисковода для ЗАПИСИ или ЧТЕНИЯ.

При = 0 команды ЗАПИСЬ/СЧИТЫ-ВАНИЕ НЕ ВЫПОЛНЯЮТСЯ, а вырабатывается СИГНАЛ INTRQ. (Не влияет на остальные вспомогательные команды).

33

WF / DE

ВХОД / ВЫХОД : ОШИБКА / ДАННЫЕ

При WSTB = 1 WF ВХОД; (если WF =0 то, запись любой команды прекращается).

При WSTB 0 DE ВЫХОД; (на DE устанавливается 0 при ЧТЕНИИ после загрузки головки и HRDY =1).

34

TROO

ВХОД - НОЛЬ ДОРОЖКА. При = 0,головки дисковода находятся на 0 дорожке.

35

JP

Вход ИНДЕКСЫЙ ИМПУЛЬС. При = 0 индексный импульс считан и диск начал очередной оборот.

36

WPRT

Вход ЗАПРЕТ ЗАПИСИ . (При = 0)

37

DDEN

Вход ПЛОТНОСТЬ ДИСКА. (При = 1 - плотность ДВОЙНАЯ)

38

DRQ

Выход СТРОБ ДАННЫХ. При DRQ = 1 ;

Во время ЧТЕНИЯ указание на то, что РЕГИСТР ДАННЫХ содержит информацию для передачи.

.................тшаш^..

Во время ЗАПИСИ - ГОТОВНОСТЬ регистра ВГ 93 принять данные от Ш.Д. При DRQ=0;

При ЧТЕНИИ указание,что данные из регистра ВГ93 считаны процессором.

При ЗАПИСИ указание ,что регистр ВГ93 _принял данные с Ш.Д._

39 INTRQ Выход ГОТОВНОСТЬ микросхемы.

При = 1 - микросхема готова принять команду ;

При = 0 - микросхема ВЫПОЛНЯЕТ команду ИЛИ был считан регистр _СОСТОЯНИЯ._

40 Ucc 2 Напряжение питания +12 вольт.

Для нас с вами не потребуется досконального знания функционирования всех входов-выходов микросхемы и режимов ее работы.

С точки зрения программиста, нам потребуется знание логики работы всего лишь нескольких выводов, подключенных непосредственно в адресное пространство портов контроллера TP ДОС.

Микросхема ВГ93 имеет 5 внутренних регистров, доступных программисту, через которые идет управление работой ВГ93, и еще один внешний регистр, выполненный, как правило, на микросхеме 555ТМ9 (триггере-защелке), для управления дисководом и для опроса готовности.

Все регистры подключены к определенным адресам в адресном пространстве компьютера, как ПОРТЫ ввода/вывода, и, значит, обра-щатьсяк к ним надлежит командами IN или OUT. Но простой подачей в эти порты каких-либо значений или при попытке считать что-то из этих портов, Вы ничего не добьетесь, т.к. эти порты во время работы SOS Бейсика недоступны!

В ПЗУ ТРДОС есть все необходимые команды обращения к этим портам, и проблема заключается только в том, как выйти на ПЗУ ТРДОС. Вот об этом мы и поговорим чуть позднее...

РАСПРЕДЕЛЕНИЕ ПОРТОВ ТРДОС - ВГ93.

РЕГИСТР ДОРОЖКИ - ПОРТ #3F (ЧТЕНИЕ/ЗАПИСЬ) Служит для ЗАПИСИ номера дорожки при операциях или для СЧИТЫВАНИЯ номера текущей дорожки.

РЕГИСТР СЕКТОРА - ПОРТ #5F (ЧТЕНИЕ/ЗАПИСЬ) Служит для ЗАПИСИ номера сектора при операциях или для СЧИТЫВАНИЯ номера текущего сектора.

РЕГИСТР ДАННЫХ - ПОРТ #7F (ЧТЕНИЕ/ЗАПИСЬ) Служит для обмена данными между диском и компьютером.

РЕГИСТР КОМАНД - ПОРТ #1F ( ЗАПИСЬ ) Служит для подачи команд контроллеру.

.........................................................

РЕГИСТР СОСТОЯНИЯ - ПОРТ #1F ( СЧИТЫВАНИЕ ) Служит для определения текущего состояния выполнения команд.

РЕГИСТР УПРАВЛЕНИЯ - ПОРТ #FF (СЧИТЫВАНИЕ/ЗАПИСЬ) Служит для управления дисководом и для считывания готовности микросхемы ВГ93 при работе или при обмене данными. Этот регистр выполнен на микросхеме ТМ9 триггере защелке. При подаче в порт байта, он сохраняется - защелкивается.

Рассмотрим подробнее РЕГИСТР УПРАВЛЕНИЯ (#FF). При ЗАПИСИ в этот регистр можно выбрать но^ер дисковода, сбросить микросхему ВГ93, выбрать сторону диска, дать готовность дисководу и выбрать плотность записи.

Ниже на рисунке представлены биты этого регистра и за что они отвечают при ЗАПИСИ в него.

Режим записи в регистр управления (ttFF).

7

6

5

4

3

2

1

в

1

выбор диска

при = 0,0

—диск "А1-

выбор микросхемы

-ВГ93 ; при =0-

готовность дисководу с =1)

сторона диска при = 1 верх при = 0 низ

плотность записи при =1 одинарная при=0 двойная

БИТЫ 0 и 1 с выхода триггера ТМ9 напрямую связаны со входами

дисковода "DISK А,В,С" БИТ 2 это вход CLR микросхемы ВГ93

БИТ 3 это вход HRDY микросхемы ВГ93 и одновременно

разрешение прохождения сигнала IP от дисковода к микросхеме ВГ93 БИТ 4 напрямую связан со входом дисковода "SIDE"

BIT б это вход DDEN микросхемы ВГ93

В Режиме ЧТЕНИЕ регистра #FF использованы всего 2 бита, (смотри ниже).

Режим чтения регистра управления (ttFF).

готовность данных

7

6

5

4

3

2

1

В

не используется

при = 1 - готовность к обмену

при = 0 - данные считаны/приняты -(не готовы )-

готовность при =1 - команда выполнена

микросхемы ВГ93: при =0 - команда на исполнении

или считан регистр

состояния ВГ93 —

БИТ б это выход DRQ микросхемы ВГ93 БИТ 7 это выход INTRQ микросхемы ВГ93

Микросхема ВГ93 обеспечивает прием и выполнение 11 команд, поданных в Регистр КОМАНД. Каждая команда,из одиннадцати, имеет свой КОД-МОДИФИКАТОР, который изменяет некоторые условия выполнения команды.

Условно команды подразделяются на четыре типа:

1 - команды перемещения головок дисковода и поиска: эти команды загружают (прижимают) головки.

2 - команды чтения/записи секторов диска.

3 - команды чтения/записи дорожки и адресной метки.

4 - команды принудительного прерывания операций.

Результаты выполнения или невыполнения команд отображаются в Регистре СОСТОЯНИЯ, каждый бит которого несет информацию о ходе выполнения команды. Разберем подробнее каждую команду.

....................................... '..

Команды ПЕРВОГО ТИПА.

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

Команда ВОСТАНОВЛЕНИЕ.

Переход головок дисковода на НУЛЕВОЙ ТРЕК (ЦИЛИНДР). Если на входе TR00 микросхемы не появится подтверждение о выходе головок на 0 ,то через 256 импульсов действие команды прекращается. КОД команды.

7 6 5 4 3 2 1 0

F1

F2

G

МОДИФИКАТОР

При:

G=0 головка поднята.

G=1 головка опущена (в работе).

V=0 местонахождение головки не проверяется.

V=1 читается и проверяется номер цилиндра под головкой.

F1,F2 коды времени перемещения головок (см.таблицу).

КОМАНДА ПОИСК ЦИЛИНДРА. КОД команды.

7 6 5 4

F2

F1

МОДИФИКАТОР

головка поднята, головка опущена (в работе), местонахождение головки не проверяется, читается и проверяется номер цилиндра под головкой, коды времени перемещения головок (см.таблицу). Перед командой Регистр ДОРОЖКИ должен содержать номер ТЕКУЩЕГО ЦИЛИНДРА, а Регистр ДАННЫХ номер ТРЕБУЕМОГО. Поиск продолжается до тех пор, пока регистр ДОРОЖКИ не сравняется с Регистром ДАННЫХ.

Поиск выполняется при модификаторе V=1 !!

КОМАНДА ШАГ.

Перемещение головки на ОДИН шаг,(на 1 цилиндр). Направление перемещения остается прежним.

При: G=0 G=1 V=0 V=1 F1.F2

КОД команды. 7 6

F2

F1

МОДИФИКАТОР При:

G=0 головка поднята.

G=1 головка опущена (в работе).

V=0 местонахождение головки не проверяется.

V=1 читается и проверяется номер цилиндра под головкой

F1,F2 коды времени перемещения головок (см.таблицу).

J=0 содержимое Регистра ДОРОЖКИ не меняется.

J=1 содержимое Р.ДОРОЖ. меняется на 1 (+/-).

КОМАНДА ШАГ ВПЕРЕД (к центру диска)

Перемещение головки на ОДИН шаг ВПЕРЕД (на 1 цилиндр). КОД команды.

О

1

6

F1

F2

МОДИФИКАТОР

головка поднята, головка опущена (в работе), местонахождение головки не проверяется, читается и проверяется номер цилиндра под головкой, коды времени перемещения головок (см.таблицу). содержимое Регистра ДОРОЖКИ не меняется, содержимое Р.ДОРОЖ. увеличивается на 1.

КОМАНДА ШАГ НАЗАД (к краю диска)

Перемещение головки на ОДИН шаг НАЗАД (на 1 цилиндр). КОД команды.

7 6 5 4 3 2 1 0

При:

G=0

G=1

V=0

V=1

F1,F2

J=0

J=1

F2

F1

МОДИФИКАТОР

головка поднята.

головка опущена (в работе).

местонахождение головки не проверяется.

читается и проверяется номер цилиндра под головкой.

При: G=0 G=1 V=0 V=1

F1,F2 коды времени перемещения головок (см.таблицу). J=0 содержимое Регистра ДОРОЖКИ не меняется. J=1 содержимое Р.ДОРОЖ. уменьшается на 1.

КОМАНДЫ ВТОРОГО ТИПА.

КОМАНДА ЧТЕНИЕ СЕКТОРА ,(секторов).

Команда выполняется после того, как микросхемой ВГ93 идентифицирована область ИАМ сектора (индексная адресная метка) и подсчитана контрольная сумма (все это происходит автоматически после подачи команды и не зависит от программиста). Перед командой необходимо:

1. Установить головку на нужный ЦИЛИНДР

2. в Регистр СЕКТОРА занести номер требуемого СЕКТОРА КОД команды.

7 6 5 4 3 2 1 0

При: М=0

М=1

S=0 S=1 Е=0 Е=1

С=0 С=1

М

МОДИФИКАТОР

чтение ОДНОГО сектора, содержимое Регистра СЕКТОРА увеличивается на 1.

после чтения одного сектора, содержимое Регистра СЕКТОРА увеличивается на 1, и начинается чтение следующего, и так до последнего ёектора на ДОРОЖКЕ, сторона диска НИЗ. сторона диска ВЕРХ.

нет задержки для установки головки дисковода, задержка в 15 мс. для установки головки после сигнала HLD микросхемы (готовность), сторона диска не проверяется.

проверка стороны диска в процессе идентификации.

Если в процессе идентификации микросхема не находит в ИАМ-области НОМЕР нужного СЕКТОРА, или же вообще не находит ИАМ, то в Регистре СОСТОЯНИЯ записывается признак "МАССИВ ЧТЕНИЯ НЕ НАЙДЕН"

Если по окончании считывания сектора не совпали Контрольные суммы, то в Регистр СОСТОЯНИЯ записывается признак ОШИБКА, и выполнение команды ОБРЫВАЕТСЯ. ^

При чтении массива данных из поля сектора в Регистр ДАННЫХ микросхемы, КАЖДЫЙ байт сопровождается сигналом СТРОБ ДАННЫХ (вывод DRQ микросхемы; 6-й бит порта #FF, контроллера ТРДОС).

Если текущий байт не был считан из Регистра ДАННЫХ по сигналу СТРОБ ДАННЫХ до прихода следующего байта, то в регистр

ДАННЫХ записьгоается следующий байт, а в Регистре СОСТОЯНИЯ записывается признак ПОТЕРЯ ДАННЫХ.

КОМАНДА ЗАПИСЬ СЕКТОРА ,(секторов). Команда выполняется после того, как микросхемой ВГ93 идентифицирована область ИАМ сектора, (индексная адресная метка) и подсчитана контрольная сумма (все это происходит автоматически после подачи команды и не зависит от программиста). Перед командой необходимо:

1. Установить головку на нужный ЦИЛИНДР.

2. в Регистр СЕКТОРА занести номер требуемого СЕКТОРА.

При: М=0

М=1

S=0 S=1 Е=0 Е=1

с=о С=1 А=0

А=1

КОД команды. 7 б

М

МОДИФИКАТОР

запись ОДНОГО сектора, содержимое Регистра СЕКТОРА увеличивается на 1.

после записи одного сектора,содержимое Регистра СЕКТОРА увеличивается на 1 и начинается запись следующего, и так до последнего сектора на ДОРОЖКЕ, сторона диска НИЗ. сторона диска ВЕРХ.

нет задержки для установки головки дисковода, задержка в 15 мс. для установки головки после сигнала HLD микросхемы (готовность), сторона диска не проверяется.

проверка стороны диска в процессе идентификации, запись в область ИАМ признака "сохранения данных (#FB) (без стирания)"

запись в ИАМ признака "стирать данные разрешено (#F8)"

Если в процессе идентификации микросхема не находит в ИАМ области НОМЕР нужного СЕКТОРА, или же вообще не находит ИАМ, то в Регистре СОСТОЯНИЯ записывается признак МАССИВ ЧТЕНИЯ НЕ НАЙДЕН.

После того, как ИАМ найдена, следует запрос данных сигнал DRQ. Микросхемой записываются (автоматически) нужные пробелы в секторе (12 нулей) перед областью данных, затем записывается "Адресная метка данных" и только затем сами данные.

Перед каждым запросом следующего байта данных микросхемой выставляется Строб ДАННЫХ, (выход DRQ).

Если на запрос DRQ в регистр данных не будет помещен следующий байт для записи, то в регистре СОСТОЯНИЯ выставится признак ПОТЕРЯ ДАННЫХ, а на диск запишется байт 00 !

После записи всего массива данных микросхемой автоматически записывается контрольная сумма в 2 байта и байт #FF.

КОМАНДЫ ТРЕТЬЕГО ТИПА.

КОМАНДА ЧТЕНИЯ АДРЕСНОЙ МЕТКИ

Команда выполняется тогда, когда головка дисковода находится в рабочем положении, т.е. прижата к диску (сигнал HLD=1). Считываются ШЕСТЬ байтов ИНДЕКСНОЙ области диска, включая Контрольную сумму (Номер цилиндра, сторона диска, тип сектора, номер сектора, 2 байта контр.суммы).

Все байты сопровождаются СТРОБОМ чтения БАЙТА (вывод DRQ или б-й бит порта #FF). При выполнении команды содержимое Регистра ДОРОЖКИ пересылается в Регистр СЕКТОРА и запоминается. По окончании выполнения команды генерируется сигнал INTRQ (7 бит порта #FF). КОД команды.

7 6 5 4 3 2 1 О

О

1

О

о

о

МОДИФИКАТОР

При:

Е=0 - нет задержки для установки головки дисковода. Е=1 - задержка в 15 мс. для установки головки после сигнала HLD микросхемы (готовность).

КОМАНДА: ЧТЕНИЕ ДОРОЖКИ ЦЕЛИКОМ.

По этой команде считывается ВСЯ информация с дорожки, вместе с индексным массивом,пробелами и областью данных. Во время чтения НЕ выдается СТРОБ чтения БАЙТА и не проверяются контрольные суммы. Применяется, в основном, эта команда в диагностических целях, например, для юстировки головок дисковода или в программах типа "ТРЕК КОПИР" КОД команды.

7 6 5 4 3 2 1 0

О

1

о

I МОДИФИКАТОР

При:

Е=0 - нет задержки для установки головки дисковода. Е=1 - задержка в 15 мс. для установки головки после Сигнала HLD микросхемы (готовность).

2 Зак. 119

КОМАНДА: ЗАПИСЬ ДОРОЖКИ ЦЕЛИКОМ. Эта команда применяется для ФОРМАТИРОВАНИЯ диска. Запись информации происходит за ОДИН РАЗ на целую дорожку. При форматировании вся необходимая информация должна находиться в ОЗУ/ПЗУ и содержать все пробелы и индексные метки. КОД команды.

1

О

Е

МОДИФИКАТОР

При:

Е=0 - нет задержки для установки головки дисковода. Е=1 - задержка в 15 мс. для установки головки после сигнала HLD микросхемы (готовность).

При выполнении команды ЛЮБАЯ информация запишется на дорожку, кроме некоторых байтов. А именно: появление байтов #F5...#FE интерпретируются как начало СЛУЖЕБНЫХ МЕТОК

байт #f5

запись кода #а1, инициализация подсчета контрольной суммы.

байт #f6

запись кода С2 - индексная метка.

байт #f7

запись контрольной суммы.

байт #fb

адресная метка данных.

байт #fe

адресная метка индексных данных.

Все это справедливо для записи на диск ДВОЙНОЙ плотности (с модифицированной частотной мадуляцией). Для одинарной плотности байты меток будут немножко другими, но такие дисководы стали уже редкостью и рассматривать одинарную плотность записи мы не будем.

В процессе форматирования эти байты меток не должны записываться в область пробелов и в область для данных! Подробнее массив данных для форматирования дисков мы рассмотрим в отдельной главе.

КОМАНДЫ ЧЕТВЕРТОГО ТИПА.

КОМАНДА "ПРИНУДИТЕЛЬНОЕ ПРЕРЫВАНИЕ" Команда предназначена для завершения выполняемой операции и может быть записана в Регистр КОМАНД в любой момент времени.

КОД команды. 7 б

шЗ

mO

ш2

ml

МОДИФИКАТОР

При:

• m3=m2=ml=m0 = 0 команда прекращается, но сигнал JNTRQ не вырабатывается (порт #FF, 7 байт).

• шО = 1 прерывание происходит при переходе от 0 на 1 на входе CPRDY.

• ml = 1 прерывание происходит при переходе от 1 на 0 на входе CPRDY.

• m2 = 1 прерывание по первому индексному сигналу (началу нового оборота диска).

• шЗ = 1 немедленное прерывание и установка на выходе JNTRQ сигнала ГОТОВНОСТЬ (бит 7, порта #FF).

Время установки времени перемещения головки в командах ПЕРВОГО типа зависит, прежде всего, от уровня на входе 'TEST' микросхемы ВГ93, тактовых импульсов на входе CLK, а также от состояния модификаторов команд #F0,#F1.

TEST

F1

F0

Время перемещения на 1 шаг

при CLK=1 МГЦ

при CLK=2

1

0

0

6

3

1

0

1

12

6

1

1

0

20

10

1

1

1

30

15

0

-

-

400

200

Любая команда в процессе своего исполнения обновляет регистр СОСТОЯНИЯ микросхемы (порт #1F при чтении). С помощью этого регистра как раз и ведется "диалог" между компьютером и контроллером о выполнении или невыполнении команд.

Ниже дана таблица значения битов этого регистра при выполнении различных команд. А следом з^ ней помещена таблица, в которой показаны все команды ВГ93.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



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

Похожие статьи:
Part 10 - A-Z Of Spectrum games reviews.
Спектрум в школе - статья о численных методах "Метод Зейделя решения СЛАУ".
Развлечения - головоломки.
ОКНАZZZ - Ну кто нe знaeт эту зameчaтeльну пeрeдaчу "окнa", кторa днёm и ночью идёт по TНT и вeдёт кaторую рeaльный чeл - диmыч нaгиeff!
Авторы - список авторов журнала и адрес редакции.

В этот день...   21 ноября