Контроллер НГМД i8272.
г==================================================================================================¬
¦ Регистры состояния ST0 - ST3 ¦
¦====T=============T======T========================================================================¦
¦ Бит¦ Название ¦ Обозн¦ Описание ¦
¦====¦=============¦======¦========================================================================¦
¦ Регистр состояния ST0 ¦
¦====T=============T======T========================================================================¦
¦ D7 ¦ Interrupt ¦ IC ¦ Биты D7,D6 совместно показывают исход команды, вызвавшей прерывание: ¦
¦ D6 ¦ Code ¦ ¦ 00 - нормальное завершение команды (NT - Normal Termination) ¦
¦ ¦ ¦ ¦ 01 - ошибочное завершение команды (AT - Abnormal Terminated) ¦
¦ ¦ ¦ ¦ команда была начата, но не выполнена успешно. ¦
¦ ¦ ¦ ¦ 10 - недопустимая команда (IC - Invalid Command). ¦
¦ ¦ ¦ ¦ 11 - ненормальное завершение команды из-за изменения сигнала Ready¦
¦ ¦ ¦ ¦ с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D5 ¦ Seek End ¦ SE ¦ Когда контроллер выполнил команду Seek, этот бит установлен в "1". ¦
¦====+=============+======+========================================================================¦
¦ D4 ¦ Equipment ¦ EC ¦ Если с накопителя пришел сигнал Fault или после 77 шагов не получен ¦
¦ ¦ Check ¦ ¦ сигнал TR00, этот бит устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D3 ¦ Not Ready ¦ NR ¦ Если накопитель в состоянии Not Ready и задается команда чтения ¦
¦ ¦ ¦ ¦ или записи, этот бит устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D2 ¦ Head Address¦ HD ¦ Флаг используется для указания состояния головки при прерывании. ¦
¦====+=============+======+========================================================================¦
¦ D1 ¦ Unit ¦ US1 ¦ Два бита указывают номер накопителя при прерывании. ¦
¦ D0 ¦ Select ¦ US0 ¦ ¦
¦====¦=============¦======¦========================================================================¦
¦ Регистр состояния ST1 ¦
¦====T=============T======T========================================================================¦
¦ D7 ¦ End OF ¦ EN ¦ Когда контроллер пытается получить доступ к сектору с номером, ¦
¦ ¦ Cylinder ¦ ¦ превышающим номер последнего сектора цилиндра, флаг устанавливается. ¦
¦====+=============+======+========================================================================¦
¦ D6 ¦ ----- ¦ ¦ Не используется, всегда = 0 ¦
¦====+=============+======+========================================================================¦
¦ D5 ¦ Data Error ¦ DE ¦ Флаг устанавливается при выявлении ошибки CRC в полях ¦
¦ ¦ ¦ ¦ данных или идентификатора сектора. ¦
¦====+=============+======+========================================================================¦
¦ D4 ¦ Over Run ¦ OR ¦ Флаг устанавливается, если контроллер не обслужен системой ¦
¦ ¦ ¦ ¦ во время передачи данных (потеря данных). ¦
¦====+=============+======+========================================================================¦
¦ D3 ¦ ----- ¦ ¦ Не используется, всегда = 0. ¦
¦====+=============+======+========================================================================¦
¦ D2 ¦ No Data ¦ ND ¦ В командах Read Data, Write Deleted Data или Scan если ¦
¦ ¦ ¦ ¦ контроллер не может найти сектор, указанный рег. IDR, флаг = "1". ¦
¦ ¦ ¦ ¦========================================================================¦
¦ ¦ ¦ ¦ В команде Read ID, если контроллер не может считать поле ¦
¦ ¦ ¦ ¦ идентификатора сектора без ошибки, флаг устанавливается в "1". ¦
¦ ¦ ¦ ¦========================================================================¦
¦ ¦ ¦ ¦ В команде Read a Cylinder, если начальный сектор не найден, ¦
¦ ¦ ¦ ¦ флаг устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D1 ¦ Not ¦ NW ¦ В командах записи и форматирования, если контроллер обнаруживает ¦
¦ ¦ Writable ¦ ¦ сигнал защиты от записи с накопителя, флаг устанавливается. ¦
¦====+=============+======+========================================================================¦
¦ D0 ¦ Missing ¦ MA ¦ Если не найден адресный маркер идентификатора сектора до прихода ¦
¦ ¦ Address ¦ ¦ второго индексного импульса, флаг устанавливается в "1". ¦
¦ ¦ Mark ¦ ¦========================================================================¦
¦ ¦ ¦ ¦ Если не обнаружен адресный маркер данных или удаленных данных, флаг ¦
¦ ¦ ¦ ¦ устанавливается. При этом устанавливается флаг MD в регистре ST2. ¦
L====¦=============¦======¦========================================================================-
г====T=============T======T========================================================================¬
¦ Бит¦ Название ¦ Обозн¦ Описание ¦
¦====¦=============¦======¦========================================================================¦
¦ Регистр состояния ST2 ¦
¦====T=============T======T========================================================================¦
¦ D7 ¦ ------ ¦ ¦ Не используется, всегда = 0. ¦
¦====+=============+======+========================================================================¦
¦ D6 ¦ Control ¦ CM ¦ В командах Read Data и Scan при обнаружении сектора с ¦
¦ ¦ Mark ¦ ¦ адресным маркером удаленных данных флаг устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D5 ¦ Data Error ¦ DD ¦ Флаг устанавливается в "1" при обнаружении ошибки CRC ¦
¦ ¦ in Data ¦ ¦ в поле данных сектора. ¦
¦ ¦ Field ¦ ¦ ¦
¦====+=============+======+========================================================================¦
¦ D4 ¦ Wrong ¦ WC ¦ Устанавливается совместно с битом ND, если содержимое ¦
¦ ¦ Cylinder ¦ ¦ регистра С отличается от содержимого регистра IDR. ¦
¦====+=============+======+========================================================================¦
¦ D3 ¦ Scan Equal ¦ SH ¦ В командах Scan при удовлетворении условия "равно" ¦
¦ ¦ Hit ¦ ¦ этот бит устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D2 ¦ Scan Not ¦ SN ¦ В командах Scan, если не найден сектор,отвечающий ¦
¦ ¦ Satisfied ¦ ¦ заданному условию, флаг устанавливается в "1". ¦
¦====+=============+======+========================================================================¦
¦ D1 ¦ Bad ¦ BC ¦ Устанавливается совместно с битом ND, если содержимое ¦
¦ ¦ Cylinder ¦ ¦ регистра С отличается от содержтмого IDR и С = 0FFH. ¦
¦====+=============+======+========================================================================¦
¦ D0 ¦ Missing ¦ MD ¦ Если при чтении не встречен адресный маркер данных или ¦
¦ ¦ Address Mark¦ ¦ адресный маркер удаленных данных, флаг устанавливается в "1". ¦
¦ ¦in Data Field¦ ¦ ¦
¦====¦=============¦======¦========================================================================¦
¦ Регистр состояния ST3 ¦
¦====T=============T======T========================================================================¦
¦ D7 ¦ Fault ¦ FT ¦ Отражает состояние сигнала Fault с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D6 ¦ Write ¦ WP ¦ Отражает состояние сигнала Write Protect (защита от записи) ¦
¦ ¦ Protect ¦ ¦ с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D5 ¦ Ready ¦ RDY ¦ Отражает состояние сигнала Ready с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D4 ¦ Track 00 ¦ T0 ¦ Отражает состояние сигнала Track 00 с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D3 ¦ Two Side ¦ TS ¦ Отражает состояние сигнала Two Side с накопителя. ¦
¦====+=============+======+========================================================================¦
¦ D2 ¦ Head Address¦ HD ¦ Указывает на выбранную поверхность диска. ¦
¦====+=============+======+========================================================================¦
¦ D1 ¦ Unit ¦ US1 ¦ Два бита показывают выбранный накопитель. ¦
¦ D0 ¦ Select ¦ US0 ¦ ¦
L====¦=============¦======¦========================================================================-
|