ZX-Spectrum & TR-DOS для пользователей и программистов 1994 г.

Микроконтроллер КР1818ВГ93 - команды чтения/записи основные и вспомогательные.


Чтения/записи основные

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

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

Чтение секторов 10OmsecO

Чтение группы секторов. Команда имеет следующие параметры:

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

s значение этого бита определяет номер стороны дискеты (0 — нижняя
сторона, 1 — верхняя). Микросхема не имеет аппаратных сигналов для
выбора магнитных головок на дисководе (это делает системный регистр
Beta Disk-интерфейса), но номер стороны содержится в заголовке сек-
тора;

е этот бит используется для задания задержки при установке магнитной
головки в рабочее положение. Если бит сброшен, задержка не произво-
дится, в противном случае между выдачей сигнала на установку головки
в рабочее состояние и началом операции делается задержка в 15 мс;

с значение этого бита определяет, делать или не делать проверку стороны
дискеты при операции. Если бит сброшен, то проверки не производится.

Разряды системного регистра для этой команды имеют следующие
значения:

5 считан сектор, для которого при записи был установлен бит а (см. коман-
ду «Запись секторов»);

4 не найден требуемый сектор;

3 ошибка в контрольном коде, при считывании записи. Такая ошибка
может произойти при считывании поля заголовка сектора, а при чтении
— и поля данных;

2 потеря данных. Единица в этом разряде указывает на то, что при передаче
байтов в/из регистра данных были пропуски данных микросхемы (оче-
редной байт не был записан или считан в/из регистра);

1 запрос данных. По единице в этом разряде необходимо извлечь (или
занести) очередной байт в регистр данных.

Запись секторов lOlmseca

Запись секторов. Бит а указывает на один из двух возможных форма-
тов сектора. В дальнейшем при считывании этот формат будет индициро-
ваться в 5 бите системного регистра. Обычно этот бит обнуляют, при этом в
поле заголовка сектора формируется специальный байт #FB, в противном
случае — байт #F8. Остальные параметры аналогичны команде «Чтение
секторов

Чтения/записи вспомогательные

В эту группу входят три команды: чтения адреса, чтения и записи
дорожки. Параметр е в командах означает то же, что и для основных
чтения/записи.

Запись (форматирование) дорожки 1111 ОеОО

Эта команда предназначена для разметки дискеты, то есть для ее
форматирования. Информация, посылаемая в микроконтроллер, должна
полностью соответствовать выбранному формату. Запись автоматически
начинается по приходу индексного импульса, то есть с начала дорожки. В
отличие от записи сектора, количество записываемыхбайтой не фиксирова-
но, оно определяется конкретным форматом дискеты. Часть байтов будет
просто записываться, однако несколько из них интерпретируются в этой
команде специальным образом. Они предназначены для формирования
служебных отметок, таких как адресные маркеры или контрольные коды
(КК). В табл. 15 приведено назначение таких служебных байтов.

Формат дорожки включает в себя несколько полей, для правильного
формирования которых необходимо придерживаться определенных стандар-
тов. Ниже приведены форматы массивов данных для создания правильной
дорожки в режимах частотной модуляции (табл. 16) и модифицированной
частотной модуляции (табл. 17).

Рассмотрим формат дорожки более подробно. Между информацион-
ными полями находятся области пробелов, служащие для синхронизации
внутренних схем микроконтроллера. Чем больше поля пробелов, тем лучше
синхронизируется контроллер, тем меньше сбоев происходит при передаче
информации. В Таблицах приведены рекомендуемые значения длин пробе-
лов, а также значения байта, которым они заполняются. Уменьшив длину
пробелов, можно получить некоторый выигрыш в объеме за счет потери
надежности*.

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

*) Величина последнего пробела (последнего, потому, что он предшествует
формированию дорожки) особенно важна. Небольшая длина, установ-
ленная авторами Tk-DOS, не позволяет, кроме всего прочего, считывать
первый сектор дискеты на большинстве IBM-совместимых компьютеров.

Количество байтов

Код

Назначение

~40

#FF

Последний пробел

6

0

1

#FC

Индексная метка

-26

#FF

Первый пробел

6

0

1

#FE

Адресная метка заголовка сектора

1

xx

Номер д орожки

1

xx

Номер стороны дискеты

1

xx

Номер сектора

1

xx

Длина сектора

1

#F7

Формирование двух байтов КК заголовка

-11

#FF

Второй пробел

6

0

1

#FB

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

xx

xx

Данные

1

#F 7

Формирование двух байтов КК данных

-27

#FF

Третий пробел

-247

#FF

Четвертый пробел

Таблица 17. Формат дорожки для MFM.

Количество байтов

Код

Назначение

-80

#4E

Последний пробел

-12

0

3

#F6

Поле С2

1

#FC

Индексная метка

-50

#4E

Первый пробел

-12

0

3

#F5

Попе А1

#FE

Адресная метка заголовка

xx

Номер д орожки

xx

Номер стороны

xx

Номер сектора

xx

Длина сектора

#F 7

Формирование двух байтов КК заголовка

-22

#4E

Второй пробел

-12

0

3

#F5

Поле А1

1

#FB

Адресная метка поля данных

xx

xx

Данные

1

#F 7

Формирование двух байтов КК поля данных

-54

#4E

Третий пробел

-598

#4E

Четвертый пробел

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

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

В качестве данных при форматировании дорожки можно использо-
вать любой не служебный байт, но обычно применяют коды 0 или #FF.

Порядок следования секторов на дорожке может быть произвольным.
Обычно он кратен некоторому целому числу, называемому interleaving —
чередование. Если это число равно единице, то сектора расположены после-
довательно: 0, 1, 2.... Для Двух сектора располагаются через 1, для трех —
через 2 и так далее. Чередование секторов влияет на скорость обращения к
диску. После окончания записи или считывания очередного сектора про-
грамма обычно должна выполнить какие-либо действия, а на это затрачива-
ется время, за которое дискета успевает повернуться на определенный угол.
И ж моменту очередного обращения к диску под магнитной головкой может
оказаться сектор, далеко отстоящий от предыдущего. Если секторы располо-
жены последовательно, то при обращении к следующему сектору программе
придется ждать, пока дискета сделает целый оборот. При соответствующем
чередовании секторов время ожидания очередного сектора можно свести к
минимуму.

Чтение дорожки 1110ОеОО

Эта команда считывает с дорожки всю имеющуюся на ней информа-
цию, включая поля пробелов, заголовков и служебные байты. В силу неко-
торых аппаратных особенностей Beta Disk'а при выполнении этой команды
происходит потеря синхронизации данных микроконтроллером. Таким об-
разом* использовать команду затруднительно.

Чтение адреса НОООеОО

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




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Modern Word - Описание текстового редактора Modern Word v1.3
X-FILES - часть 4.
Мозаика - О новой версии Pro Tracker'a (Golden Disk Corp).
Мысли по поводу - демостроение способствует повышению технологии программирования на ZX.
Hello to - приветы.

В этот день...   29 марта