описание портов HDD [3/3]

ZXNet эхоконференция «real.speccy»

От Valerij Kozhevnikov (500:95/162. Кому All 07.04.1998


Hello, Roman!

Регистр состояния #C6AF (in) отображает текущее состояние
HDD. Значение этого регистра обновляется после выполнения каж-
дой команды. Если установлен бит BSY этого регистра, то любые
обращения к HDD запрещены, и значения остальных битов не-
действительны. Чтение этого регистра сбрасывает аппаратное
прерывание IRQ14 (в данной схеме это прерывание не использует-
ся).
Значения битов:

┌───────┬───────┬──────┬───────┬──────┬───────┬──────┬──────┐
│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
├───────┼───────┼──────┼───────┼──────┼───────┼──────┼──────┤
│ BSY │ DRDY │ WFT │ DSC │ DRQ │ CORR │ INX │ ERR │
└───────┴───────┴──────┴───────┴──────┴───────┴──────┴──────┘

bit 0 - Error
- индицирует, что предыдущая команда закончилась с ошибкой, и
один или несколько битов установлены в регистре ошибок. Ис-
пользуется для быстрой проверки успешного завершения команды.
Сбрасывается, когда в регистр команд засылается новая команда.

bit 1 - Index
- устанавливается в 1 при каждом обороте пакета блинов. В
современных моделях не используется.

bit 2 - Corrected Data
- индицирует, что при чтении данных произошла ошибка, которая
была успешно скорректирована аппаратурой КЦК. Корректируемые
ошибки не прекращают мультисекторную передачу.

bit 3 - Data Request
- этот бит показывает, что имеется запрос на обмен данными с
буфером сектора при выполнении команд чтения-записи. По этому
запросу необходимо прочитать/записать данные в буфер, в зави-
симости от выполняемой команды.
(в данной схеме, бит аналогичный этому (27-й контакт разъема)
управляет сигналом /wait CPU Z80).

bit 4 - Drive Seek Complete
- индицирует, что головки завершили операцию поиска.

bit 5 - Write Fault
- индицирует неисправность в накопителе, или попытку испол-
нить команду "запись" с некорректными параметрами.

bit 6 - Drive Ready
- установленный в 1 означает готовность HDD к выполнению ко-
манды.

bit 7 - Busy
- определяет состояние HDD. Устанавливается в 1 при выполне-
нии команды или диагностики после системного сброса. Когда
этот бит установлен, никакие другие биты регистра состояния не
являются действительными. Бит Busy должен быть проверен перед
чтением любого регистра состояния.

Регистр команд #C6AF (out) используется для загрузки вы-
полняемой команды. Перед записью команды необходимо подгото-
вить файл задания - Task File (записать необходимые данные в
порты #EEAF, #E6AF, #DEAF, #D6AF, #CEAF), когда HDD находится
в состоянии "не занят" (Busy = 0). Выполнение команды начина-
ется немедленно, с момента записи в регистр команд.

Регистр альтернативного состояния #CAAF (in) содержит та-
кую же информацию, что и основной. Различие в том, что чтение
альтернативного регистра не сбрасывает установленное прерыва-
ние IRQ14. (В данной схеме IRQ14 не используется).

Регистр управления состоянием #CAAF (out) содержит три уп-
равляющих бита:

┌───────┬───────┬──────┬──────┬───────┬───────┬──────┬──────┐
│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
├───────┼───────┼──────┼──────┼───────┼───────┼──────┼──────┤
│ │ │ │ │ HS3EN │ SRST │ /IEN │ │
└───────┴───────┴──────┴──────┴───────┴───────┴──────┴──────┘

bit 1 - Interrupt Enable
- бит разрешения прерывания от HDD к HOST. Когда этот бит ак-
тивен и накопитель выбран, HOST прерывается. Сигнал к HOST
IRQ14 должен быть разрешен через трехстабильный буфер. Когда
этот бит не активен или HDD не выбран, сигнал HOST IRQ14 будет
иметь высокий уровень. (В данной схеме это прерывание не ис-
пользуется).

bit 2 - Soft Reset
- программный сброс. Для сброса HDD этот бит надо установить
в 1 и затем сбросить в 0.

bit 3 - Heads 3 Enable
- используется для разрешения выбора головок с 8 по 15.

Регистр адреса накопителя #C2AF (in) содержит номера го-
ловки и накопителя, выбранные предыдущей командой.

┌───────┬───────┬──────┬───────┬──────┬──────┬──────┬──────┐
│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
├───────┼───────┼──────┼───────┼──────┼──────┼──────┼──────┤
│ │ /WTG │ /HS3 │ /HS2 │ /HS1 │ /HS0 │ /DS1 │ /DS0 │
└───────┴───────┴──────┴───────┴──────┴──────┴──────┴──────┘

bit 0,1 - Drive Select
- биты выбора соответствующего накопителя 0 или 1.

bit 2,3,4,5 - Head Select
- двоичный код выбранной головки.

bit 6 - Write Gate
- бит выполнения записи, активен во время операции записи.

Jason.

Powered by ScorpionZS256turbo+/SMUC/HDD'IDE130Mb/FDD'800/
/CMOS/Covox/ATkbd/Mouse/CDOS...